106 lines
2.9 KiB
Vue
106 lines
2.9 KiB
Vue
|
<template>
|
||
|
<el-dialog v-dialogDrag title="复制线路操作" :visible.sync="dialogVisible" width="400px" :before-close="handleClose" center :close-on-click-modal="false">
|
||
|
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||
|
<span slot="footer" class="dialog-footer">
|
||
|
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||
|
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
|
||
|
</span>
|
||
|
</el-dialog>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
|
||
|
export default {
|
||
|
name: 'EditCondition',
|
||
|
props: {
|
||
|
taskStatusList: {
|
||
|
type: Array,
|
||
|
default: []
|
||
|
}
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
dialogVisible: false,
|
||
|
formModel: {
|
||
|
fromId: '',
|
||
|
fromName: '',
|
||
|
targetIds: '',
|
||
|
deviceType: []
|
||
|
},
|
||
|
deviceTypeList: [],
|
||
|
targetList: [],
|
||
|
lineCode: ''
|
||
|
};
|
||
|
},
|
||
|
watch: {
|
||
|
taskStatusList(list) {
|
||
|
this.targetList = [];
|
||
|
list.forEach(item => {
|
||
|
if (item.value != this.lineCode) {
|
||
|
this.targetList.push(item);
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
computed: {
|
||
|
form() {
|
||
|
const form = {
|
||
|
labelWidth: '100px',
|
||
|
items: [
|
||
|
{ prop: 'fromName', label: '源线路', type: 'text', disabled: true },
|
||
|
{ prop: 'targetIds', label:'拷贝线路', type: 'select', options: this.targetList, multiple: true },
|
||
|
{ prop: 'deviceType', label: '操作对象', type: 'select', options: this.deviceTypeList, multiple: true }
|
||
|
]
|
||
|
};
|
||
|
return form;
|
||
|
},
|
||
|
rules() {
|
||
|
return {
|
||
|
fromName: [
|
||
|
{ required: true, message: '请选择拷贝源线路', trigger: 'blur' }
|
||
|
],
|
||
|
targetIds: [
|
||
|
{ required: true, message: '请选择需要拷贝线路', trigger: 'blur' }
|
||
|
]
|
||
|
};
|
||
|
}
|
||
|
},
|
||
|
created() {
|
||
|
this.deviceTypeList = [];
|
||
|
this.$ConstSelect.deviceTypeList.forEach(item => {
|
||
|
this.deviceTypeList.push(item);
|
||
|
})
|
||
|
},
|
||
|
methods: {
|
||
|
doShow(lineCode) {
|
||
|
this.dialogVisible = true;
|
||
|
if (lineCode) {
|
||
|
this.lineCode = lineCode;
|
||
|
this.targetList = [];
|
||
|
this.taskStatusList.forEach(item => {
|
||
|
item.value = item.id;
|
||
|
item.label = item.name;
|
||
|
if (item.code != lineCode) {
|
||
|
this.targetList.push(item);
|
||
|
} else {
|
||
|
this.formModel.fromId = item.id;
|
||
|
this.formModel.fromName = item.name;
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
doSave() {
|
||
|
const self = this;
|
||
|
this.$refs.dataform.validateForm(() => {
|
||
|
console.log('确定')
|
||
|
this.handleClose();
|
||
|
});
|
||
|
},
|
||
|
handleClose() {
|
||
|
this.$refs.dataform.resetForm();
|
||
|
this.dialogVisible = false;
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
</script>
|