瀏覽代碼

Merge branch '20200710_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20200710_pc_vue_new_branch

See999 4 年之前
父節點
當前提交
5811a7b5b7
共有 2 個文件被更改,包括 202 次插入110 次删除
  1. 145 71
      src/xt_pages/medicalScheduling/index.vue
  2. 57 39
      src/xt_pages/medicalScheduling/schedulingStatistics.vue

+ 145 - 71
src/xt_pages/medicalScheduling/index.vue 查看文件

@@ -3,7 +3,7 @@
3 3
         <div class="position">
4 4
             <bread-crumb :crumbs="crumbs"></bread-crumb>
5 5
             <div style="display:flex;align-items:center">
6
-                <el-button type="primary" @click="setting">设置</el-button>
6
+                <!-- <el-button type="primary" @click="setting">设置</el-button> -->
7 7
                 <el-button type="primary" @click="DeleteStaffSchedule">清除</el-button>
8 8
                 <el-button type="primary" @click="copyStaffSchedule">复制</el-button>
9 9
                 <el-button type="primary" icon="el-icon-printer" @click="toPrint">打印</el-button>
@@ -214,81 +214,110 @@
214 214
                     <el-tabs v-model="activeName">
215 215
                         <el-tab-pane label="护士" name="nurse">
216 216
                             <el-table
217
-                                :data="nurseTableData"
217
+                                :data="nurseList"
218 218
                                 border
219 219
                                 height="250"
220 220
                                 style="width: 100%">
221
-                                <el-table-column
222
-                                align="center"
223
-                                prop="name"
224
-                                label="姓名"
225
-                                width="180">
226
-                                </el-table-column>
227
-                                <el-table-column
228
-                                align="center"
229
-                                prop="date"
230
-                                label="职称"
231
-                                width="180">
232
-                                </el-table-column>
233
-                                <el-table-column
234
-                                align="center"
235
-                                label="排序">
236
-                                <template slot-scope="scope">
237
-                                    <el-input v-model="input" placeholder="请输入内容"></el-input>
238
-                                </template>
239
-                                </el-table-column>
240
-                                <el-table-column
241
-                                align="center"
242
-                                label="是否排班">
243
-                                <template slot-scope="scope">
244
-                                    <el-radio v-model="radio" label="1">是</el-radio>
245
-                                    <el-radio v-model="radio" label="2">否</el-radio>
246
-                                </template>
247
-                                </el-table-column>
248
-                            </el-table>
249
-                        </el-tab-pane>
221
+                           <el-table-column align="center" prop="name" label="姓名" width="180">
222
+                              <template slot-scope="scope">
223
+                                  {{scope.row.user_name}}
224
+                              </template>
225
+                          </el-table-column>
226
+                          <el-table-column align="center" prop="date" label="职称" width="180">
227
+                             <template slot-scope="scope">
228
+                                <span v-if="scope.row.user_title == 1">医士</span>
229
+                                <span v-if="scope.row.user_title == 2">医师</span>
230
+                                <span v-if="scope.row.user_title == 3">住院医师</span>
231
+                                <span v-if="scope.row.user_title == 4">主治医师</span>
232
+                                <span v-if="scope.row.user_title == 5">副主任医师</span>
233
+                                <span v-if="scope.row.user_title == 6">主任医师</span>
234
+                                <span v-if="scope.row.user_title == 7">护士</span>
235
+                                <span v-if="scope.row.user_title == 8">护师</span>
236
+                                <span v-if="scope.row.user_title == 9">主管护师</span>
237
+                                <span v-if="scope.row.user_title == 10">副主任护师</span>
238
+                                <span v-if="scope.row.user_title == 11">主任护师</span>
239
+                                <span v-if="scope.row.user_title == 12">运营专员</span>
240
+                                <span v-if="scope.row.user_title == 13">运营主管</span>
241
+                             </template>
242
+                          </el-table-column>
243
+                          <el-table-column
244
+                            align="center"
245
+                            label="排序">
246
+                            <template slot-scope="scope">
247
+                                 <el-input v-model="scope.row.sort" @change="changeSort(scope.row)" placeholder="请输入内容"></el-input>
248
+                           </template>
249
+                          </el-table-column>
250
+                          <el-table-column
251
+                            align="center"
252
+                            label="是否排班">
253
+                            <template slot-scope="scope">           
254
+                              <el-radio-group v-model="scope.row.is_sort" @change="changeRadio(scope.row)">
255
+                                 <el-radio :label="1">是</el-radio>
256
+                                 <el-radio :label="0">否</el-radio>
257
+                              </el-radio-group>
258
+                            </template>
259
+                           </el-table-column>
260
+                         </el-table>
261
+                     </el-tab-pane>
262
+
250 263
                         <el-tab-pane label="医生" name="doctor">
