seimin 8 kuukautta sitten
vanhempi
commit
66b8350f62
29 muutettua tiedostoa jossa 1447 lisäystä ja 76 poistoa
  1. 1 1
      proxy.conf.json
  2. 43 0
      src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component.html
  3. 142 0
      src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component.less
  4. 115 0
      src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component.ts
  5. 35 33
      src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component.html
  6. 6 0
      src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component.less
  7. 5 0
      src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component.ts
  8. 25 0
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.html
  9. 146 0
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.less
  10. 91 0
      src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts
  11. 97 0
      src/app/components/configurationCenter/configuration-message/configuration-message.component.html
  12. 322 0
      src/app/components/configurationCenter/configuration-message/configuration-message.component.less
  13. 281 0
      src/app/components/configurationCenter/configuration-message/configuration-message.component.ts
  14. 37 5
      src/app/components/configurationCenter/configuration-priority/configuration-priority.component.html
  15. 34 0
      src/app/components/configurationCenter/configuration-priority/configuration-priority.component.ts
  16. 14 4
      src/app/views/assets-product-management/assets-product-management.component.html
  17. 4 0
      src/app/views/assets-product-management/assets-product-management.component.ts
  18. 10 2
      src/app/views/incident-config/incident-config.component.html
  19. 4 2
      src/app/views/incident-config/incident-config.component.ts
  20. 5 1
      src/app/views/incident-config/incident-config.module.ts
  21. 4 4
      src/app/views/other-config/other-config.component.html
  22. 2 2
      src/app/views/other-config/other-config.component.ts
  23. 2 16
      src/app/views/other-config/other-config.module.ts
  24. 3 3
      src/assets/iconfont/demo_index.html
  25. 3 3
      src/assets/iconfont/iconfont.css
  26. BIN
      src/assets/iconfont/iconfont.ttf
  27. BIN
      src/assets/iconfont/iconfont.woff
  28. BIN
      src/assets/iconfont/iconfont.woff2
  29. 16 0
      src/common.less

+ 1 - 1
proxy.conf.json

@@ -1,6 +1,6 @@
1 1
 {
2 2
   "/service": {
3
-		"target": "http://192.168.3.108",
3
+		"target": "http://192.168.4.105",
4 4
     "logLevel": "debug",
5 5
     "changeOrigin": true,
6 6
     "pathRewrite": {

+ 43 - 0
src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component.html

@@ -0,0 +1,43 @@
1
+<div class="content priority">
2
+  <div class="contentInner">
3
+    <div class="addressAssign">
4
+      <overlay-scrollbars #osComponentRef2 class="contentBody2">
5
+        <div class="contentBody">
6
+          <div class="hospital">{{currentHospital.hosName}}</div>
7
+          <div class="classList">
8
+            节假日班次:
9
+            <nz-select class="select" [nzDropdownMatchSelectWidth]="false" nzAllowClear [(ngModel)]="dataInfo.holidayClassId"
10
+              nzPlaceHolder="请选择节假日班次" nzServerSearch>
11
+              <ng-container *ngFor="let data of classList1">
12
+                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
13
+              </ng-container>
14
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
15
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
16
+              </nz-option>
17
+            </nz-select>
18
+          </div>
19
+          <div class="classList">
20
+            工作日班次:
21
+            <nz-select class="select" [nzDropdownMatchSelectWidth]="false" nzAllowClear [(ngModel)]="dataInfo.workdayClassId"
22
+              nzPlaceHolder="请选择工作日班次" nzServerSearch>
23
+              <ng-container *ngFor="let data of classList2">
24
+                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
25
+              </ng-container>
26
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
27
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
28
+              </nz-option>
29
+            </nz-select>
30
+          </div>
31
+        </div>
32
+      </overlay-scrollbars>
33
+      <div class="contentBtns">
34
+        <button nz-button nzType="primary" (click)="submitMessageForm()">确定</button>
35
+      </div>
36
+    </div>
37
+  </div>
38
+</div>
39
+
40
+<!-- 操作成功/失败提示框 -->
41
+<app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
42
+  [info]="promptInfo">
43
+</app-prompt-modal>

+ 142 - 0
src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component.less

@@ -0,0 +1,142 @@
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
+  .content{
19
+    flex: 1;
20
+    min-height: 0;
21
+    display: flex;
22
+    flex-direction: column;
23
+    justify-content: space-between;
24
+    border: 1px solid #EEF3F9;
25
+    &.priority{
26
+      margin: 24px 275px 0;
27
+      background-color: #fff;
28
+      .contentInner{
29
+        padding: 40px 158px 72px;
30
+        border: 1px solid #E8EBEF;
31
+        .addressAssign{
32
+          width: 100%;
33
+          border: none;
34
+        }
35
+        .contentBody{
36
+          flex: 1;
37
+          display: flex;
38
+          flex-direction: column;
39
+          align-items: center;
40
+          padding: 0 16px;
41
+          gap: 32px;
42
+        }
43
+        .hospital{
44
+          width: 100%;
45
+          text-align: left;
46
+        }
47
+        .classList{
48
+          .select{
49
+            width: 313px;
50
+          }
51
+        }
52
+      }
53
+    }
54
+    .contentItem{
55
+      padding: 4px 16px;
56
+      cursor: pointer;
57
+      overflow: hidden;
58
+      text-overflow: ellipsis;
59
+      white-space: nowrap;
60
+      &.active{
61
+        color: @primary-color;
62
+        background-color: #F0F6ED;
63
+        border-radius: 4px;
64
+      }
65
+    }
66
+    .contentInner{
67
+      flex: 1;
68
+      display: flex;
69
+      flex-direction: column;
70
+      align-items: center;
71
+      padding: 0 16px;
72
+      gap: 32px;
73
+      .contentHead{
74
+        height: 45px;
75
+        display: flex;
76
+        justify-content: space-between;
77
+        align-items: center;
78
+        gap: 16px;
79
+        padding: 0 16px;
80
+        font-size: 16px;
81
+        font-weight: bold;
82
+        border-bottom: 1px solid #D9D9D9;
83
+        .title{
84
+          overflow: hidden;
85
+          text-overflow: ellipsis;
86
+          white-space: nowrap;
87
+        }
88
+        .btns{
89
+          flex-shrink: 0;
90
+        }
91
+      }
92
+      .contentBody{
93
+        padding: 0 8px 16px;
94
+        margin: 4px 0;
95
+        flex: 1;
96
+      }
97
+      .contentBody2{
98
+        flex: 1;
99
+      }
100
+      .address{
101
+        flex: 1;
102
+        height: 100%;
103
+        background: #FFFFFF;
104
+        border: 1px solid #E8EBEF;
105
+        display: flex;
106
+        flex-direction: column;
107
+        width: 0;
108
+      }
109
+      .addressAssign{
110
+        flex: 3;
111
+        height: 100%;
112
+        background: #FFFFFF;
113
+        border: 1px solid #E8EBEF;
114
+        display: flex;
115
+        flex-direction: column;
116
+        width: 0;
117
+      }
118
+      .list-template__searchItem {
119
+        margin-bottom: 16px;
120
+        .label {
121
+          color: #333;
122
+          display: inline-block;
123
+          width: 70px;
124
+          text-align-last: justify;
125
+          text-align: justify;
126
+          &.label--big {
127
+            width: 100px;
128
+          }
129
+        }
130
+        .formItem {
131
+          width: 135px;
132
+        }
133
+      }
134
+    }
135
+    .contentBtns{
136
+      margin-bottom: 16px;
137
+      display: flex;
138
+      justify-content: center;
139
+      align-items: center;
140
+    }
141
+  }
142
+}

+ 115 - 0
src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component.ts

@@ -0,0 +1,115 @@
1
+import { Component, OnInit } from "@angular/core";
2
+import { ActivatedRoute } from "@angular/router";
3
+import { MainService } from "../../../services/main.service";
4
+import { ToolService } from 'src/app/services/tool.service';
5
+import { NzMessageService } from 'ng-zorro-antd';
6
+
7
+@Component({
8
+  selector: "app-configuration-callcenter",
9
+  templateUrl: "./configuration-callcenter.component.html",
10
+  styleUrls: ["./configuration-callcenter.component.less"],
11
+})
12
+export class ConfigurationCallcenterComponent implements OnInit {
13
+  constructor(
14
+    private route: ActivatedRoute,
15
+    private mainService: MainService,
16
+    private tool: ToolService,
17
+    private message: NzMessageService,
18
+  ) {}
19
+
20
+  coopData: any = {}; //当前操作列
21
+  currentHospital; //当前院区
22
+
23
+  ngOnInit() {
24
+    this.currentHospital = this.tool.getCurrentHospital();
25
+    this.getList();
26
+    this.getClassList(1);
27
+    this.getClassList(2);
28
+  }
29
+
30
+  // 新增/编辑表单提交
31
+  btnLoading: boolean = false; //提交按钮loading状态
32
+  dataInfo:any = {};
33
+  submitMessageForm(): void {
34
+    this.btnLoading = true;
35
+    let postData:any = {
36
+      hosId: this.currentHospital.id,
37
+      workdayClassId: this.dataInfo.workdayClassId,
38
+      holidayClassId: this.dataInfo.holidayClassId,
39
+    };
40
+    postData = { ...this.dataInfo, ...postData };
41
+    this.mainService
42
+      .simplePost("addData", "callCenterConfig", postData)
43
+      .subscribe((result) => {
44
+        this.btnLoading = false;
45
+        let msg = "保存";
46
+        if (result.status == 200) {
47
+          this.showPromptModal(msg, true, '');
48
+        } else {
49
+          this.showPromptModal(msg, false, result.msg);
50
+        }
51
+      });
52
+  }
53
+
54
+  // 获取班次
55
+  isLoading:boolean = false;
56
+  classList1: any = [];
57
+  classList2: any = [];
58
+  // type: 1工作日,2节假日
59
+  getClassList(type:number) {
60
+    let postData = {
61
+      idx: 0,
62
+      sum: 9999,
63
+      scheduleClass: {
64
+        hospital: { id: this.currentHospital.id },
65
+        type,
66
+      },
67
+    };
68
+    this.mainService
69
+      .getFetchDataList("simple/data", "scheduleClass", postData)
70
+      .subscribe((data) => {
71
+        this.isLoading = false;
72
+        this['classList' + type] = data.list || [];
73
+      });
74
+  }
75
+
76
+  // 获取列表
77
+  loading1:boolean = false;
78
+  getList() {
79
+    let data = {
80
+      idx: 0,
81
+      sum: 9999,
82
+      callCenterConfig: {
83
+        hosId: this.currentHospital.id,
84
+      },
85
+    };
86
+    this.loading1 = true;
87
+    this.mainService
88
+      .getFetchDataList("simple/data", "callCenterConfig", data)
89
+      .subscribe((data) => {
90
+        this.loading1 = false;
91
+        if (data.status == 200) {
92
+          let list = data.list || [];
93
+          this.dataInfo = list.length ? list[0] : {};
94
+        }else{
95
+          this.message.error(data.msg || "请求数据失败");
96
+        }
97
+      });
98
+  }
99
+
100
+  // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
101
+  promptContent: string; //操作提示框提示信息
102
+  ifSuccess: boolean; //操作成功/失败
103
+  promptInfo: string; //操作结果提示信息
104
+  promptModalShow: boolean; //操作提示框是否展示
105
+  showPromptModal(con, success, promptInfo?) {
106
+    this.promptModalShow = false;
107
+    this.promptContent = con;
108
+    this.ifSuccess = success;
109
+    this.promptInfo = promptInfo;
110
+    setTimeout(() => {
111
+      this.promptModalShow = true;
112
+    }, 100);
113
+    this.getList();
114
+  }
115
+}

+ 35 - 33
src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component.html

@@ -12,39 +12,41 @@
12 12
           <div class="name">键</div>
13 13
           <div class="value">值</div>
14 14
         </div>
15
-        <form nz-form [formGroup]="validateDictionaryForm" class="w100">
16
-          <div class="dictionaryRow" *ngFor="let data of dictionaryList;let i = index;">
17
-            <div class="orders">
18
-              <nz-form-item>
19
-                <nz-form-control [nzSpan]="24" nzErrorTip="请输入排序号!">
20
-                  <nz-input-group>
21
-                    <nz-input-number [formControlName]="'orders_' + data.id" class="ordersInput"></nz-input-number>
22
-                  </nz-input-group>
23
-                </nz-form-control>
24
-              </nz-form-item>
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)"></i>
45
+                <i class="icon_transport transport-shanchu1 ml8" *ngIf="dictionaryList.length > 1 && !data.system" (click)="removeField(data, i)"></i>
46
+              </div>
25 47
             </div>
26
-            <div class="name">
27
-              <nz-form-item>
28
-                <nz-form-control [nzSpan]="24" nzErrorTip="请输入键!">
29
-                  <nz-input-group>
30
-                    <input [formControlName]="'name_' + data.id" nz-input class="nameInput">
31
-                  </nz-input-group>
32
-                </nz-form-control>
33
-              </nz-form-item>
34
-            </div>
35
-            <div class="value">
36
-              <nz-form-item>
37
-                <nz-form-control [nzSpan]="24" nzErrorTip="请输入值!">
38
-                  <nz-input-group>
39
-                    <input [formControlName]="'value_' + data.id" nz-input class="valueInput">
40
-                  </nz-input-group>
41
-                </nz-form-control>
42
-              </nz-form-item>
43
-              <i class="icon_transport transport-tag27fuben ml8" (click)="addField(i)"></i>
44
-              <i class="icon_transport transport-shanchu1 ml8" *ngIf="dictionaryList.length > 1 && !data.system" (click)="removeField(data, i)"></i>
45
-            </div>
46
-          </div>
47
-        </form>
48
+          </form>
49
+        </overlay-scrollbars>
48 50
       </div>
49 51
       <div class="contentBtns">
50 52
         <button nz-button nzType="primary" class="ml8" (click)="saveDictionary()">保存</button>
@@ -63,4 +65,4 @@
63 65
 (confirmDelEvent)="confirmDel()" [content]="tipsMsg1"></app-dialog-delete>
64 66
 
65 67
 <!-- 遮罩 -->
66
-<app-mask *ngIf="maskFlag"></app-mask>
68
+<app-mask *ngIf="maskFlag"></app-mask>

+ 6 - 0
src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component.less

@@ -32,6 +32,12 @@
32 32
     }
