소스 검색

医护排班

XMLWAN 4 년 전
부모
커밋
309e322857
2개의 변경된 파일137개의 추가작업 그리고 21개의 파일을 삭제
  1. 8 0
      src/api/doctorSchedule.js
  2. 129 21
      src/xt_pages/medicalScheduling/index.vue

+ 8 - 0
src/api/doctorSchedule.js 파일 보기

@@ -60,3 +60,11 @@ export function getScheduleList(params) {
60 60
     params: params
61 61
   })
62 62
 }
63
+
64
+export function addSchedule(params) {
65
+  return request({
66
+    url: '/api/schedule/addschedule',
67
+    methods: 'get',
68
+    params: params
69
+  })
70
+}

+ 129 - 21
src/xt_pages/medicalScheduling/index.vue 파일 보기

@@ -33,9 +33,9 @@
33 33
                         :value="item.value">
34 34
                     </el-option>
35 35
                 </el-select>
36
-                <el-button type="text" style="margin:0 10px;">&lt;上一周(22)</el-button>
37
-                <div class="dateBox">2019.11.25-2019.12.01(47)</div>
38
-                <el-button type="text" style="margin:0 10px;">下一周(24)&gt;</el-button>
36
+               <el-button @click="lastclick" type="text" style="margin:0 10px;">&lt;上一周({{ weekNum - 1 }})</el-button>
37
+                <div class="dateBox">{{ weekDayArr[0] }}-{{ weekDayArr[6] }}({{ weekNum }})</div>
38
+                <el-button @click="nextclick" type="text" style="margin:0 10px;">下一周({{ weekNum + 1 }})&gt;</el-button>
39 39
             </div>
40 40
             <div style="display:flex;justify-content: space-between;">
41 41
                 <div style="width: 70%">
@@ -48,12 +48,12 @@
48 48
                         <el-table-column label="周一" style="width:14%" align="center">
49 49
                             <template slot-scope="scope">
50 50
                                 <div @click="hangdleClick(scope.row,scope.$index)">
51
-                                    <el-dropdown trigger="click" @command="changeSchedule(scope.row)">
51
+                                    <el-dropdown trigger="click" @command="changeSchedule">
52 52
                                         <span class="el-dropdown-link">
53
-                                        aaa<i class="el-icon-arrow-down el-icon--right"></i>
53
+                                        {{scope.row.class_name}}<i class="el-icon-arrow-down el-icon--right"></i>
54 54
                                         </span>
55 55
                                         <el-dropdown-menu slot="dropdown" >
56
-                                            <el-dropdown-item  :command="item.class_name" icon="el-icon-plus" v-for="(item,index) in schedulelist" :key="index">{{item.class_name}}</el-dropdown-item>
56
+                                            <el-dropdown-item  :command="item.id" icon="el-icon-plus" v-for="(item,index) in schedulelist" :key="index">{{item.class_name}}</el-dropdown-item>
57 57
                                         </el-dropdown-menu>
58 58
                                     </el-dropdown>
59 59
                                 </div>
@@ -86,7 +86,7 @@
86 86
 
87 87
 <script>
88 88
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
89
-import { getDoctorList,getScheduleList } from '@/api/doctorSchedule'
89
+import { getDoctorList,getScheduleList,addSchedule } from '@/api/doctorSchedule'
90 90
 export default {
91 91
     components:{
92 92
         BreadCrumb
@@ -112,7 +112,14 @@ export default {
112 112
             tableData: [],
113 113
             isChecked:true,
114 114
             schedulelist:[],
115
-
115
+            weekNum:'',
116
+            weekDayArr:[],
117
+            todayDate:'',
118
+            clen:7,
119
+            nowYear: new Date().getFullYear(),
120
+            schedule_week:0,
121
+            docobj:{},
122
+            class_name:""
116 123
         }
117 124
     },
118 125
     methods:{
@@ -127,7 +134,6 @@ export default {
127 134
         getDoctorList().then(response=>{
128 135
             if(response.data.state == 1){
129 136
                 var list =  response.data.data.list
130
-                console.log("list",list)
131 137
                 this.tableData = list
132 138
             }
133 139
         })
@@ -151,30 +157,132 @@ export default {
151 157
                 }
152 158
              }
153 159
              this.schedulelist = schedulelist
154
-             console.log("schedulelist",schedulelist)
155 160
           }
156 161
        }) 
157 162
      },
