Pārlūkot izejas kodu

护士端万能交接建单

seimin 4 mēneši atpakaļ
vecāks
revīzija
7913c9f17a

+ 1 - 1
proxy.conf.json

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "/service": {
3
-		"target": "http://192.168.4.105",
3
+		"target": "http://192.168.3.108",
4 4
     "logLevel": "debug",
5 5
     "changeOrigin": true,
6 6
     "pathRewrite": {

+ 208 - 0
src/app/components/build-quick-confirm/build-quick-confirm.component.html

@@ -0,0 +1,208 @@
1
+<div class="save add display_flex align-items_center justify-content_flex-center">
2
+  <div class="modalBody">
3
+    <div class="title">{{buildQuickConfirmData.name}}<i class="icon_transport transport-guanbi" (click)="cancel()"></i>
4
+    </div>
5
+    <div class="contentBody">
6
+      <overlay-scrollbars #osComponentRef1 class="nav">
7
+        <div class="navItem ellipsis-oneline" [title]="item.taskName" [ngClass]="{ active: activeTabId === item.id }" (click)="clickTab(item)" *ngFor="let item of buildQuickConfirmData.taskTypeList">{{item.taskName}}</div>
8
+      </overlay-scrollbars>
9
+      <div class="body modalBody_box">
10
+        <div class="modalBody_left" *ngIf="!nLoading && activeTabId">
11
+          <overlay-scrollbars #osComponentRef2 class="modalBody_left_box">
12
+            <div class="modalBody_left_box">
13
+              <div style="flex:1 1 auto; display: flex; flex-direction: column; justify-content: center; align-items: center;">
14
+                <div class="content txtC" *ngIf="buildMsg.status == 100013 || buildMsg.status == 100014 || buildMsg.status == 100015">
15
+                  <div class="defeat" [innerHTML]="buildMsg.msg"></div>
16
+                </div>
17
+                <!-- 200 该任务类型运送过程暂未配置 -->
18
+                <div class="content txtC" *ngIf="buildMsg.status == 200 && buildType == 'specimen'">
19
+                  <div class="defeat" [innerHTML]="buildMsg.msg"></div>
20
+                </div>
21
+                <!-- 100009 该任务类型运送过程暂未配置 -->
22
+                <div class="content txtC" *ngIf="buildMsg.status == 100009">
23
+                  <div class="defeat" [innerHTML]="buildMsg.msg"></div>
24
+                </div>
25
+                <!-- 100010 系统未查询到该任务类型关联信息 -->
26
+                <div class="content txtC" *ngIf="buildMsg.status == 100010">
27
+                  <div class="defeat" [innerHTML]="buildMsg.msg"></div>
28
+                </div>
29
+                <!-- 100012 (护士端一键建单展示策略)直接取msg -->
30
+                <div class="content txtC" *ngIf="buildMsg.status == 100012">
31
+                  <div class="defeat" [innerHTML]="buildMsg.msg"></div>
32
+                </div>
33
+                <!-- 100013 (护士端一键建单展示策略)取起点科室,和mgs值展示 -->
34
+                <div class="content" *ngIf="buildMsg.status == 100013">
35
+                  <div>
36
+                    <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
37
+                      <nz-form-item nz-row>
38
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="originOffice">起点科室</nz-form-label>
39
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择起点科室!">
40
+                          <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
41
+                            <ng-container *ngFor="let option of buildMsg.start.start.list">
42
+                              <nz-option *ngIf="!isLoading" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
43
+                              </nz-option>
44
+                            </ng-container>
45
+                            <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
46
+                              <i nz-icon nzType="loading" class="loading-icon"></i>
47
+                              搜索中...
48
+                            </nz-option>
49
+                          </nz-select>
50
+                        </nz-form-control>
51
+                      </nz-form-item>
52
+                      <nz-form-item nz-row>
53
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
54
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择目标科室!">
55
+                          {{deptDisplay == 2 ? buildMsg.end.end.list[0].deptalias : buildMsg.end.end.list[0].dept}}
56
+                        </nz-form-control>
57
+                      </nz-form-item>
58
+                    </form>
59
+                  </div>
60
+                </div>
61
+                <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
62
+                <div class="content" *ngIf="buildMsg.status == 100014">
63
+                  <div>
64
+                    <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
65
+                      <nz-form-item nz-row>
66
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="originOffice">起点科室</nz-form-label>
67
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择起点科室!">
68
+                          {{deptDisplay == 2 ? buildMsg.start.start.list[0].deptalias : buildMsg.start.start.list[0].dept}}
69
+                        </nz-form-control>
70
+                      </nz-form-item>
71
+                      <nz-form-item nz-row>
72
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
73
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择目标科室!">
74
+                          <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('target', buildMsg, $event)" nzAllowClear nzPlaceHolder="请选择目标科室">
75
+                            <ng-container *ngFor="let option of buildMsg.end.end.list">
76
+                              <nz-option *ngIf="!isLoading" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
77
+                              </nz-option>
78
+                            </ng-container>
79
+                            <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
80
+                              <i nz-icon nzType="loading" class="loading-icon"></i>
81
+                              搜索中...
82
+                            </nz-option>
83
+                          </nz-select>
84
+                        </nz-form-control>
85
+                      </nz-form-item>
86
+                    </form>
87
+                  </div>
88
+                </div>
89
+                <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
90
+                <div class="content" *ngIf="buildMsg.status == 100015">
91
+                  <div>
92
+                    <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
93
+                      <nz-form-item nz-row>
94
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="originOffice">起点科室</nz-form-label>
95
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择起点科室!">
96
+                          <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
97
+                            <ng-container *ngFor="let option of buildMsg.start.start.list">
98
+                              <nz-option *ngIf="!isLoading" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
99
+                              </nz-option>
100
+                            </ng-container>
101
+                            <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
102
+                              <i nz-icon nzType="loading" class="loading-icon"></i>
103
+                              搜索中...
104
+                            </nz-option>
105
+                          </nz-select>
106
+                        </nz-form-control>
107
+                      </nz-form-item>
108
+                      <nz-form-item nz-row>
109
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
110
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择目标科室!">
111
+                          <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('target', buildMsg, $event)" nzPlaceHolder="请选择目标科室">
112
+                            <ng-container *ngFor="let option of buildMsg.end.end.list">
113
+                              <nz-option *ngIf="!isLoading" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
114
+                              </nz-option>
115
+                            </ng-container>
116
+                            <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
117
+                              <i nz-icon nzType="loading" class="loading-icon"></i>
118
+                              搜索中...
119
+                            </nz-option>
120
+                          </nz-select>
121
+                        </nz-form-control>
122
+                      </nz-form-item>
123
+                    </form>
124
+                  </div>
125
+                </div>
126
+                <!-- 其他 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
127
+                <div class="content" *ngIf="buildMsg.status != 100013 && buildMsg.status != 100014 && buildMsg.status != 100015">
128
+                  <div>
129
+                    <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
130
+                      <nz-form-item nz-row>
131
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="originOffice">起点科室</nz-form-label>
132
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择起点科室!">
133
+                          {{deptDisplay == 2 ? buildMsg.start.start.list[0].deptalias : buildMsg.start.start.list[0].dept}}
134
+                        </nz-form-control>
135
+                      </nz-form-item>
136
+                      <nz-form-item nz-row>
137
+                        <nz-form-label [nzSpan]="6" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
138
+                        <nz-form-control [nzSpan]="14" nzErrorTip="请选择目标科室!">
139
+                          {{deptDisplay == 2 ? buildMsg.end.end.list[0].deptalias : buildMsg.end.end.list[0].dept}}
140
+                        </nz-form-control>
141
+                      </nz-form-item>
142
+                    </form>
143
+                  </div>
144
+                </div>
145
+                <!-- 工号 -->
146
+                <div style="width: 100%; margin: 10px auto 0" *ngIf="buildMsg.reserveUserSwitch == 1">
147
+                  <p><span class="red">*</span>工号:</p>
148
+                  <nz-select class="w100" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchAccount($event)" nzPlaceHolder="请选择工号" [(ngModel)]="account" (ngModelChange)="changeAccount($event)">
149
+                    <ng-container *ngFor="let option of accountList">
150
+                      <nz-option *ngIf="!isLoading" [nzLabel]="option.account + '-' + option.name" [nzValue]="option.id">
151
+                      </nz-option>
152
+                    </ng-container>
153
+                    <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
154
+                      <i nz-icon nzType="loading" class="loading-icon"></i>
155
+                      搜索中...
156
+                    </nz-option>
157
+                  </nz-select>
158
+                </div>
159
+                <!-- 工单备注: -->
160
+                <div class="w100" *ngIf="buildMsg.remarksSwitch == 1">
161
+                  <div nz-row class="tabRow">
162
+                    <div nz-col [nzSpan]="6">
163
+                      <p>工单备注:</p>
164
+                    </div>
165
+                    <div nz-col [nzSpan]="14">
166
+                      <textarea nz-input [placeholder]="workOrderRemarkTips" [nzAutosize]="{minRows: 3, maxRows: 5}" maxlength="100" [(ngModel)]="workOrderRemark" #remarksEle></textarea>
167
+                    </div>
168
+                  </div>
169
+
170
+                  <div nz-row class="tabRow" *ngIf="customRemarks.length">
171
+                    <div nz-col [nzSpan]="6">
172
+                      <p>快捷输入:</p>
173
+                    </div>
174
+                    <div nz-col [nzSpan]="14">
175
+                      <span class="addRemarks" *ngFor="let item of customRemarks" (click)="addRemarks(item)">【{{ item }}】</span>
176
+                    </div>
177
+                  </div>
178
+
179
+                  <div nz-row class="tabRow" *ngIf="historyCustomRemarks.length">
180
+                    <div nz-col [nzSpan]="6">
181
+                      <p>历史输入:</p>
182
+                    </div>
183
+                    <div nz-col [nzSpan]="14">
184
+                      <span class="addRemarks" *ngFor="let item of historyCustomRemarks" (click)="addRemarks(item)">【{{item }}】</span>
185
+                    </div>
186
+                  </div>
187
+                </div>
188
+              </div>
189
+              <div *ngIf="selectOtherId" class="btns display_flex justify-content_flex-center">
190
+                <button *ngIf="buildMsg.status != 100009 && buildMsg.status != 100010" nz-button nzType="primary" [nzLoading]="loading5" (click)="confirmShortcut()">
191
+                  确认
192
+                </button>
193
+              </div>
194
+            </div>
195
+          </overlay-scrollbars>
196
+        </div>
197
+        <div class="modalBody_left nLoading" *ngIf="nLoading">
198
+          <img src="../../../assets/images/loading.gif" alt="" />
199
+          <div>加载中...</div>
200
+        </div>
201
+      </div>
202
+    </div>
203
+    <div class="display_flex justify-content_flex-center btns">
204
+      <button class="mr8" nzType="default" nz-button (click)="cancel()">取消</button>
205
+      <button nzType="primary" nz-button (click)="confirm()" *ngIf="buildMsg.status != 100009 && buildMsg.status != 100010" [nzLoading]="loading5">确认</button>
206
+    </div>
207
+  </div>
208
+</div>

+ 148 - 0
src/app/components/build-quick-confirm/build-quick-confirm.component.less

@@ -0,0 +1,148 @@
1
+@import "../../../../src/theme.less";
2
+.save {
3
+  position: fixed;
4
+  left: 0;
5
+  top: 0;
6
+  width: 100%;
7
+  height: 100%;
8
+  background: rgba(0, 0, 0, 0.4);
9
+  z-index: 99;
10
+
11
+  .modalBody {
12
+    width: 855px;
13
+    height: 621px;
14
+    background: #fff;
15
+    border-radius: 4px;
16
+    padding: 14px 24px 10px 24px;
17
+    color: #333;
18
+
19
+    .title {
20
+      width: 100%;
21
+      text-align: center;
22
+      font-size: 16px;
23
+      position: relative;
24
+
25
+      i {
26
+        position: absolute;
27
+        right: 0;
28
+        top: 0;
29
+        font-size: 16px;
30
+        color: #666;
31
+        cursor: pointer;
32
+      }
33
+    }
34
+
35
+    .contentBody {
36
+      width: 100%;
37
+      height: 517px;
38
+      margin-top: 14px;
39
+      background: #F9FAFB;
40
+      border-radius: 4px;
41
+      border: 1px solid rgba(0,0,0,0.25);
42
+      display: flex;
43
+      overflow: hidden;
44
+      .nav{
45
+        width: 182px;
46
+        height: 100%;
47
+        flex-shrink: 1;
48
+        border-right: 1px solid #CCCCCC;
49
+        .navItem{
50
+          height: 48px;
51
+          line-height: 48px;
52
+          font-size: 14px;
53
+          padding: 0 16px;
54
+          cursor: pointer;
55
+          &.active{
56
+            background: #F0F6ED;
57
+            color: @primary-color;
58
+          }
59
+        }
60
+      }
61
+      .body{
62
+        flex: 1;
63
+        height: 100%;
64
+        .addRemarks {
65
+          color: @primary-color;
66
+          cursor: pointer;
67
+        }
68
+        .modalBody_left {
69
+          width: 100%;
70
+          height: 100%;
71
+          display: flex;
72
+          flex-direction: column;
73
+          justify-content: space-between;
74
+
75
+          &.nLoading,
76
+          &.noData {
77
+            justify-content: center;
78
+            align-items: center;
79
+
80
+            img {
81
+              width: 24px;
82
+            }
83
+
84
+            div {
85
+              display: inline-block;
86
+            }
87
+          }
88
+        }
89
+
90
+        .modalBody_left_box {
91
+          height: 100%;
92
+          box-sizing: border-box;
93
+          padding: 8px;
94
+          display: flex;
95
+          flex-direction: column;
96
+          justify-content: space-between;
97
+        }
98
+      }
99
+    }
100
+  }
101
+  .btns{
102
+    margin-top: 10px;
103
+  }
104
+  .modalBody_box {
105
+    width: 100%;
106
+    height: 100%;
107
+    display: flex;
108
+    flex-direction: column;
109
+    justify-content: space-between;
110
+
111
+    .content {
112
+      width: 100%;
113
+      display: flex;
114
+      flex-direction: column;
115
+      justify-content: center;
116
+      align-items: center;
117
+
118
+      & > div {
119
+        width: 100%;
120
+      }
121
+
122
+      .shortcutForm {
123
+        width: 100%;
124
+
125
+        .ant-form-item-label {
126
+          text-align: right;
127
+        }
128
+      }
129
+    }
130
+
131
+    .btns {
132
+      padding-bottom: 16px;
133
+      padding-top: 16px;
134
+    }
135
+  }
136
+  .defeat{
137
+    text-align: center;
138
+    margin-bottom: 16px;
139
+  }
140
+  .tabRow{
141
+    margin-bottom: 32px;
142
+    word-break: break-all;
143
+    p{
144
+      text-align: right;
145
+      margin-bottom: 0;
146
+    }
147
+  }
148
+}

+ 194 - 0
src/app/components/build-quick-confirm/build-quick-confirm.component.ts

@@ -0,0 +1,194 @@
1
+import { Component, OnInit, Output, Input, ViewChild, ElementRef } from '@angular/core';
2
+import { EventEmitter } from '@angular/core';
3
+import { OverlayScrollbarsComponent } from 'overlayscrollbars-ngx';
4
+import { FormGroup, FormBuilder, FormControl } from '@angular/forms';
5
+import { MainService } from 'src/app/services/main.service';
6
+import { ToolService } from 'src/app/services/tool.service';
7
+
8
+@Component({
9
+  selector: 'app-build-quick-confirm',
10
+  templateUrl: './build-quick-confirm.component.html',
11
+  styleUrls: ['./build-quick-confirm.component.less']
12
+})
13
+export class BuildQuickConfirmComponent implements OnInit {
14
+  @ViewChild("osComponentRef1", {
15
+    read: OverlayScrollbarsComponent,
16
+    static: false,
17
+  })
18
+  osComponentRef1: OverlayScrollbarsComponent;
19
+  @ViewChild("remarksEle", { static: false }) remarksEle: ElementRef;
20
+  @Output() cancelModal = new EventEmitter();
21
+  @Output() confirmModal = new EventEmitter();
22
+  @Input() buildQuickConfirmData: any = {};//数据
23
+  @Input() loading5: boolean = false;//loading
24
+  allHospital: any;//所有院区
25
+  hosLoading: boolean = false;//确定按钮的loading
26
+  configurationCenterMenus: any[] = [];//配置中心菜单
27
+  constructor(
28
+    private mainService: MainService,
29
+    private fb: FormBuilder,
30
+    public tool: ToolService,
31
+  ) { }
32
+
33
+  ngOnInit() {
34
+    this.buildQuickConfirmData.taskTypeList = this.buildQuickConfirmData.taskTypeList || [];
35
+    if(this.buildQuickConfirmData.taskTypeList.length > 0){
36
+      this.clickTab(this.buildQuickConfirmData.taskTypeList[0]);
37
+    }
38
+    console.log(this.buildQuickConfirmData)
39
+  }
40
+
41
+  activeTabId:any;
42
+  clickTab(data){
43
+    this.activeTabId = data.id;
44
+    this.newShortcutOrder(data, data.associationType.value);
45
+  }
46
+
47
+  // 建单条件
48
+  workOrderRemark = ""; //备注
49
+  customRemarks = []; //备注快速输入
50
+  shortcutMsg; //一键发起信息
51
+  buildMsg: any = {}; //一键发起返回信息
52
+  buildType: string = ""; //快捷建单类型
53
+  historyCustomRemarks = []; //历史快捷输入
54
+  workOrderRemarkTips = ""; //备注提示
55
+  nLoading = false;
56
+  newShortcutOrder(data, type) {
57
+    this.workOrderRemark = "";
58
+    this.customRemarks = [];
59
+    this.historyCustomRemarks = [];
60
+    console.log(data, type);
61
+    this.buildType = type;
62
+    this.shortcutMsg = data;
63
+    this.initForm();
64
+    this.buildMsg = {};
65
+    let postData:any = {
66
+      taskTypeId: data.id,
67
+    };
68
+    if(data.associationType.value === 'specimen'){
69
+      postData.deptId = this.tool.getCurrentUserDept().id;
70
+    }
71
+    this.nLoading = true;
72
+    this.mainService
73
+      .postCustom("nurse", "workOrder/buildTrip", postData)
74
+      .subscribe((result) => {
75
+        this.buildMsg = result;
76
+        if (result.remarksSwitch == 1) {
77
+          if (result.customRemarks === null || result.customRemarks === "") {
78
+            this.customRemarks = [];
79
+          } else {
80
+            this.customRemarks = result.customRemarks.split("$");
81
+          }
82
+          this.workOrderRemarkTips =
83
+            result.remarksPrompts || "请填写工单备注,不超过100个字符";
84
+          let user = JSON.parse(localStorage.getItem("user"));
85
+          this.mainService
86
+            .postCustom("nurse", "workOrder/recentRemarks", {
87
+              deptId: user.user.dept.id,
88
+              taskTypeId: data.id,
89
+            })
90
+            .subscribe((result1) => {
91
+              this.nLoading = false;
92
+              if (result1.state == 200) {
93
+                this.historyCustomRemarks = result1.data;
94
+              }
95
+            });
96
+        } else {
97
+          this.nLoading = false;
98
+        }
99
+      });
100
+  }
101
+
102
+  // 初始化form表单
103
+  shortcutForm: FormGroup; //一键发起建单表单
104
+  initForm() {
105
+    // 初始化一键发起建单表单
106
+    this.shortcutForm = this.fb.group({
107
+      targetOffice: [null, [this.targetOfficeShortCutValidator]],
108
+      originOffice: [null, [this.originOfficeShortCutValidator]],
109
+    });
110
+  }
111
+
112
+  // 起点科室校验
113
+  originOfficeShortCutValidator = (control: FormControl): { [s: string]: boolean } => {
114
+    if (this.shortcutForm && this.shortcutForm.value && !control.value && (this.buildMsg.status == 100013 || this.buildMsg.status == 100015)) {
115
+      return { required: true };
116
+    }
117
+  };
118
+  // 目标科室校验
119
+  targetOfficeShortCutValidator = (control: FormControl): { [s: string]: boolean } => {
120
+    if (this.shortcutForm && this.shortcutForm.value && !control.value && (this.buildMsg.status == 100014 || this.buildMsg.status == 100015)) {
121
+      return { required: true };
122
+    }
123
+  };
124
+
125
+  // 添加备注
126
+  addRemarks(item) {
127
+    this.remarksEle.nativeElement.focus();
128
+    this.workOrderRemark += item;
129
+  }
130
+
131
+  // 目标科室输入搜索
132
+  searchDept(type, msg, e) {
133
+    this.getDeptList(type, msg, e);
134
+  }
135
+
136
+  // 获取科室
137
+  isLoading:boolean = false;
138
+  getDeptList(type, msg, key?): void {
139
+    // 返回值的status是201 则是默认发起科室
140
+    // 返回值的status是202 则是固定科室范围
141
+    // 返回值的status是203 则是固定科室
142
+    // 返回值的status是204 则是自主填写
143
+    // 返回值的status是205 则是固定科室类型
144
+    if (
145
+      (type == "start" && msg.start.start.departmentStrategy == 202) ||
146
+      (type == "target" && msg.end.end.departmentStrategy == 202)
147
+    ) {
148
+      return; //固定科室范围禁用搜索
149
+    }
150
+    let postData: any = {
151
+      idx: 0,
152
+      sum: 20,
153
+      department: {
154
+        searchType: 1,
155
+        cascadeHosId: this.tool.getCurrentHospital().id
156
+      },
157
+    };
158
+    if (key) {
159
+      postData.department["keyWord"] = key;
160
+    }
161
+    if (type == "start" && msg.start.start.departmentStrategy == 205) {
162
+      postData.department["type"] = { id: msg.start.start.startTypeId };
163
+    } else if (type == "target" && msg.end.end.departmentStrategy == 205) {
164
+      postData.department["type"] = { id: msg.end.end.endTypeId };
165
+    }
166
+    if (type == "start") {
167
+      postData.department["ids"] = msg.start.deptIds || "";
168
+    } else if (type == "target") {
169
+      postData.department["ids"] = msg.end.deptIds || "";
170
+    }
171
+    postData.department.nurseSign = 1;
172
+    this.isLoading = true;
173
+    this.mainService
174
+      .getFetchDataList("data", "department", postData)
175
+      .subscribe((data) => {
176
+        this.isLoading = false;
177
+        if (type == "target") {
178
+          msg.end.end.list = data.list;
179
+        } else if (type == "start") {
180
+          msg.start.start.list = data.list;
181
+        }
182
+      });
183
+  }
184
+
185
+  // 取消
186
+  cancel() {
187
+    this.cancelModal.emit(false)
188
+  }
189
+  // 确认
190
+  confirm() {
191
+    let taskType = this.buildQuickConfirmData.taskTypeList.find(item => item.id == this.activeTabId);
192
+    this.confirmModal.emit({taskType, shortcutForm: this.shortcutForm, buildMsg: this.buildMsg, workOrderRemark: this.workOrderRemark})
193
+  }
194
+}

+ 73 - 410
src/app/views/hushijiandan/hushijiandan.component.html

@@ -349,13 +349,13 @@
349 349
                 </div>
350 350
                 <div class="nums borderB nurseNav" nz-row *ngSwitchDefault>
351 351
                   <div class="nav">
352
-                    <div class="navItem" *ngFor="let item of pagePermissionConfigList">
352
+                    <div class="navItem" *ngFor="let item of pagePermissionConfigList" (click)="buildQuick(item)">
353 353
                       <div class="navIcon" [ngClass]="backColorComputed(item.icon.extra1)"><i class="icon_transport" [ngClass]="[item.icon.extra1]"></i></div>
354 354
                       <div class="navContent">
355 355
                         <h2>{{item.name}}</h2>
356 356
                         <div class="navSpecimen" *ngIf="item.urgentFlag || item.ordinaryFlag">
357
-                          <span *ngIf="item.urgentFlag">急:<span class="red">{{ specimenWorkOrderMsg.specimenCount ? specimenWorkOrderMsg.specimenCount.urgent : 0 }}</span></span>
358
-                          <span *ngIf="item.ordinaryFlag">普:{{ specimenWorkOrderMsg.specimenCount ? specimenWorkOrderMsg.specimenCount.noUrgent : 0 }}</span>
357
+                          <span *ngIf="item.urgentFlag" (click)="changeSpeDetail($event, 1)">急:<span class="red">{{ specimenWorkOrderMsg.specimenCount ? specimenWorkOrderMsg.specimenCount.urgent : 0 }}</span></span>
358
+                          <span *ngIf="item.ordinaryFlag" (click)="changeSpeDetail($event, 0)">普:{{ specimenWorkOrderMsg.specimenCount ? specimenWorkOrderMsg.specimenCount.noUrgent : 0 }}</span>
359 359
                         </div>
360 360
                       </div>
361 361
                     </div>
@@ -531,52 +531,21 @@
531 531
                     <div class="otherBoxInner">
532 532
                       <div class="otherBox-nav">
533 533
                         <div class="otherBox-nav__head">
534
-                          <input
535
-                            nz-input
536
-                            placeholder="请输入关键字"
537
-                            [(ngModel)]="otherSearch"
538
-                            (ngModelChange)="otherSearchChange()"
539
-                          />
534
+                          <input nz-input placeholder="请输入关键字" [(ngModel)]="otherSearch" (ngModelChange)="otherSearchChange()" />
540 535
                         </div>
541
-                        <overlay-scrollbars
542
-                          #osComponentRef2
543
-                          class="otherBox-nav__main"
544
-                          [ngStyle]="{ height: '100%' }"
545
-                        >
546
-                          <div
547
-                            class="otherBox-nav__mainInner"
548
-                            *ngIf="!oLoading && othersList[checkedTableType]?.length > 0"
549
-                          >
550
-                            <div
551
-                              [sortablejs]="othersList[checkedTableType]"
552
-                              [sortablejsOptions]="othersListOptions"
553
-                              class="w100"
554
-                            >
555
-                              <div
556
-                                class="otherBox-nav__mainItem"
557
-                                *ngFor="let item of othersList[checkedTableType]"
558
-                                (click)="otherClick(item)"
559
-                                [ngClass]="{ active: selectOtherId == item.id }"
560
-                                [title]="item.taskName"
561
-                              >
536
+                        <overlay-scrollbars #osComponentRef2 class="otherBox-nav__main" [ngStyle]="{ height: '100%' }">
537
+                          <div class="otherBox-nav__mainInner" *ngIf="!oLoading && othersList[checkedTableType]?.length > 0">
538
+                            <div [sortablejs]="othersList[checkedTableType]" [sortablejsOptions]="othersListOptions" class="w100">
539
+                              <div class="otherBox-nav__mainItem" *ngFor="let item of othersList[checkedTableType]" (click)="otherClick(item)" [ngClass]="{ active: selectOtherId == item.id }" [title]="item.taskName">
562 540
                                 {{ item.taskName }}
563 541
                               </div>
564 542
                             </div>
565 543
                           </div>
566
-                          <div
567
-                            class="otherBox-nav__mainInner noData"
568
-                            *ngIf="!oLoading && othersList[checkedTableType].length == 0"
569
-                          >
544
+                          <div class="otherBox-nav__mainInner noData" *ngIf="!oLoading && othersList[checkedTableType].length == 0">
570 545
                             暂无数据
571 546
                           </div>
572
-                          <div
573
-                            class="otherBox-nav__mainInner oLoading"
574
-                            *ngIf="oLoading"
575
-                          >
576
-                            <img
577
-                              src="../../../assets/images/loading.gif"
578
-                              alt=""
579
-                            />
547
+                          <div class="otherBox-nav__mainInner oLoading" *ngIf="oLoading">
548
+                            <img src="../../../assets/images/loading.gif" alt="" />
580 549
                             <div>加载中...</div>
581 550
                           </div>
582 551
                         </overlay-scrollbars>
@@ -586,147 +555,43 @@
586 555
                           <!-- -----------------start------------------ -->
587 556
                           <div class="modalBody_box">
588 557
                             <div class="modalBody">
589
-                              <div
590
-                                class="modalBody_left"
591
-                                *ngIf="!nLoading && selectOtherId"
592
-                              >
593
-                                <overlay-scrollbars
594
-                                  class="modalBody_left_box"
595
-                                  #osComponentRef3
596
-                                  style="height: calc(100vh - 263px)"
597
-                                >
558
+                              <div class="modalBody_left" *ngIf="!nLoading && selectOtherId">
559
+                                <overlay-scrollbars class="modalBody_left_box" #osComponentRef3 style="height: calc(100vh - 263px)">
598 560
                                   <div class="modalBody_left_box">
599
-                                    <div
600
-                                      style="
601
-                                        flex:1 1 auto;
602
-                                        display: flex;
603
-                                        flex-direction: column;
604
-                                        justify-content: center;
605
-                                        align-items: center;
606
-                                      "
607
-                                    >
608
-                                      <div
609
-                                        class="content txtC"
610
-                                        *ngIf="
611
-                                          buildMsg.status == 100013 ||
612
-                                          buildMsg.status == 100014 ||
613
-                                          buildMsg.status == 100015
614
-                                        "
615
-                                      >
616
-                                        <div
617
-                                          class="defeat"
618
-                                          [innerHTML]="buildMsg.msg"
619
-                                        ></div>
561
+                                    <div style="flex:1 1 auto; display: flex; flex-direction: column; justify-content: center; align-items: center;">
562
+                                      <div class="content txtC" *ngIf="buildMsg.status == 100013 || buildMsg.status == 100014 || buildMsg.status == 100015">
563
+                                        <div class="defeat" [innerHTML]="buildMsg.msg"></div>
620 564
                                       </div>
621 565
                                       <!-- 200 该任务类型运送过程暂未配置 -->
622
-                                      <div
623
-                                        class="content txtC"
624
-                                        *ngIf="
625
-                                          buildMsg.status == 200 &&
626
-                                          buildType == 'bb'
627
-                                        "
628
-                                      >
629
-                                        <div
630
-                                          class="defeat"
631
-                                          [innerHTML]="buildMsg.msg"
632
-                                        ></div>
566
+                                      <div class="content txtC" *ngIf="buildMsg.status == 200 && buildType == 'bb'">
567
+                                        <div class="defeat" [innerHTML]="buildMsg.msg"></div>
633 568
                                       </div>
634 569
                                       <!-- 100009 该任务类型运送过程暂未配置 -->
635
-                                      <div
636
-                                        class="content txtC"
637
-                                        *ngIf="buildMsg.status == 100009"
638
-                                      >
639
-                                        <div
640
-                                          class="defeat"
641
-                                          [innerHTML]="buildMsg.msg"
642
-                                        ></div>
570
+                                      <div class="content txtC" *ngIf="buildMsg.status == 100009">
571
+                                        <div class="defeat" [innerHTML]="buildMsg.msg"></div>
643 572
                                       </div>
644 573
                                       <!-- 100010 系统未查询到该任务类型关联信息 -->
645
-                                      <div
646
-                                        class="content txtC"
647
-                                        *ngIf="buildMsg.status == 100010"
648
-                                      >
649
-                                        <div
650
-                                          class="defeat"
651
-                                          [innerHTML]="buildMsg.msg"
652
-                                        ></div>
574
+                                      <div class="content txtC" *ngIf="buildMsg.status == 100010">
575
+                                        <div class="defeat" [innerHTML]="buildMsg.msg"></div>
653 576
                                       </div>
654 577
                                       <!-- 100012 (护士端一键建单展示策略)直接取msg -->
655
-                                      <div
656
-                                        class="content txtC"
657
-                                        *ngIf="buildMsg.status == 100012"
658
-                                      >
659
-                                        <div
660
-                                          class="defeat"
661
-                                          [innerHTML]="buildMsg.msg"
662
-                                        ></div>
578
+                                      <div class="content txtC" *ngIf="buildMsg.status == 100012">
579
+                                        <div class="defeat" [innerHTML]="buildMsg.msg"></div>
663 580
                                       </div>
664 581
                                       <!-- 100013 (护士端一键建单展示策略)取起点科室,和mgs值展示 -->
665
-                                      <div
666
-                                        class="content"
667
-                                        *ngIf="buildMsg.status == 100013"
668
-                                      >
582
+                                      <div class="content" *ngIf="buildMsg.status == 100013">
669 583
                                         <div>
670
-                                          <form
671
-                                            nz-form
672
-                                            [formGroup]="shortcutForm"
673
-                                            class="shortcutForm"
674
-                                          >
584
+                                          <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
675 585
                                             <nz-form-item>
676
-                                              <nz-form-label
677
-                                                [nzSm]="6"
678
-                                                [nzXs]="24"
679
-                                                nzRequired
680
-                                                nzFor="originOffice"
681
-                                                >起点科室
682
-                                              </nz-form-label>
683
-                                              <nz-form-control
684
-                                                nzErrorTip="请选择起点科室!"
685
-                                              >
686
-                                                <nz-select
687
-                                                  class="w100"
688
-                                                  formControlName="originOffice"
689
-                                                  [nzDropdownMatchSelectWidth]="
690
-                                                    false
691
-                                                  "
692
-                                                  nzServerSearch
693
-                                                  nzShowSearch
694
-                                                  (nzOnSearch)="
695
-                                                    searchDept(
696
-                                                      'start',
697
-                                                      buildMsg,
698
-                                                      $event
699
-                                                    )
700
-                                                  "
701
-                                                  nzPlaceHolder="请选择起点科室"
702
-                                                >
703
-                                                  <ng-container
704
-                                                    *ngFor="
705
-                                                      let option of buildMsg.start
706
-                                                        .start.list
707
-                                                    "
708
-                                                  >
709
-                                                    <nz-option
710
-                                                      *ngIf="true"
711
-                                                      [nzLabel]="
712
-                                                        deptDisplay == 2
713
-                                                          ? option.deptalias
714
-                                                          : option.dept
715
-                                                      "
716
-                                                      [nzValue]="option.id"
717
-                                                    >
586
+                                              <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
587
+                                              <nz-form-control nzErrorTip="请选择起点科室!">
588
+                                                <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
589
+                                                  <ng-container *ngFor="let option of buildMsg.start.start.list">
590
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
718 591
                                                     </nz-option>
719 592
                                                   </ng-container>
720
-                                                  <nz-option
721
-                                                    *ngIf="false"
722
-                                                    nzDisabled
723
-                                                    nzCustomContent
724
-                                                  >
725
-                                                    <i
726
-                                                      nz-icon
727
-                                                      nzType="loading"
728
-                                                      class="loading-icon"
729
-                                                    ></i>
593
+                                                  <nz-option *ngIf="false" nzDisabled nzCustomContent>
594
+                                                    <i nz-icon nzType="loading" class="loading-icon"></i>
730 595
                                                     搜索中...
731 596
                                                   </nz-option>
732 597
                                                 </nz-select>
@@ -736,72 +601,19 @@
736 601
                                         </div>
737 602
                                       </div>
738 603
                                       <!-- 100014 (护士端一键建单展示策略)取终点科室和msg 值展示 -->
739
-                                      <div
740
-                                        class="content"
741
-                                        *ngIf="buildMsg.status == 100014"
742
-                                      >
604
+                                      <div class="content" *ngIf="buildMsg.status == 100014">
743 605
                                         <div>
744
-                                          <form
745
-                                            nz-form
746
-                                            [formGroup]="shortcutForm"
747
-                                            class="shortcutForm"
748
-                                          >
606
+                                          <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
749 607
                                             <nz-form-item>
750
-                                              <nz-form-label
751
-                                                [nzSm]="6"
752
-                                                [nzXs]="24"
753
-                                                nzRequired
754
-                                                nzFor="targetOffice"
755
-                                                >目标科室
756
-                                              </nz-form-label>
757
-                                              <nz-form-control
758
-                                                nzErrorTip="请选择目标科室!"
759
-                                              >
760
-                                                <nz-select
761
-                                                  class="w100"
762
-                                                  formControlName="targetOffice"
763
-                                                  [nzDropdownMatchSelectWidth]="
764
-                                                    false
765
-                                                  "
766
-                                                  nzServerSearch
767
-                                                  nzShowSearch
768
-                                                  (nzOnSearch)="
769
-                                                    searchDept(
770
-                                                      'target',
771
-                                                      buildMsg,
772
-                                                      $event
773
-                                                    )
774
-                                                  "
775
-                                                  nzAllowClear
776
-                                                  nzPlaceHolder="请选择目标科室"
777
-                                                >
778
-                                                  <ng-container
779
-                                                    *ngFor="
780
-                                                      let option of buildMsg.end
781
-                                                        .end.list
782
-                                                    "
783
-                                                  >
784
-                                                    <nz-option
785
-                                                      *ngIf="true"
786
-                                                      [nzLabel]="
787
-                                                        deptDisplay == 2
788
-                                                          ? option.deptalias
789
-                                                          : option.dept
790
-                                                      "
791
-                                                      [nzValue]="option.id"
792
-                                                    >
608
+                                              <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
609
+                                              <nz-form-control nzErrorTip="请选择目标科室!">
610
+                                                <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('target', buildMsg, $event)" nzAllowClear nzPlaceHolder="请选择目标科室">
611
+                                                  <ng-container *ngFor="let option of buildMsg.end.end.list">
612
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
793 613
                                                     </nz-option>
794 614
                                                   </ng-container>
795
-                                                  <nz-option
796
-                                                    *ngIf="false"
797
-                                                    nzDisabled
798
-                                                    nzCustomContent
799
-                                                  >
800
-                                                    <i
801
-                                                      nz-icon
802
-                                                      nzType="loading"
803
-                                                      class="loading-icon"
804
-                                                    ></i>
615
+                                                  <nz-option *ngIf="false" nzDisabled nzCustomContent>
616
+                                                    <i nz-icon nzType="loading" class="loading-icon"></i>
805 617
                                                     搜索中...
806 618
                                                   </nz-option>
807 619
                                                 </nz-select>
@@ -811,131 +623,34 @@
811 623
                                         </div>
812 624
                                       </div>
813 625
                                       <!-- 100015 (护士端一键建单展策略)起点科室和终点科室下拉展示 -->
814
-                                      <div
815
-                                        class="content"
816
-                                        *ngIf="buildMsg.status == 100015"
817
-                                      >
626
+                                      <div class="content" *ngIf="buildMsg.status == 100015">
818 627
                                         <div>
819
-                                          <form
820
-                                            nz-form
821
-                                            [formGroup]="shortcutForm"
822
-                                            class="shortcutForm"
823
-                                          >
628
+                                          <form nz-form [formGroup]="shortcutForm" class="shortcutForm">
824 629
                                             <nz-form-item>
825
-                                              <nz-form-label
826
-                                                [nzSm]="6"
827
-                                                [nzXs]="24"
828
-                                                nzRequired
829
-                                                nzFor="originOffice"
830
-                                                >起点科室
831
-                                              </nz-form-label>
832
-                                              <nz-form-control
833
-                                                nzErrorTip="请选择起点科室!"
834
-                                              >
835
-                                                <nz-select
836
-                                                  class="w100"
837
-                                                  formControlName="originOffice"
838
-                                                  [nzDropdownMatchSelectWidth]="
839
-                                                    false
840
-                                                  "
841
-                                                  nzServerSearch
842
-                                                  nzShowSearch
843
-                                                  (nzOnSearch)="
844
-                                                    searchDept(
845
-                                                      'start',
846
-                                                      buildMsg,
847
-                                                      $event
848
-                                                    )
849
-                                                  "
850
-                                                  nzPlaceHolder="请选择起点科室"
851
-                                                >
852
-                                                  <ng-container
853
-                                                    *ngFor="
854
-                                                      let option of buildMsg.start
855
-                                                        .start.list
856
-                                                    "
857
-                                                  >
858
-                                                    <nz-option
859
-                                                      *ngIf="true"
860
-                                                      [nzLabel]="
861
-                                                        deptDisplay == 2
862
-                                                          ? option.deptalias
863
-                                                          : option.dept
864
-                                                      "
865
-                                                      [nzValue]="option.id"
866
-                                                    >
630
+                                              <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="originOffice">起点科室</nz-form-label>
631
+                                              <nz-form-control nzErrorTip="请选择起点科室!">
632
+                                                <nz-select class="w100" formControlName="originOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('start', buildMsg, $event)" nzPlaceHolder="请选择起点科室">
633
+                                                  <ng-container *ngFor="let option of buildMsg.start.start.list">
634
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
867 635
                                                     </nz-option>
868 636
                                                   </ng-container>
869
-                                                  <nz-option
870
-                                                    *ngIf="false"
871
-                                                    nzDisabled
872
-                                                    nzCustomContent
873
-                                                  >
874
-                                                    <i
875
-                                                      nz-icon
876
-                                                      nzType="loading"
877
-                                                      class="loading-icon"
878
-                                                    ></i>
637
+                                                  <nz-option *ngIf="false" nzDisabled nzCustomContent>
638
+                                                    <i nz-icon nzType="loading" class="loading-icon"></i>
879 639
                                                     搜索中...
880 640
                                                   </nz-option>
881 641
                                                 </nz-select>
882 642
                                               </nz-form-control>
883 643
                                             </nz-form-item>
884 644
                                             <nz-form-item>
885
-                                              <nz-form-label
886
-                                                [nzSm]="6"
887
-                                                [nzXs]="24"
888
-                                                nzRequired
889
-                                                nzFor="targetOffice"
890
-                                                >目标科室
891
-                                              </nz-form-label>
892
-                                              <nz-form-control
893
-                                                nzErrorTip="请选择目标科室!"
894
-                                              >
895
-                                                <nz-select
896
-                                                  class="w100"
897
-                                                  formControlName="targetOffice"
898
-                                                  [nzDropdownMatchSelectWidth]="
899
-                                                    false
900
-                                                  "
901
-                                                  nzServerSearch
902
-                                                  nzShowSearch
903
-                                                  (nzOnSearch)="
904
-                                                    searchDept(
905
-                                                      'target',
906
-                                                      buildMsg,
907
-                                                      $event
908
-                                                    )
909
-                                                  "
910
-                                                  nzPlaceHolder="请选择目标科室"
911
-                                                >
912
-                                                  <ng-container
913
-                                                    *ngFor="
914
-                                                      let option of buildMsg.end
915
-                                                        .end.list
916
-                                                    "
917
-                                                  >
918
-                                                    <nz-option
919
-                                                      *ngIf="true"
920
-                                                      [nzLabel]="
921
-                                                        deptDisplay == 2
922
-                                                          ? option.deptalias
923
-                                                          : option.dept
924
-                                                      "
925
-                                                      [nzValue]="option.id"
926
-                                                    >
645
+                                              <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="targetOffice">目标科室</nz-form-label>
646
+                                              <nz-form-control nzErrorTip="请选择目标科室!">
647
+                                                <nz-select class="w100" formControlName="targetOffice" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchDept('target', buildMsg, $event)" nzPlaceHolder="请选择目标科室">
648
+                                                  <ng-container *ngFor="let option of buildMsg.end.end.list">
649
+                                                    <nz-option *ngIf="true" [nzLabel]="deptDisplay == 2 ? option.deptalias : option.dept" [nzValue]="option.id">
927 650
                                                     </nz-option>
928 651
                                                   </ng-container>
929
-                                                  <nz-option
930
-                                                    *ngIf="false"
931
-                                                    nzDisabled
932
-                                                    nzCustomContent
933
-                                                  >
934
-                                                    <i
935
-                                                      nz-icon
936
-                                                      nzType="loading"
937
-                                                      class="loading-icon"
938
-                                                    ></i>
652
+                                                  <nz-option *ngIf="false" nzDisabled nzCustomContent>
653
+                                                    <i nz-icon nzType="loading" class="loading-icon"></i>
939 654
                                                     搜索中...
940 655
                                                   </nz-option>
941 656
                                                 </nz-select>
@@ -945,10 +660,7 @@
945 660
                                         </div>
946 661
                                       </div>
947 662
                                       <!-- 工号 -->
948
-                                      <div
949
-                                        style="width: 100%; margin: 10px auto 0"
950
-                                        *ngIf="buildMsg.reserveUserSwitch == 1"
951
-                                      >
663
+                                      <div style="width: 100%; margin: 10px auto 0" *ngIf="buildMsg.reserveUserSwitch == 1">
952 664
                                         <p><span class="red">*</span>工号:</p>
953 665
                                         <nz-select class="w100" [nzDropdownMatchSelectWidth]="false" nzServerSearch nzShowSearch (nzOnSearch)="searchAccount($event)" nzPlaceHolder="请选择工号" [(ngModel)]="account" (ngModelChange)="changeAccount($event)">
954 666
                                           <ng-container *ngFor="let option of accountList">
@@ -962,88 +674,36 @@
962 674
                                         </nz-select>
963 675
                                       </div>
964 676
                                       <!-- 工单备注: -->
965
-                                      <div
966
-                                        style="width: 100%; margin: 10px auto 0"
967
-                                        *ngIf="buildMsg.remarksSwitch == 1"
968
-                                      >
677
+                                      <div style="width: 100%; margin: 10px auto 0" *ngIf="buildMsg.remarksSwitch == 1">
969 678
                                         <p>工单备注:</p>
970
-                                        <textarea
971
-                                          nz-input
972
-                                          [placeholder]="workOrderRemarkTips"
973
-                                          [nzAutosize]="{
974
-                                            minRows: 3,
975
-                                            maxRows: 5
976
-                                          }"
977
-                                          maxlength="100"
978
-                                          [(ngModel)]="workOrderRemark"
979
-                                          #remarksEle
980
-                                        ></textarea>
981
-                                        <p
982
-                                          class="mt8 mb8"
983
-                                          *ngIf="customRemarks.length"
984
-                                        >
679
+                                        <textarea nz-input [placeholder]="workOrderRemarkTips" [nzAutosize]="{minRows: 3, maxRows: 5}" maxlength="100" [(ngModel)]="workOrderRemark" #remarksEle></textarea>
680
+                                        <p class="mt8 mb8" *ngIf="customRemarks.length">
985 681
                                           快捷输入:
986 682
                                         </p>
987 683
                                         <div *ngIf="customRemarks.length">
988
-                                          <span
989
-                                            class="addRemarks"
990
-                                            *ngFor="let item of customRemarks"
991
-                                            (click)="addRemarks(item)"
992
-                                            >【{{ item }}】</span
993
-                                          >
684
+                                          <span class="addRemarks" *ngFor="let item of customRemarks" (click)="addRemarks(item)">【{{ item }}】</span>
994 685
                                         </div>
995
-                                        <p
996
-                                          class="mt8 mb8"
997
-                                          *ngIf="historyCustomRemarks.length"
998
-                                        >
686
+                                        <p class="mt8 mb8" *ngIf="historyCustomRemarks.length">
999 687
                                           历史输入:
1000 688
                                         </p>
1001 689
                                         <div *ngIf="historyCustomRemarks.length">
1002
-                                          <span
1003
-                                            class="addRemarks"
1004
-                                            *ngFor="
1005
-                                              let item of historyCustomRemarks
1006
-                                            "
1007
-                                            (click)="addRemarks(item)"
1008
-                                            >【{{ item }}】</span
1009
-                                          >
690
+                                          <span class="addRemarks" *ngFor="let item of historyCustomRemarks" (click)="addRemarks(item)">【{{item }}】</span>
1010 691
                                         </div>
1011 692
                                       </div>
1012 693
                                     </div>
1013
-                                    <div
1014
-                                      *ngIf="selectOtherId"
1015
-                                      class="btns display_flex justify-content_flex-center"
1016
-                                    >
1017
-                                      <button
1018
-                                        *ngIf="
1019
-                                          buildMsg.status != 100009 &&
1020
-                                          buildMsg.status != 100010
1021
-                                        "
1022
-                                        nz-button
1023
-                                        nzType="primary"
1024
-                                        [nzLoading]="loading5"
1025
-                                        (click)="confirmShortcut()"
1026
-                                      >
694
+                                    <div *ngIf="selectOtherId" class="btns display_flex justify-content_flex-center">
695
+                                      <button *ngIf="buildMsg.status != 100009 && buildMsg.status != 100010" nz-button nzType="primary" [nzLoading]="loading5" (click)="confirmShortcut()">
1027 696
                                         确认
1028 697
                                       </button>
1029 698
                                     </div>
1030 699
                                   </div>
1031 700
                                 </overlay-scrollbars>
1032 701
                               </div>
1033
-                              <div
1034
-                                class="modalBody_left nLoading"
1035
-                                *ngIf="nLoading"
1036
-                              >
1037
-                                <img
1038
-                                  src="../../../assets/images/loading.gif"
1039
-                                  alt=""
1040
-                                />
702
+                              <div class="modalBody_left nLoading" *ngIf="nLoading">
703
+                                <img src="../../../assets/images/loading.gif" alt="" />
1041 704
                                 <div>加载中...</div>
1042 705
                               </div>
1043
-                              <div
1044
-                                class="modalBody_left noData"
1045
-                                *ngIf="!nLoading && !selectOtherId"
1046
-                              >
706
+                              <div class="modalBody_left noData" *ngIf="!nLoading && !selectOtherId">
1047 707
                                 暂无数据
1048 708
                               </div>
1049 709
                               <div class="modalBody_right">
@@ -3406,3 +3066,6 @@
3406 3066
     </label>
3407 3067
   </div>
3408 3068
 </nz-modal>
3069
+
3070
+<!-- 快捷方式建单弹窗 -->
3071
+<app-build-quick-confirm *ngIf="isShowBuildQuickConfirm" [buildQuickConfirmData]="buildQuickConfirmData" (cancelModal)="cancelBuildQuickConfirm($event)" (confirmModal)="confirmBuildQuickConfirm($event)" [loading5]="loadingQuick"></app-build-quick-confirm>

+ 5 - 0
src/app/views/hushijiandan/hushijiandan.component.less

@@ -1359,6 +1359,11 @@
1359 1359
                     display: flex;
1360 1360
                     align-items: center;
1361 1361
                     cursor: pointer;
1362
+                    .navContent{
1363
+                      display: flex;
1364
+                      flex-direction: column;
1365
+                      height: 40px;
1366
+                    }
1362 1367
                     .navIcon{
1363 1368
                       color: #fff;
1364 1369
                       border-radius: 4px;

+ 50 - 14
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -599,6 +599,7 @@ export class HushijiandanComponent implements OnInit {
599 599
             v.ordinaryFlag = urgentIds.some(v => v == 2);
600 600
           }
601 601
         })
