<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>
