test_user 2 years ago
parent
commit
74b5dd9767

+ 6 - 13
src/xt_pages/workforce/components/setup_template_dialog.vue View File

@@ -72,9 +72,9 @@ export default {
72 72
       },
73 73
       visible: false,
74 74
       week_time:"",
75
+      week_time_two:"",
75 76
       form: {
76 77
         mode: 0,
77
-        week_time:"",
78 78
       }
79 79
     }
80 80
   },
@@ -107,11 +107,8 @@ export default {
107 107
     },
108 108
 
109 109
     changeWeek(val) {
110
-      this.form.week_time = this.getYearWeek(val) -1
111
-
112
-
113
-
114
-
110
+      // this.week_time = this.getYearWeek(val) -1
111
+      this.template_mode.original_week =  this.getYearWeek(val) -1
115 112
     },
116 113
     _close: function (done) {
117 114
       this.clear()
@@ -121,8 +118,7 @@ export default {
121 118
 
122 119
     },
123 120
     show() {
124
-      this.clear()
125
-      this.form.week_time = this.template_mode.origin_mode
121
+      this.week_time =""
126 122
       this.visible = true
127 123
     },
128 124
     hide() {
@@ -130,8 +126,7 @@ export default {
130 126
       this.visible = false
131 127
     },
132 128
     saveAction: function () {
133
-      console.log(this.form.week_time)
134
-      if(this.form.mode > 0 && this.form.week_time.length == 0){
129
+      if(this.form.mode > 0 && this.week_time.length == 0){
135 130
         this.$message.error("请选择模版自动生成起始周")
136 131
         return
137 132
       }
@@ -168,12 +163,10 @@ export default {
168 163
       }
169 164
     },
170 165
     submit: function () {
171
-      setTemplateMode(this.form.mode,this.form.week_time).then(rs => {
166
+      setTemplateMode(this.form.mode,this.template_mode.original_week).then(rs => {
172 167
         var resp = rs.data
173 168
         if (resp.state == 1) {
174 169
           this.template_mode.mode = this.form.mode
175
-          this.template_mode.original_week = this.form.week_time
176
-
177 170
           this.hide()
178 171
           this.$emit('chenge_mode', this.form.mode)
179 172
         } else {

+ 138 - 0
src/xt_pages/workforce/components/template_schedule_dialog.vue View File

@@ -0,0 +1,138 @@
1
+<template>
2
+  <el-dialog
3
+    width="40%"
4
+    :visible.sync="visible"
5
+    :before-close="_close"
6
+  >
7
+    <el-form :model="form" label-width="80px" :rules="rules">
8
+            <el-form-item label="患者" required prop="patient_id">
9
+              <el-select
10
+                v-model="form.patient_id"
11
+                placeholder="选择患者"
12
+                filterable
13
+                clearable
14
+              >
15
+                <el-option
16
+                  v-for="item in patients"
17
+                  :key="item.id"
18
+                  :value="item.id"
19
+                  :label="item.name"
20
+                >
21
+                </el-option>
22
+              </el-select>
23
+            </el-form-item>
24
+      <el-form-item label="透析模式" required prop="treat_mode">
25
+        <el-select
26
+          v-model="form.treat_mode"
27
+          placeholder="选择透析模式"
28
+          clearable
29
+        >
30
+          <el-option
31
+            v-for="mode in treatment_modes"
32
+            :key="mode.id"
33
+            :value="mode.id"
34
+            :label="mode.name"
35
+          >
36
+          </el-option>
37
+        </el-select>
38
+      </el-form-item>
39
+    </el-form>
40
+    <div slot="footer" class="dialog-footer">
41
+      <el-button @click="visible=false">取消</el-button>
42
+      <el-button type="primary" @click="saveAction">保 存</el-button>
43
+    </div>
44
+  </el-dialog>
45
+</template>
46
+
47
+<script>
48
+export default {
49
+  name: "TemplateScheduleDialog",
50
+  data() {
51
+    return {
52
+      patients:[],
53
+      visible: false,
54
+      form: {
55
+        patient_id: "",
56
+        treat_mode: "",
57
+        weekday: 1,
58
+        time_type: 1,
59
+        device_number_id: 0
60
+      },
61
+      treatment_modes: {},
62
+      rules: {
63
+        patient_id: [{ required: true, message: "请选择患者" }],
64
+        treat_mode: [{ required: true, message: "请选择透析模式" }]
65
+      }
66
+    };
67
+  },
68
+
69
+  created() {
70
+    this.treatment_modes = this.$store.getters.treatment_mode;
71
+  },
72
+  methods: {
73
+    _close: function(done) {
74
+      this.clear();
75
+      done();
76
+    },
77
+    clear: function() {
78
+      this.form.patient_id = "";
79
+      this.form.treat_mode = "";
80
+      this.form.weekday = 1;
81
+      this.form.time_type = 1;
82
+      this.form.device_number_id = 0;
83
+    },
84
+    show(weekday, time_type, device_number_id,patients) {
85
+      this.clear();
86
+      this.patients = patients
87
+      console.log(this.patients)
88
+      this.form.weekday = weekday;
89
+      this.form.time_type = time_type;
90
+      this.form.device_number_id = device_number_id;
91
+      this.visible = true;
92
+    },
93
+    showWith(patient_id, treat_mode, weekday, time_type, device_number_id,patients) {
94
+      this.clear();
95
+      this.patients = patients
96
+      console.log(this.patients)
97
+      this.form.patient_id = patient_id;
98
+      this.form.treat_mode = treat_mode;
99
+      this.form.weekday = weekday;
100
+      this.form.time_type = time_type;
101
+      this.form.device_number_id = device_number_id;
102
+      this.visible = true;
103
+    },
104
+    hide() {
105
+      this.clear();
106
+      this.visible = false;
107
+    },
108
+    saveAction: function() {
109
+      if (this.form.patient_id <= 0) {
110
+        this.$message.error("请选择患者", 1500);
111
+        return;
112
+      }
113
+      if (this.form.treat_mode <= 0) {
114
+        this.$message.error("请选择透析模式", 1500);
115
+        return;
116
+      }
117
+      this.$emit(
118
+        "did_selected",
119
+        this.form.patient_id,
120
+        this.form.treat_mode,
121
+        this.form.weekday,
122
+        this.form.time_type,
123
+        this.form.device_number_id
124
+      );
125
+    },
126
+    cancelScheduleAction: function() {
127
+      this.$emit(
128
+        "did_cancel",
129
+        this.form.weekday,
130
+        this.form.time_type,
131
+        this.form.device_number_id
132
+      );
133
+    }
134
+  }
135
+};
136
+</script>
137
+
138
+<style scoped></style>

+ 108 - 22
src/xt_pages/workforce/components/template_table.vue View File

@@ -972,6 +972,15 @@
972 972
       @did_selected="will_add_schedule_action_three"
973 973
       @did_cancel="cancel_schedule_action"
974 974
     ></schedule-selector-dialog>
975
+
976
+    <template-schedule-dialog
977
+      ref="selector_dialog_two"
978
+      :patients="patients"
979
+      @did_selected="will_add_schedule_action_four"
980
+      @did_cancel="cancel_schedule_action"
981
+    >
982
+    </template-schedule-dialog>
983
+
975 984
     <!-- 智能排班 -->
976 985
     <div class="dialog-wrapper">
977 986
       <el-dialog
@@ -1210,6 +1219,7 @@ import {
1210 1219
 import TemplateTableItem from "./template_table_item";
1211 1220
 import ScheduleSelectorDialog from "./template_schedule_selector_dialog";
1212 1221
 import { PostSearchSmartSchTemplatePatient } from "../../../api/schedule_template/sch_template";
1222
+import TemplateScheduleDialog from './template_schedule_dialog'
1213 1223
 
1214 1224
 const weekOptions = [
1215 1225
   {
@@ -1253,6 +1263,7 @@ var rowspanNoControl = -1;
1253 1263
 export default {
1254 1264
   name: "TemplateTable",
1255 1265
   components: {
1266
+    TemplateScheduleDialog,
1256 1267
     TemplateTableItem,
1257 1268
     ScheduleSelectorDialog,
1258 1269
   },
@@ -1795,7 +1806,7 @@ export default {
1795 1806
 
1796 1807
           if (info.pid > 0 || info.treat_mode_id > 0 ) {
1797 1808
             if (this.cur_drag_obj == 2){
1798
-             
1809
+
1799 1810
               if(info.pid != this.cur_drag_info.patient_id){
1800 1811
                 console.log('1234132412',info.pid,this.cur_drag_info.patient_id);
1801 1812
                 this.tipDialogVisible = true
@@ -2639,7 +2650,7 @@ export default {
2639 2650
         this.cur_drag_info.id = 0;
2640 2651
 
2641 2652
       }
2642
-        
2653
+
2643 2654
         console.log('this.cur_drag_info的数据',this.cur_drag_info);
2644 2655
       },
2645 2656
     allowDrop(e) {
@@ -2760,7 +2771,7 @@ export default {
2760 2771
       }
2761 2772
       return "";
2762 2773
     },
2763
-    
2774
+
2764 2775
     makeDeviceNumbers: function (device_numbers) {
2765 2776
       this.all_zones = [];
2766 2777
       this.devices = [];
@@ -2998,26 +3009,19 @@ export default {
2998 3009
             this.cur_info.patient_name = row[column.property].name
2999 3010
             this.cur_info.mode_name = row[column.property].treat_mode
3000 3011
             console.log('this.patient_id_hover的数据',this.patient_id_hover);
3001
-      }
3002
-
3003
-      // else {
3004
-      //   this.$refs.selector_dialog.showWith(item.pid, item.treat_mode_id, weekday, time_type, device_number_id)
3005
-      // }
3006
-      // console.log('row[column.property]',row[column.property]);
3007
-      //   if (row[column.property].schedule_id > 0) {
3008
-      //     let patient_id = row[column.property].patient_id
3009
-      //       this.patient_id_hover = patient_id;
3010
-      //   } else {
3011
-      //     this.patient_id_hover = -1;
3012
-      //     this.currentData.mode_id = 1;
3013
-      //     this.currentData.id = 0;
3014
-      //     this.currentData.patient_id = 0;
3015
-      //     this.currentData.patient = "";
3016
-      //     this.currentData.contagions = [];
3017
-      //     this.getSchedulePatients();
3018
-      //     this.dialogTableVisible = true;
3012
+      }else{
3013
+        var item = row[column.property]
3014
+        var weekday_timetype = column.property.split('_')
3015
+        var weekday = weekday_timetype[0]
3016
+        var time_type = weekday_timetype[1]
3017
+        var device_number_id = row.id
3018
+        if (item.pid == 0) {
3019
+          this.$refs.selector_dialog_two.show(weekday, time_type, device_number_id,this.patients)
3020
+        } else {
3021
+          this.$refs.selector_dialog_two.showWith(item.pid, item.treat_mode_id, weekday, time_type, device_number_id,this.patients)
3022
+        }
3019 3023
 
3020
-      //   }
3024
+      }
3021 3025
     },
3022 3026
     // 双击
3023 3027
     itemdblclick (row, column, cell, event){
@@ -3127,6 +3131,88 @@ export default {
3127 3131
       }
3128 3132
 
3129 3133
       this.$message.error("设备不存在");
3134
+    },  will_add_schedule_action_four: function(patient_id, treat_mode, weekday, time_type, device_number_id) {
3135
+      var patient = null
3136
+      for (let index = 0; index < this.patients.length; index++) {
3137
+        const p = this.patients[index]
3138
+        if (p.id == patient_id) {
3139
+          patient = p
3140
+          break
3141
+        }
3142
+      }
3143
+      if (patient == null) {
3144
+        this.$message.error('患者不存在')
3145
+        return
3146
+      }
3147
+
3148
+      for (let index = 0; index < this.opera_device_numbers.length; index++) {
3149
+        const device_number = this.opera_device_numbers[index]
3150
+        console.log(device_number)
3151
+        for (let t_y = 1; t_y <= 3; t_y++) {
3152
+          if (t_y == time_type && device_number_id == device_number.id) {
3153
+            continue
3154
+          }
3155
+          if (device_number[weekday + '_' + t_y].pid == patient_id) {
3156
+            this.$message.error('同位患者一天内不可有两次排班')
3157
+            return
3158
+          }
3159
+        }
3160
+      }
3161
+
3162
+      for (let index = 0; index < this.opera_device_numbers.length; index++) {
3163
+        const device_number = this.opera_device_numbers[index]
3164
+        if (device_number.id == device_number_id) {
3165
+          var isDiseaseSame = false
3166
+          var havePatientDisease = patient.contagions.length > 0
3167
+          if (patient.contagions.length > 0 || device_number.zone.type != 1) {
3168
+            if (device_number.zone.type != 1) {
3169
+              for (let c_i = 0; c_i < patient.contagions.length; c_i++) {
3170
+                const contagion = patient.contagions[c_i]
3171
+                if (contagion.disease_id == device_number.zone.type) {
3172
+                  isDiseaseSame = true
3173
+                }
3174
+              }
3175
+            }
3176
+          } else {
3177
+            isDiseaseSame = true
3178
+          }
3179
+          if (isDiseaseSame == false) {
3180
+            // 此患者没有传染病,与此透析机不匹配,确定在此排班吗?
3181
+            // 此患者有传染病,与此透析机不匹配,确定在此排班吗?
3182
+            var msg = havePatientDisease ? '此患者有传染病,与此透析机不匹配,确定在此排班吗?' : '此患者没有传染病,与此透析机不匹配,确定在此排班吗?'
3183
+            this.$confirm(msg, '提示', { confirmButtonText: '确 定', cancelButtonText: '取 消', type: 'warning' })
3184
+              .then(() => {
3185
+                // this.add_scheduleTwo(patient, device_number, treat_mode, weekday, time_type)
3186
+
3187
+                this.will_add_schedule_action(
3188
+                  patient.id,
3189
+                  treat_mode,
3190
+                  weekday,
3191
+                  time_type,
3192
+                  device_number.id,
3193
+                  0
3194
+                );
3195
+                this.saveActionTwo();
3196
+              })
3197
+          } else {
3198
+            // this.add_scheduleTwo(patient, device_number, treat_mode, weekday, time_type)
3199
+            this.will_add_schedule_action(
3200
+              patient.id,
3201
+              treat_mode,
3202
+              weekday,
3203
+              time_type,
3204
+              device_number.id,
3205
+              0
3206
+            );
3207
+            this.saveActionTwo();
3208
+          }
3209
+          // this.saveActionTwo()
3210
+          this.$refs.selector_dialog_two.hide()
3211
+          return
3212
+        }
3213
+      }
3214
+
3215
+      this.$message.error('设备不存在')
3130 3216
     },
3131 3217
     will_add_schedule_action_three: function (
3132 3218
       patient_id,

+ 18 - 11
src/xt_pages/workforce/template.vue View File

@@ -118,29 +118,36 @@
118 118
 <!--          <template-table :editable="false" :device_numbers="device_numbers" :template="this_week_schedules" :is_editing="false"-->
119 119
 <!--                          :patients="patients" :data="data"></template-table>-->
120 120
 <!--        </el-tab-pane>-->
121
-        <el-tab-pane name="first" :disabled="template_mode.mode == 0" :label=" first_template.week?'一周模版'+ first_template.week+'周':'一周模版'">
121
+        <el-tab-pane name="first" :disabled="template_mode.mode == 0" >
122 122
 <!--          <span slot="label">-->
123 123
 <!--          </span>-->
124
+          <span slot="label"> {{first_template.week?'一周模版'+ first_template.week+'周':'一周模版'}}
125
+<!--             <span v-if="schedule.mode == 2 && schedule.execute_times%2==0">(下一周)</span>-->
126
+<!--             <span v-if="schedule.mode == 2 && schedule.execute_times%2!=0">(本周)</span>-->
127
+
128
+             <span v-if="schedule.mode ==1">(本周)</span>
129
+             <span v-if="schedule.mode == 2 && schedule.execute_times%2==0">(下一周)</span>
130
+             <span v-if="schedule.mode == 2 && schedule.execute_times%2!=0">(本周)</span>
131
+          </span>
124 132
 
125 133
         </el-tab-pane>
126 134
 
127
-        <el-tab-pane :label="  second_template.week?'二周模版' + second_template.week+'周':'二周模版'" name="second" :disabled="template_mode.mode != 2 && template_mode.mode != 3 && template_mode.mode  != 4">
135
+        <el-tab-pane  name="second" :disabled="template_mode.mode != 2 && template_mode.mode != 3 && template_mode.mode  != 4">
128 136
 <!--          <template-table   ref="table_two"  :is_editing="is_editing" :editable="true" :device_numbers="device_numbers" :template="first_template"-->
129 137
 <!--                           :modes="modes"  :patients="patients" @cancel_sch="refresh" :data="data"  :template_mode="template_mode"  @cur_info="cur_info" @saveData="saveData" @event1="changeZone" @saveSuccessTwo="refresh"></template-table>-->
130
-
138
+          <span slot="label"> {{second_template.week?'二周模版' + second_template.week+'周':'二周模版'}}
139
+<!--             <span v-if="schedule.mode == 2 && schedule.execute_times%2==0">(下一周)</span>-->
140
+<!--             <span v-if="schedule.mode == 2 && schedule.execute_times%2!=0">(本周)</span>-->
141
+<!--            -->
142
+              <span v-if="schedule.mode == 2 && schedule.execute_times%2==0">(本周)</span>
143
+             <span v-if="schedule.mode == 2 && schedule.execute_times%2!=0">(下一周)</span>
144
+          </span>
131 145
         </el-tab-pane>
132 146
 
133 147
 
134 148
 
135 149
         <el-tab-pane :label="  third_template.week? '三周模版' + third_template.week+'周':'三周模版'" name="third" :disabled="template_mode.mode != 3 && template_mode.mode  != 4">
136
-<!--          <span slot="label">三周模版{{ third_template.week?third_template.week+'周':" "}}-->
137
-<!--             <span v-if="schedule.execute_times%2==0">(下一周)</span>-->
138
-<!--             <span v-if="schedule.execute_times%2!=0">(本周)</span>-->
139
-<!--                  <span v-if="schedule.execute_times%4==0">(本周)</span>-->
140
-<!--             <span v-if="schedule.execute_times%4==1">(下一周)</span>-->
141
-<!--            <span v-if="schedule.execute_times%4==2">(下二周)</span>-->
142
-<!--             <span v-if="schedule.execute_times%4==3">(下三周)</span>-->
143
-<!--           </span>-->
150
+
144 151
 <!--          <template-table  ref="table_three"  :is_editing="is_editing" :editable="true" :device_numbers="device_numbers" :template="first_template"-->
145 152
 <!--                           :modes="modes"  :patients="patients" @cancel_sch="refresh" :data="data"  :template_mode="template_mode"  @cur_info="cur_info" @saveData="saveData" @event1="changeZone" @saveSuccessTwo="refresh"></template-table>-->
146 153
         </el-tab-pane>