33 33
     .contentBody{
34 34
       padding: 16px;
35
+      min-height: 0;
36
+      display: flex;
37
+      flex-direction: column;
38
+    }
39
+    .contentBody2{
40
+      flex: 1;
35 41
     }
36 42
     ::ng-deep .ant-form-item{
37 43
       margin-bottom: 0;

+ 5 - 0
src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component.ts

@@ -26,6 +26,11 @@ export class ConfigurationDictionaryComponent implements OnInit {
26 26
     static: false,
27 27
   })
28 28
   osComponentRef1: OverlayScrollbarsComponent;
29
+  @ViewChild("osComponentRef2", {
30
+    read: OverlayScrollbarsComponent,
31
+    static: false,
32
+  })
33
+  osComponentRef2: OverlayScrollbarsComponent;
29 34
 
30 35
   ngOnInit() {
31 36
     this.initDictionaryForm();

+ 25 - 0
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.html

@@ -0,0 +1,25 @@
1
+<div class="content priority">
2
+  <div class="contentInner">
3
+    <div class="addressAssign">
4
+      <overlay-scrollbars #osComponentRef2 class="contentBody2">
5
+        <div class="contentBody">
6
+          <div class="classList" *ngFor="let item of hospitalList">
7
+            <span>{{ item.desc }}:</span>
8
+            <nz-radio-group [(ngModel)]="item.value">
9
+              <label nz-radio nzValue="1">是</label>
10
+              <label nz-radio nzValue="0">否</label>
11
+            </nz-radio-group>
12
+          </div>
13
+        </div>
14
+      </overlay-scrollbars>
15
+      <div class="contentBtns">
16
+        <button nz-button nzType="primary" (click)="submitMessageForm()">确定</button>
17
+      </div>
18
+    </div>
19
+  </div>
20
+</div>
21
+
22
+<!-- 操作成功/失败提示框 -->
23
+<app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
24
+  [info]="promptInfo">
25
+</app-prompt-modal>

+ 146 - 0
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.less

@@ -0,0 +1,146 @@
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
+  .content{
19
+    flex: 1;
20
+    min-height: 0;
21
+    display: flex;
22
+    flex-direction: column;
23
+    justify-content: space-between;
24
+    border: 1px solid #EEF3F9;
25
+    &.priority{
26
+      margin: 24px 275px 0;
27
+      background-color: #fff;
28
+      .contentInner{
29
+        padding: 90px 158px 72px;
30
+        border: 1px solid #E8EBEF;
31
+        .addressAssign{
32
+          width: 100%;
33
+          border: none;
34
+        }
35
+        .contentBody{
36
+          flex: 1;
37
+          display: flex;
38
+          flex-direction: column;
39
+          align-items: center;
40
+          padding: 0 16px;
41
+          gap: 32px;
42
+        }
43
+        .hospital{
44
+          width: 100%;
45
+          text-align: left;
46
+        }
47
+        .classList{
48
+          .select{
49
+            width: 313px;
50
+          }
51
+          span{
52
+            display: inline-block;
53
+            width: 11em;
54
+          }
55
+        }
56
+      }
57
+    }
58
+    .contentItem{
59
+      padding: 4px 16px;
60
+      cursor: pointer;
61
+      overflow: hidden;
62
+      text-overflow: ellipsis;
63
+      white-space: nowrap;
64
+      &.active{
65
+        color: @primary-color;
66
+        background-color: #F0F6ED;
67
+        border-radius: 4px;
68
+      }
69
+    }
70
+    .contentInner{
71
+      flex: 1;
72
+      display: flex;
73
+      flex-direction: column;
74
+      align-items: center;
75
+      padding: 0 16px;
76
+      gap: 32px;
77
+      .contentHead{
78
+        height: 45px;
79
+        display: flex;
80
+        justify-content: space-between;
81
+        align-items: center;
82
+        gap: 16px;
83
+        padding: 0 16px;
84
+        font-size: 16px;
85
+        font-weight: bold;
86
+        border-bottom: 1px solid #D9D9D9;
87
+        .title{
88
+          overflow: hidden;
89
+          text-overflow: ellipsis;
90
+          white-space: nowrap;
91
+        }
92
+        .btns{
93
+          flex-shrink: 0;
94
+        }
95
+      }
96
+      .contentBody{
97
+        padding: 0 8px 16px;
98
+        margin: 4px 0;
99
+        flex: 1;
100
+      }
101
+      .contentBody2{
102
+        flex: 1;
103
+      }
104
+      .address{
105
+        flex: 1;
106
+        height: 100%;
107
+        background: #FFFFFF;
108
+        border: 1px solid #E8EBEF;
109
+        display: flex;
110
+        flex-direction: column;
111
+        width: 0;
112
+      }
113
+      .addressAssign{
114
+        flex: 3;
115
+        height: 100%;
116
+        background: #FFFFFF;
117
+        border: 1px solid #E8EBEF;
118
+        display: flex;
119
+        flex-direction: column;
120
+        width: 0;
121
+      }
122
+      .list-template__searchItem {
123
+        margin-bottom: 16px;
124
+        .label {
125
+          color: #333;
126
+          display: inline-block;
127
+          width: 70px;
128
+          text-align-last: justify;
129
+          text-align: justify;
130
+          &.label--big {
131
+            width: 100px;
132
+          }
133
+        }
134
+        .formItem {
135
+          width: 135px;
136
+        }
137
+      }
138
+    }
139
+    .contentBtns{
140
+      margin-bottom: 16px;
141
+      display: flex;
142
+      justify-content: center;
143
+      align-items: center;
144
+    }
145
+  }
146
+}

