Browse Source

注意事项

seimin 5 months ago
parent
commit
03a7fc7b74

+ 68 - 0
src/app/components/configurationCenter/configuration-inspect/configuration-inspect.component.html

@@ -0,0 +1,68 @@
1
+<div class="content" id="dictionary">
2
+  <div class="contentInner">
3
+    <div class="address">
4
+      <overlay-scrollbars #osComponentRef1 class="contentBody">
5
+        <div class="contentItem" [title]="item.name" [ngClass]="{ active: item.id === activeDictionaryKey.id }" (click)="clickDictionaryKey(item)" *ngFor="let item of dictionaryKeyList">{{ item.name }}</div>
6
+      </overlay-scrollbars>
7
+    </div>
8
+    <div class="addressAssign">
9
+      <div class="contentBody">
10
+        <div class="dictionaryRow">
11
+          <div class="orders">排序号</div>
12
+          <div class="name">键</div>
13
+          <div class="value">值</div>
14
+        </div>
15
+        <overlay-scrollbars #osComponentRef2 class="contentBody2">
16
+          <form nz-form [formGroup]="validateDictionaryForm" class="w100">
17
+            <div class="dictionaryRow" *ngFor="let data of dictionaryList;let i = index;">
18
+              <div class="orders">
19
+                <nz-form-item>
20
+                  <nz-form-control [nzSpan]="24" nzErrorTip="请输入排序号!">
21
+                    <nz-input-group>
22
+                      <nz-input-number [formControlName]="'orders_' + data.id" class="ordersInput"></nz-input-number>
23
+                    </nz-input-group>
24
+                  </nz-form-control>
25
+                </nz-form-item>
26
+              </div>
27
+              <div class="name">
28
+                <nz-form-item>
29
+                  <nz-form-control [nzSpan]="24" nzErrorTip="请输入键!">
30
+                    <nz-input-group>
31
+                      <input [formControlName]="'name_' + data.id" nz-input class="nameInput">
32
+                    </nz-input-group>
33
+                  </nz-form-control>
34
+                </nz-form-item>
35
+              </div>
36
+              <div class="value">
37
+                <nz-form-item>
38
+                  <nz-form-control [nzSpan]="24" nzErrorTip="请输入值!">
39
+                    <nz-input-group>
40
+                      <input [formControlName]="'value_' + data.id" nz-input class="valueInput">
41
+                    </nz-input-group>
42
+                  </nz-form-control>
43
+                </nz-form-item>
44
+                <i class="icon_transport transport-tag27fuben ml8" (click)="addField(i)" *ngIf="!(activeDictionaryKey.key === 'incident_status' || activeDictionaryKey.key === 'incident_degree')"></i>
45
+                <i class="icon_transport transport-shanchu1 ml8" *ngIf="dictionaryList.length > 1 && !data.system && !(activeDictionaryKey.key === 'incident_status' || activeDictionaryKey.key === 'incident_degree')" (click)="removeField(data, i)"></i>
46
+              </div>
47
+            </div>
48
+          </form>
49
+        </overlay-scrollbars>
50
+      </div>
51
+      <div class="contentBtns">
52
+        <button nz-button nzType="primary" class="ml8" (click)="saveDictionary()">保存</button>
53
+      </div>
54
+    </div>
55
+  </div>
56
+</div>
57
+
58
+<!-- 操作成功/失败提示框 -->
59
+<app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
60
+  [info]="promptInfo">
61
+</app-prompt-modal>
62
+
63
+<!-- 删除模态框 -->
64
+<app-dialog-delete [delModal]="delModal" (hideDelModalEvent)="hideDelModal()" [btnLoading]="btnLoading"
65
+(confirmDelEvent)="confirmDel()" [content]="tipsMsg1"></app-dialog-delete>
66
+
67
+<!-- 遮罩 -->
68
+<app-mask *ngIf="maskFlag"></app-mask>

+ 178 - 0
src/app/components/configurationCenter/configuration-inspect/configuration-inspect.component.less

