XMLWAN 3 yıl önce
ebeveyn
işleme
b3da867b2f

+ 16 - 0
src/api/stock.js Dosyayı Görüntüle

@@ -794,3 +794,19 @@ export function SaveCheckedDamage(params) {
794 794
     params: params
795 795
   })
796 796
 }
797
+
798
+export function saveInventory(data) {
799
+  return request({
800
+    url: '/api/stock/saveinventory',
801
+    method: 'post',
802
+    data: data
803
+  })
804
+}
805
+
806
+export function getInventoryList(params) {
807
+  return request({
808
+    url: '/api/stock/getinventorylist',
809
+    method: 'get',
810
+    params: params
811
+  })
812
+}

+ 292 - 122
src/xt_pages/stock/inventory.vue Dosyayı Görüntüle

@@ -2,12 +2,12 @@
2 2
     <div>
3 3
         <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;">
4 4
             <div>
5
-                <el-select v-model="value" size="small" placeholder="请选择">
5
+                <el-select v-model="inventory_status" size="small" placeholder="请选择">
6 6
                     <el-option
7
-                    v-for="item in options"
8
-                    :key="item.value"
9
-                    :label="item.label"
10
-                    :value="item.value">
7
+                    v-for="item in inventoryList"
8
+                    :key="item.id"
9
+                    :label="item.name"
10
+                    :value="item.id">
11 11
                     </el-option>
12 12
                 </el-select>
13 13
                 <el-input
@@ -27,14 +27,14 @@
27 27
                 >
28 28
                 <el-date-picker
29 29
                 size="small"
30
-                v-model="value1"
30
+                v-model="start_time"
31 31
                 type="date"
32 32
                 style="margin-left:5px;width:140px;"
33 33
                 placeholder="选择日期">
34 34
                 </el-date-picker>
35 35
                 <el-date-picker
36 36
                 size="small"
37
-                v-model="value2"
37
+                v-model="end_time"
38 38
                 type="date"
39 39
                 style="margin-left:5px;width:140px;"
40 40
                 placeholder="选择日期">
@@ -47,33 +47,39 @@
47 47
                 <el-button size="small" type="primary">导出</el-button>
48 48
             </div>
49 49
         </div>
50
-        <el-table :data="tableData" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }">
51
-            <el-table-column
52
-            prop="date"
53
-            label="盘点编号">
50
+        <el-table :data="tableList" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }">
51
+            <el-table-column prop="date" label="盘点编号"  align="center">
52
+              <template slot-scope="scope">
53
+                {{scope.row.warehousing_order}}
54
+              </template>  
54 55
             </el-table-column>
55
-            <el-table-column
56
-            prop="date"
57
-            label="盘点日期">
56
+            <el-table-column  prop="date" label="盘点日期" align="center">
57
+              <template slot-scope="scope" >
58
+                {{getTime(scope.row.start_time)}}
59
+              </template>  
58 60
             </el-table-column>
59
-            <el-table-column
60
-            prop="name"
61
-            label="盘点人">
61
+            <el-table-column prop="name" label="盘点人" align="center">
62
+             <template slot-scope="scope" >
63
+              {{scope.row.user_name}}
64
+             </template>
62 65
             </el-table-column>
63
-            <el-table-column
64
-            prop="name"
65
-            label="审核日期">
66
+            <el-table-column prop="name"  label="审核日期" align="center">
67
+              <template slot-scope="scope" >
68
+               {{getTime(scope.row.checker_time)}}
69
+             </template>
66 70
             </el-table-column>
67
-            <el-table-column
68
-            prop="name"
69
-            label="审核人">
71
+            <el-table-column prop="name" label="审核人" align="center">
72
+              <template slot-scope="scope" >
73
+              {{getChecker(scope.row.checker)}}
74
+             </template>
70 75
             </el-table-column>
71
-            <el-table-column
72
-            prop="name"
73
-            label="状态">
76
+            <el-table-column prop="name" label="状态"  align="center">
77
+              <template slot-scope="scope">
78
+                <span v-if="scope.row.checker_status == 1">已审核</span>
79
+                <span v-if="scope.row.checker_status == 2">未审核</span>
80
+             </template>
74 81
             </el-table-column>
