seimin 3 роки тому
батько
коміт
7adfd9bf2c

+ 24 - 16
package-lock.json

@@ -2608,9 +2608,9 @@
2608 2608
       }
2609 2609
     },
2610 2610
     "core-js": {
2611
-      "version": "3.16.1",
2612
-      "resolved": "https://registry.nlark.com/core-js/download/core-js-3.16.1.tgz",
2613
-      "integrity": "sha1-9Ehc5cnzxqfLGPqASI4I02IJckk="
2611
+      "version": "3.16.4",
2612
+      "resolved": "https://registry.nlark.com/core-js/download/core-js-3.16.4.tgz",
2613
+      "integrity": "sha1-D7ECmlVPwmiMCWPXyQDhiBiKeOA="
2614 2614
     },
2615 2615
     "core-util-is": {
2616 2616
       "version": "1.0.2",
@@ -6445,9 +6445,9 @@
6445 6445
       }
6446 6446
     },
6447 6447
     "npm": {
6448
-      "version": "6.14.14",
6449
-      "resolved": "https://registry.nlark.com/npm/download/npm-6.14.14.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnpm%2Fdownload%2Fnpm-6.14.14.tgz",
6450
-      "integrity": "sha1-MX+xMoMbdoKKahgN2cvLsjxdKiA=",
6448
+      "version": "6.14.15",
6449
+      "resolved": "https://registry.nlark.com/npm/download/npm-6.14.15.tgz",
6450
+      "integrity": "sha1-l91Rr1tdYiW2EbQMXLTTHaHUZ/4=",
6451 6451
       "requires": {
6452 6452
         "JSONStream": "^1.3.5",
6453 6453
         "abbrev": "~1.1.1",
@@ -6558,7 +6558,7 @@
6558 6558
         "sorted-union-stream": "~2.1.3",
6559 6559
         "ssri": "^6.0.2",
6560 6560
         "stringify-package": "^1.0.1",
6561
-        "tar": "^4.4.15",
6561
+        "tar": "^4.4.19",
6562 6562
         "text-table": "~0.2.0",
6563 6563
         "tiny-relative-date": "^1.3.0",
6564 6564
         "uid-number": "0.0.6",
@@ -8566,7 +8566,7 @@
8566 8566
           "bundled": true
8567 8567
         },
8568 8568
         "path-parse": {
8569
-          "version": "1.0.6",
8569
+          "version": "1.0.7",
8570 8570
           "bundled": true
8571 8571
         },
8572 8572
         "performance-now": {
@@ -9117,16 +9117,16 @@
9117 9117
           }
9118 9118
         },
9119 9119
         "tar": {
9120
-          "version": "4.4.15",
9120
+          "version": "4.4.19",
9121 9121
           "bundled": true,
9122 9122
           "requires": {
9123
-            "chownr": "^1.1.1",
9124
-            "fs-minipass": "^1.2.5",
9125
-            "minipass": "^2.8.6",
9126
-            "minizlib": "^1.2.1",
9127
-            "mkdirp": "^0.5.0",
9128
-            "safe-buffer": "^5.1.2",
9129
-            "yallist": "^3.0.3"
9123
+            "chownr": "^1.1.4",
9124
+            "fs-minipass": "^1.2.7",
9125
+            "minipass": "^2.9.0",
9126
+            "minizlib": "^1.3.3",
9127
+            "mkdirp": "^0.5.5",
9128
+            "safe-buffer": "^5.2.1",
9129
+            "yallist": "^3.1.1"
9130 9130
           },
9131 9131
           "dependencies": {
9132 9132
             "minipass": {
@@ -9136,6 +9136,14 @@
9136 9136
                 "safe-buffer": "^5.1.2",
9137 9137
                 "yallist": "^3.0.0"
9138 9138
               }
9139
+            },
9140
+            "safe-buffer": {
9141
+              "version": "5.2.1",
9142
+              "bundled": true
9143
+            },
9144
+            "yallist": {
9145
+              "version": "3.1.1",
9146
+              "bundled": true
9139 9147
             }
9140 9148
           }
9141 9149
         },

+ 2 - 2
package.json

@@ -24,7 +24,7 @@
24 24
     "@angular/router": "~8.1.1",
25 25
     "@types/crypto-js": "^3.1.47",
26 26
     "@types/overlayscrollbars": "^1.12.1",
27
-    "core-js": "^3.16.1",
27
+    "core-js": "^3.16.4",
28 28
     "crypto-js": "^3.3.0",
29 29
     "datatables.net": "^1.10.25",