+ 91 - 0
src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component.ts

@@ -0,0 +1,91 @@
1
+import { Component, OnInit } from "@angular/core";
2
+import { ActivatedRoute } from "@angular/router";
3
+import { MainService } from "../../../services/main.service";
4
+import { ToolService } from 'src/app/services/tool.service';
5
+import { NzMessageService } from 'ng-zorro-antd';
6
+
7
+@Component({
8
+  selector: "app-configuration-hospital",
9
+  templateUrl: "./configuration-hospital.component.html",
10
+  styleUrls: ["./configuration-hospital.component.less"],
11
+})
12
+export class ConfigurationHospitalComponent implements OnInit {
13
+  constructor(
14
+    private route: ActivatedRoute,
15
+    private mainService: MainService,
16
+    private tool: ToolService,
17
+    private message: NzMessageService,
18
+  ) {}
19
+
20
+  coopData: any = {}; //当前操作列
21
+  currentHospital; //当前院区
22
+
23
+  ngOnInit() {
24
+    this.currentHospital = this.tool.getCurrentHospital();
25
+    this.getList();
26
+  }
27
+
28
+  // 新增/编辑表单提交
29
+  btnLoading: boolean = false; //提交按钮loading状态
30
+  submitMessageForm(): void {
31
+    this.btnLoading = true;
32
+    let postData:any = {
33
+      hosId: this.currentHospital.id,
34
+      // workdayClassId: this.dataInfo.workdayClassId,
35
+      // holidayClassId: this.dataInfo.holidayClassId,
36
+    };
37
+    // postData = { ...this.dataInfo, ...postData };
38
+    this.mainService
39
+      .simplePost("addData", "hospitalConfig", postData)
40
+      .subscribe((result) => {
41
+        this.btnLoading = false;
42
+        let msg = "保存";
43
+        if (result.status == 200) {
44
+          this.showPromptModal(msg, true, '');
45
+        } else {
46
+          this.showPromptModal(msg, false, result.msg);
47
+        }
48
+      });
49
+  }
50
+
51
+  // 获取列表
52
+  loading1:boolean = false;
53
+  hospitalList:any[] = [];
54
+  getList() {
55
+    let data = {
56
+      idx: 0,
57
+      sum: 9999,
58
+      hospitalConfig: {
59
+        hosId: this.currentHospital.id,
60
+        model: 'itsm',
61
+      },
62
+    };
63
+    this.loading1 = true;
64
+    this.mainService
65
+      .getFetchDataList("simple/data", "hospitalConfig", data)
66
+      .subscribe((data) => {
67
+        this.loading1 = false;
68
+        if (data.status == 200) {
69
+          this.hospitalList = data.list || [];
70
+        }else{
71
+          this.message.error(data.msg || "请求数据失败");
72
+        }
73
+      });
74
+  }
75
+
76
+  // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
77
+  promptContent: string; //操作提示框提示信息
78
+  ifSuccess: boolean; //操作成功/失败
79
+  promptInfo: string; //操作结果提示信息
80
+  promptModalShow: boolean; //操作提示框是否展示
81
+  showPromptModal(con, success, promptInfo?) {
82
+    this.promptModalShow = false;
83
+    this.promptContent = con;
84
+    this.ifSuccess = success;
85
+    this.promptInfo = promptInfo;
86
+    setTimeout(() => {
87
+      this.promptModalShow = true;
88
+    }, 100);
89
+    this.getList();
90
+  }
91
+}

+ 97 - 0
src/app/components/configurationCenter/configuration-message/configuration-message.component.html

