Browse Source

视图端修改

seimin 3 years ago
parent
commit
037882662d
4 changed files with 158 additions and 81 deletions
  1. 2 1
      .eslintrc.js
  2. 28 0
      src/filters/index.js
  3. 1 0
      src/main.js
  4. 127 80
      src/views/AppIndex.vue

+ 2 - 1
.eslintrc.js

@@ -12,6 +12,7 @@ module.exports = {
12 12
   },
13 13
   rules: {
14 14
     'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
15
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
15
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
16
+    'no-useless-escape': 'off',
16 17
   }
17 18
 }

+ 28 - 0
src/filters/index.js

@@ -0,0 +1,28 @@
1
+import Vue from 'vue'
2
+Vue.filter('timeFormat', function (date, fmt) {
3
+  if (!date) {
4
+    return '';
5
+  }
6
+  var dateArr = date.split(/[- : \/]/);
7
+  date = new Date(dateArr[0], dateArr[1] - 1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);
8
+  if (/(y+)/.test(fmt)) {
9
+    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
10
+  }
11
+  let o = {
12
+    'M+': date.getMonth() + 1,
13
+    'd+': date.getDate(),
14
+    'H+': date.getHours(),
15
+    'm+': date.getMinutes(),
16
+    's+': date.getSeconds()
17
+  };
18
+  for (let k in o) {
19
+    if (new RegExp(`(${k})`).test(fmt)) {
20
+      let str = o[k] + '';
21
+      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
22
+    }
23
+  }
24
+  function padLeftZero(str) {
25
+    return ('00' + str).substr(str.length);
26
+  }
27
+  return fmt;
28
+})

+ 1 - 0
src/main.js

@@ -1,6 +1,7 @@
1 1
 import Vue from 'vue'
2 2
 import App from './App.vue'
3 3
 import router from './router'
4
+import './filters'
4 5
 Vue.config.productionTip = false
5 6
 
6 7
 

+ 127 - 80
src/views/AppIndex.vue

@@ -36,12 +36,12 @@
36 36
         </div>
37 37
         <div class="totalNum parent" v-if="currentNavIndex == 4">
38 38
           <div>
39
-            <div>
39
+            <!-- <div>
40 40
               今日重点关注患者人数:<span>{{ totalParentNum.parentNum }}</span>
41
-            </div>
42
-            <div>
41
+            </div> -->
42
+            <!-- <div>
43 43
               今日待检查数:<span>{{ totalParentNum.speNum }}</span>
44
-            </div>
44
+            </div> -->
45 45
           </div>
46 46
           <div>
47 47
             <div>
@@ -50,6 +50,9 @@
50 50
             <div>
51 51
               今日检查总数:<span>{{ totalParentNum.gdjczsNum }}</span>
52 52
             </div>
53
+            <div>
54
+              今日待检查数:<span>{{ totalParentNum.speNum }}</span>
55
+            </div>
53 56
           </div>
54 57
         </div>
55 58
         <div class="totalNum currentNavIndex3" v-if="currentNavIndex == 2">
@@ -109,7 +112,10 @@
109 112
             >
110 113
               <div class="main-box-item-header">
111 114
                 <h2>{{ item.deptName }}</h2>
112
-                <strong>{{ item.num }}</strong>
115
+                <span
116
+                  >产生<strong>{{ item.num }}</strong
117
+                  >&nbsp;&nbsp;已收<strong>{{ item.receivedNum }}</strong></span
118
+                >
113 119
                 <strong v-if="item.userName"
114 120
                   >{{ item.userName
115 121
                   }}<span v-if="item.phone" class="ksbb_phone"
@@ -123,11 +129,11 @@
123 129
                   :class="[item.urgent > 0 ? 'red' : 'green']"
124 130
                 >
125 131
                   <h3>{{ item.urgent }}</h3>
126
-                  <p>急标</p>
132
+                  <p>待收急标</p>
127 133
                 </div>
128 134
                 <div class="main-box-item-contentBox green">
129 135
                   <h3>{{ item.noUrgent }}</h3>
130
-                  <p>普标</p>
136
+                  <p>待收普标</p>
131 137
                 </div>
132 138
               </div>
133 139
             </div>
@@ -239,7 +245,8 @@
239 245
               <div class="cot sevenCol" v-for="data in online" :key="data.id">
240 246
                 <div class="header_on">
241 247
                   <span style="font-weight: bold">
242
-                    {{data.name}}<span v-if="data.phone">({{ data.phone }})</span>
248
+                    {{ data.name
249
+                    }}<span v-if="data.phone">({{ data.phone }})</span>
243 250
                   </span>
