Explorar o código

详细地址增加科室地点列表

seimin hai 4 meses
pai
achega
603f9fdc46

+ 13 - 2
src/app/components/incidentManagement/incident-create/incident-create.component.html

@@ -2,7 +2,7 @@
2 2
  * @Author: seimin
3 3
  * @Date: 2024-10-24 13:47:40
4 4
  * @LastEditors: seimin
5
- * @LastEditTime: 2024-10-25 15:47:50
5
+ * @LastEditTime: 2024-12-04 15:22:09
6 6
  * @Description: 创建
7 7
 -->
8 8
 <!-- 新建工单 -->
@@ -92,7 +92,18 @@
92 92
                     </nz-select>
93 93
                   </div>
94 94
                   <div class="col flex7">
95
-                    <input nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" />
95
+                    <input nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" (focus)="focusAddress()" (blur)="blurAddress()" />
96
+                    <div class="addressList" *ngIf="isShowAddressList">
97
+                      <ng-container *ngIf="!addressLoading && addressList.length">
98
+                        <div class="addressItem ellipsis-oneline" *ngFor="let item of addressList" [title]="item.name" (click)="selectAddress(item.name)">{{item.name}}</div>
99
+                      </ng-container>
100
+                      <div *ngIf="!addressLoading && !addressList.length" class="w100 h100 display_flex justify-content_flex-center align-items_center">
101
+                        <nz-empty></nz-empty>
102
+                      </div>
103
+                      <div *ngIf="addressLoading" class="w100 h100 display_flex justify-content_flex-center align-items_center">
104
+                        <nz-spin nzSimple></nz-spin>
105
+                      </div>
106
+                    </div>
96 107
                   </div>
97 108
                 </div>
98 109
 

+ 20 - 0
src/app/components/incidentManagement/incident-create/incident-create.component.less

@@ -2242,6 +2242,7 @@
2242 2242
                   display: flex;
2243 2243
                   align-items: center;
2244 2244
                   word-break: break-all;
2245
+                  position: relative;
2245 2246
                   &.alignItemsStart{
2246 2247
                     align-items: flex-start;
2247 2248
                   }
@@ -2263,6 +2264,25 @@
2263 2264
                   &.flex7{
2264 2265
                     flex: 7;
2265 2266
                   }
