28169 11 ヶ月 前
コミット
c8afac3e66

+ 1 - 1
src/api/advice.js ファイルの表示

603
     method:"get",
603
     method:"get",
604
     params:params,
604
     params:params,
605
   })
605
   })
606
-}
606
+}

+ 10 - 0
src/api/dialysis.js ファイルの表示

556
     method:"Get",
556
     method:"Get",
557
     params:params
557
     params:params
558
   })
558
   })
559
+}
560
+
561
+
562
+export function getDialysisProject(params){
563
+  
564
+  return request({
565
+    url:"/api/schedule/getdialysisproject",
566
+    method:"Get",
567
+    params:params
568
+  })
559
 }
569
 }

+ 27 - 0
src/api/pharmacy.js ファイルの表示

120
     params: params
120
     params: params
121
   })
121
   })
122
 }
122
 }
123
+
124
+export function getGoodInventoryList(params){
125
+  
126
+  return request({
127
+    url:"/api/pharmacy/getgoodinventorylist",
128
+    method:"Get",
129
+    params:params,
130
+  })
131
+}
132
+
133
+export function getGoodInventoryByGoodId(id,params){
134
+  
135
+  return request({
136
+    url:"/api/pharmacy/getgoodinventorybygoodid?id="+id,
137
+    method:"get",
138
+    params:params,
139
+  })
140
+}
141
+
142
+export function updateInventoryWarehouseInfo(params){
143
+  
144
+  return request({
145
+    url:"/api/pharmacy/updateInventoryWarehouseInfo",
146
+    method:"get",
147
+    params:params,
148
+  })
149
+} 

+ 12 - 0
src/router/modules/dialysis.js ファイルの表示

144
       }
144
       }
145
     },
145
     },
146
 
146
 
147
+    {
148
+      path: '/dialysis/doctorNewProjectStaticPrint',
149
+      component: () => import('@/xt_pages/dialysis/doctorNewProjectStaticPrint'),
150
+      name: '透析耗材统计打印',
151
+      hidden: true,
152
+      is_menu: false,
153
+      meta: {
154
+        title: '透析耗材统计打印',
155
+        noCache: true
156
+      }
157
+    },
158
+
147
     {
159
     {
148
       path: '/dialysis/signPrint',
160
       path: '/dialysis/signPrint',
149
       component: () => import('@/xt_pages/dialysis/signPrint'),
161
       component: () => import('@/xt_pages/dialysis/signPrint'),

+ 1 - 1
src/xt_pages/dialysis/details/BasicInfor.vue ファイルの表示

174
   },
174
   },
175
   watch:{
175
   watch:{
176
     dialysis_date:function(){
176
     dialysis_date:function(){
177
-      console.log("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh我爱中国",this.dialysis_date)
177
+      // console.log("hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh我爱中国",this.dialysis_date)
178
       this.dialysis_time = this.dialysis_date
178
       this.dialysis_time = this.dialysis_date
179
     }
179
     }
180
   }
180
   }

+ 195 - 5
src/xt_pages/dialysis/newDoctorAdvice.vue ファイルの表示

183
       </div> -->
183
       </div> -->
184
 
184
 
185
       <div style="margin-top: 10px;margin-bottom:10px">
185
       <div style="margin-top: 10px;margin-bottom:10px">
186
-        <el-button type="primary" size="small" @click="toStatic" v-if="org_id!=9671  && org_id!=10340">统计</el-button>
186
+        <el-button type="primary" size="small" @click="toStatic" v-if="org_id!=9671  && org_id!=10340">药品统计</el-button>
187
 
187
 
188
-        <el-button type="primary" size="small" @click="toStaticOne" v-if="org_id == 9671 || org_id==10340">统计</el-button>
188
+        <el-button type="primary" size="small" @click="toStaticOne" v-if="org_id == 9671 || org_id==10340">药品统计</el-button>
189
+
190
+        <el-button type="primary" size="small" @click="toStaticTwo">耗材统计</el-button>
191
+
192
+        
189
       </div>