@@ -0,0 +1,178 @@
1
+@import "../../../../../src/theme.less";
2
+:host {
3
+  height: 100%;
4
+  display: flex;
5
+  flex-direction: column;
6
+  justify-content: space-between;
7
+  background-color: #F0F2F5;
8
+  .list-template__nzTable,
9
+  .list-template__bottom{
10
+    padding: 0!important;
11
+    border: none!important;
12
+    background: #fff!important;
13
+  }
14
+  .list-template{
15
+    width: 100%!important;
16
+    height: 100%!important;
17
+  }
18
+  #dictionary{
19
+    margin: 24px 16px;
20
+    .addressAssign{
21
+      flex: 7;
22
+    }
23
+    .contentItem{
24
+      margin: 0 16px;
25
+      padding: 8px;
26
+      text-align: center;
27
+      &.active{
28
+        background-color: @primary-color;
29
+        color: #fff;
30
+        border-radius: 4px;
31
+      }
32
+    }
33
+    .contentBody{
34
+      padding: 16px;
35
+      min-height: 0;
36
+      display: flex;
37
+      flex-direction: column;
38
+    }
39
+    .contentBody2{
40
+      flex: 1;
41
+    }
42
+    ::ng-deep .ant-form-item{
43
+      margin-bottom: 0;
44
+    }
45
+    .dictionaryRow{
46
+      display: flex;
47
+      align-items: center;
48
+      justify-content: center;
49
+      gap: 16px;
50
+      .orders{
51
+        flex: 1;
52
+        display: flex;
53
+        justify-content: flex-end;
54
+        align-items: center;
55
+      }
56
+      .name{
57
+        width: 100px;
58
+        display: flex;
59
+        justify-content: flex-end;
60
+        align-items: center;
61
+      }
62
+      .value{
63
+        flex: 3;
64
+        display: flex;
65
+        align-items: center;
66
+        .valueInput{
67
+          width: 600px;
68
+        }
69
+        .icon_transport{
70
+          font-size: 20px;
71
+          color: #8a8a8a;
72
+          cursor: pointer;
73
+        }
74
+      }
75
+
76
+    }
77
+  }
78
+  .content{
79
+    flex: 1;
80
+    min-height: 0;
81
+    display: flex;
82
+    flex-direction: column;
83
+    justify-content: space-between;
84
+    border: 1px solid #EEF3F9;
85
+    &.priority{
86
+      margin: 24px 118px 0;
87
+      background-color: #fff;
88
+      .contentInner{
89
+        padding: 48px 206px;
90
+        border: 1px solid #E8EBEF;
91
+      }
92
+    }
93
+    .contentItem{
94
+      padding: 4px 16px;
95
+      cursor: pointer;
96
+      overflow: hidden;
97
+      text-overflow: ellipsis;
98
+      white-space: nowrap;
99
+      &.active{
100
+        color: @primary-color;
101
+        background-color: #F0F6ED;
102
+        border-radius: 4px;
103
+      }
104
+    }
105
+    .contentInner{
106
+      flex: 1;
107
+      display: flex;
108
+      justify-content: space-between;
109
+      align-items: center;
110
+      padding: 0 16px;
111
+      gap: 16px;
112
+      .contentHead{
113
+        height: 45px;
114
+        display: flex;
115
+        justify-content: space-between;
116
+        align-items: center;
117
+        gap: 16px;
118
+        padding: 0 16px;
119
+        font-size: 16px;
120
+        font-weight: bold;
121
+        border-bottom: 1px solid #D9D9D9;
122
+        .title{
123
+          overflow: hidden;
124
+          text-overflow: ellipsis;
125
+          white-space: nowrap;
126
+        }
127
+        .btns{
128
+          flex-shrink: 0;
129
+        }
130
+      }
131
+      .contentBody{
132
+        padding: 0 8px;
133
+        margin: 4px 0;
134
+        flex: 1;
135
+      }
136
+      .address{
137
+        flex: 1;
138
+        height: 100%;
139
+        background: #FFFFFF;
140
+        border: 1px solid #E8EBEF;
141
+        display: flex;
142
+        flex-direction: column;
143
+        width: 0;
144
+      }
145
+      .addressAssign{
146
+        flex: 3;
147
+        height: 100%;
148
+        background: #FFFFFF;
149
+        border: 1px solid #E8EBEF;
150
+        display: flex;
151
+        flex-direction: column;
152
+        width: 0;
153
+      }
154
+      .list-template__searchItem {
155
+        margin-bottom: 16px;
156
+        .label {
157
+          color: #333;
158
+          display: inline-block;
159
+          width: 70px;
160
+          text-align-last: justify;
161
+          text-align: justify;
162
+          &.label--big {
163
+            width: 100px;
164
+          }
165
+        }
166
+        .formItem {
167
+          width: 135px;
168
+        }
169
+      }
170
+    }
171
+    .contentBtns{
172
+      margin-bottom: 16px;
173
+      display: flex;
174
+      justify-content: center;
175
+      align-items: center;
176
+    }
177
+  }
178
+}

