seimin 9 kuukautta sitten
vanhempi
commit
2ce35a2ad1

+ 1 - 1
manifest.json

@@ -62,7 +62,7 @@
62 62
         "devServer" : {
63 63
             "proxy" : {
64 64
                 "/service" : {
65
-                    "target" : "http://192.168.4.105", //请求的目标域名
65
+                    "target" : "http://192.168.3.111", //请求的目标域名
66 66
 										// "target" : "http://192.168.4.163", //宋程玉本地
67 67
                     "changeOrigin" : true, //是否跨域
68 68
                     "secure" : false

+ 1 - 0
pages/inspection/inspectionExecute/inspectionExecute.vue

@@ -108,6 +108,7 @@
108 108
       title: "加载中",
109 109
       mask: true,
110 110
     });
111
+    // 'inspection|$|1bd0c704-0962-4ed4-b5a6-b5bda3d78231'
111 112
     SM().then((ress1) => {
112 113
       let postData = {
113 114
         code: ress1,

+ 86 - 17
pages/inspection/inspectionValue/inspectionValue.vue

@@ -5,32 +5,31 @@
5 5
         <template v-for="(item, index) of baseFormData" :key="index">
6 6
           <!-- 下拉 -->
7 7
           <uni-forms-item v-if="item.type === '1'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
8
-            <uni-data-picker :placeholder="'请选择' + item.name" :popup-title="'请选择' + item.name" :localdata="item.list" v-model="formValues[item.key]">
8
+            <uni-data-picker :placeholder="'请选择' + item.name" :popup-title="'请选择' + item.name" :localdata="item.list" v-model="formValues[item.key]" @change="changeForm()">
9 9
             </uni-data-picker>
10 10
           </uni-forms-item>
11 11
           <!-- 单选 -->
12 12
           <uni-forms-item v-if="item.type === '2'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
13
-            <uni-data-checkbox v-model="formValues[item.key]" :localdata="item.list" />
13
+            <uni-data-checkbox v-model="formValues[item.key]" @change="changeForm()" :localdata="item.list" />
14 14
           </uni-forms-item>
15 15
           <!-- 多选 -->
16 16
           <uni-forms-item v-if="item.type === '3'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
17
-            <uni-data-checkbox v-model="formValues[item.key]" multiple :localdata="item.list" />
17
+            <uni-data-checkbox v-model="formValues[item.key]" @change="changeForm()" multiple :localdata="item.list" />
18 18
           </uni-forms-item>
19 19
           <!-- 数字 -->
20 20
           <uni-forms-item v-if="item.type === '4'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
21
-            <uni-number-box v-model="formValues[item.key]" :placeholder="'请输入' + item.name"></uni-number-box>
21
+            <uni-number-box v-model="formValues[item.key]" @change="changeForm()" :min="-9999" :max="9999" :placeholder="'请输入' + item.name"></uni-number-box>
22 22
           </uni-forms-item>
23 23
           <!-- 单行 -->
24
-          <uni-forms-item v-if="item.type === '5'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
24
+          <uni-forms-item v-if="item.type === '5' && item.isException" class="formItem" :label="item.name" :required="item.required" :name="item.key">
25 25
             <uni-easyinput v-model="formValues[item.key]" :placeholder="'请输入' + item.name" />
26 26
           </uni-forms-item>
27 27
           <!-- 多行 -->
28
-          <uni-forms-item v-if="item.type === '6'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
28
+          <uni-forms-item v-if="item.type === '6' && item.isException" class="formItem" :label="item.name" :required="item.required" :name="item.key">
29 29
             <uni-easyinput type="textarea" v-model="formValues[item.key]" :placeholder="'请输入' + item.name" />
30 30
           </uni-forms-item>
31
-          
32 31
           <!-- 图片上传 -->
33
-          <uni-forms-item v-if="item.type === '7'" class="formItem" :label="item.name" :required="item.required" :name="item.key">
32
+          <uni-forms-item v-if="item.type === '7' && item.isException" class="formItem" :label="item.name" :required="item.required" :name="item.key">
34 33
             <DsFilePicker v-model="formValues[item.key]"></DsFilePicker>
35 34
           </uni-forms-item>
36 35
           <!-- 分割线 -->
@@ -70,6 +69,9 @@ import { forIn } from 'lodash-es';
70 69
   // 主题颜色
71 70
   const primaryColor = ref(defaultColor)
72 71
   
72
+  // 所有页码数据
73
+  const formPageList = reactive([]);
74
+  
73 75
   // 表单
74 76
   const baseForm = ref()
75 77
   
@@ -103,6 +105,11 @@ import { forIn } from 'lodash-es';
103 105
     // { type: 7, name: '', value: [], list: [], required: false, checkType: 0, valueMin: '', valueMax: '', },
104 106
   ])
105 107
   
108
+  // 修改
109
+  function changeForm(){
110
+    handleData(true);
111
+  }
112
+  
106 113
   // 保存
107 114
   function submit(){
108 115
     baseForm.value.validate().then(res => {
@@ -113,14 +120,15 @@ import { forIn } from 'lodash-es';
113 120
       });
114 121
       console.log(formValues);
115 122
       let postData = {
123
+        account: loginUserStore.loginUser.user.account,
116 124
         valuesList: [],
117 125
       };
118 126
       for(let key in formValues){
119 127
         let name = baseFormData.find(v => v.key === key).name;
120 128
         let itemId = baseFormData.find(v => v.key === key).id;
121
-        let formPageList = dataInfo.inspectionFormDTO?.formPageList || [];
122
-        formPageList = formPageList.map(v => v.formItemList).flat();
123
-        let formItem = formPageList.find(v => v.id === itemId);
129
+        let _formPageList = dataInfo.inspectionFormDTO?.formPageList || [];
130
+        _formPageList = _formPageList.map(v => v.formItemList).flat();
131
+        let formItem = _formPageList.find(v => v.id === itemId);
124 132
         postData.valuesList.push({
125 133
           taskId: inspectionExecuteId.value,
126 134
           nodeId: dataInfo.id,
@@ -155,7 +163,7 @@ import { forIn } from 'lodash-es';
155 163
   }
156 164
   
157 165
   // 处理数据
158
-  function handleData(formPageList){
166
+  function handleData(isException = false){
159 167
     // 目前只取第一页
160 168
     let firstPage = formPageList[0]?.formItemList || [];
161 169
     
@@ -164,6 +172,8 @@ import { forIn } from 'lodash-es';
164 172
     firstPage = firstPage.map((v, i) => {
165 173
       let value = '';
166 174
       v.formItemConfigList = v.formItemConfigList || [];
175
+      
176
+      // value
167 177
       if(v.type.value === '3'){
168 178
         // 多选
169 179
         value = v.formItemConfigList.filter(v => v.checkDefault === 1).map(v => v.id);
@@ -186,20 +196,79 @@ import { forIn } from 'lodash-es';
186 196
         key: `field${i}`,
187 197
         type: v.type.value,
188 198
         name: v.name,
189
-        value,
190
-        list: v.formItemConfigList ? v.formItemConfigList.map(v => ({text: v.name, value: v.id})) : [],
199
+        value: isException ? formValues[`field${i}`] : value,
200
+        list: v.formItemConfigList ? v.formItemConfigList.map(v => ({text: v.name, value: v.id, checkException: v.checkException, uncheckException: v.uncheckException})) : [],
191 201
         required: v.required === 1,
192 202
         checkType: v.checkType,
203
+        showError: v.showError,
193 204
         valueMin: v.checkType === 2 ? v.valueLow : ( v.checkType === 1 ? (v.valuex - v.valueGap) : undefined),
194 205
         valueMax: v.checkType === 2 ? v.valueUp : ( v.checkType === 1 ? (v.valuex + v.valueGap) : undefined),
195 206
       }
196
-    }).filter(v => v.type !== '7');
207
+    });
208
+    
209
+    let firstPageBottom = firstPage.filter(v => v.type === '5' || v.type === '6');
210
+    firstPage = firstPage.filter(v => v.type !== '5' && v.type !== '6' && v.type !== '7');
211
+    
212
+    // 其他项
213
+    if(isException){
214
+      firstPage.forEach(v => {
215
+        // 下拉,单选
216
+        if(v.type === '1' || v.type === '2'){
217
+          v.isException = v.list.find(vv => formValues[v.key] === vv.value).checkException === 1;
218
+        } else if(v.type === '3'){
219
+          // 多选
220
+          v.isException = v.list.some(vv => {
221
+            if(formValues[v.key].includes(vv.value)){
222
+              return vv.checkException === 1;
223
+            }else{
224
+              return false;
225
+            }
226
+          })
227
+        } else if(v.type === '4'){
228
+          v.isException = (v.value < v.valueMin) || (v.value > v.valueMax);
229
+        }
230
+      })
231
+    }else{
232
+      firstPage.forEach(v => {
233
+        if(v.type === '1' || v.type === '2'){
234
+          // 下拉,单选
235
+          v.isException = v.list.find(vv => v.value === vv.value).checkException === 1;
236
+        } else if(v.type === '3'){
237
+          // 多选
238
+          v.isException = v.list.some(vv => {
239
+            if(v.value.includes(vv.value)){
240
+              return vv.checkException === 1;
241
+            }else{
242
+              return false;
243
+            }
244
+          })
245
+        } else if(v.type === '4'){
246
+          // 数值
247
+          v.isException = (formValues[v.key] < v.valueMin) || (formValues[v.key] > v.valueMax);
248
+        }
249
+      })
250
+    }
251
+    
252
+    // 单行|多行|图片上传
253
+    let someIsException = firstPage.filter(v => v.type !== '8').some(v => v.isException);
254
+    console.log('someIsException=>', someIsException)
255
+    firstPageBottom.forEach(v => {
256
+      console.log('v.showError=>', v.showError)
257
+      v.isException = (v.showError === 1 && someIsException) || v.showError === 0;
258
+    })
259
+    
260
+    firstPage = firstPage.concat(firstPageBottom);
261
+    console.log('firstPage=>', firstPage);
262
+    
197 263
     Object.assign(baseFormData, firstPage);
198 264
     console.log('baseFormData=>', baseFormData);
265
+    
199 266
     Object.assign(formValues, fromPairs(firstPage.filter(v => v.type !== '8').map(v => ([v.key, v.value]))));
200 267
     console.log('formValues=>', formValues);
268
+    
201 269
     let rulesObj = keyBy(firstPage.filter(v => v.type !== '8'), 'key');
202 270
     console.log(rulesObj)
271
+    
203 272
     for(let key in rulesObj){
204 273
       rulesObj[key] = {
205 274
         rules: [
@@ -216,8 +285,8 @@ import { forIn } from 'lodash-es';
216 285
     // 巡检项
217 286
     if(inspectionValueStore.inspectionValue.data){
218 287
       Object.assign(dataInfo, inspectionValueStore.inspectionValue.data);
219
-      let formPageList = dataInfo.inspectionFormDTO?.formPageList || [];
220
-      handleData(formPageList)
288
+      Object.assign(formPageList, dataInfo.inspectionFormDTO?.formPageList || []);
289
+      handleData()
221 290
     }
222 291
   })
223 292
 </script>