@@ -0,0 +1,97 @@
1
+<div class="content priority">
2
+  <div class="contentInner">
3
+    <div class="list-template" id="wechatTable">
4
+      <div class="list-template__content">
5
+        <div class="list-template__bottom">
6
+          <nz-table class="list-template__nzTable" [nzData]="messageList" nzSize="middle" [nzShowPagination]="false"
7
+            [nzLoading]="loading1" [nzScroll]="{ y: tableHeight + 'px' }">
8
+            <thead>
9
+              <tr class="thead">
10
+                <th nzWidth="5%">序号</th>
11
+                <th nzWidth="20%">通知描述</th>
12
+                <th nzWidth="20%">被通知人</th>
13
+                <th nzWidth="20%">通知模式</th>
14
+                <th nzWidth="20%">是否开启</th>
15
+                <th nzWidth="15%">操作</th>
16
+              </tr>
17
+            </thead>
18
+            <tbody>
19
+              <tr *ngFor="let data of messageList;let i = index">
20
+                <td>{{i + 1}}</td>
21
+                <td>{{data.noticeNode}}</td>
22
+                <td>{{data.noticeDetails}}</td>
23
+                <td>
24
+                  {{data.messageStationFlag == 1 ? '站内消息' : ''}}
25
+                  {{data.shortMessageFlag == 1 ? '短信' : ''}}
26
+                  {{data.wechatMessageFlag ==1 ? '微信' : ''}}
27
+                </td>
28
+                <td>{{data.flag ==1 ? '是' : '否'}}</td>
29
+                <td>
30
+                  <div class="coop">
31
+                    <span (click)="edit(data)">编辑</span>
32
+                  </div>
33
+                </td>
34
+              </tr>
35
+            </tbody>
36
+          </nz-table>
37
+        </div>
38
+      </div>
39
+    </div>
40
+  </div>
41
+</div>
42
+
43
+<!-- 新增/编辑模态框 -->
44
+<div class="save display_flex justify-content_flex-center align-items_center add" *ngIf="modalMessage">
45
+  <div class="modalBody">
46
+    <div class="title">{{modelName}}<i class="icon_transport transport-guanbi" (click)="hideMessageModal()"></i></div>
47
+    <div class="content">
48
+      <div class="message_head">
49
+        <span class="head_item">流程描述:{{ editData.noticeNode }}</span>
50
+        <span class="head_item">被通知人:{{ editData.noticeDetails }}</span>
51
+        <span class="head_item">
52
+          <ng-container  *ngIf="editData.noticeRule !== 'no'&&(editData.noticeCode == 'user_receive_overresp' || editData.noticeCode == 'manager_receive_overresp')">
53
+            <i class="icon_transport transport-required red"></i>逾期响应时长<nz-input-number class="inputNumber" nzSize="small" [(ngModel)]="editData.noticeRule"></nz-input-number>分钟
54
+          </ng-container>
55
+          <ng-container  *ngIf="editData.noticeRule !== 'no'&&(editData.noticeCode == 'user_doing_overresp' || editData.noticeCode == 'manager_doing_overresp')">
56
+            <i class="icon_transport transport-required red"></i>解决时长剩余<nz-input-number class="inputNumber" nzSize="small" [(ngModel)]="editData.noticeRule"></nz-input-number>%
57
+          </ng-container>
58
+        </span>
59
+      </div>
60
+      <div class="message_tab">
61
+        <div class="tab" *ngFor="let item of tabs;let i = index;" (click)="selectTab(i)" [ngClass]="{ active: i == currentIndex }">
62
+          <label nz-checkbox [(ngModel)]="item.checkboxFlag" (ngModelChange)="selectThis($event, i)"></label><span class="ml8">{{item.tabName}}</span>
63
+        </div>
64
+      </div>
65
+      <div class="message_body">
66
+        <div class="message_body_list" *ngFor="let item of tabs;let i = index;" [hidden]="i != currentIndex">
67
+          <div class="message_body_list_title" *ngIf="!(i == 1)">
68
+            <span>通知标题:</span><input nz-input placeholder="请输入通知标题" [(ngModel)]="item.processTitle" [disabled]="item.disable" />
69
+          </div>
70
+          <div class="message_body_list_body">
71
+            <span>通知内容:</span><textarea class="wd" rows="10" nz-input placeholder="请输入通知内容" [(ngModel)]="item.processContent" [disabled]="item.disable"></textarea>
72
+          </div>
73
+          <div class="message_body_list_configure">
74
+            <span style="visibility: hidden">变量名称:</span>
75
+            <p>备注:[$变量名称$]可添加<em *ngFor="let v of varArr;let first = first;let last = last;"><span (click)="writeIn(item, v, $event, 'processContent')">{{v}}</span><i *ngIf="!last">、</i><i *ngIf="last">。</i></em></p>
76
+          </div>
77
+          <div class="message_body_list_title">
78
+            <span><i class="icon_transport transport-required red"></i>是否开启:</span>
79
+            <nz-radio-group [(ngModel)]="editData.flag">
80
+              <label nz-radio [nzValue]="true">是</label>
81
+              <label nz-radio [nzValue]="false">否</label>
82
+            </nz-radio-group>
83
+          </div>
84
+        </div>
85
+      </div>
86
+    </div>
87
+    <div class=" display_flex justify-content_flex-center">
88
+      <button nzType="primary" nz-button (click)="submitMessageForm()" [nzLoading]="btnLoading">确认</button>
89
+      <button class="btn cancel" nz-button nzType="default" (click)="hideMessageModal()">取消</button>
90
+    </div>
91
+  </div>
92
+</div>
93
+
94
+<!-- 操作成功/失败提示框 -->
95
+<app-prompt-modal *ngIf="promptModalShow" [content]="promptContent" [success]="ifSuccess" [show]="promptModalShow"
96
+  [info]="promptInfo">
97
+</app-prompt-modal>

+ 322 - 0
src/app/components/configurationCenter/configuration-message/configuration-message.component.less

@@ -0,0 +1,322 @@
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
+  .content{
19
+    flex: 1;
20
+    min-height: 0;
21
+    display: flex;
22
+    flex-direction: column;
23
+    justify-content: space-between;
24
+    border: 1px solid #EEF3F9;
25
+    &.priority{
26
+      margin: 24px 64px 0;
27
+      background-color: #fff;
28
+      .contentInner{
29
+        padding: 24px;
30
+        border: 1px solid #E8EBEF;
31
+      }
32
+    }
33
+    .contentItem{
34
+      padding: 4px 16px;
35
+      cursor: pointer;
36
+      overflow: hidden;
37
+      text-overflow: ellipsis;
38
+      white-space: nowrap;
39
+      &.active{
40
+        color: @primary-color;
41
+        background-color: #F0F6ED;
42
+        border-radius: 4px;
43
+      }
44
+    }
45
+    .contentInner{
46
+      flex: 1;
47
+      display: flex;
48
+      justify-content: space-between;
49
+      align-items: center;
50
+      padding: 0 16px;
51
+      gap: 16px;
52
+      .contentHead{
53
+        height: 45px;
54
+        display: flex;
55
+        justify-content: space-between;
56
+        align-items: center;
57
+        gap: 16px;
58
+        padding: 0 16px;
59
+        font-size: 16px;
60
+        font-weight: bold;
61
+        border-bottom: 1px solid #D9D9D9;
62
+        .title{
63
+          overflow: hidden;
64
+          text-overflow: ellipsis;
65
+          white-space: nowrap;
66
+        }
67
+        .btns{
68
+          flex-shrink: 0;
69
+        }
70
+      }
71
+      .contentBody{
72
+        padding: 0 8px;
73
+        margin: 4px 0;
74
+        flex: 1;
75
+      }
76
+      .address{
77
+        flex: 1;
78
+        height: 100%;
79
+        background: #FFFFFF;
80
+        border: 1px solid #E8EBEF;
81
+        display: flex;
82
+        flex-direction: column;
83
+        width: 0;
84
+      }
85
+      .addressAssign{
86
+        flex: 3;
87
+        height: 100%;
88
+        background: #FFFFFF;
89
+        border: 1px solid #E8EBEF;
90
+        display: flex;
91
+        flex-direction: column;
92
+        width: 0;
93
+      }
94
+      .list-template__searchItem {
95
+        margin-bottom: 16px;
96
+        .label {
97
+          color: #333;
98
+          display: inline-block;
99
+          width: 70px;
100
+          text-align-last: justify;
101
+          text-align: justify;
102
+          &.label--big {
103
+            width: 100px;
104
+          }
105
+        }
106
+        .formItem {
107
+          width: 135px;
108
+        }
109
+      }
110
+    }
111
+    .contentBtns{
112
+      margin-bottom: 16px;
113
+      display: flex;
114
+      justify-content: center;
115
+      align-items: center;
116
+    }
117
+  }
118
+
119
+  .save {
120
+    position: fixed;
121
+    left: 0;
122
+    top: 0;
123
+    width: 100%;
124
+    height: 100%;
125
+    background: rgba(0, 0, 0, 0.4);
126
+    z-index: 99;
127
+
128
+    .tips{
129
+      margin-bottom: 16px!important;
130
+    }
131
+
132
+    .modalBody {
133
+      width: 350px;
134
+      background: #fff;
135
+      border-radius: 5px;
136
+      padding: 10px 20px;
137
+      color: #333;
138
+
139
+      .title {
140
+        width: 100%;
141
+        text-align: center;
142
+        font-size: 18px;
143
+        position: relative;
144
+
145
+        i {
146
+          position: absolute;
147
+          right: 0;
148
+          top: 0;
149
+          font-size: 20px;
150
+          color: #666;
151
+          cursor: pointer;
152
+          padding: 0 5px;
153
+        }
154
+      }
155
+
156
+      .content {
157
+        width: 310px;
158
+        background: #f9fafb;
159
+        border: 1px solid #e5e9ed;
160
+        border-radius: 5px;
161
+        overflow: hidden;
162
+        margin-top: 12px;
163
+        padding: 16px 0;
164
+
165
+        .busyList{
166
+          display: flex;
167
+          margin-bottom: 8px;
168
+          .busyContent{
169
+            margin-right: 8px;
170
+            flex: 1;
171
+          }
172
+        }
173
+
174
+        & > div {
175
+          text-align: center;
176
+          margin: 0;
177
+
178
+          &.icon {
179
+            // margin-top: 17px;
180
+
181
+            i {
182
+              color: #34b349;
183
+              font-size: 30px !important;
184
+
185
+              &.transport-wenhao {
186
+                color: #f5a523;
187
+              }
188
+
189
+              &.transport-shibai {
190
+                color: #ff3a52;
191
+              }
192
+            }
193
+          }
194
+
195
+          &.defeat {
196
+            color: #333;
197
+            font-size: 14px;
198
+          }
199
+
200
+          &:nth-child(3) {
201
+            font-size: 14px;
202
+            color: #666;
203
+          }
204
+        }
205
+        .workAssignmentTips {
206
+          font-size: 12px;
207
+        }
208
+      }
209
+
210
+      button {
211
+        margin-top: 10px;
212
+
213
+        &.btn {
214
+          margin-left: 8px;
215
+        }
216
+      }
217
+    }
218
+
219
+    // 新增
220
+    &.add {
221
+      .transport-required{
222
+        font-size: 10px;
223
+        margin-right: 4px;
224
+        position: relative;
225
+        bottom: 2px;
226
+      }
227
+      .modalBody {
228
+        width: 926px;
229
+        height: auto;
230
+
231
+        .content {
232
+          display: block;
233
+          width: 100%;
234
+          height: auto;
235
+          padding: 0;
236
+          max-height: 600px;
237
+          overflow-y: auto;
238
+          border: 1px solid #E9E9E9;
239
+
240
+          .message_head{
241
+            height: 50px;
242
+            padding: 0 24px;
243
+            display: flex;
244
+            justify-content: space-between;
245
+            align-items: center;
246
+            .head_item{
247
+              flex: 1;
248
+              &:first-of-type{
249
+                text-align: left;
250
+              }
251
+              &:last-of-type{
252
+                text-align: right;
253
+              }
254
+              .inputNumber{
255
+                width: 62px;
256
+                margin-left: 2px;
257
+                margin-right: 5px;
258
+              }
259
+            }
260
+          }
261
+
262
+          .message_tab{
263
+            height: 56px;
264
+            display: flex;
265
+            border-top: 1px solid #E9E9E9;
266
+            .tab{
267
+              height: 100%;
268
+              flex: 1;
269
+              display: flex;
270
+              justify-content: center;
271
+              align-items: center;
272
+              cursor: pointer;
273
+              &.active{
274
+                color: @primary-color;
275
+                background-color: #EEEEEE;
276
+              }
277
+            }
278
+          }
279
+
280
+          .message_body{
281
+            border-top: 1px solid #E9E9E9;
282
+            width: 300%;
283
+            display: flex;
284
+            .message_body_list{
285
+              width: 884px;
286
+              padding: 16px;
287
+              .message_body_list_title{
288
+                display: flex;
289
+                margin-top: 0;
290
+                align-items: center;
291
+                span{
292
+                  flex-shrink: 0;
293
+                }
294
+              }
295
+              .message_body_list_body{
296
+                display: flex;
297
+                margin-top: 16px;
298
+                line-height: 32px;
299
+                span{
300
+                  flex-shrink: 0;
301
+                }
302
+              }
303
+              .message_body_list_configure{
304
+                display: flex;
305
+                text-align: left;
306
+                margin-top: 8px;
307
+                span{
308
+                  flex-shrink: 0;
309
+                }
310
+                em{
311
+                  font-style: normal;
312
+                  color: @primary-color;
313
+                  cursor: pointer;
314
+                }
315
+              }
316
+            }
317
+          }
318
+        }
319
+      }
320
+    }
321
+  }
322
+}

