seimin месяцев назад: 4
Родитель
Сommit
1df625ecb9

+ 7 - 0
src/app/app-routing.module.ts

@@ -23,6 +23,7 @@ import { IncidentConfigGuard } from './guard/IncidentConfig.guard';
23 23
 import { OtherConfigGuard } from './guard/OtherConfig.guard';
24 24
 //业务页面控制查看权限
25 25
 import { PageConfigGuard } from './guard/PageConfig.guard';
26
+import { NurseConfigGuard } from './guard/nurseConfig.guard';
26 27
 
27 28
 const routes: Routes = [
28 29
   // 默认
@@ -124,6 +125,12 @@ const routes: Routes = [
124 125
     loadChildren: () => import('./views/page-config/page-config.module').then(m => m.PageConfigModule),
125 126
     canActivate: [PageConfigGuard]
126 127
   },
128
+  // 护士端控制查看
129
+  {
130
+    path: 'nurseConfig',
131
+    loadChildren: () => import('./views/nurse-config/nurse-config.module').then(m => m.NurseConfigModule),
132
+    canActivate: [NurseConfigGuard]
133
+  },
127 134
   // 问卷预览
128 135
   {
129 136
     path: "preview",

+ 3 - 0
src/app/components/select-menu/select-menu.component.ts

@@ -32,6 +32,9 @@ export class SelectMenuComponent implements OnInit {
32 32
     // 业务页面控制
33 33
     let pageConfig = menus.find(item => item.link == 'pageConfig');
34 34
     pageConfig && configurationCenterMenus.push(pageConfig);
35
+    // 护士端配置控制
36
+    let nurseConfig = menus.find(item => item.link == 'nurseConfig');
37
+    nurseConfig && configurationCenterMenus.push(nurseConfig);
35 38
     this.configurationCenterMenus = configurationCenterMenus;
36 39
   }
37 40
   clickHandle(item){

+ 22 - 0
src/app/guard/nurseConfig.guard.ts

@@ -0,0 +1,22 @@
1
+import { Injectable } from '@angular/core';
2
+import { CanActivate, Router } from '@angular/router';
3
+
4
+@Injectable({
5
+  providedIn: 'root'
6
+})
7
+export class NurseConfigGuard implements CanActivate  {
8
+  constructor(public router: Router) { }
9
+
10
+  canActivate(): boolean {
11
+    const menus = JSON.parse(localStorage.getItem('menu'));
12
+    let can = false;
13
+    if (menus) {
14
+      can = menus.some(e => e.link == 'nurseConfig');
15
+    }
16
+    if (!can) {
17
+      this.router.navigate(['login']);
18
+      return false
19
+    }
20
+    return true;
21
+  }
22
+}

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

@@ -32,7 +32,7 @@
32 32
         <div class="left">
33 33
           <i class="icon_transport transport-tiaodu-fill green" *ngIf='deskRole' (click)="toFuwutai()" nz-tooltip nzTooltipTitle="调度台"></i>
34 34
           <i class="icon_transport transport-hushizhihanghuligongzuo green" *ngIf="nurseRole" (click)="toHuShi()" nz-tooltip nzTooltipTitle="护士端"></i>
35
-          <i class="icon_transport transport-peizhi1 green" *ngIf="incidentConfigRole || otherConfigRole || pageConfigRole" (click)="toConfigurationCenter()" nz-tooltip nzTooltipTitle="配置中心"></i>
35
+          <i class="icon_transport transport-peizhi1 green" *ngIf="incidentConfigRole || otherConfigRole || pageConfigRole || nurseConfigRole" (click)="toConfigurationCenter()" nz-tooltip nzTooltipTitle="配置中心"></i>
36 36
           <i class="icon_transport transport-shangban green" *ngIf='PCCommutesToWork && userInfo.user && !userInfo.user.online' (click)="GoWork()" nz-tooltip nzTooltipTitle="我要上班"></i>
37 37
           <i class="icon_transport transport-shangban green" *ngIf='PCCommutesToWork && userInfo.user && userInfo.user.online' (click)="GoWork()" nz-tooltip nzTooltipTitle="我要下班"></i>
38 38
           <div class="dropdown" *ngIf="pharmacyRole || largeScreenRole || largeScreenRole2 || specimenViewRole || specimenViewRole2 || specimenRoomView || pathology || disinfectionSupplyRole">

+ 5 - 0
src/app/views/main/main.component.ts

@@ -35,6 +35,7 @@ export class MainComponent implements OnInit {
35 35
   incidentConfigRole: boolean = false; //事件配置权限
36 36
   otherConfigRole: boolean = false; //三方配置权限
37 37
   pageConfigRole: boolean = false; //业务页面控制权限
38
+  nurseConfigRole: boolean = false; //护士端配置控制权限
38 39
   PCCommutesToWork: boolean = false; //PC上下班权限
39 40
   @ViewChild("osComponentRef1", {
40 41
     read: OverlayScrollbarsComponent,
@@ -317,6 +318,10 @@ export class MainComponent implements OnInit {
317 318
         this.pageConfigRole = true;
318 319
         console.log("业务页面控制权限");
319 320
       }
321
+      if (e.link == "nurseConfig") {
322
+        this.nurseConfigRole = true;
323
+        console.log("护士端配置控制权限");
324
+      }
320 325
       if (e.link == "PCCommutesToWork") {
321 326
         this.PCCommutesToWork = true;
322 327
         console.log("PC上下班");

+ 18 - 0
src/app/views/nurse-config/nurse-config-routing.module.ts

@@ -0,0 +1,18 @@
1
+import { NgModule } from '@angular/core';
2
+import { Routes, RouterModule } from '@angular/router';
3
+import { NurseConfigComponent } from './nurse-config.component';
4
+
5
+
6
+const routes: Routes = [
7
+  {
8
+    path: '',
9
+    component: NurseConfigComponent,
10
+  }
11
+];
12
+
13
+@NgModule({
14
+  imports: [RouterModule.forChild(routes)],
15
+  exports: [RouterModule]
16
+})
17
+export class NurseConfigRoutingModule { }
18
+

+ 22 - 0
src/app/views/nurse-config/nurse-config.component.html

@@ -0,0 +1,22 @@
1
+<div class="incidentConfig">
2
+  <div class="tagsAndTemplete">
3
+    <div class="tags">
4
+      <div><i class="icon_transport transport-peizhizhongxin"></i>配置中心&emsp;&gt;&emsp;业务流程控制</div>
5
+      <div class="tagList">
6
+        <span *ngFor="let tag of tagList" [ngClass]="{ active: activeTagLink === tag.link }" (click)="clickTag(tag)">{{ tag.title }}</span>
7
+      </div>
8
+      <button nz-button class="btn default" (click)="goBack()">返回</button>
9
+    </div>
10
+  </div>
11
+  <!-- 标本 -->
12
+  <ng-container *ngIf="activeTagLink === 'pageConfigSpecimen'">
13
+    <!-- <app-configuration-specimen></app-configuration-specimen> -->
14
+  </ng-container>
15
+
16
+  <!-- 药品 -->
17
+  <ng-container *ngIf="activeTagLink === 'pageConfigDrug'">
18
+    <!-- <app-configuration-drug></app-configuration-drug> -->
19
+  </ng-container>
20
+</div>
21
+
22
+

+ 57 - 0
src/app/views/nurse-config/nurse-config.component.less

@@ -0,0 +1,57 @@
1
+@import "../../../../src/theme.less";
2
+:host {
3
+  width: 100%;
4
+  .incidentConfig{
5
+    padding-bottom: 24px;
6
+    height: 100%;
7
+    display: flex;
8
+    flex-direction: column;
9
+    justify-content: space-between;
10
+    background-color: #F0F2F5;
11
+    .tagsAndTemplete{
12
+      height: 64px;
13
+      display: flex;
14
+      justify-content: space-between;
15
+      align-items: center;
16
+      .tags{
17
+        height: 100%;
18
+        background: #fff;
19
+        flex: 1;
20
+        padding: 16px 24px;
21
+        display: flex;
22
+        align-items: center;
23
+        justify-content: space-between;
24
+        position: relative;
25
+        .transport-peizhizhongxin{
26
+          color: @primary-color;
27
+          font-size: 20px;
28
+          margin-right: 8px;;
29
+        }
30
+        .tagList{
31
+          width: 100%;
32
+          height: 100%;
33
+          position: absolute;
34
+          left: 0;
35
+          top: 50%;
36
+          transform: translateY(-50%);
37
+          display: flex;
38
+          justify-content: center;
39
+          align-items: center;
40
+          span{
41
+            height: 100%;
42
+            display: inline-block;
43
+            padding: 0 24px;
44
+            cursor: pointer;
45
+            display: flex;
46
+            justify-content: center;
47
+            align-items: center;
48
+            &.active{
49
+              color: @primary-color;
50
+              background: #F0F6ED;
51
+            }
52
+          }
53
+        }
54
+      }
55
+    }
56
+  }
57
+}

+ 40 - 0
src/app/views/nurse-config/nurse-config.component.ts

@@ -0,0 +1,40 @@
1
+import { Component, OnInit, AfterViewInit } from "@angular/core";
2
+import { Location } from '@angular/common';
3
+
4
+@Component({
5
+  selector: "app-nurse-config",
6
+  templateUrl: "./nurse-config.component.html",
7
+  styleUrls: ["./nurse-config.component.less"],
8
+})
9
+export class NurseConfigComponent implements OnInit, AfterViewInit {
10
+  constructor(
11
+    private _location: Location,
12
+  ){}
13
+
14
+  // tab
15
+  tagList:any = [
16
+    // { id: 1, name: '标本',},
17
+  ];
18
+
19
+  ngOnInit(): void {}
20
+
21
+  ngAfterViewInit(){
22
+    setTimeout(() => {
23
+      let menus = JSON.parse(localStorage.getItem("menu"));
24
+      let pageConfig = menus.find(item => item.link == 'pageConfig');
25
+      this.tagList = pageConfig ? (pageConfig.childrens || []) : [];
26
+      this.tagList.length && this.clickTag(this.tagList[0]);
27
+    }, 0)
28
+  }
29
+
30
+  // 点击tab
31
+  activeTagLink:any = 1;
32
+  clickTag(tag){
33
+    this.activeTagLink = tag.link;
34
+  }
35
+
36
+  // 返回
37
+  goBack(){
38
+    this._location.back();
39
+  }
40
+}

+ 23 - 0
src/app/views/nurse-config/nurse-config.module.ts

@@ -0,0 +1,23 @@
1
+import { NgModule } from '@angular/core';
2
+import { CommonModule } from '@angular/common';
3
+
4
+import { NurseConfigRoutingModule } from './nurse-config-routing.module';
5
+import { NurseConfigComponent } from './nurse-config.component';
6
+import { ShareModule } from 'src/app/share/share.module';
7
+// import { ConfigurationSpecimenComponent } from 'src/app/components/configurationCenter/configuration-specimen/configuration-specimen.component';
8
+// import { ConfigurationDrugComponent } from 'src/app/components/configurationCenter/configuration-drug/configuration-drug.component';
9
+
10
+
11
+@NgModule({
12
+  declarations: [
13
+    NurseConfigComponent,
14
+    // ConfigurationSpecimenComponent,
15
+    // ConfigurationDrugComponent,
16
+  ],
17
+  imports: [
18
+    CommonModule,
19
+    NurseConfigRoutingModule,
20
+    ShareModule,
21
+  ]
22
+})
23
+export class NurseConfigModule { }

+ 141 - 3
src/assets/iconfont/demo_index.html

@@ -55,6 +55,42 @@
55 55
           <ul class="icon_lists dib-box">
56 56
           
57 57
             <li class="dib">
58
+              <span class="icon icon_transport">&#xe65c;</span>
59
+                <div class="name">护士</div>
60
+                <div class="code-name">&amp;#xe65c;</div>
61
+              </li>
62
+          
63
+            <li class="dib">
64
+              <span class="icon icon_transport">&#xe65a;</span>
65
+                <div class="name">向右</div>
66
+                <div class="code-name">&amp;#xe65a;</div>
67
+              </li>
68
+          
69
+            <li class="dib">
70
+              <span class="icon icon_transport">&#xe65b;</span>
71
+                <div class="name">药品数据</div>
72
+                <div class="code-name">&amp;#xe65b;</div>
73
+              </li>
74
+          
75
+            <li class="dib">
76
+              <span class="icon icon_transport">&#xe666;</span>
77
+                <div class="name">标本信息</div>
78
+                <div class="code-name">&amp;#xe666;</div>
79
+              </li>
80
+          
81
+            <li class="dib">
82
+              <span class="icon icon_transport">&#xe6cd;</span>
83
+                <div class="name">报修</div>
84
+                <div class="code-name">&amp;#xe6cd;</div>
85
+              </li>
86
+          
87
+            <li class="dib">
88
+              <span class="icon icon_transport">&#xe6ae;</span>
89
+                <div class="name">目录</div>
90
+                <div class="code-name">&amp;#xe6ae;</div>
91
+              </li>
92
+          
93
+            <li class="dib">
58 94
               <span class="icon icon_transport">&#xe7ba;</span>
59 95
                 <div class="name">护士执行护理工作</div>
60 96
                 <div class="code-name">&amp;#xe7ba;</div>
@@ -948,9 +984,9 @@
948 984
 <pre><code class="language-css"
949 985
 >@font-face {
950 986
   font-family: 'icon_transport';
951
-  src: url('iconfont.woff2?t=1729066208752') format('woff2'),
952
-       url('iconfont.woff?t=1729066208752') format('woff'),
953
-       url('iconfont.ttf?t=1729066208752') format('truetype');
987
+  src: url('iconfont.woff2?t=1732254783696') format('woff2'),
988
+       url('iconfont.woff?t=1732254783696') format('woff'),
989
+       url('iconfont.ttf?t=1732254783696') format('truetype');
954 990
 }
955 991
 </code></pre>
956 992
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -977,6 +1013,60 @@
977 1013
         <ul class="icon_lists dib-box">
978 1014
           
979 1015
           <li class="dib">
1016
+            <span class="icon icon_transport transport-hushi1"></span>
1017
+            <div class="name">
1018
+              护士
1019
+            </div>
1020
+            <div class="code-name">.transport-hushi1
1021
+            </div>
1022
+          </li>
1023
+          
1024
+          <li class="dib">
1025
+            <span class="icon icon_transport transport-xiangyou1"></span>
1026
+            <div class="name">
1027
+              向右
1028
+            </div>
1029
+            <div class="code-name">.transport-xiangyou1
1030
+            </div>
1031
+          </li>
1032
+          
1033
+          <li class="dib">
1034
+            <span class="icon icon_transport transport-yaopinshuju"></span>
1035
+            <div class="name">
1036
+              药品数据
1037
+            </div>
1038
+            <div class="code-name">.transport-yaopinshuju
1039
+            </div>
1040
+          </li>
1041
+          
1042
+          <li class="dib">
1043
+            <span class="icon icon_transport transport-biaobenxinxi"></span>
1044
+            <div class="name">
1045
+              标本信息
1046
+            </div>
1047
+            <div class="code-name">.transport-biaobenxinxi
1048
+            </div>
1049
+          </li>
1050
+          
1051
+          <li class="dib">
1052
+            <span class="icon icon_transport transport-baoxiu"></span>
1053
+            <div class="name">
1054
+              报修
1055
+            </div>
1056
+            <div class="code-name">.transport-baoxiu
1057
+            </div>
1058
+          </li>
1059
+          
1060
+          <li class="dib">
1061
+            <span class="icon icon_transport transport-RectangleCopy"></span>
1062
+            <div class="name">
1063
+              目录
1064
+            </div>
1065
+            <div class="code-name">.transport-RectangleCopy
1066
+            </div>
1067
+          </li>
1068
+          
1069
+          <li class="dib">
980 1070
             <span class="icon icon_transport transport-hushizhihanghuligongzuo"></span>
981 1071
             <div class="name">
982 1072
               护士执行护理工作
@@ -2319,6 +2409,54 @@
2319 2409
           
2320 2410
             <li class="dib">
2321 2411
                 <svg class="icon svg-icon" aria-hidden="true">
2412
+                  <use xlink:href="#transport-hushi1"></use>
2413
+                </svg>
2414
+                <div class="name">护士</div>
2415
+                <div class="code-name">#transport-hushi1</div>
2416
+            </li>
2417
+          
2418
+            <li class="dib">
2419
+                <svg class="icon svg-icon" aria-hidden="true">
2420
+                  <use xlink:href="#transport-xiangyou1"></use>
2421
+                </svg>
2422
+                <div class="name">向右</div>
2423
+                <div class="code-name">#transport-xiangyou1</div>
2424
+            </li>
2425
+          
2426
+            <li class="dib">
2427
+                <svg class="icon svg-icon" aria-hidden="true">
2428
+                  <use xlink:href="#transport-yaopinshuju"></use>
2429
+                </svg>
2430
+                <div class="name">药品数据</div>
2431
+                <div class="code-name">#transport-yaopinshuju</div>
2432
+            </li>
2433
+          
2434
+            <li class="dib">
2435
+                <svg class="icon svg-icon" aria-hidden="true">
2436
+                  <use xlink:href="#transport-biaobenxinxi"></use>
2437
+                </svg>
2438
+                <div class="name">标本信息</div>
2439
+                <div class="code-name">#transport-biaobenxinxi</div>
2440
+            </li>
2441
+          
2442
+            <li class="dib">
2443
+                <svg class="icon svg-icon" aria-hidden="true">
2444
+                  <use xlink:href="#transport-baoxiu"></use>
2445
+                </svg>
2446
+                <div class="name">报修</div>
2447
+                <div class="code-name">#transport-baoxiu</div>
2448
+            </li>
2449
+          
2450
+            <li class="dib">
2451
+                <svg class="icon svg-icon" aria-hidden="true">
2452
+                  <use xlink:href="#transport-RectangleCopy"></use>
2453
+                </svg>
2454
+                <div class="name">目录</div>
2455
+                <div class="code-name">#transport-RectangleCopy</div>
2456
+            </li>
2457
+          
2458
+            <li class="dib">
2459
+                <svg class="icon svg-icon" aria-hidden="true">
2322 2460
                   <use xlink:href="#transport-hushizhihanghuligongzuo"></use>
2323 2461
                 </svg>
2324 2462
                 <div class="name">护士执行护理工作</div>

+ 27 - 3
src/assets/iconfont/iconfont.css

@@ -1,8 +1,8 @@
1 1
 @font-face {
2 2
   font-family: "icon_transport"; /* Project id 4543613 */
3
-  src: url('iconfont.woff2?t=1729066208752') format('woff2'),
4
-       url('iconfont.woff?t=1729066208752') format('woff'),
5
-       url('iconfont.ttf?t=1729066208752') format('truetype');
3
+  src: url('iconfont.woff2?t=1732254783696') format('woff2'),
4
+       url('iconfont.woff?t=1732254783696') format('woff'),
5
+       url('iconfont.ttf?t=1732254783696') format('truetype');
6 6
 }
7 7
 
8 8
 .icon_transport {
@@ -13,6 +13,30 @@
13 13
   -moz-osx-font-smoothing: grayscale;
14 14
 }
15 15
 
16
+.transport-hushi1:before {
17
+  content: "\e65c";
18
+}
19
+
20
+.transport-xiangyou1:before {
21
+  content: "\e65a";
22
+}
23
+
24
+.transport-yaopinshuju:before {
25
+  content: "\e65b";
26
+}
27
+
28
+.transport-biaobenxinxi:before {
29
+  content: "\e666";
30
+}
31
+
32
+.transport-baoxiu:before {
33
+  content: "\e6cd";
34
+}
35
+
36
+.transport-RectangleCopy:before {
37
+  content: "\e6ae";
38
+}
39
+
16 40
 .transport-hushizhihanghuligongzuo:before {
17 41
   content: "\e7ba";
18 42
 }

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
src/assets/iconfont/iconfont.js


+ 42 - 0
src/assets/iconfont/iconfont.json

@@ -6,6 +6,48 @@
6 6
   "description": "",
7 7
   "glyphs": [
8 8
     {
9
+      "icon_id": "22953497",
10
+      "name": "护士",
11
+      "font_class": "hushi1",
12
+      "unicode": "e65c",
13
+      "unicode_decimal": 58972
14
+    },
15
+    {
16
+      "icon_id": "1205",
17
+      "name": "向右",
18
+      "font_class": "xiangyou1",
19
+      "unicode": "e65a",
20
+      "unicode_decimal": 58970
21
+    },
22
+    {
23
+      "icon_id": "1440397",
24
+      "name": "药品数据",
25
+      "font_class": "yaopinshuju",
26
+      "unicode": "e65b",
27
+      "unicode_decimal": 58971
28
+    },
29
+    {
30
+      "icon_id": "2276224",
31
+      "name": "标本信息",
32
+      "font_class": "biaobenxinxi",
33
+      "unicode": "e666",
34
+      "unicode_decimal": 58982
35
+    },
36
+    {
37
+      "icon_id": "2616660",
38
+      "name": "报修",
39
+      "font_class": "baoxiu",
40
+      "unicode": "e6cd",
41
+      "unicode_decimal": 59085
42
+    },
43
+    {
44
+      "icon_id": "7549848",
45
+      "name": "目录",
46
+      "font_class": "RectangleCopy",
47
+      "unicode": "e6ae",
48
+      "unicode_decimal": 59054
49
+    },
50
+    {
9 51
       "icon_id": "39318134",
10 52
       "name": "护士执行护理工作",
11 53
       "font_class": "hushizhihanghuligongzuo",

BIN
src/assets/iconfont/iconfont.ttf


BIN
src/assets/iconfont/iconfont.woff


BIN
src/assets/iconfont/iconfont.woff2