|
@@ -103,6 +103,7 @@
|
103
|
103
|
|
104
|
104
|
|
105
|
105
|
<el-button size="small" icon="el-icon-setting" type="primary" @click="setScheduleTemplateAction">设置模板</el-button>
|
|
106
|
+ <!-- <el-button size="small" icon="el-icon-setting" type="primary" @click="setData">同步数据</el-button> -->
|
106
|
107
|
</div>
|
107
|
108
|
<!-- </el-col> -->
|
108
|
109
|
</div>
|
|
@@ -131,6 +132,30 @@
|
131
|
132
|
<set-up-template-dialog ref="setup_dialog" :template_mode="template_mode" :origin_mode="origin_mode"
|
132
|
133
|
@chenge_mode="didChangeTemplateMode"></set-up-template-dialog>
|
133
|
134
|
</div>
|
|
135
|
+
|
|
136
|
+ <el-dialog title="同步排班" width="600px" :visible.sync="newVisible">
|
|
137
|
+ <el-form :model="form" ref="form" label-width="90px" :rules="rules">
|
|
138
|
+ <el-form-item label="同步周次:">
|
|
139
|
+ <el-radio v-model="form.firstWeek" label="1">第一周</el-radio>
|
|
140
|
+ <el-radio v-model="form.firstWeek" label="2">第二周</el-radio>
|
|
141
|
+ </el-form-item>
|
|
142
|
+ <el-form-item label="同步到 :">
|
|
143
|
+ <el-select v-model="form.copyWeek" placeholder="请选择" required prop="copyWeek">
|
|
144
|
+ <el-option
|
|
145
|
+ v-for="item in typeOptions"
|
|
146
|
+ :key="item.value"
|
|
147
|
+ :label="item.label"
|
|
148
|
+ :value="item.value">
|
|
149
|
+ </el-option>
|
|
150
|
+ </el-select>
|
|
151
|
+ </el-form-item>
|
|
152
|
+
|
|
153
|
+ </el-form>
|
|
154
|
+ <div slot="footer" class="dialog-footer">
|
|
155
|
+ <el-button @click="newVisible=false">取 消</el-button>
|
|
156
|
+ <el-button type="primary" @click="submitAction('form')">保 存</el-button>
|
|
157
|
+ </div>
|
|
158
|
+ </el-dialog>
|
134
|
159
|
</div>
|
135
|
160
|
</template>
|
136
|
161
|
|
|
@@ -139,7 +164,7 @@
|
139
|
164
|
import TemplateTable from './components/template_table'
|
140
|
165
|
import { getTemplateInitData } from '@/api/schedule_template/patient'
|
141
|
166
|
import BreadCrumb from '@/xt_pages/components/bread-crumb'
|
142
|
|
- import { exportScheduleTemplate, getWeekPanels,initDate } from '@/api/schedule'
|
|
167
|
+ import { exportScheduleTemplate, getWeekPanels,initDate,synchroSchedule } from '@/api/schedule'
|
143
|
168
|
import ScheduleTemplateUploadExcel from './components/scheduleTemplateUploadExcel/index'
|
144
|
169
|
import { generateLog } from '@/api/config'
|
145
|
170
|
|
|
@@ -192,11 +217,62 @@
|
192
|
217
|
},
|
193
|
218
|
firstWeekData:[],
|
194
|
219
|
secondWeekData:[],
|
195
|
|
- tableList:[]
|
|
220
|
+ tableList:[],
|
|
221
|
+ newVisible:false,
|
|
222
|
+ weekList: [],
|
|
223
|
+ currentFirstDate1: '',
|
|
224
|
+ rules: {
|
|
225
|
+ copyWeek: [{ required: true, message: "请选择复制时间段", trigger: "blur" }],
|
|
226
|
+ },
|
|
227
|
+ weekNum:'',
|
|
228
|
+ weekDayArr:[],
|
|
229
|
+ todayDate:'',
|
|
230
|
+ clen:7,
|
|
231
|
+ nowYear: new Date().getFullYear(),
|
|
232
|
+ schedule_week:0,
|
|
233
|
+ newDay:[],
|
|
234
|
+ typeOptions:[],
|
|
235
|
+ timeOptions:[],
|
|
236
|
+ form:{
|
|
237
|
+ firstWeek:"1",
|
|
238
|
+ secondWeek:"",
|
|
239
|
+ copyWeek:''
|
|
240
|
+
|
|
241
|
+ },
|
|
242
|
+ rules: {
|
|
243
|
+ copyWeek: [{ required: true, message: "请选择同步时间段", trigger: "blur" }],
|
|
244
|
+ }
|
196
|
245
|
}
|
197
|
246
|
},
|
198
|
247
|
created() {
|
|
248
|
+ let year = new Date().getFullYear()
|
|
249
|
+ let month = new Date().getMonth() + 1
|
|
250
|
+ let date = new Date().getDate()
|
|
251
|
+ this.weekNum = this.getYearWeek(year,month,date)
|
|
252
|
+ this.todayDate=this.formatDate(new Date())
|
|
253
|
+ this.setDate(new Date())
|
|
254
|
+
|
|
255
|
+ for (var i = 0; i <= 9; i++) {
|
|
256
|
+ this.setDate1(this.addDate(this.currentDate, 7))
|
|
257
|
+ }
|
|
258
|
+ let newNum = 0
|
|
259
|
+ for(let i = 0; i < this.weekList.length; i++){
|
|
260
|
+ if(this.weekNum + i + 1 <= 53){
|
|
261
|
+ let num = this.weekNum + i
|
|
262
|
+ let str = this.weekList[i][0] + '~' + this.weekList[i][6] + '(' + num + ')'
|
|
263
|
+ this.typeOptions.push({value:i,label:str})
|
|
264
|
+ let stt = this.weekList[i][0] +"~"+this.weekList[i][6]
|
|
265
|
+ this.timeOptions.push({value:i,label:stt})
|
|
266
|
+ }else{
|
|
267
|
+
|
|
268
|
+ newNum++
|
|
269
|
+ let str = this.weekList[i][0] + '~' + this.weekList[i][6] + '(' + newNum + ')'
|
|
270
|
+ this.typeOptions.push({value:i,label:str})
|
|
271
|
+ let stt = this.weekList[i][0] +"~"+this.weekList[i][6]
|
|
272
|
+ this.timeOptions.push({value:i,label:stt})
|
|
273
|
+ }
|
199
|
274
|
|
|
275
|
+ }
|
200
|
276
|
this.getWeekPanels()
|
201
|
277
|
this.getInitDate()
|
202
|
278
|
getTemplateInitData().then(rs => {
|
|
@@ -217,7 +293,7 @@
|
217
|
293
|
this.template_mode = mode
|
218
|
294
|
this.origin_mode = mode.mode
|
219
|
295
|
this.device_numbers = device_numbers
|
220
|
|
-
|
|
296
|
+
|
221
|
297
|
this.patients = patients
|
222
|
298
|
|
223
|
299
|
this.first_template = templates[0]
|
|
@@ -248,7 +324,68 @@
|
248
|
324
|
})
|
249
|
325
|
},
|
250
|
326
|
methods: {
|
251
|
|
- refresh(){
|
|
327
|
+ getYearWeek(year,month,date){
|
|
328
|
+ /*
|
|
329
|
+ dateNow是当前日期
|
|
330
|
+ dateFirst是当年第一天
|
|
331
|
+ dataNumber是当前日期是今年第多少天
|
|
332
|
+ 用dataNumber + 当前年的第一天的周差距的和在除以7就是本年第几周
|
|
333
|
+ */
|
|
334
|
+ let dateNow = new Date(year, parseInt(month) - 1, date);
|
|
335
|
+ let dateFirst = new Date(year, 0, 1);
|
|
336
|
+ let dataNumber = Math.round((dateNow.valueOf() - dateFirst.valueOf()) / 86400000);
|
|
337
|
+
|
|
338
|
+ return Math.ceil((dataNumber + ((dateFirst.getDay() + 1) - 1)) / 7);
|
|
339
|
+ },
|
|
340
|
+ getTimestamp(time) { //把时间日期转成时间戳
|
|
341
|
+ return (new Date(time)).getTime() / 1000
|
|
342
|
+ },
|
|
343
|
+
|
|
344
|
+ formatDate(date){
|
|
345
|
+ var year = date.getFullYear()+'.'
|
|
346
|
+ var month = (date.getMonth()+1)+'.';
|
|
347
|
+ var day = date.getDate();
|
|
348
|
+ return year+month+day
|
|
349
|
+ },
|
|
350
|
+ formatDateTwo(date){
|
|
351
|
+ var year = date.getFullYear()+'.'
|
|
352
|
+ var month = (date.getMonth()+1)+'.';
|
|
353
|
+ var day = date.getDate();
|
|
354
|
+ return year+month+day
|
|
355
|
+ },
|
|
356
|
+ addDate(date,n){
|
|
357
|
+ date.setDate(date.getDate()+n);
|
|
358
|
+ return date;
|
|
359
|
+ },
|
|
360
|
+ //
|
|
361
|
+ setDate(date){
|
|
362
|
+ var week = date.getDay()-1;
|
|
363
|
+ date = this.addDate(date,week*-1);
|
|
364
|
+ this.currentFirstDate = new Date(date);
|
|
365
|
+ this.currentDate = new Date(date)
|
|
366
|
+ for(var i = 0;i<this.clen; i++){
|
|
367
|
+ this.weekDayArr.push(this.formatDate(i==0 ? date : this.addDate(date,1)))
|
|
368
|
+ }
|
|
369
|
+ },
|
|
370
|
+ setDate1 (date) {
|
|
371
|
+ var week = date.getDay() - 1
|
|
372
|
+
|
|
373
|
+ date = this.addDate(date, week * -1)
|
|
374
|
+
|
|
375
|
+ this.currentDate = new Date(date)
|
|
376
|
+ let arr1 = []
|
|
377
|
+ for (var i = 0; i < this.clen; i++) {
|
|
378
|
+ arr1.push(this.formatDate(i == 0 ? date : this.addDate(date, 1)))
|
|
379
|
+ }
|
|
380
|
+ this.weekList.push(arr1)
|
|
381
|
+
|
|
382
|
+ let num = this.weekNum
|
|
383
|
+ this.currentFirstDate1 = num + 1
|
|
384
|
+ },
|
|
385
|
+ getTimestamp(time) { //把时间日期转成时间戳
|
|
386
|
+ return (new Date(time)).getTime() / 1000
|
|
387
|
+ },
|
|
388
|
+ refresh(){
|
252
|
389
|
getTemplateInitData().then(rs => {
|
253
|
390
|
var resp = rs.data
|
254
|
391
|
if (resp.state == 1) {
|
|
@@ -573,11 +710,6 @@
|
573
|
710
|
return
|
574
|
711
|
}
|
575
|
712
|
|
576
|
|
-
|
577
|
|
-
|
578
|
|
-
|
579
|
|
-
|
580
|
|
-
|
581
|
713
|
let is_system_zone = true
|
582
|
714
|
let is_device_number = true
|
583
|
715
|
let zones = []
|
|
@@ -2601,6 +2733,41 @@
|
2601
|
2733
|
this.downloadLoading = false
|
2602
|
2734
|
})
|
2603
|
2735
|
|
|
2736
|
+ },
|
|
2737
|
+ setData(){
|
|
2738
|
+ this.newVisible = true
|
|
2739
|
+ },
|
|
2740
|
+ submitAction(){
|
|
2741
|
+ var template_id = 0
|
|
2742
|
+ if(this.form.firstWeek == 1){
|
|
2743
|
+ template_id = this.first_template
|
|
2744
|
+ }
|
|
2745
|
+ if(this.form.firstWeek == 2){
|
|
2746
|
+ template_id = this.second_template
|
|
2747
|
+ }
|
|
2748
|
+ var label = ""
|
|
2749
|
+ for(let i=0;i<this.timeOptions.length;i++){
|
|
2750
|
+ if(this.form.copyWeek == this.timeOptions[i].value){
|
|
2751
|
+ label = this.timeOptions[i].label
|
|
2752
|
+ }
|
|
2753
|
+ }
|
|
2754
|
+ var start = label.split('~')
|
|
2755
|
+ var copy_startime = this.getTimestamp(start[0])
|
|
2756
|
+ var copy_endtime = this.getTimestamp(start[1])
|
|
2757
|
+ var params = {
|
|
2758
|
+ template_id:template_id.id,
|
|
2759
|
+ copy_startime:copy_startime,
|
|
2760
|
+ copy_endtime:copy_endtime,
|
|
2761
|
+ }
|
|
2762
|
+ console.log("param232323223",params)
|
|
2763
|
+ synchroSchedule(params).then(response=>{
|
|
2764
|
+ if(response.data.state == 1){
|
|
2765
|
+ var msg = response.data.data.msg
|
|
2766
|
+ this.$message.success("同步成功!")
|
|
2767
|
+ this.newVisible = false
|
|
2768
|
+ }
|
|
2769
|
+ })
|
|
2770
|
+
|
2604
|
2771
|
}
|
2605
|
2772
|
}
|
2606
|
2773
|
}
|