+ 281 - 0
src/app/components/configurationCenter/configuration-message/configuration-message.component.ts

@@ -0,0 +1,281 @@
1
+import { Component, OnInit } from "@angular/core";
2
+import { ActivatedRoute } from "@angular/router";
3
+import { MainService } from "../../../services/main.service";
4
+import { ToolService } from 'src/app/services/tool.service';
5
+import { NzMessageService } from 'ng-zorro-antd';
6
+
7
+@Component({
8
+  selector: "app-configuration-message",
9
+  templateUrl: "./configuration-message.component.html",
10
+  styleUrls: ["./configuration-message.component.less"],
11
+})
12
+export class ConfigurationMessageComponent implements OnInit {
13
+  constructor(
14
+    private route: ActivatedRoute,
15
+    private mainService: MainService,
16
+    private tool: ToolService,
17
+    private message: NzMessageService,
18
+  ) {}
19
+
20
+  coopData: any = {}; //当前操作列
21
+  currentHospital; //当前院区
22
+
23
+  ngOnInit() {
24
+    this.currentHospital = this.tool.getCurrentHospital();
25
+    setTimeout(() => {
26
+      this.tableHeight = document.querySelector('#wechatTable').clientHeight - 8 - document.querySelector('#wechatTable .thead').clientHeight;
27
+    }, 0)
28
+    this.getList();
29
+  }
30
+
31
+  // 新增弹框
32
+  modelName = ""; //模态框名称
33
+  modalMessage: boolean = false; //新增/编辑模态框
34
+  add: boolean; //true:新增;false:编辑
35
+  //关闭新增/编辑弹框
36
+  hideMessageModal() {
37
+    this.modalMessage = false;
38
+  }
39
+
40
+  // 选项卡
41
+  //tabName: 名称,processTitle:标题, processContent: 内容, checkboxFlag: checkbox是否选中,,disable:遮罩是否显示
42
+  tabs = []
43
+
44
+  //变量参数
45
+  varArr = [
46
+    "[$报修单号$]",
47
+    "[$报修科室$]",
48
+    "[$报修时间$]",
49
+    "[$报修人$]",
50
+    "[$详细地址$]",
51
+    "[$不受理时间$]",
52
+    "[$不受理原因$]",
53
+    "[$故障描述$]",
54
+    "[$服务台人员$]",
55
+    "[$受理时间$]",
56
+    "[$事件单号$]",
57
+    "[$地点$]",
58
+    "[$区域$]",
59
+    "[$学工号$]",
60
+    "[$联系人电话$]",
61
+    "[$受理人$]",
62
+    "[$受理人电话$]",
63
+    "[$处理人$]",
64
+    "[$处理人电话$]",
65
+    "[$指派人$]",
66
+    "[$转派人$]",
67
+    "[$延期原因$]",
68
+    "[$进入系统$]",
69
+    "[$回访满意度$]",
70
+    "[$回访备注$]",
71
+    "[$回访处理结果$]",
72
+    "[$评价满意度$]",
73
+    "[$评价内容$]",
74
+  ];
75
+
76
+  // 写入
77
+  writeIn(tab, content, event, type){
78
+    console.log(event);
79
+    var element = event.target.parentElement.parentElement.parentElement.previousElementSibling.children[1];
80
+    if (element.selectionStart || element.selectionStart == '0') {
81
+        var startPos = element.selectionStart;
82
+        var endPos = element.selectionEnd;
83
+        tab[type] = element.value.substring(0, startPos) + content + element.value.substring(endPos);
84
+        element.focus();
85
+        setTimeout(() => {
86
+          element.setSelectionRange(startPos + content.length, startPos + content.length);
87
+        },0)
88
+    } else {
89
+        var val = element.value + content;
90
+        tab[type] = val;
91
+        element.focus();
92
+    }
93
+  }
94
+
95
+  // 编辑
96
+  currentIndex = 0;
97
+  editData:any = {};
98
+  edit(data) {
99
+    console.log(data);
100
+    this.modelName = "编辑";
101
+    this.add = false;
102
+    this.modalMessage = true;
103
+
104
+    this.coopData = data;
105
+    this.editData = {
106
+        id: data.id,//id
107
+        noticeCode: data.noticeCode,
108
+        noticeRule: data.noticeRule === undefined ? 'no' : data.noticeRule,//通知规则,数字
109
+        noticeNode: data.noticeNode,//流程节点
110
+        processName: data.processName,//报修流程或者事件流程
111
+        noticeState: data.noticeState,//状态
112
+        noticeDetails: data.noticeDetails,//被通知人
113
+        noticeProcess: data.noticeProcess,//1为报修流程、2为事件流程
114
+        messageStationContent: data.messageStationContent,//站内消息通知内容
115
+        shortMessageContent: data.shortMessageContent,//短信通知内容
116
+        wechatMessageContent: data.wechatMessageContent,//微信通知内容
117
+        messageStationFlag: data.messageStationFlag == 1 ? true : false,//站内消息是否开启
118
+        shortMessageFlag: data.shortMessageFlag == 1 ? true : false,//短信是否开启
119
+        wechatMessageFlag: data.wechatMessageFlag == 1 ? true : false,//微信是否开启
120
+        messageStationTitle: data.messageStationTitle,//站内消息标题
121
+        wechatMessageTitle: data.wechatMessageTitle,//微信标题
122
+        flag: data.flag == 1 ? true : false//总开关是否开启,0为关闭,1为开启
123
+    };
124
+
125
+    this.tabs = [
126
+      {
127
+        tabName: "站内消息",
128
+        processTitle: this.editData.messageStationTitle,
129
+        processContent: this.editData.messageStationContent,
130
+        checkboxFlag: this.editData.messageStationFlag,
131
+        disable: !this.editData.messageStationFlag
132
+      },
133
+      {
134
+          tabName: "短信",
135
+          processTitle: '',
136
+          processContent: this.editData.shortMessageContent,
137
+          checkboxFlag: this.editData.shortMessageFlag,
138
+          disable: !this.editData.shortMessageFlag
139
+      },
140
+      {
141
+          tabName: "微信",
142
+          processTitle: this.editData.wechatMessageTitle,
143
+          processContent: this.editData.wechatMessageContent,
144
+          checkboxFlag: this.editData.wechatMessageFlag,
145
+          disable: !this.editData.wechatMessageFlag
146
+      }
147
+    ];
148
+
149
+    this.currentIndex = 0;
150
+  }
151
+
152
+  //tab页面切换
153
+  selectTab(index) {
154
+    this.currentIndex = index;
155
+  };
156
+
157
+  //checkbox选中或者取消
158
+  selectThis(e, index) {
159
+    //遮罩切换
160
+    this.tabs[index].disable = !this.tabs[index].checkboxFlag;
161
+    //所有checkbox有一个选中,总开关开启
162
+    this.editData.flag = this.tabs.some(function (v) {
163
+        return v.checkboxFlag;
164
+    });
165
+};
166
+
167
+  // 新增/编辑表单提交
168
+  btnLoading: boolean = false; //提交按钮loading状态
169
+  submitMessageForm(): void {
170
+    this.btnLoading = true;
171
+    var filterArr = this.tabs.filter(item => {
172
+      return item.checkboxFlag;
173
+    });
174
+    for (var i = 0; i < filterArr.length; i++) {
175
+        if (filterArr[i].processContent == '') {
176
+            alert("通知内容【" + filterArr[i].tabName + "】不能为空!");
177
+            return;
178
+        } else {
179
+            var nowArr = [...new Set([...(filterArr[i].processContent.match(/\[\$[^\$\[\]]*?\$\]/g) || []), ...this.varArr])];
180
+            if (nowArr.length !== this.varArr.length) {
181
+                alert("【" + filterArr[i].tabName + "】请填写有效的变量名称!");
182
+                return;
183
+            }
184
+        }
185
+    }
186
+    let postData:any = {};
187
+    //请求参数处理(是否有输入数字控件)
188
+    if (this.editData.noticeRule !== 'no') {
189
+        postData = {
190
+            // "messageManager": {
191
+                "id": this.editData.id,
192
+                "noticeRule": this.editData.noticeRule,
193
+                "messageStationFlag": this.tabs[0].checkboxFlag ? 1 : 0,
194
+                "messageStationTitle": this.tabs[0].processTitle,
195
+                "messageStationContent": this.tabs[0].processContent,
196
+                "shortMessageFlag": this.tabs[1].checkboxFlag ? 1 : 0,
197
+                "shortMessageContent": this.tabs[1].processContent,
198
+                "wechatMessageFlag": this.tabs[2].checkboxFlag ? 1 : 0,
199
+                "wechatMessageTitle": this.tabs[2].processTitle,
200
+                "wechatMessageContent": this.tabs[2].processContent,
201
+                "flag": this.editData.flag ? 1 : 0
202
+            // }
203
+        };
204
+    } else {
205
+        postData = {
206
+            // "messageManager": {
207
+                "id": this.editData.id,
208
+                "messageStationFlag": this.tabs[0].checkboxFlag ? 1 : 0,
209
+                "messageStationTitle": this.tabs[0].processTitle,
210
+                "messageStationContent": this.tabs[0].processContent,
211
+                "shortMessageFlag": this.tabs[1].checkboxFlag ? 1 : 0,
212
+                "shortMessageContent": this.tabs[1].processContent,
213
+                "wechatMessageFlag": this.tabs[2].checkboxFlag ? 1 : 0,
214
+                "wechatMessageTitle": this.tabs[2].processTitle,
215
+                "wechatMessageContent": this.tabs[2].processContent,
216
+                "flag": this.editData.flag ? 1 : 0
217
+            // }
218
+        };
219
+    }
220
+    // 关闭模态窗口并传递一个结果
221
+    postData = Object.assign({}, this.coopData, postData);
222
+    this.mainService
223
+      .simplePost("updData", "messageManager", postData)
224
+      .subscribe((result) => {
225
+        this.btnLoading = false;
226
+        this.hideMessageModal();
227
+        let msg = "";
228
+        if (this.add) {
229
+          msg = "新增";
230
+        } else {
231
+          msg = "修改";
232
+        }
233
+        if (result.status == 200) {
234
+          this.showPromptModal(msg, true, '');
235
+        } else {
236
+          this.showPromptModal(msg, false, result.msg);
237
+        }
238
+      });
239
+  }
240
+
241
+  // 获取列表
242
+  loading1:boolean = false;
243
+  messageList: any[] = []; //表格数据
244
+  tableHeight:number = 0;
245
+  getList() {
246
+    let data = {
247
+      idx: 0,
248
+      sum: 9999,
249
+      messageManager: {
250
+        "noticeProcess": 1
251
+      },
252
+    };
253
+    this.loading1 = true;
254
+    this.mainService
255
+      .getFetchDataList("simple/data", "messageManager", data)
256
+      .subscribe((data) => {
257
+        this.loading1 = false;
258
+        if (data.status == 200) {
259
+          this.messageList = data.list || [];
260
+        }else{
261
+          this.message.error(data.msg || "请求数据失败");
262
+        }
263
+      });
264
+  }
265
+
266
+  // 展示信息提示框(con:提示信息,success:操作是否成功,promptInfo:操作结果提示信息)
267
+  promptContent: string; //操作提示框提示信息
268
+  ifSuccess: boolean; //操作成功/失败
269
+  promptInfo: string; //操作结果提示信息
270
+  promptModalShow: boolean; //操作提示框是否展示
271
+  showPromptModal(con, success, promptInfo?) {
272
+    this.promptModalShow = false;
273
+    this.promptContent = con;
274
+    this.ifSuccess = success;
275
+    this.promptInfo = promptInfo;
276
+    setTimeout(() => {
277
+      this.promptModalShow = true;
278
+    }, 100);
279
+    this.getList();
280
+  }
281
+}

