Ver código fonte

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

28169 2 anos atrás
pai
commit
14e18986a7

+ 6 - 4
src/xt_pages/device/airDisinfect.vue Ver arquivo

@@ -5,8 +5,9 @@
5 5
     </div>
6 6
     <div class="app-container">
7 7
         <div style="float:right;margin-bottom:10px;">
8
-            <el-button type="primary" @click="dialogFormVisible = true">新增</el-button>
9
-            <!-- <el-button type="danger">删除</el-button> -->
8
+          <!-- <el-button type="primary" @click="dialogFormVisible = true">打印</el-button> -->
9
+          <el-button type="primary" @click="dialogFormVisible = true">新增</el-button>
10
+            
10 11
         </div>
11 12
         <el-table :data="tableData" border style="width: 100%" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" >
12 13
             <el-table-column type="selection" width="55" align="center"></el-table-column>
@@ -191,8 +192,7 @@
191 192
                 <el-button type="primary" @click="saveAirDisinfect('form')">保 存</el-button>
192 193
             </div>
193 194
         </el-dialog>
194
-
195
-       
195
+ 
196 196
       <el-dialog
197 197
         class="centerDialog"
198 198
         width="1000px"
@@ -312,8 +312,10 @@
312 312
           { path: false, name: '院感管理' },
313 313
           { path: false, name: '透析室空气消毒记录表' }
314 314
         ],
315
+
315 316
         dialogFormVisible:false,
316 317
         editDialogFormVisible:false,
318
+        datevalue:'',
317 319
         tableData: [],