+ 257 - 0
src/app/components/configurationCenter/configuration-inspect/configuration-inspect.component.ts

@@ -0,0 +1,257 @@
1
+import { Component, OnInit, ViewChild, Input } from "@angular/core";
2
+import { ActivatedRoute } from "@angular/router";
3
+import { MainService } from "../../../services/main.service";
4
+import { Validators, FormGroup, FormBuilder, FormControl } from '@angular/forms';
5
+import { ToolService } from 'src/app/services/tool.service';
6
+import { OverlayScrollbarsComponent } from 'overlayscrollbars-ngx';
7
+import { NzMessageService } from 'ng-zorro-antd';
8
+import { v4 as uuidv4, validate as uuidValidate } from 'uuid';
9
+
10
+@Component({
11
+  selector: "app-configuration-inspect",
12
+  templateUrl: "./configuration-inspect.component.html",
13
+  styleUrls: ["./configuration-inspect.component.less"],
14
+})
15
+export class ConfigurationInspectComponent implements OnInit {
16
+  constructor(
17
+    private route: ActivatedRoute,
18
+    private mainService: MainService,
19
+    private fb: FormBuilder,
20
+    private tool: ToolService,
21
+    private message: NzMessageService,
22
+  ) {}
23
+
24
+  @ViewChild("osComponentRef1", {
25
+    read: OverlayScrollbarsComponent,
26
+    static: false,
27
+  })
28
+  osComponentRef1: OverlayScrollbarsComponent;
29
+  @ViewChild("osComponentRef2", {
30
+    read: OverlayScrollbarsComponent,
31
+    static: false,
32
+  })
33
+  osComponentRef2: OverlayScrollbarsComponent;
34
+
35
+  ngOnInit() {
36
+    this.activeDictionaryKey = this.dictionaryKeyList[0];
37
+    this.getDictionaryList();
38
+    this.initDictionaryForm();
39
+  }
40
+
41
+  // 数据字典key列表
42
+  dictionaryKeyList:any[] = [
43
+    { id: 1, name: '注意事项', key: "inspect_notes"},
44
+  ]
45
+
46
+  // 点击数据字典key
47
+  activeDictionaryKey:any;
48
+  clickDictionaryKey(item){
49
+    this.activeDictionaryKey = item;
50
+    this.getDictionaryList();
51
+  }
52
+
53
+  btnLoading: boolean = false; //提交按钮loading状态
54
+  // ------------------------------
55
+
56
+  // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
57
+  promptContent: string; //操作提示框提示信息
58
+  ifSuccess: boolean; //操作成功/失败
59
+  promptInfo: string; //操作结果提示信息
60
+  promptModalShow: boolean; //操作提示框是否展示
61
+  showPromptModal(con, success, promptInfo?) {
62
+    this.promptModalShow = false;
63
+    this.promptContent = con;
64
+    this.ifSuccess = success;
65
+    this.promptInfo = promptInfo;
66
+    setTimeout(() => {
67
+      this.promptModalShow = true;
68
+    }, 100);
69
+    this.getDictionaryList();
70
+  }
71
+
72
+  coopData: any = {}; //当前操作列
73
+
74
+  delModal: boolean = false; //删除模态框
75
+  tipsMsg1: string; //提示框信息
76
+  tipsMsg2: string; //操作后信息
77
+  confirmDelType: string; //确认的类型(启用/停用,删除)
78
+  showDelModal(
79
+    data,
80
+    tipsMsg1: string,
81
+    tipsMsg2: string,
82
+    type: string,
83
+  ) {
84
+    this.confirmDelType = type;
85
+    this.delModal = true;
86
+    this.coopData = data;
87
+    this.tipsMsg1 = tipsMsg1;
88
+    this.tipsMsg2 = tipsMsg2;
89
+  }
90
+  // 隐藏删除框
91
+  hideDelModal() {
92
+    this.delModal = false;
93
+  }
94
+  // 确认删除
95
+  confirmDel() {
96
+    this.btnLoading = true;
97
+    if (this.confirmDelType === "delDictionary") {
98
+      //删除-数据字典
99
+      this.mainService
100
+        .simplePost("rmvData", "dictionary", [this.coopData.id])
101
+        .subscribe((data) => {
102
+          this.btnLoading = false;
103
+          this.delModal = false;
104
+          if (data.status == 200) {
105
+            this.mainService.clearDictionary();
106
+            this.showPromptModal(this.tipsMsg2, true, "");
107
+          } else {
108
+            this.showPromptModal(this.tipsMsg2, false, data.msg);
109
+          }
110
+        });
111
+    }
112
+  }
113
+
114
+  // 初始化数据字典新增form表单
115
+  validateDictionaryForm: FormGroup; //新增/编辑表单
116
+  dictionaryList: any = [];
117
+  initDictionaryForm() {
118
+    this.validateDictionaryForm = this.fb.group({
119
+      // name: [null, [Validators.required]],//键
120
+      // value: [null, [Validators.required]],//值
121
+      // orders: [null, [Validators.required]],//排序号
122
+    });
123
+    console.log(this.validateDictionaryForm.controls)
124
+  }
125
+
126
+  // 获取数据字典数据
127
+  maskFlag: any = false;
128
+  getDictionaryList() {
129
+    let postData = {
130
+      idx: 0,
131
+      sum: 9999,
132
+      dictionary: {
133
+        key: this.activeDictionaryKey.key,
134
+      }
135
+    }
136
+    this.maskFlag = this.message.loading("正在加载中..", {
137
+      nzDuration: 0,
138
+    }).messageId;
139
+    this.mainService.getFetchDataList('simple/data','dictionary',postData).subscribe(data => {
140
+      this.message.remove(this.maskFlag);
141
+      this.maskFlag = false;
142
+      let list = data.list || [];
143
+      if(list.length){
144
+        this.dictionaryList = list.map(v => {
145
+          return {
146
+            id: v.id,
147
+            name: v.name || null,
148
+            value: v.value || null,
149
+            orders: v.orders || null,
150
+            system: v.system || false,
151
+          }
152
+        });
153
+      }else{
154
+        this.dictionaryList = [
155
+          {
156
+            id: uuidv4(),
157
+            name: null,
158
+            value: null,
159
+            orders: null,
160
+            system: false,
161
+          }
162
+        ];
163
+      }
164
+
165
+      console.log(this.dictionaryList);
166
+      // 动态添加表单
167
+      this.dictionaryList.forEach((obj, i) => {
168
+        for (const key in obj) {
169
+          if(key !== 'id' && key !== 'system'){
170
+            if(this.activeDictionaryKey.key === 'incident_status' || this.activeDictionaryKey.key === 'incident_degree'){
171
+              this.validateDictionaryForm.addControl(key + '_' + obj.id, new FormControl({value: obj[key], disabled: true}, [Validators.required]))
172
+            }else{
173
+              this.validateDictionaryForm.addControl(key + '_' + obj.id, new FormControl({value: obj[key], disabled: key === 'value' ? obj.system : false}, [Validators.required]))
174
+            }
175
+          }
176
+        }
177
+      })
178
+      console.log(this.validateDictionaryForm.controls)
179
+    })
180
+  }
181
+
182
+  // 添加数据字典
183
+  addField(i:number): void{
184
+    let obj = {
185
+      id: uuidv4(),
186
+      name: null,
187
+      value: null,
188
+      orders: null,
189
+      system: false,
190
+    };
191
+
192
+    // 动态添加表单
193
+    for (const key in obj) {
194
+      console.log(key + '_' + obj.id)
195
+      if(key !== 'id' && key !== 'system'){
196
+        this.validateDictionaryForm.addControl(key + '_' + obj.id, new FormControl(null, [Validators.required]))
197
+      }
198
+    }
199
+
200
+    this.dictionaryList.splice(i + 1, 0, obj);
201
+  }
202
+
203
+  // 删除
204
+  removeField(obj, i:number): void {
205
+    if(uuidValidate(obj.id)){
206
+      this.dictionaryList.splice(i, 1);
207
+      this.dictionaryList = [...this.dictionaryList];
208
+      // 动态删除表单
209
+      for (const key in obj) {
210
+        this.validateDictionaryForm.removeControl(key + '_' + obj.id);
211
+      }
212
+    }else{
213
+      this.showDelModal(obj,'您确认要删除吗?','删除','delDictionary')
214
+    }
215
+  }
216
+
217
+  // 保存数据字典
218
+  saveDictionary(): void {
219
+    console.log(this.coopData)
220
+    for (const i in this.validateDictionaryForm.controls) {
221
+      this.validateDictionaryForm.controls[i].markAsDirty();
222
+      this.validateDictionaryForm.controls[i].updateValueAndValidity();
223
+    }
224
+    if (this.validateDictionaryForm.invalid) {
225
+      return;
226
+    }
227
+    console.log(this.validateDictionaryForm.value);
228
+    let postData:any = {};
229
+
230
+    //增加
231
+    postData = [];
232
+    let rawValueObj = this.validateDictionaryForm.getRawValue();
233
+    for (let i = 0; i < this.dictionaryList.length; i++) {
234
+      postData.push({
235
+        id: uuidValidate(this.dictionaryList[i].id) ? undefined : this.dictionaryList[i].id,
236
+        name: rawValueObj['name_' + this.dictionaryList[i].id],
237
+        value: rawValueObj['value_' + this.dictionaryList[i].id],
238
+        orders: rawValueObj['orders_' + this.dictionaryList[i].id],
239
+        system: uuidValidate(this.dictionaryList[i].id) ? false : this.dictionaryList[i].system,
240
+        key: this.activeDictionaryKey.key,
241
+      })
242
+    }
243
+    console.log(postData);
244
+    this.btnLoading = true;
245
+    this.mainService
246
+      .simplePost("addListData", "dictionary", postData)
247
+      .subscribe((result) => {
248
+        this.btnLoading = false;
249
+        if (result.status == 200) {
250
+          this.mainService.clearDictionary();
251
+          this.showPromptModal('保存', true, '');
252
+        } else {
253
+          this.showPromptModal('保存', false, result.msg || '');
254
+        }
255
+      });
256
+  }
257
+}

