See999 hace 4 años
padre
commit
bf6785b153
Se han modificado 1 ficheros con 119 adiciones y 76 borrados
  1. 119 76
      src/xt_pages/medicalScheduling/index.vue

+ 119 - 76
src/xt_pages/medicalScheduling/index.vue Ver fichero

@@ -33,30 +33,28 @@
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%">
42 42
                     <el-table :data="tableData" border :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)', color: '#606266'}" :row-style="{ color: '#303133' }">
43
-                        <el-table-column prop="name" label="医护姓名" style="width:16%" align="center">
44
-                            <template slot-scope="scope">
45
-                                 {{scope.row.user_name}}
46
-                            </template>
47
-                        </el-table-column>
43
+                        <el-table-column prop="name" label="医护姓名" style="width:16%" align="center"></el-table-column>
48 44
                         <el-table-column label="周一" style="width:14%" align="center">
49 45
                             <template slot-scope="scope">
50
-                                <div @click="hangdleClick(scope.row,scope.$index)">
51
-                                    <el-dropdown trigger="click" @command="changeSchedule(scope.row)">
52
-                                        <span class="el-dropdown-link">
53
-                                        aaa<i class="el-icon-arrow-down el-icon--right"></i>
54
-                                        </span>
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>
57
-                                        </el-dropdown-menu>
58
-                                    </el-dropdown>
59
-                                </div>
46
+                                <el-dropdown trigger="click">
47
+                                    <span class="el-dropdown-link">
48
+                                        下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
49
+                                    </span>
50
+                                    <el-dropdown-menu slot="dropdown">
51
+                                        <el-dropdown-item icon="el-icon-plus">黄金糕</el-dropdown-item>
52
+                                        <el-dropdown-item icon="el-icon-circle-plus">狮子头</el-dropdown-item>
53
+                                        <el-dropdown-item icon="el-icon-circle-plus-outline">螺蛳粉</el-dropdown-item>
54
+                                        <el-dropdown-item icon="el-icon-check">双皮奶</el-dropdown-item>
55
+                                        <el-dropdown-item icon="el-icon-circle-check">蚵仔煎</el-dropdown-item>
56
+                                    </el-dropdown-menu>
57
+                                </el-dropdown>
60 58
                             </template>
61 59
                         </el-table-column>
62 60
                         <el-table-column prop="name" label="周二" style="width:14%" align="center"></el-table-column>
@@ -70,11 +68,13 @@
70 68
                 <div class="classBox">
71 69
                     <div class="classTitle">班种</div>
72 70
                     <div class="classMain">
73
-                        <div v-for="(item,index) in schedulelist" :key="index">
74
-                           <p>
75
-                            {{item.class_name}}&nbsp;({{item.timeone_start}}~{{item.timeone_type}}{{item.timeone_end}} <span v-if="item.timetwo_start!=''">{{item.timetwo_start}}~{{item.timetwo_type}}{{item.timetwo_end}}</span> )
76
-                           </p>
71
+                        <div>
72
+                            <p>早班(08:00~12:00)</p>
73
+                            <p>中班(12:00~18:00)</p>
74
+                            <p>晚班(18:00~24:00)</p>
75
+                            <p>全班(08:00~18:00)</p>
77 76
                         </div>
77
+                        
78 78
                         <el-checkbox style="text-align:center" v-model="isChecked">连续排班</el-checkbox>
79 79
                     </div>
80 80
                 </div>
@@ -86,7 +86,6 @@
86 86
 
87 87
 <script>
88 88
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
89
-import { getDoctorList,getScheduleList } from '@/api/doctorSchedule'
90 89
 export default {
91 90
     components:{
92 91
         BreadCrumb
@@ -109,12 +108,42 @@ export default {
109 108
                 label: '护士'
110 109
             }],
111 110
             typeValue:'1',
112
-            tableData: [],
111
+            tableData: [{
112
+                date: '2016-05-02',
113
+                name: '王小虎',
114
+                address: '上海市普陀区金沙江路 1518 弄'
115
+            }, {
116
+                date: '2016-05-04',
117
+                name: '王小虎',
118
+                address: '上海市普陀区金沙江路 1517 弄'
119
+            }, {
120
+                date: '2016-05-01',
121
+                name: '王小虎',
122
+                address: '上海市普陀区金沙江路 1519 弄'
123
+            }, {
124
+                date: '2016-05-03',
125
+                name: '王小虎',
126
+                address: '上海市普陀区金沙江路 1516 弄'
127
+            }],
113 128
             isChecked:true,
114
-            schedulelist:[],
129
+            weekNum:'',
130
+            weekDayArr:[],
131
+            todayDate:'',
132
+            clen:7,
133
+            nowYear: new Date().getFullYear()
115 134
 
116 135
         }
117 136
     },
