新需求添加1.数据源新增测试 2.主数据新添规则:主数据配置,新增数据源是主表的情况下默认添加这一条数据,不允许修改 3.档案对照页面重新开发。

This commit is contained in:
hyt 2024-05-28 14:42:19 +08:00
parent 482d6081c1
commit 4c5690016f
13 changed files with 1789 additions and 195 deletions

View File

@ -5,91 +5,118 @@
-->
<template>
<el-form validate-on-rule-change :model="ruleForm" :rules="rules" label-position="top" ref="ruleForm"
label-width="100px">
label-width="100px"
>
<el-row :gutter="24" v-for="(item, index) in formRow" :key="index" style="margin-bottom: 17px;">
<el-col v-for="(row, indexRow) in item.elCol" :span="row.span ? row.span : spanNumber" :key="indexRow">
<el-form-item :prop="row.prop" :style="`display: flex;margin-bottom: ${marginBottom}px;`"
v-if="row.show != false" :class="(rules[row.prop] ? 'ruleFormClass ' : '')">
v-if="row.show != false" :class="(rules[row.prop] ? 'ruleFormClass ' : '')"
>
<!-- <span class="label" slot="label" style="width: 25%;">{{row.label}}</span> -->
<div class="single label" v-if="row.label" slot="label"
:style="`width: ${spanWidth};` + `justify-content: ${justifyContent};`" flex>
:style="`width: ${spanWidth};` + `justify-content: ${justifyContent};`" flex
>
<span class="label">{{ row.label }}</span>
</div>
<el-input v-model="ruleForm[row.prop]" v-if="row.tag === 'password'" type="password" show-password clearable auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin" :disabled="row.disabled ? row.disabled : false">
<el-input v-model="ruleForm[row.prop]" v-if="row.tag === 'password'" type="password" show-password clearable
auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin"
:disabled="row.disabled ? row.disabled : false"
>
<svg-icon
slot="prefix"
icon-class="password"
class="el-input__icon input-icon"
/>
</el-input>
<el-input v-model="ruleForm[row.prop]" clearable :disabled="row.disabled ? row.disabled : false"
:rows="row.rows ? row.rows : 2" :type="row.type ? row.type : 'text'" :maxlength="row.maxlength ? row.maxlength : ''"
<el-input v-model="ruleForm[row.prop]" clearable :disabled="row.disabled || disabled"
:rows="row.rows ? row.rows : 2" :type="row.type ? row.type : 'text'"
:maxlength="row.maxlength ? row.maxlength : ''"
:placeholder="!row.placeholder ? '请输入' : row.placeholder" v-if="row.tag === 'elInput'"
@blur="searchByStationName(row.prop)" min="1" @input="row.rules ? integerNumber(row) : ''">
@blur="searchByStationName(row.prop)" min="1" @input="row.rules ? integerNumber(row) : ''"
@change="row.changeRemind?changeRemind(row):''"
>
</el-input>
<el-input-number v-if="row.tag === 'elInputNumber'" v-model="ruleForm[row.prop]"style="width: 100%;"
:disabled="row.disabled ? row.disabled : false" :precision="row.precisionNum ? row.precisionNum : 0"
<el-input-number v-if="row.tag === 'elInputNumber'" v-model="ruleForm[row.prop]" style="width: 100%;"
:disabled="row.disabled ? row.disabled : false"
:precision="row.precisionNum ? row.precisionNum : 0"
:step="row.stepNum ? row.stepNum : 1" @change="handleChange" :min="0"
:max="row.maxNum ? row.maxNum : 99999"
:label="!row.placeholder ? '描述文字' : row.placeholder"></el-input-number>
:label="!row.placeholder ? '描述文字' : row.placeholder"
></el-input-number>
<!-- <div v-if="row.prop=='address'" id="container"
style="display:none;margin-top:30px;width: 730px;margin:0 auto;height: 590px;border: 1px solid gray;overflow:hidden;">
</div> -->
<el-switch v-if="row.tag === 'elSwitch'" v-model="ruleForm[row.prop]" :active-text="row.activeText"
@change="switchChange($event, index, indexRow, row)" :inactive-text="row.inactiveText"
:active-value="row.activeValue ? row.activeValue : true"
:inactive-value="row.inactiveValue || row.inactiveValue == 0 ? row.inactiveValue : false">
:inactive-value="row.inactiveValue || row.inactiveValue == 0 ? row.inactiveValue : false"
>
</el-switch>
<el-date-picker v-model="ruleForm[row.prop]" v-if="row.tag === 'elDatePicker'" class="w-100"
:class="{ one: row.type ? 'date' : row.type }" :disabled="row.disabled ? row.disabled : false"
:value-format="!row.valueFormat ? 'yyyy-MM-dd' : row.valueFormat" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" :type="!row.type ? 'date' : row.type"
:placeholder="!row.placeholder ? '请选择' : row.placeholder">
:placeholder="!row.placeholder ? '请选择' : row.placeholder"
>
</el-date-picker>
<el-radio-group v-model="ruleForm[row.prop]" v-if="row.tag === 'elRadio'" @input="changeRadio($event,index,indexRow,row)"
:disabled="row.disabled ? row.disabled : false">
<el-radio-group v-model="ruleForm[row.prop]" v-if="row.tag === 'elRadio'"
@input="changeRadio($event,index,indexRow,row)"
:disabled="row.disabled ? row.disabled : false"
>
<el-radio v-for="el in row.options" :label="el.value" :key="el.value">{{ el.label }}</el-radio>
</el-radio-group>
<div @click="elDialogClick(row, index, indexRow)" @mouseover="elDialogHover(row)"
@mouseleave="elDialogLeave(row)" v-if="row.tag === 'elDialog'" class="elDialog"
:style="{ 'background-color': row.disabled ? '#F5FAF7' : '#fff', 'curpur': row.disabled ? 'pointer' : 'default' }">
:style="{ 'background-color': row.disabled ? '#F5FAF7' : '#fff', 'curpur': row.disabled ? 'pointer' : 'default' }"
>
<!-- ,background-color:row.disabled?'#c0c4cc':'#fff' -->
<p :style="{ color: ruleForm[row.prop] ? '#000' : '#c0c4cc' }" class="showText"
@click="elDialogClick(row, index, indexRow)">{{ ruleForm[row.prop] ? ruleForm[row.prop] :
'请点击选择' }}
@click="elDialogClick(row, index, indexRow)"
>{{
ruleForm[row.prop] ? ruleForm[row.prop] :
'请点击选择'
}}
<!-- <el-input v-model="ruleForm[row.prop]"></el-input> -->
</p>
<!-- <i class="el-icon-more " v-if="row.elDialogHoverType"></i> -->
<i class="el-icon-more " @click="elDialogClick(row, index, indexRow)"
v-if="!row.disabled && !ruleForm[row.prop]"></i>
v-if="!row.disabled && !ruleForm[row.prop]"
></i>
<i class="el-icon-circle-close " v-if="!row.disabled && ruleForm[row.prop] && row.elDialogHoverType"
@click.stop="resetField(row.prop)" style="margin-left: 10px;"></i>
@click.stop="resetField(row.prop)" style="margin-left: 10px;"
></i>
</div>
<div v-if="row.tag === 'elLook'">
{{ ruleForm[row.prop] }}
</div>
<el-select class="w-100" v-model="ruleForm[row.prop]" filterable
@change="selectChange($event, index, indexRow, row.options)" :disabled="row.disabled?row.disabled:false"
@change="selectChange($event, index, indexRow, row.options,row)"
:disabled="row.disabled?row.disabled:false"
:clearable="row.clearable ? row.clearable : true"
:placeholder="!row.placeholder ? '请选择' : row.placeholder" v-if="row.tag === 'elSelect'">
:placeholder="!row.placeholder ? '请选择' : row.placeholder" v-if="row.tag === 'elSelect'"
>
<el-option v-for="(el, index) in row.options"
:key="!row.optionValue ? el['value'] : el[row.optionValue]"
:label="!row.optionLabel ? el['label'] : el[row.optionLabel]"
:value="!row.optionValue ? el['value'] : el[row.optionValue]">
:value="!row.optionValue ? el['value'] : el[row.optionValue]"
>
</el-option>
</el-select>
<el-select class="w-100" v-model="ruleForm[row.prop]" multiple :disabled="row.disabled?row.disabled:false"
:clearable="row.clearable" :placeholder="!row.placeholder ? '请选择' : row.placeholder"
v-if="row.tag === 'elMultiple'">
v-if="row.tag === 'elMultiple'"
>
<el-option v-for="el in row.options" :key="!row.optionValue ? el['value'] : el[row.optionValue]"
:label="!row.optionLabel ? el['label'] : el[row.optionLabel]"
:value="!row.optionValue ? el['value'] : el[row.optionValue]">
:value="!row.optionValue ? el['value'] : el[row.optionValue]"
>
</el-option>
</el-select>
<treeselect v-if="row.tag === 'elTreeSelect'" v-model="ruleForm[row.prop]" :normalizer="normalizer"
:options="delTreeChildren(row.options)" :multiple="row.multiple?row.multiple:false"
:disabled="row.disabled?row.disabled:false" @clear="treeSelectClear" ref="selectTree"
:placeholder="!row.placeholder?'请选择':row.placeholder" @select="selectTree" />
:placeholder="!row.placeholder?'请选择':row.placeholder" @select="selectTree"
/>
<slot :name="row.slotName" v-if="row.tag === 'elSlot'" :row="ruleForm"></slot>
<!-- <upload-file v-if="row.tag === 'uploadFile'" :showImgPath="ruleForm[row.prop]" ref="imgFile"
@onImage="row.prop == 'beforeImgList'? getbeforeImgList:row.prop == 'materialsList'? getmaterialsList:row.prop == 'getmaterialsListAfter'?getmaterialsListAfter:getImage "></upload-file> -->
@ -115,6 +142,7 @@
import {
checkMobile
} from '@/utils/util'
export default {
components: {
// uploadFile,
@ -155,7 +183,7 @@ export default {
default: true
},
formdata: {
type: Object,
type: Object
},
justifyContent: {
type: String,
@ -164,12 +192,12 @@ export default {
marginBottom: {
type: String,
default: '0'
},
}
},
data() {
return {
//
ruleForm: {},
ruleForm: {}
}
},
watch: {
@ -177,16 +205,20 @@ export default {
immediate: true, //
deep: true, //
handler(newVal, oldVal) {
this.$emit('dataChanges')
this.$emit('dataChanges', newVal, oldVal)
}
}
},
created() { },
created() {
},
mounted() {
// this.ruleForm = this.formdata
},
computed: {},
methods: {
changeRemind() {
this.$emit('changeRemind', this.ruleForm)
},
integerNumber(row) {
// row.rules?(v)=>()):''
// @input="(v)=>(row.row.number=v.replace(/[^\d]/g,''))"
@ -230,36 +262,36 @@ export default {
if (type == 'address') {
let address = this.ruleForm[type]
let that = this
var map = new BMap.Map("container");
map.centerAndZoom(address, 18);
map.enableScrollWheelZoom(); //
map.enableContinuousZoom(); //
map.addControl(new BMap.NavigationControl()); //
map.addControl(new BMap.OverviewMapControl()); //
var map = new BMap.Map('container')
map.centerAndZoom(address, 18)
map.enableScrollWheelZoom() //
map.enableContinuousZoom() //
map.addControl(new BMap.NavigationControl()) //
map.addControl(new BMap.OverviewMapControl()) //
map.addControl(new BMap.OverviewMapControl({
isOpen: true,
anchor: BMAP_ANCHOR_BOTTOM_RIGHT
})); //
var localSearch = new BMap.LocalSearch(map);
localSearch.enableAutoViewport(); //
map.clearOverlays(); //
})) //
var localSearch = new BMap.LocalSearch(map)
localSearch.enableAutoViewport() //
map.clearOverlays() //
var keyword = address
localSearch.setSearchCompleteCallback(function (searchResult) {
var poi = searchResult.getPoi(0);
map.centerAndZoom(poi.point, 13);
localSearch.setSearchCompleteCallback(function(searchResult) {
var poi = searchResult.getPoi(0)
map.centerAndZoom(poi.point, 13)
var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point
.lat)); //
map.addOverlay(marker);
var content = keyword + "<br/><br/>经度:" + poi.point.lng + "<br/>纬度:" + poi.point.lat;
.lat)) //
map.addOverlay(marker)
var content = keyword + '<br/><br/>经度:' + poi.point.lng + '<br/>纬度:' + poi.point.lat
that.ruleForm['lng'] = poi.point.lng
that.ruleForm['lat'] = poi.point.lat
var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");
marker.addEventListener("click", function () {
this.openInfoWindow(infoWindow);
});
var infoWindow = new BMap.InfoWindow('<p style=\'font-size:14px;\'>' + content + '</p>')
marker.addEventListener('click', function() {
this.openInfoWindow(infoWindow)
})
// marker.setAnimation(BMAP_ANIMATION_BOUNCE); //
});
localSearch.search(keyword);
})
localSearch.search(keyword)
}
},
@ -269,21 +301,21 @@ export default {
},
//
getImage(imagePath) {
let licenseImg = imagePath.join(",")
let licenseImg = imagePath.join(',')
},
//
getbeforeImgList(imagePath) {
let licenseImg = imagePath.join(",")
let licenseImg = imagePath.join(',')
this.$set(this.ruleForm, 'beforeImgList', licenseImg)
},
//
getmaterialsList(imagePath) {
let licenseImg = imagePath.join(",")
let licenseImg = imagePath.join(',')
this.$set(this.ruleForm, 'materialsList', licenseImg)
},
//
getmaterialsListAfter(imagePath) {
let licenseImg = imagePath.join(",")
let licenseImg = imagePath.join(',')
this.$set(this.ruleForm, 'materialsListAfter', licenseImg)
},
revealPhoto(licenseImg) {
@ -298,10 +330,12 @@ export default {
let newJson = [].concat.apply([], jsonData)
newJson.forEach(item => {
if (this.ruleForm.factoryInFlag == 1) {
for (let i = 0; i < this.formRow[8].elCol.length; i++) { }
for (let i = 0; i < this.formRow[8].elCol.length; i++) {
}
}
if (this.ruleForm.factoryInFlag == 0) {
for (let i = 0; i < this.formRow[8].elCol.length; i++) { }
for (let i = 0; i < this.formRow[8].elCol.length; i++) {
}
}
this.$set(this.ruleForm, item.prop, echoData[item.prop])
})
@ -349,15 +383,15 @@ export default {
resetField(field) {
if (this.ruleForm[field]) {
this.$set(this.ruleForm, field, '')
this.$refs['ruleForm'].clearValidate(field); //
this.$refs['ruleForm'].clearValidate(field) //
}
},
resetFields() {
this.choiceAssignment({})
this.$refs.ruleForm.resetFields();
this.$refs.ruleForm.resetFields()
},
// , index indexRow
selectChange(val, index, indexRow, options) {
selectChange(val, index, indexRow, options, row) {
let obj = {}
options.forEach((item) => {
if (item.value == val) {
@ -365,7 +399,10 @@ export default {
}
})
this.$emit('onSelect', val, index, indexRow, obj)
this.$forceUpdate();
if (row.changeRemind) {
this.$emit('changeRemind', this.ruleForm)
}
this.$forceUpdate()
},
switchChange(val, index, indexRow, row) {
this.$emit('switchChange', val, index, indexRow, row)
@ -380,10 +417,10 @@ export default {
if (valid) {
this.$emit('onSubmit', this.ruleForm)
} else {
console.log('error submit!!');
return false;
console.log('error submit!!')
return false
}
});
})
},
//
resetForm(formName) {
@ -408,10 +445,10 @@ export default {
// row.elDialogHoverType = false
},
// input
changeRadio(val, index, indexRow, row){
changeRadio(val, index, indexRow, row) {
this.$emit('onChangeRadio', val, index, indexRow, row)
},
normalizer(node,row) {
normalizer(node, row) {
//children=null
if (node.children == null || node.children == 'null') {
delete node.children
@ -424,10 +461,10 @@ export default {
selectTree(node, instanceId) {
this.$emit('selectTree', node)
},
treeSelectClear(){
treeSelectClear() {
this.$refs.selectTree.clear()
}
},
}
}
</script>
<style>
@ -442,15 +479,16 @@ export default {
flex: 1
}
.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before {
.el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
margin-right: 0;
content: ''
}
</style>
<style scoped lang='scss'>
::v-deep textarea.el-textarea__inner{
<style scoped lang="scss">
::v-deep textarea.el-textarea__inner {
min-height: 100px !important;
}
.label {
/* @include fontBase(16px, #333333) ; */
color: #333;
@ -460,7 +498,7 @@ export default {
padding-right: 5px;
}
>>>.el-form-item__label {
> > > .el-form-item__label {
width: 100px;
text-align: right !important;
margin-right: 10px !important;

View File

@ -21,6 +21,9 @@ export function openLoading(loadingName) {
case 'del':
loadingText = '删除'
break;
case 'test':
loadingText = '校验数据'
break;
}
appLoading = Loading.service({
text: "正在" + loadingText + ",请稍候",

View File

@ -85,10 +85,12 @@ const formRow = [
label: 'ip',
prop: 'sourceIp',
tag: 'elInput',
changeRemind:true,
}, {
label: '端口',
prop: 'sourcePort',
tag: 'elInput',
changeRemind:true,
}]
},
{
@ -96,10 +98,12 @@ const formRow = [
label: '数据库名称',
prop: 'dbName',
tag: 'elInput',
changeRemind:true,
}, {
label: '数据源类型',
prop: 'sourceType',
tag: 'elSelect',
changeRemind:true,
options: [
{
value: "1",
@ -121,10 +125,12 @@ const formRow = [
label: '登录名',
prop: 'loginName',
tag: 'elInput',
changeRemind:true,
}, {
label: '密码',
prop: 'password',
tag: 'elInput',
changeRemind:true,
}]
},
{
@ -132,7 +138,8 @@ const formRow = [
label: '服务名称',
prop: 'serviceName',
tag: 'elInput',
show:false
show:false,
changeRemind:true,
}, {
label: '使用状态',
prop: 'useState',

View File

@ -20,160 +20,229 @@
:spanWidth="`120px`"
:loading="vLoading"
@onSelect="onSelect"
@changeRemind="dataChanges"
></base-form>
<div class="btnList">
<div class="btn">
<el-button type="primary" @click="testDataHandle">校验数据源</el-button>
</div>
<div class="text">
<div v-if="dataState==0" style="color: red">请校验数据源</div>
<div v-else style="color: green">校验成功</div>
</div>
</div>
</base-right-dialog>
</div>
</template>
<script>
import baseRightDialog from "@/components/base/baseRightDialog";
import baseForm from "@/components/base/baseNewForm";
import baseTable from "@/components/base/baseTable";
import configData from "./configData";
import { authApi } from "@/api/apis/auth";
import baseRightDialog from '@/components/base/baseRightDialog'
import baseForm from '@/components/base/baseNewForm'
import baseTable from '@/components/base/baseTable'
import configData from './configData'
import { authApi } from '@/api/apis/auth'
export default {
components: {
baseRightDialog,
baseForm,
baseTable,
baseTable
},
data() {
return {
dialogVisible: false,
dialogTitle: "",
dialogType: "",
dialogTitle: '',
dialogType: '',
formRow: configData.formRow,
basicsRules: configData.basicsRules,
vLoading: false,
newMarryOptions: [],
submitShow: true,
};
dataState: 0// 10
}
},
mounted() {
},
mounted() {},
methods: {
//
dataChanges(row) {
console.log(row, '修改')
this.$set(row, 'dataState', 0)
this.dataState = 0
},
//
async testDataHandle() {
this.$refs.basicsForm.$refs['ruleForm'].validate(async(valid) => {
if (!valid) {
return
} else {
this.openLoading('test')
const res = await authApi('sysDataSourceService', '', 'testDatabase', '', {
...this.$refs.basicsForm.ruleForm
})
console.log(res, '测试结果')
if (res.attribute) {
this.dataState = 1
this.$set(this.$refs.basicsForm.ruleForm, 'dataState', 1)
} else {
this.dataState = 0
this.$set(this.$refs.basicsForm.ruleForm, 'dataState', 0)
}
this.$vmNews(res.msg)
}
})
},
openDialog(type, row) {
this.formRow = configData.formRow;
this.submitShow = true;
this.formRow[5].elCol[0].show = false;
this.formRow = configData.formRow
this.submitShow = true
this.formRow[5].elCol[0].show = false
//
if (type == "add") {
this.dialogTitle = "新增";
this.dialogType = "add";
this.formRow[0].elCol[0].disabled = false;
this.formRow[1].elCol[0].disabled = false;
if (type == 'add') {
this.dialogTitle = '新增'
this.dialogType = 'add'
this.formRow[0].elCol[0].disabled = false
this.formRow[1].elCol[0].disabled = false
this.$nextTick(() => {
this.$refs.basicsForm.getField("useState", 1);
});
this.$refs.basicsForm.getField('useState', 1)
this.dataState = 0
this.$set(this.$refs.basicsForm.ruleForm, 'dataState', 0)
})
}
//
if (type == "edit") {
this.formRow[0].elCol[0].disabled = true;
this.formRow[1].elCol[0].disabled = true;
this.dialogTitle = "编辑";
this.dialogType = "edit";
this.messageGetById(row.id);
if (type == 'edit') {
this.formRow[0].elCol[0].disabled = true
this.formRow[1].elCol[0].disabled = true
this.dialogTitle = '编辑'
this.dialogType = 'edit'
this.messageGetById(row.id)
}
//
if (type == "show") {
this.formRow[0].elCol[0].disabled = true;
this.formRow[1].elCol[0].disabled = true;
this.submitShow = false;
this.formRow = configData.formRowShow;
this.dialogTitle = "查看";
this.dialogType = "show";
this.messageGetById(row.id);
if (type == 'show') {
this.formRow[0].elCol[0].disabled = true
this.formRow[1].elCol[0].disabled = true
this.submitShow = false
this.formRow = configData.formRowShow
this.dialogTitle = '查看'
this.dialogType = 'show'
this.messageGetById(row.id)
}
this.dialogVisible = true;
this.dialogVisible = true
},
//
onSelect(val, index, indexRow, obj) {
// oracle
if (index == 3 && indexRow == 1 && val == 1) {
this.formRow[5].elCol[0].show = true;
this.formRow[5].elCol[0].show = true
} else {
this.formRow[5].elCol[0].show = false;
this.formRow[5].elCol[0].show = false
}
},
//
async messageGetById(id) {
let params = {
id: id,
};
id: id
}
let res = await authApi(
"sysDataSourceService",
"dataSource",
"queryEntity",
"",
'sysDataSourceService',
'dataSource',
'queryEntity',
'',
params
);
if (res.status == "200") {
)
if (res.status == '200') {
this.$nextTick(() => {
if(res.attribute.sourceType == "1"){
this.formRow[5].elCol[0].show = true;
}else{
this.formRow[5].elCol[0].show = false;
if (res.attribute.sourceType == '1') {
this.formRow[5].elCol[0].show = true
} else {
this.formRow[5].elCol[0].show = false
}
this.$refs.basicsForm.incomingParameters(res.attribute);
});
this.$refs.basicsForm.incomingParameters(res.attribute)
this.dataState = res.attribute.dataState
})
}
},
//
handleDialogClose() {
this.$refs.basicsForm.resetFields();
this.dialogVisible = false;
this.$refs.basicsForm.resetFields()
this.dialogVisible = false
},
//
handleConfirmClick() {
this.$refs.basicsForm.$refs["ruleForm"].validate((valid) => {
this.$refs.basicsForm.$refs['ruleForm'].validate((valid) => {
if (!valid) {
return;
return
} else {
let params = {
...this.$refs.basicsForm.ruleForm,
};
if (this.dialogType == "add") {
this.openLoading("submit");
this.messageSaveDto(params);
}
if (this.dialogType == "edit") {
this.openLoading("submit");
this.messageUpdateDto(params);
if (this.dataState == 0) {
this.$confirm('当前交钱未通过是否继续保存?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
showClose: false,
closeOnClickModal: false,
closeOnPressEscape: false,
type: 'warning'
}).then(() => {
let params = {
...this.$refs.basicsForm.ruleForm
}
if (this.dialogType == 'add') {
this.openLoading('submit')
this.messageSaveDto(params)
}
if (this.dialogType == 'edit') {
this.openLoading('submit')
this.messageUpdateDto(params)
}
})
} else {
let params = {
...this.$refs.basicsForm.ruleForm
}
if (this.dialogType == 'add') {
this.openLoading('submit')
this.messageSaveDto(params)
}
if (this.dialogType == 'edit') {
this.openLoading('submit')
this.messageUpdateDto(params)
}
}
}
});
})
},
//
async messageSaveDto(params) {
let res = await authApi(
"sysDataSourceService",
"dataSource",
"addEntity",
"",
'sysDataSourceService',
'dataSource',
'addEntity',
'',
params
);
if (res.status == "200") {
this.handleDialogClose();
this.$vmNews("新增成功", "success");
this.$emit("resetTable");
)
if (res.status == '200') {
this.handleDialogClose()
this.$vmNews('新增成功', 'success')
this.$emit('resetTable')
}
},
//
async messageUpdateDto(params) {
let res = await authApi(
"sysDataSourceService",
"dataSource",
"editEntity",
"",
'sysDataSourceService',
'dataSource',
'editEntity',
'',
params
);
if (res.status == "200") {
this.handleDialogClose();
this.$vmNews("更新成功", "success");
this.$emit("resetTable");
)
if (res.status == '200') {
this.handleDialogClose()
this.$vmNews('更新成功', 'success')
this.$emit('resetTable')
}
},
},
};
}
}
}
</script>
<style scoped lang="scss">
@ -207,4 +276,13 @@ export default {
::v-deep .app-container {
height: auto !important;
}
.btnList {
display: flex;
align-items: center;
.btn {
margin-right: 40px;
}
}
</style>

View File

@ -70,12 +70,13 @@
<el-checkbox
v-model="ruleForm[row.id]"
v-if="row.type == 'onecheck'"
:disabled="disabled"
>
</el-checkbox>
<el-input
v-model="ruleForm[row.id]"
clearable
:disabled="row.disabledOfId?Boolean(ruleForm.id):row.disabled"
:disabled="disabled || (row.disabledOfId?Boolean(ruleForm.id):row.disabled) "
:rows="row.rows ? row.rows : 2"
:type="row.type ? row.type : 'text'"
:maxlength="row.maxlength ? row.maxlength * 1 : '99'"
@ -95,7 +96,7 @@
v-if="row.type === 'num'"
v-model="ruleForm[row.id]"
style="width: 100%"
:disabled="row.disabled && !newFlag ? row.disabled : false"
:disabled="(row.disabled && !newFlag ? row.disabled : false) || disabled"
:precision="row.precisionNum ? row.precisionNum : 0"
:placeholder="!row.placeholder ? '请输入' : row.placeholder"
:step="row.stepNum ? row.stepNum : 1"
@ -173,7 +174,7 @@
filterable
:multiple="row.multiple"
@change="selectChange($event, index, indexRow, row)"
:disabled="row.disabled"
:disabled="row.disabled || disabled"
:clearable="row.clearable ? row.clearable : true"
:placeholder="!row.placeholder ? '请选择' : row.placeholder"
v-if="

View File

@ -118,6 +118,7 @@
@onSelect="selectChangeHanlde"
@inputBlur="optionFormInputBlur"
@onSubmit="optionOnSubmit"
:disabled="sonFormDisabled"
>
</baseNewForm>
<baseNewForm
@ -129,6 +130,7 @@
:labelPosition="'left'"
@onSelect="typeSelectChangeHanlde"
@onSubmit="typeOptionOnSubmit"
:disabled="sonFormDisabled"
>
</baseNewForm>
<baseNewForm
@ -139,6 +141,8 @@
:ruleForm="propertyRuleForm"
:labelPosition="'left'"
@onSubmit="propertyOnSubmit"
:disabled="sonFormDisabled"
>
</baseNewForm>
</div>
@ -146,7 +150,9 @@
可选控间属性
</div>
<div class="checkBoxList">
<el-checkbox-group v-model="propertyActiveList" @change="propertyActiveListChangeHanlde">
<el-checkbox-group :disabled="sonFormDisabled" v-model="propertyActiveList"
@change="propertyActiveListChangeHanlde"
>
<el-checkbox v-for="(item,index) in propertyList" :label="item.id" :key="item.id">{{
item.label
}}
@ -252,6 +258,7 @@ import baseDialog from '@/views/integrationOption/compoments/baseDialog'
export default {
data() {
return {
sonFormDisabled: false,
saveLoading: false,
mainLoading: false,
//options
@ -559,7 +566,58 @@ export default {
if (res.attribute.mainMdmModuleDb.id) {
this.mainTableData.push({ ...res.attribute.mainMdmModuleDb })
} else {
let tempObj = { dbType: '1', sublistMdmModuleDbFileds: [{}] }
console.log(123)
let tempObj = {
dbType: '1', sublistMdmModuleDbFileds: [{
'index': 0,
'chName': '数据状态',
'enName': 'dataStatus',
'filedType': '3',
'filedLength': '1',
'mdmModuleDbFiledsRules': [
{
'ruleName': '显示名',
'ruleCode': 'title',
'ruleValue': '数据状态',
'ruleType': 2,
'formName': 'optionRuleForm'
},
{
'ruleName': '宽度',
'ruleCode': 'row',
'ruleValue': '12',
'ruleType': 2,
'formName': 'optionRuleForm'
},
{
'ruleName': '单元格宽度',
'ruleCode': 'width',
'ruleType': 2,
'formName': 'optionRuleForm'
},
{
'ruleName': '数据类型',
'ruleCode': 'type',
'ruleValue': 'input',
'ruleType': 2,
'formName': 'optionRuleForm'
},
{
'ruleName': '必填',
'ruleCode': 'required',
'ruleType': 2,
'formName': 'optionRuleForm'
},
{
'ruleName': '禁止修改',
'ruleCode': 'disabled',
'ruleValue': true,
'ruleType': 2,
'formName': 'optionRuleForm'
}
]
}]
}
this.mainTableData.push(tempObj)
}
res.attribute.sublistMdmModuleDb.forEach(item => {
@ -732,7 +790,7 @@ export default {
})
},
//
//
mainOnClick(val) {
if (val.index === -1) return
this.activedTableRow = false
@ -744,7 +802,15 @@ export default {
this.activedTableData = val.sublistMdmModuleDbFileds
})
},
//
activedOnClick(val) {
//dataStatus
if (val.enName === 'dataStatus' && this.mainActivedRow.dbType == 1) {
this.sonFormDisabled = true
} else {
this.sonFormDisabled = false
}
this.activedTableRow = val
//typeruleForm
this.typeOptionFormRow = []
@ -757,7 +823,7 @@ export default {
let propertyRuleForm = []
let optionRuleForm = []
let typeOptionRuleForm = []
console.log(val)
this.$nextTick(() => {
//
this.$refs.optionForm.resetForm()
@ -768,10 +834,10 @@ export default {
top: 0,
behavior: 'smooth'
})
//
if (!val.mdmModuleDbFiledsRules) return
val.mdmModuleDbFiledsRules.forEach(item => {
if (item.ruleCode === 'required' || item.ruleCode === 'disabled') {
console.log(typeof item.ruleValue)
if (!item.ruleValue) {
this.$set(this[item.formName], item.ruleCode, false)
} else if (typeof item.ruleValue === 'boolean') {
@ -869,6 +935,7 @@ export default {
},
//
async saveHandle() {
console.log(this.mainTableData)
//
if (!this.receiptsShowTableData.length) {
this.$vmNews('单据规则不能为空', 'warning')

View File

@ -0,0 +1,336 @@
/**
* @desc 集成产品清单
* @date 2023-07-10
*/
// 表头
const tableColumnData = [
{
label: '应用编码',
prop: 'leftAppCode'
},
{
label: '应用名称',
prop: 'leftAppName'
},
{
label: '编码',
prop: 'leftCode'
},
{
label: '名称',
prop: 'leftName'
},
{
label: '应用编码',
prop: 'rightAppCode'
},
{
label: '应用名称',
prop: 'rightAppName'
},
{
label: '编码',
prop: 'rightCode'
},
{
label: '名称',
prop: 'rightName'
},
]
const tableVersionColumn = [
{
label: '参数名称',
prop: 'argName'
},
{
label: '参数编码',
prop: 'argCode'
},
{
label: '参数类型',
prop: 'argType',
width: 200
},
{
label: '备注',
prop: 'remark'
}
]
// 基本信息内容
const formRow = [
{
elCol: [
{
label: '左应用编码',
prop: 'leftAppCode',
tag: 'elInput',
span: 12
},
{
label: '左应用名称',
prop: 'leftAppName',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '主键',
prop: 'leftId',
tag: 'elInput',
span: 12
},
{
label: '编码',
prop: 'leftCode',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '名称',
prop: 'leftName',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '应用编码',
prop: 'rightAppCode',
tag: 'elInput',
span: 12
},
{
label: '应用名称',
prop: 'rightAppName',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '主键',
prop: 'rightId',
tag: 'elInput',
span: 12
},
{
label: '编码',
prop: 'rightCode',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '名称',
prop: 'rightName',
tag: 'elInput',
span: 12
},
{
label: '排序',
prop: 'sorts',
tag: 'elInput',
type: 'number',
span: 12
}
]
}
]
// 人员显示内容
const peopleFormRow = [
{
elCol: [
{
label: '左应用编码',
prop: 'leftAppCode',
tag: 'elInput',
span: 12
},
{
label: '左应用名称',
prop: 'leftAppName',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '主键',
prop: 'leftId',
tag: 'elInput',
span: 12
},
{
label: '编码',
prop: 'leftCode',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '名称',
prop: 'leftName',
tag: 'elInput',
span: 12
},
{
label: '手机号',
prop: 'leftTel',
tag: 'elInput',
type: 'number',
span: 12
},
]
},
{
elCol: [
{
label: '身份证号',
prop: 'leftIc',
tag: 'elInput',
type: 'number',
span: 12
},
]
},
{
elCol: [
{
label: '应用编码',
prop: 'rightAppCode',
tag: 'elInput',
span: 12
},
{
label: '应用名称',
prop: 'rightAppName',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '主键',
prop: 'rightId',
tag: 'elInput',
span: 12
},
{
label: '编码',
prop: 'rightCode',
tag: 'elInput',
span: 12
}
]
},
{
elCol: [
{
label: '名称',
prop: 'rightName',
tag: 'elInput',
span: 12
},
{
label: '手机号',
prop: 'rightTel',
tag: 'elInput',
type: 'number',
span: 12
}
]
},
{
elCol: [
{
label: '身份证号',
prop: 'rightIc',
tag: 'elInput',
type: 'number',
span: 12
},
{
label: '排序',
prop: 'sorts',
tag: 'elInput',
type: 'number',
span: 12
}
]
},
]
const basicsRules = {
leftCode: [{
required: true,
message: '请填写编码',
trigger: 'blur'
}],
leftName: [{
required: true,
message: '请填写名称',
trigger: 'blur'
}],
rightCode: [{
required: true,
message: '请填写编码',
trigger: 'blur'
}],
rightName: [{
required: true,
message: '请填写名称',
trigger: 'blur'
}],
}
// 查看
const formRowShow = [
{
elCol: [{
label: '插件',
prop: 'plugName',
tag: 'elLook',
disabled: true,
span: 24
}]
},
{
elCol: [{
label: '描述',
prop: 'remark',
tag: 'elLook',
type: 'textarea',
span: 24,
disabled: true
}]
}
]
export default {
tableColumnData,
formRow,
basicsRules,
formRowShow,
tableVersionColumn,
peopleFormRow
}

View File

@ -0,0 +1,383 @@
<template>
<div>
<base-right-dialog
ref="baseRightDialog"
:footerShow="true"
:dialogVisible.sync="dialogVisible"
:title="dialogTitle + ' 插件参数设置'"
@handleClose="handleDialogClose"
:type="dialogType"
:submitShow="submitShow"
@handleConfirmClick="handleConfirmClick"
>
<base-form
ref="basicsForm"
:formRow="formRow"
:isFunBtn="false"
:rules="basicsRules"
class="dialog_form"
:spanWidth="`120px`"
:loading="vLoading"
@onSelect="onSelect"
></base-form>
<el-button
style="width: 125px; margin: 20px 0"
@click="addVersionDialog"
icon="el-icon-plus"
:disabled="submitShow ? false : true"
v-if="submitShow"
>添加</el-button
>
<base-table
:border="true"
:showIndex="true"
:tableColumn="tableVersionColumn"
:tableData="tableVersionData"
:funWidth="80"
:funData="funData"
@onFunc="onFunc"
>
<template v-slot:argName="{ row }" >
<div style="width: 100%">
<template v-if="!submitShow">{{row.argName}}</template>
<el-input
v-else
v-model="row.argName"
clearable
type="text"
:disabled="!submitShow || row.disabled"
></el-input>
</div>
</template>
<template v-slot:argCode="{ row }">
<div style="width: 100%">
<template v-if="!submitShow">
{{ row.argCode }}
</template>
<el-input
v-else
v-model="row.argCode"
clearable
type="text"
:disabled="!submitShow"
></el-input>
</div>
</template>
<template v-slot:argType="{ row }">
<div style="width: 100%">
<!-- <el-radio-group v-model="row.argType" :disabled="!submitShow">-->
<!-- <el-radio label="1">字符串</el-radio>-->
<!-- <el-radio label="2">日期</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="row.argType" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</template>
<template v-slot:remark="{ row }">
<div style="width: 100%">
<template v-if="!submitShow">{{row.remark}}</template>
<el-input
v-model="row.remark"
clearable
type="text"
v-else
:disabled="!submitShow"
></el-input>
</div>
</template>
</base-table>
</base-right-dialog>
</div>
</template>
<script>
import baseRightDialog from "@/components/base/baseRightDialog";
import baseForm from "@/components/base/baseNewForm";
import baseTable from "@/components/base/baseTable";
import configData from "./configData";
import { authApi } from "@/api/apis/auth";
export default {
components: {
baseRightDialog,
baseForm,
baseTable,
},
data() {
return {
treeType:1,
dialogVisible: false,
dialogTitle: "",
dialogType: "",
formRow: configData.formRow,
basicsRules: configData.basicsRules,
vLoading: false,
newMarryOptions: [],
submitShow: true,
loadingType: true,
tableVersionData: [],
tableVersionColumn: configData.tableVersionColumn,
funData: [],
isEdit: false,
select_dist:{},
options:[
{
label:"字符串",
value:"1"
},
{
label:"日期范围选择",
value:"2"
},
{
label:"年月",
value:"3"
},
{
label:"年月日",
value:"4"
},
{
label:"年月日时间",
value:"5"
},
]
};
},
mounted() {
this.initSelect()
},
methods: {
//
async initSelect(){
let res = await authApi(
"pluginService",
"plugins",
"queryPluginsByType",
"",
{
"pluginType": "1"
}
);
if(res.status == 200){
console.log(res.attribute)
res.attribute.forEach(item=>{
this.$set(this.select_dist,item.pluginId,item)
})
console.log(res.attribute,'res.attribute插件返回')
this.formRow[0].elCol[0].options = res.attribute
}
},
//
onSelect(val, index, indexRow, obj){
this.$set(this.$refs.basicsForm.ruleForm,'plugName',this.select_dist[val]['pluginName'])
},
openDialog(type, row,treeType) {
this.treeType= treeType
// this.queryProductClassfy();
this.formRow = configData.formRow;
this.submitShow = true;
this.isEdit = false
this.funData = [
{
color: "#ff0000",
text: "删除",
}
]
//
if (type == "add") {
this.dialogTitle = "新增";
this.dialogType = "add";
}
//
if (type == "edit") {
this.isEdit = true
this.dialogTitle = "编辑";
this.dialogType = "edit";
this.productGetById(row.id);
}
//
if (type == "show") {
this.funData = Object.assign([],[])
this.submitShow = false;
this.formRow = configData.formRowShow;
this.dialogTitle = "查看";
this.dialogType = "show";
this.productGetById(row.id);
}
this.dialogVisible = true;
},
//
async productGetById(id) {
let params = {
id: id,
};
let res = await authApi(
"sysPlugArgService",
"integrationTaskService",
"getPlugArg",
"",
params
);
if (res.status == "200") {
this.$nextTick(() => {
this.$refs.basicsForm.incomingParameters(res.attribute);
this.tableVersionData = res.attribute.sysPlugArgDetailEntityList
// let result = [];
// this.tableVersionData = Object.assign([], result);
});
}
},
addVersionDialog() {
let obj = {
argName:"",
argCode:"",
argType:"1",
remark:"",
};
this.tableVersionData.push(obj);
},
//
onFunc(index, row) {
if (index == 0) {
this.$delConfirm().then(() => {
this.tableVersionData.forEach((item, itemIndex) => {
if (item.id === row.id) {
this.tableVersionData.splice(itemIndex, 1);
}
});
});
}
},
//
handleDialogClose() {
this.tableVersionData = Object.assign([], []);
this.$refs.basicsForm.resetFields();
this.dialogVisible = false;
},
//
handleConfirmClick() {
this.$refs.basicsForm.$refs["ruleForm"].validate((valid) => {
if (!valid) {
return;
} else {
if(!this.tableVersionData.length){
this.$vmNews("请添加列表")
return
}
let flag = this.tableVersionData.some(item=>{
if(!item.argName){
this.$vmNews("请输入参数名称")
return true
}
if(!item.argCode){
this.$vmNews("请输入参数编码")
return true
}
})
if(flag) return
let params = {
...this.$refs.basicsForm.ruleForm,
sysPlugArgDetailEntityList: this.tableVersionData,
};
if (this.dialogType == "add") {
this.openLoading("submit");
this.productSaveDto(params);
}
if (this.dialogType == "edit") {
this.openLoading("submit");
this.productUpdateDto(params);
}
}
});
},
//
async productSaveDto(params) {
let res = await authApi(
"sysPlugArgService",
"integrationTaskService",
"savePlugArg",
"",
params
);
if (res.status == "200") {
this.handleDialogClose();
this.$vmNews("新增成功", "success");
this.$emit("resetTable");
}
},
//
async productUpdateDto(params) {
let res = await authApi(
"sysPlugArgService",
"integrationTaskService",
"updatePlugArg",
"",
params
);
if (res.status == "200") {
this.handleDialogClose();
this.$vmNews("更新成功", "success");
this.$emit("resetTable");
}
},
//
async queryProductClassfy() {
let params = {
tab_name: "sys_product",
column_name: "classify",
};
let res = await authApi(
"generalServiceImpl",
"dictionaryshop",
"selectDictionaryshop",
"",
params
);
if (res.status == "200") {
console.log(res.attribute,'res.attribute123')
this.formRow[1].elCol[0].options = res.attribute;
}
},
},
};
</script>
<style scoped lang="scss">
.dialogList {
padding: 16px 0;
border-top: 1px solid #dcdfe6;
display: flex;
flex-direction: column;
}
.updateBtn {
border: 1px solid #ebedf1;
padding: 5px 0;
border-radius: 3px;
text-align: center;
font-size: 14px;
cursor: pointer;
width: 100px;
}
.updateBtn:hover {
color: #1890ff;
border-color: #badeff;
background-color: #e8f4ff;
}
::v-deep .el-table__body-wrapper.is-scrolling-none {
height: auto !important;
}
::v-deep .app-container {
height: auto !important;
}
</style>

View File

@ -0,0 +1,308 @@
<template>
<div style="display: flex">
<div class="left" style="width: 15%;">
<BaseMenuTree
:menuData="treeData"
:filterShow="true"
:Allshow="false"
:treeButton="false"
:filterButtonShow="false"
style="height: 100%"
:treeProps="treeProps"
@handleNodeClick="homeHandleNodeClick"
ref="menuTree"
></BaseMenuTree>
</div>
<div class="right" style="flex: 1">
<base-layout
ref="baseLayout"
:buttonList="buttonList"
@onFuncBtn="onFuncBtn"
:querySwitch="true"
:searchList="requirementList"
@search="handleSearchEvent"
:isPage="true"
@pageChange="handlePageChange"
>
<div slot="main" slot-scope="{ tableHeight }">
<base-table
ref="baseTable"
:showIndex="true"
:funWidth="180"
:funData="funData"
@onFunc="onFunc"
:tabLoading.sync="tabLoading"
:tableHeight="tableHeight"
:tableData="tableData"
:tableColumn="tableColumnData"
@onCellClick="onCellClick"
>
</base-table>
</div>
</base-layout>
</div>
<right-dialog ref="rightDialog" @resetTable="resetTable"></right-dialog>
<contrastRightDialog ref="contrastRightDialog" @resetTable="resetTable"></contrastRightDialog>
</div>
</template>
<script>
import contrastRightDialog from '@/views/recordContrast/contrastRightDialog.vue'
import baseLayout from '@/components/base/baseLayout'
import baseTable from '@/components/base/baseTable'
import rightDialog from './rightDialog'
import configData from './configData'
import { authApi } from '@/api/apis/auth'
import BaseMenuTree from '@/views/intergrationTask/compoments/baseMenuTree.vue'
export default {
components: {
BaseMenuTree,
baseLayout,
baseTable,
rightDialog,
contrastRightDialog
},
data() {
return {
type: 1,//type
treeProps: {
children: 'children',
label: 'name'
},
treeData: [
{
name: '人员对照',
type: '1'
},
{
name: '部门档案',
type: '2'
},
{
name: '存货对照',
type: '3'
},
{
name: '客商辅助核算',
type: '4'
},
{
name: '税率',
type: '5'
},
{
name: '项目辅助核算',
type: '6'
},
{
name: '银行类别',
type: '7'
},
{
name: '银行账户',
type: '8'
},
{
name: '资产类别',
type: '9'
}
],
buttonList: [
{
menuName: '新增',
icon: 'el-icon-plus',
btnFunction: 'add'
},
{
menuName: '刷新',
icon: 'el-icon-refresh',
btnFunction: 'resetLoad'
},
// {
// menuName: '',
// icon: 'el-icon-s-open',
// btnFunction: 'contrast'
// }
], //
requirementList: [
{
placeholder: '编码',
prop: 'leftCode',
tag: 'elInput'
},
{
placeholder: '名称',
prop: 'leftName',
tag: 'elInput'
},
{
placeholder: '编码',
prop: 'rightCode',
tag: 'elInput'
},
{
placeholder: '名称',
prop: 'rightName',
tag: 'elInput'
}
], //list
tabLoading: false,
tableColumnData: configData.tableColumnData, //
funData: [
{
color: '#6a9af1',
text: '编辑'
},
{
color: '#d67a74',
text: '删除'
}
],
tableData: [], //
pageModel: {
pageNum: 1,
pageSize: 100
},
queryModel: {
code: '',
name: '',
classify: '',
productionCompany: ''
}
}
},
mounted() {
// this.queryProductClassfy();
this.GetProductionTableData()
this.$refs.menuTree.clickFirst()
},
methods: {
contrast() {
this.$refs.contrastRightDialog.openDialog('add', {}, this.type)
},
//
homeHandleNodeClick(data) {
this.pageModel.pageNum = 1
this.type = data.type
this.$refs.baseLayout.pageClear()
this.GetProductionTableData()
},
onCellClick(row) {
this.openLoading('detail')
this.$refs.rightDialog.openDialog('show', row, this.type)
},
//
async GetProductionTableData() {
this.tabLoading = true
let param = {
...this.pageModel,
...this.queryModel,
type: this.type
}
let res = await authApi(
'sysArchivesContrastService',
'',
'queryEntityPage',
'',
param
)
this.tabLoading = false
if (res.status == '200') {
console.log(res.attribute.list, 'res.attribute.list')
this.tableData = res.attribute.list
this.$refs.baseLayout.setPageTotal(res.attribute.total)
}
},
//
handlePageChange(val) {
this.pageModel.pageNum = val.pageIndex
this.pageModel.pageSize = val.pageSize
this.GetProductionTableData()
},
//
onFuncBtn(btn) {
this[btn.btnFunction]()
},
//
add() {
this.$refs.rightDialog.openDialog('add', {}, this.type)
},
//
onFunc(index, row, item) {
//
if (item.text === '查看') {
this.openLoading('detail')
this.$refs.rightDialog.openDialog('show', row, this.type)
}
//
if (item.text === '编辑') {
this.openLoading('detail')
this.$refs.rightDialog.openDialog('edit', row, this.type)
}
//
if (item.text === '删除') {
this.$delConfirm().then(() => {
this.openLoading('del')
this.productionDeleteById(row.id)
})
}
},
async productionDeleteById(id) {
let param = {
id: id,
type: this.type
}
let res = await authApi(
'sysArchivesContrastService',
'',
'deleteEntity',
'',
param
)
if (res.status == '200') {
this.$vmNews('删除成功', 'success')
this.resetTable()
}
},
//
resetTable() {
this.pageModel.pageNum = 1
this.$refs.baseLayout.pageClear()
this.GetProductionTableData()
},
//
handleSearchEvent() {
let data = this.$refs.baseLayout.ruleForm
this.queryModel = data
this.resetTable()
},
//
async queryProductClassfy() {
let params = {
tab_name: 'sys_product',
column_name: 'classify'
}
let res = await authApi(
'generalServiceImpl',
'dictionaryshop',
'selectDictionaryshop',
'',
params
)
if (res.status == '200') {
this.requirementList[2].options = res.attribute
}
}
}
}
</script>
<style scoped>
.clickTitle {
color: #409eff;
cursor: pointer;
}
</style>

View File

@ -0,0 +1,376 @@
<template>
<div>
<base-right-dialog
ref="baseRightDialog"
:footerShow="true"
:dialogVisible.sync="dialogVisible"
:title="dialogTitle + ' 档案对照'"
@handleClose="handleDialogClose"
:type="dialogType"
:submitShow="submitShow"
@handleConfirmClick="handleConfirmClick"
>
<base-form
ref="basicsForm"
:formRow="formRow"
:isFunBtn="false"
:rules="basicsRules"
class="dialog_form"
:spanWidth="`120px`"
:loading="vLoading"
@onSelect="onSelect"
:disabled="dialogTitle==='查看'"
></base-form>
<!-- <el-button-->
<!-- style="width: 125px; margin: 20px 0"-->
<!-- @click="addVersionDialog"-->
<!-- icon="el-icon-plus"-->
<!-- :disabled="submitShow ? false : true"-->
<!-- v-if="submitShow"-->
<!-- >添加-->
<!-- </el-button-->
<!-- >-->
<!-- <base-table-->
<!-- :border="true"-->
<!-- :showIndex="true"-->
<!-- :tableColumn="tableVersionColumn"-->
<!-- :tableData="tableVersionData"-->
<!-- :funWidth="80"-->
<!-- :funData="funData"-->
<!-- @onFunc="onFunc"-->
<!-- >-->
<!-- <template v-slot:argName="{ row }">-->
<!-- <div style="width: 100%">-->
<!-- <template v-if="!submitShow">{{ row.argName }}</template>-->
<!-- <el-input-->
<!-- v-else-->
<!-- v-model="row.argName"-->
<!-- clearable-->
<!-- type="text"-->
<!-- :disabled="!submitShow || row.disabled"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </template>-->
<!-- <template v-slot:argCode="{ row }">-->
<!-- <div style="width: 100%">-->
<!-- <template v-if="!submitShow">-->
<!-- {{ row.argCode }}-->
<!-- </template>-->
<!-- <el-input-->
<!-- v-else-->
<!-- v-model="row.argCode"-->
<!-- clearable-->
<!-- type="text"-->
<!-- :disabled="!submitShow"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </template>-->
<!-- <template v-slot:argType="{ row }">-->
<!-- <div style="width: 100%">-->
<!-- &lt;!&ndash; <el-radio-group v-model="row.argType" :disabled="!submitShow">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-radio label="1">字符串</el-radio>&ndash;&gt;-->
<!-- &lt;!&ndash; <el-radio label="2">日期</el-radio>&ndash;&gt;-->
<!-- &lt;!&ndash; </el-radio-group>&ndash;&gt;-->
<!-- <el-select v-model="row.argType" placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in options"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </div>-->
<!-- </template>-->
<!-- <template v-slot:remark="{ row }">-->
<!-- <div style="width: 100%">-->
<!-- <template v-if="!submitShow">{{ row.remark }}</template>-->
<!-- <el-input-->
<!-- v-model="row.remark"-->
<!-- clearable-->
<!-- type="text"-->
<!-- v-else-->
<!-- :disabled="!submitShow"-->
<!-- ></el-input>-->
<!-- </div>-->
<!-- </template>-->
<!-- </base-table>-->
</base-right-dialog>
</div>
</template>
<script>
import baseRightDialog from '@/components/base/baseRightDialog'
import baseForm from '@/components/base/baseNewForm'
import baseTable from '@/components/base/baseTable'
import configData from './configData'
import { authApi } from '@/api/apis/auth'
export default {
components: {
baseRightDialog,
baseForm,
baseTable
},
data() {
return {
treeType: 1,
dialogVisible: false,
dialogTitle: '',
dialogType: '',
formRow: configData.formRow,
basicsRules: configData.basicsRules,
vLoading: false,
newMarryOptions: [],
submitShow: true,
loadingType: true,
tableVersionData: [],
tableVersionColumn: configData.tableVersionColumn,
funData: [],
isEdit: false,
select_dist: {},
options: [
{
label: '字符串',
value: '1'
},
{
label: '日期范围选择',
value: '2'
},
{
label: '年月',
value: '3'
},
{
label: '年月日',
value: '4'
},
{
label: '年月日时间',
value: '5'
}
]
}
},
mounted() {
this.initSelect()
},
methods: {
//
async initSelect() {
let res = await authApi(
'pluginService',
'plugins',
'queryPluginsByType',
'',
{
'pluginType': '1'
}
)
if (res.status == 200) {
console.log(res.attribute)
res.attribute.forEach(item => {
this.$set(this.select_dist, item.pluginId, item)
})
console.log(res.attribute, 'res.attribute插件返回')
this.formRow[0].elCol[0].options = res.attribute
}
},
//
onSelect(val, index, indexRow, obj) {
this.$set(this.$refs.basicsForm.ruleForm, 'plugName', this.select_dist[val]['pluginName'])
},
openDialog(type, row, treeType) {
this.treeType = treeType
console.log(treeType, 'treeType')
if (treeType == 1) {
this.formRow = configData.peopleFormRow
} else {
this.formRow = configData.formRow
}
// this.queryProductClassfy();
this.submitShow = true
this.isEdit = false
this.funData = [
{
color: '#ff0000',
text: '删除'
}
]
//
if (type == 'add') {
this.dialogTitle = '新增'
this.dialogType = 'add'
}
//
if (type == 'edit') {
this.isEdit = true
this.dialogTitle = '编辑'
this.dialogType = 'edit'
this.productGetById(row.id)
}
//
if (type == 'show') {
this.funData = Object.assign([], [])
this.submitShow = false
this.dialogTitle = '查看'
this.dialogType = 'show'
this.productGetById(row.id)
}
this.dialogVisible = true
},
//
async productGetById(id) {
let params = {
id: id,
type: this.treeType
}
let res = await authApi(
'sysArchivesContrastService',
'',
'getEntity',
'',
params
)
if (res.status == '200') {
this.$nextTick(() => {
this.$refs.basicsForm.incomingParameters(res.attribute)
// let result = [];
// this.tableVersionData = Object.assign([], result);
})
}
},
addVersionDialog() {
let obj = {
argName: '',
argCode: '',
argType: '1',
remark: ''
}
this.tableVersionData.push(obj)
},
//
onFunc(index, row) {
if (index == 0) {
this.$delConfirm().then(() => {
this.tableVersionData.forEach((item, itemIndex) => {
if (item.id === row.id) {
this.tableVersionData.splice(itemIndex, 1)
}
})
})
}
},
//
handleDialogClose() {
this.tableVersionData = Object.assign([], [])
this.$refs.basicsForm.resetFields()
this.dialogVisible = false
},
//
handleConfirmClick() {
this.$refs.basicsForm.$refs['ruleForm'].validate((valid) => {
if (!valid) {
return
} else {
let params = {
...this.$refs.basicsForm.ruleForm,
type: this.treeType
}
if (this.dialogType == 'add') {
this.openLoading('submit')
this.productSaveDto(params)
}
if (this.dialogType == 'edit') {
this.openLoading('submit')
this.productUpdateDto(params)
}
}
})
},
//
async productSaveDto(params) {
let res = await authApi(
'sysArchivesContrastService',
'',
'saveEntity',
'',
params
)
if (res.status == '200') {
this.handleDialogClose()
this.$vmNews('新增成功', 'success')
this.$emit('resetTable')
}
},
//
async productUpdateDto(params) {
let res = await authApi(
'sysArchivesContrastService',
'',
'updateEntity',
'',
params
)
if (res.status == '200') {
this.handleDialogClose()
this.$vmNews('更新成功', 'success')
this.$emit('resetTable')
}
},
//
async queryProductClassfy() {
let params = {
tab_name: 'sys_product',
column_name: 'classify'
}
let res = await authApi(
'generalServiceImpl',
'dictionaryshop',
'selectDictionaryshop',
'',
params
)
if (res.status == '200') {
console.log(res.attribute, 'res.attribute123')
this.formRow[1].elCol[0].options = res.attribute
}
}
}
}
</script>
<style scoped lang="scss">
.dialogList {
padding: 16px 0;
border-top: 1px solid #dcdfe6;
display: flex;
flex-direction: column;
}
.updateBtn {
border: 1px solid #ebedf1;
padding: 5px 0;
border-radius: 3px;
text-align: center;
font-size: 14px;
cursor: pointer;
width: 100px;
}
.updateBtn:hover {
color: #1890ff;
border-color: #badeff;
background-color: #e8f4ff;
}
::v-deep .el-table__body-wrapper.is-scrolling-none {
height: auto !important;
}
::v-deep .app-container {
height: auto !important;
}
</style>

View File

@ -73,9 +73,9 @@
</el-table>
</el-tab-pane
>
<el-tab-pane label="数据权限" name="second">
<data-permissions ref="dataPermissions"></data-permissions>
</el-tab-pane>
<!-- <el-tab-pane label="数据权限" name="second">-->
<!-- <data-permissions ref="dataPermissions"></data-permissions>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="首页拖拽权限" name="layOutAuth">
<layOutPermissions ref="layOutPermissions"></layOutPermissions>
</el-tab-pane>
@ -234,8 +234,7 @@ export default {
//
this.$refs.layOutPermissions.homeList = list.homeList
//
this.$refs.dataPermissions.interfaceList = list.interfaceList
console.log(this.$refs.dataPermissions.interfaceList, 'this.$refs.dataPermissions.interfaceList')
// this.$refs.dataPermissions.interfaceList = list.interfaceList
// let data = this.treeToArray(this.menuDatas);
this.build = id
// data.forEach((el, index) => {
@ -305,11 +304,11 @@ export default {
},
//
interfaceListHandle(arr) {
this.$refs.dataPermissions.interfaceList.forEach(item => {
if (item.check) {
arr.push({ interfaceId: item.id })
}
})
// this.$refs.dataPermissions.interfaceList.forEach(item => {
// if (item.check) {
// arr.push({ interfaceId: item.id })
// }
// })
},
//
homeListHandle(arr) {

View File

@ -73,9 +73,9 @@
</el-table>
</el-tab-pane
>
<el-tab-pane label="数据权限" name="second">
<data-permissions ref="dataPermissions"></data-permissions>
</el-tab-pane>
<!-- <el-tab-pane label="数据权限" name="second">-->
<!-- <data-permissions ref="dataPermissions"></data-permissions>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="首页拖拽权限" name="layOutAuth">
<layOutPermissions ref="layOutPermissions"></layOutPermissions>
</el-tab-pane>
@ -234,8 +234,7 @@ export default {
//
this.$refs.layOutPermissions.homeList = list.homeList
//
this.$refs.dataPermissions.interfaceList = list.interfaceList
console.log(this.$refs.dataPermissions.interfaceList, 'this.$refs.dataPermissions.interfaceList')
// this.$refs.dataPermissions.interfaceList = list.interfaceList
// let data = this.treeToArray(this.menuDatas);
this.build = id
// data.forEach((el, index) => {
@ -245,7 +244,6 @@ export default {
// });
this.menuCheckHandle(menu)
this.menuDatas = menu
console.log(this.menuDatas, 'this.menuDatas')
this.buttonLoading = false
},
//
@ -305,11 +303,11 @@ export default {
},
//
interfaceListHandle(arr) {
this.$refs.dataPermissions.interfaceList.forEach(item => {
if (item.check) {
arr.push({ interfaceId: item.id })
}
})
// this.$refs.dataPermissions.interfaceList.forEach(item => {
// if (item.check) {
// arr.push({ interfaceId: item.id })
// }
// })
},
//
homeListHandle(arr) {

View File

@ -39,9 +39,9 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://hzya.ufyct.com:9067/`,
// target: `http://hzya.ufyct.com:9067/`,
// target: `http://127.0.0.1:9081/`,
// target: `http://192.168.2.78:9999`,
target: `http://192.168.2.78:9999`,
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",