+ 37 - 5
src/app/components/configurationCenter/configuration-priority/configuration-priority.component.html

@@ -12,11 +12,13 @@
12 12
             [nzLoading]="loading1" [nzScroll]="{ y: tablePriorityHeight + 'px' }">
13 13
             <thead>
14 14
               <tr class="thead">
15
-                <th nzWidth="20%">优先级名称</th>
16
-                <th nzWidth="20%">排序</th>
17
-                <th nzWidth="20%">响应时间(分钟)</th>
18
-                <th nzWidth="20%">解决时间(分钟)</th>
19
-                <th nzWidth="20%">操作</th>
15
+                <th nzWidth="14%">优先级名称</th>
16
+                <th nzWidth="14%">排序</th>
17
+                <th nzWidth="14%">响应时间(分钟)</th>
18
+                <th nzWidth="14%">解决时间(分钟)</th>
19
+                <th nzWidth="14%">节假日班次</th>
20
+                <th nzWidth="14%">工作日班次</th>
21
+                <th nzWidth="16%">操作</th>
20 22
               </tr>
21 23
             </thead>
22 24
             <tbody>
@@ -25,6 +27,8 @@
25 27
                 <td>{{data.orders}}</td>
26 28
                 <td>{{data.responseTime}}</td>
27 29
                 <td>{{data.handleTime}}</td>
30
+                <td>{{data.holidayClassDTO?.name}}</td>
31
+                <td>{{data.workdayClassDTO?.name}}</td>
28 32
                 <td>
29 33
                   <div class="coop">
30 34
                     <span (click)="showDelModal(data,'您确认要删除吗?','删除','delPriority')">删除</span>
@@ -87,6 +91,34 @@
87 91
             </nz-input-group>
88 92
           </nz-form-control>
89 93
         </nz-form-item>
94
+        <nz-form-item>
95
+          <nz-form-label [nzSpan]="6" nzFor="holidayClassId">&nbsp;&nbsp;节假日班次</nz-form-label>
96
+          <nz-form-control [nzSpan]="18" nzErrorTip="请选择节假日班次!">
97
+            <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="holidayClassId"
98
+              nzPlaceHolder="请选择节假日班次" nzServerSearch>
99
+              <ng-container *ngFor="let data of classList1">
100
+                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
101
+              </ng-container>
102
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
103
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
104
+              </nz-option>
105
+            </nz-select>
106
+          </nz-form-control>
107
+        </nz-form-item>
108
+        <nz-form-item>
109
+          <nz-form-label [nzSpan]="6" nzFor="workdayClassId">&nbsp;&nbsp;工作日班次</nz-form-label>
110
+          <nz-form-control [nzSpan]="18" nzErrorTip="请选择工作日班次!">
111
+            <nz-select [nzDropdownMatchSelectWidth]="false" nzAllowClear formControlName="workdayClassId"
112
+              nzPlaceHolder="请选择工作日班次" nzServerSearch>
113
+              <ng-container *ngFor="let data of classList2">
114
+                <nz-option *ngIf="!isLoading" [nzLabel]="data.name" [nzValue]="data.id"></nz-option>
115
+              </ng-container>
116
+              <nz-option *ngIf="isLoading" nzDisabled nzCustomContent>
117
+                <i nz-icon nzType="loading" class="loading-icon"></i> 搜索中...
118
+              </nz-option>
119
+            </nz-select>
120
+          </nz-form-control>
121
+        </nz-form-item>
90 122
       </form>
91 123
     </div>
92 124
     <div class=" display_flex justify-content_flex-center">

+ 34 - 0
src/app/components/configurationCenter/configuration-priority/configuration-priority.component.ts