602
+        this.pagePermissionConfigList = pagePermissionConfigList;
602 603
 			});
603 604
   }
604 605
   // 获取系统配置
@@ -939,7 +940,7 @@ export class HushijiandanComponent implements OnInit {
939 940
   // 关闭其他建单保存结果
940 941
   closeModel(e) {
941 942
     console.log(e);
942
-    if (e === "other") {
943
+    if (e === "other" || e === "ordinary") {
943 944
       this.osComponentRef2.osInstance().scroll({ x: 0, y: this.positionY });
944 945
       this.getOrderList();
945 946
     } else if (e === "bb") {
@@ -3243,7 +3244,8 @@ export class HushijiandanComponent implements OnInit {
3243 3244
 
3244 3245
   // 一键发起建单保存
3245 3246
   loading5 = false;
3246
-  async confirmShortcut() {
3247
+  async confirmShortcut(shortcutForm?, buildType?) {
3248
+    shortcutForm && (this.shortcutForm = shortcutForm);
3247 3249
     var that = this;
3248 3250
     for (const i in that.shortcutForm.controls) {
3249 3251
       that.shortcutForm.controls[i].markAsDirty();
@@ -3252,7 +3254,7 @@ export class HushijiandanComponent implements OnInit {
3252 3254
     console.log(that.shortcutForm);
3253 3255
     if (that.shortcutForm.invalid) return;
3254 3256
     that.loading5 = true;
3255
-    that.buildType = "other";
3257
+    that.buildType = buildType || "other";
3256 3258
     if(this.buildMsg.reserveUserSwitch == 1 && !this.userAccount){
3257 3259
       this.message.info('请选择工号!');
3258 3260
       this.loading5 = false;
@@ -3270,6 +3272,7 @@ export class HushijiandanComponent implements OnInit {
3270 3272
       that.loading5 = false;
3271 3273
       return;
3272 3274
     }
3275
+    shortcutForm && (this.isShowBuildQuickConfirm = false);
3273 3276
     this.otherBuildOrder();
3274 3277
   }
3275 3278
   otherBuildOrder(otherList?){
@@ -3316,8 +3319,8 @@ export class HushijiandanComponent implements OnInit {
3316 3319
       .subscribe((data) => {
3317 3320
         this.message.remove(this.jdFlagId);
3318 3321
         that.loading5 = false;
3319
-        if (data.status == 200 && that.buildType == "other") {
3320
-          that.showPromptModal("创建", true, "", "other");
3322
+        if (data.status == 200 && (that.buildType == "other" || that.buildType == "ordinary")) {
3323
+          that.showPromptModal("创建", true, "", that.buildType);
3321 3324
           this.getTodayNum();
3322 3325
         } else if (data.status == 200 && that.buildType == "bb") {
3323 3326
           that.showPromptModal("创建", true, "", "bb");
@@ -3328,7 +3331,7 @@ export class HushijiandanComponent implements OnInit {
3328 3331
         } else if (data.status == 1000033) {
3329 3332
           //重复建单那策略
3330 3333
           this.repeatMsg = data.msg;
3331
-          this.showDelModal(postData, "other");
3334
+          this.showDelModal(postData, that.buildType);
3332 3335
         } else {
3333 3336
           that.showPromptModal("创建", false, data.msg);
3334 3337
         }
@@ -3472,7 +3475,8 @@ export class HushijiandanComponent implements OnInit {
3472 3475
     this.limitTimeItem.fun2.call(this);
3473 3476
   }
3474 3477
   // 一键发起建单保存
3475
-  confirmShortcut1() {
3478
+  confirmShortcut1(shortcutForm?) {
3479
+    shortcutForm && (this.shortcutForm1 = shortcutForm);
3476 3480
     var that = this;
3477 3481
     for (const i in that.shortcutForm1.controls) {
3478 3482
       that.shortcutForm1.controls[i].markAsDirty();
@@ -3480,6 +3484,7 @@ export class HushijiandanComponent implements OnInit {
3480 3484
     }
3481 3485
     console.log(that.shortcutForm1);
3482 3486
     if (that.shortcutForm1.invalid) return;
3487
+    shortcutForm && (this.isShowBuildQuickConfirm = false);
3483 3488
     that.btnLoading = true;
3484 3489
     let postData;
3485 3490
     if (that.buildType == "bb") {
@@ -3572,8 +3577,8 @@ export class HushijiandanComponent implements OnInit {
3572 3577
   confirmRepeatFun(data){
3573 3578
     if (this.sourceType === "specimen") {
3574 3579
       // 标本建单
3575
-      if (data.status == 200 && this.buildType == "other") {
3576
-        this.showPromptModal("创建", true, "", "other");
3580
+      if (data.status == 200 && (this.buildType == "other" || this.buildType == "ordinary")) {
3581
+        this.showPromptModal("创建", true, "", this.buildType);
3577 3582
         this.getTodayNum();
3578 3583
       } else if (data.status == 200 && this.buildType == "bb") {
3579 3584
         this.showPromptModal("创建", true, "", "bb");
@@ -3586,10 +3591,10 @@ export class HushijiandanComponent implements OnInit {
3586 3591
       } else {
3587 3592
         this.showPromptModal("创建", false, data.msg);
3588 3593
       }
3589
-    } else if (this.sourceType === "other") {
3594
+    } else if (this.sourceType === "other" || this.sourceType === "ordinary") {
3590 3595
       // 其他建单
3591
-      if (data.status == 200 && this.buildType == "other") {
3592
-        this.showPromptModal("创建", true, "", "other");
3596
+      if (data.status == 200 && (this.buildType == "other" || this.buildType == "ordinary")) {
3597
+        this.showPromptModal("创建", true, "", this.buildType);
3593 3598
         this.getTodayNum();
3594 3599
       } else if (data.status == 200 && this.buildType == "bb") {
3595 3600
         this.showPromptModal("创建", true, "", "bb");
@@ -4117,8 +4122,9 @@ export class HushijiandanComponent implements OnInit {
4117 4122
   detailModel: boolean = false;
4118 4123
   loading33: boolean = false;
4119 4124
   detailList: any = [];
4120
-  // 选择急查或普查(1是急标,2是普标)
4121
-  changeSpeDetail(speDetailType: number) {
4125
+  // 选择急查或普查(1是急标,0是普标)
4126
+  changeSpeDetail(e, speDetailType: number) {
4127
+    e.stopPropagation();
4122 4128
     this.detailModel = true;
4123 4129
     let user = JSON.parse(localStorage.getItem("user"));
4124 4130
     let postData = {
@@ -4818,4 +4824,34 @@ export class HushijiandanComponent implements OnInit {
4818 4824
     this.mediumRegFlag = !this.enoughRegFlag && !this.strongRegFlag;
4819 4825
     console.log(this.enoughRegFlag,this.mediumRegFlag,this.strongRegFlag);
4820 4826
   }
4827
+
4828
+  // 快捷方式建单
4829
+  isShowBuildQuickConfirm:boolean = false;
4830
+  buildQuickConfirmData:any = {};
4831
+  buildQuick(data){
4832
+    this.buildQuickConfirmData = data || {};
4833
+    this.isShowBuildQuickConfirm = true;
4834
+  }
4835
+  cancelBuildQuickConfirm(e){
4836
+    this.isShowBuildQuickConfirm = false;
4837
+  }
4838
+  loadingQuick:boolean = false;
4839
+  confirmBuildQuickConfirm(options){
4840
+    let { taskType, shortcutForm, buildMsg, workOrderRemark } = options;
4841
+    if(taskType.associationType.value === 'other' || taskType.associationType.value === 'ordinary'){
4842
+      // 其他临床服务|万能交接
4843
+      this.loadingQuick = this.loading5;
4844
+      this.buildType = taskType.associationType.value;
4845
+      this.shortcutMsg = taskType;
4846
+      this.buildMsg = buildMsg;
4847
+      this.workOrderRemark = workOrderRemark;
4848
+      this.confirmShortcut(shortcutForm, taskType.associationType.value);
4849
+    }else if(taskType.associationType.value === 'specimen'){
4850
+      // 标本配送
4851
+      this.loadingQuick = this.btnLoading;
4852
+      this.buildType = "bb";
4853
+      this.shortcutMsg1 = taskType;
4854
+      this.confirmShortcut1(shortcutForm);
4855
+    }
4856
+  }
4821 4857
 }

+ 2 - 0
src/app/views/hushijiandan/hushijiandan.module.ts

@@ -7,11 +7,13 @@ import { ShareModule } from 'src/app/share/share.module';
7 7
 import { DragModule } from 'src/app/directives/drag/drag.module';
8 8
 import { SortablejsModule } from 'ngx-sortablejs';
9 9
 import { NgxPrintModule } from 'ngx-print';
10
+import { BuildQuickConfirmComponent } from 'src/app/components/build-quick-confirm/build-quick-confirm.component';
10 11
 
11 12
 
12 13
 @NgModule({
13 14
   declarations: [
14 15
     HushijiandanComponent,
16
+    BuildQuickConfirmComponent,
15 17
   ],
16 18
   imports: [
17 19
     CommonModule,