+ 20 - 0
src/app/components/configurationCenter/configuration-inspect/configuration-inspect.module.ts

@@ -0,0 +1,20 @@
1
+import { NgModule } from '@angular/core';
2
+import { CommonModule } from '@angular/common';
3
+
4
+import { ConfigurationInspectComponent } from './configuration-inspect.component';
5
+import { ShareModule } from '../../../share/share.module';
6
+
7
+
8
+@NgModule({
9
+  declarations: [
10
+    ConfigurationInspectComponent,
11
+  ],
12
+  imports: [
13
+    CommonModule,
14
+    ShareModule,
15
+  ],
16
+  exports: [
17
+    ConfigurationInspectComponent,
18
+  ]
19
+})
20
+export class ConfigurationInspectModule { }

+ 1 - 1
src/app/share/order-detail/order-detail.component.html

@@ -682,7 +682,7 @@
682 682
             *ngIf="orderInfo.workOrderRemark !== undefined"
683 683
           >
684 684
             <div nz-col nzSpan="24">
685
-              备注信息:{{ orderInfo.workOrderRemark || "-" }}
685
+              注意事项:{{ orderInfo.workOrderRemark || "-" }}
686 686
             </div>
687 687
           </div>
688 688
           <div class="info" nz-row *ngIf="orderInfo.urgentDetails">

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