193
       </div>
190
 
194
 
191
 
195
 
736
         <el-button type="primary" @click="startdialogVisibleOne = false">确 定</el-button>
740
         <el-button type="primary" @click="startdialogVisibleOne = false">确 定</el-button>
737
       </span>
741
       </span>
738
     </el-dialog>
742
     </el-dialog>
743
+
744
+
745
+    <el-dialog
746
+      title="耗材统计表"
747
+      :visible.sync="startdialogVisibleTwo"
748
+      width="60%">
749
+      <span>
750
+        <div class="cell clearfix" style="margin-bottom:10px">
751
+          <label class="title"> <span class="name">排班班次</span> : </label>
752
+           <el-select v-model="schedule_type" placeholder="请选择" @change="changeScheduleTypeTwo" >
753
+            <el-option
754
+              v-for="item in schedulArr"
755
+              :key="item.value"
756
+              :label="item.label"
757
+              :value="item.value">
758
+            </el-option>
759
+           </el-select>
760
+           <label class="title"> <span class="name">病区选择</span> : </label>
761
+           <el-select v-model="partion_type" placeholder="请选择" @change="changePartionTypeTwo" multiple >
762
+            <el-option
763
+              v-for="item in partitionArr"
764
+              :key="item.id"
765
+              :label="item.name"
766
+              :value="item.id">
767
+            </el-option>
768
+           </el-select>
769
+           <el-button size="small" icon="el-icon-printer"  @click="toPrintThree" type="primary">打印</el-button>
770
+           <el-button size="small"  @click="toExportListTwo" type="primary">导出</el-button>
771
+        </div>
772
+
773
+      <el-table
774
+        :data="tableProjectList"
775
+        border
776
+        :row-style="{ color: '#303133' }"
777
+        :header-cell-style="{
778
+          backgroundColor: 'rgb(245, 247, 250)',
779
+          color: '#606266'
780
+        }"
781
+      >
782
+         <el-table-column  align="center"  label="序号">
783
+           <template slot-scope="scope">
784
+              {{scope.$index+1}}
785
+           </template>
786
+        </el-table-column>
787
+        <el-table-column  align="center"   label="耗材名称">
788
+         <template slot-scope="scope">
789
+            {{scope.row.good_name}}
790
+          </template>
791
+        </el-table-column>
792
+        <el-table-column  align="center"  label="规格">
793
+           <template slot-scope="scope">
794
+             {{scope.row.specification_name}}
795
+           </template>
796
+        </el-table-column>
797
+
798
+        <el-table-column  align="center"   label="数量">
799
+           <template slot-scope="scope">
800
+              {{scope.row.count}}
801
+           </template>
802
+        </el-table-column>
803
+
804
+
805
+
806
+      </el-table>
807
+      </span>
808
+      <span slot="footer" class="dialog-footer">
809
+        <el-button @click="startdialogVisibleTwo = false">取 消</el-button>
810
+        <el-button type="primary" @click="startdialogVisibleTwo = false">确 定</el-button>
811
+      </span>
812
+    </el-dialog>
739
     </div>
813
     </div>
740
 
814
 
741
 
815
 
744
 
818
 
745
 <script>
819
 <script>
746
 const moment = require('moment')
820
 const moment = require('moment')
747
-import { getSchedualPatient, GetAllZone,getDialysisAdviceToday } from "@/api/dialysis";
821
+import { getSchedualPatient, GetAllZone,getDialysisAdviceToday,getDialysisProject } from "@/api/dialysis";
748
 import { parseTime } from "@/utils";
822
 import { parseTime } from "@/utils";
749
 import { uParseTime } from '@/utils/tools'
823
 import { uParseTime } from '@/utils/tools'
750
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
824
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
826
       tableList:[],
900
       tableList:[],
827
       startdialogVisible:false,
901
       startdialogVisible:false,
828
       startdialogVisibleOne:false,
902
       startdialogVisibleOne:false,