30 30
     "date-fns": "^2.23.0",
@@ -32,7 +32,7 @@
32 32
     "ng-zorro-antd": "^8.5.2",
33 33
     "ngx-echarts": "^4.2.2",
34 34
     "ngx-sortablejs": "^3.1.3",
35
-    "npm": "^6.14.14",
35
+    "npm": "^6.14.15",
36 36
     "overlayscrollbars": "^1.11.0",
37 37
     "overlayscrollbars-ngx": "^0.1.1",
38 38
     "rxjs": "~6.4.0",

+ 13 - 0
src/app/pipes/html-transform.pipe.ts

@@ -0,0 +1,13 @@
1
+import { Pipe, PipeTransform } from "@angular/core";
2
+import { DomSanitizer } from "@angular/platform-browser";
3
+
4
+@Pipe({
5
+  name: "htmlTransform",
6
+})
7
+export class HtmlTransformPipe implements PipeTransform {
8
+  constructor(private sanitizer: DomSanitizer) {}
9
+
10
+  transform(value: any, ...args: any[]): any {
11
+    return this.sanitizer.bypassSecurityTrustHtml(value);
12
+  }
13
+}

+ 13 - 16
src/app/share/prompt-modal/prompt-modal.component.ts

@@ -1,42 +1,39 @@
1
-import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
2
-import host from "../../../assets/js/http.js";
3
-// import { ActivatedRoute, Router } from '@angular/router';
4
-
1
+import { Component, OnInit, Input, Output, EventEmitter } from "@angular/core";
2
+import host from "../../../assets/js/http";
5 3
 @Component({
6
-  selector: 'app-prompt-modal',
7
-  templateUrl: './prompt-modal.component.html',
8
-  styleUrls: ['./prompt-modal.component.less']
4
+  selector: "app-prompt-modal",
5
+  templateUrl: "./prompt-modal.component.html",
6
+  styleUrls: ["./prompt-modal.component.less"],
9 7
 })