318 320
         form: {
319 321
           id:0,

+ 954 - 0
src/xt_pages/device/airDisinfectTwo.vue Ver arquivo

@@ -0,0 +1,954 @@
1
+<template>
2
+    <div id="main-contain">
3
+      <div class="position">
4
+        <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+      </div>
6
+      <div class="app-container">
7
+          <div style="float: left; margin-bottom: 10px;">
8
+            <el-date-picker
9
+              v-model="startvalue"
10
+              type="date"
11
+              placeholder="选择日期"
12
+              style="width: 150px;">
13
+            </el-date-picker>
14
+            <span>-</span>
15
+            <el-date-picker
16
+              v-model="endvalue"
17
+              type="date"
18
+              placeholder="选择日期"
19
+              style="width: 150px;">
20
+            </el-date-picker>
21
+            <el-button type="primary" style="margin-left: 10px;">搜索</el-button>
22
+          </div>
23
+          <div style="float:right;margin-bottom:10px;">
24
+            <el-button type="primary" @click="dialogFormVisible = true">打印</el-button>
25
+            <el-button type="primary" @click="dialogFormVisible = true">新增</el-button>
26
+
27
+          </div>
28
+          <div class="tab_air">
29
+            <el-table  :data="tableData" :fit="true" stripe>
30
+                <el-table-column prop="year" label="名称" width="150" align="center">
31
+                    <el-table-column prop="year" label="消毒时间" align="center" width="150">
32
+                        <el-table-column prop="year" label="日期" align="center" width="150"></el-table-column>
33
+                    </el-table-column>
34
+                </el-table-column>
35
+                <el-table-column prop="fenopda" label="透析室" align="center" min-width="60"></el-table-column>
36
+                <el-table-column prop="dwaiod" label="累计时间" align="center" min-width="60"></el-table-column>
37
+                <el-table-column prop="date" label="责任人" align="center" min-width="60"></el-table-column>
38
+
39
+                <el-table-column prop="name" label="治疗室" align="center" min-width="60"></el-table-column>
40
+                <el-table-column prop="province" label="累计时间" align="center" min-width="60"></el-table-column>
41
+                <el-table-column prop="city" label="负责人" align="center" min-width="60"></el-table-column>
42
+
43
+                <el-table-column prop="name" label="水处理、库房" align="center" min-width="60"></el-table-column>
44
+                <el-table-column prop="province" label="累计时间" align="center" min-width="60"></el-table-column>
45
+                <el-table-column prop="city" label="负责人" align="center" min-width="60"></el-table-column>
46
+
47
+                <el-table-column prop="name" label="通风" align="center" min-width="60"></el-table-column>
48
+                <el-table-column prop="province" label="负责人" align="center" min-width="60"></el-table-column>
49
+                <el-table-column prop="city" label="操作" align="center" min-width="100">
50
+                    <template slot-scope="scope">
51
+                        <el-button
52
+                        size="mini"
53
+                        type="primary"
54
+                        @click="handleEdit(scope.row.id)">编辑</el-button>
55
+                        <el-button
56
+                        size="mini"
57
+                        type="danger"
58
+                        @click="handleDelete(scope.row.id)">删除</el-button>
59
+                    </template>
60
+                </el-table-column>
61
+            </el-table>
62
+            <el-pagination
63
+              :page-sizes="[10, 20, 50, 100]"
64
+              :page-size="10"
65
+              background
66
+              style="margin-top:20px;float: right"
67
+              layout="total, sizes, prev, pager, next, jumper"
68
+              :total="total"
69
+          >
70
+          <!-- @size-change="handleSizeChange"
71
+              @current-change="handleCurrentChange" -->
72
+          </el-pagination>
73
+         </div>
74
+
75
+            <!-- 新增 -->
76
+          <el-dialog
77
+          class="centerDialog"
78
+          width="1000px"
79
+          title="新增空气消毒表"
80
+          :visible.sync="dialogFormVisible">
81
+              <el-form :model="form" ref="form" class="airForm" :rules="airRules">
82
+                  <div style="width: 100%;">
83
+                    <el-form-item label="创建日期" label-width="110px" required prop="created_time">
84
+                        <el-date-picker
85
+                        value-format="yyyy-MM-dd"
86
+                        v-model="form.created_time"
87
+                        type="date"
88
+                        placeholder="选择日期时间">
89
+                        </el-date-picker>
90
+                    </el-form-item>
91
+                  </div>
92
+                  <div class="form_title"><span >透析室</span></div>
93
+                  <el-form-item label="消毒液" label-width="110px">
94
+                      <el-input v-model="form.disinfection_fluid"></el-input>
95
+                  </el-form-item>
96
+                  <el-form-item label="消毒方式" label-width="110px">
97
+                      <el-input v-model="form.disinfection_methods"></el-input>
98
+                  </el-form-item>
99
+                  <el-form-item label="消毒时间" label-width="110px">
100
+                      <el-input v-model="form.disinfection_methods " ></el-input>
101
+                  </el-form-item>
102
+                  <el-form-item label="开始时间" required label-width="110px">
103
+                    <el-time-picker
104
+                        v-model="form.start_time"
105
+                        :picker-options="{
106
+                        selectableRange: '18:30:00 - 20:30:00'
107
+                        }"
108
+                        placeholder="任意时间点">
109
+                    </el-time-picker>
110
+                  </el-form-item>
111
+                  <el-form-item label="结束时间" required label-width="110px">
112
+                    <el-time-picker
113
+                        v-model="form.end_time"
114
+                        :picker-options="{
115
+                        selectableRange: '18:30:00 - 20:30:00'
116
+                        }"
117
+                        placeholder="任意时间点">
118
+                    </el-time-picker>
119
+                  </el-form-item>
120
+                  <el-form-item label="累计时间" label-width="110px">
121
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
122
+                  </el-form-item>
123
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
124
+                      <div>
125
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
126
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
127
+                      </div>
128
+                  </el-form-item>
129
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
130
+                      <el-select v-model="form.modifications" placeholder="请选择">
131
+                          <el-option
132
+                          v-for="(item,index) in options"
133
+                          :key="index"
134
+                          :label="item.name"
135
+                          :value="item.id">
136
+                          </el-option>
137
+                      </el-select>
138
+                  </el-form-item>
139
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
140
+                      <el-select v-model="form.creator" placeholder="请选择">
141
+                          <el-option
142
+                          v-for="(item,index) in docList"
143
+                          :key="index"
144
+                          :label="item.user_name"
145
+                          :value="item.admin_user_id">
146
+                          </el-option>
147
+                      </el-select>
148
+                  </el-form-item>
149
+                  <div class="form_title"><span >治疗室</span></div>
150
+                  <el-form-item label="消毒液" label-width="110px">
151
+                      <el-input v-model="form.disinfection_fluid"></el-input>
152
+                  </el-form-item>
153
+                  <el-form-item label="消毒方式" label-width="110px">
154
+                      <el-input v-model="form.disinfection_methods"></el-input>
155
+                  </el-form-item>
156
+                  <el-form-item label="消毒时间" label-width="110px">
157
+                      <el-input v-model="form.disinfection_methods " ></el-input>
158
+                  </el-form-item>
159
+                  <el-form-item label="开始时间" required label-width="110px">
160
+                    <el-time-picker
161
+                        v-model="form.start_time"
162
+                        :picker-options="{
163
+                        selectableRange: '18:30:00 - 20:30:00'
164
+                        }"
165
+                        placeholder="任意时间点">
166
+                    </el-time-picker>
167
+                  </el-form-item>
168
+                  <el-form-item label="结束时间" required label-width="110px">
169
+                    <el-time-picker
170
+                        v-model="form.end_time"
171
+                        :picker-options="{
172
+                        selectableRange: '18:30:00 - 20:30:00'
173
+                        }"
174
+                        placeholder="任意时间点">
175
+                    </el-time-picker>
176
+                  </el-form-item>
177
+                  <el-form-item label="累计时间" label-width="110px">
178
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
179
+                  </el-form-item>
180
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
181
+                      <div>
182
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
183
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
184
+                      </div>
185
+                  </el-form-item>
186
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
187
+                      <el-select v-model="form.modifications" placeholder="请选择">
188
+                          <el-option
189
+                          v-for="(item,index) in options"
190
+                          :key="index"
191
+                          :label="item.name"
192
+                          :value="item.id">
193
+                          </el-option>
194
+                      </el-select>
195
+                  </el-form-item>
196
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
197
+                      <el-select v-model="form.creator" placeholder="请选择">
198
+                          <el-option
199
+                          v-for="(item,index) in docList"
200
+                          :key="index"
201
+                          :label="item.user_name"
202
+                          :value="item.admin_user_id">
203
+                          </el-option>
204
+                      </el-select>
205
+                  </el-form-item>
206
+                  <div class="form_title"><span >水处理、库房</span></div>
207
+                  <el-form-item label="消毒液" label-width="110px">
208
+                      <el-input v-model="form.disinfection_fluid"></el-input>
209
+                  </el-form-item>
210
+                  <el-form-item label="消毒方式" label-width="110px">
211
+                      <el-input v-model="form.disinfection_methods"></el-input>
212
+                  </el-form-item>
213
+                  <el-form-item label="消毒时间" label-width="110px">
214
+                      <el-input v-model="form.disinfection_methods " ></el-input>
215
+                  </el-form-item>
216
+                  <el-form-item label="开始时间" required label-width="110px">
217
+                    <el-time-picker
218
+                        v-model="form.start_time"
219
+                        :picker-options="{
220
+                        selectableRange: '18:30:00 - 20:30:00'
221
+                        }"
222
+                        placeholder="任意时间点">
223
+                    </el-time-picker>
224
+                  </el-form-item>
225
+                  <el-form-item label="结束时间" required label-width="110px">
226
+                    <el-time-picker
227
+                        v-model="form.end_time"
228
+                        :picker-options="{
229
+                        selectableRange: '18:30:00 - 20:30:00'
230
+                        }"
231
+                        placeholder="任意时间点">
232
+                    </el-time-picker>
233
+                  </el-form-item>
234
+                  <el-form-item label="累计时间" label-width="110px">
235
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
236
+                  </el-form-item>
237
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
238
+                      <div>
239
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
240
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
241
+                      </div>
242
+                  </el-form-item>
243
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
244
+                      <el-select v-model="form.modifications" placeholder="请选择">
245
+                          <el-option
246
+                          v-for="(item,index) in options"
247
+                          :key="index"
248
+                          :label="item.name"
249
+                          :value="item.id">
250
+                          </el-option>
251
+                      </el-select>
252
+                  </el-form-item>
253
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
254
+                      <el-select v-model="form.creator" placeholder="请选择">
255
+                          <el-option
256
+                          v-for="(item,index) in docList"
257
+                          :key="index"
258
+                          :label="item.user_name"
259
+                          :value="item.admin_user_id">
260
+                          </el-option>
261
+                      </el-select>
262
+                  </el-form-item>
263
+                  <div class="form_title"><span >通风</span></div>
264
+                  <el-form-item label="开始时间" required label-width="110px">
265
+                    <el-time-picker
266
+                        v-model="form.start_time"
267
+                        :picker-options="{
268
+                        selectableRange: '18:30:00 - 20:30:00'
269
+                        }"
270
+                        placeholder="任意时间点">
271
+                    </el-time-picker>
272
+                  </el-form-item>
273
+                  <el-form-item label="结束时间" required label-width="110px">
274
+                    <el-time-picker
275
+                        v-model="form.end_time"
276
+                        :picker-options="{
277
+                        selectableRange: '18:30:00 - 20:30:00'
278
+                        }"
279
+                        placeholder="任意时间点">
280
+                    </el-time-picker>
281
+                  </el-form-item>
282
+                  <el-form-item label="累计时间" label-width="110px">
283
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
284
+                  </el-form-item>
285
+                  <el-form-item label="检测合格" label-width="110px"  prop="check_out">
286
+                      <div>
287
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
288
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
289
+                      </div>
290
+                  </el-form-item>
291
+                  <el-form-item label="修改标志" label-width="110px"  prop="modifications">
292
+                      <el-select v-model="form.modifications" placeholder="请选择">
293
+                          <el-option
294
+                          v-for="(item,index) in options"
295
+                          :key="index"
296
+                          :label="item.name"
297
+                          :value="item.id">
298
+                          </el-option>
299
+                      </el-select>
300
+                  </el-form-item>
301
+                  <el-form-item label="责任人" label-width="110px"  prop="creator">
302
+                      <el-select v-model="form.creator" placeholder="请选择">
303
+                          <el-option
304
+                          v-for="(item,index) in docList"
305
+                          :key="index"
306
+                          :label="item.user_name"
307
+                          :value="item.admin_user_id">
308
+                          </el-option>
309
+                      </el-select>
310
+                  </el-form-item>
311
+
312
+              </el-form>
313
+              <div slot="footer" class="dialog-footer">
314
+                  <el-button @click="dialogFormVisible = false">取 消</el-button>
315
+                  <el-button type="primary" @click="saveAirDisinfect('form')">保 存</el-button>
316
+              </div>
317
+          </el-dialog>
318
+
319
+          <!-- 编辑 -->
320
+          <el-dialog
321
+          class="centerDialog"
322
+          width="1000px"
323
+          title="编辑空气消毒表"
324
+          :visible.sync="editDialogFormVisible">
325
+              <el-form :model="form" ref="form" class="airForm" :rules="airRules">
326
+                  <div style="width: 100%;">
327
+                    <el-form-item label="创建日期" label-width="110px" required prop="created_time">
328
+                        <el-date-picker
329
+                        value-format="yyyy-MM-dd"
330
+                        v-model="form.created_time"
331
+                        type="date"
332
+                        placeholder="选择日期时间">
333
+                        </el-date-picker>
334
+                    </el-form-item>
335
+                  </div>
336
+                  <div class="form_title"><span >透析室</span></div>
337
+                  <el-form-item label="消毒液" label-width="110px">
338
+                      <el-input v-model="form.disinfection_fluid"></el-input>
339
+                  </el-form-item>
340
+                  <el-form-item label="消毒方式" label-width="110px">
341
+                      <el-input v-model="form.disinfection_methods"></el-input>
342
+                  </el-form-item>
343
+                  <el-form-item label="消毒时间" label-width="110px">
344
+                      <el-input v-model="form.disinfection_methods " ></el-input>
345
+                  </el-form-item>
346
+                  <el-form-item label="开始时间" required label-width="110px">
347
+                    <el-time-picker
348
+                        v-model="form.start_time"
349
+                        :picker-options="{
350
+                        selectableRange: '18:30:00 - 20:30:00'
351
+                        }"
352
+                        placeholder="任意时间点">
353
+                    </el-time-picker>
354
+                  </el-form-item>
355
+                  <el-form-item label="结束时间" required label-width="110px">
356
+                    <el-time-picker
357
+                        v-model="form.end_time"
358
+                        :picker-options="{
359
+                        selectableRange: '18:30:00 - 20:30:00'
360
+                        }"
361
+                        placeholder="任意时间点">
362
+                    </el-time-picker>
363
+                  </el-form-item>
364
+                  <el-form-item label="累计时间" label-width="110px">
365
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
366
+                  </el-form-item>
367
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
368
+                      <div>
369
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
370
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
371
+                      </div>
372
+                  </el-form-item>
373
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
374
+                      <el-select v-model="form.modifications" placeholder="请选择">
375
+                          <el-option
376
+                          v-for="(item,index) in options"
377
+                          :key="index"
378
+                          :label="item.name"
379
+                          :value="item.id">
380
+                          </el-option>
381
+                      </el-select>
382
+                  </el-form-item>
383
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
384
+                      <el-select v-model="form.creator" placeholder="请选择">
385
+                          <el-option
386
+                          v-for="(item,index) in docList"
387
+                          :key="index"
388
+                          :label="item.user_name"
389
+                          :value="item.admin_user_id">
390
+                          </el-option>
391
+                      </el-select>
392
+                  </el-form-item>
393
+                  <div class="form_title"><span >治疗室</span></div>
394
+                  <el-form-item label="消毒液" label-width="110px">
395
+                      <el-input v-model="form.disinfection_fluid"></el-input>
396
+                  </el-form-item>
397
+                  <el-form-item label="消毒方式" label-width="110px">
398
+                      <el-input v-model="form.disinfection_methods"></el-input>
399
+                  </el-form-item>
400
+                  <el-form-item label="消毒时间" label-width="110px">
401
+                      <el-input v-model="form.disinfection_methods " ></el-input>
402
+                  </el-form-item>
403
+                  <el-form-item label="开始时间" required label-width="110px">
404
+                    <el-time-picker
405
+                        v-model="form.start_time"
406
+                        :picker-options="{
407
+                        selectableRange: '18:30:00 - 20:30:00'
408
+                        }"
409
+                        placeholder="任意时间点">
410
+                    </el-time-picker>
411
+                  </el-form-item>
412
+                  <el-form-item label="结束时间" required label-width="110px">
413
+                    <el-time-picker
414
+                        v-model="form.end_time"
415
+                        :picker-options="{
416
+                        selectableRange: '18:30:00 - 20:30:00'
417
+                        }"
418
+                        placeholder="任意时间点">
419
+                    </el-time-picker>
420
+                  </el-form-item>
421
+                  <el-form-item label="累计时间" label-width="110px">
422
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
423
+                  </el-form-item>
424
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
425
+                      <div>
426
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
427
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
428
+                      </div>
429
+                  </el-form-item>
430
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
431
+                      <el-select v-model="form.modifications" placeholder="请选择">
432
+                          <el-option
433
+                          v-for="(item,index) in options"
434
+                          :key="index"
435
+                          :label="item.name"
436
+                          :value="item.id">
437
+                          </el-option>
438
+                      </el-select>
439
+                  </el-form-item>
440
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
441
+                      <el-select v-model="form.creator" placeholder="请选择">
442
+                          <el-option
443
+                          v-for="(item,index) in docList"
444
+                          :key="index"
445
+                          :label="item.user_name"
446
+                          :value="item.admin_user_id">
447
+                          </el-option>
448
+                      </el-select>
449
+                  </el-form-item>
450
+                  <div class="form_title"><span >水处理、库房</span></div>
451
+                  <el-form-item label="消毒液" label-width="110px">
452
+                      <el-input v-model="form.disinfection_fluid"></el-input>
453
+                  </el-form-item>
454
+                  <el-form-item label="消毒方式" label-width="110px">
455
+                      <el-input v-model="form.disinfection_methods"></el-input>
456
+                  </el-form-item>
457
+                  <el-form-item label="消毒时间" label-width="110px">
458
+                      <el-input v-model="form.disinfection_methods " ></el-input>
459
+                  </el-form-item>
460
+                  <el-form-item label="开始时间" required label-width="110px">
461
+                    <el-time-picker
462
+                        v-model="form.start_time"
463
+                        :picker-options="{
464
+                        selectableRange: '18:30:00 - 20:30:00'
465
+                        }"
466
+                        placeholder="任意时间点">
467
+                    </el-time-picker>
468
+                  </el-form-item>
469
+                  <el-form-item label="结束时间" required label-width="110px">
470
+                    <el-time-picker
471
+                        v-model="form.end_time"
472
+                        :picker-options="{
473
+                        selectableRange: '18:30:00 - 20:30:00'
474
+                        }"
475
+                        placeholder="任意时间点">
476
+                    </el-time-picker>
477
+                  </el-form-item>
478
+                  <el-form-item label="累计时间" label-width="110px">
479
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
480
+                  </el-form-item>
481
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
482
+                      <div>
483
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
484
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
485
+                      </div>
486
+                  </el-form-item>
487
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
488
+                      <el-select v-model="form.modifications" placeholder="请选择">
489
+                          <el-option
490
+                          v-for="(item,index) in options"
491
+                          :key="index"
492
+                          :label="item.name"
493
+                          :value="item.id">
494
+                          </el-option>
495
+                      </el-select>
496
+                  </el-form-item>
497
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
498
+                      <el-select v-model="form.creator" placeholder="请选择">
499
+                          <el-option
500
+                          v-for="(item,index) in docList"
501
+                          :key="index"
502
+                          :label="item.user_name"
503
+                          :value="item.admin_user_id">
504
+                          </el-option>
505
+                      </el-select>
506
+                  </el-form-item>
507
+                  <div class="form_title"><span >通风</span></div>
508
+                  <el-form-item label="开始时间" required label-width="110px">
509
+                    <el-time-picker
510
+                        v-model="form.start_time"
511
+                        :picker-options="{
512
+                        selectableRange: '18:30:00 - 20:30:00'
513
+                        }"
514
+                        placeholder="任意时间点">
515
+                    </el-time-picker>
516
+                  </el-form-item>
517
+                  <el-form-item label="结束时间" required label-width="110px">
518
+                    <el-time-picker
519
+                        v-model="form.end_time"
520
+                        :picker-options="{
521
+                        selectableRange: '18:30:00 - 20:30:00'
522
+                        }"
523
+                        placeholder="任意时间点">
524
+                    </el-time-picker>
525
+                  </el-form-item>
526
+                  <el-form-item label="累计时间" label-width="110px">
527
+                      <el-input v-model= "form.disinfection_methods"  ></el-input>
528
+                  </el-form-item>
529
+                  <el-form-item label="检测合格" label-width="110px" required prop="check_out">
530
+                      <div>
531
+                          <el-radio v-model="form.check_out" label="1">是</el-radio>
532
+                          <el-radio v-model="form.check_out" label="2">否</el-radio>
533
+                      </div>
534
+                  </el-form-item>
535
+                  <el-form-item label="修改标志" label-width="110px" required prop="modifications">
536
+                      <el-select v-model="form.modifications" placeholder="请选择">
537
+                          <el-option
538
+                          v-for="(item,index) in options"
539
+                          :key="index"
540
+                          :label="item.name"
541
+                          :value="item.id">
542
+                          </el-option>
543
+                      </el-select>
544
+                  </el-form-item>
545
+                  <el-form-item label="责任人" label-width="110px" required prop="creator">
546
+                      <el-select v-model="form.creator" placeholder="请选择">
547
+                          <el-option
548
+                          v-for="(item,index) in docList"
549
+                          :key="index"
550
+                          :label="item.user_name"
551
+                          :value="item.admin_user_id">
552
+                          </el-option>
553
+                      </el-select>
554
+                  </el-form-item>
555
+
556
+              </el-form>
557
+              <div slot="footer" class="dialog-footer">
558
+                  <el-button @click="editDialogFormVisible = false">取 消</el-button>
559
+                  <el-button type="primary" @click="saveAirDisinfect('form')">保 存</el-button>
560
+              </div>
561
+          </el-dialog>
562
+      </div>
563
+    </div>
564
+  </template>
565
+
566
+  <script>
567
+    import BreadCrumb from '@/xt_pages/components/bread-crumb'
568
+    import { getAllDoctorList,
569
+        saveAirDisinfect,
570
+        getAirList,
571
+        getAirDisinfectDetail,
572
+        updateAirDisinfect,
573
+        deleteAirDisinfect
574
+    } from "@/api/device"
575
+    import { uParseTime } from '@/utils/tools'
576
+    const moment = require('moment')
577
+    export default {
578
+      name: 'airDisinfect',
579
+      components: {
580
+        BreadCrumb
581
+      },
582
+      data() {
583
+        return {
584
+          crumbs: [
585
+            { path: false, name: '院感管理' },
586
+            { path: false, name: '透析室空气消毒记录表' }
587
+          ],
588
+
589
+          dialogFormVisible:false,
590
+          editDialogFormVisible:false,
591
+          startvalue:'',
592
+          endvalue:'',
593
+          form: {
594
+            id:0,
595
+            created_time:moment(new Date()).add('year',0).format("YYYY-MM-DD"),
596
+            class:"",
597
+            disinfection_methods:"",
598
+            disinfection_fluid:"",
599
+            sort:"1",
600
+            creator:"",
601
+            detection_time:"",
602
+            detection_result:"",
603
+            upload_time:"",
604
+            check_out:"1",
605
+            modifications:"",
606
+            start_time:new Date(2016, 9, 10, 18, 40),
607
+            end_time:new Date(2016, 9, 10, 18, 40),
608
+          },
609
+        //   value1:'',
610
+          docList:[],
611
+          options:[
612
+            {id:1,name:"正常"},
613
+            {id:2,name:"撤销"}
614
+          ],
615
+         airRules: {
616
+          created_time:[{required:true,message:"请选择创建时间",trigger:"blur"}],
617
+          start_time:[{required:true,message:"请选择开始时间",trigger:"blur"}],
618
+        //   detection_time:[{required:true,message:"请选择检测时间",trigger:"blur"}],
619
+        //   check_out:[{required:true,message:"请选择检验合格",trigger:"blur"}],
620
+        //   modifications:[{required:true,message:"请选择修改标志",trigger:"blur"}],
621
+        //   creator:[{required:true,message:"请选择创建人",trigger:"blur"}],
622
+          end_time:[{required:true,message:"请选择结束时间",trigger:"blur"}]
623
+         },
624
+         limit:20,
625
+         page:1,
626
+         total:0,
627
+
628
+         tableData: [{
629
+                 date: '2016-05-03',
630
+                 name: '王小虎',
631
+                 province: '上海',
632
+                 city: '普陀区',
633
+                 address: '上海市普陀区金沙江路',
634
+                 zip: 200333,
635
+                 dwaiod:"154",
636
+                 fenopda:"89",
637
+                 year:"12178"
638
+             }]
639
+        }
640
+      },
641
+      created(){
642
+        // this.getlist()
643
+        // this.getAirList()
644
+      },
645
+      methods: {
646
+    //       getlist(){
647
+    //         getAllDoctorList().then(response=>{
648
+    //           if(response.data.state == 1){
649
+    //              var list = response.data.data.list
650
+    //              console.log("list222222",list)
651
+    //              this.docList = list
652
+    //           }
653
+    //         })
654
+    //       },
655
+    //       saveAirDisinfect(formName){
656
+    //          this.$refs[formName].validate(valid=>{
657
+    //            if(valid){
658
+    //                var params = {
659
+    //                  start_time:this.form.start_time,
660
+    //                  class:parseInt(this.form.class),
661
+    //                  created_time:this.form.created_time,
662
+    //                  disinfection_methods:this.form.disinfection_methods,
663
+    //                  disinfection_fluid:this.form.disinfection_fluid,
664
+    //                  sort:this.form.sort,
665
+    //                  creator:this.form.creator,
666
+    //                  detection_time:this.form.detection_time,
667
+    //                  detection_result:this.form.detection_result,
668
+    //                  upload_time:this.form.upload_time,
669
+    //                  check_out:parseInt(this.form.check_out),
670
+    //                  modifications:parseInt(this.form.modifications),
671
+    //                }
672
+    //               //  console.log("params",params)
673
+
674
+    //              saveAirDisinfect(params).then(response=>{
675
+    //                 if(response.data.state == 1){
676
+    //                    var list = response.data.data.list
677
+    //                    console.log("list",list)
678
+    //                    this.$message.success("保存成功!")
679
+    //                    this.dialogFormVisible = false
680
+    //                    this.getAirList()
681
+    //                    this.form.class = ""
682
+    //                    this.form.start_time = ""
683
+    //                    this.form.created_ime = ""
684
+    //                    this.form.disinfection_fluid = ""
685
+    //                    this.form.disinfection_methods = ""
686
+    //                    this.form.sort = ""
687
+    //                    this.form.creator = ""
688
+    //                    this.form.detection_time = ""
689
+    //                    this.form.detection_result = ""
690
+    //                    this.form.upload_time = ""
691
+    //                 }
692
+    //              })
693
+    //            }
694
+    //          })
695
+    //       },
696
+
697
+    //       getAirList(){
698
+    //           var params = {
699
+    //              limit:this.limit,
700
+    //              page:this.page,
701
+    //           }
702
+    //         getAirList(params).then(response=>{
703
+    //            if(response.data.state == 1){
704
+    //              var list = response.data.data.list
705
+    //              var total = response.data.data.total
706
+    //              this.tableData = list
707
+    //              this.total = total
708
+    //              console.log("list222",list)
709
+    //              console.log("total",total)
710
+    //            }
711
+    //         })
712
+    //       },
713
+    //     getTime(val) {
714
+    //        if(val == ""){
715
+    //         return ""
716
+    //        }else {
717
+    //         return uParseTime(val, '{y}-{m}-{d}')
718
+    //        }
719
+    //     },
720
+    //     getName(id){
721
+    //       var name = ""
722
+    //       for(let i=0;i<this.docList.length;i++){
723
+    //          if(id == this.docList[i].admin_user_id){
724
+    //              name = this.docList[i].user_name
725
+    //          }
726
+    //       }
727
+    //       return name
728
+    //     },
729
+    //    handleCurrentChange(val) {
730
+    //      this.page = val
731
+    //      this.getAirList()
732
+    //    },
733
+    //    handleSizeChange(val){
734
+    //       this.limit =val
735
+    //       this.getAirList()
736
+    //    },
737
+
738
+       handleEdit(id){
739
+
740
+         this.editDialogFormVisible = true
741
+        //   getAirDisinfectDetail(id).then(response=>{
742
+        //       if(response.data.state ==1){
743
+        //          var detail =  response.data.data.detail
744
+        //          console.log("detail",detail.created_time)
745
+        //          this.form.id = detail.id
746
+        //         //  this.form.start_time = this.getTime(detail.start_time)
747
+        //          this.form.class = detail.class.toString()
748
+        //          this.form.created_time = this.getTime(detail.created_time)
749
+        //          this.form.disinfection_methods = detail.disinfection_methods
750
+        //          this.form.disinfection_fluid = detail.disinfection_fluid
751
+        //          this.form.sort = detail.sort
752
+        //          this.form.creator = detail.creator
753
+        //          this.form.detection_time = this.getTime(detail.detection_time)
754
+        //          this.form.detection_result = detail.detection_result
755
+        //          this.form.upload_time = this.getTime(detail.upload_time)
756
+        //          this.form.check_out = detail.check_out.toString()
757
+        //          this.form.modifications = detail.modifications
758
+
759
+        //       }
760
+        //   })
761
+        },
762
+
763
+    //     updateAirDisinfect(formName){
764
+
765
+    //       this.$refs[formName].validate(valid=>{
766
+    //         if(valid){
767
+    //               var params = {
768
+    //                  id:this.form.id,
769
+    //                  start_time:this.form.start_time,
770
+    //                  class:parseInt(this.form.class),
771
+    //                  created_time:this.form.created_time,
772
+    //                  disinfection_methods:this.form.disinfection_methods,
773
+    //                  disinfection_fluid:this.form.disinfection_fluid,
774
+    //                  sort:this.form.sort,
775
+    //                  creator:this.form.creator,
776
+    //                  detection_time:this.form.detection_time,
777
+    //                  detection_result:this.form.detection_result,
778
+    //                  upload_time:this.form.upload_time,
779
+    //                  check_out:parseInt(this.form.check_out),
780
+    //                  modifications:parseInt(this.form.modifications),
781
+    //                }
782
+    //              console.log("params",params)
783
+    //             updateAirDisinfect(params).then(response=>{
784
+    //                 if(response.data.state ==1){
785
+    //                   var detection = response.data.data.detection
786
+    //                   this.editDialogFormVisible = false
787
+    //                   this.$message.success("修改成功!")
788
+    //                   this.getAirList()
789
+    //                 }
790
+    //             })
791
+    //           }
792
+    //       })
793
+    //     },
794
+
795
+    //      handleDelete(id,index) {
796
+    //       this.$confirm('确认删除这条记录?', '删除记录', {
797
+    //         confirmButtonText: '确定',
798
+    //         cancelButtonText: '取消',
799
+    //         type: 'warning'
800
+    //       })
801
+    //         .then(() => {
802
+    //           deleteAirDisinfect(id).then(response => {
803
+    //             if (response.data.state == 0) {
804
+    //               this.$message.error(response.data.msg)
805
+    //               return false
806
+    //             } else {
807
+    //               this.tableData.splice(index, 1)
808
+    //               this.$message.success('厂家已经删除')
809
+    //             }
810
+    //           })
811
+    //         })
812
+    //         .catch(() => {
813
+    //         })
814
+    //     },
815
+      }
816
+    }
817
+  </script>
818
+
819
+  <style lang="scss" scoped>
820
+  .airForm{
821
+      display: flex;
822
+      justify-content: space-between;
823
+      flex-wrap: wrap;
824
+      .el-form-item{
825
+          width:33%;
826
+      }
827
+      .el-date-editor.el-input, .el-date-editor.el-input__inner{
828
+          width: 200px;
829
+      }
830
+      .el-input{
831
+          width: 200px;
832
+      }
833
+      .el-select{
834
+          width: 200px;
835
+      }
836
+      .form_title{
837
+        width: 100%;
838
+        margin-bottom: 10px;
839
+        span{
840
+            font-size: 20px;
841
+            font-weight: bold;
842
+        }
843
+      }
844
+  }
845
+  </style>
846
+
847
+  <style lang="scss">
848
+   #main-contain{
849
+    .app-container{
850
+        // display: flex;
851
+        // justify-content: space-between;
852
+        // flex-wrap: wrap;
853
+        .tab_air{
854
+        // 斜杠表格
855
+        .el-table{
856
+            th{
857
+                padding: 0px !important;
858
+            }
859
+            tr:first-of-type th:first-of-type div.cell {
860
+                text-align: right;/*上边文字靠右*/
861
+            }
862
+            tr:last-of-type th:first-of-type div.cell {
863
+                text-align: left;/*下边文字靠左*/
864
+            }
865
+            tr:first-of-type th:first-of-type:before {
866
+                content: "";
867
+                position: absolute;
868
+                width: 1px;
869
+                height: 100px;/*斜线的长度*/
870
+                top: 0;
871
+                left: 75px;
872
+                background-color: rgb(172, 171, 171);
873
+                opacity: 1.2;
874
+                display: block;
875
+                transform: rotate(-47deg);/*调整斜线的角度*/
876
+                -webkit-transform-origin: top;
877
+                transform-origin: top;
878
+            }
879
+            tr:nth-of-type(2) th:nth-of-type(1):before{
880
+                content: "";
881
+                position: absolute;
882
+                width: 1px;
883
+                height: 80px;/*斜线的长度*/
884
+                top: 0;
885
+                left: 100px;
886
+                background-color: rgb(172, 171, 171);
887
+                opacity: 1.2;
888
+                display: block;
889
+                transform: rotate(-47deg);/*调整斜线的角度*/
890
+                -webkit-transform-origin: top;
891
+                transform-origin: top;
892
+            }
893
+            tr:last-of-type th:first-of-type:before {
894
+                content: "";
895
+                position: absolute;
896
+                width: 1px;
897
+                height: 80px;/*斜线的长度*/
898
+                top: 0;
899
+                left: 125px;
900
+                background-color: rgb(172, 171, 171);
901
+                opacity: 1.2;
902
+                display: block;
903
+                transform: rotate(-48deg);/*调整斜线的角度*/
904
+                -webkit-transform-origin: top;
905
+                transform-origin: top;
906
+            }
907
+            tr:nth-of-type(2) th:nth-of-type(1):after{
908
+                content: "";
909
+                position: absolute;
910
+                width: 1px;
911
+                height: 80px;/*斜线的长度*/
912
+                top: 8px;
913
+                left: 0px;
914
+                background-color: rgb(172, 171, 171);
915
+                opacity: 1.2;
916
+                display: block;
917
+                transform: rotate(-76deg);/*调整斜线的角度*/
918
+                -webkit-transform-origin: top;
919
+                transform-origin: top;
920
+            }
921
+            tr:last-of-type th:first-of-type:after {
922
+                content: "";
923
+                position: absolute;
924
+                width: 1px;
925
+                height: 92px;/*斜线的长度*/
926
+                top: 0;
927
+                left: 59px;
928
+                background-color: rgb(172, 171, 171);
929
+                opacity: 1.2;
930
+                display: block;
931
+                transform: rotate(-76deg);/*调整斜线的角度*/
932
+                -webkit-transform-origin: top;
933
+                transform-origin: top;
934
+            }
935
+        }
936
+        .el-table--border th, .el-table__fixed-right-patch {
937
+            border-bottom: none !important;
938
+        }
939
+        .el-table td .cell, .el-table th .cell {
940
+            padding: 0 5px !important;
941
+        }
942
+        // .el-table--medium td, .el-table--medium th {
943
+        //     padding: 0px 0px !important;
944
+        // }
945
+     }
946
+    }
947
+
948
+
949
+   }
950
+  ::-webkit-scrollbar{
951
+    height: 15px;
952
+  }
953
+
954
+  </style>

