瀏覽代碼

合并带嘛

csx 2 年之前
父節點
當前提交
e6d86c1ee3

+ 22 - 0
src/api/his/his.js 查看文件

@@ -697,4 +697,26 @@ export function getExportChargeData(params) {
697 697
   })
698 698
 }
699 699
 
700
+export function getHisDataFive(params) {
701
+  return request({
702
+    url: '/handleExportData',
703
+    method: 'get',
704
+    params: params
705
+  })
706
+}
707
+
708
+
709
+
710
+
711
+export function getHisDataSix(params) {
712
+  return request({
713
+    url: '/handleExportData10138',
714
+    method: 'get',
715
+    params: params
716
+  })
717
+}
718
+
719
+
720
+
721
+
700 722
 

+ 163 - 101
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue 查看文件

@@ -83,26 +83,26 @@
83 83
 
84 84
         <div class="mainCell fixedCell" style="margin-bottom:10px;">
85 85
 
86
-          <div v-if="org_id == 10340">
87
-                        <el-button size="small"
88
-                                   @click="openZb(1)"
89
-                                   type="primary">登记
90
-                        </el-button>
86
+          <div v-if="org_id == 10340 || org_id == 0">
87
+<!--                        <el-button size="small"-->
88
+<!--                                   @click="openZb(1)"-->
89
+<!--                                   type="primary">登记-->
90
+<!--                        </el-button>-->
91 91
 
92 92
                         <el-button  size="small"
93
-                                   @click="openZb(2)"
93
+                                   @click="openZb(4)"
94 94
                                    type="primary">记账
95 95
                         </el-button>
96 96
 
97
-                        <el-button   size="small"
98
-                                   @click="openZb(3)"
99
-                                   type="primary">撤销记账
100
-                        </el-button>
97
+<!--                        <el-button   size="small"-->
98
+<!--                                   @click="openZb(3)"-->
99
+<!--                                   type="primary">撤销记账-->
100
+<!--                        </el-button>-->
101 101
 
102 102
           </div>
103 103
 
104 104
 
105
-          <div  v-if="org_id != 10340">
105
+          <div  v-if="org_id != 10340 || org_id != 0">
106 106
 <!--            <el-button size="small"-->
107 107
 <!--                       @click="openZb(1)"-->
108 108
 <!--                       type="primary">登记-->
@@ -2722,7 +2722,148 @@ export default {
2722 2722
       }