10 8
 export class PromptModalComponent implements OnInit {
11
-  host=host.host;
9
+  host = host.host;
12 10
   @Input() content: string;
13 11
   @Input() success: boolean;
14 12
   @Input() show: boolean;
15 13
   @Input() info: string;
16
-  @Input() back: string = '';
14
+  @Input() back: string = "";
17 15
   @Input() isReLoad: Boolean = false;
18 16
   @Input() loading: Boolean = false;
19
-  @Input() previewImage: string = '';
17
+  @Input() previewImage: string = "";
20 18
   // @Input() nUrl: string;
21 19
 
22
-  @Output() closeModel = new EventEmitter<any>();//1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
20
+  @Output() closeModel = new EventEmitter<any>(); //1.组件暴露一个 EventEmitter 属性,当事件发生时,子组件利用该属性 emits(向上弹射)事件
23 21
 
24 22
   constructor() {}
25 23
   // constructor(private router: Router) {}
26 24
 
27 25
   ngOnInit() {
28 26
     console.log(this.show);
29
-    console.log(this.previewImage)
27
+    console.log(this.previewImage);
30 28
   }
31 29
   hideModal() {
32 30
     this.show = false;
33
-    this.closeModel.emit(this.back);//emits(向上弹射)事件
31
+    this.closeModel.emit(this.back); //emits(向上弹射)事件
34 32
     // if(this.nUrl){
35 33
     //   this.router.navigateByUrl(this.nUrl);
36 34
     // }
37
-    if(this.isReLoad){
38
-      location.reload(true)
35
+    if (this.isReLoad) {
36
+      location.reload(true);
39 37
     }
40 38
   }
41
-
42 39
 }

+ 3 - 0
src/app/share/share.module.ts

@@ -26,6 +26,7 @@ import { GenerateFloorComponent } from './generate-floor/generate-floor.componen
26 26
 import { BatchOrdersComponent } from './batch-orders/batch-orders.component';
27 27
 import { CollapseComponent } from './collapse/collapse.component';
28 28
 import { CollapsePanelComponent } from './collapse-panel/collapse-panel.component';
29
+import { HtmlTransformPipe } from '../pipes/html-transform.pipe';
29 30
 
30 31
 @NgModule({
31 32
   declarations: [
@@ -50,6 +51,7 @@ import { CollapsePanelComponent } from './collapse-panel/collapse-panel.componen
50 51
     BatchOrdersComponent,
51 52
     CollapseComponent,
52 53
     CollapsePanelComponent,
54
+    HtmlTransformPipe,
53 55
   ],
54 56
   imports: [
55 57
     CommonModule,
@@ -89,6 +91,7 @@ import { CollapsePanelComponent } from './collapse-panel/collapse-panel.componen
89 91
     BatchOrdersComponent,
90 92
     CollapseComponent,
91 93
     CollapsePanelComponent,
94
+    HtmlTransformPipe,
92 95
   ]
93 96
 })
94 97
 export class ShareModule { }

+ 0 - 9
src/app/type/sourceId.ts

@@ -1,9 +0,0 @@
1
-/**
2
- * 建单来源sourceId
3
- */
4
-export enum SourceId {
5
-  fuwutai = 1, //服务台
6
-  hushi = 2, //护士端
7
-  xitong = 3, //系统自动建单
8
-  wechat = 4, //微信端
9
-}

+ 24 - 0
src/app/type/types.ts

@@ -0,0 +1,24 @@
1
+/**
2
+ * 建单来源
3
+ */
4
+export enum SourceId {
5
+  fuwutai = 1, //服务台
6
+  hushi = 2, //护士端
7
+  xitong = 3, //系统自动建单
8
+  wechat = 4, //微信端
9
+}
10
+/**
11
+ * 接口地址
12
+ */
13
+export interface baseUrlType {
14
+  domain: string; //chrome下载地址
15
+  host: string; //接口地址
16
+  specimenViewHost: string; //业务视图地址
17
+  bigScreenHost: string; //大屏地址地址
18
+  bigScreenHost2: string; //大屏地址2地址
19
+  homeWs: string; //websocket首页地址
20
+  mainWs: string; //websocket管理端地址
21
+  nurseWs: string; //websocket护士端地址
22
+  fwtWs: string; //websocket服务台地址
23
+  phoneWs: string; //websocket服务台来电地址
24
+}

+ 1 - 1
src/app/views/fuwutai/fuwutai.component.ts

@@ -18,7 +18,7 @@ import { NzNotificationService } from "ng-zorro-antd/notification";
18 18
 import { OverlayScrollbarsComponent } from "overlayscrollbars-ngx";
19 19
 import { Subject } from "rxjs";
20 20
 import { debounceTime } from "rxjs/operators";
21
-import { SourceId } from "src/app/type/sourceId";
21
+import { SourceId } from "src/app/type/types";
22 22
 @Component({
23 23
   selector: "app-fuwutai",
24 24
   templateUrl: "./fuwutai.component.html",

+ 2 - 2
src/app/views/hushijiandan/hushijiandan.component.html

@@ -472,8 +472,8 @@
472 472
                               <overlay-scrollbars class="modalBody_right_box" #osComponentRef9 style="height: 100%;"
473 473
                                 *ngIf="!rLoading&&listDeptOrderRecords.length">
474 474
                                 <div class="modalBody_right_box">
475
-                                  <div class="modalBody_right_list" *ngFor="let item of listDeptOrderRecords">
476
-                                    {{item.msg}}</div>
475
+                                  <div class="modalBody_right_list" *ngFor="let item of listDeptOrderRecords"
476
+                                    [innerHTML]="item.msg|htmlTransform"></div>
477 477
                                 </div>
478 478
                               </overlay-scrollbars>
479 479
                               <div class="modalBody_left nLoading w100" *ngIf="rLoading">

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

@@ -399,6 +399,9 @@
399 399
               text-align: justify;
400 400
               border-bottom: 1px solid #dde1e5;
401 401
               padding: 8px 0;
402
+              b {
403
+                color: @primary-color;
404
+              }
402 405
             }
403 406
           }
404 407
           .modalBody_box {

+ 1 - 1
src/app/views/hushijiandan/hushijiandan.component.ts

@@ -31,7 +31,7 @@ import {
31 31
   differenceInCalendarDays,
32 32
   getHours,
33 33
 } from "date-fns";
34
-import { SourceId } from "src/app/type/sourceId";
34
+import { SourceId } from "src/app/type/types";
35 35
 // 日期禁用
36 36
 function range(start: number, end: number): number[] {
37 37
   const result: number[] = [];

+ 3 - 0
src/app/views/login/login.component.html

@@ -1,9 +1,11 @@
1 1
 <div class="login" *ngIf="!isSingleSignOn">
2 2
   <div class="loginBox">
3
+    <!-- 标题 -->
3 4
     <div class="title">
4 5
       <img src="../../assets/images/login_logo@2.png" alt="大势医院输送保障管理平台">
5 6
       <strong>大势医院输送保障管理平台</strong>
6 7
     </div>
8
+    <!-- 登录表单 -->
7 9
     <div class="content">
8 10
       <div class="form_wrap">
9 11
         <p>用户登录</p>
@@ -38,6 +40,7 @@
38 40
         </div>
39 41
       </div>
40 42
     </div>
43
+    <!-- 底部 -->
41 44
     <div class="bottom">
42 45
       <span>@大势科技.[京ICO:143]</span>
43 46
       <strong>点击下载谷歌浏览器👉</strong>

+ 5 - 30
src/app/views/login/login.component.ts

@@ -2,22 +2,20 @@ import { Component, OnInit } from "@angular/core";
2 2
 import { Router } from "@angular/router";
3 3
 import { FormBuilder, Validators, FormGroup } from "@angular/forms";
4 4
 import { NzMessageService } from "ng-zorro-antd/message";
5
-
6 5
 import { MainService } from "../../services/main.service";
7 6
 import http from "../../../assets/js/http";
8 7
 import { AES, mode, pad, enc } from "crypto-js";
9
-
8
+import { baseUrlType } from "src/app/type/types";
10 9
 @Component({
11 10
   selector: "app-login",
12 11
   templateUrl: "./login.component.html",
13 12
   styleUrls: ["./login.component.less"],
14 13
 })
15 14
 export class LoginComponent implements OnInit {
16
-  http;
15
+  http: baseUrlType;
17 16
   validateForm: FormGroup;
18
-  loading: boolean = false;
19
-  // 是否单点登录
20
-  isSingleSignOn: boolean;
17
+  loading: boolean = false; // 加载状态
18
+  isSingleSignOn: boolean = false; // 是否单点登录
21 19
   constructor(
22 20
     private router: Router,
23 21
     private fb: FormBuilder,
@@ -26,8 +24,7 @@ export class LoginComponent implements OnInit {
26 24
   ) {}
27 25
   ngOnInit() {
28 26
     this.http = http;
29
-    let url = location.href;
30
-    this.isSingleSignOn = url.includes("?");
27
+    this.isSingleSignOn = location.href.includes("?");
31 28
     if (this.isSingleSignOn) {
32 29
       this.singleSignOn();
33 30
     } else {
@@ -83,7 +80,6 @@ export class LoginComponent implements OnInit {
83 80
     });
84 81
     return tmpDeAES.toString(enc.Utf8);
85 82
   }
86
-
87 83
   // 初始化菜单
88 84
   initMenu(menu) {
89 85
     let menuLis = this.transform(menu);
@@ -99,7 +95,6 @@ export class LoginComponent implements OnInit {
99 95
     localStorage.setItem("menu", JSON.stringify(menuLis));
100 96
     localStorage.setItem("index", "true"); //首页默认高亮
101 97
   }
102
-
103 98
   // 初始化登录表单
104 99
   initForm() {
105 100
     let username, passsword;
@@ -175,7 +170,6 @@ export class LoginComponent implements OnInit {
175 170
       }
176 171
     });
177 172
   }
178
-
179 173
   // 页面跳转
180 174
   toRoute2(data) {
181 175
     let roleMenus = data.user.menu;
@@ -248,27 +242,8 @@ export class LoginComponent implements OnInit {
248 242
       this.router.navigateByUrl("/main/home");
249 243
     }
250 244
   }
251
-
252 245
   // 处理树数据(parent格式转为children格式)
253 246
   transform(nodes): any {
254
-    // // 一级菜单
255
-    // let parents = nodes.filter(value => value.parentid == 'undefined' || value.parentid == null)
256
-    // // 二级菜单
257
-    // let childrens = nodes.filter(value => value.parentid !== 'undefined' && value.parentid != null)
258
-    // let translator = (parents, childrens) => {
259
-    //   parents.forEach((parent) => {
260
-    //     childrens.forEach(current => {
261
-    //       if (current.parentid === parent.id) {
262
-    //         translator([current], childrens)
263
-    //         typeof parent.childrens !== 'undefined' ? parent.childrens.push(current) : parent.childrens = [current]
264
-    //       }
265
-    //     }
266
-    //     )
267
-    //   }
268
-    //   )
269
-    // }
270
-    // translator(parents, childrens)
271
-    //重写,提升数据处理效率-seimin
272 247
     let parents = [];
273 248
     const idMapping = nodes.reduce((acc, el, i) => {
274 249
       acc[el.id] = i;

+ 4 - 4
src/app/views/order-source-statistics/order-source-statistics.component.html

@@ -57,10 +57,10 @@
57 57
           <tr *ngFor="let data of listOfData;let index=index;">
58 58
             <td>{{index+(pageIndex-1)*10+1}}</td>
59 59
             <td>{{ data.date }}</td>
60
-            <td>{{ data.total||0}}</td>
61
-            <td>{{data.speCount||0}}</td>
62
-            <td>{{data.spePlanCount||0}}</td>
63
-            <td>{{data.insCount||0}}</td>
60
+            <td>{{ data.source1||0}}</td>
61
+            <td>{{data.source2||0}}</td>
62
+            <td>{{data.source3||0}}</td>
63
+            <td>{{data.source4||0}}</td>
64 64
           </tr>
65 65
         </tbody>
66 66
       </nz-table>

+ 2 - 1
src/app/views/order-source-statistics/order-source-statistics.component.ts

@@ -170,10 +170,11 @@ export class OrderSourceStatisticsComponent implements OnInit {
170 170
       endTime: this.searchData.dateRange.end,
171 171
       hosId: this.searchData.hosId,
172 172
       type: this.dateType,
173
+      sourceType: "date",
173 174
     };
174 175
     this.loading1 = true;
175 176
     this.mainService
176
-      .postCustom("report", "workOrder", postData)
177
+      .postCustom("report", "workOrderSourceReport", postData)
177 178
       .subscribe((result) => {
178 179
         this.loading1 = false;
179 180
         this.listOfData = result.list || [];

+ 0 - 16
src/assets/js/http.js

@@ -1,16 +0,0 @@
1
-var domainName = document.domain;//域名
2
-var port = location.port;//端口
3
-var protocolName = document.location.protocol;//http协议
4
-var wsName = protocolName === 'http:' ? 'ws' : 'wss';//ws协议
5
-module.exports = {
6
-  domain: protocolName + '//' + domainName + ':' + port,//chrome下载
7
-  host: protocolName + '//' + domainName + ':' + port + '/service',//测试接口
8
-  specimenViewHost: protocolName + '//' + domainName + ':' + port + '/specimenView',//业务视图
9
-  bigScreenHost: protocolName + '//' + domainName + ':' + port + '/largeScreen',//大屏地址
10
-  bigScreenHost2: protocolName + '//' + domainName + ':' + port + '/largeScreen2',//大屏地址2
11
-  homeWs: wsName + '://' + domainName + ':8080/webSocket/index',//websocket首页
12
-  mainWs: wsName + '://' + domainName + ':8080/webSocket/message/manage',//websocket管理端
13
-  nurseWs: wsName + '://' + domainName + ':8080/webSocket/message/nurse',//websocket护士端
14
-  fwtWs: wsName + '://' + domainName + ':8080/webSocket/message/ser',//websocket服务台
15
-  phoneWs: wsName + '://' + domainName + ':8080/webSocket/message/phone',//websocket服务台来电
16
-}

+ 19 - 0
src/assets/js/http.ts

@@ -0,0 +1,19 @@
1
+import { baseUrlType } from "src/app/type/types";
2
+
3
+const domainName: string = document.domain; //域名
4
+const port: string = location.port; //端口
5
+const protocolName: string = document.location.protocol; //http协议
6
+const wsName: string = protocolName === "http:" ? "ws" : "wss"; //ws协议
7
+const baseUrl: baseUrlType = {
8
+  domain: `${protocolName}//${domainName}:${port}`, //chrome下载地址
9
+  host: `${protocolName}//${domainName}:${port}/service`, //接口地址
10
+  specimenViewHost: `${protocolName}//${domainName}:${port}/specimenView`, //业务视图地址
11
+  bigScreenHost: `${protocolName}//${domainName}:${port}/largeScreen`, //大屏地址地址
12
+  bigScreenHost2: `${protocolName}//${domainName}:${port}/largeScreen2`, //大屏地址2地址
13
+  homeWs: `${wsName}://${domainName}:8080/webSocket/index`, //websocket首页地址
14
+  mainWs: `${wsName}://${domainName}:8080/webSocket/message/manage`, //websocket管理端地址
15
+  nurseWs: `${wsName}://${domainName}:8080/webSocket/message/nurse`, //websocket护士端地址
16
+  fwtWs: `${wsName}://${domainName}:8080/webSocket/message/ser`, //websocket服务台地址
17
+  phoneWs: `${wsName}://${domainName}:8080/webSocket/message/phone`, //websocket服务台来电地址
18
+};
19
+export default baseUrl;