@@ -22,16 +22,20 @@ export class ConfigurationPriorityComponent implements OnInit {
22 22
   ) {}
23 23
 
24 24
   coopData: any = {}; //当前操作列
25
+  currentHospital; //当前院区
25 26
 
26 27
   formatterMinute = (value: number) => `${value} 分钟`;
27 28
   parserMinute = (value: string) => value.replace(' 分钟', '');
28 29
 
29 30
   ngOnInit() {
31
+    this.currentHospital = this.tool.getCurrentHospital();
30 32
     // 优先级
31 33
     setTimeout(() => {
32 34
       this.tablePriorityHeight = document.querySelector('#priorityTable').clientHeight - document.querySelector('#priorityTable .list-template__top').clientHeight - 8 - document.querySelector('#priorityTable .thead').clientHeight;
33 35
     }, 0)
34 36
     this.getPriorityList();
37
+    this.getClassList(1);
38
+    this.getClassList(2);
35 39
   }
36 40
 
37 41
   // 新增优先级弹框
@@ -61,6 +65,8 @@ export class ConfigurationPriorityComponent implements OnInit {
61 65
     this.validatePriorityForm.controls.orders.setValue(data.orders);
62 66
     this.validatePriorityForm.controls.responseTime.setValue(data.responseTime);
63 67
     this.validatePriorityForm.controls.handleTime.setValue(data.handleTime);
68
+    this.validatePriorityForm.controls.holidayClassId.setValue(data.holidayClassId);
69
+    this.validatePriorityForm.controls.workdayClassId.setValue(data.workdayClassId);
64 70
   }
65 71
 
66 72
   // 新增/编辑表单提交
@@ -85,6 +91,8 @@ export class ConfigurationPriorityComponent implements OnInit {
85 91
           orders: this.validatePriorityForm.value.orders,
86 92
           responseTime: this.validatePriorityForm.value.responseTime,
87 93
           handleTime: this.validatePriorityForm.value.handleTime,
94
+          holidayClassId: this.validatePriorityForm.value.holidayClassId,
95
+          workdayClassId: this.validatePriorityForm.value.workdayClassId,
88 96
         // }
89 97
       };
90 98
     } else {
@@ -97,6 +105,8 @@ export class ConfigurationPriorityComponent implements OnInit {
97 105
             orders: this.validatePriorityForm.value.orders,
98 106
             responseTime: this.validatePriorityForm.value.responseTime,
99 107
             handleTime: this.validatePriorityForm.value.handleTime,
108
+            holidayClassId: this.validatePriorityForm.value.holidayClassId,
109
+            workdayClassId: this.validatePriorityForm.value.workdayClassId,
100 110
           }
101 111
         // }
102 112
       };
@@ -128,6 +138,8 @@ export class ConfigurationPriorityComponent implements OnInit {
128 138
       orders: [null, [Validators.required]],//排序号
129 139
       responseTime: [0, [Validators.required]],//响应时间
130 140
       handleTime: [0, [Validators.required]],//解决时间
141
+      holidayClassId: [null],//节假日班次
142
+      workdayClassId: [null],//工作日班次
131 143
     });
132 144
     console.log(this.validatePriorityForm.controls)
133 145
   }
@@ -155,6 +167,28 @@ export class ConfigurationPriorityComponent implements OnInit {
155 167
       });
156 168
   }
157 169
 
170
+  // 获取班次
171
+  isLoading:boolean = false;
172
+  classList1: any = [];
173
+  classList2: any = [];
174
+  // type: 1工作日,2节假日
175
+  getClassList(type:number) {
176
+    let postData = {
177
+      idx: 0,
178
+      sum: 9999,
179
+      scheduleClass: {
180
+        hospital: { id: this.currentHospital.id },
181
+        type,
182
+      },
183
+    };
184
+    this.mainService
185
+      .getFetchDataList("simple/data", "scheduleClass", postData)
186
+      .subscribe((data) => {
187
+        this.isLoading = false;
188
+        this['classList' + type] = data.list || [];
189
+      });
190
+  }
191
+
158 192
   delModal: boolean = false; //删除模态框
159 193
   tipsMsg1: string; //提示框信息
160 194
   tipsMsg2: string; //操作后信息

+ 14 - 4
src/app/views/assets-product-management/assets-product-management.component.html

@@ -37,12 +37,13 @@
37 37
             <th nzWidth="8%">名称</th>
38 38
             <th nzWidth="8%">型号</th>
39 39
             <th nzWidth="8%">品牌</th>
40
+            <th nzWidth="8%">单位</th>
40 41
             <th nzWidth="8%">大类</th>
41 42
             <th nzWidth="8%">小类</th>
42
-            <th nzWidth="12%">描述</th>
43
-            <th nzWidth="14%">供应商</th>
44
-            <th nzWidth="14%">生产商</th>
45
-            <th nzWidth="12%">操作</th>
43
+            <th nzWidth="11%">描述</th>
44
+            <th nzWidth="11%">供应商</th>
45
+            <th nzWidth="11%">生产商</th>
46
+            <th nzWidth="11%">操作</th>
46 47
           </tr>
47 48
         </thead>
48 49
         <tbody>
@@ -51,6 +52,7 @@
51 52
             <td>{{data.name}}</td>
52 53
             <td>{{data.model}}</td>
53 54
             <td>{{data.brand}}</td>
55
+            <td>{{data.unit}}</td>
54 56
             <td>{{data.mainTypeDTO?.name}}</td>
55 57
             <td>{{data.subTypeDTO?.name}}</td>
56 58
             <td>{{data.description}}</td>
@@ -105,6 +107,14 @@
105 107
             </nz-form-control>
106 108
           </nz-form-item>
107 109
           <nz-form-item>
110
+            <nz-form-label [nzSpan]="5" nzRequired nzFor="unit">单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</nz-form-label>
111
+            <nz-form-control [nzSpan]="19" nzErrorTip="请输入单位!">
112
+              <nz-input-group>
113
+                  <input formControlName="unit" nz-input placeholder="请输入单位">
114
+              </nz-input-group>
115
+            </nz-form-control>
116
+          </nz-form-item>
117
+          <nz-form-item>
108 118
             <nz-form-label [nzSpan]="5" nzRequired nzFor="mainType">大&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;类</nz-form-label>
109 119
             <nz-form-control [nzSpan]="19" nzErrorTip="请选择大类!">
110 120
               <nz-select [nzDropdownMatchSelectWidth]="false" formControlName="mainType" nzShowSearch

+ 4 - 0
src/app/views/assets-product-management/assets-product-management.component.ts

