seimin 3 年之前
父節點
當前提交
16924e71d5
共有 5 個文件被更改,包括 192 次插入109 次删除
  1. 1 1
      config/index.js
  2. 2 2
      src/App.vue
  3. 1 1
      src/views/Inspection.vue
  4. 94 47
      src/views/InspectionDetail.vue
  5. 94 58
      src/views/inspectionDoneDetail.vue

+ 1 - 1
config/index.js

@@ -41,7 +41,7 @@ module.exports = {
41 41
 
42 42
     // https://webpack.js.org/configuration/devtool/#development
43 43
     // 住了一行
44
-    devtool: 'source-map',
44
+    devtool: 'cheap-module-eval-source-map',
45 45
 
46 46
     // If you have problems debugging vue-files in devtools,
47 47
     // set this to false - it *may* help

+ 2 - 2
src/App.vue

@@ -97,12 +97,12 @@ export default {
97 97
 
98 98
 // 巡检详情按钮
99 99
 .inspedtionDetail {
100
-  .cube-switch-ui::before {
100
+  .cube-switch-ui {
101 101
     border-color: #ccc !important;
102 102
     background-color: green !important;
103 103
   }
104 104
   .abnormal {
105
-    .cube-switch-ui{
105
+    .cube-switch-ui::before{
106 106
       border-color: #ccc !important;
107 107
       background-color: red !important;
108 108
     }

+ 1 - 1
src/views/Inspection.vue

@@ -30,7 +30,7 @@
30 30
               @change="stateChange()"
31 31
             ></cube-select>-->
32 32
             <div class="conentBox">
33
-              <div class="conent" v-for="item in items" @click="toDetail(item)">
33
+              <div class="conent" v-for="(item,index) in items" @click="toDetail(item)" :key="index">
34 34
                 <div class="head">
35 35
                   <p>
36 36
                     <i class="iconfont icon-zuixinbaoxiu newPapir"></i>

+ 94 - 47
src/views/InspectionDetail.vue

@@ -5,52 +5,72 @@
5 5
       <p>
6 6
         <i class="iconfont icon-zuixinbaoxiu newPapir"></i>
7 7
         巡检单号
8
-        <span class="num">{{baseInfo.sign}}</span>
9
-        <span class="btn zhixingzhong">{{baseInfo.stateName}}</span>
8
+        <span class="num">{{ baseInfo.sign }}</span>
9
+        <span class="btn zhixingzhong">{{ baseInfo.stateName }}</span>
10 10
       </p>
11 11
     </div>
12 12
     <div class="info">
13 13
       <p>
14 14
         <span class="fl">巡检类型</span>
15
-        <span class="fr">{{baseInfo.inspectionType.type}}</span>
15
+        <span class="fr">{{ baseInfo.inspectionType.type }}</span>
16 16
       </p>
17 17
       <p>
18 18
         <span class="fl">计划主题</span>
19
-        <span class="fr">{{baseInfo.inspection.title}}</span>
19
+        <span class="fr">{{ baseInfo.inspection.title }}</span>
20 20
       </p>
21 21
       <p>
22 22
         <span class="fl">计划内容</span>
23
-        <span class="fr showwrap">{{baseInfo.inspection.content}}</span>
23
+        <span class="fr showwrap">{{ baseInfo.inspection.content }}</span>
24 24
       </p>
25 25
       <p>
26 26
         <span class="fl">巡检状态</span>
27
-        <span class="fr">{{baseInfo.stateName}}</span>
27
+        <span class="fr">{{ baseInfo.stateName }}</span>
28 28
       </p>
29 29
       <p>
30 30
         <span class="fl">巡检策略</span>
31
-        <span class="fr">{{baseInfo.inspection.planStrategy.name}}</span>
31
+        <span class="fr">{{ baseInfo.inspection.planStrategy.name }}</span>
32 32
       </p>
33 33
       <p>
34 34
         <span class="fl">执行时长</span>
35
-        <span class="fr">{{baseInfo.inspection.executionTime}}分钟</span>
35
+        <span class="fr">{{ baseInfo.inspection.executionTime }}分钟</span>
36 36
       </p>
37 37
       <p>
38 38
         <span class="fl">开始时间</span>
39
-        <span class="fr">{{baseInfo.inspection.planStartTime.slice(0,baseInfo.inspection.planStartTime.length-2)}}</span>
39
+        <span class="fr">{{
40
+          baseInfo.inspection.planStartTime.slice(
41
+            0,
42
+            baseInfo.inspection.planStartTime.length - 2
43
+          )
44
+        }}</span>
40 45
       </p>
41 46
       <p>
42 47
         <span class="fl">逾期时间</span>
43
-        <span class="fr">{{baseInfo.overdueTime}}</span>
48
+        <span class="fr">{{ baseInfo.overdueTime }}</span>
44 49
       </p>
45 50
     </div>
46 51
     <div class="label">巡检结果</div>
47 52
     <div class="form">
48
-      <p v-for="(item,index) in forms" >
49
-        <span v-if="index%2==0">{{item.templateOptions.placeholder}}</span>
50
-        <cube-switch v-if="index%2==1" v-model="param[item.key]" :class="{'abnormal':param[item.key]}" :data-label="forms[index-1].templateOptions.placeholder" ></cube-switch>
53
+      <p v-for="(item, index) in forms" :key="index">
54
+        <span>{{ item.name }}:</span>
55
+        <cube-switch
56
+          v-model="param[item.key]"
57
+          :class="{ abnormal: !param[item.key] }"
58
+          :data-label="item.key"
59
+        ></cube-switch>
51 60
       </p>
52 61
     </div>
53 62
     <div class="label formLabel">
63
+      {{ xj_beizhu.name }}
64
+    </div>
65
+    <div class="textarea_div">
66
+      <cube-textarea
67
+        class="textarea"
68
+        v-model="param[xj_beizhu.key]"
69
+        placeholder="请输入整改意见"
70
+      ></cube-textarea>
71
+    </div>
72
+    <div></div>
73
+    <div class="label formLabel">
54 74
       图片上传
55 75
       <span>(最多可上传3张JPG或PNG,每张不能超过10M)</span>
56 76
     </div>
@@ -84,11 +104,24 @@ export default {
84 104
       valConfig: JSON.parse(localStorage.getItem("valConfig")) - 0, //报修主体
85 105
       baseInfo: {}, //巡检基础信息
86 106
       items: [], //巡检项目
87
-      labels: [], //巡检项目label
88
-      status: [], //巡检项目的状态
107
+      xj_arr: [], //巡检项目数组key和name
108
+      xj_beizhu: {}, //巡检-整改意见(备注)
89 109
       forms: [], //巡检结果
90
-      abnormal:'',//异常项
110
+      abnormal: "", //异常项
91 111
       param: {
112
+        sdCheckEnable1: true,
113
+        sdCheckEnable2: true,
114
+        sdCheckEnable3: true,
115
+        sdCheckEnable4: true,
116
+        sdCheckEnable5: true,
117
+        sdCheckEnable6: true,
118
+        sdCheckEnable7: true,
119
+        sdCheckEnable8: true,
120
+        sdCheckEnable9: true,
121
+        sdCheckEnable10: true,
122
+        sdCheckEnable11: true,
123
+        sdCheckEnable12: true,
124
+        descriptionTextarea: "",
92 125
         inspectionProcessActual: {}
93 126
       },
94 127
       model: {}
@@ -120,10 +153,12 @@ export default {
120 153
       var that = this;
121 154
       that.$http
122 155
         .get(
123
-          "/service/form/renderForm/inspection_confirm/" +
156
+          "/service/form/renderForm/inspection_LinHu_confirm/" +
124 157
             that.baseInfo.processInstanceId +
125 158
             "/" +
126
-            that.loginUser.id+'/'+that.baseInfo.id,
159
+            that.loginUser.id +
160
+            "/" +
161
+            that.baseInfo.id,
127 162
           {}
128 163
         )
129 164
         .then(function(res) {
@@ -132,27 +167,24 @@ export default {
132 167
           var fields = res.data.fields;
133 168
           console.log(fields);
134 169
           fields.forEach(v => {
135
-            if (v.templateOptions.label == "检查项目") {
136
-              that.labels.push(v);
170
+            v.key = v.key || "";
171
+            if (v.key.indexOf("sdCheckEnable") > -1) {
172
+              that.xj_arr.push(v);
137 173
             }
138
-            if (v.templateOptions.label == "状态") {
139
-              that.status.push(v);
174
+            if (v.key.indexOf("descriptionTextarea") > -1) {
175
+              that.xj_beizhu = {
176
+                key: v.key,
177
+                name: v.templateOptions.label
178
+              };
140 179
             }
141 180
           });
142
-          // console.log(that.labels);
143
-          // console.log(that.status);
144
-          let labels = that.labels;
145
-          let status = that.status;
146
-          let j = 0,
147
-            newArr = new Array();
148
-          for (let i = 0; i < that.labels.length; i++) {
149
-            j = i * 2;
150
-            newArr[j] = that.labels[i];
151
-            newArr[j + 1] = that.status[i];
152
-          }
153
-          console.log(newArr);
154
-          that.forms = newArr;
155
-          window.localStorage.setItem('forms',JSON.stringify(that.forms));
181
+          console.log(that.xj_arr);
182
+          console.log(that.xj_beizhu);
183
+          that.forms = that.xj_arr.map(v => ({
184
+            key: v.key,
185
+            name: v.templateOptions.label
186
+          }));
187
+          window.localStorage.setItem("forms", JSON.stringify(that.forms));
156 188
         });
157 189
     },
158 190
     // 提交
@@ -177,7 +209,9 @@ export default {
177 209
         .then(function(res) {
178 210
           console.log(res.data);
179 211
           if (res.data.status == 200) {
180
-            that.action.target = that.action.target + that.param.inspectionProcessActual.processInstanceId;
212
+            that.action.target =
213
+              that.action.target +
214
+              that.param.inspectionProcessActual.processInstanceId;
181 215
             setTimeout(function() {
182 216
               that.$refs.upload.start();
183 217
             }, 100);
@@ -203,30 +237,41 @@ export default {
203 237
     },
204 238
     // 取消
205 239
     cancle() {
206
-      var that=this;
240
+      var that = this;
207 241
       that.$router.go(-1);
208 242
     },
209 243
     // 生成事件
210
-    createIncident(){
211
-      for(var i =0;i<$('.cube-switch.abnormal').length;i++){
212
-        this.abnormal+=$('.cube-switch.abnormal')[i].dataset.label+','
244
+    createIncident() {
245
+      for (var i = 0; i < $(".cube-switch.abnormal").length; i++) {
246
+        this.abnormal += $(".cube-switch.abnormal")[i].dataset.label + ",";
213 247
       }
214
-      this.$router.push({name:'NewIncident',params:{data:this.baseInfo,abnormal:this.abnormal}});
248
+      this.$router.push({
249
+        name: "NewIncident",
250
+        params: { data: this.baseInfo, abnormal: this.abnormal }
251
+      });
215 252
     }
216 253
   },
217 254
   created() {
218
-    this.baseInfo = this.$route.params.data||JSON.parse(window.localStorage.getItem('insDetailInfo'));
219
-    this.forms=JSON.parse( window.localStorage.getItem('forms'))||[];
255
+    this.baseInfo =
256
+      this.$route.params.data ||
257
+      JSON.parse(window.localStorage.getItem("insDetailInfo"));
258
+    this.forms = JSON.parse(window.localStorage.getItem("forms")) || [];
220 259
     this.title = this.baseInfo.inspectionType.type;
221 260
     this.getItems();
222 261
   },
223
-  mounted(){
262
+  mounted() {
224 263
     this.$refs.upload.pause();
225 264
   }
226 265
 };
227 266
 </script>
228 267
 <style lang="less" scoped>
229 268
 .inspedtionDetail {
269
+  .textarea_div {
270
+    margin: 0.4rem;
271
+    .textarea {
272
+      height: 2rem;
273
+    }
274
+  }
230 275
   .uplod {
231 276
     padding: 0.24rem;
232 277
     border-bottom: 0.02rem solid rgb(245, 245, 245);
@@ -281,11 +326,13 @@ export default {
281 326
     justify-content: space-between;
282 327
     align-items: center;
283 328
     flex-wrap: wrap;
329
+    .cube-switch {
330
+      margin-top: 0.2rem;
331
+    }
284 332
     p {
285 333
       line-height: 0.4rem;
286 334
       padding: 0.2rem 0.24rem;
287
-      // border-bottom: 0.01rem solid #ccc;
288
-      width: 35%;
335
+      width: 100%;
289 336
     }
290 337
   }
291 338
 

+ 94 - 58
src/views/inspectionDoneDetail.vue

@@ -5,53 +5,66 @@
5 5
       <p>
6 6
         <i class="iconfont icon-zuixinbaoxiu newPapir"></i>
7 7
         巡检单号
8
-        <span class="num">{{baseInfo.sign}}</span>
9
-        <span class="btn zhixingzhong">{{baseInfo.stateName}}</span>
8
+        <span class="num">{{ baseInfo.sign }}</span>
9
+        <span class="btn zhixingzhong">{{ baseInfo.stateName }}</span>
10 10
       </p>
11 11
     </div>
12 12
     <div class="info">
13 13
       <p>
14 14
         <span class="fl">巡检类型</span>
15
-        <span class="fr">{{baseInfo.inspectionType.type}}</span>
15
+        <span class="fr">{{ baseInfo.inspectionType.type }}</span>
16 16
       </p>
17 17
       <p>
18 18
         <span class="fl">计划主题</span>
19
-        <span class="fr">{{baseInfo.inspection.title}}</span>
19
+        <span class="fr">{{ baseInfo.inspection.title }}</span>
20 20
       </p>
21 21
       <p>
22 22
         <span class="fl">计划内容</span>
23
-        <span class="fr showwrap">{{baseInfo.inspection.content}}</span>
23
+        <span class="fr showwrap">{{ baseInfo.inspection.content }}</span>
24 24
       </p>
25 25
       <p>
26 26
         <span class="fl">巡检状态</span>
27
-        <span class="fr">{{baseInfo.stateName}}</span>
27
+        <span class="fr">{{ baseInfo.stateName }}</span>
28 28
       </p>
29 29
       <p>
30 30
         <span class="fl">巡检策略</span>
31
-        <span class="fr">{{baseInfo.inspection.planStrategy.name}}</span>
31
+        <span class="fr">{{ baseInfo.inspection.planStrategy.name }}</span>
32 32
       </p>
33 33
       <p>
34 34
         <span class="fl">执行时长</span>
35
-        <span class="fr">{{baseInfo.inspection.executionTime}}分钟</span>
35
+        <span class="fr">{{ baseInfo.inspection.executionTime }}分钟</span>
36 36
       </p>
37 37
       <p>
38 38
         <span class="fl">开始时间</span>
39
-        <span
40
-          class="fr"
41
-        >{{baseInfo.inspection.planStartTime.slice(0,baseInfo.inspection.planStartTime.length-2)}}</span>
39
+        <span class="fr">{{
40
+          baseInfo.inspection.planStartTime.slice(
41
+            0,
42
+            baseInfo.inspection.planStartTime.length - 2
43
+          )
44
+        }}</span>
42 45
       </p>
43 46
       <p>
44 47
         <span class="fl">逾期时间</span>
45
-        <span class="fr">{{baseInfo.overdueTime}}</span>
48
+        <span class="fr">{{ baseInfo.overdueTime }}</span>
46 49
       </p>
47 50
     </div>
48 51
     <div class="label">巡检结果</div>
49 52
     <div class="form">
50
-      <p v-for="(item,index) in forms">
51
-        <span v-if="index%2==0">{{item.templateOptions.placeholder}}</span>
52
-        <span v-if="index%2==1" class="colorGray">{{param[item.key]?'不正常':'正常'}}</span>
53
+      <p v-for="(item, index) in forms" :key="index">
54
+        <span>{{ item.name }}:</span>
55
+        <span class="colorGray">{{
56
+          param[item.key] === "false" ? "异常" : "正常"
57
+        }}</span>
53 58
       </p>
54 59
     </div>
60
+    <div class="label">{{ xj_beizhu.name }}</div>
61
+    <div class="textarea_div">
62
+      <cube-textarea
63
+        class="textarea"
64
+        v-model="param[xj_beizhu.key]"
65
+        disabled
66
+      ></cube-textarea>
67
+    </div>
55 68
     <div class="label">图片列表</div>
56 69
     <div class="imgs-c">
57 70
       <div class="imgs-container" v-if="imgs.length">
@@ -59,11 +72,11 @@
59 72
           <img
60 73
             v-if="
61 74
               img.suffix == 'jpeg' ||
62
-              img.suffix == 'jpg' ||
63
-              img.suffix == 'gif' ||
64
-              img.suffix == 'png' ||
65
-              img.suffix == 'svg' ||
66
-              img.suffix == 'pdf'
75
+                img.suffix == 'jpg' ||
76
+                img.suffix == 'gif' ||
77
+                img.suffix == 'png' ||
78
+                img.suffix == 'svg' ||
79
+                img.suffix == 'pdf'
67 80
             "
68 81
             :src="img.previewUrl"
69 82
             v-for="(img, index) in imgs"
@@ -81,16 +94,29 @@
81 94
 export default {
82 95
   data() {
83 96
     return {
84
-      imgs:[],//图片
97
+      imgs: [], //图片
85 98
       loginUser: JSON.parse(localStorage.getItem("loginUser")),
86 99
       valConfig: JSON.parse(localStorage.getItem("valConfig")) - 0, //报修主体
87 100
       baseInfo: {}, //巡检基础信息
88 101
       items: [], //巡检项目
89
-      labels: [], //巡检项目label
90
-      status: [], //巡检项目的状态
102
+      xj_arr: [], //巡检项目数组key和name
103
+      xj_beizhu: {}, //巡检-整改意见(备注)
91 104
       forms: [], //巡检结果
92 105
       abnormal: "", //异常项
93 106
       param: {
107
+        sdCheckEnable1: false,
108
+        sdCheckEnable2: false,
109
+        sdCheckEnable3: false,
110
+        sdCheckEnable4: false,
111
+        sdCheckEnable5: false,
112
+        sdCheckEnable6: false,
113
+        sdCheckEnable7: false,
114
+        sdCheckEnable8: false,
115
+        sdCheckEnable9: false,
116
+        sdCheckEnable10: false,
117
+        sdCheckEnable11: false,
118
+        sdCheckEnable12: false,
119
+        descriptionTextarea: "",
94 120
         inspectionProcessActual: {}
95 121
       },
96 122
       model: {}
@@ -102,10 +128,12 @@ export default {
102 128
       var that = this;
103 129
       that.$http
104 130
         .get(
105
-          "/service/form/renderForm/inspection_confirm/" +
131
+          "/service/form/renderForm/inspection_LinHu_detail/" +
106 132
             that.baseInfo.processInstanceId +
107 133
             "/" +
108
-            that.loginUser.id,
134
+            that.loginUser.id +
135
+            "/" +
136
+            that.baseInfo.id,
109 137
           {}
110 138
         )
111 139
         .then(function(res) {
@@ -114,26 +142,27 @@ export default {
114 142
           var fields = res.data.fields;
115 143
           console.log(fields);
116 144
           fields.forEach(v => {
117
-            if (v.templateOptions.label == "检查项目") {
118
-              that.labels.push(v);
145
+            v.key = v.key || "";
146
+            if (v.key.indexOf("sdCheckEnable") > -1) {
147
+              that.xj_arr.push(v);
119 148
             }
120
-            if (v.templateOptions.label == "状态") {
121
-              that.status.push(v);
149
+            if (v.key.indexOf("descriptionTextarea") > -1) {
150
+              that.xj_beizhu = {
151
+                key: v.key,
152
+                name: v.templateOptions.label
153
+              };
122 154
             }
123 155
           });
124
-          console.log(that.labels);
125
-          console.log(that.status);
126
-          let labels = that.labels;
127
-          let status = that.status;
128
-          let j = 0,
129
-            newArr = new Array();
130
-          for (let i = 0; i < that.labels.length; i++) {
131
-            j = i * 2;
132
-            newArr[j] = that.labels[i];
133
-            newArr[j + 1] = that.status[i];
134
-          }
135
-          console.log(newArr);
136
-          that.forms = newArr;
156
+          console.log(that.xj_beizhu);
157
+          that.forms = that.xj_arr.map(v => ({
158
+            key: v.key,
159
+            name: v.templateOptions.label
160
+          }));
161
+          console.log(that.forms);
162
+          that.forms.forEach(v => {
163
+            that.param[v.key] = that.model[v.key];
164
+          });
165
+          that.param.descriptionTextarea = that.model.descriptionTextarea;
137 166
           window.localStorage.setItem("forms", JSON.stringify(that.forms));
138 167
         });
139 168
     },
@@ -153,7 +182,9 @@ export default {
153 182
           "/service/bpm/bpm/completeTask/" +
154 183
             that.baseInfo.processInstanceId +
155 184
             "/" +
156
-            that.loginUser.id+'/'+that.baseInfo.id,
185
+            that.loginUser.id +
186
+            "/" +
187
+            that.baseInfo.id,
157 188
           that.param
158 189
         )
159 190
         .then(function(res) {
@@ -195,10 +226,10 @@ export default {
195 226
       });
196 227
     },
197 228
     //展示图片
198
-    showImgs(imgs){
229
+    showImgs(imgs) {
199 230
       this.$createImagePreview({
200
-        imgs:imgs.map(v=>v.previewUrl)
201
-      }).show()
231
+        imgs: imgs.map(v => v.previewUrl)
232
+      }).show();
202 233
     },
203 234
     // 获取图片
204 235
     getImgs() {
@@ -209,10 +240,10 @@ export default {
209 240
             that.baseInfo.processInstanceId,
210 241
           {}
211 242
         )
212
-        .then(function (res) {
243
+        .then(function(res) {
213 244
           that.imgs = res.data.data.splice(0, 3);
214 245
         });
215
-    },
246
+    }
216 247
   },
217 248
   created() {
218 249
     this.baseInfo =
@@ -221,13 +252,19 @@ export default {
221 252
     this.forms = JSON.parse(window.localStorage.getItem("forms")) || [];
222 253
     this.title = this.baseInfo.inspectionType.type;
223 254
     this.getItems();
224
-    this.getImgs();//获取图片
255
+    this.getImgs(); //获取图片
225 256
   }
226 257
 };
227 258
 </script>
228 259
 <style lang="less" scoped>
229 260
 .inspedtionDetail {
230
-  .imgs-c{
261
+  .textarea_div {
262
+    margin: 0.4rem;
263
+    .textarea {
264
+      height: 2rem;
265
+    }
266
+  }
267
+  .imgs-c {
231 268
     padding: 0.28rem;
232 269
   }
233 270
   .imgs-container {
@@ -237,7 +274,7 @@ export default {
237 274
         color: #551a8b !important;
238 275
       }
239 276
     }
240
-    .imgs-cont{
277
+    .imgs-cont {
241 278
       display: flex;
242 279
     }
243 280
     img {
@@ -246,8 +283,8 @@ export default {
246 283
       margin-right: 0.5rem;
247 284
     }
248 285
   }
249
-  .colorGray{
250
-      color: #999;
286
+  .colorGray {
287
+    color: #999;
251 288
   }
252 289
   .label {
253 290
     background-color: #eee;
@@ -302,11 +339,10 @@ export default {
302 339
     p {
303 340
       line-height: 0.4rem;
304 341
       padding: 0.2rem 0.24rem;
305
-      // border-bottom: 0.01rem solid #ccc;
306
-      width: 35%;
307
-      &:nth-child(2n){
308
-          text-align: right;
309
-      }
342
+      width: 100%;
343
+      display: flex;
344
+      justify-content: space-between;
345
+      align-items: center;
310 346
     }
311 347
   }
312 348