+ 19 - 0
src/xt_pages/outpatientCharges/components/chargeDialog.vue Ver arquivo

@@ -58,6 +58,19 @@
58 58
       </el-form-item>
59 59
 
60 60
 
61
+      <el-form-item label="个账使用标识:" prop="acct_used_flag" v-if="this.$store.getters.xt_user.org_id == 10387">
62
+        <el-select style="margin-right:5px;width:100px;"
63
+                   v-model="form.acct_used_flag"  placeholder="">
64
+          <el-option
65
+            v-for="(item,index) in acct_used_flags"
66
+            :key="index"
67
+            :label="item.name"
68
+            :value="item.id">
69
+          </el-option>
70
+        </el-select>
71
+      </el-form-item>
72
+
73
+
61 74
       <el-form-item label="" style="width:100%;">
62 75
 
63 76
         <el-radio-group v-model="form.pay_way">
@@ -137,6 +150,11 @@
137 150
         id:0,
138 151
         decimal:0,//当前押金余额
139 152
         record_date:'',
153
+        acct_used_flags: [
154
+          { id: 0, name: '不使用' },
155
+          { id: 1, name: '使用本人个账' },
156
+          { id: 2, name: '使用共济个账' },
157
+        ],
140 158
         form: {
141 159
           medical_insurance_price:0,
142 160
           private_price:'',//自费12
@@ -158,6 +176,7 @@
158 176
           overlmt_self_pay:'',
159 177
           acct_mulaid_pay:'',
160 178
           fulamt_ownpay_amt:'',
179
+          acct_used_flag:'',
161 180
         },