244 251
                   <span :style="{ color: data.online ? 'green' : 'red' }"
245 252
                     ><button
@@ -302,21 +309,32 @@
302 309
               :key="item.id"
303 310
               @click="detailSpe(item)"
304 311
             >
305
-              <div class="main-box-item-header pp">
312
+              <div class="main-box-item-header">
306 313
                 <h2 :title="item.name">{{ item.name }}</h2>
307
-                <div>{{ item.gdjczs }}</div>
308
-                <strong
309
-                  >{{ item.userName ? item.userName : ""
310
-                  }}<span>{{ item.phone ? item.phone : "" }}</span></strong
314
+                <span
315
+                  >已陪检数<strong>{{ item.gdjczs }}</strong></span
311 316
                 >
317
+                <strong v-if="item.userName"
318
+                  >{{ item.userName
319
+                  }}<span v-if="item.phone" class="ksbb_phone"
320
+                    >({{ item.phone }})</span
321
+                  >
322
+                </strong>
312 323
               </div>
313
-              <div class="main-box-item-content">
314
-                <div
324
+              <div
325
+                class="main-box-item-content"
326
+                style="padding-left:16px;padding-right:16px;"
327
+              >
328
+                <!-- <div
315 329
                   class="main-box-item-contentBox green"
316 330
                   @click.stop="detailParent(item)"
317 331
                 >
318 332
                   <h3>{{ item.patientnum }}</h3>
319 333
                   <p>重点关注患者人数</p>
334
+                </div> -->
335
+                <div class="main-box-item-contentBox green">
336
+                  <h3>{{ item.gdjczs }}</h3>
337
+                  <p>检查总数</p>
320 338
                 </div>
321 339
                 <div class="main-box-item-contentBox green">
322 340
                   <h3>{{ item.jczs }}</h3>
@@ -466,16 +484,11 @@
466 484
             <div class="operateTitle">
467 485
               标本详情
468 486
               <div class="operate checkbox">
469
-                <label>
470
-                  <input type="checkbox" value="332" v-model="speState" /><span
471
-                    >未收取</span
472
-                  >
473
-                </label>
474
-                <label>
475
-                  <input type="checkbox" value="333" v-model="speState" /><span
476
-                    >已收取</span
477
-                  >
478
-                </label>
487
+                <select v-model="speState">
488
+                  <option value="0">全部</option>
489
+                  <option value="332">未收取</option>
490
+                  <option value="333">已收取</option>
491
+                </select>
479 492
               </div>
480 493
             </div>
481 494
           </h2>
@@ -612,45 +625,38 @@
612 625
         :class="{ detailModel: detailSpeModel }"
613 626
         class="detailModelParent"
614 627
       >
615
-        <div class="box" style="width: 1274px">
628
+        <div class="box" style="width: 1306px">
616 629
           <h2 class="title">
617 630
             <div class="operateTitle">
618 631
               患者检查详情
619
-              <div class="operate radio">
620
-                <label>
621
-                  <span>所有检查</span
622
-                  ><input
623
-                    type="radio"
624
-                    value="666"
625
-                    v-model="inspectState"
626
-                  /><i></i>
627
-                </label>
632
+              <div class="operate checkbox" style="width:420px;">
633
+                <select v-model="inspectState">
634
+                  <option value="0">所有检查</option>
635
+                  <option value="1">已陪检</option>
636
+                  <option value="2">未陪检</option>
637
+                </select>
628 638
                 <label>
629
-                  <span>待检查</span
630
-                  ><input
631
-                    type="radio"
632
-                    value="307"
633
-                    v-model="inspectState"
634
-                  /><i></i>
639
+                  <input type="checkbox" v-model="seriouslyIll" />
640
+                  <span>一级、特级护理危重症患者</span>
635 641
                 </label>
636 642
               </div>
637 643
             </div>
638 644
           </h2>
639
-          <div class="table" style="width: 1234px">
640
-            <div class="table-content" style="width: 1170px">
645
+          <div class="table" style="width: 1266px">
646
+            <div class="table-content" style="width: 1202px">
641 647
               <table>
642 648
                 <thead>
643 649
                   <tr>
644 650
                     <th>序号</th>
645
-                    <th style="width: 150px !important">患者姓名(床号)</th>
646
-                    <th>检查项目</th>
651
+                    <th>患者姓名(床号)</th>
652
+                    <th><div style="width:150px;">检查项目</div></th>
647 653
                     <th>预约时间</th>
648 654
                     <th>叫号信息</th>
649 655
                     <th>检查科室</th>