251 264
                             <el-table
252
-                                :data="nurseTableData"
265
+                                :data="doctorList"
253 266
                                 border
254 267
                                 height="250"
255 268
                                 style="width: 100%">
256
-                                <el-table-column
269
+                            <el-table-column
257 270
                                 align="center"
258 271
                                 prop="name"
259 272
                                 label="姓名"
260 273
                                 width="180">
261
-                                </el-table-column>
262
-                                <el-table-column
263
-                                align="center"
264
-                                prop="date"
265
-                                label="职称"
266
-                                width="180">
267
-                                </el-table-column>
274
+                              <template slot-scope="scope">
275
+                                  {{scope.row.user_name}}
276
+                              </template>
277
+                             </el-table-column>
278
+                             <el-table-column align="center" prop="date" label="职称"width="180">
279
+                                <template slot-scope="scope">
280
+                                    <span v-if="scope.row.user_title == 1">医士</span>
281
+                                    <span v-if="scope.row.user_title == 2">医师</span>
282
+                                    <span v-if="scope.row.user_title == 3">住院医师</span>
283
+                                    <span v-if="scope.row.user_title == 4">主治医师</span>
284
+                                    <span v-if="scope.row.user_title == 5">副主任医师</span>
285
+                                    <span v-if="scope.row.user_title == 6">主任医师</span>
286
+                                    <span v-if="scope.row.user_title == 7">护士</span>
287
+                                    <span v-if="scope.row.user_title == 8">护师</span>
288
+                                    <span v-if="scope.row.user_title == 9">主管护师</span>
289
+                                    <span v-if="scope.row.user_title == 10">副主任护师</span>
290
+                                    <span v-if="scope.row.user_title == 11">主任护师</span>
291
+                                    <span v-if="scope.row.user_title == 12">运营专员</span>
292
+                                    <span v-if="scope.row.user_title == 13">运营主管</span>  
293
+                                </template>
294
+                             </el-table-column>
268 295
                                 <el-table-column
269 296
                                 align="center"
270 297
                                 label="排序">
271 298
                                 <template slot-scope="scope">
272
-                                    <el-input v-model="input" placeholder="请输入内容"></el-input>
299
+                                    <el-input v-model="scope.row.sort" placeholder="请输入内容" @change="changeSort(scope.row)"></el-input>
273 300
                                 </template>
274 301
                                 </el-table-column>
275 302
                                 <el-table-column
276 303
                                 align="center"
277 304
                                 label="是否排班">
278
-                                <template slot-scope="scope">
279
-                                    <el-radio v-model="radio" label="1">是</el-radio>
280
-                                    <el-radio v-model="radio" label="2">否</el-radio>
281
-                                </template>
282
-                                </el-table-column>
305
+                                <template slot-scope="scope">           
306
+                                  <el-radio-group v-model="scope.row.is_sort" @change="changeRadio(scope.row)">
307
+                                     <el-radio :label="1">是</el-radio>
308
+                                     <el-radio :label="0">否</el-radio>
309
+                                 </el-radio-group>
310
+                               </template>
311
+                              </el-table-column>
283 312
                             </el-table>
284 313
                         </el-tab-pane>
285 314
                     </el-tabs>
286
-                    <div style="margin-top:20px;">
315
+                    <!-- <div style="margin-top:20px;">
287 316
                         <p style="line-height:20px;">1.默认科室所有排序在职员工账号</p>
288 317
                         <p style="line-height:20px;">2.护士默认排序,按加入机构先后降序排序,最先加入机构的排序为1,显示在列表最下面,自定义排序,最大的序号排在最上面</p>
289 318
                         <p style="line-height:20px;">3.职称显示与管理中旬的员工列表显示的职称一样</p>
290 319
                         <p style="line-height:20px;">4.是否排班,默认机构所有用户是“是”,如果是否,则该用户不在医护排班列表中</p>
291
-                    </div>
320
+                    </div> -->
292 321
                 </div>
293 322
                 <!-- <div slot="footer" class="dialog-footer">
