test_user 2 years ago
parent
commit
f74ca95ec7

+ 1 - 1
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue View File

@@ -2998,7 +2998,7 @@ export default {
2998 2998
         }
2999 2999
 
3000 3000
         if (this.hisPatientInfo.id_card_type == 1) {
3001
-          if (this.hisPatientInfo.balance_accounts_type != 2 && this.$store.getters.xt_user.org_id != 10088 && this.$store.getters.xt_user.org_id != 10106 && this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217 && this.$store.getters.xt_user.org_id != 10191 && this.$store.getters.xt_user.org_id !=  10318) {
3001
+          if (this.hisPatientInfo.balance_accounts_type != 2 && this.$store.getters.xt_user.org_id != 10088 && this.$store.getters.xt_user.org_id != 10106 && this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217 && this.$store.getters.xt_user.org_id != 10191 && this.$store.getters.xt_user.org_id !=  10318 && this.$store.getters.xt_user.org_id !=  10210) {
3002 3002
             this.pwdFormVisible = true
3003 3003
             this.pwd = ''
3004 3004
           } else {

+ 394 - 24
src/xt_pages/outpatientCharges/summary.vue View File

@@ -110,16 +110,20 @@
110 110
           >
111 111
           <el-button v-if="$store.getters.xt_user.org_id == 10106 || $store.getters.xt_user.org_id == 0" size="small" type="primary" @click="export_detail_ten">报表下载2</el-button>
112 112
           <el-button v-if="$store.getters.xt_user.org_id == 10318 || $store.getters.xt_user.org_id == 0" size="small" type="primary" @click="export_detail_ten_two">报表下载3</el-button>
113
+          <el-button  size="small" type="primary" @click="export_detail_ten_three">报表下载4</el-button>
114
+
113 115
 
114 116
           <!--          <el-button size="small" type="primary" @click="export_detail_two"-->
115 117
           <!--          >报表下载2-->
116 118
           <!--          </el-button-->
117 119
           <!--          >-->
118 120
 
119
-          <!--                    <el-button size="small" type="primary" @click="export_detail_three">报表下载2</el-button>-->
121
+                              <el-button size="small" type="primary" @click="export_detail_three">报表下载2</el-button>
120 122
           <!--          <el-button size="small" type="primary" @click="export_detail_four">报表下载3</el-button>-->
121 123
           <!--          <el-button size="small" type="primary" @click="export_detail_five">报表下载3</el-button>-->
122 124
 <!--                    <el-button size="small" type="primary" @click="export_detail_six">报表下载9</el-button>-->
125
+<!--          <el-button size="small" type="primary" @click="export_detail_tenone">报表下载10</el-button>-->
126
+
123 127
           <!--          <el-button size="small" type="primary" @click="export_detail_seven">报表下载4</el-button>-->
124 128
 
125 129
 
@@ -225,6 +229,9 @@
225 229
             <el-button size="mini" type="primary" @click="toPrint(scope.row)">
226 230
               结算单
227 231
             </el-button>
232
+            <el-button v-if="$store.getters.xt_user.org_id == 10191" size="mini" type="primary" @click="tolistPrint(scope.row)">
233
+              结算清单
234
+            </el-button>
228 235
             <el-button
229 236
                 size="mini"
230 237
                 type="primary"
@@ -233,11 +240,38 @@
233 240
             >
234 241
               上传结算清单
235 242
             </el-button>
243
+
244
+            <el-button
245
+              size="mini"
246
+              type="primary"
247
+              @click="confirmUploadInfo(scope.row)"
248
+              v-if="$store.getters.xt_user.org_id == 10265"
249
+            >
250
+              确认结算清单
251
+            </el-button>
252
+            <el-button
253
+              size="mini"
254
+              type="primary"
255
+              @click="cancelUploadTwo(scope.row)"
256
+              v-if="$store.getters.xt_user.org_id == 10265"
257
+            >
258
+              取消结算清单
259
+            </el-button>
260
+
261
+            <el-button
262
+              size="mini"
263
+              type="primary"
264
+              @click="queryData(scope.row)"
265
+              v-if="$store.getters.xt_user.org_id == 10265"
266
+            >
267
+              查询结算清单
268
+            </el-button>
269
+
236 270
             <el-button
237 271
                 size="mini"
238 272
                 type="primary"
239 273
                 @click="cancelUpload(scope.row)"
240
-                v-if="scope.row.order_status == 2 && scope.row.result.id > 0"
274
+                v-if="$store.getters.xt_user.org_id != 10265 && scope.row.order_status == 2 && scope.row.result.id > 0"
241 275
             >
242 276
               撤销结算清单
243 277
             </el-button>
@@ -290,6 +324,16 @@
290 324
           :paramsObj="orderObj"
291 325
       ></new-statement-print>
292 326
     </el-dialog>
327
+    <el-dialog
328
+      class="centerDialog"
329
+      width="1200px"
330
+      title="打印"
331
+      :visible.sync="statementListVisible"
332
+    >
333
+      <!--<statementPrint ref="print" :paramsObj='orderObj'></statementPrint>-->
334
+    <statement-list-print ref="printlist" :paramsObj='orderObj'></statement-list-print>
335
+    </el-dialog>
336
+
293 337
     <el-dialog
294 338
         class="centerDialog"
295 339
         width="900px"
@@ -354,13 +398,15 @@ import invoicePrint from "./invoicePrint";
354 398
 import settlementPrint from "./settlementPrint";
355 399
 import {jsGetAge, uParseTime} from "@/utils/tools";
356 400
 
357
-import {getHisDataFive, getHisDataSix, getHisDataThree, getHisDataTwo,getAllOrders} from "../../api/his/his";
401
+import {getHisDataFive, getHisDataSix, getHisDataThree, getHisDataTwo,getAllOrders,exportOrderInfo} from "../../api/his/his";
358 402
 
359
-import {handleData10106,handleData10318} from "../../api/his/his_export";
403
+import {handleData10106,handleData10318,handleData10138Two} from "../../api/his/his_export";
404
+import StatementListPrint from "./statementListPrint";
360 405
 
361 406
 export default {
362 407
   name: "OutpatientChargesSummary",
363 408
   components: {
409
+    StatementListPrint,
364 410
     NewStatementPrintTwo,
365 411
     NewStatementPrint,
366 412
     BreadCrumb,
@@ -372,6 +418,7 @@ export default {
372 418
   data() {
373 419
     return {
374 420
       orderObj: {},
421
+      statementListVisible:false,
375 422
       statementVisible: false,
376 423
       statementVisible9504: false,
377 424
       orderObj9504: {},
@@ -482,10 +529,46 @@ export default {
482 529
           return "普通住院";
483 530
           break;
484 531
       }
532
+    },cancelUploadTwo(row){
533
+      if(this.$store.getters.xt_user.org_id == 10265){
534
+        var that = this;
535
+        axios
536
+          .get("http://127.0.0.1:9532/api/4102", {
537
+            params: {
538
+              order_id: row.id,
539
+              admin_user_id: this.$store.getters.xt_user.user.id,
540
+              stas_type: 0
541
+            },
542
+          })
543
+          .then(function (response) {
544
+            if (response.data.state == 0) {
545
+              that.$message.error(response.data.msg);
546
+              return false;
547
+            } else {
548
+              if (response.data.data.failed_code == -10) {
549
+                // that.$message.error(response.data.data.msg)
550
+                that
551
+                  .$confirm(response.data.data.msg, "医保错误信息", {
552
+                    confirmButtonText: "确 定",
553
+                    type: "warning",
554
+                  })
555
+                  .then(() => {
556
+                  })
557
+                  .catch(() => {
558
+                  });
559
+              } else {
560
+                that.$message.success("撤销成功");
561
+                row.result.id = 0;
562
+              }
563
+            }
564
+          })
565
+          .catch(function (error) {
566
+          });
567
+      }
485 568
     },
486 569
     cancelUpload(row) {
487
-      var that = this;
488
-      axios
570
+        var that = this;
571
+        axios
489 572
           .get("http://127.0.0.1:9532/zh/api/clearsettle", {
490 573
             params: {
491 574
               order_id: row.id,
@@ -500,14 +583,14 @@ export default {
500 583
               if (response.data.data.failed_code == -10) {
501 584
                 // that.$message.error(response.data.data.msg)
502 585
                 that
503
-                    .$confirm(response.data.data.msg, "医保错误信息", {
504
-                      confirmButtonText: "确 定",
505
-                      type: "warning",
506
-                    })
507
-                    .then(() => {
508
-                    })
509
-                    .catch(() => {
510
-                    });
586
+                  .$confirm(response.data.data.msg, "医保错误信息", {
587
+                    confirmButtonText: "确 定",
588
+                    type: "warning",
589
+                  })
590
+                  .then(() => {
591
+                  })
592
+                  .catch(() => {
593
+                  });
511 594
               } else {
512 595
                 that.$message.success("撤销成功");
513 596
                 row.result.id = 0;
@@ -516,6 +599,7 @@ export default {
516 599
           })
517 600
           .catch(function (error) {
518 601
           });
602
+
519 603
     },
520 604
     uploadInfo(row) {
521 605
       var that = this;
@@ -550,6 +634,82 @@ export default {
550 634
           })
551 635
           .catch(function (error) {
552 636
           });
637
+    },queryData(row){
638
+      var that = this;
639
+      axios
640
+        .get("http://127.0.0.1:9532/api/4103", {
641
+          params: {
642
+            order_id: row.id,
643
+            admin_user_id: this.$store.getters.xt_user.user.id,
644
+          },
645
+        })
646
+        .then(function (response) {
647
+          if (response.data.state == 0) {
648
+            that.$message.error(response.data.msg);
649
+            return false;
650
+          } else {
651
+            if (response.data.data.failed_code == -10) {
652
+              that
653
+                .$confirm(response.data.data.msg, "医保错误信息", {
654
+                  confirmButtonText: "确 定",
655
+                  type: "warning",
656
+                })
657
+                .then(() => {
658
+                })
659
+                .catch(() => {
660
+                });
661
+            } else {
662
+              that
663
+                .$confirm(response.data.data.msg, "医保信息", {
664
+                  confirmButtonText: "确 定",
665
+                })
666
+                .then(() => {
667
+                })
668
+                .catch(() => {
669
+                });
670
+            }
671
+          }
672
+        })
673
+        .catch(function (error) {
674
+        });
675
+
676
+
677
+    },
678
+    confirmUploadInfo(row){
679
+      var that = this;
680
+      axios
681
+        .get("http://127.0.0.1:9532/api/4102", {
682
+          params: {
683
+            order_id: row.id,
684
+            admin_user_id: this.$store.getters.xt_user.user.id,
685
+            stas_type: 1
686
+          },
687
+        })
688
+        .then(function (response) {
689
+          if (response.data.state == 0) {
690
+            that.$message.error(response.data.msg);
691
+            return false;
692
+          } else {
693
+            if (response.data.data.failed_code == -10) {
694
+              that
695
+                .$confirm(response.data.data.msg, "医保错误信息", {
696
+                  confirmButtonText: "确 定",
697
+                  type: "warning",
698
+                })
699
+                .then(() => {
700
+                })
701
+                .catch(() => {
702
+                });
703
+            } else {
704
+              that.$message.success("确认成功");
705
+              row.result.id = response.data.data.result.id;
706
+            }
707
+          }
708
+        })
709
+        .catch(function (error) {
710
+        });
711
+
712
+
553 713
     },
554 714
 
555 715
     fetchAllAdminUsers() {
@@ -641,7 +801,42 @@ export default {
641 801
             .catch(() => {
642 802
             });
643 803
       }
804
+    }, tolistPrint(row) {
805
+      // if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028 || this.$store.getters.xt_user.org_id == 10138) {
806
+      //   if (row.mdtrt_id.indexOf('H') > -1) {
807
+      //     this.statementVisible9504 = true
808
+      //     let obj = {
809
+      //       order_id: row.id,
810
+      //       patient_id: row.patient_id,
811
+      //       record_time: this.getTimes(row.settle_accounts_date),
812
+      //       admin_user_id: this.$store.getters.xt_user.user.id
813
+      //     }
814
+      //     this.orderObj9504 = obj
815
+      //   } else {
816
+      //
817
+      //     this.statementVisible9504 = true
818
+      //     let obj = {
819
+      //       order_id: row.id,
820
+      //       patient_id: row.patient_id,
821
+      //       record_time: this.getTimes(row.settle_accounts_date),
822
+      //       admin_user_id: this.$store.getters.xt_user.user.id,
823
+      //       balance_accounts_type: 2
824
+      //     }
825
+      //     this.orderObj9504 = obj
826
+      //   }
827
+      //
828
+      // } else {
829
+      this.statementListVisible = true;
830
+      let obj = {
831
+        order_id: row.id,
832
+        settle_type: row.settle_type,
833
+        start_time: row.settle_start_time,
834
+        end_time: row.settle_end_time,
835
+        balance_accounts_type: row.his_patient.balance_accounts_type,
836
+      };
837
+      this.orderObj = obj;
644 838
     },
839
+
645 840
     toPrint(row) {
646 841
       // if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028 || this.$store.getters.xt_user.org_id == 10138) {
647 842
       //   if (row.mdtrt_id.indexOf('H') > -1) {
@@ -718,24 +913,17 @@ export default {
718 913
               //   obj["dialysis_time"] = this.getTimes(order.info[b].record_date)
719 914
               // }
720 915
               if (order.psn_type == "11") {
721
-
722 916
                 obj["psn_type"] = "职工在职"
723 917
               } else if (order.psn_type == "12") {
724 918
                 obj["psn_type"] = "职工退休"
725
-
726 919
               } else if (order.psn_type == "13") {
727 920
                 obj["psn_type"] = "离休"
728
-
729 921
               } else if (order.psn_type == "14") {
730 922
                 obj["psn_type"] = "居民医保"
731
-
732 923
               } else if (order.psn_type == "15") {
733
-
734 924
                 obj["psn_type"] = "居民医保"
735
-
736 925
               } else if (order.psn_type == "16") {
737 926
                 obj["psn_type"] = "居民医保"
738
-
739 927
               }
740 928
 
741 929
               list.push(obj)
@@ -839,8 +1027,8 @@ export default {
839 1027
               let obj = {
840 1028
                 name: order.patient.name,
841 1029
                 id_card_no: order.patient.id_card_no,
842
-                year: "2022",
843
-                month: "8",
1030
+                year: "2023",
1031
+                month: "1",
844 1032
                 code: data[b].code,
845 1033
                 pric: data[b].count * data[b].price,
846 1034
                 item_name: data[b].name,
@@ -1221,7 +1409,7 @@ export default {
1221 1409
           var tarList = []
1222 1410
           for (let i = 0; i < list.length; i++) {
1223 1411
             let obj = {
1224
-              "周期": "2022年第四季度",
1412
+              "周期": "2023年第一季度",
1225 1413
               "类别": "门诊",
1226 1414
               "医保目录编码": list[i].code,
1227 1415
               "医保目录名称": list[i].name,
@@ -1419,6 +1607,99 @@ export default {
1419 1607
       });
1420 1608
 
1421 1609
     },
1610
+    export_detail_tenone(){
1611
+      let params = {
1612
+        start_time: this.start_time,
1613
+        end_time: this.end_time,
1614
+      };
1615
+      handleData10138Two(params).then((response) => {
1616
+        if (response.data.state == 0) {
1617
+          this.$message.error(response.data.msg);
1618
+          return false;
1619
+        } else {
1620
+          var list = []
1621
+          var orders = response.data.data.info
1622
+          for (let i = 0; i < orders.length; i++) {
1623
+            for (let b = 0; b < orders[i].order.length; b++) {
1624
+              for (let c = 0; c < orders[i].order[b].infos.length; c++) {
1625
+                let name = orders[i].name
1626
+                let date = this.getTimes(orders[i].order[b].settle_accounts_date)
1627
+                let code = orders[i].order[b].number
1628
+                let cnt = orders[i].order[b].infos[c].cnt
1629
+                let pric =   orders[i].order[b].infos[c].pric
1630
+                let det_item_fee_sumamt =  orders[i].order[b].infos[c].det_item_fee_sumamt
1631
+
1632
+                let item_name = ""
1633
+                let unit = ""
1634
+                let spec = ""
1635
+
1636
+                if (orders[i].order[b].infos[c].advice_id > 0) {
1637
+                  item_name = orders[i].order[b].infos[c].advices.drug.drug_name
1638
+                  unit = orders[i].order[b].infos[c].advices.prescribing_number_unit
1639
+                  spec = (orders[i].order[b].infos[c].advices.drug.dose + orders[i].order[b].infos[c].advices.drug.dose_unit) + "*" + orders[i].order[b].infos[c].advices.drug.min_number + orders[i].order[b].infos[c].advices.drug.min_unit + "/" + orders[i].order[b].infos[c].advices.drug.max_unit
1640
+                }
1641
+                if (orders[i].order[b].infos[c].project_id > 0 && orders[i].order[b].infos[c].project.type == 2) {
1642
+                  item_name = orders[i].order[b].infos[c].project.project.project_name
1643
+                  unit =orders[i].order[b].infos[c].project.project.unit
1644
+                  spec = orders[i].order[b].infos[c].project.project.project_name
1645
+                }
1646
+                if (orders[i].order[b].infos[c].project_id > 0 && orders[i].order[b].infos[c].project.type == 3) {
1647
+                  item_name = orders[i].order[b].infos[c].project.good_info.good_name
1648
+                  unit = orders[i].order[b].infos[c].project.good_info.packing_unit
1649
+                  spec = orders[i].order[b].infos[c].project.good_info.specification_name
1650
+                }
1651
+
1652
+                let obj = {
1653
+                  "姓名":name,
1654
+                  "处方日期":date,
1655
+                  "费用编码":code,
1656
+                  "项目名称":item_name,
1657
+                  "规格": spec,
1658
+                  "数量": cnt,
1659
+                  "单位": unit,
1660
+                  "金额": det_item_fee_sumamt,
1661
+                  "单价": pric,
1662
+                }
1663
+                list.push(obj)
1664
+              }
1665
+            }
1666
+          }
1667
+
1668
+
1669
+          import("@/vendor/Export2Excel").then((excel) => {
1670
+            const tHeader = [
1671
+              "姓名",
1672
+              "处方日期",
1673
+              "费用编码",
1674
+              "项目名称",
1675
+              "规格",
1676
+              "数量",
1677
+              "单位",
1678
+              "单价",
1679
+              "金额",
1680
+            ];
1681
+            const filterVal = [
1682
+              "姓名",
1683
+              "处方日期",
1684
+              "费用编码",
1685
+              "项目名称",
1686
+              "规格",
1687
+              "数量",
1688
+              "单位",
1689
+              "单价",
1690
+              "金额",
1691
+            ];
1692
+            const data = this.formatJson(filterVal, list);
1693
+            excel.export_json_to_excel({
1694
+              header: tHeader,
1695
+              data,
1696
+              filename: "消费明细",
1697
+            });
1698
+          });
1699
+
1700
+        }
1701
+      });
1702
+    },
1422 1703
     getType(med_chrgitm_type) {
1423 1704
       switch (med_chrgitm_type) {
1424 1705
         case '01':
@@ -1732,6 +2013,95 @@ export default {
1732 2013
       });
1733 2014
 
1734 2015
 
2016
+    },
2017
+    export_detail_ten_three(){
2018
+      exportOrderInfo().then((response) => {
2019
+        if (response.data.state == 0) {
2020
+          this.$message.error(response.data.msg);
2021
+          return false;
2022
+        } else {
2023
+          let list = [];
2024
+            for (let b = 0; b < response.data.data.info.length; b++) {
2025
+              let item_name = "";
2026
+              let item_code = "";
2027
+              let price = "";
2028
+              let unit = "";
2029
+              let spec = "";
2030
+              let cnt = "";
2031
+
2032
+              if (
2033
+                response.data.data.info[b].advices.id == 0 &&
2034
+                response.data.data.info[b].project.id > 0
2035
+              ) {
2036
+
2037
+                if (response.data.data.info[b].project.type == 2){
2038
+                  item_name = response.data.data.info[b].project.project.project_name;
2039
+                  item_code = response.data.data.info[b].project.project.medical_code;
2040
+                  price = response.data.data.info[b].det_item_fee_sumamt;
2041
+                  unit = response.data.data.info[b].project.project.unit;
2042
+                  cnt=response.data.data.info[b].cnt;
2043
+
2044
+                }else{
2045
+
2046
+                  item_name = response.data.data.info[b].project.good_info.good_name;
2047
+                  item_code = response.data.data.info[b].project.good_info.medical_insurance_number;
2048
+                  price =response.data.data.info[b].det_item_fee_sumamt;
2049
+                  unit = response.data.data.info[b].project.good_info.packing_unit;
2050
+                  cnt=response.data.data.info[b].cnt;
2051
+
2052
+                }
2053
+
2054
+              } else if (
2055
+                response.data.data.info[b].advices.id > 0 &&
2056
+                response.data.data.info[b].project.id == 0
2057
+              ) {
2058
+                item_name =response.data.data.info[b].advices.advice_name;
2059
+                item_code =
2060
+                  response.data.data.info[b].advices.drug.medical_insurance_number;
2061
+                price = response.data.data.info[b].det_item_fee_sumamt;
2062
+                unit = response.data.data.info[b].advices.prescribing_number_unit;
2063
+                spec =response.data.data.info[b].advices.drug.dose +  response.data.data.info[b].advices.drug.dose_unit+"*" + response.data.data.info[b].advices.drug.min_number + response.data.data.info[b].advices.drug.min_unit+"/"+response.data.data.info[b].advices.drug.max_unit
2064
+                cnt=response.data.data.info[b].cnt;
2065
+
2066
+
2067
+              }
2068
+              let obj = {
2069
+                名称: item_name,
2070
+                总价: price,
2071
+                数量: cnt,
2072
+                规格: spec,
2073
+
2074
+              };
2075
+
2076
+              list.push(obj);
2077
+            }
2078
+          import("@/vendor/Export2Excel").then((excel) => {
2079
+            const tHeader = [
2080
+              "名称",
2081
+              "总价",
2082
+              "数量",
2083
+              "规格",
2084
+
2085
+            ];
2086
+            const filterVal = [
2087
+              "名称",
2088
+              "总价",
2089
+              "数量",
2090
+              "规格",
2091
+
2092
+            ];
2093
+            const data = this.formatJson(filterVal, list);
2094
+            excel.export_json_to_excel({
2095
+              header: tHeader,
2096
+              data,
2097
+              filename: "消费明细",
2098
+            });
2099
+          });
2100
+        }
2101
+      });
2102
+
2103
+
2104
+
1735 2105
     },
1736 2106
     GetGoodName(id) {
1737 2107
       switch (id) {