Kaynağa Gözat

11月14日 库存扣减更新

XMLWAN 3 yıl önce
ebeveyn
işleme
7d529a0292

+ 1 - 1
index.html Dosyayı Görüntüle

@@ -18,7 +18,7 @@
18 18
   </head>
19 19
 
20 20
   <body>
21
-    <script src="https://cdn.bootcdn.net/ajax/libs/reconnecting-websocket/1.0.0/reconnecting-websocket.min.js"></script>
21
+    <script src="https://images.shengws.com/reconnecting-websocket.min.js"></script>
22 22
     <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
23 23
     <script src="<%= htmlWebpackPlugin.options.path %>/tinymce4.7.5/tinymce.min.js"></script>
24 24
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.config.js"></script>

+ 2 - 0
src/lang/en.js Dosyayı Görüntüle

@@ -95,6 +95,8 @@ export default {
95 95
     deviceZoneManage: 'Device Zone Manage',
96 96
     deviceGroupManage: 'Device Group Manage',
97 97
     stockManage: 'Stock Manage',
98
+    supplyManage: 'Supply Manage',
99
+    supplyQuery: 'supply query',
98 100
     baseInfo: 'base Info',
99 101
     stockIn: 'stock in',
100 102
     stockOut: 'stock out',

+ 6 - 1
src/lang/zh.js Dosyayı Görüntüle

@@ -120,6 +120,8 @@ export default {
120 120
     orderRecord: '订单详情',
121 121
     recordList: '订单记录',
122 122
     stockManage: '耗材管理',
123
+    supplyManage: '采购管理',
124
+    supplyList: '供应商管理',
123 125
     goodType: '商品类型',
124 126
     stockIn: '入库管理',
125 127
     stockOut: '出库管理',
@@ -134,6 +136,9 @@ export default {
134 136
     stockOutRecord: '出库记录',
135 137
     addStockIn: '入库',
136 138
     stockQuery: '库存查询',
139
+    supplyQuery: '供应商管理',
140
+    purchaseOrderQuery: '购货订单',
141
+    addPurchaseOrder: '新增购货订单',
137 142
     workforce_template: '排班模板设置',
138 143
     statistics: '统计分析',
139 144
     statisticalConfig: '统计配置',
@@ -262,7 +267,7 @@ export default {
262 267
     summary_tool: '项目消费明细汇总',
263 268
     labelPrint: '标签打印',
264 269
     faPiao: '发票设置',
265
-    chargeDetailManagement:'收费明细'
270
+    chargeDetailManagement: '收费明细'
266 271
   },
267 272
   navbar: {
268 273
     logOut: '退出登录',

+ 12 - 16
src/router/index.js Dosyayı Görüntüle

@@ -31,10 +31,7 @@ import hospitalRecord from './modules/hospitalRecord'
31 31
 import hospitalStation from './modules/hospitalStation'
32 32
 import hospitalCharges from './modules/hospitalCharges'
33 33
 import hisTool from './modules/hisTool'
34
-
35
-
36
-
37
-
34
+import supply from './modules/supply'
38 35
 
39 36
 // import outpatientRecord from './modules/outpatientRecord'
40 37
 import kuyiShopping from './modules/kuyiShopping'
@@ -55,9 +52,7 @@ import templateManagement from './modules/templateManagement'
55 52
 import DepartManage from './modules/DepartManage'
56 53
 import basicConfig from './modules/basicConfig'
57 54
 
58
-
59
-
60
-Vue.use(Router);
55
+Vue.use(Router)
61 56
 
62 57
 /** note: submenu only apppear when children.length>=1
63 58
  *   detail see  https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
@@ -103,7 +98,7 @@ var _constant_router_map = [{
103 98
   path: '',
104 99
   component: Layout,
105 100
   redirect: '/home',
106
-  name:'home',
101
+  name: 'home',
107 102
   children: [{
108 103
     path: '/home',
109 104
     component: () => import('@/xt_pages/home/index'),
@@ -118,7 +113,7 @@ var _constant_router_map = [{
118 113
 {
119 114
   path: '/kuyiShopping',
120 115
   component: Layout,
121
-  name:'kuyiShopping',
116
+  name: 'kuyiShopping',
122 117
   redirct: '/kuyiShopping/index',
123 118
   children: [{
124 119
     path: '/kuyiShopping/index',
@@ -142,7 +137,7 @@ service
142 137
   // device,
143 138
   // role,
144 139
   // org
145
-];
140
+]
146 141
 
147 142
 var _asy_router_map = [
148 143
   patient,
@@ -185,19 +180,20 @@ var _asy_router_map = [
185 180
   hospitalCharges,
186 181
   hisTool,
187 182
   integration,
188
-  basicConfig
189
-];
183
+  basicConfig,
184
+  supply
185
+]
190 186
 
191
-var is_asy_router = process.env.NODE_ENV === 'production'; // true; 设置为 true 强制进行路由验证
187
+var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证
192 188
 if (!is_asy_router) {
193
-  _constant_router_map = _constant_router_map.concat(_asy_router_map);
189
+  _constant_router_map = _constant_router_map.concat(_asy_router_map)
194 190
   _asy_router_map = []
195 191
 } else {
196 192
 
197 193
 }
198 194
 
199
-export const xt_constantRouterMap = _constant_router_map;
200
-export const xt_asyncRouterMap = _asy_router_map;
195
+export const xt_constantRouterMap = _constant_router_map
196
+export const xt_asyncRouterMap = _asy_router_map
201 197
 
202 198
 export default new Router({
203 199
   // mode: 'history', // require service support

+ 12 - 1
src/views/layout/Layout.vue Dosyayı Görüntüle

@@ -16,6 +16,10 @@
16 16
           <i class="iconfont icon-computer_fill navIcon"></i>
17 17
           <p>透析管理</p>
18 18
         </div>
19
+        <!-- <div v-if="caigouShow" :class="index == 5 ? 'navOne navActive' : 'navOne'" @click="clickActive(5,'采购管理')">
20
+          <i class="iconfont icon-kccx navIcon"></i>
21
+          <p>采购管理</p>
22
+        </div> -->
19 23
         <div v-if="kucunShow" :class="index == 3 ? 'navOne navActive' : 'navOne'" @click="clickActive(3,'库房管理')">
20 24
           <i class="iconfont icon-kccx navIcon"></i>
21 25
           <p>库房管理</p>
@@ -119,14 +123,15 @@ export default {
119 123
       kucunShow:true,
120 124
       peizhiShow:true,
121 125
       kuyishoppingShow:true,
126
+      caigouShow:true,
122 127
     }
123 128
   },
124 129
   created(){
125
-    console.log('permission_routers',this.permission_routers);
126 130
     let menzhen = ['hospitalStation',"hospitalRecord","hospitalCharges","hisTool",'outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord'];
127 131
     let bingli = ['User','createPatient'];
128 132
     let touxi = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control'];
129 133
     let kucun = ['stockManage','stockDrugs','selfPreparedMedicine','otherManagement'];
134
+    let caigou = ['supplyManage','supplyList'];
130 135
     let peizhi = ['system','roleManage','DepartManage', 'bedManagement', 'dictionaryManagement', 'templateManagement','showconfig','printTemplate','integration_config','basicConfig'];
131 136
     let kuyishopping = ['kuyiShopping'];
132 137
     let menzhenArr = [];
@@ -135,6 +140,7 @@ export default {
135 140
     let kucunArr = [];
136 141
     let peizhiArr = [];
137 142
     let kuyishoppingArr = [];
143
+    let caigouArr =[]
138 144
     this.permission_routers.map(item => {
139 145
       if(menzhen.indexOf(item.name) > -1){
140 146
         menzhenArr.push(item)
@@ -148,6 +154,8 @@ export default {
148 154
         peizhiArr.push(item)
149 155
       }else if(kuyishopping.indexOf(item.name) > -1){
150 156
         kuyishoppingArr.push(item)
157
+      }else if(caigou.indexOf(item.name)>-1){
158
+         caigouArr.push(item)
151 159
       }
152 160
     });
153 161
     // console.log('menzhenArr.length',menzhenArr.length)
@@ -156,6 +164,7 @@ export default {
156 164
     // console.log('kucunArr.length',kucunArr.length)
157 165
     // console.log('peizhiArr.length',peizhiArr.length)
158 166
     // console.log('kuyishoppingArr.length',kuyishoppingArr.length)
167
+    console.log("cagouArr23323322323",caigouArr.length)
159 168
     if(menzhenArr.length == 0){
160 169
       this.menzhenShow = false
161 170
     }else if(bingliArr.length == 0){
@@ -168,6 +177,8 @@ export default {
168 177
       this.peizhiShow = false
169 178
     }else if(kuyishoppingArr.length == 0){
170 179
       this.kuyishoppingShow = false
180
+    }else if(caigouArr.length == 0){
181
+      this.caigouShow = false
171 182
     }
172 183
   },
173 184
   computed: {

+ 16 - 1
src/views/layout/components/Sidebar/index.vue Dosyayı Görüntüle

@@ -122,7 +122,22 @@ export default {
122 122
           }
123 123
         }else if(newVal == '库房管理'){
124 124
           let nameArr = ['stockManage','stockDrugs','selfPreparedMedicine','otherManagement'];
125
-          // console.log('permission_routers',this.permission_routers)
125
+          let routerArr = [];
126
+          this.permission_routers.map(item => {
127
+            if(nameArr.indexOf(item.name) > -1){
128
+              routerArr.push(item)
129
+            }
130
+          });
131
+          this.arr = routerArr;
132
+          if(this.arr.length > 0){
133
+            let a = true;
134
+            this.$emit('func',a)
135
+          }else{
136
+            let a = false;
137
+            this.$emit('func',a)
138
+          }
139
+        }else if(newVal == "采购管理"){
140
+          let nameArr = ['supplyManage','supplyList'];
126 141
           let routerArr = [];
127 142
           this.permission_routers.map(item => {
128 143
             if(nameArr.indexOf(item.name) > -1){

+ 31 - 1
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue Dosyayı Görüntüle

@@ -75,7 +75,10 @@
75 75
                        type="primary">挂号
76 76
             </el-button>
77 77
 
78
-
78
+            <el-button v-loading="loadingone" size="small"
79
+                       @click="open(20)"
80
+                       type="primary">查询备案信息
81
+            </el-button>
79 82
             <el-button size="small" @click="open(5)" type="primary"
80 83
                        v-if="this.radio == 2  && this.hisPatientInfo.id > 0 && this.order.id > 0 &&  this.order.order_status == 2">
81 84
               退费
@@ -2400,6 +2403,33 @@ export default {
2400 2403
             })
2401 2404
             .catch(function(error) {
2402 2405
             })
2406
+      }else if(index == 20){
2407
+        var that = this
2408
+        let params = {
2409
+          'patient_id': this.patientInfo.id,
2410
+          'admin_user_id': this.$store.getters.xt_user.user.id
2411
+        }
2412
+        axios.get('http://127.0.0.1:9532/api/psn/info', {
2413
+          params: params
2414
+        })
2415
+            .then(function(response) {
2416
+              if (response.data.state == 0) {
2417
+                that.$message.error(response.data.msg)
2418
+                return false
2419
+              } else {
2420
+                that.$confirm(response.data.data.result, '备案信息', {
2421
+                  confirmButtonText: '确 定',
2422
+                  type: 'warning'
2423
+                }).then(() => {
2424
+
2425
+                }).catch(() => {
2426
+                })
2427
+              }
2428
+            })
2429
+            .catch(function(error) {
2430
+            })
2431
+
2432
+
2403 2433
       }
2404 2434
     },
2405 2435
     choosePatient() {

+ 31 - 23
src/xt_pages/stock/detail/cancelStockDetail.vue Dosyayı Görüntüle

@@ -344,27 +344,35 @@ export default {
344 344
       return name;
345 345
     },
346 346
     search: function() {
347
-      const Params = {
348
-        page: this.page,
349
-        limit: this.limit,
350
-        start_time: this.start_time,
351
-        end_time: this.end_time,
352
-        type: this.type,
353
-        keywords: this.searchKey
354
-      };
355
-     
356
-      this.cancelStockDate = [];
357
-      getStockDetail(Params).then(response => {
358
-        if (response.data.state == 0) {
359
-          this.$message.error(response.data.msg);
360
-          return false;
361
-        } else {
362
-          this.total = response.data.data.total;
363
-          for (let i = 0; i < response.data.data.list.length; i++) {
364
-            this.cancelStockDate.push(response.data.data.list[i]);
365
-          }
366
-        }
367
-      });
347
+      this.GetCancelStock()
348
+      // const Params = {
349
+      //   page: this.page,
350
+      //   limit: this.limit,
351
+      //   start_time: this.start_time,
352
+      //   end_time: this.end_time,
353
+      //   type: this.type,
354
+      //   keywords: this.searchKey
355
+      // };
356
+      // console.log("param2332233223",Params)
357
+      // this.cancelStockDate = [];
358
+      // getStockDetail(Params).then(response => {
359
+      //   if (response.data.state == 0) {
360
+      //     this.$message.error(response.data.msg);
361
+      //     return false;
362
+      //   } else {
363
+      //     this.total = response.data.data.total;
364
+      //     console.log("list322232232",response.data.data.list)
365
+      //     for (let i = 0; i < response.data.data.list.length; i++) {
366
+      //       var obj = response.data.data.list[i];
367
+      //       response.data.data.list[i].total = (response.data.data.list[i].price * response.data.data.list[i].count).toFixed(2)
368
+      //       total += response.data.data.list[i].price * response.data.data.list[i].count
369
+      //       obj["is_total"] = 0;
370
+      //       this.cancelStockDate.push(obj);
371
+      //       this.cancelStockDate.push(response.data.data.list[i])
372
+      //     }
373
+         
374
+      //   }
375
+      // });
368 376
     },
369 377
     AddNewOrder: function() {
370 378
       this.$router.push({
@@ -384,7 +392,7 @@ export default {
384 392
         dealer: this.dealer_id,
385 393
         keywords: this.searchKey
386 394
       };
387
-      console.log("Params23232233223232332",Params)
395
+      // console.log("Params23232233223232332",Params)
388 396
       this.cancelStockDate = [];
389 397
       getStockDetail(Params).then(response => {
390 398
         if (response.data.state == 0) {
@@ -392,7 +400,7 @@ export default {
392 400
           return false;
393 401
         } else {
394 402
           this.total = response.data.data.total;
395
-          console.log("数据源头",response.data.data.list)
403
+          // console.log("数据源头",response.data.data.list)
396 404
           var total = 0
397 405
           for (let i = 0; i < response.data.data.list.length; i++) {
398 406
             

+ 2 - 1
src/xt_pages/stock/drugs/drugStockInOrderAdd.vue Dosyayı Görüntüle

@@ -588,6 +588,7 @@
588 588
         tempObj['dealer'] = ''
589 589
         tempObj['manufacturer'] = ''
590 590
         tempObj['min_unit'] = ''
591
+        tempObj['max_unit'] = ''
591 592
         tempObj["drug_type"] = ''
592 593
         tempObj['batch_number'] = ''
593 594
         tempObj['dose']= ''
@@ -846,7 +847,7 @@
846 847
         this.currentIndex = val
847 848
       },
848 849
       handleSelect(val){
849
-         console.log("val233232323223",val)
850
+         
850 851
          for(let i=0;i<this.recordInfo.recordData.length;i++){
851 852
            if(i == this.currentIndex){
852 853
              this.recordInfo.recordData[i].drug_id  = val.id

+ 1 - 0
src/xt_pages/stock/drugs/drugStockInOrderEdit.vue Dosyayı Görüntüle

@@ -156,6 +156,7 @@
156 156
                     v-model="scope.row.warehousing_count"
157 157
                     style="width:80px"
158 158
                   ></el-input>
159
+                   <!-- {{scope.row.max_unit}} -->
159 160
                    <el-select v-model="scope.row.max_unit" filterable placeholder="请选择单位" style="width:80px">
160 161
                     <el-option
161 162
                       v-for="(option, index) in unitList"

+ 10 - 6
src/xt_pages/stock/drugs/drugStockOutOrder.vue Dosyayı Görüntüle

@@ -906,6 +906,7 @@ export default {
906 906
          id:id,
907 907
          start_time:start_time,
908 908
        }
909
+      console.log("is_sys22222",is_sys) 
909 910
      getSinleOrderDetail(params).then(response=>{
910 911
         if(response.data.state == 1){
911 912
           this.tableShow = true
@@ -928,15 +929,17 @@ export default {
928 929
             this.drugFlowList = drugFlowList
929 930
          }
930 931
          if(is_sys == 0){
931
-            for(let i=0;i<list.length;i++){
932
-              if(list[i].count_unit == list[i].max_unit){
933
-                  list[i].count = list[i].count * list[i].min_number
932
+            var flowlist = response.data.data.flowlist
933
+            this.drugFlowList = []
934
+            for(let i=0;i<flowlist.length;i++){
935
+              if(flowlist[i].count_unit == flowlist[i].max_unit){
936
+                  flowlist[i].count = flowlist[i].count * list[i].min_number
934 937
               }
935
-              if(list[i].count_unit == list[i].min_unit){
936
-                  list[i].count = list[i].count 
938
+              if(flowlist[i].count_unit == flowlist[i].min_unit){
939
+                  flowlist[i].count = flowlist[i].count 
937 940
               }
938 941
             }
939
-            this.drugFlowList = list
942
+            this.drugFlowList = flowlist
940 943
          }
941 944
 
942 945
          for(let i=0;i<list.length;i++){
@@ -1070,6 +1073,7 @@ export default {
1070 1073
          return str + min_str
1071 1074
       },
1072 1075
       getTotalCountOne(id,min_number,max_unit,min_unit){
1076
+        console.log("hhhahdhhff",this.drugFlowList)
1073 1077
         var arr = []
1074 1078
         for(let i=0;i<this.drugFlowList.length;i++){
1075 1079
           if(id == this.drugFlowList[i].drug_id){

+ 2 - 0
src/xt_pages/stock/drugs/drugStockOutOrderAdd.vue Dosyayı Görüntüle

@@ -422,6 +422,8 @@ export default {
422 422
       tempObj["batch_number"] = ""
423 423
       tempObj["max_unit"] = ""
424 424
       tempObj["warehouse_info_id"] = 0
425
+      tempObj["dealer"] = ""
426
+      tempObj['manufacturer'] = ''
425 427
       this.recordInfo.recordData.push(tempObj);
426 428
     },
427 429
     handleDelete: function(index, row) {

+ 2 - 1
src/xt_pages/stock/stockInOrderAdd.vue Dosyayı Görüntüle

@@ -494,7 +494,8 @@
494 494
           }
495 495
         }
496 496
         return name
497
-      }, handleEdit: function(index, row) {
497
+      }, 
498
+      handleEdit: function(index, row) {
498 499
         const tempObj = {}
499 500
         tempObj['good_type_id'] = 0
500 501
         tempObj['good_id'] = 0

+ 0 - 3
src/xt_pages/stock/stockQuery.vue Dosyayı Görüntüle

@@ -109,9 +109,6 @@
109 109
        <el-table-column label="出库数量" align="center" v-if="showOne">
110 110
          <template slot-scope="scope">
111 111
           <span v-if="org_id == 9671 || org_id == 10138 || org_id == 10028 || org_id == 9675 || org_id == 4 || org_id == 3877 || org_id == 10243 || org_id == 10088 || org_id== 10245 || org_id == 9779 || org_id == 10106 || org_id == 9504 || org_id ==  10215 || org_id ==  10088 || org_id == 10191 || org_id == 9919 || org_id == 10265 || org_id == 10164 || org_id ==10290 ">
112
-            <!-- <span>
113
-              {{getWareInfo(scope.row.xt_warehouse_info) - getOverFlushInfo(scope.row.xt_warehouse_info) + getCancelSotckInfo(scope.row.cancel_stock_info) }}
114
-            </span> -->
115 112
              <span>
116 113
               {{getWareInfo(scope.row.xt_warehouse_info) - getOverFlushInfo(scope.row.xt_warehouse_info)}}
117 114
             </span>