137
+    created(){
138
+        let year = new Date().getFullYear()
139
+        let month = new Date().getMonth() + 1
140
+        let date = new Date().getDate()
141
+        this.weekNum = this.getYearWeek(year,month,date)
142
+
143
+        this.todayDate=this.formatDate(new Date())
144
+        this.setDate(new Date())
145
+        
146
+    },
118 147
     methods:{
119 148
         search(){},
120 149
         toPrint(){
@@ -123,59 +152,73 @@ export default {
123 152
                 // query: { date: date }
124 153
             })
125 154
         },
126
-      getDoctorList(){
127
-        getDoctorList().then(response=>{
128
-            if(response.data.state == 1){
129
-                var list =  response.data.data.list
130
-                console.log("list",list)
131
-                this.tableData = list
155
+        formatDate(date){      
156
+          var year = date.getFullYear()+'.'       
157
+          var month = (date.getMonth()+1)+'.';
158
+          var day = date.getDate();
159
+          return year+month+day
160
+        }, 
161
+        addDate(date,n){        
162
+          date.setDate(date.getDate()+n);        
163
+          return date;
164
+        },  
165
+        //
166
+        setDate(date){           
167
+            var week = date.getDay()-1;
168
+            date = this.addDate(date,week*-1);
169
+            this.currentFirstDate = new Date(date);
170
+            for(var i = 0;i<this.clen; i++){     
171
+                this.weekDayArr.push(this.formatDate(i==0 ? date : this.addDate(date,1)))
172
+            }     
173
+            console.log(333333333,this.weekDayArr)           
174
+        },
175
+        //上一周 
176
+        lastclick(){
177
+            this.weekDayArr=[]
178
+            this.setDate(this.addDate(this.currentFirstDate,-7));   
179
+            this.weekNum = this.weekNum - 1
180
+            if(this.weekNum - 1 == 0){
181
+                let year = this.nowYear - 1
182
+                let month = 12
183
+                let date = 31
184
+                this.weekNum = this.getYearWeek(year,month,date)
185
+                this.nowYear = this.nowYear - 1
132 186
             }
133
-        })
134
-     },
135
-     getScheduleList(){
136
-       getScheduleList().then(response=>{
137
-          if(response.data.state == 1){
138
-             var schedulelist = response.data.data.scheduleList
139
-             for(let i=0;i<schedulelist.length;i++){
140
-                if(schedulelist[i].timeone_type == 1){
141
-                    schedulelist[i].timeone_type = "当日"
142
-                }
143
-                if(schedulelist[i].timeone_type == 2){
144
-                   schedulelist[i].timeone_type = "次日"
145
-                }
146
-               if(schedulelist[i].timetwo_type == 1){
147
-                    schedulelist[i].timetwo_type = "当日"
148
-                }
149
-                if(schedulelist[i].timetwo_type == 2){
150
-                   schedulelist[i].timetwo_type = "次日"
151
-                }
152
-             }
153
-             this.schedulelist = schedulelist
154
-             console.log("schedulelist",schedulelist)
155
-          }
156
-       }) 
157
-     },
158
-     changeSchedule(command){
159
-       console.log("val",command)
160
-     },
161
-     beforeHandleCommand(item,row){
162
-        return {
163
-          'command': item,
164
-          'row': row
187
+        },
188
+        //下一周
189
+        nextclick(){ 
190
+            this.weekDayArr=[]                
191
+            this.setDate(this.addDate(this.currentFirstDate,7));
192
+            this.weekNum = this.weekNum + 1
193
+            if(this.weekNum + 1 == 54){
194
+                let year = this.nowYear + 1
195
+                let month = 1
196
+                let date = 1
197
+                this.weekNum = this.getYearWeek(year,month,date)
198
+                this.nowYear = this.nowYear + 1
199
+                console.log('year',year)
200
+                console.log('month',month)
201
+                console.log('date',date)
202
+                console.log(this.weekNum)
203
+                console.log('执行')
204
+            }
205
+        },
206
+
207
+        getYearWeek(year,month,date){
208
+            /*  
209
+                dateNow是当前日期 
210
+                dateFirst是当年第一天  
211
+                dataNumber是当前日期是今年第多少天  
212
+                用dataNumber + 当前年的第一天的周差距的和在除以7就是本年第几周  
213
+            */      
214
+            let dateNow = new Date(year, parseInt(month) - 1, date);
215
+            let dateFirst = new Date(year, 0, 1);
216
+            let dataNumber = Math.round((dateNow.valueOf() - dateFirst.valueOf()) / 86400000);
217
+            console.log(222222222222,Math.ceil((dataNumber + ((dateFirst.getDay() + 1) - 1)) / 7))
218
+            return Math.ceil((dataNumber + ((dateFirst.getDay() + 1) - 1)) / 7);        
165 219
         }
166
-     },
167
-     hangdleClick(val,index){
168
-      console.log("点击",val)
169
-      console.log("index",index)
170
-      this.index =index
171
-     }
172
-    },
173
-   created(){
174
-    //获取医护人员
175
-    this.getDoctorList()
176
-    //获取班种
177
-    this.getScheduleList()
178
-  }
220
+
221
+    }
179 222
 }
180 223
 </script>
181 224