903
+      startdialogVisibleTwo:false,
829
       schedule_type:0,
904
       schedule_type:0,
830
       partion_type:0,
905
       partion_type:0,
831
       druglist:[],
906
       druglist:[],
839
       zoneIdList:[],
914
       zoneIdList:[],
840
       partion_str:"",
915
       partion_str:"",
841
       keyword:"",
916
       keyword:"",
917
+      tableProjectList:[],
842
     };
918
     };
843
   },
919
   },
844
   created() {
920
   created() {
1882
                 this.tableList = hisarr
1958
                 this.tableList = hisarr
1883
               }
1959
               }
1884
 
1960
 
1885
-              console.log("中国人民解放军",this.tableList)
1961
+             
1886
              }
1962
              }
1887
           }
1963
           }
1888
         })
1964
         })
1932
 
2008
 
1933
               if(doctorList!=null && doctorList.length > 0){
2009
               if(doctorList!=null && doctorList.length > 0){
1934
 
2010
 
1935
-                let dataInfo = {}
2011
+                  let dataInfo = {}
1936
                   doctorList.forEach((item, index) => {
2012
                   doctorList.forEach((item, index) => {
1937
                   item.advice_name = item.advice_name.replace(/\s/g,"")
2013
                   item.advice_name = item.advice_name.replace(/\s/g,"")
1938
                   let { advice_name } = item
2014
                   let { advice_name } = item
2009
         })
2085
         })
2010
 
2086
 
2011
       },
2087
       },
2088
+      toStaticTwo(){
2089
+        var str = ""
2090
+         if(this.partion_type==0){
2091
+            str = this.zoneIdList.join(",")
2092
+         }
2093
+         if(this.partion_type!=0){
2094
+            str = this.partion_type.join(",")
2095
+         }
2096
+         this.partion_str = ""
2097
+         this.partion_str = str  
2098
+         this.tableList = []
2099
+          var params = {
2100
+            schedule_type:this.schedule_type,
2101
+            partion_type:str,
2102
+            selected_date: moment(this.time).format('YYYY-MM-DD'),
2103
+          }
2104
+         getDialysisProject(params).then(response=>{
2105
+           if(response.data.state ==1){
2106
+             var list = response.data.data.list
2107
+             var newArr = []
2108
+             if(list!=null && list.length>0){
2109
+               for(let i=0;i<list.length;i++){
2110
+                 for(let j=0;j<list[i].his_doctor_project.length;j++){
2111
+                    newArr.push(list[i].his_doctor_project[j])
2112
+                 }
2113
+               }
2114
+             }
2115
+             
2116
+             let dataInfo = {}
2117
+              newArr.forEach((item, index) => {
2118
+              let { project_id } = item
2119
+              if (!dataInfo[project_id]) {
2120
+                dataInfo[project_id] = {
2121
+                  project_id:item.project_id,
2122
+                  good_name:item.good.good_name,
2123
+                  specification_name:item.good.specification_name,
2124
+                  child: [],
2125
+                  count:0,
2126
+                }
2127
+              }
2128
+            })
2129
+            let arr = Object.values(dataInfo)
2130
+            
2131
+            if(arr!=null && arr.length >0){
2132
+              for(let i =0;i<arr.length;i++){
2133
+                for(let j=0;j<newArr.length;j++){
2134
+                   if(arr[i].project_id == newArr[j].project_id){
2135
+                      arr[i].child.push(newArr[i])
2136
+                   }
2137
+                } 
2138
+              }
2139
+              for(let i =0;i<arr.length;i++){
2140
+                for(let j=0;j<arr[i].child.length;j++){
2141
+                   arr[i].count += parseInt(arr[i].child[j].count)
2142
+                }
2143
+              }
2144
+
2145
+              console.log("arr0000000000000000000000",arr)
2146
+
2147
+              this.startdialogVisibleTwo = true
2148
+              this.tableProjectList = []
2149
+              this.tableProjectList = arr
2150
+
2151
+            }
2152
+           }
2153
+         })
2154
+      },
2012
       getDrugAdviceCount(advice_name,zone_name){
2155
       getDrugAdviceCount(advice_name,zone_name){
2013
         var str = ""
2156
         var str = ""
2014
         var arr =[]
2157
         var arr =[]
2100
         var schedule_date = moment(this.time).format('YYYY-MM-DD')
2243
         var schedule_date = moment(this.time).format('YYYY-MM-DD')
2101
         this.$router.push({path:"/dialysis/doctorNewAdviceStaticPrint?schedule_type="+this.schedule_type+"&partion_type="+this.partion_str+"&schedule_date="+schedule_date+"&is_open="+this.config.is_open})
2244
         this.$router.push({path:"/dialysis/doctorNewAdviceStaticPrint?schedule_type="+this.schedule_type+"&partion_type="+this.partion_str+"&schedule_date="+schedule_date+"&is_open="+this.config.is_open})
2102
       },
2245
       },