75
-            <el-table-column
76
-            label="操作">
82
+            <el-table-column label="操作" align="center">
77 83
                 <template slot-scope="scope">
78 84
                     <el-button type="text" size="small">删除</el-button>
79 85
                     <el-button type="text" size="small">编辑</el-button>
@@ -92,131 +98,142 @@
92 98
         >
93 99
         </el-pagination>
94 100
         <el-dialog
95
-        title="库房调价"
101
+        title="耗材盘点"
96 102
         :visible.sync="dialogVisible"
97
-        width="1200px"
98
-        :before-close="handleClose">
103
+        width="1200px">
99 104
             <el-form :model="form" class="modifyDialog" label-width="120px">
100 105
                 <el-form-item label="耗材ID">
101
-                    <el-input v-model="form.name"></el-input>
106
+                    <el-input v-model="form.good_id"></el-input>
102 107
                 </el-form-item>
103
-                <el-form-item label="药品名称">
104
-                    <el-input v-model="form.name"></el-input>
108
+                <el-form-item label="耗材名称">
109
+                   <el-autocomplete
110
+                    class="checkSearch"
111
+                    popper-class="my-autocomplete"
112
+                    v-model="form.good_name"
113
+                    :fetch-suggestions="querySearchAsync"
114
+                    :trigger-on-focus="true"
115
+                    placeholder="请输入耗材名称"
116
+                    @select="handleSelect"
117
+                    @input="changeGoodName(scope.$index)"
118
+                    style="width:160px;"
119
+                  >
120
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
121
+                  <template slot-scope="{ item }">
122
+                    <div class="name">{{ item.good_name +"  " +item.specification_name + "  "+item.manufacturer }}</div>
123
+                  </template>
124
+                 </el-autocomplete>
105 125
                 </el-form-item>
106 126
                 <el-form-item label="规格">
107
-                    <el-input v-model="form.name"></el-input>
127
+                    <el-input v-model="form.specification_name"></el-input>
108 128
                 </el-form-item>
109 129
                 <el-form-item label="单位">
110
-                    <el-input v-model="form.name"></el-input>
130
+                    <el-input v-model="form.warehousing_unit"></el-input>
111 131
                 </el-form-item>
112 132
                 <el-form-item label="进货价">
113
-                    <el-input v-model="form.name"></el-input>
133
+                    <el-input v-model="form.buy_price"></el-input>
114 134
                 </el-form-item>
115 135
                 <el-form-item label="零售价">
116
-                    <el-input v-model="form.name"></el-input>
136
+                    <el-input v-model="form.packing_price"></el-input>
117 137
                 </el-form-item>
118
-                <el-form-item label="报损数量">
119
-                    <el-input v-model="form.name"></el-input>
138
+                <el-form-item label="盘点数量">
139
+                    <el-input v-model="form.count"></el-input>
120 140
                 </el-form-item>
121 141
                 <el-form-item label="库存">
122
-                    <el-input v-model="form.name"></el-input>
142
+                    <el-input v-model="form.total"></el-input>
123 143
                 </el-form-item>
124 144
                 <el-form-item label="产地">
125
-                    <el-input v-model="form.name"></el-input>
145
+                    <el-input v-model="form.good_origin_place"></el-input>
126 146
                 </el-form-item>
127 147
                 <el-form-item label="批准文号">
128
-                    <el-input v-model="form.name"></el-input>
148
+                    <el-input v-model="form.license_number"></el-input>
129 149
                 </el-form-item>
130 150
                 <el-form-item label="生产厂商">
131
-                    <el-input v-model="form.name"></el-input>
151
+                    <el-input v-model="form.manufacturer"></el-input>
132 152
                 </el-form-item>
133 153
                 <el-form-item label="备注">
134 154
                     <div style="display:flex;">
135
-                        <el-input v-model="form.name"></el-input>
136
-                        <el-button style="margin-left:5px;" type="primary">添加</el-button>
155
+                        <el-input v-model="form.remark"></el-input>
156
+                        <el-button style="margin-left:5px;" type="primary" @click="addInventory">添加</el-button>
137 157
                     </div>
