gaoshp
2024-06-03 6f1ac1da6b6cba5c74f2fb6be82f7e472c4116ee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<template>
    <el-dialog :title="titleMap[mode]" v-model="visible" :width="700" destroy-on-close @closed="$emit('closed')">
        <div class="field-title">基础字段</div>
        <el-checkbox-group v-model="checkListData">
            <el-checkbox v-for="item in checkList" :label="item.fieldName" :disabled="item.sysFieldMust == 1?true:false" />
         </el-checkbox-group>
         <div class="field-title">
             扩展字段
             <span class="add-field" @click="openSelect">+ 添加字段</span>
         </div>
         <el-checkbox-group v-model="extendListData" v-if="extendCheckList.length > 0">
            <el-checkbox v-for="item in extendCheckList" :label="item.fieldName" :disabled="item.sysFieldMust == 1?true:false" />
         </el-checkbox-group>
        <template #footer>
            <el-button @click="visible=false">取消</el-button>
            <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="selectSubmit">确定</el-button>
        </template>
    </el-dialog>
</template>
 
<script>
    export default {
        emits: ['success', 'closed'],
        data() {
            return {
                id: "",
                configType: "",
                checkListData: [],
                checkList: [],
                extendListData: [],
                extendCheckList: [],
                mode: "add",
                titleMap: {
                    add: '添加字段',
                    edit: '修改',
                    show: '查看'
                },
                visible: false,
                isSaveing: false,
            }
        },
        mounted() {
            
        },
        components: {
            
        },
        methods: {
            openSelect() {
                this.$emit('addExtend', true);
                this.visible = false;
            },
            //显示
            open(data,id,configType,mode='add'){
                this.mode = mode;
                this.visible = true;
                this.checkList = data.systemFieldList || [];
                this.extendCheckList = data.customFieldList || [];
                this.checkList.forEach(item=> {
                    if(item.sort !=null) {
                        this.checkListData.push(item.fieldName);
                    }
                })
                this.extendCheckList.forEach(item=> {
                    if(item.sort !=null) {
                        this.extendListData.push(item.fieldName);
                    }
                })
                this.id = id;
                this.configType = configType;
                return this
            },
            //表单提交方法
            selectSubmit(){
                var list = [];
                this.checkList.forEach(item=> {
                    this.checkListData.forEach(item1=> {
                        if(item.fieldName == item1) {
                            list.push(item.fieldId);
                        }
                    })
                })
                this.extendCheckList.forEach(item=> {
                    this.extendListData.forEach(item1=> {
                        if(item.fieldName == item1) {
                            list.push(item.fieldId);
                        }
                    })
                })
                var obj ={
                    businessType: this.$route.query.type,
                    configType: this.configType,
                    fieldList: list,
                    templateId: this.id
                };
                this.isSaveing = true;
                this.$HTTP.post("/api/blade-system/custom-template-field-relation/insert",obj).then(res=> {
                    this.isSaveing = false;
                    if(res.code == 200) {
                        this.$emit('success', this.checkListData, this.mode);
                        this.visible = false;
                        this.$message.success("操作成功");
                    }else {
                        this.$alert(res.message, "提示", {type: 'error'});
                    }
                })
            },
            //表单注入数据
            setData(data){
                //Object.assign(this.addPlanForm, data);
            }
        }
    }
</script>
 
<style scoped>
.add-field {
    color: #409eff;
    font-weight: 400;
    font-size: 14px;
    cursor: pointer;
    padding-left: 8px;
    margin: 0;
}
.field-title {
    font-size: 14px;
    color: #5f5f5f;
    margin: 14px 0;
}
</style>