2723 2723
     }, openZb(index) {
2724 2724
       switch (index) {
2725
-        case 1:
2725
+        // case 1:
2726
+        //   if(this.patientInfo.id == 0){
2727
+        //     this.$message.error("请需要选择挂号的患者")
2728
+        //     return
2729
+        //   }
2730
+        //   if(this.big_prescriptions.length == 0){
2731
+        //     this.$message.error("处方不能为空")
2732
+        //     return
2733
+        //   }
2734
+        //   if(this.form.diagnosis.length == 0){
2735
+        //     this.$message.error("诊断不能为空")
2736
+        //     return
2737
+        //   }
2738
+        //   var that = this
2739
+        //   let obj = {
2740
+        //     patient_id: this.patientInfo.id,
2741
+        //     diagnosis_time: this.form.diagnosis_time,
2742
+        //     record_date: this.record_date,
2743
+        //     admin_user_id: this.$store.getters.xt_user.user.id,
2744
+        //     org_id: this.$store.getters.xt_user.org_id
2745
+        //
2746
+        //   }
2747
+        //   axios.get(process.env.BASE_API +'/coordinate/register', {
2748
+        //     params: obj
2749
+        //   })
2750
+        //       .then(function(response) {
2751
+        //         if (response.data.state == 0) {
2752
+        //           that.$message.error(response.data.msg)
2753
+        //           that.loadingtwo = false
2754
+        //           return false
2755
+        //         } else {
2756
+        //           if (response.data.data.failed_code == -10) {
2757
+        //             that.$confirm(response.data.data.msg, '医保错误信息', {
2758
+        //               confirmButtonText: '确 定',
2759
+        //               type: 'warning'
2760
+        //             }).then(() => {
2761
+        //
2762
+        //             }).catch(() => {
2763
+        //             })
2764
+        //
2765
+        //           } else {
2766
+        //             that.radio = 1
2767
+        //             that.changeRadioAndPatient(1)
2768
+        //             that.$message({ message: '登记成功', type: 'success', duration: 5000 })
2769
+        //           }
2770
+        //
2771
+        //         }
2772
+        //       })
2773
+        //       .catch(function(error) {
2774
+        //
2775
+        //       })
2776
+        //
2777
+        //   break
2778
+        // case 2:
2779
+        //   var that = this
2780
+        //   var obj2 = {
2781
+        //     id: this.patientInfo.id,
2782
+        //     record_time: this.record_date,
2783
+        //     his_patient_id: this.hisPatientInfo.id,
2784
+        //     org_id: this.$store.getters.xt_user.org_id,
2785
+        //     p_type:14,
2786
+        //
2787
+        //   }
2788
+        //   obj2['diagnosis'] = this.form.diagnosis.join(',')
2789
+        //   obj2['sick_type'] = this.form.sick_type
2790
+        //   if (this.activeName == 'first') {
2791
+        //     obj2['settle_accounts_type'] = 1
2792
+        //   } else if (this.activeName == 'second') {
2793
+        //     obj2['start_time'] = this.other_start_time
2794
+        //     obj2['end_time'] = this.other_end_time
2795
+        //     obj2['settle_accounts_type'] = 2
2796
+        //   }
2797
+        //   axios.get(process.env.BASE_API  + '/coordinate/opKeepAccounts', {
2798
+        //     params: obj2
2799
+        //   })
2800
+        //       .then(function(response) {
2801
+        //         if (response.data.state == 0) {
2802
+        //           that.$message.error(response.data.msg)
2803
+        //           that.loadingtwo = false
2804
+        //           return false
2805
+        //         } else {
2806
+        //           if (response.data.data.failed_code == -10) {
2807
+        //             that.$confirm(response.data.data.msg, '医保错误信息', {
2808
+        //               confirmButtonText: '确 定',
2809
+        //               type: 'warning'
2810
+        //             }).then(() => {
2811
+        //
2812
+        //             }).catch(() => {
2813
+        //             })
2814
+        //
2815
+        //           } else {
2816
+        //             that.radio = 1
2817
+        //             that.changeRadioAndPatient(1)
2818
+        //             that.$message({ message: '记账成功', type: 'success', duration: 5000 })
2819
+        //           }
2820
+        //
2821
+        //         }
2822
+        //       })
2823
+        //       .catch(function(error) {
2824
+        //
2825
+        //       })
2826
+        //
2827
+        //   break
2828
+        // case 3:
2829
+        //   var that = this
2830
+        //   let obj3 = {
2831
+        //     order_id:this.order.id,
2832
+        //     admin_user_id: this.$store.getters.xt_user.user.id,
2833
+        //     org_id: this.$store.getters.xt_user.org_id
2834
+        //   }
2835
+        //   axios.get(process.env.BASE_API + '/coordinate/opCancelKeepAccounts', {
2836
+        //     params: obj3
2837
+        //   })
2838
+        //       .then(function(response) {
2839
+        //         if (response.data.state == 0) {
2840
+        //           that.$message.error(response.data.msg)
2841
+        //           that.loadingtwo = false
2842
+        //           return false
2843
+        //         } else {
2844
+        //           if (response.data.data.failed_code == -10) {
2845
+        //             that.$confirm(response.data.data.msg, '医保错误信息', {
2846
+        //               confirmButtonText: '确 定',
2847
+        //               type: 'warning'
2848
+        //             }).then(() => {
2849
+        //
2850
+        //             }).catch(() => {
2851
+        //             })
2852
+        //
2853
+        //           } else {
2854
+        //             that.radio = 1
2855
+        //             that.changeRadioAndPatient(1)
2856
+        //             that.$message({ message: '撤销记账成功', type: 'success', duration: 5000 })
2857
+        //           }
2858
+        //
2859
+        //         }
2860
+        //       })
2861
+        //       .catch(function(error) {
2862
+        //
2863
+        //       })
2864
+        //
2865
+        //   break
2866
+        case 4:
2726 2867
           if(this.patientInfo.id == 0){
2727 2868
             this.$message.error("请需要选择挂号的患者")
2728 2869
             return
@@ -2735,105 +2876,26 @@ export default {
2735 2876
             this.$message.error("诊断不能为空")
2736 2877
             return
2737 2878
           }
2738
-          var that = this
2739 2879
           let obj = {
2740 2880
             patient_id: this.patientInfo.id,
2741 2881
             diagnosis_time: this.form.diagnosis_time,
2742 2882
             record_date: this.record_date,
2743 2883
             admin_user_id: this.$store.getters.xt_user.user.id,
2744
-            org_id: this.$store.getters.xt_user.org_id
2745
-
2746
-          }
2747
-          axios.get(process.env.BASE_API +'/coordinate/register', {
2748
-            params: obj
2749
-          })
2750
-              .then(function(response) {
2751
-                if (response.data.state == 0) {
2752
-                  that.$message.error(response.data.msg)
2753
-                  that.loadingtwo = false
2754
-                  return false
2755
-                } else {
2756
-                  if (response.data.data.failed_code == -10) {
2757
-                    that.$confirm(response.data.data.msg, '医保错误信息', {
2758
-                      confirmButtonText: '确 定',
2759
-                      type: 'warning'
2760
-                    }).then(() => {
2761
-
2762
-                    }).catch(() => {
2763
-                    })
2764
-
2765
-                  } else {
2766
-                    that.radio = 1
2767
-                    that.changeRadioAndPatient(1)
2768
-                    that.$message({ message: '登记成功', type: 'success', duration: 5000 })
2769
-                  }
2770
-
2771
-                }
2772
-              })
2773
-              .catch(function(error) {
2774
-
2775
-              })
2776
-
2777
-          break
2778
-        case 2:
2779
-          var that = this
2780
-          var obj2 = {
2781
-            id: this.patientInfo.id,
2782
-            record_time: this.record_date,
2783 2884
             his_patient_id: this.hisPatientInfo.id,
2784
-            org_id: this.$store.getters.xt_user.org_id,
2785
-            p_type:14,
2786
-
2885
+            p_type:14
2787 2886
           }
2788
-          obj2['diagnosis'] = this.form.diagnosis.join(',')
2789
-          obj2['sick_type'] = this.form.sick_type
2887
+          obj['diagnosis'] = this.form.diagnosis.join(',')
2888
+          obj['sick_type'] = this.form.sick_type
2790 2889
           if (this.activeName == 'first') {
2791
-            obj2['settle_accounts_type'] = 1
2890
+            obj['settle_accounts_type'] = 1
2792 2891
           } else if (this.activeName == 'second') {
2793
-            obj2['start_time'] = this.other_start_time
2794
-            obj2['end_time'] = this.other_end_time
2795
-            obj2['settle_accounts_type'] = 2
2892
+            obj['start_time'] = this.other_start_time
2893
+            obj['end_time'] = this.other_end_time
2894
+            obj['settle_accounts_type'] = 2
2796 2895
           }
2797
-          axios.get(process.env.BASE_API  + '/coordinate/opKeepAccounts', {
2798
-            params: obj2
2799
-          })
2800
-              .then(function(response) {
2801
-                if (response.data.state == 0) {
2802
-                  that.$message.error(response.data.msg)
2803
-                  that.loadingtwo = false
2804
-                  return false
2805
-                } else {
2806
-                  if (response.data.data.failed_code == -10) {
2807
-                    that.$confirm(response.data.data.msg, '医保错误信息', {
2808
-                      confirmButtonText: '确 定',
2809
-                      type: 'warning'
2810
-                    }).then(() => {
2811
-
2812
-                    }).catch(() => {
2813
-                    })
2814
-
2815
-                  } else {
2816
-                    that.radio = 1
2817
-                    that.changeRadioAndPatient(1)
2818
-                    that.$message({ message: '记账成功', type: 'success', duration: 5000 })
2819
-                  }
2820
-
2821
-                }
2822
-              })
2823
-              .catch(function(error) {
2824
-
2825
-              })
2826
-
2827
-          break
2828
-        case 3:
2829 2896
           var that = this
2830
-          let obj3 = {
2831
-            order_id:this.order.id,
2832
-            admin_user_id: this.$store.getters.xt_user.user.id,
2833
-            org_id: this.$store.getters.xt_user.org_id
2834
-          }
2835
-          axios.get(process.env.BASE_API + '/coordinate/opCancelKeepAccounts', {
2836
-            params: obj3
2897
+          axios.get(process.env.BASE_API  + '/coordinate/settleAccount', {
2898
+            params: obj
2837 2899
           })
2838 2900
               .then(function(response) {
2839 2901
                 if (response.data.state == 0) {
@@ -2853,7 +2915,7 @@ export default {
2853 2915
                   } else {
2854 2916
                     that.radio = 1
2855 2917
                     that.changeRadioAndPatient(1)
2856
-                    that.$message({ message: '撤销记账成功', type: 'success', duration: 5000 })
2918
+                    that.$message({ message: '记账成功', type: 'success', duration: 5000 })
2857 2919
                   }
2858 2920
 
2859 2921
                 }

+ 520 - 28
src/xt_pages/outpatientCharges/summary.vue 查看文件

@@ -108,12 +108,18 @@
108 108
           >报表下载
109 109
           </el-button
110 110
           >
111
-<!--          <el-button size="small" type="primary" @click="export_detail_two"-->
112
-<!--          >报表下载2-->
113
-<!--          </el-button-->
114
-<!--          >-->
111
+          <!--          <el-button size="small" type="primary" @click="export_detail_two"-->
112
+          <!--          >报表下载2-->
113
+          <!--          </el-button-->
114
+          <!--          >-->
115
+
116
+          <!--          <el-button size="small" type="primary" @click="export_detail_three">报表下载2</el-button>-->
117
+          <!--          <el-button size="small" type="primary" @click="export_detail_four">报表下载3</el-button>-->
118
+          <!--          <el-button size="small" type="primary" @click="export_detail_five">报表下载3</el-button>-->
119
+<!--          <el-button size="small" type="primary" @click="export_detail_six">报表下载9</el-button>-->
120
+<!--          <el-button size="small" type="primary" @click="export_detail_seven">报表下载4</el-button>-->
121
+
115 122
 
116
-          <el-button size="small" type="primary" @click="export_detail_three">报表下载2</el-button>
117 123
         </div>
118 124
       </div>
119 125
       <el-table
@@ -334,7 +340,6 @@
334 340
 <script>
335 341
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
336 342
 import {getDoctorList, getExportConsumeDetailList, getHisOrderList, Refund,} from "@/api/his/his";
337
-import {uParseTime} from "@/utils/tools";
338 343
 // import NewStatementPrint from './newStatementPrint'
339 344
 import NewStatementPrint from "./statementPrint.vue";
340 345
 import listPrint from "./listPrint";
@@ -344,9 +349,9 @@ import {fetchAllAdminUsers} from "@/api/doctor";
344 349
 import axios from "axios";
345 350
 import invoicePrint from "./invoicePrint";
346 351
 import settlementPrint from "./settlementPrint";
347
-import {getHisDataTwo} from "../../api/his/his";
348
-import {getHisDataThree} from "../../api/his/his";
352
+import {jsGetAge, uParseTime} from "@/utils/tools";
349 353
 
354
+import {getHisDataFive, getHisDataSix, getHisDataThree, getHisDataTwo} from "../../api/his/his";
350 355
 
351 356
 export default {
352 357
   name: "OutpatientChargesSummary",
@@ -699,7 +704,7 @@ export default {
699 704
                 total: order.info[b].det_item_fee_sumamt,
700 705
                 fund_total: order.info[b].inscp_scp_amt,
701 706
                 patient_id: order.info[b].patient_id,
702
-                dialysis_time:this.getTimes(order.info[b].upload_date)
707
+                dialysis_time: this.getTimes(order.info[b].upload_date)
703 708
 
704 709
               }
705 710
               // if (order.info[b].advice_id > 0 && order.info[b].project_id == 0) {
@@ -823,19 +828,19 @@ export default {
823 828
           let list = [];
824 829
           for (let i = 0; i < response.data.data.order.length; i++) {
825 830
             let order = response.data.data.order[i];
826
-            let data =  this.setMonthPrescription(order.info)
831
+            let data = this.setMonthPrescription(order.info)
827 832
             // console.log(data)
828
-            for(let b= 0; b < data.length; b++){
833
+            for (let b = 0; b < data.length; b++) {
829 834
               let obj = {
830 835
                 name: order.patient.name,
831 836
                 id_card_no: order.patient.id_card_no,
832 837
                 year: "2022",
833
-                month:"8",
838
+                month: "8",
834 839
                 code: data[b].code,
835 840
                 pric: data[b].count * data[b].price,
836
-                item_name:data[b].name,
837
-                unit:data[b].unit,
838
-                count:data[b].count,
841
+                item_name: data[b].name,
842
+                unit: data[b].unit,
843
+                count: data[b].count,
839 844
 
840 845
               }
841 846
               if (order.insutype == "310") {
@@ -848,9 +853,9 @@ export default {
848 853
 
849 854
           }
850 855
 
851
-          var  tarList = []
856
+          var tarList = []
852 857
           for (let i = 0; i < list.length; i++) {
853
-            if(list[i].pric > 0) {
858
+            if (list[i].pric > 0) {
854 859
               let obj = {
855 860
                 "姓名": list[i].name,
856 861
                 "身份证号": list[i].id_card_no,
@@ -904,6 +909,450 @@ export default {
904 909
         }
905 910
       });
906 911
     },
912
+    export_detail_four() {
913
+      let params = {};
914
+      getHisDataFive(params).then((response) => {
915
+        if (response.data.state == 0) {
916
+          this.$message.error(response.data.msg);
917
+          return false;
918
+        } else {
919
+          let list = [];
920
+          for (let i = 0; i < response.data.data.order.length; i++) {
921
+            let order = response.data.data.order[i];
922
+            // console.log(data)
923
+            for (let b = 0; b < order.info.length; b++) {
924
+              let obj = {
925
+                org_name: "生命之源血液透析中心",
926
+                name: order.patient.name,
927
+                id_card_no: order.patient.id_card_no,
928
+                jiuyi_date: this.getTimes(order.settle_accounts_date),
929
+                dianhua: order.patient.phone,
930
+                pric: order.info[b].pric,
931
+                cnt: order.info[b].cnt,
932
+                det_item_fee_sumamt: order.info[b].det_item_fee_sumamt,
933
+                zhenduan: "慢性肾衰竭",
934
+                shifouyibao: "是",
935
+                doctor: "高华",
936
+                jiesuanfangshi: "医保",
937
+                jizhangshijian: order.setl_time,
938
+                feiyongheji: order.medfee_sumamt,
939
+                jizhangjine: order.fund_pay_sumamt,
940
+                xianjinheji: order.psn_cash_pay,
941
+
942
+              }
943
+              if (order.is_medicine_insurance == 1) {
944
+                obj.jiesuanfangshi = "是"
945
+
946
+              } else {
947
+
948
+                obj.jiesuanfangshi = "否"
949
+
950
+              }
951
+
952
+              if (order.info[b].advice_id > 0 && order.info[b].project_id == 0) {
953
+                obj["yibaomulucode"] = order.info[b].advices.drug.medical_insurance_number
954
+                obj["yibaomuluname"] = order.info[b].advices.drug.drug_name
955
+                obj["neibumulucode"] = order.info[b].advices.drug.id
956
+                obj["neibumuluname"] = order.info[b].advices.drug.drug_name
957
+              }
958
+              if (order.info[b].advice_id == 0 && order.info[b].project_id > 0) {
959
+                if (order.info[b].project.type == 2) {
960
+                  obj["yibaomulucode"] = order.info[b].project.project.medical_code
961
+                  obj["yibaomuluname"] = order.info[b].project.project.project_name
962
+                  obj["neibumulucode"] = order.info[b].project.project.id
963
+                  obj["neibumuluname"] = order.info[b].project.project.project_name
964
+
965
+                } else {
966
+                  obj["yibaomulucode"] = order.info[b].project.good_info.medical_insurance_number
967
+                  obj["yibaomuluname"] = order.info[b].project.good_info.good_name
968
+                  obj["neibumulucode"] = order.info[b].project.good_info.id
969
+                  obj["neibumuluname"] = order.info[b].project.good_info.good_name
970
+                }
971
+              }
972
+              var thisLen = order.patient.id_card_no.length
973
+              var birth = ''
974
+              if (thisLen == 15) {
975
+                birth = '19' + order.patient.id_card_no.substr(6, 6)
976
+              } else {
977
+                birth = order.patient.id_card_no.substr(6, 8)
978
+              }
979
+              var births =
980
+                  birth.substr(0, 4) +
981
+                  '-' +
982
+                  birth.substr(4, 2) +
983
+                  '-' +
984
+                  birth.substr(6, 2)
985
+              obj["age"] = jsGetAge(births, '-')
986
+
987
+              if (order.patient.gender == 1) {
988
+                obj['gender'] = "男"
989
+              } else {
990
+                obj['gender'] = "女"
991
+              }
992
+
993
+              list.push(obj)
994
+            }
995
+
996
+          }
997
+
998
+          var tarList = []
999
+          for (let i = 0; i < list.length; i++) {
1000
+            if (list[i].pric > 0) {
1001
+              let obj = {
1002
+                "机构编码": list[i].org_name,
1003
+                "就诊人姓名": list[i].name,
1004
+                "性别": list[i].gender,
1005
+                "年龄": list[i].age,
1006
+                "身份证号码": list[i].id_card_no,
1007
+                "就医日期": list[i].jiuyi_date,
1008
+                "电话": list[i].dianhua,
1009
+                "医保目录编码": list[i].yibaomulucode,
1010
+                "医保目录名称": list[i].yibaomuluname,
1011
+                "机构内部编码": list[i].neibumulucode,
1012
+                "机构内部名称": list[i].neibumuluname,
1013
+                "就诊项目明细": list[i].yibaomuluname,
1014
+                "单价": list[i].pric,
1015
+                "数量": list[i].cnt,
1016
+                "金额": list[i].det_item_fee_sumamt,
1017
+                "费用合计": list[i].feiyongheji,
1018
+                "记账金额": list[i].jizhangjine,
1019
+                "现金合计": list[i].xianjinheji,
1020
+                "结算方式": list[i].jiesuanfangshi,
1021
+                "接诊医生": list[i].doctor,
1022
+                "诊断": list[i].zhenduan,
1023
+                "记账时间": list[i].jizhangshijian,
1024
+                "是否医保": list[i].shifouyibao,
1025
+
1026
+              }
1027
+              tarList.push(obj)
1028
+            }
1029
+          }
1030
+
1031
+          import("@/vendor/Export2Excel").then((excel) => {
1032
+            const tHeader = [
1033
+              "机构编码",
1034
+              "就诊人姓名",
1035
+              "性别",
1036
+              "年龄",
1037
+              "身份证号码",
1038
+              "就医日期",
1039
+              "电话",
1040
+              "医保目录编码",
1041
+              "医保目录名称",
1042
+              "机构内部编码",
1043
+              "机构内部名称",
1044
+              "就诊项目明细",
1045
+              "单价",
1046
+              "数量",
1047
+              "金额",
1048
+              "费用合计",
1049
+              "记账金额",
1050
+              "现金合计",
1051
+              "结算方式",
1052
+              "接诊医生",
1053
+              "诊断",
1054
+              "记账时间",
1055
+              "是否医保",
1056
+
1057
+            ];
1058
+            const filterVal = [
1059
+              "机构编码",
1060
+              "就诊人姓名",
1061
+              "性别",
1062
+              "年龄",
1063
+              "身份证号码",
1064
+              "就医日期",
1065
+              "电话",
1066
+              "医保目录编码",
1067
+              "医保目录名称",
1068
+              "机构内部编码",
1069
+              "机构内部名称",
1070
+              "就诊项目明细",
1071
+              "单价",
1072
+              "数量",
1073
+              "金额",
1074
+              "费用合计",
1075
+              "记账金额",
1076
+              "现金合计",
1077
+              "结算方式",
1078
+              "接诊医生",
1079
+              "诊断",
1080
+              "记账时间",
1081
+              "是否医保",
1082
+
1083
+            ];
1084
+            const data = this.formatJson(filterVal, tarList);
1085
+            excel.export_json_to_excel({
1086
+              header: tHeader,
1087
+              data,
1088
+              filename: "消费明细",
1089
+            });
1090
+          });
1091
+        }
1092
+      });
1093
+
1094
+    },
1095
+    export_detail_five() {
1096
+      let params = {};
1097
+      getHisDataFive(params).then((response) => {
1098
+        if (response.data.state == 0) {
1099
+          this.$message.error(response.data.msg);
1100
+          return false;
1101
+        } else {
1102
+          let list = [];
1103
+          for (let i = 0; i < response.data.data.order.length; i++) {
1104
+            let order = response.data.data.order[i];
1105
+            // console.log(data)
1106
+            for (let b = 0; b < order.info.length; b++) {
1107
+              if (order.info[b].project.project.cost_classify == 3) {
1108
+                let obj = {
1109
+                  p_name: order.psn_name,
1110
+                  code: order.info[b].project.project.id,
1111
+                  name: order.info[b].project.project.project_name,
1112
+                  unit: order.info[b].project.project.unit,
1113
+                  jiage: order.info[b].det_item_fee_sumamt,
1114
+                  name_yibao: order.info[b].project.project.project_name,
1115
+                  guoma: order.info[b].project.project.medical_code,
1116
+                  zifu: order.info[b].selfpay_prop,
1117
+                  cnt: order.info[b].cnt,
1118
+                  pric: order.info[b].pric,
1119
+                  gerenzifu: order.info[b].fulamt_ownpay_amt + order.info[b].preselfpay_amt,
1120
+                  baoxiaojine: order.info[b].inscp_scp_amt,
1121
+
1122
+                }
1123
+                if (order.info[b].chrgitm_lv == "01") {
1124
+                  obj["yibao_dengji"] = "甲"
1125
+                } else if (order.info[b].chrgitm_lv == "02") {
1126
+                  obj["yibao_dengji"] = "乙"
1127
+                } else {
1128
+                  obj["yibao_dengji"] = "丙"
1129
+                }
1130
+                list.push(obj)
1131
+              }
1132
+            }
1133
+
1134
+          }
1135
+          console.log(list)
1136
+
1137
+          var tarList = []
1138
+          for (let i = 0; i < list.length; i++) {
1139
+            let obj = {
1140
+              "姓名": list[i].p_name,
1141
+              "医保目录编码": list[i].guoma,
1142
+              "名称": list[i].name,
1143
+              "单位": list[i].unit,
1144
+              "价格": list[i].jiage,
1145
+              "医保等级": list[i].yibao_dengji,
1146
+              "自付比例": list[i].zifu,
1147
+              "数量": list[i].cnt,
1148
+              "金额": list[i].pric,
1149
+              "个人自付": list[i].gerenzifu,
1150
+              "报销金额": list[i].baoxiaojine,
1151
+
1152
+            }
1153
+            tarList.push(obj)
1154
+          }
1155
+
1156
+          import("@/vendor/Export2Excel").then((excel) => {
1157
+            const tHeader = [
1158
+              "姓名",
1159
+              "医保目录编码",
1160
+              "名称",
1161
+              "单位",
1162
+              "价格",
1163
+              "医保等级",
1164
+              "自付比例",
1165
+              "数量",
1166
+              "金额",
1167
+              "个人自付",
1168
+              "报销金额",
1169
+
1170
+            ];
1171
+            const filterVal = [
1172
+              "姓名",
1173
+              "医保目录编码",
1174
+              "名称",
1175
+              "单位",
1176
+              "价格",
1177
+              "医保等级",
1178
+              "自付比例",
1179
+              "数量",
1180
+              "金额",
1181
+              "个人自付",
1182
+              "报销金额",
1183
+            ];
1184
+            const data = this.formatJson(filterVal, tarList);
1185
+            excel.export_json_to_excel({
1186
+              header: tHeader,
1187
+              data,
1188
+              filename: "消费明细",
1189
+            });
1190
+          });
1191
+        }
1192
+      });
1193
+
1194
+    },
1195
+    export_detail_six() {
1196
+      let params = {};
1197
+      getHisDataSix(params).then((response) => {
1198
+        if (response.data.state == 0) {
1199
+          this.$message.error(response.data.msg);
1200
+          return false;
1201
+        } else {
1202
+          let list = [];
1203
+          let new_list = [];
1204
+          for (let i = 0; i < response.data.data.order.length; i++) {
1205
+            let order = response.data.data.order[i];
1206
+            for (let b = 0; b < order.info.length; b++) {
1207
+              new_list.push(order.info[b])
1208
+            }
1209
+          }
1210
+
1211
+          var infos = this.setMonthPrescriptiontwo(new_list)
1212
+          for (let b = 0; b < infos.length; b++) {
1213
+            list.push(infos[b])
1214
+          }
1215
+
1216
+          var tarList = []
1217
+          for (let i = 0; i < list.length; i++) {
1218
+            let obj = {
1219
+              "周期": "2021年第三季度",
1220
+              "类别": "门诊",
1221
+              "医保目录编码": list[i].code,
1222
+              "医保目录名称": list[i].name,
1223
+              "本机构目录编码": list[i].code,
1224
+              "本机构目录名称": list[i].name,
1225
+              "使用例数": list[i].count,
1226
+              "价格": list[i].price,
1227
+
1228
+            }
1229
+            tarList.push(obj)
1230
+          }
1231
+
1232
+          import("@/vendor/Export2Excel").then((excel) => {
1233
+            const tHeader = [
1234
+              "周期",
1235
+              "类别",
1236
+              "医保目录编码",
1237
+              "医保目录名称",
1238
+              "本机构目录编码",
1239
+              "本机构目录名称",
1240
+              "使用例数",
1241
+              "价格",
1242
+            ];
1243
+            const filterVal = [
1244
+              "周期",
1245
+              "类别",
1246
+              "医保目录编码",
1247
+              "医保目录名称",
1248
+              "本机构目录编码",
1249
+              "本机构目录名称",
1250
+              "使用例数",
1251
+              "价格",
1252
+            ];
1253
+            const data = this.formatJson(filterVal, tarList);
1254
+            excel.export_json_to_excel({
1255
+              header: tHeader,
1256
+              data,
1257
+              filename: "消费明细",
1258
+            });
1259
+          });
1260
+        }
1261
+      });
1262
+
1263
+    },
1264
+    export_detail_seven() {
1265
+      let params = {};
1266
+      getHisDataFive(params).then((response) => {
1267
+        if (response.data.state == 0) {
1268
+          this.$message.error(response.data.msg);
1269
+          return false;
1270
+        } else {
1271
+          let list = [];
1272
+          for (let i = 0; i < response.data.data.order.length; i++) {
1273
+            let order = response.data.data.order[i];
1274
+            let obj = {
1275
+              md: order.mdtrt_id,
1276
+              name: order.patient.name,
1277
+              kaichu: this.getTimes(order.settle_start_time),
1278
+              xianzhong: order.insutype,
1279
+              yingshou: order.medfee_sumamt,
1280
+              yibaotongchou: order.hifp_pay,
1281
+              dabingjijin: order.hifmi_pay,
1282
+              yiliaojiuzhu: order.maf_pay,
1283
+              gongwujijin: order.cvlserv_pay,
1284
+              gerenzhifu: order.psn_part_amt,
1285
+              zongjine: order.medfee_sumamt,
1286
+              setl_time: order.setl_time,
1287
+              jiesuanleixing: '医保',
1288
+              xueyetouxilvguo: 480,
1289
+              lvhuana: 3,
1290
+              zhihuanguan: 40,
1291
+            }
1292
+          }
1293
+          for (let b = 0; b < order.info.length; b++) {
1294
+            if (order.info[b].advice_id == 0 && order.info[b].project_id > 0) {
1295
+              if (order.info[b].project.type == 2) {
1296
+                if (order.info[b].project.project.id == 254 || order.info[b].project.project.id == 253 || order.info[b].project.project.id == 250 || order.info[b].project.project.id == 249) {
1297
+                  obj['good_name'] = this.GetGoodName(order.info[b].project.project.id)
1298
+                }
1299
+              } else if (order.info[b].project.type == 3) {
1300
+                if (order.info[b].project.project.id == 1478|| order.info[b].project.project.id == 1479 || order.info[b].project.project.id == 1482 || order.info[b].project.project.id == 1483) {
1301
+                  obj['good_name'] = this.GetGoodName(order.info[b].project.project.id)
1302
+                }
1303
+
1304
+                obj['good_name'] = this.GetGoodName(order.info[b].project.good_info.id)
1305
+              }
1306
+            }
1307
+          }
1308
+        }
1309
+      });
1310
+
1311
+    }, GetGoodName(id) {
1312
+      switch (id) {
1313
+        case 254:
1314
+          return "空心纤维透析器REXEED-18UC(旭化成)"
1315
+          break
1316
+        case 253:
1317
+          return "空心纤维透析器REXEED-15UC(旭化成)"
1318
+          break
1319
+        case 250:
1320
+          return "聚砜膜透析滤过器-XevontaHI18(贝朗)"
1321
+          break
1322
+        case 249:
1323
+          return "聚砜膜透析滤过器-XevontaHI15(贝朗)"
1324
+          break
1325
+        case 1478:
1326
+          return "聚砜膜透析滤过器-XevontaHI15(贝朗)"
1327
+          break
1328
+        case 1479:
1329
+          return "聚砜膜透析滤过器-XevontaHI18(贝朗)"
1330
+          break
1331
+        case 1482:
1332
+          return "空心纤维透析器REXEED-15UC(旭化成)"
1333
+          break
1334
+        case 1483:
1335
+          return "REXEED-18UC(旭化成)"
1336
+          break
1337
+        case 2577:
1338
+          return "空心纤维透析器(FB-15U)(尼普洛)"
1339
+          break
1340
+        case 2578:
1341
+          return "空心纤维透析器(FB-17U)(尼普洛)"
1342
+          break
1343
+        case 2058:
1344
+          return "中空纤维透析器CTA-1500"
1345
+          break
1346
+        case 2059:
1347
+          return "中空纤维透析器CTA-2000"
1348
+          break
1349
+
1350
+
1351
+          break
1352
+
1353
+      }
1354
+
1355
+    },
907 1356
 
908 1357
     unique_two(array) {
909 1358
       // res用来存储结果
@@ -1221,18 +1670,17 @@ export default {
1221 1670
       }
1222 1671
 
1223 1672
       drug_ids = this.unique(drug_ids)
1224
-      project_ids= this.unique(project_ids)
1673
+      project_ids = this.unique(project_ids)
1225 1674
 
1226 1675
       // additions_ids= this.unique(additions_ids)
1227 1676
 
1228
-
1229 1677
       for (let i = 0; i < drug_ids.length; i++) {
1230 1678
         let obj = {}
1231 1679
         let count = 0
1232 1680
         for (let a = 0; a < drug_month_prescriptions.advices.length; a++) {
1233
-          if (drug_ids[i].price == drug_month_prescriptions.advices[a].price && drug_ids[i].id ==  drug_month_prescriptions.advices[a].drug_id) {
1681
+          if (drug_ids[i].price == drug_month_prescriptions.advices[a].price && drug_ids[i].id == drug_month_prescriptions.advices[a].drug_id) {
1234 1682
             obj['name'] = drug_month_prescriptions.advices[a].advice_name
1235
-            obj['code'] =  drug_month_prescriptions.advices[a].id
1683
+            obj['code'] = drug_month_prescriptions.advices[a].id
1236 1684
             obj['unit'] = drug_month_prescriptions.advices[a].drug.min_unit
1237 1685
             obj['price'] = parseFloat(drug_month_prescriptions.advices[a].price)
1238 1686
             count = count + drug_month_prescriptions.advices[a].prescribing_number
@@ -1246,28 +1694,72 @@ export default {
1246 1694
         let obj = {}
1247 1695
         let count = 0
1248 1696
         for (let a = 0; a < project_month_prescriptions.project.length; a++) {
1249
-          if (project_ids[i].price == project_month_prescriptions.project[a].price &&project_ids[i].id == project_month_prescriptions.project[a].project_id ) {
1697
+          if (project_ids[i].price == project_month_prescriptions.project[a].price && project_ids[i].id == project_month_prescriptions.project[a].project_id) {
1250 1698
 
1251
-            if(project_month_prescriptions.project[a].type == 2){
1699
+            if (project_month_prescriptions.project[a].type == 2) {
1252 1700
               obj['name'] = project_month_prescriptions.project[a].project.project_name
1253 1701
               obj['code'] = project_month_prescriptions.project[a].id
1254 1702
               obj['unit'] = project_month_prescriptions.project[a].project.unit
1255 1703
               obj['type'] = 2
1256 1704
 
1257
-
1258
-            }else if (project_month_prescriptions.project[a].type == 3){
1705
+            } else if (project_month_prescriptions.project[a].type == 3) {
1259 1706
               obj['name'] = project_month_prescriptions.project[a].good_info.good_name
1260
-              obj['code'] =  project_month_prescriptions.project[a].id
1707
+              obj['code'] = project_month_prescriptions.project[a].id
1261 1708
               obj['unit'] = project_month_prescriptions.project[a].good_info.packing_unit
1262 1709
               obj['type'] = 3
1263 1710
 
1264
-
1265 1711
             }
1266 1712
             count = count + parseFloat(project_month_prescriptions.project[a].count)
1267 1713
             obj['price'] = parseFloat(project_month_prescriptions.project[a].price)
1268 1714
             obj['type'] = 1
1269 1715
 
1716
+          }
1717
+        }
1718
+        obj['count'] = count
1719
+        tableData.push(obj)
1720
+
1721
+      }
1722
+      return tableData
1723
+    },
1724
+    setMonthPrescriptiontwo(month_prescriptions) {
1725
+      let tableData = []
1726
+
1727
+      let project_month_prescriptions = {
1728
+        project: []
1729
+
1730
+      }
1731
+      let project_ids = []
1732
+
1733
+      for (let i = 0; i < month_prescriptions.length; i++) {
1734
+        if (month_prescriptions[i].type == 2) { //项目
1735
+          for (let a = 0; a < month_prescriptions[i].project.length; a++) {
1736
+            if (month_prescriptions[i].project[a].type == 2) {
1737
+              let obj = {
1738
+                id: month_prescriptions[i].project[a].project_id,
1739
+                price: month_prescriptions[i].project[a].price
1270 1740
 
1741
+              }
1742
+              project_ids.push(obj)
1743
+              project_month_prescriptions.project.push(month_prescriptions[i].project[a])
1744
+            }
1745
+          }
1746
+        }
1747
+      }
1748
+
1749
+      project_ids = this.unique(project_ids)
1750
+      console.log(project_ids)
1751
+
1752
+      for (let i = 0; i < project_ids.length; i++) {
1753
+        let obj = {}
1754
+        let count = 0
1755
+        for (let a = 0; a < project_month_prescriptions.project.length; a++) {
1756
+          if (project_ids[i].price == project_month_prescriptions.project[a].price && project_ids[i].id == project_month_prescriptions.project[a].project_id) {
1757
+            if (project_month_prescriptions.project[a].type == 2) {
1758
+              obj['name'] = project_month_prescriptions.project[a].project.project_name
1759
+              obj['code'] = project_month_prescriptions.project[a].project.medical_code
1760
+              count = count + parseFloat(project_month_prescriptions.project[a].count)
1761
+              obj['price'] = parseFloat(project_month_prescriptions.project[a].price)
1762
+            }
1271 1763
           }
1272 1764
         }
1273 1765
         obj['count'] = count
@@ -1423,7 +1915,7 @@ export default {
1423 1915
       } else if (index == 2) {
1424 1916
         this.allListVisible = true;
1425 1917
       }
1426
-    },    unique(array) {
1918
+    }, unique(array) {
1427 1919
       // res用来存储结果
1428 1920
       var res = []
1429 1921
       for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {

+ 2 - 0
src/xt_pages/outpatientTool/components/detailStatistics.vue 查看文件

@@ -305,6 +305,7 @@ export default {
305 305
           var list = response.data.data.list;
306 306
           this.his_patient = response.data.data.his_patient;
307 307
           this.list = list;
308
+          console.log( this.list)
308 309
           this.tableData = [];
309 310
           for (let i = 0; i < list.length; i++) {
310 311
             for (let j = 0; j < list[i].orders.length; j++) {
@@ -450,6 +451,7 @@ export default {
450 451
           if(this.list[i].orders[j].is_medicine_insurance == 1){
451 452
             act_pay = act_pay + this.list[i].orders[j].psn_cash_pay
452 453
           }else{
454
+            console.log(this.list[i].orders[j].medfee_sumamt)
453 455
             act_pay= act_pay +  this.list[i].orders[j].medfee_sumamt
454 456
           }
455 457