138 158
                 </el-form-item>
139 159
             </el-form>
140 160
             <el-table :data="tableData" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }">
141
-                <el-table-column
142
-                prop="date"
143
-                label="耗材ID"
144
-                width="100">
161
+                <el-table-column prop="date" label="耗材ID" width="100">
162
+                 <template slot-scope="scope">
163
+                   {{scope.row.good_id}}
164
+                 </template>
145 165
                 </el-table-column>
146
-                <el-table-column
147
-                prop="date"
148
-                label="耗材名称"
149
-                width="100">
166
+                <el-table-column prop="date" label="耗材名称" width="100">
167
+                 <template slot-scope="scope">
168
+                   {{scope.row.good_name}}
169
+                 </template>
150 170
                 </el-table-column>
151
-                <el-table-column
152
-                prop="name"
153
-                label="规格"
154
-                width="100">
171
+                <el-table-column prop="name" label="规格" width="100">
172
+                 <template slot-scope="scope">
173
+                   {{scope.row.specification_name}}
174
+                 </template>
155 175
                 </el-table-column>
156
-                <el-table-column
157
-                prop="name"
158
-                label="单位"
159
-                width="100">
176
+                <el-table-column prop="name" label="单位" width="100">
177
+                  <template slot-scope="scope">
178
+                   {{scope.row.warehousing_unit}}
179
+                 </template> 
160 180
                 </el-table-column>
161
-                <el-table-column
162
-                prop="name"
163
-                label="调价数量"
164
-                width="100">
165
-                </el-table-column>
166
-                <el-table-column
167
-                prop="name"
168
-                label="原进货价"
169
-                width="100">
170
-                </el-table-column>
171
-                <el-table-column
172
-                prop="name"
173
-                label="原零售价"
174
-                width="100">
181
+                <el-table-column prop="name" label="盘点数量" width="100">
182
+                  <template slot-scope="scope">
183
+                   {{scope.row.warehousing_unit}}
184
+                 </template> 
175 185
                 </el-table-column>
176
-                <el-table-column
177
-                prop="name"
178
-                label="新零售价"
179
-                width="100">
186
+                <el-table-column prop="name" label="原进货价" width="100">
187
+                    <template slot-scope="scope">
188
+                    {{scope.row.buy_price}}
189
+                    </template> 
180 190
                 </el-table-column>
181
-                <el-table-column
182
-                prop="name"
183
-                label="生产厂商"
184
-                width="100">
191
+                <el-table-column prop="name" label="原零售价" width="100">
192
+                    <template slot-scope="scope">
193
+                    {{scope.row.packing_price}}
194
+                    </template> 
185 195
                 </el-table-column>
186
-                <el-table-column
187
-                prop="name"
188
-                label="产地"
189
-                width="100">
196
+                <el-table-column prop="name" label="生产厂商" width="100">
197
+                    <template slot-scope="scope">
198
+                        {{scope.row.manufacturer}}
199
+                     </template> 
200
+               </el-table-column>
201
+                <el-table-column  prop="name"  label="产地" width="100">
202
+                    <template slot-scope="scope">
203
+                    {{scope.row.good_origin_place}}
204
+                    </template> 
190 205
                 </el-table-column>
191
-                <el-table-column
192
-                prop="name"
193
-                label="批准文号"
194
-                width="100">
206
+                <el-table-column prop="name" label="批准文号" width="100">
207
+                   <template slot-scope="scope">
208
+                    {{scope.row.license_number}}
209
+                    </template> 
195 210
                 </el-table-column>
196
-                <el-table-column
197
-                prop="name"
198
-                label="备注"
199
-                width="100">
211
+                <el-table-column  prop="name" label="备注" width="100">
212
+                     <template slot-scope="scope">
213
+                      {{scope.row.remark}}
214
+                    </template> 
200 215
                 </el-table-column>
201 216
                 <el-table-column
202 217
                 fixed="right"
203 218
                 width="100"
204 219
                 label="操作">
205 220
                     <template slot-scope="scope">