294 323
                 <el-button @click="hide">取 消</el-button>
@@ -303,7 +332,7 @@
303 332
 <script>
304 333
 const moment = require('moment')
305 334
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
306
-import { getDoctorList,getScheduleList,addSchedule,getStaffScheduleList,getNextWeekList,getScheduleByDoctorId,toSearchScheduleList,DeleteStaffSchedule,copyStaffSchedule,UpdateContinusSchedule } from '@/api/doctorSchedule'
335
+import { getDoctorList,getScheduleList,addSchedule,getStaffScheduleList,getNextWeekList,getScheduleByDoctorId,toSearchScheduleList,DeleteStaffSchedule,copyStaffSchedule,UpdateContinusSchedule,SaveNurseSort,SaveIsSchedule } from '@/api/doctorSchedule'
307 336
 export default {
308 337
     components:{
309 338
         BreadCrumb
@@ -381,8 +410,9 @@ export default {
381 410
             }],
382 411
             nurseVisible:false,
383 412
             activeName:'nurse',
384
-            radio:'1'
385
-            
413
+            radio:'1',
414
+            nurseList:[],
415
+            doctorList:[],
386 416
         }
387 417
     },
388 418
     methods:{
@@ -397,11 +427,27 @@ export default {
397 427
             getDoctorList().then(response=>{
398 428
                 if(response.data.state == 1){
399 429
                     var list =  response.data.data.list
400
-                    // console.log("医护列表",list)
430
+                    console.log("医护列表",list)
401 431
                     this.tableData = list
402 432
                     this.doctorlist = list
403 433
                     //获取班种列表
404 434
                     this.getStaffScheduleList()
435
+
436
+                    // var doctorlist =  response.data.data.doctorlist
437
+                    // for(let i=0;i<doctorlist.length;i++){
438
+                    //    if(doctorlist[i].sort == 0){
439
+                    //       doctorlist[i].sort = ""
440
+                    //    }
441
+                    // }
442
+                    // console.log('doctorlist',doctorlist)
443
+                    // this.doctorList = doctorlist
444
+                    // var nurselist = response.data.data.nurselist
445
+                    // for(let i=0;i<nurselist.length;i++){
446
+                    //    if(nurselist[i].sort == 0){
447
+                    //        nurselist[i].sort = ""
448
+                    //    }
449
+                    // }
450
+                    // this.nurseList = nurselist
405 451
                 }
406 452
             })
407 453
         },
@@ -411,18 +457,18 @@ export default {
411 457
                     var schedulelist = response.data.data.scheduleList
412 458
                     // console.log("schedulelist",schedulelist)
413 459
                     for(let i=0;i<schedulelist.length;i++){
414
-                    if(schedulelist[i].timeone_type == 1){
415
-                        schedulelist[i].timeone_type = "当日"
416
-                    }
417
-                    if(schedulelist[i].timeone_type == 2){
418
-                        schedulelist[i].timeone_type = "次日"
419
-                    }
420
-                    if(schedulelist[i].timetwo_type == 1){
421
-                        schedulelist[i].timetwo_type = "当日"
422
-                    }
423
-                    if(schedulelist[i].timetwo_type == 2){
424
-                        schedulelist[i].timetwo_type = "次日"
425
-                    }
460
+                        if(schedulelist[i].timeone_type == 1){
461
+                            schedulelist[i].timeone_type = "当日"
462
+                        }
463
+                        if(schedulelist[i].timeone_type == 2){
464
+                            schedulelist[i].timeone_type = "次日"
465
+                        }
466
+                        if(schedulelist[i].timetwo_type == 1){
467
+                            schedulelist[i].timetwo_type = "当日"
468
+                        }
469
+                        if(schedulelist[i].timetwo_type == 2){
470
+                            schedulelist[i].timetwo_type = "次日"
471
+                        }
426 472
                     }
427 473
                     this.schedulelist = schedulelist
428 474
                 }
@@ -494,7 +540,7 @@ export default {
494 540
             end_time:this.getTimestamp(this.weekDayArr[6]),
495 541
             schedule_date:this.getTimestamp(this.schedule_date)
496 542
             }
497
-             console.log("params",params)
543
+            //  console.log("params",params)
498 544
             
499 545
             addSchedule(params).then(response=>{
500 546
             if(response.data.state == 1){
@@ -591,7 +637,7 @@ export default {
591 637
             getStaffScheduleList(params).then(response=>{
592 638
                 if(response.data.state == 1){
593 639
                     var staffList =  response.data.data.staffList                
594
-
640
+                    // console.log("获取所有排班",staffList)
595 641
                     var sevenStr = ""
596 642
                     var oneStr = ""
597 643
                     var twoStr = ""
@@ -611,14 +657,12 @@ export default {
611 657
                     if(staffList[i].schedule_week == 0){
612 658
                         staffList[i].class_index = 0
613 659
                          var arr = []
614
-                        this.arrZero.push(staffList[i].class_name)
615
-                        console.log("this.arrZero",this.arrZero)
660
+                        this.arrZero.push(staffList[i].class_name)             
616 661
                         for(let i=0;i<this.arrZero.length;i++){
617 662
                            if(this.arrZero[i]!=''){
618 663
                               arr.push(this.arrZero[i])
619 664
                            }
620 665
                         }
621
-                        console.log("arr",arr)
622 666
                         var countedNames = arr.reduce(function (allNames, name) { 
623 667
                             if (name in allNames) {
624 668
                                 allNames[name]++;
@@ -846,7 +890,6 @@ export default {
846 890
                     obj.user_type = 10
847 891
                     obj.list = arr2
848 892
                     arr.push(obj)
849
-                    console.log('arr',arr)
850 893
                     this.tableData = arr
851 894
         
852 895
                 
@@ -907,6 +950,7 @@ export default {
907 950
             getNextWeekList(params).then(response=>{
908 951
                 if(response.data.state == 1){
909 952
                     var staffList = response.data.data.staffList
953
+                    // console.log("上下周数据",staffList)
910 954
                      var sevenStr = ""
911 955
                     var oneStr = ""
912 956
                     var twoStr = ""
@@ -1260,6 +1304,7 @@ export default {
1260 1304
             toSearchScheduleList(params).then(response=>{
1261 1305
                 if(response.data.state == 1){
1262 1306
                     var staffList =  response.data.data.staffList
1307
+                    // console.log("搜索",staffList)
1263 1308
                     let tempArr = [], newArr = []
1264 1309
                     for (let i = 0; i < staffList.length; i++) {
1265 1310
                         if (tempArr.indexOf(staffList[i].user_name) === -1) {
@@ -1292,7 +1337,6 @@ export default {
1292 1337
                             // console.log("arr",arr)
1293 1338
                           }
1294 1339
                         })
1295
-                        console.log("arr",arr)
1296 1340
                         this.tableData = arr
1297 1341
                     }
1298 1342
                 }
@@ -1431,6 +1475,35 @@ export default {
1431 1475
         _close: function(done) {
1432 1476
             done();
1433 1477
         },
1478
+        changeSort(val){
1479
+          console.log('val',val)
1480
+            const params = {
1481
+              sort:parseInt(val.sort), 
1482
+              id:val.id, 
1483
+            }
1484
+            console.log("params",params)
1485
+          SaveNurseSort(params).then(response=>{
1486
+             if(response.data.state == 1){
1487
+               var role = response.data.data.role
1488
+               this.$message.success("保存成功")
1489
+               this.getDoctorList()
1490
+             }
1491
+          })
1492
+        },
1493
+       changeRadio(val){
1494
+          console.log("val",val)
1495
+           const params = {
1496
+              id:val.id,
1497
+              is_sort:val.is_sort, 
1498
+           }
1499
+         SaveIsSchedule(params).then(response=>{
1500
+            if(response.data.state == 1){
1501
+              var role =  response.data.data.role
1502
+              this.$message.success("保存成功")
1503
+              this.getDoctorList()
1504
+            }
1505
+         })
1506
+       }
1434 1507
     },
1435 1508
     created(){
1436 1509
         //获取医护人员
@@ -1469,6 +1542,7 @@ export default {
1469 1542
       var now = moment().locale('zh-cn').format('YYYY-MM-DD 00:00:00')
1470 1543
       this.timeNow = this.getTimestamp(now)
1471 1544
       
1545
+      
1472 1546
     }
1473 1547
 }
1474 1548
 </script>

+ 57 - 39
src/xt_pages/medicalScheduling/schedulingStatistics.vue 查看文件

@@ -82,23 +82,36 @@
82 82
                 :data="tableData"
83 83
                 height="250"
84 84
                 border
85
-                style="width: 100%">
85
+                style="width: 100">
86 86
                 <el-table-column
87 87
                 align="center"
88 88
                 prop="date"
89
-                label="日期"
89
+                label="医护姓名"
90 90
                 width="180">
91 91
                 </el-table-column>
92 92
                 <el-table-column
93
-                align="center"
94
-                prop="name"
95
-                label="姓名"
96
-                width="180">
93
+                 :label="modeItem.class_name"
94
+                 property="number"
95
+                 align="center"
96
+                 min-width="100"
97
+                 v-for="(modeItem, index) in scheduleList"
98
+                 :key="index"
99
+                >
97 100
                 </el-table-column>
98 101
                 <el-table-column
99
-                align="center"
100
-                prop="address"
101
-                label="地址">
102
+                 align="center"
103
+                 prop="address"
104
+                 label="总工时/小时">
105
+                </el-table-column>
106
+                <el-table-column
107
+                 align="center"
108
+                 prop="address"
109
+                 label="出勤/天">
110
+                </el-table-column>
111
+                 <el-table-column
112
+                 align="center"
113
+                 prop="address"
114
+                 label="缺勤/天">
102 115
                 </el-table-column>
103 116
             </el-table>
104 117
         </div>
@@ -110,6 +123,7 @@
110 123
 import echarts from "echarts";
111 124
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
112 125
 import LineChart from "../qcd/components/LineChart";
126
+import { getScheduleList,getScheduleListTotal }  from '@/api/doctorSchedule'
113 127
 export default {
114 128
     components:{
115 129
         BreadCrumb,
@@ -247,36 +261,8 @@ export default {
247 261
                     }
248 262
                 ]
249 263
             },
250
-
251
-            tableData: [{
252
-                date: '2016-05-03',
253
-                name: '王小虎',
254
-                address: '上海市普陀区金沙江路 1518 弄'
255
-                }, {
256
-                date: '2016-05-02',
257
-                name: '王小虎',
258
-                address: '上海市普陀区金沙江路 1518 弄'
259
-                }, {
260
-                date: '2016-05-04',
261
-                name: '王小虎',
262
-                address: '上海市普陀区金沙江路 1518 弄'
263
-                }, {
264
-                date: '2016-05-01',
265
-                name: '王小虎',
266
-                address: '上海市普陀区金沙江路 1518 弄'
267
-                }, {
268
-                date: '2016-05-08',
269
-                name: '王小虎',
270
-                address: '上海市普陀区金沙江路 1518 弄'
271
-                }, {
272
-                date: '2016-05-06',
273
-                name: '王小虎',
274
-                address: '上海市普陀区金沙江路 1518 弄'
275
-                }, {
276
-                date: '2016-05-07',
277
-                name: '王小虎',
278
-                address: '上海市普陀区金沙江路 1518 弄'
279
-            }]
264
+            tableData: [],
265
+            scheduleList:[],
280 266
 
281 267
         }
282 268
     },
@@ -287,6 +273,13 @@ export default {
287 273
         this.weekNum = this.getYearWeek(year,month,date)
288 274
         this.todayDate=this.formatDate(new Date())
289 275
         this.setDate(new Date())
276
+      
277
+
278
+      //获取所有排班种
279
+      this.getScheduleList()
280
+  
281
+      //获取统计表的数据
282
+      this.getlist()
290 283
     },
291 284
     methods:{
292 285
         toSearch(){},
@@ -385,6 +378,31 @@ export default {
385 378
         getTimestamp(time) { //把时间日期转成时间戳
386 379
             return (new Date(time)).getTime() / 1000
387 380
         },
381
+
382
+        //获取所有班种
383
+        getScheduleList(){
384
+          getScheduleList().then(response=>{
385
+             if(response.data.state == 1){
386
+                var schedulelist = response.data.data.scheduleList
387
+                console.log("schedulelist",schedulelist)
388
+                this.scheduleList = schedulelist
389
+             } 
390
+          })
391
+        },
392
+
393
+        //获取统计表数据
394
+        getlist(){
395
+          const params = {
396
+             start_time:this.getTimestamp(this.weekDayArr[0]),
397
+             end_time:this.getTimestamp(this.weekDayArr[6])
398
+           }
399
+          getScheduleListTotal(params).then(response=>{
400
+             if(response.data.state == 1){
401
+               var list =  response.data.data.list
402
+               console.log("list",list)
403
+             }
404
+          })
405
+        }
388 406
     }
389 407
 }
390 408
 </script>