Sfoglia il codice sorgente

Merge branch 'hcb' of SH-Arbitrate/Arbitrate-Frontend into dev

hanchaobo 2 anni fa
parent
commit
2a582b2a80
1 ha cambiato i file con 150 aggiunte e 27 eliminazioni
  1. 150
    27
      src/views/officialSeal/components/grabRules.vue

+ 150
- 27
src/views/officialSeal/components/grabRules.vue Vedi File

@@ -2,12 +2,15 @@
2 2
     <div>
3 3
         <el-dialog title="设置抓取规则" :visible="rulesVisable" v-if="rulesVisable" @close="cancelRules" width="1000px"
4 4
             append-to-body :destroy-on-close="true" center>
5
-            <el-button type="primary" icon="el-icon-plus" style="margin-bottom: 20px;" @click="addForm">新增抓取规则</el-button>
5
+            <el-button type="primary" icon="el-icon-plus" style="margin-bottom: 20px;"
6
+                @click="addForm">新增系统内置抓取规则</el-button>
6 7
             <div class="formDom">
7 8
                 <el-form ref="form" :model="formData" label-width="150px">
8 9
                     <div class="formItem" v-for="(item, index) in formData.forms" :key="item.key">
10
+                        <el-button type="primary" icon="el-icon-delete" style="margin-bottom: 20px;"
11
+                            @click="deleteForm(item)">删除</el-button>
9 12
                         <el-row>
10
-                            <el-col :span="12">
13
+                            <!-- <el-col :span="12">
11 14
                                 <el-form-item label="字段:" :prop="'forms.' + index + '.column'" :rules="[
12 15
                                     {
13 16
                                         required: true,
@@ -17,13 +20,97 @@
17 20
                                 ]">
18 21
                                     <el-input v-model="item.column" placeholder="请输入字段" />
19 22
                                 </el-form-item>
23
+                                <el-form-item label="字段:" :prop="'forms.' + index + '.column'" :rules="[
24
+                                    {
25
+                                        required: true,
26
+                                        message: '字段不能为空',
27
+                                    },
28
+                                ]">
29
+                                    <el-select v-model="item.column" placeholder="请选择">
30
+                                        <el-option v-for="dict in selectList" :key="dict.id" :label="dict.column"
31
+                                            :value="dict.column"></el-option>
32
+                                    </el-select>
33
+                                </el-form-item>
34
+                            </el-col> -->
35
+                            <el-col :span="12">
36
+                                <!-- <el-form-item label="字段名:" :prop="'forms.' + index + '.columnName'" :rules="[
37
+                                    {
38
+                                        required: true,
39
+                                        message: '字段名不能为空',
40
+                                        trigger: 'blur',
41
+                                    },
42
+                                ]">
43
+                                    <el-input v-model="item.columnName" placeholder="请输入字段名" />
44
+                                </el-form-item> -->
45
+                                <el-form-item label="字段名:" :prop="'forms.' + index + '.columnName'" :rules="[
46
+                                    {
47
+                                        required: true,
48
+                                        message: '字段名不能为空',
49
+                                    },
50
+                                ]">
51
+                                    <el-select v-model="item.columnName" placeholder="请选择" @change="columnNameChange(item)">
52
+                                        <el-option v-for="dict in dict.type.case_built_type" :key="dict.value"
53
+                                            :label="dict.label" :value="dict.label"></el-option>
54
+                                    </el-select>
55
+                                </el-form-item>
56
+                            </el-col>
57
+                            <el-col :span="12">
58
+                                <el-form-item label="抓取文件名:" :prop="'forms.' + index + '.fileName'" :rules="[
59
+                                    {
60
+                                        required: true,
61
+                                        message: '抓取文件名不能为空',
62
+                                    },
63
+                                ]">
64
+                                    <el-input v-model="item.fileName" placeholder="请输入抓取文件名" />
65
+                                </el-form-item>
66
+                            </el-col>
67
+                            <el-col :span="12">
68
+                                <el-form-item label="开始抓取字段:" :prop="'forms.' + index + '.startContent'" :rules="[
69
+                                    {
70
+                                        required: true,
71
+                                        message: '开始抓取字段不能为空',
72
+                                    },
73
+                                ]">
74
+                                    <el-input v-model="item.startContent" placeholder="请输入开始抓取字段" />
75
+                                </el-form-item>
76
+                            </el-col>
77
+                            <el-col :span="12">
78
+                                <el-form-item label="结束抓取字段:" :prop="'forms.' + index + '.endContent'" :rules="[
79
+                                    {
80
+                                        required: true,
81
+                                        message: '结束抓取字段不能为空',
82
+                                    },
83
+                                ]">
84
+                                    <el-input v-model="item.endContent" placeholder="结束抓取字段" />
85
+                                </el-form-item>
86
+                            </el-col>
87
+                        </el-row>
88
+                    </div>
89
+                </el-form>
90
+            </div>
91
+            <el-button type="primary" icon="el-icon-plus" style="margin-bottom: 20px;"
92
+                @click="addFormCustom">新增自定义抓取规则</el-button>
93
+            <div class="formDom">
94
+                <el-form ref="form_custom" :model="formData_custom" label-width="150px">
95
+                    <div class="formItem" v-for="(item, index) in formData_custom.forms" :key="item.key">
96
+                        <el-button type="primary" icon="el-icon-delete" style="margin-bottom: 20px;"
97
+                            @click="deleteFormCustom(item)">删除</el-button>
98
+                        <el-row>
99
+                            <el-col :span="12">
100
+                                <el-form-item label="字段:" :prop="'forms.' + index + '.column'" :rules="[
101
+                                    {
102
+                                        required: true,
103
+                                        message: '字段不能为空',
104
+                                    },
105
+                                ]">
106
+                                    <el-input v-model="item.column" placeholder="请输入字段" />
107
+                                </el-form-item>
20 108
                             </el-col>