650
-                    <th style="width: 70px !important">是否建单</th>
651
-                    <th style="width: 70px !important">是否送达</th>
652
-                    <th>送达时间</th>
653
-                    <th style="width: 70px !important">检查状态</th>
656
+                    <th>是否建单</th>
657
+                    <th>护理等级</th>
658
+                    <th>病情级别</th>
659
+                    <th>检查状态</th>
654 660
                     <th>陪检人</th>
655 661
                   </tr>
656 662
                 </thead>
@@ -666,7 +672,6 @@
666 672
                     >
667 673
                       <td>{{ i + 1 }}</td>
668 674
                       <td
669
-                        style="width: 150px !important"
670 675
                         :style="{
671 676
                           color: detail.focusPatient == 1 ? 'red' : '',
672 677
                         }"
@@ -674,20 +679,34 @@
674 679
                         {{ detail.patientName || "-" }}
675 680
                         <span v-if="detail.bedNum">({{ detail.bedNum }})</span>
676 681
                       </td>
677
-                      <td>{{ detail.inspectName || "-" }}</td>
678
-                      <td>{{ detail.yyTime || "-" }}</td>
682
+                      <td>
683
+                        <div
684
+                          :title="detail.inspectName || '-'"
685
+                          style="width:150px;text-overflow:ellipsis;overflow: hidden;white-space: nowrap;"
686
+                        >
687
+                          {{ detail.inspectName || "-" }}
688
+                        </div>
689
+                      </td>
690
+                      <td v-if="detail.yyTime">
691
+                        {{ detail.yyTime | timeFormat("HH:mm:ss") }}
692
+                      </td>
693
+                      <td v-if="!detail.yyTime">-</td>
679 694
                       <td>{{ detail.reservationNumber || "-" }}</td>
680 695
                       <td>
681 696
                         {{ detail.execDept ? detail.execDept.dept : "-" }}
682 697
                       </td>
683
-                      <td style="width: 70px !important">
698
+                      <td>
684 699
                         {{ detail.gdId ? "是" : "否" }}
685 700
                       </td>
686
-                      <td style="width: 70px !important">
687
-                        {{ detail.arriveTime ? "是" : "否" }}
701
+                      <td>
702
+                        {{ detail.careLevel ? detail.careLevel.name : "" }}
688 703
                       </td>
689
-                      <td>{{ detail.arriveTime || "-" }}</td>
690
-                      <td style="width: 70px !important">
704
+                      <td>
705
+                        {{
706
+                          detail.illnessState ? detail.illnessState.name : ""
707
+                        }}
708
+                      </td>
709
+                      <td>
691 710
                         {{
692 711
                           detail.inspectState ? detail.inspectState.name : "-"
693 712
                         }}
@@ -838,13 +857,15 @@ export default {
838 857
       // 1是综合排班,2是自选排班
839 858
       workType: 0,
840 859
       //科室标本的标本详情 332是未收取 333是已收取
841
-      speState: [],
860
+      speState: 0,
842 861
       //科室标本,当前选中的科室
843 862
       currentSpecimenDept: null,
844
-      //病房患者的标本详情 307是待检查
845
-      inspectState: "",
863
+      //病房患者的标本详情 1是已陪检,2是未陪检
864
+      inspectState: 0,
846 865
       //病房患者,当前选中的科室
847 866
       currentInspectDept: null,
867
+      //是否一级、特级护理危重症患者
868
+      seriouslyIll: false,
848 869
     };
849 870
   },
