Browse Source

拉取代码

maotao 2 months ago
parent
commit
a90b13c2aa
35 changed files with 1576 additions and 238 deletions
  1. 15 1
      src/app/components/configurationCenter/configuration-drug/configuration-drug.component.html
  2. 34 10
      src/app/components/configurationCenter/configuration-drug/configuration-drug.component.ts
  3. 16 0
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts
  4. 29 0
      src/app/components/display-form/display-form.component.html
  5. 10 1
      src/app/components/display-form/display-form.component.ts
  6. 9 0
      src/app/components/incidentManagement/incident-handle-info-simple/incident-handle-info-simple.component.html
  7. 6 1
      src/app/components/incidentManagement/incident-handle-info-simple/incident-handle-info-simple.component.ts
  8. 4 4
      src/app/components/incidentManagement/incident-handle-info/incident-handle-info.component.html
  9. 5 1
      src/app/components/incidentManagement/incident-handle-info/incident-handle-info.component.ts
  10. 13 5
      src/app/components/incidentManagement/incident-handle/incident-handle.component.ts
  11. 8 0
      src/app/services/main.service.ts
  12. 3 0
      src/app/services/tool.service.ts
  13. 14 2
      src/app/views/drug-search/drug-search-routing.module.ts
  14. 185 23
      src/app/views/drug-search/drug-search.component.html
  15. 14 1
      src/app/views/drug-search/drug-search.component.less
  16. 261 3
      src/app/views/drug-search/drug-search.component.ts
  17. 53 14
      src/app/views/fuwutai/fuwutai.component.html
  18. 16 10
      src/app/views/fuwutai/fuwutai.component.less
  19. 259 53
      src/app/views/fuwutai/fuwutai.component.ts
  20. 20 13
      src/app/views/hushijiandan/hushijiandan.component.html
  21. 20 0
      src/app/views/incident-management/incident-management.component.html
  22. 36 3
      src/app/views/incident-management/incident-management.component.ts
  23. 7 4
      src/app/views/inspection-execute/inspection-execute.component.html
  24. 15 0
      src/app/views/login/login.component.ts
  25. 2 2
      src/app/views/main/main.component.html
  26. 54 43
      src/app/views/main/main.component.ts
  27. 14 2
      src/app/views/questionnaire-answer/questionnaire-answer.component.html
  28. 8 0
      src/app/views/questionnaire-answer/questionnaire-answer.component.less
  29. 52 2
      src/app/views/questionnaire-answer/questionnaire-answer.component.ts
  30. 3 3
      src/app/views/task-type-management/task-type-management.component.less
  31. 9 5
      src/app/views/users-management/users-management.component.html
  32. 26 16
      src/app/views/users-management/users-management.component.ts
  33. 60 1
      src/app/views/web-repairs/web-repairs.component.html
  34. 229 2
      src/app/views/web-repairs/web-repairs.component.less
  35. 67 13
      src/app/views/web-repairs/web-repairs.component.ts

+ 15 - 1
src/app/components/configurationCenter/configuration-drug/configuration-drug.component.html

@@ -38,7 +38,21 @@
38
                     <nz-form-label class="label">支持接单并签到</nz-form-label>
38
                     <nz-form-label class="label">支持接单并签到</nz-form-label>
39
                     <nz-checkbox-group [(ngModel)]="item.postData.drugsReceiveSign"></nz-checkbox-group>
39
                     <nz-checkbox-group [(ngModel)]="item.postData.drugsReceiveSign"></nz-checkbox-group>
40
                   </div>
40
                   </div>
41
-
41
+									
42
+									<!-- 收药是否验证发药科室 -->
43
+									<div class="display_flex align-items_center mb8">
44
+									  <nz-form-label class="label">收药是否验证发药科室</nz-form-label>
45
+									  <nz-checkbox-group [(ngModel)]="item.postData.drugsVerifyPharmacy"></nz-checkbox-group>
46
+									</div>
47
+									
48
+									<!-- 终点清点方式 -->
49
+									<div class="display_flex align-items_center mb8" *ngIf="item.postData.drugsModel==2">
50
+									  <nz-form-label class="label" nzRequired>终点清点方式</nz-form-label>
51
+									  <nz-radio-group [(ngModel)]="item.postData.drugsEndCountMethod">
52
+									    <label nz-radio [nzValue]="item.value" *ngFor="let item of endClearingList">{{ item.label }}</label>
53
+									  </nz-radio-group>
54
+									</div>
55
+									
42
                   <!-- 起点科室支持核对 -->
56
                   <!-- 起点科室支持核对 -->
43
                   <div class="display_flex align-items_center mb8">
57
                   <div class="display_flex align-items_center mb8">
44
                     <nz-form-label class="label">起点科室支持核对</nz-form-label>
58
                     <nz-form-label class="label">起点科室支持核对</nz-form-label>

+ 34 - 10
src/app/components/configurationCenter/configuration-drug/configuration-drug.component.ts

@@ -40,7 +40,13 @@ export class ConfigurationDrugComponent implements OnInit {
40
     { label: '一单一码', value: 1 },
40
     { label: '一单一码', value: 1 },
41
     { label: '一单多码', value: 2 },
41
     { label: '一单多码', value: 2 },
42
   ];
42
   ];
43
-
43
+	
44
+	// 终点清点方式
45
+	endClearingList:any[] = [
46
+	  { label: '扫一扫清点', value: 1 },
47
+	  { label: '数量核对清点', value: 2 },
48
+	];
49
+	
44
   // 手动填写
50
   // 手动填写
45
   drugsManualList:any[] = [];
51
   drugsManualList:any[] = [];
46
 
52
 
@@ -53,7 +59,9 @@ export class ConfigurationDrugComponent implements OnInit {
53
         drugsModel: undefined,//工单模式
59
         drugsModel: undefined,//工单模式
54
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
60
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
55
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
61
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
56
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
62
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
63
+        drugsEndCountMethod: undefined,//终点清点方式
64
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
57
         drugsStartCheckScanIds: [],//起点核对方式
65
         drugsStartCheckScanIds: [],//起点核对方式
58
         drugsStartManual: undefined,//起点科室手动填写
66
         drugsStartManual: undefined,//起点科室手动填写
59
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
67
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -76,7 +84,9 @@ export class ConfigurationDrugComponent implements OnInit {
76
         drugsModel: undefined,//工单模式
84
         drugsModel: undefined,//工单模式
77
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
85
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
78
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
86
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
79
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
87
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
88
+        drugsEndCountMethod: undefined,//终点清点方式
89
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
80
         drugsStartCheckScanIds: [],//起点核对方式
90
         drugsStartCheckScanIds: [],//起点核对方式
81
         drugsStartManual: undefined,//起点科室手动填写
91
         drugsStartManual: undefined,//起点科室手动填写
82
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
92
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -99,7 +109,9 @@ export class ConfigurationDrugComponent implements OnInit {
99
         drugsModel: undefined,//工单模式
109
         drugsModel: undefined,//工单模式
100
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
110
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
101
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
111
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
102
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
112
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
113
+        drugsEndCountMethod: undefined,//终点清点方式
114
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
103
         drugsStartCheckScanIds: [],//起点核对方式
115
         drugsStartCheckScanIds: [],//起点核对方式
104
         drugsStartManual: undefined,//起点科室手动填写
116
         drugsStartManual: undefined,//起点科室手动填写
105
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
117
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -122,7 +134,9 @@ export class ConfigurationDrugComponent implements OnInit {
122
         drugsModel: undefined,//工单模式
134
         drugsModel: undefined,//工单模式
123
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
135
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
124
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
136
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
125
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
137
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
138
+        drugsEndCountMethod: undefined,//终点清点方式
139
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
126
         drugsStartCheckScanIds: [],//起点核对方式
140
         drugsStartCheckScanIds: [],//起点核对方式
127
         drugsStartManual: undefined,//起点科室手动填写
141
         drugsStartManual: undefined,//起点科室手动填写
128
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
142
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -145,7 +159,9 @@ export class ConfigurationDrugComponent implements OnInit {
145
         drugsModel: undefined,//工单模式
159
         drugsModel: undefined,//工单模式
146
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
160
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
147
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
161
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
148
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
162
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
163
+        drugsEndCountMethod: undefined,//终点清点方式
164
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
149
         drugsStartCheckScanIds: [],//起点核对方式
165
         drugsStartCheckScanIds: [],//起点核对方式
150
         drugsStartManual: undefined,//起点科室手动填写
166
         drugsStartManual: undefined,//起点科室手动填写
151
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
167
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -214,7 +230,7 @@ export class ConfigurationDrugComponent implements OnInit {
214
       this.msg.create("warning", "请选择工单模式!");
230
       this.msg.create("warning", "请选择工单模式!");
215
       return;
231
       return;
216
     }
232
     }
217
-
233
+		
218
     if(this.activeDictionary.postData.drugsStartCheck[0].checked && !this.activeDictionary.postData.drugsStartCheckScanIds.filter(v => v.checked).length){
234
     if(this.activeDictionary.postData.drugsStartCheck[0].checked && !this.activeDictionary.postData.drugsStartCheckScanIds.filter(v => v.checked).length){
219
       this.msg.create("warning", "请选择起点科室的核对方式!");
235
       this.msg.create("warning", "请选择起点科室的核对方式!");
220
       return;
236
       return;
@@ -224,14 +240,21 @@ export class ConfigurationDrugComponent implements OnInit {
224
       this.msg.create("warning", "请选择终点科室的核对方式!");
240
       this.msg.create("warning", "请选择终点科室的核对方式!");
225
       return;
241
       return;
226
     }
242
     }
227
-
243
+		
244
+		if(this.activeDictionary.postData.drugsModel==2 && !this.activeDictionary.postData.drugsEndCountMethod){
245
+		  this.msg.create("warning", "请选择终点清点方式!");
246
+		  return;
247
+		}
248
+		
228
     let postData:any = {
249
     let postData:any = {
229
       id: this.configs.id,
250
       id: this.configs.id,
230
       taskType: this.tasktype.id,
251
       taskType: this.tasktype.id,
231
       hosId: this.hosId,
252
       hosId: this.hosId,
232
       drugsModel: this.activeDictionary.postData.drugsModel || undefined,
253
       drugsModel: this.activeDictionary.postData.drugsModel || undefined,
254
+			drugsEndCountMethod: this.activeDictionary.postData.drugsEndCountMethod || undefined,
233
       drugsCreateSign: this.activeDictionary.postData.drugsCreateSign[0].checked ? 1 : 0,
255
       drugsCreateSign: this.activeDictionary.postData.drugsCreateSign[0].checked ? 1 : 0,
234
       drugsReceiveSign: this.activeDictionary.postData.drugsReceiveSign[0].checked ? 1 : 0,
256
       drugsReceiveSign: this.activeDictionary.postData.drugsReceiveSign[0].checked ? 1 : 0,
257
+			drugsVerifyPharmacy: this.activeDictionary.postData.drugsVerifyPharmacy[0].checked ? 1 : 0,
235
       drugsStartCheck: this.activeDictionary.postData.drugsStartCheck[0].checked ? 1 : 0,
258
       drugsStartCheck: this.activeDictionary.postData.drugsStartCheck[0].checked ? 1 : 0,
236
       drugsStartCheckScanIds: this.activeDictionary.postData.drugsStartCheckScanIds.filter(v => v.checked).map(v => v.value).toString() || undefined,
259
       drugsStartCheckScanIds: this.activeDictionary.postData.drugsStartCheckScanIds.filter(v => v.checked).map(v => v.value).toString() || undefined,
237
       drugsStartManual: this.activeDictionary.postData.drugsStartManual ? { id: this.activeDictionary.postData.drugsStartManual } : undefined,
260
       drugsStartManual: this.activeDictionary.postData.drugsStartManual ? { id: this.activeDictionary.postData.drugsStartManual } : undefined,
@@ -330,9 +353,10 @@ export class ConfigurationDrugComponent implements OnInit {
330
         if (result.status == 200) {
353
         if (result.status == 200) {
331
           this.configs = result.list[0] || {};
354
           this.configs = result.list[0] || {};
332
           this.activeDictionary.postData.drugsModel = this.configs.drugsModel || undefined;
355
           this.activeDictionary.postData.drugsModel = this.configs.drugsModel || undefined;
333
-          this.activeDictionary.postData.drugsCreateSign[0].checked = this.configs.drugsCreateSign == 1;
356
+					 this.activeDictionary.postData.drugsEndCountMethod = this.configs.drugsEndCountMethod || undefined;
357
+					this.activeDictionary.postData.drugsCreateSign[0].checked = this.configs.drugsCreateSign == 1;
334
           this.activeDictionary.postData.drugsReceiveSign[0].checked = this.configs.drugsReceiveSign == 1;
358
           this.activeDictionary.postData.drugsReceiveSign[0].checked = this.configs.drugsReceiveSign == 1;
335
-
359
+					this.activeDictionary.postData.drugsVerifyPharmacy[0].checked = this.configs.drugsVerifyPharmacy == 1;
336
           this.activeDictionary.postData.drugsStartCheck[0].checked = this.configs.drugsStartCheck == 1;
360
           this.activeDictionary.postData.drugsStartCheck[0].checked = this.configs.drugsStartCheck == 1;
337
           this.activeDictionary.postData.drugsStartCheckScanIds = this.activeDictionary.postData.drugsStartCheckScanIds.map(v => ({...v, checked: (this.configs.drugsStartCheckScanIds || '').split(',').includes(v.value.toString())}));
361
           this.activeDictionary.postData.drugsStartCheckScanIds = this.activeDictionary.postData.drugsStartCheckScanIds.map(v => ({...v, checked: (this.configs.drugsStartCheckScanIds || '').split(',').includes(v.value.toString())}));
338
           this.activeDictionary.postData.drugsStartManual = this.configs.drugsStartManual ? this.configs.drugsStartManual.id : undefined;
362
           this.activeDictionary.postData.drugsStartManual = this.configs.drugsStartManual ? this.configs.drugsStartManual.id : undefined;

+ 16 - 0
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts

@@ -76,6 +76,14 @@ export class ConfigurationHospitalComponent implements OnInit {
76
 			let item = this.hospitalList.find(i=>i.key == 'itsmConsumableQuoteDept')
76
 			let item = this.hospitalList.find(i=>i.key == 'itsmConsumableQuoteDept')
77
 			item.value = null
77
 			item.value = null
78
 		}
78
 		}
79
+		
80
+		if(data.key=='itsmSimpleHandle' && data.value==1){
81
+			let item = this.hospitalList.find(i=>i.key == 'itsmWriteSolution')
82
+			item.show = false
83
+		}else if(data.key=='itsmSimpleHandle' && data.value==0){
84
+			let item = this.hospitalList.find(i=>i.key == 'itsmWriteSolution')
85
+			item.show = true
86
+		}
79
 	}
87
 	}
80
 	
88
 	
81
 	changeSelect(data){
89
 	changeSelect(data){
@@ -166,6 +174,14 @@ export class ConfigurationHospitalComponent implements OnInit {
166
 							arr = arr.map(i=>i = parseInt(i))
174
 							arr = arr.map(i=>i = parseInt(i))
167
 							i.value = arr
175
 							i.value = arr
168
 						}
176
 						}
177
+						
178
+						if(i.key=='itsmSimpleHandle' && i.value==1){
179
+							let item = newData.find(i=>i.key == 'itsmWriteSolution')
180
+							item.show = false
181
+						}else if(i.key=='itsmSimpleHandle' && i.value==0){
182
+							let item = newData.find(i=>i.key == 'itsmWriteSolution')
183
+							item.show = true
184
+						}
169
 					}
185
 					}
170
 
186
 
171
           this.hospitalList = newData || [];
187
           this.hospitalList = newData || [];

+ 29 - 0
src/app/components/display-form/display-form.component.html

@@ -68,6 +68,35 @@
68
             </nz-radio-group>
68
             </nz-radio-group>
69
           </div>
69
           </div>
70
         </div>
70
         </div>
71
+				<div nz-row>
72
+				  <div nz-col nzSpan="4">左侧菜单:</div>
73
+				  <div nz-col nzSpan="20">
74
+				    <nz-radio-group class="w100" [(ngModel)]="leftMenuLocation">
75
+				      <label nz-radio [nzValue]="1">上</label>
76
+				      <label nz-radio [nzValue]="2">中</label>
77
+							<label nz-radio [nzValue]="3">下</label>
78
+				    </nz-radio-group>
79
+				  </div>
80
+				</div>
81
+				<div nz-row>
82
+				  <div nz-col nzSpan="4">右侧菜单:</div>
83
+				  <div nz-col nzSpan="20">
84
+				    <nz-radio-group class="w100" [(ngModel)]="rightMenuLocation">
85
+				      <label nz-radio [nzValue]="1">上</label>
86
+				      <label nz-radio [nzValue]="2">中</label>
87
+							<label nz-radio [nzValue]="3">下</label>
88
+				    </nz-radio-group>
89
+				  </div>
90
+				</div>
91
+				<div nz-row>
92
+				  <div nz-col nzSpan="4">是否展示来源:</div>
93
+				  <div nz-col nzSpan="20">
94
+				    <nz-radio-group class="w100" [(ngModel)]="showSource">
95
+				      <label nz-radio [nzValue]="1">是</label>
96
+				      <label nz-radio [nzValue]="2">否</label>
97
+				    </nz-radio-group>
98
+				  </div>
99
+				</div>
71
       </div>
100
       </div>
72
       <div class="conditions display_flex align-items_center justify-content_flex-center" *ngIf="isLoading">
101
       <div class="conditions display_flex align-items_center justify-content_flex-center" *ngIf="isLoading">
73
         <nz-spin nzSimple></nz-spin>
102
         <nz-spin nzSimple></nz-spin>

+ 10 - 1
src/app/components/display-form/display-form.component.ts

@@ -28,7 +28,9 @@ export class DisplayFormComponent implements OnInit {
28
   workerInfoTime: number = 60; //配送人员刷新时间
28
   workerInfoTime: number = 60; //配送人员刷新时间
29
   audioNotDispatched: boolean = true; //是否开启定时播报未派出工单提示音
29
   audioNotDispatched: boolean = true; //是否开启定时播报未派出工单提示音
30
   orderType: string = 'priority'; //排序方式
30
   orderType: string = 'priority'; //排序方式
31
-
31
+	leftMenuLocation: any = 2; //左侧菜单
32
+	rightMenuLocation: any = 2; //右侧菜单
33
+	showSource: any = 0; //是否展示来源
32
   ngOnInit() {
34
   ngOnInit() {
33
     this.initControlView();
35
     this.initControlView();
34
   }
36
   }
@@ -66,6 +68,10 @@ export class DisplayFormComponent implements OnInit {
66
         this.workerRefreshTime = this.workerInfoTime = data.list[0].workerInfoTime;
68
         this.workerRefreshTime = this.workerInfoTime = data.list[0].workerInfoTime;
67
         this.audioNotDispatched = data.list[0].unsendOrderVoice !== false;
69
         this.audioNotDispatched = data.list[0].unsendOrderVoice !== false;
68
         this.orderType = data.list[0].orderType || 'priority';
70
         this.orderType = data.list[0].orderType || 'priority';
71
+				this.leftMenuLocation = data.list[0].leftMenuLocation;
72
+				this.rightMenuLocation = data.list[0].rightMenuLocation;
73
+				this.showSource = data.list[0].showSource;
74
+				
69
       });
75
       });
70
   }
76
   }
71
 
77
 
@@ -103,6 +109,9 @@ export class DisplayFormComponent implements OnInit {
103
         unsendOrderVoice: this.audioNotDispatched,
109
         unsendOrderVoice: this.audioNotDispatched,
104
         hurseInfoHiding: this.hurseInfoHiding == 1,
110
         hurseInfoHiding: this.hurseInfoHiding == 1,
105
         orderType: this.orderType,
111
         orderType: this.orderType,
112
+				leftMenuLocation: this.leftMenuLocation,
113
+				rightMenuLocation: this.rightMenuLocation,
114
+				showSource: this.showSource,
106
       },
115
       },
107
     };
116
     };
