Ver código fonte

药品页面控制

seimin 1 ano atrás
pai
commit
abf6011eaf

+ 14 - 0
src/app/views/drug-page-control/drug-page-control-routing.module.ts

@@ -0,0 +1,14 @@
1
+import { NgModule } from '@angular/core';
2
+import { Routes, RouterModule } from '@angular/router';
3
+import { DrugPageControlComponent } from './drug-page-control.component';
4
+
5
+
6
+const routes: Routes = [
7
+  { path: '', component: DrugPageControlComponent }
8
+];
9
+
10
+@NgModule({
11
+  imports: [RouterModule.forChild(routes)],
12
+  exports: [RouterModule]
13
+})
14
+export class DrugPageControlRoutingModule { }

+ 36 - 0
src/app/views/drug-page-control/drug-page-control.component.html

@@ -0,0 +1,36 @@
1
+<div class="TaskTypeManagement">
2
+  <div class="taskTypeInfo">
3
+    <div class="top">
4
+      <div class="item" (click)="tabModal('characteristics')" [ngClass]="{'items':tabModalName=='characteristics'}">
5
+        特性配置
6
+      </div>
7
+      <div class="item" (click)="tabModal('automaticOrderCreation')" [ngClass]="{'items':tabModalName=='automaticOrderCreation'}">
8
+        自动建单配置
9
+      </div>
10
+    </div>
11
+    <div class="list" *ngIf="!loading">
12
+      <!-- 特性配置 -->
13
+      <div *ngIf="tabModalName=='characteristics'">
14
+        <!-- 是否显示关联批次药品 -->
15
+        <div class="display_flex align-items_center mb8">
16
+          <nz-form-label class="label">是否显示关联批次药品</nz-form-label>
17
+          <nz-checkbox-group [(ngModel)]="drugsBatchInfo"></nz-checkbox-group>
18
+        </div>
19
+      </div>
20
+      <!-- 自动建单配置 -->
21
+      <div *ngIf="tabModalName=='automaticOrderCreation'">
22
+      </div>
23
+      <div class="bottom">
24
+        <button class="login-form-button" nzType="primary" [nzLoading]="btnLoading" nz-button (click)="submitForm()">保存</button>
25
+      </div>
26
+    </div>
27
+    <div class="list" *ngIf="loading">
28
+      <div class="loadingFull display_flex justify-content_flex-center align-items_center">
29
+        <div class="loadingFullInner">
30
+          <img src="../../../assets/images/loading.gif" alt="">
31
+          <div>加载中...</div>
32
+        </div>
33
+      </div>
34
+    </div>
35
+  </div>
36
+</div>

Diferenças do arquivo suprimidas por serem muito extensas
+ 1251 - 0
src/app/views/drug-page-control/drug-page-control.component.less


+ 99 - 0
src/app/views/drug-page-control/drug-page-control.component.ts