850 871
   watch: {
@@ -856,6 +877,10 @@ export default {
856 877
     inspectState() {
857 878
       this.getDetailByInspect(this.currentInspectDept);
858 879
     },
880
+    //病房患者的检查详情-复选框
881
+    seriouslyIll() {
882
+      this.getDetailByInspect(this.currentInspectDept);
883
+    },
859 884
   },
860 885
   methods: {
861 886
     // 搜索分组
@@ -975,9 +1000,10 @@ export default {
975 1000
       console.log(item);
976 1001
       clearTimeout(this.timer);
977 1002
       clearTimeout(this.timer1);
978
-      this.speState = ["333", "332"];
1003
+      this.speState = 0;
979 1004
       this.currentSpecimenDept = item;
980 1005
       this.detailModel = true;
1006
+      this.getDetailBySpecimen(this.currentSpecimenDept);
981 1007
     },
982 1008
     // 获取标本详情(标本科室视图)
983 1009
     getDetailBySpecimen(item) {
@@ -986,11 +1012,8 @@ export default {
986 1012
         deptId: item.deptId,
987 1013
         urgent: -1,
988 1014
       };
989
-      if (this.speState.length === 1) {
990
-        postData.speState = this.speState.toString();
991
-      } else if (this.speState.length === 0) {
992
-        this.detailList = [];
993
-        return;
1015
+      if (this.speState != 0) {
1016
+        postData.speState = this.speState;
994 1017
       }
995 1018
       this.loading3 = true;
996 1019
       post("/nurse/getListSpecimenDetails", postData).then((result) => {
@@ -1034,9 +1057,8 @@ export default {
1034 1057
       this.currentInspectDept = item;
1035 1058
       this.detailSpeModel = true;
1036 1059
       this.getDetailByInspect(this.currentInspectDept);
1037
-      if (this.inspectState !== "666") {
1038
-        this.inspectState = "666";
1039
-      }
1060
+      this.inspectState = 0;
1061
+      this.seriouslyIll = false;
1040 1062
     },
1041 1063
     // 获取检查详情(病房患者视图)
1042 1064
     getDetailByInspect(item) {
@@ -1044,13 +1066,15 @@ export default {
1044 1066
         hosIds: this.$route.params.hosIds,
1045 1067
         deptId: item.id,
1046 1068
       };
1047
-      if (this.inspectState) {
1048
-        if (this.inspectState === "307") {
1049
-          postData.inspectState = this.inspectState+',443';
1050
-        }
1051
-      } else {
1052
-        this.detailSpeList = [];
1053
-        return;
1069
+      if (this.inspectState === "1") {
1070
+        //已陪检
1071
+        postData.inspectState = "already";
1072
+      } else if (this.inspectState === "2") {
1073
+        //未陪检
1074
+        postData.inspectState = "didNot";
1075
+      }
1076
+      if (this.seriouslyIll) {
1077
+        postData.seriouslyIll = 1;
1054 1078
       }
1055 1079
       this.loading8 = true;
1056 1080
       post("/nurse/getViewData/getInspect", postData).then((result) => {
@@ -1529,11 +1553,33 @@ export default {
1529 1553
   display: flex;
1530 1554
   justify-content: center;
1531 1555
   align-items: center;
1556
+  select {
1557
+    box-sizing: border-box;
1558
+    margin: 0;
1559
+    padding: 4px 11px;
1560
+    font-variant: tabular-nums;
1561
+    list-style: none;
1562
+    font-feature-settings: "tnum";
1563
+    position: relative;
1564
+    display: inline-block;
1565
+    color: rgba(0, 0, 0, 0.65);
1566
+    font-size: 14px;
1567
+    line-height: 1.5;
1568
+    background-color: #fff;
1569
+    background-image: none;
1570
+    border: 1px solid #d9d9d9;
1571
+    border-radius: 4px;
1572
+    transition: all 0.3s;
1573
+    width: 120px;
1574
+    height: 30px;
1575
+    outline: none;
1576
+    margin-right: 16px;
1577
+  }
1532 1578
   &.detailModelParent {
1533 1579
     table {
1534 1580
       td,
1535 1581
       th {
1536
-        width: 150px !important;
1582
+        width: 110px !important;
1537 1583
         &:first-of-type {
1538 1584
           width: 60px !important;
1539 1585
         }
@@ -1581,6 +1627,7 @@ export default {
1581 1627
               align-items: center;
1582 1628
               span {
1583 1629
                 margin-left: 4px;
1630
+                user-select: none;
1584 1631
               }
1585 1632
               // 多选框
1586 1633
               input[type="checkbox"] {
@@ -1921,7 +1968,7 @@ export default {
1921 1968
           &.main-box-item-w4 {
1922 1969
             width: calc((100vw - 80px) / 4);
1923 1970
             .main-box-item-content {
1924
-              justify-content: space-evenly;
1971
+              justify-content: space-between;
1925 1972
               .main-box-item-contentBox {
1926 1973
                 width: auto;
1927 1974
               }
@@ -1930,7 +1977,7 @@ export default {
1930 1977
           &.main-box-item-w4--ks {
1931 1978
             width: calc((100vw - 80px) / 4);
1932 1979
             .main-box-item-content {
1933
-              justify-content: space-evenly;
1980
+              justify-content: space-between;
1934 1981
             }
1935 1982
           }
1936 1983
           &:hover {
@@ -2060,7 +2107,7 @@ export default {
2060 2107
           font-size: 14px;
2061 2108
           display: flex;
2062 2109
           flex-direction: column;
2063
-          justify-content: space-evenly;
2110
+          justify-content: space-between;
2064 2111
           .header_on {
2065 2112
             display: flex;
2066 2113
             height: 26px;