See999 4 years ago
parent
commit
03c1e96d2b

+ 2 - 1
src/lang/zh.js View File

@@ -224,7 +224,8 @@ export default {
224 224
     signIndex:'签到排队',
225 225
     signIn:'签到窗口',
226 226
     lineUp:'排队窗口',
227
-
227
+    otherManagement:'其他管理',
228
+    calling:'排队叫号',
228 229
 
229 230
   },
230 231
   navbar: {

+ 10 - 0
src/router/modules/weight_sign.js View File

@@ -30,6 +30,16 @@ export default {
30 30
       noCache: true
31 31
     }
32 32
   },
33
+  {
34
+    path: '/calling',
35
+    component: () => import('@/xt_pages/sign/calling'),
36
+    name: 'calling',
37
+    meta: {
38
+      title: 'calling',
39
+      icon: 'calling',
40
+      noCache: true
41
+    }
42
+  },
33 43
   {
34 44
     path: '/sign',
35 45
     component: () => import('@/xt_pages/sign/index'),

+ 67 - 9
src/views/layout/Layout.vue View File

@@ -4,23 +4,23 @@
4 4
     
5 5
     <div class="mainBox">
6 6
       <div class="navLeft">
7
-        <div :class="index == 0 ? 'navOne navActive' : 'navOne'" @click="clickActive(0,'门诊管理')">
7
+        <div v-if="menzhenShow" :class="index == 0 ? 'navOne navActive' : 'navOne'" @click="clickActive(0,'门诊管理')">
8 8
           <i class="iconfont icon--yishengmenzhen navIcon"></i>
9 9
           <p>门诊管理</p>
10 10
         </div>
11
-        <div :class="index == 1 ? 'navOne navActive' : 'navOne'" @click="clickActive(1,'电子病历')">
11
+        <div v-if="bingliShow" :class="index == 1 ? 'navOne navActive' : 'navOne'" @click="clickActive(1,'电子病历')">
12 12
           <i class="iconfont icon-s_bingli navIcon"></i>
13 13
           <p>电子病历</p>
14 14
         </div>
15
-        <div :class="index == 2 ? 'navOne navActive' : 'navOne'" @click="clickActive(2,'透析管理')">
15
+        <div v-if="touxiShow" :class="index == 2 ? 'navOne navActive' : 'navOne'" @click="clickActive(2,'透析管理')">
16 16
           <i class="iconfont icon-computer_fill navIcon"></i>
17 17
           <p>透析管理</p>
18 18
         </div>
19
-        <div :class="index == 3 ? 'navOne navActive' : 'navOne'" @click="clickActive(3,'库存管理')">
19
+        <div v-if="kucunShow" :class="index == 3 ? 'navOne navActive' : 'navOne'" @click="clickActive(3,'库存管理')">
20 20
           <i class="iconfont icon-kccx navIcon"></i>
21 21
           <p>库存管理</p>
22 22
         </div>
23
-        <div :class="index == 4 ? 'navOne navActive' : 'navOne'" @click="clickActive(4,'酷医商城')">
23
+        <div v-if="kuyishoppingShow" :class="index == 4 ? 'navOne navActive' : 'navOne'" @click="clickActive(4,'酷医商城')">
24 24
           <i class="iconfont icon-shangcheng-1 navIcon"></i>
25 25
           <p>酷医商城</p>
26 26
         </div>
@@ -67,12 +67,12 @@
67 67
             <p>营销管理</p>
68 68
           </div>
69 69
         </a>
70
-        <div class="dialogMainOne">
70
+        <!-- <div class="dialogMainOne">
71 71
           <div class="dialogIcon">
72 72
             <i class="iconfont icon-shujufenxi-jingyinggaikuang newIcon"></i>
73 73
           </div>
74 74
           <p>经营中心</p>
75
-        </div>
75
+        </div> -->
76 76
         <a :href="MircoMallWebsit()" target="_blank" v-if="this.$store.getters.xt_user.mall_role_exist">
77 77
           <div class="dialogMainOne">
78 78
             <div class="dialogIcon">
@@ -81,7 +81,7 @@
81 81
             <p>分销商城</p>
82 82
           </div>
83 83
         </a>
84
-        <div class="dialogMainOne" @click="clickActive(11,'配置管理')">
84
+        <div v-if="peizhiShow" class="dialogMainOne" @click="clickActive(11,'配置管理')">
85 85
           <div class="dialogIcon">
86 86
             <i class="iconfont icon-setup_fill newIcon"></i>
87 87
           </div>
@@ -93,6 +93,7 @@
93 93
 </template>
94 94
 
95 95
 <script>
96
+import { mapGetters } from "vuex";
96 97
 import { Navbar, Sidebar, AppMain, TagsView } from './components'
97 98
 import ResizeMixin from './mixin/ResizeHandler'
98 99
 
@@ -110,10 +111,67 @@ export default {
110 111
       index:2,
111 112
       navTitle:'透析管理',
112 113
       sign:false,
113
-      navShow:true
114
+      navShow:true,
115
+      //
116
+      menzhenShow:true,
117
+      bingliShow:true,
118
+      touxiShow:true,
119
+      kucunShow:true,
120
+      peizhiShow:true,
121
+      kuyishoppingShow:true,
122
+    }
123
+  },
124
+  created(){
125
+    console.log('permission_routers',this.permission_routers)
126
+    let menzhen = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy']
127
+    let bingli = ['User','createPatient']
128
+    let touxi = ['workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'quality_control']
129
+    let kucun = ['stockManage','selfPreparedMedicine','stockDrugs','otherManagement']
130
+    let peizhi = ['system','roleManage','dictionary','specialDictionary','template','prescription','druguse','showconfig','printTemplate']
131
+    let kuyishopping = ['kuyiShopping']
132
+    let menzhenArr = []
133
+    let bingliArr = []
134
+    let touxiArr = []
135
+    let kucunArr = []
136
+    let peizhiArr = []
137
+    let kuyishoppingArr = []
138
+    this.permission_routers.map(item => {
139
+      if(menzhen.indexOf(item.name) > -1){
140
+        menzhenArr.push(item)
141
+      }else if(bingli.indexOf(item.name) > -1){
142
+        bingliArr.push(item)
143
+      }else if(touxi.indexOf(item.name) > -1){
144
+        touxiArr.push(item)
145
+      }else if(kucun.indexOf(item.name) > -1){
146
+        kucunArr.push(item)
147
+      }else if(peizhi.indexOf(item.name) > -1){
148
+        peizhiArr.push(item)
149
+      }else if(kuyishopping.indexOf(item.name) > -1){
150
+        kuyishoppingArr.push(item)
151
+      }
152
+    })
153
+    // console.log('menzhenArr.length',menzhenArr.length)
154
+    // console.log('bingliArr.length',bingliArr.length)
155
+    // console.log('touxiArr.length',touxiArr.length)
156
+    // console.log('kucunArr.length',kucunArr.length)
157
+    // console.log('peizhiArr.length',peizhiArr.length)
158
+    // console.log('kuyishoppingArr.length',kuyishoppingArr.length)
159
+    if(menzhenArr.length == 0){
160
+      this.menzhenShow = false
161
+    }else if(bingliArr.length == 0){
162
+      this.bingliShow = false
163
+    }else if(touxiArr.length == 0){
164
+      this.touxiShow = false
165
+    }else if(kucunArr.length == 0){
166
+      this.kucunShow = false
167
+    }else if(peizhiArr.length == 0){
168
+      this.peizhiShow = false
169
+    }else if(kuyishoppingArr.length == 0){
170
+      this.kuyishoppingShow = false
114 171
     }
115 172
   },
116 173
   computed: {
174
+    ...mapGetters(["permission_routers"]),
117 175
     sidebar() {
118 176
       return this.$store.state.app.sidebar
119 177
     },

+ 6 - 6
src/views/layout/components/Sidebar/index.vue View File

@@ -49,7 +49,7 @@ export default {
49 49
   created(){
50 50
     if(this.navTitle == '透析管理'){
51 51
       let nameArr = ['workforce','dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'quality_control']
52
-      console.log('permission_routers',this.permission_routers)
52
+      // console.log('permission_routers',this.permission_routers)
53 53
       let routerArr = []
54 54
       this.permission_routers.map(item => {
55 55
         if(nameArr.indexOf(item.name) > -1){
@@ -70,7 +70,7 @@ export default {
70 70
       handler(newVal,oldVal){
71 71
         if(newVal == '门诊管理'){
72 72
           let nameArr = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy']
73
-          console.log('permission_routers',this.permission_routers)
73
+          // console.log('permission_routers',this.permission_routers)
74 74
           let routerArr = []
75 75
           this.permission_routers.map(item => {
76 76
             if(nameArr.indexOf(item.name) > -1){
@@ -87,7 +87,7 @@ export default {
87 87
           }
88 88
         }else if(newVal == '电子病历'){
89 89
           let nameArr = ['User','createPatient']
90
-          console.log('permission_routers',this.permission_routers)
90
+          // console.log('permission_routers',this.permission_routers)
91 91
           let routerArr = []
92 92
           this.permission_routers.map(item => {
93 93
             if(nameArr.indexOf(item.name) > -1){
@@ -104,7 +104,7 @@ export default {
104 104
           }
105 105
         }else if(newVal == '透析管理'){
106 106
           let nameArr = ['workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'quality_control']
107
-          console.log('permission_routers',this.permission_routers)
107
+          // console.log('permission_routers',this.permission_routers)
108 108
           let routerArr = []
109 109
           this.permission_routers.map(item => {
110 110
             if(nameArr.indexOf(item.name) > -1){
@@ -122,7 +122,7 @@ export default {
122 122
           }
123 123
         }else if(newVal == '库存管理'){
124 124
           let nameArr = ['stockManage','selfPreparedMedicine','stockDrugs','otherManagement']
125
-          console.log('permission_routers',this.permission_routers)
125
+          // console.log('permission_routers',this.permission_routers)
126 126
           let routerArr = []
127 127
           this.permission_routers.map(item => {
128 128
             if(nameArr.indexOf(item.name) > -1){
@@ -139,7 +139,7 @@ export default {
139 139
           }
140 140
         }else if(newVal == '配置管理'){
141 141
           let nameArr = ['system','roleManage','dictionary','specialDictionary','template','prescription','druguse','showconfig','printTemplate']
142
-          console.log('permission_routers',this.permission_routers)
142
+          // console.log('permission_routers',this.permission_routers)
143 143
           let routerArr = []
144 144
           this.permission_routers.map(item => {
145 145
             if(nameArr.indexOf(item.name) > -1){

+ 190 - 37
src/xt_pages/outpatientRegistration/index.vue View File

@@ -8,9 +8,9 @@
8 8
             <div class="formMain">
9 9
                 <el-form class="basicForm" ref="form" :model="form" label-width="80px">
10 10
                     <el-form-item label="结算类型">
11
-                        <el-select v-model="value" placeholder="请选择">
11
+                        <el-select v-model="form.settlementValue" placeholder="请选择">
12 12
                             <el-option
13
-                            v-for="item in options"
13
+                            v-for="item in settlement"
14 14
                             :key="item.value"
15 15
                             :label="item.label"
16 16
                             :value="item.value">
@@ -18,16 +18,16 @@
18 18
                         </el-select>
19 19
                     </el-form-item>
20 20
                     <el-form-item class="specialFormItem" label="医保卡号">
21
-                        <el-input v-model="form.name"></el-input>
21
+                        <el-input v-model="form.medicalInsuranceCard"></el-input>
22 22
                         <el-button type="primary">读卡</el-button>
23 23
                     </el-form-item>
24 24
                     <el-form-item label="患者姓名">
25 25
                         <el-input v-model="form.name"></el-input>
26 26
                     </el-form-item>
27 27
                     <el-form-item label="性别">
28
-                        <el-select v-model="value" placeholder="请选择">
28
+                        <el-select v-model="form.sex" placeholder="请选择">
29 29
                             <el-option
30
-                            v-for="item in options"
30
+                            v-for="item in sex"
31 31
                             :key="item.value"
32 32
                             :label="item.label"
33 33
                             :value="item.value">
@@ -35,9 +35,9 @@
35 35
                         </el-select>
36 36
                     </el-form-item>
37 37
                     <el-form-item label="证件类型">
38
-                        <el-select v-model="value" placeholder="请选择">
38
+                        <el-select v-model="form.certificates" placeholder="请选择">
39 39
                             <el-option
40
-                            v-for="item in options"
40
+                            v-for="item in certificates"
41 41
                             :key="item.value"
42 42
                             :label="item.label"
43 43
                             :value="item.value">
@@ -45,9 +45,9 @@
45 45
                         </el-select>
46 46
                     </el-form-item>
47 47
                     <el-form-item label="医疗类别">
48
-                        <el-select v-model="value" placeholder="请选择">
48
+                        <el-select v-model="form.medicalCare" placeholder="请选择">
49 49
                             <el-option
50
-                            v-for="item in options"
50
+                            v-for="item in medicalCare"
51 51
                             :key="item.value"
52 52
                             :label="item.label"
53 53
                             :value="item.value">
@@ -55,13 +55,13 @@
55 55
                         </el-select>
56 56
                     </el-form-item>
57 57
                     <el-form-item label="出生日期">
58
-                        <el-date-picker v-model="value1" type="date" placeholder="选择日期"></el-date-picker>
58
+                        <el-date-picker v-model="form.birthday" type="date" @change="getBirthday" placeholder="选择日期"></el-date-picker>
59 59
                     </el-form-item>
60 60
                     <el-form-item label="年龄">
61
-                        <el-input v-model="form.name"></el-input>
61
+                        <el-input v-model="form.age" readonly=""></el-input>
62 62
                     </el-form-item>
63 63
                     <el-form-item label="证件号码">
64
-                        <el-input v-model="form.name"></el-input>
64
+                        <el-input v-model="form.idCard"></el-input>
65 65
                     </el-form-item>
66 66
                 </el-form>
67 67
             </div>
@@ -69,9 +69,9 @@
69 69
             <div class="formMain">
70 70
                 <el-form class="basicForm" ref="form" :model="form" label-width="80px">
71 71
                     <el-form-item label="挂号类型">
72
-                        <el-select v-model="value" placeholder="请选择">
72
+                        <el-select v-model="form.register" placeholder="请选择">
73 73
                             <el-option
74
-                            v-for="item in options"
74
+                            v-for="item in register"
75 75
                             :key="item.value"
76 76
                             :label="item.label"
77 77
                             :value="item.value">
@@ -79,9 +79,9 @@
79 79
                         </el-select>
80 80
                     </el-form-item>
81 81
                     <el-form-item label="医生">
82
-                        <el-select v-model="value" placeholder="请选择">
82
+                        <el-select v-model="form.doctor" placeholder="请选择">
83 83
                             <el-option
84
-                            v-for="item in options"
84
+                            v-for="item in doctor"
85 85
                             :key="item.value"
86 86
                             :label="item.label"
87 87
                             :value="item.value">
@@ -89,9 +89,9 @@
89 89
                         </el-select>
90 90
                     </el-form-item>
91 91
                     <el-form-item label="科室">
92
-                        <el-select v-model="value" placeholder="请选择">
92
+                        <el-select v-model="form.department" placeholder="请选择">
93 93
                             <el-option
94
-                            v-for="item in options"
94
+                            v-for="item in department"
95 95
                             :key="item.value"
96 96
                             :label="item.label"
97 97
                             :value="item.value">
@@ -99,25 +99,25 @@
99 99
                         </el-select>
100 100
                     </el-form-item>
101 101
                     <el-form-item>
102
-                        <el-checkbox v-model="checked">是否需要工本费</el-checkbox>
102
+                        <el-checkbox v-model="form.costChecked">是否需要工本费</el-checkbox>
103 103
                     </el-form-item>
104 104
                     <el-form-item label="挂号费">
105
-                        <el-input v-model="form.name"></el-input>
105
+                        <el-input v-model.number="form.registrationFee"></el-input>
106 106
                     </el-form-item>
107 107
                     <el-form-item label="诊疗费">
108
-                        <el-input v-model="form.name"></el-input>
108
+                        <el-input v-model.number="form.medicalExpenses"></el-input>
109 109
                     </el-form-item>
110 110
                     <el-form-item label="工本费">
111
-                        <el-input v-model="form.name"></el-input>
111
+                        <el-input v-model.number="form.cost" :readonly="!form.costChecked"></el-input>
112 112
                     </el-form-item>
113 113
                     <el-form-item label="合计">
114
-                        <el-input v-model="form.name"></el-input>
114
+                        <el-input v-model.number="total" readonly></el-input>
115 115
                     </el-form-item>
116 116
                     <el-form-item>
117 117
                         <!-- <el-input v-model="form.name"></el-input> -->
118 118
                     </el-form-item>
119 119
                 </el-form>
120
-                <el-button style="float:right" type="primary">挂号</el-button>
120
+                <el-button style="float:right" @click="getForm" type="primary">挂号</el-button>
121 121
             </div>
122 122
             
123 123
         </div>
@@ -126,6 +126,7 @@
126 126
 
127 127
 <script>
128 128
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
129
+const moment = require('moment')
129 130
 export default {
130 131
     components:{
131 132
         BreadCrumb
@@ -136,25 +137,177 @@ export default {
136 137
                 { path: false, name: '门诊挂号' },
137 138
                 { path: false, name: '门诊挂号' }
138 139
             ],
139
-            form:{},
140
-            options: [{
141
-                value: '选项1',
142
-                label: '黄金糕'
140
+            form:{
141
+                settlementValue: '',
142
+                medicalInsuranceCard:'',
143
+                name:'',
144
+                sex:'',
145
+                certificates:'',
146
+                medicalCare:'',
147
+                birthday:'',
148
+                age:'',
149
+                idCard:'',
150
+                register:'',
151
+                doctor:'',
152
+                department:'',
153
+                costChecked:false,
154
+                registrationFee:'',
155
+                medicalExpenses:'',
156
+                cost:'',
157
+                total: ''
158
+
159
+            
160
+            },
161
+            settlement: [{
162
+                value: 1,
163
+                label: '医保'
143 164
                 }, {
144
-                value: '选项2',
145
-                label: '双皮奶'
165
+                value: 2,
166
+                label: '自费'
167
+            }],
168
+            sex: [{
169
+                value: 1,
170
+                label: '男'
146 171
                 }, {
147
-                value: '选项3',
148
-                label: '蚵仔煎'
172
+                value: 2,
173
+                label: '女'
174
+            }],
175
+            certificates: [{
176
+                value: 1,
177
+                label: '内地身份证'
149 178
                 }, {
150
-                value: '选项4',
151
-                label: '龙须面'
179
+                value: 2,
180
+                label: "社保卡"
181
+                },{
182
+                value: 3,
183
+                label: "护照"
184
+                },{
185
+                value: 4,
186
+                label: "军官证"
187
+                },{
188
+                value: 5,
189
+                label: "台胞证"
190
+                },{
191
+                value: 6,
192
+                label: "港澳地区身份证"
193
+            }],
194
+            medicalCare: [{
195
+                value: 1,
196
+                label: '普通门诊'
197
+                }, {
198
+                value: 2,
199
+                label: "门诊大病"
200
+                },{
201
+                value: 3,
202
+                label: "重疾特药"
203
+                },{
204
+                value: 4,
205
+                label: "门诊特检"
206
+                },{
207
+                value: 5,
208
+                label: "健康接种"
209
+                },{
210
+                value: 6,
211
+                label: "预防接种"
212
+                },
213
+                {
214
+                value: 7,
215
+                label: "门诊输液"
216
+            }],
217
+            register: [{
218
+                value: 1,
219
+                label: '普通'
152 220
                 }, {
153
-                value: '选项5',
154
-                label: '北京烤鸭'
221
+                value: 2,
222
+                label: "主治"
223
+                },{
224
+                value: 3,
225
+                label: "主任"
226
+                },{
227
+                value: 4,
228
+                label: "免收诊金"
229
+                },{
230
+                value: 5,
231
+                label: "专家"
155 232
             }],
156
-            value: ''
157 233
         }
234
+    },
235
+    computed:{
236
+        total(){
237
+            if(this.form.registrationFee || this.form.medicalExpenses || this.form.cost){
238
+                return parseFloat(this.form.registrationFee ? this.form.registrationFee : 0) + parseFloat(this.form.medicalExpenses ? this.form.medicalExpenses : 0) + parseFloat(this.form.cost ? this.form.cost : 0) 
239
+            }
240
+        }
241
+    },
242
+    methods:{
243
+        getBirthday(date){
244
+            console.log(date)
245
+            let curTime = moment(new Date(date)).format('YYYY-MM-DD')
246
+            console.log(this.jsGetAge(curTime))
247
+
248
+            this.form.age = this.jsGetAge(curTime)
249
+        },
250
+        jsGetAge(strBirthday) { //传入形式yyyy-MM-dd
251
+            //strBirthday = util.formatTime(strBirthday);转换成yyyy-MM-dd形式
252
+            var returnAge
253
+            var strBirthdayArr = strBirthday.split('-')
254
+            var birthYear = strBirthdayArr[0]
255
+            var birthMonth = strBirthdayArr[1]
256
+            var birthDay = strBirthdayArr[2]
257
+            var d = new Date()
258
+            var nowYear = d.getFullYear()
259
+            var nowMonth = d.getMonth() + 1
260
+            var nowDay = d.getDate()
261
+            if (nowYear == birthYear) {
262
+            returnAge = 0 //同年 则为0岁
263
+            } else {
264
+            var ageDiff = nowYear - birthYear //年之差
265
+            if (ageDiff > 0) {
266
+                if (nowMonth == birthMonth) {
267
+                var dayDiff = nowDay - birthDay //日之差
268
+                if (dayDiff < 0) {
269
+                    returnAge = ageDiff - 1
270
+                } else {
271
+                    returnAge = ageDiff
272
+                }
273
+                } else {
274
+                var monthDiff = nowMonth - birthMonth //月之差
275
+                if (monthDiff < 0) {
276
+                    returnAge = ageDiff - 1
277
+                } else {
278
+                    returnAge = ageDiff
279
+                }
280
+                }
281
+            } else {
282
+                returnAge = -1 //返回-1 表示出生日期输入错误 晚于今天
283
+            }
284
+            }
285
+            return returnAge //返回周岁年龄
286
+        },
287
+        getForm(){
288
+            this.form.total = this.total
289
+            // console.log(this.form)
290
+            // console.log(JSON.parse(localStorage.getItem("temp")))
291
+            if(localStorage.getItem("temp")){
292
+                let a = JSON.parse(localStorage.getItem("temp"))
293
+                // let arr = []
294
+                a.push(this.form)
295
+                console.log(111,a)
296
+                localStorage.setItem("temp",JSON.stringify(a));
297
+                Object.keys(this.form).forEach((key)=>{
298
+                    this.form[key] = ''
299
+                })
300
+                this.$message({message: '添加成功',type: 'success'});
301
+            }else {
302
+                let arr = []
303
+                arr.push(this.form)
304
+                localStorage.setItem("temp",JSON.stringify(arr));
305
+                Object.keys(this.form).forEach((key)=>{
306
+                    this.form[key] = ''
307
+                })
308
+                this.$message({message: '添加成功',type: 'success'});
309
+            }
310
+        }   
158 311
     }
159 312
 }
160 313
 </script>

+ 1 - 2
src/xt_pages/outpatientRegistration/registrationHistory.vue View File

@@ -26,8 +26,7 @@
26 26
                 </el-select>
27 27
             </div>
28 28
             <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
29
-                <el-table-column align="center" prop="dialysis_no" label="序号" width="60">
30
-                    <template slot-scope="scope">1</template>
29
+                <el-table-column align="center" type="index" label="序号" width="60">
31 30
                 </el-table-column>
32 31
                 <el-table-column align="center" prop="name" label="时间" width="100">
33 32
                     <template slot-scope="scope">{{ scope.row.date }}</template>

+ 53 - 0
src/xt_pages/sign/calling.vue View File

@@ -0,0 +1,53 @@
1
+<template>
2
+    <div class="main-contain">
3
+        <div class="position">
4
+            <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <el-tabs v-model="activeName">
8
+                <el-tab-pane label="透前叫号" name="first">
9
+                    <before-dialysis-calling></before-dialysis-calling>
10
+                </el-tab-pane>
11
+                <el-tab-pane label="上机叫号" name="second">
12
+                    <computer-calling></computer-calling>
13
+                </el-tab-pane>
14
+                <el-tab-pane label="诊台配置" name="third">
15
+                    <treatment-configure></treatment-configure>
16
+                </el-tab-pane>
17
+                <el-tab-pane label="叫号配置" name="fourth">
18
+                    <calling-configure></calling-configure>
19
+                </el-tab-pane>
20
+            </el-tabs>
21
+        </div>
22
+    </div>
23
+</template>
24
+
25
+
26
+<script>
27
+import BreadCrumb from "../components/bread-crumb";
28
+import beforeDialysisCalling from './components/beforeDialysisCalling'
29
+import computerCalling from './components/computerCalling'
30
+import treatmentConfigure from "./components/treatmentConfigure"
31
+import callingConfigure from './components/callingConfigure'
32
+export default {
33
+    components:{
34
+       BreadCrumb,
35
+       beforeDialysisCalling,
36
+       computerCalling,
37
+       treatmentConfigure,
38
+       callingConfigure 
39
+    },
40
+    data(){
41
+        return{
42
+            crumbs: [
43
+                { path: false, name: "透析管理" },
44
+                { path: "dialysis/board", name: "透析叫号" }
45
+            ],
46
+            activeName:'first'
47
+        }
48
+    },
49
+    methods:{
50
+    }
51
+}
52
+</script>
53
+      

+ 90 - 0
src/xt_pages/sign/components/beforeDialysisCalling.vue View File

@@ -0,0 +1,90 @@
1
+<template>
2
+    <div class="page_beforeDialysisCalling">
3
+        <div class="cell clearfix">
4
+            <label class="title"><span class="name">叫号状态</span> : </label>
5
+            <div class="time ">
6
+                <ul class="">
7
+                    <li v-for="option in patient_state" :key="option.value" @click="handleStateChange(option.value)" :class="patientStateVal == option.value ? 'active' : ''" >{{option.label}}
8
+                    </li>
9
+                </ul>
10
+            </div>
11
+        </div>
12
+        <div style="display:flex;justify-content: space-between;">
13
+            <div class="callingArea">
14
+                <waiting-called v-if="patientStateVal == 0"></waiting-called>
15
+                <called v-if="patientStateVal == 1"></called>
16
+            </div>
17
+            <div class="nowCalling" v-if="patientStateVal == 0">
18
+                <p class="nowCallingTitle">当前叫号</p>
19
+                <p class="nowCallingName">李小明</p>
20
+                <p class="nowCallingTime">签到时间:07:20</p>
21
+                <p class="nowCallingTime">下一位:张三</p>
22
+                <el-button style="margin: 30px 0 20px 0;">重新叫号</el-button>
23
+                <el-button type="primary" style="margin-left:0;">&ensp;&ensp;叫号&ensp;&ensp;</el-button>
24
+            </div>
25
+        </div>
26
+    </div>
27
+</template>
28
+
29
+
30
+<script>
31
+import waitingCalled from './waitingCalled'
32
+import called from './called'
33
+export default {
34
+    components:{
35
+        waitingCalled,
36
+        called
37
+    },
38
+    data(){
39
+        return{
40
+            patient_state:[
41
+                {value: 0,label: '待叫号'},
42
+                {value: 1,label: '已叫号'},
43
+            ],
44
+            patientStateVal: 0,
45
+        }
46
+    },
47
+    methods:{
48
+        handleStateChange: function(index) {
49
+            this.patientStateVal = index
50
+        },
51
+    }
52
+}
53
+</script>
54
+
55
+<style lang="scss" scoped>
56
+.callingArea{
57
+    display: flex;
58
+    flex-wrap: wrap;
59
+    width: 88%;
60
+    // @media only screen and (max-width: 1340px) {
61
+    //     width:750px;
62
+    // }
63
+
64
+    // @media only screen and (min-width: 415px) and (max-width: 767px) {
65
+    // }
66
+}
67
+.nowCalling{
68
+    height: 313px;
69
+    border: 1px solid #e5e5ee;
70
+    // flex: 1;
71
+    width: 12%;
72
+    text-align: center;
73
+    .nowCallingTitle{
74
+        font-size: 20px;
75
+        font-weight: 600;
76
+        margin-top: 20px;
77
+        text-align: center;
78
+    }
79
+    .nowCallingName{
80
+        color: #338AFB;
81
+        font-size: 18px;
82
+        margin-top: 10px;
83
+        font-weight: 600;
84
+    }
85
+    .nowCallingTime{
86
+        font-size: 16px;
87
+        margin-top: 30px;
88
+    }
89
+}
90
+</style>

+ 93 - 0
src/xt_pages/sign/components/called.vue View File

@@ -0,0 +1,93 @@
1
+<template>
2
+    <div class="page_called">
3
+        <div class="calledOne" v-for="item in 12" :key="item">
4
+            <div class="calledOneLeft">
5
+                <img src="https://images.shengws.com/201809182128111.png?imageView2/2/w/500/h/500/q/90" alt="">
6
+                <div class="name">
7
+                    <p>吴保龄</p>
8
+                    <p>
9
+                        <span class="nameTips">签到时间:07:00:00</span>
10
+                        <span class="nameTips" v-if="index == 1">床位号:A区5号床</span>
11
+                        <span class="nameTips" v-else>叫号时间:07:30:00</span>
12
+                    </p>
13
+                    <p>
14
+                        <span class="nameTips">透前体重:59kg</span>
15
+                        <span class="nameTips lastNameTips">透前血压:120/110mmHg</span>
16
+                    </p>
17
+                </div>
18
+            </div>
19
+            <div class="calledOneRight" v-if="index == 1">
20
+                <img src="../../../assets/img/volume.png" alt="">
21
+            </div>
22
+        </div>
23
+    </div>
24
+</template>
25
+
26
+<script>
27
+export default {
28
+    props:{
29
+        index:Number
30
+    },
31
+    data(){
32
+        return{
33
+
34
+        }
35
+    },
36
+}
37
+</script>
38
+
39
+
40
+<style lang="scss" scoped>
41
+.page_called{
42
+    .calledOne{
43
+        border: 1px #e5e5ee solid;
44
+        padding: 9px 0;
45
+        margin: 0 15px 15px 0;
46
+        float: left;
47
+        width: 360px;
48
+        cursor: pointer;
49
+        display: flex;
50
+        justify-content: space-between;
51
+        align-items: center;
52
+        padding: 10px;
53
+        .calledOneLeft{
54
+            display: flex;
55
+            img{
56
+                width: 45px;
57
+                height: 45px;
58
+                border-radius: 50%;
59
+                margin-right: 15px;
60
+            }
61
+            .name{
62
+                >p:first-child{
63
+                    font-size: 16px;
64
+                    font-weight: bold;
65
+                    color:#000;
66
+                }
67
+                >p:nth-of-type(2){
68
+                    font-size: 12px;
69
+                    color:#999999;
70
+                    margin-top: 6px;
71
+                }
72
+                >p:nth-of-type(3){
73
+                    font-size: 12px;
74
+                    color:#999999;
75
+                    margin-top: 3px;
76
+                }
77
+                .nameTips{
78
+                    margin-right:10px;
79
+                    display: inline-block;
80
+                }
81
+                
82
+            }
83
+            
84
+        }
85
+        .calledOneRight{
86
+            img{
87
+                width: 30px;
88
+                margin-top: 8px;
89
+            }
90
+        }
91
+    }
92
+}
93
+</style>

+ 160 - 0
src/xt_pages/sign/components/callingConfigure.vue View File

@@ -0,0 +1,160 @@
1
+<template>
2
+    <div class="page_callingConfigure">
3
+        <div class="cell clearfix">
4
+            就诊状态显示屏幕切换屏幕时长配置(秒) : 
5
+            <div class="time ">
6
+                <el-input-number v-model="num" @change="handleChange" :min="1"></el-input-number>
7
+            </div>
8
+        </div>
9
+        <div style="display:flex;">
10
+            <div class="configureBox">
11
+                <div class="configureBoxTitle">接诊叫号</div>
12
+                <div class="configureBoxMain">
13
+                    <div style="margin-bottom:10px;">单次叫号语音播报次数:<el-input-number v-model="num" @change="handleChange" :min="1"></el-input-number></div>
14
+                    <div style="margin-bottom:10px;">叫号语音内容设置:</div>
15
+                    <div style="margin-bottom:10px;">
16
+                        <p style="width:50px;display: inline-block;">请</p>
17
+                        <el-select style="width:140px;" v-model="type" placeholder="请选择">
18
+                            <el-option
19
+                            v-for="item in typeOptions"
20
+                            :key="item.value"
21
+                            :label="item.label"
22
+                            :value="item.value">
23
+                            </el-option>
24
+                        </el-select>
25
+                    </div>
26
+                    <div style="margin-bottom:10px;">
27
+                        <p style="width:50px;display: inline-block;">到</p>
28
+                        <el-select style="width:140px;" v-model="state" placeholder="请选择">
29
+                            <el-option
30
+                            v-for="item in stateOptions"
31
+                            :key="item.value"
32
+                            :label="item.label"
33
+                            :value="item.value">
34
+                            </el-option>
35
+                        </el-select>
36
+                    </div>
37
+                    <div style="margin-bottom:10px;" v-if="state == 2">
38
+                        <p style="width:50px;display: inline-block;"></p>
39
+                        <el-input style="width:200px;" v-model="input" placeholder="请输入内容"></el-input>
40
+                    </div>
41
+                    <div>就诊</div>
42
+                </div>
43
+                
44
+            </div>
45
+            <div class="configureBox" style="border-left:none;">
46
+                <div class="configureBoxTitle">上机叫号</div>
47
+                <div class="configureBoxMain">
48
+                    <div style="margin-bottom:10px;">单次叫号语音播报次数:<el-input-number v-model="num" @change="handleChange" :min="1"></el-input-number></div>
49
+                    <div style="margin-bottom:10px;">叫号语音内容设置:</div>
50
+                    <div style="margin-bottom:10px;">
51
+                        <p style="width:50px;display: inline-block;">请</p>
52
+                        <el-select style="width:140px;" v-model="type" placeholder="请选择">
53
+                            <el-option
54
+                            v-for="item in typeOptions"
55
+                            :key="item.value"
56
+                            :label="item.label"
57
+                            :value="item.value">
58
+                            </el-option>
59
+                        </el-select>
60
+                    </div>
61
+                    <div style="margin-bottom:10px;">
62
+                        <p style="width:50px;display: inline-block;">到</p>
63
+                        <el-select style="width:140px;" v-model="state" placeholder="请选择">
64
+                            <el-option
65
+                            v-for="item in stateOptions"
66
+                            :key="item.value"
67
+                            :label="item.label"
68
+                            :value="item.value">
69
+                            </el-option>
70
+                        </el-select>
71
+                    </div>
72
+                    <div style="margin-bottom:10px;" v-if="state == 2">
73
+                        <p style="width:50px;display: inline-block;"></p>
74
+                        <el-input style="width:200px;" v-model="input" placeholder="请输入内容"></el-input>
75
+                    </div>
76
+                    <div>上机</div>
77
+                </div>
78
+                
79
+            </div>
80
+        </div>
81
+        <div style="display:flex;margin-top:10px;">
82
+            <div style="width:480px;">
83
+                语音播报声音:
84
+                <el-radio-group v-model="radio">
85
+                    <el-radio :label="1">男生</el-radio>
86
+                    <el-radio :label="2">女生</el-radio>
87
+                </el-radio-group>
88
+            </div>
89
+            <div style="width:480px;">
90
+                隐藏接诊叫号区域:
91
+                <el-radio-group v-model="radio">
92
+                    <el-radio :label="1">是</el-radio>
93
+                    <el-radio :label="2">否</el-radio>
94
+                </el-radio-group>
95
+            </div>
96
+        </div>
97
+        <div style="display:flex;margin-top:10px;">
98
+            <div style="width:480px;">
99
+                隐藏上机叫号区域:
100
+                <el-radio-group v-model="radio">
101
+                    <el-radio :label="1">是</el-radio>
102
+                    <el-radio :label="2">否</el-radio>
103
+                </el-radio-group>
104
+            </div>
105
+            <div style="width:480px;">
106
+                是否在透析管理页面显示排队叫号:
107
+                <el-radio-group v-model="radio">
108
+                    <el-radio :label="1">显示</el-radio>
109
+                    <el-radio :label="2">不显示</el-radio>
110
+                </el-radio-group>
111
+            </div>
112
+        </div>
113
+        <div style="display:flex;margin-top:10px;">
114
+            <div style="width:480px;">
115
+                是否在透析记录详情页面显示排队叫号:
116
+                <el-radio-group v-model="radio">
117
+                    <el-radio :label="1">显示</el-radio>
118
+                    <el-radio :label="2">不显示</el-radio>
119
+                </el-radio-group>
120
+            </div>
121
+        </div>
122
+    </div>
123
+</template>
124
+
125
+<script>
126
+export default {
127
+    data(){
128
+        return{
129
+            num:3,
130
+            typeOptions:[{ value: 1, label: '姓名'},{ value: 2, label: '透析号'}],
131
+            type: 1,
132
+            stateOptions:[{ value: 1, label: '智能匹配诊台'},{ value: 2, label: '自定义内容'}],
133
+            state: 1,
134
+            input:'',
135
+            radio:1
136
+        }
137
+    }
138
+}
139
+</script>
140
+
141
+
142
+<style lang="scss" scoped>
143
+.configureBox{
144
+    width:480px;
145
+    height: 300px;
146
+    border: 1px solid #e5e5e5;
147
+    .configureBoxTitle{
148
+        height: 40px;
149
+        text-align: center;
150
+        line-height: 40px;
151
+        background: rgb(245, 247, 250);
152
+        color:rgb(96, 98, 102);
153
+        font-weight: 600;
154
+        border-bottom: 1px solid #e5e5e5;
155
+    }
156
+    .configureBoxMain{
157
+        padding: 10px;
158
+    }
159
+}
160
+</style>

+ 82 - 0
src/xt_pages/sign/components/computerCalling.vue View File

@@ -0,0 +1,82 @@
1
+<template>
2
+    <div class="page_computerCalling">
3
+        <div class="cell clearfix">
4
+            <label class="title"><span class="name">叫号状态</span> : </label>
5
+            <div class="time ">
6
+                <ul class="">
7
+                    <li v-for="option in patient_state" :key="option.value" @click="handleStateChange(option.value)" :class="patientStateVal == option.value ? 'active' : ''" >{{option.label}}
8
+                    </li>
9
+                </ul>
10
+            </div>
11
+        </div>
12
+        <div style="display:flex;justify-content: space-between;">
13
+            <div class="callingArea">
14
+                <called v-if="patientStateVal == 0" :index='1'></called>
15
+                <called v-if="patientStateVal == 1"></called>
16
+            </div>
17
+            <div class="nowCalling" v-if="patientStateVal == 0">
18
+                <p class="nowCallingTitle">当前叫号</p>
19
+                <p class="nowCallingName">李小明</p>
20
+                <p class="nowCallingTime">签到时间:07:20</p>
21
+                <p class="nowCallingTime">下一位:张三</p>
22
+                <el-button style="margin: 30px 0 20px 0;">重新叫号</el-button>
23
+                <el-button type="primary" style="margin-left:0;">&ensp;&ensp;叫号&ensp;&ensp;</el-button>
24
+            </div>
25
+        </div>
26
+    </div>
27
+</template>
28
+
29
+<script>
30
+import called from './called'
31
+export default {
32
+    components:{
33
+       called 
34
+    },
35
+    data(){
36
+        return{
37
+            patient_state:[
38
+                {value: 0,label: '待叫号'},
39
+                {value: 1,label: '已叫号'},
40
+            ],
41
+            patientStateVal: 0,
42
+        }
43
+    },
44
+    methods:{
45
+        handleStateChange: function(index) {
46
+            this.patientStateVal = index
47
+        },
48
+    }
49
+}
50
+</script>
51
+
52
+
53
+<style lang="scss" scoped>
54
+.callingArea{
55
+    display: flex;
56
+    flex-wrap: wrap;
57
+    width: 86%;
58
+}
59
+.nowCalling{
60
+    height: 351px;
61
+    border: 1px solid #e5e5ee;
62
+    // flex: 1;
63
+    width: 14%;
64
+    text-align: center;
65
+    .nowCallingTitle{
66
+        font-size: 20px;
67
+        font-weight: 600;
68
+        margin-top: 20px;
69
+        text-align: center;
70
+    }
71
+    .nowCallingName{
72
+        color: #338AFB;
73
+        font-size: 18px;
74
+        margin-top: 10px;
75
+        font-weight: 600;
76
+    }
77
+    .nowCallingTime{
78
+        font-size: 16px;
79
+        margin-top: 30px;
80
+    }
81
+}
82
+</style>

+ 84 - 0
src/xt_pages/sign/components/treatmentConfigure.vue View File

@@ -0,0 +1,84 @@
1
+<template>
2
+    <div class="page_configure">
3
+        <div style="display:flex;align-items:center;margin-bottom:12px;justify-content: space-between;">
4
+            <div>接诊台列表</div>
5
+            <el-button type="primary" @click="newVisible = true">新增</el-button>
6
+        </div>
7
+        <el-table :data="tableData" border style="width: 100%">
8
+            <el-table-column prop="date" label="接诊台号" align="center"></el-table-column>
9
+            <el-table-column label="诊台负责医生" align="center">
10
+                <template slot-scope="scope">
11
+                    <el-tag size="medium">{{ scope.row.name }}</el-tag>
12
+                </template>
13
+            </el-table-column>
14
+            <el-table-column label="操作" align="center">
15
+                <template slot-scope="scope">
16
+                    <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
17
+                    <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
18
+                </template>
19
+            </el-table-column>
20
+        </el-table>
21
+        <el-dialog title="新增诊台" width="800px" :visible.sync="newVisible" >
22
+            <el-form :model="form" :rules="rules" ref="form" label-width="140px">
23
+                <el-form-item label="诊台号 : " required prop="type">
24
+                    <el-input v-model.trim="form.type" placeholder="" ></el-input>
25
+                </el-form-item>
26
+                <el-form-item label="诊台负责医生 : " required  prop="doctor">
27
+                    <el-select style="width:100%" v-model="form.doctor" placeholder="请选择" multiple filterable allow-create default-first-option>
28
+                        <el-option
29
+                        v-for="item in typeOptions"
30
+                        :key="item.value"
31
+                        :label="item.label"
32
+                        :value="item.value">
33
+                        </el-option>
34
+                    </el-select>
35
+                </el-form-item>
36
+            </el-form>
37
+            <div slot="footer" class="dialog-footer">
38
+                <el-button @click="newVisible=false">取 消</el-button>
39
+                <el-button type="primary" @click="submitAction('form')">保 存</el-button>
40
+            </div>
41
+        </el-dialog>
42
+    </div>
43
+</template>
44
+
45
+<script>
46
+export default {
47
+    data(){
48
+        return{
49
+            tableData: [{
50
+                date: '2016-05-02',
51
+                name: '王小虎',
52
+                address: '上海市普陀区金沙江路 1518 弄'
53
+                }, {
54
+                date: '2016-05-04',
55
+                name: '王小虎',
56
+                address: '上海市普陀区金沙江路 1517 弄'
57
+                }, {
58
+                date: '2016-05-01',
59
+                name: '王小虎',
60
+                address: '上海市普陀区金沙江路 1519 弄'
61
+                }, {
62
+                date: '2016-05-03',
63
+                name: '王小虎',
64
+                address: '上海市普陀区金沙江路 1516 弄'
65
+            }],
66
+            newVisible:false,
67
+            form: {
68
+                id: 0,
69
+                type: "",
70
+                doctor:[],
71
+            },
72
+            rules: {
73
+              type: [{ required: true, message: "请输入诊台号" }],
74
+              doctor: [{ required: true, message: "请选择接诊台负责医生"}],  
75
+            },
76
+            typeOptions:[{ value: 1, label: '张三'},{ value: 2, label: '李四'}],
77
+        }
78
+    },
79
+    methods:{
80
+        handleEdit(){},
81
+        handleDelete(){},
82
+    }
83
+}
84
+</script>

+ 61 - 0
src/xt_pages/sign/components/waitingCalled.vue View File

@@ -0,0 +1,61 @@
1
+<template>
2
+    <div class="waitingCalled">
3
+        <div class="waitingOne" v-for="item in 12" :key="item">
4
+            <div class="waitingOneLeft">
5
+                <img src="https://images.shengws.com/201809182128111.png?imageView2/2/w/500/h/500/q/90" alt="">
6
+                <div class="name">
7
+                    <p>吴保龄</p>
8
+                    <p>签到时间:07:00:00</p>
9
+                </div>
10
+            </div>
11
+            <div class="waitingOneRight">
12
+                <img src="../../../assets/img/volume.png" alt="">
13
+            </div>
14
+        </div>
15
+    </div>
16
+</template>
17
+
18
+<style lang="scss" scoped>
19
+.waitingCalled{
20
+    .waitingOne{
21
+        border: 1px #e5e5ee solid;
22
+        padding: 9px 0;
23
+        margin: 0 15px 15px 0;
24
+        float: left;
25
+        width: 360px;
26
+        cursor: pointer;
27
+        display: flex;
28
+        justify-content: space-between;
29
+        align-items: center;
30
+        padding: 10px;
31
+        .waitingOneLeft{
32
+            display: flex;
33
+            img{
34
+                width: 45px;
35
+                height: 45px;
36
+                border-radius: 50%;
37
+                margin-right: 15px;
38
+            }
39
+            .name{
40
+                >p:first-child{
41
+                    font-size: 16px;
42
+                    font-weight: bold;
43
+                    color:#000;
44
+                }
45
+                >p:last-child{
46
+                    font-size: 12px;
47
+                    color:#999999;
48
+                    margin-top: 10px;
49
+                }
50
+            }
51
+            
52
+        }
53
+        .waitingOneRight{
54
+            img{
55
+                width: 30px;
56
+                margin-top: 6px;
57
+            }
58
+        }
59
+    }
60
+}
61
+</style>

+ 201 - 0
src/xt_pages/sign/lineUp.vue View File

@@ -0,0 +1,201 @@
1
+<template>
2
+    <div class="app-container">
3
+        <div class="page_lineUp">
4
+            <div class="lineUpTitle">
5
+                <div>唐山朝阳医院<span>温馨提示:请注意排队叫号,依次叫号就诊上机,谢谢配合</span></div>
6
+                <div>2020.8.18   07:22(星期四)</div>
7
+            </div>
8
+            <div class="lineUpMain">
9
+                <div class="lineUpMainLeft">
10
+                    <div class="lineUpMainLeftTitle">
11
+                        <p style="width:14%">排号</p>
12
+                        <p style="width:14%">姓名</p>
13
+                        <p style="width:14%">病例号</p>
14
+                        <p style="width:14%">床位号</p>
15
+                        <p style="width:14%">治疗状态</p>
16
+                        <p style="width:14%">上机时间</p>
17
+                        <p style="width:14%">预计下机时间</p>
18
+                    </div>
19
+                    <div class="lineUpList">
20
+                        <div class="lineUpListOne" v-for="item in 8" :key="item">
21
+                            <p style="width:14%">P01</p>
22
+                            <p style="width:14%">张*等</p>
23
+                            <p style="width:14%">001</p>
24
+                            <p style="width:14%">普通区1号床</p>
25
+                            <p style="width:14%">已下机</p>
26
+                            <p style="width:14%">09:01</p>
27
+                            <p style="width:14%">09:01</p>
28
+                        </div>
29
+                    </div>
30
+                </div> 
31
+                <div class="callingBox">
32
+                    <div class="callingBoxLeft">
33
+                        <div class="callingTitle"><span style="margin: 0 auto;">接<br />诊<br />叫<br />号</span></div>
34
+                        <div style="flex: 1;">
35
+                            <div class="callingTop" style="margin-bottom:4px;">
36
+                                <div class="callingTopTip"><span style="margin: 0 auto;">正在<br />接诊</span></div>
37
+                                <div class="callingContent">
38
+                                    <p style="margin-top:13px;">请李四宋到1号诊台就诊</p>
39
+                                    <p>请王岐岐到2号诊台就诊</p>
40
+                                </div>
41
+                            </div>
42
+                            <div class="callingTop" style="border-radius: 0 0 15px 0;">
43
+                                <div class="callingTopTip"><span style="margin: 0 auto;">等待<br />接诊</span></div>
44
+                                <div class="callingContent">
45
+                                    <p style="margin-top:13px;">欧大大、王思思、陈啦啦、吴东汉、</p>
46
+                                    <p>孔豆豆、陈米春、孔豆豆、陈米春、</p>
47
+                                </div>
48
+                            </div>
49
+                        </div>
50
+                    </div>
51
+                    <div class="callingBoxLeft">
52
+                        <div class="callingTitle newCallingTitle"><span style="margin: 0 auto;">上<br />机<br />叫<br />号</span></div>
53
+                        <div style="flex: 1;">
54
+                            <div class="callingTop" style="margin-bottom:4px;">
55
+                                <div class="callingTopTip newCallingTopTip"><span style="margin: 0 auto;">正在<br />叫号</span></div>
56
+                                <div class="callingContent">
57
+                                    <p style="margin-top:13px;">请李四宋到普通区2号床上机</p>
58
+                                    <p>请王岐岐到普通区3号床上机</p>
59
+                                </div>
60
+                            </div>
61
+                            <div class="callingTop" style="border-radius: 0 0 15px 0;">
62
+                                <div class="callingTopTip newCallingTopTip"><span style="margin: 0 auto;">等待<br />叫号</span></div>
63
+                                <div class="callingContent">
64
+                                    <p style="margin-top:13px;">欧大大、王思思、陈啦啦、吴东汉、</p>
65
+                                    <p>孔豆豆、陈米春、孔豆豆、陈米春、</p>
66
+                                </div>
67
+                            </div>
68
+                        </div>
69
+                    </div>
70
+                </div>
71
+            </div>
72
+            
73
+        </div>
74
+    </div>
75
+</template>
76
+
77
+<style lang="scss" scoped>
78
+.page_lineUp{
79
+    .lineUpTitle{
80
+        height: 50px;
81
+        background: #1A82BF;
82
+        display: flex;
83
+        justify-content: space-between;
84
+        align-items: center;
85
+        padding: 0 20px;
86
+        color:#fff;
87
+        font-size: 20px;
88
+        font-weight: 600;
89
+    }
90
+    .lineUpMain{
91
+        background: linear-gradient(0deg, #76ECEC, #479CD2);
92
+        height: 550px;
93
+        padding:10px;
94
+    }
95
+    .lineUpMainLeft{
96
+        height: 370px;
97
+        border-radius: 15px;
98
+        
99
+    }
100
+    .lineUpMainLeftTitle{
101
+        display: flex;
102
+        justify-content: space-between;
103
+        align-items: center;
104
+        color:#fff;
105
+        font-size: 18px;
106
+        font-weight: 600;
107
+        height:50px;
108
+        background: #1A82BF;
109
+        border-radius: 15px 15px 0 0;
110
+        >p{
111
+            text-align: center;
112
+        }
113
+    }
114
+    .lineUpList{
115
+        font-size: 18px;
116
+        font-weight: 600;
117
+        >div:nth-child(odd){
118
+            background: #F9FDFF;
119
+        }
120
+        >div:nth-child(even){
121
+            background: #CCEBFF;
122
+        }
123
+        >div:last-child{
124
+            border-radius: 0 0 15px 15px;
125
+        }
126
+        .lineUpListOne{
127
+            height:40px;
128
+            display: flex;
129
+            justify-content: space-between;
130
+            align-items: center;
131
+            color:#1C6895;
132
+            >p{
133
+                width:25%;
134
+                text-align: center;
135
+            }
136
+        }
137
+    }
138
+    .callingBox{
139
+        height: 150px;
140
+        margin-top: 10px;
141
+        display: flex;
142
+        justify-content: space-between;
143
+        .callingBoxLeft{
144
+            width: 49%;
145
+            height: 100%;
146
+            display: flex;
147
+            justify-content: space-between;
148
+            .callingTitle{
149
+                width: 60px;
150
+                height: 100%;
151
+                border-radius: 15px 0 0 15px;
152
+                font-size: 30px;
153
+                font-weight:600;
154
+                text-align: center;
155
+                color: #fff;
156
+                background: #1A82BF;
157
+                display: flex;
158
+                align-items: center;
159
+                margin-right: 5px;
160
+            }
161
+            .newCallingTitle{
162
+                background: linear-gradient(90deg, rgba(66, 231, 167, 1), rgba(26, 191, 84, 1), rgba(157, 254, 31, 1));
163
+            }
164
+        } 
165
+        .callingTop{
166
+            height: 73px;
167
+            border-radius: 0 15px 0 0;
168
+            background: #F9FDFF;
169
+            display: flex;
170
+            justify-content: space-between;
171
+            .callingTopTip{
172
+                width: 73px;
173
+                height: 100%;
174
+                color: #fff;
175
+                font-size: 18px;
176
+                font-weight: 600;
177
+                background: #1A82BF;
178
+                display: flex;
179
+                align-items: center;
180
+            }
181
+            .newCallingTopTip{
182
+                background: linear-gradient(90deg, rgba(66, 231, 167, 1), rgba(26, 191, 84, 1), rgba(157, 254, 31, 1));
183
+            }
184
+            .callingContent{
185
+                flex: 1;
186
+                display: flex;
187
+                flex-direction: column;
188
+                font-size: 16px;
189
+                color:#1C6895;
190
+                font-weight: 600;
191
+                padding-left: 20px;
192
+                >p{
193
+                    width:100%;
194
+                    text-align: left;
195
+                    line-height: 24px;
196
+                }
197
+            }
198
+        }
199
+    }
200
+}
201
+</style>

+ 154 - 0
src/xt_pages/sign/signIn.vue View File

@@ -0,0 +1,154 @@
1
+<template>
2
+    <div class="app-container">
3
+        <div class="page_signIn">
4
+            <div class="signInTitle">
5
+                <div>唐山朝阳医院</div>
6
+                <div>2020.8.18   07:22(星期四)</div>
7
+            </div>
8
+            <div class="signInMain">
9
+                <div style="display: flex;justify-content: space-between;padding:10px;">
10
+                    <div class="signInMainLeft">
11
+                        <div class="signInMainLeftTitle">
12
+                            <p>排号</p>
13
+                            <p>姓名</p>
14
+                            <p>病历号</p>
15
+                            <p>签到时间</p>
16
+                        </div>
17
+                        <div class="signInList">
18
+                            <div class="signInListOne" v-for="item in 12" :key="item">
19
+                                <p>P13</p>
20
+                                <p>张*等</p>
21
+                                <p>001</p>
22
+                                <p>09:01:00</p>
23
+                            </div>
24
+                        </div>
25
+                    </div>
26
+                    <div class="signInMainRight">
27
+                        <div class="signInMainRightTitle"><span style="margin:0 auto;">张三</span></div>
28
+                        <div class="signInMainRightContent">
29
+                            <p style="margin: 0 auto;display:flex;align-items: center;"><span>排号&nbsp;&nbsp;</span><span style="font-size:120px;">P06</span></p>
30
+                        </div>
31
+                        <div class="signInMianRightBottom"><span style="margin:0 auto;">签到成功</span></div>
32
+                    </div>
33
+                </div>
34
+                <div class="signInTip">
35
+                    温馨提示:请注意排队叫号,依次叫号就诊上机,谢谢配合
36
+                </div>
37
+            </div>
38
+        </div>
39
+    </div>
40
+</template>
41
+
42
+
43
+<style lang="scss" scoped>
44
+.page_signIn{
45
+    .signInTitle{
46
+        height: 50px;
47
+        background: #1A82BF;
48
+        display: flex;
49
+        justify-content: space-between;
50
+        align-items: center;
51
+        padding: 0 20px;
52
+        color:#fff;
53
+        font-size: 20px;
54
+        font-weight: 600;
55
+    }
56
+    .signInMain{
57
+        background: linear-gradient(0deg, #76ECEC, #479CD2);
58
+        height: 600px;
59
+        
60
+        
61
+    }
62
+    .signInMainLeft{
63
+        width:65%;
64
+        height: 530px;
65
+        border-radius: 15px;
66
+    }
67
+    .signInMainLeftTitle{
68
+        display: flex;
69
+        justify-content: space-between;
70
+        align-items: center;
71
+        color:#fff;
72
+        font-size: 18px;
73
+        font-weight: 600;
74
+        height:50px;
75
+        background: #1A82BF;
76
+        border-radius: 15px 15px 0 0;
77
+        >p{
78
+            width:25%;
79
+            text-align: center;
80
+        }
81
+    }
82
+    .signInList{
83
+        font-size: 18px;
84
+        font-weight: 600;
85
+        >div:nth-child(odd){
86
+            background: #F9FDFF;
87
+        }
88
+        >div:nth-child(even){
89
+            background: #CCEBFF;
90
+        }
91
+        >div:last-child{
92
+            border-radius: 0 0 15px 15px;
93
+        }
94
+        .signInListOne{
95
+            height:40px;
96
+            display: flex;
97
+            justify-content: space-between;
98
+            align-items: center;
99
+            color:#1C6895;
100
+            >p{
101
+                width:25%;
102
+                text-align: center;
103
+            }
104
+        }
105
+    }
106
+    .signInMainRight{
107
+        width: 34%;
108
+        height: 530px;
109
+    }
110
+    .signInMainRightTitle{
111
+        height: 130px;
112
+        border-radius: 15px 15px 0 0;
113
+        background: #1A82BF;
114
+        font-size: 80px;
115
+        font-weight: 600;
116
+        color:#fff;
117
+        display: flex;
118
+        align-items: center;
119
+        justify-content: space-between;
120
+    }
121
+    .signInMainRightContent{
122
+        background: #F9FDFF;
123
+        height: 300px;
124
+        text-align: center;
125
+        font-weight: 600;
126
+        color:#1C6895;
127
+        box-sizing: border-box;
128
+        font-size:70px;
129
+        display:flex;
130
+        align-items:center;
131
+    }
132
+    .signInMianRightBottom{
133
+        height: 100px;
134
+        background: #1A82BF;
135
+        border-radius: 0 0 15px 15px;
136
+        font-size: 40px;
137
+        font-weight: 600;
138
+        color:#fff;
139
+        display: flex;
140
+        justify-content: space-between;
141
+        align-items: center;
142
+    }
143
+    .signInTip{
144
+        color:#fff;
145
+        font-size: 18px;
146
+        font-weight: 600;
147
+        display: flex;
148
+        align-items: center;
149
+        height: 50px;
150
+        background: linear-gradient(0deg, #42A9E7, #3686B9, #42A9E7);
151
+        margin-top: 1px;
152
+    }
153
+}
154
+</style>

+ 13 - 13
src/xt_permission.js View File

@@ -12,19 +12,19 @@ const permissionWhiteList = loginWhiteList.concat(['/']) // 权限验证白名
12 12
 
13 13
 router.beforeEach((to, from, next) => {
14 14
   // 线上注释
15
-  if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) {
16
-      store.dispatch('VerifyConfigList', []).then(() => {
17
-        next()
18
-      })
19
-    }
20
-    if (store.getters.permission_routers === undefined) {
21
-      store.dispatch('xt_GenerateRoutes', []).then(() => {
22
-        next()
23
-      })
24
-    } else {
25
-      next()
26
-    }
27
-    return
15
+  // if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) {
16
+  //     store.dispatch('VerifyConfigList', []).then(() => {
17
+  //       next()
18
+  //     })
19
+  //   }
20
+  //   if (store.getters.permission_routers === undefined) {
21
+  //     store.dispatch('xt_GenerateRoutes', []).then(() => {
22
+  //       next()
23
+  //     })
24
+  //   } else {
25
+  //     next()
26
+  //   }
27
+  //   return
28 28
   // 线上注释
29 29
 
30 30
   NProgress.start()