2246
+      toPrintThree(){
2247
+        var schedule_date = moment(this.time).format('YYYY-MM-DD')
2248
+        this.$router.push({path:"/dialysis/doctorNewProjectStaticPrint?schedule_type="+this.schedule_type+"&partion_type="+this.partion_str+"&schedule_date="+schedule_date+"&is_open="+this.config.is_open})
2249
+      },
2103
       toExportListOne(){
2250
       toExportListOne(){
2104
         import('@/vendor/Export2Excel').then(excel => {
2251
         import('@/vendor/Export2Excel').then(excel => {
2105
 
2252
 
2127
             this.downloadLoading = false
2274
             this.downloadLoading = false
2128
           })
2275
           })
2129
       },
2276
       },
2277
+      toExportListTwo(){
2278
+        import('@/vendor/Export2Excel').then(excel => {
2279
+
2280
+          if(this.tableProjectList!=null && this.tableProjectList.length > 0){
2281
+            for(let i=0;i<this.tableProjectList.length;i++){
2282
+              this.tableProjectList[i].index = i+1
2283
+            }
2284
+          }
2285
+          const tHeader = ['序号','耗材名称','规格','数量']
2286
+          const filterVal = ['index','good_name','specification_name','count']
2287
+
2288
+          const data = this.formatJson(filterVal, this.tableProjectList)
2289
+          excel.export_json_to_excel({
2290
+            header: tHeader,
2291
+            data,
2292
+            filename: '耗材统计'
2293
+          })
2294
+            this.downloadLoading = false
2295
+          })
2296
+      },
2130
       formatJson(filterVal, jsonData) {
2297
       formatJson(filterVal, jsonData) {
2131
         return jsonData.map(v => filterVal.map(j => v[j]));
2298
         return jsonData.map(v => filterVal.map(j => v[j]));
2132
       },
2299
       },
2146
         this.tableDataList = []
2313
         this.tableDataList = []
2147
         this.toStaticOne()
2314
         this.toStaticOne()
2148
       },
2315
       },
2316
+      changeScheduleTypeTwo(){
2317
+        this.tableProjectList = []
2318
+        this.toStaticTwo()
2319
+      },
2320
+      changePartionTypeTwo(){
2321
+        this.tableProjectList=[]
2322
+        this.toStaticTwo()
2323
+      },
2149
       getModeId(val){
2324
       getModeId(val){
2150
         if(val!=null && val.length > 0){
2325
         if(val!=null && val.length > 0){
2151
           let dataInfo = {}
2326
           let dataInfo = {}
2273
              if(hisNewArr[i].mode_id == 32){
2448
              if(hisNewArr[i].mode_id == 32){
2274
                 hisNewArr[i].mode_id = "HDP"
2449
                 hisNewArr[i].mode_id = "HDP"
2275
              }
2450
              }
2451
+             if(hisNewArr[i].mode_id == 33){
2452
+                hisNewArr[i].mode_id = "HFD"
2453
+             }
2454
+             if(hisNewArr[i].mode_id == 34){
2455
+                hisNewArr[i].mode_id = "HDF100"
2456
+             }
2457
+             if(hisNewArr[i].mode_id == 35){
2458
+                hisNewArr[i].mode_id = "HDF600"
2459
+             }
2460
+             if(hisNewArr[i].mode_id == 36){
2461
+                hisNewArr[i].mode_id = "HDF800"
2462
+             }
2463
+             if(hisNewArr[i].mode_id == 37){
2464
+                hisNewArr[i].mode_id = "HDF1000"
2465
+             }
2276
              str += hisNewArr[i].mode_id +"("+hisNewArr[i].child.length+")" +"\n"
2466
              str += hisNewArr[i].mode_id +"("+hisNewArr[i].child.length+")" +"\n"
2277
            }
2467
            }
2278
 
2468
 

+ 30 - 14
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue ファイルの表示

4441
                 })