206
-                        <el-button type="text" size="small">删除</el-button>
207 221
                         <el-button type="text" size="small">编辑</el-button>
222
+                        <el-button type="text" size="small">删除</el-button>
208 223
                     </template>
209 224
                 </el-table-column>
210 225
             </el-table>
211 226
             <span slot="footer" class="dialog-footer">
212 227
                 <el-button @click="dialogVisible = false">取 消</el-button>
213
-                <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
228
+                <el-button type="primary" @click="saveInventory">确 定</el-button>
214 229
             </span>
215 230
         </el-dialog>
216 231
     </div>
217 232
 </template>
218 233
 
219
-<script>
234
+<script> 
235
+import { uParseTime } from '@/utils/tools'
236
+import { postSearchGoodWarehouseList,saveInventory,getInventoryList } from "@/api/stock"
220 237
 export default {
221 238
     name: "inventory",
222 239
     data() {
@@ -224,44 +241,197 @@ export default {
224 241
             searchKey:'',
225 242
             value1:'',
226 243
             value2:'',
227
-            tableData: [{
228
-                date: '2016-05-02',
229
-                name: '王小虎',
230
-                address: '上海市普陀区金沙江路 1518 弄'
231
-                }, {
232
-                date: '2016-05-04',
233
-                name: '王小虎',
234
-                address: '上海市普陀区金沙江路 1517 弄'
235
-                }, {
236
-                date: '2016-05-01',
237
-                name: '王小虎',
238
-                address: '上海市普陀区金沙江路 1519 弄'
239
-                }, {
240
-                date: '2016-05-03',
241
-                name: '王小虎',
242
-                address: '上海市普陀区金沙江路 1516 弄'
243
-            }],
244
+            tableData: [],
244 245
             dialogVisible:false,
245 246
             form: {
246 247
                 name: '',
247 248
             },
248 249
             total: 0,
249
-            
250
+            inventoryList:[
251
+              {id:0,name:"全部"},
252
+              {id:1,name:"盘点完成"},
253
+              {id:2,name:"正在盘点"},
254
+            ],
255
+            start_time:"",
256
+            end_time:"",
257
+           form: {
258
+                id:"",
259
+                good_name: '',
260
+                packing_price:'',
261
+                new_price:"",
262
+                count:"",
263
+                remark:"",
264
+                warehousing_order:"",
265
+                manufacturer:"",
266
+                dealer:"",
267
+                license_number:"",
268
+                warehousing_unit:"",
269
+                specification_name:"",
270
+                buy_price:"",
271
+                good_id:"",
272
+                packing_unit:"",
273
+                good_origin_place:"",
274
+                report_count:"",
275
+                total:"",
276
+
277
+            },
278
+         manufacturerList:[],
279
+         dealerList:[],
280
+         goodList:[],
281
+         currentIndex: 0,
282
+         inventory_status:"",
283
+         limit:10,
284
+         page:1,
285
+         doctorList:[],
286
+         total:0,
287
+         tableList:[],
250 288
         }
251 289
     },
252 290
     methods:{
291
+         querySearchAsync(keyword, cb) {
292
+            let key = '';
293
+            if (keyword != undefined) {
294
+                key = keyword
295
+            }
296
+            postSearchGoodWarehouseList(key).then(response => {
297
+            if (response.data.state == 1) {
298
+            
299
+                var list = response.data.data.list
300
+                console.log("列表数据",list)
301
+                this.goodList = list
302
+                var manufacturerList = response.data.data.manufacturerList
303
+                this.manufacturerList = manufacturerList
304
+                var dealer =  response.data.data.dealerList
305
+                this.dealerList = dealer
306
+                for(let i=0;i<this.goodList.length;i++){
307
+                    for(let j=0;j<this.manufacturerList.length;j++){
308
+                    if(this.goodList[i].manufacturer == this.manufacturerList[j].id){
309
+                        this.goodList[i].manufacturer = this.manufacturerList[j].manufacturer_name
310
+                    }
311
+                    }
312
+                }
313
+
314
+                for(let i=0;i<this.goodList.length;i++){
315
+                    for(let j=0;j<this.dealerList.length;j++){
316
+                        if(this.goodList[i].dealer == this.dealerList[j].id){
317
+                        this.goodList[i].dealer = this.dealerList[j].dealer_name
318
+                        }
319
+                    }
320
+                }
321
+            
322
+                cb(this.goodList)
323
+            } else {
324
+                cb([])
325
+             }
326
+          })
327
+         },
328
+        changeGoodName(val){
329
+          this.currentIndex = val
330
+        },
331
+         handleSelect(val){
332
+            console.log("val232323223",val)
333
+            this.form.id = val.id
334
+            this.form.good_id = val.good_id,
335
+            this.form.good_name = val.good_name
336
+            this.form.packing_price = val.packing_price
337
+            this.form.warehousing_order = val.warehousing_order
338
+            this.form.license_number = val.license_number
339
+            this.form.dealer = val.dealer
340
+            this.form.manufacturer = val.manufacturer
341
+            this.form.specification_name = val.specification_name
342
+            this.form.remark = val.remark
343
+            this.form.buy_price = val.buy_price
344
+            this.form.warehousing_unit = val.packing_unit  
345
+            this.form.total = val.total
346
+           
347
+        },
253 348
         search(){
254 349
 
255 350
         },
256 351
         print(){
257
-            this.$router.push({path:'/stock/stockModifyPricePrint'})
258
-            
352
+            this.$router.push({path:'/stock/stockModifyPricePrint'})   
259 353
         },
260
-        handleSizeChange(){},
261
-        handleCurrentChange(){}
262
-
354
+       getTime(val) {
355
+         if(val < 0){
356
+            return ""
357
+          }
358
+         if(val == ""){
359
+            return ""
360
+          }else {
361
+            return uParseTime(val, '{y}-{m}-{d}')
362
+         }
363
+        },
364
+        handleSizeChange(val){
365
+          this.limit = val
366
+          this.getlist()
367
+        },
368
+        handleCurrentChange(val){
369
+          this.page = val
370
+          this.getlist()
371
+        },
372
+        addInventory(){
373
+           var obj = {
374
+            good_id:this.form.good_id,
375
+            good_name:this.form.good_name,
376
+            specification_name:this.form.specification_name,
377
+            warehousing_unit:this.form.warehousing_unit,
378
+            count:parseInt(this.form.count),
379
+            buy_price:this.form.buy_price.toString(),
380
+            packing_price:this.form.packing_price.toString(),
381
+            manufacturer:this.form.manufacturer,
382
+            good_origin_place:this.form.good_origin_place,
383
+            license_number:this.form.license_number,
384
+            remark:this.form.remark,
385
+            warehousing_order:this.form.warehousing_order,
386
+            dealer:this.form.dealer,
387
+            start_time:this.getTime(new Date()),
388
+           } 
389
+           this.tableData.push(obj)
390
+        },
391
+      saveInventory(){
392
+        var params = {
393
+         tableData:this.tableData,
394
+        }  
395
+       saveInventory(params).then(response=>{
396
+         if(response.data.state == 1){
397
+           var msg = response.data.data.msg
398
+           this.$message.success("保存成功")
399
+           this.dialogVisible = false
400
+         }
401
+       })
402
+      },
403
+   getlist(){
404
+    var params = {
405
+          keyword:this.searchKey,
406
+          start_time:this.start_time,
407
+          end_time:this.end_time,
408
+          inventory_status:this.inventory_status, 
409
+          page:this.page,
410
+          limit:this.limit,
411
+         }
412
+       getInventoryList(params).then(response=>{
413
+          if(response.data.state ==1 ){
414
+           var list =  response.data.data.list
415
+           console.log("列表23232323232",list)
416
+           this.tableList = list
417
+           var total = response.data.data.total
418
+           this.total = total
419
+           this.doctorList =  response.data.data.doctorlist
420
+          }
421
+       })
422
+     },
423
+     getChecker(id){
424
+       var name = ""
425
+       for(let i=0;i<this.doctorList.length;i++){
426
+          if(id == this.doctorList[i].admin_user_id){
427
+             name = this.doctorList[i].user_name
428
+          }
429
+       }
430
+       return name
431
+     },
263 432
     },
264 433
     created(){
434
+      this.getlist()
265 435
     },
266 436
     mounted() {
267 437
     },

+ 22 - 6
src/xt_pages/stock/stockDamaged.vue Dosyayı Görüntüle

@@ -57,7 +57,7 @@
57 57
             </el-table-column>
58 58
             <el-table-column prop="name" label="操作人">
59 59
               <template  slot-scope="scope">
60
-                {{getTime(scope.row.user_name)}}
60
+                {{scope.row.user_name}}
61 61
                </template>     
62 62
             </el-table-column>
63 63
             <el-table-column prop="name" label="审核日期">
@@ -67,7 +67,7 @@
67 67
             </el-table-column>
68 68
             <el-table-column prop="name" label="核对人">
69 69
               <template slot-scope="scope">
70
-                {{scope.row.checker}}
70
+                {{getChecker(scope.row.checker)}}
71 71
               </template>
72 72
             </el-table-column>
73 73
             <el-table-column prop="name" label="状态">
@@ -78,8 +78,8 @@
78 78
             </el-table-column>
79 79
             <el-table-column label="操作">
80 80
                 <template slot-scope="scope">
81
-                <el-button type="primary" size="small">删除</el-button>
82 81
                 <el-button type="primary" size="small">编辑</el-button>
82
+                <el-button type="primary" size="small">删除</el-button>
83 83
                 </template>
84 84
             </el-table-column>
85 85
         </el-table>
@@ -343,8 +343,14 @@ export default {
343 343
             this.$router.push({path:'/stock/stockModifyPricePrint'})
344 344
             
345 345
         },
346
-        handleSizeChange(){},
347
-        handleCurrentChange(){},
346
+        handleSizeChange(val){
347
+          this.limit = val
348
+          this.getlist()
349
+        },
350
+        handleCurrentChange(val){
351
+          this.page = val
352
+          this.getlist()
353
+        },
348 354
          changeGoodName(val){
349 355
          this.currentIndex = val
350 356
         },
@@ -502,7 +508,16 @@ export default {
502 508
            this.getlist()
503 509
          }
504 510
        })
