maotao преди 2 месеца
родител
ревизия
a90b13c2aa
променени са 35 файла, в които са добавени 1576 реда и са изтрити 238 реда
  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 38
                     <nz-form-label class="label">支持接单并签到</nz-form-label>
39 39
                     <nz-checkbox-group [(ngModel)]="item.postData.drugsReceiveSign"></nz-checkbox-group>
40 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 57
                   <div class="display_flex align-items_center mb8">
44 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 40
     { label: '一单一码', value: 1 },
41 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 51
   drugsManualList:any[] = [];
46 52
 
@@ -53,7 +59,9 @@ export class ConfigurationDrugComponent implements OnInit {
53 59
         drugsModel: undefined,//工单模式
54 60
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
55 61
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
56
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
62
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
63
+        drugsEndCountMethod: undefined,//终点清点方式
64
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
57 65
         drugsStartCheckScanIds: [],//起点核对方式
58 66
         drugsStartManual: undefined,//起点科室手动填写
59 67
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -76,7 +84,9 @@ export class ConfigurationDrugComponent implements OnInit {
76 84
         drugsModel: undefined,//工单模式
77 85
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
78 86
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
79
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
87
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
88
+        drugsEndCountMethod: undefined,//终点清点方式
89
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
80 90
         drugsStartCheckScanIds: [],//起点核对方式
81 91
         drugsStartManual: undefined,//起点科室手动填写
82 92
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -99,7 +109,9 @@ export class ConfigurationDrugComponent implements OnInit {
99 109
         drugsModel: undefined,//工单模式
100 110
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
101 111
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
102
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
112
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
113
+        drugsEndCountMethod: undefined,//终点清点方式
114
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
103 115
         drugsStartCheckScanIds: [],//起点核对方式
104 116
         drugsStartManual: undefined,//起点科室手动填写
105 117
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -122,7 +134,9 @@ export class ConfigurationDrugComponent implements OnInit {
122 134
         drugsModel: undefined,//工单模式
123 135
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
124 136
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
125
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
137
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
138
+        drugsEndCountMethod: undefined,//终点清点方式
139
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
126 140
         drugsStartCheckScanIds: [],//起点核对方式
127 141
         drugsStartManual: undefined,//起点科室手动填写
128 142
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -145,7 +159,9 @@ export class ConfigurationDrugComponent implements OnInit {
145 159
         drugsModel: undefined,//工单模式
146 160
         drugsCreateSign: [{ label:'是否开启', value: 0 }],//支持建单并签到
147 161
         drugsReceiveSign: [{ label:'是否开启', value: 0 }],//支持接单并签到
148
-        drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
162
+				drugsVerifyPharmacy: [{ label:'是否开启', value: 0 }],//收药是否验证发药科室
163
+        drugsEndCountMethod: undefined,//终点清点方式
164
+				drugsStartCheck: [{ label:'是否开启', value: 0 }],//起点科室支持核对
149 165
         drugsStartCheckScanIds: [],//起点核对方式
150 166
         drugsStartManual: undefined,//起点科室手动填写
151 167
         drugsStartPhoto: [{ label:'是否开启', value: 0 }],//起点科室支持拍照留存
@@ -214,7 +230,7 @@ export class ConfigurationDrugComponent implements OnInit {
214 230
       this.msg.create("warning", "请选择工单模式!");
215 231
       return;
216 232
     }
217
-
233
+		
218 234
     if(this.activeDictionary.postData.drugsStartCheck[0].checked && !this.activeDictionary.postData.drugsStartCheckScanIds.filter(v => v.checked).length){
219 235
       this.msg.create("warning", "请选择起点科室的核对方式!");
220 236
       return;
@@ -224,14 +240,21 @@ export class ConfigurationDrugComponent implements OnInit {
224 240
       this.msg.create("warning", "请选择终点科室的核对方式!");
225 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 249
     let postData:any = {
229 250
       id: this.configs.id,
230 251
       taskType: this.tasktype.id,
231 252
       hosId: this.hosId,
232 253
       drugsModel: this.activeDictionary.postData.drugsModel || undefined,
254
+			drugsEndCountMethod: this.activeDictionary.postData.drugsEndCountMethod || undefined,
233 255
       drugsCreateSign: this.activeDictionary.postData.drugsCreateSign[0].checked ? 1 : 0,
234 256
       drugsReceiveSign: this.activeDictionary.postData.drugsReceiveSign[0].checked ? 1 : 0,
257
+			drugsVerifyPharmacy: this.activeDictionary.postData.drugsVerifyPharmacy[0].checked ? 1 : 0,
235 258
       drugsStartCheck: this.activeDictionary.postData.drugsStartCheck[0].checked ? 1 : 0,
236 259
       drugsStartCheckScanIds: this.activeDictionary.postData.drugsStartCheckScanIds.filter(v => v.checked).map(v => v.value).toString() || undefined,
237 260
       drugsStartManual: this.activeDictionary.postData.drugsStartManual ? { id: this.activeDictionary.postData.drugsStartManual } : undefined,
@@ -330,9 +353,10 @@ export class ConfigurationDrugComponent implements OnInit {
330 353
         if (result.status == 200) {
331 354
           this.configs = result.list[0] || {};
332 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 358
           this.activeDictionary.postData.drugsReceiveSign[0].checked = this.configs.drugsReceiveSign == 1;
335
-
359
+					this.activeDictionary.postData.drugsVerifyPharmacy[0].checked = this.configs.drugsVerifyPharmacy == 1;
336 360
           this.activeDictionary.postData.drugsStartCheck[0].checked = this.configs.drugsStartCheck == 1;
337 361
           this.activeDictionary.postData.drugsStartCheckScanIds = this.activeDictionary.postData.drugsStartCheckScanIds.map(v => ({...v, checked: (this.configs.drugsStartCheckScanIds || '').split(',').includes(v.value.toString())}));
338 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 76
 			let item = this.hospitalList.find(i=>i.key == 'itsmConsumableQuoteDept')
77 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 89
 	changeSelect(data){
@@ -166,6 +174,14 @@ export class ConfigurationHospitalComponent implements OnInit {
166 174
 							arr = arr.map(i=>i = parseInt(i))
167 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 187
           this.hospitalList = newData || [];

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

@@ -68,6 +68,35 @@
68 68
             </nz-radio-group>
69 69
           </div>
70 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 100
       </div>
72 101
       <div class="conditions display_flex align-items_center justify-content_flex-center" *ngIf="isLoading">
73 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 28
   workerInfoTime: number = 60; //配送人员刷新时间
29 29
   audioNotDispatched: boolean = true; //是否开启定时播报未派出工单提示音
30 30
   orderType: string = 'priority'; //排序方式
31
-
31
+	leftMenuLocation: any = 2; //左侧菜单
32
+	rightMenuLocation: any = 2; //右侧菜单
33
+	showSource: any = 0; //是否展示来源
32 34
   ngOnInit() {
33 35
     this.initControlView();
34 36
   }
@@ -66,6 +68,10 @@ export class DisplayFormComponent implements OnInit {
66 68
         this.workerRefreshTime = this.workerInfoTime = data.list[0].workerInfoTime;
67 69
         this.audioNotDispatched = data.list[0].unsendOrderVoice !== false;
68 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 109
         unsendOrderVoice: this.audioNotDispatched,
104 110
         hurseInfoHiding: this.hurseInfoHiding == 1,
105 111
         orderType: this.orderType,
112
+				leftMenuLocation: this.leftMenuLocation,
113
+				rightMenuLocation: this.rightMenuLocation,
114
+				showSource: this.showSource,
106 115
       },
107 116
     };
108 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 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 11
   <div class="row">
3 12
     <div class="formItem">
4 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 119
   itsmIncidentAsset:any = {};//是否事件关联资产
120
+	itsmSimpleHandle:any= {};//是否简单处理
121
+	itsmWriteSolution:any= {};//是否填写解决方案
120 122
   getHospitalConfig() {
121 123
     let postData = {
122 124
       idx: 0,
@@ -131,7 +133,10 @@ export class IncidentHandleInfoSimpleComponent implements OnInit {
131 133
       .subscribe((result) => {
132 134
         let list = result.list || [];
133 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 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 3
     <div class="name"><i class="icon_transport transport-required red"></i>解决方案:</div>
4 4
     <div class="value">
5 5
       <textarea rows="4" nz-input [(ngModel)]="incidentDataCopy.handleDescription" placeholder="请输入解决方案"></textarea>
6 6
     </div>
7
-  </div>
7
+  </div> -->
8 8
 
9
-  <div class="formItem">
9
+  <div class="formItem" *ngIf="itsmSimpleHandle.value != 1">
10 10
     <div class="name"><i class="icon_transport transport-required red"></i>故障现象:</div>
11 11
     <div class="value w100">
12 12
       <nz-select class="w100" [(ngModel)]="incidentDataCopy.category" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch
@@ -31,7 +31,7 @@
31 31
       </div>
32 32
     </div>
33 33
 
34
-    <div class="formItem">
34
+    <div class="formItem" *ngIf="itsmSimpleHandle.value != 1">
35 35
       <div class="name"><i class="icon_transport transport-required red"></i>处理结果:</div>
36 36
       <div class="value w100">
37 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 183
   itsmIncidentAsset:any = {};//是否事件关联资产
184
+	itsmSimpleHandle:any= {};//是否简单处理
185
+	itsmWriteSolution:any= {};//是否填写解决方案
184 186
   getHospitalConfig() {
185 187
     let postData = {
186 188
       idx: 0,
@@ -195,7 +197,9 @@ export class IncidentHandleInfoComponent implements OnInit, OnChanges {
195 197
       .subscribe((result) => {
196 198
         let list = result.list || [];
197 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 80
   itsmSummarySheet:any = {};//是否需要填写汇总单
81 81
   itsmSimpleHandle:any = {};//是否简单处理
82
+	itsmWriteSolution:any = {};//是否填写解决方案
82 83
   getHospitalConfig() {
83 84
     let postData = {
84 85
       idx: 0,
@@ -94,7 +95,7 @@ export class IncidentHandleComponent implements OnInit {
94 95
         let list = result.list || [];
95 96
         this.itsmSummarySheet = list.find(v => v.key == 'itsmSummarySheet') || {};
96 97
         this.itsmSimpleHandle = list.find(v => v.key == 'itsmSimpleHandle') || {};
97
-        console.log(this.itsmSummarySheet)
98
+				this.itsmWriteSolution = list.find(v => v.key == 'itsmWriteSolution') || {};
98 99
         if(this.isInSummaryOrder()){
99 100
           let summary = this.tabs.some(v => v.value == 2);
100 101
           console.log(summary)
@@ -236,10 +237,10 @@ export class IncidentHandleComponent implements OnInit {
236 237
       // 详细处理
237 238
       console.log(this.incidentHandleInfoComponent)
238 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 244
       if(!this.incidentHandleInfoComponent.incidentDataCopy.category){
244 245
         this.message.warning('请选择故障现象!');
245 246
         return;
@@ -307,6 +308,13 @@ export class IncidentHandleComponent implements OnInit {
307 308
       // 简单处理
308 309
       console.log(this.incidentHandleInfoSimpleComponent)
309 310
       // return;
311
+			if(this.itsmWriteSolution.value==1){
312
+				if(!this.incidentHandleInfoSimpleComponent.incidentDataCopy.handleDescription){
313
+				  this.message.warning('请选择解决方案!');
314
+				  return;
315
+				}
316
+			}
317
+			
310 318
       if(!this.incidentHandleInfoSimpleComponent.incidentDataCopy.handleCategory){
311 319
         this.message.warning('请选择处理方式!');
312 320
         return;

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

@@ -1248,4 +1248,12 @@ export class MainService {
1248 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 334
 				case "record":
335 335
 				  coopBtns.record = true; //任务记录
336 336
 				  break;
337
+				case "send":
338
+				  coopBtns.send = true; //发送消息
339
+				  break;
337 340
       }
338 341
     });
339 342
     console.log(coopBtns);

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

@@ -1,9 +1,21 @@
1 1
 import { NgModule } from '@angular/core';
2 2
 import { Routes, RouterModule } from '@angular/router';
3 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 20
 @NgModule({
9 21
   imports: [RouterModule.forChild(routes)],

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

@@ -56,9 +56,37 @@
56 56
             </nz-option>
57 57
           </nz-select>
58 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 87
       </div>
60 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 90
         <button nz-button class="btn default ml8" (click)='reset()'>重置</button>
63 91
         <button nz-button class="btn default ml8" (click)='getList(1)'>搜索</button>
64 92
       </div>
@@ -69,33 +97,51 @@
69 97
         <thead>
70 98
           <tr class="thead">
71 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 109
           </tr>
84 110
         </thead>
85 111
         <tbody>
86 112
           <tr *ngFor="let data of listOfData;let i = index">
87 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 145
           </tr>
100 146
         </tbody>
101 147
       </nz-table>
@@ -121,3 +167,119 @@
121 167
   [drugsBagId]="drugsBagId"
122 168
   (closeModelHs)="closeModelLog($event)"
123 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 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 12
 .save {
4 13
   position: fixed;
5 14
   left: 0;
@@ -104,7 +113,11 @@
104 113
         .addForm {
105 114
           .ant-form-item {
106 115
             margin-bottom: 15px;
107
-
116
+						
117
+						.ant-select{
118
+							width: 100% !important;
119
+						}
120
+						
108 121
             .ant-form-item-label {
109 122
               line-height: 14px;
110 123
               text-align: left;

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

@@ -3,6 +3,9 @@ import { Subject } from "rxjs";
3 3
 import { debounceTime } from "rxjs/operators";
4 4
 import { MainService } from "src/app/services/main.service";
5 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 10
 @Component({
8 11
   selector: "app-drug-search",
@@ -10,7 +13,13 @@ import { ToolService } from "src/app/services/tool.service";
10 13
   styleUrls: ["./drug-search.component.less"],
11 14
 })
12 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 24
   currentUserAccount: any = JSON.parse(localStorage.getItem("user")).user.account; //当前登录人账号
16 25
   searchCriteria = {
@@ -19,6 +28,9 @@ export class DrugSearchComponent implements OnInit {
19 28
     launch: null, //发药科室
20 29
     target: null, //发药科室
21 30
     drugsState: null,
31
+		receiverName: null,
32
+		drugsBagType: null,
33
+		dateRange:[],
22 34
   };
23 35
   deptList = []; // 院区下的配送人员列表(搜索框)
24 36
   hosId;
@@ -27,11 +39,23 @@ export class DrugSearchComponent implements OnInit {
27 39
   pageSize: number = 10; //表格每页展示条数
28 40
   listLength: number = 10; //表格总数据量
29 41
   changeInpSubject = new Subject();
42
+	changeUserInpSubject = new Subject();
43
+	coopBtns:any;
44
+	validateForm: FormGroup; //新增/编辑表单
45
+	
30 46
   ngOnInit() {
47
+		this.coopBtns = this.tool.initCoopBtns(this.route);
31 48
     this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
32 49
       this.searchDept(v);
33 50
     });
51
+		this.changeUserInpSubject.pipe(debounceTime(500)).subscribe((v) => {
52
+		  this.searchUser(v);
53
+		});
34 54
     this.getHospital();
55
+		this.getDrugsList();
56
+		this.searchDept('');
57
+		this.searchUser('');
58
+		this.searchTypes();
35 59
   }
36 60
   // 查看流程信息弹窗
37 61
   logPromptModalShow = false; //弹窗开关
@@ -104,6 +128,58 @@ export class DrugSearchComponent implements OnInit {
104 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 184
   reset() {
109 185
     this.searchCriteria = {
@@ -112,7 +188,12 @@ export class DrugSearchComponent implements OnInit {
112 188
       launch: null,
113 189
       target: null,
114 190
       drugsState: null,
191
+			receiverName: null,
192
+			drugsBagType: null,
193
+			dateRange:[]
115 194
     };
195
+		this.startDate = null;
196
+		this.endDate = null;
116 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 414
   loading1 = false;
175 415
   getList(type) {
@@ -182,7 +422,15 @@ export class DrugSearchComponent implements OnInit {
182 422
       drugsBag: {
183 423
         hosId: this.hosId,
184 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 435
     if (this.searchCriteria.target) {
188 436
       postData.drugsBag.target = { id: this.searchCriteria.target };
@@ -193,6 +441,16 @@ export class DrugSearchComponent implements OnInit {
193 441
     if (this.searchCriteria.packid) {
194 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 454
     this.loading1 = true;
197 455
     this.mainService
198 456
       .getFetchDataList("drugsBag", "drugsBag", postData)

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

@@ -90,8 +90,8 @@
90 90
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag1}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 1)">配送</span>
91 91
           <span class="time">{{ orderRefreshTime }}s</span></span>
92 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 95
         <div class="search wp60">
96 96
           <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="unassignedSearchCon" />
97 97
           <div class="magnifier wp20" (click)="searchUnassigned()">
@@ -99,7 +99,7 @@
99 99
             <span>搜索</span>
100 100
           </div>
101 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 104
         </button>
105 105
       </div>
@@ -182,7 +182,10 @@
182 182
                       </span>
183 183
                     </span>
184 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 189
                     </span>
187 190
                   </div>
188 191
                   <!-- 急单 -->
@@ -246,6 +249,9 @@
246 249
                       </span>
247 250
                     </span>
248 251
                     <span class="right">
252
+											<span class="source-name" *ngIf="data.data.source && showSource == 1">
253
+												{{data.data.source.name}}
254
+											</span>
249 255
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
250 256
                     </span>
251 257
                   </div>
@@ -286,8 +292,8 @@
286 292
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag2}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 2)">配送</span>
287 293
           <span class="time">{{ orderRefreshTime }}s</span></span>
288 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 297
         <div class="search wp60">
292 298
           <input class="wp75" type="text" placeholder="请输入关键字" [(ngModel)]="arriveSearchCon" />
293 299
           <div class="magnifier wp20" (click)="searchArrive()">
@@ -295,7 +301,7 @@
295 301
             <span>搜索</span>
296 302
           </div>
297 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 306
         </button>
301 307
       </div>
@@ -375,7 +381,10 @@
375 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 382
                     </span>
377 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 388
                     </span>
380 389
                   </div>
381 390
                   <!-- 急单 -->
@@ -438,6 +447,9 @@
438 447
                       </span>
439 448
                     </span>
440 449
                     <span class="right">
450
+											<span class="source-name" *ngIf="data.data.source && showSource == 1">
451
+												{{data.data.source.name}}
452
+											</span>
441 453
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
442 454
                     </span>
443 455
                   </div>
@@ -475,7 +487,7 @@
475 487
           <span class="itsmOrHsms" [ngClass]="{bold: flagList.hsmsFlag3}" *ngIf="hsmsData.hsmsSwitch" (click)="filterOrderList('hsms', 3)">配送</span>
476 488
           <span class="time">{{ orderRefreshTime }}s</span></span>
477 489
       </div>
478
-      <div class="searchBox" *ngIf="!flagList.itsmFlag3 && flagList.hsmsFlag3">
490
+      <div class="searchBox">
479 491
         <div class="search">
480 492
           <input type="text" placeholder="请输入关键字" [(ngModel)]="executionSearchCon" />
481 493
           <div class="magnifier" (click)="searchExecution()">
@@ -560,7 +572,10 @@
560 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 573
                     </span>
562 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 579
                     </span>
565 580
                   </div>
566 581
                   <!-- 急单 -->
@@ -622,6 +637,9 @@
622 637
                       </span>
623 638
                     </span>
624 639
                     <span class="right">
640
+											<span class="source-name" *ngIf="data.data.source && showSource == 1">
641
+												{{data.data.source.name}}
642
+											</span>
625 643
                       {{ data.data.startDate | date: 'yyyy-MM-dd HH:mm'}}
626 644
                     </span>
627 645
                   </div>
@@ -651,7 +669,7 @@
651 669
   </div>
652 670
 
653 671
   <!-- 右侧悬浮框 -->
654
-  <div id="fixedMenu" class="fixed">
672
+  <div id="fixedMenu" class="fixed" [ngStyle]="rightStyle">
655 673
     <div class="left" *ngIf="fixedTab != '' && showLastItems && fixedTab != 'newOrder' && fixedTab != 'toSystem' && fixedTab != 'logout'">
656 674
       <!-- 叫号信息 -->
657 675
       <div
@@ -766,7 +784,7 @@
766 784
     <div class="right">
767 785
       <div class="fixedMenu" *ngIf="hsmsData.hsmsSwitch || itsmData.mdv2Switch">
768 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 789
           </button>
772 790
         </div>
@@ -877,7 +895,7 @@
877 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 899
     <div class="right">
882 900
       <div class="fixedMenu">
883 901
         <div class="menuItems">
@@ -1064,6 +1082,14 @@
1064 1082
           </div>
1065 1083
         </div>
1066 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 1093
       <div nz-row class="content">
1068 1094
         <div nz-col nzSpan="15" class="col left">
1069 1095
           <div class="tabs">
@@ -1571,7 +1597,7 @@
1571 1597
         <div nz-col nzSpan="9" class="col right">
1572 1598
           <div class="rightTitle">
1573 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 1601
           </div>
1576 1602
           <!-- 近期配送 start -->
1577 1603
           <div class="cots_body weifenpai" *ngIf="currentRTab == 0 && currentTabIndex != '政务值班'" [ngClass]="{ top185: hurseInfoHiding != 1 }">
@@ -2027,3 +2053,16 @@
2027 2053
 
2028 2054
 <!-- 修改备注弹窗 -->
2029 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 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 17
 .thumbList{
12 18
   display: flex;
13 19
   align-items: center;
@@ -1631,11 +1637,11 @@
1631 1637
 
1632 1638
   // 右侧悬浮菜单
1633 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 1646
     &.maskFull{
1641 1647
       &::after{
@@ -2094,11 +2100,11 @@
2094 2100
 
2095 2101
   // 左侧悬浮菜单
2096 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 2109
     &.maskFull{
2104 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 391
   applyStartDept;
392
+	patientCode:any;
393
+	taskTypeId:any;
392 394
   // 患者转运表单提交
393 395
   submitFormZy(go?): void {
394 396
     let newOrderShowFlag = true; //是否可以关闭弹窗
@@ -458,6 +460,8 @@ export class FuwutaiComponent implements OnInit {
458 460
           if (go === "&go&") {
459 461
             this.applyDept = data["createDept"].id;
460 462
             this.applyStartDept = data["createDept"];
463
+						this.patientCode = data["patientId"];
464
+						this.taskTypeId = data["taskTypeId"];
461 465
             this.incidentModel.incomingPhone = this.callNumber = this.incidentModel.contactsInformation = data["phone"];
462 466
             this.showPromptModal("建单", true, "", "closeGo");
463 467
           } else {
@@ -472,6 +476,8 @@ export class FuwutaiComponent implements OnInit {
472 476
 					if (go === "&go&") {
473 477
 					  this.applyDept = data["createDept"].id;
474 478
 					  this.applyStartDept = data["createDept"];
479
+						this.patientCode = data["patientId"];
480
+						this.taskTypeId = data["taskTypeId"];
475 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 1419
   quickShowNewOrder(e){
1414 1420
     if (e.ctrlKey && e.key == "s") {
1415
-      this.showNewOrder();
1421
+      this.showNewOrder(1);
1416 1422
       e.preventDefault();
1417 1423
     }
1418 1424
   }
@@ -1676,7 +1682,7 @@ export class FuwutaiComponent implements OnInit {
1676 1682
           //没绑定科室
1677 1683
           if (!this.newOrderShow && !this.newOrderShowOpen) {
1678 1684
             this.applyDept = null;
1679
-            this.showNewOrder("no", data.phone, true, '来电弹屏');
1685
+            this.showNewOrder(1, "no", data.phone, true, '来电弹屏');
1680 1686
           }
1681 1687
         } else if (data.status == 202) {
1682 1688
           this.msg.warning(data.msg);
@@ -1730,7 +1736,7 @@ export class FuwutaiComponent implements OnInit {
1730 1736
               this.incidentMsg = incidentMsg;
1731 1737
               this.searchApplicationRequester();
1732 1738
               this.applyDeptMiddle = deptDTO;
1733
-              this.showNewOrder("yes", this.incidentModel.incomingPhone, true, '来电弹屏');
1739
+              this.showNewOrder(1, "yes", this.incidentModel.incomingPhone, true, '来电弹屏');
1734 1740
             // }
1735 1741
           } else {
1736 1742
             //没绑定科室
@@ -1740,7 +1746,7 @@ export class FuwutaiComponent implements OnInit {
1740 1746
             this.incidentMsg = {};
1741 1747
             if (!this.newOrderShow && !this.newOrderShowOpen) {
1742 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 1951
     if(!this.itsmData.mdv2Switch){
1946 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 1955
       this.itsmOrders = [];
1950 1956
       return;
1951 1957
     }
1952
-		if(!this.incidentModel.department){
1958
+		if(!this.incidentModel.department && this.incidentModel.repairIncidentType === 'dept'){
1953 1959
 			this.itsmOrders = [];
1954 1960
 			return;
1955 1961
 		}
1956
-		if(this.incidentModel.repairIncidentType === 'public'){
1957
-			this.itsmOrders = [];
1958
-			return
1959
-		}
1960 1962
     let postData = {
1961 1963
       incident: {
1962 1964
         "deleteFlag": 0,
@@ -1964,10 +1966,23 @@ export class FuwutaiComponent implements OnInit {
1964 1966
         department: {
1965 1967
           id,
1966 1968
         },
1969
+				requester:{
1970
+					id:null
1971
+				}
1967 1972
       },
1968 1973
       idx: 0,
1969 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 1986
     this.loading6 = true;
1972 1987
     this.mainService
1973 1988
       .getFetchDataList("simple/data", "incident", postData)
@@ -1982,7 +1997,7 @@ export class FuwutaiComponent implements OnInit {
1982 1997
 	// 获取政务值班近期记录
1983 1998
 	itsmZwOrders:any=[];
1984 1999
 	getZwOrders(){
1985
-		if(!this.incidentModel.callID){
2000
+		if(!this.incidentModel.callID && !this.selectProvince){
1986 2001
 			return
1987 2002
 		}
1988 2003
 		let postData = {
@@ -2325,6 +2340,13 @@ export class FuwutaiComponent implements OnInit {
2325 2340
     }
2326 2341
     // 运维
2327 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 2350
       postData.incidentQuery = {
2329 2351
         idx: 0,
2330 2352
         sum: 1,
@@ -2338,7 +2360,8 @@ export class FuwutaiComponent implements OnInit {
2338 2360
           "assignee": this.tool.getCurrentUserId(),
2339 2361
           "deleteFlag": 0,
2340 2362
 					"showReassign":null,
2341
-					"showGovDuty":null
2363
+					"showGovDuty":null,
2364
+					keyWord: keyWords
2342 2365
         }
2343 2366
 				postData.incidentQuery.incident.showReassign = this.user.user.scope.showReassign==0 || !this.user.user.scope.showReassign ? undefined : this.user.user.scope.showReassign
2344 2367
 				postData.incidentQuery.incident.showGovDuty = 
@@ -2351,6 +2374,7 @@ export class FuwutaiComponent implements OnInit {
2351 2374
           "urgentType": +this.itsmData.orderScopeRadio + 1,
2352 2375
           "queryTask": "todoState",
2353 2376
           "deleteFlag": 0,
2377
+					keyWord: keyWords
2354 2378
         }
2355 2379
       }else if(stateId == 3){
2356 2380
         postData.incidentQuery.incident = {
@@ -2361,6 +2385,7 @@ export class FuwutaiComponent implements OnInit {
2361 2385
           "assignee": this.tool.getCurrentUserId(),
2362 2386
           "deleteFlag": 0,
2363 2387
           "platform": 3,
2388
+					keyWord: keyWords
2364 2389
         }
2365 2390
       }
2366 2391
     }
@@ -2716,7 +2741,7 @@ export class FuwutaiComponent implements OnInit {
2716 2741
 	applicantMustFillIn:any; //申请人是否必填 1是,0否
2717 2742
 	deptRepair:boolean = false; //科内报修
2718 2743
 	publicRepair:boolean = false; //公共报修
2719
-	getSysConfig() {
2744
+	getSysConfig(type) {
2720 2745
 		const postData = { idx: 0, sum: 99 };
2721 2746
 		this.mainService
2722 2747
 			.getFetchDataList("simple/data", "systemConfiguration", postData)
@@ -2746,21 +2771,30 @@ export class FuwutaiComponent implements OnInit {
2746 2771
 								case "hospitalModel":
2747 2772
 									this.hospitalModel = c[1]
2748 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 2780
 									break;	
2752 2781
 								case "applicantMustFillIn":
2753 2782
 									this.applicantMustFillIn = c[1]
2754 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 2804
   deathTasktypeId; //获取这个写死的任务类型的id,送病人回病房
2771 2805
   deathTasktypeIdPatient; //获取这个写死的任务类型的id,转出院记录
2772
-  async showNewOrder(des = '', phone = '', isInit = false, buildType = '') {
2806
+  async showNewOrder(type, des = '', phone = '', isInit = false, buildType = '') {
2773 2807
     if(this.incomingService.getSign() === 'callCenter' && this.incomingService.getPhoneNumber()){
2774 2808
       //进入弹窗,强制示忙
2775 2809
       setTimeout(()=>{
@@ -2784,15 +2818,15 @@ export class FuwutaiComponent implements OnInit {
2784 2818
       }else{
2785 2819
         this.resetOrderData2();
2786 2820
       }
2787
-			this.getSysConfig();
2821
+			this.getSysConfig(type);
2788 2822
       this.searchApplicationHospital();
2789 2823
       this.searchApplicationCategory();
2790 2824
       this.searchApplicationPriority();
2791 2825
       this.searchApplicationSource();
2792 2826
       this.getRepairIncidentType();
2793 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 2830
       if(!this.hsmsData.hsmsSwitch){
2797 2831
         this.taskBuild = null;
2798 2832
         this.residenceNo = null;
@@ -2851,7 +2885,6 @@ export class FuwutaiComponent implements OnInit {
2851 2885
     this.applyDept = null;
2852 2886
     this.countRemarkIndex = -1;
2853 2887
     this.incidentModel.department = isInit ? this.incidentModel.department : null;
2854
-    console.log(des);
2855 2888
     if (des === "no") {
2856 2889
       //没绑定科室
2857 2890
       this.searchApplicationDepartment("hsms", "", phone);
@@ -2928,6 +2961,9 @@ export class FuwutaiComponent implements OnInit {
2928 2961
     let preCurrentTabIndex = this.currentTabIndex;
2929 2962
     this.currentTabIndex = key;
2930 2963
 		console.log(1112233,this.currentTabIndex)
2964
+		if(this.buildType !== '报修转事件'){
2965
+			this.incidentModel.requester = null;
2966
+		}
2931 2967
     this.radioValueQt = null;
2932 2968
     this.startDeptQt = null;
2933 2969
     this.endDeptQt = null;
@@ -2973,7 +3009,7 @@ export class FuwutaiComponent implements OnInit {
2973 3009
     // }else
2974 3010
 		 
2975 3011
 		 if(this.currentTabIndex === '故障报修'){
2976
-				this.incidentModel.department = null;
3012
+				// this.incidentModel.department = null;
2977 3013
 				this.rightTitle_tab = [
2978 3014
 					{ id: 2, name: '近期维修' },
2979 3015
 					{ id: 3, name: '知识库' },
@@ -3014,7 +3050,9 @@ export class FuwutaiComponent implements OnInit {
3014 3050
 	}
3015 3051
 	
3016 3052
 	// 选择省市区
3053
+	selectProvince:boolean = false
3017 3054
 	onProvinceChanges	(values: any): void {
3055
+		this.selectProvince = true;
3018 3056
 		this.getZwOrders();
3019 3057
 	}
3020 3058
 	
@@ -3106,7 +3144,9 @@ export class FuwutaiComponent implements OnInit {
3106 3144
 				that.initZwForm();
3107 3145
 				if (data.status == 200) {
3108 3146
 					this.getZwOrders();
3147
+					this.selectProvince = false;
3109 3148
 					this.newOrderShow = false;
3149
+					this.itsmZwOrders = [];
3110 3150
 					that.showPromptModal("新增", true, "");
3111 3151
 				} else {
3112 3152
 					that.showPromptModal("新增", false, data.msg);
@@ -3135,6 +3175,11 @@ export class FuwutaiComponent implements OnInit {
3135 3175
       this.isLoadingPatient = false;
3136 3176
       if (result["state"] == 200) {
3137 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 3183
         // if (this.patientList.length) {
3139 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 3361
   changeApplyRequester(e){
3316
-    console.log(e)
3317 3362
     let userObj = this.applicationRequesterList.find(v => v.id == e);
3363
+		console.log('选中的申请人',userObj)
3318 3364
     // 选择申请人回显申请人电话
3319 3365
     if(userObj){
3320 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 3391
   applicationCategoryList:any[] = [];
@@ -3351,8 +3418,8 @@ export class FuwutaiComponent implements OnInit {
3351 3418
   }
3352 3419
   // 修改故障现象
3353 3420
   incidentCategoryConfig:any = {};//当前匹配的故障现象规则
3421
+	malPriorityDTO:any;
3354 3422
   changeApplyCategory(e, isCoverage = false){
3355
-    console.log(e)
3356 3423
     // 知识库
3357 3424
     this.getKnowageList();
3358 3425
     if(e && !isCoverage){
@@ -3363,6 +3430,7 @@ export class FuwutaiComponent implements OnInit {
3363 3430
         this.incidentModel.description = this.applicationCategoryList.find(v => v.id == e).mutiCategory;
3364 3431
       }
3365 3432
     }
3433
+		
3366 3434
     // 根据院区和故障现象带出责任部门,优先级,维修人/组
3367 3435
     if(this.incidentModel.hosId && e && this.buildType !== '编辑事件'){
3368 3436
       let postData = {
@@ -3388,10 +3456,27 @@ export class FuwutaiComponent implements OnInit {
3388 3456
             }else{
3389 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 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 3482
             this.showGroupOrUser();
@@ -3417,6 +3502,7 @@ export class FuwutaiComponent implements OnInit {
3417 3502
   // 弹窗确定
3418 3503
   confirmDirectOrderModelOrder(incidentModel){
3419 3504
     console.log(incidentModel);
3505
+		console.log(444,this.incidentModel.requester)
3420 3506
     this.maskFlag = this.msg.loading("正在加载中..", {
3421 3507
       nzDuration: 0,
3422 3508
     }).messageId;
@@ -3714,12 +3800,12 @@ export class FuwutaiComponent implements OnInit {
3714 3800
   }
3715 3801
   // 选择报修类型
3716 3802
   changeRepairIncidentType(value){
3717
-    // this.incidentModel.department = undefined;
3803
+		// this.incidentModel.department = undefined;
3718 3804
     this.incidentMsg.deptManyPhone = '';
3719
-
3805
+		this.incidentModel.requester = null;
3720 3806
     this.isRelatedDepartment = value !== 'public';
3721 3807
     this.changeApplyRelatedDepartment(this.isRelatedDepartment);
3722
-		this.rightTitleHandler(this.rightTitle_tab[0].id);
3808
+		this.rightTitleHandler(2);
3723 3809
   }
3724 3810
   // 楼栋列表
3725 3811
   applicationBuildingList:any[] = [];
@@ -3798,7 +3884,7 @@ export class FuwutaiComponent implements OnInit {
3798 3884
     if(!this.hsmsData.hsmsSwitch && !this.itsmData.mdv2Switch){
3799 3885
       return;
3800 3886
     }
3801
-		console.log(8787878787878,type)
3887
+		console.log(8787878787878,type, e)
3802 3888
     let keyWord = "";
3803 3889
     if (e && e !== "&ks&" && e !== "&go&") {
3804 3890
       keyWord = e;
@@ -3865,9 +3951,6 @@ export class FuwutaiComponent implements OnInit {
3865 3951
             this.applicationDeptList = data.list;
3866 3952
             let ids = this.applicationDeptList.map(v => v.id);
3867 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 3954
             deptId && this.changeApplyDept(deptId);
3872 3955
           }
3873 3956
         }
@@ -3892,8 +3975,28 @@ export class FuwutaiComponent implements OnInit {
3892 3975
     flag && this.searchApplicationUser()
3893 3976
   }
3894 3977
   // 配送-选择科室
3978
+	deptPriorityDTO:any;
3895 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 4000
     this.changeApplicationDepartment("&same&");
3898 4001
     this.defaultInspectFn();
3899 4002
 
@@ -4107,7 +4210,7 @@ export class FuwutaiComponent implements OnInit {
4107 4210
   maskFlag:any = false;
4108 4211
   // 运维-直接解决
4109 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 4214
       this.msg.warning('请选择申请人!');
4112 4215
       return;
4113 4216
     }
@@ -4162,7 +4265,8 @@ export class FuwutaiComponent implements OnInit {
4162 4265
   }
4163 4266
   // 运维-建单并派单
4164 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 4270
       this.msg.warning('请选择申请人!');
4167 4271
       return;
4168 4272
     }
@@ -4355,7 +4459,7 @@ export class FuwutaiComponent implements OnInit {
4355 4459
 
4356 4460
   // 运维-保存
4357 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 4463
       this.msg.warning('请选择申请人!');
4360 4464
       return;
4361 4465
     }
@@ -4582,7 +4686,11 @@ export class FuwutaiComponent implements OnInit {
4582 4686
           this.workTypesFlag = arr.length >= 5;
4583 4687
           // 默认选中故障现象
4584 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 5395
     this.newOrderShow = false;
5288 5396
     this.newOrderShowOpen = false;
5397
+		this.selectProvince = false;
5398
+		this.itsmZwOrders = [];
5399
+		this.patientCode = null;
5289 5400
     this.currentTabIndex = "";
5290 5401
     this.fixedTab = "";
5291 5402
     this.fixedMenuShangla();
@@ -5380,7 +5491,11 @@ export class FuwutaiComponent implements OnInit {
5380 5491
   openDelModal(id, type) {
5381 5492
     this.coopId = id;
5382 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 5501
   confirmDel() {
@@ -5415,6 +5530,39 @@ export class FuwutaiComponent implements OnInit {
5415 5530
   closeDelOrderModal() {
5416 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 5568
   submitFormHand(id) {
@@ -5500,7 +5648,7 @@ export class FuwutaiComponent implements OnInit {
5500 5648
 		this.confirmType = false;
5501 5649
 		if(this.goType=='&go&'){
5502 5650
 			console.log('fou222222')
5503
-			this.showNewOrder("&go&");
5651
+			this.showNewOrder(1,"&go&");
5504 5652
 			// this.showRepetitionModal("建单", true, "", "closeGo");
5505 5653
 		}
5506 5654
 	}
@@ -5653,6 +5801,11 @@ export class FuwutaiComponent implements OnInit {
5653 5801
 
5654 5802
   // 初始化展示形式
5655 5803
   controlView:any = {}; //展示形式
5804
+	leftMenuLocation:any = 2;
5805
+	rightMenuLocation:any = 2;
5806
+	showSource:any = 0;
5807
+	leftStyle:any;
5808
+	rightStyle:any;
5656 5809
   initControlView() {
5657 5810
     let postData = {
5658 5811
       controlView: {},
@@ -5677,6 +5830,59 @@ export class FuwutaiComponent implements OnInit {
5677 5830
         this.workerRefreshTime = this.workerInfoTime = this.controlView.workerInfoTime;
5678 5831
         this.audioNotDispatched = this.controlView.unsendOrderVoice !== false;
5679 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 5886
         this.checkTab(this.typeId);
5681 5887
 
5682 5888
         this.getOrderList(1);
@@ -5750,10 +5956,10 @@ export class FuwutaiComponent implements OnInit {
5750 5956
       this.newOrderShowOpen = false; //此时可出现新的弹窗
5751 5957
     } else if (e === "closeGo") {
5752 5958
 			console.log(1111)
5753
-      this.showNewOrder("&go&");
5959
+      this.showNewOrder(1, "&go&");
5754 5960
     }else if(this.dataStatus==1000033 && this.goType=='&go&'){
5755 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 6220
     this.editOrder = cloneDeep(data);
6015 6221
     let incidentModel = cloneDeep(data);
6016 6222
     let incidentMsg:any = {};
6017
-    console.log('data:', data)
6223
+		
6018 6224
     // incidentModel.department && (this.applicationDeptList = [cloneDeep(incidentModel.department)]);
6019 6225
     incidentModel.department && (incidentMsg.deptManyPhone = incidentModel.department.manyPhone);
6020 6226
     incidentModel.department && (incidentMsg.deptName = incidentModel.department.dept);
@@ -6037,8 +6243,8 @@ export class FuwutaiComponent implements OnInit {
6037 6243
     this.incidentModel.category && this.changeApplyCategory(this.incidentModel.category, true);
6038 6244
     console.log('this.applicationDeptList:', this.applicationDeptList)
6039 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 6249
     this.getRepairImgs(data.id);
6044 6250
   }
@@ -6070,7 +6276,7 @@ export class FuwutaiComponent implements OnInit {
6070 6276
     this.incidentMsg = incidentMsg;
6071 6277
     console.log('this.applicationDeptList:', this.applicationDeptList)
6072 6278
     console.log('incidentModel:', incidentModel)
6073
-    this.showNewOrder('', '', true, '继续建单');
6279
+    this.showNewOrder(1, '', '', true, '继续建单');
6074 6280
 
6075 6281
     // 查询报修图片
6076 6282
     this.getRepairImgs(data.id);
@@ -6173,7 +6379,7 @@ export class FuwutaiComponent implements OnInit {
6173 6379
     console.log('this.applicationRequesterList:', this.applicationRequesterList)
6174 6380
     console.log('this.applicationDeptList:', this.applicationDeptList)
6175 6381
     console.log('incidentModel:', incidentModel)
6176
-    this.showNewOrder('', '', true, '编辑事件');
6382
+    this.showNewOrder(1, '', '', true, '编辑事件');
6177 6383
 
6178 6384
     // 查询报修图片
6179 6385
     this.getRepairImgs(data.id);
@@ -6377,12 +6583,12 @@ export class FuwutaiComponent implements OnInit {
6377 6583
                 this.incidentModel = incidentModel;
6378 6584
                 console.log('this.incidentModel:', this.incidentModel)
6379 6585
                 this.incidentMsg = incidentMsg;
6380
-                this.showNewOrder('', '', true, '留言转事件');
6586
+                this.showNewOrder(1, '', '', true, '留言转事件');
6381 6587
               } else {
6382 6588
                 //没绑定科室
6383 6589
                 this.incidentModel = incidentModel;
6384 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 596
                                               <nz-form-control nzErrorTip="请选择起点科室!">
597 597
                                                 <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
598 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 600
                                                     </nz-option>
601 601
                                                   </ng-container>
602 602
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -618,7 +618,7 @@
618 618
                                               <nz-form-control nzErrorTip="请选择目标科室!">
619 619
                                                 <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', buildMsg, $event)" nzAllowClear nzPlaceHolder="请选择目标科室">
620 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 622
                                                     </nz-option>
623 623
                                                   </ng-container>
624 624
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -640,7 +640,7 @@
640 640
                                               <nz-form-control nzErrorTip="请选择起点科室!">
641 641
                                                 <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
642 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 644
                                                     </nz-option>
645 645
                                                   </ng-container>
646 646
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -655,7 +655,7 @@
655 655
                                               <nz-form-control nzErrorTip="请选择目标科室!">
656 656
                                                 <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', buildMsg, $event)" nzPlaceHolder="请选择目标科室">
657 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 659
                                                     </nz-option>
660 660
                                                   </ng-container>
661 661
                                                   <nz-option *ngIf="false" nzDisabled nzCustomContent>
@@ -1344,14 +1344,21 @@
1344 1344
                                 ({{ item.drugs.packid }})
1345 1345
                               </ng-container>
1346 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 1348
                             </div>
1349
+		
1351 1350
                             <div nz-col nzSpan="12" class="col txtR">
1352 1351
                               {{ item.gdState.name }}
1353 1352
                             </div>
1354 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 1362
                           <div class="row" nz-row>
1356 1363
                             <div nz-col nzSpan="24" class="col txtL">
1357 1364
                               {{item.workOrderRemark}}
@@ -1559,7 +1566,7 @@
1559 1566
                 <nz-form-control [nzSpan]="20" nzErrorTip="请选择起点科室!">
1560 1567
                   <nz-select formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" [nzShowSearch]="isStartFixedType" [nzServerSearch]="isStartFixedType"  (nzOnSearch)="searchDept('start', checkedShowMsg, $event)" nzPlaceHolder="请选择起点科室">
1561 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 1570
                     </ng-container>
1564 1571
                     <nz-option *ngIf="false" nzDisabled nzCustomContent>
1565 1572
                       <i nz-icon nzType="loading" class="loading-icon"></i>
@@ -1587,7 +1594,7 @@
1587 1594
                 <nz-form-control [nzSpan]="20" nzErrorTip="请选择目标科室!">
1588 1595
                   <nz-select formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false"  [nzShowSearch]="isEndFixedType" [nzServerSearch]="isEndFixedType"  (nzOnSearch)="searchDept('target', checkedShowMsg, $event)" nzPlaceHolder="请选择目标科室">
1589 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 1598
                     </ng-container>
1592 1599
                   </nz-select>
1593 1600
                 </nz-form-control>
@@ -1743,7 +1750,7 @@
1743 1750
                   <nz-option
1744 1751
                     *ngIf="true"
1745 1752
                     [nzLabel]="
1746
-                      deptDisplay == 2 ? option.deptalias : option.dept
1753
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1747 1754
                     "
1748 1755
                     [nzValue]="option.id"
1749 1756
                   >
@@ -1789,7 +1796,7 @@
1789 1796
                   <nz-option
1790 1797
                     *ngIf="true"
1791 1798
                     [nzLabel]="
1792
-                      deptDisplay == 2 ? option.deptalias : option.dept
1799
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1793 1800
                     "
1794 1801
                     [nzValue]="option.id"
1795 1802
                   >
@@ -1834,7 +1841,7 @@
1834 1841
                   <nz-option
1835 1842
                     *ngIf="true"
1836 1843
                     [nzLabel]="
1837
-                      deptDisplay == 2 ? option.deptalias : option.dept
1844
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1838 1845
                     "
1839 1846
                     [nzValue]="option.id"
1840 1847
                   >
@@ -1869,7 +1876,7 @@
1869 1876
                   <nz-option
1870 1877
                     *ngIf="true"
1871 1878
                     [nzLabel]="
1872
-                      deptDisplay == 2 ? option.deptalias : option.dept
1879
+                      deptDisplay == 2 ? option.deptalias +'('+ option.inputcode+')' : option.dept +'('+ option.inputcode+')'
1873 1880
                     "
1874 1881
                     [nzValue]="option.id"
1875 1882
                   >

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

@@ -225,6 +225,26 @@
225 225
             </nz-radio-group>
226 226
           </nz-form-control>
227 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 248
       </form>
229 249
     </div>
230 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 125
     this.loading1 = true;
126 126
     this.debounceSubject.next(true);
127 127
     this.autoRefresh();
128
+		this.getRepairsUser();
128 129
   }
129 130
 
130 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 277
   onCalendarChangeDate(dateArr){
256 278
     console.log(dateArr)
257 279
     if(dateArr.length == 2){
@@ -374,7 +396,9 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
374 396
         source: this.validateSearchForm.value.sourceValue ? { value: this.validateSearchForm.value.sourceValue } : undefined,
375 397
         deleteFlag: this.validateSearchForm.value.deleteFlag,
376 398
 				busiParent: this.validateSearchForm.value.busiParent,
399
+				requester: this.validateSearchForm.value.repairsUser ? { id: this.validateSearchForm.value.repairsUser } : undefined,
377 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 751
         source: this.validateSearchForm.value.sourceValue ? { value: this.validateSearchForm.value.sourceValue } : undefined,
728 752
         deleteFlag: this.validateSearchForm.value.deleteFlag,
729 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 826
   changeUser(e, type) {
801 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 836
   searchTimer(fun, e, type?) {
806 837
     this.isLoading = true;
@@ -869,6 +900,8 @@ export class IncidentManagementComponent implements OnInit, OnDestroy {
869 900
       deleteFlag: [0],
870 901
       sourceValue: [null],
871 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 69
             <th nzWidth="9%">单号</th>
70 70
             <th nzWidth="9%">计划主题|批次号</th>
71 71
             <th nzWidth="9%">巡检点|巡检单</th>
72
-            <th nzWidth="9%">截至时间</th>
72
+            <th nzWidth="13%">截至时间|完成时间</th>
73 73
             <th nzWidth="9%">签到方式</th>
74 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 77
             <th nzWidth="9%">故障单号|状态</th>
78 78
             <th nzWidth="14%">操作</th>
79 79
           </tr>
@@ -84,7 +84,10 @@
84 84
             <td>{{data.code}}</td>
85 85
             <td>{{data.inspectionDTO?.name}}<br>{{data.batchNo}}</td>
86 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 91
             <td>{{data.signType?.name}}</td>
89 92
             <td>{{data.userDTO?.name || data.groupDTO?.groupName}}</td>
90 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 227
 		let mzbl = false;
228 228
 		let bljjb = false;
229 229
 		let blk = false;
230
+		let web = false;
230 231
     let yfang = false;
231 232
     roleMenus.forEach((e) => {
232 233
       if (e.link == "pharmacy") {
@@ -251,6 +252,9 @@ export class LoginComponent implements OnInit {
251 252
       } else if (e.link == "pathology") {
252 253
         blk = true;
253 254
         console.log("病理科端");
255
+      } else if (e.link == "webRepairs") {
256
+        web = true;
257
+        console.log("web报修");
254 258
       }
255 259
       canLogin = true;
256 260
     });
@@ -343,6 +347,17 @@ export class LoginComponent implements OnInit {
343 347
       localStorage.setItem("user", JSON.stringify(data.user));
344 348
       this.router.navigateByUrl("/pathology");
345 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 361
     }else if (yfang) {
347 362
       // 药房端2
348 363
       if (successLoginMsg) {

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

@@ -255,7 +255,7 @@
255 255
 										</nz-select>
256 256
 									</div>
257 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 259
 										<div class="addressList" *ngIf="isShowAddressList">
260 260
 											<ng-container *ngIf="!addressLoading && addressList.length">
261 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 412
 			<div nz-col nzSpan="9" class="col right">
413 413
 				<div class="rightTitle">
414 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 416
 				</div>
417 417
 				<!-- 近期配送 start -->
418 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 293
   initMenu() {
294 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 295
     let arr = [];
301 296
     menus.forEach((e) => {
302 297
       if (e.link == "nurse") {
@@ -383,6 +378,16 @@ export class MainComponent implements OnInit {
383 378
 			  this.webRepairs = true;
384 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 391
       if (!e.link) {
387 392
         arr.push(e);
388 393
       }
@@ -921,14 +926,17 @@ export class MainComponent implements OnInit {
921 926
 	loading6 = false;
922 927
 	itsmOrders:any[] = [];
923 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 933
 	    this.itsmOrders = [];
929 934
 	    return;
930 935
 	  }
931
-	
936
+	  if(!this.incidentModel.department && this.incidentModel.repairIncidentType === 'dept'){
937
+	  	this.itsmOrders = [];
938
+	  	return;
939
+	  }
932 940
 	  let postData = {
933 941
 	    incident: {
934 942
 	      "deleteFlag": 0,
@@ -936,10 +944,23 @@ export class MainComponent implements OnInit {
936 944
 	      department: {
937 945
 	        id,
938 946
 	      },
947
+	  		requester:{
948
+	  			id:null
949
+	  		}
939 950
 	    },
940 951
 	    idx: 0,
941 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 964
 	  this.loading6 = true;
944 965
 	  this.mainService
945 966
 	    .getFetchDataList("simple/data", "incident", postData)
@@ -1086,7 +1107,7 @@ export class MainComponent implements OnInit {
1086 1107
 	// 院区列表
1087 1108
 	applicationHospitalList:any[] = [];
1088 1109
 	searchApplicationHospital() {
1089
-		this.applicationHospitalList = this.tool.getHospitalList();
1110
+		this.applicationHospitalList = this.tool.getHospitalList().filter(i=> !i.parent && !i.type);
1090 1111
 		this.incidentModel.hosId = this.currentHospital.id;
1091 1112
 	  // let dataObj = {
1092 1113
 	  //   idx: 0,
@@ -1211,6 +1232,9 @@ export class MainComponent implements OnInit {
1211 1232
 	  if(userObj){
1212 1233
 	    this.incidentMsg.requesterPhone = userObj.phone;
1213 1234
 	  }
1235
+		if(this.incidentModel.repairIncidentType === 'public'){
1236
+			this.getItsmOrders('')
1237
+		}
1214 1238
 	}
1215 1239
 	// 故障现象列表
1216 1240
 	applicationCategoryList:any[] = [];
@@ -1226,7 +1250,7 @@ export class MainComponent implements OnInit {
1226 1250
 	  // }
1227 1251
 	  let postData = {
1228 1252
 	    category: {
1229
-				hosId: this.currentHospital.id,
1253
+				// hosId: this.currentHospital.id,
1230 1254
 	      category: keyWord,
1231 1255
 	      selectType: 'mutlQuery',
1232 1256
 	      hierarchy: 3,//只差有三级的故障现象列表
@@ -1611,11 +1635,12 @@ export class MainComponent implements OnInit {
1611 1635
 	}
1612 1636
 	// 选择报修类型
1613 1637
 	changeRepairIncidentType(value){
1614
-	  this.incidentModel.department = undefined;
1638
+	  // this.incidentModel.department = undefined;
1615 1639
 	  this.incidentMsg.deptManyPhone = '';
1616
-	
1640
+		this.incidentModel.requester = null;
1617 1641
 	  this.isRelatedDepartment = value !== 'public';
1618 1642
 	  this.changeApplyRelatedDepartment(this.isRelatedDepartment);
1643
+		this.rightTitleHandler(2);
1619 1644
 	}
1620 1645
 	// 楼栋列表
1621 1646
 	applicationBuildingList:any[] = [];
@@ -3885,6 +3910,14 @@ export class MainComponent implements OnInit {
3885 3910
 						if(!this.publicRepair && this.deptRepair){
3886 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 3927
 	speedinessAdd(): void {
3895 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 1
 <div class="list-template">
2 2
   <div class="list-template__content">
3 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 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 18
       </div>
8 19
     </div>
9 20
     <div class="list-template__bottom">
@@ -30,6 +41,7 @@
30 41
 						<td *ngFor="let item of data">
31 42
 							{{ item.answer }}
32 43
 						</td>
44
+						<td>{{data[0].addTime | date:'yyyy-MM-dd HH:mm:ss'}}</td>
33 45
           </tr>
34 46
         </tbody>
35 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 17
 .save {
10 18
   position: fixed;
11 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 4
 import { ToolService } from "../../services/tool.service";
5 5
 import { NzMessageService } from 'ng-zorro-antd';
6 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 10
 @Component({
8 11
   selector: "app-questionnaire-answer",
9 12
   templateUrl: "./questionnaire-answer.component.html",
@@ -15,7 +18,8 @@ export class QuestionnaireAnswerComponent implements OnInit {
15 18
     private route: ActivatedRoute,
16 19
     private router: Router,
17 20
     private tool: ToolService,
18
-    private message: NzMessageService
21
+    private message: NzMessageService,
22
+		private dateService: DateService,
19 23
   ) {}
20 24
 
21 25
   userInfo: any = JSON.parse(localStorage.getItem("user")) || {}; //登录用户信息
@@ -41,6 +45,8 @@ export class QuestionnaireAnswerComponent implements OnInit {
41 45
       idx: 0,
42 46
       sum: 99999,
43 47
       qmId: this.route.snapshot.queryParams.id,
48
+			startTime: this.startDate || undefined,
49
+			endTime: this.endDate || undefined,
44 50
     };
45 51
     this.loading2 = true;
46 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 117
   loading1 = false;
70 118
   getList(type) {
@@ -74,7 +122,9 @@ export class QuestionnaireAnswerComponent implements OnInit {
74 122
     let postData = {
75 123
       idx: this.pageIndex - 1,
76 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 129
     this.loading1 = true;
80 130
     this.mainService

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

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

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

@@ -47,6 +47,9 @@
47 47
         <button nz-button *ngIf="coopBtns.import" class="btn ml8 default" (click)="excelImport()">导入</button>
48 48
       </div>
49 49
     </div>
50
+		<div class="list-template__checkBoxes">
51
+		  <nz-checkbox-group [(ngModel)]="checkOptionsOne" (ngModelChange)="log(checkOptionsOne)"></nz-checkbox-group>
52
+		</div>
50 53
     <div class="list-template__bottom">
51 54
       <nz-table class="list-template__nzTable" [nzData]="listOfData" nzSize="middle" [nzShowPagination]="false"
52 55
         [nzLoading]="loading1">
@@ -88,10 +91,11 @@
88 91
             <td>{{ data.usertype ? data.usertype.name : '' }}</td>
89 92
             <td>
90 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 99
               </div>
96 100
             </td>
97 101
           </tr>
@@ -261,7 +265,7 @@
261 265
 
262 266
 <!-- 恢复账号 -->
263 267
 <app-dialog-delete [delModal]="recoverModal" (hideDelModalEvent)="hideRecoverModal()" [btnLoading]="recoverLoading"
264
-  (confirmDelEvent)="confirmRecover()" [content]="recoverContent" [isShowConfirm]="false">
268
+  (confirmDelEvent)="confirmRecover()" content="您确认恢复此用户吗?" confirmTxt="是" cancelTxt="否">
265 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 68
   wxRequired = false; //新增或编辑用户的时候,微信号是否必填
69 69
   changeInpSubject = new Subject(); //防抖
70 70
   changeInpCompanySubject = new Subject(); //防抖
71
-
71
+	checkOptionsOne: Array<any> = [
72
+	  { label: "已删除", value: "0", checked: false },
73
+	];
74
+	
72 75
   ngOnInit() {
73 76
     //防抖
74 77
     this.changeInpSubject.pipe(debounceTime(500)).subscribe((v) => {
@@ -164,6 +167,21 @@ export class UsersManagementComponent implements OnInit {
164 167
       );
165 168
   }
166 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 186
   search() {
169 187
     this.pageIndex = 1;
@@ -193,7 +211,8 @@ export class UsersManagementComponent implements OnInit {
193 211
         account: this.num || "",
194 212
         groupdata: { id: this.userGroup1 || "" },
195 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 218
     if (!data.user.dept || !data.user.dept.id) {
@@ -660,24 +679,15 @@ export class UsersManagementComponent implements OnInit {
660 679
 
661 680
 	// 确认恢复
662 681
 	confirmRecover() {
663
-		this.hideRecoverModal();
664
-		return
665 682
 	  let that = this;
666 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 689
 	  that.recoverLoading = true;
678
-	  that.mainService
679
-	    .recoveryUser(query)
680
-	    .subscribe((data) => {
690
+	  that.mainService.coopData("updData", "user", query).subscribe((data) => {
681 691
 	      that.recoverLoading = false;
682 692
 	      that.hideRecoverModal();
683 693
 	      if (data["status"] == 200) {

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

@@ -83,7 +83,8 @@
83 83
 								<td>{{ data.rsPrice?data.rsPrice : '-' }}</td>
84 84
 			          <td>
85 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 88
 										<span (click)="detailBx(data)">查看</span>
88 89
 			            </div>
89 90
 			          </td>
@@ -330,3 +331,61 @@
330 331
   (confirmDelEvent)="confirmDelBx()"
331 332
   content="您确认要撤销吗?"
332 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 1193
     .content {
1194 1194
       width: 100%;
1195
-      height: 117px;
1195
+      // height: 117px;
1196 1196
       background: #f9fafb;
1197 1197
       border: 1px solid #e5e9ed;
1198 1198
       border-radius: 5px;
@@ -1538,7 +1538,7 @@
1538 1538
 		
1539 1539
 		    .content {
1540 1540
 		      width: 100%;
1541
-		      height: 117px;
1541
+		      // height: 117px;
1542 1542
 		      background: #f9fafb;
1543 1543
 		      border: 1px solid #e5e9ed;
1544 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 183
 	currentDept:any;
184 184
   ngOnInit() {
185 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 187
 		this.userId = this.tool.getCurrentUserId()
188 188
 		this.deptId = this.tool.getCurrentUserDept().id
189 189
 		this.deptName = this.tool.getCurrentUserDept().dept
@@ -192,7 +192,8 @@ export class WebRepairsComponent implements OnInit {
192 192
 		if(this.route.snapshot.queryParams && this.route.snapshot.queryParams.type){
193 193
 			this.backType = this.route.snapshot.queryParams.type
194 194
 		}
195
-		this.getStatusDic()
195
+		this.getStatusDic();
196
+		this.getDegrees();
196 197
   }
197 198
 	
198 199
 	// 初始化新增form表单
@@ -207,11 +208,12 @@ export class WebRepairsComponent implements OnInit {
207 208
 	    contacts: [this.loginUser.name, [Validators.required]],
208 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 219
 	deptDto:any = {};
@@ -426,6 +428,58 @@ export class WebRepairsComponent implements OnInit {
426 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 484
 	imgs = [];
431 485
 	isPreview = false;
@@ -913,12 +967,12 @@ export class WebRepairsComponent implements OnInit {
913 967
 	  that.btnLoading = true;
914 968
 	  let data = {
915 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 976
 				id: that.userId
923 977
 	    },
924 978
 	  };