21 109
                             <el-col :span="12">
22 110
                                 <el-form-item label="字段名:" :prop="'forms.' + index + '.columnName'" :rules="[
23 111
                                     {
24 112
                                         required: true,
25 113
                                         message: '字段名不能为空',
26
-                                        trigger: 'blur',
27 114
                                     },
28 115
                                 ]">
29 116
                                     <el-input v-model="item.columnName" placeholder="请输入字段名" />
@@ -34,7 +121,6 @@
34 121
                                     {
35 122
                                         required: true,
36 123
                                         message: '抓取文件名不能为空',
37
-                                        trigger: 'blur',
38 124
                                     },
39 125
                                 ]">
40 126
                                     <el-input v-model="item.fileName" placeholder="请输入抓取文件名" />
@@ -45,7 +131,6 @@
45 131
                                     {
46 132
                                         required: true,
47 133
                                         message: '开始抓取字段不能为空',
48
-                                        trigger: 'blur',
49 134
                                     },
50 135
                                 ]">
51 136
                                     <el-input v-model="item.startContent" placeholder="请输入开始抓取字段" />
@@ -56,7 +141,6 @@
56 141
                                     {
57 142
                                         required: true,
58 143
                                         message: '结束抓取字段不能为空',
59
-                                        trigger: 'blur',
60 144
                                     },
61 145
                                 ]">
62 146
                                     <el-input v-model="item.endContent" placeholder="结束抓取字段" />
@@ -80,25 +164,30 @@ import {
80 164
 } from "@/api/officialSeal/officialSeal.js";