505
-     }
511
+     },
512
+     getChecker(id){
513
+       var name = ""
514
+       for(let i=0;i<this.doctorList.length;i++){
515
+          if(id == this.doctorList[i].admin_user_id){
516
+             name = this.doctorList[i].user_name
517
+          }
518
+       }
519
+       return name
520
+     },
506 521
     },
507 522
     created(){
508 523
         // var nowDate = new Date();
@@ -527,6 +542,7 @@ export default {
527 542
         // (nowDay < 10 ? "0" + nowDay : nowDay);
528 543
          this.getlist()
529 544
     },
545
+  
530 546
     mounted() {
531 547
     },
532 548
 };

+ 8 - 1
src/xt_pages/user/templateSummary.vue Dosyayı Görüntüle

@@ -1467,6 +1467,8 @@
1467 1467
                console.log("时间232233232",list.record_time)
1468 1468
                this.form.template_inspection_id = list.template_inspection_id
1469 1469
                this.form.template_plan_content = list.template_plan_content
1470
+               this.form.template_plan_id = list.template_plan_id,
1471
+               console.log("hhhhhhhhh",list.template_plan_id)
1470 1472
                this.form.template_summary_content =list.template_summary_content
1471 1473
                if(list.template_summary_id == 0){
1472 1474
                  this.form.template_summary_id = ""
@@ -1709,7 +1711,12 @@
1709 1711
       },
1710 1712
       changeYear(val){
1711 1713
         console.log("val2323323223",val)
1712
-        this.startYear = val+"-" + "30"
1714
+        if(val == "2021-02"){
1715
+          this.startYear = val+"-" + "28"
1716
+        }else{
1717
+          this.startYear = val+"-" + "30"
1718
+        }
1719
+       
1713 1720
         this.lastYear = val+"-"+"01"
1714 1721
         this.getInspectionMajor()
1715 1722
       },