2267
+                  .addressList{
2268
+                    position: absolute;
2269
+                    top: 100%;
2270
+                    left: 0;
2271
+                    width: 100%;
2272
+                    height: 256px;
2273
+                    z-index: 2;
2274
+                    background: #fff;
2275
+                    border: 1px solid #d9d9d9;
2276
+                    border-radius: 4px;
2277
+                    overflow: hidden auto;
2278
+                    .addressItem{
2279
+                      padding: 5px 12px;
2280
+                      cursor: pointer;
2281
+                      &:hover{
2282
+                        background-color: #e9f7e9;
2283
+                      }
2284
+                    }
2285
+                  }
2266 2286
                   .ant-input-clear-icon{
2267 2287
                     align-self: center;
2268 2288
                     font-style: normal;

+ 45 - 0
src/app/components/incidentManagement/incident-create/incident-create.component.ts

@@ -1456,4 +1456,49 @@ export class IncidentCreateComponent implements OnInit {
1456 1456
   newOrderCancel() {
1457 1457
     this.closeModelHs.emit(JSON.stringify({ show: false }));//emits(向上弹射)事件
1458 1458
   }
1459
+
1460
+  // 详细地址获取焦点
1461
+  isShowAddressList:boolean = false;
1462
+  focusAddress(){
1463
+    this.isShowAddressList = true;
1464
+    this.getAddressList();
1465
+  }
1466
+
1467
+  // 详细地址失去焦点
1468
+  blurAddress(){
1469
+    setTimeout(() => {
1470
+      this.isShowAddressList = false;
1471
+    }, 100)
1472
+  }
1473
+
1474
+  // 选择地址
1475
+  selectAddress(name){
1476
+    this.incidentModel.houseNumber = name;
1477
+  }
1478
+
1479
+  // 获取科室地点列表
1480
+  addressList:any[] = [];
1481
+  addressLoading:boolean = false;
1482
+  getAddressList() {
1483
+    if(!this.incidentModel.hosId){
1484
+      this.addressList = [];
1485
+      return;
1486
+    }
1487
+    let postData = {
1488
+      idx: 0,
1489
+      sum: 99999,
1490
+      qrCode: {
1491
+        hosId: this.incidentModel.hosId,
1492
+      }
1493
+    };
1494
+    this.addressLoading = true;
1495
+    this.mainService.getFetchDataList("simple/data", "qrCode", postData).subscribe(result=>{
1496
+      this.addressLoading = false;
1497
+      if(result.status == 200){
1498
+        this.addressList = result.list || [];
1499
+      }else{
1500
+        this.addressList = [];
1501
+      }
1502
+    });
1503
+  }
1459 1504
 }

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

@@ -1485,7 +1485,18 @@
1485 1485
                       </nz-select>
1486 1486
                     </div>
1487 1487
                     <div class="col flex7">
1488
-                      <input nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" />
1488
+                      <input nz-input placeholder="请填写详细地址" [(ngModel)]="incidentModel.houseNumber" (focus)="focusAddress()" (blur)="blurAddress()" />
1489
+                      <div class="addressList" *ngIf="isShowAddressList">
1490
+                        <ng-container *ngIf="!addressLoading && addressList.length">
1491
+                          <div class="addressItem ellipsis-oneline" *ngFor="let item of addressList" [title]="item.name" (click)="selectAddress(item.name)">{{item.name}}</div>
1492
+                        </ng-container>
1493
+                        <div *ngIf="!addressLoading && !addressList.length" class="w100 h100 display_flex justify-content_flex-center align-items_center">
1494
+                          <nz-empty></nz-empty>
1495
+                        </div>
1496
+                        <div *ngIf="addressLoading" class="w100 h100 display_flex justify-content_flex-center align-items_center">
1497
+                          <nz-spin nzSimple></nz-spin>
1498
+                        </div>
1499
+                      </div>
1489 1500
                     </div>
1490 1501
                   </div>
1491 1502
 

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

@@ -2277,6 +2277,7 @@
2277 2277
                     display: flex;
2278 2278
                     align-items: center;
2279 2279
                     word-break: break-all;
2280
+                    position: relative;
2280 2281
                     &.alignItemsStart{
2281 2282
                       align-items: flex-start;
2282 2283
                     }
@@ -2298,6 +2299,25 @@
2298 2299
                     &.flex7{
2299 2300
                       flex: 7;
2300 2301
                     }
2302
+                    .addressList{
2303
+                      position: absolute;
2304
+                      top: 100%;
2305
+                      left: 0;
2306
+                      width: 100%;
2307
+                      height: 256px;
2308
+                      z-index: 2;
2309
+                      background: #fff;
2310
+                      border: 1px solid #d9d9d9;
2311
+                      border-radius: 4px;
2312
+                      overflow: hidden auto;
2313
+                      .addressItem{
2314
+                        padding: 5px 12px;
2315
+                        cursor: pointer;
2316
+                        &:hover{
2317
+                          background-color: #e9f7e9;
2318
+                        }
2319
+                      }
2320
+                    }
2301 2321
                     .ant-input-clear-icon{
2302 2322
                       align-self: center;
2303 2323
                       font-style: normal;

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

@@ -5299,4 +5299,49 @@ export class FuwutaiComponent implements OnInit {
5299 5299
   closeCall(e) {
5300 5300
     this.callShow = e.show;
5301 5301
   }
5302
+
5303
+  // 详细地址获取焦点
5304
+  isShowAddressList:boolean = false;
5305
+  focusAddress(){
5306
+    this.isShowAddressList = true;
5307
+    this.getAddressList();
5308
+  }
5309
+
5310
+  // 详细地址失去焦点
5311
+  blurAddress(){
5312
+    setTimeout(() => {
5313
+      this.isShowAddressList = false;
5314
+    }, 100)
5315
+  }
5316
+
5317
+  // 选择地址
5318
+  selectAddress(name){
5319
+    this.incidentModel.houseNumber = name;
5320
+  }
5321
+
5322
+  // 获取科室地点列表
5323
+  addressList:any[] = [];
5324
+  addressLoading:boolean = false;
5325
+  getAddressList() {
5326
+    if(!this.incidentModel.hosId){
5327
+      this.addressList = [];
5328
+      return;
5329
+    }
5330
+    let postData = {
5331
+      idx: 0,
5332
+      sum: 99999,
5333
+      qrCode: {
5334
+        hosId: this.incidentModel.hosId,
5335
+      }
5336
+    };
5337
+    this.addressLoading = true;
5338
+    this.mainService.getFetchDataList("simple/data", "qrCode", postData).subscribe(result=>{
5339
+      this.addressLoading = false;
5340
+      if(result.status == 200){
5341
+        this.addressList = result.list || [];
5342
+      }else{
5343
+        this.addressList = [];
5344
+      }
5345
+    });
5346
+  }
5302 5347
 }

+ 3 - 0
src/common.less

@@ -34,6 +34,9 @@
34 34
 .w100 {
35 35
   width: 100% !important;
36 36
 }
37
+.h100 {
38
+  height: 100% !important;
39
+}
37 40
 .w135 {
38 41
   width: 135px !important;
39 42
 }