@@ -1130,7 +1130,20 @@
1130 1130
                           <nz-form-item>
1131 1131
                             <nz-form-label class="label" [nzSm]="3" [nzXs]="3" nzFor="workOrderRemarkZy">注意事项</nz-form-label>
1132 1132
                             <nz-form-control class="control" [nzSm]="24" [nzXs]="24" nzErrorTip="请填写注意事项!">
1133
-                              <textarea formControlName="workOrderRemarkZy" nz-input [placeholder]="deptZyList.taskType.remarksPrompts" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100" [(ngModel)]="workOrderRemarkZy"></textarea>
1133
+                              <div class="noteSign">
1134
+                                <textarea class="noteFocus" (focus)="focusNote()" formControlName="workOrderRemarkZy" nz-input [placeholder]="deptZyList.taskType.remarksPrompts" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100" [(ngModel)]="workOrderRemarkZy"></textarea>
1135
+                                <div class="noteList" *ngIf="isShowNoteList">
1136
+                                  <ng-container *ngIf="!noteLoading && noteList.length">
1137
+                                    <div class="noteItem ellipsis-oneline" *ngFor="let item of noteList" [title]="item.name" (click)="selectNote(item.name)">{{item.name}}</div>
1138
+                                  </ng-container>
1139
+                                  <div *ngIf="!noteLoading && !noteList.length" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
1140
+                                    <nz-empty></nz-empty>
1141
+                                  </div>
1142
+                                  <div *ngIf="noteLoading" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
1143
+                                    <nz-spin nzSimple></nz-spin>
1144
+                                  </div>
1145
+                                </div>
1146
+                              </div>
1134 1147
                             </nz-form-control>
