seimin лет назад: 2
Родитель
Сommit
6280c75275

+ 4 - 2
angular.json

@@ -34,7 +34,8 @@
34 34
             ],
35 35
             "styles": [
36 36
               "src/styles.less",
37
-              "src/assets/iconfont/iconfont.css"
37
+              "src/assets/iconfont/iconfont.css",
38
+              "node_modules/viewerjs/dist/viewer.min.css"
38 39
             ],
39 40
             "scripts": [
40 41
               "node_modules/echarts/dist/echarts.min.js"
@@ -103,7 +104,8 @@
103 104
             ],
104 105
             "styles": [
105 106
               "src/styles.less",
106
-              "src/assets/iconfont/iconfont.css"
107
+              "src/assets/iconfont/iconfont.css",
108
+              "node_modules/viewerjs/dist/viewer.min.css"
107 109
             ],
108 110
             "scripts": [
109 111
               "node_modules/echarts/dist/echarts.min.js"

+ 25 - 10
package-lock.json

@@ -33,6 +33,7 @@
33 33
         "rxjs": "~6.4.0",
34 34
         "sortablejs": "^1.14.0",
35 35
         "tslib": "^1.9.0",
36
+        "viewerjs": "^1.10.5",
36 37
         "zone.js": "^0.9.1"
37 38
       },
38 39
       "devDependencies": {
@@ -15946,6 +15947,11 @@
15946 15947
         "extsprintf": "^1.2.0"
15947 15948
       }
15948 15949
     },