@@ -0,0 +1,99 @@
1
+import { Component, OnInit } from "@angular/core";
2
+import { ToolService } from 'src/app/services/tool.service';
3
+import { NzMessageService } from 'ng-zorro-antd';
4
+import { DrugPageControlService } from './drug-page-control.service';
5
+
6
+@Component({
7
+  selector: "app-drug-page-control",
8
+  templateUrl: "./drug-page-control.component.html",
9
+  styleUrls: ["./drug-page-control.component.less"],
10
+})
11
+export class DrugPageControlComponent implements OnInit {
12
+  loading:boolean = false; //页面加载的loading
13
+  btnLoading:boolean = false; //提交按钮的loading
14
+  tabModalName:string = 'characteristics'; //当前选中的tab
15
+  hosId = this.tool.getCurrentHospital().id; //当前院区
16
+
17
+  // 是否显示关联批次药品
18
+  drugsBatchInfo:any[] = [
19
+    {label:'是否开启',value: 0}
20
+  ];
21
+  // 配置
22
+  configs:any = {};
23
+  // 任务类型
24
+  tasktype:any = {};
25
+  constructor(
26
+    private tool: ToolService,
27
+    private msg: NzMessageService,
28
+    private drugPageControlService: DrugPageControlService,
29
+    ) {}
30
+
31
+  ngOnInit():void {
32
+    // todo
33
+    this.getTaskType();
34
+  }
35
+
36
+  // 切换tab
37
+  tabModal(tabModalName:string){
38
+    this.tabModalName = tabModalName;
39
+  }
40
+
41
+  // 保存
42
+  submitForm() {
43
+    if(!this.tasktype.id){
44
+      this.msg.create("warning", "请先配置药品任务类型!");
45
+      return;
46
+    }
47
+
48
+    this.btnLoading = true;
49
+    this.drugPageControlService
50
+      .submitForm({
51
+        configs: this.configs, 
52
+        tasktype: this.tasktype, 
53
+        hosId: this.hosId, 
54
+        drugsBatchInfo: this.drugsBatchInfo,
55
+      })
56
+      .subscribe((result) => {
57
+        this.btnLoading = false;
58
+        if (result.status == 200) {
59
+          this.getTaskType();
60
+        }
61
+      });
62
+  }
63
+
64
+  //获取任务类型
65
+  getTaskType() {
66
+    this.loading = true;
67
+    this.drugPageControlService
68
+      .getTaskType({
69
+        hosId: this.hosId,
70
+      })
71
+      .subscribe((result) => {
72
+        if (result.status == 200) {
73
+          this.tasktype = result.list[0] || {};
74
+          this.getConfig();
75
+        }else{
76
+          this.loading = false;
77
+        }
78
+      });
79
+  }
80
+  // 获取配置
81
+  getConfig() {
82
+    this.drugPageControlService
83
+      .getConfig({
84
+        tasktype: this.tasktype,
85
+        hosId: this.hosId,
86
+      })
87
+      .subscribe((result) => {
88
+        this.loading = false;
89
+        if (result.status == 200) {
90
+          this.configs = result.list;
91
+
92
+          this.drugsBatchInfo[0].checked = this.configs.drugsBatchInfo == 1;
93
+        }
94
+      });
95
+  }
96
+}
97
+
98
+
99
+

+ 19 - 0
src/app/views/drug-page-control/drug-page-control.module.ts

@@ -0,0 +1,19 @@
1
+import { NgModule } from '@angular/core';
2
+import { CommonModule } from '@angular/common';
3
+
4
+import { DrugPageControlRoutingModule } from './drug-page-control-routing.module';
5
+import { DrugPageControlComponent } from './drug-page-control.component';
6
+import { ShareModule } from 'src/app/share/share.module';
7
+
8
+
9
+@NgModule({
10
+  declarations: [
11
+    DrugPageControlComponent,
12
+  ],
13
+  imports: [
14
+    CommonModule,
15
+    DrugPageControlRoutingModule,
16
+    ShareModule,
17
+  ]
18
+})
19
+export class DrugPageControlModule { }

+ 78 - 0
src/app/views/drug-page-control/drug-page-control.service.ts