1135 1148
                           </nz-form-item>
1136 1149
                         </div>

+ 23 - 0
src/app/views/fuwutai/fuwutai.component.less

@@ -2703,3 +2703,26 @@
2703 2703
     color: #333;
2704 2704
   }
2705 2705
 }
2706
+.noteSign{
2707
+  position: relative;
2708
+  .noteList{
2709
+    position: absolute;
2710
+    bottom: 100%;
2711
+    left: 0;
2712
+    width: 100%;
2713
+    max-height: 256px;
2714
+    z-index: 99;
2715
+    background: #fff;
2716
+    border: 1px solid #d9d9d9;
2717
+    border-radius: 4px;
2718
+    overflow: hidden auto;
2719
+    .noteItem{
2720
+      padding: 5px 12px;
2721
+      cursor: pointer;
2722
+      line-height: normal;
2723
+      &:hover{
2724
+        background-color: #e9f7e9;
2725
+      }
2726
+    }
2727
+  }
2728
+}

+ 27 - 0
src/app/views/fuwutai/fuwutai.component.ts

@@ -5377,6 +5377,9 @@ export class FuwutaiComponent implements OnInit {
5377 5377
     if(document.documentElement.contains(document.querySelector('.addressList')) && e.target !== document.querySelector('.addressFocus')){
5378 5378
       this.isShowAddressList = false;
5379 5379
     }
5380
+    if(document.documentElement.contains(document.querySelector('.noteList')) && e.target !== document.querySelector('.noteFocus')){
5381
+      this.isShowNoteList = false;
5382
+    }
5380 5383
   }
5381 5384
 
5382 5385
   // 选择地址
@@ -5420,4 +5423,28 @@ export class FuwutaiComponent implements OnInit {
5420 5423
       this.workOrderRemarkZy = '';
5421 5424
     }
5422 5425
   }
5426
+
5427
+  // 注意事项获取焦点
5428
+  isShowNoteList:boolean = false;
5429
+  focusNote(){
5430
+    this.isShowNoteList = true;
5431
+    this.getNoteList();
5432
+  }
5433
+
5434
+  // 选择注意事项
5435
+  selectNote(name){
5436
+    this.workOrderRemarkZy = name;
5437
+    this.isShowNoteList = false;
5438
+  }
5439
+
5440
+  // 获取注意事项列表
5441
+  noteList:any[] = [];
5442
+  noteLoading:boolean = false;
5443
+  getNoteList() {
5444
+    this.noteLoading = true;
5445
+    this.mainService.getDictionary('list', 'inspect_notes',).subscribe(result=>{
5446
+      this.noteLoading = false;
5447
+      this.noteList = result || [];
5448
+    });
5449
+  }
5423 5450
 }

+ 18 - 5
src/app/views/hushijiandan/hushijiandan.component.html

@@ -1463,8 +1463,8 @@
1463 1463
             <nz-form-item *ngIf="checkedShowMsg.status == 200">
1464 1464
               <nz-form-label [nzSm]="24" [nzXs]="24" nzFor="linkCheck">关联的检查</nz-form-label>
1465 1465
               <nz-form-control class="datesGroup" *ngIf="linkCheckLis.length">
1466
-                <nz-checkbox-wrapper class="linkCheckCheck" ngDefaultControl formControlName="linkCheck" (nzOnChange)="linkCheckLisChange($event)">
1467
-                  <div nz-row *ngFor="let item of linkCheckLis">
1466
+                <nz-checkbox-wrapper nz-row class="linkCheckCheck" ngDefaultControl formControlName="linkCheck" (nzOnChange)="linkCheckLisChange($event)">
1467
+                  <div nz-row nz-col nzSpan="12" *ngFor="let item of linkCheckLis">
1468 1468
                     <div nz-col nzSpan="24">