81 165
 export default {
82 166
     props: ["rulesVisable", "rulesData", "queryParams"],
167
+    dicts: ["case_built_type"],
83 168
     data() {
84 169
         return {
85 170
             formData: {
86 171
                 forms: [{
87
-                    fileName: "",
88
-                    startContent: '',
89
-                    endContent: '',
90
-                    column: "",
91
-                    columnName: "",
92
-                    key: Date.now()
172
+                    // fileName: "",
173
+                    // startContent: '',
174
+                    // endContent: '',
175
+                    // column: "",
176
+                    // columnName: "",
93 177
                 }]
94 178
             },
179
+            formData_custom: {
180
+                forms: []
181
+            },
182
+            // selectList: []
95 183
         };
96 184
     },
97 185
     watch: {
98 186
         rulesData(val) {
99 187
             if (val) {
100
-                console.log(val, "llllllllllllllll");
101
-                this.getFatchRuleByTemplateidFn({ id: val.id })
188
+                this.formData.forms = [];
189
+                this.formData_custom.forms = [];
190
+                // this.getFatchRuleByTemplateidFn({ id: val.id })
102 191
             }
103 192
         }
104 193
     },
@@ -115,32 +204,66 @@ export default {
115 204
                 startContent: '',
116 205
                 endContent: '',
117 206
                 column: "",
118
-                columnName: ""
207
+                columnName: "",
208
+                isDefault: 0
119 209
             });
120 210
         },
211
+        deleteForm(item) {
212
+            var index = this.formData.forms.indexOf(item)
213
+            if (index !== -1) {
214
+                this.formData.forms.splice(index, 1)
215
+            }
216
+        },
217
+        deleteFormCustom(item) {
218
+            var index = this.formData_custom.forms.indexOf(item)
219
+            if (index !== -1) {
220
+                this.formData_custom.forms.splice(index, 1)
221
+            }
222
+        },
223
+        addFormCustom() {
224
+            this.formData_custom.forms.push({
225
+                fileName: "",
226
+                startContent: '',
227
+                endContent: '',
228
+                column: "",
229
+                columnName: "",
230
+                isDefault: 1
231
+            });
232
+        },
233
+        columnNameChange(item){
234
+            let result = this.dict.type.case_built_type.find((data=>{
235
+                return data.label == item.columnName
236
+            }))
237
+            item.column = result.value;
238
+        },
121 239
         submitRules() {
122 240
             this.$refs['form'].validate((valid) => {
123 241
                 if (valid) {
124
-                   this.saveFatchRulesFn({
125
-                    id:this.rulesData.id,
126
-                    fatchRules:this.formData.forms
127
-                   })
242
+                    this.$refs['form_custom'].validate((valid_custom) => {
243
+                        if (valid_custom) {
244
+                            let paramsList = this.formData.forms.concat(this.formData_custom.forms)
245
+                            this.saveFatchRulesFn({
246
+                                id: this.rulesData.id,
247
+                                fatchRules: paramsList
248
+                            })
249
+                        }
250
+                    })
128 251
                 }
129 252
             });
130 253
         },
131 254
         // 根据id获取抓取规则
132
-        getFatchRuleByTemplateidFn(data) {
133
-            getFatchRuleByTemplateid(data).then(res => {
134
-                this.formData.forms = res.data;
135
-            })
136
-        },
255
+        // getFatchRuleByTemplateidFn(data) {
256
+        //     getFatchRuleByTemplateid(data).then(res => {
257
+        //         // this.formData.forms = res.data;
258
+        //         this.selectList = res.data
259
+        //     })
260
+        // },
137 261
         // 提交抓取规则
138 262
         saveFatchRulesFn(data) {
139 263
             saveFatchRules(data).then(res => {
140 264
                 this.$message.success('提交成功');
141 265
                 this.$emit("cancelRules");
142
-                this
143
-                .$emit('getList', that.queryParams);
266
+                this.$emit('getList', that.queryParams);
144 267
             })
145 268
         }
146 269
     },
@@ -152,7 +275,7 @@ export default {
152 275
     border: 1px solid #c2bcbc;
153 276
     padding: 20px;
154 277
     margin-bottom: 15px;
155
-    max-height: 700px;
278
+    max-height: 300px;
156 279
     overflow-y: scroll;
157 280
 }
158 281
 </style>