4441
                 })
4442
 
4442
 
4443
               } else {
4443
               } else {
4444
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4445
-                that.order.is_upload_diagnose = 1
4444
+                that.$message({ message: '预核验成功', type: 'success', duration: 5000 })
4445
+                // that.order.is_upload_diagnose = 1
4446
               }
4446
               }
4447
 
4447
 
4448
             }
4448
             }
4480
                 })
4480
                 })
4481
 
4481
 
4482
               } else {
4482
               } else {
4483
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4484
-                that.order.is_upload_diagnose = 1
4483
+                that.$message({ message: '签名成功', type: 'success', duration: 5000 })
4485
               }
4484
               }
4486
 
4485
 
4487
             }
4486
             }
4518
                 })
4517
                 })
4519
 
4518
 
4520
               } else {
4519
               } else {
4521
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4522
-                that.order.is_upload_diagnose = 1
4520
+                that.$message({ message: '处方上传成功', type: 'success', duration: 5000 })
4523
               }
4521
               }
4524
 
4522
 
4525
             }
4523
             }
4556
                 })
4554
                 })
4557
 
4555
 
4558
               } else {
4556
               } else {
4559
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4560
-                that.order.is_upload_diagnose = 1
4557
+                that.$message({ message: '撤销成功', type: 'success', duration: 5000 })
4561
               }
4558
               }
4562
 
4559
 
4563
             }
4560
             }
4594
                 })
4591
                 })
4595
 
4592
 
4596
               } else {
4593
               } else {
4597
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4598
-                that.order.is_upload_diagnose = 1
4594
+                that.$confirm(response.data.data.info, '医保信息', {
4595
+                  confirmButtonText: '确 定',
4596
+                  type: 'warning'
4597
+                }).then(() => {
4598
+
4599
+                }).catch(() => {
4600
+
4601
+                })
4602
+
4599
               }
4603
               }
4600
 
4604
 
4601
             }
4605
             }
4632
                 })
4636
                 })
4633
 
4637
 
4634
               } else {
4638
               } else {
4635
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4636
-                that.order.is_upload_diagnose = 1
4639
+                that.$confirm(response.data.data.info, '医保信息', {
4640
+                  confirmButtonText: '确 定',
4641
+                  type: 'warning'
4642
+                }).then(() => {
4643
+
4644
+                }).catch(() => {
4645
+
4646
+                })
4637
               }
4647
               }
4638
 
4648
 
4639
             }
4649
             }
4670
                 })
4680
                 })
4671
 
4681
 
4672
               } else {
4682
               } else {
4673
-                that.$message({ message: '上传成功', type: 'success', duration: 5000 })
4674
-                that.order.is_upload_diagnose = 1
4683
+                that.$confirm(response.data.data.info, '医保信息', {
4684
+                  confirmButtonText: '确 定',
4685
+                  type: 'warning'
4686
+                }).then(() => {
4687
+
4688
+                }).catch(() => {
4689
+
4690
+                })
4675
               }
4691
               }
4676
 
4692
 
4677
             }
4693
             }

+ 4 - 0
src/xt_pages/stock/drugs/inventory.vue ファイルの表示

336
                   //  }else{