1469 1469
                       <label nz-checkbox [nzValue]="item">{{ item.label}}</label>
1470 1470
                       <i class="icon_transport transport-zu1468 priority" *ngIf="item.priority === 1 || item.priority === '1'"></i>
@@ -1596,14 +1596,27 @@
1596 1596
                   <nz-form-label nzFor="workOrderRemark2" class="mt8 mb8">注意事项</nz-form-label>
1597 1597
                 </div>
1598 1598
                 <nz-form-control>
1599
-                  <textarea nz-input [placeholder]="workOrderRemarkTips2" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100" formControlName="workOrderRemark2" [(ngModel)]="workOrderRemark2" #remarksEle2></textarea>
1599
+                  <div class="noteSign">
1600
+                    <textarea class="noteFocus" (focus)="focusNote()" nz-input [placeholder]="workOrderRemarkTips2" [nzAutosize]="{ minRows: 3, maxRows: 5 }" maxlength="100" formControlName="workOrderRemark2" [(ngModel)]="workOrderRemark2" #remarksEle2></textarea>
1601
+                    <div class="noteList" *ngIf="isShowNoteList">
1602
+                      <ng-container *ngIf="!noteLoading && noteList.length">
1603
+                        <div class="noteItem ellipsis-oneline" *ngFor="let item of noteList" [title]="item.name" (click)="selectNote(item.name)">{{item.name}}</div>
1604
+                      </ng-container>
1605
+                      <div *ngIf="!noteLoading && !noteList.length" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
1606
+                        <nz-empty></nz-empty>
1607
+                      </div>
1608
+                      <div *ngIf="noteLoading" class="w100 h100 padding8 display_flex justify-content_flex-center align-items_center">
1609
+                        <nz-spin nzSimple></nz-spin>
1610
+                      </div>
1611
+                    </div>
1612
+                  </div>
1600 1613
                 </nz-form-control>
1601 1614
               </nz-form-item>
1602 1615
             </ng-container>
1603 1616
             <!-- 携带设备 -->
1604 1617
             <nz-form-item nz-row *ngIf="goodsLis.length">
1605
-              <nz-form-label [nzSpan]="4" nzFor="goods" class="goods">携带设备</nz-form-label>
1606
-              <nz-form-control [nzSpan]="20">
1618
+              <nz-form-label [nzSpan]="3" nzFor="goods" class="goods">携带设备</nz-form-label>
1619
+              <nz-form-control [nzSpan]="21">
1607 1620
                 <nz-checkbox-group formControlName="goods" [(ngModel)]="goodsLis"></nz-checkbox-group>
1608 1621
               </nz-form-control>
1609 1622
             </nz-form-item>

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

@@ -2673,3 +2673,26 @@
2673 2673
     }
2674 2674
   }
2675 2675
 }
2676
+.noteSign{
2677
+  position: relative;
2678
+  .noteList{
2679
+    position: absolute;
2680
+    bottom: 100%;
2681
+    left: 0;
2682
+    width: 100%;
2683
+    max-height: 256px;
2684
+    z-index: 99;
2685
+    background: #fff;
2686
+    border: 1px solid #d9d9d9;
2687
+    border-radius: 4px;
2688
+    overflow: hidden auto;
2689
+    .noteItem{
2690
+      padding: 5px 12px;
2691
+      cursor: pointer;
2692
+      line-height: normal;
2693
+      &:hover{
2694
+        background-color: #e9f7e9;
2695
+      }
2696
+    }
2697
+  }
2698
+}

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

@@ -2390,7 +2390,7 @@ export class HushijiandanComponent implements OnInit {
2390 2390
           }
2391 2391
         }
2392 2392
         that.patientForm.controls.checkedType.setValue(id);
2393
-        this.changeCheckedType();
2393
+        this.changeCheckedType(true);
2394 2394
       });
2395 2395
   }