15950
+    "node_modules/viewerjs": {
15951
+      "version": "1.10.5",
15952
+      "resolved": "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.10.5.tgz",
15953
+      "integrity": "sha512-QwKrmXlSfKg5x4y74F/jicpHIRqBMMfHXyboOxHDi5n4XAaejjpalphPq4/HW6venQAoMiD57HpVwBk0JvqpSA=="
15954
+    },
15949 15955
     "node_modules/vm-browserify": {
15950 15956
       "version": "1.1.2",
15951 15957
       "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz",
@@ -16993,8 +16999,7 @@
16993 16999
     "node_modules/zone.js": {
16994 17000
       "version": "0.9.1",
16995 17001
       "resolved": "https://registry.npm.taobao.org/zone.js/download/zone.js-0.9.1.tgz",
16996
-      "integrity": "sha1-43xuXFTBP65N4mtf/o2OkhLabZs=",
16997
-      "dev": true
17002
+      "integrity": "sha1-43xuXFTBP65N4mtf/o2OkhLabZs="
16998 17003
     },
16999 17004
     "node_modules/zrender": {
17000 17005
       "version": "4.3.2",
@@ -18070,7 +18075,8 @@
18070 18075
       "version": "4.0.0",
18071 18076
       "resolved": "https://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-4.0.0.tgz",
18072 18077
       "integrity": "sha1-SCIQFAWCo2uDw+NC4c/ryqkkCUg=",
18073
-      "dev": true
18078
+      "dev": true,
18079
+      "requires": {}
18074 18080
     },
18075 18081
     "acorn-walk": {
18076 18082
       "version": "7.2.0",
@@ -18124,13 +18130,15 @@
18124 18130
       "version": "1.0.1",
18125 18131
       "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz",
18126 18132
       "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
18127
-      "dev": true
18133
+      "dev": true,
18134
+      "requires": {}
18128 18135
     },
18129 18136
     "ajv-keywords": {
18130 18137
       "version": "3.5.2",
18131 18138
       "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882384060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz",
18132 18139
       "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
18133
-      "dev": true
18140
+      "dev": true,
18141
+      "requires": {}
18134 18142
     },
18135 18143
     "amdefine": {
18136 18144
       "version": "1.0.1",
@@ -19231,7 +19239,8 @@
19231 19239
       "version": "5.0.2",
19232 19240
       "resolved": "https://registry.npm.taobao.org/circular-dependency-plugin/download/circular-dependency-plugin-5.0.2.tgz",
19233 19241
       "integrity": "sha1-2haMCzfntDVj+5+RLBwAfCEzie8=",
19234
-      "dev": true
19242
+      "dev": true,
19243
+      "requires": {}
19235 19244
     },
19236 19245
     "class-utils": {
19237 19246
       "version": "0.3.6",
@@ -22626,7 +22635,8 @@
22626 22635
       "version": "1.7.0",
22627 22636
       "resolved": "https://registry.nlark.com/karma-jasmine-html-reporter/download/karma-jasmine-html-reporter-1.7.0.tgz",
22628 22637
       "integrity": "sha1-UsSJp012CTShCJv6XqSo/LhMwos=",
22629
-      "dev": true
22638
+      "dev": true,
22639
+      "requires": {}
22630 22640
     },
22631 22641
     "karma-source-map-support": {
22632 22642
       "version": "1.4.0",
@@ -26956,7 +26966,8 @@
26956 26966
     "overlayscrollbars-ngx": {
26957 26967
       "version": "0.1.1",
26958 26968
       "resolved": "https://registry.nlark.com/overlayscrollbars-ngx/download/overlayscrollbars-ngx-0.1.1.tgz",
26959
-      "integrity": "sha1-APyVynU9vV7by2Njp9AokJJVIow="
26969
+      "integrity": "sha1-APyVynU9vV7by2Njp9AokJJVIow=",
26970
+      "requires": {}
26960 26971
     },
26961 26972
     "p-defer": {
26962 26973
       "version": "1.0.0",
@@ -29910,6 +29921,11 @@
29910 29921
         "extsprintf": "^1.2.0"
29911 29922
       }
29912 29923
     },
29924
+    "viewerjs": {
29925
+      "version": "1.10.5",
29926
+      "resolved": "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.10.5.tgz",
29927
+      "integrity": "sha512-QwKrmXlSfKg5x4y74F/jicpHIRqBMMfHXyboOxHDi5n4XAaejjpalphPq4/HW6venQAoMiD57HpVwBk0JvqpSA=="
29928
+    },
29913 29929
     "vm-browserify": {
29914 29930
       "version": "1.1.2",
29915 29931
       "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz",
@@ -30769,8 +30785,7 @@
30769 30785
     "zone.js": {
30770 30786
       "version": "0.9.1",
30771 30787
       "resolved": "https://registry.npm.taobao.org/zone.js/download/zone.js-0.9.1.tgz",
30772
-      "integrity": "sha1-43xuXFTBP65N4mtf/o2OkhLabZs=",
30773
-      "dev": true
30788
+      "integrity": "sha1-43xuXFTBP65N4mtf/o2OkhLabZs="
30774 30789
     },
30775 30790
     "zrender": {
30776 30791
       "version": "4.3.2",

+ 1 - 0
package.json

@@ -38,6 +38,7 @@
38 38
     "rxjs": "~6.4.0",
39 39
     "sortablejs": "^1.14.0",
40 40
     "tslib": "^1.9.0",
41
+    "viewerjs": "^1.10.5",
41 42
     "zone.js": "^0.9.1"
42 43
   },
43 44
   "devDependencies": {

+ 1 - 1
proxy.conf.json

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "/service": {
3
-    "target": "http://weixintest15.ngser.dashitech.com",
3
+    "target": "http://192.168.3.108",
4 4
     "logLevel": "debug",
5 5
     "changeOrigin": true,
6 6
     "pathRewrite": {

+ 1 - 1
src/app/services/httpInterceptor.service.ts

@@ -31,7 +31,7 @@ export class HttpInterceptorService implements HttpInterceptor {
31 31
       tap(
32 32
         (event) => {
33 33
           if (event instanceof HttpResponse) {
34
-            console.log(event);
34
+            // console.log(event);
35 35
           }
36 36
         },
37 37
         (error) => {

+ 12 - 0
src/app/services/main.service.ts

@@ -492,6 +492,12 @@ export class MainService {
492 492
       headers: this.headers,
493 493
     });
494 494
   }
495
+  //获取附件图片
496
+  wechatRequesterIncident(id) {
497
+    return this.http.get(host.host + "/itsm/common/listAttachment/wechatRequesterIncident/" + id, {
498
+      headers: this.headers,
499
+    });
500
+  }
495 501
   //查报修流程时间
496 502
   getProcessTime(data,processInstanceId) {
497 503
     return this.http.post(host.host + "/itsm/bpm/flowTracing/"+processInstanceId, data, {
@@ -528,6 +534,12 @@ export class MainService {
528 534
       headers: this.headers,
529 535
     });
530 536
   }
537
+  //报修评价
538
+  degree(data) {
539
+    return this.http.post(host.host + "/itsm/bpm/degree", data, {
540
+      headers: this.headers,
541
+    });
542
+  }
531 543
   //复制院区
532 544
   copyHosTaskType(data) {
533 545
     return this.http.post(host.host + "/api/copyHosTaskType", data, {

+ 293 - 307
src/app/share/detail-bx/detail-bx.component.html

@@ -1,345 +1,331 @@
1 1
 <!-- 报修信息 -->
2 2
 <div class="detail" *ngIf="!maskFlag">
3
-    <div class="title">报修信息<i class="icon_transport transport-guanbi" (click)="close()"></i></div>
4
-    <overlay-scrollbars #osComponentRef1 style="height: 90%; flex: 1">
5
-      <div class="content">
6
-        <div class="top" *ngIf="amplificationShow">
7
-          <div class="num">
8
-            <span class="left">报修编号:{{orderInfo.bxcode}}</span>
9
-            <span class="right">{{orderInfo.incidentState?orderInfo.incidentState.name:''}}</span>
10
-          </div>
11
-          <div class="info" nz-row>
12
-            <div nz-col nzSpan="8">报修类别:{{orderInfo.category?orderInfo.category.category:''}}</div>
13
-            <div nz-col nzSpan="8">报修地址:<ng-container *ngIf="orderInfo.place">{{ orderInfo.place.area.area }} {{ orderInfo.place.place }} {{ orderInfo.address }}</ng-container></div>
14
-            <div nz-col nzSpan="24">报修内容:{{orderInfo.description}}</div>
15
-            <div nz-col nzSpan="24">报修图片:{{orderInfo.description}}</div>
16
-            <div nz-col nzSpan="8">维修人:<ng-container *ngIf="orderInfo.incident&&orderInfo.incident.handlingPersonnelUser">{{ orderInfo.incident.handlingPersonnelUser.name }}</ng-container></div>
17
-            <div nz-col nzSpan="8">维修人电话:<ng-container *ngIf="orderInfo.incident&&orderInfo.incident.handlingPersonnelUser">{{ orderInfo.incident.handlingPersonnelUser.phone }}</ng-container></div>
18
-            <div nz-col nzSpan="24" *ngIf="processData == '已撤回'">撤回原因:{{ orderInfo.retractReason }}</div>
19
-            <div nz-col nzSpan="24" *ngIf="processData == '不受理'">不受理原因:{{ orderInfo.rejectRemark }}</div>
3
+  <div class="title">报修信息<i class="icon_transport transport-guanbi" (click)="close()"></i></div>
4
+  <overlay-scrollbars #osComponentRef1 style="height: 90%; flex: 1">
5
+    <div class="content">
6
+      <div class="top" *ngIf="amplificationShow">
7
+        <div class="num">
8
+          <span class="left">报修编号:{{orderInfo.bxcode}}</span>
9
+          <span class="right">{{orderInfo.incidentState?orderInfo.incidentState.name:''}}</span>
10
+        </div>
11
+        <div class="info" nz-row>
12
+          <div nz-col nzSpan="8">报修类别:{{orderInfo.category?orderInfo.category.category:''}}</div>
13
+          <div nz-col nzSpan="8">报修地址:<ng-container *ngIf="orderInfo.place">{{ orderInfo.place.area.area }} {{ orderInfo.place.place }} {{ orderInfo.address }}</ng-container></div>
14
+          <div nz-col nzSpan="24">报修内容:{{orderInfo.description}}</div>
15
+          <div nz-col nzSpan="24">报修图片:
16
+            <!-- <div class="imgViewHelp">
17
+              <ul id="ljImgViewerId" class="list">
18
+                <img class="mr8" *ngFor="let img of imgs;let i = index;" width="100px" [src]="img" alt="" />
19
+              </ul>
20
+            </div> -->
21
+            <app-image-viewer [imageUrl]="imgs" *ngIf="imgs.length"></app-image-viewer>
20 22
           </div>
23
+          <div nz-col nzSpan="8">维修人:<ng-container *ngIf="orderInfo.incident&&orderInfo.incident.handlingPersonnelUser">{{ orderInfo.incident.handlingPersonnelUser.name }}</ng-container></div>
24
+          <div nz-col nzSpan="8">维修人电话:<ng-container *ngIf="orderInfo.incident&&orderInfo.incident.handlingPersonnelUser">{{ orderInfo.incident.handlingPersonnelUser.phone }}</ng-container></div>
25
+          <div nz-col nzSpan="24" *ngIf="processData == '已撤回'">撤回原因:{{ orderInfo.retractReason }}</div>
26
+          <div nz-col nzSpan="24" *ngIf="processData == '不受理'">不受理原因:{{ orderInfo.rejectRemark }}</div>
21 27
         </div>
22
-        <div class="center" *ngIf="amplificationShow">
23
-          <div class="box">
24
-            <!-- <div class="steps" *ngFor="let step of logList;let i = index;">
25
-              <div class="step">
26
-                <div class="info">
27
-                  <i
28
-                    [ngClass]="{'icon_transport':true, 'transport-icon_liucheng':true,'green':(step.record&&step.record[0]&&step.record[0].operationTime)}"></i>
29
-                  <p>{{step.operationName}}</p>
30
-                  <p>{{step.record.length>=1?(step.record[0].operationTime|date:'MM-dd HH:mm'):''}}</p>
31
-                  <p *ngIf="step.record[0]&&step.record[0].dept">
32
-                    <span *ngFor="let dept of step.record">{{!showCoop&&deptDisplay==2?dept.deptalias:dept.dept}},</span>
33
-                  </p>
34
-                  <p *ngIf="i!=0&&step.record&&step.record.length">耗时{{filterTime(step.record)}}</p>
35
-                </div>
36
-                <div class="line"></div>
28
+      </div>
29
+      <div class="center" *ngIf="amplificationShow">
30
+        <div class="box">
31
+          <!-- 流程图 start -->
32
+          <div class="processBox">
33
+            <div
34
+              class="process"
35
+              *ngIf="
36
+                processData == '不受理' ||
37
+                  processData == '结束' ||
38
+                  processData == '已撤回' ||
39
+                  processData == '重复事件'
40
+              "
41
+            >
42
+              <div class="status">
43
+                {{ processMessage[4] ? processMessage[4].name : "" }}
37 44
               </div>
38
-            </div> -->
39
-            <!-- 流程图 start -->
40
-            <div class="processBox">
41
-              <div
42
-                class="process"
43
-                *ngIf="
44
-                  processData == '不受理' ||
45
-                    processData == '结束' ||
46
-                    processData == '已撤回' ||
47
-                    processData == '重复事件'
48
-                "
49
-              >
50
-                <div class="status">
51
-                  {{ processMessage[4] ? processMessage[4].name : "" }}
52
-                </div>
53
-                <div class="ico">
54
-                  <i class="icon_transport transport-icon_liucheng last"></i>
55
-                </div>
56
-                <div class="time">
57
-                  <ng-container *ngIf="processTime[4]">
58
-                    {{processTime[4].startTime | date:"MM-dd HH:mm:ss"}}
59
-                  </ng-container>
60
-                </div>
45
+              <div class="ico">
46
+                <i class="icon_transport transport-icon_liucheng last"></i>
61 47
               </div>
62
-              <div
63
-                class="processCont"
64
-                *ngIf="
65
-                  processData == '不受理' ||
66
-                    processData == '结束' ||
67
-                    processData == '已撤回' ||
68
-                    processData == '重复事件'
69
-                "
70
-              >
71
-                <div class="status"></div>
72
-                <div
73
-                  class="conents"
74
-                  v-html="processMessage[4] ? processMessage[4].desc : ''"
75
-                ></div>
48
+              <div class="time">
49
+                <ng-container *ngIf="processTime[4]">
50
+                  {{processTime[4].startTime | date:"MM-dd HH:mm:ss"}}
51
+                </ng-container>
76 52
               </div>
53
+            </div>
54
+            <div
55
+              class="processCont"
56
+              *ngIf="
57
+                processData == '不受理' ||
58
+                  processData == '结束' ||
59
+                  processData == '已撤回' ||
60
+                  processData == '重复事件'
61
+              "
62
+            >
63
+              <div class="status"></div>
77 64
               <div
78
-                class="process"
79
-                *ngIf="
80
-                  processData == '评价' ||
81
-                    (processData == '结束' && processData != '重复事件')
82
-                "
83
-              >
84
-                <div class="status">
85
-                  {{ processMessage[3] ? processMessage[3].name : "" }}
86
-                </div>
87
-                <div class="ico">
88
-                  <i
89
-                    class="icon_transport transport-icon_liucheng green now"
90
-                    *ngIf="processData == '评价'"
91
-                  ></i>
92
-                  <i
93
-                    class="icon_transport transport-icon_liucheng last"
94
-                    *ngIf="processData != '评价'"
95
-                  ></i>
96
-                </div>
97
-                <div class="time">
98
-                  <ng-container *ngIf="processTime[3]">
99
-                    {{processTime[3].startTime | date:"MM-dd HH:mm:ss"}}
100
-                  </ng-container>
101
-                </div>
65
+                class="conents"
66
+                [innerHTML]="processMessage[4] ? processMessage[4].desc : ''"
67
+              ></div>
68
+            </div>
69
+            <div
70
+              class="process"
71
+              *ngIf="
72
+                processData == '评价' ||
73
+                  (processData == '结束' && processData != '重复事件')
74
+              "
75
+            >
76
+              <div class="status">
77
+                {{ processMessage[3] ? processMessage[3].name : "" }}
78
+              </div>
79
+              <div class="ico">
80
+                <i
81
+                  class="icon_transport transport-icon_liucheng green now"
82
+                  *ngIf="processData == '评价'"
83
+                ></i>
84
+                <i
85
+                  class="icon_transport transport-icon_liucheng last"
86
+                  *ngIf="processData != '评价'"
87
+                ></i>
102 88
               </div>
89
+              <div class="time">
90
+                <ng-container *ngIf="processTime[3]">
91
+                  {{processTime[3].startTime | date:"MM-dd HH:mm:ss"}}
92
+                </ng-container>
93
+              </div>
94
+            </div>
95
+            <div
96
+              class="processCont"
97
+              *ngIf="
98
+                processData == '评价' ||
99
+                  (processData == '结束' && processData != '重复事件')
100
+              "
101
+            >
102
+              <div class="status"></div>
103 103
               <div
104
-                class="processCont"
105
-                *ngIf="
106
-                  processData == '评价' ||
107
-                    (processData == '结束' && processData != '重复事件')
108
-                "
109
-              >
110
-                <div class="status"></div>
104
+                class="conents"
105
+                [innerHTML]="processMessage[3] ? processMessage[3].desc : ''"
106
+              ></div>
107
+            </div>
108
+            <!-- 处理日志 start -->
109
+            <ng-container *ngIf="orderInfo.incident">
110
+              <div *ngFor="let item of orderInfo.incident.handlerLogs;let i = index;">
111 111
                 <div
112
-                  class="conents"
113
-                  v-html="processMessage[3] ? processMessage[3].desc : ''"
114
-                ></div>
115
-              </div>
116
-              <!-- 处理日志 start -->
117
-              <ng-container *ngIf="orderInfo.incident">
118
-                <div *ngFor="let item of orderInfo.incident.handlerLogs;let i = index;">
119
-                  <div
120
-                    class="process"
121
-                    *ngIf="
122
-                      processData == '处理' ||
123
-                        processData == '评价' ||
124
-                        (processData == '结束' && processData != '重复事件')
125
-                    "
126
-                  >
127
-                    <div class="status">
128
-                      {{ processMessage[2] ? processMessage[2].name : "" }}
129
-                    </div>
130
-                    <div class="ico">
131
-                      <i
132
-                        class="icon_transport transport-icon_liucheng green now"
133
-                        *ngIf="processData == '处理' && i === 0"
134
-                      ></i>
135
-                      <i
136
-                        class="icon_transport transport-icon_liucheng last"
137
-                        v-else
138
-                      ></i>
139
-                    </div>
140
-                    <div class="time">
141
-                      {{ item.opTime | date:"MM-dd HH:mm:ss"}},{{ item.userName }}
142
-                    </div>
112
+                  class="process"
113
+                  *ngIf="
114
+                    processData == '处理' ||
115
+                      processData == '评价' ||
116
+                      (processData == '结束' && processData != '重复事件')
117
+                  "
118
+                >
119
+                  <div class="status">
120
+                    {{ processMessage[2] ? processMessage[2].name : "" }}
143 121
                   </div>
144
-                  <div
145
-                    class="processCont"
146
-                    *ngIf="
147
-                      processData == '处理' ||
148
-                        processData == '评价' ||
149
-                        (processData == '结束' && processData != '重复事件')
150
-                    "
151
-                  >
152
-                    <div class="status"></div>
153
-                    <div class="conents">{{ item.opValue }}</div>
122
+                  <div class="ico">
123
+                    <i
124
+                      class="icon_transport transport-icon_liucheng green now"
125
+                      *ngIf="processData == '处理' && i === 0"
126
+                    ></i>
127
+                    <i
128
+                      class="icon_transport transport-icon_liucheng last"
129
+                      *ngIf="!(processData == '处理' && i === 0)"
130
+                    ></i>
131
+                  </div>
132
+                  <div class="time">
133
+                    {{ item.opTime | date:"MM-dd HH:mm:ss"}},{{ item.userName }}
154 134
                   </div>
155 135
                 </div>
156
-              </ng-container>
157
-              <!-- 处理日志 end -->
158
-              <div
159
-                class="process"
160
-                *ngIf="
161
-                  processData == '处理' ||
162
-                    processData == '评价' ||
163
-                    (processData == '结束' && processData != '重复事件')
164
-                "
165
-              >
166
-                <div class="status">
167
-                  {{ processMessage[2] ? processMessage[2].name : "" }}
168
-                </div>
169
-                <div class="ico">
170
-                  <i
171
-                    class="icon_transport transport-icon_liucheng green now"
172
-                    *ngIf="processData == '处理' && orderInfo.incident && !orderInfo.incident.handlerLogs"
173
-                  ></i>
174
-                  <i
175
-                    class="icon_transport transport-icon_liucheng last"
176
-                    v-else
177
-                  ></i>
178
-                </div>
179
-                <div class="time">
180
-                  <ng-container *ngIf="processTime[2]">
181
-                    {{processTime[2].startTime | date:"MM-dd HH:mm:ss"}}
182
-                  </ng-container>
136
+                <div
137
+                  class="processCont"
138
+                  *ngIf="
139
+                    processData == '处理' ||
140
+                      processData == '评价' ||
141
+                      (processData == '结束' && processData != '重复事件')
142
+                  "
143
+                >
144
+                  <div class="status"></div>
145
+                  <div class="conents">{{ item.opValue }}</div>
183 146
                 </div>
184 147
               </div>
148
+            </ng-container>
149
+            <!-- 处理日志 end -->
150
+            <div
151
+              class="process"
152
+              *ngIf="
153
+                processData == '处理' ||
154
+                  processData == '评价' ||
155
+                  (processData == '结束' && processData != '重复事件')
156
+              "
157
+            >
158
+              <div class="status">
159
+                {{ processMessage[2] ? processMessage[2].name : "" }}
160
+              </div>
161
+              <div class="ico">
162
+                <i
163
+                  class="icon_transport transport-icon_liucheng green now"
164
+                  *ngIf="processData == '处理' && orderInfo.incident && !orderInfo.incident.handlerLogs"
165
+                ></i>
166
+                <i
167
+                  class="icon_transport transport-icon_liucheng last"
168
+                  v-else
169
+                ></i>
170
+              </div>
171
+              <div class="time">
172
+                <ng-container *ngIf="processTime[2]">
173
+                  {{processTime[2].startTime | date:"MM-dd HH:mm:ss"}}
174
+                </ng-container>
175
+              </div>
176
+            </div>
177
+            <div
178
+              class="processCont"
179
+              *ngIf="
180
+                processData == '处理' ||
181
+                  processData == '评价' ||
182
+                  (processData == '结束' && processData != '重复事件')
183
+              "
184
+            >
185
+              <div class="status"></div>
185 186
               <div
186
-                class="processCont"
187
-                *ngIf="
187
+                class="conents"
188
+                [innerHTML]="processMessage[2] ? processMessage[2].desc : ''"
189
+              ></div>
190
+            </div>
191
+            <div
192
+              class="process"
193
+              *ngIf="
194
+                processData == '受理' ||
188 195
                   processData == '处理' ||
189
-                    processData == '评价' ||
190
-                    (processData == '结束' && processData != '重复事件')
191
-                "
192
-              >
193
-                <div class="status"></div>
194
-                <div
195
-                  class="conents"
196
-                  v-html="processMessage[2] ? processMessage[2].desc : ''"
197
-                ></div>
196
+                  processData == '评价' ||
197
+                  (processData == '结束' && processData != '重复事件')
198
+              "
199
+            >
200
+              <div class="status">
201
+                {{ processMessage[1] ? processMessage[1].name : "" }}
198 202
               </div>
199
-              <div
200
-                class="process"
201
-                *ngIf="
202
-                  processData == '受理' ||
203
-                    processData == '处理' ||
204
-                    processData == '评价' ||
205
-                    (processData == '结束' && processData != '重复事件')
206
-                "
207
-              >
208
-                <div class="status">
209
-                  {{ processMessage[1] ? processMessage[1].name : "" }}
210
-                </div>
211
-                <div class="ico">
212
-                  <i
213
-                    class="icon_transport transport-icon_liucheng green now"
214
-                    *ngIf="processData == '受理'"
215
-                  ></i>
216
-                  <i
217
-                    class="icon_transport transport-icon_liucheng last"
218
-                    *ngIf="processData != '受理'"
219
-                  ></i>
220
-                </div>
221
-                <div class="time">
222
-                  <ng-container *ngIf="processTime[1]">
223
-                    {{processTime[1].startTime | date:'MM-dd HH:mm:ss'}}
224
-                  </ng-container>
225
-                </div>
203
+              <div class="ico">
204
+                <i
205
+                  class="icon_transport transport-icon_liucheng green now"
206
+                  *ngIf="processData == '受理'"
207
+                ></i>
208
+                <i
209
+                  class="icon_transport transport-icon_liucheng last"
210
+                  *ngIf="processData != '受理'"
211
+                ></i>
212
+              </div>
213
+              <div class="time">
214
+                <ng-container *ngIf="processTime[1]">
215
+                  {{processTime[1].startTime | date:'MM-dd HH:mm:ss'}}
216
+                </ng-container>
226 217
               </div>
218
+            </div>
219
+            <div
220
+              class="processCont"
221
+              *ngIf="
222
+                processData == '受理' ||
223
+                  processData == '处理' ||
224
+                  processData == '评价' ||
225
+                  (processData == '结束' && processData != '重复事件')
226
+              "
227
+            >
228
+              <div class="status"></div>
227 229
               <div
228
-                class="processCont"
229
-                *ngIf="
230
-                  processData == '受理' ||
231
-                    processData == '处理' ||
232
-                    processData == '评价' ||
233
-                    (processData == '结束' && processData != '重复事件')
234
-                "
235
-              >
236
-                <div class="status"></div>
237
-                <div
238
-                  class="conents"
239
-                  v-html="processMessage[1] ? processMessage[1].desc : ''"
240
-                ></div>
230
+                class="conents"
231
+                [innerHTML]="processMessage[1] ? processMessage[1].desc : ''"
232
+              ></div>
233
+            </div>
234
+            <div class="process">
235
+              <div class="status">
236
+                {{ processMessage[0] ? processMessage[0].name : "" }}
241 237
               </div>
242
-              <div class="process">
243
-                <div class="status">
244
-                  {{ processMessage[0] ? processMessage[0].name : "" }}
245
-                </div>
246
-                <div class="ico">
247
-                  <i
248
-                    class="icon_transport transport-icon_liucheng green now"
249
-                    *ngIf="processData == '申请'"
250
-                  ></i>
251
-                  <i
252
-                    class="icon_transport transport-icon_liucheng last"
253
-                    *ngIf="processData != '申请'"
254
-                  ></i>
255
-                </div>
256
-                <div class="time">
257
-                  <ng-container *ngIf="processTime[0]">
258
-                    {{processTime[0].startTime | date:"MM-dd HH:mm:ss"}}
259
-                  </ng-container>
260
-                </div>
238
+              <div class="ico">
239
+                <i
240
+                  class="icon_transport transport-icon_liucheng green now"
241
+                  *ngIf="processData == '申请'"
242
+                ></i>
243
+                <i
244
+                  class="icon_transport transport-icon_liucheng last"
245
+                  *ngIf="processData != '申请'"
246
+                ></i>
261 247
               </div>
262
-              <div class="processCont">
263
-                <div class="status"></div>
264
-                <div
265
-                  class="conents lastConents"
266
-                  v-html="processMessage[0] ? processMessage[0].desc : ''"
267
-                ></div>
248
+              <div class="time">
249
+                <ng-container *ngIf="processTime[0]">
250
+                  {{processTime[0].startTime | date:"MM-dd HH:mm:ss"}}
251
+                </ng-container>
268 252
               </div>
269 253
             </div>
270
-            <!-- 流程图 end -->
254
+            <div class="processCont">
255
+              <div class="status"></div>
256
+              <div
257
+                class="conents lastConents"
258
+                [innerHTML]="processMessage[0] ? processMessage[0].desc : ''"
259
+              ></div>
260
+            </div>
271 261
           </div>
262
+          <!-- 流程图 end -->
272 263
         </div>
273
-        <div class="bottom" *ngIf="orderInfo.urgentDetails&&showCoop">
274
-          <div class="urgent">
275
-            <div>
276
-              <ng-container *ngIf="amplificationShow&&orderInfo.urgentDetails&&showCoop">
277
-                  加急原因:{{orderInfo.urgentDetails.urgentReason}}
278
-                <button *ngIf="orderInfo.urgentDetails.checkStatus.id==329" class=" btn default" nz-button nzType="primary"
279
-                  [nzLoading]="urgentLoading" nzGhost (click)="urgent()">确认加急</button>
280
-              </ng-container>
281
-            </div>
282
-            <div class="amplification">
283
-              <button
284
-                nz-button
285
-                nzType="primary"
286
-                class="btn default"
287
-                (click)="amplification()"
288
-              >
289
-                {{ amplificationShow ? "放大" : "还原" }}
290
-              </button>
291
-            </div>
264
+      </div>
265
+      <div class="bottom" *ngIf="orderInfo.urgentDetails&&showCoop">
266
+        <div class="urgent">
267
+          <div>
268
+            <ng-container *ngIf="amplificationShow&&orderInfo.urgentDetails&&showCoop">
269
+                加急原因:{{orderInfo.urgentDetails.urgentReason}}
270
+              <button *ngIf="orderInfo.urgentDetails.checkStatus.id==329" class=" btn default" nz-button nzType="primary"
271
+                [nzLoading]="urgentLoading" nzGhost (click)="urgent()">确认加急</button>
272
+            </ng-container>
273
+          </div>
274
+          <div class="amplification">
275
+            <button
276
+              nz-button
277
+              nzType="primary"
278
+              class="btn default"
279
+              (click)="amplification()"
280
+            >
281
+              {{ amplificationShow ? "放大" : "还原" }}
282
+            </button>
292 283
           </div>
293 284
         </div>
294 285
       </div>
295
-    </overlay-scrollbars>
296
-    <div class="btns display_flex justify-content_flex-center">
297
-      <!-- <button *ngIf="showCoop&&orderInfo.gdState.id==69" nz-button nzType="primary" [nzLoading]="isOkLoading"
298
-        (click)='allotWorker()'>派单</button>
299
-      <button *ngIf="showCoop&&(orderInfo.gdState.id==70||orderInfo.gdState.id==71)" nz-button nzType="primary" nzGhost
300
-        (click)="openRecallModal()">撤回</button>
301
-      <button *ngIf="showCoop&&(orderInfo.gdState.id==69||orderInfo.gdState.id==70||orderInfo.gdState.id==71)" nz-button
302
-        nzType="danger" (click)="openDelModal()">删除</button> -->
303
-      <button class=" btn cancel" nz-button nzType="default" (click)="close()">取消</button>
304 286
     </div>
287
+  </overlay-scrollbars>
288
+  <div class="btns display_flex justify-content_flex-center">
289
+    <button class=" btn cancel" nz-button nzType="default" (click)="close()">取消</button>
305 290
   </div>
291
+</div>
306 292
   
307
-  <!-- 撤回工单 -->
308
-  <div class="recallOrder" *ngIf="recallOrderShow">
309
-    <div class="modalBody">
310
-      <div class="title">提示<i class="icon_transport transport-guanbi" (click)="closeRecallOrderModal()"></i></div>
311
-      <div class="content">
312
-        <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
313
-        <div class="defeat">您确认要撤回此工单吗?</div>
314
-      </div>
315
-      <div class="btns display_flex justify-content_flex-center">
316
-        <button nz-button nzType="primary" [nzLoading]='btnLoading' (click)="confirmRec()">确认</button>
317
-        <button nz-button nzType="primary" [nzLoading]='recLoading' nzGhost (click)="recAndDel()">撤回并删除</button>
318
-        <button class=" btn cancel" nz-button nzType="default" (click)="closeRecallOrderModal()">取消</button>
319
-      </div>
293
+<!-- 撤回工单 -->
294
+<div class="recallOrder" *ngIf="recallOrderShow">
295
+  <div class="modalBody">
296
+    <div class="title">提示<i class="icon_transport transport-guanbi" (click)="closeRecallOrderModal()"></i></div>
297
+    <div class="content">
298
+      <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
299
+      <div class="defeat">您确认要撤回此工单吗?</div>
300
+    </div>
301
+    <div class="btns display_flex justify-content_flex-center">
302
+      <button nz-button nzType="primary" [nzLoading]='btnLoading' (click)="confirmRec()">确认</button>
303
+      <button nz-button nzType="primary" [nzLoading]='recLoading' nzGhost (click)="recAndDel()">撤回并删除</button>
304
+      <button class=" btn cancel" nz-button nzType="default" (click)="closeRecallOrderModal()">取消</button>
320 305
     </div>
321 306
   </div>
322
-  
323
-  <!-- 删除工单 -->
324
-  <div class="recallOrder delModel" *ngIf="delOrderShow">
325
-    <div class="modalBody">
326
-      <div class="title">提示<i class="icon_transport transport-guanbi" (click)="closeDelOrderModal()"></i></div>
327
-      <div class="content">
328
-        <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
329
-        <div class="defeat">您确认要删除此工单吗?</div>
330
-      </div>
331
-      <div class="btns display_flex justify-content_flex-center">
332
-        <button nz-button nzType="primary" [nzLoading]='btnLoading' (click)="confirmDel()">确认</button>
333
-        <button class="btn cancel" nz-button nzType="default" (click)="closeDelOrderModal()">关闭</button>
334
-      </div>
307
+</div>
308
+
309
+<!-- 删除工单 -->
310
+<div class="recallOrder delModel" *ngIf="delOrderShow">
311
+  <div class="modalBody">
312
+    <div class="title">提示<i class="icon_transport transport-guanbi" (click)="closeDelOrderModal()"></i></div>
313
+    <div class="content">
314
+      <div class="icon"><i class="icon_transport transport-wenhao"></i></div>
315
+      <div class="defeat">您确认要删除此工单吗?</div>
316
+    </div>
317
+    <div class="btns display_flex justify-content_flex-center">
318
+      <button nz-button nzType="primary" [nzLoading]='btnLoading' (click)="confirmDel()">确认</button>
319
+      <button class="btn cancel" nz-button nzType="default" (click)="closeDelOrderModal()">关闭</button>
335 320
     </div>
336 321
   </div>
337
-  
338
-  <!-- 操作成功/失败提示框 -->
339
-  <app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
340
-    [info]="promptInfo" (closeModel)="close()">
341
-    <!-- 2.父组件调用子组件时绑定到这个事件属性,并在事件发生时作出回应。(closeModel)="close()" -->
342
-  </app-prompt-modal>
343
-  <!-- 遮罩 -->
344
-  <app-mask *ngIf="maskFlag"></app-mask>
322
+</div>
323
+
324
+<!-- 操作成功/失败提示框 -->
325
+<app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
326
+  [info]="promptInfo" (closeModel)="close()">
327
+  <!-- 2.父组件调用子组件时绑定到这个事件属性,并在事件发生时作出回应。(closeModel)="close()" -->
328
+</app-prompt-modal>
329
+<!-- 遮罩 -->
330
+<app-mask *ngIf="maskFlag"></app-mask>
345 331
   

+ 23 - 12
src/app/share/detail-bx/detail-bx.component.less

@@ -25,17 +25,28 @@
25 25
   position: relative;
26 26
   padding-bottom: 70px;
27 27
 
28
+  .imgViewHelp {
29
+    ul {
30
+      margin: 0;
31
+      padding: 0;
32
+      img {
33
+        margin-right: 8px;
34
+      }
35
+    }
36
+  }
37
+
28 38
   // 流程 start
29 39
   .processBox {
30
-    margin-top: 0.24rem;
40
+    width: 100%;
41
+    margin-top: 12px;
31 42
   }
32 43
   .process {
33
-    padding: 0 0.24rem;
44
+    padding: 0 12px;
34 45
     display: flex;
35 46
   }
36 47
   .process .status {
37 48
     width: 12%;
38
-    font-size: 0.28rem;
49
+    font-size: 14px;
39 50
     text-align: center;
40 51
   }
41 52
   .process .ico {
@@ -43,7 +54,7 @@
43 54
     text-align: center;
44 55
   }
45 56
   .process .ico i {
46
-    font-size: 0.28rem;
57
+    font-size: 14px;
47 58
   }
48 59
   .process .last {
49 60
     color: #005359;
@@ -53,14 +64,14 @@
53 64
   }
54 65
   .process .time {
55 66
     width: 80%;
56
-    font-size: 0.25rem;
67
+    font-size: 12px;
57 68
     color: #999999;
58 69
     padding-left: 2%;
59 70
   }
60 71
   .processCont {
61
-    padding: 0 0.24rem;
72
+    padding: 0 12px;
62 73
     display: flex;
63
-    margin: 0.07rem 0;
74
+    margin: 4px 0;
64 75
   }
65 76
   .processCont .status {
66 77
     width: 12%;
@@ -68,16 +79,16 @@
68 79
   .processCont .conents {
69 80
     width: 80%;
70 81
     margin-left: 3%;
71
-    font-size: 0.25rem;
82
+    font-size: 12px;
72 83
     color: #666666;
73
-    padding: 0.07rem 0;
84
+    padding: 4px 0;
74 85
     padding-left: 5%;
75
-    border-left: 0.01rem #999999 solid;
76
-    line-height: 0.3rem;
86
+    border-left: 1px #999999 solid;
87
+    line-height: 15[x];
77 88
     word-break: break-all;
78 89
   }
79 90
   .processCont .lastConents {
80
-    border-left: 0ch;
91
+    border-left: none;
81 92
   }
82 93
   // 流程 end
83 94
 

+ 21 - 6
src/app/share/detail-bx/detail-bx.component.ts

@@ -27,6 +27,7 @@ export class DetailBxComponent implements OnInit {
27 27
   processTime = [];
28 28
   processData = "";
29 29
   processMessage = [];
30
+  imgs = [];
30 31
 
31 32
   id: number; //工单id
32 33
   orderInfo: any; //工单详情信息
@@ -68,6 +69,7 @@ export class DetailBxComponent implements OnInit {
68 69
       this.orderInfo = res[1]["data"];
69 70
       this.getProcessTime();
70 71
       this.getProcessMessageData();
72
+      this.getImgsData();
71 73
       if (this.orderInfo.incident && !this.orderInfo.incident.handlerLogs) {
72 74
         this.orderInfo.incident.handlerLogs = [];
73 75
       } else {
@@ -75,21 +77,34 @@ export class DetailBxComponent implements OnInit {
75 77
       }
76 78
       if (this.orderInfo.incident && this.orderInfo.incident.repeat) {
77 79
         this.processData = "重复事件";
78
-      } else if (this.orderInfo.state.name == "不受理") {
80
+      } else if (this.orderInfo.incidentState.name == "不受理") {
79 81
         this.processData = "不受理";
80
-      } else if (this.orderInfo.state.name == "未受理") {
82
+      } else if (this.orderInfo.incidentState.name == "未受理") {
81 83
         this.processData = "申请";
82
-      } else if (this.orderInfo.state.name == "处理中") {
84
+      } else if (this.orderInfo.incidentState.name == "处理中") {
83 85
         this.processData = "处理";
84
-      } else if (this.orderInfo.state.name == "待评价") {
86
+      } else if (this.orderInfo.incidentState.name == "待评价") {
85 87
         this.processData = "评价";
86
-      } else if (this.orderInfo.state.name == "已解决") {
88
+      } else if (this.orderInfo.incidentState.name == "已解决") {
87 89
         this.processData = "结束";
88
-      } else if (this.orderInfo.state.name == "已撤回") {
90
+      } else if (this.orderInfo.incidentState.name == "已撤回") {
89 91
         this.processData = "已撤回";
90 92
       }
91 93
     });
92 94
   }
95
+
96
+  // 获取图片信息
97
+  getImgsData() {
98
+    this.mainService
99
+      .wechatRequesterIncident(this.orderInfo.id)
100
+      .subscribe((res:any)=> {
101
+        this.imgs = ['https://img2.woyaogexing.com/2022/08/19/1f5e056b1d076920!400x400.jpg','https://img2.woyaogexing.com/2022/08/19/359346943c3c489f!400x400.jpg']
102
+        // for (var i = 0; i < res.data.length; i++) {
103
+        //   this.imgs.push(res.data[i].previewUrl);
104
+        // }
105
+      });
106
+  }
107
+
93 108
   //获取流程节点时间
94 109
   getProcessTime() {
95 110
     if (this.orderInfo.incident && this.orderInfo.incident.processInstanceId) {

+ 11 - 0
src/app/share/image-viewer/image-viewer.component.html

@@ -0,0 +1,11 @@
1
+<div class="imgViewHelp">
2
+  <ul id="ljImgViewerId" #ljImgViewerId class="list">
3
+    <img
4
+      class="image"
5
+      [src]="item"
6
+      *ngFor="let item of imageUrl"
7
+      [width]="width"
8
+      [height]="height"
9
+    />
10
+  </ul>
11
+</div>

+ 9 - 0
src/app/share/image-viewer/image-viewer.component.less

@@ -0,0 +1,9 @@
1
+.imgViewHelp {
2
+  ul {
3
+    margin: 0;
4
+    padding: 0;
5
+    img {
6
+      margin-right: 8px;
7
+    }
8
+  }
9
+}

+ 29 - 0
src/app/share/image-viewer/image-viewer.component.ts

@@ -0,0 +1,29 @@
1
+import { Component, ElementRef, Input, OnInit, ViewChild } from "@angular/core";
2
+import Viewer from 'viewerjs';
3
+@Component({
4
+  selector: "app-image-viewer",
5
+  templateUrl: "./image-viewer.component.html",
6
+  styleUrls: ["./image-viewer.component.less"],
7
+})
8
+export class ImageViewerComponent implements OnInit {
9
+  @ViewChild("ljImgViewerId", { static: false }) ljImgViewer: ElementRef;
10
+  // 图片地址
11
+  @Input() imageUrl: any = [];
12
+  // 默认预览图大小 (单位px)
13
+  @Input() width: any = 100;
14
+  @Input() height: any = 100;
15
+
16
+  constructor() {}
17
+
18
+  ngOnInit(): void {
19
+    console.log('初始化')
20
+    // 传入是单条转换为数租
21
+    if (typeof this.imageUrl == "string") {
22
+      this.imageUrl = [this.imageUrl];
23
+    }
24
+  }
25
+
26
+  ngAfterViewInit(): void {
27
+    new Viewer(this.ljImgViewer["nativeElement"]);
28
+  }
29
+}

+ 3 - 0
src/app/share/share.module.ts

@@ -32,6 +32,7 @@ import { ExcelExportComponent } from './excel-export/excel-export.component';
32 32
 import { FilterSelfPipe } from '../pipes/filter-self.pipe';
33 33
 import { LogPromptModalComponent } from './log-prompt-modal/log-prompt-modal.component';
34 34
 import { DetailBxComponent } from './detail-bx/detail-bx.component';
35
+import { ImageViewerComponent } from './image-viewer/image-viewer.component';
35 36
 
36 37
 @NgModule({
37 38
   declarations: [
@@ -62,6 +63,7 @@ import { DetailBxComponent } from './detail-bx/detail-bx.component';
62 63
     ExcelExportComponent,
63 64
     LogPromptModalComponent,
64 65
     DetailBxComponent,
66
+    ImageViewerComponent,
65 67
   ],
66 68
   imports: [
67 69
     CommonModule,
@@ -107,6 +109,7 @@ import { DetailBxComponent } from './detail-bx/detail-bx.component';
107 109
     ExcelExportComponent,
108 110
     LogPromptModalComponent,
109 111
     DetailBxComponent,
112
+    ImageViewerComponent,
110 113
   ]
111 114
 })
112 115
 export class ShareModule { }

+ 61 - 2
src/app/views/hushijiandan/hushijiandan.component.html

@@ -1780,7 +1780,7 @@
1780 1780
                           <td>
1781 1781
                             {{ data.requester ? data.requester.name : "无" }}
1782 1782
                           </td>
1783
-                          <td>{{ data.serviceState?data.serviceState.name:'无' }}</td>
1783
+                          <td>{{ data.state?data.state.name:'无' }}</td>
1784 1784
                           <td>
1785 1785
                             {{
1786 1786
                               data.incident
@@ -1793,7 +1793,7 @@
1793 1793
                           <td>
1794 1794
                             <!-- <button (click)="viewBx(data)">查看</button> -->
1795 1795
                             <button (click)="detailBx(data)" class="mr8">查看</button>
1796
-                            <button (click)="detailBx(data)">评价</button>
1796
+                            <button (click)="showAppraiseBx(data.id)" *ngIf="data.state.name  == '待评价'">评价</button>
1797 1797
                           </td>
1798 1798
                         </tr>
1799 1799
                       </tbody>
@@ -2938,6 +2938,65 @@
2938 2938
   </div>
2939 2939
 </div>
2940 2940
 
2941
+<!-- 报修评价模态框 -->
2942
+<div
2943
+  class="save display_flex align-items_center justify-content_flex-center appraise"
2944
+  *ngIf="appraiseModalBx"
2945
+>
2946
+  <div class="modalBody">
2947
+    <div class="title">
2948
+      评价<i
2949
+        class="icon_transport transport-guanbi"
2950
+        (click)="hideAppraiseBx()"
2951
+      ></i>
2952
+    </div>
2953
+    <div class="content">
2954
+      <div class="jiTit borderB">您的评价对我们至关重要,感谢您!</div>
2955
+      <br />
2956
+      <div class="star">
2957
+        <div
2958
+          nz-row
2959
+          class="alignC display_flex justify-content_flex-center align-items_center"
2960
+        >
2961
+          <div nz-col nzSpan="4">星级:</div>
2962
+          <div nz-col nzSpan="20">
2963
+            <nz-rate [(ngModel)]="starNumBx"></nz-rate>
2964
+          </div>
2965
+        </div>
2966
+        <div nz-row>
2967
+          <div nz-col nzSpan="4">评级:</div>
2968
+          <div nz-col nzSpan="20">
2969
+            <textarea
2970
+              rows="4"
2971
+              nz-input
2972
+              [(ngModel)]="appraiseContentBx"
2973
+            ></textarea>
2974
+          </div>
2975
+        </div>
2976
+      </div>
2977
+      <br />
2978
+    </div>
2979
+    <div class="btns display_flex justify-content_flex-center">
2980
+      <button
2981
+        nz-button
2982
+        nzType="primary"
2983
+        [nzLoading]="btnLoading"
2984
+        (click)="confirmAppraiseBx()"
2985
+      >
2986
+        确认
2987
+      </button>
2988
+      <button
2989
+        class="btn cancel"
2990
+        nz-button
2991
+        nzType="default"
2992
+        (click)="hideAppraiseBx()"
2993
+      >
2994
+        关闭
2995
+      </button>
2996
+    </div>
2997
+  </div>
2998
+</div>
2999
+
2941 3000
 <!-- 意见箱查看 -->
2942 3001
 <div
2943 3002
   class="save display_flex align-items_center justify-content_flex-center advice"

+ 57 - 6
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -157,7 +157,6 @@ export class HushijiandanComponent implements OnInit {
157 157
     this.getUpdateTipsForNurses();
158 158
     this.getSpecimenButton();
159 159
     this.getCloseTimeFlag();
160
-    this.getBxlb();
161 160
     this.currentUser = this.tool.getCurrentUserDept();
162 161
     console.log(this.currentUser, this.tabSearchCont);
163 162
     //防抖
@@ -415,6 +414,7 @@ export class HushijiandanComponent implements OnInit {
415 414
             ];
416 415
             this.smallTabId = 2;
417 416
             this.getQuickBxlb();
417
+            this.getBxlb();
418 418
           } else {
419 419
             this.smallTabs = [{ id: 1, name: "综合日志" }];
420 420
             this.smallTabId = 1;
@@ -915,11 +915,11 @@ export class HushijiandanComponent implements OnInit {
915 915
       }
916 916
     });
917 917
   }
918
-  // 获取事件状态liaomingming
919
-  incidentStateList = [];
918
+  // 获取事件状态
920 919
   incidentStateId = undefined;
920
+  incidentStateList = [];
921 921
   getIncidentState() {
922
-    let postData = { type: "list", key: "service_state" };
922
+    let postData = { type: "list", key: "wxincident_state" };
923 923
     this.iLoading = true;
924 924
     this.mainService.getDictionaryByITSM(postData).subscribe((data: any) => {
925 925
       this.iLoading = false;
@@ -928,7 +928,19 @@ export class HushijiandanComponent implements OnInit {
928 928
       }
929 929
     });
930 930
   }
931
-  // 获取故障现象(三级)liaoming
931
+  // 获取星级
932
+  degrees = [];
933
+  getDegrees() {
934
+    let postData = { type: "list", key: "incident_degree" };
935
+    this.iLoading = true;
936
+    this.mainService.getDictionaryByITSM(postData).subscribe((data: any) => {
937
+      this.iLoading = false;
938
+      if (data.status == 200) {
939
+        this.degrees = data.data || [];
940
+      }
941
+    });
942
+  }
943
+  // 获取故障现象(三级)
932 944
   incidentList = [];
933 945
   iLoading = false;
934 946
   getIncidentcategory(key = "") {
@@ -2541,6 +2553,7 @@ export class HushijiandanComponent implements OnInit {
2541 2553
     } else if (type === "bxlb" && this.isShowBx) {
2542 2554
       this.getBxlb();
2543 2555
       this.getIncidentState();
2556
+      this.getDegrees();
2544 2557
     } else if (type === "kjbx" && this.isShowBx) {
2545 2558
       // this.getQuickBxlb();
2546 2559
       this.getIncidentcategory();
@@ -2727,7 +2740,7 @@ export class HushijiandanComponent implements OnInit {
2727 2740
     this.mainService
2728 2741
       .listWxIncident({
2729 2742
         assignee: current.user.account,
2730
-        service_state: this.incidentStateId?parseInt(this.incidentStateId):undefined,
2743
+        state: this.incidentStateId?parseInt(this.incidentStateId):undefined,
2731 2744
         idx: this.bxlbPageIndex - 1,
2732 2745
         sum: this.bxlbPageSize,
2733 2746
       })
@@ -3058,6 +3071,44 @@ export class HushijiandanComponent implements OnInit {
3058 3071
     this.appraiseModal = false;
3059 3072
   }
3060 3073
 
3074
+  // 报修评价
3075
+  appraiseModalBx: boolean = false;
3076
+  starNumBx: number = 5; //评价星
3077
+  appraiseContentBx: string = ""; //评级
3078
+  appraiseIdBx: number;
3079
+  showAppraiseBx(id) {
3080
+    this.appraiseIdBx = id;
3081
+    this.appraiseModalBx = true;
3082
+    this.starNumBx = 5;
3083
+    this.appraiseContentBx = "";
3084
+  }
3085
+  // 保存评价
3086
+  confirmAppraiseBx() {
3087
+    console.log(this.starNumBx, this.appraiseContentBx);
3088
+    if (!this.starNumBx) return;
3089
+    this.btnLoading = true;
3090
+    let id = this.degrees.find(v=>v.value == this.starNumBx).id;
3091
+    let postData = {
3092
+      degree: id,
3093
+      degreeRemark: this.appraiseContentBx,
3094
+      id: this.appraiseIdBx,
3095
+    };
3096
+    this.mainService
3097
+      .degree(postData)
3098
+      .subscribe((data:any) => {
3099
+        this.hideAppraiseBx();
3100
+        if (data.state == 200) {
3101
+          this.getBxlb();
3102
+          this.showPromptModal("评价", true, "");
3103
+        } else {
3104
+          this.showPromptModal("评价", false, "");
3105
+        }
3106
+      });
3107
+  }
3108
+  hideAppraiseBx() {
3109
+    this.appraiseModalBx = false;
3110
+  }
3111
+
3061 3112
   // 审核状态
3062 3113
   checkStatusLis: any = [];
3063 3114
   getCheckStatusLis() {