Browse Source

增加处理日志

seimin 3 years ago
parent
commit
bf6a51a839
5 changed files with 185 additions and 31 deletions
  1. 3 0
      src/filters/index.js
  2. 78 0
      src/views/handlerLog.vue
  3. 13 4
      src/views/order.vue
  4. 78 23
      src/views/processing.vue
  5. 13 4
      src/views/solved.vue

+ 3 - 0
src/filters/index.js

@@ -3,6 +3,9 @@ Vue.filter('timeFormat', function (date, fmt) {
3
   if (!date) {
3
   if (!date) {
4
     return '';
4
     return '';
5
   }
5
   }
6
+  if(typeof date === 'number'){
7
+    date = new Date(date);
8
+  }
6
   if (typeof date === 'string') {
9
   if (typeof date === 'string') {
7
     var dateArr = date.split(/[- : \/]/);
10
     var dateArr = date.split(/[- : \/]/);
8
     date = new Date(dateArr[0], dateArr[1] - 1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);
11
     date = new Date(dateArr[0], dateArr[1] - 1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);

+ 78 - 0
src/views/handlerLog.vue

@@ -0,0 +1,78 @@
1
+<template>
2
+<div class="handlerLog">
3
+  <div class="label">处理日志</div>
4
+  <table class="handlerLog__table">
5
+    <tr>
6
+      <td class="xh">序号</td>
7
+      <td class="clr">处理人</td>
8
+      <td class="date">时间</td>
9
+      <td>内容</td>
10
+    </tr>
11
+    <tr v-for="(item,i) in data" :key="item.id">
12
+      <td>{{ i + 1 }}</td>
13
+      <td>{{ item.userName }}</td>
14
+      <td>{{ item.opTime | timeFormat("yyyy-MM-dd HH:mm:ss")}}</td>
15
+      <td>{{ item.opValue }}</td>
16
+    </tr>
17
+  </table>
18
+</div>
19
+</template>
20
+
21
+<script>
22
+  export default {
23
+    data(){
24
+      return {}
25
+    },
26
+    props:{
27
+      data:{
28
+        type:Array,
29
+        default(){
30
+          return [];
31
+        }
32
+      }
33
+    }
34
+  }
35
+</script>
36
+
37
+<style lang="less" scoped>
38
+.label {
39
+  background-color: #eeeeee;
40
+  height: 0.6rem;
41
+  line-height: 0.58rem;
42
+  padding-left: 0.2rem;
43
+  font-size: 0.24rem;
44
+  color: #666666;
45
+  span {
46
+    font-size: 0.2rem;
47
+    display: inline-block;
48
+    margin-left: 0.08rem;
49
+    color: #999999;
50
+  }
51
+  &.formLabel {
52
+    background-color: #fff;
53
+  }
54
+}
55
+.handlerLog .handlerLog__table{
56
+  border-collapse: collapse;
57
+  border: 1px solid #ccc;
58
+  width: 100%;
59
+}
60
+.handlerLog .handlerLog__table td{
61
+  text-align: center;
62
+  border: 1px solid #ccc;
63
+  word-break: break-all;
64
+  font-size: 0.25rem;
65
+  padding: 0.1rem 0;
66
+}
67
+.handlerLog .handlerLog__table td.xh  {
68
+  width: 0.7rem;
69
+}
70
+
71
+.handlerLog .handlerLog__table td.clr  {
72
+  width: 1.2rem;
73
+}
74
+
75
+.handlerLog .handlerLog__table td.date  {
76
+  width: 2.6rem;
77
+}
78
+</style>

+ 13 - 4
src/views/order.vue

@@ -15,6 +15,13 @@
15
                 @click="toInfo('progress')"
15
                 @click="toInfo('progress')"
16
               >处理进度</a>
16
               >处理进度</a>
17
             </div>
17
             </div>
18
+            <div class="fl" :class="{'p50':model.incident.handlerUser.id!=loginUser.id}">
19
+              <a
20
+                :class="{active:actives=='handlerLog'}"
21
+                href="javascript:;"
22
+                @click="toInfo('handlerLog')"
23
+              >处理日志</a>
24
+            </div>
18
             <div class="fl" v-if="model.incident.handlerUser.id==loginUser.id">
25
             <div class="fl" v-if="model.incident.handlerUser.id==loginUser.id">
19
               <a :class="{active:actives=='jd'}" href="javascript:;" @click="toInfo('jd')">接单</a>
26
               <a :class="{active:actives=='jd'}" href="javascript:;" @click="toInfo('jd')">接单</a>
20
             </div>
27
             </div>
@@ -130,7 +137,7 @@
130
                 </p>
137
                 </p>
131
               </div>
138
               </div>
132
             </div>
139
             </div>
133
-
140
+            <HandlerLog :data="model.incident.handlerLogs" id="handlerLog"></HandlerLog>
134
             <div class="label" id="progress">处理进度</div>
141
             <div class="label" id="progress">处理进度</div>
135
             <div :class="{'progress':true,'progressHide':!pro_hides}" id="progressBox">
142
             <div :class="{'progress':true,'progressHide':!pro_hides}" id="progressBox">
136
               <div class="progress_info" v-for="item in progressInfo">
143
               <div class="progress_info" v-for="item in progressInfo">
@@ -181,6 +188,7 @@
181
 <script>
188
 <script>
182
 import LoadIng from "./../views/loading.vue";
189
 import LoadIng from "./../views/loading.vue";
183
 import PrompTing from "./../views/prompting.vue";
190
 import PrompTing from "./../views/prompting.vue";
191
+import HandlerLog from "./../views/handlerLog.vue";
184
 export default {
192
 export default {
185
   data() {
193
   data() {
186
     return {
194
     return {
@@ -212,7 +220,8 @@ export default {
212
   },
220
   },
213
   components: {
221
   components: {
214
     LoadIng,
222
     LoadIng,
215
-    PrompTing
223
+    PrompTing,
224
+    HandlerLog
216
   },
225
   },
217
   methods: {
226
   methods: {
218
     //   获取事件数据
227
     //   获取事件数据
@@ -397,10 +406,10 @@ i.iconfont.blue {
397
     top: 0.88rem;
406
     top: 0.88rem;
398
 
407
 
399
     div {
408
     div {
400
-      width: 33.33%;
409
+      width: 25%;
401
       text-align: center;
410
       text-align: center;
402
       &.p50{
411
       &.p50{
403
-        width: 49.99% ;
412
+        width: 33.333% ;
404
     }
413
     }
405
       a {
414
       a {
406
         display: inline-block;
415
         display: inline-block;

+ 78 - 23
src/views/processing.vue

@@ -20,6 +20,16 @@
20
             :class="{ p50: modelData.incident.handlerUser.id != loginUser.id }"
20
             :class="{ p50: modelData.incident.handlerUser.id != loginUser.id }"
21
           >
21
           >
22
             <a
22
             <a
23
+              :class="{ active: actives == 'handlerLog' }"
24
+              href="javascript:;"
25
+              @click="toInfo('handlerLog')"
26
+              >处理日志</a>
27
+          </div>
28
+          <div
29
+            class="fl"
30
+            :class="{ p50: modelData.incident.handlerUser.id != loginUser.id }"
31
+          >
32
+            <a
23
               :class="{ active: actives == 'progress' }"
33
               :class="{ active: actives == 'progress' }"
24
               href="javascript:;"
34
               href="javascript:;"
25
               @click="toInfo('progress')"
35
               @click="toInfo('progress')"
@@ -202,7 +212,7 @@
202
               </p>
212
               </p>
203
             </div>
213
             </div>
204
           </div>
214
           </div>
205
-
215
+          <HandlerLog :data="modelData.incident.handlerLogs" id="handlerLog"></HandlerLog>
206
           <div class="label" id="progress">处理进度</div>
216
           <div class="label" id="progress">处理进度</div>
207
           <div
217
           <div
208
             :class="{ progress: true, progressHide: !pro_hides }"
218
             :class="{ progress: true, progressHide: !pro_hides }"
@@ -292,6 +302,7 @@
292
                       >
302
                       >
293
                     </div>
303
                     </div>
294
                   </cube-form-item>
304
                   </cube-form-item>
305
+
295
                   <div class="label formLabel" v-if="order == 1">
306
                   <div class="label formLabel" v-if="order == 1">
296
                     报修图片
307
                     报修图片
297
                     <span>(最多可上传3张JPG或PNG,每张不能超过10M)</span>
308
                     <span>(最多可上传3张JPG或PNG,每张不能超过10M)</span>
@@ -354,6 +365,19 @@
354
                     :field="fields[9]"
365
                     :field="fields[9]"
355
                     v-if="order == 3"
366
                     v-if="order == 3"
356
                   ></cube-form-item>
367
                   ></cube-form-item>
368
+                  <cube-form-item
369
+                    :field="fields[16]"
370
+                    class="incidentTitle"
371
+                  >
372
+                    <div class="titleRefer">
373
+                      <textarea
374
+                        style="margin-top:0.1rem;width:100%;"
375
+                        class="titleTxtArea fl"
376
+                        placeholder="请输入处理日志"
377
+                        v-model="handlerLog"
378
+                      ></textarea>
379
+                    </div>
380
+                  </cube-form-item>
357
                 </cube-form-group>
381
                 </cube-form-group>
358
                 <cube-form-group class="sub">
382
                 <cube-form-group class="sub">
359
                   <cube-button type="submit" @click="subVali()"
383
                   <cube-button type="submit" @click="subVali()"
@@ -380,6 +404,7 @@ import DatePicker from "./../components/date-picker.vue";
380
 import CubeExtendPopup from "./../components/extend-popup.vue";
404
 import CubeExtendPopup from "./../components/extend-popup.vue";
381
 import LoadIng from "./../views/loading.vue";
405
 import LoadIng from "./../views/loading.vue";
382
 import PrompTing from "./../views/prompting.vue";
406
 import PrompTing from "./../views/prompting.vue";
407
+import HandlerLog from "./../views/handlerLog.vue";
383
 // import host from '../request/host'
408
 // import host from '../request/host'
384
 
409
 
385
 // 知识库类型
410
 // 知识库类型
@@ -516,6 +541,7 @@ export default {
516
         incident: {}
541
         incident: {}
517
       }, //上传的model
542
       }, //上传的model
518
       incidentTitle: "", //处理方案
543
       incidentTitle: "", //处理方案
544
+      handlerLog: "", //处理日志
519
       referenceInfo: {}, //引用信息
545
       referenceInfo: {}, //引用信息
520
       selectedCategoryTxt: "", //事件分类选中展示
546
       selectedCategoryTxt: "", //事件分类选中展示
521
       selectedAreaId: "", //区域选中id--seimin
547
       selectedAreaId: "", //区域选中id--seimin
@@ -794,6 +820,18 @@ export default {
794
           rules: {
820
           rules: {
795
             required: true
821
             required: true
796
           }
822
           }
823
+        },
824
+        {
825
+          type: "textarea",
826
+          modelKey: "handlerLog",
827
+          label: "处理日志:",
828
+          props: {
829
+            placeholder: "请填写处理日志"
830
+          },
831
+          rules: {
832
+            required: false
833
+          },
834
+          debounce: 100
797
         }
835
         }
798
       ]
836
       ]
799
     };
837
     };
@@ -807,7 +845,8 @@ export default {
807
     }
845
     }
808
   },
846
   },
809
   components: {
847
   components: {
810
-    LoadIng
848
+    LoadIng,
849
+    HandlerLog
811
   },
850
   },
812
   methods: {
851
   methods: {
813
     //获取区域
852
     //获取区域
@@ -1427,24 +1466,8 @@ export default {
1427
         params: { data: that.model.handleDescription }
1466
         params: { data: that.model.handleDescription }
1428
       });
1467
       });
1429
     },
1468
     },
1430
-
1431
-    // 提交
1432
-    submitHandler() {
1433
-      var that = this;
1434
-
1435
-      that.setLocalStroageData();
1436
-      // that.modelData.incident.place = {
1437
-      //   area:{
1438
-      //     id:this.selectedAreaId,
1439
-      //     area:this.selectedAreaName
1440
-      //   },
1441
-      //   id:this.selectedPlaceId,
1442
-      //   place:this.selectedPlaceName
1443
-      // };//增加区域地点
1444
-      console.log(that.model, 11111);
1445
-      // console.log(this.selectedPlaceId,this.selectedAreaId,8888);//2020年4月25日16:12:55
1446
-      that.model.fileUrl = "url";
1447
-      that.loadShow = true;
1469
+    basePost(){
1470
+      let that = this;
1448
       if (this.order == 5) {
1471
       if (this.order == 5) {
1449
         that.$http
1472
         that.$http
1450
           .post(
1473
           .post(
@@ -1556,6 +1579,37 @@ export default {
1556
             }
1579
             }
1557
           });
1580
           });
1558
       }
1581
       }
1582
+    },
1583
+    // 提交
1584
+    submitHandler() {
1585
+      var that = this;
1586
+
1587
+      that.setLocalStroageData();
1588
+      // that.modelData.incident.place = {
1589
+      //   area:{
1590
+      //     id:this.selectedAreaId,
1591
+      //     area:this.selectedAreaName
1592
+      //   },
1593
+      //   id:this.selectedPlaceId,
1594
+      //   place:this.selectedPlaceName
1595
+      // };//增加区域地点
1596
+      console.log(that.model,that.modelData, 11111);
1597
+      // console.log(this.selectedPlaceId,this.selectedAreaId,8888);//2020年4月25日16:12:55
1598
+      that.model.fileUrl = "url";
1599
+      that.loadShow = true;
1600
+      //填写了处理日志,并且是处理中状态
1601
+      if(that.handlerLog&&that.handlerLog.trim()&&that.modelData.incident.state.value == 'handler'){
1602
+        that.$http
1603
+          .post(
1604
+            "service/bpm/data/addData/operationLog",
1605
+            {operationLog:{opType:'handlerLog',opValue:that.handlerLog,extra1:that.modelData.incident.id}}
1606
+          )
1607
+          .then(function(result1) {
1608
+              that.basePost();
1609
+          })
1610
+      }else{
1611
+        that.basePost();
1612
+      }
1559
       event.preventDefault();
1613
       event.preventDefault();
1560
     },
1614
     },
1561
     validateHandler(result) {
1615
     validateHandler(result) {
@@ -1658,7 +1712,8 @@ export default {
1658
     // JsonView
1712
     // JsonView
1659
     CubeExtendPopup,
1713
     CubeExtendPopup,
1660
     LoadIng,
1714
     LoadIng,
1661
-    PrompTing
1715
+    PrompTing,
1716
+    HandlerLog
1662
   }
1717
   }
1663
 };
1718
 };