336
                   //  }else{
337
                   //    list[i].type = 6
337
                   //    list[i].type = 6
338
                   //   }
338
                   //   }
339
+                   list[i].last_stock_max_number = 0
340
+                   list[i].last_stock_max_number = list[i].stock_max_number
341
+                   list[i].last_stock_min_number = 0
342
+                   list[i].last_stock_min_number = list[i].stock_min_number
339
                    list[i].type = 6
343
                    list[i].type = 6
340
                    for(let j=0;j<this.manufacturerList.length;j++){
344
                    for(let j=0;j<this.manufacturerList.length;j++){
341
                      if(list[i].manufacturer == this.manufacturerList[j].id){
345
                      if(list[i].manufacturer == this.manufacturerList[j].id){

+ 4 - 1
src/xt_pages/stock/inventory.vue ファイルの表示

462
               //   list[i].type = 6
462
               //   list[i].type = 6
463
               // }
463
               // }
464
               list[i].type =6
464
               list[i].type =6
465
+
466
+              list[i].last_stock_count = 0
467
+              list[i].last_stock_count = list[i].stock_count
465
               
468
               
466
               list[i].good_name = list[i].GoodInfo.good_name
469
               list[i].good_name = list[i].GoodInfo.good_name
467
               list[i].specification_name = list[i].GoodInfo.specification_name
470
               list[i].specification_name = list[i].GoodInfo.specification_name
501
               }
504
               }
502
             }
505
             }
503
         
506
         
504
-          
507
+          console.log("hahhahahahah",newList)
505
           this.tableData = newList
508
           this.tableData = newList
506
           this.showSearch = false
509
           this.showSearch = false
507
           this.showTable = true
510
           this.showTable = true

+ 9 - 1
src/xt_pages/stock/stockInventory.vue ファイルの表示

11
             <el-tab-pane label="耗材盘点(模式二)" name="four">
11
             <el-tab-pane label="耗材盘点(模式二)" name="four">
12
                 <new-inventory ref="childFour"></new-inventory>
12
                 <new-inventory ref="childFour"></new-inventory>
13
             </el-tab-pane>
13
             </el-tab-pane>
14
+            <el-tab-pane label="耗材盘点(模式三)" name="five">
15
+                <history-inventory ref="childFive"></history-inventory>
16
+            </el-tab-pane>
14
             <el-tab-pane label="盘点列表" name="second">
17
             <el-tab-pane label="盘点列表" name="second">
15
                 <inventory-details ref="child"></inventory-details>
18
                 <inventory-details ref="child"></inventory-details>
16
             </el-tab-pane>
19
             </el-tab-pane>
29
 import BreadCrumb from "../components/bread-crumb";
32
 import BreadCrumb from "../components/bread-crumb";
30
 import inventory from './inventory.vue'
33
 import inventory from './inventory.vue'
31
 import newInventory from './newInventory.vue'
34
 import newInventory from './newInventory.vue'
35
+import historyInventory from './historyInventory.vue'
32
 import inventoryDetails from './inventoryDetails.vue'
36
 import inventoryDetails from './inventoryDetails.vue'
33
 import stockDamaged from "./stockDamaged.vue"
37
 import stockDamaged from "./stockDamaged.vue"
34
 export default {
38
 export default {
38
         inventory,
42
         inventory,
39
         inventoryDetails,
43
         inventoryDetails,
40
         stockDamaged,
44
         stockDamaged,
41
-        newInventory
45
+        newInventory,
46
+        historyInventory
42
     },
47
     },
43
     data() {
48
     data() {
44
         return{
49
         return{
61
         if(this.activeName =="three"){
66
         if(this.activeName =="three"){
62
           this.$refs.childOne.getlist()
67
           this.$refs.childOne.getlist()
63
         }
68
         }
69
+        if(this.activeName == "five"){
70
+          this.$refs.childFive.getGoodInventoryList()
71
+        }
64
       }
72
       }
65
     },
73
     },
66
     created(){
74
     created(){