162 181
         payWays: [
163 182
           {value: 1, label: '现金'},

+ 28 - 2
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue Ver arquivo

@@ -5,8 +5,8 @@
5 5
        element-loading-background="rgba(0, 0, 0, 0.8)">
6 6
     <div class="position">
7 7
       <bread-crumb :crumbs='crumbs'></bread-crumb>
8
-    </div>
9 8
 
9
+    </div>
10 10
 
11 11
     <div class="app-container" style="display:flex;flex: 1;padding: 10px 20px 0px 20px;">
12 12
       <div class="mainLeft">
@@ -758,6 +758,18 @@
758 758
                             value-format="yyyy-MM-dd HH:mm:ss">
759 759
                         </el-date-picker>
760 760
                       </el-form-item>
761
+                      <el-form-item label="个账使用标识:" prop="acct_used_flag">
762
+                        <el-select style="margin-right:5px;width:100px;"
763
+                                   v-model="form.acct_used_flag"  placeholder="">
764
+                          <el-option
765
+                            v-for="(item,index) in acct_used_flags"
766
+                            :key="index"
767
+                            :label="item.name"
768
+                            :value="item.id">
769
+                          </el-option>
770
+                        </el-select>
771
+                      </el-form-item>
772
+
761 773
                     </el-form>
762 774
                   </div>
763 775
                   <p class="centerRightTitle">人员信息</p>
@@ -955,7 +967,8 @@ export default {
955 967
         sick_type: '',
956 968
         diagnosis: [],
957 969
         medical_care: '',
958
-        diagnosis_time: ''
970
+        diagnosis_time: '',
971
+        acct_used_flag:0,
959 972
       },
960 973
       current_med_type: '',
961 974
       rules: {
@@ -1101,6 +1114,12 @@ export default {
1101 1114
 
1102 1115
       sick: [],
1103 1116
       diagnoses: [],
1117
+      acct_used_flags: [
1118
+        { id: 0, name: '不使用' },
1119
+        { id: 1, name: '使用本人个账' },
1120
+        { id: 2, name: '使用共济个账' },
1121
+      ],
1122
+
1104 1123
       manufacturers: [],
1105 1124
 
1106 1125
       department: [],
@@ -5390,5 +5409,12 @@ li {
5390 5409
 ::-webkit-scrollbar {
5391 5410
   height: 20px;
5392 5411
 }
5412
+
5413
+.diagonal-header {
5414
+  background-image: linear-gradient(-45deg, #fff 50%, #eef1f6 50%), linear-gradient(45deg, #fff 50%, #eef1f6 50%);
5415
+  background-size: 100% 1px;
5416
+  background-position: 0% 0%, 100% 0%;
5417
+  background-repeat: no-repeat;
5418
+}
5393 5419
 </style>
5394 5420
 

Diferenças do arquivo suprimidas por serem muito extensas
+ 1994 - 1994
src/xt_pages/user/components/PatientForm.vue


+ 182 - 180
src/xt_pages/workforce/components/scheduleUploadExcel/index.vue Ver arquivo

@@ -1,180 +1,182 @@
1
-<template>
2
-  <div>
3
-    <el-dialog
4
-      :visible.sync="msgTipVisible"
5
-      width="40%"
6
-    >
7
-      <span>若执行排班导入,系统将会清除当前已有临时排班数据,是否继续导入?</span>
8
-      <span slot="footer" class="dialog-footer">
9
-    <el-button @click="msgTipVisible = false">取 消</el-button>
10
-    <el-button type="primary" @click="handleUpload()">确 定</el-button>
11
-  </span>
12
-    </el-dialog>
13
-     <input id="excel-upload-input" ref="excel-upload-input" type="file"  accept=".xlsx,.xls,.xltx," @change="handleClick" >
14
-    <el-button :loading="loading" style="margin-left:16px;" size="mini" type="primary" @click="msgTipVisible = true">导入排班
15
-    </el-button>
16
-  </div>
17
-</template>
18
-
19
-<script>
20
-  import XLSX from 'xlsx'
21
-
22
-  export default {
23
-    name: "scheduleUploadExcel",
24
-    props: {
25
-      beforeUpload: Function,
26
-      onSuccess: Function
27
-    },
28
-    data() {
29
-      return {
30
-        loading: false,
31
-        msgTipVisible:false,
32
-        excelData: {
33
-          header: null,
34
-          results: null
35
-        }
36
-      }
37
-    },
38
-    methods: {
39
-      generateDate({ header, results }) {
40
-        console.log("header",header)
41
-        console.log("results",results)
42
-        this.excelData.header = header
43
-        this.excelData.results = results
44
-
45
-        this.onSuccess && this.onSuccess(this.excelData)
46
-      },
47
-      handleDrop(e) {
48
-        e.stopPropagation()
49
-        e.preventDefault()
50
-        if (this.loading) return
51
-        const files = e.dataTransfer.files
52
-        if (files.length !== 1) {
53
-          this.$message.error('Only support uploading one file!')
54
-          return
55
-        }
56
-        const rawFile = files[0] // only use files[0]
57
-
58
-        if (!this.isExcel(rawFile)) {
59
-          this.$message.error('Only supports upload .xlsx, .xls, .csv suffix files')
60
-          return false
61
-        }
62
-        this.upload(rawFile)
63
-        e.stopPropagation()
64
-        e.preventDefault()
65
-      },
66
-      handleDragover(e) {
67
-        e.stopPropagation()
68
-        e.preventDefault()
69
-        e.dataTransfer.dropEffect = 'copy'
70
-      },
71
-      handleUpload() {
72
-        this.msgTipVisible = false
73
-
74
-        document.getElementById('excel-upload-input').click()
75
-      },
76
-      handleClick(e) {
77
-
78
-        const files = e.target.files
79
-        const rawFile = files[0] // only use files[0]
80
-        console.log("rawfiel",rawFile)
81
-        if (!rawFile)
82
-        return
83
-        this.upload(rawFile)
84
-
85
-      },
86
-      upload(rawFile) {
87
-
88
-        this.$refs['excel-upload-input'].value = null // fix can't select the same excel
89
-        console.log("3333",this.beforeUpload)
90
-        if (!this.beforeUpload) {
91
-          this.readerData(rawFile)
92
-          return
93
-        }
94
-        const before = this.beforeUpload(rawFile)
95
-        console.log("before",before)
96
-        if (before) {
97
-          this.readerData(rawFile)
98
-        }
99
-      },
100
-      readerData(rawFile) {
101
-
102
-        this.loading = true
103
-        return new Promise((resolve, reject) => {
104
-          const reader = new FileReader()
105
-          reader.onload = e => {
106
-
107
-            const data = e.target.result
108
-            console.log("data22222",data)
109
-            const fixedData = this.fixdata(data)
110
-            const workbook = XLSX.read(btoa(fixedData), { type: 'base64' })
111
-            const firstSheetName = workbook.SheetNames[0]
112
-            const worksheet = workbook.Sheets[firstSheetName]
113
-
114
-            const header = this.get_header_row(worksheet)
115
-
116
-            const results = XLSX.utils.sheet_to_json(worksheet)
117
-            this.generateDate({ header, results })
118
-            this.loading = false
119
-            resolve()
120
-          }
121
-          reader.readAsArrayBuffer(rawFile)
122
-        })
123
-      },
124
-      fixdata(data) {
125
-        let o = ''
126
-        let l = 0
127
-        const w = 10240
128
-        for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
129
-        o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
130
-        return o
131
-      },
132
-      get_header_row(sheet) {
133
-
134
-        if(sheet['!ref'] == undefined){
135
-          this.loading = false
136
-          return
137
-        }
138
-
139
-        const headers = []
140
-        const range = XLSX.utils.decode_range(sheet['!ref'])
141
-        let C
142
-        const R = range.s.r /* start in the first row */
143
-        for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
144
-          var cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })] /* find the cell in the first row */
145
-          var hdr = 'UNKNOWN ' + C // <-- replace with your desired default
146
-          if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
147
-          headers.push(hdr)
148
-        }
149
-        return headers
150
-
151
-
152
-
153
-      },
154
-      isExcel(file) {
155
-
156
-        return /\.(xlsx|xls|csv)$/.test(file.name)
157
-      }
158
-    }
159
-  }
160
-</script>
161
-
162
-<style scoped>
163
-  #excel-upload-input {
164
-    display: none;
165
-    z-index: -9999;
166
-  }
167
-
168
-  #drop {
169
-    border: 2px dashed #bbb;
170
-    width: 600px;
171
-    height: 160px;
172
-    line-height: 160px;
173
-    margin: 0 auto;
174
-    font-size: 24px;
175
-    border-radius: 5px;
176
-    text-align: center;
177
-    color: #bbb;
178
-    position: relative;
179
-  }
180
-</style>
1
+<template>
2
+  <div>
3
+    <el-dialog
4
+      :visible.sync="msgTipVisible"
5
+      width="40%"
6
+      :modal-append-to-body='false'
7
+      :close-on-click-modal="false"
8
+    >
9
+      <span>若执行排班导入,系统将会清除当前已有临时排班数据,是否继续导入?</span>
10
+      <span slot="footer" class="dialog-footer">
11
+    <el-button @click="msgTipVisible = false">取 消</el-button>
12
+    <el-button type="primary" @click="handleUpload()">确 定</el-button>
13
+  </span>
14
+    </el-dialog>
15
+     <input id="excel-upload-input" ref="excel-upload-input" type="file"  accept=".xlsx,.xls,.xltx," @change="handleClick" >
16
+    <el-button :loading="loading" style="margin-left:16px;" size="mini" type="primary" @click="msgTipVisible = true">导入排班
17
+    </el-button>
18
+  </div>
19
+</template>
20
+
21
+<script>
22
+  import XLSX from 'xlsx'
23
+
24
+  export default {
25
+    name: "scheduleUploadExcel",
26
+    props: {
27
+      beforeUpload: Function,
28
+      onSuccess: Function
29
+    },
30
+    data() {
31
+      return {
32
+        loading: false,
33
+        msgTipVisible:false,
34
+        excelData: {
35
+          header: null,
36
+          results: null
37
+        }
38
+      }
39
+    },
40
+    methods: {
41
+      generateDate({ header, results }) {
42
+        console.log("header",header)
43
+        console.log("results",results)
44
+        this.excelData.header = header
45
+        this.excelData.results = results
46
+
47
+        this.onSuccess && this.onSuccess(this.excelData)
48
+      },
49
+      handleDrop(e) {
50
+        e.stopPropagation()
51
+        e.preventDefault()
52
+        if (this.loading) return
53
+        const files = e.dataTransfer.files
54
+        if (files.length !== 1) {
55
+          this.$message.error('Only support uploading one file!')
56
+          return
57
+        }
58
+        const rawFile = files[0] // only use files[0]
59
+
60
+        if (!this.isExcel(rawFile)) {
61
+          this.$message.error('Only supports upload .xlsx, .xls, .csv suffix files')
62
+          return false
63
+        }
64
+        this.upload(rawFile)
65
+        e.stopPropagation()
66
+        e.preventDefault()
67
+      },
68
+      handleDragover(e) {
69
+        e.stopPropagation()
70
+        e.preventDefault()
71
+        e.dataTransfer.dropEffect = 'copy'
72
+      },
73
+      handleUpload() {
74
+        this.msgTipVisible = false
75
+
76
+        document.getElementById('excel-upload-input').click()
77
+      },
78
+      handleClick(e) {
79
+
80
+        const files = e.target.files
81
+        const rawFile = files[0] // only use files[0]
82
+        console.log("rawfiel",rawFile)
83
+        if (!rawFile)
84
+        return
85
+        this.upload(rawFile)
86
+
87
+      },
88
+      upload(rawFile) {
89
+
90
+        this.$refs['excel-upload-input'].value = null // fix can't select the same excel
91
+        console.log("3333",this.beforeUpload)
92
+        if (!this.beforeUpload) {
93
+          this.readerData(rawFile)
94
+          return
95
+        }
96
+        const before = this.beforeUpload(rawFile)
97
+        console.log("before",before)
98
+        if (before) {
99
+          this.readerData(rawFile)
100
+        }
101
+      },
102
+      readerData(rawFile) {
103
+
104
+        this.loading = true
105
+        return new Promise((resolve, reject) => {
106
+          const reader = new FileReader()
107
+          reader.onload = e => {
108
+
109
+            const data = e.target.result
110
+            console.log("data22222",data)
111
+            const fixedData = this.fixdata(data)
112
+            const workbook = XLSX.read(btoa(fixedData), { type: 'base64' })
113
+            const firstSheetName = workbook.SheetNames[0]
114
+            const worksheet = workbook.Sheets[firstSheetName]
115
+
116
+            const header = this.get_header_row(worksheet)
117
+
118
+            const results = XLSX.utils.sheet_to_json(worksheet)
119
+            this.generateDate({ header, results })
120
+            this.loading = false
121
+            resolve()
122
+          }
123
+          reader.readAsArrayBuffer(rawFile)
124
+        })
125
+      },
126
+      fixdata(data) {
127
+        let o = ''
128
+        let l = 0
129
+        const w = 10240
130
+        for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
131
+        o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
132
+        return o
133
+      },
134
+      get_header_row(sheet) {
135
+
136
+        if(sheet['!ref'] == undefined){
137
+          this.loading = false
138
+          return
139
+        }
140
+
141
+        const headers = []
142
+        const range = XLSX.utils.decode_range(sheet['!ref'])
143
+        let C
144
+        const R = range.s.r /* start in the first row */
145
+        for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
146
+          var cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })] /* find the cell in the first row */
147
+          var hdr = 'UNKNOWN ' + C // <-- replace with your desired default
148
+          if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
149
+          headers.push(hdr)
150
+        }
151
+        return headers
152
+
153
+
154
+
155
+      },
156
+      isExcel(file) {
157
+
158
+        return /\.(xlsx|xls|csv)$/.test(file.name)
159
+      }
160
+    }
161
+  }
162
+</script>
163
+
164
+<style scoped>
165
+  #excel-upload-input {
166
+    display: none;
167
+    z-index: -9999;
168
+  }
169
+
170
+  #drop {
171
+    border: 2px dashed #bbb;
172
+    width: 600px;
173
+    height: 160px;
174
+    line-height: 160px;
175
+    margin: 0 auto;
176
+    font-size: 24px;
177
+    border-radius: 5px;
178
+    text-align: center;
179
+    color: #bbb;
180
+    position: relative;
181
+  }
182
+</style>