1664
 </script>
1719
 </script>
@@ -1833,10 +1888,10 @@ i.iconfont.blue {
1833
     top: 0.88rem;
1888
     top: 0.88rem;
1834
     z-index: 9;
1889
     z-index: 9;
1835
     div {
1890
     div {
1836
-      width: 33.33%;
1891
+      width: 25%;
1837
       text-align: center;
1892
       text-align: center;
1838
       &.p50 {
1893
       &.p50 {
1839
-        width: 49.99%;
1894
+        width: 33.33%;
1840
       }
1895
       }
1841
       a {
1896
       a {
1842
         display: inline-block;
1897
         display: inline-block;

+ 13 - 4
src/views/solved.vue

@@ -22,6 +22,14 @@
22
           </div>
22
           </div>
23
           <div class="fl">
23
           <div class="fl">
24
             <a
24
             <a
25
+              :class="{ active: actives == 'handlerLog' }"
26
+              href="javascript:;"
27
+              @click="toInfo('handlerLog')"
28
+              >处理日志</a
29
+            >
30
+          </div>
31
+          <div class="fl">
32
+            <a
25
               :class="{ active: actives == 'progress' }"
33
               :class="{ active: actives == 'progress' }"
26
               href="javascript:;"
34
               href="javascript:;"
27
               @click="toInfo('progress')"
35
               @click="toInfo('progress')"
@@ -226,7 +234,7 @@
226
                 <span class="fl">转派原因</span>
234
                 <span class="fl">转派原因</span>
227
                 <span class="fr" >{{model.transferReason}}</span>
235
                 <span class="fr" >{{model.transferReason}}</span>
228
               </p> -->
236
               </p> -->
229
-
237
+          <HandlerLog :data="model.incident.handlerLogs" id="handlerLog"></HandlerLog>
230
           <div class="label" id="progress">处理进度</div>
238
           <div class="label" id="progress">处理进度</div>
231
           <div
239
           <div
232
             :class="{ progress: true, progressHide: !pro_hides }"
240
             :class="{ progress: true, progressHide: !pro_hides }"
@@ -257,7 +265,6 @@
257
               pro_hides ? "隐藏详情 <<" : "展开详情 >>"
265
               pro_hides ? "隐藏详情 <<" : "展开详情 >>"
258
             }}</span>
266
             }}</span>
259
           </p>
267
           </p>
260
-
261
           <div
268
           <div
262
             class="form"
269
             class="form"
263
             v-if="model.incident.handlerUser.id == loginUser.id"
270
             v-if="model.incident.handlerUser.id == loginUser.id"
@@ -306,6 +313,7 @@
306
 </template>
313
 </template>
307
 <script>
314
 <script>
308
 import LoadIng from "./../views/loading.vue";
315
 import LoadIng from "./../views/loading.vue";
316
+import HandlerLog from "./../views/handlerLog.vue";
309
 export default {
317
 export default {
310
   data() {
318
   data() {
311
     return {
319
     return {
@@ -340,7 +348,8 @@ export default {
340
     };
348
     };
341
   },
349
   },
342
   components: {
350
   components: {
343
-    LoadIng
351
+    LoadIng,
352
+    HandlerLog
344
   },
353
   },
345
   methods: {
354
   methods: {
346
     //   获取事件数据
355
     //   获取事件数据
@@ -578,7 +587,7 @@ i.iconfont {
578
     position: fixed;
587
     position: fixed;
579
     top: 0.88rem;
588
     top: 0.88rem;
580
     div {
589
     div {
581
-      width: 33.33%;
590
+      width: 25%;
582
       text-align: center;
591
       text-align: center;
583
       a {
592
       a {
584
         display: inline-block;
593
         display: inline-block;