XMLWAN hace 3 años
padre
commit
e8ddd9efea

+ 0 - 1
src/xt_pages/stock/drugs/drugStockOutOrder.vue Ver fichero

@@ -630,7 +630,6 @@ export default {
630 630
       } else {
631 631
         this.GetWarehouseOut();
632 632
       }
633
-      this.GetWarehouseOut();
634 633
     },
635 634
     endTimeChange(val) {
636 635
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 505 - 0
src/xt_pages/stock/drugs/inventory.vue Ver fichero

@@ -1,5 +1,510 @@
1
+<template>
2
+    <div>
3
+        <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;">
4
+            <div>
5
+                <el-input
6
+                size="small"
7
+                style="width: 200px;margin-left:10px;"
8
+                class="filter-item"
9
+                v-model.trim="searchKey"
10
+                placeholder="请输入单据编号或操作人姓名"
11
+                />
12
+                <el-button
13
+                size="small"
14
+                class="filter-item"
15
+                type="primary"
16
+                icon="el-icon-search"
17
+                @click="search"
18
+                >搜索</el-button
19
+                >
20
+                <el-date-picker
21
+                size="small"
22
+                v-model="start_time"
23
+                type="date"
24
+                style="margin-left:5px;width:140px;"
25
+                placeholder="选择日期"
26
+                @change="changeStartTime">
27
+                </el-date-picker>
28
+                <el-date-picker
29
+                size="small"
30
+                v-model="end_time"
31
+                type="date"
32
+                style="margin-left:5px;width:140px;"
33
+                placeholder="选择日期"
34
+                @change="changeEndTime">
35
+                </el-date-picker>
36
+            </div>
37
+            <div>
38
+                <el-button size="small" type="primary" @click="dialogVisible = true">新增</el-button>
39
+                <el-button size="small" type="primary" @click="toCheck">核对</el-button>
40
+                <!-- <el-button size="small" type="primary" @click="print">打印</el-button>
41
+                <el-button size="small" type="primary" @click="exportList">导出</el-button> -->
42
+            </div>
43
+        </div>
44
+        <el-table :data="tableList" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"  @selection-change="changePrice">
45
+           <el-table-column type="selection" width="55" align="center"> </el-table-column>
46
+            <el-table-column prop="date" label="盘点编号" align="center">
47
+                <template slot-scope="scope">
48
+                  {{scope.row.warehousing_order}}
49
+                </template>
50
+            </el-table-column>
51
+            <el-table-column prop="date" label="盘点日期" align="center">
52
+                <template slot-scope="scope">
53
+                  {{getTime(scope.row.start_time)}}
54
+                </template>
55
+            </el-table-column>
56
+            <el-table-column prop="date" label="药品名称" align="center">
57
+                <template slot-scope="scope">
58
+                  {{scope.row.drug_name}}
59
+                </template>
60
+            </el-table-column>
61
+            <el-table-column prop="date" label="药品规格" align="center">
62
+                <template slot-scope="scope">
63
+                  {{scope.row.specification_name}}
64
+                </template>
65
+            </el-table-column>
66
+            <el-table-column prop="name" label="盘点数量" align="center">
67
+                <template slot-scope="scope">
68
+                  {{scope.row.count}}{{scope.row.warehousing_unit}}<span v-if="scope.row.min_count>0">{{scope.row.min_count}}{{scope.row.min_unit}}</span>
69
+                </template>
70
+            </el-table-column>
71
+            <el-table-column prop="name" label="盘点人" align="center">
72
+                <template slot-scope="scope">
73
+                  {{getDoctorName(scope.row.creater)}}
74
+                </template>
75
+            </el-table-column>
76
+            <el-table-column prop="name" label="审核日期" align="center">
77
+                <template slot-scope="scope">
78
+                  {{getTime(scope.row.checker_time)}}
79
+                </template>
80
+            </el-table-column>
81
+            <el-table-column prop="name" label="审核人" align="center">
82
+                <template slot-scope="scope">
83
+                   {{getDoctorName(scope.row.checker)}}
84
+                </template>
85
+            </el-table-column>
86
+            <el-table-column prop="name" label="状态" align="center">
87
+              <template slot-scope="scope">
88
+                 <span v-if="scope.row.checker_status == 1">盘点完成</span>
89
+                 <span v-if="scope.row.checker_status == 2">正在盘点</span>
90
+              </template>
91
+            </el-table-column>
92
+            <el-table-column label="操作" align="center" width="260">
93
+                <template slot-scope="scope">
94
+                  <el-button type="primary" size="small" @click="editInventory(scope.row.id,scope.row.checker_status,scope.$index)">编辑</el-button>
95
+                  <el-button type="danger" size="small" @click="deleteDrugInventory(scope.row.id,scope.row.checker_status,scope.$index)">删除</el-button>
96
+                 
97
+                </template>
98
+            </el-table-column>
99
+        </el-table>
100
+        <el-pagination
101
+            @size-change="handleSizeChange"
102
+            @current-change="handleCurrentChange"
103
+            :page-sizes="[10, 20, 40, 100]"
104
+            :page-size="10"
105
+            background
106
+            style="margin-top:20px;text-align: right"
107
+            layout="total, sizes, prev, pager, next, jumper"
108
+            :total="total"
109
+        >
110
+        </el-pagination>
1 111
 
2 112
 
113
+        <!-- 新增药品盘点 -->
114
+        <el-dialog
115
+        title="药品盘点"
116
+        :visible.sync="dialogVisible"
117
+        width="1200px"
118
+        class="addDrugsDialog">
119
+            <el-form :model="form" class="modifyDialog" label-width="100px">
120
+              
121
+                <el-form-item label="药品名称">
122
+                  <el-autocomplete
123
+                    class="checkSearch"
124
+                    popper-class="my-autocomplete"
125
+                    v-model="form.drug_name"
126
+                    :fetch-suggestions="querySearchAsync"
127
+                    :trigger-on-focus="true"
128
+                    placeholder="请输入药品名称"
129
+                    @select="handleSelect"
130
+                    style="width:300px;"
131
+                  >
132
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
133
+                  <template slot-scope="{ item }">
134
+                    <div class="name">{{ item.drug_name + item.dose + item.dose_unit + "*" +item.min_number + item.min_unit +"/" + item.max_unit + "  "+item.manufacturer}}</div>
135
+                  </template>
136
+                 </el-autocomplete>  
137
+                </el-form-item>
138
+               
139
+            </el-form>
140
+
141
+
142
+            <el-table :data="tableData" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }">
143
+               
144
+                <el-table-column prop="date" label="药品名称" width="100" align="center">
145
+                   <template slot-scope="scope">
146
+                       {{scope.row.drug_name}}
147
+                    </template>
148
+                </el-table-column>
149
+                <el-table-column prop="name" label="规格" width="100" align="center">
150
+                   <template slot-scope="scope">
151
+                       {{scope.row.specification_name}}
152
+                    </template>
153
+                </el-table-column>
154
+                <el-table-column prop="name" label="入库单号" width="100" align="center">
155
+                   <template slot-scope="scope">
156
+                       {{scope.row.specification_name}}
157
+                    </template>
158
+                </el-table-column>
159
+                <el-table-column prop="name" label="生产日期" width="100" align="center">
160
+                   <template slot-scope="scope">
161
+                       {{scope.row.specification_name}}
162
+                    </template>
163
+                </el-table-column>
164
+                <el-table-column  prop="name" label="有效日期" width="100" align="center">
165
+                    <template slot-scope="scope">
166
+                       {{scope.row.manufacturer}}
167
+                    </template> 
168
+                </el-table-column>
169
+                <el-table-column prop="name" label="批号"  width="100" align="center">
170
+                  <template slot-scope="scope">
171
+                       {{scope.row.drug_origin_place}}
172
+                  </template> 
173
+                </el-table-column>
174
+                <el-table-column prop="name" label="单价"  width="100" align="center">
175
+                  <template slot-scope="scope">
176
+                       {{scope.row.drug_origin_place}}
177
+                  </template> 
178
+                </el-table-column>
179
+                <el-table-column prop="name" label="盘点前数量"  width="100" align="center">
180
+                  <template slot-scope="scope">
181
+                       {{scope.row.drug_origin_place}}
182
+                  </template> 
183
+                </el-table-column>
184
+                <el-table-column prop="name" label="盘点后数量"  width="100" align="center">
185
+                  <template slot-scope="scope">
186
+                       {{scope.row.drug_origin_place}}
187
+                  </template> 
188
+                </el-table-column>
189
+                <el-table-column prop="name" label="盘点原因"  width="100" align="center">
190
+                  <template slot-scope="scope">
191
+                       {{scope.row.drug_origin_place}}
192
+                  </template> 
193
+                </el-table-column>
194
+                <el-table-column
195
+                fixed="right"
196
+                width="100"
197
+                label="操作">
198
+                    <template slot-scope="scope">
199
+                        <el-button type="text" size="small" @click="toEdit(scope.row,scope.$index)">编辑</el-button>
200
+                        <el-button type="text" size="small" @click="toDelete(scope.$index)">删除</el-button>
201
+                       
202
+                    </template>
203
+                </el-table-column>
204
+            </el-table>
205
+            <span slot="footer" class="dialog-footer">
206
+                <el-button @click="dialogVisible = false">取 消</el-button>
207
+                <el-button type="primary" @click="saveDrugInventory">确 定</el-button>
208
+            </span>
209
+        </el-dialog>
210
+
211
+
212
+          <el-dialog
213
+            title="库房调价"
214
+            :visible.sync="editdialogVisible"
215
+            width="1200px">
216
+            <el-form :model="form" class="modifyDialog" label-width="120px">
217
+
218
+                <el-form-item label="耗材ID">
219
+                    <el-input v-model="form.drug_id" :disabled="true"></el-input>
220
+                </el-form-item>
221
+                <el-form-item label="药品名称">
222
+                  <el-autocomplete
223
+                    class="checkSearch"
224
+                    popper-class="my-autocomplete"
225
+                    v-model="form.drug_name"
226
+                    :fetch-suggestions="querySearchAsync"
227
+                    :trigger-on-focus="true"
228
+                    placeholder="请输入药品名称"
229
+                    @select="handleSelect"
230
+                    style="width:160px;"
231
+                  >
232
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
233
+                  <template slot-scope="{ item }">
234
+                    <div class="name">{{ item.drug_name + item.dose + item.dose_unit + "*" +item.min_number + item.min_unit +"/" + item.max_unit + "  "+item.manufacturer}}</div>
235
+                  </template>
236
+                 </el-autocomplete>  
237
+                </el-form-item>
238
+                <el-form-item label="规格">
239
+                    <el-input v-model="form.specification_name" :disabled="true"></el-input>
240
+                </el-form-item>
241
+               <el-form-item label="批次">
242
+                  <el-select v-model="form.batch_number" filterable placeholder="请选择" @change="changeNumber">
243
+                      <el-option
244
+                        v-for="(item,index) in numberList"
245
+                        :key="index"
246
+                        :label="item.batch_number"
247
+                        :value="item.id">
248
+                      </el-option>
249
+                  </el-select>
250
+                </el-form-item>
251
+              
252
+                <el-form-item label="进货价">
253
+                    <el-input v-model="form.last_price" :disabled="true"></el-input>
254
+                </el-form-item>
255
+                <el-form-item label="零售价">
256
+                    <el-input v-model="form.retail_price" :disabled="true"></el-input>
257
+                </el-form-item>
258
+
259
+                <div style="width:100%;display:flex;">
260
+                    <el-form-item prop="dose" label="盘点数量" style="width:100%;">
261
+                      <el-input v-model="form.count" type="number" style="width:160px;" placeholder="盘点数量"></el-input>
262
+                      <el-select v-model="form.warehousing_unit" style="width:160px;" placeholder="最大单位" :disabled="true">
263
+                      <el-option
264
+                        v-for="(item,index) in getDataConfig('hemodialysis','units')"
265
+                        :key="index"
266
+                        :label="item.name"
267
+                        :value="item.name">
268
+                      </el-option>
269
+                    </el-select>
270
+                    <el-input v-model="form.min_count"  style="width:160px;margin-left:10px" placeholder="盘点数量" ></el-input>
271
+                    <el-select v-model="form.min_unit"  style="width:160px;" placeholder="最小单位" :disabled="true">
272
+                      <el-option
273
+                        v-for="(item,index) in getDataConfig('hemodialysis','units')"
274
+                        :key="index"
275
+                        :label="item.name"
276
+                        :value="item.name">
277
+                      </el-option>
278
+                    </el-select>
279
+                 </el-form-item>
280
+                </div>
281
+                <el-form-item label="库存">
282
+                    <el-input v-model="form.total" :disabled="true"></el-input>
283
+                </el-form-item>
284
+                <el-form-item label="产地">
285
+                    <el-input v-model="form.drug_origin_place"></el-input>
286
+                </el-form-item>
287
+                <el-form-item label="批准文号">
288
+                    <el-input v-model="form.number"></el-input>
289
+                </el-form-item>
290
+                <el-form-item label="生产厂商">
291
+                    <el-input v-model="form.manufacturer"></el-input>
292
+                </el-form-item>
293
+                <el-form-item label="备注">
294
+                    <div style="display:flex;">
295
+                        <el-input v-model="form.remark"></el-input>
296
+                    </div>
297
+                </el-form-item>
298
+            </el-form>
299
+            <span slot="footer" class="dialog-footer">
300
+                <el-button @click="editdialogVisible = false">取 消</el-button>
301
+                <el-button type="primary" @click="saveInventory">确 定</el-button>
302
+            </span>
303
+        </el-dialog>
304
+
305
+      <el-dialog
306
+        title="药品盘点核对"
307
+        :visible.sync="checkDialogVisible"
308
+        width="30%"
309
+        >
310
+        <span>
311
+          <el-form :model="form">
312
+            <el-row>
313
+              <el-col>
314
+                <el-form-item label="核对时间">
315
+                 <el-date-picker
316
+                    size="small"
317
+                    v-model="check_time"
318
+                    type="date"
319
+                    style="margin-left:5px;width:140px;"
320
+                    placeholder="选择日期">
321
+                  </el-date-picker>
322
+                </el-form-item>  
323
+              </el-col>
324
+            </el-row>  
325
+             <el-row>
326
+              <el-col>
327
+                <el-form-item label="核对人">
328
+                  <el-select v-model="checker" placeholder="请选择">
329
+                    <el-option
330
+                    v-for="item in doctorList"
331
+                    :key="item.admin_user_id"
332
+                    :label="item.user_name"
333
+                    :value="item.admin_user_id">
334
+                    </el-option>
335
+                 </el-select>
336
+                </el-form-item>  
337
+              </el-col>
338
+            </el-row>  
339
+          </el-form>  
340
+        </span>
341
+        <span slot="footer" class="dialog-footer">
342
+            <el-button @click="checkDialogVisible = false">取 消</el-button>
343
+            <el-button type="primary" @click="SaveDrugCheckedInventory">保 存</el-button>
344
+        </span>
345
+    </el-dialog>
346
+
347
+
348
+       <el-dialog
349
+            title="库房调价"
350
+            :visible.sync="modifydialogVisible"
351
+            width="1200px">
352
+            <el-form :model="form" class="modifyDialog" label-width="120px">
353
+
354
+                <el-form-item label="耗材ID">
355
+                    <el-input v-model="form.drug_id"></el-input>
356
+                </el-form-item>
357
+                <el-form-item label="药品名称">
358
+                  <el-autocomplete
359
+                    class="checkSearch"
360
+                    popper-class="my-autocomplete"
361
+                    v-model="form.drug_name"
362
+                    :fetch-suggestions="querySearchAsync"
363
+                    :trigger-on-focus="true"
364
+                    placeholder="请输入药品名称"
365
+                    @select="handleSelect"
366
+                    style="width:160px;"
367
+                  >
368
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
369
+                  <template slot-scope="{ item }">
370
+                    <div class="name">{{ item.drug_name + item.dose + item.dose_unit + "*" +item.min_number + item.min_unit +"/" + item.max_unit + "  "+item.manufacturer}}</div>
371
+                  </template>
372
+                 </el-autocomplete>  
373
+                </el-form-item>
374
+                <el-form-item label="规格">
375
+                    <el-input v-model="form.specification_name" :disabled="true"></el-input>
376
+                </el-form-item>
377
+                <!-- <el-form-item label="单位">
378
+                    <el-input v-model="form.warehousing_unit" :disabled="true"></el-input>
379
+                </el-form-item> -->
380
+                <!-- <el-form-item prop="warehousing_unit" label="单位">
381
+                    <el-select v-model="form.warehousing_unit" style="width:160px;" placeholder="单位" @change="changeMaxUnit">
382
+                      <el-option
383
+                        v-for="(item,index) in getDataConfig('hemodialysis','units')"
384
+                        :key="index"
385
+                        :label="item.name"
386
+                        :value="item.name">
387
+                      </el-option>
388
+                    </el-select>
389
+                </el-form-item> -->
390
+                <el-form-item label="进货价">
391
+                    <el-input v-model="form.last_price" :disabled="true"></el-input>
392
+                </el-form-item>
393
+                <el-form-item label="零售价">
394
+                    <el-input v-model="form.retail_price" :disabled="true"></el-input>
395
+                </el-form-item>
396
+                <!-- <el-form-item label="盘点数量">
397
+                    <el-input v-model="form.count"></el-input>
398
+                </el-form-item> -->
399
+              
400
+                <div style="width:100%;display:flex;">
401
+                    <el-form-item prop="dose" label="盘点数量" style="width:100%;">
402
+                      <el-input v-model="form.count" type="number" style="width:160px;" placeholder="盘点数量"></el-input>
403
+                      <el-select v-model="form.warehousing_unit" style="width:160px;" placeholder="最大单位" :disabled="true">
404
+                      <el-option
405
+                        v-for="(item,index) in getDataConfig('hemodialysis','units')"
406
+                        :key="index"
407
+                        :label="item.name"
408
+                        :value="item.name">
409
+                      </el-option>
410
+                    </el-select>
411
+                    <el-input v-model="form.min_count"  style="width:160px;margin-left:10px" placeholder="盘点数量" ></el-input>
412
+                    <el-select v-model="form.min_unit"  style="width:160px;" placeholder="最小单位" :disabled="true">
413
+                      <el-option
414
+                        v-for="(item,index) in getDataConfig('hemodialysis','units')"
415
+                        :key="index"
416
+                        :label="item.name"
417
+                        :value="item.name">
418
+                      </el-option>
419
+                    </el-select>
420
+                 </el-form-item>
421
+                </div>
422
+                <el-form-item label="库存">
423
+                    <el-input v-model="form.total" :disabled="true"></el-input>
424
+                </el-form-item>
425
+                <el-form-item label="产地">
426
+                    <el-input v-model="form.drug_origin_place" :disabled="true"></el-input>
427
+                </el-form-item>
428
+                <el-form-item label="批准文号">
429
+                    <el-input v-model="form.number" :disabled="true"></el-input>
430
+                </el-form-item>
431
+                <el-form-item label="生产厂商">
432
+                    <el-input v-model="form.manufacturer" :disabled="true"></el-input>
433
+                </el-form-item>
434
+                <el-form-item label="备注">
435
+                    <div style="display:flex;">
436
+                        <el-input v-model="form.remark"></el-input>
437
+                    </div>
438
+                </el-form-item>
439
+            </el-form>
440
+            <span slot="footer" class="dialog-footer">
441
+                <el-button @click="modifydialogVisible = false">取 消</el-button>
442
+                <el-button type="primary" @click="modifyInventory">确 定</el-button>
443
+            </span>
444
+        </el-dialog>
445
+
446
+
447
+         <el-dialog
448
+            title="校正"
449
+            :visible.sync="profdialogVisible"
450
+            width="1200px">
451
+            <el-form :model="form" class="modifyDialog" label-width="120px">
452
+
453
+                <el-form-item label="药品名称">
454
+                  <el-autocomplete
455
+                    class="checkSearch"
456
+                    popper-class="my-autocomplete"
457
+                    v-model="form.drug_name"
458
+                    :fetch-suggestions="querySearchAsync"
459
+                    :trigger-on-focus="true"
460
+                    placeholder="请输入药品名称"
461
+                    @select="handleSelect"
462
+                    style="width:160px;"
463
+                  >
464
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
465
+                  <template slot-scope="{ item }">
466
+                    <div class="name">{{ item.drug_name + item.dose + item.dose_unit + "*" +item.min_number + item.min_unit +"/" + item.max_unit + "  "+item.manufacturer}}</div>
467
+                  </template>
468
+                 </el-autocomplete>  
469
+                </el-form-item>
470
+                <!-- <el-form-item label="单位">
471
+                    <el-input v-model="form.warehousing_unit"></el-input>
472
+                </el-form-item> -->
473
+                <el-form-item prop="warehousing_unit" label="单位">
474
+                    <el-select v-model="form.warehousing_unit" style="width:160px;" placeholder="单位" @change="changeMaxUnit">
475
+                      <el-option
476
+                        v-for="(item,index) in getDataConfig('hemodialysis','units')"
477
+                        :key="index"
478
+                        :label="item.name"
479
+                        :value="item.name">
480
+                      </el-option>
481
+                    </el-select>
482
+                </el-form-item>
483
+                <el-form-item label="盘点数量">
484
+                    <el-input v-model="form.count"></el-input>
485
+                </el-form-item>
486
+                <el-form-item label="校正数量">
487
+                    <el-input v-model="form.proof_count" type="number"></el-input>
488
+                </el-form-item>
489
+              
490
+                <el-form-item label="库存">
491
+                    <el-input v-model="form.total" :disabled="true"></el-input>
492
+                </el-form-item>
493
+                
494
+                <el-form-item label="备注">
495
+                    <div style="display:flex;">
496
+                        <el-input v-model="form.remark"></el-input>
497
+                    </div>
498
+                </el-form-item>
499
+            </el-form>
500
+            <span slot="footer" class="dialog-footer">
501
+                <el-button @click="profdialogVisible = false">取 消</el-button>
502
+                <el-button type="primary" @click="proofInventory">确 定</el-button>
503
+            </span>
504
+        </el-dialog>
505
+    </div>
506
+</template>
507
+
3 508
 <script>
4 509
 import { uParseTime } from '@/utils/tools'
5 510
 import { postSearchDrugWarehouseList,getDrugWarehouseInfoList,saveDrugInventory,getDrugInventoryList,SaveDrugCheckedInventory,getDrugInventoryDetail,modifyInventory,SaveDrugProofInventory,getDrugWarehouseInfoTotal,deleteDrugInventory} from "@/api/drug/drug"