+ 6 - 3
src/xt_pages/workforce/components/template_table.vue Ver arquivo

@@ -2,7 +2,7 @@
2 2
   <div  >
3 3
     <div id="tem_table_data" v-show="schedulingTableVisible">
4 4
       <slot></slot>
5
-      <div class="table_contain">
5
+      <div class="table_contain temtable_contain">
6 6
         <div class="left_contain">
7 7
           <div
8 8
             class="cell clearfix"
@@ -108,7 +108,7 @@
108 108
             :data="opera_device_numbers"
109 109
             :span-method="spanMethod"
110 110
             show-summary
111
-            height="675"
111
+            height="750"
112 112
             style="width: 100%; cursor: pointer"
113 113
             :cell-class-name="cellClass"
114 114
             :row-class-name="rowClass"
@@ -4553,7 +4553,7 @@ export default {
4553 4553
 <style lang="scss">
4554 4554
 .table_contain {
4555 4555
   display: flex;
4556
-  margin-top: 30px;
4556
+  
4557 4557
 .left_contain {
4558 4558
   width: 14%;
4559 4559
   margin-right: 50px;
@@ -4605,6 +4605,9 @@ export default {
4605 4605
 //     padding: 5px 0 !important;
4606 4606
 // }
4607 4607
 }
4608
+.temtable_contain{
4609
+  margin-top: 30px !important;
4610
+}
4608 4611
 .infectious{
4609 4612
   color: red !important;
4610 4613
 }

+ 2 - 2
src/xt_pages/workforce/remind_print_setting.vue Ver arquivo

@@ -125,12 +125,12 @@
125 125
                 <!-- 透析器灌流器 -->
126 126
                
127 127
                  <div>
128
-                  <span v-if="printObj.dialyzers == 1 && printObj.perfusion_apparatus == 1">透析器/灌流器 <span v-if="org_id==10445">/滤过器</span>:</span>
128
+                  <span v-if="printObj.dialyzers == 1 && printObj.perfusion_apparatus == 1">透析器/灌流器 <span v-if="org_id==10445 || org_id == 0">/滤过器</span>:</span>
129 129
                   <span v-if="printObj.dialyzers == 1&& main_collection.dialysissolution.dialysis_dialyszers!=''">{{main_collection.dialysissolution.dialysis_dialyszers}}</span>
130 130
                   <span v-if="printObj.perfusion_apparatus == 1&& main_collection.dialysissolution.dialysis_irrigation!=''">{{main_collection.dialysissolution.dialysis_irrigation}}</span>
131 131
                
132 132
                   <span v-if="org_id == 10440 && main_collection.dialysissolution.dialyzer_perfusion_apparatus!=''">{{main_collection.dialysissolution.dialyzer_perfusion_apparatus}}</span>
133
-                  <span v-if="org_id == 10445"><span v-if="main_collection.dialysissolution.dialysis_strainer!=''">/</span>{{ main_collection.dialysissolution.dialysis_strainer }}</span>
133
+                  <span v-if="org_id == 10445 || org_id == 0"><span v-if="main_collection.dialysissolution.dialysis_strainer!=''">/</span>{{ main_collection.dialysissolution.dialysis_strainer }}</span>
134 134
                 </div>
135 135
                 <div v-if="printObj.doctor_advice == 1">
136 136
                     医嘱: