浏览代码

增加处理日志

seimin 3 年之前
父节点
当前提交
bf6a51a839
共有 5 个文件被更改,包括 185 次插入31 次删除
  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 3
   if (!date) {
4 4
     return '';
5 5
   }
6
+  if(typeof date === 'number'){
7
+    date = new Date(date);
8
+  }
6 9
   if (typeof date === 'string') {
7 10
     var dateArr = date.split(/[- : \/]/);
8 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 15
                 @click="toInfo('progress')"
16 16
               >处理进度</a>
17 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 25
             <div class="fl" v-if="model.incident.handlerUser.id==loginUser.id">
19 26
               <a :class="{active:actives=='jd'}" href="javascript:;" @click="toInfo('jd')">接单</a>
20 27
             </div>
@@ -130,7 +137,7 @@
130 137
                 </p>
131 138
               </div>
132 139
             </div>
133
-
140
+            <HandlerLog :data="model.incident.handlerLogs" id="handlerLog"></HandlerLog>
134 141
             <div class="label" id="progress">处理进度</div>
135 142
             <div :class="{'progress':true,'progressHide':!pro_hides}" id="progressBox">
136 143
               <div class="progress_info" v-for="item in progressInfo">
@@ -181,6 +188,7 @@
181 188
 <script>
182 189
 import LoadIng from "./../views/loading.vue";
183 190
 import PrompTing from "./../views/prompting.vue";
191
+import HandlerLog from "./../views/handlerLog.vue";
184 192
 export default {
185 193
   data() {
186 194
     return {
@@ -212,7 +220,8 @@ export default {
212 220
   },
213 221
   components: {
214 222
     LoadIng,
215
-    PrompTing
223
+    PrompTing,
224
+    HandlerLog
216 225
   },
217 226
   methods: {
218 227
     //   获取事件数据
@@ -397,10 +406,10 @@ i.iconfont.blue {
397 406
     top: 0.88rem;
398 407
 
399 408
     div {
400
-      width: 33.33%;
409
+      width: 25%;
401 410
       text-align: center;
402 411
       &.p50{
403
-        width: 49.99% ;
412
+        width: 33.333% ;
404 413
     }
405 414
       a {
406 415
         display: inline-block;

+ 78 - 23
src/views/processing.vue

@@ -20,6 +20,16 @@
20 20
             :class="{ p50: modelData.incident.handlerUser.id != loginUser.id }"
21 21
           >
22 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 33
               :class="{ active: actives == 'progress' }"
24 34
               href="javascript:;"
25 35
               @click="toInfo('progress')"
@@ -202,7 +212,7 @@
202 212
               </p>
203 213
             </div>
204 214
           </div>
205
-
215
+          <HandlerLog :data="modelData.incident.handlerLogs" id="handlerLog"></HandlerLog>
206 216
           <div class="label" id="progress">处理进度</div>
207 217
           <div
208 218
             :class="{ progress: true, progressHide: !pro_hides }"
@@ -292,6 +302,7 @@
292 302
                       >
293 303
                     </div>
294 304
                   </cube-form-item>
305
+
295 306
                   <div class="label formLabel" v-if="order == 1">
296 307
                     报修图片
297 308
                     <span>(最多可上传3张JPG或PNG,每张不能超过10M)</span>
@@ -354,6 +365,19 @@
354 365
                     :field="fields[9]"
355 366
                     v-if="order == 3"
356 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 381
                 </cube-form-group>
358 382
                 <cube-form-group class="sub">
359 383
                   <cube-button type="submit" @click="subVali()"
@@ -380,6 +404,7 @@ import DatePicker from "./../components/date-picker.vue";
380 404
 import CubeExtendPopup from "./../components/extend-popup.vue";
381 405
 import LoadIng from "./../views/loading.vue";
382 406
 import PrompTing from "./../views/prompting.vue";
407
+import HandlerLog from "./../views/handlerLog.vue";
383 408
 // import host from '../request/host'
384 409
 
385 410
 // 知识库类型
@@ -516,6 +541,7 @@ export default {
516 541
         incident: {}
517 542
       }, //上传的model
518 543
       incidentTitle: "", //处理方案
544
+      handlerLog: "", //处理日志
519 545
       referenceInfo: {}, //引用信息
520 546
       selectedCategoryTxt: "", //事件分类选中展示
521 547
       selectedAreaId: "", //区域选中id--seimin
@@ -794,6 +820,18 @@ export default {
794 820
           rules: {
795 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 847
   components: {
810
-    LoadIng
848
+    LoadIng,
849
+    HandlerLog
811 850
   },
812 851
   methods: {
813 852
     //获取区域
@@ -1427,24 +1466,8 @@ export default {
1427 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 1471
       if (this.order == 5) {
1449 1472
         that.$http
1450 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 1613
       event.preventDefault();
1560 1614
     },
1561 1615
     validateHandler(result) {
@@ -1658,7 +1712,8 @@ export default {
1658 1712
     // JsonView
1659 1713
     CubeExtendPopup,
1660 1714
     LoadIng,
1661
-    PrompTing
1715
+    PrompTing,
1716
+    HandlerLog
1662 1717
   }
1663 1718
 };
1664 1719
 </script>
@@ -1833,10 +1888,10 @@ i.iconfont.blue {
1833 1888
     top: 0.88rem;
1834 1889
     z-index: 9;
1835 1890
     div {
1836
-      width: 33.33%;
1891
+      width: 25%;
1837 1892
       text-align: center;
1838 1893
       &.p50 {
1839
-        width: 49.99%;
1894
+        width: 33.33%;
1840 1895
       }
1841 1896
       a {
1842 1897
         display: inline-block;

+ 13 - 4
src/views/solved.vue

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