108
     if (this.controlView["id"]) {
117
     if (this.controlView["id"]) {

+ 9 - 0
src/app/components/incidentManagement/incident-handle-info-simple/incident-handle-info-simple.component.html

@@ -1,4 +1,13 @@
1
 <div class="incident_handle_info">
1
 <div class="incident_handle_info">
2
+	<div class="row" *ngIf="itsmSimpleHandle.value==1 && itsmWriteSolution.value==1">
3
+	  <div class="formItem">
4
+	    <div class="name"><i class="icon_transport transport-required red"></i>解决方案:</div>
5
+	    <div class="value w100">
6
+	      <textarea rows="4" nz-input [(ngModel)]="incidentDataCopy.handleDescription" placeholder="请输入解决方案"></textarea>
7
+	    </div>
8
+	  </div>
9
+	</div>
10
+	
2
   <div class="row">
11
   <div class="row">
3
     <div class="formItem">
12
     <div class="formItem">
4
       <div class="name"><i class="icon_transport transport-required red"></i>处理方式:</div>
13
       <div class="name"><i class="icon_transport transport-required red"></i>处理方式:</div>

+ 6 - 1
src/app/components/incidentManagement/incident-handle-info-simple/incident-handle-info-simple.component.ts

@@ -117,6 +117,8 @@ export class IncidentHandleInfoSimpleComponent implements OnInit {
117
 
117
 
118
   // 获取院区配置信息
118
   // 获取院区配置信息
119
   itsmIncidentAsset:any = {};//是否事件关联资产
119
   itsmIncidentAsset:any = {};//是否事件关联资产
120
+	itsmSimpleHandle:any= {};//是否简单处理
121
+	itsmWriteSolution:any= {};//是否填写解决方案
120
   getHospitalConfig() {
122
   getHospitalConfig() {
121
     let postData = {
123
     let postData = {
122
       idx: 0,
124
       idx: 0,
@@ -131,7 +133,10 @@ export class IncidentHandleInfoSimpleComponent implements OnInit {
131
       .subscribe((result) => {
133
       .subscribe((result) => {
132
         let list = result.list || [];
134
         let list = result.list || [];
133
         this.itsmIncidentAsset = list.find(v => v.key == 'itsmIncidentAsset') || {};
135
         this.itsmIncidentAsset = list.find(v => v.key == 'itsmIncidentAsset') || {};
134
-      });
136
+				this.itsmSimpleHandle = list.find(v => v.key == 'itsmSimpleHandle') || {};
137
+				this.itsmWriteSolution = list.find(v => v.key == 'itsmWriteSolution') || {};
138
+				// console.log(1,this.itsmSimpleHandle,this.itsmWriteSolution)
139
+			});
135
   }
140
   }
136
 
141
 
137
   // 获取资产列表
142
   // 获取资产列表

+ 4 - 4
src/app/components/incidentManagement/incident-handle-info/incident-handle-info.component.html

@@ -1,12 +1,12 @@
1
 <div class="incident_handle_info" [hidden]="handleInfoLoading">
1
 <div class="incident_handle_info" [hidden]="handleInfoLoading">
2
-  <div class="formItem column">
2
+<!--  <div class="formItem column" *ngIf="itsmSimpleHandle.value==1 && itsmWriteSolution.value==1">
3
     <div class="name"><i class="icon_transport transport-required red"></i>解决方案:</div>
3
     <div class="name"><i class="icon_transport transport-required red"></i>解决方案:</div>
4
     <div class="value">
4
     <div class="value">
5
       <textarea rows="4" nz-input [(ngModel)]="incidentDataCopy.handleDescription" placeholder="请输入解决方案"></textarea>
5
       <textarea rows="4" nz-input [(ngModel)]="incidentDataCopy.handleDescription" placeholder="请输入解决方案"></textarea>
6
     </div>
6
     </div>
7
-  </div>
7
+  </div> -->
8
 
8
 
9
-  <div class="formItem">
9
+  <div class="formItem" *ngIf="itsmSimpleHandle.value != 1">
10
     <div class="name"><i class="icon_transport transport-required red"></i>故障现象:</div>
10
     <div class="name"><i class="icon_transport transport-required red"></i>故障现象:</div>
11
     <div class="value w100">
11
     <div class="value w100">
12
       <nz-select class="w100" [(ngModel)]="incidentDataCopy.category" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
12
       <nz-select class="w100" [(ngModel)]="incidentDataCopy.category" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
@@ -31,7 +31,7 @@
31
       </div>
31
       </div>
32
     </div>
32
     </div>
33
 
33
 
34
-    <div class="formItem">
34
+    <div class="formItem" *ngIf="itsmSimpleHandle.value != 1">
35
       <div class="name"><i class="icon_transport transport-required red"></i>处理结果:</div>
35
       <div class="name"><i class="icon_transport transport-required red"></i>处理结果:</div>
36
       <div class="value w100">
36
       <div class="value w100">
37
         <nz-select class="w100" [(ngModel)]="incidentDataCopy.closecode" nzAllowClear nzPlaceHolder="请选择处理结果">
37
         <nz-select class="w100" [(ngModel)]="incidentDataCopy.closecode" nzAllowClear nzPlaceHolder="请选择处理结果">

+ 5 - 1
src/app/components/incidentManagement/incident-handle-info/incident-handle-info.component.ts

@@ -181,6 +181,8 @@ export class IncidentHandleInfoComponent implements OnInit, OnChanges {
181
 
181
 
182
   // 获取院区配置信息
182
   // 获取院区配置信息
183
   itsmIncidentAsset:any = {};//是否事件关联资产
183
   itsmIncidentAsset:any = {};//是否事件关联资产
184
+	itsmSimpleHandle:any= {};//是否简单处理
185
+	itsmWriteSolution:any= {};//是否填写解决方案
184
   getHospitalConfig() {
186
   getHospitalConfig() {
185
     let postData = {
187
     let postData = {
186
       idx: 0,
188
       idx: 0,
@@ -195,7 +197,9 @@ export class IncidentHandleInfoComponent implements OnInit, OnChanges {
195
       .subscribe((result) => {
197
       .subscribe((result) => {
196
         let list = result.list || [];
198
         let list = result.list || [];
197
         this.itsmIncidentAsset = list.find(v => v.key == 'itsmIncidentAsset') || {};
199
         this.itsmIncidentAsset = list.find(v => v.key == 'itsmIncidentAsset') || {};
198
-      });
200
+				this.itsmSimpleHandle = list.find(v => v.key == 'itsmSimpleHandle') || {};
201
+				this.itsmWriteSolution = list.find(v => v.key == 'itsmWriteSolution') || {};
202
+			});
199
   }
203
   }
200
 
204
 
201
   // 获取资产列表
205
   // 获取资产列表

+ 13 - 5
src/app/components/incidentManagement/incident-handle/incident-handle.component.ts

@@ -79,6 +79,7 @@ export class IncidentHandleComponent implements OnInit {
79
   // 获取院区配置信息
79
   // 获取院区配置信息
80
   itsmSummarySheet:any = {};//是否需要填写汇总单
80
   itsmSummarySheet:any = {};//是否需要填写汇总单
81
   itsmSimpleHandle:any = {};//是否简单处理
81
   itsmSimpleHandle:any = {};//是否简单处理
82
+	itsmWriteSolution:any = {};//是否填写解决方案
82
   getHospitalConfig() {
83
   getHospitalConfig() {
83
     let postData = {
84
     let postData = {
84
       idx: 0,
85
       idx: 0,
@@ -94,7 +95,7 @@ export class IncidentHandleComponent implements OnInit {
94
         let list = result.list || [];
95
         let list = result.list || [];
95
         this.itsmSummarySheet = list.find(v => v.key == 'itsmSummarySheet') || {};
96
         this.itsmSummarySheet = list.find(v => v.key == 'itsmSummarySheet') || {};
96
         this.itsmSimpleHandle = list.find(v => v.key == 'itsmSimpleHandle') || {};
97
         this.itsmSimpleHandle = list.find(v => v.key == 'itsmSimpleHandle') || {};
97
-        console.log(this.itsmSummarySheet)
98
+				this.itsmWriteSolution = list.find(v => v.key == 'itsmWriteSolution') || {};
98
         if(this.isInSummaryOrder()){
99
         if(this.isInSummaryOrder()){
99
           let summary = this.tabs.some(v => v.value == 2);
100
           let summary = this.tabs.some(v => v.value == 2);
100
           console.log(summary)
101
           console.log(summary)
@@ -236,10 +237,10 @@ export class IncidentHandleComponent implements OnInit {
236
       // 详细处理
237
       // 详细处理
237
       console.log(this.incidentHandleInfoComponent)
238
       console.log(this.incidentHandleInfoComponent)
238
       // return;
239
       // return;
239
-      if(!this.incidentHandleInfoComponent.incidentDataCopy.handleDescription){
240
-        this.message.warning('请选择解决方案!');
241
-        return;
242
-      }
240
+      // if(!this.incidentHandleInfoComponent.incidentDataCopy.handleDescription){
241
+      //   this.message.warning('请选择解决方案!');
242
+      //   return;
243
+      // }
243
       if(!this.incidentHandleInfoComponent.incidentDataCopy.category){
244
       if(!this.incidentHandleInfoComponent.incidentDataCopy.category){
244
         this.message.warning('请选择故障现象!');
245
         this.message.warning('请选择故障现象!');
245
         return;
246
         return;
@@ -307,6 +308,13 @@ export class IncidentHandleComponent implements OnInit {
307
       // 简单处理
308
       // 简单处理
308
       console.log(this.incidentHandleInfoSimpleComponent)
309
       console.log(this.incidentHandleInfoSimpleComponent)
309
       // return;
310
       // return;
311
+			if(this.itsmWriteSolution.value==1){
312
+				if(!this.incidentHandleInfoSimpleComponent.incidentDataCopy.handleDescription){
313
+				  this.message.warning('请选择解决方案!');
314
+				  return;
315
+				}
316
+			}
317
+			
310
       if(!this.incidentHandleInfoSimpleComponent.incidentDataCopy.handleCategory){
318
       if(!this.incidentHandleInfoSimpleComponent.incidentDataCopy.handleCategory){
311
         this.message.warning('请选择处理方式!');
319
         this.message.warning('请选择处理方式!');
312
         return;
320
         return;

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

@@ -1248,4 +1248,12 @@ export class MainService {
1248
 		  headers: this.headers,
1248
 		  headers: this.headers,
1249
 		});
1249
 		});
1250
 	}
1250
 	}
1251
+	
1252
+	// 调度台删除填写原因
1253
+	delWorkOrderWithReason(id, data){
1254
+		return this.http.post(host.host + `/workerOrder/delWorkOrderWithReason/${id}`, data, {
1255
+		  headers: this.headers,
1256
+		});
1257
+	}
1258
+	
1251
 }
1259
 }

+ 3 - 0
src/app/services/tool.service.ts

@@ -334,6 +334,9 @@ export class ToolService {
334
 				case "record":
334
 				case "record":
335
 				  coopBtns.record = true; //任务记录
335
 				  coopBtns.record = true; //任务记录
336
 				  break;
336
 				  break;
337
+				case "send":
338
+				  coopBtns.send = true; //发送消息
339
+				  break;
337
       }
340
       }
338
     });
341
     });
339
     console.log(coopBtns);
342
     console.log(coopBtns);

+ 14 - 2
src/app/views/drug-search/drug-search-routing.module.ts

@@ -1,9 +1,21 @@
1
 import { NgModule } from '@angular/core';
1
 import { NgModule } from '@angular/core';
2
 import { Routes, RouterModule } from '@angular/router';
2
 import { Routes, RouterModule } from '@angular/router';
3
 import { DrugSearchComponent } from './drug-search.component';
3
 import { DrugSearchComponent } from './drug-search.component';
4
+import { OrderDetailComponent } from '../../share/order-detail/order-detail.component';
4
 
5
 
5
-
6
-const routes: Routes = [{ path: "", component: DrugSearchComponent }];
6
+const routes: Routes = [
7
+	{
8
+	  path: '',
9
+	  component: DrugSearchComponent,
10
+	  children: [
11
+	    {
12
+	      // 查看详情
13
+	      path: 'orderDetail/:id',
14
+	      component: OrderDetailComponent,
15
+	    }
16
+	  ]
17
+	}
18
+];
7
 
19
 
8
 @NgModule({
20
 @NgModule({
9
   imports: [RouterModule.forChild(routes)],
21
   imports: [RouterModule.forChild(routes)],

+ 185 - 23
src/app/views/drug-search/drug-search.component.html

@@ -56,9 +56,37 @@
56
             </nz-option>
56
             </nz-option>
57
           </nz-select>
57
           </nz-select>
58
         </div>
58
         </div>
59
+				
60
+				<div class="list-template__searchItem">
61
+				  <span class="label">药品类型:</span>
62
+				  <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzShowSearch nzAllowClear
63
+				    nzPlaceHolder="请选择药品类型" [(ngModel)]="searchCriteria.drugsBagType">
64
+				    <ng-container *ngFor="let data of drugsList">
65
+				      <nz-option nzLabel="{{data.name}}" nzValue="{{data.id}}"></nz-option>
66
+				    </ng-container>
67
+				  </nz-select>
68
+				</div>
69
+				
70
+				<div class="list-template__searchItem">
71
+				  <span class="label">收取人:</span>
72
+				  <nz-select [nzDropdownMatchSelectWidth]="false" class="formItem" nzServerSearch nzShowSearch nzAllowClear
73
+				    nzPlaceHolder="请选择收取人" [(ngModel)]="searchCriteria.receiverName" (nzOnSearch)="changeUserInp($event)">
74
+				    <ng-container *ngFor="let data of userSearch">
75
+				      <nz-option *ngIf="!isLoading" nzLabel="{{data.name}}" nzValue="{{data.id}}"></nz-option>
76
+				    </ng-container>
77
+				    <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
78
+				      <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
79
+				    </nz-option>
80
+				  </nz-select>
81
+				</div>
82
+				
83
+				<div class="list-template__searchItem">
84
+				  <span class="label width-105">开始时间区间:</span>
85
+				  <nz-range-picker nzShowTime [(ngModel)]="searchCriteria.dateRange" (ngModelChange)="changeDate($event)"></nz-range-picker>
86
+				</div>
59
       </div>
87
       </div>
60
       <div nz-col nzXl="8" class="list-template__btns">
88
       <div nz-col nzXl="8" class="list-template__btns">
61
-        <!-- <button nz-button class="btn default" (click)="showDelModal('您确认要清空药品吗?')" *ngIf="currentUserAccount == 'dsadmin'">清空药品</button> -->
89
+        <button nz-button class="btn default" (click)="addMoadl()" *ngIf="coopBtns.add">新增</button>
62
         <button nz-button class="btn default ml8" (click)='reset()'>重置</button>
90
         <button nz-button class="btn default ml8" (click)='reset()'>重置</button>
63
         <button nz-button class="btn default ml8" (click)='getList(1)'>搜索</button>
91
         <button nz-button class="btn default ml8" (click)='getList(1)'>搜索</button>
64
       </div>
92
       </div>
@@ -69,33 +97,51 @@
69
         <thead>
97
         <thead>
70
           <tr class="thead">
98
           <tr class="thead">
71
             <th nzWidth="5%">序号</th>
99
             <th nzWidth="5%">序号</th>
72
-            <th nzWidth="9%">发药科室</th>
73
-            <th nzWidth="9%">申请科室</th>
74
-            <th nzWidth="9%">收取人</th>
75
-            <th nzWidth="9%">同步时间</th>
76
-            <th nzWidth="9%">药品状态</th>
77
-            <th nzWidth="9%">记账时间</th>
78
-            <th nzWidth="9%">配药时间</th>
79
-            <th nzWidth="9%">核对时间</th>
80
-            <th nzWidth="9%">请领单号</th>
81
-            <th nzWidth="7%">药品标识</th>
82
-            <th nzWidth="7%">操作</th>
100
+						<th nzWidth="12%">请领单号|药品类型</th>
101
+            <th nzWidth="12%">发药科室|申请科室</th>
102
+            <th nzWidth="10%">同步时间</th>
103
+						<th nzWidth="12%">收取人|收取时间</th>
104
+						<th nzWidth="12%">送达人|送达时间</th>
105
+						<th nzWidth="8%">送达交接人</th>
106
+            <th nzWidth="7%">状态</th>
107
+            <th nzWidth="8%">工单号</th>
108
+            <th nzWidth="14%">操作</th>
83
           </tr>
109
           </tr>
84
         </thead>
110
         </thead>
85
         <tbody>
111
         <tbody>
86
           <tr *ngFor="let data of listOfData;let i = index">
112
           <tr *ngFor="let data of listOfData;let i = index">
87
             <td>{{i+(pageIndex-1) * pageSize + 1}}</td>
113
             <td>{{i+(pageIndex-1) * pageSize + 1}}</td>
88
-            <td>{{ data.launch?.dept}}</td>
89
-            <td>{{ data.target?.dept }}</td>
90
-            <td>{{ data.deliveryUser?.name }}</td>
91
-            <td>{{ data.creatTime }}</td>
92
-            <td>{{ data.drugsState?.name }}</td>
93
-            <td>{{data.bagTime}}</td>
94
-            <td>{{data.startDispensingTime}}</td>
95
-            <td>{{data.checkTime}}</td>
96
-            <td>{{data.packid}}</td>
97
-            <td>{{data.id}}</td>
98
-            <td><button (click)="showLogs(data)">查看历史</button></td>
114
+            <td>
115
+							<div>{{data.packid}}</div>
116
+							<div>{{data.drugsBagType && data.drugsBagType.name}}</div>
117
+						</td>
118
+            <td>
119
+							<div>{{ data.launch?.dept}}</div>
120
+							<div>{{ data.target?.dept }}</div>
121
+						</td>
122
+						<td>{{ data.creatTime }}</td>
123
+            <td>
124
+							<div>{{ data.deliveryUser?.name }}</div>
125
+							<div>{{ data.packTime }}</div>
126
+						</td>
127
+						<td>
128
+							<div>{{ data.sendUser?.name }}</div>
129
+							<div>{{ data.signtime }}</div>
130
+						</td>
131
+						<td>{{ data.sendHandoverUser?.name }}</td>
132
+						<td>{{ data.drugsState?.name }}</td>
133
+            <td class="text-underline" (click)="detail($event, data)">{{ data.workOrderDTO?.gdcode }}</td>
134
+            <td>
135
+							<div class="coop">
136
+							  <span (click)="showLogs(data)">查看日志</span>
137
+							</div>
138
+							<div class="coop" *ngIf="coopBtns.edit">
139
+							  <span (click)="edit(data)">编辑</span>
140
+							</div>
141
+							<div class="coop" *ngIf="coopBtns.send && (data.drugsState.value == 1 || data.drugsState.value == 2 || data.drugsState.value == 4 || data.drugsState.value == 8)">
142
+							  <span (click)="sendMsg(data)">消息发送</span>
143
+							</div>
144
+						</td>
99
           </tr>
145
           </tr>
100
         </tbody>
146
         </tbody>
101
       </nz-table>
147
       </nz-table>
@@ -121,3 +167,119 @@
121
   [drugsBagId]="drugsBagId"
167
   [drugsBagId]="drugsBagId"
122
   (closeModelHs)="closeModelLog($event)"
168
   (closeModelHs)="closeModelLog($event)"
123
 ></app-log-prompt-modal>
169
 ></app-log-prompt-modal>
170
+
171
+<!-- 新增/编辑模态框 -->
172
+<div class="save add display_flex align-items_center justify-content_flex-center" *ngIf="modal">
173
+  <div class="modalBody">
174
+    <div class="title">{{add?"新增":"编辑"}}<i class="icon_transport transport-guanbi" (click)="hideModal()"></i>
175
+    </div>
176
+    <div class="content">
177
+      <form nz-form [formGroup]="validateForm" class="addForm" (ngSubmit)="submitForm()">
178
+        <nz-form-item>
179
+          <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="packid">请领单号</nz-form-label>
180
+          <nz-form-control nzErrorTip="请选择请领单号!">
181
+            <nz-input-group>
182
+        			<input nz-input class="formItem" formControlName="packid" placeholder="请输入请领单号" nzSize="default" />
183
+            </nz-input-group>
184
+          </nz-form-control>
185
+        </nz-form-item>
186
+				
187
+				<nz-form-item>
188
+				  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="batchNo">批次号</nz-form-label>
189
+				  <nz-form-control nzErrorTip="请选择批次号!">
190
+				    <nz-input-group>
191
+							<input nz-input class="formItem" formControlName="batchNo" placeholder="请输入批次号" nzSize="default" />
192
+				    </nz-input-group>
193
+				  </nz-form-control>
194
+				</nz-form-item>
195
+				
196
+				<nz-form-item>
197
+				  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="launch">发药科室</nz-form-label>
198
+				  <nz-form-control nzErrorTip="请选择发药科室!">
199
+				    <nz-input-group>
200
+							<nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
201
+							  (nzOnSearch)="changeDept($event)" nzAllowClear nzPlaceHolder="请选择发药科室" formControlName="launch">
202
+								<ng-container *ngFor="let option of deptList">
203
+								  <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
204
+								</ng-container>
205
+								<nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
206
+								  <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
207
+								</nz-option>
208
+							</nz-select>
209
+				    </nz-input-group>
210
+				  </nz-form-control>
211
+				</nz-form-item>
212
+				
213
+				<nz-form-item>
214
+				  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="target">申请科室</nz-form-label>
215
+				  <nz-form-control nzErrorTip="请选择申请科室!">
216
+				    <nz-input-group>
217
+							<nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
218
+							  (nzOnSearch)="changeDept($event)" nzAllowClear nzPlaceHolder="请选择申请科室" formControlName="target">
219
+								<ng-container *ngFor="let option of deptList">
220
+								  <nz-option *ngIf="!isLoading" [nzLabel]="option.dept" [nzValue]="option.id"></nz-option>
221
+								</ng-container>
222
+								<nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
223
+								  <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
224
+								</nz-option>
225
+							</nz-select>
226
+				    </nz-input-group>
227
+				  </nz-form-control>
228
+				</nz-form-item>
229
+				
230
+				<nz-form-item>
231
+				  <nz-form-label [nzSm]="8" [nzXs]="24" nzRequired nzFor="creatTime">开始时间</nz-form-label>
232
+				  <nz-form-control nzErrorTip="请选择同步时间!">
233
+				    <nz-input-group>
234
+				      <nz-date-picker
235
+								nzShowTime
236
+								nzFormat="yyyy-MM-dd HH:mm:ss"
237
+								nzPlaceHolder="请选择同步时间"
238
+								formControlName="creatTime"
239
+								(ngModelChange)="onStartChange($event)"
240
+							></nz-date-picker>
241
+				    </nz-input-group>
242
+				  </nz-form-control>
243
+				</nz-form-item>
244
+				
245
+				<nz-form-item>
246
+				  <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="drugsState">药品状态</nz-form-label>
247
+				  <nz-form-control nzErrorTip="请选择药品状态!">
248
+				    <nz-input-group>
249
+							<nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择药品状态" formControlName="drugsState">
250
+							  <ng-container *ngFor="let option of types">
251
+							    <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
252
+							  </ng-container>
253
+							</nz-select>
254
+				    </nz-input-group>
255
+				  </nz-form-control>
256
+				</nz-form-item>
257
+				
258
+				<nz-form-item>
259
+				  <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="drugsBagType">药品类型</nz-form-label>
260
+				  <nz-form-control nzErrorTip="请选择药品类型!">
261
+				    <nz-input-group>
262
+							<nz-select class="formItem" [nzDisabled]="!add" [nzDropdownMatchSelectWidth]="false" nzShowSearch nzPlaceHolder="请选择药品类型" formControlName="drugsBagType">
263
+							  <ng-container *ngFor="let option of drugsList">
264
+							    <nz-option [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
265
+							  </ng-container>
266
+							</nz-select>
267
+				    </nz-input-group>
268
+				  </nz-form-control>
269
+				</nz-form-item>
270
+      </form>
271
+    </div>
272
+    <div class="display_flex justify-content_flex-center">
273
+      <button nzType="primary" nz-button (click)="submitForm()" [nzLoading]="btnLoading">确认</button>
274
+      <button class="btn cancel" nz-button nzType="default" (click)="hideModal()">取消</button>
275
+    </div>
276
+  </div>
277
+</div>
278
+
279
+<!-- 发送消息 -->
280
+<app-dialog-delete [delModal]="sendModal" (hideDelModalEvent)="hideSendModal()" [btnLoading]="btnLoading" 
281
+  (confirmDelEvent)="confirmSend()" (cancelDelEvent)="cancelSend()" content="您确认发送消息吗?消息发送会进入建单通道" confirmTxt="是" cancelTxt="否">
282
+</app-dialog-delete>
283
+
284
+<!-- 查看详情 -->
285
+<router-outlet></router-outlet>

+ 14 - 1
src/app/views/drug-search/drug-search.component.less

@@ -1,5 +1,14 @@
1
 @import "../../../../src/theme.less";
1
 @import "../../../../src/theme.less";
2
 
2
 
3
+.width-105{
4
+	width: 105px !important;
5
+}
6
+
7
+.text-underline{
8
+	text-decoration: underline;
9
+	cursor: pointer;
10
+}
11
+
3
 .save {
12
 .save {
4
   position: fixed;
13
   position: fixed;
5
   left: 0;
14
   left: 0;
@@ -104,7 +113,11 @@
104
         .addForm {
113
         .addForm {
105
           .ant-form-item {
114
           .ant-form-item {
106
             margin-bottom: 15px;
115
             margin-bottom: 15px;
107
-
116
+						
117
+						.ant-select{
118
+							width: 100% !important;
119
+						}
120
+						
108
             .ant-form-item-label {
121
             .ant-form-item-label {
109
               line-height: 14px;
122
               line-height: 14px;
110
               text-align: left;
123
               text-align: left;

+ 261 - 3
src/app/views/drug-search/drug-search.component.ts

@@ -3,6 +3,9 @@ import { Subject } from "rxjs";
3
 import { debounceTime } from "rxjs/operators";
3
 import { debounceTime } from "rxjs/operators";
4
 import { MainService } from "src/app/services/main.service";
4
 import { MainService } from "src/app/services/main.service";
5
 import { ToolService } from "src/app/services/tool.service";
5
 import { ToolService } from "src/app/services/tool.service";
6
+import { format, startOfDay, endOfDay } from 'date-fns';
7
+import { ActivatedRoute, Router } from "@angular/router";
8
+import { FormBuilder, Validators, FormGroup, FormControl } from "@angular/forms";
6
 
9
 
7
 @Component({
10
 @Component({
8
   selector: "app-drug-search",
11
   selector: "app-drug-search",
@@ -10,7 +13,13 @@ import { ToolService } from "src/app/services/tool.service";
10
   styleUrls: ["./drug-search.component.less"],
13
   styleUrls: ["./drug-search.component.less"],
11
 })
14
 })
12
 export class DrugSearchComponent implements OnInit {
15
 export class DrugSearchComponent implements OnInit {
13
-  constructor(private mainService: MainService, private tool: ToolService) {}
16
+  constructor(
17
+	private fb: FormBuilder,
18
+	private mainService: MainService, 
19
+	private tool: ToolService,
20
+	private router: Router,
21
+	private route: ActivatedRoute
22
+	) {}
14
 
23
 
15
   currentUserAccount: any = JSON.parse(localStorage.getItem("user")).user.account; //当前登录人账号
24
   currentUserAccount: any = JSON.parse(localStorage.getItem("user")).user.account; //当前登录人账号
16
   searchCriteria = {
25
   searchCriteria = {
@@ -19,6 +28,9 @@ export class DrugSearchComponent implements OnInit {
19
     launch: null, //发药科室
28
     launch: null, //发药科室
20
     target: null, //发药科室
29
     target: null, //发药科室
21
     drugsState: null,
30
     drugsState: null,
31
+		receiverName: null,
32
+		drugsBagType: null,
33
+		dateRange:[],
22
   };
34
   };
23
   deptList = []; // 院区下的配送人员列表(搜索框)
35
   deptList = []; // 院区下的配送人员列表(搜索框)
24
   hosId;
36
   hosId;
@@ -27,11 +39,23 @@ export class DrugSearchComponent implements OnInit {
27
   pageSize: number = 10; //表格每页展示条数
39
   pageSize: number = 10; //表格每页展示条数
28
   listLength: number = 10; //表格总数据量
40
   listLength: number = 10; //表格总数据量
29
   changeInpSubject = new Subject();
41
   changeInpSubject = new Subject();
42
+	changeUserInpSubject = new Subject();
43
+	coopBtns:any;
44
+	validateForm: FormGroup; //新增/编辑表单
45
+	
30
   ngOnInit() {
46
   ngOnInit() {
47
+		this.coopBtns = this.tool.initCoopBtns(this.route);
31
     this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
48
     this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
32
       this.searchDept(v);
49
       this.searchDept(v);
33
     });
50
     });
51
+		this.changeUserInpSubject.pipe(debounceTime(500)).subscribe((v) => {
52
+		  this.searchUser(v);
53
+		});
34
     this.getHospital();
54
     this.getHospital();
55
+		this.getDrugsList();
56
+		this.searchDept('');
57
+		this.searchUser('');
58
+		this.searchTypes();
35
   }
59
   }
36
   // 查看流程信息弹窗
60
   // 查看流程信息弹窗
37
   logPromptModalShow = false; //弹窗开关
61
   logPromptModalShow = false; //弹窗开关
@@ -104,6 +128,58 @@ export class DrugSearchComponent implements OnInit {
104
       this.searchTypes();
128
       this.searchTypes();
105
     }
129
     }
106
   }
130
   }
131
+	
132
+	// 获取药品类型
133
+	drugsList:any = [];
134
+	getDrugsList(){
135
+		this.mainService.getDictionary("list", "drugs_bag_type").subscribe((res) => {
136
+		  this.drugsList = res;
137
+		});
138
+	}
139
+	
140
+	//获取用户
141
+	userSearch:any = [];
142
+	searchUser(keyword) {
143
+	  let data = {
144
+	    user: {
145
+	      usertype: { id: 106 },
146
+	      name: keyword,
147
+	      hospital: {
148
+	        id: this.hosId,
149
+	      },
150
+	    },
151
+	    idx: 0,
152
+	    sum: 10,
153
+	  };
154
+	  this.mainService
155
+	    .getFetchDataList("data", "user", data)
156
+	    .subscribe((data) => {
157
+	      if (data.status == 200) {
158
+					this.isLoading = false;
159
+					this.userSearch = data.list;
160
+	      }
161
+	    });
162
+	}
163
+	
164
+	// 搜索用户
165
+	changeUserInp(e){
166
+		this.isLoading = true;
167
+		this.changeUserInpSubject.next(e);
168
+	}
169
+	
170
+	// 日期选择
171
+	startDate: string; //发起时间开始
172
+	endDate: string; //发起时间结束
173
+	changeDate(result?): void {
174
+	  if (result.length==0) {
175
+	    this.startDate = this.endDate = null;
176
+	    return;
177
+	  }
178
+		this.startDate = format(result[0], 'yyyy-MM-dd HH:mm:ss');
179
+		this.endDate = format(result[1], 'yyyy-MM-dd HH:mm:ss');
180
+	  this.searchCriteria.dateRange = [this.startDate,this.endDate]
181
+	}
182
+	
107
   // 重置
183
   // 重置
108
   reset() {
184
   reset() {
109
     this.searchCriteria = {
185
     this.searchCriteria = {
@@ -112,7 +188,12 @@ export class DrugSearchComponent implements OnInit {
112
       launch: null,
188
       launch: null,
113
       target: null,
189
       target: null,
114
       drugsState: null,
190
       drugsState: null,
191
+			receiverName: null,
192
+			drugsBagType: null,
193
+			dateRange:[]
115
     };
194
     };
195
+		this.startDate = null;
196
+		this.endDate = null;
116
     this.getList(1);
197
     this.getList(1);
117
   }
198
   }
118
 
199
 
@@ -169,7 +250,166 @@ export class DrugSearchComponent implements OnInit {
169
         }
250
         }
170
       });
251
       });
171
   }
252
   }
172
-
253
+	
254
+	// 查看
255
+	detail(e, data) {
256
+		if(!data.workOrderDTO){
257
+			return
258
+		}
259
+	  e.stopPropagation();
260
+	  this.router.navigateByUrl("/main/drugSearch/orderDetail/" + data.workOrderDTO.id);
261
+	}
262
+	
263
+	// 新增弹框
264
+	modal:boolean = false;
265
+	add:boolean = false;
266
+	addMoadl() {
267
+	  this.add = true;
268
+		this.modal = true;
269
+		this.itemData = null;
270
+	  this.initForm();
271
+	}
272
+	hideModal() {
273
+	  this.modal = false;
274
+	  this.initForm();
275
+	}
276
+	
277
+	// 搜索科室
278
+	changeDept(dept){
279
+		this.isLoading = true;
280
+		this.changeInpSubject.next(dept);
281
+	}
282
+	
283
+	// 初始化新增form表单
284
+	initForm() {
285
+	  this.validateForm = this.fb.group({
286
+			packid:[null, [Validators.required]],
287
+	    batchNo: [null, []],
288
+	    launch: [null, [Validators.required]],
289
+			target: [null, [Validators.required]],
290
+	    creatTime: [null, [Validators.required]],
291
+	    drugsState: [null, [Validators.required]],
292
+			drugsBagType: [null, []],
293
+	  });
294
+	}
295
+	
296
+	// // 选择开始时间
297
+	onStartChange(result: Date): void {
298
+		console.log('Selected Time: ', result);
299
+		let startTime = format(result, 'yyyy-MM-dd HH:mm:ss');
300
+		this.validateForm.controls.creatTime.setValue(startTime);
301
+	}
302
+		
303
+	// 表单提交
304
+	submitForm(): void {
305
+	  var that = this;
306
+		for (const i in that.validateForm.controls) {
307
+		  that.validateForm.controls[i].markAsDirty();
308
+		  that.validateForm.controls[i].updateValueAndValidity();
309
+		}
310
+		if (that.validateForm.invalid) return;
311
+	  let data = {
312
+			drugsBag:{
313
+				...this.itemData,
314
+				packid: this.validateForm.value.packid,
315
+				batchNo: this.validateForm.value.batchNo || undefined,
316
+				drugsState: {
317
+					id: this.validateForm.value.drugsState
318
+				},
319
+				drugsBagType: {
320
+					id: this.validateForm.value.drugsBagType
321
+				},
322
+				launch: {
323
+					id:this.validateForm.value.launch
324
+				},
325
+				target: {
326
+					id:this.validateForm.value.target
327
+				},
328
+				creatTime: this.validateForm.value.creatTime,
329
+				id:0,
330
+			}
331
+	  };
332
+	  if (!that.add) {
333
+	    data.drugsBag.id = that.coopId;
334
+	  }else{
335
+			delete data.drugsBag.id
336
+		}
337
+		if(this.validateForm.value.drugsBagType){
338
+			data.drugsBag.drugsBagType.id = this.validateForm.value.drugsBagType
339
+		}else{
340
+			delete data.drugsBag.drugsBagType
341
+		}
342
+		that.btnLoading = true;
343
+	  that.mainService
344
+	    .dataPost(this.add ? "addData":"updData", "drugsBag", data)
345
+	    .subscribe((data) => {
346
+	      that.btnLoading = false;
347
+	      that.hideModal();
348
+	      if (data.status == 200) {
349
+	        that.showPromptModal(that.add ? "新增" : "编辑", true, "");
350
+	      } else {
351
+	        that.showPromptModal(that.add ? "新增" : "编辑", false, data.msg);
352
+	      }
353
+	    });
354
+	}
355
+	
356
+	// 编辑
357
+	itemData:any;
358
+	coopId:any;
359
+	edit(data) {
360
+		this.add = false
361
+		this.initForm();
362
+		this.itemData = data;
363
+		this.coopId = data.id;
364
+		this.validateForm.controls.packid.setValue(data.packid);
365
+		this.validateForm.controls.batchNo.setValue(data.batchNo);
366
+		this.validateForm.controls.launch.setValue(data.launch.id);
367
+		this.validateForm.controls.target.setValue(data.target.id)
368
+		this.validateForm.controls.drugsState.setValue(data.drugsState.id)
369
+		this.validateForm.controls.drugsBagType.setValue(data.drugsBagType.id)
370
+		this.validateForm.controls.creatTime.setValue(data.creatTime);
371
+		this.modal = true
372
+	}
373
+	
374
+	// 消息发送
375
+	sendModal:boolean = false;
376
+	sendMsg(data){
377
+		this.itemData = data;
378
+		this.sendModal = true
379
+	}
380
+	
381
+	// 取消删除弹框
382
+	cancelSend(){
383
+		this.hideSendModal();
384
+	}
385
+	
386
+	hideSendModal(){
387
+		this.sendModal = false
388
+	}
389
+	
390
+	// 确认发送
391
+	confirmSend() {
392
+	  let that = this;
393
+		let query = {
394
+			drugsBag:{
395
+				...this.itemData,
396
+				operationType:'sendMsg'
397
+			}
398
+		}
399
+	  that.btnLoading = true;
400
+	  that.mainService
401
+	    .dataPost("updData", "drugsBag", query)
402
+	    .subscribe((data) => {
403
+	      that.btnLoading = false;
404
+				this.hideSendModal();
405
+	      if (data.status == 200) {
406
+	        that.showPromptModal("发送", true, "");
407
+	      } else {
408
+	        that.showPromptModal("发送", false, data.msg);
409
+	      }
410
+	    });
411
+	}
412
+	
173
   // 表格数据
413
   // 表格数据
174
   loading1 = false;
414
   loading1 = false;
175
   getList(type) {
415
   getList(type) {
@@ -182,7 +422,15 @@ export class DrugSearchComponent implements OnInit {
182
       drugsBag: {
422
       drugsBag: {
183
         hosId: this.hosId,
423
         hosId: this.hosId,
184
         drugsState: this.searchCriteria.drugsState ? { id: this.searchCriteria.drugsState } : undefined,
424
         drugsState: this.searchCriteria.drugsState ? { id: this.searchCriteria.drugsState } : undefined,
185
-      },
425
+				startTime: this.startDate || undefined,
426
+				endTime: this.endDate || undefined,
427
+				drugsBagType:{
428
+					id:null
429
+				},
430
+				deliveryUser:{
431
+					id:null
432
+				}
433
+			},
186
     };
434
     };
187
     if (this.searchCriteria.target) {
435
     if (this.searchCriteria.target) {
188
       postData.drugsBag.target = { id: this.searchCriteria.target };
436
       postData.drugsBag.target = { id: this.searchCriteria.target };
@@ -193,6 +441,16 @@ export class DrugSearchComponent implements OnInit {
193
     if (this.searchCriteria.packid) {
441
     if (this.searchCriteria.packid) {
194
       postData.drugsBag.packid = this.searchCriteria.packid;
442
       postData.drugsBag.packid = this.searchCriteria.packid;
195
     }
443
     }
444
+		if (this.searchCriteria.receiverName) {
445
+		  postData.drugsBag.deliveryUser.id = this.searchCriteria.receiverName;
446
+		}else{
447
+			delete postData.drugsBag.deliveryUser
448
+		}
449
+		if (this.searchCriteria.drugsBagType) {
450
+		  postData.drugsBag.drugsBagType.id = this.searchCriteria.drugsBagType;
451
+		}else{
452
+			delete postData.drugsBag.drugsBagType
453
+		}
196
     this.loading1 = true;
454
     this.loading1 = true;
197
     this.mainService
455
     this.mainService
198
       .getFetchDataList("drugsBag", "drugsBag", postData)
456
       .getFetchDataList("drugsBag", "drugsBag", postData)

+ 53 - 14
src/app/views/fuwutai/fuwutai.component.html

@@ -90,8 +90,8 @@
90
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag1}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 1)">配送</span>
90
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag1}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 1)">配送</span>
91
           <span class="time">{{ orderRefreshTime }}s</span></span>
91
           <span class="time">{{ orderRefreshTime }}s</span></span>
92
       </div>
92
       </div>
93
-      <div class="searchBox" *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1">
94
-        <label nz-checkbox [(ngModel)]="allUnassignedList" (ngModelChange)="changeAllUnassignedList($event)">全选</label>
93
+      <div class="searchBox">
94
+        <label *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1" nz-checkbox [(ngModel)]="allUnassignedList" (ngModelChange)="changeAllUnassignedList($event)">全选</label>
95
         <div class="search wp60">
95
         <div class="search wp60">
96
           <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="unassignedSearchCon" />
96
           <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="unassignedSearchCon" />
97
           <div class="magnifier wp20" (click)="searchUnassigned()">
97
           <div class="magnifier wp20" (click)="searchUnassigned()">
@@ -99,7 +99,7 @@
99
             <span>搜索</span>
99
             <span>搜索</span>
100
           </div>
100
           </div>
101
         </div>
101
         </div>
102
-        <button nz-button nzType="primary" (click)="batchDispatch()" [disabled]="!batchType">
102
+        <button *ngIf="!flagList.itsmFlag1 && flagList.hsmsFlag1" nz-button nzType="primary" (click)="batchDispatch()" [disabled]="!batchType">
103
           批量派单
103
           批量派单
104
         </button>
104
         </button>
105
       </div>
105
       </div>
@@ -182,7 +182,10 @@
182
                       </span>
182
                       </span>
183
                     </span>
183
                     </span>
184
                     <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
184
                     <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
185
-                      {{ data.data.showCreateTime }}
185
+											<span class="source-name" *ngIf="data.data.sourceName && showSource == 1">
186
+												{{data.data.sourceName}}
187
+											</span>
188
+											{{ data.data.showCreateTime }}
186
                     </span>
189
                     </span>
187
                   </div>
190
                   </div>
188
                   <!-- 急单 -->
191
                   <!-- 急单 -->
@@ -246,6 +249,9 @@
246
                       </span>
249
                       </span>
247
                     </span>
250
                     </span>
248
                     <span class="right">
251
                     <span class="right">
252
+											<span class="source-name" *ngIf="data.data.source && showSource == 1">
253
+												{{data.data.source.name}}
254
+											</span>
249
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
255
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
250
                     </span>
256
                     </span>
251
                   </div>
257
                   </div>
@@ -286,8 +292,8 @@
286
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag2}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 2)">配送</span>
292
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag2}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 2)">配送</span>
287
           <span class="time">{{ orderRefreshTime }}s</span></span>
293
           <span class="time">{{ orderRefreshTime }}s</span></span>
288
       </div>
294
       </div>
289
-      <div class="searchBox" *ngIf="!flagList.itsmFlag2 && flagList.hsmsFlag2">
290
-        <label nz-checkbox [(ngModel)]="allArriveList" (ngModelChange)="changeAllArriveList($event)">全选</label>
295
+      <div class="searchBox">
296
+        <label *ngIf="!flagList.itsmFlag2 && flagList.hsmsFlag2" nz-checkbox [(ngModel)]="allArriveList" (ngModelChange)="changeAllArriveList($event)">全选</label>
291
         <div class="search wp60">
297
         <div class="search wp60">
292
           <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="arriveSearchCon" />
298
           <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="arriveSearchCon" />
293
           <div class="magnifier wp20" (click)="searchArrive()">
299
           <div class="magnifier wp20" (click)="searchArrive()">
@@ -295,7 +301,7 @@
295
             <span>搜索</span>
301
             <span>搜索</span>
296
           </div>
302
           </div>
297
         </div>
303
         </div>
298
-        <button nz-button nzType="primary" (click)="batchWithdrawal()" [disabled]="!batchType1">
304
+        <button *ngIf="!flagList.itsmFlag2 && flagList.hsmsFlag2" nz-button nzType="primary" (click)="batchWithdrawal()" [disabled]="!batchType1">
299
           批量撤回
305
           批量撤回
300
         </button>
306
         </button>
301
       </div>
307
       </div>
@@ -375,7 +381,10 @@
375
                       <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
381
                       <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
376
                     </span>
382
                     </span>
377
                     <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
383
                     <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
378
-                      {{ data.data.showCreateTime }}
384
+                      <span class="source-name" *ngIf="data.data.sourceName && showSource == 1">
385
+                      	{{data.data.sourceName}}
386
+                      </span>
387
+											{{ data.data.showCreateTime }}
379
                     </span>
388
                     </span>
380
                   </div>
389
                   </div>
381
                   <!-- 急单 -->
390
                   <!-- 急单 -->
@@ -438,6 +447,9 @@
438
                       </span>
447
                       </span>
439
                     </span>
448
                     </span>
440
                     <span class="right">
449
                     <span class="right">
450
+											<span class="source-name" *ngIf="data.data.source && showSource == 1">
451
+												{{data.data.source.name}}
452
+											</span>
441
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
453
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
442
                     </span>
454
                     </span>
443
                   </div>
455
                   </div>
@@ -475,7 +487,7 @@
475
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag3}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 3)">配送</span>
487
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag3}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 3)">配送</span>
476
           <span class="time">{{ orderRefreshTime }}s</span></span>
488
           <span class="time">{{ orderRefreshTime }}s</span></span>
477
       </div>
489
       </div>
478
-      <div class="searchBox" *ngIf="!flagList.itsmFlag3 && flagList.hsmsFlag3">
490
+      <div class="searchBox">
479
         <div class="search">
491
         <div class="search">
480
           <input type="text" placeholder="请输入关键字" [(ngModel)]="executionSearchCon" />
492
           <input type="text" placeholder="请输入关键字" [(ngModel)]="executionSearchCon" />
481
           <div class="magnifier" (click)="searchExecution()">
493
           <div class="magnifier" (click)="searchExecution()">
@@ -560,7 +572,10 @@
560
                       <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
572
                       <span nz-tooltip nzTooltipTitle="患者姓名(住院号)" *ngIf="data.data.taskType.associationType.value == 'patientTransport' || data.data.taskType.associationType.value == 'inspect'">{{ data.data.patient.patientName }}<span *ngIf="data.data.patient.residenceNo">({{ data.data.patient.residenceNo }})</span></span>
561
                     </span>
573
                     </span>
562
                     <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
574
                     <span class="right" nz-tooltip [nzTooltipTitle]="'总时长' + formatTime(data.data.expectTimeNum / 1000)">
563
-                      {{ data.data.showCreateTime }}
575
+                     <span class="source-name" *ngIf="data.data.sourceName && showSource == 1">
576
+                     	{{data.data.sourceName}}
577
+                     </span>
578
+										 {{ data.data.showCreateTime }}
564
                     </span>
579
                     </span>
565
                   </div>
580
                   </div>
566
                   <!-- 急单 -->
581
                   <!-- 急单 -->
@@ -622,6 +637,9 @@
622
                       </span>
637
                       </span>
623
                     </span>
638
                     </span>
624
                     <span class="right">
639
                     <span class="right">
640
+											<span class="source-name" *ngIf="data.data.source && showSource == 1">
641
+												{{data.data.source.name}}
642
+											</span>
625
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
643
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
626
                     </span>
644
                     </span>
627
                   </div>
645
                   </div>
@@ -651,7 +669,7 @@
651
   </div>
669
   </div>
652
 
670
 
653
   <!-- 右侧悬浮框 -->
671
   <!-- 右侧悬浮框 -->
654
-  <div id="fixedMenu" class="fixed">
672
+  <div id="fixedMenu" class="fixed" [ngStyle]="rightStyle">
655
     <div class="left" *ngIf="fixedTab != '' && showLastItems && fixedTab != 'newOrder' && fixedTab != 'toSystem' && fixedTab != 'logout'">
673
     <div class="left" *ngIf="fixedTab != '' && showLastItems && fixedTab != 'newOrder' && fixedTab != 'toSystem' && fixedTab != 'logout'">
656
       <!-- 叫号信息 -->
674
       <!-- 叫号信息 -->
657
       <div
675
       <div
@@ -766,7 +784,7 @@
766
     <div class="right">
784
     <div class="right">
767
       <div class="fixedMenu" *ngIf="hsmsData.hsmsSwitch || itsmData.mdv2Switch">
785
       <div class="fixedMenu" *ngIf="hsmsData.hsmsSwitch || itsmData.mdv2Switch">
768
         <div class="menuItems">
786
         <div class="menuItems">
769
-          <button nz-button nzType="link" class="item itemLink" (click)="showNewOrder()" [nzLoading]="getConfigTasktypeLoading || patientLogTasktypeLoading">
787
+          <button nz-button nzType="link" class="item itemLink" (click)="showNewOrder('1')" [nzLoading]="getConfigTasktypeLoading || patientLogTasktypeLoading">
770
             新建工单
788
             新建工单
771
           </button>
789
           </button>
772
         </div>
790
         </div>
@@ -877,7 +895,7 @@
877
   </div>
895
   </div>
878
 
896
 
879
   <!-- 左侧悬浮框 -->
897
   <!-- 左侧悬浮框 -->
880
-  <div id="fixedMenuLeft" class="fixedLeft" [hidden]="!itsmData.mdv2Switch && !hsmsData.hsmsSwitch">
898
+  <div id="fixedMenuLeft" class="fixedLeft" [ngStyle]="leftStyle" [hidden]="!itsmData.mdv2Switch && !hsmsData.hsmsSwitch">
881
     <div class="right">
899
     <div class="right">
882
       <div class="fixedMenu">
900
       <div class="fixedMenu">
883
         <div class="menuItems">
901
         <div class="menuItems">
@@ -1064,6 +1082,14 @@
1064
           </div>
1082
           </div>
1065
         </div>
1083
         </div>
1066
       </div>
1084
       </div>
1085
+			<div class="title" *ngIf="currentTabIndex === '政务值班'">
1086
+			  <div class="newTop">
1087
+			    <div class="name">来电咨询</div>
1088
+			    <div class="newTopItem">
1089
+			      <span class="grayFont">来电电话:{{incidentModel.incomingPhone}}</span>
1090
+			    </div>
1091
+			  </div>
1092
+			</div>
1067
       <div nz-row class="content">
1093
       <div nz-row class="content">
1068
         <div nz-col nzSpan="15" class="col left">
1094
         <div nz-col nzSpan="15" class="col left">
1069
           <div class="tabs">
1095
           <div class="tabs">
@@ -1571,7 +1597,7 @@
1571
         <div nz-col nzSpan="9" class="col right">
1597
         <div nz-col nzSpan="9" class="col right">
1572
           <div class="rightTitle">
1598
           <div class="rightTitle">
1573
             <div class="rightTitle_tab" [class.active]="currentRTab == tab.id" *ngFor="let tab of rightTitle_tab;" (click)="rightTitleHandler(tab.id)">{{ tab.name }}</div>
1599
             <div class="rightTitle_tab" [class.active]="currentRTab == tab.id" *ngFor="let tab of rightTitle_tab;" (click)="rightTitleHandler(tab.id)">{{ tab.name }}</div>
1574
-            <span class="toLastTime1"><span class="time" *ngIf="applyDept">{{ orderRefreshTime }}s</span></span>
1600
+            <span class="toLastTime1"><span class="time" *ngIf="applyDept || incidentModel.requester">{{ orderRefreshTime }}s</span></span>
1575
           </div>
1601
           </div>
1576
           <!-- 近期配送 start -->
1602
           <!-- 近期配送 start -->
1577
           <div class="cots_body weifenpai" *ngIf="currentRTab == 0 && currentTabIndex != '政务值班'" [ngClass]="{ top185: hurseInfoHiding != 1 }">
1603
           <div class="cots_body weifenpai" *ngIf="currentRTab == 0 && currentTabIndex != '政务值班'" [ngClass]="{ top185: hurseInfoHiding != 1 }">
@@ -2027,3 +2053,16 @@
2027
 
2053
 
2028
 <!-- 修改备注弹窗 -->
2054
 <!-- 修改备注弹窗 -->
2029
 <app-edit-work-order-remark *ngIf="isShowBuildQuickConfirm" [buildQuickConfirmData]="buildQuickConfirmData" (cancelModal)="cancelBuildQuickConfirm($event)" (confirmModal)="confirmBuildQuickConfirm($event)" [loading5]="loadingQuick"></app-edit-work-order-remark>
2055
 <app-edit-work-order-remark *ngIf="isShowBuildQuickConfirm" [buildQuickConfirmData]="buildQuickConfirmData" (cancelModal)="cancelBuildQuickConfirm($event)" (confirmModal)="confirmBuildQuickConfirm($event)" [loading5]="loadingQuick"></app-edit-work-order-remark>
2056
+
2057
+<!-- 工单删除填写删除原因 -->
2058
+<nz-modal
2059
+	[(nzVisible)]="isDelVisible"
2060
+	nzTitle="提示"
2061
+	(nzOnCancel)="delOrderModal()"
2062
+	(nzOnOk)="confirmDelOk()"
2063
+	[nzOkLoading]="btnLoading"
2064
+	>
2065
+	<div class="del-modal">
2066
+		<input nz-input type="text" placeholder="请输入删除原因" [(ngModel)]="delReason" />
2067
+	</div>
2068
+</nz-modal>

+ 16 - 10
src/app/views/fuwutai/fuwutai.component.less

@@ -8,6 +8,12 @@
8
   flex-direction: column;
8
   flex-direction: column;
9
 }
9
 }
10
 
10
 
11
+.source-name{
12
+	font-size: 12px;
13
+	margin-right: 10px;
14
+	color: #000;
15
+}
16
+
11
 .thumbList{
17
 .thumbList{
12
   display: flex;
18
   display: flex;
13
   align-items: center;
19
   align-items: center;
@@ -1631,11 +1637,11 @@
1631
 
1637
 
1632
   // 右侧悬浮菜单
1638
   // 右侧悬浮菜单
1633
   .fixed {
1639
   .fixed {
1634
-    position: fixed;
1635
-    top: calc(40% + 115px + 16px);
1636
-    right: 0;
1637
-    z-index: 9;
1638
-    border-radius: 5px 0 0 5px;
1640
+    // position: fixed;
1641
+    // top: calc(40% + 115px + 16px);
1642
+    // right: 0;
1643
+    // z-index: 9;
1644
+    // border-radius: 5px 0 0 5px;
1639
 
1645
 
1640
     &.maskFull{
1646
     &.maskFull{
1641
       &::after{
1647
       &::after{
@@ -2094,11 +2100,11 @@
2094
 
2100
 
2095
   // 左侧悬浮菜单
2101
   // 左侧悬浮菜单
2096
   .fixedLeft {
2102
   .fixedLeft {
2097
-    position: fixed;
2098
-    top: 40%;
2099
-    left: 0;
2100
-    z-index: 8;
2101
-    border-radius: 5px 0 0 5px;
2103
+    // position: fixed;
2104
+    // top: 40%;
2105
+    // left: 0;
2106
+    // z-index: 8;
2107
+    // border-radius: 5px 0 0 5px;
2102
 
2108
 
2103
     &.maskFull{
2109
     &.maskFull{
2104
       &::after{
2110
       &::after{

+ 259 - 53
src/app/views/fuwutai/fuwutai.component.ts

@@ -389,6 +389,8 @@ export class FuwutaiComponent implements OnInit {
389
 
389
 
390
   // 获取科室
390
   // 获取科室
391
   applyStartDept;
391
   applyStartDept;
392
+	patientCode:any;
393
+	taskTypeId:any;
392
   // 患者转运表单提交
394
   // 患者转运表单提交
393
   submitFormZy(go?): void {
395
   submitFormZy(go?): void {
394
     let newOrderShowFlag = true; //是否可以关闭弹窗
396
     let newOrderShowFlag = true; //是否可以关闭弹窗
@@ -458,6 +460,8 @@ export class FuwutaiComponent implements OnInit {
458
           if (go === "&go&") {
460
           if (go === "&go&") {
459
             this.applyDept = data["createDept"].id;
461
             this.applyDept = data["createDept"].id;
460
             this.applyStartDept = data["createDept"];
462
             this.applyStartDept = data["createDept"];
463
+						this.patientCode = data["patientId"];
464
+						this.taskTypeId = data["taskTypeId"];
461
             this.incidentModel.incomingPhone = this.callNumber = this.incidentModel.contactsInformation = data["phone"];
465
             this.incidentModel.incomingPhone = this.callNumber = this.incidentModel.contactsInformation = data["phone"];
462
             this.showPromptModal("建单", true, "", "closeGo");
466
             this.showPromptModal("建单", true, "", "closeGo");
463
           } else {
467
           } else {
@@ -472,6 +476,8 @@ export class FuwutaiComponent implements OnInit {
472
 					if (go === "&go&") {
476
 					if (go === "&go&") {
473
 					  this.applyDept = data["createDept"].id;
477
 					  this.applyDept = data["createDept"].id;
474
 					  this.applyStartDept = data["createDept"];
478
 					  this.applyStartDept = data["createDept"];
479
+						this.patientCode = data["patientId"];
480
+						this.taskTypeId = data["taskTypeId"];
475
 					  this.incidentModel.incomingPhone = this.callNumber = this.incidentModel.contactsInformation = data["phone"];
481
 					  this.incidentModel.incomingPhone = this.callNumber = this.incidentModel.contactsInformation = data["phone"];
476
 					}
482
 					}
477
 					//重复建单那策略
483
 					//重复建单那策略
@@ -1412,7 +1418,7 @@ export class FuwutaiComponent implements OnInit {
1412
   // 快捷键打开新建工单
1418
   // 快捷键打开新建工单
1413
   quickShowNewOrder(e){
1419
   quickShowNewOrder(e){
1414
     if (e.ctrlKey && e.key == "s") {
1420
     if (e.ctrlKey && e.key == "s") {
1415
-      this.showNewOrder();
1421
+      this.showNewOrder(1);
1416
       e.preventDefault();
1422
       e.preventDefault();
1417
     }
1423
     }
1418
   }
1424
   }
@@ -1676,7 +1682,7 @@ export class FuwutaiComponent implements OnInit {
1676
           //没绑定科室
1682
           //没绑定科室
1677
           if (!this.newOrderShow && !this.newOrderShowOpen) {
1683
           if (!this.newOrderShow && !this.newOrderShowOpen) {
1678
             this.applyDept = null;
1684
             this.applyDept = null;
1679
-            this.showNewOrder("no", data.phone, true, '来电弹屏');
1685
+            this.showNewOrder(1, "no", data.phone, true, '来电弹屏');
1680
           }
1686
           }
1681
         } else if (data.status == 202) {
1687
         } else if (data.status == 202) {
1682
           this.msg.warning(data.msg);
1688
           this.msg.warning(data.msg);
@@ -1730,7 +1736,7 @@ export class FuwutaiComponent implements OnInit {
1730
               this.incidentMsg = incidentMsg;
1736
               this.incidentMsg = incidentMsg;
1731
               this.searchApplicationRequester();
1737
               this.searchApplicationRequester();
1732
               this.applyDeptMiddle = deptDTO;
1738
               this.applyDeptMiddle = deptDTO;
1733
-              this.showNewOrder("yes", this.incidentModel.incomingPhone, true, '来电弹屏');
1739
+              this.showNewOrder(1, "yes", this.incidentModel.incomingPhone, true, '来电弹屏');
1734
             // }
1740
             // }
1735
           } else {
1741
           } else {
1736
             //没绑定科室
1742
             //没绑定科室
@@ -1740,7 +1746,7 @@ export class FuwutaiComponent implements OnInit {
1740
             this.incidentMsg = {};
1746
             this.incidentMsg = {};
1741
             if (!this.newOrderShow && !this.newOrderShowOpen) {
1747
             if (!this.newOrderShow && !this.newOrderShowOpen) {
1742
               this.applyDept = null;
1748
               this.applyDept = null;
1743
-              this.showNewOrder("no", this.incidentModel.incomingPhone, true, '来电弹屏');
1749
+              this.showNewOrder(1, "no", this.incidentModel.incomingPhone, true, '来电弹屏');
1744
             }
1750
             }
1745
           }
1751
           }
1746
         }
1752
         }
@@ -1945,18 +1951,14 @@ export class FuwutaiComponent implements OnInit {
1945
     if(!this.itsmData.mdv2Switch){
1951
     if(!this.itsmData.mdv2Switch){
1946
       return;
1952
       return;
1947
     }
1953
     }
1948
-    if (id == -1 || id === null || id === undefined) {
1954
+    if (id == -1 || id === null || id === undefined && this.incidentModel.repairIncidentType === 'dept') {
1949
       this.itsmOrders = [];
1955
       this.itsmOrders = [];
1950
       return;
1956
       return;
1951
     }
1957
     }
1952
-		if(!this.incidentModel.department){
1958
+		if(!this.incidentModel.department && this.incidentModel.repairIncidentType === 'dept'){
1953
 			this.itsmOrders = [];
1959
 			this.itsmOrders = [];
1954
 			return;
1960
 			return;
1955
 		}
1961
 		}
1956
-		if(this.incidentModel.repairIncidentType === 'public'){
1957
-			this.itsmOrders = [];
1958
-			return
1959
-		}
1960
     let postData = {
1962
     let postData = {
1961
       incident: {
1963
       incident: {
1962
         "deleteFlag": 0,
1964
         "deleteFlag": 0,
@@ -1964,10 +1966,23 @@ export class FuwutaiComponent implements OnInit {
1964
         department: {
1966
         department: {
1965
           id,
1967
           id,
1966
         },
1968
         },
1969
+				requester:{
1970
+					id:null
1971
+				}
1967
       },
1972
       },
1968
       idx: 0,
1973
       idx: 0,
1969
       sum: 6,
1974
       sum: 6,
1970
     };
1975
     };
1976
+		if(this.incidentModel.repairIncidentType === 'public'){
1977
+			if(!this.incidentModel.requester){
1978
+				this.itsmOrders = [];
1979
+				return
1980
+			}
1981
+			postData.incident.requester.id = this.incidentModel.requester || null
1982
+			delete postData.incident.department
1983
+		}else{
1984
+			delete postData.incident.requester
1985
+		}
1971
     this.loading6 = true;
1986
     this.loading6 = true;
1972
     this.mainService
1987
     this.mainService
1973
       .getFetchDataList("simple/data", "incident", postData)
1988
       .getFetchDataList("simple/data", "incident", postData)
@@ -1982,7 +1997,7 @@ export class FuwutaiComponent implements OnInit {
1982
 	// 获取政务值班近期记录
1997
 	// 获取政务值班近期记录
1983
 	itsmZwOrders:any=[];
1998
 	itsmZwOrders:any=[];
1984
 	getZwOrders(){
1999
 	getZwOrders(){
1985
-		if(!this.incidentModel.callID){
2000
+		if(!this.incidentModel.callID && !this.selectProvince){
1986
 			return
2001
 			return
1987
 		}
2002
 		}
1988
 		let postData = {
2003
 		let postData = {
@@ -2325,6 +2340,13 @@ export class FuwutaiComponent implements OnInit {
2325
     }
2340
     }
2326
     // 运维
2341
     // 运维
2327
     if(this.flagList['itsmFlag' + stateId]){
2342
     if(this.flagList['itsmFlag' + stateId]){
2343
+			if (stateId == 1) {
2344
+			  keyWords = this.unassignedSearchCon || "";
2345
+			} else if (stateId == 2) {
2346
+			  keyWords = this.arriveSearchCon || "";
2347
+			} else if (stateId == 3) {
2348
+			  keyWords = this.executionSearchCon || "";
2349
+			}
2328
       postData.incidentQuery = {
2350
       postData.incidentQuery = {
2329
         idx: 0,
2351
         idx: 0,
2330
         sum: 1,
2352
         sum: 1,
@@ -2338,7 +2360,8 @@ export class FuwutaiComponent implements OnInit {
2338
           "assignee": this.tool.getCurrentUserId(),
2360
           "assignee": this.tool.getCurrentUserId(),
2339
           "deleteFlag": 0,
2361
           "deleteFlag": 0,
2340
 					"showReassign":null,
2362
 					"showReassign":null,
2341
-					"showGovDuty":null
2363
+					"showGovDuty":null,
2364
+					keyWord: keyWords
2342
         }
2365
         }
2343
 				postData.incidentQuery.incident.showReassign = this.user.user.scope.showReassign==0 || !this.user.user.scope.showReassign ? undefined : this.user.user.scope.showReassign
2366
 				postData.incidentQuery.incident.showReassign = this.user.user.scope.showReassign==0 || !this.user.user.scope.showReassign ? undefined : this.user.user.scope.showReassign
2344
 				postData.incidentQuery.incident.showGovDuty = 
2367
 				postData.incidentQuery.incident.showGovDuty = 
@@ -2351,6 +2374,7 @@ export class FuwutaiComponent implements OnInit {
2351
           "urgentType": +this.itsmData.orderScopeRadio + 1,
2374
           "urgentType": +this.itsmData.orderScopeRadio + 1,
2352
           "queryTask": "todoState",
2375
           "queryTask": "todoState",
2353
           "deleteFlag": 0,
2376
           "deleteFlag": 0,
2377
+					keyWord: keyWords
2354
         }
2378
         }
2355
       }else if(stateId == 3){
2379
       }else if(stateId == 3){
2356
         postData.incidentQuery.incident = {
2380
         postData.incidentQuery.incident = {
@@ -2361,6 +2385,7 @@ export class FuwutaiComponent implements OnInit {
2361
           "assignee": this.tool.getCurrentUserId(),
2385
           "assignee": this.tool.getCurrentUserId(),
2362
           "deleteFlag": 0,
2386
           "deleteFlag": 0,
2363
           "platform": 3,
2387
           "platform": 3,
2388
+					keyWord: keyWords
2364
         }
2389
         }
2365
       }
2390
       }
2366
     }
2391
     }
@@ -2716,7 +2741,7 @@ export class FuwutaiComponent implements OnInit {
2716
 	applicantMustFillIn:any; //申请人是否必填 1是,0否
2741
 	applicantMustFillIn:any; //申请人是否必填 1是,0否
2717
 	deptRepair:boolean = false; //科内报修
2742
 	deptRepair:boolean = false; //科内报修
2718
 	publicRepair:boolean = false; //公共报修
2743
 	publicRepair:boolean = false; //公共报修
2719
-	getSysConfig() {
2744
+	getSysConfig(type) {
2720
 		const postData = { idx: 0, sum: 99 };
2745
 		const postData = { idx: 0, sum: 99 };
2721
 		this.mainService
2746
 		this.mainService
2722
 			.getFetchDataList("simple/data", "systemConfiguration", postData)
2747
 			.getFetchDataList("simple/data", "systemConfiguration", postData)
@@ -2746,21 +2771,30 @@ export class FuwutaiComponent implements OnInit {
2746
 								case "hospitalModel":
2771
 								case "hospitalModel":
2747
 									this.hospitalModel = c[1]
2772
 									this.hospitalModel = c[1]
2748
 									if(this.hospitalModel==1){
2773
 									if(this.hospitalModel==1){
2749
-										this.incidentModel.hosId = this.tool.getCurrentHospital().id
2774
+										if(this.tool.getCurrentHospital().parent){
2775
+											this.incidentModel.hosId = this.tool.getCurrentHospital().parent.id
2776
+										}else{
2777
+											this.incidentModel.hosId = this.tool.getCurrentHospital().id
2778
+										}
2750
 									}
2779
 									}
2751
 									break;	
2780
 									break;	
2752
 								case "applicantMustFillIn":
2781
 								case "applicantMustFillIn":
2753
 									this.applicantMustFillIn = c[1]
2782
 									this.applicantMustFillIn = c[1]
2754
 									break;	
2783
 									break;	
2755
 							}
2784
 							}
2756
-							if(this.publicRepair && !this.deptRepair){
2757
-								this.incidentModel.repairIncidentType = 'public'
2758
-								this.isRelatedDepartment = false
2759
-							}
2760
-							if(!this.publicRepair && this.deptRepair){
2761
-								this.incidentModel.repairIncidentType = 'dept'
2785
+							if(type==1){
2786
+								if(this.publicRepair && !this.deptRepair){
2787
+									this.incidentModel.repairIncidentType = 'public'
2788
+									this.isRelatedDepartment = false
2789
+								}
2790
+								if(!this.publicRepair && this.deptRepair){
2791
+									this.incidentModel.repairIncidentType = 'dept'
2792
+								}
2762
 							}
2793
 							}
2763
 						});
2794
 						});
2795
+						if(this.hospitalModel==1){
2796
+							this.searchApplicationBuilding()
2797
+						}
2764
 					}
2798
 					}
2765
 				}
2799
 				}
2766
 			});
2800
 			});
@@ -2769,7 +2803,7 @@ export class FuwutaiComponent implements OnInit {
2769
   // 打开新建工单
2803
   // 打开新建工单
2770
   deathTasktypeId; //获取这个写死的任务类型的id,送病人回病房
2804
   deathTasktypeId; //获取这个写死的任务类型的id,送病人回病房
2771
   deathTasktypeIdPatient; //获取这个写死的任务类型的id,转出院记录
2805
   deathTasktypeIdPatient; //获取这个写死的任务类型的id,转出院记录
2772
-  async showNewOrder(des = '', phone = '', isInit = false, buildType = '') {
2806
+  async showNewOrder(type, des = '', phone = '', isInit = false, buildType = '') {
2773
     if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
2807
     if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
2774
       //进入弹窗,强制示忙
2808
       //进入弹窗,强制示忙
2775
       setTimeout(()=>{
2809
       setTimeout(()=>{
@@ -2784,15 +2818,15 @@ export class FuwutaiComponent implements OnInit {
2784
       }else{
2818
       }else{
2785
         this.resetOrderData2();
2819
         this.resetOrderData2();
2786
       }
2820
       }
2787
-			this.getSysConfig();
2821
+			this.getSysConfig(type);
2788
       this.searchApplicationHospital();
2822
       this.searchApplicationHospital();
2789
       this.searchApplicationCategory();
2823
       this.searchApplicationCategory();
2790
       this.searchApplicationPriority();
2824
       this.searchApplicationPriority();
2791
       this.searchApplicationSource();
2825
       this.searchApplicationSource();
2792
       this.getRepairIncidentType();
2826
       this.getRepairIncidentType();
2793
       isInit ? this.searchApplicationDepartment('itsm', undefined, undefined, undefined, true) : this.searchApplicationDepartment('itsm');
2827
       isInit ? this.searchApplicationDepartment('itsm', undefined, undefined, undefined, true) : this.searchApplicationDepartment('itsm');
2794
-      isInit && ((this.isRelatedDepartment && this.incidentModel.department) || (!this.isRelatedDepartment && this.incidentModel.hosId) || this.buildType === '报修转事件' ) && this.incidentModel.hosId && this.searchApplicationBuilding();
2795
-      isInit && this.incidentModel.area && this.searchApplicationFloor();
2828
+     	isInit && ((this.isRelatedDepartment && this.incidentModel.department) || (!this.isRelatedDepartment && this.incidentModel.hosId) || this.buildType === '报修转事件' ) && this.incidentModel.hosId && this.searchApplicationBuilding();
2829
+			isInit && this.incidentModel.area && this.searchApplicationFloor();
2796
       if(!this.hsmsData.hsmsSwitch){
2830
       if(!this.hsmsData.hsmsSwitch){
2797
         this.taskBuild = null;
2831
         this.taskBuild = null;
2798
         this.residenceNo = null;
2832
         this.residenceNo = null;
@@ -2851,7 +2885,6 @@ export class FuwutaiComponent implements OnInit {
2851
     this.applyDept = null;
2885
     this.applyDept = null;
2852
     this.countRemarkIndex = -1;
2886
     this.countRemarkIndex = -1;
2853
     this.incidentModel.department = isInit ? this.incidentModel.department : null;
2887
     this.incidentModel.department = isInit ? this.incidentModel.department : null;
2854
-    console.log(des);
2855
     if (des === "no") {
2888
     if (des === "no") {
2856
       //没绑定科室
2889
       //没绑定科室
2857
       this.searchApplicationDepartment("hsms", "", phone);
2890
       this.searchApplicationDepartment("hsms", "", phone);
@@ -2928,6 +2961,9 @@ export class FuwutaiComponent implements OnInit {
2928
     let preCurrentTabIndex = this.currentTabIndex;
2961
     let preCurrentTabIndex = this.currentTabIndex;
2929
     this.currentTabIndex = key;
2962
     this.currentTabIndex = key;
2930
 		console.log(1112233,this.currentTabIndex)
2963
 		console.log(1112233,this.currentTabIndex)
2964
+		if(this.buildType !== '报修转事件'){
2965
+			this.incidentModel.requester = null;
2966
+		}
2931
     this.radioValueQt = null;
2967
     this.radioValueQt = null;
2932
     this.startDeptQt = null;
2968
     this.startDeptQt = null;
2933
     this.endDeptQt = null;
2969
     this.endDeptQt = null;
@@ -2973,7 +3009,7 @@ export class FuwutaiComponent implements OnInit {
2973
     // }else
3009
     // }else
2974
 		 
3010
 		 
2975
 		 if(this.currentTabIndex === '故障报修'){
3011
 		 if(this.currentTabIndex === '故障报修'){
2976
-				this.incidentModel.department = null;
3012
+				// this.incidentModel.department = null;
2977
 				this.rightTitle_tab = [
3013
 				this.rightTitle_tab = [
2978
 					{ id: 2, name: '近期维修' },
3014
 					{ id: 2, name: '近期维修' },
2979
 					{ id: 3, name: '知识库' },
3015
 					{ id: 3, name: '知识库' },
@@ -3014,7 +3050,9 @@ export class FuwutaiComponent implements OnInit {
3014
 	}
3050
 	}
3015
 	
3051
 	
3016
 	// 选择省市区
3052
 	// 选择省市区
3053
+	selectProvince:boolean = false
3017
 	onProvinceChanges	(values: any): void {
3054
 	onProvinceChanges	(values: any): void {
3055
+		this.selectProvince = true;
3018
 		this.getZwOrders();
3056
 		this.getZwOrders();
3019
 	}
3057
 	}
3020
 	
3058
 	
@@ -3106,7 +3144,9 @@ export class FuwutaiComponent implements OnInit {
3106
 				that.initZwForm();
3144
 				that.initZwForm();
3107
 				if (data.status == 200) {
3145
 				if (data.status == 200) {
3108
 					this.getZwOrders();
3146
 					this.getZwOrders();
3147
+					this.selectProvince = false;
3109
 					this.newOrderShow = false;
3148
 					this.newOrderShow = false;
3149
+					this.itsmZwOrders = [];
3110
 					that.showPromptModal("新增", true, "");
3150
 					that.showPromptModal("新增", true, "");
3111
 				} else {
3151
 				} else {
3112
 					that.showPromptModal("新增", false, data.msg);
3152
 					that.showPromptModal("新增", false, data.msg);
@@ -3135,6 +3175,11 @@ export class FuwutaiComponent implements OnInit {
3135
       this.isLoadingPatient = false;
3175
       this.isLoadingPatient = false;
3136
       if (result["state"] == 200) {
3176
       if (result["state"] == 200) {
3137
         this.patientList = result["data"];
3177
         this.patientList = result["data"];
3178
+				if(this.deathTasktypeId != this.taskTypeId){
3179
+					// 患者信息自动带入
3180
+					let item = this.patientList.find(i=> i.id == this.patientCode)
3181
+					this.validateFormZy.controls.patient.setValue(item.patientCode+"");
3182
+				}
3138
         // if (this.patientList.length) {
3183
         // if (this.patientList.length) {
3139
         //   this.patientList = this.patientList.filter((item) => !!item.bednum);
3184
         //   this.patientList = this.patientList.filter((item) => !!item.bednum);
3140
         // }
3185
         // }
@@ -3312,13 +3357,35 @@ export class FuwutaiComponent implements OnInit {
3312
       });
3357
       });
3313
   }
3358
   }
3314
   // 修改申请人
3359
   // 修改申请人
3360
+	userPriorityDTO:any;
3315
   changeApplyRequester(e){
3361
   changeApplyRequester(e){
3316
-    console.log(e)
3317
     let userObj = this.applicationRequesterList.find(v => v.id == e);
3362
     let userObj = this.applicationRequesterList.find(v => v.id == e);
3363
+		console.log('选中的申请人',userObj)
3318
     // 选择申请人回显申请人电话
3364
     // 选择申请人回显申请人电话
3319
     if(userObj){
3365
     if(userObj){
3320
       this.incidentMsg.requesterPhone = userObj.phone;
3366
       this.incidentMsg.requesterPhone = userObj.phone;
3321
     }
3367
     }
3368
+		if(userObj.priorityDTO){
3369
+			this.userPriorityDTO = userObj.priorityDTO
3370
+		}
3371
+		let orders = [];
3372
+		if(this.deptPriorityDTO&&this.deptPriorityDTO.orders){
3373
+			orders.push(this.deptPriorityDTO.orders)
3374
+		}
3375
+		if(this.userPriorityDTO&&this.userPriorityDTO.orders){
3376
+			orders.push(this.userPriorityDTO.orders)
3377
+		}
3378
+		if(this.malPriorityDTO&&this.malPriorityDTO.orders){
3379
+			orders.push(this.malPriorityDTO.orders)
3380
+		}
3381
+		let minNumber = Math.min(...orders)
3382
+		console.log('最小值的orders', orders, minNumber)
3383
+		setTimeout(_=>{
3384
+			this.incidentModel.priorityId = minNumber || null
3385
+		})
3386
+		if(this.incidentModel.repairIncidentType === 'public'){
3387
+			this.getItsmOrders('')
3388
+		}
3322
   }
3389
   }
3323
   // 故障现象列表
3390
   // 故障现象列表
3324
   applicationCategoryList:any[] = [];
3391
   applicationCategoryList:any[] = [];
@@ -3351,8 +3418,8 @@ export class FuwutaiComponent implements OnInit {
3351
   }
3418
   }
3352
   // 修改故障现象
3419
   // 修改故障现象
3353
   incidentCategoryConfig:any = {};//当前匹配的故障现象规则
3420
   incidentCategoryConfig:any = {};//当前匹配的故障现象规则
3421
+	malPriorityDTO:any;
3354
   changeApplyCategory(e, isCoverage = false){
3422
   changeApplyCategory(e, isCoverage = false){
3355
-    console.log(e)
3356
     // 知识库
3423
     // 知识库
3357
     this.getKnowageList();
3424
     this.getKnowageList();
3358
     if(e && !isCoverage){
3425
     if(e && !isCoverage){
@@ -3363,6 +3430,7 @@ export class FuwutaiComponent implements OnInit {
3363
         this.incidentModel.description = this.applicationCategoryList.find(v => v.id == e).mutiCategory;
3430
         this.incidentModel.description = this.applicationCategoryList.find(v => v.id == e).mutiCategory;
3364
       }
3431
       }
3365
     }
3432
     }
3433
+		
3366
     // 根据院区和故障现象带出责任部门,优先级,维修人/组
3434
     // 根据院区和故障现象带出责任部门,优先级,维修人/组
3367
     if(this.incidentModel.hosId && e && this.buildType !== '编辑事件'){
3435
     if(this.incidentModel.hosId && e && this.buildType !== '编辑事件'){
3368
       let postData = {
3436
       let postData = {
@@ -3388,10 +3456,27 @@ export class FuwutaiComponent implements OnInit {
3388
             }else{
3456
             }else{
3389
               this.incidentCategoryConfig = {};
3457
               this.incidentCategoryConfig = {};
3390
             }
3458
             }
3391
-
3459
+						if(this.incidentCategoryConfig.priorityDTO){
3460
+							this.malPriorityDTO = this.incidentCategoryConfig.priorityDTO
3461
+						}
3462
+						let orders = [];
3463
+						if(this.deptPriorityDTO&&this.deptPriorityDTO.orders){
3464
+							orders.push(this.deptPriorityDTO.orders)
3465
+						}
3466
+						if(this.userPriorityDTO&&this.userPriorityDTO.orders){
3467
+							orders.push(this.userPriorityDTO.orders)
3468
+						}
3469
+						if(this.malPriorityDTO&&this.malPriorityDTO.orders){
3470
+							orders.push(this.malPriorityDTO.orders)
3471
+						}
3472
+						let minNumber = Math.min(...orders)
3473
+						console.log('最小值的orders', orders, minNumber)
3474
+						setTimeout(_=>{
3475
+							this.incidentModel.priorityId = minNumber || null
3476
+						})
3392
             // 根据院区和故障现象带出责任部门,优先级,维修人/组
3477
             // 根据院区和故障现象带出责任部门,优先级,维修人/组
3393
             this.incidentModel.duty = this.incidentCategoryConfig.dutyDTO;
3478
             this.incidentModel.duty = this.incidentCategoryConfig.dutyDTO;
3394
-            this.incidentModel.priorityId = this.incidentCategoryConfig.priority;
3479
+            // this.incidentModel.priorityId = this.incidentCategoryConfig.priority;
3395
 
3480
 
3396
             // 回显维修人/组
3481
             // 回显维修人/组
3397
             this.showGroupOrUser();
3482
             this.showGroupOrUser();
@@ -3417,6 +3502,7 @@ export class FuwutaiComponent implements OnInit {
3417
   // 弹窗确定
3502
   // 弹窗确定
3418
   confirmDirectOrderModelOrder(incidentModel){
3503
   confirmDirectOrderModelOrder(incidentModel){
3419
     console.log(incidentModel);
3504
     console.log(incidentModel);
3505
+		console.log(444,this.incidentModel.requester)
3420
     this.maskFlag = this.msg.loading("正在加载中..", {
3506
     this.maskFlag = this.msg.loading("正在加载中..", {
3421
       nzDuration: 0,
3507
       nzDuration: 0,
3422
     }).messageId;
3508
     }).messageId;
@@ -3714,12 +3800,12 @@ export class FuwutaiComponent implements OnInit {
3714
   }
3800
   }
3715
   // 选择报修类型
3801
   // 选择报修类型
3716
   changeRepairIncidentType(value){
3802
   changeRepairIncidentType(value){
3717
-    // this.incidentModel.department = undefined;
3803
+		// this.incidentModel.department = undefined;
3718
     this.incidentMsg.deptManyPhone = '';
3804
     this.incidentMsg.deptManyPhone = '';
3719
-
3805
+		this.incidentModel.requester = null;
3720
     this.isRelatedDepartment = value !== 'public';
3806
     this.isRelatedDepartment = value !== 'public';
3721
     this.changeApplyRelatedDepartment(this.isRelatedDepartment);
3807
     this.changeApplyRelatedDepartment(this.isRelatedDepartment);
3722
-		this.rightTitleHandler(this.rightTitle_tab[0].id);
3808
+		this.rightTitleHandler(2);
3723
   }
3809
   }
3724
   // 楼栋列表
3810
   // 楼栋列表
3725
   applicationBuildingList:any[] = [];
3811
   applicationBuildingList:any[] = [];
@@ -3798,7 +3884,7 @@ export class FuwutaiComponent implements OnInit {
3798
     if(!this.hsmsData.hsmsSwitch && !this.itsmData.mdv2Switch){
3884
     if(!this.hsmsData.hsmsSwitch && !this.itsmData.mdv2Switch){
3799
       return;
3885
       return;
3800
     }
3886
     }
3801
-		console.log(8787878787878,type)
3887
+		console.log(8787878787878,type, e)
3802
     let keyWord = "";
3888
     let keyWord = "";
3803
     if (e && e !== "&ks&" && e !== "&go&") {
3889
     if (e && e !== "&ks&" && e !== "&go&") {
3804
       keyWord = e;
3890
       keyWord = e;
@@ -3865,9 +3951,6 @@ export class FuwutaiComponent implements OnInit {
3865
             this.applicationDeptList = data.list;
3951
             this.applicationDeptList = data.list;
3866
             let ids = this.applicationDeptList.map(v => v.id);
3952
             let ids = this.applicationDeptList.map(v => v.id);
3867
             isInit && !ids.includes(this.incidentModel.department) && (this.applicationDeptList.unshift({id: this.incidentModel.department, dept: this.incidentMsg.deptName}))
3953
             isInit && !ids.includes(this.incidentModel.department) && (this.applicationDeptList.unshift({id: this.incidentModel.department, dept: this.incidentMsg.deptName}))
3868
-            console.log(this.applicationDeptList);
3869
-            console.log(this.incidentModel);
3870
-            console.log(this.incidentMsg);
3871
             deptId && this.changeApplyDept(deptId);
3954
             deptId && this.changeApplyDept(deptId);
3872
           }
3955
           }
3873
         }
3956
         }
@@ -3892,8 +3975,28 @@ export class FuwutaiComponent implements OnInit {
3892
     flag && this.searchApplicationUser()
3975
     flag && this.searchApplicationUser()
3893
   }
3976
   }
3894
   // 配送-选择科室
3977
   // 配送-选择科室
3978
+	deptPriorityDTO:any;
3895
   changeApply(e) {
3979
   changeApply(e) {
3896
-    console.log(e, this.applicationDepartmentList);
3980
+		let item = this.applicationDepartmentList.find(i=>i.id = e)
3981
+		console.log('选中的科室11111',item);
3982
+		if(item.priorityDTO){
3983
+			this.deptPriorityDTO = item.priorityDTO
3984
+		}
3985
+		let orders = [];
3986
+		if(this.deptPriorityDTO&&this.deptPriorityDTO.orders){
3987
+			orders.push(this.deptPriorityDTO.orders)
3988
+		}
3989
+		if(this.userPriorityDTO&&this.userPriorityDTO.orders){
3990
+			orders.push(this.userPriorityDTO.orders)
3991
+		}
3992
+		if(this.malPriorityDTO&&this.malPriorityDTO.orders){
3993
+			orders.push(this.malPriorityDTO.orders)
3994
+		}
3995
+		let minNumber = Math.min(...orders)
3996
+		console.log('最小值的orders', orders, minNumber)
3997
+		setTimeout(_=>{
3998
+			this.incidentModel.priorityId = minNumber || null
3999
+		})
3897
     this.changeApplicationDepartment("&same&");
4000
     this.changeApplicationDepartment("&same&");
3898
     this.defaultInspectFn();
4001
     this.defaultInspectFn();
3899
 
4002
 
@@ -4107,7 +4210,7 @@ export class FuwutaiComponent implements OnInit {
4107
   maskFlag:any = false;
4210
   maskFlag:any = false;
4108
   // 运维-直接解决
4211
   // 运维-直接解决
4109
   directOrder(){
4212
   directOrder(){
4110
-    if(this.publicRepair && this.applicantMustFillIn==1 && !this.incidentModel.requester){
4213
+    if(this.publicRepair && this.applicantMustFillIn==1 && !this.incidentModel.requester && this.buildType !== '报修转事件'){
4111
       this.msg.warning('请选择申请人!');
4214
       this.msg.warning('请选择申请人!');
4112
       return;
4215
       return;
4113
     }
4216
     }
@@ -4162,7 +4265,8 @@ export class FuwutaiComponent implements OnInit {
4162
   }
4265
   }
4163
   // 运维-建单并派单
4266
   // 运维-建单并派单
4164
   assignOrder(){
4267
   assignOrder(){
4165
-    if(this.publicRepair && this.applicantMustFillIn==1 && !this.incidentModel.requester){
4268
+		console.log(8888,this.incidentModel.requester)
4269
+    if(this.publicRepair && this.applicantMustFillIn==1 && !this.incidentModel.requester && this.buildType !== '报修转事件'){
4166
       this.msg.warning('请选择申请人!');
4270
       this.msg.warning('请选择申请人!');
4167
       return;
4271
       return;
4168
     }
4272
     }
@@ -4355,7 +4459,7 @@ export class FuwutaiComponent implements OnInit {
4355
 
4459
 
4356
   // 运维-保存
4460
   // 运维-保存
4357
   saveOrder(){
4461
   saveOrder(){
4358
-    if(this.publicRepair && this.applicantMustFillIn==1 && !this.incidentModel.requester){
4462
+    if(this.publicRepair && this.applicantMustFillIn==1 && !this.incidentModel.requester && this.buildType !== '报修转事件'){
4359
       this.msg.warning('请选择申请人!');
4463
       this.msg.warning('请选择申请人!');
4360
       return;
4464
       return;
4361
     }
4465
     }
@@ -4582,7 +4686,11 @@ export class FuwutaiComponent implements OnInit {
4582
           this.workTypesFlag = arr.length >= 5;
4686
           this.workTypesFlag = arr.length >= 5;
4583
           // 默认选中故障现象
4687
           // 默认选中故障现象
4584
           if (arr.length > 0) {
4688
           if (arr.length > 0) {
4585
-            isFirst ? this.tabClick(arr[0].key, isInit) : this.tabClick(arr[arr.length - 2].key, isInit);
4689
+						if(this.showGovDuty==1){
4690
+							isFirst ? this.tabClick(arr[0].key, isInit) : this.tabClick(arr[arr.length - 2].key, isInit);
4691
+						}else{
4692
+							isFirst ? this.tabClick(arr[0].key, isInit) : this.tabClick(arr[arr.length - 1].key, isInit);
4693
+						}
4586
           }
4694
           }
4587
         }
4695
         }
4588
       });
4696
       });
@@ -5286,6 +5394,9 @@ export class FuwutaiComponent implements OnInit {
5286
     }
5394
     }
5287
     this.newOrderShow = false;
5395
     this.newOrderShow = false;
5288
     this.newOrderShowOpen = false;
5396
     this.newOrderShowOpen = false;
5397
+		this.selectProvince = false;
5398
+		this.itsmZwOrders = [];
5399
+		this.patientCode = null;
5289
     this.currentTabIndex = "";
5400
     this.currentTabIndex = "";
5290
     this.fixedTab = "";
5401
     this.fixedTab = "";
5291
     this.fixedMenuShangla();
5402
     this.fixedMenuShangla();
@@ -5380,7 +5491,11 @@ export class FuwutaiComponent implements OnInit {
5380
   openDelModal(id, type) {
5491
   openDelModal(id, type) {
5381
     this.coopId = id;
5492
     this.coopId = id;
5382
     this.coopType = type;
5493
     this.coopType = type;
5383
-    this.delOrderShow = true;
5494
+		if(type=='hsms'){
5495
+			this.openReasonModal();
5496
+		}else{
5497
+			this.delOrderShow = true;
5498
+		}
5384
   }
5499
   }
5385
   // 确认删除
5500
   // 确认删除
5386
   confirmDel() {
5501
   confirmDel() {
@@ -5415,6 +5530,39 @@ export class FuwutaiComponent implements OnInit {
5415
   closeDelOrderModal() {
5530
   closeDelOrderModal() {
5416
     this.delOrderShow = false;
5531
     this.delOrderShow = false;
5417
   }
5532
   }
5533
+	
5534
+	// 打开删除模态框
5535
+	delReason:any;
5536
+	isDelVisible:boolean = false;
5537
+	openReasonModal() {
5538
+	  this.isDelVisible = true;
5539
+	}
5540
+	// 确认删除
5541
+	confirmDelOk() {
5542
+		if(!this.delReason){
5543
+			this.msg.error('删除原因不能为空')
5544
+			return
5545
+		}
5546
+	  let that = this;
5547
+	  that.btnLoading = true;
5548
+	  that.mainService.delWorkOrderWithReason(that.coopId, {
5549
+			delReason: this.delReason
5550
+		}).subscribe((data:any) => {
5551
+	    that.btnLoading = false;
5552
+	    that.delOrderModal();
5553
+	    if (data.status == 200) {
5554
+	      that.showPromptModal("删除", true, "");
5555
+	    } else {
5556
+	      that.showPromptModal("删除", false, data.msg);
5557
+	    }
5558
+	  });
5559
+	}
5560
+	
5561
+	// 关闭模态框
5562
+	delOrderModal() {
5563
+	  this.isDelVisible = false;
5564
+	}
5565
+	
5418
   // 新建工单
5566
   // 新建工单
5419
   // 提交选择转入科室的模态框
5567
   // 提交选择转入科室的模态框
5420
   submitFormHand(id) {
5568
   submitFormHand(id) {
@@ -5500,7 +5648,7 @@ export class FuwutaiComponent implements OnInit {
5500
 		this.confirmType = false;
5648
 		this.confirmType = false;
5501
 		if(this.goType=='&go&'){
5649
 		if(this.goType=='&go&'){
5502
 			console.log('fou222222')
5650
 			console.log('fou222222')
5503
-			this.showNewOrder("&go&");
5651
+			this.showNewOrder(1,"&go&");
5504
 			// this.showRepetitionModal("建单", true, "", "closeGo");
5652
 			// this.showRepetitionModal("建单", true, "", "closeGo");
5505
 		}
5653
 		}
5506
 	}
5654
 	}
@@ -5653,6 +5801,11 @@ export class FuwutaiComponent implements OnInit {
5653
 
5801
 
5654
   // 初始化展示形式
5802
   // 初始化展示形式
5655
   controlView:any = {}; //展示形式
5803
   controlView:any = {}; //展示形式
5804
+	leftMenuLocation:any = 2;
5805
+	rightMenuLocation:any = 2;
5806
+	showSource:any = 0;
5807
+	leftStyle:any;
5808
+	rightStyle:any;
5656
   initControlView() {
5809
   initControlView() {
5657
     let postData = {
5810
     let postData = {
5658
       controlView: {},
5811
       controlView: {},
@@ -5677,6 +5830,59 @@ export class FuwutaiComponent implements OnInit {
5677
         this.workerRefreshTime = this.workerInfoTime = this.controlView.workerInfoTime;
5830
         this.workerRefreshTime = this.workerInfoTime = this.controlView.workerInfoTime;
5678
         this.audioNotDispatched = this.controlView.unsendOrderVoice !== false;
5831
         this.audioNotDispatched = this.controlView.unsendOrderVoice !== false;
5679
         this.orderType = this.controlView.orderType || 'priority';
5832
         this.orderType = this.controlView.orderType || 'priority';
5833
+				this.leftMenuLocation = this.controlView.leftMenuLocation || 2
5834
+				this.rightMenuLocation = this.controlView.rightMenuLocation || 2
5835
+				this.showSource = this.controlView.showSource || 0
5836
+				if(this.leftMenuLocation==1){
5837
+					this.leftStyle = {
5838
+						'position': 'fixed',
5839
+						'top': '0',
5840
+						'left': '0',
5841
+						'z-index': '8',
5842
+						'border-radius': '5px 0 0 5px'
5843
+					}
5844
+				}else if(this.leftMenuLocation==2){
5845
+					this.leftStyle = {
5846
+						'position': 'fixed',
5847
+						'top': '40%',
5848
+						'left': '0',
5849
+						'z-index': '8',
5850
+						'border-radius': '5px 0 0 5px'
5851
+					}
5852
+				}else{
5853
+					this.leftStyle = {
5854
+						'position': 'fixed',
5855
+						'bottom': '0',
5856
+						'left': '0',
5857
+						'z-index': '8',
5858
+						'border-radius': '5px 0 0 5px'
5859
+					}
5860
+				}
5861
+				if(this.rightMenuLocation==1){
5862
+					this.rightStyle = {
5863
+						'position': 'fixed',
5864
+						'top': '0',
5865
+						'right': '0',
5866
+						'z-index': '8',
5867
+						'border-radius': '5px 0 0 5px'
5868
+					}
5869
+				}else if(this.rightMenuLocation==2){
5870
+					this.rightStyle = {
5871
+						'position': 'fixed',
5872
+						'top': '40%',
5873
+						'right': '0',
5874
+						'z-index': '8',
5875
+						'border-radius': '5px 0 0 5px'
5876
+					}
5877
+				}else{
5878
+					this.rightStyle = {
5879
+						'position': 'fixed',
5880
+						'bottom': '0',
5881
+						'right': '0',
5882
+						'z-index': '8',
5883
+						'border-radius': '5px 0 0 5px'
5884
+					}
5885
+				}
5680
         this.checkTab(this.typeId);
5886
         this.checkTab(this.typeId);
5681
 
5887
 
5682
         this.getOrderList(1);
5888
         this.getOrderList(1);
@@ -5750,10 +5956,10 @@ export class FuwutaiComponent implements OnInit {
5750
       this.newOrderShowOpen = false; //此时可出现新的弹窗
5956
       this.newOrderShowOpen = false; //此时可出现新的弹窗
5751
     } else if (e === "closeGo") {
5957
     } else if (e === "closeGo") {
5752
 			console.log(1111)
5958
 			console.log(1111)
5753
-      this.showNewOrder("&go&");
5959
+      this.showNewOrder(1, "&go&");
5754
     }else if(this.dataStatus==1000033 && this.goType=='&go&'){
5960
     }else if(this.dataStatus==1000033 && this.goType=='&go&'){
5755
 			console.log(2222)
5961
 			console.log(2222)
5756
-			this.showNewOrder("&go&");
5962
+			this.showNewOrder(1, "&go&");
5757
 		}
5963
 		}
5758
   }
5964
   }
5759
 	
5965
 	
@@ -6014,7 +6220,7 @@ export class FuwutaiComponent implements OnInit {
6014
     this.editOrder = cloneDeep(data);
6220
     this.editOrder = cloneDeep(data);
6015
     let incidentModel = cloneDeep(data);
6221
     let incidentModel = cloneDeep(data);
6016
     let incidentMsg:any = {};
6222
     let incidentMsg:any = {};
6017
-    console.log('data:', data)
6223
+		
6018
     // incidentModel.department && (this.applicationDeptList = [cloneDeep(incidentModel.department)]);
6224
     // incidentModel.department && (this.applicationDeptList = [cloneDeep(incidentModel.department)]);
6019
     incidentModel.department && (incidentMsg.deptManyPhone = incidentModel.department.manyPhone);
6225
     incidentModel.department && (incidentMsg.deptManyPhone = incidentModel.department.manyPhone);
6020
     incidentModel.department && (incidentMsg.deptName = incidentModel.department.dept);
6226
     incidentModel.department && (incidentMsg.deptName = incidentModel.department.dept);
@@ -6037,8 +6243,8 @@ export class FuwutaiComponent implements OnInit {
6037
     this.incidentModel.category && this.changeApplyCategory(this.incidentModel.category, true);
6243
     this.incidentModel.category && this.changeApplyCategory(this.incidentModel.category, true);
6038
     console.log('this.applicationDeptList:', this.applicationDeptList)
6244
     console.log('this.applicationDeptList:', this.applicationDeptList)
6039
     console.log('incidentModel:', incidentModel)
6245
     console.log('incidentModel:', incidentModel)
6040
-    this.showNewOrder('', '', true, '报修转事件');
6041
-
6246
+    this.showNewOrder(0, '', '', true, '报修转事件');
6247
+		console.log(2345,this.incidentModel.repairIncidentType)
6042
     // 查询报修图片
6248
     // 查询报修图片
6043
     this.getRepairImgs(data.id);
6249
     this.getRepairImgs(data.id);
6044
   }
6250
   }
@@ -6070,7 +6276,7 @@ export class FuwutaiComponent implements OnInit {
6070
     this.incidentMsg = incidentMsg;
6276
     this.incidentMsg = incidentMsg;
6071
     console.log('this.applicationDeptList:', this.applicationDeptList)
6277
     console.log('this.applicationDeptList:', this.applicationDeptList)
6072
     console.log('incidentModel:', incidentModel)
6278
     console.log('incidentModel:', incidentModel)
6073
-    this.showNewOrder('', '', true, '继续建单');
6279
+    this.showNewOrder(1, '', '', true, '继续建单');
6074
 
6280
 
6075
     // 查询报修图片
6281
     // 查询报修图片
6076
     this.getRepairImgs(data.id);
6282
     this.getRepairImgs(data.id);
@@ -6173,7 +6379,7 @@ export class FuwutaiComponent implements OnInit {
6173
     console.log('this.applicationRequesterList:', this.applicationRequesterList)
6379
     console.log('this.applicationRequesterList:', this.applicationRequesterList)
6174
     console.log('this.applicationDeptList:', this.applicationDeptList)
6380
     console.log('this.applicationDeptList:', this.applicationDeptList)
6175
     console.log('incidentModel:', incidentModel)
6381
     console.log('incidentModel:', incidentModel)
6176
-    this.showNewOrder('', '', true, '编辑事件');
6382
+    this.showNewOrder(1, '', '', true, '编辑事件');
6177
 
6383
 
6178
     // 查询报修图片
6384
     // 查询报修图片
6179
     this.getRepairImgs(data.id);
6385
     this.getRepairImgs(data.id);
@@ -6377,12 +6583,12 @@ export class FuwutaiComponent implements OnInit {
6377
                 this.incidentModel = incidentModel;
6583
                 this.incidentModel = incidentModel;
6378
                 console.log('this.incidentModel:', this.incidentModel)
6584
                 console.log('this.incidentModel:', this.incidentModel)
6379
                 this.incidentMsg = incidentMsg;
6585
                 this.incidentMsg = incidentMsg;
6380
-                this.showNewOrder('', '', true, '留言转事件');
6586
+                this.showNewOrder(1, '', '', true, '留言转事件');
6381
               } else {
6587
               } else {
6382
                 //没绑定科室
6588
                 //没绑定科室
6383
                 this.incidentModel = incidentModel;
6589
                 this.incidentModel = incidentModel;
6384
                 this.incidentMsg = incidentMsg;
6590
                 this.incidentMsg = incidentMsg;
6385
-                this.showNewOrder('', '', true, '留言转事件');
6591
+                this.showNewOrder(1, '', '', true, '留言转事件');
6386
               }
6592
               }
6387
             });
6593
             });
6388
           }
6594
           }

+ 20 - 13
src/app/views/hushijiandan/hushijiandan.component.html

@@ -596,7 +596,7 @@
596
                                               <nz-form-control nzErrorTip="请选择起点科室!">
596
                                               <nz-form-control nzErrorTip="请选择起点科室!">
597
                                                 <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
597
                                                 <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
598
                                                   <ng-container *ngFor="let option of buildMsg.start.start.list">
598
                                                   <ng-container *ngFor="let option of buildMsg.start.start.list">
599
-                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
599
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'" [nzValue]="option.id">
600
                                                     </nz-option>
600
                                                     </nz-option>
601
                                                   </ng-container>
601
                                                   </ng-container>
602
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
602
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -618,7 +618,7 @@
618
                                               <nz-form-control nzErrorTip="请选择目标科室!">
618
                                               <nz-form-control nzErrorTip="请选择目标科室!">
619
                                                 <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', buildMsg, $event)" nzAllowClear nzPlaceHolder="请选择目标科室">
619
                                                 <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', buildMsg, $event)" nzAllowClear nzPlaceHolder="请选择目标科室">
620
                                                   <ng-container *ngFor="let option of buildMsg.end.end.list">
620
                                                   <ng-container *ngFor="let option of buildMsg.end.end.list">
621
-                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
621
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'" [nzValue]="option.id">
622
                                                     </nz-option>
622
                                                     </nz-option>
623
                                                   </ng-container>
623
                                                   </ng-container>
624
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
624
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -640,7 +640,7 @@
640
                                               <nz-form-control nzErrorTip="请选择起点科室!">
640
                                               <nz-form-control nzErrorTip="请选择起点科室!">
641
                                                 <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
641
                                                 <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
642
                                                   <ng-container *ngFor="let option of buildMsg.start.start.list">
642
                                                   <ng-container *ngFor="let option of buildMsg.start.start.list">
643
-                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
643
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'" [nzValue]="option.id">
644
                                                     </nz-option>
644
                                                     </nz-option>
645
                                                   </ng-container>
645
                                                   </ng-container>
646
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
646
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -655,7 +655,7 @@
655
                                               <nz-form-control nzErrorTip="请选择目标科室!">
655
                                               <nz-form-control nzErrorTip="请选择目标科室!">
656
                                                 <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', buildMsg, $event)" nzPlaceHolder="请选择目标科室">
656
                                                 <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', buildMsg, $event)" nzPlaceHolder="请选择目标科室">
657
                                                   <ng-container *ngFor="let option of buildMsg.end.end.list">
657
                                                   <ng-container *ngFor="let option of buildMsg.end.end.list">
658
-                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
658
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'" [nzValue]="option.id">
659
                                                     </nz-option>
659
                                                     </nz-option>
660
                                                   </ng-container>
660
                                                   </ng-container>
661
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
661
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -1344,14 +1344,21 @@
1344
                                 ({{ item.drugs.packid }})
1344
                                 ({{ item.drugs.packid }})
1345
                               </ng-container>
1345
                               </ng-container>
1346
                               <ng-container *ngIf="item.goodsRemark">-{{ item.goodsRemark }}</ng-container>
1346
                               <ng-container *ngIf="item.goodsRemark">-{{ item.goodsRemark }}</ng-container>
1347
-                              <span *ngIf="item.patient && (item.taskType.associationType.value == 'patientTransport' || item.taskType.associationType.value == 'inspect')">
1348
-                                ({{ item.patient.patientName }})
1349
-                              </span>
1347
+                              
1350
                             </div>
1348
                             </div>
1349
+		
1351
                             <div nz-col nzSpan="12" class="col txtR">
1350
                             <div nz-col nzSpan="12" class="col txtR">
1352
                               {{ item.gdState.name }}
1351
                               {{ item.gdState.name }}
1353
                             </div>
1352
                             </div>
1354
                           </div>
1353
                           </div>
1354
+													<div class="row" nz-row>
1355
+														<span *ngIf="item.patient && (item.taskType.associationType.value == 'patientTransport' || item.taskType.associationType.value == 'inspect')">
1356
+														  {{ item.patient.patientName }}
1357
+														</span>
1358
+														<span *ngIf="item.patient && item.patient.bedNum">
1359
+															({{item.patient.bedNum || ''}})
1360
+														</span>
1361
+													</div>
1355
                           <div class="row" nz-row>
1362
                           <div class="row" nz-row>
1356
                             <div nz-col nzSpan="24" class="col txtL">
1363
                             <div nz-col nzSpan="24" class="col txtL">
1357
                               {{item.workOrderRemark}}
1364
                               {{item.workOrderRemark}}
@@ -1559,7 +1566,7 @@
1559
                 <nz-form-control [nzSpan]="20" nzErrorTip="请选择起点科室!">
1566
                 <nz-form-control [nzSpan]="20" nzErrorTip="请选择起点科室!">
1560
                   <nz-select formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', checkedShowMsg, $event)" nzPlaceHolder="请选择起点科室">
1567
                   <nz-select formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', checkedShowMsg, $event)" nzPlaceHolder="请选择起点科室">
1561
                     <ng-container *ngFor="let option of checkedShowMsg.start.start.list">
1568
                     <ng-container *ngFor="let option of checkedShowMsg.start.start.list">
1562
-                      <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id"></nz-option>
1569
+                      <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'" [nzValue]="option.id"></nz-option>
1563
                     </ng-container>
1570
                     </ng-container>
1564
                     <nz-option *ngIf="false" nzDisabled nzCustomContent>
1571
                     <nz-option *ngIf="false" nzDisabled nzCustomContent>
1565
                       <i nz-icon nzType="loading" class="loading-icon"></i>
1572
                       <i nz-icon nzType="loading" class="loading-icon"></i>
@@ -1587,7 +1594,7 @@
1587
                 <nz-form-control [nzSpan]="20" nzErrorTip="请选择目标科室!">
1594
                 <nz-form-control [nzSpan]="20" nzErrorTip="请选择目标科室!">
1588
                   <nz-select formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false"  [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', checkedShowMsg, $event)" nzPlaceHolder="请选择目标科室">
1595
                   <nz-select formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false"  [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', checkedShowMsg, $event)" nzPlaceHolder="请选择目标科室">
1589
                     <ng-container *ngFor="let option of checkedShowMsg.end.end.list">
1596
                     <ng-container *ngFor="let option of checkedShowMsg.end.end.list">
1590
-                      <nz-option [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id"></nz-option>
1597
+                      <nz-option [nzLabel]="deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'" [nzValue]="option.id"></nz-option>
1591
                     </ng-container>
1598
                     </ng-container>
1592
                   </nz-select>
1599
                   </nz-select>
1593
                 </nz-form-control>
1600
                 </nz-form-control>
@@ -1743,7 +1750,7 @@
1743
                   <nz-option
1750
                   <nz-option
1744
                     *ngIf="true"
1751
                     *ngIf="true"
1745
                     [nzLabel]="
1752
                     [nzLabel]="
1746
-                      deptDisplay == 2 ? option.deptalias : option.dept
1753
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1747
                     "
1754
                     "
1748
                     [nzValue]="option.id"
1755
                     [nzValue]="option.id"
1749
                   >
1756
                   >
@@ -1789,7 +1796,7 @@
1789
                   <nz-option
1796
                   <nz-option
1790
                     *ngIf="true"
1797
                     *ngIf="true"
1791
                     [nzLabel]="
1798
                     [nzLabel]="
1792
-                      deptDisplay == 2 ? option.deptalias : option.dept
1799
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1793
                     "
1800
                     "
1794
                     [nzValue]="option.id"
1801
                     [nzValue]="option.id"
1795
                   >
1802
                   >
@@ -1834,7 +1841,7 @@
1834
                   <nz-option
1841
                   <nz-option
1835
                     *ngIf="true"
1842
                     *ngIf="true"
1836
                     [nzLabel]="
1843
                     [nzLabel]="
1837
-                      deptDisplay == 2 ? option.deptalias : option.dept
1844
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1838
                     "
1845
                     "
1839
                     [nzValue]="option.id"
1846
                     [nzValue]="option.id"
1840
                   >
1847
                   >
@@ -1869,7 +1876,7 @@
1869
                   <nz-option
1876
                   <nz-option
1870
                     *ngIf="true"
1877
                     *ngIf="true"
1871
                     [nzLabel]="
1878
                     [nzLabel]="
1872
-                      deptDisplay == 2 ? option.deptalias : option.dept
1879
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1873
                     "
1880
                     "
1874
                     [nzValue]="option.id"
1881
                     [nzValue]="option.id"
1875
                   >
1882
                   >

+ 20 - 0
src/app/views/incident-management/incident-management.component.html

@@ -225,6 +225,26 @@
225
             </nz-radio-group>
225
             </nz-radio-group>
226
           </nz-form-control>
226
           </nz-form-control>
227
         </nz-form-item>
227
         </nz-form-item>
228
+				<nz-form-item>
229
+				  <nz-form-label [nzSpan]="5" nzFor="repairsUser">报修人</nz-form-label>
230
+				  <nz-form-control [nzSpan]="19" nzErrorTip="请选择报修人!">
231
+				    <nz-select class="formItem" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
232
+				    (nzOnSearch)="changeRepairsUser($event)" nzAllowClear nzPlaceHolder="请选择报修人" formControlName="repairsUser">
233
+				      <ng-container *ngFor="let option of repairsUserList">
234
+				        <nz-option *ngIf="!isLoading" [nzLabel]="option.name" [nzValue]="option.id"></nz-option>
235
+				      </ng-container>
236
+				      <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
237
+				        <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
238
+				      </nz-option>
239
+				    </nz-select>
240
+				  </nz-form-control>
241
+				</nz-form-item>
242
+				<nz-form-item>
243
+				  <nz-form-label [nzSpan]="5" nzFor="incomingPhone">来电号码</nz-form-label>
244
+				  <nz-form-control [nzSpan]="19" nzErrorTip="请输入来电号码!">
245
+						<input type="text" nz-input placeHolder="请输入来电号码" formControlName="incomingPhone">
246
+				  </nz-form-control>
247
+				</nz-form-item>
228
       </form>
248
       </form>
229
     </div>
249
     </div>
230
     <div class="display_flex justify-content_flex-center">
250
     <div class="display_flex justify-content_flex-center">

+ 36 - 3
src/app/views/incident-management/incident-management.component.ts

@@ -125,6 +125,7 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
125
     this.loading1 = true;
125
     this.loading1 = true;
126
     this.debounceSubject.next(true);
126
     this.debounceSubject.next(true);
127
     this.autoRefresh();
127
     this.autoRefresh();
128
+		this.getRepairsUser();
128
   }
129
   }
129
 
130
 
130
   ngOnDestroy(){
131
   ngOnDestroy(){
@@ -251,7 +252,28 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
251
         }
252
         }
252
       });
253
       });
253
   }
254
   }
254
-
255
+	
256
+	// 获取报修人
257
+	repairsUserList:any = [];
258
+	getRepairsUser(e?) {
259
+	  let that = this;
260
+	  let postData = {
261
+	    user: {
262
+	      name: e || "",
263
+	      hospital: { id: that.tool.getCurrentHospital().id },
264
+	    },
265
+	    idx: 0,
266
+	    sum: 20,
267
+	  };
268
+	  that.isLoading = true;
269
+	  that.mainService
270
+	    .getFetchDataList("data", "user", postData)
271
+	    .subscribe((data) => {
272
+	      that.isLoading = false;
273
+	      that.repairsUserList = data.list;
274
+	    });
275
+	}
276
+	
255
   onCalendarChangeDate(dateArr){
277
   onCalendarChangeDate(dateArr){
256
     console.log(dateArr)
278
     console.log(dateArr)
257
     if(dateArr.length == 2){
279
     if(dateArr.length == 2){
@@ -374,7 +396,9 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
374
         source: this.validateSearchForm.value.sourceValue ? { value: this.validateSearchForm.value.sourceValue } : undefined,
396
         source: this.validateSearchForm.value.sourceValue ? { value: this.validateSearchForm.value.sourceValue } : undefined,
375
         deleteFlag: this.validateSearchForm.value.deleteFlag,
397
         deleteFlag: this.validateSearchForm.value.deleteFlag,
376
 				busiParent: this.validateSearchForm.value.busiParent,
398
 				busiParent: this.validateSearchForm.value.busiParent,
399
+				requester: this.validateSearchForm.value.repairsUser ? { id: this.validateSearchForm.value.repairsUser } : undefined,
377
 				candidateGroupId: null,
400
 				candidateGroupId: null,
401
+				incomingPhone: this.validateSearchForm.value.incomingPhone || undefined
378
       },
402
       },
379
     };
403
     };
380
 
404
 
@@ -727,7 +751,9 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
727
         source: this.validateSearchForm.value.sourceValue ? { value: this.validateSearchForm.value.sourceValue } : undefined,
751
         source: this.validateSearchForm.value.sourceValue ? { value: this.validateSearchForm.value.sourceValue } : undefined,
728
         deleteFlag: this.validateSearchForm.value.deleteFlag,
752
         deleteFlag: this.validateSearchForm.value.deleteFlag,
729
 				busiParent: this.validateSearchForm.value.busiParent,
753
 				busiParent: this.validateSearchForm.value.busiParent,
730
-				candidateGroupId: undefined
754
+				requester: this.validateSearchForm.value.repairsUser ? { id: this.validateSearchForm.value.repairsUser } : undefined,
755
+				candidateGroupId: undefined,
756
+				incomingPhone: this.validateSearchForm.value.incomingPhone || undefined
731
       },
757
       },
732
     };
758
     };
733
 
759
 
@@ -800,7 +826,12 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
800
   changeUser(e, type) {
826
   changeUser(e, type) {
801
     this.searchTimer(this.getUsers, e, type);
827
     this.searchTimer(this.getUsers, e, type);
802
   }
828
   }
803
-
829
+	
830
+	// 人员边输边搜节流阀
831
+	changeRepairsUser(e, type) {
832
+	  this.searchTimer(this.getRepairsUser, e, type);
833
+	}
834
+	
804
   // 边输入边搜索节流阀
835
   // 边输入边搜索节流阀
805
   searchTimer(fun, e, type?) {
836
   searchTimer(fun, e, type?) {
806
     this.isLoading = true;
837
     this.isLoading = true;
@@ -869,6 +900,8 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
869
       deleteFlag: [0],
900
       deleteFlag: [0],
870
       sourceValue: [null],
901
       sourceValue: [null],
871
 			busiParent: [null],
902
 			busiParent: [null],
903
+			incomingPhone: [null],
904
+			repairsUser: [null],
872
     });
905
     });
873
   }
906
   }
874
 
907
 

+ 7 - 4
src/app/views/inspection-execute/inspection-execute.component.html

@@ -69,11 +69,11 @@
69
             <th nzWidth="9%">单号</th>
69
             <th nzWidth="9%">单号</th>
70
             <th nzWidth="9%">计划主题|批次号</th>
70
             <th nzWidth="9%">计划主题|批次号</th>
71
             <th nzWidth="9%">巡检点|巡检单</th>
71
             <th nzWidth="9%">巡检点|巡检单</th>
72
-            <th nzWidth="9%">截至时间</th>
72
+            <th nzWidth="13%">截至时间|完成时间</th>
73
             <th nzWidth="9%">签到方式</th>
73
             <th nzWidth="9%">签到方式</th>
74
             <th nzWidth="9%">执行人|组</th>
74
             <th nzWidth="9%">执行人|组</th>
75
-            <th nzWidth="9%">是否异常</th>
76
-            <th nzWidth="9%">状态</th>
75
+            <th nzWidth="7%">是否异常</th>
76
+            <th nzWidth="7%">状态</th>
77
             <th nzWidth="9%">故障单号|状态</th>
77
             <th nzWidth="9%">故障单号|状态</th>
78
             <th nzWidth="14%">操作</th>
78
             <th nzWidth="14%">操作</th>
79
           </tr>
79
           </tr>
@@ -84,7 +84,10 @@
84
             <td>{{data.code}}</td>
84
             <td>{{data.code}}</td>
85
             <td>{{data.inspectionDTO?.name}}<br>{{data.batchNo}}</td>
85
             <td>{{data.inspectionDTO?.name}}<br>{{data.batchNo}}</td>
86
             <td>{{data.inspectionNodeDTO?.name}}<br>{{data.inspectionDTO?.inspectionFormDTO?.name}}</td>
86
             <td>{{data.inspectionNodeDTO?.name}}<br>{{data.inspectionDTO?.inspectionFormDTO?.name}}</td>
87
-            <td>{{data.overtime | date:'yyyy-MM-dd HH:mm'}}</td>
87
+            <td>
88
+							<div>{{data.overtime | date:'yyyy-MM-dd HH:mm'}}</div>
89
+							<div>{{data.completeTime | date:'yyyy-MM-dd HH:mm'}}</div>
90
+						</td>
88
             <td>{{data.signType?.name}}</td>
91
             <td>{{data.signType?.name}}</td>
89
             <td>{{data.userDTO?.name || data.groupDTO?.groupName}}</td>
92
             <td>{{data.userDTO?.name || data.groupDTO?.groupName}}</td>
90
             <td [ngClass]="{ red: data.exception === 1 }">{{data.exception === 1 ? '是' : '否'}}</td>
93
             <td [ngClass]="{ red: data.exception === 1 }">{{data.exception === 1 ? '是' : '否'}}</td>

+ 15 - 0
src/app/views/login/login.component.ts

@@ -227,6 +227,7 @@ export class LoginComponent implements OnInit {
227
 		let mzbl = false;
227
 		let mzbl = false;
228
 		let bljjb = false;
228
 		let bljjb = false;
229
 		let blk = false;
229
 		let blk = false;
230
+		let web = false;
230
     let yfang = false;
231
     let yfang = false;
231
     roleMenus.forEach((e) => {
232
     roleMenus.forEach((e) => {
232
       if (e.link == "pharmacy") {
233
       if (e.link == "pharmacy") {
@@ -251,6 +252,9 @@ export class LoginComponent implements OnInit {
251
       } else if (e.link == "pathology") {
252
       } else if (e.link == "pathology") {
252
         blk = true;
253
         blk = true;
253
         console.log("病理科端");
254
         console.log("病理科端");
255
+      } else if (e.link == "webRepairs") {
256
+        web = true;
257
+        console.log("web报修");
254
       }
258
       }
255
       canLogin = true;
259
       canLogin = true;
256
     });
260
     });
@@ -343,6 +347,17 @@ export class LoginComponent implements OnInit {
343
       localStorage.setItem("user", JSON.stringify(data.user));
347
       localStorage.setItem("user", JSON.stringify(data.user));
344
       this.router.navigateByUrl("/pathology");
348
       this.router.navigateByUrl("/pathology");
345
       return;
349
       return;
350
+    }else if (web) {
351
+      // web报修
352
+      if (successLoginMsg) {
353
+        this.msg.success("登录成功!", {
354
+          nzDuration: 1000,
355
+        });
356
+      }
357
+      successLoginMsg = false;
358
+      localStorage.setItem("user", JSON.stringify(data.user));
359
+      this.router.navigateByUrl("/webRepairs");
360
+      return;
346
     }else if (yfang) {
361
     }else if (yfang) {
347
       // 药房端2
362
       // 药房端2
348
       if (successLoginMsg) {
363
       if (successLoginMsg) {

+ 2 - 2
src/app/views/main/main.component.html

@@ -255,7 +255,7 @@
255
 										</nz-select>
255
 										</nz-select>
256
 									</div>
256
 									</div>
257
 									<div class="col flex7">
257
 									<div class="col flex7">
258
-										<input class="addressFocus" nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" (focus)="focusAddress()" />
258
+										<input class="addressFocus" nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" />
259
 										<div class="addressList" *ngIf="isShowAddressList">
259
 										<div class="addressList" *ngIf="isShowAddressList">
260
 											<ng-container *ngIf="!addressLoading && addressList.length">
260
 											<ng-container *ngIf="!addressLoading && addressList.length">
261
 												<div class="addressItem ellipsis-oneline" *ngFor="let item of addressList" [title]="item.name" (click)="selectAddress(item.name)">{{item.name}}</div>
261
 												<div class="addressItem ellipsis-oneline" *ngFor="let item of addressList" [title]="item.name" (click)="selectAddress(item.name)">{{item.name}}</div>
@@ -412,7 +412,7 @@
412
 			<div nz-col nzSpan="9" class="col right">
412
 			<div nz-col nzSpan="9" class="col right">
413
 				<div class="rightTitle">
413
 				<div class="rightTitle">
414
 					<div class="rightTitle_tab" [class.active]="currentRTab == tab.id" *ngFor="let tab of rightTitle_tab;" (click)="rightTitleHandler(tab.id)">{{ tab.name }}</div>
414
 					<div class="rightTitle_tab" [class.active]="currentRTab == tab.id" *ngFor="let tab of rightTitle_tab;" (click)="rightTitleHandler(tab.id)">{{ tab.name }}</div>
415
-					<span class="toLastTime1"><span class="time" *ngIf="applyDept">{{ orderRefreshTime }}s</span></span>
415
+					<span class="toLastTime1"><span class="time" *ngIf="applyDept || incidentModel.requester">{{ orderRefreshTime }}s</span></span>
416
 				</div>
416
 				</div>
417
 				<!-- 近期配送 start -->
417
 				<!-- 近期配送 start -->
418
 				<div class="cots_body weifenpai" *ngIf="currentRTab == 0" [ngClass]="{ top185: hurseInfoHiding != 1 }">
418
 				<div class="cots_body weifenpai" *ngIf="currentRTab == 0" [ngClass]="{ top185: hurseInfoHiding != 1 }">

+ 54 - 43
src/app/views/main/main.component.ts

@@ -292,11 +292,6 @@ export class MainComponent implements OnInit {
292
   }
292
   }
293
   initMenu() {
293
   initMenu() {
294
     let menus = JSON.parse(localStorage.getItem("menu"));
294
     let menus = JSON.parse(localStorage.getItem("menu"));
295
-		let scopeInfo = this.userInfo.user.scope;
296
-		if (scopeInfo.mdv2Switch === 1 || scopeInfo.hsmsSwitch === 1) {
297
-		  this.speediness = true;
298
-		  console.log("新增报修权限");
299
-		}
300
     let arr = [];
295
     let arr = [];
301
     menus.forEach((e) => {
296
     menus.forEach((e) => {
302
       if (e.link == "nurse") {
297
       if (e.link == "nurse") {
@@ -383,6 +378,16 @@ export class MainComponent implements OnInit {
383
 			  this.webRepairs = true;
378
 			  this.webRepairs = true;
384
 			  console.log("PC上下班");
379
 			  console.log("PC上下班");
385
 			}
380
 			}
381
+			if (e.title == "故障管理") {
382
+				let item = e.childrens.find(i=>i.link=="incidentManagement")
383
+				if(item){
384
+					let item2 = item.childrens.find(i=>i.link=="add")
385
+					if(item2){
386
+						this.speediness = true
387
+						console.log("新增故障工单权限");
388
+					}
389
+				}
390
+			}
386
       if (!e.link) {
391
       if (!e.link) {
387
         arr.push(e);
392
         arr.push(e);
388
       }
393
       }
@@ -921,14 +926,17 @@ export class MainComponent implements OnInit {
921
 	loading6 = false;
926
 	loading6 = false;
922
 	itsmOrders:any[] = [];
927
 	itsmOrders:any[] = [];
923
 	getItsmOrders(id) {
928
 	getItsmOrders(id) {
924
-	  // if(!this.itsmData.mdv2Switch){
925
-	  //   return;
926
-	  // }
927
-	  if (id == -1 || id === null || id === undefined) {
929
+	  if(!this.itsmData.mdv2Switch){
930
+	    return;
931
+	  }
932
+	  if (id == -1 || id === null || id === undefined && this.incidentModel.repairIncidentType === 'dept') {
928
 	    this.itsmOrders = [];
933
 	    this.itsmOrders = [];
929
 	    return;
934
 	    return;
930
 	  }
935
 	  }
931
-	
936
+	  if(!this.incidentModel.department && this.incidentModel.repairIncidentType === 'dept'){
937
+	  	this.itsmOrders = [];
938
+	  	return;
939
+	  }
932
 	  let postData = {
940
 	  let postData = {
933
 	    incident: {
941
 	    incident: {
934
 	      "deleteFlag": 0,
942
 	      "deleteFlag": 0,
@@ -936,10 +944,23 @@ export class MainComponent implements OnInit {
936
 	      department: {
944
 	      department: {
937
 	        id,
945
 	        id,
938
 	      },
946
 	      },
947
+	  		requester:{
948
+	  			id:null
949
+	  		}
939
 	    },
950
 	    },
940
 	    idx: 0,
951
 	    idx: 0,
941
 	    sum: 6,
952
 	    sum: 6,
942
 	  };
953
 	  };
954
+	  if(this.incidentModel.repairIncidentType === 'public'){
955
+	  	if(!this.incidentModel.requester){
956
+	  		this.itsmOrders = [];
957
+	  		return
958
+	  	}
959
+	  	postData.incident.requester.id = this.incidentModel.requester || null
960
+			delete postData.incident.department
961
+		}else{
962
+	  	delete postData.incident.requester
963
+	  }
943
 	  this.loading6 = true;
964
 	  this.loading6 = true;
944
 	  this.mainService
965
 	  this.mainService
945
 	    .getFetchDataList("simple/data", "incident", postData)
966
 	    .getFetchDataList("simple/data", "incident", postData)
@@ -1086,7 +1107,7 @@ export class MainComponent implements OnInit {
1086
 	// 院区列表
1107
 	// 院区列表
1087
 	applicationHospitalList:any[] = [];
1108
 	applicationHospitalList:any[] = [];
1088
 	searchApplicationHospital() {
1109
 	searchApplicationHospital() {
1089
-		this.applicationHospitalList = this.tool.getHospitalList();
1110
+		this.applicationHospitalList = this.tool.getHospitalList().filter(i=> !i.parent && !i.type);
1090
 		this.incidentModel.hosId = this.currentHospital.id;
1111
 		this.incidentModel.hosId = this.currentHospital.id;
1091
 	  // let dataObj = {
1112
 	  // let dataObj = {
1092
 	  //   idx: 0,
1113
 	  //   idx: 0,
@@ -1211,6 +1232,9 @@ export class MainComponent implements OnInit {
1211
 	  if(userObj){
1232
 	  if(userObj){
1212
 	    this.incidentMsg.requesterPhone = userObj.phone;
1233
 	    this.incidentMsg.requesterPhone = userObj.phone;
1213
 	  }
1234
 	  }
1235
+		if(this.incidentModel.repairIncidentType === 'public'){
1236
+			this.getItsmOrders('')
1237
+		}
1214
 	}
1238
 	}
1215
 	// 故障现象列表
1239
 	// 故障现象列表
1216
 	applicationCategoryList:any[] = [];
1240
 	applicationCategoryList:any[] = [];
@@ -1226,7 +1250,7 @@ export class MainComponent implements OnInit {
1226
 	  // }
1250
 	  // }
1227
 	  let postData = {
1251
 	  let postData = {
1228
 	    category: {
1252
 	    category: {
1229
-				hosId: this.currentHospital.id,
1253
+				// hosId: this.currentHospital.id,
1230
 	      category: keyWord,
1254
 	      category: keyWord,
1231
 	      selectType: 'mutlQuery',
1255
 	      selectType: 'mutlQuery',
1232
 	      hierarchy: 3,//只差有三级的故障现象列表
1256
 	      hierarchy: 3,//只差有三级的故障现象列表
@@ -1611,11 +1635,12 @@ export class MainComponent implements OnInit {
1611
 	}
1635
 	}
1612
 	// 选择报修类型
1636
 	// 选择报修类型
1613
 	changeRepairIncidentType(value){
1637
 	changeRepairIncidentType(value){
1614
-	  this.incidentModel.department = undefined;
1638
+	  // this.incidentModel.department = undefined;
1615
 	  this.incidentMsg.deptManyPhone = '';
1639
 	  this.incidentMsg.deptManyPhone = '';
1616
-	
1640
+		this.incidentModel.requester = null;
1617
 	  this.isRelatedDepartment = value !== 'public';
1641
 	  this.isRelatedDepartment = value !== 'public';
1618
 	  this.changeApplyRelatedDepartment(this.isRelatedDepartment);
1642
 	  this.changeApplyRelatedDepartment(this.isRelatedDepartment);
1643
+		this.rightTitleHandler(2);
1619
 	}
1644
 	}
1620
 	// 楼栋列表
1645
 	// 楼栋列表
1621
 	applicationBuildingList:any[] = [];
1646
 	applicationBuildingList:any[] = [];
@@ -3885,6 +3910,14 @@ export class MainComponent implements OnInit {
3885
 						if(!this.publicRepair && this.deptRepair){
3910
 						if(!this.publicRepair && this.deptRepair){
3886
 							this.incidentModel.repairIncidentType = 'dept'
3911
 							this.incidentModel.repairIncidentType = 'dept'
3887
 						}
3912
 						}
3913
+						if(this.hospitalModel==1){
3914
+							if(this.tool.getCurrentHospital().parent){
3915
+								this.incidentModel.hosId = this.tool.getCurrentHospital().parent.id
3916
+							}else{
3917
+								this.incidentModel.hosId = this.tool.getCurrentHospital().id
3918
+							}
3919
+							this.searchApplicationBuilding()
3920
+						}
3888
 					}
3921
 					}
3889
 				}
3922
 				}
3890
 			});
3923
 			});
@@ -3893,35 +3926,13 @@ export class MainComponent implements OnInit {
3893
 	// 新增报修
3926
 	// 新增报修
3894
 	speedinessAdd(): void {
3927
 	speedinessAdd(): void {
3895
 		this.addOrder();
3928
 		this.addOrder();
3896
-		let preCurrentTabIndex = this.currentTabIndex;
3897
-		if(preCurrentTabIndex === '故障报修'){
3898
-		  if(this.applyDept){
3899
-		    this.rightTitle_tab = [
3900
-		      { id: 0, name: '近期配送' },
3901
-		      // { id: 1, name: '转出院记录' },
3902
-		    ]
3903
-		    this.rightTitleHandler(this.rightTitle_tab[0].id);
3904
-		  }
3905
-		  let deptObj = this.applicationDeptList.find(v => v.id == this.incidentModel.department);
3906
-		  if(this.applyDept != this.incidentModel.department){
3907
-		    this.applyDept = this.incidentModel.department;
3908
-		    this.searchApplicationDepartment('hsms', deptObj ? deptObj.dept : '', undefined, this.incidentModel.department);
3909
-		  }
3910
-		}else if(this.currentTabIndex === '故障报修'){
3911
-		  if(this.incidentModel.department){
3912
-		    this.rightTitle_tab = [
3913
-		      { id: 2, name: '近期维修' },
3914
-		      { id: 3, name: '知识库' },
3915
-		    ]
3916
-		    this.rightTitleHandler(this.rightTitle_tab[0].id);
3917
-		  }
3918
-			
3919
-		  let deptObj = this.applicationDepartmentList.find(v => v.id == this.applyDept);
3920
-			
3921
-		  if(this.incidentModel.department != this.applyDept && !this.buildType){
3922
-		    this.incidentModel.department = this.applyDept;
3923
-		    this.searchApplicationDepartment('itsm', deptObj ? deptObj.dept : '', undefined, this.applyDept);
3924
-		  }
3929
+		if(this.currentTabIndex === '故障报修'){
3930
+				this.incidentModel.department = null;
3931
+		  	this.rightTitle_tab = [
3932
+		  		{ id: 2, name: '近期维修' },
3933
+		  		{ id: 3, name: '知识库' },
3934
+		  	]
3935
+		  	this.rightTitleHandler(this.rightTitle_tab[0].id);
3925
 		}
3936
 		}
3926
 	}
3937
 	}
3927
 	
3938
 	

+ 14 - 2
src/app/views/questionnaire-answer/questionnaire-answer.component.html

@@ -1,9 +1,20 @@
1
 <div class="list-template">
1
 <div class="list-template">
2
   <div class="list-template__content">
2
   <div class="list-template__content">
3
     <div class="list-template__top" nz-row>
3
     <div class="list-template__top" nz-row>
4
-      <div nz-col nzXl="18" class="list-template__searchBox"></div>
4
+      <div nz-col nzXl="18" class="list-template__searchBox">
5
+				<div class="list-template__searchItem">
6
+				  <span class="label width-105">登记时间区间:</span>
7
+				  <nz-range-picker nzShowTime [(ngModel)]="dateRange" (ngModelChange)="changeDate($event)"></nz-range-picker>
8
+				</div>
9
+				<nz-select [(ngModel)]="monthValue" nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="changeMonth($event)">
10
+					<nz-option nzValue="1" nzLabel="本月"></nz-option>
11
+					<nz-option nzValue="2" nzLabel="上月"></nz-option>
12
+				</nz-select>
13
+			</div>
5
       <div nz-col nzLg="6" class="list-template__btns">
14
       <div nz-col nzLg="6" class="list-template__btns">
6
-        <button nz-button class="btn default" (click)='export()' [nzLoading]="loading2">导出</button>
15
+				<button nz-button class="btn default" (click)='getList(1)'>搜索</button>
16
+				<button nz-button class="btn default ml8" (click)='reset()'>重置</button>
17
+        <button nz-button class="btn default ml8" (click)='export()' [nzLoading]="loading2">导出</button>
7
       </div>
18
       </div>
8
     </div>
19
     </div>
9
     <div class="list-template__bottom">
20
     <div class="list-template__bottom">
@@ -30,6 +41,7 @@
30
 						<td *ngFor="let item of data">
41
 						<td *ngFor="let item of data">
31
 							{{ item.answer }}
42
 							{{ item.answer }}
32
 						</td>
43
 						</td>
44
+						<td>{{data[0].addTime | date:'yyyy-MM-dd HH:mm:ss'}}</td>
33
           </tr>
45
           </tr>
34
         </tbody>
46
         </tbody>
35
       </nz-table>
47
       </nz-table>

+ 8 - 0
src/app/views/questionnaire-answer/questionnaire-answer.component.less

@@ -6,6 +6,14 @@
6
   }
6
   }
7
 }
7
 }
8
 
8
 
9
+.width-105{
10
+	width: 105px !important;
11
+}
12
+
13
+.ant-select{
14
+	width: 120px !important;
15
+}
16
+
9
 .save {
17
 .save {
10
   position: fixed;
18
   position: fixed;
11
   left: 0;
19
   left: 0;

+ 52 - 2
src/app/views/questionnaire-answer/questionnaire-answer.component.ts

@@ -4,6 +4,9 @@ import { MainService } from "../../services/main.service";
4
 import { ToolService } from "../../services/tool.service";
4
 import { ToolService } from "../../services/tool.service";
5
 import { NzMessageService } from 'ng-zorro-antd';
5
 import { NzMessageService } from 'ng-zorro-antd';
6
 import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';
6
 import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';
7
+import { format, startOfDay, endOfDay } from 'date-fns';
8
+import { DateService } from 'src/app/services/date.service';
9
+
7
 @Component({
10
 @Component({
8
   selector: "app-questionnaire-answer",
11
   selector: "app-questionnaire-answer",
9
   templateUrl: "./questionnaire-answer.component.html",
12
   templateUrl: "./questionnaire-answer.component.html",
@@ -15,7 +18,8 @@ export class QuestionnaireAnswerComponent implements OnInit {
15
     private route: ActivatedRoute,
18
     private route: ActivatedRoute,
16
     private router: Router,
19
     private router: Router,
17
     private tool: ToolService,
20
     private tool: ToolService,
18
-    private message: NzMessageService
21
+    private message: NzMessageService,
22
+		private dateService: DateService,
19
   ) {}
23
   ) {}
20
 
24
 
21
   userInfo: any = JSON.parse(localStorage.getItem("user")) || {}; //登录用户信息
25
   userInfo: any = JSON.parse(localStorage.getItem("user")) || {}; //登录用户信息
@@ -41,6 +45,8 @@ export class QuestionnaireAnswerComponent implements OnInit {
41
       idx: 0,
45
       idx: 0,
42
       sum: 99999,
46
       sum: 99999,
43
       qmId: this.route.snapshot.queryParams.id,
47
       qmId: this.route.snapshot.queryParams.id,
48
+			startTime: this.startDate || undefined,
49
+			endTime: this.endDate || undefined,
44
     };
50
     };
45
     this.loading2 = true;
51
     this.loading2 = true;
46
     this.mainService.exportReport("survey", postData).subscribe(
52
     this.mainService.exportReport("survey", postData).subscribe(
@@ -65,6 +71,48 @@ export class QuestionnaireAnswerComponent implements OnInit {
65
       }
71
       }
66
     );
72
     );
67
   }
73
   }
74
+	
75
+	// 日期选择
76
+	startDate: string; //发起时间开始
77
+	endDate: string; //发起时间结束
78
+	dateRange: any = [];
79
+	changeDate(result?): void {
80
+	  if (result.length==0) {
81
+	    this.startDate = this.endDate = null;
82
+	    return;
83
+	  }
84
+		this.startDate = format(result[0], 'yyyy-MM-dd HH:mm:ss');
85
+		this.endDate = format(result[1], 'yyyy-MM-dd HH:mm:ss');
86
+	  this.dateRange = [this.startDate,this.endDate]
87
+	}
88
+	
89
+	monthValue:any;
90
+	// 快捷选择 1:本月 2:上月
91
+	changeMonth(e){
92
+		if(e==2){
93
+			let lastmonthstartdate = this.dateService.date().lastMonthStartDate;
94
+			let lastmonthenddate = this.dateService.date().lastMonthEndDate;
95
+			this.startDate = format(lastmonthstartdate, 'yyyy-MM-dd HH:mm:ss');
96
+			this.endDate = format(lastmonthenddate, 'yyyy-MM-dd HH:mm:ss');
97
+			this.dateRange = [this.startDate,this.endDate]
98
+		}else{
99
+			let thismonthstartdate = this.dateService.date().thisMonthStartDate;
100
+			let thismonthenddate = this.dateService.date().thisMonthEndDate;
101
+			this.startDate = format(thismonthstartdate, 'yyyy-MM-dd HH:mm:ss');
102
+			this.endDate = format(thismonthenddate, 'yyyy-MM-dd HH:mm:ss');
103
+			this.dateRange = [this.startDate,this.endDate]
104
+		}
105
+	}
106
+	
107
+	// 重置
108
+	reset(){
109
+		this.pageIndex = 1;
110
+		this.startDate = null;
111
+		this.endDate = null;
112
+		this.dateRange = []
113
+		this.getList(1);
114
+	}
115
+	
68
   // 表格数据
116
   // 表格数据
69
   loading1 = false;
117
   loading1 = false;
70
   getList(type) {
118
   getList(type) {
@@ -74,7 +122,9 @@ export class QuestionnaireAnswerComponent implements OnInit {
74
     let postData = {
122
     let postData = {
75
       idx: this.pageIndex - 1,
123
       idx: this.pageIndex - 1,
76
       sum: this.pageSize,
124
       sum: this.pageSize,
77
-      qmId: this.route.snapshot.queryParams.id
125
+      qmId: this.route.snapshot.queryParams.id,
126
+			startTime: this.startDate || undefined,
127
+			endTime: this.endDate || undefined,
78
     };
128
     };
79
     this.loading1 = true;
129
     this.loading1 = true;
80
     this.mainService
130
     this.mainService

+ 3 - 3
src/app/views/task-type-management/task-type-management.component.less

@@ -738,17 +738,17 @@
738
   display: flex;
738
   display: flex;
739
   justify-content: center;
739
   justify-content: center;
740
   align-items: center;
740
   align-items: center;
741
-  z-index: 10;
741
+  z-index: 99;
742
 
742
 
743
   .modalBody {
743
   .modalBody {
744
-    width: 480px; // height: 580px;
744
+    width: 70%; // height: 580px;
745
     background: #fff;
745
     background: #fff;
746
     border-radius: 5px;
746
     border-radius: 5px;
747
     padding: 12px 20px;
747
     padding: 12px 20px;
748
     color: #333;
748
     color: #333;
749
     font-size: 14px;
749
     font-size: 14px;
750
     .fixHieght {
750
     .fixHieght {
751
-      max-height: 400px;
751
+      max-height: calc(100vh - 200px);
752
       overflow-y: auto;
752
       overflow-y: auto;
753
     }
753
     }
754
 
754
 

+ 9 - 5
src/app/views/users-management/users-management.component.html

@@ -47,6 +47,9 @@
47
         <button nz-button *ngIf="coopBtns.import" class="btn ml8 default" (click)="excelImport()">导入</button>
47
         <button nz-button *ngIf="coopBtns.import" class="btn ml8 default" (click)="excelImport()">导入</button>
48
       </div>
48
       </div>
49
     </div>
49
     </div>
50
+		<div class="list-template__checkBoxes">
51
+		  <nz-checkbox-group [(ngModel)]="checkOptionsOne" (ngModelChange)="log(checkOptionsOne)"></nz-checkbox-group>
52
+		</div>
50
     <div class="list-template__bottom">
53
     <div class="list-template__bottom">
51
       <nz-table class="list-template__nzTable" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false"
54
       <nz-table class="list-template__nzTable" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false"
52
         [nzLoading]="loading1">
55
         [nzLoading]="loading1">
@@ -88,10 +91,11 @@
88
             <td>{{ data.usertype ? data.usertype.name : '' }}</td>
91
             <td>{{ data.usertype ? data.usertype.name : '' }}</td>
89
             <td>
92
             <td>
90
               <div class="coop">
93
               <div class="coop">
91
-                <span *ngIf="coopBtns.look" (click)="detail(data.id)">查看</span>
92
-                <span *ngIf="coopBtns.edit" (click)="edit(data)">编辑</span>
93
-                <span *ngIf="coopBtns.del" (click)="del(data)">删除</span>
94
-                <span *ngIf="coopBtns.resetPwd" (click)="resetPwd(data)">重置密码</span>
94
+                <span *ngIf="coopBtns.look && !checkOptionsOne[0].checked" (click)="detail(data.id)">查看</span>
95
+                <span *ngIf="coopBtns.edit || checkOptionsOne[0].checked" (click)="edit(data)">编辑</span>
96
+								<span *ngIf="checkOptionsOne[0].checked" (click)="recover(data)">恢复</span>
97
+                <span *ngIf="coopBtns.del && !checkOptionsOne[0].checked" (click)="del(data)">删除</span>
98
+                <span *ngIf="coopBtns.resetPwd && !checkOptionsOne[0].checked" (click)="resetPwd(data)">重置密码</span>
95
               </div>
99
               </div>
96
             </td>
100
             </td>
97
           </tr>
101
           </tr>
@@ -261,7 +265,7 @@
261
 
265
 
262
 <!-- 恢复账号 -->
266
 <!-- 恢复账号 -->
263
 <app-dialog-delete [delModal]="recoverModal" (hideDelModalEvent)="hideRecoverModal()" [btnLoading]="recoverLoading"
267
 <app-dialog-delete [delModal]="recoverModal" (hideDelModalEvent)="hideRecoverModal()" [btnLoading]="recoverLoading"
264
-  (confirmDelEvent)="confirmRecover()" [content]="recoverContent" [isShowConfirm]="false">
268
+  (confirmDelEvent)="confirmRecover()" content="您确认恢复此用户吗?" confirmTxt="是" cancelTxt="否">
265
 </app-dialog-delete>
269
 </app-dialog-delete>
266
 
270
 
267
 <!-- 重置密码模态框 -->
271
 <!-- 重置密码模态框 -->

+ 26 - 16
src/app/views/users-management/users-management.component.ts

@@ -68,7 +68,10 @@ export class UsersManagementComponent implements OnInit {
68
   wxRequired = false; //新增或编辑用户的时候,微信号是否必填
68
   wxRequired = false; //新增或编辑用户的时候,微信号是否必填
69
   changeInpSubject = new Subject(); //防抖
69
   changeInpSubject = new Subject(); //防抖
70
   changeInpCompanySubject = new Subject(); //防抖
70
   changeInpCompanySubject = new Subject(); //防抖
71
-
71
+	checkOptionsOne: Array<any> = [
72
+	  { label: "已删除", value: "0", checked: false },
73
+	];
74
+	
72
   ngOnInit() {
75
   ngOnInit() {
73
     //防抖
76
     //防抖
74
     this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
77
     this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
@@ -164,6 +167,21 @@ export class UsersManagementComponent implements OnInit {
164
       );
167
       );
165
   }
168
   }
166
   // 导入---end
169
   // 导入---end
170
+	
171
+	// 表格筛选
172
+	log(value: object[]): void {
173
+	  console.log(value);
174
+	  this.pageIndex = 1;
175
+	  this.getList();
176
+	}
177
+	
178
+	// 恢复
179
+	itemData:any;
180
+	recover(data){
181
+		this.itemData = data;
182
+		this.recoverModal = true;
183
+	}
184
+	
167
   // 搜索
185
   // 搜索
168
   search() {
186
   search() {
169
     this.pageIndex = 1;
187
     this.pageIndex = 1;
@@ -193,7 +211,8 @@ export class UsersManagementComponent implements OnInit {
193
         account: this.num || "",
211
         account: this.num || "",
194
         groupdata: { id: this.userGroup1 || "" },
212
         groupdata: { id: this.userGroup1 || "" },
195
         hospital: { id: this.hosId || "" },
213
         hospital: { id: this.hosId || "" },
196
-        userTypeIds: String(this.userTypes.map(v => v.id))
214
+        userTypeIds: String(this.userTypes.map(v => v.id)),
215
+				deleted: this.checkOptionsOne[0].checked ? 1 : undefined
197
       },
216
       },
198
     };
217
     };
199
     if (!data.user.dept || !data.user.dept.id) {
218
     if (!data.user.dept || !data.user.dept.id) {
@@ -660,24 +679,15 @@ export class UsersManagementComponent implements OnInit {
660
 
679
 
661
 	// 确认恢复
680
 	// 确认恢复
662
 	confirmRecover() {
681
 	confirmRecover() {
663
-		this.hideRecoverModal();
664
-		return
665
 	  let that = this;
682
 	  let that = this;
666
 		let query = {
683
 		let query = {
667
-			account:'',
668
-			weiXin:''
669
-		}
670
-		if(this.userData.status==2002){
671
-			query.account = this.userData.data.account
672
-			delete query.weiXin
673
-		}else if (this.userData.status==2004){
674
-			query.weiXin = this.userData.data.weixin
675
-			delete query.account
684
+			user:{
685
+				...this.itemData,
686
+				deleted: 0
687
+			}
676
 		}
688
 		}
677
 	  that.recoverLoading = true;
689
 	  that.recoverLoading = true;
678
-	  that.mainService
679
-	    .recoveryUser(query)
680
-	    .subscribe((data) => {
690
+	  that.mainService.coopData("updData", "user", query).subscribe((data) => {
681
 	      that.recoverLoading = false;
691
 	      that.recoverLoading = false;
682
 	      that.hideRecoverModal();
692
 	      that.hideRecoverModal();
683
 	      if (data["status"] == 200) {
693
 	      if (data["status"] == 200) {

+ 60 - 1
src/app/views/web-repairs/web-repairs.component.html

@@ -83,7 +83,8 @@
83
 								<td>{{ data.rsPrice?data.rsPrice : '-' }}</td>
83
 								<td>{{ data.rsPrice?data.rsPrice : '-' }}</td>
84
 			          <td>
84
 			          <td>
85
 			            <div class="coop">
85
 			            <div class="coop">
86
-										<span (click)="delBx(data)">撤销</span>
86
+										<span (click)="showAppraiseBx(data)" *ngIf="data.state && data.state.value == 'close' && !data.wxdegree">评价</span>
87
+										<span (click)="delBx(data)" *ngIf="data.state && data.state.value=='accept'">撤销</span>
87
 										<span (click)="detailBx(data)">查看</span>
88
 										<span (click)="detailBx(data)">查看</span>
88
 			            </div>
89
 			            </div>
89
 			          </td>
90
 			          </td>
@@ -330,3 +331,61 @@
330
   (confirmDelEvent)="confirmDelBx()"
331
   (confirmDelEvent)="confirmDelBx()"
331
   content="您确认要撤销吗?"
332
   content="您确认要撤销吗?"
332
 ></app-dialog-delete>
333
 ></app-dialog-delete>
334
+
335
+<!-- 报修评价模态框 -->
336
+<div
337
+  class="save display_flex align-items_center justify-content_flex-center appraise"
338
+  *ngIf="appraiseModalBx"
339
+>
340
+  <div class="modalBody">
341
+    <div class="title">
342
+      评价<i
343
+        class="icon_transport transport-guanbi"
344
+        (click)="hideAppraiseBx()"
345
+      ></i>
346
+    </div>
347
+    <div class="content">
348
+      <div class="jiTit borderB">您的评价对我们至关重要,感谢您!</div>
349
+      <br />
350
+      <div class="star">
351
+        <div
352
+          nz-row
353
+          class="alignC display_flex justify-content_flex-center align-items_center"
354
+        >
355
+          <div nz-col nzSpan="4">星级:</div>
356
+          <div nz-col nzSpan="20">
357
+            <nz-rate [(ngModel)]="starNumBx"></nz-rate>
358
+          </div>
359
+        </div>
360
+        <div nz-row>
361
+          <div nz-col nzSpan="4">评级:</div>
362
+          <div nz-col nzSpan="20">
363
+            <textarea
364
+              rows="4"
365
+              nz-input
366
+              [(ngModel)]="appraiseContentBx"
367
+            ></textarea>
368
+          </div>
369
+        </div>
370
+      </div>
371
+      <br />
372
+    </div>
373
+    <div class="btns display_flex justify-content_flex-center">
374
+      <button
375
+        nz-button
376
+        nzType="primary"
377
+        [nzLoading]="btnLoading"
378
+        (click)="confirmAppraiseBx()"
379
+      >
380
+        确认
381
+      </button>
382
+      <button
383
+        class="btn cancel"
384
+        nz-button
385
+        nzType="default"
386
+        (click)="hideAppraiseBx()"
387
+      >
388
+        关闭
389
+      </button>
390
+    </div>
391
+  </div>

+ 229 - 2
src/app/views/web-repairs/web-repairs.component.less

@@ -1192,7 +1192,7 @@
1192
 
1192
 
1193
     .content {
1193
     .content {
1194
       width: 100%;
1194
       width: 100%;
1195
-      height: 117px;
1195
+      // height: 117px;
1196
       background: #f9fafb;
1196
       background: #f9fafb;
1197
       border: 1px solid #e5e9ed;
1197
       border: 1px solid #e5e9ed;
1198
       border-radius: 5px;
1198
       border-radius: 5px;
@@ -1538,7 +1538,7 @@
1538
 		
1538
 		
1539
 		    .content {
1539
 		    .content {
1540
 		      width: 100%;
1540
 		      width: 100%;
1541
-		      height: 117px;
1541
+		      // height: 117px;
1542
 		      background: #f9fafb;
1542
 		      background: #f9fafb;
1543
 		      border: 1px solid #e5e9ed;
1543
 		      border: 1px solid #e5e9ed;
1544
 		      border-radius: 5px;
1544
 		      border-radius: 5px;
@@ -1840,4 +1840,231 @@
1840
 	      }
1840
 	      }
1841
 	    }
1841
 	    }
1842
 	  }
1842
 	  }
1843
+	}
1844
+	
1845
+	.save {
1846
+	  position: fixed;
1847
+	  left: 0;
1848
+	  top: 0;
1849
+	  width: 100%;
1850
+	  height: 100%;
1851
+	  background: rgba(0, 0, 0, 0.4);
1852
+	  z-index: 99;
1853
+	  .modalBody {
1854
+	    width: 480px;
1855
+	    min-height: 220px;
1856
+	    background: #fff;
1857
+	    border-radius: 5px;
1858
+	    padding: 10px 20px;
1859
+	    color: #333;
1860
+	
1861
+	    &.sm {
1862
+	      width: 350px;
1863
+	    }
1864
+	
1865
+	    .title {
1866
+	      width: 100%;
1867
+	      text-align: center;
1868
+	      font-size: 18px;
1869
+	      position: relative;
1870
+	
1871
+	      i {
1872
+	        position: absolute;
1873
+	        right: 0;
1874
+	        top: 0;
1875
+	        font-size: 20px;
1876
+	        color: #666;
1877
+	        cursor: pointer;
1878
+	        padding: 0 5px;
1879
+	      }
1880
+	    }
1881
+	
1882
+	    .content {
1883
+	      width: 100%;
1884
+	      min-height: 117px;
1885
+	      background: #f9fafb;
1886
+	      border: 1px solid @hs_border_color;
1887
+	      border-radius: 5px;
1888
+	      overflow: hidden;
1889
+	      margin-top: 12px;
1890
+	      padding: 16px 10px;
1891
+	
1892
+	      &.bb {
1893
+	        display: flex;
1894
+	        justify-content: center;
1895
+	        align-items: center;
1896
+	      }
1897
+	
1898
+	      .patientForm {
1899
+	        padding-top: 15px;
1900
+	
1901
+	        .ant-form-item {
1902
+	          margin-bottom: 5px;
1903
+	
1904
+	          .ant-form-item-label {
1905
+	            line-height: 20px;
1906
+	            text-align: left;
1907
+	          }
1908
+	
1909
+	          .goods {
1910
+	            line-height: 40px;
1911
+	          }
1912
+	
1913
+	          .ant-form-item-control {
1914
+	            line-height: 21px;
1915
+	          }
1916
+	
1917
+	          .datesGroup {
1918
+	            padding-top: 10px;
1919
+	
1920
+	            .linkCheckCheck {
1921
+	              text-indent: 7px;
1922
+	              margin-top: 0;
1923
+	
1924
+	              .priority {
1925
+	                color: #d81e06;
1926
+	              }
1927
+	            }
1928
+	          }
1929
+	
1930
+	          .radioGroup {
1931
+	            line-height: 24px;
1932
+	            padding-left: 14px;
1933
+	          }
1934
+	
1935
+	          .desc {
1936
+	            margin-top: 5px;
1937
+	          }
1938
+	        }
1939
+	
1940
+	        .linkCheckCheck {
1941
+	          .ant-checkbox-wrapper {
1942
+	            margin-left: 0 !important;
1943
+	          }
1944
+	        }
1945
+	      }
1946
+	
1947
+	      .shortcutForm {
1948
+	        padding-top: 20px;
1949
+	
1950
+	        .ant-form-item {
1951
+	          margin-bottom: 15px;
1952
+	        }
1953
+	
1954
+	        .ant-form-item-label {
1955
+	          text-align: left;
1956
+	          line-height: 0;
1957
+	        }
1958
+	
1959
+	        .goods {
1960
+	          line-height: 40px;
1961
+	        }
1962
+	      }
1963
+	
1964
+	      .jiTit {
1965
+	        text-align: center;
1966
+	        color: #666;
1967
+	        padding: 8px 0;
1968
+	
1969
+	        &.jiTitB {
1970
+	          color: @primary-color;
1971
+	          font-size: 12px;
1972
+	          font-weight: bold;
1973
+	        }
1974
+	      }
1975
+	
1976
+	      & > div {
1977
+	        margin: 0;
1978
+	
1979
+	        &.title {
1980
+	          text-align: left;
1981
+	          color: #333;
1982
+	          font-size: 14px;
1983
+	          line-height: 30px;
1984
+	        }
1985
+	
1986
+	        &.icon {
1987
+	          i {
1988
+	            color: #34b349;
1989
+	            font-size: 30px !important;
1990
+	
1991
+	            &.transport-wenhao {
1992
+	              color: #f5a523;
1993
+	            }
1994
+	
1995
+	            &.transport-shibai {
1996
+	              color: #ff3a52;
1997
+	            }
1998
+	          }
1999
+	        }
2000
+	
2001
+	        &.defeat {
2002
+	          color: #333;
2003
+	          font-size: 16px;
2004
+	        }
2005
+	
2006
+	        &.otherInfo {
2007
+	          color: @primary-color;
2008
+	          font-size: 12px;
2009
+	        }
2010
+	      }
2011
+	
2012
+	      // 评价
2013
+	      .star {
2014
+	        padding: 0 30px;
2015
+	        font-size: 14px;
2016
+	        color: #666;
2017
+	
2018
+	        i {
2019
+	          font-size: 20px;
2020
+	        }
2021
+	      }
2022
+	
2023
+	      // 意见箱查看
2024
+	      .conItem {
2025
+	        padding-bottom: 50px;
2026
+	        color: #333;
2027
+	
2028
+	        &.noCon {
2029
+	          padding-bottom: 0;
2030
+	        }
2031
+	
2032
+	        &:nth-child(1) {
2033
+	          border-bottom: 1px solid @hs_border_color;
2034
+	        }
2035
+	
2036
+	        &:nth-child(2) {
2037
+	          padding-top: 20px;
2038
+	        }
2039
+	
2040
+	        .defeat {
2041
+	          padding-top: 10px;
2042
+	        }
2043
+	      }
2044
+	    }
2045
+	
2046
+	    .btns {
2047
+	      &.patientBtns{
2048
+	        button {
2049
+	          margin-top: 16px;
2050
+	          font-size: 18px;
2051
+	        }
2052
+	      }
2053
+	      button {
2054
+	        margin-top: 10px;
2055
+	
2056
+	        &.btn {
2057
+	          margin-left: 8px;
2058
+	        }
2059
+	
2060
+	        &.knowBtn {
2061
+	          color: @primary-color;
2062
+	        }
2063
+	      }
2064
+	    }
2065
+	  }
2066
+	}
2067
+	
2068
+	.borderB {
2069
+	  border-bottom: 1px solid @hs_border_color;
1843
 	}
2070
 	}

+ 67 - 13
src/app/views/web-repairs/web-repairs.component.ts

@@ -183,7 +183,7 @@ export class WebRepairsComponent implements OnInit {
183
 	currentDept:any;
183
 	currentDept:any;
184
   ngOnInit() {
184
   ngOnInit() {
185
 		this.coopBtns = this.tool.initCoopBtns(this.route);
185
 		this.coopBtns = this.tool.initCoopBtns(this.route);
186
-		this.hosId = this.tool.getCurrentHospital().id;
186
+		this.hosId = this.tool.getCurrentHospital().parent ? this.tool.getCurrentHospital().parent.id : this.tool.getCurrentHospital().id;
187
 		this.userId = this.tool.getCurrentUserId()
187
 		this.userId = this.tool.getCurrentUserId()
188
 		this.deptId = this.tool.getCurrentUserDept().id
188
 		this.deptId = this.tool.getCurrentUserDept().id
189
 		this.deptName = this.tool.getCurrentUserDept().dept
189
 		this.deptName = this.tool.getCurrentUserDept().dept
@@ -192,7 +192,8 @@ export class WebRepairsComponent implements OnInit {
192
 		if(this.route.snapshot.queryParams && this.route.snapshot.queryParams.type){
192
 		if(this.route.snapshot.queryParams && this.route.snapshot.queryParams.type){
193
 			this.backType = this.route.snapshot.queryParams.type
193
 			this.backType = this.route.snapshot.queryParams.type
194
 		}
194
 		}
195
-		this.getStatusDic()
195
+		this.getStatusDic();
196
+		this.getDegrees();
196
   }
197
   }
197
 	
198
 	
198
 	// 初始化新增form表单
199
 	// 初始化新增form表单
@@ -207,11 +208,12 @@ export class WebRepairsComponent implements OnInit {
207
 	    contacts: [this.loginUser.name, [Validators.required]],
208
 	    contacts: [this.loginUser.name, [Validators.required]],
208
 	    contactsInformation: [this.loginUser.phone, [Validators.required]],
209
 	    contactsInformation: [this.loginUser.phone, [Validators.required]],
209
 	  });
210
 	  });
210
-		if(this.userInfo.buildingDTO){
211
-			this.changeHosp();
212
-		}else{
213
-			this.getUserInfo();
214
-		}
211
+		this.changeHosp();
212
+		// if(this.userInfo.buildingDTO){
213
+		// 	this.changeHosp();
214
+		// }else{
215
+		// 	this.getUserInfo();
216
+		// }
215
 	}
217
 	}
216
 	// 查询用户信息
218
 	// 查询用户信息
217
 	deptDto:any = {};
219
 	deptDto:any = {};
@@ -426,6 +428,58 @@ export class WebRepairsComponent implements OnInit {
426
 	  this.reqModal = false;
428
 	  this.reqModal = false;
427
 	}
429
 	}
428
 	
430
 	
431
+	// 获取星级
432
+	degrees = [];
433
+	getDegrees() {
434
+	  this.iLoading = true;
435
+	  this.mainService.getDictionary("list", "incident_degree").subscribe((data: any) => {
436
+	    this.iLoading = false;
437
+	    this.degrees = data || [];
438
+	  });
439
+	}
440
+	iLoading = false;
441
+	
442
+	// 报修评价
443
+	appraiseModalBx: boolean = false;
444
+	starNumBx: number = 5; //评价星
445
+	appraiseContentBx: string = ""; //评级
446
+	appraiseDataBx: any;
447
+	showAppraiseBx(data) {
448
+	  this.appraiseDataBx = data;
449
+	  this.appraiseModalBx = true;
450
+	  this.starNumBx = 5;
451
+	  this.appraiseContentBx = "";
452
+	}
453
+	// 保存评价
454
+	confirmAppraiseBx() {
455
+	  console.log(this.starNumBx, this.appraiseContentBx);
456
+	  if (!this.starNumBx) return;
457
+	  this.btnLoading = true;
458
+	  let id = this.degrees.find(v=>v.value == this.starNumBx).id;
459
+	  let postData = {
460
+	    incident: {
461
+	      ...this.appraiseDataBx,
462
+	      wxdegree: { id },
463
+	      wxdegreeremark: this.appraiseContentBx,
464
+	    }
465
+	  };
466
+	  this.mainService
467
+	    .flowPost("incident/task/resolve", postData)
468
+	    .subscribe((data:any) => {
469
+				this.btnLoading = false;
470
+	      this.hideAppraiseBx();
471
+	      if (data.state == 200) {
472
+	        this.getConnectList();
473
+	        this.showPromptModal("评价", true, "");
474
+	      } else {
475
+	        this.showPromptModal("评价", false, data.msg);
476
+	      }
477
+	    });
478
+	}
479
+	hideAppraiseBx() {
480
+	  this.appraiseModalBx = false;
481
+	}
482
+	
429
 	// 预览图片
483
 	// 预览图片
430
 	imgs = [];
484
 	imgs = [];
431
 	isPreview = false;
485
 	isPreview = false;
@@ -913,12 +967,12 @@ export class WebRepairsComponent implements OnInit {
913
 	  that.btnLoading = true;
967
 	  that.btnLoading = true;
914
 	  let data = {
968
 	  let data = {
915
 	    user: {
969
 	    user: {
916
-	      name: that.validateForm.value.name,
917
-	      account: that.validateForm.value.account,
918
-	      phone: that.validateForm.value.phone,
919
-				buildingId: that.validateForm.value.buildingId,
920
-				floorId: that.validateForm.value.floorId,
921
-				address: that.validateForm.value.address,
970
+	      name: that.validateForm.value.name || null,
971
+	      account: that.validateForm.value.account || null,
972
+	      phone: that.validateForm.value.phone || null,
973
+				buildingId: that.validateForm.value.buildingId || null,
974
+				floorId: that.validateForm.value.floorId || null,
975
+				address: that.validateForm.value.address || null,
922
 				id: that.userId
976
 				id: that.userId
923
 	    },
977
 	    },
924
 	  };
978
 	  };