@@ -0,0 +1,78 @@
1
+import { Injectable } from '@angular/core';
2
+import { MainService } from 'src/app/services/main.service';
3
+import { map } from 'rxjs/operators';
4
+
5
+@Injectable({
6
+  providedIn: 'root'
7
+})
8
+export class DrugPageControlService {
9
+
10
+  constructor(private mainService: MainService) { }
11
+
12
+  //获取任务类型
13
+  getTaskType({hosId}) {
14
+    let postData = {
15
+      idx: 0,
16
+      sum: 10,
17
+      taskType: {
18
+        simpleQuery: true,
19
+        hosId: {
20
+          id: hosId
21
+        },
22
+        associationType: {
23
+          key:"association_types",
24
+          value: 'drugsBag'
25
+        }
26
+      }
27
+    };
28
+    return this.mainService.getFetchDataList("simple/data", "taskType", postData).pipe(map((v:any) => {
29
+      if(Array.isArray(v.list)){
30
+        v.list = v.list.map(vv => ({id: vv.id, associationType: vv.associationType}));
31
+      }else{
32
+        v.list = [];
33
+      }
34
+      return v;
35
+    }));
36
+  }
37
+
38
+  // 获取配置
39
+  getConfig({hosId, tasktype}) {
40
+    let postData = {
41
+      idx: 0,
42
+      sum: 10,
43
+      taskTypeConfig: {
44
+        taskTypeDTO: {
45
+          hosId: {
46
+            id: hosId
47
+          },
48
+          associationType: tasktype.associationType
49
+        }
50
+      }
51
+    };
52
+    return this.mainService.getFetchDataList("simple/data", "taskTypeConfig", postData).pipe(map((v:any) => {
53
+      if(Array.isArray(v.list)){
54
+        let firstList = v.list[0];
55
+        v.list = firstList ? firstList : {};
56
+        if(firstList){
57
+          v.list = {id: firstList.id, drugsBatchInfo: firstList.drugsBatchInfo};
58
+        }else{
59
+          v.list = {};
60
+        }
61
+      }else{
62
+        v.list = {};
63
+      }
64
+      return v;
65
+    }));
66
+  }
67
+
68
+  // 保存
69
+  submitForm({configs, tasktype, hosId, drugsBatchInfo}) {
70
+    let postData:any = {
71
+      id: configs.id,
72
+      taskType: tasktype.id,
73
+      hosId: hosId,
74
+      drugsBatchInfo: drugsBatchInfo[0].checked ? 1 : 0,
75
+    };
76
+    return this.mainService.simplePost("addData", "taskTypeConfig", postData);
77
+  }
78
+}

+ 5 - 0
src/app/views/main/main-routing.module.ts

@@ -83,6 +83,11 @@ const routes: Routes = [
83 83
         path: "operationConfig",
84 84
         loadChildren: () => import("../operation-config/operation-config.module").then((m) => m.OperationConfigModule),
85 85
       },
86
+      // 药品页面控制
87
+      {
88
+        path: "drugPageControl",
89
+        loadChildren: () => import("../drug-page-control/drug-page-control.module").then((m) => m.DrugPageControlModule),
90
+      },
86 91
       // 工作分配方案列表
87 92
       {
88 93
         path: "workAssignment",

+ 0 - 4
src/app/views/qrcode-configuration/qrcode-configuration.module.ts

@@ -4,7 +4,6 @@ import { CommonModule } from '@angular/common';
4 4
 import { QRCodeConfigurationRoutingModule } from './qrcode-configuration-routing.module';
5 5
 import { ShareModule } from 'src/app/share/share.module';
6 6
 import { QRCodeConfigurationComponent } from './qrcode-configuration.component';
7
-import { QRCodeConfigurationService } from './qrcode-configuration.service';
8 7
 
9 8
 
10 9
 @NgModule({
@@ -16,8 +15,5 @@ import { QRCodeConfigurationService } from './qrcode-configuration.service';
16 15
     QRCodeConfigurationRoutingModule,
17 16
     ShareModule,
18 17
   ],
19
-  providers: [
20
-    QRCodeConfigurationService,
21
-  ]
22 18
 })
23 19
 export class QRCodeConfigurationModule { }

+ 6 - 2
src/app/views/qrcode-configuration/qrcode-configuration.service.ts

@@ -1,8 +1,10 @@
1 1
 import { Injectable } from '@angular/core';
2 2
 import { MainService } from 'src/app/services/main.service';
3
-import { map, pluck, flatMap } from 'rxjs/operators';
3
+import { map } from 'rxjs/operators';
4 4
 
5
-@Injectable()
5
+@Injectable({
6
+  providedIn: 'root'
7
+})
6 8
 export class QRCodeConfigurationService {
7 9
   constructor(
8 10
     private mainService: MainService,
@@ -61,6 +63,8 @@ export class QRCodeConfigurationService {
61 63
     return this.mainService.getFetchDataList("data", "department", postData).pipe(map((v:any) => {
62 64
       if(Array.isArray(v.list)){
63 65
         v.list = v.list.map(vv => ({id: vv.id, dept: vv.dept}));
66
+      }else{
67
+        v.list = [];
64 68
       }
65 69
       return v;
66 70
     }));