158
-     changeSchedule(command){
159
-       console.log("val",command)
163
+     hangdleClick(val,index){
164
+      this.schedule_week = index
165
+      this.docobj = val
166
+     },
167
+     changeSchedule(id){
168
+         var class_name = ""
169
+        for(let i=0;i<this.schedulelist.length;i++){
170
+           if(id == this.schedulelist[i].id){
171
+             class_name = this.schedulelist[i].class_name
172
+           }
173
+        }
174
+        let arr = [...this.tableData]
175
+        for(let i=0;i<arr.length;i++){
176
+           if(this.docobj.id == arr[i].id){
177
+              arr[i].class_name = class_name
178
+           }
179
+        }
180
+        this.tableData = arr
181
+        const params = {
182
+          doctor_id:this.docobj.admin_user_id,
183
+          doctor_type:this.docobj.user_type,
184
+          schedule_type:id,
185
+          schedule_week:this.schedule_week,
186
+          start_time:this.getTimestamp(this.weekDayArr[0]),
187
+          end_time:this.getTimestamp(this.weekDayArr[6])
188
+        }
189
+        console.log("params",params)
190
+        
191
+       addSchedule(params).then(response=>{
192
+         if(response.data.state == 1){
193
+             var schedule = response.data.data.schedule
194
+             console.log("schedule",schedule)
195
+           }
196
+       })
197
+     },
198
+ 
199
+     formatDate(date){      
200
+          var year = date.getFullYear()+'.'       
201
+          var month = (date.getMonth()+1)+'.';
202
+          var day = date.getDate();
203
+          return year+month+day
204
+        }, 
205
+    formatDateTwo(date){      
206
+          var year = date.getFullYear()+'.'       
207
+          var month = (date.getMonth()+1)+'.';
208
+          var day = date.getDate();
209
+          return year+month+day
210
+       }, 
211
+     addDate(date,n){        
212
+        date.setDate(date.getDate()+n);        
213
+        return date;
214
+      },  
215
+        //
216
+      setDate(date){           
217
+        var week = date.getDay()-1;
218
+        date = this.addDate(date,week*-1);
219
+        this.currentFirstDate = new Date(date);
220
+        for(var i = 0;i<this.clen; i++){     
221
+            this.weekDayArr.push(this.formatDate(i==0 ? date : this.addDate(date,1)))
222
+            
223
+         }         
224
+     },
225
+        //上一周 
226
+     lastclick(){
227
+        this.weekDayArr=[]
228
+        this.setDate(this.addDate(this.currentFirstDate,-7));   
229
+        this.weekNum = this.weekNum - 1
230
+       if(this.weekNum - 1 == 0){
231
+         let year = this.nowYear - 1
232
+         let month = 12
233
+         let date = 31
234
+         this.weekNum = this.getYearWeek(year,month,date)
235
+         this.nowYear = this.nowYear - 1
236
+        }
237
+      },
238
+        //下一周
239
+     nextclick(){ 
240
+        this.weekDayArr=[]                
241
+        this.setDate(this.addDate(this.currentFirstDate,7));
242
+        this.weekNum = this.weekNum + 1
243
+        if(this.weekNum + 1 == 54){
244
+         let year = this.nowYear + 1
245
+         let month = 1
246
+         let date = 1
247
+         this.weekNum = this.getYearWeek(year,month,date)
248
+         this.nowYear = this.nowYear + 1
249
+       }
250
+     },
251
+
252
+    getYearWeek(year,month,date){
253
+       /*  
254
+        dateNow是当前日期 
255
+        dateFirst是当年第一天  
256
+        dataNumber是当前日期是今年第多少天  
257
+        用dataNumber + 当前年的第一天的周差距的和在除以7就是本年第几周  
258
+      */      
259
+      let dateNow = new Date(year, parseInt(month) - 1, date);
260
+      let dateFirst = new Date(year, 0, 1);
261
+      let dataNumber = Math.round((dateNow.valueOf() - dateFirst.valueOf()) / 86400000);
262
+      return Math.ceil((dataNumber + ((dateFirst.getDay() + 1) - 1)) / 7);        
263
+     },
264
+     getTimestamp(time) { //把时间日期转成时间戳
265
+        return (new Date(time)).getTime() / 1000
160 266
      },
161 267
      beforeHandleCommand(item,row){
162 268
         return {
163
-          'command': item,
164
-          'row': row
269
+            'command': item,
270
+            'row': row
165 271
         }
166
-     },
167
-     hangdleClick(val,index){
168
-      console.log("点击",val)
169
-      console.log("index",index)
170
-      this.index =index
171
-     }
172
-    },
272
+    }  
273
+   },
173 274
    created(){
174 275
     //获取医护人员
175 276
     this.getDoctorList()
176 277
     //获取班种
177 278
     this.getScheduleList()
279
+
280
+    let year = new Date().getFullYear()
281
+    let month = new Date().getMonth() + 1
282
+    let date = new Date().getDate()
283
+    this.weekNum = this.getYearWeek(year,month,date)
284
+    this.todayDate=this.formatDate(new Date())
285
+    this.setDate(new Date())
178 286
   }
179 287
 }
180 288
 </script>