2396 2396
   yyTimeChange(e) {
@@ -2926,7 +2926,7 @@ export class HushijiandanComponent implements OnInit {
2926 2926
   currentTasktype; //当前选中的任务类型对象
2927 2927
   cLoading = false;
2928 2928
   historyCustomRemarks2 = [];
2929
-  changeCheckedType() {
2929
+  changeCheckedType(isInit = false) {
2930 2930
     this.customRemarks2 = [];
2931 2931
     this.historyCustomRemarks2 = [];
2932 2932
     this.isYyInspect = false;
@@ -2937,10 +2937,12 @@ export class HushijiandanComponent implements OnInit {
2937 2937
       (item) => item.id == this.patientForm.controls.checkedType.value
2938 2938
     );
2939 2939
     // 是否回显注意事项
2940
-    if(this.currentTasktype.remarksSwitch === 1){
2941
-      this.workOrderRemark2 = this.patientMsg.remark || "";
2942
-    }else{
2943
-      this.workOrderRemark2 = '';
2940
+    if(isInit){
2941
+      if(this.currentTasktype.remarksSwitch === 1){
2942
+        this.workOrderRemark2 = this.patientMsg.remark || "";
2943
+      }else{
2944
+        this.workOrderRemark2 = '';
2945
+      }
2944 2946
     }
2945 2947
     // 获取患者其他服务,护士端是否预约建单
2946 2948
     let appointmentZyBuildFlag = this.checkTypeLis.filter(
@@ -4982,6 +4984,9 @@ export class HushijiandanComponent implements OnInit {
4982 4984
     if(document.documentElement.contains(document.querySelector('.addressList')) && e.target !== document.querySelector('.addressFocus')){
4983 4985
       this.isShowAddressList = false;
4984 4986
     }
4987
+    if(document.documentElement.contains(document.querySelector('.noteList')) && e.target !== document.querySelector('.noteFocus')){
4988
+      this.isShowNoteList = false;
4989
+    }
4985 4990
   }
4986 4991
 
4987 4992
   // 选择地址
@@ -5011,4 +5016,28 @@ export class HushijiandanComponent implements OnInit {
5011 5016
       }
5012 5017
     });
5013 5018
   }
5019
+
5020
+  // 注意事项获取焦点
5021
+  isShowNoteList:boolean = false;
5022
+  focusNote(){
5023
+    this.isShowNoteList = true;
5024
+    this.getNoteList();
5025
+  }
5026
+
5027
+  // 选择注意事项
5028
+  selectNote(name){
5029
+    this.workOrderRemark2 = name;
5030
+    this.isShowNoteList = false;
5031
+  }
5032
+
5033
+  // 获取注意事项列表
5034
+  noteList:any[] = [];
5035
+  noteLoading:boolean = false;
5036
+  getNoteList() {
5037
+    this.noteLoading = true;
5038
+    this.mainService.getDictionary('list', 'inspect_notes',).subscribe(result=>{
5039
+      this.noteLoading = false;
5040
+      this.noteList = result || [];
5041
+    });
5042
+  }
5014 5043
 }

+ 5 - 0
src/app/views/page-config/page-config.component.html

@@ -17,6 +17,11 @@
17 17
   <ng-container *ngIf="activeTagLink === 'pageConfigDrug'">
18 18
     <app-configuration-drug></app-configuration-drug>
19 19
   </ng-container>
20
+
21
+  <!-- 陪检 -->
22
+  <ng-container *ngIf="activeTagLink === 'pageConfigInspect'">
23
+    <app-configuration-inspect></app-configuration-inspect>
24
+  </ng-container>
20 25
 </div>
21 26
 
22 27
 

+ 2 - 0
src/app/views/page-config/page-config.module.ts

@@ -6,6 +6,7 @@ import { PageConfigComponent } from './page-config.component';
6 6
 import { ShareModule } from 'src/app/share/share.module';
7 7
 import { ConfigurationSpecimenComponent } from 'src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component';
8 8
 import { ConfigurationDrugComponent } from 'src/app/components/configurationCenter/configuration-drug/configuration-drug.component';
9
+import { ConfigurationInspectModule } from 'src/app/components/configurationCenter/configuration-inspect/configuration-inspect.module';
9 10
 
10 11
 
11 12
 @NgModule({
@@ -18,6 +19,7 @@ import { ConfigurationDrugComponent } from 'src/app/components/configurationCent
18 19
     CommonModule,
19 20
     PageConfigRoutingModule,
20 21
     ShareModule,
22
+    ConfigurationInspectModule,
21 23
   ]
22 24
 })
23 25
 export class PageConfigModule { }