@@ -137,6 +137,7 @@ export class AssetsProductManagementComponent implements OnInit {
137 137
       name: ['', [Validators.required, Validators.pattern(/\S/)]],
138 138
       model: ['', [Validators.required, Validators.pattern(/\S/)]],
139 139
       brand: ['', [Validators.required, Validators.pattern(/\S/)]],
140
+      unit: ['', [Validators.required, Validators.pattern(/\S/)]],
140 141
       mainType: [null, [Validators.required]],
141 142
       subType: [null],
142 143
       description: [''],
@@ -258,6 +259,7 @@ export class AssetsProductManagementComponent implements OnInit {
258 259
           name: this.validateForm.value.name,
259 260
           model: this.validateForm.value.model,
260 261
           brand: this.validateForm.value.brand,
262
+          unit: this.validateForm.value.unit,
261 263
           mainType: this.validateForm.value.mainType,
262 264
           subType: this.validateForm.value.subType || undefined,
263 265
           description: this.validateForm.value.description,
@@ -275,6 +277,7 @@ export class AssetsProductManagementComponent implements OnInit {
275 277
             name: this.validateForm.value.name,
276 278
             model: this.validateForm.value.model,
277 279
             brand: this.validateForm.value.brand,
280
+            unit: this.validateForm.value.unit,
278 281
             mainType: this.validateForm.value.mainType,
279 282
             subType: this.validateForm.value.subType || undefined,
280 283
             description: this.validateForm.value.description,
@@ -316,6 +319,7 @@ export class AssetsProductManagementComponent implements OnInit {
316 319
     this.validateForm.controls.name.setValue(data.name);
317 320
     this.validateForm.controls.model.setValue(data.model);
318 321
     this.validateForm.controls.brand.setValue(data.brand);
322
+    this.validateForm.controls.unit.setValue(data.unit);
319 323
     this.validateForm.controls.mainType.setValue(data.mainType ? data.mainType.toString() : null);
320 324
     this.validateForm.controls.subType.setValue(data.subType ? data.subType.toString() : null);
321 325
     this.validateForm.controls.description.setValue(data.description);

+ 10 - 2
src/app/views/incident-config/incident-config.component.html

@@ -20,14 +20,22 @@
20 20
   <ng-container *ngIf="activeTagId === 3">
21 21
     <app-configuration-dictionary></app-configuration-dictionary>
22 22
   </ng-container>
23
+  <!-- 消息通知 -->
24
+  <ng-container *ngIf="activeTagId === 4">
25
+    <app-configuration-message></app-configuration-message>
26
+  </ng-container>
23 27
 	<!-- 工时管理 -->
24
-	<ng-container *ngIf="activeTagId === 4">
28
+	<ng-container *ngIf="activeTagId === 5">
25 29
 	  <app-configuration-manHour></app-configuration-manHour>
26 30
 	</ng-container>
27 31
 	<!-- 科室绑定人员 -->
28
-	<ng-container *ngIf="activeTagId === 5">
32
+	<ng-container *ngIf="activeTagId === 6">
29 33
 	  <app-configuration-deptUser></app-configuration-deptUser>
30 34
 	</ng-container>
35
+  <!-- 院区配置 -->
36
+  <ng-container *ngIf="activeTagId === 7">
37
+    <app-configuration-hospital></app-configuration-hospital>
38
+  </ng-container>
31 39
 </div>
32 40
 
33 41
 

+ 4 - 2
src/app/views/incident-config/incident-config.component.ts

@@ -16,8 +16,10 @@ export class IncidentConfigComponent implements OnInit, AfterViewInit {
16 16
     { id: 1, name: '故障现象',},
17 17
     { id: 2, name: '优先级',},
18 18
     { id: 3, name: '数据字典',},
19
-		{ id: 4, name: '工时管理',},
20
-		{ id: 5, name: '科室绑定人员',},
19
+    { id: 4, name: '消息通知',},
20
+		{ id: 5, name: '工时管理',},
21
+		{ id: 6, name: '科室绑定人员',},
22
+    { id: 7, name: '院区配置',},
21 23
   ];
22 24
 
23 25
   ngOnInit(): void {}

+ 5 - 1
src/app/views/incident-config/incident-config.module.ts

@@ -9,6 +9,8 @@ import { ConfigurationPriorityComponent } from 'src/app/components/configuration
9 9
 import { ConfigurationDictionaryComponent } from 'src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component';
10 10
 import { ConfigurationManHourComponent } from 'src/app/components/configurationCenter/configuration-manHour/configuration-manHour.component';
11 11
 import { ConfigurationDeptUserComponent } from 'src/app/components/configurationCenter/configuration-deptUser/configuration-deptUser.component';
12
+import { ConfigurationMessageComponent } from 'src/app/components/configurationCenter/configuration-message/configuration-message.component';
13
+import { ConfigurationHospitalComponent } from 'src/app/components/configurationCenter/configuration-hospital/configuration-hospital.component';
12 14
 
13 15
 
14 16
 @NgModule({
@@ -18,7 +20,9 @@ import { ConfigurationDeptUserComponent } from 'src/app/components/configuration
18 20
     ConfigurationPriorityComponent,
19 21
     ConfigurationDictionaryComponent,
20 22
 		ConfigurationManHourComponent,
21
-		ConfigurationDeptUserComponent
23
+		ConfigurationDeptUserComponent,
24
+    ConfigurationMessageComponent,
25
+    ConfigurationHospitalComponent,
22 26
   ],
23 27
   imports: [
24 28
     CommonModule,

+ 4 - 4
src/app/views/other-config/other-config.component.html

@@ -8,13 +8,13 @@
8 8
       <button nz-button class="btn default" (click)="goBack()">返回</button>
9 9
     </div>
10 10
   </div>
11
-  <!-- 微信配置 -->
11
+  <!-- 呼叫中心 -->
12 12
   <ng-container *ngIf="activeTagId === 1">
13
-    <app-configuration-wechat></app-configuration-wechat>
13
+    <app-configuration-callcenter></app-configuration-callcenter>
14 14
   </ng-container>
15
-  <!-- 优先级 -->
15
+  <!-- 微信配置 -->
16 16
   <ng-container *ngIf="activeTagId === 2">
17
-    <!-- <app-configuration-priority></app-configuration-priority> -->
17
+    <app-configuration-wechat></app-configuration-wechat>
18 18
   </ng-container>
19 19
   <!-- 数据字典 -->
20 20
   <ng-container *ngIf="activeTagId === 3">

+ 2 - 2
src/app/views/other-config/other-config.component.ts

@@ -13,8 +13,8 @@ export class OtherConfigComponent implements OnInit, AfterViewInit {
13 13
 
14 14
   // tab
15 15
   tagList:any = [
16
-    { id: 1, name: '微信配置',},
17
-    // { id: 2, name: '优先级',},
16
+    { id: 1, name: '呼叫中心',},
17
+    { id: 2, name: '微信配置',},
18 18
     // { id: 3, name: '数据字典',},
19 19
   ];
20 20
 

+ 2 - 16
src/app/views/other-config/other-config.module.ts

@@ -4,29 +4,15 @@ import { CommonModule } from '@angular/common';
4 4
 import { OtherConfigRoutingModule } from './other-config-routing.module';
5 5
 import { OtherConfigComponent } from './other-config.component';
6 6
 import { ShareModule } from 'src/app/share/share.module';
7
-import { ConfigurationCategoryComponent } from 'src/app/components/configurationCenter/configuration-category/configuration-category.component';
8
-import { ConfigurationPriorityComponent } from 'src/app/components/configurationCenter/configuration-priority/configuration-priority.component';
9
-import { ConfigurationDictionaryComponent } from 'src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component';
10
-import { ConfigurationManHourComponent } from 'src/app/components/configurationCenter/configuration-manHour/configuration-manHour.component';
11
-import { ConfigurationDeptUserComponent } from 'src/app/components/configurationCenter/configuration-deptUser/configuration-deptUser.component';
12
-
13 7
 import { ConfigurationWechatComponent } from 'src/app/components/configurationCenter/configuration-wechat/configuration-wechat.component';
14
-// import { ConfigurationPriorityComponent } from 'src/app/components/configurationCenter/configuration-priority/configuration-priority.component';
15
-// import { ConfigurationDictionaryComponent } from 'src/app/components/configurationCenter/configuration-dictionary/configuration-dictionary.component';
8
+import { ConfigurationCallcenterComponent } from 'src/app/components/configurationCenter/configuration-callcenter/configuration-callcenter.component';
16 9
 
17 10
 
18 11
 @NgModule({
19 12
   declarations: [
20 13
     OtherConfigComponent,
21
-    ConfigurationCategoryComponent,
22
-    ConfigurationPriorityComponent,
23
-    ConfigurationDictionaryComponent,
24
-		ConfigurationManHourComponent,
25
-		ConfigurationDeptUserComponent,
26 14
     ConfigurationWechatComponent,
27
-    // ConfigurationPriorityComponent,
28
-    // ConfigurationDictionaryComponent,
29
-
15
+    ConfigurationCallcenterComponent,
30 16
   ],
31 17
   imports: [
32 18
     CommonModule,

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

@@ -822,9 +822,9 @@
822 822
 <pre><code class="language-css"
823 823
 >@font-face {
824 824
   font-family: 'icon_transport';
825
-  src: url('iconfont.woff2?t=1722850118502') format('woff2'),
826
-       url('iconfont.woff?t=1722850118502') format('woff'),
827
-       url('iconfont.ttf?t=1722850118502') format('truetype');
825
+  src: url('iconfont.woff2?t=1722851970750') format('woff2'),
826
+       url('iconfont.woff?t=1722851970750') format('woff'),
827
+       url('iconfont.ttf?t=1722851970750') format('truetype');
828 828
 }
829 829
 </code></pre>
830 830
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>

+ 3 - 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=1722850118502') format('woff2'),
4
-       url('iconfont.woff?t=1722850118502') format('woff'),
5
-       url('iconfont.ttf?t=1722850118502') format('truetype');
3
+  src: url('iconfont.woff2?t=1722851970750') format('woff2'),
4
+       url('iconfont.woff?t=1722851970750') format('woff'),
5
+       url('iconfont.ttf?t=1722851970750') format('truetype');
6 6
 }
7 7
 
8 8
 .icon_transport {

BIN
src/assets/iconfont/iconfont.ttf


BIN
src/assets/iconfont/iconfont.woff


BIN
src/assets/iconfont/iconfont.woff2


+ 16 - 0
src/common.less

@@ -146,6 +146,22 @@
146 146
   flex-wrap: wrap;
147 147
 }
148 148
 
149
+.wd{
150
+  word-break: break-all;
151
+}
152
+// list模板样式 end
153
+
154
+// 滚动条样式
155
+::-webkit-scrollbar {
156
+  width: 8px;
157
+  height: 8px;
158
+}
159
+
160
+::-webkit-scrollbar-thumb {
161
+
162
+
163
+}
164
+
149 165
 // button
150 166
 @lg-btn-height: 52px;
151 167
 @default-btn-height: 34px;