Browse Source

Merge remote-tracking branch 'origin/20201109_pc_vue_new_branch' into 20201109_pc_vue_new_branch

XMLWAN 2 years ago
parent
commit
02fbcef134
100 changed files with 12061 additions and 4145 deletions
  1. 1 1
      index.html
  2. 12 0
      src/api/his/his_tools.js
  3. 16 0
      src/api/warehouse.js
  4. 1 0
      src/lang/en.js
  5. 3 0
      src/lang/zh.js
  6. 2 0
      src/router/index.js
  7. 64 0
      src/router/modules/DepositManagement.js
  8. 5 0
      src/router/modules/hisTool.js
  9. 1 1
      src/views/layout/Layout.vue
  10. 10 1
      src/views/layout/components/Navbar.vue
  11. 1 1
      src/views/layout/components/Sidebar/index.vue
  12. 109 0
      src/xt_pages/DepositManagement/DeductionDetailsSummary.vue
  13. 254 0
      src/xt_pages/DepositManagement/DepositRefund.vue
  14. 127 0
      src/xt_pages/DepositManagement/DepositSearch.vue
  15. 109 0
      src/xt_pages/DepositManagement/RechargeDetailsSummary.vue
  16. 137 0
      src/xt_pages/DepositManagement/Template/DeductionDetails.vue
  17. 118 0
      src/xt_pages/DepositManagement/Template/DeductionSummary.vue
  18. 130 0
      src/xt_pages/DepositManagement/Template/DepositDetails.vue
  19. 166 0
      src/xt_pages/DepositManagement/Template/RechargeDetails.vue
  20. 121 0
      src/xt_pages/DepositManagement/Template/RechargeSummary.vue
  21. 42 0
      src/xt_pages/DepositManagement/Template/add_page.vue
  22. 42 0
      src/xt_pages/DepositManagement/Template/refundAdd.vue
  23. 102 0
      src/xt_pages/DepositManagement/print/printindex.vue
  24. 445 337
      src/xt_pages/data/components/addInspection.vue
  25. 42 65
      src/xt_pages/data/druguseTemplate.vue
  26. 17 0
      src/xt_pages/dialysis/PatientBox.vue
  27. 1 1
      src/xt_pages/dialysis/batch_print/batch_print_order_nine.vue
  28. 2 2
      src/xt_pages/dialysis/details/DialysisPrescription.vue
  29. 1 1
      src/xt_pages/dialysis/details/dialog/AssessmentAfterDislysis.vue
  30. 2 2
      src/xt_pages/dialysis/details/dialog/dialysisPrescriptionDialog.vue
  31. 25 8
      src/xt_pages/dialysis/details/dialog/monitor_dialog.vue
  32. 8 8
      src/xt_pages/dialysis/details/dialysisMonitoring.vue
  33. 31 2
      src/xt_pages/dialysis/dialysisPrintOrder.vue
  34. 2 0
      src/xt_pages/dialysis/schedualPatient.vue
  35. 2685 0
      src/xt_pages/dialysis/template/DialysisPrintOrderFortyEight.vue
  36. 13 8
      src/xt_pages/dialysis/template/DialysisPrintOrderFortySeven.vue
  37. 13 6
      src/xt_pages/dialysis/template/DialysisPrintOrderFortyTwo.vue
  38. 1 1
      src/xt_pages/dialysis/template/DialysisPrintOrderNine.vue
  39. 0 8
      src/xt_pages/hospitalStation/allListTemplate/printOne.vue
  40. 22 11
      src/xt_pages/hospitalStation/components/chargeDialog.vue
  41. 43 200
      src/xt_pages/hospitalStation/components/hospitalRegisterDialog.vue
  42. 1 1
      src/xt_pages/hospitalStation/components/prescriptionTable.vue
  43. 6 6
      src/xt_pages/hospitalStation/components/settlePrescriptionTable.vue
  44. 853 789
      src/xt_pages/hospitalStation/index.vue
  45. 8 5
      src/xt_pages/hospitalStation/invoicePrint.vue
  46. 318 0
      src/xt_pages/hospitalStation/invoiceTemplate/printThree.vue
  47. 28 10
      src/xt_pages/hospitalStation/invoiceTemplate/printTwo.vue
  48. 93 104
      src/xt_pages/hospitalStation/outpatientChargesManagement.vue
  49. 1 1
      src/xt_pages/hospitalStation/settlementPrint.vue
  50. 1138 0
      src/xt_pages/hospitalStation/settlementTemplate/hospitalSettlePrint.vue
  51. 0 461
      src/xt_pages/hospitalStation/settlementTemplate/printOne.vue
  52. 533 393
      src/xt_pages/hospitalStation/statementPrint.vue
  53. 13 13
      src/xt_pages/hospitalStation/statementTemplate/printOne.vue
  54. 5 1
      src/xt_pages/hospitalStation/summary.vue
  55. 0 1
      src/xt_pages/hospitalStation/summaryDetail.vue
  56. 2 3
      src/xt_pages/hospitalStation/template/printOne.vue
  57. 126 42
      src/xt_pages/outpatientCharges/allListPrint.vue
  58. 1 1
      src/xt_pages/outpatientCharges/allListTemplate/printOne.vue
  59. 241 0
      src/xt_pages/outpatientCharges/allListTemplate/summaryPrint.vue
  60. 11 0
      src/xt_pages/outpatientCharges/components/registerDialog.vue
  61. 2 2
      src/xt_pages/outpatientCharges/costComparison.vue
  62. 5 3
      src/xt_pages/outpatientCharges/invoicePrint.vue
  63. 230 0
      src/xt_pages/outpatientCharges/invoiceTemplate/printSeven.vue
  64. 18 17
      src/xt_pages/outpatientCharges/invoiceTemplate/printSix.vue
  65. 47 14
      src/xt_pages/outpatientCharges/listPrint.vue
  66. 180 0
      src/xt_pages/outpatientCharges/listTemplate/listPrintTwo.vue
  67. 1 1
      src/xt_pages/outpatientCharges/listTemplate/printOne.vue
  68. 225 67
      src/xt_pages/outpatientCharges/outpatientChargesManagement.vue
  69. 221 13
      src/xt_pages/outpatientCharges/settlementTemplate/printOne.vue
  70. 5 3
      src/xt_pages/outpatientCharges/statementPrint.vue
  71. 6 3
      src/xt_pages/outpatientCharges/statementTemplate/printThree.vue
  72. 14 14
      src/xt_pages/outpatientCharges/statementTemplate/privateChargePrint.vue
  73. 243 212
      src/xt_pages/outpatientDoctorStation/batch_print_checkTemplate/printOne.vue
  74. 365 0
      src/xt_pages/outpatientDoctorStation/batch_print_template/batchPrintTwo.vue
  75. 11 9
      src/xt_pages/outpatientDoctorStation/batch_print_template/index.vue
  76. 2 2
      src/xt_pages/outpatientDoctorStation/batch_print_template/printOne.vue
  77. 34 33
      src/xt_pages/outpatientDoctorStation/batch_print_treatTemplate/index.vue
  78. 456 452
      src/xt_pages/outpatientDoctorStation/batch_print_treatTemplate/printOne.vue
  79. 9 9
      src/xt_pages/outpatientDoctorStation/checkPrint.vue
  80. 583 441
      src/xt_pages/outpatientDoctorStation/checkTemplate/printOne.vue
  81. 6 2
      src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue
  82. 0 2
      src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue
  83. 6 6
      src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue
  84. 9 5
      src/xt_pages/outpatientDoctorStation/doctorDesk.vue
  85. 296 244
      src/xt_pages/outpatientDoctorStation/pastInquiries.vue
  86. 13 55
      src/xt_pages/outpatientDoctorStation/print.vue
  87. 11 3
      src/xt_pages/outpatientDoctorStation/template/printOne.vue
  88. 3 1
      src/xt_pages/outpatientDoctorStation/template/printThree.vue
  89. 4 4
      src/xt_pages/outpatientRegistration/registrationHistory.vue
  90. 153 0
      src/xt_pages/outpatientTool/components/detailStatistics.vue
  91. 156 0
      src/xt_pages/outpatientTool/components/gatherStatistics.vue
  92. 341 0
      src/xt_pages/outpatientTool/statistics.vue
  93. 41 3
      src/xt_pages/qcd/indicatorControlAnalysis/weight.vue
  94. 6 6
      src/xt_pages/stock/detail/print.vue
  95. 6 6
      src/xt_pages/stock/detail/stockOutDetail.vue
  96. 40 7
      src/xt_pages/stock/drugs/components/drugOutDetail.vue
  97. 3 3
      src/xt_pages/stock/drugs/drugStockOutOrder.vue
  98. 2 4
      src/xt_pages/stock/inventoryTransfer/index.vue
  99. 4 4
      src/xt_pages/stock/stockOutOrderEdit.vue
  100. 0 0
      src/xt_pages/stock/stockQuery.vue

+ 1 - 1
index.html View File

@@ -19,7 +19,7 @@
19 19
 
20 20
   <body>
21 21
     <script src="https://images.shengws.com/reconnecting-websocket.min.js"></script>
22
-    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
22
+    <script src="https://images.shengws.com/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>
25 25
     <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.all.min.js"></script>

+ 12 - 0
src/api/his/his_tools.js View File

@@ -0,0 +1,12 @@
1
+import request from "@/utils/request";
2
+
3
+
4
+export function GetAllPatients() {
5
+  return request({
6
+    url: "/api/his/patient",
7
+    method: "get",
8
+  });
9
+}
10
+
11
+
12
+

+ 16 - 0
src/api/warehouse.js View File

@@ -131,3 +131,19 @@ export function updatedrugout(params) {
131 131
     params: params
132 132
   })
133 133
 }
134
+//获取管理员列表(已渲染)
135
+export function getusername(params) {
136
+  return request({
137
+    url: '/api/secondary/getusername',
138
+    method: 'get',
139
+    params: params
140
+  })
141
+}
142
+//获取当前登录人的id(已渲染)
143
+export function getcreaterid(params) {
144
+  return request({
145
+    url: '/api/secondary/getcreaterid',
146
+    method: 'get',
147
+    params: params
148
+  })
149
+}

+ 1 - 0
src/lang/en.js View File

@@ -87,6 +87,7 @@ export default {
87 87
     data_dictionary: 'data_dictionary',
88 88
     field_config: 'field_config',
89 89
     template: 'Template',
90
+    DepositManagement:'Deposit Management',
90 91
     workforce: 'workforce',
91 92
     appointment: 'appointment',
92 93
     sign: 'sign',

+ 3 - 0
src/lang/zh.js View File

@@ -175,6 +175,7 @@ export default {
175 175
     selfPreparedMedicineIndex: '自备药管理',
176 176
     selfPreparedMedicine: '自备药管理',
177 177
     wareHouseManage:'仓库管理',
178
+    
178 179
     inventoryTransfer:'库存调拨',
179 180
 
180 181
     consumablesManagement: '耗材管理',
@@ -271,6 +272,8 @@ export default {
271 272
     hisTool: 'HIS工具',
272 273
     hospitalCharges: '住院收费',
273 274
 
275
+    DepositManagement:'押金管理',
276
+
274 277
     summary_tool: '项目消费明细汇总',
275 278
     labelPrint: '标签打印',
276 279
     faPiao: '发票设置',

+ 2 - 0
src/router/index.js View File

@@ -32,6 +32,7 @@ import outpatientPharmacy from './modules/outpatientPharmacy'
32 32
 import hospitalRecord from './modules/hospitalRecord'
33 33
 import hospitalStation from './modules/hospitalStation'
34 34
 import hospitalCharges from './modules/hospitalCharges'
35
+import DepositManagement from './modules/DepositManagement'
35 36
 import hisTool from './modules/hisTool'
36 37
 import supply from './modules/supply'
37 38
 
@@ -153,6 +154,7 @@ var _asy_router_map = [
153 154
   drugs,
154 155
   selfPreparedMedicine,  //自备药管理模块
155 156
   wareHouseManage,  //仓库管理模块
157
+  DepositManagement, //押金管理模块
156 158
   inventoryTransfer,    //库存调拨模块
157 159
   otherManagement,
158 160
   qcd,

+ 64 - 0
src/router/modules/DepositManagement.js View File

@@ -0,0 +1,64 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+    path: '/DepositManagement',
5
+    component: Layout,
6
+    redirect: 'noredirect',
7
+    name: 'DepositManagement',
8
+    alwaysShow: true,
9
+    meta: {
10
+        title: 'DepositManagement',
11
+        icon: 'stock',
12
+        isChild: true
13
+    },
14
+    children: [
15
+        {
16
+            path: '/DepositManagement/DepositSearch',
17
+            component: () => import('@/xt_pages/DepositManagement/DepositSearch'),
18
+            name: 'DepositSearch',
19
+            meta: { title: '押金查询', noCache: true }
20
+        },
21
+
22
+        {
23
+            path: '/DepositManagement/RechargeDetailsSummary',
24
+            component: () => import('@/xt_pages/DepositManagement/RechargeDetailsSummary'),
25
+            name: 'RechargeDetailsSummary',
26
+            meta: { title: '押金充值明细汇总', noCache: true }
27
+        },
28
+        {
29
+            path: '/DepositManagement/DeductionDetailsSummary',
30
+            component: () => import('@/xt_pages/DepositManagement/DeductionDetailsSummary'),
31
+            name: 'DeductionDetailsSummary',
32
+            meta: { title: '押金扣费明细汇总', noCache: true }
33
+        },
34
+        {
35
+            path: '/DepositManagement/DepositRefund',
36
+            component: () => import('@/xt_pages/DepositManagement/DepositRefund'),
37
+            name: 'DepositRefund',
38
+            meta: { title: '押金退款', noCache: true }
39
+        },
40
+        {
41
+            path: '/DepositManagement/DepositDetails',
42
+            component: () => import('@/xt_pages/DepositManagement/Template/DepositDetails'),
43
+            hidden: true,
44
+            is_menu: false,
45
+            name: 'DepositDetails',
46
+            meta: {
47
+                title: '流水详情',
48
+                noCache: true
49
+            }
50
+        },
51
+        {
52
+            path: '/DepositManagement/printindex',
53
+            component: () => import('@/xt_pages/DepositManagement/print/printindex'),
54
+            hidden: true,
55
+            is_menu: false,
56
+            name: 'printindex',
57
+            meta: {
58
+                title: '打印凭证',
59
+                noCache: true
60
+            }
61
+        }
62
+
63
+    ]
64
+}

+ 5 - 0
src/router/modules/hisTool.js View File

@@ -57,6 +57,11 @@ export default {
57 57
       component: () => import('@/xt_pages/outpatientTool/yidiClear'),
58 58
       name: 'yidiClear',
59 59
       meta: { title: 'yidiClear', noCache: true }
60
+    },{
61
+      path: '/hisTool/statistics',
62
+      component: () => import('@/xt_pages/outpatientTool/statistics'),
63
+      name: 'statistics',
64
+      meta: { title: 'statistics', noCache: true }
60 65
     },
61 66
 
62 67
   ]

+ 1 - 1
src/views/layout/Layout.vue View File

@@ -127,7 +127,7 @@ export default {
127 127
     }
128 128
   },
129 129
   created(){
130
-    let menzhen = ['hospitalStation',"hospitalRecord","hospitalCharges","hisTool",'outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord'];
130
+    let menzhen = ['hospitalStation',"hospitalRecord","hospitalCharges","DepositManagement","hisTool",'outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord'];
131 131
     let bingli = ['User','createPatient'];
132 132
     let touxi = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control'];
133 133
     let kucun = ['stockManage','stockDrugs','selfPreparedMedicine','inventoryTransfer','wareHouseManage','otherManagement'];

+ 10 - 1
src/views/layout/components/Navbar.vue View File

@@ -83,6 +83,8 @@
83 83
           </el-dropdown-menu>
84 84
         </el-dropdown>
85 85
       </div>
86
+
87
+      <div style="margin-left: 50px" v-if="org_config.code&&org_config.code.length >0">机构编码:{{org_config.code}}</div>
86 88
     </div>
87 89
     <div class="navRight">
88 90
       <!-- <el-input placeholder="搜索患者透析号/姓名/首拼" prefix-icon="el-icon-search" v-model="input2"></el-input>
@@ -101,6 +103,7 @@
101 103
             <i class="el-icon-caret-bottom"></i>
102 104
           </div>
103 105
           <el-dropdown-menu slot="dropdown">
106
+            <el-dropdown-item >医师编码: {{role.doctor_number}}</el-dropdown-item>
104 107
             <el-dropdown-item command="modifyUserInfoAction"
105 108
               >个人信息</el-dropdown-item
106 109
             >
@@ -183,7 +186,9 @@ export default {
183 186
       is_super_admin: 0,
184 187
       wrap1:false,
185 188
       wrap2:false,
186
-      information:{}
189
+      information:{},
190
+      org_config:{},
191
+      role:{},
187 192
       // scrm_role_exist: $store.getters.xt_user.scrm_role_exist
188 193
     };
189 194
   },
@@ -392,6 +397,10 @@ export default {
392 397
             this.org_name = this.orgs[i].org_name;
393 398
           }
394 399
         }
400
+
401
+        this.org_config = response.data.data.org_config
402
+        this.role = response.data.data.role
403
+
395 404
         localStorage.setItem("org_id",creator.org_id);
396 405
         sessionStorage.setItem("org_id",creator.org_id);
397 406
         sessionStorage.setItem("admin_user_id",creator.admin_user_id);

+ 1 - 1
src/views/layout/components/Sidebar/index.vue View File

@@ -69,7 +69,7 @@ export default {
69 69
     navTitle:{
70 70
       handler(newVal,oldVal){
71 71
         if(newVal == 'HIS管理'){
72
-          let nameArr = ['hospitalStation','hospitalRecord','hospitalCharges','hisTool','outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord',];
72
+          let nameArr = ['hospitalStation','hospitalRecord','hospitalCharges','DepositManagement','hisTool','outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord',];
73 73
           // console.log('permission_routers',this.permission_routers)
74 74
           let routerArr = [];
75 75
           this.permission_routers.map(item => {

+ 109 - 0
src/xt_pages/DepositManagement/DeductionDetailsSummary.vue View File

@@ -0,0 +1,109 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div style="width: 100%">
8
+        <el-tabs v-model="activeName" @tab-click="handleClick">
9
+          <el-tab-pane label="扣费明细" name="first">
10
+            <DeductionDetails></DeductionDetails>
11
+          </el-tab-pane>
12
+          <el-tab-pane label="扣费汇总" name="second">
13
+            <DeductionSummary></DeductionSummary>
14
+          </el-tab-pane>
15
+        </el-tabs>
16
+        <div
17
+          style="position: absolute; top: 80px; right: 40px"
18
+          v-if="activeName == 'first'"
19
+        >
20
+          <el-button size="small" type="primary" @click="Add()">
21
+            新增
22
+          </el-button>
23
+        </div>
24
+      </div>
25
+      <el-dialog
26
+        title="新增押金"
27
+        :visible.sync="dialogVisible"
28
+        width="30%"
29
+        :show-close="close"
30
+      >
31
+        <!-- <span>这是一段信息</span> -->
32
+        <RechangeAd></RechangeAd>
33
+        <span slot="footer" class="dialog-footer">
34
+          <el-button @click="pass">审核通过</el-button>
35
+          <el-button type="primary" @click="Submit">提 交</el-button>
36
+        </span>
37
+      </el-dialog>
38
+    </div>
39
+  </div>
40
+</template>
41
+<script>
42
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
43
+import DeductionDetails from "./Template/DeductionDetails.vue";
44
+import DeductionSummary from "./Template/DeductionSummary.vue";
45
+import RechangeAd from "./Template/add_page.vue";
46
+export default {
47
+  components: {
48
+    BreadCrumb,
49
+    DeductionDetails,
50
+    DeductionSummary,
51
+    RechangeAd,
52
+  },
53
+  data() {
54
+    return {
55
+      crumbs: [
56
+        { path: false, name: "押金管理" },
57
+        { path: "/DepositManagement/DepositSearch", name: "充值详情" },
58
+      ],
59
+      activeName: "first",
60
+      tableData: [{}, {}],
61
+      total: 0,
62
+      page: 1,
63
+      limit: 10,
64
+      keywords: "",
65
+      dialogVisible: false,
66
+      close: false,
67
+    };
68
+  },
69
+
70
+  methods: {
71
+    // 初始化数据
72
+    init() {},
73
+
74
+    // 查询操作
75
+    search() {},
76
+    // 切换明细
77
+    handleClick(tab, event) {
78
+      console.log(tab, event);
79
+    },
80
+    // 页表操作
81
+    handleSizeChange(val) {
82
+      this.limit = val;
83
+      this.init();
84
+    },
85
+    handleCurrentChange(val) {
86
+      this.page = val;
87
+      this.init();
88
+    },
89
+
90
+    // 流水详情
91
+    toDetails() {
92
+      this.$router.push({ path: "/DepositManagement/DepositDetails" });
93
+    },
94
+
95
+    // 新增
96
+    Add() {
97
+      this.dialogVisible = true;
98
+    },
99
+
100
+    // 审核通过
101
+    pass() {},
102
+
103
+    // 提交
104
+    Submit() {},
105
+  },
106
+};
107
+</script>
108
+<style>
109
+</style>

+ 254 - 0
src/xt_pages/DepositManagement/DepositRefund.vue View File

@@ -0,0 +1,254 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div style="width: 100%">
8
+        <div class="Top">
9
+          <div>退款列表</div>
10
+          <div class="btn_list">
11
+            <el-button size="small" type="primary" @click="to_add">
12
+              新增
13
+            </el-button>
14
+            <el-button size="small" type="primary" @click="pass_exam">
15
+              审核通过
16
+            </el-button>
17
+            <el-button size="small" type="warning" @click="reject_exam">
18
+              审核拒绝
19
+            </el-button>
20
+          </div>
21
+        </div>
22
+        <div
23
+          style="
24
+            justify-content: flex-start;
25
+            margin: 0px 0 12px 0;
26
+            display: flex;
27
+            align-items: center;
28
+          "
29
+        >
30
+          <div style="display: flex">
31
+            <div style="width: 250px">
32
+              <el-input
33
+                size="small"
34
+                style="width: 200px; margin-left: 10px"
35
+                class="filter-item"
36
+                placeholder="请输入编号/患者名称"
37
+                v-model.trim="keywords"
38
+              />
39
+            </div>
40
+
41
+            <div style="margin-right: 30px">
42
+              退款类型:
43
+              <el-select v-model="value" placeholder="请选择">
44
+                <el-option
45
+                  v-for="item in [1, 2]"
46
+                  :key="item"
47
+                  :label="item"
48
+                  :value="item"
49
+                >
50
+                </el-option>
51
+              </el-select>
52
+            </div>
53
+
54
+            <div style="margin-right: 30px">
55
+              审核状态:
56
+              <el-select v-model="status" placeholder="请选择">
57
+                <el-option
58
+                  v-for="item in [1, 2]"
59
+                  :key="item"
60
+                  :label="item"
61
+                  :value="item"
62
+                >
63
+                </el-option>
64
+              </el-select>
65
+            </div>
66
+
67
+            <div style="width: 465px">
68
+              <span>日期查询:</span>
69
+              <el-date-picker
70
+                v-model="date"
71
+                type="daterange"
72
+                range-separator="至"
73
+                start-placeholder="开始日期"
74
+                end-placeholder="结束日期"
75
+              >
76
+              </el-date-picker>
77
+            </div>
78
+            <el-button
79
+              size="small"
80
+              class="filter-item"
81
+              type="primary"
82
+              icon="el-icon-search"
83
+              @click="search"
84
+              >查询</el-button
85
+            >
86
+          </div>
87
+        </div>
88
+        <el-table
89
+          ref="multipleTable"
90
+          :header-cell-style="{
91
+            backgroundColor: 'rgb(245, 247, 250)',
92
+            color: '#606266',
93
+          }"
94
+          :data="tableData"
95
+          @selection-change="handleSelectionChange"
96
+          border
97
+        >
98
+          <el-table-column type="selection" width="55"> </el-table-column>
99
+
100
+          <el-table-column label="申请编号" align="center">
101
+            <template slot-scope="scope">
102
+              <span></span>
103
+            </template>
104
+          </el-table-column>
105
+          <el-table-column label="患者名称" align="center">
106
+            <template slot-scope="scope">
107
+              <span></span>
108
+            </template>
109
+          </el-table-column>
110
+
111
+          <el-table-column label="退款类型" align="center">
112
+            <template slot-scope="scope">
113
+              <span></span>
114
+            </template>
115
+          </el-table-column>
116
+          <el-table-column label="退款金额" align="center">
117
+            <template slot-scope="scope">
118
+              <span></span>
119
+            </template>
120
+          </el-table-column>
121
+          <el-table-column label="退款状态" align="center">
122
+            <template slot-scope="scope">
123
+              <span></span>
124
+            </template>
125
+          </el-table-column>
126
+          <el-table-column label="备注" align="center">
127
+            <template slot-scope="scope">
128
+              <span></span>
129
+            </template>
130
+          </el-table-column>
131
+          <el-table-column label="申请人" align="center">
132
+            <template slot-scope="scope">
133
+              <span></span>
134
+            </template>
135
+          </el-table-column>
136
+          <el-table-column label="申请时间" align="center">
137
+            <template slot-scope="scope">
138
+              <span></span>
139
+            </template>
140
+          </el-table-column>
141
+          <el-table-column label="操作" align="center" width="350px">
142
+            <template slot-scope="scope">
143
+              <el-button
144
+                size="small"
145
+                type="primary"
146
+                icon="el-icon-edit-outline"
147
+                @click="edit(scope.row, scope.row.$index)"
148
+              >
149
+              </el-button>
150
+              <el-button
151
+                size="small"
152
+                type="danger"
153
+                icon="el-icon-delete"
154
+                @click="toDelete(scope.row, scope.row.$index)"
155
+              >
156
+              </el-button>
157
+            </template>
158
+          </el-table-column>
159
+        </el-table>
160
+        <div>充值金额合计:<span></span></div>
161
+      </div>
162
+
163
+      <el-dialog
164
+        title="申请退款"
165
+        :visible.sync="dialogVisible"
166
+        width="30%"
167
+        :show-close="close"
168
+      >
169
+        <refundAdd></refundAdd>
170
+        <span slot="footer" class="dialog-footer">
171
+          <el-button @click="pass">审核通过</el-button>
172
+          <el-button type="primary" @click="Submit">保 存</el-button>
173
+        </span>
174
+      </el-dialog>
175
+    </div>
176
+  </div>
177
+</template>
178
+<script>
179
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
180
+import refundAdd from "./Template/refundAdd.vue";
181
+export default {
182
+  components: {
183
+    BreadCrumb,
184
+    refundAdd,
185
+  },
186
+  data() {
187
+    return {
188
+      status: "",
189
+      value: "",
190
+      crumbs: [
191
+        { path: false, name: "押金管理" },
192
+        { path: "/DepositManagement/DepositSearch", name: "充值详情" },
193
+      ],
194
+      tableData: [{}, {}],
195
+      total: 0,
196
+      page: 1,
197
+      limit: 10,
198
+      keywords: "",
199
+      dialogVisible: false,
200
+      close: false,
201
+      date:""
202
+    };
203
+  },
204
+
205
+  methods: {
206
+    // 初始化数据
207
+    init() {},
208
+
209
+    // 查询操作
210
+    search() {},
211
+
212
+    // 新增
213
+    to_add() {
214
+      this.dialogVisible = true;
215
+    },
216
+
217
+    // 编辑
218
+    edit(){},
219
+
220
+    // 删除
221
+    toDelete(){},
222
+
223
+    // 审核通过
224
+    pass_exam() {},
225
+
226
+    // 审核拒绝
227
+    reject_exam() {},
228
+
229
+    // 提交
230
+    Submit() {},
231
+
232
+    // 退款申请审核
233
+    pass(){},
234
+
235
+    // 列表选择
236
+    handleSelectionChange(){}
237
+  },
238
+};
239
+</script>
240
+<style scoped>
241
+.Top {
242
+  width: 100%;
243
+  height: 40px;
244
+  display: flex;
245
+  justify-content: space-between;
246
+  align-items: center;
247
+  border-bottom: 1px solid #e5e5e5;
248
+  margin-bottom: 10px;
249
+}
250
+.btn_list {
251
+  display: flex;
252
+}
253
+</style>>
254
+

+ 127 - 0
src/xt_pages/DepositManagement/DepositSearch.vue View File

@@ -0,0 +1,127 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div
8
+        style="
9
+          justify-content: flex-start;
10
+          margin: 0px 0 12px 0;
11
+          display: flex;
12
+          align-items: center;
13
+        "
14
+      >
15
+        <div>
16
+          <el-input
17
+            size="small"
18
+            style="width: 200px; margin-left: 10px"
19
+            class="filter-item"
20
+            placeholder="请输入患者名称"
21
+            v-model.trim="keywords"
22
+          />
23
+          <el-button
24
+            size="small"
25
+            class="filter-item"
26
+            type="primary"
27
+            icon="el-icon-search"
28
+            @click="search"
29
+            >查询</el-button
30
+          >
31
+        </div>
32
+      </div>
33
+
34
+      <el-table
35
+        :header-cell-style="{
36
+          backgroundColor: 'rgb(245, 247, 250)',
37
+          color: '#606266',
38
+        }"
39
+        :data="tableData"
40
+        border
41
+      >
42
+        <el-table-column type="index" label="序号" align="center" width="200">
43
+        </el-table-column>
44
+        <el-table-column label="患者名称" align="center">
45
+          <template slot-scope="scope">
46
+            <span></span>
47
+          </template>
48
+        </el-table-column>
49
+        <el-table-column label="可用金额" align="center">
50
+          <template slot-scope="scope">
51
+            <span>{{ scope.row.drug_spec ? scope.row.drug_spec : "" }}</span>
52
+          </template>
53
+        </el-table-column>
54
+        <el-table-column label="操作" align="center" width="450px">
55
+          <template slot-scope="scope">
56
+            <el-button
57
+              size="small"
58
+              type="primary"
59
+              @click="toDetails(scope.row, scope.row.$index)"
60
+            >
61
+              流水详情
62
+            </el-button>
63
+          </template>
64
+        </el-table-column>
65
+      </el-table>
66
+
67
+      <el-pagination
68
+        @size-change="handleSizeChange"
69
+        @current-change="handleCurrentChange"
70
+        :page-sizes="[10, 50, 100, 200, 500, 1000]"
71
+        :page-size="10"
72
+        background
73
+        align="right"
74
+        style="margin-top: 20px"
75
+        layout="total, sizes, prev, pager, next, jumper"
76
+        :total="total"
77
+      >
78
+      </el-pagination>
79
+    </div>
80
+  </div>
81
+</template>
82
+<script>
83
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
84
+export default {
85
+  components: {
86
+    BreadCrumb,
87
+  },
88
+  data() {
89
+    return {
90
+      crumbs: [
91
+        { path: false, name: "押金管理" },
92
+        { path: "/DepositManagement/DepositSearch", name: "押金查询" },
93
+      ],
94
+      tableData: [{}, {}],
95
+      total: 0,
96
+      page: 1,
97
+      limit: 10,
98
+      keywords:''
99
+    };
100
+  },
101
+
102
+  methods: {
103
+    // 初始化数据
104
+    init() {},
105
+
106
+    // 查询操作
107
+    search() {},
108
+
109
+    // 页表操作
110
+    handleSizeChange(val) {
111
+      this.limit = val;
112
+      this.init();
113
+    },
114
+    handleCurrentChange(val) {
115
+      this.page = val;
116
+      this.init();
117
+    },
118
+
119
+    // 流水详情
120
+    toDetails() {
121
+      this.$router.push({ path: "/DepositManagement/DepositDetails" });
122
+    },
123
+  },
124
+};
125
+</script>
126
+<style>
127
+</style>

+ 109 - 0
src/xt_pages/DepositManagement/RechargeDetailsSummary.vue View File

@@ -0,0 +1,109 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div style="width: 100%">
8
+        <el-tabs v-model="activeName" @tab-click="handleClick">
9
+          <el-tab-pane label="充值明细" name="first">
10
+            <RechangeDetails></RechangeDetails>
11
+          </el-tab-pane>
12
+          <el-tab-pane label="充值汇总" name="second">
13
+            <RechargeSummary></RechargeSummary>
14
+          </el-tab-pane>
15
+        </el-tabs>
16
+        <div
17
+          style="position: absolute; top: 80px; right: 40px"
18
+          v-if="activeName == 'first'"
19
+        >
20
+          <el-button size="small" type="primary" @click="Add()">
21
+            新增
22
+          </el-button>
23
+        </div>
24
+      </div>
25
+      <el-dialog
26
+        title="新增押金"
27
+        :visible.sync="dialogVisible"
28
+        width="30%"
29
+        :show-close="close"
30
+      >
31
+        <!-- <span>这是一段信息</span> -->
32
+        <RechangeAd></RechangeAd>
33
+        <span slot="footer" class="dialog-footer">
34
+          <el-button @click="pass">审核通过</el-button>
35
+          <el-button type="primary" @click="Submit">提 交</el-button>
36
+        </span>
37
+      </el-dialog>
38
+    </div>
39
+  </div>
40
+</template>
41
+<script>
42
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
43
+import RechangeDetails from "./Template/RechargeDetails.vue";
44
+import RechargeSummary from "./Template/RechargeSummary.vue";
45
+import RechangeAd from "./Template/add_page.vue";
46
+export default {
47
+  components: {
48
+    BreadCrumb,
49
+    RechangeDetails,
50
+    RechargeSummary,
51
+    RechangeAd,
52
+  },
53
+  data() {
54
+    return {
55
+      crumbs: [
56
+        { path: false, name: "押金管理" },
57
+        { path: "/DepositManagement/DepositSearch", name: "充值详情" },
58
+      ],
59
+      activeName: "first",
60
+      tableData: [{}, {}],
61
+      total: 0,
62
+      page: 1,
63
+      limit: 10,
64
+      keywords: "",
65
+      dialogVisible: false,
66
+      close: false,
67
+    };
68
+  },
69
+
70
+  methods: {
71
+    // 初始化数据
72
+    init() {},
73
+
74
+    // 查询操作
75
+    search() {},
76
+    // 切换明细
77
+    handleClick(tab, event) {
78
+      console.log(tab, event);
79
+    },
80
+    // 页表操作
81
+    handleSizeChange(val) {
82
+      this.limit = val;
83
+      this.init();
84
+    },
85
+    handleCurrentChange(val) {
86
+      this.page = val;
87
+      this.init();
88
+    },
89
+
90
+    // 流水详情
91
+    toDetails() {
92
+      this.$router.push({ path: "/DepositManagement/DepositDetails" });
93
+    },
94
+
95
+    // 新增
96
+    Add() {
97
+      this.dialogVisible = true;
98
+    },
99
+
100
+    // 审核通过
101
+    pass() {},
102
+
103
+    // 提交
104
+    Submit() {},
105
+  },
106
+};
107
+</script>
108
+<style>
109
+</style>

+ 137 - 0
src/xt_pages/DepositManagement/Template/DeductionDetails.vue View File

@@ -0,0 +1,137 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="app-container">
4
+      <div
5
+        style="
6
+          justify-content: flex-start;
7
+          margin: 0px 0 12px 0;
8
+          display: flex;
9
+          align-items: center;
10
+        "
11
+      >
12
+        <div style="display: flex">
13
+          <div style="width: 250px">
14
+            <el-input
15
+              size="small"
16
+              style="width: 200px; margin-left: 10px"
17
+              class="filter-item"
18
+              placeholder="请输入编号/患者名称"
19
+              v-model.trim="keywords"
20
+            />
21
+          </div>
22
+
23
+          <div style="width: 465px">
24
+            <span>日期查询:</span>
25
+            <el-date-picker
26
+              v-model="value1"
27
+              type="daterange"
28
+              range-separator="至"
29
+              start-placeholder="开始日期"
30
+              end-placeholder="结束日期"
31
+            >
32
+            </el-date-picker>
33
+          </div>
34
+          <el-button
35
+            size="small"
36
+            class="filter-item"
37
+            type="primary"
38
+            icon="el-icon-search"
39
+            @click="search"
40
+            >查询</el-button
41
+          >
42
+        </div>
43
+      </div>
44
+
45
+      <el-table
46
+        :header-cell-style="{
47
+          backgroundColor: 'rgb(245, 247, 250)',
48
+          color: '#606266',
49
+        }"
50
+        :data="tableData"
51
+        border
52
+      >
53
+        <el-table-column type="index" label="序号" align="center" width="100">
54
+        </el-table-column>
55
+        <el-table-column label="就诊号" align="center" width="300">
56
+          <template slot-scope="scope">
57
+            <span></span>
58
+          </template>
59
+        </el-table-column>
60
+        <el-table-column label="患者名称" align="center">
61
+          <template slot-scope="scope">
62
+            <span></span>
63
+          </template>
64
+        </el-table-column>
65
+
66
+        <el-table-column label="医收费类型" align="center">
67
+          <template slot-scope="scope">
68
+            <span></span>
69
+          </template>
70
+        </el-table-column>
71
+        <el-table-column label="医疗费总额" align="center">
72
+          <template slot-scope="scope">
73
+            <span></span>
74
+          </template>
75
+        </el-table-column>
76
+        <el-table-column label="押金支付金额" align="center">
77
+          <template slot-scope="scope">
78
+            <span></span>
79
+          </template>
80
+        </el-table-column>
81
+        <el-table-column label="收费日期" align="center">
82
+          <template slot-scope="scope">
83
+            <span></span>
84
+          </template>
85
+        </el-table-column>
86
+        <el-table-column label="操作" align="center" width="350px">
87
+          <template slot-scope="scope">
88
+            <el-button
89
+              size="small"
90
+              type="primary"
91
+              @click="Details(scope.row, scope.row.$index)"
92
+            >
93
+              查看详情
94
+            </el-button>
95
+          </template>
96
+        </el-table-column>
97
+      </el-table>
98
+
99
+      <div>押金支付金额合计:<span></span></div>
100
+    </div>
101
+  </div>
102
+</template>
103
+<script>
104
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
105
+export default {
106
+  components: {
107
+    BreadCrumb,
108
+  },
109
+  data() {
110
+    return {
111
+      crumbs: [
112
+        { path: false, name: "押金管理" },
113
+        { path: "/DepositManagement/DepositSearch", name: "押金查询" },
114
+      ],
115
+      tableData: [{}, {}],
116
+      total: 0,
117
+      page: 1,
118
+      limit: 10,
119
+      keywords: "",
120
+      value1: "",
121
+    };
122
+  },
123
+
124
+  methods: {
125
+    // 初始化数据
126
+    init() {},
127
+
128
+    // 查询操作
129
+    search() {},
130
+
131
+    // 查看详情
132
+    Details() {},
133
+  },
134
+};
135
+</script>
136
+<style>
137
+</style>

+ 118 - 0
src/xt_pages/DepositManagement/Template/DeductionSummary.vue View File

@@ -0,0 +1,118 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="app-container">
4
+      <div
5
+        style="
6
+          justify-content: flex-start;
7
+          margin: 0px 0 12px 0;
8
+          display: flex;
9
+          align-items: center;
10
+        "
11
+      >
12
+        <div style="display: flex">
13
+          <div style="width: 250px">
14
+            <el-input
15
+              size="small"
16
+              style="width: 200px; margin-left: 10px"
17
+              class="filter-item"
18
+              placeholder="请输入编号/患者名称"
19
+              v-model.trim="keywords"
20
+            />
21
+          </div>
22
+
23
+          <div style="width: 465px">
24
+            <span>日期查询:</span>
25
+            <el-date-picker
26
+              v-model="value1"
27
+              type="daterange"
28
+              range-separator="至"
29
+              start-placeholder="开始日期"
30
+              end-placeholder="结束日期"
31
+            >
32
+            </el-date-picker>
33
+          </div>
34
+          <el-button
35
+            size="small"
36
+            class="filter-item"
37
+            type="primary"
38
+            icon="el-icon-search"
39
+            @click="search"
40
+            >查询</el-button
41
+          >
42
+        </div>
43
+      </div>
44
+
45
+      <el-table
46
+        :header-cell-style="{
47
+          backgroundColor: 'rgb(245, 247, 250)',
48
+          color: '#606266',
49
+        }"
50
+        :data="tableData"
51
+        border
52
+      >
53
+        <el-table-column type="index" label="序号" align="center" width="200">
54
+        </el-table-column>
55
+
56
+        <el-table-column label="患者名称" align="center">
57
+          <template slot-scope="scope">
58
+            <span></span>
59
+          </template>
60
+        </el-table-column>
61
+
62
+        <el-table-column label="医疗费总额" align="center">
63
+          <template slot-scope="scope">
64
+            <span></span>
65
+          </template>
66
+        </el-table-column>
67
+        <el-table-column label="押金支付金额" align="center">
68
+          <template slot-scope="scope">
69
+            <span></span>
70
+          </template>
71
+        </el-table-column>
72
+      </el-table>
73
+
74
+      <div>押金支付金额合计:<span></span></div>
75
+    </div>
76
+  </div>
77
+</template>
78
+<script>
79
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
80
+export default {
81
+  components: {
82
+    BreadCrumb,
83
+  },
84
+  data() {
85
+    return {
86
+      crumbs: [
87
+        { path: false, name: "押金管理" },
88
+        { path: "/DepositManagement/DepositSearch", name: "押金查询" },
89
+      ],
90
+      tableData: [{}, {}],
91
+      total: 0,
92
+      page: 1,
93
+      limit: 10,
94
+      keywords: "",
95
+      value1: "",
96
+    };
97
+  },
98
+
99
+  methods: {
100
+    // 初始化数据
101
+    init() {},
102
+
103
+    // 查询操作
104
+    search() {},
105
+
106
+    // 删除
107
+    toDelete() {},
108
+
109
+    // 审核
110
+    examine() {},
111
+
112
+    // 打印凭证
113
+    print() {},
114
+  },
115
+};
116
+</script>
117
+<style>
118
+</style>

+ 130 - 0
src/xt_pages/DepositManagement/Template/DepositDetails.vue View File

@@ -0,0 +1,130 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div
8
+        style="
9
+          justify-content: flex-start;
10
+          margin: 0px 0 12px 0;
11
+          display: flex;
12
+          align-items: center;
13
+        "
14
+      >
15
+        <div style="width: 200px">
16
+          <span>患者名称:</span>
17
+        </div>
18
+        <div style="width: 200px">
19
+          <span>可用金额:</span>
20
+        </div>
21
+      </div>
22
+      <div
23
+        style="
24
+          justify-content: flex-start;
25
+          margin: 0px 0 12px 0;
26
+          display: flex;
27
+          align-items: center;
28
+        "
29
+      >
30
+        <div style="width: 550px">
31
+          <span>日期查询:</span>
32
+          <el-date-picker
33
+            v-model="value1"
34
+            type="daterange"
35
+            range-separator="至"
36
+            start-placeholder="开始日期"
37
+            end-placeholder="结束日期"
38
+          >
39
+          </el-date-picker>
40
+        </div>
41
+        <div style="width: 300px">
42
+          <span>押金类型:</span>
43
+          <el-select v-model="value" placeholder="请选择">
44
+            <el-option
45
+              v-for="item in [1,2]"
46
+              :key="item"
47
+              :label="item"
48
+              :value="item"
49
+            >
50
+            </el-option>
51
+          </el-select>
52
+        </div>
53
+      </div>
54
+
55
+      <el-table
56
+        :header-cell-style="{
57
+          backgroundColor: 'rgb(245, 247, 250)',
58
+          color: '#606266',
59
+        }"
60
+        :data="tableData"
61
+        border
62
+      >
63
+        <el-table-column type="index" label="序号" align="center" width="100">
64
+        </el-table-column>
65
+        <el-table-column label="押金类型" align="center">
66
+          <template slot-scope="scope">
67
+            <span></span>
68
+          </template>
69
+        </el-table-column>
70
+        <el-table-column label="充值/扣费单据编码" align="center">
71
+          <template slot-scope="scope">
72
+            <span></span>
73
+          </template>
74
+        </el-table-column>
75
+        <el-table-column label="充值金额" align="center">
76
+          <template slot-scope="scope">
77
+            <span></span>
78
+          </template>
79
+        </el-table-column>
80
+        <el-table-column label="扣费金额" align="center">
81
+          <template slot-scope="scope">
82
+            <span></span>
83
+          </template>
84
+        </el-table-column>
85
+        <el-table-column label="可用金额" align="center">
86
+          <template slot-scope="scope">
87
+            <span></span>
88
+          </template>
89
+        </el-table-column>
90
+       
91
+      </el-table>
92
+
93
+    </div>
94
+  </div>
95
+</template>
96
+<script>
97
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
98
+export default {
99
+  components: {
100
+    BreadCrumb,
101
+  },
102
+  data() {
103
+    return {
104
+      crumbs: [
105
+        { path: false, name: "押金管理" },
106
+        { path: "/DepositManagement/DepositSearch", name: "流水详情" },
107
+      ],
108
+      tableData: [{}, {}],
109
+      total: 0,
110
+      page: 1,
111
+      limit: 10,
112
+      keywords: "",
113
+      value1:""
114
+    };
115
+  },
116
+
117
+  methods: {
118
+    // 初始化数据
119
+    init() {},
120
+
121
+    // 查询操作
122
+    search() {},
123
+  },
124
+};
125
+</script>
126
+<style scoped>
127
+/deep/ .el-range-separator {
128
+  width: 10%;
129
+}
130
+</style>

+ 166 - 0
src/xt_pages/DepositManagement/Template/RechargeDetails.vue View File

@@ -0,0 +1,166 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="app-container">
4
+      <div
5
+        style="
6
+          justify-content: flex-start;
7
+          margin: 0px 0 12px 0;
8
+          display: flex;
9
+          align-items: center;
10
+        "
11
+      >
12
+        <div style="display: flex">
13
+          <div style="width: 250px">
14
+            <el-input
15
+              size="small"
16
+              style="width: 200px; margin-left: 10px"
17
+              class="filter-item"
18
+              placeholder="请输入编号/患者名称"
19
+              v-model.trim="keywords"
20
+            />
21
+          </div>
22
+
23
+          <div style="width: 465px">
24
+            <span>日期查询:</span>
25
+            <el-date-picker
26
+              v-model="value1"
27
+              type="daterange"
28
+              range-separator="至"
29
+              start-placeholder="开始日期"
30
+              end-placeholder="结束日期"
31
+            >
32
+            </el-date-picker>
33
+          </div>
34
+          <el-button
35
+            size="small"
36
+            class="filter-item"
37
+            type="primary"
38
+            icon="el-icon-search"
39
+            @click="search"
40
+            >查询</el-button
41
+          >
42
+        </div>
43
+      </div>
44
+
45
+      <el-table
46
+        :header-cell-style="{
47
+          backgroundColor: 'rgb(245, 247, 250)',
48
+          color: '#606266',
49
+        }"
50
+        :data="tableData"
51
+        border
52
+      >
53
+        <el-table-column type="index" label="序号" align="center" width="200">
54
+        </el-table-column>
55
+        <el-table-column label="单据编号" align="center">
56
+          <template slot-scope="scope">
57
+            <span></span>
58
+          </template>
59
+        </el-table-column>
60
+        <el-table-column label="患者名称" align="center">
61
+          <template slot-scope="scope">
62
+            <span></span>
63
+          </template>
64
+        </el-table-column>
65
+
66
+        <el-table-column label="充值金额" align="center">
67
+          <template slot-scope="scope">
68
+            <span></span>
69
+          </template>
70
+        </el-table-column>
71
+        <el-table-column label="审核状态" align="center">
72
+          <template slot-scope="scope">
73
+            <span></span>
74
+          </template>
75
+        </el-table-column>
76
+        <el-table-column label="创建人" align="center">
77
+          <template slot-scope="scope">
78
+            <span></span>
79
+          </template>
80
+        </el-table-column>
81
+        <el-table-column label="充值时间" align="center">
82
+          <template slot-scope="scope">
83
+            <span></span>
84
+          </template>
85
+        </el-table-column>
86
+        <el-table-column label="备注" align="center">
87
+          <template slot-scope="scope">
88
+            <span></span>
89
+          </template>
90
+        </el-table-column>
91
+        <el-table-column label="操作" align="center" width="350px">
92
+          <template slot-scope="scope">
93
+            <el-button
94
+              size="small"
95
+              type="primary"
96
+              @click="examine(scope.row, scope.row.$index)"
97
+            >
98
+              审核
99
+            </el-button>
100
+            <el-button
101
+              size="small"
102
+              type="primary"
103
+              @click="print(scope.row, scope.row.$index)"
104
+            >
105
+              打印凭证
106
+            </el-button>
107
+            <el-button
108
+              size="small"
109
+              type="danger"
110
+              @click="toDelete(scope.row, scope.row.$index)"
111
+            >
112
+              删除
113
+            </el-button>
114
+          </template>
115
+        </el-table-column>
116
+      </el-table>
117
+
118
+      <div>
119
+          充值金额合计:<span></span>
120
+      </div>
121
+    </div>
122
+  </div>
123
+</template>
124
+<script>
125
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
126
+export default {
127
+  components: {
128
+    BreadCrumb,
129
+  },
130
+  data() {
131
+    return {
132
+      crumbs: [
133
+        { path: false, name: "押金管理" },
134
+        { path: "/DepositManagement/DepositSearch", name: "押金查询" },
135
+      ],
136
+      tableData: [{}, {}],
137
+      total: 0,
138
+      page: 1,
139
+      limit: 10,
140
+      keywords: "",
141
+      value1:""
142
+    };
143
+  },
144
+
145
+  methods: {
146
+    // 初始化数据
147
+    init() {},
148
+
149
+    // 查询操作
150
+    search() {},
151
+
152
+    // 删除
153
+    toDelete() {},
154
+
155
+    // 审核
156
+    examine() {},
157
+
158
+    // 打印凭证
159
+    print(){
160
+      this.$router.push({path:"/DepositManagement/printindex"})
161
+    }
162
+  },
163
+};
164
+</script>
165
+<style>
166
+</style>

+ 121 - 0
src/xt_pages/DepositManagement/Template/RechargeSummary.vue View File

@@ -0,0 +1,121 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="app-container">
4
+      <div
5
+        style="
6
+          justify-content: flex-start;
7
+          margin: 0px 0 12px 0;
8
+          display: flex;
9
+          align-items: center;
10
+        "
11
+      >
12
+        <div style="display: flex">
13
+          <div style="width: 250px">
14
+            <el-input
15
+              size="small"
16
+              style="width: 200px; margin-left: 10px"
17
+              class="filter-item"
18
+              placeholder="请输入编号/患者名称"
19
+              v-model.trim="keywords"
20
+            />
21
+          </div>
22
+
23
+          <div style="width: 465px">
24
+            <span>日期查询:</span>
25
+            <el-date-picker
26
+              v-model="value1"
27
+              type="daterange"
28
+              range-separator="至"
29
+              start-placeholder="开始日期"
30
+              end-placeholder="结束日期"
31
+            >
32
+            </el-date-picker>
33
+          </div>
34
+          <el-button
35
+            size="small"
36
+            class="filter-item"
37
+            type="primary"
38
+            icon="el-icon-search"
39
+            @click="search"
40
+            >查询</el-button
41
+          >
42
+        </div>
43
+      </div>
44
+
45
+      <el-table
46
+        :header-cell-style="{
47
+          backgroundColor: 'rgb(245, 247, 250)',
48
+          color: '#606266',
49
+        }"
50
+        :data="tableData"
51
+        border
52
+      >
53
+        <el-table-column type="index" label="序号" align="center" width="200">
54
+        </el-table-column>
55
+        
56
+        <el-table-column label="患者名称" align="center">
57
+          <template slot-scope="scope">
58
+            <span></span>
59
+          </template>
60
+        </el-table-column>
61
+
62
+        <el-table-column label="充值金额" align="center">
63
+          <template slot-scope="scope">
64
+            <span></span>
65
+          </template>
66
+        </el-table-column>
67
+        <el-table-column label="押金余额" align="center">
68
+          <template slot-scope="scope">
69
+            <span></span>
70
+          </template>
71
+        </el-table-column>
72
+        
73
+      </el-table>
74
+
75
+      <div>
76
+          充值金额合计:<span></span>
77
+      </div>
78
+    </div>
79
+  </div>
80
+</template>
81
+<script>
82
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
83
+export default {
84
+  components: {
85
+    BreadCrumb,
86
+  },
87
+  data() {
88
+    return {
89
+      crumbs: [
90
+        { path: false, name: "押金管理" },
91
+        { path: "/DepositManagement/DepositSearch", name: "押金查询" },
92
+      ],
93
+      tableData: [{}, {}],
94
+      total: 0,
95
+      page: 1,
96
+      limit: 10,
97
+      keywords: "",
98
+      value1:""
99
+    };
100
+  },
101
+
102
+  methods: {
103
+    // 初始化数据
104
+    init() {},
105
+
106
+    // 查询操作
107
+    search() {},
108
+
109
+    // 删除
110
+    toDelete() {},
111
+
112
+    // 审核
113
+    examine() {},
114
+
115
+    // 打印凭证
116
+    print(){}
117
+  },
118
+};
119
+</script>
120
+<style>
121
+</style>

+ 42 - 0
src/xt_pages/DepositManagement/Template/add_page.vue View File

@@ -0,0 +1,42 @@
1
+<template>
2
+  <div>
3
+    <el-form ref="form" :model="form" label-width="80px">
4
+      <el-form-item label="押金编号">
5
+        <span>{{form.id}}</span>
6
+      </el-form-item>
7
+      <el-form-item label="患者名称">
8
+        <el-input v-model="form.patient_name"></el-input>
9
+      </el-form-item>
10
+      <el-form-item label="押金金额">
11
+        <el-input v-model="form.money"></el-input>
12
+      </el-form-item>
13
+      <el-form-item label="备注">
14
+        <el-input type="textarea" v-model="form.remarks"></el-input>
15
+      </el-form-item>
16
+    </el-form>
17
+  </div>
18
+</template>
19
+<script>
20
+export default {
21
+  data() {
22
+    return {
23
+      form: {
24
+        remarks:"",
25
+        id:"HSG47565",
26
+        patient_name:"",
27
+        money:0
28
+      },
29
+    };
30
+  },
31
+};
32
+</script>
33
+
34
+<style scoped>
35
+.el-input{
36
+    width: 50%;
37
+}
38
+
39
+.el-textarea{
40
+    width: 65%;
41
+}
42
+</style>

+ 42 - 0
src/xt_pages/DepositManagement/Template/refundAdd.vue View File

@@ -0,0 +1,42 @@
1
+<template>
2
+  <div>
3
+    <el-form ref="form" :model="form" label-width="80px">
4
+      <el-form-item label="申请编号">
5
+        <span>{{form.id}}</span>
6
+      </el-form-item>
7
+      <el-form-item label="患者名称">
8
+        <el-input v-model="form.patient_name"></el-input>
9
+      </el-form-item>
10
+      <el-form-item label="押金余额">
11
+        <span>{{form.id}}</span>
12
+      </el-form-item>
13
+     <el-form-item label="退款金额">
14
+        <el-input v-model="form.patient_name"></el-input>元
15
+      </el-form-item>
16
+    </el-form>
17
+  </div>
18
+</template>
19
+<script>
20
+export default {
21
+  data() {
22
+    return {
23
+      form: {
24
+        remarks:"",
25
+        id:"HSG47565",
26
+        patient_name:"",
27
+        money:0
28
+      },
29
+    };
30
+  },
31
+};
32
+</script>
33
+
34
+<style scoped>
35
+.el-input{
36
+    width: 50%;
37
+}
38
+
39
+.el-textarea{
40
+    width: 65%;
41
+}
42
+</style>

+ 102 - 0
src/xt_pages/DepositManagement/print/printindex.vue View File

@@ -0,0 +1,102 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+
7
+    <div class="app-container">
8
+      <div class="btn">
9
+        <el-button type="primary" @click="to_print">打印</el-button>
10
+      </div>
11
+      <div id="dialysis-print-box">
12
+        <div class="dialysis-print-order">
13
+          <div class="print">
14
+            <h2>收据凭证</h2>
15
+            <p>收款日期: 2022年4月27日</p>
16
+            <div class="content">
17
+              <div style="display: flex; padding: 0 30px">
18
+                <div style="display: flex">
19
+                  <div>收款单位:</div>
20
+                  <div
21
+                    style="min-width: 224px; border-bottom: 1px solid #000"
22
+                  ></div>
23
+                </div>
24
+                <div style="display: flex">
25
+                  <div>收款方式:</div>
26
+                  <div
27
+                    style="min-width: 224px; border-bottom: 1px solid #000"
28
+                  ></div>
29
+                </div>
30
+              </div>
31
+              <div style="display: flex; padding: 0 30px">
32
+                <div>人民币:</div>
33
+                ¥
34
+                <div
35
+                  style="min-width: 225px; border-bottom: 1px solid #000"
36
+                ></div>
37
+              </div>
38
+              <div style="display: flex; padding: 0 30px">
39
+                <div>收款是由:</div>
40
+                <div style="width: 86%; border-bottom: 1px solid #000"></div>
41
+              </div>
42
+            </div>
43
+          </div>
44
+        </div>
45
+      </div>
46
+    </div>
47
+  </div>
48
+</template>
49
+<script>
50
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
51
+export default {
52
+  components: {
53
+    BreadCrumb,
54
+  },
55
+  data() {
56
+    return {
57
+      crumbs: [
58
+        { path: false, name: "押金管理" },
59
+        { path: "/DepositManagement/DepositSearch", name: "打印凭证" },
60
+      ],
61
+    };
62
+  },
63
+  methods: {
64
+    to_print() {
65
+      const style =
66
+        '@media print {.dialysis-print-order{width:960px;margin:0 auto} .print h2{text-align: center;} .print p{width: 85%;text-align: right;} .content{width: 70%;height: 250px;border: 1px solid #000;margin: 20px auto;display: flex;flex-direction: column;justify-content: space-evenly;}';
67
+      printJS({
68
+        printable: "dialysis-print-box",
69
+        type: "html",
70
+        style: style,
71
+        scanStyles: false,
72
+      });
73
+    },
74
+  },
75
+};
76
+</script>
77
+
78
+<style scoped>
79
+.btn {
80
+  position: absolute;
81
+  top: 60px;
82
+  right: 40px;
83
+}
84
+
85
+.print h2 {
86
+  text-align: center;
87
+}
88
+
89
+.print p {
90
+  width: 85%;
91
+  text-align: right;
92
+}
93
+.content {
94
+  width: 70%;
95
+  height: 250px;
96
+  border: 1px solid #000;
97
+  margin: 20px auto;
98
+  display: flex;
99
+  flex-direction: column;
100
+  justify-content: space-evenly;
101
+}
102
+</style>

+ 445 - 337
src/xt_pages/data/components/addInspection.vue View File

@@ -1,369 +1,477 @@
1 1
 <template>
2
-    <el-dialog
3
-            :title="formTitle"
4
-            width="900px"
5
-            :visible.sync="visible"
6
-            :before-close="_close"
7
-    >
8
-        <div>
9
-            <el-form :model="form" :rules="rules" ref="form" label-width="100px"
10
-                     style="display: flex;flex-wrap: wrap;justify-content: space-between;">
11
-                <el-form-item label="组套名称 : " prop="project_team" style="width:100%">
12
-                    <el-input v-model="form.project_team" placeholder="" maxlength="30"></el-input>
13
-                </el-form-item>
14
-                <el-form-item label="组套价格 : " prop="price" style="width:100%">
15
-                    <el-input v-model="form.price" placeholder="" maxlength="30"></el-input>
16
-                </el-form-item>
17
-                <el-form-item label="拼音 : " prop="pinyin" style="width:50%">
18
-                    <el-input v-model="form.pinyin" placeholder="" maxlength="30"></el-input>
19
-                </el-form-item>
20
-                <el-form-item label="五笔 : " prop="wubi" style="width:50%">
21
-                    <el-input v-model="form.wubi" placeholder="" maxlength="30"></el-input>
22
-                </el-form-item>
2
+  <el-dialog
3
+    :title="formTitle"
4
+    width="900px"
5
+    :visible.sync="visible"
6
+    :before-close="_close"
7
+  >
8
+    <div>
9
+      <el-form
10
+        :model="form"
11
+        :rules="rules"
12
+        ref="form"
13
+        label-width="100px"
14
+        style="display: flex; flex-wrap: wrap; justify-content: space-between"
15
+      >
16
+        <el-form-item
17
+          label="组套名称 : "
18
+          prop="project_team"
19
+          style="width: 100%"
20
+        >
21
+          <el-input
22
+            v-model="form.project_team"
23
+            placeholder=""
24
+            maxlength="30"
25
+          ></el-input>
26
+        </el-form-item>
27
+        <el-form-item label="组套价格 : " prop="price" style="width: 100%">
28
+          <el-input
29
+            v-model="form.price"
30
+            placeholder=""
31
+            maxlength="30"
32
+          ></el-input>
33
+        </el-form-item>
34
+        <el-form-item label="拼音 : " prop="pinyin" style="width: 50%">
35
+          <el-input
36
+            v-model="form.pinyin"
37
+            placeholder=""
38
+            maxlength="30"
39
+          ></el-input>
40
+        </el-form-item>
41
+        <el-form-item label="五笔 : " prop="wubi" style="width: 50%">
42
+          <el-input
43
+            v-model="form.wubi"
44
+            placeholder=""
45
+            maxlength="30"
46
+          ></el-input>
47
+        </el-form-item>
23 48
 
24
-                <el-form-item label="试管颜色 : " prop="tube_color" style="width:50%">
25
-                    <el-select v-model="form.tube_color" style="width:160px;" placeholder="请选择">
26
-                        <el-option
27
-                                v-for="(item,index) in getDictionaryDataConfig('system','tube_color')"
28
-                                :key="index"
29
-                                :label="item.name"
30
-                                :value="item.id">
31
-                        </el-option>
32
-                    </el-select>
33
-                </el-form-item>
34
-                <el-form-item label="组套类型 : " prop="team_type" style="width:50%">
35
-                    <el-select v-model="form.team_type" style="width:100%;" placeholder="请选择">
36
-                        <el-option
37
-                                v-for="item in options"
38
-                                :key="item.value"
39
-                                :label="item.label"
40
-                                :value="item.value">
41
-                        </el-option>
42
-                    </el-select>
43
-                </el-form-item>
44
-                <el-form-item label="备注 : " prop="name" style="width:100%;">
45
-                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
46
-                </el-form-item>
49
+        <el-form-item label="试管颜色 : " prop="tube_color" style="width: 50%">
50
+          <el-select
51
+            v-model="form.tube_color"
52
+            style="width: 160px"
53
+            placeholder="请选择"
54
+          >
55
+            <el-option
56
+              v-for="(item, index) in getDictionaryDataConfig(
57
+                'system',
58
+                'tube_color'
59
+              )"
60
+              :key="index"
61
+              :label="item.name"
62
+              :value="item.id"
63
+            >
64
+            </el-option>
65
+          </el-select>
66
+        </el-form-item>
67
+        <el-form-item label="组套类型 : " prop="team_type" style="width: 50%">
68
+          <el-select
69
+            v-model="form.team_type"
70
+            style="width: 100%"
71
+            placeholder="请选择"
72
+          >
73
+            <el-option
74
+              v-for="item in options"
75
+              :key="item.value"
76
+              :label="item.label"
77
+              :value="item.value"
78
+            >
79
+            </el-option>
80
+          </el-select>
81
+        </el-form-item>
82
+        <el-form-item label="备注 : " prop="name" style="width: 100%">
83
+          <el-input
84
+            type="textarea"
85
+            :rows="2"
86
+            placeholder="请输入内容"
87
+            v-model="form.remark"
88
+          ></el-input>
89
+        </el-form-item>
47 90
 
48
-                <el-form-item label="组套明细" style="width:50%;">
49
-                    <el-select v-model="form.project_detail" filterable placeholder="请选择" @change="changeProject">
50
-                        <el-option
51
-                                v-for="item in projectList"
52
-                                :key="item.new_id"
53
-                                :label="item.project_name"
54
-                                :value="item.new_id">
55
-                        </el-option>
56
-                    </el-select>
57
-                </el-form-item>
91
+        <el-form-item label="组套明细" style="width: 50%">
92
+          <el-select
93
+            v-model="form.project_detail"
94
+            filterable
95
+            placeholder="请选择"
96
+            @change="changeProject"
97
+          >
98
+            <el-option
99
+              v-for="item in projectList"
100
+              :key="item.new_id"
101
+              :label="item.project_name"
102
+              :value="item.new_id"
103
+            >
104
+            </el-option>
105
+          </el-select>
106
+        </el-form-item>
58 107
 
59
-                <el-form-item label="数量" style="width:50%;">
60
-                    <div style="display:flex;">
61
-                        <el-input v-model="form.number" style="margin-right:10px;"></el-input>
62
-                        <el-button type="primary" @click="addProjectList">添加</el-button>
63
-                    </div>
64
-                </el-form-item>
65
-            </el-form>
66
-            <el-form>
67
-                <el-table :data="tableData" border style="100%" :row-style="{ color: '#303133' }"
68
-                          :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
69
-                          highlight-current-row ref="tab">
70
-                    <el-table-column align="center" prop="name" label="分类" width="120">
71
-                        <template slot-scope="scope">
72
-                            <div>{{scope.row.type == 2?getId(scope.row.statistical_classification):'耗材'}}</div>
73
-                        </template>
74
-                    </el-table-column>
75
-                    <el-table-column align="center" prop="name" label="组套明细" width="120">
76
-                        <template slot-scope="scope">{{scope.row.project_name}}</template>
77
-                    </el-table-column>
78
-                    <el-table-column align="center" prop="name" label="数量" width="120">
79
-                        <template slot-scope="scope">{{scope.row.number}}</template>
80
-                    </el-table-column>
81
-                    <el-table-column align="center" prop="name" label="单位" width="120">
82
-                        <template slot-scope="scope">
83
-                            <div v-if="scope.row.type == 2">{{scope.row.unit}}</div>
84
-                            <div v-if="scope.row.type == 3">{{getUnit(scope.row.unit)}}</div>
108
+        <el-form-item label="数量" style="width: 50%">
109
+          <div style="display: flex">
110
+            <el-input
111
+              v-model="form.number"
112
+              style="margin-right: 10px"
113
+            ></el-input>
114
+            <el-button type="primary" @click="addProjectList">添加</el-button>
115
+          </div>
116
+        </el-form-item>
117
+      </el-form>
118
+      <el-form>
119
+        <el-table
120
+          :data="tableData"
121
+          border
122
+          style="100%"
123
+          :row-style="{ color: '#303133' }"
124
+          :header-cell-style="{
125
+            backgroundColor: 'rgb(245, 247, 250)',
126
+            color: '#606266',
127
+          }"
128
+          highlight-current-row
129
+          ref="tab"
130
+        >
131
+          <el-table-column align="center" prop="name" label="分类" width="120">
132
+            <template slot-scope="scope">
133
+              <div>
134
+                {{
135
+                  scope.row.type == 2
136
+                    ? getId(scope.row.statistical_classification)
137
+                    : "耗材"
138
+                }}
139
+              </div>
140
+            </template>
141
+          </el-table-column>
142
+          <el-table-column
143
+            align="center"
144
+            prop="name"
145
+            label="组套明细"
146
+            width="120"
147
+          >
148
+            <template slot-scope="scope">{{ scope.row.project_name }}</template>
149
+          </el-table-column>
150
+          <el-table-column align="center" prop="name" label="数量" width="120">
151
+            <template slot-scope="scope">{{ scope.row.number }}</template>
152
+          </el-table-column>
153
+          <el-table-column align="center" prop="name" label="单位" width="120">
154
+            <template slot-scope="scope">
155
+              <div v-if="scope.row.type == 2">{{ scope.row.unit }}</div>
156
+              <div v-if="scope.row.type == 3">
157
+                {{ getUnit(scope.row.unit) }}
158
+              </div>
159
+            </template>
160
+          </el-table-column>
161
+          <el-table-column align="center" prop="name" label="单价" width="120">
162
+            <template slot-scope="scope">{{ scope.row.price }}</template>
163
+          </el-table-column>
164
+          <el-table-column align="center" prop="name" label="操作">
165
+            <template slot-scope="scope">
166
+              <el-tooltip
167
+                class="item"
168
+                effect="dark"
169
+                content="删除"
170
+                placement="top"
171
+              >
172
+                <el-button
173
+                  type="danger"
174
+                  icon="el-icon-delete"
175
+                  size="small"
176
+                  @click="DeleteProject(scope.row.id, scope.$index)"
177
+                ></el-button>
178
+              </el-tooltip>
179
+            </template>
180
+          </el-table-column>
181
+        </el-table>
182
+      </el-form>
183
+    </div>
85 184
 
86
-                        </template>
87
-                    </el-table-column>
88
-                    <el-table-column align="center" prop="name" label="单价" width="120">
89
-                        <template slot-scope="scope">{{scope.row.price}}</template>
90
-                    </el-table-column>
91
-                    <el-table-column align="center" prop="name" label="操作">
92
-                        <template slot-scope="scope">
93
-                            <el-tooltip
94
-                                    class="item"
95
-                                    effect="dark"
96
-                                    content="删除"
97
-                                    placement="top"
98
-                            >
99
-                                <el-button
100
-                                        type="danger"
101
-                                        icon="el-icon-delete"
102
-                                        size="small"
103
-                                        @click="DeleteProject(scope.row.id,scope.$index)"
104
-                                ></el-button>
105
-                            </el-tooltip>
106
-                        </template>
107
-                    </el-table-column>
108
-                </el-table>
109
-            </el-form>
110
-        </div>
111
-
112
-
113
-        <div slot="footer" class="dialog-footer">
114
-            <el-button @click="hide">取 消</el-button>
115
-            <el-button type="primary" @click="submitAction('form')">保 存</el-button>
116
-        </div>
117
-    </el-dialog>
185
+    <div slot="footer" class="dialog-footer">
186
+      <el-button @click="hide">取 消</el-button>
187
+      <el-button type="primary" @click="submitAction('form')">保 存</el-button>
188
+    </div>
189
+  </el-dialog>
118 190
 </template>
119 191
 
120 192
 <script>
121
-  import { getDataConfig, getDictionaryDataConfig } from '@/utils/data'
122
-  import {
123
-    addProjectList,
124
-    DeleteProject,
125
-    getAllProjectList,
126
-    getProjectDetail,
127
-    saveProjectTeam
128
-  } from '@/api/project/project'
193
+import { getDataConfig, getDictionaryDataConfig } from "@/utils/data";
194
+import {
195
+  addProjectList,
196
+  DeleteProject,
197
+  getAllProjectList,
198
+  getProjectDetail,
199
+  saveProjectTeam,
200
+} from "@/api/project/project";
129 201
 
130
-  import { saveTeam } from '@/api/his/his'
202
+import { saveTeam } from "@/api/his/his";
131 203
 
132
-  export default {
133
-    data() {
134
-      return {
135
-        project_name: '',
136
-        visible: false,
137
-        formTitle: '',
138
-        activeName: 'first',
139
-        form: {
140
-          project_team: '',
141
-          price: 0,
142
-          pinyin: '',
143
-          wubi: '',
144
-          tube_color: '',
145
-          team_type: '',
146
-          remark: '',
147
-          project_detail: '',
148
-          number: '1'
149
-        },
150
-        options: [
151
-          { value: 1, label: '是' },
152
-          { value: 2, label: '否' }
204
+export default {
205
+  data() {
206
+    return {
207
+      project_name: "",
208
+      visible: false,
209
+      formTitle: "",
210
+      activeName: "first",
211
+      form: {
212
+        project_team: "",
213
+        price: 0,
214
+        pinyin: "",
215
+        wubi: "",
216
+        tube_color: "",
217
+        team_type: "",
218
+        remark: "",
219
+        project_detail: "",
220
+        number: "1",
221
+      },
222
+      options: [
223
+        { value: 1, label: "是" },
224
+        { value: 2, label: "否" },
225
+      ],
226
+      value: "",
227
+      radio: "1",
228
+      rules: {
229
+        project_team: [
230
+          { required: true, message: "请填写组套名称", trigger: "blur" },
153 231
         ],
154
-        value: '',
155
-        radio: '1',
156
-        rules: {
157
-          project_team: [{ required: true, message: '请填写组套名称', trigger: 'blur' }],
158
-          //   pinyin: [{ required: true, message: '请填写拼音' , trigger: 'blur' }],
159
-          //   wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
160
-          price: [{ required: true, message: '请填写价格', trigger: 'change' }],
161
-          //team_type: [{ required: true, message: '请填写组套类型', trigger: 'change' }]
162
-        },
163
-        tableData: [],
164
-        projectList: [],
165
-        tabList: [],
166
-        itemList: []
232
+        //   pinyin: [{ required: true, message: '请填写拼音' , trigger: 'blur' }],
233
+        //   wubi: [{ required: true, message: '请填写五笔' , trigger: 'blur' }],
234
+        price: [{ required: true, message: "请填写价格", trigger: "change" }],
235
+        //team_type: [{ required: true, message: '请填写组套类型', trigger: 'change' }]
236
+      },
237
+      tableData: [],
238
+      projectList: [],
239
+      tabList: [],
240
+      itemList: [],
241
+    };
242
+  },
243
+  methods: {
244
+    getUnit(id) {
245
+      var arr = getDataConfig("hemodialysis", "units");
246
+      for (let i = 0; i < arr.length; i++) {
247
+        if (id == arr[i].id) {
248
+          return arr[i].name;
249
+        }
167 250
       }
168 251
     },
169
-    methods: {
170
-      getUnit(id){
171
-        var arr =  getDataConfig('hemodialysis','units')
172
-        for(let i = 0;i < arr.length; i++){
173
-          if(id == arr[i].id){
174
-            return arr[i].name
252
+    changeProject() {
253
+      this.form.number = 1;
254
+    },
255
+    querySearch(queryString, cb) {
256
+      var restaurants = this.projectList;
257
+      var results = queryString
258
+        ? restaurants.filter(this.createFilter(queryString))
259
+        : restaurants;
260
+      // 调用 callback 返回建议列表的数据
261
+      cb(results);
262
+    },
263
+    createFilter(queryString) {
264
+      return (restaurant) => {
265
+        return (
266
+          restaurant.project_name
267
+            .toLowerCase()
268
+            .indexOf(queryString.toLowerCase()) === 0
269
+        );
270
+      };
271
+    },
272
+    handleSelect(val) {
273
+      this.project_name = val.project_name;
274
+      this.form.project_detail = val.id;
275
+    },
276
+    getDataConfig(module, filed_name) {
277
+      return getDataConfig(module, filed_name);
278
+    },
279
+    getDictionaryDataConfig(module, filed_name) {
280
+      return getDictionaryDataConfig(module, filed_name);
281
+    },
282
+    _close: function (done) {
283
+      done();
284
+    },
285
+    clear: function () {
286
+      this.form.id = 0;
287
+      this.form.name = "";
288
+      this.form.intro = "";
289
+    },
290
+    show(id) {
291
+      this.visible = true;
292
+      this.formTitle = "新增";
293
+    },
294
+    hide() {
295
+      this.visible = false;
296
+    },
297
+    submitAction(formName) {
298
+      this.$refs[formName].validate((valid) => {
299
+        var params = {
300
+          project_team: this.form.project_team,
301
+          price: this.form.price,
302
+          pinyin: this.form.pinyin,
303
+          wubi: this.form.wubi,
304
+          tube_color: this.form.tube_color,
305
+          team_type: this.form.team_type,
306
+          remark: this.form.remark,
307
+        };
308
+        let data = {
309
+          info: this.tableData,
310
+        };
311
+        saveTeam(data, params).then((response) => {
312
+          if (response.data.state == 1) {
313
+            var projectTeam = response.data.data.projectTeam;
314
+            // console.log('projectTeam', projectTeam)
315
+            this.$message.success("保存成功");
316
+            this.visible = false;
317
+            (this.form.project_team = ""),
318
+              (this.form.price = ""),
319
+              (this.form.pinyin = ""),
320
+              (this.form.wubi = ""),
321
+              (this.form.tube_color = ""),
322
+              (this.form.team_type = ""),
323
+              (this.form.remark = "");
324
+            this.tableData = [];
325
+            this.form.number = "";
326
+            this.$parent.getlist();
327
+          } else {
328
+            this.$message.error("项目组套名称已存在!");
175 329
           }
176
-        }
177
-      },
178
-      changeProject() {
179
-        this.form.number = 1
180
-
181
-      },
182
-      querySearch(queryString, cb) {
183
-        var restaurants = this.projectList
184
-        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
185
-        // 调用 callback 返回建议列表的数据
186
-        cb(results)
330
+        });
331
+      });
332
+    },
333
+    getlist() {
334
+      let params = {
335
+        keyword: "",
336
+      };
337
+      getAllProjectList(params).then((response) => {
338
+        if (response.data.state == 1) {
339
+          var projectList = response.data.data.projectList;
340
+          var goodInfos = response.data.data.good_info;
187 341
 
188
-      }, createFilter(queryString) {
189
-        return (restaurant) => {
190
-          return (restaurant.project_name.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
191
-        }
192
-      },
193
-      handleSelect(val) {
194
-        this.project_name = val.project_name
195
-        this.form.project_detail = val.id
196
-      },
197
-      getDataConfig(module, filed_name) {
198
-        return getDataConfig(module, filed_name)
199
-      },
200
-      getDictionaryDataConfig(module, filed_name) {
201
-        return getDictionaryDataConfig(module, filed_name)
202
-      },
203
-      _close: function(done) {
204
-        done()
205
-      },
206
-      clear: function() {
207
-        this.form.id = 0
208
-        this.form.name = ''
209
-        this.form.intro = ''
210
-      },
211
-      show(id) {
212
-        this.visible = true
213
-        this.formTitle = '新增'
214
-      },
215
-      hide() {
216
-        this.visible = false
217
-      },
218
-      submitAction(formName) {
219
-        this.$refs[formName].validate((valid) => {
220
-          var params = {
221
-            project_team: this.form.project_team,
222
-            price: this.form.price,
223
-            pinyin: this.form.pinyin,
224
-            wubi: this.form.wubi,
225
-            tube_color: this.form.tube_color,
226
-            team_type: this.form.team_type,
227
-            remark: this.form.remark
342
+          for (let i = 0; i < projectList.length; i++) {
343
+            let obj = {
344
+              id: projectList[i].id,
345
+              statistical_classification:
346
+                projectList[i].statistical_classification,
347
+              number: "1",
348
+              project_name: projectList[i].project_name,
349
+              unit: projectList[i].unit,
350
+              price: projectList[i].price,
351
+              type: 2,
352
+              new_id: Math.floor(
353
+                (Math.random() + Math.floor(Math.random() * 9 + 1)) *
354
+                  Math.pow(10, 10 - 1)
355
+              ),
356
+            };
357
+            this.projectList.push(obj);
228 358
           }
229
-          let data = {
230
-            'info': this.tableData
231
-          }
232
-          saveTeam(data, params).then(response => {
233
-            if (response.data.state == 1) {
234
-              var projectTeam = response.data.data.projectTeam
235
-              // console.log('projectTeam', projectTeam)
236
-              this.$message.success('保存成功')
237
-              this.visible = false
238
-              this.form.project_team = '',
239
-              this.form.price = '',
240
-              this.form.pinyin = '',
241
-              this.form.wubi = '',
242
-              this.form.tube_color = '',
243
-              this.form.team_type = '',
244
-              this.form.remark = ''
245
-              this.tableData = []
246
-              this.form.number = ''
247
-              this.$parent.getlist()
248
-            } else {
249
-              this.$message.error('项目组套名称已存在!')
250
-            }
251
-          })
252
-        })
253
-      },
254
-      getlist() {
255
-        let params = {
256
-          keyword: ''
257
-        }
258
-        getAllProjectList(params).then(response => {
259
-          if (response.data.state == 1) {
260
-            var projectList = response.data.data.projectList
261
-            var goodInfos = response.data.data.good_info
262
-            
263
-            for (let i = 0; i < projectList.length; i++) {
264 359
 
265
-              let obj = {
266
-                id: projectList[i].id,
267
-                statistical_classification: projectList[i].statistical_classification,
268
-                number: '1',
269
-                project_name: projectList[i].project_name,
270
-                unit: projectList[i].unit,
271
-                price: projectList[i].price,
272
-                type: 2,
273
-                new_id: Math.floor((Math.random() + Math.floor(Math.random() * 9 + 1)) * Math.pow(10, 10 - 1)),
274
-              }
275
-              this.projectList.push(obj)
276
-             
277
-            }
360
+          for (let i = 0; i < goodInfos.length; i++) {
361
+            let obj = {
362
+              id: goodInfos[i].id,
363
+              statistical_classification:
364
+                goodInfos[i].statistical_classification,
365
+              number: "1",
366
+              project_name:
367
+                goodInfos[i].good_name + " " + goodInfos[i].specification_name,
368
+              unit: goodInfos[i].good_unit,
369
+              price: goodInfos[i].retail_price,
370
+              type: 3,
371
+              new_id: Math.floor(
372
+                (Math.random() + Math.floor(Math.random() * 9 + 1)) *
373
+                  Math.pow(10, 10 - 1)
374
+              ),
375
+            };
376
+            this.projectList.push(obj);
377
+          }
278 378
 
279
-            for (let i = 0; i < goodInfos.length; i++) {
280
-              let obj = {
281
-                id: goodInfos[i].id,
282
-                statistical_classification: goodInfos[i].statistical_classification,
283
-                number: '1',
284
-                project_name: goodInfos[i].good_name + " " + goodInfos[i].specification_name,
285
-                unit: goodInfos[i].good_unit,
286
-                price: goodInfos[i].retail_price,
287
-                type: 3,
288
-                new_id: Math.floor((Math.random() + Math.floor(Math.random() * 9 + 1)) * Math.pow(10, 10 - 1)),
289
-              }
290
-              this.projectList.push(obj)
291
-              
292
-            }
379
+          console.log("项目2323332", this.projectList);
380
+        }
381
+      });
382
+    },
293 383
 
294
-            console.log("项目2323332",this.projectList)
384
+    getId(id) {
385
+      var name = "";
386
+      var statistics_category = getDictionaryDataConfig(
387
+        "system",
388
+        "statistics_category"
389
+      );
295 390
 
296
-          }
297
-        })
298
-      },
391
+      for (let i = 0; i < statistics_category.length; i++) {
392
+        if (id == statistics_category[i].id) {
393
+          name = statistics_category[i].name;
394
+        }
395
+      }
396
+      return name;
397
+    },
398
+    chagneInspection(id) {
399
+      getProjectDetail(id).then((response) => {
400
+        if (response.data.state == 1) {
401
+          var projectdetail = response.data.data.projecDetail;
299 402
 
300
-      getId(id) {
301
-        var name = ''
302
-        var statistics_category = getDictionaryDataConfig('system', 'statistics_category')
303
-       
304
-        for (let i = 0; i < statistics_category.length; i++) {
305
-          if (id == statistics_category[i].id) {
306
-            name = statistics_category[i].name
307
-          }
403
+          this.tableData.push(projectdetail);
308 404
         }
309
-        return name
310
-      },
311
-      chagneInspection(id) {
312
-        getProjectDetail(id).then(response => {
313
-          if (response.data.state == 1) {
314
-            var projectdetail = response.data.data.projecDetail
315
-        
316
-            this.tableData.push(projectdetail)
317
-          }
318
-        })
319
-      },
320
-      addProjectList() {
321
-        
405
+      });
406
+    },
407
+    addProjectList() {
408
+      console.log(this.tableData, "this.tableData");
409
+      console.log(this.form.project_detail, "form.project_detail");
410
+      let obj = {new_id:this.form.project_detail}
411
+      if (this.tableData.length <= 0) {
322 412
         for (let i = 0; i < this.projectList.length; i++) {
323 413
           if (this.form.project_detail == this.projectList[i].new_id) {
324
-            this.projectList[i].number = this.form.number
325
-            this.projectList[i].number = this.projectList[i].number.toString()
326
-            
327
-            this.tableData.push(this.projectList[i])
328
-            this.form.project_detail = ''
329
-            this.form.number = 1
414
+            this.projectList[i].number = this.form.number;
415
+            this.projectList[i].number = this.projectList[i].number.toString();
416
+
417
+            this.tableData.push(this.projectList[i]);
418
+            this.form.project_detail = "";
419
+            this.form.number = 1;
330 420
           }
331 421
         }
332
-       
333
-      },
334
-      DeleteProject(id, index) {
335
-        this.$confirm('确认删除此项目吗?', '删除', {
336
-          confirmButtonText: '确 定',
337
-          cancelButtonText: '取 消',
338
-          type: 'warning'
339
-        }).then(() => {
340
-          this.tableData.splice(index, 1)
341
-        })
342
-          .catch(() => {
343
-          })
344
-      },
345
-     
346
-    },
347
-    created() {
348
-      //获取所以的项目
349
-      this.getlist()
422
+      } else {
423
+        console.log(obj,'obj')
424
+        this.tableData.forEach((el) => {
425
+          if (this.form.project_detail == el.new_id) {
426
+            this.$message.error("已存在!");
427
+            return;
428
+          } else {
429
+            console.log("oo");
350 430
 
351
-    }, watch: {
352
-      'tableData': function() {
353
-        let c = 0
354
-        this.form.price  = 0
355
-        for (let i = 0; i < this.tableData.length; i++) {
356
-          let a = parseFloat(this.tableData[i].number).toFixed(2)
357
-          let b = parseFloat(this.tableData[i].price).toFixed(2)
358
-         
431
+            // for (let i = 0; i < this.projectList.length; i++) {
432
+            //   if (this.form.project_detail == this.projectList[i].new_id) {
433
+            //     this.projectList[i].number = this.form.number;
434
+            //     this.projectList[i].number =
435
+            //       this.projectList[i].number.toString();
359 436
 
437
+            //     this.tableData.push(this.projectList[i]);
438
+            //     this.form.project_detail = "";
439
+            //     this.form.number = 1;
440
+            //   }
441
+            // }
442
+          }
443
+        });
360 444
 
361
-          c = c + this.form.price + (a * b)
362
-
363
-        }
364
-        this.form.price = c.toFixed(2)
365 445
       }
446
+    },
447
+    DeleteProject(id, index) {
448
+      this.$confirm("确认删除此项目吗?", "删除", {
449
+        confirmButtonText: "确 定",
450
+        cancelButtonText: "取 消",
451
+        type: "warning",
452
+      })
453
+        .then(() => {
454
+          this.tableData.splice(index, 1);
455
+        })
456
+        .catch(() => {});
457
+    },
458
+  },
459
+  created() {
460
+    //获取所以的项目
461
+    this.getlist();
462
+  },
463
+  watch: {
464
+    tableData: function () {
465
+      let c = 0;
466
+      this.form.price = 0;
467
+      for (let i = 0; i < this.tableData.length; i++) {
468
+        let a = parseFloat(this.tableData[i].number).toFixed(2);
469
+        let b = parseFloat(this.tableData[i].price).toFixed(2);
366 470
 
367
-    }
368
-  }
471
+        c = c + this.form.price + a * b;
472
+      }
473
+      this.form.price = c.toFixed(2);
474
+    },
475
+  },
476
+};
369 477
 </script>

+ 42 - 65
src/xt_pages/data/druguseTemplate.vue View File

@@ -310,7 +310,7 @@
310 310
             </el-dialog>
311 311
 
312 312
             <!-- 新增子药 -->
313
-            <el-dialog :title="dialogTitle" :visible.sync="templateFormVisible" width="854px">
313
+            <el-dialog :title="dialogTitle" :before-close="closeform" :visible.sync="templateFormVisible" width="854px" >
314 314
               <el-form
315 315
                 ref="templateForm"
316 316
                 :rules="templateRules"
@@ -321,25 +321,6 @@
321 321
                 <el-row >
322 322
                   <el-col :span="24">
323 323
                     <el-form-item label="医嘱内容:" required prop="advice_name">
324
-                      <!-- <el-input v-model="templateForm.advice_name"></el-input> -->
325
-
326
-                      <!-- <el-select
327
-                        v-model="templateForm.advice_name"
328
-                        filterable
329
-                        clearable
330
-                        allow-create
331
-                        placeholder="请选择(输入可搜索)"
332
-                        style="width:100%"
333
-                        @change="changeDrugName"
334
-                    >
335
-                      <el-option
336
-                        v-for="(item,index) in all_drug"
337
-                        :key="index"
338
-                        :label="item.drug_name"
339
-                        :value="item.drug_name"
340
-                      ></el-option>
341
-                     </el-select> -->
342
-
343 324
                       <el-autocomplete
344 325
                           style="width:100%;"
345 326
                           class="inline-input"
@@ -357,23 +338,7 @@
357 338
                   <el-col :span="15">
358 339
                     <el-form-item label="药品规格 :" prop="advice_desc">
359 340
                       <el-col :span="8">
360
-                        <!-- <el-input v-model="templateForm.advice_desc"></el-input> -->
361
-                         <!-- <el-select
362
-                          v-model="templateForm.advice_desc"
363
-                          filterable
364
-                          clearable
365
-                          allow-create
366
-                          placeholder="请选择(输入可搜索)"
367
-                          style="width:150px"
368
-                          @change="changeDrugDesc"
369
-                        >
370
-                        <el-option
371
-                          v-for="item in drugSpec"
372
-                          :key="item.id"
373
-                          :label="item.drug_spec"
374
-                          :value="item.drug_spec"
375
-                        ></el-option>
376
-                        </el-select> -->
341
+
377 342
 
378 343
                        <el-autocomplete
379 344
                          style="width:100px;"
@@ -526,7 +491,7 @@
526 491
                 </el-row>
527 492
               </el-form>
528 493
               <div slot="footer" class="dialog-footer">
529
-                <el-button @click="cancelHandle('templateForm')">取消</el-button>
494
+                <el-button @click="cancelHandle('templateForm'),closeform()">取消</el-button>
530 495
                 <el-button type="primary" @click="submitTemplate('templateForm')">保 存</el-button>
531 496
               </div>
532 497
             </el-dialog>
@@ -1613,6 +1578,7 @@
1613 1578
         this.templateTableVisible = true
1614 1579
       },
1615 1580
       newRecordAction() {
1581
+        console.log("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
1616 1582
         this.dialogTitle = '新增医嘱内容'
1617 1583
         this.advice_content_name = '医嘱内容'
1618 1584
         this.isEdit = false
@@ -1621,7 +1587,8 @@
1621 1587
         this.templateTableVisible = false
1622 1588
         this.templateFormVisible = true
1623 1589
 
1624
-      }, deleteRecordAction: function() {
1590
+      },
1591
+      deleteRecordAction: function() {
1625 1592
         if (this.table_current_index == -1) {
1626 1593
           this.$message.error('请选择一条医嘱记录')
1627 1594
           return
@@ -1635,7 +1602,8 @@
1635 1602
           this.table_current_index = -1
1636 1603
         }).catch(() => {
1637 1604
         })
1638
-      }, tableRow({ row, rowIndex }) {
1605
+      },
1606
+      tableRow({ row, rowIndex }) {
1639 1607
         // 把每一行的索引放进row
1640 1608
         row.index = rowIndex
1641 1609
       },
@@ -1683,11 +1651,11 @@
1683 1651
         const params = {
1684 1652
           'data': this.adviceTableData
1685 1653
         }
1686
-       
1654
+
1687 1655
         let name = encodeURIComponent(this.form.name)
1688 1656
         console.log("params",params)
1689 1657
         let sort = this.form.sort
1690
-        
1658
+
1691 1659
         postAdviceTemplate(params, name,sort, this.form.advice_type).then(response => {
1692 1660
 
1693 1661
           if (response.data.state == 0) {
@@ -1870,10 +1838,10 @@
1870 1838
               CreateSubAdvice(templateFormTwo).then(response => {
1871 1839
                 if (response.data.state == 0) {
1872 1840
                   this.$message.error(response.data.msg)
1841
+                  this.closeform()
1873 1842
                   return false
1874 1843
                 } else {
1875 1844
                   this.$message.success('添加成功')
1876
-
1877 1845
                   var spliceIndex = -1
1878 1846
                   for (let index = this.adviceTemplates.length - 1; ; index--) {
1879 1847
                     if (this.adviceTemplates[index].parent_id === templateFormTwo.parent_id) {
@@ -1884,7 +1852,6 @@
1884 1852
                       break
1885 1853
                     }
1886 1854
                   }
1887
-
1888 1855
                   if (spliceIndex > -1) {
1889 1856
                     spliceIndex += 1
1890 1857
                     if (spliceIndex === this.adviceTemplates.length) {
@@ -1902,6 +1869,7 @@
1902 1869
                   this.handleSpanTempArr()
1903 1870
                   this.templateFormVisible = false
1904 1871
                   this.resetForm(formName)
1872
+                  this.closeform()
1905 1873
                   return false
1906 1874
                 }
1907 1875
               })
@@ -2383,7 +2351,7 @@
2383 2351
         }
2384 2352
         this.templateForm.way = 1
2385 2353
         console.log("编辑模板",this.templateForm)
2386
-      
2354
+
2387 2355
         // 编辑创建医嘱模版
2388 2356
         CreateSingleAdviceTemplate(this.templateForm).then(response => {
2389 2357
           if (response.data.state == 0) {
@@ -2486,7 +2454,7 @@
2486 2454
             return 'success-row'
2487 2455
           }
2488 2456
         }
2489
-      }, 
2457
+      },
2490 2458
       cellMouseEnter: function(row, column, cell, event) {
2491 2459
         if (column.label == '模版名称') {
2492 2460
           this.sameRowArr.forEach((arr, i) => {
@@ -2653,21 +2621,8 @@
2653 2621
         this.templateFormVisible = true
2654 2622
         this.dialogTitle = '新增子药'
2655 2623
         this.advice_content_name = '子药名称'
2656
-      }, deleteRecordAction: function() {
2657
-        if (this.table_current_index == -1) {
2658
-          this.$message.error('请选择一条医嘱记录')
2659
-          return
2660
-        }
2661
-        this.$confirm('删除记录', '是否删除该医嘱记录', {
2662
-          confirmButtonText: '确 定',
2663
-          cancelButtonText: '取 消',
2664
-          type: 'warning'
2665
-        }).then(() => {
2666
-          this.adviceTableData.splice(this.table_current_index, 1)
2667
-          this.table_current_index = -1
2668
-        }).catch(() => {
2669
-        })
2670
-      }, handleSpanTempArr() {
2624
+      },
2625
+      handleSpanTempArr() {
2671 2626
         this.tempArr = []
2672 2627
 
2673 2628
         for (let i = 0; i < this.adviceTemplates.length; i++) {
@@ -2703,7 +2658,7 @@
2703 2658
         this.sameRowArr = sameRowArr
2704 2659
       },
2705 2660
        handleUpdateAdviceTemplate(row, index) {
2706
-       
2661
+
2707 2662
         this.current_template_id = row.template_id
2708 2663
         this.current_template_name = row.name
2709 2664
         this.form.name = row.name
@@ -2715,7 +2670,7 @@
2715 2670
         }
2716 2671
         this.templateTableTwoVisible = true
2717 2672
         this.adviceTableDataTwo = []
2718
-      
2673
+
2719 2674
         for (let i = 0; i < this.adviceTemplates.length; i++) {
2720 2675
           if (this.adviceTemplates[i].template_id == row.template_id) {
2721 2676
             this.adviceTableDataTwo.push(this.adviceTemplates[i])
@@ -2729,7 +2684,7 @@
2729 2684
           template_id: this.current_template_id,
2730 2685
           sort:this.form.sort,
2731 2686
         }
2732
-      
2687
+
2733 2688
         updateTemplateName(params).then(response => {
2734 2689
           if (response.data.state == 0) {
2735 2690
             this.$message.error(response.data.msg)
@@ -2962,9 +2917,31 @@
2962 2917
        return a.sort - b.sort
2963 2918
      },
2964 2919
      hangleSelectChange(val){
2920
+       this.templateForm.advice_desc=this.drugSpec[0].drug_spec
2921
+       this.templateForm.drug_spec_unit=this.drugSpec[0].min_unit
2922
+       this.templateForm.prescribing_number=this.drugSpec[0].prescribing_number
2923
+       this.templateForm.prescribing_number_unit=this.drugSpec[0].prescribing_number_unit
2924
+       this.templateForm.single_dose=this.drugSpec[0].single_dose
2925
+       this.templateForm.single_dose_unit=this.drugSpec[0].min_unit
2926
+       this.templateForm.delivery_way=this.drugSpec[0].delivery_way
2927
+       this.templateForm.execution_frequency=this.drugSpec[0].execution_frequency
2928
+       // console.log("templateForm2222222222",this.templateForm)
2929
+       // console.log("all_drug",this.all_drug)
2930
+       // console.log("drugSpec2222222",this.drugSpec)
2965 2931
       this.templateForm.way = 1
2966 2932
       this.templateForm.drug_id = val.id
2967
-    }
2933
+    },
2934
+      closeform(){//清除表单数据
2935
+        this.templateForm.advice_name=""
2936
+        this.templateForm.advice_desc=""
2937
+        this.templateForm.drug_spec_unit=""
2938
+        this.templateForm.prescribing_number=""
2939
+        this.templateForm.prescribing_number_unit=""
2940
+        this.templateForm.single_dose=""
2941
+        this.templateForm.single_dose_unit=""
2942
+        this.templateForm.delivery_way=""
2943
+        this.templateForm.execution_frequency=""
2944
+      }
2968 2945
     }
2969 2946
   }
2970 2947
 </script>

+ 17 - 0
src/xt_pages/dialysis/PatientBox.vue View File

@@ -41,6 +41,10 @@
41 41
               <span :class="stateColor(schedule)">{{ stateText(schedule) }}</span>
42 42
             </span>
43 43
           </div>
44
+
45
+          <!-- <div class="difficult">
46
+            疑难内瘘
47
+          </div> -->
44 48
         </div>
45 49
         </div>
46 50
         <div>
@@ -824,4 +828,17 @@ export default {
824 828
 #modePurple{
825 829
   color: #53b86e;
826 830
 }
831
+
832
+.difficult{
833
+  width: 100px;
834
+  height: 40px;
835
+  border-radius: 0 0 0 30px;
836
+  background: #78d660;
837
+  text-align: center;
838
+  line-height: 40px;
839
+  position: relative;
840
+  bottom: 64px;
841
+  left: 179px;
842
+  color: white;
843
+}
827 844
 </style>

+ 1 - 1
src/xt_pages/dialysis/batch_print/batch_print_order_nine.vue View File

@@ -847,7 +847,7 @@
847 847
                                 }}
848 848
                               </div>
849 849
                             </td>
850
-                            <td width="20">ml</td>
850
+                            <td width="20">L</td>
851 851
 
852 852
                             <td width="80">透析方式:</td>
853 853
                             <td width="50">

+ 2 - 2
src/xt_pages/dialysis/details/DialysisPrescription.vue View File

@@ -111,8 +111,8 @@
111 111
           <label>目标超滤量 : </label>
112 112
           <span class="content">{{ target_ultrafiltration != "0" ? target_ultrafiltration : ""}}</span>
113 113
           
114
-          <span v-if="this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 38 && this.$store.getters.xt_user.template_info.template_id != 40 && this.$store.getters.xt_user.template_info.template_id != 43 && this.$store.getters.xt_user.template_info.template_id != 45  && this.$store.getters.xt_user.template_info.template_id != 46  && this.$store.getters.xt_user.template_info.org_id != 9555"  class="unit">{{ target_ultrafiltration != "0" ? "L" : "" }}</span>
115
-          <span v-if="this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28 || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 38 || this.$store.getters.xt_user.template_info.template_id != 40 || this.$store.getters.xt_user.template_info.template_id != 43 || this.$store.getters.xt_user.template_info.template_id != 45 || this.$store.getters.xt_user.template_info.template_id != 46  || this.$store.getters.xt_user.template_info.org_id == 9555" class="unit">{{ target_ultrafiltration != "0" ? "ml" : "" }}</span>
114
+          <span v-if="this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 38 && this.$store.getters.xt_user.template_info.template_id != 40 && this.$store.getters.xt_user.template_info.template_id != 43 && this.$store.getters.xt_user.template_info.template_id != 45  && this.$store.getters.xt_user.template_info.template_id != 46  && this.$store.getters.xt_user.template_info.template_id != 48 && this.$store.getters.xt_user.template_info.org_id != 9555"  class="unit">{{ target_ultrafiltration != "0" ? "L" : "" }}</span>
115
+          <span v-if="this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28 || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 38 || this.$store.getters.xt_user.template_info.template_id == 40 || this.$store.getters.xt_user.template_info.template_id == 43 || this.$store.getters.xt_user.template_info.template_id == 45 || this.$store.getters.xt_user.template_info.template_id == 46  || this.$store.getters.xt_user.template_info.template_id == 48 || this.$store.getters.xt_user.template_info.org_id == 9555" class="unit">{{ target_ultrafiltration != "0" ? "ml" : "" }}</span>
116 116
         </li>
117 117
 
118 118
          <li v-if="isShow('目标超滤量') && this.$store.getters.xt_user.template_info.org_id == 10290">

+ 1 - 1
src/xt_pages/dialysis/details/dialog/AssessmentAfterDislysis.vue View File

@@ -28,7 +28,7 @@
28 28
           <el-col :span="8" v-if="isShow('实际超滤量')">
29 29
             <el-form-item
30 30
               label="实际超滤量(ml): "
31
-              v-if=" this.template_id == 6 || this.template_id == 9 || this.template_id == 10 || this.template_id == 11  || this.template_id == 17 || this.template_id == 20 || this.template_id == 21 || this.template_id == 22 || this.template_id == 23 || this.template_id == 24 || this.template_id == 26 || this.template_id == 28 || this.template_id == 27 || this.template_id == 29 || this.template_id == 30 || this.template_id == 31 || this.template_id == 32 || this.template_id == 34 || this.template_id == 36 || this.template_id == 38 || this.template_id == 43 || this.template_id == 44 || this.$store.getters.xt_user.template_info.org_id == 9555 "  >
31
+              v-if=" this.template_id == 6 || this.template_id == 9 || this.template_id == 10 || this.template_id == 11  || this.template_id == 17 || this.template_id == 20 || this.template_id == 21 || this.template_id == 22 || this.template_id == 23 || this.template_id == 24 || this.template_id == 26 || this.template_id == 28 || this.template_id == 27 || this.template_id == 29 || this.template_id == 30 || this.template_id == 31 || this.template_id == 32 || this.template_id == 34 || this.template_id == 36 || this.template_id == 38 || this.template_id == 43 || this.template_id == 44 || this.template_id == 47 || this.$store.getters.xt_user.template_info.org_id == 9555 "  >
32 32
               <el-input v-model="form.actual_ultrafiltration"></el-input>
33 33
             </el-form-item>
34 34
             <el-form-item label="实际超滤量(L): " v-else>

+ 2 - 2
src/xt_pages/dialysis/details/dialog/dialysisPrescriptionDialog.vue View File

@@ -87,7 +87,7 @@
87 87
                     </el-col>
88 88
 
89 89
                     <el-col :span="8"
90
-                            v-if="isShows('目标超滤量') && (this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22  || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28  || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 38 ||  this.$store.getters.xt_user.template_info.template_id == 40 ||  this.$store.getters.xt_user.template_info.template_id == 43 ||  this.$store.getters.xt_user.template_info.template_id == 45  ||  this.$store.getters.xt_user.template_info.template_id == 46  || this.$store.getters.xt_user.template_info.org_id == 9555 )">
90
+                            v-if="isShows('目标超滤量') && (this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22  || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28  || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 38 ||  this.$store.getters.xt_user.template_info.template_id == 40 ||  this.$store.getters.xt_user.template_info.template_id == 43 ||  this.$store.getters.xt_user.template_info.template_id == 45  ||  this.$store.getters.xt_user.template_info.template_id == 46 ||  this.$store.getters.xt_user.template_info.template_id == 48 || this.$store.getters.xt_user.template_info.org_id == 9555 )">
91 91
                         <el-form-item label="目标超滤量(ml):">
92 92
                             <el-input
93 93
                                     type="number"
@@ -98,7 +98,7 @@
98 98
 
99 99
 
100 100
                     <el-col :span="8"
101
-                            v-if="isShows('目标超滤量')  && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 38 &&  this.$store.getters.xt_user.template_info.template_id != 40 &&  this.$store.getters.xt_user.template_info.template_id != 43 &&  this.$store.getters.xt_user.template_info.template_id != 45 &&  this.$store.getters.xt_user.template_info.template_id != 46   && this.$store.getters.xt_user.template_info.org_id != 9555 ">
101
+                            v-if="isShows('目标超滤量')  && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 38 &&  this.$store.getters.xt_user.template_info.template_id != 40 &&  this.$store.getters.xt_user.template_info.template_id != 43 &&  this.$store.getters.xt_user.template_info.template_id != 45 &&  this.$store.getters.xt_user.template_info.template_id != 46  &&  this.$store.getters.xt_user.template_info.template_id != 48 && this.$store.getters.xt_user.template_info.org_id != 9555 ">
102 102
                         <el-form-item label="目标超滤量(L):">
103 103
                             <el-input
104 104
                                     type="number"

+ 25 - 8
src/xt_pages/dialysis/details/dialog/monitor_dialog.vue View File

@@ -197,6 +197,7 @@
197 197
             width="110"
198 198
             v-if="
199 199
               isShow('超滤量') &&
200
+
200 201
               (template_id == 6 ||
201 202
                 template_id == 9 ||
202 203
                 template_id == 10 ||
@@ -228,6 +229,8 @@
228 229
                 template_id == 44 ||
229 230
                 template_id == 46 ||
230 231
                 template_id == 47 ||
232
+                template_id == 48 ||
233
+                org_id == 10210 ||
231 234
                 org_id == 9555)
232 235
             "
233 236
           >
@@ -277,6 +280,8 @@
277 280
               template_id != 44 &&
278 281
               template_id != 46 &&
279 282
               template_id != 47 &&
283
+              template_id != 48 &&
284
+              org_id!= 10210 &&
280 285
               org_id != 9555
281 286
             "
282 287
           >
@@ -320,6 +325,7 @@
320 325
                 template_id == 43 ||
321 326
                 template_id == 44 ||
322 327
                 template_id == 46 ||
328
+                template_id == 48 ||
323 329
                 template_id == 47)
324 330
             "
325 331
           >
@@ -361,7 +367,8 @@
361 367
               template_id != 41 &&
362 368
               template_id != 43 &&
363 369
               template_id != 44 &&
364
-              template_id == 46 &&
370
+              template_id != 46 &&
371
+              template_id != 48 &&
365 372
               template_id != 47
366 373
             "
367 374
           >
@@ -416,6 +423,7 @@
416 423
                 template_id == 20 ||
417 424
                 template_id == 26 ||
418 425
                 template_id == 29 ||
426
+                template_id == 48 ||
419 427
                 template_id == 47)
420 428
             "
421 429
           >
@@ -437,6 +445,7 @@
437 445
               template_id != 20 &&
438 446
               template_id != 26 &&
439 447
               template_id != 29 &&
448
+              template_id != 48 &&
440 449
               template_id != 47
441 450
             "
442 451
           >
@@ -449,7 +458,7 @@
449 458
             align="center"
450 459
             label="置换量(ml/h)"
451 460
             width="100"
452
-            v-if="isShow('置换量') && (template_id == 43 || template_id == 47)"
461
+            v-if="isShow('置换量') && (template_id == 43 || template_id == 48)"
453 462
           >
454 463
             <template slot-scope="scope">
455 464
               {{
@@ -476,7 +485,7 @@
476 485
                 template_id == 20 ||
477 486
                 template_id == 26 ||
478 487
                 template_id == 29 ||
479
-                template_id == 47)
488
+                template_id == 48)
480 489
             "
481 490
           >
482 491
             <template slot-scope="scope">
@@ -502,7 +511,7 @@
502 511
               template_id != 26 &&
503 512
               template_id != 29 &&
504 513
               template_id != 43 &&
505
-              template_id != 47
514
+              template_id != 48
506 515
             "
507 516
           >
508 517
             <template slot-scope="scope">
@@ -961,6 +970,7 @@
961 970
                 template_id == 43 ||
962 971
                 template_id == 44 ||
963 972
                 template_id == 46 ||
973
+                template_id == 48 ||
964 974
                 template_id == 47)
965 975
             "
966 976
           >
@@ -996,6 +1006,7 @@
996 1006
               template_id != 43 &&
997 1007
               template_id != 44 &&
998 1008
               template_id != 46 &&
1009
+              template_id != 48 &&
999 1010
               template_id != 47
1000 1011
             "
1001 1012
           >
@@ -1037,6 +1048,8 @@
1037 1048
                 template_id == 44 ||
1038 1049
                 template_id == 46 ||
1039 1050
                 template_id == 47 ||
1051
+                template_id == 48 ||
1052
+                org_id == 10210 ||
1040 1053
                 org_id == 9555)
1041 1054
             "
1042 1055
           >
@@ -1078,6 +1091,8 @@
1078 1091
               template_id != 44 &&
1079 1092
               template_id != 46 &&
1080 1093
               template_id != 47 &&
1094
+              template_id == 48 &&
1095
+              org_id !=  10210 &&
1081 1096
               org_id != 9555
1082 1097
             "
1083 1098
           >
@@ -1110,7 +1125,8 @@
1110 1125
               template_id != 26 &&
1111 1126
               template_id != 29 &&
1112 1127
               template_id != 46 &&
1113
-              template_id != 47
1128
+              template_id != 47 &&
1129
+              template_id != 48 
1114 1130
             "
1115 1131
           >
1116 1132
             <el-form-item label="置换率(L/h):">
@@ -1128,7 +1144,8 @@
1128 1144
                 template_id == 26 ||
1129 1145
                 template_id == 29 ||
1130 1146
                 template_id == 46 ||
1131
-                template_id == 47)
1147
+                template_id == 47 ||
1148
+                template_id == 48)
1132 1149
             "
1133 1150
           >
1134 1151
             <el-form-item label="置换率(ml/min):">
@@ -1152,7 +1169,7 @@
1152 1169
               template_id != 29 &&
1153 1170
               template_id != 43 &&
1154 1171
               template_id != 46 &&
1155
-              template_id != 47
1172
+              template_id != 48
1156 1173
             "
1157 1174
           >
1158 1175
             <el-form-item label="置换量(L):">
@@ -1173,7 +1190,7 @@
1173 1190
                 template_id == 26 ||
1174 1191
                 template_id == 29 ||
1175 1192
                 template_id == 46 ||
1176
-                template_id == 47)
1193
+                template_id == 48)
1177 1194
             "
1178 1195
           >
1179 1196
             <el-form-item label="置换量(ml):">

+ 8 - 8
src/xt_pages/dialysis/details/dialysisMonitoring.vue View File

@@ -14,17 +14,17 @@
14 14
           <th width="76px">静脉压/动脉压({{monitores[0]&&monitores[0]['venous_pressure_type'] == 2 ? 'kpa' : 'mmHg'}})</th>
15 15
           <th v-if="isShow('血流量')" width="92px">血流量(ml/min)</th>
16 16
           <th v-if="isShow('跨膜压')" width="76px">跨膜压({{monitores[0]&&monitores[0]['transmembrane_pressure_type'] == 2 ? 'kpa' : 'mmHg'}})</th>
17
-          <th v-if=" isShow('超滤量') &&(template_id == 6 || template_id == 9 || template_id == 10 || template_id == 11 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 27 || template_id == 28 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 32 || template_id == 34 || template_id == 35 || template_id == 36 || template_id == 38 || template_id == 39 || template_id == 40  || template_id == 41 || template_id == 43 || template_id == 44 || template_id == 46 || template_id == 47 || this.$store.getters.xt_user.template_info.org_id == 9555)" width="76px" > 超滤量(ml)</th>
18
-          <th v-if=" isShow('超滤量') && template_id != 6 && template_id != 9 && template_id != 10 && template_id != 11 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22 && template_id != 23 && template_id != 24 && template_id != 26 && template_id !=27 && template_id!=28 && template_id!=29 && template_id!=30 && template_id!=31 && template_id!=32 && template_id!=34 && template_id!=35 && template_id!=36 && template_id!=38 && template_id != 39 && template_id != 40  && template_id != 41 && template_id != 43 && template_id != 44 && template_id != 46  && template_id != 47  && this.$store.getters.xt_user.template_info.org_id != 9555"  width="76px"> 超滤量(L) </th>
19
-          <th v-if="isShow('超滤率') && (template_id ==6 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 34 || template_id == 35 || template_id == 38 || template_id == 41 || template_id == 43 || template_id == 44 || template_id == 46 || template_id == 47)" width="50px"> 超滤率 <br />(ml/h) </th>
20
-          <th v-if="isShow('超滤率') && template_id !=6 && template_id !=10 && template_id !=11 && template_id !=12 && template_id !=13 && template_id !=17 && template_id !=18 && template_id !=19 && template_id !=20 && template_id !=21 && template_id !=22 && template_id !=23 && template_id !=24 && template_id !=26 && template_id !=29 && template_id !=30 && template_id !=31 && template_id !=34 && template_id !=35 && template_id !=38  && template_id !=41 && template_id !=43 && template_id !=44 && template_id !=46 && template_id !=47" width="50px"> 超滤率 <br />(L/h) </th>
17
+          <th v-if=" isShow('超滤量') &&(template_id == 6 || template_id == 9 || template_id == 10 || template_id == 11 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 27 || template_id == 28 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 32 || template_id == 34 || template_id == 35 || template_id == 36 || template_id == 38 || template_id == 39 || template_id == 40  || template_id == 41 || template_id == 43 || template_id == 44 || template_id == 46 || template_id == 47 || template_id == 48 || this.$store.getters.xt_user.template_info.org_id == 9555)" width="76px" > 超滤量(ml)</th>
18
+          <th v-if=" isShow('超滤量') && template_id != 6 && template_id != 9 && template_id != 10 && template_id != 11 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22 && template_id != 23 && template_id != 24 && template_id != 26 && template_id !=27 && template_id!=28 && template_id!=29 && template_id!=30 && template_id!=31 && template_id!=32 && template_id!=34 && template_id!=35 && template_id!=36 && template_id!=38 && template_id != 39 && template_id != 40  && template_id != 41 && template_id != 43 && template_id != 44 && template_id != 46  && template_id != 47 && template_id != 48 && this.$store.getters.xt_user.template_info.org_id != 9555"  width="76px"> 超滤量(L) </th>
19
+          <th v-if="isShow('超滤率') && (template_id ==6 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 34 || template_id == 35 || template_id == 38 || template_id == 41 || template_id == 43 || template_id == 44 || template_id == 46 || template_id == 47  || template_id == 48)" width="50px"> 超滤率 <br />(ml/h) </th>
20
+          <th v-if="isShow('超滤率') && template_id !=6 && template_id !=10 && template_id !=11 && template_id !=12 && template_id !=13 && template_id !=17 && template_id !=18 && template_id !=19 && template_id !=20 && template_id !=21 && template_id !=22 && template_id !=23 && template_id !=24 && template_id !=26 && template_id !=29 && template_id !=30 && template_id !=31 && template_id !=34 && template_id !=35 && template_id !=38  && template_id !=41 && template_id !=43 && template_id !=44 && template_id !=46 && template_id !=47 &&  template_id !=48" width="50px"> 超滤率 <br />(L/h) </th>
21 21
           <th v-if="isShow('钠浓度')" width="92px">钠浓度(mmol/L)</th>
22 22
           <th v-if="isShow('透析液温度')" width="92px">透析液温度(℃)</th>
23
-          <th v-if=" isShow('置换率') && (template_id == 6 || template_id == 10 || template_id == 11 || template_id == 20 || template_id == 26 || template_id == 29 || template_id == 46 || template_id == 47) " width="92px" > 置换率(ml/min) </th>
24
-          <th v-if=" isShow('置换率') && template_id != 6 && template_id != 10 && template_id != 11 && template_id != 20 && template_id != 26 && template_id != 29 && template_id != 46 && template_id != 47" width="92px" > 置换率(L/h)  </th>
23
+          <th v-if=" isShow('置换率') && (template_id == 6 || template_id == 10 || template_id == 11 || template_id == 20 || template_id == 26 || template_id == 29 || template_id == 46 || template_id == 47 || template_id == 48) " width="92px" > 置换率(ml/min) </th>
24
+          <th v-if=" isShow('置换率') && template_id != 6 && template_id != 10 && template_id != 11 && template_id != 20 && template_id != 26 && template_id != 29 && template_id != 46 && template_id != 47 && template_id != 48" width="92px" > 置换率(L/h)  </th>
25 25
           <th v-if=" isShow('置换量') && (template_id == 43)" width="92px"> 置换量(ml/h)  </th>
26
-          <th v-if=" isShow('置换量') && ((template_id == 6 && org_id != 9919 && org_id !=10191) || org_id == 9779 || template_id == 11 || template_id == 20 || template_id == 26 || template_id == 29 || template_id == 46 || template_id == 47)" width="92px"  > 置换量(ml)  </th>
27
-          <th v-if=" isShow('置换量') && ((template_id != 6 || org_id == 9919 || org_id == 10191) && org_id != 9779 && template_id != 11 && template_id != 20 && template_id != 26 && template_id != 29 && template_id != 46 && template_id != 47)" width="92px" > 置换量(L) </th>
26
+          <th v-if=" isShow('置换量') && ((template_id == 6 && org_id != 9919 && org_id !=10191) || org_id == 9779 || template_id == 11 || template_id == 20 || template_id == 26 || template_id == 29 || template_id == 46 || template_id == 48)" width="92px"  > 置换量(ml)  </th>
27
+          <th v-if=" isShow('置换量') && ((template_id != 6 || org_id == 9919 || org_id == 10191) && org_id != 9779 && template_id != 11 && template_id != 20 && template_id != 26 && template_id != 29 && template_id != 46 && template_id != 48)" width="92px" > 置换量(L) </th>
28 28
           <th v-if=" isShow('SpO₂') && template_id != 6 && template_id != 10 && template_id != 11  " width="92px" > SpO₂(%) </th>
29 29
           <th v-if="isShow('电导度')" width="92px">电导度(mS/m)</th>
30 30
           <th v-if="isShow('置换液流量') && template_id != 27" width="92px">置换液流量(ml/h)</th>

+ 31 - 2
src/xt_pages/dialysis/dialysisPrintOrder.vue View File

@@ -634,6 +634,16 @@
634 634
           >打印</el-button
635 635
         >
636 636
       </template>
637
+      <template v-if="org_template_info.template_id == 48">
638
+        <el-button
639
+          :loading="loading"
640
+          size="small"
641
+          icon="el-icon-printer"
642
+          @click="printThisPage"
643
+          type="primary"
644
+          >打印</el-button
645
+        >
646
+      </template>
637 647
     </div>
638 648
     <div class="app-container" style="min-height: 0">
639 649
       <!--<div class="order-print-btn"-->
@@ -995,6 +1005,12 @@
995 1005
             v-if="org_template_info.template_id == 47"
996 1006
           >
997 1007
           </DialysisPrintOrderFortySeven>
1008
+
1009
+           <DialysisPrintOrderFortyEight
1010
+            v-bind:childResponse="childResponse"
1011
+            v-if="org_template_info.template_id == 48"
1012
+          >
1013
+          </DialysisPrintOrderFortyEight>
998 1014
         </div>
999 1015
       </el-container>
1000 1016
     </div>
@@ -1060,9 +1076,11 @@ import DialysisPrintOrderFortyFour from "./template/DialysisPrintOrderFortyFour"
1060 1076
 import DialysisPrintOrderFortyFive from "./template/DialysisPrintOrderFortyFive";
1061 1077
 import DialysisPrintOrderFortySix from "./template/DialysisPrintOrderFortySix";
1062 1078
 import DialysisPrintOrderFortySeven from "./template/DialysisPrintOrderFortySeven";
1079
+import DialysisPrintOrderFortyEight from "./template/DialysisPrintOrderFortyEight";
1063 1080
 export default {
1064 1081
   name: "dialysisPrintOrder",
1065 1082
   components: {
1083
+    DialysisPrintOrderFortyEight,
1066 1084
     DialysisPrintOrderFortySeven,
1067 1085
     DialysisPrintOrderFortySix,
1068 1086
     DialysisPrintOrderFortyFive,
@@ -1289,7 +1307,11 @@ export default {
1289 1307
         '@media print {#dialysis-print-box-1{margin:0 auto;}.dialysis-print-order{width:920px;margin:0 10px;font-size:10px;}.option_panel { margin: 0 5px 0 0; } .option_panel .check_box_panel { white-space: nowrap; outline: none; display: inline-block; line-height: 1; position: relative; vertical-align: middle; } .dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px}.option_panel .check_box_panel .check_box { display: inline-block; position: relative; border: 1px solid #000; box-sizing: border-box; width: 14px; height: 12px; background-color: #fff; } .check_box_panel .did_checked::after { content: "√"; font-size: 15px; } .print_page_main_content {background-color: white;width: 940px;margin: 0 auto 50px;padding: 0 0 0 0; page-break-after: always;}.print_page_main_content .order-yy-name {margin: auto;text-align: center;font-size: 20px;letter-spacing: 5px;}.print_page_main_content .order_title {text-align: center;font-size: 23px; line-height: 50px;font-weight: 500;} .row {font-size: 14px;line-height: 20px;padding: 5px 0;}.inline_block { display: inline-block;}.under_line_two {display: inline-block;border-bottom: 1px solid #999;text-align: left;white-space: nowrap;width: 50%;}.under_line {display: inline-block;border-bottom: 1px solid #999;text-align: center;white-space: nowrap; width: 50%;}.flex {display: -webkit-box;display: -moz-box; display: -ms-flexbox; display: -webkit-flex;display: flex;align-items: center;-webkit-align-items: center;box-align: center;-moz-box-align: center;-webkit-box-align: center;text-align: center;-webkit-justify-content: space-between;justify-content: space-between;-moz-box-pack: space-between;-webkit--moz-box-pack: space-between;box-pack: space-between;}.print_page_main_content .proj_table {width: 100%;border: 1px solid;border-collapse: collapse;padding: 2px;}.print_page_main_content .proj_table tbody tr td {border: 1px solid;font-size: 16px;padding: 3px 8px;line-height: 30px;}.print_page_main_content .proj_table .inside_table {width: 100%;border: hidden; border-collapse: collapse;}.print_page_main_content .proj_table .inside_table tr td {border: 1px solid; text-align: center;font-size: 14px;padding: 6px 5px;line-height: 16px;}.print-table-no {width: 100%;text-align: center;border-collapse: collapse;font-size: 14px;}.es-img {height: 30px;}.advice-name {text-align: left !important;line-height: 16px !important;}.advice-children {display: flex;}}.margin-bottom-50{margin-bottom:50px;}.margin-bottom-300 {margin-bottom:450px;}.margin-bottom-600 {margin-bottom:600px;}.margin-bottom-900 {margin-bottom:900px;}.print-yema{ position: absolute;top: 920px;left: 50%;} .print-yema2{ position: absolute;top: 400px;left: 50%;}.print-yema3{position: absolute;top: 1230px;left: 50%;}.print-yema4{position: absolute;top: 1050px;left: 50%;}.check_box{width:15px !important;height:15px !important;}.did_checke::after {font-size: 8px;margin-left: 2px;margin-top: 12px !important;position: absolute;}.table-box1 {border: 1px solid #000;width: 100%;line-height: 30px;font-size: 14px;border-collapse: collapse;}@page {margin-top:5px;}.table-box1 tr {border-bottom: 1px solid #000;}';
1290 1308
       const style10 =
1291 1309
         '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:40px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:40px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;line-height:35px} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}@page {margin-left:30px;margin-right:40px;}';
1292
-
1310
+      
1311
+      // 三明曙光样式
1312
+      const style11 =
1313
+        '@media print {.dialysis-print-order{width:960px;margin:100px auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:30px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:15px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}';
1314
+      
1293 1315
       if (this.org_template_info.template_id == 1) {
1294 1316
         printJS({
1295 1317
           printable: "dialysis-print-box",
@@ -1608,7 +1630,14 @@ export default {
1608 1630
           style: style2,
1609 1631
           scanStyles: false,
1610 1632
         });
1611
-      }
1633
+      } else if (this.org_template_info.template_id == 48) {
1634
+        printJS({
1635
+          printable: "dialysis-print-box",
1636
+          type: "html",
1637
+          style: style11,
1638
+          scanStyles: false,
1639
+        });
1640
+      } 
1612 1641
     },
1613 1642
     printThisOnePage() {
1614 1643
       var ptime = Math.round(new Date().getTime() / 1000);

+ 2 - 0
src/xt_pages/dialysis/schedualPatient.vue View File

@@ -79,6 +79,7 @@
79 79
       <el-input size="small" style="width: 180px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
80 80
       <el-button size="small" class="filter-item" type="primary" icon="el-icon-search" @click="searchAction">搜索</el-button>
81 81
     </div>
82
+
82 83
     <div style="display:flex;justify-content: space-between;">
83 84
       <div :class="queueConfig.txglsyxs != 1 ? 'PatientArea' : 'PatientArea smallWidth'">
84 85
         <div v-for="zone_schedule in allPatient" :key="zone_schedule.zone_id" class="list clearfix">
@@ -86,6 +87,7 @@
86 87
           <div v-if="zone_schedule.schedules.length > 0 && patientStateVal != 1" style="font-size:16px;font-weight: bold;color: #34495e;margin-right:10px;line-height:30px;">{{zone_schedule.zone_name}}</div>
87 88
           <patient-box :schedules="zone_schedule.schedules" :patientStateVal='patientStateVal' style="flex:1"></patient-box>
88 89
         </div>
90
+        
89 91
         <div class="NoData" v-show="filtedSchedules.length == 0">
90 92
           <img src="@/assets/img/data.jpg" alt="">
91 93
         </div>

File diff suppressed because it is too large
+ 2685 - 0
src/xt_pages/dialysis/template/DialysisPrintOrderFortyEight.vue


+ 13 - 8
src/xt_pages/dialysis/template/DialysisPrintOrderFortySeven.vue View File

@@ -1174,7 +1174,7 @@
1174 1174
                           "
1175 1175
                           width="50"
1176 1176
                         >
1177
-                          置换量<br />(ml)
1177
+                          置换量<br />(L)
1178 1178
                         </td>
1179 1179
                         <td width="200">病情变化及处理</td>
1180 1180
 
@@ -1261,12 +1261,16 @@
1261 1261
                         </td>
1262 1262
                         <!-- 超滤量 -->
1263 1263
                         <td>
1264
-                          {{
1265
-                            monitor.ultrafiltration_volume
1266
-                              ? monitor.ultrafiltration_volume
1267
-                              : ""
1268
-                          }}
1264
+                          <span v-if="monindex == 0"> 0 </span>
1265
+                          <span v-else>
1266
+                            {{
1267
+                              monitor.ultrafiltration_volume
1268
+                                ? monitor.ultrafiltration_volume
1269
+                                : ""
1270
+                            }}
1271
+                          </span>
1269 1272
                         </td>
1273
+                        <!-- 置换量 -->
1270 1274
                         <td
1271 1275
                           v-if="
1272 1276
                             prescription.mode_id == 2 ||
@@ -1275,13 +1279,15 @@
1275 1279
                           "
1276 1280
                           style="width: 50px"
1277 1281
                         >
1278
-                          <span>
1282
+                          <span v-if="monindex == 0"> 0 </span>
1283
+                          <span v-else>
1279 1284
                             {{
1280 1285
                               monitor.displacement_quantity
1281 1286
                                 ? monitor.displacement_quantity
1282 1287
                                 : ""
1283 1288
                             }}
1284 1289
                           </span>
1290
+                          
1285 1291
                         </td>
1286 1292
                         <!-- <td
1287 1293
                           v-if="
@@ -1911,7 +1917,6 @@
1911 1917
                         style="width: 200px; text-align: center"
1912 1918
                       >
1913 1919
                         {{ afterdialysis.cruor ? afterdialysis.cruor : "/" }}
1914
-                        
1915 1920
                       </div>
1916 1921
                     </div>
1917 1922
 

+ 13 - 6
src/xt_pages/dialysis/template/DialysisPrintOrderFortyTwo.vue View File

@@ -120,10 +120,12 @@
120 120
                 {{ afterdialysis.actual_ultrafiltration ? afterdialysis.actual_ultrafiltration : '/'}}kg
121 121
               </span>
122 122
             </td>
123
-            <td style="text-align:left;" colspan="1">
123
+           
124
+            <td style="text-align:left;" colspan="2">
124 125
               <span style="display:inline-block;margin-left:15px;">
125
-                透后体重:
126
-                {{ afterdialysis.weight_after ? afterdialysis.weight_after : '/' }} kg
126
+                透析时长:
127
+                {{ afterdialysis.actual_treatment_hour ? afterdialysis.actual_treatment_hour : "0" }}h
128
+                {{ afterdialysis.actual_treatment_minute ? afterdialysis.actual_treatment_minute : "0" }}min
127 129
               </span>
128 130
             </td>
129 131
           </tr>
@@ -134,11 +136,16 @@
134 136
                 {{ afterdialysis.weight_loss ? afterdialysis.weight_loss : "/" }}kg
135 137
               </span>
136 138
             </td> -->
139
+             <td style="text-align:left;" colspan="1">
140
+              <span style="display:inline-block;margin-left:15px;">
141
+                透后体重:
142
+                {{ afterdialysis.weight_after ? afterdialysis.weight_after : '/' }} kg
143
+              </span>
144
+            </td>
137 145
             <td style="text-align:left;" colspan="2">
138 146
               <span style="display:inline-block;margin-left:15px;">
139
-                透析时长:
140
-                {{ afterdialysis.actual_treatment_hour ? afterdialysis.actual_treatment_hour : "0" }}h
141
-                {{ afterdialysis.actual_treatment_minute ? afterdialysis.actual_treatment_minute : "0" }}min
147
+                透后血压:
148
+                {{ afterdialysis.systolic_blood_pressure ? afterdialysis.systolic_blood_pressure : '' }}/{{afterdialysis.diastolic_blood_pressure?afterdialysis.diastolic_blood_pressure:''}} mmHg
142 149
               </span>
143 150
             </td>
144 151
           </tr>

+ 1 - 1
src/xt_pages/dialysis/template/DialysisPrintOrderNine.vue View File

@@ -445,7 +445,7 @@
445 445
                       &nbsp;{{ prescription.replacement_total ? prescription.replacement_total : "/" }}
446 446
                     </div>
447 447
                   </td>
448
-                  <td width="20">ml</td>
448
+                  <td width="20">L</td>
449 449
 
450 450
                   <td width="80">透析方式:</td>
451 451
                   <td width="50">

+ 0 - 8
src/xt_pages/hospitalStation/allListTemplate/printOne.vue View File

@@ -118,14 +118,6 @@
118 118
       }
119 119
 
120 120
     },
121
-    watch:{
122
-        list: {
123
-            handler(newVal) {
124
-                this.getPage()
125
-            },
126
-            deep: true
127
-        }
128
-    }
129 121
   }
130 122
 
131 123
 

+ 22 - 11
src/xt_pages/hospitalStation/components/chargeDialog.vue View File

@@ -9,24 +9,24 @@
9 9
       </el-form-item>
10 10
 
11 11
       <el-form-item label="总计:" prop="name" :validate-event="is_Name" style="width:33%;">
12
-        <el-input type="number" v-model="form.total" :disabled="true"></el-input>
12
+        <el-input style="color: black" type="number" v-model="form.total" :disabled="true"></el-input>
13 13
       </el-form-item>
14 14
       <el-form-item label="医保:" prop="name" :validate-event="is_Name" style="width:33%;">
15
-        <el-input type="number" v-model="form.medical_insurance_price" :disabled="true"></el-input>
15
+        <el-input style="color: black"  type="number" v-model="form.medical_insurance_price" :disabled="true"></el-input>
16 16
       </el-form-item>
17 17
 
18 18
 
19 19
       <el-form-item label="自费:" prop="age" :validate-event="is_Name" style="width:33%;">
20
-        <el-input type="number" v-model="form.private_price" :disabled="true"></el-input>
20
+        <el-input style="color: black"  type="number" v-model="form.private_price" :disabled="true"></el-input>
21 21
       </el-form-item>
22 22
 
23 23
       <el-form-item label="个账支出:" prop="age" :validate-event="is_Name" style="width:33%;">
24
-        <el-input type="number" v-model="form.acct_pay" :disabled="true"></el-input>
24
+        <el-input style="color: black"  type="number" v-model="form.acct_pay" :disabled="true"></el-input>
25 25
       </el-form-item>
26 26
 
27 27
 
28 28
       <el-form-item label="个人现金支出:" prop="age" :validate-event="is_Name" style="width:33%;">
29
-        <el-input type="number" v-model="form.psn_pay" :disabled="true"></el-input>
29
+        <el-input style="color: black"  type="number" v-model="form.psn_pay" :disabled="true"></el-input>
30 30
       </el-form-item>
31 31
 
32 32
 
@@ -47,7 +47,7 @@
47 47
 
48 48
 
49 49
       <el-form-item label="付款金额:" prop="id_card" :validate-event="is_Name">
50
-        <el-input type="number" v-model="form.pay_price" :disabled="true"></el-input>
50
+        <el-input style="color: black"  type="number" v-model="form.pay_price" :disabled="true"></el-input>
51 51
       </el-form-item>
52 52
 
53 53
 
@@ -57,22 +57,22 @@
57 57
 
58 58
       <el-form-item class="specialFormItem" label="折扣金额:">
59 59
         <div style="display:flex;">
60
-          <el-input v-model="form.discount_price" :disabled="form.preferential_price != 0" @change="changeDiscountPrice"></el-input>
60
+          <el-input style="color: black"  v-model="form.discount_price" :disabled="form.preferential_price != 0" @change="changeDiscountPrice"></el-input>
61 61
         </div>
62 62
       </el-form-item>
63 63
       <el-form-item class="specialFormItem" label="优惠金额:">
64 64
         <div style="display:flex;">
65
-          <el-input v-model="form.preferential_price" :disabled="form.discount_price != 0" @change="changePreferentialPrice"></el-input>
65
+          <el-input style="color: black"  v-model="form.preferential_price" :disabled="form.discount_price != 0" @change="changePreferentialPrice"></el-input>
66 66
         </div>
67 67
       </el-form-item>
68 68
       <el-form-item label="实收金额:">
69 69
         <div style="display:flex;">
70
-          <el-input v-model="form.reality_price" @change="realityPrice"></el-input>
70
+          <el-input style="color: black"  v-model="form.reality_price" @change="realityPrice"></el-input>
71 71
         </div>
72 72
       </el-form-item>
73 73
       <el-form-item label="找回金额:">
74 74
         <div style="display:flex;">
75
-          <el-input v-model.number="form.found_price"></el-input>
75
+          <el-input style="color: black"  v-model.number="form.found_price"></el-input>
76 76
         </div>
77 77
       </el-form-item>
78 78
 
@@ -101,7 +101,7 @@
101 101
 
102 102
 <script>
103 103
   import { uParseTime } from '@/utils/tools'
104
-
104
+  const moment = require('moment')
105 105
   export default {
106 106
     name: 'chargeDialog',
107 107
 
@@ -182,6 +182,7 @@
182 182
     },
183 183
     methods: {
184 184
       show: function (total,order) {
185
+        this.record_date = moment(new Date()).add('year',0).format("YYYY-MM-DD HH:mm")
185 186
         this.form.total = total
186 187
         this.form.private_price = total
187 188
         this.form.pay_price = total
@@ -269,7 +270,17 @@
269 270
   }
270 271
 </script>
271 272
 
273
+
272 274
 <style lang="scss" scoped>
275
+/deep/input::-webkit-input-placeholder {
276
+  color: red;
277
+  font-size: 15px;
278
+}
279
+
280
+   /deep/.el-input__inner {
281
+     background-color: transparent !important;
282
+     border: 1px solid red;
283
+   }
273 284
 .chargeDialog{
274 285
   .el-form{
275 286
     display: flex;

+ 43 - 200
src/xt_pages/hospitalStation/components/hospitalRegisterDialog.vue View File

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <el-dialog width="854px" title="入院登记" class="chargeDialog" :visible.sync="visibility" :close-on-click-modal="isClose"
2
+  <el-dialog width="1000px" title="入院登记" class="chargeDialog" :visible.sync="visibility" :close-on-click-modal="isClose"
3 3
              :close-on-press-escape="isClose">
4 4
 
5 5
     <div class="nameTitle">患者基本信息:</div>
@@ -161,185 +161,13 @@
161 161
             </el-option>
162 162
           </el-select>
163 163
         </el-form-item>
164
-        <el-form-item label="入院科室:" prop="department" :validate-event="is_Name">
165
-          <el-select v-model="form.department" placeholder="请选择">
166
-            <el-option
167
-                v-for="item in departmentList"
168
-                :key="item.id"
169
-                :label="item.name"
170
-                :value="item.id">
171
-            </el-option>
172
-          </el-select>
173
-        </el-form-item>
174
-
175
-
176
-        <el-form-item label="入院时间:" prop="start_time" :validate-event="is_Name">
177
-          <el-date-picker v-model="form.start_time" type="datetime" format="yyyy-MM-dd HH:mm:ss"
164
+        <el-form-item label="入院时间:"  prop="start_time" :validate-event="is_Name">
165
+          <el-date-picker style="width: 210px" v-model="form.start_time" type="datetime" format="yyyy-MM-dd HH:mm:ss"
178 166
                           value-format="yyyy-MM-dd HH:mm:ss"
179 167
                           placeholder="请选择入院时间">
180 168
           </el-date-picker>
181 169
 
182 170
         </el-form-item>
183
-
184
-      </el-form>
185
-      <el-button style="float:right" @click="saveHisPatient('form')" v-loading="loadingone" type="primary">登记
186
-      </el-button>
187
-    </div>
188
-    <div class="nameTitle">患者基本信息:</div>
189
-    <div class="formMain">
190
-      <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="100px">
191
-
192
-
193
-        <el-form-item label="患者姓名:" prop="name" :validate-event="is_Name">
194
-          <el-autocomplete
195
-              class="checkSearch"
196
-              popper-class="my-autocomplete"
197
-              v-model="form.name"
198
-              :fetch-suggestions="querySearchAsync"
199
-              :trigger-on-focus="false"
200
-              placeholder="请输入病人名字"
201
-              @select="handleSelect"
202
-              style="width:160px;"
203
-          >
204
-            <i class="el-icon-search el-input__icon" slot="suffix"></i>
205
-            <template slot-scope="{ item }">
206
-              <div class="name">{{ item.name }}</div>
207
-            </template>
208
-          </el-autocomplete>
209
-        </el-form-item>
210
-
211
-
212
-        <el-form-item label="手机号码:" prop="phone">
213
-          <el-input v-model="form.phone"></el-input>
214
-        </el-form-item>
215
-
216
-
217
-        <el-form-item label="证件类型:" prop="certificates" :validate-event="is_Name">
218
-          <el-select v-model="form.certificates" placeholder="请选择">
219
-            <el-option
220
-                v-for="item in certificates"
221
-                :key="item.value"
222
-                :label="item.label"
223
-                :value="item.value">
224
-            </el-option>
225
-          </el-select>
226
-        </el-form-item>
227
-
228
-        <el-form-item label="证件号码:" prop="id_card_no" :validate-event="is_Name">
229
-          <el-input v-model="form.id_card_no"></el-input>
230
-        </el-form-item>
231
-
232
-
233
-        <el-form-item label="读卡类型:" prop="id_card_type" :validate-event="is_Name">
234
-          <el-select v-model="form.id_card_type" placeholder="请选择">
235
-            <el-option
236
-                v-for="item in IDCardTypes"
237
-                :key="item.value"
238
-                :label="item.label"
239
-                :value="item.value">
240
-            </el-option>
241
-          </el-select>
242
-        </el-form-item>
243
-
244
-
245
-        <el-form-item label="结算类型:">
246
-          <el-select v-model="form.settlement_value" placeholder="请选择" style="width:100%;">
247
-            <el-option
248
-                v-for="item in settlement"
249
-                :key="item.value"
250
-                :label="item.label"
251
-                :value="item.value">
252
-            </el-option>
253
-          </el-select>
254
-        </el-form-item>
255
-
256
-        <el-form-item label="参保地:">
257
-          <el-select v-model="form.insuplc_admdvs" placeholder="请选择" style="width:100%;">
258
-            <el-option
259
-                v-for="item in InsuplcAdmdvs"
260
-                :key="item.value"
261
-                :label="item.label"
262
-                :value="item.value">
263
-            </el-option>
264
-          </el-select>
265
-        </el-form-item>
266
-
267
-
268
-      </el-form>
269
-    </div>
270
-    <div class="nameTitle">患者住院信息:</div>
271
-    <div class="formMain">
272
-      <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="100px">
273
-
274
-        <el-form-item label="疾病类型:" prop="sick_type" :validate-event="is_Name">
275
-          <el-select filterable v-model="form.sick_type" placeholder="">
276
-            <el-option
277
-                v-for="(item,index) in sick"
278
-                :key="index"
279
-                :label="item.class_name"
280
-                :value="item.id">
281
-            </el-option>
282
-          </el-select>
283
-        </el-form-item>
284
-
285
-        <el-form-item label="诊断:" prop="diagnosis" :validate-event="is_Name">
286
-          <el-select v-model="form.diagnosis" placeholder="">
287
-            <el-option
288
-                v-for="(item,index) in diagnoses"
289
-                :key="index"
290
-                :label="item.class_name"
291
-                :value="item.id">
292
-            </el-option>
293
-          </el-select>
294
-        </el-form-item>
295
-
296
-        <el-form-item label="医疗类别:" prop="med_type" :validate-event="is_Name">
297
-          <el-select v-model="form.med_type" placeholder=""
298
-          >
299
-            <el-option
300
-                v-for="(item,index) in registers"
301
-                :key="index"
302
-                :label="item.label"
303
-                :value="item.value">
304
-            </el-option>
305
-          </el-select>
306
-        </el-form-item>
307
-
308
-
309
-        <el-form-item label="社保类型:">
310
-          <el-select v-model="form.social_type" placeholder="请选择" style="width:100%;">
311
-            <el-option
312
-                v-for="item in medicalCare"
313
-                :key="item.value"
314
-                :label="item.label"
315
-                :value="item.value">
316
-            </el-option>
317
-          </el-select>
318
-        </el-form-item>
319
-
320
-
321
-        <el-form-item label="人员类别:">
322
-          <el-select v-model="form.psn_type" placeholder="请选择" style="width:100%;">
323
-            <el-option
324
-                v-for="item in PsnTypes"
325
-                :key="item.value"
326
-                :label="item.label"
327
-                :value="item.value">
328
-            </el-option>
329
-          </el-select>
330
-        </el-form-item>
331
-
332
-
333
-        <el-form-item label="主治医生:" prop="doctor" :validate-event="is_Name">
334
-          <el-select v-model="form.doctor" placeholder="请选择" @change="changeDoctor">
335
-            <el-option
336
-                v-for="item in doctorList"
337
-                :key="item.admin_user_id"
338
-                :label="item.user_name"
339
-                :value="item.admin_user_id">
340
-            </el-option>
341
-          </el-select>
342
-        </el-form-item>
343 171
         <el-form-item label="入院科室:" prop="department" :validate-event="is_Name">
344 172
           <el-select v-model="form.department" placeholder="请选择">
345 173
             <el-option
@@ -352,24 +180,15 @@
352 180
         </el-form-item>
353 181
 
354 182
 
355
-        <el-form-item label="入院时间:" prop="start_time" :validate-event="is_Name">
356
-          <el-date-picker v-model="form.start_time" type="datetime" format="yyyy-MM-dd HH:mm:ss"
357
-                          value-format="yyyy-MM-dd HH:mm:ss"
358
-                          placeholder="请选择入院时间">
359
-          </el-date-picker>
360 183
 
361
-        </el-form-item>
362 184
 
363 185
       </el-form>
364
-      <el-button style="float:right" @click="saveHisPatient('form')" v-loading="loadingone" type="primary">登记
365
-      </el-button>
366 186
     </div>
367 187
 
368 188
 
369
-
370 189
     <span slot="footer" class="dialog-footer">
371
-    <el-button v-loading="loadingtwo" @click="cancel('formValue')">取 消</el-button>
372
-    <el-button v-loading="loadingtwo" type="primary" @click="confirm('formValue')">确 定</el-button>
190
+    <el-button v-loading="loadingone" @click="cancel('form')">取 消</el-button>
191
+    <el-button v-loading="loadingone" type="primary" @click="confirm('form')">登记</el-button>
373 192
   </span>
374 193
   </el-dialog>
375 194
 
@@ -400,6 +219,7 @@ export default {
400 219
     return {
401 220
       visibility:false,
402 221
       isClose:false,
222
+
403 223
       PsnTypes:[
404 224
         { value: 11, label: '在职' },
405 225
         { value: 21, label: '退休' },
@@ -494,7 +314,7 @@ export default {
494 314
         value: 6,
495 315
         label: '港澳地区身份证'
496 316
       }],
497
-
317
+      loadingtwo:false,
498 318
       IDCardTypes: [{
499 319
         value: 1,
500 320
         label: '社保卡'
@@ -520,7 +340,6 @@ export default {
520 340
       },
521 341
       doctorList: [],
522 342
       departmentList: [],
523
-      show: false,
524 343
       is_Name: false,
525 344
       patient: [],
526 345
       scialType: []
@@ -528,6 +347,14 @@ export default {
528 347
   },
529 348
 
530 349
   methods: {
350
+    cancel: function (formName) {
351
+      this.$refs['form'].resetFields()
352
+      this.$emit('cancel', "");
353
+
354
+    },
355
+    confirm: function (formName) {
356
+      this.saveHisPatient(formName)
357
+    },
531 358
     check(){
532 359
       if(this.form.med_type == 0 || this.form.med_type == ''){
533 360
         this.$message.error("医疗类别不能为空")
@@ -585,6 +412,22 @@ export default {
585 412
           })
586 413
 
587 414
     }, show() {
415
+
416
+      this.form.id = 0
417
+      this.form.name = ""
418
+      this.form.sex = ""
419
+      this.form.age = ""
420
+      this.form.birthday = ""
421
+      this.form.phone = ""
422
+      this.form.id_card_no = ""
423
+      this.form.insuplc_admdvs = ""
424
+      this.form.social_type  = ""
425
+      this.form.psn_type = ""
426
+      this.form.doctor = ""
427
+
428
+
429
+
430
+
588 431
       this.visibility = true
589 432
       this.form.certificates = 1
590 433
       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) {
@@ -598,6 +441,8 @@ export default {
598 441
       this.getInitData()
599 442
       //获取当前机构有人员信息inde
600 443
       this.getAllDoctorList()
444
+    },hide(){
445
+      this.visibility = false
601 446
     },
602 447
     handleSelect(val) {
603 448
       this.form.id = val.id
@@ -826,12 +671,6 @@ export default {
826 671
         this.is_Name = true
827 672
         return
828 673
       }
829
-      //
830
-      // if (this.form.doctor == '') {
831
-      //   this.$message.error('医生不能为空')
832
-      //   this.is_Name = true
833
-      //   return
834
-      // }
835 674
 
836 675
       if (this.form.department == '') {
837 676
         this.$message.error('科室不能为空')
@@ -875,7 +714,7 @@ export default {
875 714
         return
876 715
       }
877 716
 
878
-      this.$refs[formName].validate((valid) => {
717
+      this.$refs['form'].validate((valid) => {
879 718
         if (valid) {
880 719
           if (this.form.costChecked == true) {
881 720
             this.check = 1
@@ -883,9 +722,7 @@ export default {
883 722
           if (this.form.costChecked == false) {
884 723
             this.check = 2
885 724
           }
886
-          if (this.form.id_card_no == '') {
887
-            this.show = true
888
-          }
725
+
889 726
           var nowDate = new Date()
890 727
           var nowYear = nowDate.getFullYear()
891 728
           var nowMonth = nowDate.getMonth() + 1
@@ -941,10 +778,13 @@ export default {
941 778
                 that.form.med_type = 14
942 779
                 that.form.sick_type = that.sick[0].id
943 780
                 that.form.diagnosis = that.diagnoses[0].id
781
+                if(that.$store.getters.xt_user.org_id == 10215) {
782
+                  that.form.sick_type = 421
783
+                  that.form.diagnosis = 92
784
+                }
785
+                that.$emit('confirm', "");
944 786
               }
945 787
             })
946
-
947
-
948 788
           } else {
949 789
             axios.get('http://127.0.0.1:9532/zh/api/inhopitalcheck/get', {
950 790
               params: params,
@@ -979,10 +819,13 @@ export default {
979 819
                       that.form.sick_type = that.sick[0].id
980 820
                       that.form.diagnosis = that.diagnoses[0].id
981 821
                       that.form.certificates = 1
822
+                      that.$emit('confirm', "");
982 823
                       if(that.$store.getters.xt_user.org_id == 10215) {
983 824
                         that.form.sick_type = 421
984 825
                         that.form.diagnosis = 92
985 826
                       }
827
+
828
+
986 829
                     }
987 830
                   }
988 831
                 })

+ 1 - 1
src/xt_pages/hospitalStation/components/prescriptionTable.vue View File

@@ -1,6 +1,6 @@
1 1
 <template>
2 2
   <div class="prescriptionTable">
3
-    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 99%;"
3
+    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 99.9%;"
4 4
               :row-style="{ color: '#303133' }"
5 5
               :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6 6
       <el-table-column align="center" prop="day" width="70" label="序号">

+ 6 - 6
src/xt_pages/hospitalStation/components/settlePrescriptionTable.vue View File

@@ -85,7 +85,7 @@
85 85
 
86 86
       <el-table-column align="center" prop="name" width="80" label="超限价金额">
87 87
         <template slot-scope="scope">
88
-          <div>{{ scope.row.overlmt_amt }}元</div>
88
+          <div>{{ scope.row.overlmt_amt  }}元</div>
89 89
         </template>
90 90
       </el-table-column>
91 91
 
@@ -107,7 +107,7 @@
107 107
         label="符合正常范围金额"
108 108
       >
109 109
         <template slot-scope="scope">
110
-          <div>{{ scope.row.inscp_scp_amt }}元</div>
110
+          <div>{{scope.row.inscp_scp_amt}}元</div>
111 111
         </template>
112 112
       </el-table-column>
113 113
 
@@ -223,13 +223,13 @@
223 223
 
224 224
       <el-table-column align="center" prop="name" width="80" label="全自费金额">
225 225
         <template slot-scope="scope">
226
-          <div>{{ scope.row.fulamt_ownpay_amt }}元</div>
226
+          <div>{{ scope.row.fulamt_ownpay_amt}}元</div>
227 227
         </template>
228 228
       </el-table-column>
229 229
 
230 230
       <el-table-column align="center" prop="name" width="80" label="超限价金额">
231 231
         <template slot-scope="scope">
232
-          <div>{{ scope.row.overlmt_amt }}元</div>
232
+          <div>{{ scope.row.overlmt_amt}}元</div>
233 233
         </template>
234 234
       </el-table-column>
235 235
 
@@ -240,7 +240,7 @@
240 240
         label="先行自付金额"
241 241
       >
242 242
         <template slot-scope="scope">
243
-          <div>{{ scope.row.preselfpay_amt }}元</div>
243
+          <div>{{scope.row.preselfpay_amt}}元</div>
244 244
         </template>
245 245
       </el-table-column>
246 246
 
@@ -251,7 +251,7 @@
251 251
         label="符合正常范围金额"
252 252
       >
253 253
         <template slot-scope="scope">
254
-          <div>{{ scope.row.inscp_scp_amt }}元</div>
254
+          <div>{{scope.row.inscp_scp_amt }}元</div>
255 255
         </template>
256 256
       </el-table-column>
257 257
 

File diff suppressed because it is too large
+ 853 - 789
src/xt_pages/hospitalStation/index.vue


+ 8 - 5
src/xt_pages/hospitalStation/invoicePrint.vue View File

@@ -13,8 +13,9 @@
13 13
     </template>
14 14
     <div class="app-container" style="padding-top:40px;">
15 15
         <div class='dialysisPage'>
16
-            <printOne v-if="org_id!=10215 && org_id!=0 &&org_id != 4" :paramsObj="invoiceParams"></printOne>
17
-            <printTwo v-if="org_id == 0 || org_id == 10215 ||org_id == 4" :paramsObj="invoiceParams"></printTwo>
16
+            <printOne v-if="org_id != 10215 && org_id != 10265 && org_id !=0" :paramsObj="invoiceParams"></printOne>
17
+            <printTwo v-if="org_id == 10215  || org_id == 0 " :paramsObj="invoiceParams"></printTwo>
18
+            <printThree v-if="org_id == 10265" :paramsObj="invoiceParams"></printThree>
18 19
         </div>
19 20
     </div>
20 21
   </div>
@@ -23,11 +24,13 @@
23 24
 <script>
24 25
 import printOne from './invoiceTemplate/printOne'
25 26
 import printTwo from './invoiceTemplate/printTwo'
27
+import printThree from './invoiceTemplate/printThree'
26 28
 export default {
27 29
   name: "invoicePrint",
28 30
   components: {
29 31
     printOne,
30
-    printTwo
32
+    printTwo,
33
+    printThree
31 34
   },
32 35
   props:{
33 36
     invoiceParams:Object
@@ -92,7 +95,7 @@ export default {
92 95
     paramsObj:{//深度监听,可监听到对象、数组的变化
93 96
       handler(val, oldVal){
94 97
         this.invoiceParams = val
95
-        
98
+
96 99
       },
97 100
       deep:true
98 101
     }
@@ -146,7 +149,7 @@ export default {
146 149
 }
147 150
 .actionBar{
148 151
     display: flex;
149
-    justify-content: space-between; 
152
+    justify-content: space-between;
150 153
     line-height: 24px;
151 154
     padding:0 10px;
152 155
 }

+ 318 - 0
src/xt_pages/hospitalStation/invoiceTemplate/printThree.vue View File

@@ -0,0 +1,318 @@
1
+<template>
2
+    <div id='invoice-print'>
3
+
4
+        <div style="display:flex;justify-content: space-between;">
5
+            <!-- 机构名称 -->
6
+            <div>{{ list.org_name }}</div>
7
+            <!-- 单据号 -->
8
+            <div  style="position: absolute;top:70px;left:300px">{{ list.number }}</div>
9
+            <div></div>
10
+            <div  style="position: absolute;left:560px;top:70px;">
11
+            <!-- 发票序号 -->
12
+            </div>
13
+        </div>
14
+
15
+        <div style="display:flex;justify-content: space-between;">
16
+            <!-- 姓名 -->
17
+            <div style="position: absolute;top:90px;left:120px;"> {{ paramsObj.name }}</div>
18
+            <!-- 个人电脑编号 -->
19
+            <div style="position: absolute;top:90px;left:240px;"></div>
20
+            <!-- 科室 -->
21
+            <div style="position: absolute;top:90px;left:240px;">{{'血透'}}</div>
22
+            <!-- 床号 -->
23
+            <div style="position: absolute;top:90px;left:240px;"></div>
24
+        </div>
25
+
26
+        <div style="display:flex;justify-content: space-between;">
27
+            <!-- 住院号 -->
28
+            <div style="position: absolute;top:90px;left:120px;"> {{ list.his_hospital_record.number?list.order.mdtrt_id:'' }}</div>
29
+            <!-- 入院日期 -->
30
+            <div style="position: absolute;top:90px;left:240px;">{{list.his_hospital_record.in_hosptial_time?list.his_hospital_record.in_hosptial_time.spilt(' ')[0]:''}}</div>
31
+            <!-- 出院日期 -->
32
+            <div style="position: absolute;top:90px;left:240px;">{{list.his_hospital_record.out_hosptial_time?list.his_hospital_record.out_hosptial_time.spilt(' ')[0]:''}}</div>
33
+            <!-- 住院天数 -->
34
+          <div style="position: absolute;top:90px;left:240px;">{{getDay(list.his_hospital_record.in_hosptial_time.split(' ')[0] ,list.his_hospital_record.out_hosptial_time.split(' ')[0])}}</div>
35
+        </div>
36
+
37
+        <!-- <div style="display:flex;justify-content: space-between;">
38
+            <div style="position: absolute;top:110px;left:260px;">{{ (totalPrice - list.psn_cash_money).toFixed(2) }}</div>
39
+            <div style="position: absolute;top:110px;left:440px;">{{ list.psn_cash_money  }}</div>
40
+            <div style="position: absolute;top:110px;left:580px;">门特</div>
41
+        </div> -->
42
+
43
+
44
+        <div style="display:flex;justify-content: space-between;">
45
+            <div style="position: absolute;top:160px;left:40px">西药</div>
46
+            <div style="position: absolute;top:160px;left:110px">{{ list.westernMedicineCostTotal }}</div>
47
+            <div style="position: absolute;top:160px;left:180px">检查费</div>
48
+            <div style="position: absolute;top:160px;left:260px">{{ list.checkCostTotal }}</div>
49
+            <div style="position: absolute;top:160px;left:340px">护理费</div>
50
+            <div style="position: absolute;top:160px;left:420px"></div>
51
+            <div style="position: absolute;top:160px;left:500px">麻醉费</div>
52
+            <div style="position: absolute;top:160px;left:580px"></div>
53
+        </div>
54
+        <div style="display:flex;justify-content: space-between;">
55
+            <div style="position: absolute;top:190px;left:40px">中成药费</div>
56
+            <div style="position: absolute;top:190px;left:110px"></div>
57
+            <div style="position: absolute;top:190px;left:180px">治疗费</div>
58
+            <div style="position: absolute;top:190px;left:260px">{{list.treatCostTotal}}</div>
59
+            <div style="position: absolute;top:190px;left:340px">CT核磁</div>
60
+            <div style="position: absolute;top:190px;left:420px"></div>
61
+            <div style="position: absolute;top:190px;left:500px">床位费</div>
62
+            <div style="position: absolute;top:190px;left:580px"></div>
63
+        </div>
64
+        <div style="display:flex;justify-content: space-between;">
65
+            <div style="position: absolute;top:220px;left:40px">中草药费</div>
66
+            <div style="position: absolute;top:220px;left:110px"></div>
67
+            <div style="position: absolute;top:220px;left:180px">手术费</div>
68
+            <div style="position: absolute;top:220px;left:260px">{{ list.operationCostTotal }}</div>
69
+            <div style="position: absolute;top:220px;left:340px">输血费</div>
70
+            <div style="position: absolute;top:220px;left:420px"></div>
71
+            <div style="position: absolute;top:220px;left:500px">取暖费</div>
72
+            <div style="position: absolute;top:220px;left:580px"></div>
73
+        </div>
74
+        <div style="display:flex;justify-content: space-between;">
75
+            <div style="position: absolute;top:250px;left:40px">高压氧费</div>
76
+            <div style="position: absolute;top:250px;left:110px"></div>
77
+            <div style="position: absolute;top:250px;left:180px">化验费</div>
78
+            <div style="position: absolute;top:250px;left:260px">{{ list.laboratoryCostTotal }}</div>
79
+            <div style="position: absolute;top:250px;left:340px">氧气费</div>
80
+            <div style="position: absolute;top:250px;left:420px"></div>
81
+            <div style="position: absolute;top:250px;left:500px">其他</div>
82
+            <div style="position: absolute;top:250px;left:580px">{{ list.otherCostTotal }}</div>
83
+        </div>
84
+
85
+        <div>
86
+            <span>
87
+            <span  style="position: absolute;top:280px;left:180px">
88
+                <span v-if="zhongwen.indexOf('万') > -1 && zhongwen.indexOf('拾') > -1 && zhongwen.indexOf('拾') == 1">
89
+                    {{ zhongwen.substring(0,1) }}
90
+                </span>
91
+                <span v-else>零</span>
92
+            </span>
93
+            <span  style="position: absolute;top:280px;left:220px">
94
+                <span v-if="zhongwen.indexOf('万') > -1">
95
+                    {{ zhongwen.substring(zhongwen.indexOf('万') - 1,zhongwen.indexOf('万')) }}
96
+                </span>
97
+                <span v-else>零</span>
98
+            </span>
99
+            <span  style="position: absolute;top:280px;left:260px">
100
+                <span v-if="zhongwen.indexOf('仟') > -1">
101
+                    {{ zhongwen.substring(zhongwen.indexOf('仟') - 1,zhongwen.indexOf('仟')) }}
102
+                </span>
103
+                <span v-else>零</span>
104
+            </span>
105
+            <span  style="position: absolute;top:280px;left:300px">
106
+                <span v-if="zhongwen.indexOf('佰') > -1">
107
+                    {{ zhongwen.substring(zhongwen.indexOf('佰') - 1,zhongwen.indexOf('佰')) }}
108
+                </span>
109
+                <span v-else>零</span>
110
+            </span>
111
+            <span style="position: absolute;top:280px;left:340px">
112
+                <span v-if="zhongwen.indexOf('拾') > -1">
113
+                    {{ zhongwen.substring(zhongwen.indexOf('拾') - 1,zhongwen.indexOf('拾')) }}
114
+                </span>
115
+                <span v-else>零</span>
116
+            </span>
117
+            <span  style="position: absolute;top:280px;left:380px">
118
+                <span v-if="zhongwen.indexOf('元') > -1 && zhongwen.substring(zhongwen.indexOf('元') - 1,zhongwen.indexOf('元')) != '拾'">
119
+                    {{ zhongwen.substring(zhongwen.indexOf('元') - 1,zhongwen.indexOf('元')) }}
120
+                </span>
121
+                <span v-else>零</span>
122
+            </span>
123
+            <span  style="position: absolute;top:280px;left:420px">
124
+                <span v-if="zhongwen.indexOf('角') > -1">
125
+                    {{ zhongwen.substring(zhongwen.indexOf('角') - 1,zhongwen.indexOf('角')) }}
126
+                </span>
127
+                <span v-else>零</span>
128
+            </span>
129
+            <span  style="position: absolute;top:280px;left:460px">
130
+                <span v-if="zhongwen.indexOf('分') > -1">
131
+                    {{ zhongwen.substring(zhongwen.indexOf('分') - 1,zhongwen.indexOf('分')) }}
132
+                </span>
133
+                <span v-else>零</span>
134
+            </span>
135
+            </span>
136
+            <span style="position: absolute;top:280px;left:540px">{{ totalPrice }}</span>
137
+        </div>
138
+
139
+
140
+        <div style="position: absolute;top:310px;left:320px">
141
+            <!-- 个人账户支付 -->
142
+          {{list.order.acct_pay?list.order.acct_pay:''}}
143
+        </div>
144
+        <div style="position: absolute;top:310px;left:380px">
145
+            <!-- 统筹支付 -->
146
+          {{list.order.hifp_pay?list.order.hifp_pay:''}}
147
+        </div>
148
+        <div style="position: absolute;top:310px;left:500px">
149
+          {{list.order.psn_cash_pay?list.order.psn_cash_pay:''}}
150
+          <!-- 现金支付 -->
151
+        </div>
152
+        <div style="position: absolute;top:340px;left:320px">
153
+          {{list.order.cvlserv_pay?list.order.cvlserv_pay:''}}
154
+          <!-- 公务员补助 -->
155
+        </div>
156
+        <div style="position: absolute;top:340px;left:380px">
157
+          {{list.order.maf_pay?list.order.maf_pay:''}}
158
+          <!-- 医疗救助 -->
159
+        </div>
160
+        <div style="position: absolute;top:340px;left:500px">
161
+            <!-- 大病 -->
162
+          {{list.order.hifmi_pay?list.order.hifmi_pay:''}}
163
+
164
+
165
+        </div>
166
+        <div style="position: absolute;top:340px;left:560px">
167
+            <!-- 其他基金支付 -->
168
+          {{list.order.oth_pay?list.order.oth_pay:''}}
169
+
170
+        </div>
171
+        <div style="position: absolute;top:370px;left:320px">
172
+            <!-- 预交款合计 -->
173
+
174
+        </div>
175
+        <div style="position: absolute;top:370px;left:380px">
176
+            <!-- 补交款 -->
177
+        </div>
178
+        <div style="position: absolute;top:370px;left:500px">
179
+            <!-- 应退款 -->
180
+        </div>
181
+        <div>
182
+            <div style="position: absolute;top:400px;left:40px">
183
+                <!-- 开票日期 -->
184
+              {{printDate}}
185
+
186
+            </div>
187
+            <div style="position: absolute;top:400px;left:280px">
188
+                <!-- 结算日期: -->
189
+              {{list.order.setl_time?list.order.setl_time.split(' ')[0]:''}}
190
+            </div>
191
+            <div style="position: absolute;top:400px;left:580px">
192
+                <!-- 经手人: -->
193
+              {{list.admin_user_name}}
194
+            </div>
195
+        </div>
196
+    </div>
197
+</template>
198
+
199
+<script>
200
+import { getInvoice } from '@/api/project/project'
201
+export default {
202
+    props:{
203
+        paramsObj:Object
204
+    },
205
+    data(){
206
+        return{
207
+            list:{},
208
+            printDate:'',
209
+            zhongwen:'',
210
+            totalPrice:0.0,
211
+            org_id:'',
212
+            org_name:''
213
+        }
214
+    },
215
+    created(){
216
+        console.log('paramsObj',this.paramsObj)
217
+        let params = {
218
+            order_id: this.paramsObj.order_id,
219
+            patient_id: this.paramsObj.patient_id,
220
+        }
221
+        this.getInvoice(params)
222
+        // var data = new Date();
223
+        // var month =data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
224
+        // var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
225
+        // this.printDate = data.getFullYear() + "-" + month + "-" + date;
226
+        // this.smalltoBIG(982732.21)
227
+        this.org_id = this.$store.getters.xt_user.org_id
228
+        this.org_name = this.$store.getters.xt_user.org.org_name
229
+    },
230
+    methods:{
231
+      getDay(dateString1,dateString2){
232
+        var  startDate = Date.parse(dateString1);
233
+        var  endDate = Date.parse(dateString2);
234
+        if (startDate>endDate){
235
+          return 0;
236
+        }
237
+        if (startDate==endDate){
238
+          return 1;
239
+        }
240
+        var days=(endDate - startDate)/(1*24*60*60*1000);
241
+        return  days;
242
+
243
+      },
244
+        getInvoice(params){
245
+            getInvoice(params).then((res) => {
246
+                console.log('res',res)
247
+                this.list = res.data.data
248
+                this.totalPrice = this.list.westernMedicineCostTotal + this.list.checkCostTotal + this.list.treatCostTotal + this.list.bedCostTotal + this.list.chineseTraditionalMedicineCostTotal +
249
+                                    this.list.laboratoryCostTotal + this.list.operationCostTotal + this.list.otherCostTotal + this.list.materialCostTotal
250
+                this.smalltoBIG(this.totalPrice)
251
+                // var data = new Date(res.data.data.date * 1000);
252
+                var data = new Date(this.paramsObj.setl_time);
253
+                var month =data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
254
+                var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
255
+                this.printDate = data.getFullYear() + "-" + month + "-" + date;
256
+            })
257
+        },
258
+        smalltoBIG(n) {
259
+            // let fraction = ['角', '分'];
260
+            // let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
261
+            // let unit = [['元.', '万,', '亿,'], ["元",'拾', '佰', '仟']];
262
+            // let head = price < 0 ? '欠' : '';
263
+            // price = Math.abs(price);
264
+            // let upper = '';
265
+            // for (let i = 0; i < fraction.length; i++) {
266
+            // upper += (digit[Math.floor(price * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
267
+            // }
268
+            // upper = upper || '整';
269
+            // price = Math.floor(price);
270
+            // for (let i = 0; i < unit[0].length && price > 0; i++) {
271
+            // let p = '';
272
+            // for (let j = 0; j < unit[1].length && price > 0; j++) {
273
+            //     p = digit[price % 10] + unit[1][j] + p;
274
+            //     price = Math.floor(price / 10);
275
+            // }
276
+            // upper = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + upper;
277
+            // }
278
+            // this.zhongwen = head + upper.replace(/(零.)*零圆/, '圆').replace(/(零.)+/g, '零').replace(/^整$/, '零圆整')
279
+            // console.log('6666',head + upper.replace(/(零.)*零圆/, '圆').replace(/(零.)+/g, '零').replace(/^整$/, '零圆整'))
280
+            if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)){
281
+                return "数据非法";  //判断数据是否大于0
282
+            }
283
+
284
+            var unit = "仟佰拾亿仟佰拾万仟佰拾元角分", str = "";
285
+            n += "00";
286
+
287
+            var indexpoint = n.indexOf('.');  // 如果是小数,截取小数点前面的位数
288
+
289
+            if (indexpoint >= 0){
290
+
291
+                n = n.substring(0, indexpoint) + n.substr(indexpoint+1, 2);   // 若为小数,截取需要使用的unit单位
292
+            }
293
+
294
+            unit = unit.substr(unit.length - n.length);  // 若为整数,截取需要使用的unit单位
295
+            for (var i=0; i < n.length; i++){
296
+                str += "零壹贰叁肆伍陆柒捌玖".charAt(n.charAt(i)) + unit.charAt(i);  //遍历转化为大写的数字
297
+            }
298
+
299
+            this.zhongwen =  str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
300
+            console.log(this.zhongwen)
301
+        },
302
+
303
+    },
304
+    watch:{
305
+        paramsObj:{//深度监听,可监听到对象、数组的变化
306
+            handler(val, oldVal){
307
+                let params = {
308
+                    order_id: val.order_id,
309
+                    patient_id: val.patient_id,
310
+                }
311
+                this.getInvoice(params)
312
+
313
+            },
314
+            deep:true
315
+        }
316
+    }
317
+}
318
+</script>

+ 28 - 10
src/xt_pages/hospitalStation/invoiceTemplate/printTwo.vue View File

@@ -6,14 +6,14 @@
6 6
         </div>
7 7
         <div style="display:flex;justify-content: space-between;">
8 8
             <!-- <div>{{ list.department_name }}</div> -->
9
-            <div  style="position: absolute;top:50px;left:260px">{{ list.his_hospital_record.id_card_no?list.order.certno:''}}</div>
9
+            <div  style="position: absolute;top:50px;left:260px">{{id_card_no?id_card_no:list.order.certno}}</div>
10 10
             <div></div>
11 11
         </div>
12 12
         <div style="display:flex;justify-content: space-between;">
13 13
             <!-- <div>{{ list.department_name }}</div> -->
14 14
             <div  style="position: absolute;top:70px;left:90px">门诊</div>
15 15
             <div></div>
16
-            <div  style="position: absolute;top:70px;left:240px">{{ list.his_hospital_record.number?list.order.mdtrt_id:''}}</div>
16
+            <div  style="position: absolute;top:70px;left:240px">{{ number?number:list.order.mdtrt_id}}</div>
17 17
             <div  style="position: absolute;left:470px;top:70px;">
18 18
                 <span>{{  paramsObj.setl_time ? paramsObj.setl_time.split(' ')[0].slice(0,4) : getTime(list.date, '{y}-{m}-{d}').slice(0,4) }}</span>
19 19
             </div>
@@ -33,10 +33,11 @@
33 33
         </div>
34 34
         <div style="display:flex;justify-content: space-between;">
35 35
             <!-- <div>{{ paramsObj.gend == 1 ? '男' : '女' }}</div> -->
36
-            <div v-if="paramsObj.gend == 1" style="position: absolute;top:110px;left:100px;">√</div>
36
+            <div v-if=" gend == 1" style="position: absolute;top:110px;left:100px;">√</div>
37 37
             <div v-else style="position: absolute;top:110px;left:140px;">√</div>
38
-            <div style="position: absolute;top:110px;left:260px;">{{ list.number.length <= 13 ? (totalPrice - list.psn_cash_money).toFixed(2) : '0.00' }}</div>
39
-            <div style="position: absolute;top:110px;left:420px;">{{ list.number.length <= 13 ? list.psn_cash_money.toFixed(2) : (totalPrice - list.psn_cash_money).toFixed(2) }}</div>
38
+
39
+            <div style="position: absolute;top:110px;left:260px;">{{ number.length <= 13 ? (totalPrice - list.order.psn_cash_pay).toFixed(2) : '0.00' }}</div>
40
+            <div style="position: absolute;top:110px;left:420px;">{{ number.length <= 13 ? list.order.psn_cash_pay.toFixed(2) : (totalPrice - list.psn_cash_money).toFixed(2) }}</div>
40 41
             <div style="position: absolute;top:110px;left:540px;">现金</div>
41 42
         </div>
42 43
         <div style="display:flex;justify-content: space-between;">
@@ -73,8 +74,10 @@
73 74
             <div style="position: absolute;top:210px;left:50px"></div>
74 75
             <div style="position: absolute;top:210px;left:130px"></div>
75 76
             <div style="position: absolute;top:210px;left:180px"></div>
76
-            <div style="position: absolute;top:210px;left:260px">{{ list.psn_cash_money ? list.psn_cash_money.toFixed(2) : '' }}</div>
77
-            <div style="position: absolute;top:210px;left:340px"></div>
77
+            <div style="position: absolute;top:210px;left:260px" v-if="balance_accounts_type != 2">{{ list.psn_cash_money ? list.psn_cash_money.toFixed(2) : '' }}</div>
78
+          <div style="position: absolute;top:210px;left:260px" v-else>{{ list.order.medfee_sumamt ? list.order.medfee_sumamt : '' }}</div>
79
+
80
+          <div style="position: absolute;top:210px;left:340px"></div>
78 81
             <div style="position: absolute;top:210px;left:420px"></div>
79 82
             <div style="position: absolute;top:210px;left:480px"></div>
80 83
             <div style="position: absolute;top:210px;left:540px"></div>
@@ -157,7 +160,12 @@ export default {
157 160
             org_id:'',
158 161
             org_name:'',
159 162
             in_hosptial_time:'',
160
-            out_hosptial_time:''
163
+            out_hosptial_time:'',
164
+            id_card_no:'',
165
+           number:'',
166
+          balance_accounts_type:"",
167
+          gend:"",
168
+
161 169
         }
162 170
     },
163 171
     created(){
@@ -188,8 +196,18 @@ export default {
188 196
                 var month =data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
189 197
                 var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
190 198
                 this.printDate = data.getFullYear() + "-" + month + "-" + date;
191
-                this.in_hosptial_time = this.list.his_hospital_record.in_hosptial_time.split(' ')[0]
192
-                this.out_hosptial_time = this.list.his_hospital_record.out_hosptial_time.split(' ')[0]
199
+                if(this.list.his.id > 0){
200
+                  this.in_hosptial_time = this.getTime()
201
+                  this.out_hosptial_time = this.list.order.setl_time.split(' ')[0]
202
+                }else{
203
+                  this.in_hosptial_time = this.list.his_hospital_record.in_hosptial_time.split(' ')[0]
204
+                  this.out_hosptial_time = this.list.his_hospital_record.out_hosptial_time.split(' ')[0]
205
+                }
206
+
207
+              this.id_card_no = this.list.his_hospital_record.id_card_no
208
+              this.number = this.list.his_hospital_record.number
209
+              this.balance_accounts_type = this.list.his_hospital_record.balance_accounts_type
210
+              this.gend= this.list.his_hospital_record.gend
193 211
             })
194 212
         },
195 213
         smalltoBIG(n) {

+ 93 - 104
src/xt_pages/hospitalStation/outpatientChargesManagement.vue View File

@@ -91,10 +91,13 @@
91 91
         <div class="mainCell fixedCell" style="margin-bottom:10px;">
92 92
 
93 93
           <div>
94
+            <el-button  size="small"
95
+                       @click="open(1)"
96
+                       type="primary">入院登记
97
+            </el-button>
94 98
 
95 99
             <el-button v-loading="loadingone" size="small"
96 100
                        v-if="(this.activeName == 'third' &&this.hisPatientInfo.balance_accounts_type != 2 && this.hisPatientInfo.id > 0 && this.hisPatientInfo.in_hospital_status == 1 && this.hisPatientInfo.out_hospital_status == 0)"
97
-
98 101
                        @click="open(2)"
99 102
                        type="primary">出院
100 103
             </el-button>
@@ -125,6 +128,11 @@
125 128
                        type="primary">收费
126 129
             </el-button>
127 130
 
131
+<!--            <el-button v-loading="loadingtwo"-->
132
+<!--                       size="small"-->
133
+<!--                       @click="open(3)"-->
134
+<!--                       type="primary">收费-->
135
+<!--            </el-button>-->
128 136
             <el-button size="small" @click="open(4)" type="primary"
129 137
                        v-if="this.activeName == 'third' &&this.hisPatientInfo.id > 0 && this.order.id > 0 &&  this.order.order_status == 2">
130 138
               退费
@@ -217,6 +225,7 @@
217 225
                        :addtions_charge="addtions_charge"></additionalCharges>
218 226
 
219 227
     <charge-dialog ref='charge' v-on:confirm="chargeConfirm" v-on:cancel="chargeCancel"></charge-dialog>
228
+    <hospital-register-dialog  ref='hrd' v-on:confirm="hospitalRegisterConfirm" v-on:cancel="hospitalRegisterCancel"></hospital-register-dialog>
220 229
 
221 230
     <el-dialog
222 231
         class="centerDialog"
@@ -300,10 +309,12 @@ import RegisterDialog9504 from './components/registerDialog9504'
300 309
 import ChargePrescriptionTable from './components/ChargePrescriptionTable'
301 310
 import invoicePrint from './invoicePrint'
302 311
 import SettlePrescriptionTable from './components/settlePrescriptionTable'
312
+import HospitalRegisterDialog from './components/hospitalRegisterDialog'
303 313
 
304 314
 const moment = require('moment')
305 315
 export default {
306 316
   components: {
317
+    HospitalRegisterDialog,
307 318
     SettlePrescriptionTable,
308 319
     ChargePrescriptionTable,
309 320
     RegisterDialog9504,
@@ -575,6 +586,13 @@ export default {
575 586
         }
576 587
       })
577 588
 
589
+    },s(){
590
+      this.$refs.hrd.hide()
591
+      this.getPatientList()
592
+    },hospitalRegisterCancel(){
593
+      this.$refs.hrd.hide()
594
+
595
+
578 596
     },
579 597
     chargeConfirm(form) {
580 598
       form['in_hospital_id'] = this.hisPatientInfo.id
@@ -727,10 +745,10 @@ export default {
727 745
                 spec: spec,
728 746
                 det_item_fee_sumamt: prescription.advices[b].order_info.det_item_fee_sumamt,
729 747
                 name_id: prescription.advices[b].drug.manufacturer,
730
-                fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt,
731
-                overlmt_amt: prescription.advices[b].order_info.overlmt_amt,
732
-                preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt,
733
-                inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt
748
+                fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt * prescription.advices[b].prescribing_number,
749
+                overlmt_amt: prescription.advices[b].order_info.overlmt_amt* prescription.advices[b].prescribing_number,
750
+                preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt* prescription.advices[b].prescribing_number,
751
+                inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt* prescription.advices[b].prescribing_number
734 752
 
735 753
               }
736 754
               tempAdvice.push(obj)
@@ -751,11 +769,11 @@ export default {
751 769
                 unit: prescription.project[b].unit,
752 770
 
753 771
                 type: prescription.project[b].type,
754
-                det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt,
755
-                fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt,
756
-                overlmt_amt: prescription.project[b].order_info.overlmt_amt,
757
-                preselfpay_amt: prescription.project[b].order_info.preselfpay_amt,
758
-                inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt
772
+                det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt* prescription.advices[b].prescribing_number,
773
+                fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt* prescription.advices[b].prescribing_number,
774
+                overlmt_amt: prescription.project[b].order_info.overlmt_amt * prescription.advices[b].prescribing_number,
775
+                preselfpay_amt: prescription.project[b].order_info.preselfpay_amt * prescription.advices[b].prescribing_number,
776
+                inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt * prescription.advices[b].prescribing_number
759 777
 
760 778
               }
761 779
               if (prescription.project[b].type == 2) {
@@ -1058,6 +1076,7 @@ export default {
1058 1076
 
1059 1077
     },
1060 1078
     searchAction() {
1079
+      console.log(this.all_table_data)
1061 1080
       if (this.search_input.length == 0) {
1062 1081
         switch (this.radio) {
1063 1082
           case 1:
@@ -1268,6 +1287,9 @@ export default {
1268 1287
       return jsonData.map(v => filterVal.map(j => v[j]))
1269 1288
     },
1270 1289
     open(index) {
1290
+      if (index == 1){
1291
+        this.$refs.hrd.show()
1292
+      }
1271 1293
       if (index == 40) {
1272 1294
         var form = {}
1273 1295
 
@@ -1397,6 +1419,7 @@ export default {
1397 1419
           type: 'warning'
1398 1420
         }).then(() => {
1399 1421
           this.dialogVisible = true
1422
+          this.out_hospital_time = moment(new Date()).add('year',0).format("YYYY-MM-DD HH:mm:ss")
1400 1423
         }).catch(() => {
1401 1424
 
1402 1425
         })
@@ -1504,7 +1527,8 @@ export default {
1504 1527
       } else if (index == 5) {
1505 1528
         this.statementVisible = true
1506 1529
         let obj = {
1507
-          order_id: this.order.id
1530
+          order_id: this.order.id,
1531
+          balance_accounts_type:this.hisPatientInfo.balance_accounts_type
1508 1532
         }
1509 1533
         this.orderObj = obj
1510 1534
         // this.$refs.print.getInfo(this.order.id)
@@ -2245,70 +2269,35 @@ export default {
2245 2269
             response.data.data.list_two = []
2246 2270
           }
2247 2271
           this.patientTableData = []
2248
-          this.hisPatientDatas = []
2249 2272
           this.all_table_data = []
2273
+          this.hisPatientDatas = []
2274
+
2250 2275
           let one_count = 0
2251 2276
           let two_count = 0
2252 2277
           let three_count = 0
2253
-
2254
-          if (this.activeName == 'first') { //日结
2255
-
2256
-            for (let i = 0; i < response.data.data.list.length; i++) {
2257
-              this.all_table_data.push(response.data.data.list[i])
2258
-              if (response.data.data.list[i].order.order_status == 0 || response.data.data.list[i].order.order_status == 1 || response.data.data.list[i].order.order_status == 3) {
2259
-                one_count = one_count + 1
2260
-              }
2261
-
2262
-            }
2263
-
2264
-          } else { //月结
2265
-
2266
-            for (let i = 0; i < response.data.data.list_two.length; i++) {
2267
-              this.hisPatientDatas.push(response.data.data.list_two[i])
2268
-              if (response.data.data.list_two[i].order.order_status == 0 || response.data.data.list_two[i].order.order_status == 1) {
2269
-                one_count = one_count + 1
2270
-              }
2271
-
2272
-              // if (response.data.data.list_two[i].his_patient.order.order_status == 2) {
2273
-              //   two_count = two_count + 1
2274
-              // }
2275
-              //
2276
-              // if (response.data.data.list_two[i].his_patient.order.order_status == 3) {
2277
-              //   three_count = three_count + 1
2278
-              // }
2278
+          for (let i = 0; i < response.data.data.list.length; i++) {
2279
+            this.all_table_data.push(response.data.data.list[i])
2280
+            if (response.data.data.list[i].order.order_status == 0 || response.data.data.list[i].order.order_status == 1 || response.data.data.list[i].order.order_status == 3) {
2281
+              one_count = one_count + 1
2279 2282
             }
2280 2283
 
2281 2284
           }
2282 2285
 
2286
+          this.hisPatientDatas = response.data.data.list_two
2283 2287
           this.cal_one = one_count
2284 2288
           this.cal_two = response.data.data.charge_list.length
2285 2289
           // this.all_charge_table_data = response.data.data.charge_list
2286
-          // this.cal_three = three_count;
2287
-
2288
-          switch (temp_id) {
2290
+          this.current_index = 0
2289 2291
 
2292
+          switch (this.radio) {
2290 2293
             case 1:
2291 2294
               this.patientTableData = []
2292
-              if (this.activeName == 'first') {
2293
-
2294
-                for (let i = 0; i < this.all_table_data.length; i++) {
2295
-                  if (this.all_table_data[i].order.order_status == 0 || this.all_table_data[i].order.order_status == 1) {
2296
-                    this.patientTableData.push(this.all_table_data[i])
2297
-                  }
2298
-
2299
-                }
2300
-
2301
-              } else {
2302
-                for (let i = 0; i < this.hisPatientDatas.length; i++) {
2303
-                  if (this.hisPatientDatas[i].order.order_status == 0 || this.hisPatientDatas[i].order.order_status == 1) {
2304
-                    this.patientTableData.push(this.hisPatientDatas[i])
2305
-                  }
2306
-
2295
+              for (let i = 0; i < this.all_table_data.length; i++) {
2296
+                if (this.all_table_data[i].order.order_status == 0 || this.all_table_data[i].order.order_status == 1 || this.all_table_data[i].order.order_status == 3) {
2297
+                  this.patientTableData.push(this.all_table_data[i])
2307 2298
                 }
2308
-
2309 2299
               }
2310 2300
 
2311
-              this.current_index = 0
2312 2301
               this.$refs.tab.setCurrentRow(this.patientTableData[0])
2313 2302
               this.getPatientInformation(this.patientTableData[0].patient_id, this.patientTableData[0].order.number, this.patientTableData[0].id)
2314 2303
 
@@ -2322,50 +2311,28 @@ export default {
2322 2311
                   number: response.data.data.charge_list[i].number,
2323 2312
                   his_patient_id: response.data.data.charge_list[i].his_patient.id,
2324 2313
                   his_number: response.data.data.charge_list[i].mdtrt_id
2325
-
2326 2314
                 }
2327 2315
                 this.chargePatientTableData.push(obj)
2328 2316
               }
2329 2317
               this.all_charge_table_data = this.chargePatientTableData
2330 2318
 
2331
-              this.current_index = 0
2332 2319
               this.$refs.tab.setCurrentRow(this.chargePatientTableData[0])
2333 2320
               this.getPatientInformation(this.chargePatientTableData[0].id, this.chargePatientTableData[0].number, this.chargePatientTableData[0].his_patient_id)
2334
-
2335 2321
               break
2336 2322
               // case 3:
2337 2323
               //   this.patientTableData = [];
2338 2324
               //
2339
-              //   if (this.activeName == 'first') {
2340
-              //
2341
-              //     for (let i = 0; i < this.all_table_data.length; i++) {
2342
-              //
2343
-              //       if (this.all_table_data[i].his_patient.order.order_status == 3) {
2344
-              //         this.patientTableData.push(this.all_table_data[i])
2345
-              //       }
2346
-              //
2347
-              //     }
2348
-              //   } else {
2349
-              //
2350
-              //     for (let i = 0; i < this.hisPatientDatas.length; i++) {
2351
-              //
2352
-              //       if (this.hisPatientDatas[i].his_patient.order.order_status == 3) {
2353
-              //         this.patientTableData.push(this.hisPatientDatas[i])
2354
-              //       }
2325
+              //   for (let i = 0; i < this.all_table_data.length; i++) {
2355 2326
               //
2327
+              //     if (this.all_table_data[i].his_patient.order.order_status == 3) {
2328
+              //       this.patientTableData.push(this.all_table_data[i])
2356 2329
               //     }
2357 2330
               //
2358 2331
               //   }
2359 2332
               //   break;
2360 2333
               // case 4:
2361 2334
               //   this.patientTableData = [];
2362
-              //   if (this.activeName == 'first') {
2363
-              //
2364
-              //     this.patientTableData = this.all_table_data
2365
-              //   } else {
2366
-              //
2367
-              //     this.patientTableData = this.hisPatientDatas
2368
-              //   }
2335
+              //   this.patientTableData = this.all_table_data;
2369 2336
               //   break
2370 2337
 
2371 2338
           }
@@ -2777,6 +2744,11 @@ export default {
2777 2744
       for (let i = 0; i < drug_ids.length; i++) {
2778 2745
         let obj = {}
2779 2746
         let count = 0
2747
+        let fulamt_ownpay_amt = 0
2748
+        let overlmt_amt = 0
2749
+        let inscp_scp_amt = 0
2750
+        let preselfpay_amt = 0
2751
+        let day = 0
2780 2752
         for (let a = 0; a < drug_month_prescriptions.advices.length; a++) {
2781 2753
           if (drug_ids[i].price == drug_month_prescriptions.advices[a].price && drug_ids[i].id == drug_month_prescriptions.advices[a].drug_id) {
2782 2754
 
@@ -2784,7 +2756,6 @@ export default {
2784 2756
             obj['single_dose'] = drug_month_prescriptions.advices[a].single_dose
2785 2757
             obj['delivery_way'] = drug_month_prescriptions.advices[a].delivery_way
2786 2758
             obj['execution_frequency'] = drug_month_prescriptions.advices[a].execution_frequency
2787
-            obj['day'] = drug_month_prescriptions.advices[a].day
2788 2759
             // obj['prescribing_number'] =  obj['prescribing_number']  + drug_month_prescriptions.advices[a].prescribing_number
2789 2760
             obj['prescribing_number_unit'] = drug_month_prescriptions.advices[a].prescribing_number_unit
2790 2761
             obj['medical_insurance_number'] = drug_month_prescriptions.advices[a].drug.medical_insurance_number
@@ -2794,23 +2765,35 @@ export default {
2794 2765
 
2795 2766
 
2796 2767
             obj['code'] = drug_month_prescriptions.advices[a].drug.medical_insurance_number
2797
-            obj['fulamt_ownpay_amt'] = drug_month_prescriptions.advices[a].order_info.fulamt_ownpay_amt
2798
-            obj['overlmt_amt'] = drug_month_prescriptions.advices[a].order_info.overlmt_amt
2799
-            obj['inscp_scp_amt'] = drug_month_prescriptions.advices[a].order_info.inscp_scp_amt
2800
-            obj['preselfpay_amt'] = drug_month_prescriptions.advices[a].order_info.preselfpay_amt
2801 2768
 
2802 2769
 
2803 2770
             count = count + drug_month_prescriptions.advices[a].prescribing_number
2771
+            fulamt_ownpay_amt = fulamt_ownpay_amt + drug_month_prescriptions.advices[a].order_info.fulamt_ownpay_amt
2772
+            overlmt_amt = overlmt_amt + drug_month_prescriptions.advices[a].order_info.overlmt_amt
2773
+            inscp_scp_amt = inscp_scp_amt + drug_month_prescriptions.advices[a].order_info.inscp_scp_amt
2774
+            preselfpay_amt = preselfpay_amt + drug_month_prescriptions.advices[a].order_info.preselfpay_amt
2775
+            // day =day + parseNumber(drug_month_prescriptions.advices[a].day)
2776
+
2804 2777
 
2805 2778
           }
2806 2779
         }
2807 2780
         obj['prescribing_number'] = count
2781
+        obj['day'] = day
2782
+        obj['fulamt_ownpay_amt'] = fulamt_ownpay_amt.toFixed(2)
2783
+        obj['overlmt_amt'] = overlmt_amt.toFixed(2)
2784
+        obj['inscp_scp_amt'] = inscp_scp_amt.toFixed(2)
2785
+        obj['preselfpay_amt'] =preselfpay_amt.toFixed(2)
2786
+
2808 2787
         drugs.push(obj)
2809 2788
       }
2810 2789
 
2811 2790
       for (let i = 0; i < project_ids.length; i++) {
2812 2791
         let obj = {}
2813 2792
         let count = 0
2793
+        let fulamt_ownpay_amt = 0
2794
+        let overlmt_amt = 0
2795
+        let inscp_scp_amt = 0
2796
+        let preselfpay_amt = 0
2814 2797
         for (let a = 0; a < project_month_prescriptions.project.length; a++) {
2815 2798
           if (project_ids[i].price == project_month_prescriptions.project[a].price && project_ids[i].id == project_month_prescriptions.project[a].project_id) {
2816 2799
 
@@ -2828,10 +2811,10 @@ export default {
2828 2811
 
2829 2812
             }
2830 2813
 
2831
-            obj['fulamt_ownpay_amt'] = project_month_prescriptions.project[a].order_info.fulamt_ownpay_amt
2832
-            obj['overlmt_amt'] = project_month_prescriptions.project[a].order_info.overlmt_amt
2833
-            obj['inscp_scp_amt'] = project_month_prescriptions.project[a].order_info.inscp_scp_amt
2834
-            obj['preselfpay_amt'] = project_month_prescriptions.project[a].order_info.preselfpay_amt
2814
+            // obj['fulamt_ownpay_amt'] = project_month_prescriptions.project[a].order_info.fulamt_ownpay_amt
2815
+            // obj['overlmt_amt'] = project_month_prescriptions.project[a].order_info.overlmt_amt
2816
+            // obj['inscp_scp_amt'] = project_month_prescriptions.project[a].order_info.inscp_scp_amt
2817
+            // obj['preselfpay_amt'] = project_month_prescriptions.project[a].order_info.preselfpay_amt
2835 2818
 
2836 2819
 
2837 2820
             // obj['project_name'] = project_month_prescriptions.project[a].project.project_name;
@@ -2846,12 +2829,18 @@ export default {
2846 2829
             count = count + parseFloat(project_month_prescriptions.project[a].count)
2847 2830
             // price = price + project_month_prescriptions.project[a].price
2848 2831
             obj['price'] = parseFloat(project_month_prescriptions.project[a].price)
2849
-
2850
-
2832
+            fulamt_ownpay_amt = fulamt_ownpay_amt +project_month_prescriptions.project[a].order_info.fulamt_ownpay_amt
2833
+            overlmt_amt = overlmt_amt +project_month_prescriptions.project[a].order_info.overlmt_amt
2834
+            inscp_scp_amt = inscp_scp_amt + project_month_prescriptions.project[a].order_info.inscp_scp_amt
2835
+            preselfpay_amt = preselfpay_amt + project_month_prescriptions.project[a].order_info.preselfpay_amt
2851 2836
 
2852 2837
 
2853 2838
           }
2854 2839
         }
2840
+        obj['fulamt_ownpay_amt'] = fulamt_ownpay_amt.toFixed(2)
2841
+        obj['overlmt_amt'] = overlmt_amt.toFixed(2)
2842
+        obj['inscp_scp_amt'] = inscp_scp_amt.toFixed(2)
2843
+        obj['preselfpay_amt'] = preselfpay_amt.toFixed(2)
2855 2844
         obj['total'] = count
2856 2845
         projects.push(obj)
2857 2846
       }
@@ -3023,10 +3012,10 @@ export default {
3023 3012
                 spec: spec,
3024 3013
                 det_item_fee_sumamt: prescription.advices[b].order_info.det_item_fee_sumamt,
3025 3014
                 name_id: prescription.advices[b].drug.manufacturer,
3026
-                fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt,
3027
-                overlmt_amt: prescription.advices[b].order_info.overlmt_amt,
3028
-                preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt,
3029
-                inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt
3015
+                fulamt_ownpay_amt: prescription.advices[b].order_info.fulamt_ownpay_amt * prescription.advices[b].prescribing_number,
3016
+                overlmt_amt: prescription.advices[b].order_info.overlmt_amt * prescription.advices[b].prescribing_number,
3017
+                preselfpay_amt: prescription.advices[b].order_info.preselfpay_amt * prescription.advices[b].prescribing_number,
3018
+                inscp_scp_amt: prescription.advices[b].order_info.inscp_scp_amt * prescription.advices[b].prescribing_number
3030 3019
 
3031 3020
 
3032 3021
 
@@ -3050,11 +3039,11 @@ export default {
3050 3039
                 // medical_code: prescription.project[b].project.medical_code,
3051 3040
                 unit: prescription.project[b].project.unit,
3052 3041
                 type: prescription.project[b].type,
3053
-                det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt,
3054
-                fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt,
3055
-                overlmt_amt: prescription.project[b].order_info.overlmt_amt,
3056
-                preselfpay_amt: prescription.project[b].order_info.preselfpay_amt,
3057
-                inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt
3042
+                det_item_fee_sumamt: prescription.project[b].order_info.det_item_fee_sumamt * prescription.project[b].count,
3043
+                fulamt_ownpay_amt: prescription.project[b].order_info.fulamt_ownpay_amt * prescription.project[b].count,
3044
+                overlmt_amt: prescription.project[b].order_info.overlmt_amt * prescription.project[b].count,
3045
+                preselfpay_amt: prescription.project[b].order_info.preselfpay_amt * prescription.project[b].count,
3046
+                inscp_scp_amt: prescription.project[b].order_info.inscp_scp_amt * prescription.project[b].count
3058 3047
 
3059 3048
               }
3060 3049
 

+ 1 - 1
src/xt_pages/hospitalStation/settlementPrint.vue View File

@@ -24,7 +24,7 @@
24 24
 import { jsGetAge, uParseTime } from "@/utils/tools";
25 25
 // import LabelBox from "./printItem/LabelBox";
26 26
 import print from "print-js";
27
-import printOne from "./settlementTemplate/printOne"
27
+import printOne from "./settlementTemplate/hospitalPrintOne"
28 28
 export default {
29 29
   name: "dialysisPrintOrder",
30 30
   components: {

File diff suppressed because it is too large
+ 1138 - 0
src/xt_pages/hospitalStation/settlementTemplate/hospitalSettlePrint.vue


+ 0 - 461
src/xt_pages/hospitalStation/settlementTemplate/printOne.vue View File

@@ -1,461 +0,0 @@
1
-<template>
2
-    <div id="prescription-print" class="print_page_main_content">
3
-        <div class="title">医疗保障基金结算清单</div>
4
-        <div style="text-align:right;">清单流水号 <div style="width:120px;" class="under_line"></div></div>
5
-        <div class="row">
6
-            <div>定点医疗机构名称<div style="width:120px;" class="under_line"></div></div>
7
-            <div>定点医疗机构代码<div style="width:120px;" class="under_line"></div></div>
8
-            <div>医保结算等级<div style="width:120px;" class="under_line"></div></div>
9
-        </div>
10
-        <div class="row">
11
-            <div>医保编号<div style="width:120px;" class="under_line"></div></div>
12
-            <div>病案号<div style="width:120px;" class="under_line"></div></div>
13
-            <div>申报时间
14
-                <div style="width:40px;" class="under_line"></div>年
15
-                <div style="width:40px;" class="under_line"></div>月
16
-                <div style="width:40px;" class="under_line"></div>日
17
-            </div>
18
-        </div>
19
-        <div>
20
-            <table class="proj_table">
21
-                <tbody>
22
-                    <tr>
23
-                        <td style="letter-spacing:5px;text-align:center;font-weight:520;font-size:16px;padding: 6px 8px;line-height: 30px;">
24
-                            一、基本信息
25
-                        </td>
26
-                    </tr>
27
-                    <tr>
28
-                        <td>
29
-                            <div class="row">
30
-                                <div class="inline_block">姓名
31
-                                    <div style="width:80px;" class="under_line"></div>
32
-                                </div>
33
-                                <div class="inline_block">性别
34
-                                    <label-box :isChecked="false" showValue="男"></label-box>
35
-                                    <label-box :isChecked="false" showValue="女"></label-box>
36
-                                </div>
37
-                                <div class="inline_block">出生日期
38
-                                    <div style="width:40px;" class="under_line"></div>年
39
-                                    <div style="width:40px;" class="under_line"></div>月
40
-                                    <div style="width:40px;" class="under_line"></div>日
41
-                                </div>
42
-                                <div class="inline_block">年龄
43
-                                    <div style="width:80px;" class="under_line"></div>岁
44
-                                </div>
45
-                                <div class="inline_block">国籍
46
-                                    <div style="width:80px;" class="under_line"></div>
47
-                                </div>
48
-                            </div>
49
-                            <div class="row">
50
-                                <div class="inline_block">(年龄不足1周岁)年龄
51
-                                    <div style="width:80px;" class="under_line"></div>天
52
-                                </div>
53
-                                <div class="inline_block">民族
54
-                                    <div style="width:80px;" class="under_line"></div>
55
-                                </div>
56
-                                <div class="inline_block">患者证件类别
57
-                                    <div style="width:80px;" class="under_line"></div>
58
-                                </div>
59
-                                <div class="inline_block">患者证件号码
60
-                                    <div style="width:140px;" class="under_line"></div>
61
-                                </div>
62
-                            </div>
63
-                            <div>
64
-                                <div class="inline_block">职业
65
-                                    <div style="width:80px;" class="under_line"></div>
66
-                                </div>
67
-                                <div class="inline_block" style="width:80px;"></div>
68
-                                <div class="inline_block">现住址
69
-                                    <div style="width:80px;" class="under_line"></div>省(区、市)
70
-                                    <div style="width:80px;" class="under_line"></div>市
71
-                                    <div style="width:80px;" class="under_line"></div>县
72
-                                    <div style="width:140px;" class="under_line"></div>
73
-                                </div>
74
-                            </div>
75
-                            <div class="row">
76
-                                <div class="inline_block">工作单位名称
77
-                                    <div style="width:80px;" class="under_line"></div>
78
-                                </div>
79
-                                <div class="inline_block">工作单位地址
80
-                                    <div style="width:160px;" class="under_line"></div>
81
-                                </div>
82
-                                <div class="inline_block">单位电话
83
-                                    <div style="width:120px;" class="under_line"></div>
84
-                                </div>
85
-                                <div class="inline_block">邮编
86
-                                    <div style="width:120px;" class="under_line"></div>
87
-                                </div>
88
-                            </div>
89
-                            <div class="row">
90
-                                <div class="inline_block">联系人姓名
91
-                                    <div style="width:80px;" class="under_line"></div>
92
-                                </div>
93
-                                <div class="inline_block">关系
94
-                                    <div style="width:80px;" class="under_line"></div>
95
-                                </div>
96
-                                <div class="inline_block">地址
97
-                                    <div style="width:80px;" class="under_line"></div>省(区、市)
98
-                                    <div style="width:80px;" class="under_line"></div>市
99
-                                    <div style="width:80px;" class="under_line"></div>县
100
-                                    <div style="width:140px;" class="under_line"></div>
101
-                                </div>
102
-                                <div class="inline_block">电话
103
-                                    <div style="width:80px;" class="under_line"></div>
104
-                                </div>
105
-                            </div>
106
-                            <div class="row">
107
-                                <div style="width:33%;">医保类型<div style="width:120px;" class="under_line"></div></div>
108
-                                <div style="width:33%;">特殊人员类型<div style="width:120px;" class="under_line"></div></div>
109
-                                <div style="width:33%;">参保地<div style="width:120px;" class="under_line"></div></div>
110
-                            </div>
111
-                            <div class="row">
112
-                                <div style="width:33%;">新生儿入院类型<div style="width:120px;" class="under_line"></div></div>
113
-                                <div style="width:33%;">新生儿出生体重<div style="width:120px;" class="under_line"></div>克</div>
114
-                                <div style="width:33%;">新生儿入院体重<div style="width:120px;" class="under_line"></div>克</div>
115
-                            </div>
116
-                        </td>
117
-                    </tr>
118
-                    <tr>
119
-                        <td style="letter-spacing:5px;text-align:center;font-weight:520;font-size:16px;padding: 6px 8px;line-height: 30px;">
120
-                            二、门诊慢特病诊疗信息
121
-                        </td>
122
-                    </tr>
123
-                    <tr>
124
-                        <td>
125
-                            <div class="row">
126
-                                <div class="inline_block">诊断科别
127
-                                    <div style="width:100px;" class="under_line"></div>
128
-                                </div>
129
-                                <div class="inline_block">就诊日期
130
-                                    <div style="width:100px;" class="under_line"></div>
131
-                                </div>
132
-                            </div>
133
-                        </td>
134
-                    </tr>
135
-                    <tr>
136
-                        <td style="padding:0;line-height:30px;height:30px;">
137
-                            <table class="inside_table">
138
-                                <tbody>
139
-                                    <tr>
140
-                                        <td style="width:25%;">诊断名称</td>
141
-                                        <td style="width:25%;">诊断代码</td>
142
-                                        <td style="width:25%;">手术及操作名称</td>
143
-                                        <td style="width:25%;">手术及操作代码</td>
144
-                                    </tr>
145
-                                    <tr v-for="item in 6">
146
-                                        <td>&nbsp;</td>
147
-                                        <td>&nbsp;</td>
148
-                                        <td>&nbsp;</td>
149
-                                        <td>&nbsp;</td>
150
-                                    </tr>
151
-                                </tbody>
152
-                            </table>
153
-                        </td>
154
-                    </tr>
155
-                    <tr>
156
-                        <td style="letter-spacing:5px;text-align:center;font-weight:520;font-size:16px;padding: 6px 8px;line-height: 30px;">
157
-                            三、住院诊疗信息
158
-                        </td>
159
-                    </tr>
160
-                    <tr>
161
-                        <td>
162
-                            <div class="inline_block">住院医疗类型
163
-                                <label-box :isChecked="false" showValue="1.住院"></label-box>
164
-                                <label-box :isChecked="false" showValue="2.日间手术"></label-box>
165
-                            </div>
166
-                        </td>
167
-                    </tr>
168
-                    <tr>
169
-                        <td>
170
-                            <div>
171
-                                <div class="inline_block">入院途径
172
-                                    <label-box :isChecked="false" showValue="1.急诊"></label-box>
173
-                                    <label-box :isChecked="false" showValue="2.门诊"></label-box>
174
-                                    <label-box :isChecked="false" showValue="3.其他医疗机构转入"></label-box>
175
-                                    <label-box :isChecked="false" showValue="9.其他"></label-box>
176
-                                </div>
177
-                            </div>
178
-                        </td>
179
-                    </tr>
180
-                    <tr>
181
-                        <td>
182
-                            <div>
183
-                                <div class="inline_block">治疗类别
184
-                                    <label-box :isChecked="false" showValue="1.西医"></label-box>
185
-                                    <label-box :isChecked="false" showValue="2.中医"></label-box>
186
-                                    (
187
-                                    <label-box :isChecked="false" showValue="2.1 中医"></label-box>
188
-                                    <label-box :isChecked="false" showValue="2.2 民族医"></label-box>
189
-                                    )
190
-                                    <label-box :isChecked="false" showValue="3.中西医"></label-box>
191
-                                </div>
192
-                            </div>
193
-                        </td>
194
-                    </tr>
195
-                    <tr>
196
-                        <td>
197
-                            <div class="row">
198
-                                <div style="width:40%" class="inline_block">入院时间
199
-                                    <div style="width:40px;" class="under_line"></div>年
200
-                                    <div style="width:40px;" class="under_line"></div>月
201
-                                    <div style="width:40px;" class="under_line"></div>日
202
-                                    <div style="width:40px;" class="under_line"></div>时
203
-                                </div>
204
-                                <div style="width:30%" class="inline_block">入院科别
205
-                                    <div style="width:80px;" class="under_line"></div>
206
-                                </div>
207
-                                <div style="width:30%" class="inline_block">转科科别
208
-                                    <div style="width:80px;" class="under_line"></div>
209
-                                </div>
210
-                            </div>
211
-                        </td>
212
-                    </tr>
213
-                    <tr>
214
-                        <td>
215
-                            <div class="row">
216
-                                <div style="width:40%" class="inline_block">出院时间
217
-                                    <div style="width:40px;" class="under_line"></div>年
218
-                                    <div style="width:40px;" class="under_line"></div>月
219
-                                    <div style="width:40px;" class="under_line"></div>日
220
-                                    <div style="width:40px;" class="under_line"></div>时
221
-                                </div>
222
-                                <div style="width:30%" class="inline_block">出院科别
223
-                                    <div style="width:80px;" class="under_line"></div>
224
-                                </div>
225
-                                <div style="width:30%" class="inline_block">实际住院
226
-                                    <div style="width:80px;" class="under_line"></div>天
227
-                                </div>
228
-                            </div>
229
-                        </td>
230
-                    </tr>
231
-                    <tr>
232
-                        <td>
233
-                            <div class="row">
234
-                                <div style="width:40%" class="inline_block">门(急)诊诊断(西医诊断)
235
-                                    <div style="width:80px;" class="under_line"></div>
236
-                                </div>
237
-                                <div style="width:30%" class="inline_block">疾病代码
238
-                                    <div style="width:80px;" class="under_line"></div>
239
-                                </div>
240
-                                <div style="width:30%" class="inline_block">
241
-                                </div>
242
-                            </div>
243
-                            <div class="row">
244
-                                <div style="width:40%" class="inline_block">门(急)诊诊断(中医诊断)
245
-                                    <div style="width:80px;" class="under_line"></div>
246
-                                </div>
247
-                                <div style="width:30%" class="inline_block">疾病代码
248
-                                    <div style="width:80px;" class="under_line"></div>
249
-                                </div>
250
-                                <div style="width:30%" class="inline_block">
251
-                                </div>
252
-                            </div>
253
-                        </td>
254
-                    </tr>
255
-                    <tr>
256
-                        <td style="padding:0;line-height:30px;height:30px;">
257
-                            <table class="inside_table">
258
-                                <tbody>
259
-                                    <tr>
260
-                                        <td style="width:20%;">出院西医诊断</td>
261
-                                        <td style="width:15%;">疾病代码</td>
262
-                                        <td style="width:15%;">入院病情</td>
263
-                                        <td style="width:20%;">出院中医诊断</td>
264
-                                        <td style="width:15%;">疾病代码</td>
265
-                                        <td style="width:15%;">入院病情</td>
266
-                                    </tr>
267
-                                    <tr>
268
-                                        <td style="text-align:left;">&nbsp;主要诊断:</td>
269
-                                        <td>&nbsp;</td>
270
-                                        <td>&nbsp;</td>
271
-                                        <td style="text-align:left;">&nbsp;主病:</td>
272
-                                        <td>&nbsp;</td>
273
-                                        <td>&nbsp;</td>
274
-                                    </tr>
275
-                                    <tr>
276
-                                        <td style="text-align:left;">&nbsp;其他诊断:</td>
277
-                                        <td>&nbsp;</td>
278
-                                        <td>&nbsp;</td>
279
-                                        <td style="text-align:left;">&nbsp;主证:</td>
280
-                                        <td>&nbsp;</td>
281
-                                        <td>&nbsp;</td>
282
-                                    </tr>
283
-                                    <tr v-for="item in 7">
284
-                                        <td>&nbsp;</td>
285
-                                        <td>&nbsp;</td>
286
-                                        <td>&nbsp;</td>
287
-                                        <td>&nbsp;</td>
288
-                                        <td>&nbsp;</td>
289
-                                        <td>&nbsp;</td>
290
-                                    </tr>
291
-                                </tbody>
292
-                            </table>
293
-                        </td>
294
-                    </tr>
295
-                    <tr>
296
-                        <td>
297
-                            <div class="inline_block">诊断代码计数
298
-                                <div style="width:80px;" class="under_line"></div>
299
-                            </div>
300
-                        </td>
301
-                    </tr>
302
-                    <tr>
303
-                        <td style="padding:0;line-height:30px;height:30px;">
304
-                            <table class="inside_table">
305
-                                <tbody>
306
-                                    <tr>
307
-                                        <td style="width:20%;">手术及操作名称</td>
308
-                                        <td style="width:20%;">手术及操作代码</td>
309
-                                        <td style="width:10%;">手术及操作日期</td>
310
-                                        <td style="width:10%;">麻醉方式*</td>
311
-                                        <td style="width:10%;">术者医师姓名</td>
312
-                                        <td style="width:10%;">术者医师代码</td>
313
-                                        <td style="width:10%;">麻醉医师姓名</td>
314
-                                        <td style="width:10%;">麻醉医师代码</td>
315
-                                    </tr>
316
-                                    <tr>
317
-                                        <td style="text-align:left;">&nbsp;主要:</td>
318
-                                        <td>&nbsp;</td>
319
-                                        <td>&nbsp;</td>
320
-                                        <td>&nbsp;</td>
321
-                                        <td>&nbsp;</td>
322
-                                        <td>&nbsp;</td>
323
-                                        <td>&nbsp;</td>
324
-                                        <td>&nbsp;</td>
325
-                                    </tr>
326
-                                    <tr>
327
-                                        <td style="text-align:left;">&nbsp;其他:</td>
328
-                                        <td>&nbsp;</td>
329
-                                        <td>&nbsp;</td>
330
-                                        <td>&nbsp;</td>
331
-                                        <td>&nbsp;</td>
332
-                                        <td>&nbsp;</td>
333
-                                        <td>&nbsp;</td>
334
-                                        <td>&nbsp;</td>
335
-                                    </tr>
336
-                                    <tr v-for="item in 8">
337
-                                        <td>&nbsp;</td>
338
-                                        <td>&nbsp;</td>
339
-                                        <td>&nbsp;</td>
340
-                                        <td>&nbsp;</td>
341
-                                        <td>&nbsp;</td>
342
-                                        <td>&nbsp;</td>
343
-                                        <td>&nbsp;</td>
344
-                                        <td>&nbsp;</td>
345
-                                    </tr>
346
-                                </tbody>
347
-                            </table>
348
-                        </td>
349
-                    </tr>
350
-                    <tr>
351
-                        <td>
352
-                            <div class="inline_block">手术及操作代码计数
353
-                                <div style="width:80px;" class="under_line"></div>
354
-                            </div>
355
-                        </td>
356
-                    </tr>
357
-                    <tr>
358
-                        <td>
359
-                            <div class="inline_block">呼吸机使用时间
360
-                                <div style="width:40px;" class="under_line"></div>天
361
-                                <div style="width:40px;" class="under_line"></div>小时
362
-                                <div style="width:40px;" class="under_line"></div>分钟
363
-                            </div>
364
-                        </td>
365
-                    </tr>
366
-                    <tr>
367
-                        <td>
368
-                            <div>
369
-                                <div class="inline_block">颅脑损伤患者昏迷时间:
370
-                                    入院前<div style="width:40px;" class="under_line"></div>
371
-
372
-                                    天<div style="width:40px;" class="under_line"></div>
373
-                                    
374
-                                    小时<div style="width:40px;" class="under_line"></div>分钟
375
-                                </div>
376
-                            </div>
377
-                            <div>
378
-                                <div class="inline_block"><span style="visibility: hidden;">颅脑损伤患者昏迷时间:</span>
379
-                                    入院前<div style="width:40px;" class="under_line"></div>
380
-
381
-                                    天<div style="width:40px;" class="under_line"></div>
382
-                                    
383
-                                    小时<div style="width:40px;" class="under_line"></div>分钟
384
-                                </div>
385
-                            </div>
386
-                        </td>
387
-                    </tr>
388
-                </tbody>
389
-            </table>
390
-        </div>
391
-    </div>
392
-</template>
393
-
394
-<script>
395
-import LabelBox from '../../dialysis/printItem/LabelBox'
396
-export default {
397
-    components:{
398
-        LabelBox
399
-    },
400
-    data(){
401
-        return{
402
-
403
-        }
404
-    }
405
-}
406
-</script>
407
-
408
-
409
-
410
-<style lang="scss" scoped>
411
-.title{
412
-    text-align: center;
413
-    font-size: 22px;
414
-    font-weight: bold;
415
-}
416
-.row{
417
-    display: flex;
418
-    justify-content: space-between;
419
-}
420
-.under_line{
421
-    border-bottom: 1px solid #999;
422
-    width: 95%;
423
-    text-align: center;
424
-    margin-left: 2px;
425
-    display: inline-block;
426
-}
427
-.inline_block{
428
-    display: inline-block;
429
-}
430
-// #prescription-print{
431
-//     width: 960px;
432
-// }
433
-.print_page_main_content .proj_table {
434
-  width: 100%;
435
-  border: 1px solid;
436
-  border-collapse: collapse;
437
-  padding: 2px;
438
-}
439
-
440
-.print_page_main_content .proj_table tbody tr td {
441
-  border: 1px solid;
442
-  /* text-align: center; */
443
-  font-size: 16px;
444
-  padding: 5px 8px;
445
-  line-height: 30px;
446
-}
447
-
448
-.print_page_main_content .proj_table .inside_table {
449
-  width: 100%;
450
-  border: hidden; /* 解决边框冲突 */
451
-  border-collapse: collapse;
452
-}
453
-
454
-.print_page_main_content .proj_table .inside_table tr td {
455
-  border: 1px solid;
456
-  text-align: center;
457
-  font-size: 14px;
458
-  padding: 6px 5px;
459
-  line-height: 16px;
460
-}
461
-</style>

+ 533 - 393
src/xt_pages/hospitalStation/statementPrint.vue View File

@@ -1,76 +1,105 @@
1 1
 <template>
2
-    <div>
3
-        <template>
4
-            <el-button
5
-                    style="position:fixed;right:25px;z-index:999"
6
-                    :loading="loading"
7
-                    size="small"
8
-                    icon="el-icon-printer"
9
-                    @click="printThisPage"
10
-                    type="primary"
11
-            >打印
12
-            </el-button
13
-            >
14
-        </template>
15
-
16
-        <div class='dialysisPage' style="padding-top:40px;">
17
-            <printOne :info="info"></printOne>
18
-            <!-- <printTwo  :info="info" v-if="org_id == 9990"></printTwo> -->
19
-        </div>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+          style="position:fixed;right:25px;z-index:999"
6
+          :loading="loading"
7
+          size="small"
8
+          icon="el-icon-printer"
9
+          @click="printThisPage"
10
+          type="primary"
11
+      >打印
12
+      </el-button
13
+      >
14
+    </template>
15
+
16
+    <div class='dialysisPage' style="padding-top:40px;" v-if="this.$store.getters.xt_user.org_id == 10215">
17
+      <private-charge-print :info="info" v-if="this.paramsObj.balance_accounts_type == 2"></private-charge-print>
18
+      <printOne :info="info" v-else></printOne>
20 19
     </div>
20
+    <div class='dialysisPage' style="padding-top:40px;" v-if="this.$store.getters.xt_user.org_id == 10265">
21
+<!--      <private-charge-print :info="info" v-if="this.paramsObj.balance_accounts_type == 2"></private-charge-print>-->
22
+<!--      <printOne :info="info" v-else></printOne>-->
23
+<!--      <print-one :info="info" ></print-one>-->
24
+      <hospital-settle-print :info="info"></hospital-settle-print>
25
+    </div>
26
+
27
+<!--    <div class='dialysisPage' style="padding-top:40px;" v-else>-->
28
+<!--      <private-charge-print :info="info" v-if="this.paramsObj.balance_accounts_type == 2"></private-charge-print>-->
29
+<!--      <printOne :info="info" v-else></printOne>-->
30
+<!--    </div>-->
31
+
32
+  </div>
21 33
 </template>
22 34
 
23 35
 <script>
24 36
 
25 37
 
26
-  import { parseTime } from '@/utils'
27
-  import { getDialysisRecord } from '@/api/dialysis'
28
-  import { getDataConfig } from '@/utils/data'
29
-  import { jsGetAge, uParseTime } from '@/utils/tools'
30
-  import axios from 'axios'
38
+import { uParseTime } from '@/utils/tools'
39
+import axios from 'axios'
40
+import { getPrivateExpensesOrder } from '@/api/his/his'
41
+
42
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
43
+import printOne from './statementTemplate/printOne'
44
+// import printOne from './settlementTemplate/hospitalPrintOne'
45
+import printTwo from './statementTemplate/printTwo'
46
+import { getAllDoctorList, getAllHisPatientList } from '@/api/project/project'
47
+import PrivateChargePrint from '../outpatientCharges/statementTemplate/privateChargePrint'
48
+import HospitalSettlePrint from './settlementTemplate/hospitalSettlePrint'
49
+
50
+export default {
51
+  name: 'dialysisPrintOrder',
52
+  components: {
53
+    HospitalSettlePrint,
54
+    PrivateChargePrint,
55
+    BreadCrumb,
56
+    printOne,
57
+    printTwo
58
+  },
59
+  props: {
60
+    paramsObj: Object
61
+  },
62
+  data() {
63
+    return {
64
+      crumbs: [
65
+        { path: false, name: '门诊医生站' },
66
+        { path: false, name: '打印' }
67
+      ],
68
+      record_date: '',
69
+      patientTableData: [],
70
+      advicePrint: [],
71
+      hisPatient: {},
72
+      patient: {},
73
+      search_input: '',
74
+      loading: false,
75
+      patient_id: 0,
76
+      prescription_id: 0,
77
+      ids: '',
78
+      info: null,
79
+      org_id: ''
80
+    }
81
+  },
82
+  methods: {
83
+    printThisPage() {
84
+      var ptime = Math.round(new Date().getTime() / 1000)
85
+      this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
86
+
87
+      if(this.org_id == 10265){
31 88
 
32
-  import BreadCrumb from '@/xt_pages/components/bread-crumb'
33
-  import printOne from './statementTemplate/printOne'
34
-  import printTwo from './statementTemplate/printTwo'
35
-  import { getAllDoctorList, getAllHisPatientList, getPrescriptionPrint } from '@/api/project/project'
89
+        const style =
90
+            '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoMain{display: flex;flex-wrap: wrap;padding:0 10px;margin-top:10px;}.infoMain .infoP{width: 33%;}.chargeBox{border: 1px solid #000;}.chargeUl{display:flex;justify-content: space-between;text-align: center;}.chargeUl p{line-height: 1px;}.chargeP{line-height: 1px;padding-bottom:16px;}.moneyBox{display: flex;justify-content: space-between;padding: 0 10px;background: #eeeeee;-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;-ms-print-color-adjust:exact;print-color-adjust:exact;height: 40px;align-items: center;border:1px solid #000; border-top:none}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar div{width:150px;}}';
91
+        const style1 = "@media print{#prescription-print{font-size:14px;}.title{text-align: center;font-size: 22px;font-weight: bold;}.row{display: flex;justify-content: space-between;}.under_line{border-bottom: 1px solid #999;width: 95%;text-align: center;margin-left: 2px;display: inline-block;}.inline_block{display: inline-block;}.print_page_main_content .proj_table {width: 100%;border: 1px solid;border-collapse: collapse;padding: 2px;}.print_page_main_content .proj_table tbody tr td {border: 1px solid;font-size: 14px;padding: 5px 8px;line-height: 30px;}.print_page_main_content .proj_table .inside_table {width: 100%;border: hidden; /* 解决边框冲突 */border-collapse: collapse;}.print_page_main_content .proj_table .inside_table tr td {border: 1px solid;text-align: center;font-size: 14px;padding: 6px 5px;line-height: 16px;}}";
92
+        printJS({
93
+          printable: "prescription-print",
94
+          type: "html",
95
+          style: style1,
96
+          scanStyles: false
97
+        });
36 98
 
37
-  export default {
38
-    name: 'dialysisPrintOrder',
39
-    components: {
40
-      BreadCrumb,
41
-      printOne,
42
-      printTwo
43
-    },
44
-    props: {
45
-      paramsObj: Object
46
-    },
47
-    data() {
48
-      return {
49
-        crumbs: [
50
-          { path: false, name: '门诊医生站' },
51
-          { path: false, name: '打印' }
52
-        ],
53
-        record_date: '',
54
-        patientTableData: [],
55
-        advicePrint: [],
56
-        hisPatient: {},
57
-        patient: {},
58
-        search_input: '',
59
-        loading: false,
60
-        patient_id: 0,
61
-        prescription_id: 0,
62
-        ids: '',
63
-        info: null,
64
-        org_id: ''
65
-      }
66
-    },
67
-    methods: {
68
-      printThisPage() {
69
-        var ptime = Math.round(new Date().getTime() / 1000)
70
-        this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
99
+      }else{
71 100
 
72 101
         const style =
73
-          '@media print {.statementTitle{font-size: 28px;text-align: center;font-weight: bold;margin-bottom: 10px;}.statementTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 16px;border-color: #000;}}'
102
+            '@media print {.statementTitle{font-size: 28px;text-align: center;font-weight: bold;margin-bottom: 10px;}.statementTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 16px;border-color: #000;}}'
74 103
         printJS({
75 104
           printable: 'statement-print',
76 105
           type: 'html',
@@ -78,86 +107,190 @@
78 107
           scanStyles: false
79 108
         })
80 109
 
81
-        // if (this.org_template_info.template_id == 1) {
82
-        //   printJS({
83
-        //     printable: "dialysis-print-box",
84
-        //     type: "html",
85
-        //     style: style,
86
-        //     scanStyles: false
87
-        //   });
88
-        // }
89
-      },
90
-      getAllDoctorList() {
91
-        getAllDoctorList().then(response => {
92
-          if (response.data.state == 1) {
93
-            var doctor = response.data.data.doctor
110
+      }
94 111
 
95
-            this.doctorList = doctor
96
-          }
97
-        })
98
-      },
99
-      getAllHisPatientList() {
100
-        const params = {
101
-          record_date: this.record_date
112
+
113
+
114
+      // if (this.org_template_info.template_id == 1) {
115
+      //   printJS({
116
+      //     printable: "dialysis-print-box",
117
+      //     type: "html",
118
+      //     style: style,
119
+      //     scanStyles: false
120
+      //   });
121
+      // }
122
+    },
123
+    getAllDoctorList() {
124
+      getAllDoctorList().then(response => {
125
+        if (response.data.state == 1) {
126
+          var doctor = response.data.data.doctor
127
+
128
+          this.doctorList = doctor
102 129
         }
103
-        getAllHisPatientList(params).then(response => {
104
-          if (response.data.state == 1) {
105
-            this.patientTableData = response.data.data.list
106
-            this.patientTableDataTwo = response.data.data.list
107
-
108
-            console.log('222', this.patientTableData)
109
-            let cal_one = 0
110
-            let cal_two = 0
111
-            for (let i = 0; i < response.data.data.list.length; i++) {
112
-              if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
113
-                cal_one = cal_one + 1
114
-              }
115
-              if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
116
-                cal_two = cal_two + 1
117
-              }
130
+      })
131
+    },
132
+    getAllHisPatientList() {
133
+      const params = {
134
+        record_date: this.record_date
135
+      }
136
+      getAllHisPatientList(params).then(response => {
137
+        if (response.data.state == 1) {
138
+          this.patientTableData = response.data.data.list
139
+          this.patientTableDataTwo = response.data.data.list
140
+
141
+          console.log('222', this.patientTableData)
142
+          let cal_one = 0
143
+          let cal_two = 0
144
+          for (let i = 0; i < response.data.data.list.length; i++) {
145
+            if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
146
+              cal_one = cal_one + 1
147
+            }
148
+            if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
149
+              cal_two = cal_two + 1
118 150
             }
119
-            // this.$refs.tab.setCurrentRow(this.patientTableData[0])
120
-            // console.log(this.patientTableData[0])
121
-            // this.choosePatient(this.patientTableData[0])
122
-            this.cal_one = cal_one
123
-            this.cal_two = cal_two
124 151
           }
125
-        })
126
-      },
152
+          // this.$refs.tab.setCurrentRow(this.patientTableData[0])
153
+          // console.log(this.patientTableData[0])
154
+          // this.choosePatient(this.patientTableData[0])
155
+          this.cal_one = cal_one
156
+          this.cal_two = cal_two
157
+        }
158
+      })
159
+    },
127 160
 
128
-      changePatient(row) {
129
-        console.log('row', row)
130
-        this.patient_id = row.patient_id
131
-        this.record_date = this.record_date
132
-        this.prescription_id = this.prescription_id
133
-        //   var params = {
134
-        //     patient_id:row.patient_id,
135
-        //     record_date:this.record_date,
136
-        //     prescription_id:this.prescription_id,
137
-        //   }
138
-        // getPrescriptionPrint(params).then(response=>{
139
-        //     if(response.data.state == 1){
140
-        //       var advicePrint =  response.data.data.advicePrint
141
-        //       console.log("adviceprint",advicePrint)
142
-        //       this.advicePrint = advicePrint
143
-        //       // var hisPatient =  response.data.data.hisPatient
144
-        //       // console.log("hispatient",hisPatient)
145
-        //       // this.hisPatient = hisPatient
146
-        //       var patient =  response.data.data.patient
147
-        //       console.log("patient",patient)
148
-        //       this.patient = patient
149
-        //       var doctorPorject = response.data.data.doctorPorject
150
-        //       console.log("doctorporject",doctorPorject)
151
-        //     }
152
-        // })
153
-      },
154
-      searchAction() {
161
+    changePatient(row) {
162
+      console.log('row', row)
163
+      this.patient_id = row.patient_id
164
+      this.record_date = this.record_date
165
+      this.prescription_id = this.prescription_id
166
+      //   var params = {
167
+      //     patient_id:row.patient_id,
168
+      //     record_date:this.record_date,
169
+      //     prescription_id:this.prescription_id,
170
+      //   }
171
+      // getPrescriptionPrint(params).then(response=>{
172
+      //     if(response.data.state == 1){
173
+      //       var advicePrint =  response.data.data.advicePrint
174
+      //       console.log("adviceprint",advicePrint)
175
+      //       this.advicePrint = advicePrint
176
+      //       // var hisPatient =  response.data.data.hisPatient
177
+      //       // console.log("hispatient",hisPatient)
178
+      //       // this.hisPatient = hisPatient
179
+      //       var patient =  response.data.data.patient
180
+      //       console.log("patient",patient)
181
+      //       this.patient = patient
182
+      //       var doctorPorject = response.data.data.doctorPorject
183
+      //       console.log("doctorporject",doctorPorject)
184
+      //     }
185
+      // })
186
+    },
187
+    searchAction() {
155 188
 
156
-      },
157
-      getInfo(order_id) {
189
+    },
190
+    getInfo(order_id, balance_accounts_type) {
191
+      console.log(balance_accounts_type)
192
+
193
+      var that = this
194
+      if (balance_accounts_type == 2) {
195
+        let params = {
196
+          id: order_id,
197
+          order_id: order_id,
198
+          admin_user_id: this.$store.getters.xt_user.user.id
199
+        }
200
+        getPrivateExpensesOrder(params).then((response) => {
201
+          if (response.data.state == 0) {
202
+            // this.$message.error(response.data.msg)
203
+
204
+            return false
205
+          } else {
206
+            var that = this
207
+            that.info = response.data.data.info
208
+            that.p_admin = response.data.data.printor_admin
209
+            that.charge_admin = response.data.data.charge_admin
210
+
211
+            that.info['p_admin'] = that.p_admin
212
+            that.info['charge_admin'] = that.charge_admin
213
+            that.info['order_number'] = response.data.data.order_number
214
+            that.info['patient'] = response.data.data.patient
215
+            that.info['date'] = response.data.data.date
216
+            that.info['number'] = response.data.data.number
217
+            that.info['order_infos'] = response.data.data.order_infos
218
+            that.info['diagnosis'] = response.data.data.diagnosis
219
+            that.info['fixmedins_name'] = response.data.data.org_name
220
+            that.info['fixmedins_code'] = response.data.data.org_code
221
+            that.info['his'] = response.data.data.his_hospital
222
+
223
+            // that.info["doctor_code"] = response.data.data.doctor_code;
224
+            // that.info["department"] = response.data.data.department;
225
+            // that.info["health_card_no"] = response.data.data.health_card_no;
226
+
227
+            that.info['bed_cost_total'] = response.data.data.bedCostTotal
228
+            that.info['bed_cost_self_total'] =
229
+                response.data.data.bedCostSelfTotal
230
+            that.info['bed_cost_part_self_total'] =
231
+                response.data.data.bedCostPartSelfTotal
232
+
233
+            that.info['operation_cost_total'] =
234
+                response.data.data.operationCostTotal
235
+            that.info['operation_cost_self_total'] =
236
+                response.data.data.operationCostSelfTotal
237
+            that.info['operation_cost_part_self_total'] =
238
+                response.data.data.operationCostPartSelfTotal
239
+
240
+            that.info['other_cost_total'] = response.data.data.otherCostTotal
241
+            that.info['other_cost_self_total'] =
242
+                response.data.data.otherCostSelfTotal
243
+            that.info['other_cost_part_self_total'] =
244
+                response.data.data.otherCostPartSelfTotal
245
+
246
+            that.info['material_cost_total'] =
247
+                response.data.data.materialCostTotal
248
+            that.info['material_cost_self_total'] =
249
+                response.data.data.materialCostSelfTotal
250
+            that.info['material_cost_part_self_total'] =
251
+                response.data.data.materialCostPartSelfTotal
252
+
253
+            that.info['western_medicine_cost_total'] =
254
+                response.data.data.westernMedicineCostTotal
255
+            that.info['western_medicine_cost_self_total'] =
256
+                response.data.data.westernMedicineCostSelfTotal
257
+            that.info['western_medicine_cost_part_self_total'] =
258
+                response.data.data.westernMedicineCostPartSelfTotal
259
+
260
+            that.info['chinese_traditional_medicine_cost_total'] =
261
+                response.data.data.chineseTraditionalMedicineCostTotal
262
+            that.info['chinese_traditional_medicine_cost_self_total'] =
263
+                response.data.data.chineseTraditionalMedicineCostSelfTotal
264
+            that.info['chinese_traditional_medicine_cost_part_self_total'] =
265
+                response.data.data.chineseTraditionalMedicineCostPartSelfTotal
266
+
267
+            that.info['check_cost_total'] = response.data.data.checkCostTotal
268
+            that.info['check_cost_self_total'] =
269
+                response.data.data.checkCostSelfTotal
270
+            that.info['check_cost_part_self_total'] =
271
+                response.data.data.checkCostPartSelfTotal
272
+
273
+            that.info['laboratory_cost_total'] =
274
+                response.data.data.laboratoryCostTotal
275
+            that.info['laboratory_cost_self_total'] =
276
+                response.data.data.laboratoryCostSelfTotal
277
+            that.info['laboratory_cost_part_self_total'] =
278
+                response.data.data.laboratoryCostPartSelfTotal
279
+
280
+            that.info['treat_cost_total'] = response.data.data.treatCostTotal
281
+            that.info['treat_cost_self_total'] =
282
+                response.data.data.treatCostSelfTotal
283
+            that.info['treat_cost_part_self_total'] =
284
+                response.data.data.treatCostPartSelfTotal
285
+            that.info['date'] = response.data.data.date
286
+            // that.info["number"] = response.data.data.number;
287
+            that.info['order_infos'] = response.data.data.order_infos
288
+            that.info['diagnosis'] = response.data.data.diagnosis
158 289
 
159
-        var that = this
290
+          }
291
+        })
160 292
 
293
+      } else {
161 294
         axios.get('http://127.0.0.1:9532/api/settle/query', {
162 295
           params: {
163 296
             order_id: order_id,
@@ -165,281 +298,288 @@
165 298
 
166 299
           }
167 300
         })
168
-          .then(function(response) {
169
-            if (response.data.state == 0) {
170
-              this.$message.error(response.data.msg)
171
-              return false
172
-            } else {
173
-              console.log('logloglog')
174
-
175
-              console.log(response.data.data.info)
176
-              that.info = response.data.data.info
177
-              console.log(that.info)
178
-
179
-              that.p_admin = response.data.data.printor_admin
180
-              that.charge_admin = response.data.data.charge_admin
181
-              that.order_infos = response.data.data
182
-
183
-              that.info['p_admin'] = that.p_admin
184
-              that.info['charge_admin'] = that.charge_admin
185
-
186
-              that.info['date'] = response.data.data.date
187
-              that.info['number'] = response.data.data.number
188
-              that.info['order_infos'] = response.data.data.order_infos
189
-              that.info['diagnosis'] = response.data.data.diagnosis
190
-
191
-              that.info['bed_cost_total'] = response.data.data.bedCostTotal
192
-              that.info['bed_cost_self_total'] = response.data.data.bedCostSelfTotal
193
-              that.info['bed_cost_part_self_total'] = response.data.data.bedCostPartSelfTotal
194
-
195
-              that.info['operation_cost_total'] = response.data.data.operationCostTotal
196
-              that.info['operation_cost_self_total'] = response.data.data.operationCostSelfTotal
197
-              that.info['operation_cost_part_self_total'] = response.data.data.operationCostPartSelfTotal
198
-
199
-              that.info['other_cost_total'] = response.data.data.otherCostTotal
200
-              that.info['other_cost_self_total'] = response.data.data.otherCostSelfTotal
201
-              that.info['other_cost_part_self_total'] = response.data.data.otherCostPartSelfTotal
202
-
203
-              that.info['material_cost_total'] = response.data.data.materialCostTotal
204
-              that.info['material_cost_self_total'] = response.data.data.materialCostSelfTotal
205
-              that.info['material_cost_part_self_total'] = response.data.data.materialCostPartSelfTotal
206
-
207
-              that.info['western_medicine_cost_total'] = response.data.data.westernMedicineCostTotal
208
-              that.info['western_medicine_cost_self_total'] = response.data.data.westernMedicineCostSelfTotal
209
-              that.info['western_medicine_cost_part_self_total'] = response.data.data.westernMedicineCostPartSelfTotal
210
-
211
-              that.info['chinese_traditional_medicine_cost_total'] = response.data.data.chineseTraditionalMedicineCostTotal
212
-              that.info['chinese_traditional_medicine_cost_self_total'] = response.data.data.chineseTraditionalMedicineCostSelfTotal
213
-              that.info['chinese_traditional_medicine_cost_part_self_total'] = response.data.data.chineseTraditionalMedicineCostPartSelfTotal
214
-
215
-              that.info['check_cost_total'] = response.data.data.checkCostTotal
216
-              that.info['check_cost_self_total'] = response.data.data.checkCostSelfTotal
217
-              that.info['check_cost_part_self_total'] = response.data.data.checkCostPartSelfTotal
218
-
219
-              that.info['laboratory_cost_total'] = response.data.data.laboratoryCostTotal
220
-              that.info['laboratory_cost_self_total'] = response.data.data.laboratoryCostSelfTotal
221
-              that.info['laboratory_cost_part_self_total'] = response.data.data.laboratoryCostPartSelfTotal
222
-
223
-              that.info['treat_cost_total'] = response.data.data.treatCostTotal
224
-              that.info['treat_cost_self_total'] = response.data.data.treatCostSelfTotal
225
-              that.info['treat_cost_part_self_total'] = response.data.data.treatCostPartSelfTotal
226
-              that.info['date'] = response.data.data.date
227
-              that.info['number'] = response.data.data.number
228
-              that.info['order_infos'] = response.data.data.order_infos
229
-              that.info['diagnosis'] = response.data.data.diagnosis
230
-
231
-            }
232
-          })
233
-          .catch(function(error) {
301
+            .then(function(response) {
302
+              if (response.data.state == 0) {
303
+                this.$message.error(response.data.msg)
304
+                return false
305
+              } else {
306
+                console.log('logloglog')
307
+
308
+                console.log(response.data.data.info)
309
+                that.info = response.data.data.info
310
+                console.log(that.info)
311
+
312
+                that.p_admin = response.data.data.printor_admin
313
+                that.charge_admin = response.data.data.charge_admin
314
+                that.order_infos = response.data.data
315
+                that.info['patient'] = response.data.data.patient
316
+                that.info['diagnosis'] = response.data.data.diagnosis
317
+                that.info['p_admin'] = that.p_admin
318
+                that.info['charge_admin'] = that.charge_admin
319
+                that.info['fixmedins_name'] = response.data.data.org_name
320
+                that.info['fixmedins_code'] = response.data.data.org_code
321
+                that.info['order'] = response.data.data.order
322
+
323
+                that.info['date'] = response.data.data.date
324
+                that.info['number'] = response.data.data.number
325
+                that.info['order_infos'] = response.data.data.order_infos
326
+                that.info['diagnosis'] = response.data.data.diagnosis
327
+                that.info['dia_config'] = response.data.data.dia_config
328
+                that.info['doctor_info'] = response.data.data.doctor_info
329
+
330
+
331
+                that.info['bed_cost_total'] = response.data.data.bedCostTotal
332
+                that.info['bed_cost_self_total'] = response.data.data.bedCostSelfTotal
333
+                that.info['bed_cost_part_self_total'] = response.data.data.bedCostPartSelfTotal
334
+
335
+                that.info['operation_cost_total'] = response.data.data.operationCostTotal
336
+                that.info['operation_cost_self_total'] = response.data.data.operationCostSelfTotal
337
+                that.info['operation_cost_part_self_total'] = response.data.data.operationCostPartSelfTotal
338
+
339
+                that.info['other_cost_total'] = response.data.data.otherCostTotal
340
+                that.info['other_cost_self_total'] = response.data.data.otherCostSelfTotal
341
+                that.info['other_cost_part_self_total'] = response.data.data.otherCostPartSelfTotal
342
+
343
+                that.info['material_cost_total'] = response.data.data.materialCostTotal
344
+                that.info['material_cost_self_total'] = response.data.data.materialCostSelfTotal
345
+                that.info['material_cost_part_self_total'] = response.data.data.materialCostPartSelfTotal
346
+
347
+                that.info['western_medicine_cost_total'] = response.data.data.westernMedicineCostTotal
348
+                that.info['western_medicine_cost_self_total'] = response.data.data.westernMedicineCostSelfTotal
349
+                that.info['western_medicine_cost_part_self_total'] = response.data.data.westernMedicineCostPartSelfTotal
350
+
351
+                that.info['chinese_traditional_medicine_cost_total'] = response.data.data.chineseTraditionalMedicineCostTotal
352
+                that.info['chinese_traditional_medicine_cost_self_total'] = response.data.data.chineseTraditionalMedicineCostSelfTotal
353
+                that.info['chinese_traditional_medicine_cost_part_self_total'] = response.data.data.chineseTraditionalMedicineCostPartSelfTotal
354
+
355
+                that.info['check_cost_total'] = response.data.data.checkCostTotal
356
+                that.info['check_cost_self_total'] = response.data.data.checkCostSelfTotal
357
+                that.info['check_cost_part_self_total'] = response.data.data.checkCostPartSelfTotal
358
+
359
+                that.info['laboratory_cost_total'] = response.data.data.laboratoryCostTotal
360
+                that.info['laboratory_cost_self_total'] = response.data.data.laboratoryCostSelfTotal
361
+                that.info['laboratory_cost_part_self_total'] = response.data.data.laboratoryCostPartSelfTotal
362
+
363
+                that.info['treat_cost_total'] = response.data.data.treatCostTotal
364
+                that.info['treat_cost_self_total'] = response.data.data.treatCostSelfTotal
365
+                that.info['treat_cost_part_self_total'] = response.data.data.treatCostPartSelfTotal
366
+                that.info['date'] = response.data.data.date
367
+                that.info['number'] = response.data.data.number
368
+                that.info['order_infos'] = response.data.data.order_infos
369
+                that.info['diagnosis'] = response.data.data.diagnosis
370
+                that.info['his'] = response.data.data.his_hospital
234 371
 
235
-          })
372
+              }
373
+            })
374
+            .catch(function(error) {
375
+            })
236 376
       }
377
+    }
378
+  },
237 379
 
238
-    },
380
+  created() {
381
+    this.getInfo(this.paramsObj.order_id, this.paramsObj.balance_accounts_type)
382
+    this.org_id = this.$store.getters.xt_user.org_id
383
+  },
384
+  watch: {
385
+    paramsObj: {//深度监听,可监听到对象、数组的变化
386
+      handler(val, oldVal) {
387
+        this.paramsObj = val
388
+        this.getInfo(this.paramsObj.order_id, this.paramsObj.balance_accounts_type)
239 389
 
240
-    created() {
241
-      this.getInfo(this.paramsObj.order_id)
242
-      this.org_id = this.$store.getters.xt_user.org_id
243
-    },
244
-    watch: {
245
-      paramsObj: {//深度监听,可监听到对象、数组的变化
246
-        handler(val, oldVal) {
247
-          this.paramsObj = val
248
-          this.getInfo(this.paramsObj.order_id)
249
-
250
-        },
251
-        deep: true
252
-      }
390
+      },
391
+      deep: true
253 392
     }
254
-
255 393
   }
394
+
395
+}
256 396
 </script>
257 397
 
258 398
 <style>
259
-    .dialysis-print-order {
260
-        width: 960px;
261
-        margin: 0 auto;
262
-    }
263
-
264
-    .dialysis-print-order .order-yy-name {
265
-        margin: auto;
266
-        text-align: center;
267
-        font-size: 20px;
268
-        letter-spacing: 5px;
269
-    }
270
-
271
-    .dialysis-print-order .order-title {
272
-        margin: auto;
273
-        font-weight: 600;
274
-        text-align: center;
275
-        font-size: 22px;
276
-        padding: 10px;
277
-    }
278
-
279
-    .dialysis-print-order .table-box {
280
-        width: 100%;
281
-        line-height: 23px;
282
-        font-size: 14px;
283
-    }
284
-
285
-    .dialysis-print-order .print-table {
286
-        width: 100%;
287
-        text-align: center;
288
-        border-collapse: collapse;
289
-        line-height: 40px;
290
-        font-size: 14px;
291
-        border-color: #000;
292
-    }
293
-
294
-    .dialysis-print-order .print-table-no {
295
-        width: 100%;
296
-        text-align: center;
297
-        border-collapse: collapse;
298
-        font-size: 14px;
299
-    }
300
-
301
-    .dialysis-print-order .under-line {
302
-        border-bottom: 1px solid #999;
303
-        width: 95%;
304
-        text-align: center;
305
-        margin-left: 2px;
306
-    }
307
-
308
-    .dialysis-print-order .title-box {
309
-        text-align: center;
310
-        font-size: 16px;
311
-    }
312
-
313
-    .dialysis-print-order .radio-lebel-box {
314
-        font-weight: 400;
315
-        cursor: pointer;
316
-    }
317
-
318
-    .dialysis-print-order .radio-no {
319
-        opacity: 0;
320
-        outline: none;
321
-        position: absolute;
322
-        margin: 0;
323
-        width: 0;
324
-        height: 0;
325
-        z-index: -1;
326
-    }
327
-
328
-    .dialysis-print-order .radio-inner {
329
-        white-space: nowrap;
330
-        cursor: pointer;
331
-        outline: none;
332
-        display: inline-block;
333
-        line-height: 1;
334
-        position: relative;
335
-        vertical-align: middle;
336
-    }
337
-
338
-    .dialysis-print-order .radio-fang {
339
-        display: inline-block;
340
-        position: relative;
341
-        border: 1px solid #000;
342
-        box-sizing: border-box;
343
-        width: 14px;
344
-        height: 14px;
345
-        background-color: #fff;
346
-        z-index: 1;
347
-        transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
348
-        background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
349
-    }
350
-
351
-    .dialysis-print-order .is-checked-radio::after {
352
-        content: "√";
353
-        font-size: 15px;
354
-    }
355
-
356
-    .dialysis-print-order .print-table-no tr td {
357
-        padding: 8px 5px;
358
-        line-height: 25px;
359
-    }
360
-
361
-    .dialysis-print-order .print-table tr td {
362
-        padding: 1px 1px;
363
-        /*line-height: 25px;*/
364
-    }
365
-
366
-    .es-img {
367
-        height: 30px;
368
-    }
369
-
370
-    .advice-name {
371
-        text-align: left;
372
-    }
373
-
374
-    .advice-children {
375
-        display: flex;
376
-    }
377
-
378
-    .title-box-pro {
379
-        border: 0 #fff;
380
-        line-height: 25px;
381
-        height: 25px;
382
-        text-align: left;
383
-        padding-left: 10px !important;
384
-    }
385
-
386
-    .title-box-pro-tr {
387
-        border: 0 #fff;
388
-    }
389
-
390
-    .text-align-left {
391
-        text-align: left !important;
392
-        padding-left: 10px !important;
393
-        font-size: 14px !important;
394
-        line-height: 25px;
395
-    }
396
-
397
-    .print-table-tr-new td {
398
-        line-height: 20px !important;
399
-    }
400
-
401
-    .border-top-solid {
402
-        border: solid 1px #000;
403
-    }
404
-
405
-    .print-template-two tr {
406
-        line-height: 30px;
407
-    }
408
-
409
-    .table-box1 {
410
-        border: 1px solid #000;
411
-        width: 100%;
412
-        line-height: 30px;
413
-        font-size: 14px;
414
-        border-collapse: collapse;
415
-    }
416
-
417
-    .table-box1 tr {
418
-        border-bottom: 1px solid #000;
419
-    }
399
+.dialysis-print-order {
400
+  width: 960px;
401
+  margin: 0 auto;
402
+}
403
+
404
+.dialysis-print-order .order-yy-name {
405
+  margin: auto;
406
+  text-align: center;
407
+  font-size: 20px;
408
+  letter-spacing: 5px;
409
+}
410
+
411
+.dialysis-print-order .order-title {
412
+  margin: auto;
413
+  font-weight: 600;
414
+  text-align: center;
415
+  font-size: 22px;
416
+  padding: 10px;
417
+}
418
+
419
+.dialysis-print-order .table-box {
420
+  width: 100%;
421
+  line-height: 23px;
422
+  font-size: 14px;
423
+}
424
+
425
+.dialysis-print-order .print-table {
426
+  width: 100%;
427
+  text-align: center;
428
+  border-collapse: collapse;
429
+  line-height: 40px;
430
+  font-size: 14px;
431
+  border-color: #000;
432
+}
433
+
434
+.dialysis-print-order .print-table-no {
435
+  width: 100%;
436
+  text-align: center;
437
+  border-collapse: collapse;
438
+  font-size: 14px;
439
+}
440
+
441
+.dialysis-print-order .under-line {
442
+  border-bottom: 1px solid #999;
443
+  width: 95%;
444
+  text-align: center;
445
+  margin-left: 2px;
446
+}
447
+
448
+.dialysis-print-order .title-box {
449
+  text-align: center;
450
+  font-size: 16px;
451
+}
452
+
453
+.dialysis-print-order .radio-lebel-box {
454
+  font-weight: 400;
455
+  cursor: pointer;
456
+}
457
+
458
+.dialysis-print-order .radio-no {
459
+  opacity: 0;
460
+  outline: none;
461
+  position: absolute;
462
+  margin: 0;
463
+  width: 0;
464
+  height: 0;
465
+  z-index: -1;
466
+}
467
+
468
+.dialysis-print-order .radio-inner {
469
+  white-space: nowrap;
470
+  cursor: pointer;
471
+  outline: none;
472
+  display: inline-block;
473
+  line-height: 1;
474
+  position: relative;
475
+  vertical-align: middle;
476
+}
477
+
478
+.dialysis-print-order .radio-fang {
479
+  display: inline-block;
480
+  position: relative;
481
+  border: 1px solid #000;
482
+  box-sizing: border-box;
483
+  width: 14px;
484
+  height: 14px;
485
+  background-color: #fff;
486
+  z-index: 1;
487
+  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
488
+  background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
489
+}
490
+
491
+.dialysis-print-order .is-checked-radio::after {
492
+  content: "√";
493
+  font-size: 15px;
494
+}
495
+
496
+.dialysis-print-order .print-table-no tr td {
497
+  padding: 8px 5px;
498
+  line-height: 25px;
499
+}
500
+
501
+.dialysis-print-order .print-table tr td {
502
+  padding: 1px 1px;
503
+  /*line-height: 25px;*/
504
+}
505
+
506
+.es-img {
507
+  height: 30px;
508
+}
509
+
510
+.advice-name {
511
+  text-align: left;
512
+}
513
+
514
+.advice-children {
515
+  display: flex;
516
+}
517
+
518
+.title-box-pro {
519
+  border: 0 #fff;
520
+  line-height: 25px;
521
+  height: 25px;
522
+  text-align: left;
523
+  padding-left: 10px !important;
524
+}
525
+
526
+.title-box-pro-tr {
527
+  border: 0 #fff;
528
+}
529
+
530
+.text-align-left {
531
+  text-align: left !important;
532
+  padding-left: 10px !important;
533
+  font-size: 14px !important;
534
+  line-height: 25px;
535
+}
536
+
537
+.print-table-tr-new td {
538
+  line-height: 20px !important;
539
+}
540
+
541
+.border-top-solid {
542
+  border: solid 1px #000;
543
+}
544
+
545
+.print-template-two tr {
546
+  line-height: 30px;
547
+}
548
+
549
+.table-box1 {
550
+  border: 1px solid #000;
551
+  width: 100%;
552
+  line-height: 30px;
553
+  font-size: 14px;
554
+  border-collapse: collapse;
555
+}
556
+
557
+.table-box1 tr {
558
+  border-bottom: 1px solid #000;
559
+}
420 560
 </style>
421 561
 
422 562
 <style lang="scss">
423 563
 
424
-    .newContainer {
564
+.newContainer {
425 565
 
426
-    .dialysisPage::-webkit-scrollbar {
427
-        height: 15px;
428
-    }
566
+.dialysisPage::-webkit-scrollbar {
567
+  height: 15px;
568
+}
429 569
 
430
-    .el-date-editor {
570
+.el-date-editor {
431 571
 
432
-    .el-input__inner {
433
-        padding-right: 0px;
434
-    }
572
+.el-input__inner {
573
+  padding-right: 0px;
574
+}
435 575
 
436
-    }
437
-    .el-table td, .el-table th {
438
-        text-align: center;
439
-    }
576
+}
577
+.el-table td, .el-table th {
578
+  text-align: center;
579
+}
440 580
 
441
-    }
442
-    .newContainer::-webkit-scrollbar {
443
-        height: 15px !important;
444
-    }
581
+}
582
+.newContainer::-webkit-scrollbar {
583
+  height: 15px !important;
584
+}
445 585
 </style>

+ 13 - 13
src/xt_pages/hospitalStation/statementTemplate/printOne.vue View File

@@ -77,7 +77,7 @@
77 77
         <td>单位名称</td>
78 78
         <td colspan="5">{{info.emp_name}}</td>
79 79
         <td width="80">联系电话</td>
80
-        <td width="110">{{patient.phone}}</td>
80
+        <td width="110">{{info.patient.phone}}</td>
81 81
         <td width="80">身份证号</td>
82 82
         <td colspan="3">{{info.certno}}</td>
83 83
       </tr>
@@ -105,12 +105,12 @@
105 105
         <td colspan="2" v-if="info.insutype == '390'">城乡居民基本医疗保险</td>
106 106
         <td colspan="2" v-if="info.insutype == '392'">城乡居民大病医疗保险</td>
107 107
         <td colspan="2" v-if="info.insutype == '510'">生育保险</td>
108
-
109
-
110 108
         <td>入院第一诊断</td>
111
-        <td colspan="3"></td>
109
+        <td colspan="3">{{info.diagnosis}}</td>
112 110
         <td>出院第一诊断</td>
113
-        <td colspan="4"></td>
111
+        <td colspan="4">{{info.diagnosis}}</td>
112
+
113
+
114 114
       </tr>
115 115
       <tr>
116 116
         <td>业务类别</td>
@@ -365,14 +365,14 @@
365 365
         let yy = new Date().getFullYear();
366 366
         let mm = new Date().getMonth() + 1;
367 367
         let dd = new Date().getDate();
368
-        let hh = new Date().getHours();
369
-        let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
370
-          :
371
-          new Date().getMinutes();
372
-        let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
373
-          :
374
-          new Date().getSeconds();
375
-        dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss;
368
+        // let hh = new Date().getHours();
369
+        // let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
370
+        //   :
371
+        //   new Date().getMinutes();
372
+        // let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
373
+        //   :
374
+        //   new Date().getSeconds();
375
+        dateTime = yy + '-' + mm + '-' + dd
376 376
         return dateTime
377 377
       },
378 378
 

+ 5 - 1
src/xt_pages/hospitalStation/summary.vue View File

@@ -627,6 +627,7 @@
627 627
         }
628 628
       },
629 629
       toPrint(row) {
630
+        console.log(row)
630 631
         if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028 || (row.order_status == 2 && this.$store.getters.xt_user.org_id == 10138) || (row.order_status == 2 && this.$store.getters.xt_user.org_id == 10278)) {
631 632
           this.statementVisible9504 = true
632 633
           let obj = {
@@ -641,11 +642,14 @@
641 642
           this.statementVisible = true
642 643
           let obj = {
643 644
             order_id: row.id,
644
-            settle_type: row.settle_type,
645
+            balance_accounts_type: row.his_hospital_patient.balance_accounts_type,
645 646
             start_time: row.settle_start_time,
646 647
             end_time: row.settle_end_time
647 648
           }
649
+          console.log(obj)
648 650
           this.orderObj = obj
651
+          console.log(this.orderObj)
652
+
649 653
         }
650 654
 
651 655
       },

+ 0 - 1
src/xt_pages/hospitalStation/summaryDetail.vue View File

@@ -63,7 +63,6 @@
63 63
                                 </template>
64 64
                             </el-table-column>
65 65
 
66
-
67 66
                             <el-table-column align="center" prop="name" width="80" label="备注">
68 67
                                 <template slot-scope="scope">
69 68
                                     <!--<el-input v-model="scope.row.remark" readonly></el-input>-->

+ 2 - 3
src/xt_pages/hospitalStation/template/printOne.vue View File

@@ -270,9 +270,7 @@ export default {
270 270
               );
271 271
             }
272 272
           }
273
-          console.log("处方222222", this.prescriptions);
274
-          var hisPatient = response.data.data.hisHospitalRecord;
275
-          this.hisPatient = hisPatient;
273
+          this.hisPatient = response.data.data.hisHospitalRecord;
276 274
           var projectlist = response.data.data.projectlist;
277 275
           console.log("所有项目列表", projectlist);
278 276
           this.projectList = projectlist;
@@ -402,6 +400,7 @@ export default {
402 400
     ids: function (val) {
403 401
       this.ids = val;
404 402
       this.getPrescriptionPrint();
403
+      this.getHisPatientDetail();
405 404
     },
406 405
   },
407 406
 };

+ 126 - 42
src/xt_pages/outpatientCharges/allListPrint.vue View File

@@ -14,7 +14,10 @@
14 14
     </template>
15 15
 
16 16
     <div class='dialysisPage' style="padding-top:40px;">
17
-      <printOne :list="list" :patient="patient" :order="order" :admin="admin" :hospital="his_hospital"></printOne>
17
+      <printOne  v-if="org_id != 10215 && org_id != 0" :list="list" :patient="patient" :order="order" :admin="admin" :hospital="his_hospital"></printOne>
18
+      <summary-print v-if="org_id == 10215|| org_id == 0" :list="list" :patient="patient" :order="order" :admin="admin" :hospital="his_hospital"></summary-print>
19
+
20
+<!--      <list-print-two :list="list" :patient="patient" :order="order" :admin="admin" :hospital="his_hospital"></list-print-two>-->
18 21
     </div>
19 22
   </div>
20 23
 </template>
@@ -23,10 +26,14 @@
23 26
   import { getHisOrderDetailCollect } from '@/api/his/his'
24 27
   import { uParseTime } from '@/utils/tools'
25 28
   import printOne from './allListTemplate/printOne'
29
+  import ListPrintTwo from './listTemplate/listPrintTwo'
30
+  import SummaryPrint from './allListTemplate/summaryPrint'
26 31
 
27 32
   export default {
28 33
     name: 'allListPrint',
29 34
     components: {
35
+      SummaryPrint,
36
+      ListPrintTwo,
30 37
       printOne
31 38
     },
32 39
     props: {
@@ -39,12 +46,13 @@
39 46
         order: {},
40 47
         admin: {},
41 48
         his_hospital:{},
49
+        org_id:0,
42 50
       }
43 51
     },
44 52
 
45 53
     created() {
46 54
       this.getInfo(this.paramsObj.id)
47
-
55
+      this.org_id = this.$store.getters.xt_user.org_id
48 56
     },
49 57
     methods: {
50 58
       getTimes(time) {
@@ -59,49 +67,97 @@
59 67
             return false
60 68
           } else {
61 69
             this.order = response.data.data.order
70
+            this.order['bedCostTotal'] = response.data.data.bedCostTotal
71
+            this.order['operationCostTotal'] = response.data.data.operationCostTotal
72
+            this.order['otherCostTotal'] = response.data.data.otherCostTotal
73
+            this.order['materialCostTotal'] = response.data.data.materialCostTotal
74
+            this.order['westernMedicineCostTotal'] = response.data.data.westernMedicineCostTotal
75
+            this.order['chineseTraditionalMedicineCostTotal'] = response.data.data.chineseTraditionalMedicineCostTotal
76
+            this.order['checkCostTotal'] = response.data.data.checkCostTotal
77
+            this.order['zhenChaCostTotal'] = response.data.data.zhenChaCostTotal
78
+            this.order['laboratoryCostTotal'] = response.data.data.laboratoryCostTotal
79
+            this.order['treatCostTotal'] = response.data.data.treatCostTotal
80
+
81
+
62 82
             this.patient = response.data.data.patient
63 83
             this.admin = response.data.data.admin_info
64 84
             this.his_hospital = response.data.data.his_hospital
65 85
             var order_info = response.data.data.order_info
66 86
 
67
-            //获取所有项目类型进行去重
68
-            let med_chrgitm_types = []
69
-            for (let i = 0; i < order_info.length; i++) {
70
-              med_chrgitm_types.push(order_info[i].med_chrgitm_type)
71
-            }
72
-            const obj = {}
73
-            med_chrgitm_types = med_chrgitm_types.reduce((cur, next) => {
74
-              obj[next] ? '' : obj[next] = true && cur.push(next)
75
-              return cur
76
-            }, []) // 设置cur默认类型为数组,并且初始值为空的数组
77
-
78
-            let tempOrderInfo = []
79
-
80
-            for (let i = 0; i < med_chrgitm_types.length; i++) {
81
-              let obj = {
82
-                total: 0,
83
-                details: []
87
+            if(this.$store.getters.xt_user.org_id == 10215 || this.$store.getters.xt_user.org_id == 0){
88
+              //获取所有项目类型进行去重
89
+              let med_chrgitm_types = []
90
+              for (let i = 0; i < order_info.length; i++) {
91
+                med_chrgitm_types.push(order_info[i].med_chrgitm_type)
84 92
               }
85
-              let tempDetails = []
86
-              for (let b = 0; b < order_info.length; b++) {
87
-                if (med_chrgitm_types[i] == order_info[b].med_chrgitm_type) {
88
-                  tempDetails.push(order_info[b])
93
+              const obj = {}
94
+              med_chrgitm_types = med_chrgitm_types.reduce((cur, next) => {
95
+                obj[next] ? '' : obj[next] = true && cur.push(next)
96
+                return cur
97
+              }, []) // 设置cur默认类型为数组,并且初始值为空的数组
98
+
99
+              let tempOrderInfo = []
100
+
101
+              for (let i = 0; i < med_chrgitm_types.length; i++) {
102
+                let obj = {
103
+                  total: 0,
104
+                  details: []
105
+                }
106
+                let tempDetails = []
107
+                for (let b = 0; b < order_info.length; b++) {
108
+                  if (med_chrgitm_types[i] == order_info[b].med_chrgitm_type) {
109
+                    tempDetails.push(order_info[b])
110
+                  }
89 111
                 }
90
-              }
91 112
 
92
-              obj.details = this.setNewData(tempDetails)
93
-              obj.total = this.getTotal(obj.details)
113
+                obj.details = this.setNewData(tempDetails)
114
+                // obj.total = this.getTotal(obj.details)
115
+                //
116
+                // obj.details.push({
117
+                //   total: obj.total,
118
+                //   is_total: 1,
119
+                // })
120
+                this.list =  this.list.concat(obj.details)
121
+              }
94 122
 
95
-              obj.details.push({
96
-                total: obj.total,
97
-                is_total: 1,
98
-              })
99
-              this.list =  this.list.concat(obj.details)
100
-            }
101 123
 
124
+            }else{
102 125
 
126
+              //获取所有项目类型进行去重
127
+              let med_chrgitm_types = []
128
+              for (let i = 0; i < order_info.length; i++) {
129
+                med_chrgitm_types.push(order_info[i].med_chrgitm_type)
130
+              }
131
+              const obj = {}
132
+              med_chrgitm_types = med_chrgitm_types.reduce((cur, next) => {
133
+                obj[next] ? '' : obj[next] = true && cur.push(next)
134
+                return cur
135
+              }, []) // 设置cur默认类型为数组,并且初始值为空的数组
136
+
137
+              let tempOrderInfo = []
138
+
139
+              for (let i = 0; i < med_chrgitm_types.length; i++) {
140
+                let obj = {
141
+                  total: 0,
142
+                  details: []
143
+                }
144
+                let tempDetails = []
145
+                for (let b = 0; b < order_info.length; b++) {
146
+                  if (med_chrgitm_types[i] == order_info[b].med_chrgitm_type) {
147
+                    tempDetails.push(order_info[b])
148
+                  }
149
+                }
103 150
 
151
+                obj.details = this.setNewData(tempDetails)
152
+                obj.total = this.getTotal(obj.details)
104 153
 
154
+                obj.details.push({
155
+                  total: obj.total,
156
+                  is_total: 1,
157
+                })
158
+                this.list =  this.list.concat(obj.details)
159
+              }
160
+            }
105 161
           }
106 162
         })
107 163
       }, getTotal:function(items){
@@ -155,8 +211,8 @@
155 211
               if (new_drug_ids[i].id == details[a].advice.drug_id && new_drug_ids[i].price == details[a].advice.price) {
156 212
                 obj['name'] = details[a].advice.advice_name
157 213
                 obj['spec'] = details[a].advice.drug.drug_spec
158
-                obj['unit'] = details[a].advice.drug.max_unit
159
-
214
+                obj['unit'] = details[a].advice.drug.min_unit
215
+                obj['medicine_insurance_kind'] = this.getMedicineInsuranceType(details[a].chrgitm_lv)
160 216
                 obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type)
161 217
                 obj['price'] = parseFloat(details[a].pric)
162 218
                 obj['is_total'] = 2
@@ -176,12 +232,17 @@
176 232
               if (new_project_ids[i].id == details[a].project.project_id && new_project_ids[i].price == details[a].project.price) {
177 233
                if( details[a].project.type == 2){
178 234
                  obj['name'] = details[a].project.project.project_name
235
+                 obj['spec'] = '次'
236
+                 obj['unit'] = details[a].project.project.unit
237
+
238
+
179 239
                }else if(details[a].project.type == 3){
180 240
                  obj['name'] = details[a].project.good_info.good_name
181
-               }
182
-                obj['unit'] = details[a].project.unit
241
+                 obj['spec'] = details[a].project.good_info.specification_name
242
+                 obj['unit'] = this.getGoodUnit( details[a].project.good_info.good_unit)
183 243
 
184
-                obj['spec'] = '1'
244
+               }
245
+                obj['medicine_insurance_kind'] = this.getMedicineInsuranceType(details[a].chrgitm_lv)
185 246
                 obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type)
186 247
                 obj['price'] = parseFloat(details[a].pric)
187 248
                 obj['is_total'] = 2
@@ -196,7 +257,14 @@
196 257
 
197 258
         return list
198 259
 
199
-      }, unique(array) {
260
+      }, getGoodUnit(id) {
261
+        var goodUnit = this.$store.getters.good_unit
262
+        for (let i = 0; i < goodUnit.length; i++) {
263
+          if (goodUnit[i].id == id) {
264
+            return goodUnit[i].name
265
+          }
266
+        }
267
+      },unique(array) {
200 268
         // res用来存储结果
201 269
         var res = []
202 270
         for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
@@ -211,9 +279,7 @@
211 279
           }
212 280
         }
213 281
         return res
214
-      },
215
-
216
-      getType(med_chrgitm_type) {
282
+      },getType(med_chrgitm_type){
217 283
         switch (med_chrgitm_type) {
218 284
           case '01':
219 285
             return '床位费'
@@ -272,11 +338,29 @@
272 338
 
273 339
         }
274 340
 
341
+
342
+      },
343
+
344
+      getMedicineInsuranceType(type) {
345
+        switch (type) {
346
+          case "01":
347
+            return '甲类'
348
+            break
349
+          case "02":
350
+            return '乙类'
351
+
352
+            break
353
+          case "03":
354
+            return '自费'
355
+            break
356
+
357
+        }
358
+
275 359
       },
276 360
       printThisPage() {
277 361
 
278 362
         const style =
279
-          '@media print {.allListTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.allListInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .allListTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 14px;border-color: #000;text-align:left;}.allListTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}'
363
+          '@media print {.allListTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.allListInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .allListTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 20px;font-size: 14px;border-color: #000;text-align:left;}.allListTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}'
280 364
         printJS({
281 365
           printable: 'allList-print',
282 366
           type: 'html',

+ 1 - 1
src/xt_pages/outpatientCharges/allListTemplate/printOne.vue View File

@@ -167,7 +167,7 @@ export default {
167 167
   width: 100%;
168 168
   text-align: center;
169 169
   border-collapse: collapse;
170
-  line-height: 40px;
170
+  line-height: 20px;
171 171
   font-size: 14px;
172 172
   border-color: #000;
173 173
   text-align: left;

+ 241 - 0
src/xt_pages/outpatientCharges/allListTemplate/summaryPrint.vue View File

@@ -0,0 +1,241 @@
1
+<template>
2
+  <div id="allList-print" class="allList-print">
3
+    <div class="allListTitle">{{ $store.getters.xt_user.org.org_name }}汇总清单</div>
4
+    <div class="allListInfo">
5
+      <div>科别:门诊</div>
6
+      <div>床号:</div>
7
+      <div>门诊号:{{ order.mdtrt_id }}</div>
8
+      <div>患者姓名:{{ patient.name }}</div>
9
+    </div>
10
+
11
+    <div class="allListInfo">
12
+      <div>预交款:</div>
13
+      <div>门诊日期:</div>
14
+      <div>总费用:{{ order.medfee_sumamt }}</div>
15
+    </div>
16
+
17
+    <div class="allListInfo">
18
+      <div>西药:{{order.westernMedicineCostTotal?order.westernMedicineCostTotal:''}}</div>
19
+      <div >中成药:{{order.chineseTraditionalMedicineCostTotal?order.chineseTraditionalMedicineCostTotal:''}}</div>
20
+      <div >中草药:</div>
21
+      <div >检查费:{{order.checkCostTotal?order.checkCostTotal:''}}</div>
22
+    </div>
23
+
24
+
25
+    <div class="allListInfo">
26
+      <div >输氧费:</div>
27
+      <div>手术费:{{order.operationCostTotal?order.operationCostTotal:''}}</div>
28
+      <div >化验费:{{order.laboratoryCostTotal?order.laboratoryCostTotal:''}}</div>
29
+      <div>输血费:</div>
30
+    </div>
31
+
32
+
33
+    <div class="allListInfo">
34
+      <div >诊察费:{{order.zhenChaCostTotal?order.zhenChaCostTotal:''}}</div>
35
+      <div >治疗费:{{order.treatCostTotal?order.treatCostTotal:''}}</div>
36
+      <div >护理费:</div>
37
+      <div >床位费:{{order.bedCostTotal?order.bedCostTotal:''}}</div>
38
+    </div>
39
+
40
+
41
+    <div class="allListInfo">
42
+      <div >麻醉费:</div>
43
+      <div >材料费:{{order.materialCostTotal?order.materialCostTotal:''}}</div>
44
+      <div >其他费:{{order.otherCostTotal?order.otherCostTotal:''}}</div>
45
+    </div>
46
+    <!--    <div style="display:flex;justify-content: space-between;">-->
47
+<!--          <div style="position: absolute;top:160px;left:40px">西药</div>-->
48
+<!--          <div style="position: absolute;top:160px;left:110px">{{ list.westernMedicineCostTotal }}</div>-->
49
+<!--          <div style="position: absolute;top:160px;left:180px">检查费</div>-->
50
+<!--          <div style="position: absolute;top:160px;left:260px">{{ list.checkCostTotal }}</div>-->
51
+<!--          <div style="position: absolute;top:160px;left:340px">化验费</div>-->
52
+<!--          <div style="position: absolute;top:160px;left:420px">{{ list.treatCostTotal }}</div>-->
53
+<!--          <div style="position: absolute;top:160px;left:500px">治疗费</div>-->
54
+<!--          <div style="position: absolute;top:160px;left:580px">{{ list.bedCostTotal }}</div>-->
55
+<!--          <div style="position: absolute;top:160px;left:500px">麻醉费</div>-->
56
+<!--          <div style="position: absolute;top:160px;left:580px">{{ list.bedCostTotal }}</div>-->
57
+    <!--    </div>-->
58
+    <!--    <div style="display:flex;justify-content: space-between;">-->
59
+    <!--      <div style="position: absolute;top:190px;left:40px">中成药</div>-->
60
+    <!--      <div style="position: absolute;top:190px;left:110px">{{ list.chineseTraditionalMedicineCostTotal }}</div>-->
61
+    <!--      <div style="position: absolute;top:190px;left:180px">输氧费</div>-->
62
+    <!--      <div style="position: absolute;top:190px;left:260px">{{ list.laboratoryCostTotal }}</div>-->
63
+    <!--      <div style="position: absolute;top:190px;left:340px">输血费</div>-->
64
+    <!--      <div style="position: absolute;top:190px;left:420px">{{ list.operationCostTotal }}</div>-->
65
+    <!--      <div style="position: absolute;top:190px;left:500px">护理费</div>-->
66
+    <!--      <div style="position: absolute;top:190px;left:580px">{{ list.otherCostTotal }}</div>-->
67
+
68
+    <!--      <div style="position: absolute;top:160px;left:500px">材料费</div>-->
69
+    <!--      <div style="position: absolute;top:160px;left:580px">{{ list.bedCostTotal }}</div>-->
70
+    <!--    </div>-->
71
+    <!--    <div style="display:flex;justify-content: space-between;">-->
72
+    <!--      <div style="position: absolute;top:210px;left:40px">中草药</div>-->
73
+    <!--      <div style="position: absolute;top:210px;left:110px"></div>-->
74
+    <!--      <div style="position: absolute;top:210px;left:180px">手术费</div>-->
75
+    <!--      <div style="position: absolute;top:210px;left:260px"></div>-->
76
+    <!--      <div style="position: absolute;top:210px;left:340px">诊察费</div>-->
77
+    <!--      <div style="position: absolute;top:210px;left:420px">{{ list.materialCostTotal }}</div>-->
78
+    <!--      <div style="position: absolute;top:210px;left:500px">床位费</div>-->
79
+    <!--      <div style="position: absolute;top:210px;left:580px"></div>-->
80
+    <!--      <div style="position: absolute;top:160px;left:500px">其他</div>-->
81
+    <!--      <div style="position: absolute;top:160px;left:580px">{{ list.bedCostTotal }}</div>-->
82
+    <!--    </div>-->
83
+
84
+
85
+    <table class="allListTable" border="1">
86
+      <tr>
87
+        <td style="width:10%">费用类别</td>
88
+        <td style="width:35%">项目名称</td>
89
+        <td style="width:15%">规格</td>
90
+        <td style="width:5%">单位</td>
91
+        <td style="width:10%">数量</td>
92
+        <td style="width:10%">单价</td>
93
+        <td style="width:10%">金额</td>
94
+        <td style="width:10%">医保类型</td>
95
+
96
+      </tr>
97
+      <template v-for='(item,index) in list'>
98
+        <tr>
99
+          <td style="width:10%">{{ item.med_chrgitm_type }}</td>
100
+          <td style="width:35%">{{ item.name }}</td>
101
+          <td style="width:15%">{{ item.spec }}</td>
102
+          <td style="width:5%">{{ item.unit }}</td>
103
+          <td style="width:10%">{{ item.count }}</td>
104
+          <td style="width:10%">{{ item.price }}</td>
105
+          <td style="width:10%">{{ (item.price * item.count).toFixed(2) }}</td>
106
+          <td style="width:10%">{{ item.medicine_insurance_kind }}</td>
107
+
108
+        </tr>
109
+      </template>
110
+    </table>
111
+
112
+  </div>
113
+</template>
114
+
115
+<script>
116
+import { uParseTime } from '@/utils/tools'
117
+
118
+export default {
119
+  props: {
120
+    list: {
121
+      type: Array,
122
+      default: function() {
123
+        return []
124
+      }
125
+    }, patient: {
126
+      type: Object,
127
+      default: function() {
128
+        return {}
129
+      }
130
+    }, order: {
131
+      type: Object,
132
+      default: function() {
133
+        return {}
134
+      }
135
+    }, admin: {
136
+      type: Object,
137
+      default: function() {
138
+        return {}
139
+      }
140
+    }, hospital: {
141
+      type: Object,
142
+      default: function() {
143
+        return {}
144
+      }
145
+
146
+    }
147
+  },
148
+  data() {
149
+    return {
150
+      page: 1,
151
+      pageArr: []
152
+    }
153
+  },
154
+  methods: {
155
+    getNowTime: function() {
156
+      let dateTime
157
+      let yy = new Date().getFullYear()
158
+      let mm = new Date().getMonth() + 1
159
+      let dd = new Date().getDate()
160
+      let hh = new Date().getHours()
161
+      let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
162
+          :
163
+          new Date().getMinutes()
164
+      let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
165
+          :
166
+          new Date().getSeconds()
167
+      dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss
168
+      return dateTime
169
+    },
170
+    getTimes(time) {
171
+      return uParseTime(time, '{y}-{m}-{d}')
172
+    }, getTotal: function(items) {
173
+      let total = 0
174
+      for (let i = 0; i < items.length; i++) {
175
+        total = total + (items[i].count * items[i].price).toFixed(2)
176
+      }
177
+      return total
178
+
179
+    }
180
+
181
+  },
182
+  watch: {
183
+    list: {
184
+      handler(newVal) {
185
+        this.getPage()
186
+      },
187
+      deep: true
188
+    }
189
+  }
190
+}
191
+
192
+
193
+</script>
194
+
195
+<style lang="scss" scoped>
196
+.allList-print {
197
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
198
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
199
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
200
+  margin-bottom: 20px;
201
+  padding: 20px 10px;
202
+}
203
+
204
+.allListTitle {
205
+  font-size: 24px;
206
+  text-align: center;
207
+  font-weight: bold;
208
+  margin-bottom: 10px;
209
+}
210
+
211
+.allListInfo {
212
+  display: flex;
213
+  font-size: 16px;
214
+  justify-content: space-between;
215
+  margin: 10px 0;
216
+}
217
+
218
+.allListTable {
219
+  width: 100%;
220
+  text-align: center;
221
+  border-collapse: collapse;
222
+  line-height: 20px;
223
+  font-size: 14px;
224
+  border-color: #000;
225
+  text-align: left;
226
+}
227
+
228
+.allListTable tr td {
229
+  padding: 0 5px;
230
+}
231
+
232
+.tableBottom {
233
+  font-size: 16px;
234
+  display: flex;
235
+  margin-top: 20px;
236
+}
237
+
238
+.tableBottomOne {
239
+  margin-right: 40px;
240
+}
241
+</style>

+ 11 - 0
src/xt_pages/outpatientCharges/components/registerDialog.vue View File

@@ -289,6 +289,9 @@
289 289
           label: '身份证'
290 290
         }, {
291 291
           value: 3,
292
+          label: '电子社保卡'
293
+        }, {
294
+          value: 4,
292 295
           label: '电子凭证'
293 296
         }],
294 297
         settlement: [
@@ -663,6 +666,14 @@
663 666
                 that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
664 667
                 that.form.phone = patient.phone
665 668
                 that.form.id_card = patient.id_card_no
669
+              } else {
670
+                that.form.id = patient.id
671
+                that.form.name = patient.name
672
+                that.form.gender = patient.gender
673
+                that.form.age = patient.age
674
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
675
+                that.form.phone = patient.phone
676
+                that.form.id_card = patient.id_card_no
666 677
               }
667 678
               that.$message({ message: '读卡成功', type: 'success' })
668 679
             }

+ 2 - 2
src/xt_pages/outpatientCharges/costComparison.vue View File

@@ -761,8 +761,8 @@ c<template>
761 761
               }
762 762
 
763 763
               import('@/vendor/Export2Excel').then(excel => {
764
-                const tHeader = ['序号', '姓名','个人编te号', '门诊号', '挂号日期', '诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '起付线II','超封顶线费用','合计','统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
765
-                const filterVal = ['序号', '姓名','个人编号', '门诊号', '挂号日期','诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '起付线II','超封顶线费用','合计','统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
764
+                const tHeader = ['序号', '姓名','个人编号', '门诊号', '挂号日期', '诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '按比例自付II','超封顶线费用','合计','基本统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
765
+                const filterVal = ['序号', '姓名','个人编号', '门诊号', '挂号日期','诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '按比例自付II','超封顶线费用','合计','基本统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
766 766
                 // const filterVal = [ '姓名', '身份证', '个人编号', '门诊流水号', '挂号日期', '起付线', '统筹基金', '个人支付', '个账支付', '现金支付', '总费用', '冲销标志']
767 767
                 const merges = ['A1:A2', 'B1:B2', 'C1:E1', 'F1:H1', 'I1:K1', 'L1:N1', 'O1:Q1', 'R1:T1', 'U1:W1', 'X1:Z1', 'AA1:AC1', 'AD1:AF1', 'AG1:AI1', 'AJ1:AL1', 'AM1:AO1', 'AP1:AR1', 'AS1:AU1', 'AV1:AX1', 'AY1:BA1', 'BB1:BD1', 'BE1:BG1', 'BH1:BJ1', 'BK1:BM1']
768 768
 

+ 5 - 3
src/xt_pages/outpatientCharges/invoicePrint.vue View File

@@ -13,15 +13,15 @@
13 13
     </template>
14 14
     <div class="app-container" style="padding-top:40px;">
15 15
         <div class='dialysisPage'>
16
-          <div v-if="org_id != 10106 && org_id != 10215 && org_id != 4 && org_id != 10188 && org_id != 10217  && org_id != 0" >
16
+          <div v-if="org_id != 10106 && org_id != 10215 && org_id != 4 && org_id != 10188 && org_id != 10217 && org_id != 0" >
17 17
             <printOne v-if="org_id != 10088 " :paramsObj="invoiceParams"></printOne>
18 18
             <printThree v-if="org_id == 10088" :paramsObj="invoiceParams"></printThree>
19 19
           </div>
20 20
           <printTwo v-if="org_id == 10106" :paramsObj="invoiceParams"></printTwo>
21 21
           <printFour v-if="org_id == 10215 || org_id == 4" :paramsObj="invoiceParams"></printFour>
22 22
           <printFive v-if="org_id == 10188 " :paramsObj="invoiceParams"></printFive>
23
-
24 23
           <printSix v-if="org_id == 10217|| org_id == 0" :paramsObj="invoiceParams"></printSix>
24
+          
25 25
         </div>
26 26
     </div>
27 27
   </div>
@@ -34,6 +34,7 @@ import printThree from './invoiceTemplate/printThree'
34 34
 import printFour from './invoiceTemplate/printFour'
35 35
 import printFive from './invoiceTemplate/printFive'
36 36
 import printSix from './invoiceTemplate/printSix'
37
+import printSeven from './invoiceTemplate/printSeven'
37 38
 export default {
38 39
    name: "invoicePrint",
39 40
   components: {
@@ -42,7 +43,8 @@ export default {
42 43
     printThree,
43 44
     printFour,
44 45
     printFive,
45
-    printSix
46
+    printSix,
47
+    printSeven
46 48
   },
47 49
   props:{
48 50
     invoiceParams:Object

+ 230 - 0
src/xt_pages/outpatientCharges/invoiceTemplate/printSeven.vue View File

@@ -0,0 +1,230 @@
1
+<template>
2
+    <div id='invoice-print'>
3
+        <div style="display:flex;">
4
+            <div style="position: absolute;top:70px;left:70px;">{{ list.order_number }}三四十</div>
5
+            <!-- <div>{{ list.id_card_no }}</div> -->
6
+        </div>
7
+        <div style="display:flex;justify-content: space-between;">
8
+            <!-- <div>{{ list.department_name }}</div> -->
9
+            <div  style="position: absolute;top:70px;left:300px">{{ list.number }}</div>
10
+            <div></div>
11
+            <div  style="position: absolute;left:560px;top:70px;">
12
+                <span>{{ printDate.slice(0,4) }}</span>
13
+                <span>{{ printDate.slice(5,7) }}</span>
14
+                <span>{{ printDate.slice(8,11) }}</span>
15
+            </div>
16
+        </div>
17
+        <div style="display:flex;justify-content: space-between;">
18
+            <div style="position: absolute;top:90px;left:120px;"> {{ paramsObj.name }}</div>
19
+            <div style="position: absolute;top:90px;left:240px;">√</div>
20
+            <!-- <div>{{ list.pay_way }}</div> -->
21
+            <!-- <div style="position: absolute;top:70px;left:460px;">{{ paramsObj.setl_time.split(' ')[0] }}</div>
22
+            <div style="position: absolute;top:70px;left:560px;">{{ paramsObj.setl_time.split(' ')[0] }}</div> -->
23
+        </div>
24
+        <div style="display:flex;justify-content: space-between;">
25
+            <!-- <div>{{ paramsObj.gend == 1 ? '男' : '女' }}</div> -->
26
+            <div style="position: absolute;top:110px;left:260px;">{{ totalPrice - list.psn_cash_money }}</div>
27
+            <div style="position: absolute;top:110px;left:440px;">{{ list.psn_cash_money }}</div>
28
+            <div style="position: absolute;top:110px;left:580px;">门慢结算</div>
29
+        </div>
30
+        <div style="display:flex;justify-content: space-between;">
31
+            <div style="position: absolute;top:160px;left:40px">西药</div>
32
+            <div style="position: absolute;top:160px;left:110px">{{ list.westernMedicineCostTotal }}</div>
33
+            <div style="position: absolute;top:160px;left:180px">检查费</div>
34
+            <div style="position: absolute;top:160px;left:260px">{{ list.checkCostTotal }}</div>
35
+            <div style="position: absolute;top:160px;left:340px">治疗费</div>
36
+            <div style="position: absolute;top:160px;left:420px">{{ list.treatCostTotal }}</div>
37
+            <div style="position: absolute;top:160px;left:500px">床位费</div>
38
+            <div style="position: absolute;top:160px;left:580px">{{ list.bedCostTotal }}</div>
39
+        </div>
40
+        <div style="display:flex;justify-content: space-between;">
41
+            <div style="position: absolute;top:190px;left:40px">中成药</div>
42
+            <div style="position: absolute;top:190px;left:110px">{{ list.chineseTraditionalMedicineCostTotal }}</div>
43
+            <div style="position: absolute;top:190px;left:180px">化验费</div>
44
+            <div style="position: absolute;top:190px;left:260px">{{ list.laboratoryCostTotal }}</div>
45
+            <div style="position: absolute;top:190px;left:340px">手术费</div>
46
+            <div style="position: absolute;top:190px;left:420px">{{ list.operationCostTotal }}</div>
47
+            <div style="position: absolute;top:190px;left:500px">其他费</div>
48
+            <div style="position: absolute;top:190px;left:580px">{{ list.otherCostTotal }}</div>
49
+        </div>
50
+        <div style="display:flex;justify-content: space-between;">
51
+            <div style="position: absolute;top:210px;left:40px"></div>
52
+            <div style="position: absolute;top:210px;left:110px"></div>
53
+            <div style="position: absolute;top:210px;left:180px"></div>
54
+            <div style="position: absolute;top:210px;left:260px"></div>
55
+            <div style="position: absolute;top:210px;left:340px">材料费</div>
56
+            <div style="position: absolute;top:210px;left:420px">{{ list.materialCostTotal }}</div>
57
+            <div style="position: absolute;top:210px;left:500px"></div>
58
+            <div style="position: absolute;top:210px;left:580px"></div>
59
+        </div>
60
+        <div>
61
+            <span>
62
+            <span  style="position: absolute;top:260px;left:180px">
63
+                <span v-if="zhongwen.indexOf('万') > -1 && zhongwen.indexOf('拾') > -1 && zhongwen.indexOf('拾') == 1">
64
+                    {{ zhongwen.substring(0,1) }}
65
+                </span>
66
+                <span v-else>零</span>
67
+            </span>
68
+            <span  style="position: absolute;top:260px;left:220px">
69
+                <span v-if="zhongwen.indexOf('万') > -1">
70
+                    {{ zhongwen.substring(zhongwen.indexOf('万') - 1,zhongwen.indexOf('万')) }}
71
+                </span>
72
+                <span v-else>零</span>
73
+            </span>
74
+            <span  style="position: absolute;top:260px;left:260px">
75
+                <span v-if="zhongwen.indexOf('仟') > -1">
76
+                    {{ zhongwen.substring(zhongwen.indexOf('仟') - 1,zhongwen.indexOf('仟')) }}
77
+                </span>
78
+                <span v-else>零</span>
79
+            </span>
80
+            <span  style="position: absolute;top:260px;left:300px">
81
+                <span v-if="zhongwen.indexOf('佰') > -1">
82
+                    {{ zhongwen.substring(zhongwen.indexOf('佰') - 1,zhongwen.indexOf('佰')) }}
83
+                </span>
84
+                <span v-else>零</span>
85
+            </span>
86
+            <span style="position: absolute;top:260px;left:340px">
87
+                <span v-if="zhongwen.indexOf('拾') > -1">
88
+                    {{ zhongwen.substring(zhongwen.indexOf('拾') - 1,zhongwen.indexOf('拾')) }}
89
+                </span>
90
+                <span v-else>零</span>
91
+            </span>
92
+            <span  style="position: absolute;top:260px;left:380px">
93
+                <span v-if="zhongwen.indexOf('元') > -1 && zhongwen.substring(zhongwen.indexOf('元') - 1,zhongwen.indexOf('元')) != '拾'">
94
+                    {{ zhongwen.substring(zhongwen.indexOf('元') - 1,zhongwen.indexOf('元')) }}
95
+                </span>
96
+                <span v-else>零</span>
97
+            </span>
98
+            <span  style="position: absolute;top:260px;left:420px">
99
+                <span v-if="zhongwen.indexOf('角') > -1">
100
+                    {{ zhongwen.substring(zhongwen.indexOf('角') - 1,zhongwen.indexOf('角')) }}
101
+                </span>
102
+                <span v-else>零</span>
103
+            </span>
104
+            <span  style="position: absolute;top:260px;left:460px">
105
+                <span v-if="zhongwen.indexOf('分') > -1">
106
+                    {{ zhongwen.substring(zhongwen.indexOf('分') - 1,zhongwen.indexOf('分')) }}
107
+                </span>
108
+                <span v-else>零</span>
109
+            </span>
110
+            </span>
111
+            <span style="position: absolute;top:260px;left:540px">{{ totalPrice }}</span>
112
+        </div>
113
+        <div style="position: absolute;top:300px;left:460px">现金:{{ list.psn_cash_money }}</div>
114
+        <div>
115
+            <div style="position: absolute;top:340px;left:120px">{{ org_name }}</div>
116
+            <div v-if="org_id == 9990" style="position: absolute;top:340px;left:300px">钱玉玲</div>
117
+            <div v-if="org_id == 9990" style="position: absolute;top:340px;left:420px">陈国杰</div>
118
+        </div>
119
+    </div>
120
+</template>
121
+
122
+
123
+<script>
124
+import { getInvoice } from '@/api/project/project'
125
+export default {
126
+    props:{
127
+        paramsObj:Object
128
+    },
129
+    data(){
130
+        return{
131
+            list:{},
132
+            printDate:'',
133
+            zhongwen:'',
134
+            totalPrice:0.0,
135
+            org_id:'',
136
+            org_name:''
137
+        }
138
+    },
139
+    created(){
140
+        console.log('paramsObj',this.paramsObj)
141
+        let params = {
142
+            order_id: this.paramsObj.order_id,
143
+            patient_id: this.paramsObj.patient_id,
144
+            number: this.paramsObj.number,
145
+        }
146
+        this.getInvoice(params)
147
+        // var data = new Date();
148
+        // var month =data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
149
+        // var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
150
+        // this.printDate = data.getFullYear() + "-" + month + "-" + date;
151
+        // this.smalltoBIG(982732.21)
152
+        this.org_id = this.$store.getters.xt_user.org_id
153
+        this.org_name = this.$store.getters.xt_user.org.org_name
154
+    },
155
+    methods:{
156
+        getInvoice(params){
157
+            getInvoice(params).then((res) => {
158
+                console.log('res',res)
159
+                this.list = res.data.data
160
+                this.totalPrice = this.list.westernMedicineCostTotal + this.list.checkCostTotal + this.list.treatCostTotal + this.list.bedCostTotal + this.list.chineseTraditionalMedicineCostTotal +
161
+                                    this.list.laboratoryCostTotal + this.list.operationCostTotal + this.list.otherCostTotal + this.list.materialCostTotal
162
+                this.smalltoBIG(this.totalPrice)
163
+                var data = new Date(res.data.data.date * 1000);
164
+                var month =data.getMonth() < 9 ? "0" + (data.getMonth() + 1) : data.getMonth() + 1;
165
+                var date = data.getDate() <= 9 ? "0" + data.getDate() : data.getDate();
166
+                this.printDate = data.getFullYear() + "-" + month + "-" + date;
167
+            })
168
+        },
169
+        smalltoBIG(n) {
170
+            // let fraction = ['角', '分'];
171
+            // let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
172
+            // let unit = [['元.', '万,', '亿,'], ["元",'拾', '佰', '仟']];
173
+            // let head = price < 0 ? '欠' : '';
174
+            // price = Math.abs(price);
175
+            // let upper = '';
176
+            // for (let i = 0; i < fraction.length; i++) {
177
+            // upper += (digit[Math.floor(price * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
178
+            // }
179
+            // upper = upper || '整';
180
+            // price = Math.floor(price);
181
+            // for (let i = 0; i < unit[0].length && price > 0; i++) {
182
+            // let p = '';
183
+            // for (let j = 0; j < unit[1].length && price > 0; j++) {
184
+            //     p = digit[price % 10] + unit[1][j] + p;
185
+            //     price = Math.floor(price / 10);
186
+            // }
187
+            // upper = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + upper;
188
+            // }
189
+            // this.zhongwen = head + upper.replace(/(零.)*零圆/, '圆').replace(/(零.)+/g, '零').replace(/^整$/, '零圆整')
190
+            // console.log('6666',head + upper.replace(/(零.)*零圆/, '圆').replace(/(零.)+/g, '零').replace(/^整$/, '零圆整'))
191
+            if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)){
192
+                return "数据非法";  //判断数据是否大于0
193
+            }
194
+
195
+            var unit = "仟佰拾亿仟佰拾万仟佰拾元角分", str = "";
196
+            n += "00";
197
+
198
+            var indexpoint = n.indexOf('.');  // 如果是小数,截取小数点前面的位数
199
+
200
+            if (indexpoint >= 0){
201
+
202
+                n = n.substring(0, indexpoint) + n.substr(indexpoint+1, 2);   // 若为小数,截取需要使用的unit单位
203
+            }
204
+
205
+            unit = unit.substr(unit.length - n.length);  // 若为整数,截取需要使用的unit单位
206
+            for (var i=0; i < n.length; i++){
207
+                str += "零壹贰叁肆伍陆柒捌玖".charAt(n.charAt(i)) + unit.charAt(i);  //遍历转化为大写的数字
208
+            }
209
+
210
+            this.zhongwen =  str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
211
+            console.log(this.zhongwen)
212
+        },
213
+
214
+    },
215
+    watch:{
216
+        paramsObj:{//深度监听,可监听到对象、数组的变化
217
+            handler(val, oldVal){
218
+                let params = {
219
+                    order_id: val.order_id,
220
+                    patient_id: val.patient_id,
221
+                    number: val.number,
222
+                }
223
+                this.getInvoice(params)
224
+
225
+            },
226
+            deep:true
227
+        }
228
+    }
229
+}
230
+</script>

+ 18 - 17
src/xt_pages/outpatientCharges/invoiceTemplate/printSix.vue View File

@@ -1,12 +1,12 @@
1 1
 <template>
2 2
     <div id='invoice-print'>
3
-        <div v-for='(i,index) in pageArr.length' :key="index">
4
-            <div :style="{position: 'absolute',top:(10 + (index * 400))  + 'px',left:130+ 'px',}">盐城大丰悦达金骆驼血液透析中心</div>
5
-            <div :style="{position: 'absolute',top:(40 + (index * 400))  + 'px',left:90+ 'px',}">{{ list.order_number }}</div>
3
+        <div v-for='(i,index) in pageArr.length' :key="index" >
4
+            <div :style="{position: 'absolute',top:(20 + (index * 660))  + 'px',left:200+ 'px',}">盐城大丰悦达金骆驼血液透析中心</div>
5
+            <div :style="{position: 'absolute',top:(70 + (index * 660))  + 'px',left:150+ 'px',}">{{ list.order_number }}</div>
6 6
             <div style="display:flex;justify-content: space-between;">
7
-                <div :style="{position: 'absolute',top:(70 + (index * 400))  + 'px',left:80+ 'px',}">{{ paramsObj.name }}</div>
7
+                <div :style="{position: 'absolute',top:(100 + (index * 660))  + 'px',left:100+ 'px',}">{{ paramsObj.name }}</div>
8 8
             </div>
9
-            <div :style="{position: 'absolute',top:(130 + (index * 400))  + 'px',left:80+ 'px',}">
9
+            <div :style="{position: 'absolute',top:(190 + (index * 660))  + 'px',left:120+ 'px',}">
10 10
                 <div v-if="list.westernMedicineCostTotal">西药 {{ list.westernMedicineCostTotal }}</div>
11 11
                 <div v-if="list.treatCostTotal">治疗费 {{ list.treatCostTotal }}</div>
12 12
                 <div v-if="list.bedCostTotal">床位费 {{ list.bedCostTotal }}</div>
@@ -16,7 +16,7 @@
16 16
                 <div v-if="list.otherCostTotal">其他费 {{ list.otherCostTotal }}</div>
17 17
                 <div v-if="list.materialCostTotal">材料费 {{ list.materialCostTotal }}</div>
18 18
             </div>
19
-            <div :style="{position: 'absolute',top:(130 + (index * 400))  + 'px',left:260+ 'px'}">
19
+            <div :style="{position: 'absolute',top:(190 + (index * 660))  + 'px',left:300+ 'px'}">
20 20
                 <div v-for="item in list.order_info.slice(index * 10,(index * 10) + pageArr[index])">
21 21
                     <span style="display:inline-block;width:200px;">
22 22
                         <span v-if="item.advice.id == 0">
@@ -41,9 +41,9 @@
41 41
                     </span>
42 42
                 </div>
43 43
             </div>
44
-            <div :style="{position: 'absolute',top:(345 + (index * 400))  + 'px',left:110+ 'px'}">{{ zhongwen }}</div>
45
-            <div :style="{position: 'absolute',top:(345 + (index * 400))  + 'px',left:460+ 'px'}">{{ list.medfee_sumamt }}</div>
46
-            <div v-if="index == pageArr.length - 1" :style="{position: 'absolute',top:(360 + (index * 400))  + 'px',left:110+ 'px',width:100 + '%',fontSize:12+'px'}">
44
+            <div :style="{position: 'absolute',top:(390 + (index * 660))  + 'px',left:130+ 'px'}">{{ zhongwen }}</div>
45
+            <div :style="{position: 'absolute',top:(390 + (index * 660))  + 'px',left:480+ 'px'}">{{ list.medfee_sumamt }}</div>
46
+            <div v-if="index == pageArr.length - 1" :style="{position: 'absolute',top:(420 + (index * 660))  + 'px',left:110+ 'px',width:100 + '%',fontSize:12+'px'}">
47 47
                 <div style="display:flex;">
48 48
                   <div style="width:140px">医疗总费用:{{ list.order.medfee_sumamt }}</div>
49 49
                   <div style="width:140px">基金支付总额:{{ list.order.fund_pay_sumamt }}</div>
@@ -70,15 +70,15 @@
70 70
 
71 71
             </div>
72 72
             <div>
73
-                <div :style="{position: 'absolute',top:(420 + (index * 400))  + 'px',left:100+ 'px'}">盐城大丰悦达金骆驼血液透析中心</div>
74
-                <div :style="{position: 'absolute',top:(420 + (index * 400))  + 'px',left:360+ 'px'}">{{ paramsObj.chargeName }}</div>
75
-                <div :style="{position: 'absolute',top:(420 + (index * 400))  + 'px',left:520+ 'px'}">
73
+                <div :style="{position: 'absolute',top:(480 + (index * 660))  + 'px',left:140+ 'px'}">盐城大丰悦达金骆驼血液透析中心</div>
74
+                <div :style="{position: 'absolute',top:(480 + (index * 660))  + 'px',left:410+ 'px'}">{{ paramsObj.chargeName }}</div>
75
+                <div :style="{position: 'absolute',top:(480 + (index * 660))  + 'px',left:550+ 'px'}">
76 76
                     <span>{{  paramsObj.setl_time ? paramsObj.setl_time.split(' ')[0].slice(0,4) : getTime(list.date, '{y}-{m}-{d}').slice(0,4) }}</span>
77 77
                 </div>
78
-                <div :style="{position: 'absolute',top:(420 + (index * 400))  + 'px',left:560+ 'px'}">
78
+                <div :style="{position: 'absolute',top:(480 + (index * 660))  + 'px',left:610+ 'px'}">
79 79
                     <span>{{ paramsObj.setl_time ? parseInt(paramsObj.setl_time.split(' ')[0].slice(5,7)) : getTime(list.date, '{y}-{m}-{d}').slice(5,7) }}</span>
80 80
                 </div>
81
-                <div :style="{position: 'absolute',top:(420 + (index * 400))  + 'px',left:600+ 'px'}">
81
+                <div :style="{position: 'absolute',top:(480 + (index * 660))  + 'px',left:650+ 'px'}">
82 82
                     <span>{{ paramsObj.setl_time ? parseInt(paramsObj.setl_time.split(' ')[0].slice(8,11)) : getTime(list.date, '{y}-{m}-{d}').slice(8,11) }}</span>
83 83
                 </div>
84 84
             </div>
@@ -124,9 +124,9 @@ export default {
124 124
     methods:{
125 125
         getInvoice(params){
126 126
             getInvoice(params).then((res) => {
127
-                console.log('res',res)
127
+                // console.log('res',res)
128 128
                 this.list = res.data.data
129
-                console.log(this.list,'表单内容打印记得注释')
129
+                // console.log(this.list,'表单内容打印记得注释')
130 130
                 this.totalPrice = this.list.westernMedicineCostTotal + this.list.checkCostTotal + this.list.treatCostTotal + this.list.bedCostTotal + this.list.chineseTraditionalMedicineCostTotal +
131 131
                                     this.list.laboratoryCostTotal + this.list.operationCostTotal + this.list.otherCostTotal + this.list.materialCostTotal
132 132
                 this.smalltoBIG(this.list.medfee_sumamt)
@@ -136,7 +136,8 @@ export default {
136 136
                 this.printDate = data.getFullYear() + "-" + month + "-" + date;
137 137
                 this.pageArr = []
138 138
                 this.getPage()
139
-                console.log('pageArr',this.pageArr)
139
+                this.pageArr.push(10)
140
+                console.log('pageArr',this.pageArr.length)
140 141
             })
141 142
         },
142 143
         smalltoBIG(n) {

+ 47 - 14
src/xt_pages/outpatientCharges/listPrint.vue View File

@@ -14,9 +14,11 @@
14 14
     </template>
15 15
 
16 16
     <div class='dialysisPage' style="padding-top:40px;">
17
-      <printOne v-if="org_id != 10106" :list="list" :patient="patient" :order="order" :admin="admin"></printOne>
17
+      <printOne v-if="org_id != 10106 && org_id != 10215 && org_id != 0" :list="list" :patient="patient" :order="order" :admin="admin"></printOne>
18 18
       <printTwo v-if="org_id == 10106 && this.paramsObj.balance_accounts_type != 2" :info="info" :order_infos="order_infos" :p_admin="p_admin" :charge_admin="charge_admin"></printTwo>
19 19
       <print-three v-if="org_id == 10106 && this.paramsObj.balance_accounts_type == 2" :info="info" :order_infos="order_infos" :p_admin="p_admin" :charge_admin="charge_admin"></print-three>
20
+      <list-print-two v-if="org_id == 10215 || org_id == 0" :list="list" :patient="patient" :order="order" :admin="admin"></list-print-two>
21
+<!--      <list-print-two></list-print-two>-->
20 22
     </div>
21 23
   </div>
22 24
 </template>
@@ -25,15 +27,18 @@
25 27
   import printOne from './listTemplate/printOne'
26 28
   import printTwo from './listTemplate/printTwo'
27 29
   // import printThree from './listTemplate/printThree'
30
+  import print from "print-js";
28 31
 
29 32
   import { getHisOrderDetail,getPrivateExpensesOrder } from '@/api/his/his'
30 33
   import { uParseTime } from '@/utils/tools'
31 34
   import axios from 'axios'
32 35
   import PrintThree from './listTemplate/printThree'
36
+  import ListPrintTwo from './listTemplate/listPrintTwo'
33 37
 
34 38
   export default {
35 39
     name: 'listPrint',
36 40
     components: {
41
+      ListPrintTwo,
37 42
       PrintThree,
38 43
       printOne,
39 44
       printTwo
@@ -74,7 +79,7 @@
74 79
 
75 80
     methods: {
76 81
       getTimes(time) {
77
-        return uParseTime(time, '{y}-{m}-{d} {h}:{i}')
82
+        return uParseTime(time, '{y}-{m}-{d}')
78 83
       },
79 84
       getInfo(order_id) {
80 85
         let params = {
@@ -101,21 +106,29 @@
101 106
               console.log(infos)
102 107
               if (infos.advice && infos.advice.id == 0 && infos.project && infos.project.id > 0) {
103 108
                 obj['p_time'] = this.getTimes(infos.project.prescription.ctime)
109
+                obj['feedetl_sn'] = infos.feedetl_sn
110
+
104 111
                 if(infos.project.type == 2){
105 112
                   obj['name'] = infos.project.project.project_name
113
+                  obj['spec'] = ''
114
+                  obj['unit'] =  infos.project.project.unit
115
+
116
+
106 117
                 }else if (infos.project.type == 3){
107 118
                   obj['name'] = infos.project.good_info.good_name
119
+                  obj['spec'] = infos.project.good_info.specification_name
120
+                  obj['unit'] = this.getGoodUnit(infos.project.good_info.good_unit)
121
+
108 122
                 }
109
-                obj['spec'] = 1
110
-                obj['unit'] = infos.project.unit
111 123
 
112 124
               }
113 125
 
114 126
               if (infos.advice && infos.advice.id > 0 && infos.project && infos.project.id == 0) {
115 127
                 obj['p_time'] = this.getTimes(infos.advice.prescription.ctime)
116 128
                 obj['name'] = infos.advice.advice_name
117
-                obj['spec'] = infos.advice.drug.drug_spec
118
-                obj['unit'] = infos.advice.drug.max_unit
129
+                obj['unit'] = infos.advice.drug.min_unit
130
+                obj['feedetl_sn'] =  infos.feedetl_sn
131
+
119 132
 
120 133
               }
121 134
               this.list.push(obj)
@@ -189,14 +202,27 @@
189 202
       },
190 203
       printThisPage() {
191 204
         if(this.org_id != 10106){
192
-          const style =
193
-          '@media print {.listTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.listInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .listTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 14px;border-color: #000;text-align:left;}.listTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}'
194
-          printJS({
195
-            printable: 'list-print',
196
-            type: 'html',
197
-            style: style,
198
-            scanStyles: false
199
-          })
205
+          if(this.org_id == 10215 || this.org_id == 0){
206
+            const style =
207
+                '@media print {.allListTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.allListInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .allListTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 20px;font-size: 14px;border-color: #000;text-align:left;}.allListTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}'
208
+            printJS({
209
+              printable: 'allList-print',
210
+              type: 'html',
211
+              style: style,
212
+              scanStyles: false
213
+            })
214
+
215
+
216
+          }else {
217
+            const style =
218
+                '@media print {.listTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.listInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .listTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 20px;font-size: 14px;border-color: #000;text-align:left;}.listTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 10px;}.tableBottomOne{margin-right: 40px;}}'
219
+            printJS({
220
+              printable: 'list-print',
221
+              type: 'html',
222
+              style: style,
223
+              scanStyles: false
224
+            })
225
+          }
200 226
         }else{
201 227
           const style =
202 228
           '@media print {#statement-print{font-size:12px;width:800px;margin:0 auto;}.statementTitle{font-size: 22px;text-align: center;margin-bottom: 10px;}.statementTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 16px;border-color: #000;}}';
@@ -239,6 +265,13 @@
239 265
           }
240 266
         })
241 267
 
268
+      }, getGoodUnit(id) {
269
+        var goodUnit = this.$store.getters.good_unit
270
+        for (let i = 0; i < goodUnit.length; i++) {
271
+          if (goodUnit[i].id == id) {
272
+            return goodUnit[i].name
273
+          }
274
+        }
242 275
       },
243 276
       getInfo10106(order_id) {
244 277
         if (this.$store.getters.xt_user.org_id == 3877 || this.$store.getters.xt_user.org_id == 9919 || this.$store.getters.xt_user.org_id == 4  || this.$store.getters.xt_user.org_id == 9538 || this.$store.getters.xt_user.org_id == 9671 ||  this.$store.getters.xt_user.org_id == 9674 || this.$store.getters.xt_user.org_id == 10106 || this.$store.getters.xt_user.org_id == 9990 ) {

+ 180 - 0
src/xt_pages/outpatientCharges/listTemplate/listPrintTwo.vue View File

@@ -0,0 +1,180 @@
1
+<template>
2
+  <div id="allList-print" class="allList-print">
3
+      <div class="allListTitle">{{ $store.getters.xt_user.org.org_name }}费用清单</div>
4
+      <div class="allListInfo">
5
+        <div>患者姓名:{{ patient.name }}</div>
6
+        <div>性别:{{ patient.gender == 1 ? '男' : '女' }}</div>
7
+        <div>结算类型:{{order.is_medicine_insurance == 1 ?'医保':'自费'}}</div>
8
+        <div>发票号码:</div>
9
+      </div>
10
+
11
+    <div class="allListInfo">
12
+        <div>住院/门诊号:{{order.mdtrt_id}}</div>
13
+        <div>科室:血透</div>
14
+        <div>就诊流水号:{{order.mdtrt_id}}</div>
15
+        <div>总费用:{{order.medfee_sumamt}}</div>
16
+    </div>
17
+
18
+      <div class="allListInfo">
19
+
20
+      <div>个人支付:{{order.psn_part_amt}}</div>
21
+        <div>基金支付记账:{{order.fund_pay_sumamt}}</div>
22
+        <div>补充医疗支付记账:0.00</div>
23
+        <div>救助支付金额:{{order.maf_pay}}</div>
24
+      </div>
25
+      <table class="allListTable" border="1">
26
+        <tr>
27
+          <td style="width:5%">序号</td>
28
+          <td style="width:15%">处方日期</td>
29
+          <td style="width:10%">费用编号</td>
30
+          <td style="width:40%">费用名称/规格</td>
31
+          <td style="width:5%">单位</td>
32
+          <td style="width:5%">数量</td>
33
+          <td style="width:10%">单价</td>
34
+          <td style="width:10%">金额</td>
35
+        </tr>
36
+        <template v-for='(item,index) in list'>
37
+          <tr>
38
+            <td style="width:5%">{{index + 1}}</td>
39
+            <td style="width:15%">{{item.p_time}}</td>
40
+            <td style="width:10%">{{item.feedetl_sn.split("-")[2]}}</td>
41
+            <td style="width:40%">{{item.name}}/{{item.spec}}</td>
42
+            <td style="width:5%">{{item.unit}}</td>
43
+            <td style="width:5%">{{ item.count }}</td>
44
+            <td style="width:10%">{{ item.price }}</td>
45
+            <td style="width:10%">{{ (item.price * item.count).toFixed(2) }}</td>
46
+          </tr>
47
+        </template>
48
+      </table>
49
+
50
+    </div>
51
+</template>
52
+
53
+<script>
54
+import { uParseTime } from '@/utils/tools'
55
+
56
+export default {
57
+  props: {
58
+    list: {
59
+      type: Array,
60
+      default: function() {
61
+        return []
62
+      }
63
+    }, patient: {
64
+      type: Object,
65
+      default: function() {
66
+        return {}
67
+      }
68
+    }, order: {
69
+      type: Object,
70
+      default: function() {
71
+        return {}
72
+      }
73
+    }, admin: {
74
+      type: Object,
75
+      default: function() {
76
+        return {}
77
+      }
78
+    }, hospital: {
79
+      type: Object,
80
+      default: function() {
81
+        return {}
82
+      }
83
+
84
+    }
85
+  },
86
+  data() {
87
+    return {
88
+      page: 1,
89
+      pageArr: []
90
+    }
91
+  },
92
+  methods: {
93
+    getNowTime: function() {
94
+      let dateTime
95
+      let yy = new Date().getFullYear()
96
+      let mm = new Date().getMonth() + 1
97
+      let dd = new Date().getDate()
98
+      let hh = new Date().getHours()
99
+      let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
100
+          :
101
+          new Date().getMinutes()
102
+      let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
103
+          :
104
+          new Date().getSeconds()
105
+      dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss
106
+      return dateTime
107
+    },
108
+    getTimes(time) {
109
+      return uParseTime(time, '{y}-{m}-{d}')
110
+    }, getTotal: function(items) {
111
+      let total = 0
112
+      for (let i = 0; i < items.length; i++) {
113
+        total = total + (items[i].count * items[i].price).toFixed(2)
114
+      }
115
+      return total
116
+
117
+    },
118
+
119
+
120
+  },
121
+  watch: {
122
+    list: {
123
+      handler(newVal) {
124
+        // this.getPage()
125
+      },
126
+      deep: true
127
+    }
128
+  }
129
+}
130
+
131
+
132
+</script>
133
+
134
+<style lang="scss" scoped>
135
+.allList-print {
136
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
137
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
138
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
139
+  margin-bottom: 20px;
140
+  padding: 20px 10px;
141
+}
142
+
143
+.allListTitle {
144
+  font-size: 24px;
145
+  text-align: center;
146
+  font-weight: bold;
147
+  margin-bottom: 10px;
148
+}
149
+
150
+.allListInfo {
151
+  display: flex;
152
+  font-size: 16px;
153
+  justify-content: space-between;
154
+  margin: 10px 0;
155
+}
156
+
157
+.allListTable {
158
+  width: 100%;
159
+  text-align: center;
160
+  border-collapse: collapse;
161
+  line-height: 20px;
162
+  font-size: 14px;
163
+  border-color: #000;
164
+  text-align: left;
165
+}
166
+
167
+.allListTable tr td {
168
+  padding: 0 5px;
169
+}
170
+
171
+.tableBottom {
172
+  font-size: 16px;
173
+  display: flex;
174
+  margin-top: 20px;
175
+}
176
+
177
+.tableBottomOne {
178
+  margin-right: 40px;
179
+}
180
+</style>

+ 1 - 1
src/xt_pages/outpatientCharges/listTemplate/printOne.vue View File

@@ -153,7 +153,7 @@
153 153
     width: 100%;
154 154
     text-align: center;
155 155
     border-collapse: collapse;
156
-    line-height: 40px;
156
+    line-height: 20px;
157 157
     font-size: 14px;
158 158
     border-color: #000;
159 159
     text-align: left;

+ 225 - 67
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue View File

@@ -46,7 +46,7 @@
46 46
           </el-button>
47 47
         </div>
48 48
         <div>
49
-          <el-table  :data="patientTableData" :height="tableHeight" border style="width: 100%;"
49
+          <el-table :data="patientTableData" :height="tableHeight" border style="width: 100%;"
50 50
                     :row-style="{ color: '#303133' }"
51 51
 
52 52
                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
@@ -61,20 +61,20 @@
61 61
             </el-table-column>
62 62
           </el-table>
63 63
 
64
-<!--          <el-table v-else :data="monthChargePatientTableData" :height="tableHeight" border style="width: 100%;"-->
65
-<!--                    :row-style="{ color: '#303133' }"-->
66
-
67
-<!--                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"-->
68
-<!--                    highlight-current-row ref="tab"-->
69
-<!--                    @current-change="handleCurrentChange">-->
70
-<!--            <el-table-column align="center" prop="name" label="姓名" wdith='89'>-->
71
-<!--              <template slot-scope="scope">{{ scope.row.name }}</template>-->
72
-<!--            </el-table-column>-->
73
-<!--            <el-table-column align="center" prop="name" label="就诊号" width="110">-->
74
-<!--              <template slot-scope="scope">{{ scope.row.number ? scope.row.number : '' }}-->
75
-<!--              </template>-->
76
-<!--            </el-table-column>-->
77
-<!--          </el-table>-->
64
+          <!--          <el-table v-else :data="monthChargePatientTableData" :height="tableHeight" border style="width: 100%;"-->
65
+          <!--                    :row-style="{ color: '#303133' }"-->
66
+
67
+          <!--                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"-->
68
+          <!--                    highlight-current-row ref="tab"-->
69
+          <!--                    @current-change="handleCurrentChange">-->
70
+          <!--            <el-table-column align="center" prop="name" label="姓名" wdith='89'>-->
71
+          <!--              <template slot-scope="scope">{{ scope.row.name }}</template>-->
72
+          <!--            </el-table-column>-->
73
+          <!--            <el-table-column align="center" prop="name" label="就诊号" width="110">-->
74
+          <!--              <template slot-scope="scope">{{ scope.row.number ? scope.row.number : '' }}-->
75
+          <!--              </template>-->
76
+          <!--            </el-table-column>-->
77
+          <!--          </el-table>-->
78 78
 
79 79
         </div>
80 80
       </div>
@@ -85,6 +85,22 @@
85 85
 
86 86
 
87 87
           <div>
88
+<!--            <el-button size="small"-->
89
+<!--                       @click="openZb(1)"-->
90
+<!--                       type="primary">登记-->
91
+<!--            </el-button>-->
92
+
93
+<!--            <el-button  size="small"-->
94
+<!--                       @click="openZb(2)"-->
95
+<!--                       type="primary">记账-->
96
+<!--            </el-button>-->
97
+
98
+<!--            <el-button   size="small"-->
99
+<!--                       @click="openZb(3)"-->
100
+<!--                       type="primary">撤销记账-->
101
+<!--            </el-button>-->
102
+
103
+
88 104
             <el-button v-loading="loadingone" size="small"
89 105
                        @click="open(6)"
90 106
                        type="primary">挂号
@@ -142,7 +158,7 @@
142 158
                           >
143 159
 
144 160
                             <el-button
145
-                           su     v-if="radio == 1"
161
+                                v-if="radio == 1"
146 162
                                 size="small"
147 163
                                 @click="openDialog(item)"
148 164
                                 type="primary"
@@ -151,7 +167,7 @@
151 167
                             <div style="margin-bottom:10px;float: right">
152 168
                               <div>
153 169
                                 <el-button
154
-                                    v-if="(hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0 &&  items.prescriptions[0].order.id == 0)"
170
+                                    v-if="(hisPatientInfo.id_card_type != 3 && hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0 &&  items.prescriptions[0].order.id == 0)"
155 171
                                     size="small"
156 172
                                     @click="open(8,items.med_type,items.prescriptions[0].order,items.prescriptions)"
157 173
                                     type="primary"
@@ -381,10 +397,10 @@
381 397
                               </el-button>
382 398
 
383 399
                               <el-button
384
-                                         v-if="(hisPatientInfo.id > 0 && items.curMonthPrescriptions.order.id == 0) || items.curMonthPrescriptions.order.order_status == 1 ||  items.curMonthPrescriptions.order.order_status == 3"
385
-                                         size="small"
386
-                                         @click="open(4,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
387
-                                         type="primary">收费
400
+                                  v-if="(hisPatientInfo.id > 0 && items.curMonthPrescriptions.order.id == 0) || items.curMonthPrescriptions.order.order_status == 1 ||  items.curMonthPrescriptions.order.order_status == 3"
401
+                                  size="small"
402
+                                  @click="open(4,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
403
+                                  type="primary">收费
388 404
                               </el-button>
389 405
                             </div>
390 406
                           </div>
@@ -575,32 +591,32 @@
575 591
                                 type="primary"
576 592
                             >修改医疗类型
577 593
                             </el-button>
578
-<!--                            <div style="margin-bottom:10px;float: right">-->
579
-<!--                              <div>-->
580
-<!--                                <el-button-->
581
-<!--                                    v-if="(hisPatientInfo.id > 0 &&  items.prescriptions[0].order.id == 0)"-->
582
-<!--                                    size="small"-->
583
-<!--                                    @click="open(8,items.med_type,items.prescriptions[0].order,items.prescriptions)"-->
584
-<!--                                    type="primary"-->
585
-<!--                                >预结算-->
586
-<!--                                </el-button>-->
587
-<!--                                <el-button-->
588
-<!--                                    v-if="items.curPrescriptions.order.order_status == 1 && hisPatientInfo.balance_accounts_type != 2"-->
589
-<!--                                    size="small"-->
590
-<!--                                    @click="open(11,items.med_type,items.prescriptions[0].order,items.prescriptions)"-->
591
-<!--                                    type="primary"-->
592
-<!--                                >撤销明细-->
593
-<!--                                </el-button>-->
594
-
595
-
596
-<!--                                <el-button v-loading="loadingtwo"-->
597
-<!--                                           v-if="(hisPatientInfo.id > 0 && items.curPrescriptions.order.id == 0) || items.curPrescriptions.order.order_status == 1 ||  items.curPrescriptions.order.order_status == 3"-->
598
-<!--                                           size="small"-->
599
-<!--                                           @click="open(4,items.med_type,items.curPrescriptions.order,items.prescriptions)"-->
600
-<!--                                           type="primary">收费-->
601
-<!--                                </el-button>-->
602
-<!--                              </div>-->
603
-<!--                            </div>-->
594
+                            <!--                            <div style="margin-bottom:10px;float: right">-->
595
+                            <!--                              <div>-->
596
+                            <!--                                <el-button-->
597
+                            <!--                                    v-if="(hisPatientInfo.id > 0 &&  items.prescriptions[0].order.id == 0)"-->
598
+                            <!--                                    size="small"-->
599
+                            <!--                                    @click="open(8,items.med_type,items.prescriptions[0].order,items.prescriptions)"-->
600
+                            <!--                                    type="primary"-->
601
+                            <!--                                >预结算-->
602
+                            <!--                                </el-button>-->
603
+                            <!--                                <el-button-->
604
+                            <!--                                    v-if="items.curPrescriptions.order.order_status == 1 && hisPatientInfo.balance_accounts_type != 2"-->
605
+                            <!--                                    size="small"-->
606
+                            <!--                                    @click="open(11,items.med_type,items.prescriptions[0].order,items.prescriptions)"-->
607
+                            <!--                                    type="primary"-->
608
+                            <!--                                >撤销明细-->
609
+                            <!--                                </el-button>-->
610
+
611
+
612
+                            <!--                                <el-button v-loading="loadingtwo"-->
613
+                            <!--                                           v-if="(hisPatientInfo.id > 0 && items.curPrescriptions.order.id == 0) || items.curPrescriptions.order.order_status == 1 ||  items.curPrescriptions.order.order_status == 3"-->
614
+                            <!--                                           size="small"-->
615
+                            <!--                                           @click="open(4,items.med_type,items.curPrescriptions.order,items.prescriptions)"-->
616
+                            <!--                                           type="primary">收费-->
617
+                            <!--                                </el-button>-->
618
+                            <!--                              </div>-->
619
+                            <!--                            </div>-->
604 620
                           </el-tab-pane>
605 621
 
606 622
 
@@ -746,7 +762,8 @@
746 762
         width="30%"
747 763
     >
748 764
       <span>是否修改医疗类型</span>
749
-      <el-select v-if="this.$store.getters.xt_user.org_id == 10188 || this.$store.getters.xt_user.org_id == 10217" style="width:50%;" v-model="temp_med_type"
765
+      <el-select v-if="this.$store.getters.xt_user.org_id == 10188 || this.$store.getters.xt_user.org_id == 10217"
766
+                 style="width:50%;" v-model="temp_med_type"
750 767
                  placeholder="医疗类型" @change="changevalue">
751 768
         <el-option
752 769
             v-for="(item,index) in registerThree"
@@ -756,7 +773,8 @@
756 773
         </el-option>
757 774
       </el-select>
758 775
 
759
-      <el-select v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217" style="width:50%;" v-model="temp_med_type"
776
+      <el-select v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217"
777
+                 style="width:50%;" v-model="temp_med_type"
760 778
                  placeholder="医疗类型" @change="changevalue">
761 779
         <el-option
762 780
             v-for="(item,index) in register"
@@ -855,8 +873,7 @@ import {
855 873
   Refund,
856 874
   refundNumber,
857 875
   register,
858
-  upload,
859
-
876
+  upload
860 877
 } from '@/api/his/his'
861 878
 import RegisterDialog from './components/registerDialog'
862 879
 import treatPrint from './treatPrint'
@@ -890,9 +907,9 @@ export default {
890 907
   },
891 908
   data() {
892 909
     return {
893
-      monthChargePatientTableData:[],
894
-      invoiceVisible:false,
895
-      invoiceParams:null,
910
+      monthChargePatientTableData: [],
911
+      invoiceVisible: false,
912
+      invoiceParams: null,
896 913
       temp_med_type: '',
897 914
       dialogVisible: false,
898 915
       pwdFormVisible: false,
@@ -957,7 +974,6 @@ export default {
957 974
         { value: '1402', label: '门诊特殊病(1402)' },
958 975
         { value: '0', label: '自费' }
959 976
 
960
-
961 977
       ],
962 978
       register_two: [
963 979
         { value: '11', label: '普通门诊' },
@@ -986,7 +1002,7 @@ export default {
986 1002
 
987 1003
       other_start_time_two: moment(new Date()).subtract(30, 'days').format('YYYY-MM-DD'),
988 1004
       other_end_time_two: moment(new Date()).add('year', 0).format('YYYY-MM-DD'),
989
-      adminUserOptions:[],
1005
+      adminUserOptions: [],
990 1006
       curMonthPrescriptions: null,
991 1007
       newCurMonthPrescriptions: null,
992 1008
       big_month_prescriptions: [],
@@ -1310,8 +1326,6 @@ export default {
1310 1326
         }
1311 1327
       })
1312 1328
 
1313
-
1314
-
1315 1329
     },
1316 1330
     changeEndTime(val) {
1317 1331
       const params = {
@@ -2673,6 +2687,151 @@ export default {
2673 2687
       if (tab == 'more') {
2674 2688
         return false
2675 2689
       }
2690
+    }, openZb(index) {
2691
+      switch (index) {
2692
+        case 1:
2693
+          if(this.patientInfo.id == 0){
2694
+            this.$message.error("请需要选择挂号的患者")
2695
+            return
2696
+          }
2697
+          if(this.big_prescriptions.length == 0){
2698
+            this.$message.error("处方不能为空")
2699
+            return
2700
+          }
2701
+          if(this.form.diagnosis.length == 0){
2702
+            this.$message.error("诊断不能为空")
2703
+            return
2704
+          }
2705
+          var that = this
2706
+          let obj = {
2707
+            patient_id: this.patientInfo.id,
2708
+            diagnosis_time: this.form.diagnosis_time,
2709
+            record_date: this.record_date,
2710
+            admin_user_id: this.$store.getters.xt_user.user.id,
2711
+            org_id: this.$store.getters.xt_user.org_id
2712
+
2713
+          }
2714
+          axios.get(process.env.BASE_API +'/coordinate/register', {
2715
+            params: obj
2716
+          })
2717
+              .then(function(response) {
2718
+                if (response.data.state == 0) {
2719
+                  that.$message.error(response.data.msg)
2720
+                  that.loadingtwo = false
2721
+                  return false
2722
+                } else {
2723
+                  if (response.data.data.failed_code == -10) {
2724
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
2725
+                      confirmButtonText: '确 定',
2726
+                      type: 'warning'
2727
+                    }).then(() => {
2728
+
2729
+                    }).catch(() => {
2730
+                    })
2731
+
2732
+                  } else {
2733
+                    that.radio = 1
2734
+                    that.changeRadioAndPatient(1)
2735
+                    that.$message({ message: '挂号成功', type: 'success', duration: 5000 })
2736
+                  }
2737
+
2738
+                }
2739
+              })
2740
+              .catch(function(error) {
2741
+
2742
+              })
2743
+
2744
+          break
2745
+        case 2:
2746
+          var that = this
2747
+          var obj2 = {
2748
+            id: this.patientInfo.id,
2749
+            record_time: this.record_date,
2750
+            his_patient_id: this.hisPatientInfo.id,
2751
+            org_id: this.$store.getters.xt_user.org_id,
2752
+            p_type:14,
2753
+
2754
+          }
2755
+          obj2['diagnosis'] = this.form.diagnosis.join(',')
2756
+          obj2['sick_type'] = this.form.sick_type
2757
+          if (this.activeName == 'first') {
2758
+            obj2['settle_accounts_type'] = 1
2759
+          } else if (this.activeName == 'second') {
2760
+            obj2['start_time'] = this.other_start_time
2761
+            obj2['end_time'] = this.other_end_time
2762
+            obj2['settle_accounts_type'] = 2
2763
+          }
2764
+          axios.get(process.env.BASE_API  + '/coordinate/opKeepAccounts', {
2765
+            params: obj2
2766
+          })
2767
+              .then(function(response) {
2768
+                if (response.data.state == 0) {
2769
+                  that.$message.error(response.data.msg)
2770
+                  that.loadingtwo = false
2771
+                  return false
2772
+                } else {
2773
+                  if (response.data.data.failed_code == -10) {
2774
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
2775
+                      confirmButtonText: '确 定',
2776
+                      type: 'warning'
2777
+                    }).then(() => {
2778
+
2779
+                    }).catch(() => {
2780
+                    })
2781
+
2782
+                  } else {
2783
+                    that.radio = 1
2784
+                    that.changeRadioAndPatient(1)
2785
+                    that.$message({ message: '记账成功', type: 'success', duration: 5000 })
2786
+                  }
2787
+
2788
+                }
2789
+              })
2790
+              .catch(function(error) {
2791
+
2792
+              })
2793
+
2794
+          break
2795
+        case 3:
2796
+          var that = this
2797
+          let obj3 = {
2798
+            order_id:this.order.id,
2799
+            admin_user_id: this.$store.getters.xt_user.user.id,
2800
+            org_id: this.$store.getters.xt_user.org_id
2801
+          }
2802
+          axios.get(process.env.BASE_API + '/coordinate/opCancelKeepAccounts', {
2803
+            params: obj3
2804
+          })
2805
+              .then(function(response) {
2806
+                if (response.data.state == 0) {
2807
+                  that.$message.error(response.data.msg)
2808
+                  that.loadingtwo = false
2809
+                  return false
2810
+                } else {
2811
+                  if (response.data.data.failed_code == -10) {
2812
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
2813
+                      confirmButtonText: '确 定',
2814
+                      type: 'warning'
2815
+                    }).then(() => {
2816
+
2817
+                    }).catch(() => {
2818
+                    })
2819
+
2820
+                  } else {
2821
+                    that.radio = 1
2822
+                    that.changeRadioAndPatient(1)
2823
+                    that.$message({ message: '撤销记账成功', type: 'success', duration: 5000 })
2824
+                  }
2825
+
2826
+                }
2827
+              })
2828
+              .catch(function(error) {
2829
+
2830
+              })
2831
+
2832
+          break
2833
+
2834
+      }
2676 2835
     },
2677 2836
     open(index, med_type, order, prescriptions) {
2678 2837
       this.other_prescriptions = prescriptions
@@ -2937,7 +3096,6 @@ export default {
2937 3096
         // this.$refs.print.getInfo(this.order.id)
2938 3097
       } else if (index == 10) {
2939 3098
 
2940
-
2941 3099
         if (this.hisPatientInfo.balance_accounts_type == 2) {
2942 3100
           this.$confirm('是否退号', '退号', {
2943 3101
             confirmButtonText: '确 定',
@@ -2960,8 +3118,8 @@ export default {
2960 3118
           }).catch(() => {
2961 3119
           })
2962 3120
         } else {
2963
-          if(this.order.id > 0){
2964
-            this.$message.error("该就诊号尚未撤销明细或者退费无法进行退号操作")
3121
+          if (this.$store.getters.xt_user.org_id == 10215 && this.order.id > 0) {
3122
+            this.$message.error('该就诊号尚未撤销明细或者退费无法进行退号操作')
2965 3123
             return
2966 3124
           }
2967 3125
           var that = this
@@ -3058,7 +3216,7 @@ export default {
3058 3216
             .catch(function(error) {
3059 3217
             })
3060 3218
 
3061
-      } else if(index == 30){
3219
+      } else if (index == 30) {
3062 3220
 
3063 3221
         let paramsObj = {
3064 3222
           order_id: this.order.id,
@@ -3572,11 +3730,11 @@ export default {
3572 3730
         num = num.substring(0)
3573 3731
       }
3574 3732
       return parseFloat(num).toFixed(decimal)
3575
-    },getMonthChargePatientList(){
3733
+    }, getMonthChargePatientList() {
3576 3734
       let params = {
3577 3735
         'record_date': this.record_date,
3578
-        'start_time':this.other_start_time,
3579
-        'end_time':this.other_end_time,
3736
+        'start_time': this.other_start_time,
3737
+        'end_time': this.other_end_time
3580 3738
       }
3581 3739
       getChargeHisPatientList(params).then(response => {
3582 3740
         if (response.data.state == 0) {
@@ -3593,7 +3751,7 @@ export default {
3593 3751
     getPatientList() {
3594 3752
       let params = {
3595 3753
         'record_date': this.record_date,
3596
-        'type': this.radio,
3754
+        'type': this.radio
3597 3755
       }
3598 3756
       getChargeHisPatientList(params).then(response => {
3599 3757
         if (response.data.state == 0) {
@@ -4198,7 +4356,7 @@ export default {
4198 4356
             } else {
4199 4357
               this.form.p_type = 14
4200 4358
               this.form.sick_type = this.sick[0].id
4201
-              if (response.data.data.last_info.diagnoses.length == 0) {
4359
+              if (response.data.data.last_info.id == 0) {
4202 4360
                 this.form.diagnosis = []
4203 4361
               } else {
4204 4362
                 for (let i = 0; i < response.data.data.last_info.diagnosis.split(',').length; i++) {

+ 221 - 13
src/xt_pages/outpatientCharges/settlementTemplate/printOne.vue View File

@@ -24,7 +24,7 @@
24 24
         </div>
25 25
         <div class="row">
26 26
             <div>医保编号<div style="width:120px;" class="under_line">{{ info.psn_no }}</div></div>
27
-            <div>病案号<div style="width:120px;" class="under_line">{{ info.certno ? info.certno.substring(info.certno.length-6) : '' }}</div></div>
27
+            <div>病案号<div style="width:120px;" class="under_line">{{ info.psn_no ? info.psn_no : '' }}</div></div>
28 28
             <div>申报时间
29 29
                 <div style="width:40px;" class="under_line">{{ info.setl_time ? info.setl_time.split(' ')[0].slice(0,4) : '' }}</div>年
30 30
                 <div style="width:40px;" class="under_line">{{ info.setl_time ? info.setl_time.split(' ')[0].slice(5,7) : '' }}</div>月
@@ -63,10 +63,10 @@
63 63
                             </div>
64 64
                             <div class="row">
65 65
                                 <div class="inline_block">(年龄不足1周岁)年龄
66
-                                    <div style="width:80px;" class="under_line"></div>天
66
+                                    <div style="width:80px;" class="under_line">{{info.age}}</div>天
67 67
                                 </div>
68 68
                                 <div class="inline_block">民族
69
-                                    <div style="width:80px;" class="under_line"></div>
69
+                                    <div style="width:80px;" class="under_line">{{getNaty(info.naty)}}</div>
70 70
                                 </div>
71 71
                                 <div class="inline_block">患者证件类别
72 72
                                     <div style="width:80px;" class="under_line">身份证</div>
@@ -115,13 +115,14 @@
115 115
                                     <div style="width:140px;" class="under_line"></div>
116 116
                                 </div>
117 117
                                 <div class="inline_block">电话
118
-                                    <div style="width:80px;" class="under_line"></div>
118
+                                    <div style="width:80px;" class="under_line">{{info.patinet.phone}}</div>
119 119
                                 </div>
120 120
                             </div>
121 121
                             <div class="row">
122
-                                <div style="width:33%;">医保类型<div style="width:120px;" class="under_line"></div></div>
123
-                                <div style="width:33%;">特殊人员类型<div style="width:120px;" class="under_line"></div></div>
124
-                                <div style="width:33%;">参保地<div style="width:120px;" class="under_line"></div></div>
122
+                              <div v-if="info.insutype == '310'" style="width:33%;">医保类型<div style="width:120px;" class="under_line">职工基本医疗保险</div></div>
123
+                              <div v-if="info.insutype == '390'"  style="width:33%;">医保类型<div style="width:120px;" class="under_line">城乡居民基本医疗保险</div></div>
124
+                              <div  style="width:33%;">特殊人员类型<div style="width:120px;" class="under_line"></div></div>
125
+                              <div style="width:33%;">参保地<div style="width:120px;" class="under_line"></div></div>
125 126
                             </div>
126 127
                             <div class="row">
127 128
                                 <div style="width:33%;">新生儿入院类型<div style="width:120px;" class="under_line"></div></div>
@@ -391,7 +392,7 @@
391 392
                                     入院前<div style="width:40px;" class="under_line"></div>
392 393
 
393 394
                                     天<div style="width:40px;" class="under_line"></div>
394
-                                    
395
+
395 396
                                     小时<div style="width:40px;" class="under_line"></div>分钟
396 397
                                 </div>
397 398
                             </div>
@@ -400,7 +401,7 @@
400 401
                                     入院前<div style="width:40px;" class="under_line"></div>
401 402
 
402 403
                                     天<div style="width:40px;" class="under_line"></div>
403
-                                    
404
+
404 405
                                     小时<div style="width:40px;" class="under_line"></div>分钟
405 406
                                 </div>
406 407
                             </div>
@@ -470,7 +471,7 @@
470 471
                                 <div style="width:80px;" class="under_line"></div>
471 472
                             </div>
472 473
                             <div>
473
-                                <label-box :isChecked="false" showValue="3.转社区,转卫生院机构,拟接收机构名称"></label-box> 
474
+                                <label-box :isChecked="false" showValue="3.转社区,转卫生院机构,拟接收机构名称"></label-box>
474 475
                                 <div style="width:80px;" class="under_line"></div>
475 476
                                 拟接收机构代码
476 477
                                 <div style="width:80px;" class="under_line"></div>
@@ -729,7 +730,7 @@
729 730
                                                 <td>......</td>
730 731
                                                 <td>&nbsp;</td>
731 732
                                             </tr>
732
-                                            
733
+
733 734
                                         </tbody>
734 735
                                     </table>
735 736
                                 </div>
@@ -753,7 +754,7 @@
753 754
                                                 <td style="width:36%">个人现金支付</td>
754 755
                                                 <td>&nbsp;</td>
755 756
                                             </tr>
756
-                                            
757
+
757 758
                                         </tbody>
758 759
                                     </table>
759 760
                                 </div>
@@ -830,6 +831,213 @@ export default {
830 831
         }
831 832
     },
832 833
     methods:{
834
+      getNaty(naty){
835
+        switch (naty){
836
+          case "1":
837
+            return "汉族"
838
+            break
839
+          case "2":
840
+            return "蒙古族"
841
+
842
+            break
843
+          case "3":
844
+            return "回族"
845
+
846
+
847
+            break
848
+          case "4":
849
+            return "藏族"
850
+
851
+
852
+            break
853
+          case "5":
854
+            return "维吾尔族"
855
+
856
+            break
857
+          case "6":
858
+            return "苗族"
859
+
860
+            break
861
+          case "7":
862
+            return "彝族"
863
+
864
+            break
865
+          case "8":
866
+            return "壮族"
867
+
868
+            break
869
+          case "9":
870
+            return "布依族"
871
+
872
+            break
873
+          case "10":
874
+            return "朝鲜族"
875
+
876
+            break
877
+          case "11":
878
+            return "满族"
879
+
880
+            break
881
+          case "12":
882
+            return "侗族"
883
+
884
+            break
885
+          case "13":
886
+            return "瑶族"
887
+
888
+            break
889
+          case "14":
890
+            return "白族"
891
+
892
+            break
893
+          case "15":
894
+            return "土家族"
895
+
896
+            break
897
+          case "16":
898
+            return "哈尼族"
899
+            break
900
+          case "17":
901
+            return "哈萨克族"
902
+            break
903
+          case "18":
904
+            return "傣族"
905
+            break
906
+          case "19":
907
+            return "黎族"
908
+            break
909
+          case "20":
910
+            return "傈僳族"
911
+
912
+            break
913
+          case "21":
914
+            return "佤族"
915
+
916
+            break
917
+          case "22":
918
+            return "畲族"
919
+            break
920
+          case "23":
921
+            return "高山族"
922
+
923
+            break
924
+          case "24":
925
+            return "拉祜族"
926
+
927
+            break
928
+          case "25":
929
+            return "水族"
930
+            break
931
+          case "26":
932
+            return "东乡族"
933
+            break
934
+          case "27":
935
+            return "纳西族"
936
+            break
937
+          case "28":
938
+            return "景颇族"
939
+            break
940
+          case "29":
941
+            return "柯尔克孜族"
942
+            break
943
+          case "30":
944
+            return "土族"
945
+            break
946
+          case "31":
947
+            return "达斡尔族"
948
+            break
949
+          case "32":
950
+            return "仫佬族"
951
+            break
952
+          case "33":
953
+            return "羌族"
954
+            break
955
+          case "34":
956
+            return "布朗族"
957
+            break
958
+          case "35":
959
+            return "撒拉族"
960
+            break
961
+          case "36":
962
+            return "毛南族"
963
+            break
964
+          case "37":
965
+            return "仡佬族"
966
+            break
967
+          case "38":
968
+            return "锡伯族"
969
+            break
970
+          case "39":
971
+            return "阿昌族"
972
+            break
973
+          case "40":
974
+            return "普米族"
975
+            break
976
+          case "41":
977
+            return "塔吉克族"
978
+            break
979
+          case "42":
980
+            return "怒族"
981
+            break
982
+          case "43":
983
+            return "乌孜别克族"
984
+            break
985
+          case "44":
986
+            return "俄罗斯族"
987
+            break
988
+          case "45":
989
+            return "鄂温克族"
990
+
991
+            break
992
+          case "46":
993
+            return "德昂族"
994
+            break
995
+          case "47":
996
+            return "保安族"
997
+            break
998
+          case "48":
999
+            return "裕固族"
1000
+            break
1001
+          case "49":
1002
+            return "京族"
1003
+
1004
+            break
1005
+          case "50":
1006
+            return "塔塔尔族"
1007
+
1008
+            break
1009
+          case "51":
1010
+            return "独龙族"
1011
+
1012
+            break
1013
+          case "52":
1014
+            return "鄂伦春族"
1015
+
1016
+            break
1017
+          case "53":
1018
+            return "赫哲族"
1019
+
1020
+            break
1021
+          case "54":
1022
+            return "门巴族"
1023
+
1024
+            break
1025
+          case "55":
1026
+            return "珞巴族"
1027
+
1028
+            break
1029
+          case "56":
1030
+            return "基诺族"
1031
+            break
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+        }
1039
+
1040
+      },
833 1041
       getNewAge(UUserCard) {
834 1042
         if (UUserCard != null && UUserCard != '') {
835 1043
             // 获取年龄
@@ -916,4 +1124,4 @@ export default {
916 1124
   padding: 6px 5px;
917 1125
   line-height: 16px;
918 1126
 }
919
-</style>
1127
+</style>

+ 5 - 3
src/xt_pages/outpatientCharges/statementPrint.vue View File

@@ -29,7 +29,7 @@
29 29
           :paramsObj="paramsObj"
30 30
           :balanceAccounts="balanceAccounts"
31 31
           v-if="
32
-            org_id == 10138 || org_id == 0 || org_id == 4 || org_id == 10278
32
+            org_id == 10138 || org_id == 4 || org_id == 10278
33 33
           "
34 34
         ></printThree>
35 35
         <printFour
@@ -38,10 +38,11 @@
38 38
           :paramsObj="paramsObj"
39 39
           :balanceAccounts="balanceAccounts"
40 40
         ></printFour>
41
+<!--        <privateChargePrint  :info="info" v-if="org_id == 10215 && this.paramsObj.balance_accounts_type == 2"></privateChargePrint>-->
42
+
41 43
       </div>
42 44
 <!--      <print-other :info="info" v-if="org_id == 9919"></print-other>-->
43 45
 <!--      <printOne :info=" info" v-if="org_id == 10215 && this.paramsObj.balance_accounts_type == 2"></printOne>-->
44
-      <privateChargePrint  :info="info" v-if="(org_id == 0 || org_id == 10215) && this.paramsObj.balance_accounts_type == 2"></privateChargePrint>
45 46
       <printOne :info="info" v-else></printOne>
46 47
       <!-- 测试医保环境下表格样式放开以下这条 -->
47 48
       <!-- <testVue :info="info" v-else></testVue> -->
@@ -490,7 +491,8 @@ export default {
490 491
               console.log(111, this.balanceAccounts);
491 492
             }
492 493
           });
493
-        }else if (this.org_id == 10215 || this.org_id == 0) {
494
+        }else
495
+          if (this.org_id == 10215 || this.org_id == 0) {
494 496
 
495 497
           getPrivateExpensesOrder(params).then((response) => {
496 498
             if (response.data.state == 0) {

+ 6 - 3
src/xt_pages/outpatientCharges/statementTemplate/printThree.vue View File

@@ -128,7 +128,9 @@
128 128
 
129 129
                             </div>
130 130
                             <div style="display:flex;flez-wrap:wrap;font-size:16px;">
131
-                                <div style="width:33%;">个人支付金额:{{ info.psn_pay?info.psn_pay:0 }}元</div>
131
+                              <div style="width:33%;">医疗救助基金金额:{{info.maf_pay?info.maf_pay:0}}元</div>
132
+
133
+                              <div style="width:33%;">个人支付金额:{{ info.psn_pay?info.psn_pay:0 }}元</div>
132 134
                                 <div style="width:33%;">个人账户金额:{{info.balc >= 0 ? info.balc : 0 }}元</div>
133 135
                             </div>
134 136
                         </td>
@@ -149,7 +151,7 @@
149 151
         <div v-else id='prescription-print' class="prescription-print" style="position: relative;">
150 152
             <img style="width:100%;height:80px" v-if="$store.getters.xt_user.org_id == 10138" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">
151 153
             <img style="width:100%;height:80px" v-if="$store.getters.xt_user.org_id == 10278" src="https://kuyi.shengws.com/beierlog.png" alt="">
152
-           
154
+
153 155
             <div class="printTitle" style="position: absolute;left: 40%;top: 50px;">门诊收费清单</div>
154 156
             <div style="display:flex;">
155 157
                 <div>单据号:<span style="display:inline-block;width:200px;">{{balanceAccounts.his.number ? balanceAccounts.his.number : ''}}</span>
@@ -269,7 +271,8 @@
269 271
 
270 272
                             </div>
271 273
                             <div style="display:flex;flez-wrap:wrap;">
272
-                                <div style="width:33%;">
274
+                              <div style="width:33%;">医疗救助基金金额:0元</div>
275
+                              <div style="width:33%;">
273 276
                                     个人支付金额:{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元
274 277
                                 </div>
275 278
                                 <div style="width:33%;">个人账户金额:0元</div>

+ 14 - 14
src/xt_pages/outpatientCharges/statementTemplate/privateChargePrint.vue View File

@@ -16,11 +16,11 @@
16 16
       </tr>
17 17
       <tr>
18 18
         <td width="90">就医登记号</td>
19
-        <td colspan="11"></td>
19
+        <td colspan="11">{{info.his.number}}</td>
20 20
       </tr>
21 21
       <tr>
22 22
         <td width="80">姓名</td>
23
-        <td width="80">{{info.patient.name}}</td>
23
+        <td width="80">{{info.his.name}}</td>
24 24
         <td width="80">性别</td>
25 25
         <td width="50" v-if="info.patient.gender == 1">男</td>
26 26
         <td width="50" v-if="info.patient.gender == 2">女</td>
@@ -48,11 +48,11 @@
48 48
         <td>床号</td>
49 49
         <td></td>
50 50
         <td>入院日期</td>
51
-        <td>{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</td>
51
+        <td>{{info.his.in_hosptial_time ? info.his.in_hosptial_time.split(' ')[0] : ''}}</td>
52 52
         <td>出院日期</td>
53
-        <td width="100">{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</td>
53
+        <td width="100">{{info.his.out_hosptial_time ? info.his.out_hosptial_time.split(' ')[0] : ''}}</td>
54 54
         <td>住院天数</td>
55
-        <td>{{getDay(info.setl_time.split(' ')[0],info.setl_time.split(' ')[0])}}</td>
55
+        <td>{{getDay(info.his.in_hosptial_time.split(' ')[0] ,info.his.out_hosptial_time.split(' ')[0])}}</td>
56 56
 
57 57
       </tr>
58 58
       <tr>
@@ -291,7 +291,7 @@ export default {
291 291
         return 1;
292 292
       }
293 293
       var days=(endDate - startDate)/(1*24*60*60*1000);
294
-      return  days;
294
+      return  days + 1;
295 295
 
296 296
     },
297 297
     getNowTime: function () {
@@ -299,14 +299,14 @@ export default {
299 299
       let yy = new Date().getFullYear();
300 300
       let mm = new Date().getMonth() + 1;
301 301
       let dd = new Date().getDate();
302
-      let hh = new Date().getHours();
303
-      let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
304
-          :
305
-          new Date().getMinutes();
306
-      let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
307
-          :
308
-          new Date().getSeconds();
309
-      dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss;
302
+      // let hh = new Date().getHours();
303
+      // let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
304
+      //     :
305
+      //     new Date().getMinutes();
306
+      // let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
307
+      //     :
308
+      //     new Date().getSeconds();
309
+      dateTime = yy + '-' + mm + '-' + dd
310 310
       return dateTime
311 311
     },
312 312
 

+ 243 - 212
src/xt_pages/outpatientDoctorStation/batch_print_checkTemplate/printOne.vue View File

@@ -1,9 +1,9 @@
1 1
 <template>
2 2
   <div id="prescriptionPrint" class="prescription-print">
3 3
     <div
4
-      v-for="(i, index) in printData"
5
-      :key="index"
6
-      style="
4
+        v-for="(i, index) in printData"
5
+        :key="index"
6
+        style="
7 7
         box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
8 8
           0 0 40px rgba(0, 0, 0, 0.06) inset;
9 9
       "
@@ -11,17 +11,18 @@
11 11
       <!--            <img style="width:100%;height:80px" v-if="org_id == 10138" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">-->
12 12
       <!--/*             <img style="width:100%;height:80px" v-if="org_id == 10278" src="https://kuyi.shengws.com/bailinbeier.png" alt="">*/-->
13 13
       <div
14
-        id="prescription-print"
15
-        class="prescription-print"
16
-        style="page-break-after: always"
17
-        v-for="(item, index) in i.prescriptions"
18
-        :key="index"
14
+          id="prescription-print"
15
+          class="prescription-print"
16
+          style="page-break-after: always"
17
+          v-for="(item, index) in i.new_prescriptions"
18
+          v-if="item.project.length > 0 && getTeam(i.new_prescriptions).length > 0"
19
+          :key="index"
19 20
       >
20 21
         <div class="printTitle">检验申请单</div>
21 22
 
22 23
         <div style="border: 1px solid #000">
23 24
           <div
24
-            style="
25
+              style="
25 26
               display: flex;
26 27
               justify-content: space-between;
27 28
               border-bottom: 1px solid #000;
@@ -33,22 +34,22 @@
33 34
             <div>
34 35
               结算方式:{{
35 36
                 i.his_patient.id != 0
36
-                  ? i.his_patient.balance_accounts_type == 1
37
-                    ? "医保"
38
-                    : "自费"
39
-                  : ""
37
+                    ? i.his_patient.balance_accounts_type == 1
38
+                        ? '医保'
39
+                        : '自费'
40
+                    : ''
40 41
               }}
41 42
             </div>
42 43
             <div
43
-              v-for="item in getSingleTeam(i.prescriptions)"
44
-              :key="item"
45
-              style="margin-bottom: 10px"
44
+                v-for="item in getSingleTeam(i.new_prescriptions)"
45
+                :key="item"
46
+                style="margin-bottom: 10px"
46 47
             >
47 48
               金额:{{ item }}
48 49
             </div>
49 50
           </div>
50 51
           <div
51
-            style="
52
+              style="
52 53
               display: flex;
53 54
               justify-content: space-between;
54 55
               border-bottom: 1px solid #000;
@@ -70,7 +71,7 @@
70 71
                 <span v-if="i.gender == 2">女</span>
71 72
               </span>
72 73
             </div>
73
-            <div>年龄:{{ i.age ? i.age : "" }}岁</div>
74
+            <div>年龄:{{ i.age ? i.age : '' }}岁</div>
74 75
           </div>
75 76
           <!-- <div style="margin-bottom:20px;padding:10px 10px 0;">病史摘要:{{history.history_of_present_illness?history.history_of_present_illness:''}}</div> -->
76 77
           <!-- <div style="margin-bottom:20px;padding:0 10px;">体格检查:
@@ -86,16 +87,16 @@
86 87
             <div>检验项目:</div>
87 88
             <div>
88 89
               <div
89
-                v-for="item in getTeam(i.prescriptions)"
90
-                :key="item.id"
91
-                style="margin-bottom: 10px"
90
+                  v-for="item in getTeam(i.new_prescriptions)"
91
+                  :key="item.id"
92
+                  style="margin-bottom: 10px"
92 93
               >
93 94
                 {{ item.team.project_team }}
94 95
               </div>
95 96
             </div>
96 97
           </div>
97 98
           <div
98
-            style="
99
+              style="
99 100
               display: flex;
100 101
               justify-content: space-between;
101 102
               border-top: 1px solid #000;
@@ -103,14 +104,14 @@
103 104
               padding: 0 10px;
104 105
             "
105 106
           >
106
-            <div>开单医生:{{ i.info.doctor ? i.info.doctor : "" }}</div>
107
+            <div>开单医生:{{ i.info.doctor ? i.info.doctor : '' }}</div>
107 108
             <div>
108 109
               开单日期:
109 110
               {{
110
-                getTime(i.info.ctime) ? getTime(i.info.ctime).split(" ")[0] : ""
111
+                getTime(i.info.ctime) ? getTime(i.info.ctime).split(' ')[0] : ''
111 112
               }}
112 113
             </div>
113
-            <div>医生签字:{{ i.info.doctor ? i.info.doctor : "" }}</div>
114
+            <div>医生签字:{{ i.info.doctor ? i.info.doctor : '' }}</div>
114 115
           </div>
115 116
         </div>
116 117
         <!--            <img style="width:100%;" v-if="org_id == 10138" src="https://kuyi.shengws.com/bailin/blend.jpg" alt="">-->
@@ -120,12 +121,13 @@
120 121
   </div>
121 122
 </template>
122 123
 <script>
123
-import { jsGetAge, uParseTime } from "@/utils/tools";
124
-import { getAllDoctorList } from "@/api/project/project";
125
-import { getInitData } from "@/api/his/his";
124
+import { uParseTime } from '@/utils/tools'
125
+import { getAllDoctorList } from '@/api/project/project'
126
+import { getInitData } from '@/api/his/his'
127
+
126 128
 export default {
127 129
   props: {
128
-    printData: Array,
130
+    printData: Array
129 131
   },
130 132
   data() {
131 133
     return {
@@ -138,150 +140,164 @@ export default {
138 140
       department: [],
139 141
       prescriptions: [],
140 142
       projectList: [],
141
-      orgname: "",
143
+      orgname: '',
142 144
       diagnoses: [],
143 145
       pageArr: [],
144 146
       faber: {},
145 147
       total: 0,
146 148
       projectPrint: [],
147
-      time: "",
148
-      doctor: "",
149
-      org_id: "",
149
+      time: '',
150
+      doctor: '',
151
+      org_id: '',
150 152
       singleProjectPrint: [],
151
-      total_copy: [],
152
-    };
153
+      total_copy: []
154
+    }
153 155
   },
154 156
 
155 157
   methods: {
156 158
     getAllDoctorList() {
157 159
       getAllDoctorList().then((response) => {
158 160
         if (response.data.state == 1) {
159
-          var doctor = response.data.data.doctor;
161
+          var doctor = response.data.data.doctor
160 162
 
161
-          this.doctorList = doctor;
163
+          this.doctorList = doctor
162 164
         }
163
-      });
165
+      })
164 166
     },
165 167
     getDoctor(id) {
166
-      var name = "";
168
+      var name = ''
167 169
       for (let i = 0; i < this.doctorList.length; i++) {
168 170
         if (id == this.doctorList[i].admin_user_id) {
169
-          name = this.doctorList[i].user_name;
171
+          name = this.doctorList[i].user_name
170 172
         }
171 173
       }
172
-      return name;
174
+      return name
175
+    }, unique_two(array) {
176
+      var res = []
177
+      for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
178
+        for (var j = 0, resLen = res.length; j < resLen; j++) {
179
+          if (array[i].team_id === res[j].team_id) {
180
+            break
181
+          }
182
+        }
183
+        if (j === resLen) {
184
+          res.push(array[i])
185
+        }
186
+      }
187
+      return res
173 188
     },
174 189
     getTime(value, temp) {
175 190
       if (value != undefined) {
176
-        return uParseTime(value, temp);
191
+        return uParseTime(value, temp)
177 192
       }
178
-      return "";
193
+      return ''
179 194
     },
180 195
 
181 196
     getTeam(prescriptions, isUpdate = false) {
182
-      let projectPrint = [];
197
+      let projectPrint = []
183 198
       prescriptions.forEach((item) => {
184 199
         // !此为修改前的处理方法,因考虑到可能有逻辑错误的存在故注释,若后续需求以这个为准可放开此条!
200
+        if (item.project.length > 0) {
201
+          item.project.map((it) => {
202
+            if (it.type == 2) {
203
+              if (it.project.cost_classify == 3) {
204
+                projectPrint.push(it)
205
+              }
206
+            }
207
+          })
208
+        }
185 209
         // if (item.project.length > 0) {
186 210
         //   item.project.map((it) => {
187
-        //     if (it.type == 2) {
188
-        //       if (it.project.cost_classify == 3) {
189
-        //         projectPrint.push(it);
190
-        //       }
191
-        //     }
211
+        //     projectPrint.push(it);
192 212
         //   });
193 213
         // }
194
-
195
-        if (item.project.length > 0) {
196
-          item.project.map((it) => {
197
-            projectPrint.push(it);
198
-          });
199
-        }
200
-      });
201
-
202
-      let data = [];
214
+      })
215
+      let data = []
216
+      console.log(projectPrint)
217
+      projectPrint =  this.unique_two(projectPrint)
203 218
       projectPrint.map((item) => {
204
-        console.log(item, "999");
219
+        // console.log(item, "999");
205 220
         if (item.team.id == 0) {
206
-          data.push(item);
221
+          data.push(item)
207 222
         } else {
208
-          let status = data.some((it) => it.team.id == item.team.id);
223
+          let status = data.some((it) => it.team.id == item.team.id)
209 224
           if (!status) {
210
-            data.push(item);
225
+            data.push(item)
211 226
           }
212 227
         }
213
-      });
228
+      })
214 229
       if (isUpdate) {
215
-        this.projectPrint = data;
230
+        this.projectPrint = data
216 231
       }
217
-      return data;
232
+      return data
218 233
     },
219 234
 
220 235
     // 计算金额(单独从上面的方法割开来,防止进入死循环)
221 236
     getSingleTeam(prescriptions) {
222
-      let projectPrint = [];
223
-      let total = 0;
237
+      let projectPrint = []
238
+      let total = 0
224 239
       prescriptions.map((item) => {
225 240
         if (item.project.length > 0) {
226 241
           item.project.map((it) => {
227 242
             if (it.type == 2) {
228 243
               if (it.project.cost_classify == 3) {
229
-                projectPrint.push(it);
230
-                total += it.project.price * parseInt(it.count);
244
+                projectPrint.push(it)
245
+                total += it.project.price * parseInt(it.count)
231 246
               }
232 247
             }
233
-          });
248
+          })
234 249
         }
235
-      });
236
-      let total_copy = [];
237
-      total_copy.push(total.toFixed(2));
238
-      return total_copy;
250
+      })
251
+      let total_copy = []
252
+      total_copy.push(total.toFixed(2))
253
+      console.log(total_copy)
254
+      return total_copy
239 255
     },
240 256
 
241 257
     getInitData() {
242 258
       getInitData().then((response) => {
243 259
         if (response.data.state == 1) {
244
-          this.department = response.data.data.department;
245
-          this.diagnoses = response.data.data.diagnose.sort(this.compare("id"));
260
+          this.department = response.data.data.department
261
+          this.diagnoses = response.data.data.diagnose.sort(this.compare('id'))
246 262
         }
247
-      });
263
+      })
248 264
     },
249 265
     getDepart(id) {
250
-      var name = "";
266
+      var name = ''
251 267
       for (let i = 0; i < this.department.length; i++) {
252 268
         if (id == this.department[i].id) {
253
-          name = this.department[i].name;
269
+          name = this.department[i].name
254 270
         }
255 271
       }
256
-      return name;
272
+      return name
257 273
     },
258 274
     getTotalOne(id) {
259
-      var total = 0;
260
-      var addtotal = 0;
275
+      var total = 0
276
+      var addtotal = 0
261 277
       for (let i = 0; i < this.prescriptions.length; i++) {
262 278
         if (id == this.prescriptions[i].id) {
263 279
           if (this.prescriptions[i].project != null) {
264 280
             for (let a = 0; a < this.prescriptions[i].project.length; a++) {
265 281
               total =
266
-                total +
267
-                this.prescriptions[i].project[a].price *
268
-                  this.prescriptions[i].project[a].count;
282
+                  total +
283
+                  this.prescriptions[i].project[a].price *
284
+                  this.prescriptions[i].project[a].count
269 285
             }
270 286
           }
271 287
 
272 288
           if (this.prescriptions[i].additionalcharge != null) {
273 289
             for (
274
-              let a = 0;
275
-              a < this.prescriptions[i].additionalcharge.length;
276
-              a++
290
+                let a = 0;
291
+                a < this.prescriptions[i].additionalcharge.length;
292
+                a++
277 293
             ) {
278 294
               addtotal =
279
-                addtotal +
280
-                this.prescriptions[i].additionalcharge[a].price *
281
-                  this.prescriptions[i].additionalcharge[a].count;
295
+                  addtotal +
296
+                  this.prescriptions[i].additionalcharge[a].price *
297
+                  this.prescriptions[i].additionalcharge[a].count
282 298
             }
283 299
           }
284
-          addtotal = Math.floor(addtotal * 100) / 100;
300
+          addtotal = Math.floor(addtotal * 100) / 100
285 301
         }
286 302
       }
287 303
 
@@ -290,180 +306,180 @@ export default {
290 306
           if (this.prescriptions[i].advices != null) {
291 307
             for (let a = 0; a < this.prescriptions[i].advices.length; a++) {
292 308
               total =
293
-                total +
294
-                this.prescriptions[i].advices[a].price *
295
-                  this.prescriptions[i].advices[a].prescribing_number;
309
+                  total +
310
+                  this.prescriptions[i].advices[a].price *
311
+                  this.prescriptions[i].advices[a].prescribing_number
296 312
             }
297 313
           }
298 314
 
299 315
           if (this.prescriptions[i].additionalcharge != null) {
300 316
             for (
301
-              let a = 0;
302
-              a < this.prescriptions[i].additionalcharge.length;
303
-              a++
317
+                let a = 0;
318
+                a < this.prescriptions[i].additionalcharge.length;
319
+                a++
304 320
             ) {
305 321
               addtotal =
306
-                addtotal +
307
-                this.prescriptions[i].additionalcharge[a].price *
308
-                  this.prescriptions[i].additionalcharge[a].count;
322
+                  addtotal +
323
+                  this.prescriptions[i].additionalcharge[a].price *
324
+                  this.prescriptions[i].additionalcharge[a].count
309 325
             }
310 326
           }
311
-          addtotal = Math.floor(addtotal * 100) / 100;
327
+          addtotal = Math.floor(addtotal * 100) / 100
312 328
         }
313 329
       }
314 330
 
315
-      return total + addtotal;
331
+      return total + addtotal
316 332
     },
317 333
 
318 334
     getProjectName(id) {
319
-      var project_name = "";
335
+      var project_name = ''
320 336
       for (let i = 0; i < this.projectList.length; i++) {
321 337
         if (id == this.projectList[i].id) {
322
-          project_name = this.projectList[i].project_name;
338
+          project_name = this.projectList[i].project_name
323 339
         }
324 340
       }
325
-      return project_name;
341
+      return project_name
326 342
     },
327 343
 
328 344
     getDiagnosis(ids) {
329
-      let newIds = ids.split(",").sort(function (a, b) {
330
-        return a - b;
331
-      });
345
+      let newIds = ids.split(',').sort(function(a, b) {
346
+        return a - b
347
+      })
332 348
 
333
-      let nameArr = [];
349
+      let nameArr = []
334 350
       for (let i = 0; i < this.diagnoses.length; i++) {
335 351
         if (newIds.indexOf(this.diagnoses[i].id.toString()) > -1) {
336 352
           // name += diagnoses[i].class_name + ' '
337
-          nameArr.push(this.diagnoses[i].class_name);
353
+          nameArr.push(this.diagnoses[i].class_name)
338 354
         }
339 355
       }
340
-      let newNameArr = [];
356
+      let newNameArr = []
341 357
       nameArr.map((item, index) => {
342
-        if (item == "尿毒症") {
343
-          newNameArr.push(item);
344
-          nameArr.splice(index, 1, "");
358
+        if (item == '尿毒症') {
359
+          newNameArr.push(item)
360
+          nameArr.splice(index, 1, '')
345 361
         }
346
-      });
347
-      newNameArr.push(...nameArr);
348
-      return newNameArr.join(" ");
362
+      })
363
+      newNameArr.push(...nameArr)
364
+      return newNameArr.join(' ')
349 365
     },
350 366
 
351 367
     compare(property) {
352
-      return function (a, b) {
353
-        var value1 = a[property];
354
-        var value2 = b[property];
355
-        return value1 - value2; //升序排序
356
-      };
368
+      return function(a, b) {
369
+        var value1 = a[property]
370
+        var value2 = b[property]
371
+        return value1 - value2 //升序排序
372
+      }
357 373
     },
358 374
     getPage() {
359
-      this.page = 1;
360
-      this.pageArr = [];
375
+      this.page = 1
376
+      this.pageArr = []
361 377
 
362 378
       this.advicePrint.map((item) => {
363
-        let arr = [];
364
-        item.pageArr = [];
379
+        let arr = []
380
+        item.pageArr = []
365 381
         if (item.advices.length <= 5) {
366
-          this.page = 1;
367
-          arr.push(item.advices.length);
368
-          item.pageArr.push(arr);
382
+          this.page = 1
383
+          arr.push(item.advices.length)
384
+          item.pageArr.push(arr)
369 385
         } else if (item.advices.length > 5) {
370
-          this.page = parseInt(item.advices.length / 5);
371
-          let num = item.advices.length % 5;
386
+          this.page = parseInt(item.advices.length / 5)
387
+          let num = item.advices.length % 5
372 388
           for (var i = 0; i < this.page; i++) {
373
-            item.pageArr.push([5]);
389
+            item.pageArr.push([5])
374 390
           }
375 391
           if (num != 0) {
376
-            item.pageArr.push([num]);
392
+            item.pageArr.push([num])
377 393
           }
378 394
         }
379
-      });
395
+      })
380 396
       // console.log('this.pageArr',this.pageArr)
381 397
     },
382 398
     getName(list) {
383
-      console.log("list", list);
384
-      let new_list = [];
399
+      console.log('list', list)
400
+      let new_list = []
385 401
       for (let i = 0; i < list.length; i++) {
386
-        if (list[i].aac031 == "1") {
387
-          new_list.push(list[i]);
402
+        if (list[i].aac031 == '1') {
403
+          new_list.push(list[i])
388 404
         }
389 405
       }
390 406
 
391 407
       switch (new_list[0].bcc334) {
392
-        case "A31001":
393
-          return "深圳医保1档";
394
-          break;
395
-        case "A31002":
396
-          return "深圳医保2档";
397
-
398
-          break;
399
-        case "A31003":
400
-          return "深圳医保3档";
401
-
402
-          break;
403
-        case "A31004":
404
-          return "二档(少儿)";
405
-
406
-          break;
407
-        case "A31005":
408
-          return "学生二档";
409
-
410
-          break;
411
-        case "A31006":
412
-          return "大学生二档";
413
-
414
-          break;
415
-        case "A32001":
416
-          return "在职公务员";
417
-          break;
418
-        case "A32002":
419
-          return "在职驻深公务员";
420
-
421
-          break;
422
-        case "A39301":
423
-          return "家属统筹医疗";
424
-
425
-          break;
426
-        case "A41001":
427
-          return "工伤在职";
428
-
429
-          break;
430
-        case "A51001":
431
-          return "生育在职";
432
-
433
-          break;
434
-        case "A52001":
435
-          return "生育医疗一档";
436
-
437
-          break;
438
-        case "A52002":
439
-          return "生育医疗一档";
440
-
441
-          break;
442
-        case "C31001":
443
-          return "一档医疗退休";
444
-
445
-          break;
446
-        case "C31002":
447
-          return "二档医疗退休";
448
-          break;
408
+        case 'A31001':
409
+          return '深圳医保1档'
410
+          break
411
+        case 'A31002':
412
+          return '深圳医保2档'
413
+
414
+          break
415
+        case 'A31003':
416
+          return '深圳医保3档'
417
+
418
+          break
419
+        case 'A31004':
420
+          return '二档(少儿)'
421
+
422
+          break
423
+        case 'A31005':
424
+          return '学生二档'
425
+
426
+          break
427
+        case 'A31006':
428
+          return '大学生二档'
429
+
430
+          break
431
+        case 'A32001':
432
+          return '在职公务员'
433
+          break
434
+        case 'A32002':
435
+          return '在职驻深公务员'
436
+
437
+          break
438
+        case 'A39301':
439
+          return '家属统筹医疗'
440
+
441
+          break
442
+        case 'A41001':
443
+          return '工伤在职'
444
+
445
+          break
446
+        case 'A51001':
447
+          return '生育在职'
448
+
449
+          break
450
+        case 'A52001':
451
+          return '生育医疗一档'
452
+
453
+          break
454
+        case 'A52002':
455
+          return '生育医疗一档'
456
+
457
+          break
458
+        case 'C31001':
459
+          return '一档医疗退休'
460
+
461
+          break
462
+        case 'C31002':
463
+          return '二档医疗退休'
464
+          break
449 465
       }
450
-    },
466
+    }
451 467
   },
452 468
   created() {
453 469
     // this.getAllDoctorList()
454
-    this.getInitData();
470
+    this.getInitData()
455 471
     // this.getPrescriptionPrint()
456 472
     // this.getHisPatientDetail()
457 473
     // this.getPatientCaseHistory()
458
-    var xtuser = this.$store.getters.xt_user;
459
-    this.orgname = xtuser.org.org_name;
460
-    this.org_id = this.$store.getters.xt_user.org_id;
474
+    var xtuser = this.$store.getters.xt_user
475
+    this.orgname = xtuser.org.org_name
476
+    this.org_id = this.$store.getters.xt_user.org_id
461 477
   },
462 478
   watch: {
463
-    ids: function (val) {
464
-      this.ids = val;
465
-      this.getPrescriptionPrint();
466
-    },
479
+    ids: function(val) {
480
+      this.ids = val
481
+      this.getPrescriptionPrint()
482
+    }
467 483
     // printData: {
468 484
     //   immediate: true,
469 485
     //   deep: true,
@@ -474,65 +490,77 @@ export default {
474 490
     //     });
475 491
     //   },
476 492
     // },
477
-  },
478
-};
493
+  }
494
+}
479 495
 </script>
480 496
 
481 497
 
482 498
 <style lang="scss" scoped>
483 499
 .prescription-print {
484
-  // -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
485
-  //   0 0 60px rgba(0, 0, 0, 0.06) inset;
486
-  // -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
487
-  //   0 0 40px rgba(0, 0, 0, 0.06) inset;
488
-  // box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
500
+ /*-webkit-box-shadow: 0 1 px 4 px rgba(0, 0, 0, 0.27),*/
501
+/*/ / 0 0 60 px rgba(0, 0, 0, 0.06) inset;*/
502
+/*/ / -moz-box-shadow: 0 1 px 4 px rgba(0, 0, 0, 0.27),*/
503
+/*/ / 0 0 40 px rgba(0, 0, 0, 0.06) inset;*/
504
+/*/ / box-shadow: 0 1 px 4 px rgba(0, 0, 0, 0.27), 0 0 40 px rgba(0, 0, 0, 0.06) inset;*/
489 505
   margin-bottom: 20px;
490 506
   padding: 20px 10px;
491 507
 }
508
+
492 509
 .printTitle {
493 510
   font-size: 22px;
494 511
   text-align: center;
495 512
   font-weight: bold;
496 513
   margin-bottom: 10px;
497 514
 }
515
+
498 516
 .infoTitle {
499 517
   display: flex;
500 518
   margin-top: 10px;
501 519
   line-height: 24px;
502 520
 }
521
+
503 522
 .infoTitle div {
504 523
   width: 200px;
505 524
 }
525
+
506 526
 .infoMain {
507 527
   display: flex;
508 528
   flex-wrap: wrap;
509 529
   margin-top: 10px;
510 530
 }
531
+
511 532
 .infoMain div {
512 533
   width: 50%;
513 534
   line-height: 24px;
514 535
 }
536
+
515 537
 .prescriptionBox {
516 538
   padding: 0 10px;
517 539
   min-height: 400px;
518 540
 }
541
+
519 542
 .Rp {
520 543
   font-size: 22px;
521 544
   font-weight: bold;
522 545
 }
546
+
523 547
 .drugsBox {
524 548
   padding-left: 40px;
525 549
   margin-bottom: 10px;
526 550
 }
551
+
527 552
 .drugsBox div {
528 553
   line-height: 20px;
529 554
 }
555
+
530 556
 .drugsOne {
531 557
   line-height: 24px;
532 558
 }
559
+
533 560
 .drugsOne span {
534 561
   margin-right: 20px;
535 562
 }
563
+
536 564
 .doctorBox {
537 565
   display: flex;
538 566
   justify-content: space-between;
@@ -540,15 +568,18 @@ export default {
540 568
   line-height: 24px;
541 569
   border-bottom: 2px solid #000;
542 570
 }
571
+
543 572
 .actionBar {
544 573
   display: flex;
545 574
   justify-content: space-between;
546 575
   line-height: 24px;
547 576
   padding: 0 10px;
548 577
 }
578
+
549 579
 .actionBar p {
550 580
   width: 150px;
551 581
 }
582
+
552 583
 .under_line {
553 584
   display: inline-block;
554 585
   border-bottom: 1px solid #000;

+ 365 - 0
src/xt_pages/outpatientDoctorStation/batch_print_template/batchPrintTwo.vue View File

@@ -0,0 +1,365 @@
1
+<template>
2
+  <div id='prescriptionPrint'>
3
+    <div v-for="(i, index) in printData" :key="index">
4
+      <div v-for="(item, index) in i.prescriptions" :key="index">
5
+        <div id='prescription-print' class="prescription-print" style="page-break-after: always;">
6
+          <div class="printTitle">{{orgname}}处方笺</div>
7
+          <div class="infoTitle">
8
+            <p>姓名:{{i.his_patient.id != 0 ? i.his_patient.name : i.name}}</p>
9
+            <p>性别:
10
+              <span v-if="i.gender == 1">男</span>
11
+              <span v-if="i.gender == 2">女</span>
12
+            </p>
13
+            <p>年龄:{{ i.his_patient.id != 0 ? getAge(i.his_patient) : i.age}}岁</p>
14
+          </div>
15
+          <div class="infoMain">
16
+            <div style="margin-bottom: 10px;">门诊号:{{ i.his_patient.id != 0 ? i.his_patient.number : ""}}</div>
17
+            <div style="margin-bottom: 10px;">科室:{{ i.info.id != 0
18
+                ? getDepart(i.info.departments)
19
+                : ""}}</div>
20
+            <div style="margin-bottom: 10px;">医保卡号:</div>
21
+            <div style="margin-bottom: 10px;">电话:{{i.phone}}</div>
22
+            <div>地址:{{i.home_address}}</div>
23
+            <div style="display:flex;width:50%;">临床诊断:{{getDiagnosis(i.info.diagnosis)}}</div>
24
+          </div>
25
+          <div class="prescriptionBox">
26
+            <div class="Rp">Rp:</div>
27
+            <div class="drugsBox" v-for="(it,index) in item.advices" :key="index">
28
+              <!-- <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{it.advice_name?it.advice_name:""}}&nbsp;&nbsp;{{it.single_dose}}{{it.single_dose_unit}}&nbsp;×&nbsp; {{it.prescribing_number}}{{it.prescribing_number_unit}}</div> -->
29
+              <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{it.advice_name?it.advice_name:""}}&nbsp;&nbsp;<span>用法:{{it.single_dose}}{{it.single_dose_unit}}</span>&nbsp;&nbsp;<span>{{it.execution_frequency}}&nbsp;{{it.delivery_way}}&nbsp;</span>&nbsp;&nbsp;<span>{{it.advice_desc}}</span></div>
30
+              <div style="margin-left:100px;"><span>{{it.drug.drug_spec}}&nbsp;×&nbsp; {{it.prescribing_number}}{{it.prescribing_number_unit}}</span></div>
31
+            </div>
32
+            <div class="drugsBox" v-for="(it,i) in item.additionalcharge" :key="i">
33
+              <div class="drugsOne">{{it.item_name?it.item_name:""}}:&nbsp;{{it.price}}元/{{it.count}}次</div>
34
+            </div>
35
+
36
+            <div class="drugsBox" v-for="(it,index) in item.project" :key="index">
37
+              <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{getProjectName(it.project_id)?getProjectName(it.project_id):""}}&nbsp;&nbsp;<span>用法:{{it.single_dose}}{{it.single_dose_unit}}</span>&nbsp;&nbsp;<span>{{it.delivery_way}}</span>&nbsp;&nbsp;<span>{{it.advice_desc}}</span></div>
38
+              <div style="margin-left:100px;"><span>{{it.single_dose}}{{it.single_dose_unit}}&nbsp;×&nbsp; {{it.count}}{{unit}}</span></div>
39
+            </div>
40
+            <div class="drugsBox" v-for="(it,i) in item.additionalcharge" :key="i">
41
+              <div class="drugsOne">{{it.project_id?it.project_id:""}}:&nbsp;{{it.price.toFixed(2)}}元/{{it.count}}次</div>
42
+            </div>
43
+            <div style="text-align:center;" >(以下空白)</div>
44
+
45
+          </div>
46
+          <div class="doctorBox">
47
+            <p>医师:{{item.doctor?item.doctor:""}}</p>
48
+            <p>日期:{{getTime(item.ctime)?getTime(item.ctime):""}}</p>
49
+          </div>
50
+          <div class="actionBar">
51
+            <!-- <p>审核:{{getDoctor(item.advices[0].checker)?getDoctor(item.advices[0].checker):""}}</p>
52
+            <p>配对:</p>
53
+            <p>核对:{{getDoctor(item.advices[0].checker)?getDoctor(item.advices[0].checker):""}}</p>
54
+            <p>发药:{{getDoctor(item.advices[0].execution_staff)?getDoctor(item.advices[0].execution_staff):""}}</p>
55
+            <p>药费:{{getTotalOne(item.id)?getTotalOne(item.id):0}}元</p> -->
56
+
57
+            <p>审核:</p>
58
+            <p>配对:</p>
59
+            <p>核对:</p>
60
+            <p>发药:</p>
61
+            药费:{{
62
+              getTotalOne(item.advices).toFixed(2)
63
+                  ? getTotalOne(item.advices).toFixed(2)
64
+                  : 0
65
+            }}元
66
+            <!--            <p>药费:551.2元</p>-->
67
+            <!--            <p>药费:466.2元</p>-->
68
+
69
+
70
+          </div>
71
+          <div style="page-break-after:always"></div>
72
+        </div>
73
+      </div>
74
+
75
+    </div>
76
+
77
+  </div>
78
+
79
+
80
+</template>
81
+<script>
82
+import { jsGetAge, uParseTime } from '@/utils/tools'
83
+import {getAllDoctorList,getPrescriptionPrint,getHisPatientDetail} from "@/api/project/project"
84
+import {getInitData} from "@/api/his/his"
85
+export default {
86
+    props:{
87
+      patient_id: String,
88
+      record_date: String,
89
+      prescription_id: String,
90
+      ids: String,
91
+      printData: Array,
92
+    },
93
+    data(){
94
+      return {
95
+        doctorList: [],
96
+        advicePrint: {},
97
+        patient: {},
98
+        tableData: [],
99
+        prescriptionInfo: [],
100
+        hisPatient: {},
101
+        department: [],
102
+        prescriptions: [],
103
+        projectList: [],
104
+        orgname: "",
105
+        diagnoses: [],
106
+        org_id: 0,
107
+      }
108
+    },
109
+   methods:{
110
+     getAge(patient){
111
+       var thisLen = patient.id_card_no.length
112
+       var birth = ''
113
+       if (thisLen == 15) {
114
+         birth = '19' + patient.id_card_no.substr(6, 6)
115
+       } else {
116
+         birth = patient.id_card_no.substr(6, 8)
117
+       }
118
+       var births =
119
+         birth.substr(0, 4) +
120
+         '-' +
121
+         birth.substr(4, 2) +
122
+         '-' +
123
+         birth.substr(6, 2)
124
+        return jsGetAge(births, '-')
125
+
126
+     },
127
+
128
+     getAllDoctorList(){
129
+      getAllDoctorList().then(response=>{
130
+        if(response.data.state == 1){
131
+               var doctor =  response.data.data.doctor
132
+
133
+               this.doctorList = doctor
134
+             }
135
+         })
136
+     },
137
+
138
+      getDoctor(id){
139
+        var name = ""
140
+        for(let i=0;i<this.doctorList.length;i++){
141
+          if(id == this.doctorList[i].admin_user_id){
142
+              name = this.doctorList[i].user_name
143
+          }
144
+        }
145
+        return name
146
+      },
147
+      getTime(value, temp) {
148
+        if (value != undefined) {
149
+            return uParseTime(value, temp)
150
+        }
151
+        return ''
152
+     },
153
+       getPrescriptionPrint(){
154
+         var params = {
155
+          // patient_id:this.patient_id,
156
+          // record_date:this.record_date,
157
+          // prescription_id:this.prescription_id,
158
+          patient_id:this.patient_id,
159
+          record_date:this.record_date,
160
+          prescription_id:this.prescription_id,
161
+          ids:this.ids,
162
+           p_type:2,
163
+
164
+         }
165
+        console.log("params",params)
166
+       getPrescriptionPrint(params).then(response=>{
167
+         if(response.data.state == 1){
168
+            var advicePrint =  response.data.data.advicePrint
169
+            console.log("adviceprint9999",advicePrint)
170
+            this.advicePrint = advicePrint
171
+            this.prescriptions = advicePrint
172
+            console.log("处方222222",this.prescriptions)
173
+            var hisPatient = response.data.data.hisPatient
174
+            console.log("hisPatient",hisPatient)
175
+            this.hisPatient = hisPatient
176
+            var projectlist =  response.data.data.projectlist
177
+            console.log("所有项目列表",projectlist)
178
+            this.projectList = projectlist
179
+          }
180
+       })
181
+     },
182
+     getHisPatientDetail(){
183
+          const params = {
184
+              patient_id:this.patient_id
185
+          }
186
+       getHisPatientDetail(params).then(response=>{
187
+          if(response.data.state == 1){
188
+             var hisPatient =  response.data.data.hisPatient
189
+             console.log("挂号病人",hisPatient)
190
+             this.hisPatient = hisPatient
191
+          }
192
+       })
193
+     },
194
+     getInitData(){
195
+       getInitData().then(response=>{
196
+          if(response.data.state == 1){
197
+            this.department = response.data.data.department
198
+            this.diagnoses = response.data.data.diagnose
199
+            console.log("争端",this.diagnoses)
200
+          }
201
+       })
202
+     },
203
+     getDepart(id){
204
+         var name = ""
205
+       for(let i=0;i<this.department.length;i++){
206
+           if(id == this.department[i].id){
207
+               name = this.department[i].name
208
+           }
209
+       }
210
+       return name
211
+     },
212
+    getTotalOne(id) {
213
+
214
+        var total = 0
215
+        var addtotal = 0
216
+        for (let i = 0; i < this.prescriptions.length; i++) {
217
+          if(id == this.prescriptions[i].id){
218
+            if (this.prescriptions[i].project != null) {
219
+              for (let a = 0; a < this.prescriptions[i].project.length; a++) {
220
+                total = total + this.prescriptions[i].project[a].price * this.prescriptions[i].project[a].count
221
+              }
222
+            }
223
+
224
+            if (this.prescriptions[i].additionalcharge != null) {
225
+              for (let a = 0; a < this.prescriptions[i].additionalcharge.length; a++) {
226
+                addtotal = addtotal + this.prescriptions[i].additionalcharge[a].price * this.prescriptions[i].additionalcharge[a].count
227
+              }
228
+            }
229
+              addtotal =  Math.floor(addtotal * 100) / 100
230
+        }
231
+
232
+       }
233
+
234
+      for (let i = 0; i < this.prescriptions.length; i++) {
235
+          if(id == this.prescriptions[i].id){
236
+            if (this.prescriptions[i].advices != null) {
237
+              for (let a = 0; a < this.prescriptions[i].advices.length; a++) {
238
+                total = total + this.prescriptions[i].advices[a].price * this.prescriptions[i].advices[a].prescribing_number
239
+              }
240
+            }
241
+
242
+            if (this.prescriptions[i].additionalcharge != null) {
243
+              for (let a = 0; a < this.prescriptions[i].additionalcharge.length; a++) {
244
+                addtotal = addtotal + this.prescriptions[i].additionalcharge[a].price * this.prescriptions[i].additionalcharge[a].count
245
+              }
246
+            }
247
+              addtotal =  Math.floor(addtotal * 100) / 100
248
+        }
249
+       }
250
+
251
+        return total + addtotal
252
+      },
253
+
254
+     getProjectName(id){
255
+        var project_name = ""
256
+        for(let i=0;i<this.projectList.length;i++){
257
+           if(id == this.projectList[i].id){
258
+               project_name = this.projectList[i].project_name
259
+           }
260
+        }
261
+        return project_name
262
+     },
263
+
264
+     getDiagnosis(id){
265
+       let arr = id.split(',')
266
+       var name = ""
267
+       for(let i=0;i<this.diagnoses.length;i++){
268
+         if(arr.indexOf(String(this.diagnoses[i].id)) > -1){
269
+           name += this.diagnoses[i].class_name + ' '
270
+         }
271
+       }
272
+       return name
273
+     }
274
+
275
+   },
276
+   created(){
277
+      this.getAllDoctorList()
278
+      this.getInitData()
279
+      this.getPrescriptionPrint()
280
+      this.getHisPatientDetail()
281
+      var xtuser = this.$store.getters.xt_user;
282
+      this.orgname = xtuser.org.org_name;
283
+
284
+   },
285
+   watch:{
286
+     ids:function(val){
287
+      this.ids = val
288
+      this.getPrescriptionPrint()
289
+    }
290
+   }
291
+}
292
+</script>
293
+
294
+
295
+<style lang="scss" scoped>
296
+.prescription-print{
297
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
298
+    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
299
+    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
300
+    margin-bottom: 20px;
301
+    padding:20px 10px;
302
+}
303
+.printTitle{
304
+    font-size: 22px;
305
+    text-align: center;
306
+    font-weight: bold;
307
+}
308
+.infoTitle{
309
+    display: flex;
310
+    border-bottom: 2px solid #000;
311
+    margin-top:10px;
312
+    line-height: 24px;
313
+    padding:0 10px;
314
+}
315
+.infoTitle p{
316
+    width: 200px;
317
+}
318
+.infoMain{
319
+    display: flex;
320
+    flex-wrap: wrap;
321
+    border-bottom: 2px solid #000;
322
+    padding:0 10px;
323
+}
324
+.infoMain div{
325
+    width: 50%;
326
+    line-height: 24px;
327
+}
328
+.prescriptionBox{
329
+    padding:0 10px;
330
+    min-height:450px;
331
+}
332
+.Rp{
333
+    font-size: 22px;
334
+    font-weight: bold;
335
+}
336
+.drugsBox{
337
+    padding-left: 40px;
338
+    margin-bottom: 10px;
339
+}
340
+.drugsBox div{
341
+    line-height: 20px;
342
+}
343
+.drugsOne{
344
+    line-height: 24px;
345
+}
346
+.drugsOne span{
347
+    margin-right: 20px;
348
+}
349
+.doctorBox{
350
+    display: flex;
351
+    justify-content: space-between;
352
+    padding:0 10px;
353
+    line-height: 24px;
354
+    border-bottom: 2px solid #000;
355
+}
356
+.actionBar{
357
+    display: flex;
358
+    justify-content: space-between;
359
+    line-height: 24px;
360
+    padding:0 10px;
361
+}
362
+.actionBar p{
363
+    width:150px;
364
+}
365
+</style>

+ 11 - 9
src/xt_pages/outpatientDoctorStation/batch_print_template/index.vue View File

@@ -14,13 +14,13 @@
14 14
 
15 15
     <div class='dialysisPage' style="padding-top:40px;">
16 16
       <div v-if="org_id != 10138 && org_id != 10278">
17
-        <printOne v-if="org_id != 10088 && org_id != 10215" :printData="printData"  :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
18
-        <printFour v-if="org_id == 10088" v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printFour>
19
-        <printFive v-if="org_id == 10215" v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printFive>
20
-      </div>
21
-      <div v-else>
22
-        <printThree v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printThree>
17
+        <printOne v-if="org_id != 10215" :printData="printData"  :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
18
+<!--        <batch-print-two v-if="org_id == 10088 || org_id == 0" :printData="printData"  :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></batch-print-two>-->
19
+<!--        <print-six v-if="org_id == 10088 || org_id == 0" :printData="printData"  :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></print-six>-->
20
+<!--        <printFour v-if="org_id == 10088 || org_id == 0"  :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printFour>-->
21
+<!--        <printFive v-if="org_id == 10215" v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printFive>-->
23 22
       </div>
23
+
24 24
     </div>
25 25
   </div>
26 26
 </template>
@@ -36,13 +36,15 @@ import { jsGetAge, uParseTime } from "@/utils/tools";
36 36
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
37 37
 import print from "print-js";
38 38
 import printOne from "./printOne"
39
-// import printThree from "./template/printThree"
40
-// import printFour from "./template/printFour"
41
-// import printFive from "./template/printFive"
39
+import printFour from "./batchPrintTwo"
42 40
 import { getAllDoctorList,getAllHisPatientList,getPrescriptionPrint } from "@/api/project/project"
41
+import PrintSix from '../template/printSix'
42
+import BatchPrintTwo from './batchPrintTwo'
43 43
 export default {
44 44
   name: "dialysisPrintOrder",
45 45
   components: {
46
+    BatchPrintTwo,
47
+    PrintSix,
46 48
     BreadCrumb,
47 49
     printOne
48 50
   },

+ 2 - 2
src/xt_pages/outpatientDoctorStation/batch_print_template/printOne.vue View File

@@ -43,8 +43,8 @@
43 43
             </div>
44 44
             <div style="margin-bottom: 10px">
45 45
               科室:{{
46
-                i.his_patient.id != 0
47
-                  ? getDepart(i.his_patient.departments)
46
+                i.info.id != 0
47
+                  ? getDepart(i.info.departments)
48 48
                   : ""
49 49
               }}
50 50
             </div>

+ 34 - 33
src/xt_pages/outpatientDoctorStation/batch_print_treatTemplate/index.vue View File

@@ -11,10 +11,10 @@
11 11
           >打印</el-button
12 12
         >
13 13
       </template> -->
14
-            
14
+
15 15
       <div class='dialysisPage' style="padding-top:40px;">
16
-        <printOne v-if="org_id != 10138 && org_id != 10278" :printData="printData" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
17
-        <printTwo v-else :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printTwo>
16
+        <printOne v-if="org_id != 10138 && org_id != 10278 && org_id != 0" :printData="printData" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
17
+<!--        <printTwo v-else :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printTwo>-->
18 18
       </div>
19 19
   </div>
20 20
 </template>
@@ -76,10 +76,11 @@ export default {
76 76
             scanStyles: false
77 77
           });
78 78
         },500)
79
-        
80
-      }else{
79
+
80
+      }
81
+      else{
81 82
         const style =
82
-        '@media print {#prescription-print{font-size:14px;}.prescription-print:last-child {page-break-after: auto;}.prescription-print{font-size: 14px;}.printTitle{font-size: 18px;text-align: center;font-weight: bold;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:5px;padding:0 10px;}.infoTitle div{width: 300px;margin-bottom:5px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain div{width: 50%;}.prescriptionBox{padding:0 10px;min-height:380px;}.Rp{font-size: 22px;font-weight: bold;line-height:1px;}.drugsBox{padding-left: 40px;margin-bottom: 10px;margin-bottom: 10px;}.drugsBox p{line-height: 1px;padding-bottom:10px !important;} .drugsOne{line-height: 1px;margin-bottom:10px !important;} .drugsOne span{margin-right: 20px;} .doctorBox{display: flex; justify-content: space-between; padding:0 10px; border-bottom: 2px solid #000;} .actionBar{display: flex; justify-content: space-between; padding:0 10px;margin:5px 0;} .actionBar div{width:150px;}}';
83
+        '@media print {#prescription-print{font-size:14px;page-break-after:always;}.prescription-print:last-child {page-break-after: auto;}.prescription-print{font-size: 14px;page-break-after:always;}.printTitle{font-size: 18px;text-align: center;font-weight: bold;}.infoTitle{display: flex;border-bottom: 2px solid #000;padding:0 10px;}.infoTitle div{width: 300px;margin-bottom:5px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain div{width: 50%;}.prescriptionBox{padding:0 10px;min-height:360px;}.doctor_style{border:none;}.doctor_style tr{page-break-inside:avoid;}.doctor_style tr td{border:1px solid #000}.Rp{font-size: 22px;font-weight: bold;line-height:1px;}.drugsBox{padding-left: 40px;margin-bottom: 10px;margin-bottom: 10px;}.drugsBox p{line-height: 1px;padding-bottom:10px !important;} .drugsOne{line-height: 1px;margin-bottom:10px !important;} .drugsOne span{margin-right: 20px;} .doctorBox{display: flex; justify-content: space-between; padding:0 10px; border-bottom: 2px solid #000;} .actionBar{display: flex; justify-content: space-between; padding:0 10px;margin:5px 0;} .actionBar div{width:150px;} .doctor_style{border: none} }';
83 84
         printJS({
84 85
           printable: "prescriptionPrint",
85 86
           type: "html",
@@ -87,7 +88,7 @@ export default {
87 88
           scanStyles: false
88 89
         });
89 90
       }
90
-      
91
+
91 92
 
92 93
       // if (this.org_template_info.template_id == 1) {
93 94
       //   printJS({
@@ -102,10 +103,10 @@ export default {
102 103
       getAllDoctorList().then(response=>{
103 104
         if(response.data.state == 1){
104 105
                var doctor =  response.data.data.doctor
105
-               
106
+
106 107
                this.doctorList = doctor
107 108
              }
108
-         })   
109
+         })
109 110
      },
110 111
     getAllHisPatientList(){
111 112
          const params = {
@@ -131,16 +132,16 @@ export default {
131 132
             // console.log(this.patientTableData[0])
132 133
             // this.choosePatient(this.patientTableData[0])
133 134
             this.cal_one = cal_one
134
-            this.cal_two = cal_two   
135
+            this.cal_two = cal_two
135 136
          }
136 137
       })
137 138
     },
138 139
 
139 140
     changePatient(row){
140
-      console.log("row",row)
141
-      this.patient_id = row.patient_id
142
-      this.record_date = this.record_date
143
-      this.prescription_id = this.prescription_id
141
+      // console.log("row",row)
142
+      // this.patient_id = row.patient_id
143
+      // this.record_date = this.record_date
144
+      // this.prescription_id = this.prescription_id
144 145
       //   var params = {
145 146
       //     patient_id:row.patient_id,
146 147
       //     record_date:this.record_date,
@@ -165,31 +166,31 @@ export default {
165 166
     searchAction(){
166 167
 
167 168
     }
168
-    
169
+
169 170
   },
170 171
 
171 172
   created() {
172
-    this.org_id = this.$store.getters.xt_user.org_id
173
-    this.getAllDoctorList()
174
-    var record_date = this.paramsObj.record
175
-    this.record_date = record_date
176
-    console.log("record_date",record_date)
177
-    this.prescription_id = this.paramsObj.prescription_id
178
-    this.patient_id = this.paramsObj.patient_id
179
-    this.ids = this.paramsObj.ids
180
-    this.getAllHisPatientList(record_date)
173
+    // this.org_id = this.$store.getters.xt_user.org_id
174
+    // this.getAllDoctorList()
175
+    // var record_date = this.paramsObj.record_date
176
+    // this.record_date = record_date
177
+    // console.log("record_date",record_date)
178
+    // this.prescription_id = this.paramsObj.prescription_id
179
+    // this.patient_id = this.paramsObj.patient_id
180
+    // this.ids = this.paramsObj.ids
181
+    // this.getAllHisPatientList(record_date)
181 182
   },
182 183
   watch:{
183 184
     paramsObj:{//深度监听,可监听到对象、数组的变化
184 185
       handler(val, oldVal){
185
-        this.paramsObj = val
186
-        this.patient_id = this.paramsObj.patient_id
187
-        var record_date = this.paramsObj.record
188
-        this.record_date = record_date
189
-        var prescription_id = this.paramsObj.prescription_id
190
-        this.prescription_id = prescription_id
191
-        this.ids = this.paramsObj.ids
192
-        
186
+        // this.paramsObj = val
187
+        // this.patient_id = this.paramsObj.patient_id
188
+        // var record_date = this.paramsObj.record
189
+        // this.record_date = record_date
190
+        // var prescription_id = this.paramsObj.prescription_id
191
+        // this.prescription_id = prescription_id
192
+        // this.ids = this.paramsObj.ids
193
+
193 194
       },
194 195
       deep:true
195 196
     }
@@ -362,7 +363,7 @@ export default {
362 363
   .dialysisPage::-webkit-scrollbar {
363 364
     height: 15px;
364 365
   }
365
-  
366
+
366 367
   .el-date-editor{
367 368
     .el-input__inner{
368 369
       padding-right:0px;

+ 456 - 452
src/xt_pages/outpatientDoctorStation/batch_print_treatTemplate/printOne.vue View File

@@ -1,251 +1,257 @@
1 1
 <template>
2
-    <div id='prescriptionPrint'>
3
-      <div v-for="(i,index) in printData">
4
-        <div id='prescription-print' class="prescription-print" v-for="(item,index) in i.prescriptions" :key="index">
5
-
6
-            <div style="display:flex;justify-content: space-between;font-weight:bold;align-items:center;">
7
-                <div style="width:200px;display:flex;justify-content: space-between;font-weight:bold;">
8
-                    <span>费别</span>
9
-                    <span>自费</span>
10
-                    <span>公费</span>
11
-                    <span>保险</span>
12
-                    <span>其他</span>
13
-                </div>
14
-                <div>就诊日期:{{getTime(i.info.ctime,'{y}-{m}-{d}')}}</div>
15
-            </div>
16
-
17
-            <div class="printTitle">{{orgname}}</div>
18
-            <div class="printTitle">处方、治疗单</div>
19
-
20
-            <div class="infoTitle">
21
-                <div>门诊编号:</div>
22
-                <div>电脑号:</div>
23
-            </div>
24
-
25
-            <div class="infoMain">
26
-                <div style="margin-bottom: 10px;width:25%">姓名:{{i.name}}</div>
27
-                <div style="margin-bottom: 10px;width:25%">性别:
28
-                  <span >
2
+  <div id='prescriptionPrint'>
3
+    <div v-for="(i,index) in printData">
4
+      <div id='prescription-print' class="prescription-print" style="page-break-after:always;" v-for="(item,index) in i.prescriptions" :key="index" v-if="item.project.length > 0">
5
+        <div class="toptitle" style="display:flex;justify-content: space-between;font-weight:bold;align-items:center;">
6
+          <div  style="width:200px;display:flex;justify-content: space-between;font-weight:bold;">
7
+            <span>费别</span>
8
+            <span>自费</span>
9
+            <span>公费</span>
10
+            <span>保险</span>
11
+            <span>其他</span>
12
+          </div>
13
+          <div>就诊日期:{{ getTime(i.info.ctime, '{y}-{m}-{d}') }}</div>
14
+        </div>
15
+
16
+        <div class="printTitle">{{ orgname }}测试</div>
17
+        <div class="printTitle">处方、治疗单</div>
18
+
19
+        <div class="infoTitle">
20
+          <div>门诊编号:</div>
21
+          <div>电脑号:</div>
22
+        </div>
23
+
24
+        <div class="infoMain">
25
+          <div style="margin-bottom: 10px;width:25%">姓名:{{ i.name }}</div>
26
+          <div style="margin-bottom: 10px;width:25%">性别:
27
+            <span>
29 28
                     <span v-if="i.gender == 1">男</span>
30 29
                     <span v-if="i.gender == 2">女</span>
31 30
                   </span>
32
-                </div>
33
-                <div style="margin-bottom: 10px;width:25%">年龄:
34
-                    <span>{{i.his_patient.id != 0?getAge(i.his_patient):i.age}}</span>
35
-                </div>
36
-                <div style="margin-bottom: 10px;width:25%">参保类型:{{i.his_patient.id != 0?i.his_patient.social_type:''}}
37
-                </div>
38
-                <div style="margin-bottom: 10px;width:50%;">联系电话:{{i.his_patient.id != 0 ? i.his_patient.phone : i.phone}}</div>
39
-                <div style="width:50%;">地址:{{i.home_address}}</div>
40
-                <div style="width:100%;">诊断:{{getDiagnosis(i.info.diagnosis)}}</div>
41
-            </div>
42
-
43
-            <div class="prescriptionBox">
44
-                <table style="width:100%;text-align:center;line-height:25px;">
45
-                    <tr>
46
-                        <td>序号</td>
47
-                        <td>项目名称</td>
48
-                        <td>数量</td>
49
-                        <td>单位</td>
50
-                        <td>单价</td>
51
-                        <td>部位</td>
52
-                        <td>备注</td>
53
-                        <td>天数</td>
54
-                    </tr>
55
-                    <tr v-for="(it,index) in item.project" :key="index">
56
-                        <td>{{index+1}}</td>
57
-                        <td>{{it.type == 2 ? it.project.project_name : it.good_info.good_name}}</td>
58
-                        <td>{{it.count}}</td>
59
-                        <td>{{getUnit(it.unit)}}</td>
60
-                        <td>{{it.price.toFixed(2)}}</td>
61
-                        <td></td>
62
-                        <td>{{it.remark}}</td>
63
-                        <td>{{it.day}}</td>
64
-
65
-                    </tr>
66
-
67
-                    <tr v-for="(it,index) in item.advices" :key="index">
68
-                        <td>{{index+1}}</td>
69
-                        <td>{{it.advice_name?it.advice_name:''}}</td>
70
-                        <td>{{it.single_dose?it.single_dose:''}}</td>
71
-                        <td>{{it.single_dose_unit?it.single_dose_unit:''}}</td>
72
-                        <td>{{it.price.toFixed(2)}}</td>
73
-                        <td></td>
74
-                        <td>{{it.remark}}</td>
75
-                        <td>{{it.day}}</td>
76
-
77
-                    </tr>
78
-                </table>
79
-            </div>
80
-
81
-            <div class="infoTitle">
82
-                <div>开单医生:{{i.info.doctor?i.info.doctor:''}}</div>
83
-                <div>签章:</div>
84
-            </div>
85
-
86
-            <div class="actionBar">
87
-                <div>执行医生:{{i.info.doctor?i.info.doctor:''}}</div>
88
-                <div>费用:{{getTotalOne(item.project).toFixed(2)?getTotalOne(item.project).toFixed(2):''}}元</div>
89
-            </div>
90
-
91
-            <table style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
92
-                <tr>
93
-                    <td style="width:16%;">治疗时间</td>
94
-                    <td style="width:16%;"></td>
95
-                    <td style="width:16%;"></td>
96
-                    <td style="width:16%;"></td>
97
-                    <td style="width:16%;"></td>
98
-                    <td style="width:16%;"></td>
99
-                </tr>
100
-                <tr>
101
-                    <td style="width:16%;">医生签字</td>
102
-                    <td style="width:16%;"></td>
103
-                    <td style="width:16%;"></td>
104
-                    <td style="width:16%;"></td>
105
-                    <td style="width:16%;"></td>
106
-                    <td style="width:16%;"></td>
107
-                </tr>
108
-                <tr>
109
-                    <td style="width:16px;">患者签字</td>
110
-                    <td style="width:16px;"></td>
111
-                    <td style="width:16px;"></td>
112
-                    <td style="width:16px;"></td>
113
-                    <td style="width:16px;"></td>
114
-                    <td style="width:16px;"></td>
115
-                </tr>
116
-            </table>
31
+          </div>
32
+          <div style="margin-bottom: 10px;width:25%">年龄:
33
+            <span>{{ i.his_patient.id != 0 ? getAge(i.his_patient) : i.age }}</span>
34
+          </div>
35
+          <div style="margin-bottom: 10px;width:25%" v-if="i.his_patient.id&&i.his_patient.social_type == 390 ">
36
+            参保类型:{{ '城乡居民基本医疗保险' }}
37
+          </div>
38
+          <div style="margin-bottom: 10px;width:25%" v-if="i.his_patient.id&&i.his_patient.social_type == 310 ">
39
+            参保类型:{{ '职工基本医疗保险' }}
40
+          </div>
41
+          <div style="margin-bottom: 10px;width:25%" v-else>参保类型:{{ '' }}</div>
42
+
43
+          <div style="margin-bottom: 10px;width:50%;">联系电话:{{ i.his_patient.id != 0 ? i.his_patient.phone : i.phone }}
44
+          </div>
45
+          <div style="width:50%;">地址:{{ i.home_address }}</div>
46
+          <div style="width:100%;">诊断:{{ getDiagnosis(i.info.diagnosis) }}</div>
117 47
         </div>
118 48
 
49
+        <div class="prescriptionBox">
50
+          <table style="width:100%;text-align:center;line-height:25px;">
51
+            <tr>
52
+              <td>序号</td>
53
+              <td>项目名称</td>
54
+              <td>数量</td>
55
+              <td>单位</td>
56
+              <td>单价</td>
57
+              <td>部位</td>
58
+              <td>备注</td>
59
+              <td>天数</td>
60
+            </tr>
61
+            <tr v-for="(it,index) in item.project" :key="index">
62
+              <td>{{ index + 1 }}</td>
63
+              <td>{{ it.type == 2 ? it.project.project_name : it.good_info.good_name }}</td>
64
+              <td>{{ it.count }}</td>
65
+              <td>{{ getUnit(it.unit) }}</td>
66
+              <td>{{ it.price.toFixed(2) }}</td>
67
+              <td></td>
68
+              <td>{{ it.remark }}</td>
69
+              <td>{{ it.day }}</td>
70
+
71
+            </tr>
72
+
73
+            <tr v-for="(it,index) in item.advices" :key="index">
74
+              <td>{{ index + 1 }}</td>
75
+              <td>{{ it.advice_name ? it.advice_name : '' }}</td>
76
+              <td>{{ it.single_dose ? it.single_dose : '' }}</td>
77
+              <td>{{ it.single_dose_unit ? it.single_dose_unit : '' }}</td>
78
+              <td>{{ it.price.toFixed(2) }}</td>
79
+              <td></td>
80
+              <td>{{ it.remark }}</td>
81
+              <td>{{ it.day }}</td>
82
+
83
+            </tr>
84
+          </table>
85
+        </div>
119 86
 
120
-        <!-- <div id='prescriptionPrint'>
121
-
122
-            <div v-for="(item,index) in advicePrint" :key="index">
123
-                <div id='prescription-print' class="prescription-print" style="page-break-after: always;">
124
-                    <div style="display:flex;justify-content: space-between;font-weight:bold;">
125
-                        <div style="width:200px;display:flex;justify-content: space-between;font-weight:bold;">
126
-                            <span>费别</span>
127
-                            <span>自费</span>
128
-                            <span>公费</span>
129
-                            <span>保险</span>
130
-                            <span>其他</span>
131
-                        </div>
132
-                        <div>就诊日期:{{getTime(item.ctime)}}</div>
133
-                    </div>
134
-
135
-                    <div class="printTitle">血液透析中心</div>
136
-
137
-                    <div class="printTitle">处方、治疗单</div>
138
-
139
-                    <div class="infoTitle">
140
-                        <div>门诊编号:</div>
141
-                        <div>电脑号:</div>
142
-                    </div>
143
-
144
-                    <div class="infoMain">
145
-                        <div style="margin-bottom: 10px;width:25%">姓名:{{item.patient.name}}</div>
146
-                        <div style="margin-bottom: 10px;width:25%">性别:
147
-                            <span v-if="item.patient.gender == 1">男</span>
148
-                            <span v-if="item.patient.gender == 2">女</span>
149
-                        </div>
150
-                        <div style="margin-bottom: 10px;width:25%">年龄:
151
-                            <span>{{item.patient.age}}</span>
152
-                        </div>
153
-                        <div style="margin-bottom: 10px;width:25%">参保类型:</div>
154
-                        <div style="margin-bottom: 10px;width:50%;">联系电话:{{item.patient.phone}}</div>
155
-                        <div style="width:50%;">地址:{{item.patient.unit_address}}</div>
156
-                        <div style="width:100%;">诊断:{{item.patient.diagnose}}</div>
157
-                    </div>
158
-
159
-                    <div class="prescriptionBox">
160
-                        <table style="width:100%;text-align:center;line-height:25px;">
161
-                            <tr>
162
-                                <td>序号</td>
163
-                                <td>项目名称</td>
164
-                                <td>数量</td>
165
-                                <td>单位</td>
166
-                                <td>单价</td>
167
-                                <td>部位</td>
168
-                                <td>备注</td>
169
-                                <td>天数</td>
170
-                            </tr>
171
-                            <tr v-for="(it,index) in item.project" :key="index">
172
-                                <td>{{index+1}}</td>
173
-                                <td>{{getProjectName(it.project_id)}}</td>
174
-                                <td>{{it.single_dose}}</td>
175
-                                <td>{{getUnit(it.unit)}}</td>
176
-                                <td>{{it.price}}</td>
177
-                                <td></td>
178
-                                <td>{{it.remark}}</td>
179
-                                <td>{{it.day}}</td>
180
-
181
-                            </tr>
182
-                        </table>
183
-                    </div>
184
-                    <div class="infoTitle">
185
-                        <div>开单医生:{{getDoctor(item.doctor)?getDoctor(item.doctor):""}}</div>
186
-                        <div>签章:</div>
187
-                    </div>
188
-                    <div class="actionBar">
189
-                        <div>执行医生:{{getDoctor(item.doctor)?getDoctor(item.doctor):""}}</div>
190
-                        <div>费用:</div>
191
-                    </div>
192
-                    <table style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
193
-                        <tr>
194
-                            <td style="width:16%;">治疗时间</td>
195
-                            <td style="width:16%;"></td>
196
-                            <td style="width:16%;"></td>
197
-                            <td style="width:16%;"></td>
198
-                            <td style="width:16%;"></td>
199
-                            <td style="width:16%;"></td>
200
-                        </tr>
201
-                        <tr>
202
-                            <td style="width:16%;">医生签字</td>
203
-                            <td style="width:16%;"></td>
204
-                            <td style="width:16%;"></td>
205
-                            <td style="width:16%;"></td>
206
-                            <td style="width:16%;"></td>
207
-                            <td style="width:16%;"></td>
208
-                        </tr>
209
-                        <tr>
210
-                            <td style="width:16px;">患者签字</td>
211
-                            <td style="width:16px;"></td>
212
-                            <td style="width:16px;"></td>
213
-                            <td style="width:16px;"></td>
214
-                            <td style="width:16px;"></td>
215
-                            <td style="width:16px;"></td>
216
-                        </tr>
217
-                    </table>
218
-                </div>
219
-
220
-            </div>
221
-
222
-        </div> -->
87
+        <div class="infoTitle">
88
+          <div>开单医生:{{ i.info.doctor ? i.info.doctor : '' }}</div>
89
+          <div>签章:</div>
90
+        </div>
91
+
92
+        <div class="actionBar">
93
+          <div>执行医生:{{ i.info.doctor ? i.info.doctor : '' }}</div>
94
+          <div>费用:{{ getTotalOne(item.project).toFixed(2) ? getTotalOne(item.project).toFixed(2) : '' }}元</div>
95
+        </div>
96
+
97
+        <table class="doctor_style" style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
98
+          <tr >
99
+            <td style="width:16%;">治疗时间</td>
100
+            <td style="width:16%;"></td>
101
+            <td style="width:16%;"></td>
102
+            <td style="width:16%;"></td>
103
+            <td style="width:16%;"></td>
104
+            <td style="width:16%;"></td>
105
+          </tr>
106
+          <tr>
107
+            <td style="width:16%;">医生签字</td>
108
+            <td style="width:16%;"></td>
109
+            <td style="width:16%;"></td>
110
+            <td style="width:16%;"></td>
111
+            <td style="width:16%;"></td>
112
+            <td style="width:16%;"></td>
113
+          </tr>
114
+          <tr>
115
+            <td style="width:16px;">患者签字</td>
116
+            <td style="width:16px;"></td>
117
+            <td style="width:16px;"></td>
118
+            <td style="width:16px;"></td>
119
+            <td style="width:16px;"></td>
120
+            <td style="width:16px;"></td>
121
+          </tr>
122
+        </table>
223 123
       </div>
124
+
125
+
126
+      <!-- <div id='prescriptionPrint'>
127
+
128
+          <div v-for="(item,index) in advicePrint" :key="index">
129
+              <div id='prescription-print' class="prescription-print" style="page-break-after: always;">
130
+                  <div style="display:flex;justify-content: space-between;font-weight:bold;">
131
+                      <div style="width:200px;display:flex;justify-content: space-between;font-weight:bold;">
132
+                          <span>费别</span>
133
+                          <span>自费</span>
134
+                          <span>公费</span>
135
+                          <span>保险</span>
136
+                          <span>其他</span>
137
+                      </div>
138
+                      <div>就诊日期:{{getTime(item.ctime)}}</div>
139
+                  </div>
140
+
141
+                  <div class="printTitle">血液透析中心</div>
142
+
143
+                  <div class="printTitle">处方、治疗单</div>
144
+
145
+                  <div class="infoTitle">
146
+                      <div>门诊编号:</div>
147
+                      <div>电脑号:</div>
148
+                  </div>
149
+
150
+                  <div class="infoMain">
151
+                      <div style="margin-bottom: 10px;width:25%">姓名:{{item.patient.name}}</div>
152
+                      <div style="margin-bottom: 10px;width:25%">性别:
153
+                          <span v-if="item.patient.gender == 1">男</span>
154
+                          <span v-if="item.patient.gender == 2">女</span>
155
+                      </div>
156
+                      <div style="margin-bottom: 10px;width:25%">年龄:
157
+                          <span>{{item.patient.age}}</span>
158
+                      </div>
159
+                      <div style="margin-bottom: 10px;width:25%">参保类型:</div>
160
+                      <div style="margin-bottom: 10px;width:50%;">联系电话:{{item.patient.phone}}</div>
161
+                      <div style="width:50%;">地址:{{item.patient.unit_address}}</div>
162
+                      <div style="width:100%;">诊断:{{item.patient.diagnose}}</div>
163
+                  </div>
164
+
165
+                  <div class="prescriptionBox">
166
+                      <table style="width:100%;text-align:center;line-height:25px;">
167
+                          <tr>
168
+                              <td>序号</td>
169
+                              <td>项目名称</td>
170
+                              <td>数量</td>
171
+                              <td>单位</td>
172
+                              <td>单价</td>
173
+                              <td>部位</td>
174
+                              <td>备注</td>
175
+                              <td>天数</td>
176
+                          </tr>
177
+                          <tr v-for="(it,index) in item.project" :key="index">
178
+                              <td>{{index+1}}</td>
179
+                              <td>{{getProjectName(it.project_id)}}</td>
180
+                              <td>{{it.single_dose}}</td>
181
+                              <td>{{getUnit(it.unit)}}</td>
182
+                              <td>{{it.price}}</td>
183
+                              <td></td>
184
+                              <td>{{it.remark}}</td>
185
+                              <td>{{it.day}}</td>
186
+
187
+                          </tr>
188
+                      </table>
189
+                  </div>
190
+                  <div class="infoTitle">
191
+                      <div>开单医生:{{getDoctor(item.doctor)?getDoctor(item.doctor):""}}</div>
192
+                      <div>签章:</div>
193
+                  </div>
194
+                  <div class="actionBar">
195
+                      <div>执行医生:{{getDoctor(item.doctor)?getDoctor(item.doctor):""}}</div>
196
+                      <div>费用:</div>
197
+                  </div>
198
+                  <table style="width:100%;text-align:center;line-height:25px;border-collapse: collapse;" border="1">
199
+                      <tr>
200
+                          <td style="width:16%;">治疗时间</td>
201
+                          <td style="width:16%;"></td>
202
+                          <td style="width:16%;"></td>
203
+                          <td style="width:16%;"></td>
204
+                          <td style="width:16%;"></td>
205
+                          <td style="width:16%;"></td>
206
+                      </tr>
207
+                      <tr>
208
+                          <td style="width:16%;">医生签字</td>
209
+                          <td style="width:16%;"></td>
210
+                          <td style="width:16%;"></td>
211
+                          <td style="width:16%;"></td>
212
+                          <td style="width:16%;"></td>
213
+                          <td style="width:16%;"></td>
214
+                      </tr>
215
+                      <tr>
216
+                          <td style="width:16px;">患者签字</td>
217
+                          <td style="width:16px;"></td>
218
+                          <td style="width:16px;"></td>
219
+                          <td style="width:16px;"></td>
220
+                          <td style="width:16px;"></td>
221
+                          <td style="width:16px;"></td>
222
+                      </tr>
223
+                  </table>
224
+              </div>
225
+
226
+          </div>
227
+
228
+      </div> -->
224 229
     </div>
230
+  </div>
225 231
 </template>
226 232
 <script>
227
-  import { jsGetAge, uParseTime } from '@/utils/tools'
228
-  import { getAllDoctorList, getPrescriptionPrint } from '@/api/project/project'
229
-  import { getInitData } from '@/api/his/his'
230
-
231
-  export default {
232
-    props: {
233
-      patient_id: Number,
234
-      record_date: String,
235
-      prescription_id: Number,
236
-      ids: String,
237
-      printData:Array
238
-    },
239
-    data() {
240
-      return {
241
-        doctorList: [],
242
-        advicePrint: {},
243
-        patient: {},
244
-        tableData: [],
245
-        prescriptionInfo: [],
246
-        projectList: [],
247
-        prescriptions: [],
248
-        settlement:
233
+import { jsGetAge, uParseTime } from '@/utils/tools'
234
+import { getAllDoctorList, getPrescriptionPrint } from '@/api/project/project'
235
+import { getInitData } from '@/api/his/his'
236
+
237
+export default {
238
+  props: {
239
+    patient_id: Number,
240
+    record_date: String,
241
+    prescription_id: Number,
242
+    ids: String,
243
+    printData: Array
244
+  },
245
+  data() {
246
+    return {
247
+      doctorList: [],
248
+      advicePrint: {},
249
+      patient: {},
250
+      tableData: [],
251
+      prescriptionInfo: [],
252
+      projectList: [],
253
+      prescriptions: [],
254
+      settlement:
249 255
           [
250 256
             { value: 1, label: '医保' },
251 257
             { value: 2, label: '自费' },
@@ -257,247 +263,245 @@
257 263
             { value: 8, label: '医保自费' }
258 264
 
259 265
           ],
260
-        hisPatient: {},
261
-        diagnoses: []
262
-      }
263
-    },
266
+      hisPatient: {},
267
+      diagnoses: []
268
+    }
269
+  },
264 270
 
265
-    watch:{
266
-      printData:function(val){
267
-        console.log(val,'打印props')
271
+  watch: {
272
+    printData: function(val) {
273
+      console.log(val, '打印props')
274
+    }
275
+  },
276
+
277
+  methods: {
278
+    getAge(patient) {
279
+      var thisLen = patient.id_card_no.length
280
+      var birth = ''
281
+      if (thisLen == 15) {
282
+        birth = '19' + patient.id_card_no.substr(6, 6)
283
+      } else {
284
+        birth = patient.id_card_no.substr(6, 8)
268 285
       }
269
-    },
270
-
271
-    methods: {
272
-      getAge(patient){
273
-        var thisLen = patient.id_card_no.length
274
-        var birth = ''
275
-        if (thisLen == 15) {
276
-          birth = '19' + patient.id_card_no.substr(6, 6)
277
-        } else {
278
-          birth = patient.id_card_no.substr(6, 8)
279
-        }
280
-        var births =
286
+      var births =
281 287
           birth.substr(0, 4) +
282 288
           '-' +
283 289
           birth.substr(4, 2) +
284 290
           '-' +
285 291
           birth.substr(6, 2)
286
-        return jsGetAge(births, '-')
292
+      return jsGetAge(births, '-')
287 293
 
288
-      },
289
-      printThisPage() {
290
-        var ptime = Math.round(new Date().getTime() / 1000)
291
-        this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
294
+    },
295
+    printThisPage() {
296
+      var ptime = Math.round(new Date().getTime() / 1000)
297
+      this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
292 298
 
293
-        const style =
299
+      const style =
294 300
           '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoTitle{display: flex;margin-top:10px;line-height: 1px;padding:0 10px;}.infoTitle p{width: 200px;}.otherInfo{display: flex;margin-top:10px;padding:0 10px;}.otherInfo span{display:inline-block;}.recordTitle{display: flex;margin-top:10px;line-height: 24px;padding:0 10px;border-bottom: 2px solid #000;}.recordTitle p{width: 200px;}}'
295
-        printJS({
296
-          printable: 'prescription-print',
297
-          type: 'html',
298
-          style: style,
299
-          scanStyles: false
300
-        })
301
-      },
302
-      getAllDoctorList() {
303
-        getAllDoctorList().then(response => {
304
-          if (response.data.state == 1) {
305
-            var doctor = response.data.data.doctor
306
-
307
-            this.doctorList = doctor
308
-          }
309
-        })
310
-      },
311
-
312
-      getDoctor(id) {
313
-        var name = ''
314
-        for (let i = 0; i < this.doctorList.length; i++) {
315
-          if (id == this.doctorList[i].admin_user_id) {
316
-            name = this.doctorList[i].user_name
317
-          }
318
-        }
319
-        return name
320
-      },
321
-      getTime(value, temp) {
322
-        if (value != undefined) {
323
-          return uParseTime(value, temp)
301
+      printJS({
302
+        printable: 'prescription-print',
303
+        type: 'html',
304
+        style: style,
305
+        scanStyles: false
306
+      })
307
+    },
308
+    getAllDoctorList() {
309
+      getAllDoctorList().then(response => {
310
+        if (response.data.state == 1) {
311
+          var doctor = response.data.data.doctor
312
+
313
+          this.doctorList = doctor
324 314
         }
325
-        return ''
326
-      },
327
-      getPrescriptionPrint() {
328
-        var params = {
329
-          patient_id: this.patient_id,
330
-          record_date: this.record_date,
331
-          prescription_id: this.prescription_id,
332
-          ids: this.ids
315
+      })
316
+    },
317
+
318
+    getDoctor(id) {
319
+      var name = ''
320
+      for (let i = 0; i < this.doctorList.length; i++) {
321
+        if (id == this.doctorList[i].admin_user_id) {
322
+          name = this.doctorList[i].user_name
333 323
         }
334
-        console.log('999999', params)
335
-        getPrescriptionPrint(params).then(response => {
336
-          if (response.data.state == 1) {
337
-            var advicePrint = response.data.data.advicePrint
338
-            console.log('adviceprint', advicePrint)
339
-            this.advicePrint = advicePrint
340
-            this.prescriptions = advicePrint
341
-            var projectlist = response.data.data.projectlist
342
-            console.log('所有项目列表', projectlist)
343
-            this.projectList = projectlist
344
-            this.hisPatient = response.data.data.hisPatient
324
+      }
325
+      return name
326
+    },
327
+    getTime(value, temp) {
328
+      if (value != undefined) {
329
+        return uParseTime(value, temp)
330
+      }
331
+      return ''
332
+    },
333
+    getPrescriptionPrint() {
334
+      var params = {
335
+        patient_id: this.patient_id,
336
+        record_date: this.record_date,
337
+        prescription_id: this.prescription_id,
338
+        ids: this.ids
339
+      }
340
+      console.log('999999', params)
341
+      getPrescriptionPrint(params).then(response => {
342
+        if (response.data.state == 1) {
343
+          var advicePrint = response.data.data.advicePrint
344
+          console.log('adviceprint', advicePrint)
345
+          this.advicePrint = advicePrint
346
+          this.prescriptions = advicePrint
347
+          var projectlist = response.data.data.projectlist
348
+          console.log('所有项目列表', projectlist)
349
+          this.projectList = projectlist
350
+          this.hisPatient = response.data.data.hisPatient
345 351
 
346
-          }
347
-        })
348
-      },
349
-      getProjectName(id) {
350
-        var project_name = ''
351
-        for (let i = 0; i < this.projectList.length; i++) {
352
-          if (id == this.projectList[i].id) {
353
-            project_name = this.projectList[i].project_name
354
-          }
355 352
         }
356
-        return project_name
357
-      },
358
-      getUnit(id) {
359
-        var unit = ''
360
-        for (let i = 0; i < this.projectList.length; i++) {
361
-          if (id == this.projectList[i].id) {
362
-            unit = this.projectList[i].unit
363
-          }
353
+      })
354
+    },
355
+    getProjectName(id) {
356
+      var project_name = ''
357
+      for (let i = 0; i < this.projectList.length; i++) {
358
+        if (id == this.projectList[i].id) {
359
+          project_name = this.projectList[i].project_name
364 360
         }
365
-        return unit
366
-      },
367
-
368
-      getTotalOne(project) {
369
-
370
-        let total = 0
371
-        project.map(item => {
372
-          total += item.price * item.count
373
-        })
374
-        return total
375
-      },
376
-      getInitData() {
377
-        getInitData().then(response => {
378
-          if (response.data.state == 1) {
379
-            this.diagnoses = response.data.data.diagnose
380
-            console.log('争端', this.diagnoses)
381
-          }
382
-        })
383
-      },
384
-      getDiagnosis(id) {
385
-      let id_ = id.split(",");
386
-      let nameArr = [];
387
-      let name = "";
361
+      }
362
+      return project_name
363
+    },
364
+    getUnit(id) {
365
+      var unit = ''
366
+      for (let i = 0; i < this.projectList.length; i++) {
367
+        if (id == this.projectList[i].id) {
368
+          unit = this.projectList[i].unit
369
+        }
370
+      }
371
+      return unit
372
+    },
373
+
374
+    getTotalOne(project) {
375
+
376
+      let total = 0
377
+      project.map(item => {
378
+        total += item.price * item.count
379
+      })
380
+      return total
381
+    },
382
+    getInitData() {
383
+      getInitData().then(response => {
384
+        if (response.data.state == 1) {
385
+          this.diagnoses = response.data.data.diagnose
386
+          console.log('争端', this.diagnoses)
387
+        }
388
+      })
389
+    },
390
+    getDiagnosis(id) {
391
+      let id_ = id.split(',')
392
+      let nameArr = []
393
+      let name = ''
388 394
       for (let i = 0; i < this.diagnoses.length; i++) {
389 395
         for (let j = 0; j < id_.length; j++) {
390 396
           if (id_[j] == this.diagnoses[i].id) {
391
-            nameArr[j] = this.diagnoses[i].class_name;
397
+            nameArr[j] = this.diagnoses[i].class_name
392 398
             name = nameArr.join(',')
393 399
           }
394 400
         }
395 401
       }
396
-      return name;
397
-      }
398
-    },
399
-    created() {
400
-      this.getInitData()
401
-      // this.getAllDoctorList()
402
-      // this.getPrescriptionPrint()
403
-      var xtuser = this.$store.getters.xt_user
404
-      this.orgname = xtuser.org.org_name
405
-
406
-    },
407
-    watch: {
408
-      // patient_id: function(val) {
409
-      //   console.log('101000010101010', this.patient_id, this.record_date, this.prescription_id)
410
-      //   //    this.getPrescriptionPrint()
411
-      // },
412
-      // ids: function(val) {
413
-      //   this.ids = val
414
-      //   console.log('this.idsids', this.ids)
415
-      //   this.getPrescriptionPrint()
416
-      // }
417
-    }
418
-  }
419
-</script>
420
-
421
-
422
-<style lang="scss" scoped>
423
-    .prescription-print {
424
-        -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
425
-        -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
426
-        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
427
-        margin-bottom: 20px;
428
-        padding: 20px 10px;
429
-    }
430
-
431
-    .prescription-print {
432
-        font-size: 14px;
433
-    }
434
-
435
-    .printTitle {
436
-        font-size: 18px;
437
-        text-align: center;
438
-        font-weight: bold;
439
-        margin-top: 10px;
440
-    }
441
-
442
-    .infoTitle {
443
-        display: flex;
444
-        border-bottom: 2px solid #000;
445
-        margin-top: 10px;
446
-        line-height: 24px;
447
-        padding: 0 10px;
448
-    }
449
-
450
-    .infoTitle div {
451
-        width: 300px;
402
+      return name
452 403
     }
404
+  },
405
+  created() {
406
+    this.getInitData()
407
+    // this.getAllDoctorList()
408
+    // this.getPrescriptionPrint()
409
+    var xtuser = this.$store.getters.xt_user
410
+    this.orgname = xtuser.org.org_name
453 411
 
454
-    .infoMain {
455
-        display: flex;
456
-        flex-wrap: wrap;
457
-        border-bottom: 2px solid #000;
458
-        padding: 0 10px;
459
-    }
460
-
461
-    .infoMain div {
462
-        width: 50%;
463
-        line-height: 24px;
464
-    }
412
+  },
465 413
 
466
-    .prescriptionBox {
467
-        padding: 0 10px;
468
-        min-height: 600px;
469
-    }
470
-
471
-    .Rp {
472
-        font-size: 22px;
473
-        font-weight: bold;
474
-    }
475
-
476
-    .drugsBox {
477
-        padding-left: 40px;
478
-        margin-bottom: 10px;
479
-    }
480
-
481
-    .drugsBox p {
482
-        line-height: 30px;
483
-    }
484
-
485
-    .drugsOne {
486
-        line-height: 24px;
487
-    }
488
-
489
-    .drugsOne span {
490
-        margin-right: 20px;
491
-    }
414
+}
415
+</script>
492 416
 
493
-    .actionBar {
494
-        display: flex;
495
-        justify-content: space-between;
496
-        line-height: 24px;
497
-        padding: 0 10px;
498
-    }
499 417
 
500
-    .actionBar div {
501
-        width: 150px;
418
+<style lang="scss" scoped>
419
+.prescription-print {
420
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
421
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
422
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
423
+  margin-bottom: 20px;
424
+  padding: 20px 10px;
425
+}
426
+
427
+.prescription-print {
428
+  font-size: 14px;
429
+}
430
+
431
+.printTitle {
432
+  font-size: 18px;
433
+  text-align: center;
434
+  font-weight: bold;
435
+  margin-top: 10px;
436
+}
437
+
438
+.infoTitle {
439
+  display: flex;
440
+  border-bottom: 2px solid #000;
441
+  margin-top: 10px;
442
+  line-height: 24px;
443
+  padding: 0 10px;
444
+}
445
+
446
+.infoTitle div {
447
+  width: 300px;
448
+}
449
+
450
+.infoMain {
451
+  display: flex;
452
+  flex-wrap: wrap;
453
+  border-bottom: 2px solid #000;
454
+  padding: 0 10px;
455
+}
456
+
457
+.infoMain div {
458
+  width: 50%;
459
+  line-height: 24px;
460
+}
461
+
462
+.prescriptionBox {
463
+  padding: 0 10px;
464
+  min-height: 600px;
465
+}
466
+
467
+.Rp {
468
+  font-size: 22px;
469
+  font-weight: bold;
470
+}
471
+
472
+.drugsBox {
473
+  padding-left: 40px;
474
+  margin-bottom: 10px;
475
+}
476
+
477
+.drugsBox p {
478
+  line-height: 30px;
479
+}
480
+
481
+.drugsOne {
482
+  line-height: 24px;
483
+}
484
+
485
+.drugsOne span {
486
+  margin-right: 20px;
487
+}
488
+
489
+.actionBar {
490
+  display: flex;
491
+  justify-content: space-between;
492
+  line-height: 24px;
493
+  padding: 0 10px;
494
+}
495
+
496
+.actionBar div {
497
+  width: 150px;
498
+}
499
+.doctor_style {
500
+  tr{
501
+    page-break-inside:avoid;
502
+    td{
503
+      border: 1px solid #000;
502 504
     }
505
+  }
506
+}
503 507
 </style>

+ 9 - 9
src/xt_pages/outpatientDoctorStation/checkPrint.vue View File

@@ -11,9 +11,9 @@
11 11
           >打印</el-button
12 12
         >
13 13
       </template> -->
14
-            
14
+
15 15
       <div class='dialysisPage' style="padding-top:40px;">
16
-        <printOne v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
16
+        <printOne :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
17 17
       </div>
18 18
   </div>
19 19
 </template>
@@ -66,16 +66,16 @@ export default {
66 66
                 scanStyles: false
67 67
             });
68 68
         },500)
69
-        
69
+
70 70
     },
71 71
     getAllDoctorList(){
72 72
       getAllDoctorList().then(response=>{
73 73
         if(response.data.state == 1){
74 74
                var doctor =  response.data.data.doctor
75
-               
75
+
76 76
                this.doctorList = doctor
77 77
              }
78
-         })   
78
+         })
79 79
      },
80 80
     getAllHisPatientList(){
81 81
          const params = {
@@ -101,7 +101,7 @@ export default {
101 101
             // console.log(this.patientTableData[0])
102 102
             // this.choosePatient(this.patientTableData[0])
103 103
             this.cal_one = cal_one
104
-            this.cal_two = cal_two   
104
+            this.cal_two = cal_two
105 105
          }
106 106
       })
107 107
     },
@@ -135,7 +135,7 @@ export default {
135 135
     searchAction(){
136 136
 
137 137
     }
138
-    
138
+
139 139
   },
140 140
 
141 141
   created() {
@@ -159,7 +159,7 @@ export default {
159 159
         var prescription_id = this.paramsObj.prescription_id
160 160
         this.prescription_id = prescription_id
161 161
         this.ids = this.paramsObj.ids
162
-        
162
+
163 163
       },
164 164
       deep:true
165 165
     }
@@ -332,7 +332,7 @@ export default {
332 332
   .dialysisPage::-webkit-scrollbar {
333 333
     height: 15px;
334 334
   }
335
-  
335
+
336 336
   .el-date-editor{
337 337
     .el-input__inner{
338 338
       padding-right:0px;

File diff suppressed because it is too large
+ 583 - 441
src/xt_pages/outpatientDoctorStation/checkTemplate/printOne.vue


+ 6 - 2
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue View File

@@ -1870,6 +1870,10 @@
1870 1870
           this.order_status = '已退费'
1871 1871
         }
1872 1872
 
1873
+        if (this.curPrescriptions.order_status == 5) {
1874
+          this.order_status = '已记账'
1875
+        }
1876
+
1873 1877
       },
1874 1878
       clearData() {
1875 1879
         this.curPrescriptions = []
@@ -2500,8 +2504,8 @@
2500 2504
 
2501 2505
       },
2502 2506
       removeTab(targetName) {
2503
-        if (this.curPrescriptions.order_status == 2) {
2504
-          this.$message.error('该处方已经结算,无法删除')
2507
+        if (this.curPrescriptions.order_status == 2 || this.curPrescriptions.order_status == 5) {
2508
+          this.$message.error('该处方已经结算或者记账,无法删除')
2505 2509
           return
2506 2510
         }
2507 2511
         this.$confirm('处方删除后不可恢复,是否确认删除', '删除', {

+ 0 - 2
src/xt_pages/outpatientDoctorStation/components/medicalRecord.vue View File

@@ -123,13 +123,11 @@ export default {
123 123
         },
124 124
         //获取历史数据历史模板
125 125
         getlist(){
126
-            
127 126
             const params = {
128 127
                keyword:this.search_input,
129 128
                start_time:this.start_time,
130 129
                end_time:this.end_time
131 130
             }
132
-         
133 131
           getHistoryTemplate(params).then(response=>{
134 132
             if(response.data.state == 1){
135 133
               var template =  response.data.data.template

+ 6 - 6
src/xt_pages/outpatientDoctorStation/components/prescriptionTable.vue View File

@@ -275,8 +275,8 @@
275 275
         cb(results)
276 276
       },
277 277
       delAddition(index, addition) {
278
-        if (this.prescription.order_status == 2) {
279
-          this.$message.error('该处方已经结算,无法删除')
278
+        if (this.prescription.order_status == 2 || this.prescription.order_status == 5) {
279
+          this.$message.error('该处方已经结算或记账,无法删除')
280 280
           return
281 281
         }
282 282
         this.$confirm('附加费删除后不可恢复,是否确认删除', '删除', {
@@ -323,8 +323,8 @@
323 323
         })
324 324
 
325 325
       }, deleteDrug: function(index, row) {
326
-        if (this.prescription.order_status == 2) {
327
-          this.$message.error('该处方已经结算,无法删除')
326
+        if (this.prescription.order_status == 2 ||  this.prescription.order_status ==5) {
327
+          this.$message.error('该处方已经结算或记账,无法删除')
328 328
           return
329 329
         }
330 330
         this.$confirm('药品删除后不可恢复,是否确认删除', '删除', {
@@ -394,8 +394,8 @@
394 394
         return name
395 395
       },
396 396
       deleteProject(row, i) {
397
-        if (this.prescription.order_status == 2) {
398
-          this.$message.error('该处方已经结算,无法删除')
397
+        if (this.prescription.order_status == 2  || this.prescription.order_status == 5) {
398
+          this.$message.error('该处方已经结算或记账,无法删除')
399 399
           return
400 400
         }
401 401
         this.$confirm('项目删除后不可恢复,是否确认删除', '删除', {

+ 9 - 5
src/xt_pages/outpatientDoctorStation/doctorDesk.vue View File

@@ -134,7 +134,7 @@
134 134
             <!-- <el-button size="small" ref="button_four"  @click="open(5)" type="primary" :disabled='prescriptions && prescriptions[0].advices && prescriptions[0].project ? prescriptions[0].advices.length == 0 && prescriptions[0].project.length == 0 : false'>存模板</el-button> -->
135 135
           </div>
136 136
           <div class="mainCell fixedCell" style="float:right" v-if="titleType == '电子病历'">
137
-            <el-button size="small" :loading="keepLoad" @click="opentwo(1)" type="primary">保存</el-button>
137
+            <el-button size="small" @click="opentwo(1)" type="primary">保存</el-button>
138 138
             <el-button size="small" @click="opentwo(2)" type="primary">打印</el-button>
139 139
             <el-button size="small" @click="opentwo(3)" type="primary">病历调用</el-button>
140 140
             <el-button size="small" @click="opentwo(4)" type="primary">存模板</el-button>
@@ -275,7 +275,6 @@
275 275
         <template>
276 276
           <el-button
277 277
               style="float:right;"
278
-              :loading="loading"
279 278
               size="small"
280 279
               icon="el-icon-printer"
281 280
               @click="printThisPage"
@@ -4507,7 +4506,8 @@ export default {
4507 4506
           record: this.record_date,
4508 4507
           prescription_id: this.prescription_id,
4509 4508
           ids: ids1,
4510
-          patient_id: this.patientid
4509
+          patient_id: this.patientid,
4510
+          his_patient_id: this.hisPatientInfo.id,
4511 4511
         }
4512 4512
         this.paramsObj = obj1
4513 4513
       }
@@ -4523,7 +4523,9 @@ export default {
4523 4523
           record: this.record_date,
4524 4524
           prescription_id: this.prescription_id,
4525 4525
           ids: ids2,
4526
-          patient_id: this.patientid
4526
+          patient_id: this.patientid,
4527
+          his_patient_id: this.hisPatientInfo.id,
4528
+
4527 4529
         }
4528 4530
         this.paramsObj2 = obj2
4529 4531
       }
@@ -4537,7 +4539,9 @@ export default {
4537 4539
           record: this.record_date,
4538 4540
           prescription_id: this.prescription_id,
4539 4541
           ids: ids2,
4540
-          patient_id: this.patientid
4542
+          patient_id: this.patientid,
4543
+          his_patient_id: this.hisPatientInfo.id,
4544
+
4541 4545
         }
4542 4546
         this.paramsObj3 = obj3
4543 4547
       }

+ 296 - 244
src/xt_pages/outpatientDoctorStation/pastInquiries.vue View File

@@ -6,94 +6,99 @@
6 6
     <div class="app-container">
7 7
       <div class="cell clearfix">
8 8
         <el-input
9
-          size="small"
10
-          style="width: 150px"
11
-          v-model="keywords"
12
-          class="filter-item"
9
+            size="small"
10
+            style="width: 150px"
11
+            v-model="keywords"
12
+            class="filter-item"
13 13
         />
14 14
         <el-button
15
-          size="small"
16
-          style="margin: 0 10px"
17
-          class="filter-item"
18
-          type="primary"
19
-          @click="searchAction"
20
-          >搜索
15
+            size="small"
16
+            style="margin: 0 10px"
17
+            class="filter-item"
18
+            type="primary"
19
+            @click="searchAction"
20
+        >搜索
21 21
         </el-button>
22 22
         <el-date-picker
23
-          v-model="record_date"
24
-          prefix-icon="el-icon-date"
25
-          @change="handleScheduleDateChange"
26
-          :editable="false"
27
-          :clearable="false"
28
-          style="width: 196px; margin-right: 10px"
29
-          type="date"
30
-          format="yyyy-MM-dd"
31
-          value-format="yyyy-MM-dd"
32
-          placeholder="选择日期时间"
33
-          align="right"
23
+            v-model="record_date"
24
+            prefix-icon="el-icon-date"
25
+            @change="handleScheduleDateChange"
26
+            :editable="false"
27
+            :clearable="false"
28
+            style="width: 196px; margin-right: 10px"
29
+            type="date"
30
+            format="yyyy-MM-dd"
31
+            value-format="yyyy-MM-dd"
32
+            placeholder="选择日期时间"
33
+            align="right"
34 34
         ></el-date-picker>
35 35
         <el-button
36
-          size="small"
37
-          style="margin: 0 10px"
38
-          class="filter-item"
39
-          type="primary"
40
-          @click="batchPrint(1)"
41
-          >处方筏批量打印</el-button
36
+            size="small"
37
+            style="margin: 0 10px"
38
+            class="filter-item"
39
+            type="primary"
40
+            @click="batchPrint(1)"
41
+        >处方筏批量打印
42
+        </el-button
42 43
         >
43 44
         <el-button
44
-          size="small"
45
-          style="margin: 0 10px"
46
-          class="filter-item"
47
-          type="primary"
48
-          @click="batchPrint(2)"
49
-          >治疗单批量打印</el-button
45
+            size="small"
46
+            style="margin: 0 10px"
47
+            class="filter-item"
48
+            type="primary"
49
+            @click="batchPrint(2)"
50
+        >治疗单批量打印
51
+        </el-button
50 52
         >
51 53
         <el-button
52
-          size="small"
53
-          style="margin: 0 10px"
54
-          class="filter-item"
55
-          type="primary"
56
-          @click="batchPrint(3)"
57
-          >检验单批量打印</el-button
54
+            size="small"
55
+            style="margin: 0 10px"
56
+            class="filter-item"
57
+            type="primary"
58
+            @click="batchPrint(3)"
59
+        >检验单批量打印
60
+        </el-button
58 61
         >
59 62
       </div>
60 63
       <el-table
61
-        :data="tableData"
62
-        border
63
-        ref="table"
64
-        style="width: 100%"
65
-        :row-style="{ color: '#303133' }"
66
-        @selection-change="handleSelectionChange"
67
-        :header-cell-style="{
64
+          :data="tableData"
65
+          border
66
+          ref="table"
67
+          style="width: 100%"
68
+          :row-style="{ color: '#303133' }"
69
+          @selection-change="handleSelectionChange"
70
+          :header-cell-style="{
68 71
           backgroundColor: 'rgb(245, 247, 250)',
69 72
           color: '#606266',
70 73
         }"
71
-        highlight-current-row
74
+          highlight-current-row
72 75
       >
73 76
         <el-table-column
74
-          align="center"
75
-          type="selection"
76
-          width="55"
77
+            align="center"
78
+            type="selection"
79
+            width="55"
77 80
         ></el-table-column>
78 81
         <el-table-column
79
-          align="center"
80
-          label="序号"
81
-          width="60"
82
-          type="index"
82
+            align="center"
83
+            label="序号"
84
+            width="60"
85
+            type="index"
83 86
         ></el-table-column>
84 87
         <el-table-column align="center" prop="name" label="姓名" width="100">
85 88
           <template slot-scope="scope">{{
86
-            scope.row.patients ? scope.row.patients.name : ""
87
-          }}</template>
89
+              scope.row.patients ? scope.row.patients.name : ''
90
+            }}
91
+          </template>
88 92
         </el-table-column>
89 93
         <el-table-column
90
-          align="center"
91
-          prop="name"
92
-          label="处方日期"
93
-          width="200"
94
+            align="center"
95
+            prop="name"
96
+            label="处方日期"
97
+            width="200"
94 98
         >
95 99
           <template slot-scope="scope">
96
-            {{ getTimes(scope.row.ctime) }}</template
100
+            {{ getTimes(scope.row.ctime) }}
101
+          </template
97 102
           >
98 103
         </el-table-column>
99 104
         <!--<el-table-column align="center" prop="name" label="患者类型">-->
@@ -101,16 +106,18 @@
101 106
         <!--</el-table-column>-->
102 107
         <el-table-column align="center" prop="name" label="处方号">
103 108
           <template slot-scope="scope">{{
104
-            scope.row.prescription_number
105
-          }}</template>
109
+              scope.row.prescription_number
110
+            }}
111
+          </template>
106 112
         </el-table-column>
107 113
         <el-table-column align="center" prop="name" label="开立医生">
108 114
           <template slot-scope="scope">{{ scope.row.doctor }}</template>
109 115
         </el-table-column>
110 116
         <el-table-column align="center" prop="name" label="诊断">
111 117
           <template slot-scope="scope">{{
112
-            getDiagnosis(scope.row.diagnosis)
113
-          }}</template>
118
+              getDiagnosis(scope.row.diagnosis)
119
+            }}
120
+          </template>
114 121
         </el-table-column>
115 122
         <el-table-column align="center" prop="name" label="状态" width="100">
116 123
           <template slot-scope="scope">
@@ -121,58 +128,59 @@
121 128
         <el-table-column align="center" prop="name" label="操作" width="100">
122 129
           <template slot-scope="scope">
123 130
             <el-button
124
-              size="mini"
125
-              type="primary"
126
-              @click="handerShowDetail(scope.row)"
127
-              >详情</el-button
131
+                size="mini"
132
+                type="primary"
133
+                @click="handerShowDetail(scope.row)"
134
+            >详情
135
+            </el-button
128 136
             >
129 137
           </template>
130 138
         </el-table-column>
131 139
       </el-table>
132 140
       <el-pagination
133
-        @size-change="handleSizeChange"
134
-        @current-change="handleCurrentChange"
135
-        :page-sizes="[10, 50, 100]"
136
-        :page-size="10"
137
-        background
138
-        style="margin-top: 20px; float: right"
139
-        layout="total, sizes, prev, pager, next, jumper"
140
-        :total="total"
141
+          @size-change="handleSizeChange"
142
+          @current-change="handleCurrentChange"
143
+          :page-sizes="[10, 50, 100]"
144
+          :page-size="10"
145
+          background
146
+          style="margin-top: 20px; float: right"
147
+          layout="total, sizes, prev, pager, next, jumper"
148
+          :total="total"
141 149
       >
142 150
       </el-pagination>
143 151
       <inquiries-detail ref="inquiriesDetail"></inquiries-detail>
144 152
       <el-dialog
145
-        class="centerDialog"
146
-        width="600px"
147
-        title="打印"
148
-        :visible.sync="innerVisible"
149
-        append-to-body
153
+          class="centerDialog"
154
+          width="600px"
155
+          title="打印"
156
+          :visible.sync="innerVisible"
157
+          append-to-body
150 158
       >
151 159
         <template>
152 160
           <el-button
153
-            style="float: right"
154
-            size="small"
155
-            icon="el-icon-printer"
156
-            @click="printThisPage(printData)"
157
-            type="primary"
158
-            >打印
161
+              style="float: right"
162
+              size="small"
163
+              icon="el-icon-printer"
164
+              @click="printThisPage(printData)"
165
+              type="primary"
166
+          >打印
159 167
           </el-button>
160 168
         </template>
161 169
         <div id="printMain">
162 170
           <print
163
-            ref="print"
164
-            v-if="printType == 1"
165
-            :printData="printData"
171
+              ref="print"
172
+              v-if="printType == 1"
173
+              :printData="printData"
166 174
           ></print>
167 175
           <treatPrint
168
-            ref="treatPrint"
169
-            v-if="printType == 2"
170
-            :printData="printData"
176
+              ref="treatPrint"
177
+              v-if="printType == 2"
178
+              :printData="printData"
171 179
           ></treatPrint>
172 180
           <checkPrint
173
-            ref="checkPrint"
174
-            v-if="printType == 3"
175
-            :printData="printData"
181
+              ref="checkPrint"
182
+              v-if="printType == 3"
183
+              :printData="printData"
176 184
           ></checkPrint>
177 185
         </div>
178 186
       </el-dialog>
@@ -181,32 +189,32 @@
181 189
 </template>
182 190
 
183 191
 <script>
184
-import BreadCrumb from "@/xt_pages/components/bread-crumb";
185
-import inquiriesDetail from "./components/inquiriesDetail";
186
-import { getHisPrescriptionList } from "@/api/his/his";
187
-import { uParseTime } from "@/utils/tools";
188
-import { getInitData, getBatchPrint } from "@/api/his/his";
189
-import print from "./batch_print_template/index";
190
-import treatPrint from "./batch_print_treatTemplate/index";
191
-import checkPrint from "./batch_print_checkTemplate/index";
192
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
193
+import inquiriesDetail from './components/inquiriesDetail'
194
+import { getBatchPrint, getHisPrescriptionList, getInitData } from '@/api/his/his'
195
+import { uParseTime } from '@/utils/tools'
196
+import print from './batch_print_template/index'
197
+import treatPrint from './batch_print_treatTemplate/index'
198
+import checkPrint from './batch_print_checkTemplate/index'
199
+
192 200
 export default {
193 201
   components: {
194 202
     BreadCrumb,
195 203
     inquiriesDetail,
196 204
     print,
197 205
     treatPrint,
198
-    checkPrint,
206
+    checkPrint
199 207
   },
200 208
   data() {
201 209
     return {
202
-      keywords: "",
210
+      keywords: '',
203 211
       total: 0,
204
-      record_date: "",
212
+      record_date: '',
205 213
       page: 1,
206 214
       limit: 10,
207 215
       crumbs: [
208
-        { path: false, name: "门诊医生站" },
209
-        { path: false, name: "既往查询" },
216
+        { path: false, name: '门诊医生站' },
217
+        { path: false, name: '既往查询' }
210 218
       ],
211 219
       tableData: [],
212 220
       diagnoses: [],
@@ -214,55 +222,77 @@ export default {
214 222
       selecting_schs: [],
215 223
       printData: [],
216 224
       printType: 0,
217
-      org_id: "",
218
-    };
225
+      org_id: ''
226
+    }
219 227
   },
220 228
   methods: {
221 229
     printThisPage(printData) {
222 230
       printData.forEach((item) => {
223 231
         const print = new Promise((resolve, reject) => {
224 232
           if (item.prescriptions.length != 0) {
225
-            resolve(item.prescriptions);
233
+            resolve(item.prescriptions)
226 234
           } else {
227
-            reject(false);
235
+            reject(false)
228 236
           }
229
-        });
237
+        })
230 238
         print
231
-          .then((printData) => {
232
-            if (this.org_id == 10138) {
233
-              const style =
234
-                "@media print {#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;margin-top:10px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:350px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 88%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;margin-top:10px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:350px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 87%;}}}";
235
-              printJS({
236
-                printable: "printMain",
237
-                type: "html",
238
-                style: style,
239
-                scanStyles: false,
240
-              });
241
-            }
242
-            if (this.printType == 3) {
243
-              const style =
244
-                "@media print {html {zoom: 80%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}#prescriptionPrint div{box-shadow:none;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 20px;}.infoTitle{display: flex;margin-top:10px;line-height: 24px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}.NoCell{display: flex;justify-content: space-between;margin-bottom: 10px;}.underLine{display: inline-block;border-bottom: 1px solid #000;text-align: center;line-height: 24px;}.basicCell{display: flex;} .basicCell span{line-height: 24px;margin-bottom: 10px;}}";
245
-              printJS({
246
-                printable: "printMain",
247
-                type: "html",
248
-                style: style,
249
-                scanStyles: false,
250
-              });
251
-            } else {
252
-              const style =
253
-                "@media print {html {height: auto;margin: 0px;} #prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:10px;line-height: 1px; padding:0 10px;}.infoTitle p{width: 200px;font-size:14px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 80%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 20px;}.infoTitle{display: flex;margin-top:10px;line-height: 24px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}.NoCell{display: flex;justify-content: space-between;margin-bottom: 10px;}.underLine{display: inline-block;border-bottom: 1px solid #000;text-align: center;line-height: 24px;}.basicCell{display: flex;} .basicCell span{line-height: 24px;margin-bottom: 10px;}}";
254
-              printJS({
255
-                printable: "printMain",
256
-                type: "html",
257
-                style: style,
258
-                scanStyles: false,
259
-              });
260
-            }
261
-          })
262
-          .catch((reject) => {});
263
-      });
239
+            .then((printData) => {
240
+              if (this.org_id == 10138) {
241
+                const style =
242
+                    '@media print {#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;margin-top:10px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:350px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 88%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;margin-top:10px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:350px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 87%;}}}'
243
+                printJS({
244
+                  printable: 'printMain',
245
+                  type: 'html',
246
+                  style: style,
247
+                  scanStyles: false
248
+                })
249
+              }
250
+              if (this.printType == 1) {
251
+                const style =
252
+                    '@media print {html {height: auto;margin: 0px;} #prescription-print{font-size:14px;border:1px solid white;margin-bottom:40px;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:10px;line-height: 1px; padding:0 10px;}.infoTitle p{width: 200px;font-size:14px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 80%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 20px;}.infoTitle{display: flex;margin-top:10px;line-height: 24px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}.NoCell{display: flex;justify-content: space-between;margin-bottom: 10px;}.underLine{display: inline-block;border-bottom: 1px solid #000;text-align: center;line-height: 24px;}.basicCell{display: flex;} .basicCell span{line-height: 24px;margin-bottom: 10px;}}'
253
+                printJS({
254
+                  printable: 'printMain',
255
+                  type: 'html',
256
+                  style: style,
257
+                  scanStyles: false
258
+                })
259
+              }
260
+              if (this.printType == 2) {
261
+                const style =
262
+                    '@media print {html {height: auto;margin: 0px;} .printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:10px;line-height: 1px; padding:0 10px;}.infoTitle p{width: 200px;font-size:14px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:360px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 80%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 20px;}.infoTitle{display: flex;margin-top:10px;line-height: 24px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}.NoCell{display: flex;justify-content: space-between;margin-bottom: 10px;}.underLine{display: inline-block;border-bottom: 1px solid #000;text-align: center;line-height: 24px;}.basicCell{display: flex;} .basicCell span{line-height: 24px;margin-bottom: 10px;}.doctor_style{border: none}.doctor_style tr{page-break-inside:avoid;}.doctor_style tr td{border: 1px solid #000;}}'
263
+                printJS({
264
+                  printable: 'printMain',
265
+                  type: 'html',
266
+                  style: style,
267
+                  scanStyles: false
268
+                })
269
+              }
270
+              if (this.printType == 3) {
271
+                const style =
272
+                    '@media print {html {zoom: 80%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}#prescriptionPrint div{box-shadow:none;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 20px;}.infoTitle{display: flex;margin-top:10px;line-height: 24px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}.NoCell{display: flex;justify-content: space-between;margin-bottom: 10px;}.underLine{display: inline-block;border-bottom: 1px solid #000;text-align: center;line-height: 24px;}.basicCell{display: flex;} .basicCell span{line-height: 24px;margin-bottom: 10px;}}'
273
+                printJS({
274
+                  printable: 'printMain',
275
+                  type: 'html',
276
+                  style: style,
277
+                  scanStyles: false
278
+                })
279
+              } 
280
+              // else {
281
+              //   const style =
282
+              //       '@media print {html {height: auto;margin: 0px;} #prescription-print{font-size:14px;border:1px solid white;margin-bottom:40px;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 10px;}.infoTitle{display: flex;border-bottom: 2px solid #000;margin-top:10px;line-height: 1px; padding:0 10px;}.infoTitle p{width: 200px;font-size:14px;}.infoMain{display: flex;flex-wrap: wrap;border-bottom: 2px solid #000;padding:0 10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}@media print {html {zoom: 80%;}}#prescription-print{font-size:14px;border:1px solid white}.prescription-print:last-child {page-break-after: auto;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;margin-bottom: 20px;}.infoTitle{display: flex;margin-top:10px;line-height: 24px;}.infoTitle div{width: 200px;}.infoMain{display: flex;flex-wrap: wrap;margin-top:10px;}.infoMain div{width: 50%;line-height: 24px;}.prescriptionBox{min-height:450px;}.Rp{font-size: 18px;font-weight: bold;}.drugsBox{padding-left: 40px;margin-bottom: 10px;}.drugsBox div{line-height: 20px;}.drugsOne{line-height: 24px;}.drugsOne span{margin-right: 20px;}.doctorBox{display: flex;justify-content: space-between;padding:0 10px;line-height: 24px;border-bottom: 2px solid #000;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar p{width:150px;}.under_line{display: inline-block;border-bottom: 1px solid #000;flex: 1;}.NoCell{display: flex;justify-content: space-between;margin-bottom: 10px;}.underLine{display: inline-block;border-bottom: 1px solid #000;text-align: center;line-height: 24px;}.basicCell{display: flex;} .basicCell span{line-height: 24px;margin-bottom: 10px;}}'
283
+              //   printJS({
284
+              //     printable: 'printMain',
285
+              //     type: 'html',
286
+              //     style: style,
287
+              //     scanStyles: false
288
+              //   })
289
+              // }
290
+            })
291
+            .catch((reject) => {
292
+            })
293
+      })
264 294
 
265
-      this.innerVisible = false;
295
+      this.innerVisible = false
266 296
       // this.$nextTick(() => {
267 297
       //   this.$refs.print.printThisPage()
268 298
       //   this.$refs.treatPrint.printThisPage()
@@ -271,181 +301,203 @@ export default {
271 301
     },
272 302
 
273 303
     searchAction() {
274
-      this.page = 1;
275
-      this.limit = 10;
276
-      this.getHisPrescriptionList();
304
+      this.page = 1
305
+      this.limit = 10
306
+      this.getHisPrescriptionList()
277 307
     },
278 308
     handleScheduleDateChange() {
279
-      this.page = 1;
280
-      this.limit = 10;
281
-      this.getHisPrescriptionList();
309
+      this.page = 1
310
+      this.limit = 10
311
+      this.getHisPrescriptionList()
282 312
     },
283 313
     handleCurrentChange(page) {
284
-      this.page = page;
285
-      this.getHisPrescriptionList();
314
+      this.page = page
315
+      this.getHisPrescriptionList()
286 316
     },
287 317
 
288 318
     handleSizeChange(limit) {
289
-      this.limit = limit;
290
-      this.getHisPrescriptionList();
319
+      this.limit = limit
320
+      this.getHisPrescriptionList()
291 321
     },
292 322
     getTimes(time) {
293
-      return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
323
+      return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
294 324
     },
295 325
     handerShowDetail(row) {
296 326
       if (row.id == 0) {
297
-        this.$message.error("未就诊");
298
-        return;
327
+        this.$message.error('未就诊')
328
+        return
299 329
       }
300
-      this.$refs.inquiriesDetail.show(row.id);
330
+      this.$refs.inquiriesDetail.show(row.id)
301 331
     },
302 332
     getHisPrescriptionList() {
303 333
       let params = {
304 334
         record_date: this.record_date,
305 335
         page: this.page,
306 336
         limit: this.limit,
307
-        keywords: this.keywords,
308
-      };
337
+        keywords: this.keywords
338
+      }
309 339
       getHisPrescriptionList(params).then((response) => {
310 340
         if (response.data.state == 0) {
311
-          this.$message.error(response.data.msg);
312
-          return false;
341
+          this.$message.error(response.data.msg)
342
+          return false
313 343
         } else {
314
-          this.tableData = response.data.data.order;
315
-          this.total = response.data.data.total;
344
+          this.tableData = response.data.data.order
345
+          this.total = response.data.data.total
316 346
           this.$nextTick(() => {
317
-            this.$refs.table.doLayout(); //解决表格错位
318
-          });
347
+            this.$refs.table.doLayout() //解决表格错位
348
+          })
319 349
         }
320
-      });
350
+      })
321 351
     },
322 352
     getInitData() {
323 353
       getInitData().then((response) => {
324 354
         if (response.data.state == 0) {
325
-          this.$message.error(response.data.msg);
326
-          return false;
355
+          this.$message.error(response.data.msg)
356
+          return false
327 357
         } else {
328
-          this.diagnoses = response.data.data.diagnose;
329
-          console.log("诊断列表", this.diagnoses);
358
+          this.diagnoses = response.data.data.diagnose
359
+          console.log('诊断列表', this.diagnoses)
330 360
         }
331
-      });
361
+      })
332 362
     },
333 363
     getDiagnosis(id) {
334
-      let ids = id.split(",");
335
-      var name = "";
364
+      let ids = id.split(',')
365
+      var name = ''
336 366
       for (let i = 0; i < ids.length; i++) {
337 367
         for (let b = 0; b < this.diagnoses.length; b++) {
338 368
           if (parseInt(ids[i]) == this.diagnoses[b].id) {
339 369
             if (name.length == 0) {
340
-              name = this.diagnoses[b].class_name;
370
+              name = this.diagnoses[b].class_name
341 371
             } else {
342
-              name = name + "," + this.diagnoses[b].class_name;
372
+              name = name + ',' + this.diagnoses[b].class_name
343 373
             }
344 374
           }
345 375
         }
346 376
       }
347
-      return name;
377
+      return name
348 378
     },
349 379
     handleSelectionChange(val) {
350
-      this.selecting_schs = val;
380
+      this.selecting_schs = val
351 381
     },
352 382
     batchPrint(type) {
353
-      this.printType = type;
383
+      this.printType = type
354 384
       if (this.selecting_schs.length === 0) {
355
-        this.$message.error("请至少选择一条需要打印的内容");
356
-        return false;
385
+        this.$message.error('请至少选择一条需要打印的内容')
386
+        return false
357 387
       } else {
358
-        var sch_ids = [];
388
+        var sch_ids = []
359 389
         for (let index = 0; index < this.selecting_schs.length; index++) {
360
-          sch_ids.push(this.selecting_schs[index].patient_id);
390
+          sch_ids.push(this.selecting_schs[index].patient_id)
361 391
         }
362 392
         let params = {
363 393
           record_date: this.record_date,
364
-          patient_ids: sch_ids.join(","),
365
-          type: type,
366
-        };
394
+          patient_ids: sch_ids.join(','),
395
+          type: type
396
+        }
367 397
         getBatchPrint(params).then((res) => {
368
-          let Arr = res.data.data.patients;
369
-          let new_patients = [];
398
+          let Arr = res.data.data.patients
399
+
400
+
401
+          let new_patients = []
370 402
           if (type != 3) {
371 403
             Arr.forEach((i) => {
372 404
               if (i.prescriptions.length != 0) {
373
-                new_patients.push(i);
405
+                new_patients.push(i)
374 406
               }
375
-            });
407
+            })
376 408
           } else {
377
-            // 过滤检查单数据出来,筛选出有检查项目的单子,不显示没有检查项目的单子
378 409
             Arr.forEach((el) => {
379
-              el.prescriptions.forEach((o) => {
410
+              el.new_prescriptions.forEach((o) => {
380 411
                 o.project.forEach((i) => {
381
-                  if (i.team.project_team != "") {
382
-                    new_patients.push(el);
412
+                  if (i.team.project_team != '') {
413
+                    new_patients.push(el)
383 414
                   }
384
-                });
385
-              });
386
-            });
387
-            let projectPrint = [];
415
+                })
416
+              })
417
+            })
418
+            let projectPrint = []
388 419
             new_patients.forEach((el) => {
389
-              el.prescriptions.map((item) => {
420
+              el.new_prescriptions.map((item) => {
390 421
                 if (item.project.length > 0) {
391 422
                   item.project.map((it) => {
392
-                    // if (it.type == 2) {
393
-                    //   if (it.project.cost_classify == 3) {
394
-                    //     projectPrint.push(it);
395
-                    //   }
396
-                    // }
397
-                    projectPrint.push(it);
398
-                  });
423
+                    projectPrint.push(it)
424
+                  })
399 425
                 }
400
-              });
401
-            });
402
-            console.log(projectPrint, "projectPrint----去重前");
426
+              })
427
+            })
403 428
             // 数组去重
404
-            projectPrint = this.split_project(projectPrint);
429
+            projectPrint = this.split_project(projectPrint)
405 430
             // 配对
406
-            let data = [];
431
+            let data = []
407 432
             projectPrint.map((item) => {
408 433
               if (item.team.id == 0) {
409
-                data.push(item);
434
+                data.push(item)
410 435
               } else {
411
-                if(item.team.project_team != ""){
436
+                if (item.team.project_team != '') {
412 437
                   new_patients.push(item)
413 438
                 }
414 439
               }
415
-            });
440
+            })
441
+            new_patients = this.split_project_1(new_patients)
416 442
           }
417
-
418
-          this.printData = new_patients;
419
-        });
443
+          this.printData = new_patients
444
+          console.log(this.printData, 'this.printData')
445
+        })
420 446
       }
421
-      this.innerVisible = true;
447
+      this.innerVisible = true
422 448
     },
423
-
449
+    // 外层去重方
424 450
     split_project(Arr) {
425
-      let hash = {};
426
-      Arr = Arr.reduce((preVal, curVal) => {
427
-        hash[curVal.id] ? "" : (hash[curVal.id] = true && preVal.push(curVal));
428
-        return preVal;
429
-      }, []);
430
-      return Arr;
451
+      let hash = {}
452
+      let new_Arr = []
453
+      new_Arr = Arr.reduce((preVal, curVal) => {
454
+        hash[curVal.id] ? '' : (hash[curVal.id] = true && preVal.push(curVal))
455
+        return preVal
456
+      }, [])
457
+      Arr = new_Arr.reduce((preVal, curVal) => {
458
+        hash[curVal.team.project_team]
459
+            ? ''
460
+            : (hash[curVal.team.project_team] = true && preVal.push(curVal))
461
+        return preVal
462
+      }, [])
463
+      return Arr
431 464
     },
465
+
466
+    // 内层去重
467
+    split_project_1(Arr) {
468
+      let hash = {}
469
+      let new_Arr = []
470
+      Arr = Arr.reduce((preVal, curVal) => {
471
+        hash[curVal.id] ? '' : (hash[curVal.id] = true && preVal.push(curVal))
472
+        return preVal
473
+      }, [])
474
+
475
+      Arr.forEach(el => {
476
+        if (el.name) {
477
+          new_Arr.push(el)
478
+        }
479
+      })
480
+
481
+      console.log(new_Arr, 'Arr')
482
+      return new_Arr
483
+    }
432 484
   },
433 485
   created() {
434
-    var nowDate = new Date();
435
-    var nowYear = nowDate.getFullYear();
436
-    var nowMonth = nowDate.getMonth() + 1;
437
-    var nowDay = nowDate.getDate();
486
+    var nowDate = new Date()
487
+    var nowYear = nowDate.getFullYear()
488
+    var nowMonth = nowDate.getMonth() + 1
489
+    var nowDay = nowDate.getDate()
438 490
     this.record_date =
439
-      nowYear +
440
-      "-" +
441
-      (nowMonth < 10 ? "0" + nowMonth : nowMonth) +
442
-      "-" +
443
-      (nowDay < 10 ? "0" + nowDay : nowDay);
491
+        nowYear +
492
+        '-' +
493
+        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
494
+        '-' +
495
+        (nowDay < 10 ? '0' + nowDay : nowDay)
444 496
 
445
-    this.org_id = this.$store.getters.xt_user.template_info.org_id;
497
+    this.org_id = this.$store.getters.xt_user.template_info.org_id
446 498
 
447
-    this.getHisPrescriptionList();
448
-    this.getInitData();
449
-  },
450
-};
499
+    this.getHisPrescriptionList()
500
+    this.getInitData()
501
+  }
502
+}
451 503
 </script>

+ 13 - 55
src/xt_pages/outpatientDoctorStation/print.vue View File

@@ -19,20 +19,9 @@
19 19
  -->
20 20
     <div class="dialysisPage" style="padding-top: 40px">
21 21
       <div v-if="org_id != 10138 && org_id != 10278 && org_id != 10243 && org_id != 4 && org_id !=0">
22
+
22 23
         <printOne v-if="org_id != 10088 && org_id != 10215" v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printOne>
23 24
 
24
-        <!--        <printSix-->
25
-<!--          v-if="org_id != 10088 && org_id != 10215"-->
26
-<!--          v-bind:childResponse="childResponse"-->
27
-<!--          :advicePrint="advicePrint"-->
28
-<!--          :ids="ids"-->
29
-<!--          :patient="patient"-->
30
-<!--          :hisPatient="hisPatient"-->
31
-<!--          :doctorPorject="doctorPorject"-->
32
-<!--          :patient_id="patient_id"-->
33
-<!--          :record_date="record_date"-->
34
-<!--          :prescription_id="prescription_id"-->
35
-<!--        ></printSix>-->
36 25
         <printFour
37 26
           v-if="org_id == 10088"
38 27
           v-bind:childResponse="childResponse"
@@ -56,6 +45,7 @@
56 45
           :patient_id="patient_id"
57 46
           :record_date="record_date"
58 47
           :prescription_id="prescription_id"
48
+          :his_patient_id ="his_patient_id"
59 49
         ></printFive>
60 50
 
61 51
         <!-- <printSix v-if="org_id != 10088 && org_id != 10215" v-bind:childResponse="childResponse" :advicePrint="advicePrint" :ids="ids" :patient="patient" :hisPatient="hisPatient" :doctorPorject="doctorPorject" :patient_id="patient_id" :record_date="record_date" :prescription_id="prescription_id"></printSix> -->
@@ -75,7 +65,6 @@
75 65
       </div>
76 66
       <div v-else>
77 67
         <printThree
78
-          v-bind:childResponse="childResponse"
79 68
           :advicePrint="advicePrint"
80 69
           :ids="ids"
81 70
           :patient="patient"
@@ -91,10 +80,7 @@
91 80
 </template>
92 81
 
93 82
 <script>
94
-import { parseTime } from "@/utils";
95
-import { getDialysisRecord } from "@/api/dialysis";
96
-import { getDataConfig } from "@/utils/data";
97
-import { jsGetAge, uParseTime } from "@/utils/tools";
83
+import {  uParseTime } from "@/utils/tools";
98 84
 
99 85
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
100 86
 import print from "print-js";
@@ -106,7 +92,6 @@ import printSix from "./template/printSix";
106 92
 import {
107 93
   getAllDoctorList,
108 94
   getAllHisPatientList,
109
-  getPrescriptionPrint,
110 95
 } from "@/api/project/project";
111 96
 export default {
112 97
   name: "dialysisPrintOrder",
@@ -136,6 +121,7 @@ export default {
136 121
       search_input: "",
137 122
       loading: false,
138 123
       patient_id: "",
124
+      his_patient_id:"",
139 125
       prescription_id: "",
140 126
       ids: "",
141 127
       paramsObj: {},
@@ -225,49 +211,21 @@ export default {
225 211
       this.patient_id = row.patient_id;
226 212
       this.record_date = this.record_date;
227 213
       this.prescription_id = this.prescription_id;
228
-      console.log("row", row);
229
-      // var params = {
230
-      //   patient_id:row.patient_id,
231
-      //   record_date:this.record_date,
232
-      //   prescription_id:this.prescription_id,
233
-      // }
234
-      // getPrescriptionPrint(params).then(response=>{
235
-      //     if(response.data.state == 1){
236
-      //       var advicePrint =  response.data.data.advicePrint
237
-      //       console.log("adviceprint",advicePrint)
238
-      //       this.advicePrint = advicePrint
239
-      //       var patient =  response.data.data.patient
240
-      //       console.log("patient",patient)
241
-      //       this.patient = patient
242
-      //       //  var hisPatient =  response.data.data.hisPatient
243
-      //       // console.log("hispatient",hisPatient)
244
-      //       // this.hisPatient = hisPatient
245
-      //       var doctorPorject = response.data.data.doctorPorject
246
-      //       console.log("doctorporject",doctorPorject)
247
-      //       this.doctorPorject = doctorPorject
248
-      //     }
249
-      // })
214
+      this.his_patient_id = row.his_patient_id
215
+
250 216
     },
251 217
     searchAction() {},
252 218
   },
253 219
 
254 220
   created() {
255
-    this.org_id = this.$store.getters.xt_user.org_id;
256
-    console.log(this.org_id,'机构id')
257
-    this.getAllDoctorList();
258
-    var record_date = this.paramsObj.record;
259
-    this.record_date = record_date;
260
-    console.log("record_date", record_date);
261
-    var prescription_id = this.paramsObj.prescription_id;
262
-    this.prescription_id = prescription_id;
221
+    this.record_date =  this.paramsObj.record;
222
+    this.prescription_id =  this.paramsObj.prescription_id;
263 223
     this.patient_id = this.paramsObj.patient_id;
264 224
     this.ids = this.paramsObj.ids;
265
-    // var record_date = this.$route.query.record
266
-    // this.record_date = record_date
267
-    // console.log("record_date",record_date)
268
-    // var prescription_id = this.$route.query.prescription_id
269
-    // this.prescription_id = prescription_id
270
-    this.getAllHisPatientList(record_date);
225
+    this.org_id = this.$store.getters.xt_user.org_id;
226
+    this.his_patient_id = this.paramsObj.his_patient_id;
227
+    this.getAllDoctorList();
228
+    this.getAllHisPatientList(this.record_date);
271 229
   },
272 230
   watch: {
273 231
     paramsObj: {
@@ -275,9 +233,9 @@ export default {
275 233
       handler(val, oldVal) {
276 234
         this.paramsObj = val;
277 235
         this.patient_id = this.paramsObj.patient_id;
236
+        this.his_patient_id = this.paramsObj.his_patient_id;
278 237
         var record_date = this.paramsObj.record;
279 238
         this.record_date = record_date;
280
-        console.log("record_date", record_date);
281 239
         var prescription_id = this.paramsObj.prescription_id;
282 240
         this.prescription_id = prescription_id;
283 241
         this.ids = this.paramsObj.ids;

+ 11 - 3
src/xt_pages/outpatientDoctorStation/template/printOne.vue View File

@@ -136,9 +136,15 @@
136 136
             >
137 137
               {{ item.doctor }}
138 138
             </span>
139
+            <span
140
+              style="width: 100px; display: inline-block"
141
+              v-else-if="doc_name != ''"
142
+            >
143
+              {{ doc_name }}
144
+            </span>
139 145
             <img
140 146
               style="height: 30px"
141
-              :src="setAdminUserES(item.creator)"
147
+              :src="setAdminUserES(item.creator,item.doctor)"
142 148
               alt=""
143 149
               srcset=""
144 150
               v-else
@@ -207,6 +213,7 @@ export default {
207 213
   },
208 214
   data() {
209 215
     return {
216
+      doc_name:"",
210 217
       doctorList: [],
211 218
       advicePrint: {},
212 219
       patient: {},
@@ -221,18 +228,19 @@ export default {
221 228
       org_id: 0,
222 229
       operatorMaps: {},
223 230
       operators: [],
224
-      doctorList_1: []
231
+      doctorList_1: [],
225 232
     };
226 233
   },
227 234
   methods: {
228 235
     // 电子签名
229
-    setAdminUserES(id) {
236
+    setAdminUserES(id,name) {
230 237
       if (id == 0) {
231 238
         return "";
232 239
       }
233 240
       if (id in this.operatorMaps) {
234 241
         return this.operatorMaps[id].url;
235 242
       } else {
243
+        this.doc_name = name
236 244
         return "";
237 245
       }
238 246
     },

+ 3 - 1
src/xt_pages/outpatientDoctorStation/template/printThree.vue View File

@@ -98,7 +98,7 @@
98 98
             </div>
99 99
             <div style="margin-bottom: 10px; display: flex">
100 100
               临床诊断:{{
101
-                item.info.diagnosis ? getDiagnosis(item.info.diagnosis) : ""
101
+                item.info ? getDiagnosis(item.info.diagnosis) : ""
102 102
               }}
103 103
             </div>
104 104
             <div style="margin-bottom: 10px; display: flex">
@@ -256,6 +256,7 @@ export default {
256 256
     patient_id: Number,
257 257
     record_date: String,
258 258
     prescription_id: Number,
259
+    his_patient_id:Number,
259 260
     ids: String,
260 261
   },
261 262
   data() {
@@ -356,6 +357,7 @@ export default {
356 357
         patient_id: this.patient_id,
357 358
         record_date: this.record_date,
358 359
         prescription_id: this.prescription_id,
360
+        his_patient_id: this.his_patient_id,
359 361
         ids: this.ids,
360 362
         p_type: 2,
361 363
       };

+ 4 - 4
src/xt_pages/outpatientRegistration/registrationHistory.vue View File

@@ -257,13 +257,13 @@
257 257
                 start-placeholder="开始日期"
258 258
                 end-placeholder="结束日期">
259 259
                 </el-date-picker> -->
260
-                <el-date-picker type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
260
+                <el-date-picker type="datetime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
261 261
                                 placeholder="选择时间" v-model="start_time" style="width:200px"
262 262
                                 @change="changeStart"
263 263
                 >
264 264
                 </el-date-picker>
265 265
                 -
266
-                <el-date-picker type="datetime" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
266
+                <el-date-picker type="datetime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
267 267
                                 placeholder="选择时间" v-model="end_time" style="width:200px"
268 268
                                 @change="changeEnd"
269 269
                 >
@@ -488,8 +488,8 @@
488 488
           { value: 4, label: '免收诊金' },
489 489
           { value: 5, label: '专家' }
490 490
         ],
491
-        start_time: moment().format('YYYY-MM-DD'),
492
-        end_time: moment().format('YYYY-MM-DD'),
491
+        start_time: moment().format('YYYY-MM-DD HH:mm'),
492
+        end_time: moment().format('YYYY-MM-DD HH:mm'),
493 493
         limit: 10,
494 494
         page: 1,
495 495
         total: 0,

+ 153 - 0
src/xt_pages/outpatientTool/components/detailStatistics.vue View File

@@ -0,0 +1,153 @@
1
+<template>
2
+  <div>
3
+    <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
4
+      <div>
5
+        <el-select size="small" v-model="item_type" placeholder="请选择"
6
+                   style="width:150px;margin-left:10px;" @change="changeItem">
7
+          <el-option
8
+              label="全部"
9
+              value="0">
10
+          </el-option>
11
+          <el-option
12
+              v-for="(item,index) in items"
13
+              :key="index"
14
+              :label="item.name"
15
+              :value="item.id">
16
+          </el-option>
17
+        </el-select>
18
+
19
+        <el-input
20
+            size="small"
21
+            style="width: 150px"
22
+            v-model="keywords"
23
+            class="filter-item"
24
+        />
25
+        <el-button
26
+            size="small"
27
+            style="margin: 0 10px"
28
+            class="filter-item"
29
+            type="primary"
30
+            @click="searchAction"
31
+        >搜索
32
+        </el-button>
33
+        <el-date-picker
34
+            v-model="chargeDate"
35
+            type="daterange"
36
+            value-format="yyyy-MM-dd"
37
+            range-separator="至"
38
+            start-placeholder="开始日期"
39
+            @change="changeDate"
40
+            end-placeholder="结束日期">
41
+        </el-date-picker>
42
+      </div>
43
+      <div>
44
+      </div>
45
+    </div>
46
+    <el-table :data="tableData" border :row-style="{ color: '#303133' }" ref="table"
47
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
48
+              show-summary
49
+              max-height="600"
50
+              v-loading="detail_loading"
51
+              highlight-current-row>
52
+      <el-table-column type="index" label="序号" width="60px" align="center"></el-table-column>
53
+      <el-table-column align="center" prop="name" label="处方日期">
54
+        <template slot-scope="scope">{{  }}</template>
55
+      </el-table-column>
56
+      <el-table-column align="center" prop="name" label="费用编码">
57
+        <template slot-scope="scope">{{scope.row.code}}</template>
58
+      </el-table-column>
59
+      <el-table-column align="center" prop="name" label="项目名称">
60
+        <template slot-scope="scope">{{scope.row.item_name}}</template>
61
+      </el-table-column>
62
+      <el-table-column align="center" prop="name" label="规格">
63
+        <template slot-scope="scope">{{scope.row.item_spec}}</template>
64
+      </el-table-column>
65
+      <el-table-column align="center" prop="name" label="数量">
66
+        <template slot-scope="scope">{{scope.row.count}}</template>
67
+      </el-table-column>
68
+      <el-table-column align="center" prop="name" label="单价">
69
+        <template slot-scope="scope">{{scope.row.price.toFixed(2)}}</template>
70
+      </el-table-column>
71
+      <el-table-column align="center" prop="name" label="金额">
72
+        <template slot-scope="scope">
73
+          <div>{{(scope.row.price.toFixed(2)*scope.row.count).toFixed(2)}}</div>
74
+        </template>
75
+      </el-table-column>
76
+
77
+    </el-table>
78
+  </div>
79
+
80
+  <!-- </div> -->
81
+</template>
82
+
83
+
84
+<script>
85
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
86
+import {  } from '@/api/his/his'
87
+const moment = require('moment')
88
+export default {
89
+  components: {
90
+    BreadCrumb
91
+
92
+  },
93
+  props: {
94
+    patient_id: {
95
+      type: Number,
96
+      default: 0
97
+    }
98
+  },
99
+
100
+  data() {
101
+
102
+    return {
103
+      detail_loading: false,
104
+      tempArr: [],
105
+      pos: 0,
106
+      search_input: '',
107
+
108
+      sameRowArr: [],
109
+      keywords: '',
110
+      tableData: [],
111
+      chargeDate: [moment(new Date()).add('year', 0).format('YYYY-MM-DD'), moment(new Date()).add('year', 0).format('YYYY-MM-DD')],
112
+      item_type: '0',
113
+      items: [
114
+        { id: 1, name: '药品' },
115
+        { id: 3, name: '耗材' },
116
+        { id: 2, name: '项目' }
117
+
118
+      ]
119
+
120
+    }
121
+  },
122
+  methods: {
123
+    searchAction(){
124
+
125
+
126
+    },
127
+    changeDate() {
128
+      this.getSummaryDetailList()
129
+    },
130
+    changeItem() {
131
+      this.getSummaryDetailList()
132
+    },
133
+    getSummaryDetailList() {
134
+      let start_time = this.chargeDate[0]
135
+      let end_time = this.chargeDate[1]
136
+      let params = {
137
+        patient_id:this.patient_id,
138
+        start_time: start_time,
139
+        end_time: end_time,
140
+        type: this.item_type,
141
+        keyword: this.keywords
142
+      }
143
+
144
+
145
+
146
+    },
147
+  },
148
+  created() {
149
+    this.getSummaryDetailList()
150
+
151
+  }
152
+}
153
+</script>

+ 156 - 0
src/xt_pages/outpatientTool/components/gatherStatistics.vue View File

@@ -0,0 +1,156 @@
1
+<template>
2
+  <div>
3
+    <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
4
+      <div>
5
+        <el-select size="small" v-model="item_type" placeholder="请选择"
6
+                   style="width:150px;margin-left:10px;" @change="changeItem">
7
+          <el-option
8
+              label="全部"
9
+              value="0">
10
+          </el-option>
11
+          <el-option
12
+              v-for="(item,index) in items"
13
+              :key="index"
14
+              :label="item.name"
15
+              :value="item.id">
16
+          </el-option>
17
+        </el-select>
18
+
19
+        <el-input
20
+            size="small"
21
+            style="width: 150px"
22
+            v-model="keywords"
23
+            class="filter-item"
24
+        />
25
+        <el-button
26
+            size="small"
27
+            style="margin: 0 10px"
28
+            class="filter-item"
29
+            type="primary"
30
+            @click="searchAction"
31
+        >搜索
32
+        </el-button>
33
+        <el-date-picker
34
+            v-model="chargeDate"
35
+            type="daterange"
36
+            value-format="yyyy-MM-dd"
37
+            range-separator="至"
38
+            start-placeholder="开始日期"
39
+            @change="changeDate"
40
+            end-placeholder="结束日期">
41
+        </el-date-picker>
42
+      </div>
43
+      <div>
44
+      </div>
45
+    </div>
46
+    <el-table :data="tableData" border :row-style="{ color: '#303133' }" ref="table"
47
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
48
+              show-summary
49
+              max-height="600"
50
+              v-loading="detail_loading"
51
+              highlight-current-row>
52
+      <el-table-column type="index" label="序号" width="60px" align="center"></el-table-column>
53
+      <el-table-column align="center" prop="name" label="处方日期">
54
+        <template slot-scope="scope">{{  }}</template>
55
+      </el-table-column>
56
+      <el-table-column align="center" prop="name" label="费用分类">
57
+        <template slot-scope="scope">{{scope.row.code}}</template>
58
+      </el-table-column>
59
+      <el-table-column align="center" prop="name" label="项目名称">
60
+        <template slot-scope="scope">{{scope.row.item_name}}</template>
61
+      </el-table-column>
62
+      <el-table-column align="center" prop="name" label="规格型号">
63
+        <template slot-scope="scope">{{scope.row.item_spec}}</template>
64
+      </el-table-column>
65
+      <el-table-column align="center" prop="name" label="数量">
66
+        <template slot-scope="scope">{{scope.row.count}}</template>
67
+      </el-table-column>
68
+      <el-table-column align="center" prop="name" label="单价">
69
+        <template slot-scope="scope">{{scope.row.price.toFixed(2)}}</template>
70
+      </el-table-column>
71
+      <el-table-column align="center" prop="name" label="金额">
72
+        <template slot-scope="scope">
73
+          <div>{{(scope.row.price.toFixed(2)*scope.row.count).toFixed(2)}}</div>
74
+        </template>
75
+      </el-table-column>
76
+      <el-table-column align="center" prop="name" label="医保类别">
77
+        <template slot-scope="scope"></template>
78
+      </el-table-column>
79
+
80
+    </el-table>
81
+  </div>
82
+
83
+  <!-- </div> -->
84
+</template>
85
+
86
+
87
+<script>
88
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
89
+import {  } from '@/api/his/his'
90
+const moment = require('moment')
91
+export default {
92
+  components: {
93
+    BreadCrumb
94
+
95
+  },
96
+  props: {
97
+    patient_id: {
98
+      type: Number,
99
+      default: 0
100
+    }
101
+  },
102
+
103
+  data() {
104
+
105
+    return {
106
+      detail_loading: false,
107
+      tempArr: [],
108
+      pos: 0,
109
+      search_input: '',
110
+
111
+      sameRowArr: [],
112
+      keywords: '',
113
+      tableData: [],
114
+      chargeDate: [moment(new Date()).add('year', 0).format('YYYY-MM-DD'), moment(new Date()).add('year', 0).format('YYYY-MM-DD')],
115
+      item_type: '0',
116
+      items: [
117
+        { id: 1, name: '药品' },
118
+        { id: 3, name: '耗材' },
119
+        { id: 2, name: '项目' }
120
+
121
+      ]
122
+
123
+    }
124
+  },
125
+  methods: {
126
+    searchAction(){
127
+
128
+
129
+    },
130
+    changeDate() {
131
+      this.getSummaryDetailList()
132
+    },
133
+    changeItem() {
134
+      this.getSummaryDetailList()
135
+    },
136
+    getSummaryDetailList() {
137
+      let start_time = this.chargeDate[0]
138
+      let end_time = this.chargeDate[1]
139
+      let params = {
140
+        patient_id:this.patient_id,
141
+        start_time: start_time,
142
+        end_time: end_time,
143
+        type: this.item_type,
144
+        keyword: this.keywords
145
+      }
146
+
147
+
148
+
149
+    },
150
+  },
151
+  created() {
152
+    this.getSummaryDetailList()
153
+
154
+  }
155
+}
156
+</script>

+ 341 - 0
src/xt_pages/outpatientTool/statistics.vue View File

@@ -0,0 +1,341 @@
1
+<template>
2
+  <div class="main-contain new-main-contain">
3
+    <div class="position">
4
+<!--      <bread-crumb :crumbs='crumbs'></bread-crumb>-->
5
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
6
+    </div>
7
+    <div class="app-container" style="display:flex;flex: 1;padding: 10px 20px 0px 20px;">
8
+      <div class="mainLeft">
9
+        <div>
10
+          <el-table  :data="patientTableData" :height="tableHeight" border style="width: 100%;"
11
+                     :row-style="{ color: '#303133' }"
12
+                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
13
+                     highlight-current-row ref="tab"
14
+                     @current-change="handleCurrentChange">
15
+            <el-table-column align="center" prop="name" label="姓名" wdith='89'>
16
+              <template slot-scope="scope">{{ scope.row.name }}</template>
17
+            </el-table-column>
18
+          </el-table>
19
+        </div>
20
+      </div>
21
+      <div class="mainRight">
22
+        <el-tabs v-model="titleType">
23
+          <el-tab-pane label="明细" name="明细"></el-tab-pane>
24
+          <el-tab-pane label="汇总" name="汇总"></el-tab-pane>
25
+        </el-tabs>
26
+        <detail-statistics v-if="titleType == '明细'" :patient_id="patient_id"></detail-statistics>
27
+        <gather-statistics v-if="titleType == '汇总'" :patient_id="patient_id"></gather-statistics>
28
+      </div>
29
+    </div>
30
+  </div>
31
+</template>
32
+
33
+<script>
34
+import {
35
+  GetAllPatients,
36
+} from '@/api/his/his_tools'
37
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
38
+
39
+import DetailStatistics from './components/detailStatistics'
40
+import GatherStatistics from './components/gatherStatistics'
41
+export default {
42
+  components: {
43
+    GatherStatistics,
44
+    DetailStatistics,
45
+    BreadCrumb,
46
+
47
+
48
+  },
49
+  data() {
50
+
51
+    return {
52
+      patientTableData:[],
53
+      tableHeight: 400,
54
+      crumbs: [
55
+        { path: false, name: 'His工具' },
56
+        { path: false, name: '明细汇总统计' }
57
+      ],
58
+      titleType: '明细',
59
+      patient_id:0
60
+    }
61
+  },
62
+  methods: {
63
+    getPatientList(){
64
+      GetAllPatients().then(response => {
65
+        if (response.data.state == 0) {
66
+          this.$message.error(response.data.msg)
67
+          return false
68
+        } else {
69
+          this.patientTableData = response.data.data.list
70
+          this.patient_id =  this.patientTableData[0].id
71
+        }
72
+      })
73
+    },
74
+    handleCurrentChange(row){
75
+      this.patient_id =  row.id
76
+
77
+    },
78
+
79
+  },
80
+  created() {
81
+    const tableHeight = document.body.clientHeight - 290
82
+    this.tableHeight = tableHeight
83
+    this.getPatientList()
84
+
85
+  },
86
+
87
+  mounted() {
88
+
89
+  },
90
+  watch: {}
91
+}
92
+</script>
93
+
94
+<style lang="scss" scoped>
95
+.new-main-contain {
96
+  height: 100%;
97
+  display: flex;
98
+  flex-direction: column;
99
+}
100
+
101
+.app-container {
102
+  height: 100%;
103
+}
104
+
105
+.mainCell {
106
+  height: 36px;
107
+  display: flex;
108
+  align-items: center;
109
+}
110
+
111
+.mainLeft {
112
+  width: 200px;
113
+  height: 100%;
114
+  display: flex;
115
+  flex-direction: column;
116
+
117
+.el-radio {
118
+  margin-right: 5px;
119
+}
120
+
121
+}
122
+.mainRight {
123
+  margin-left: 10px;
124
+  flex: 1;
125
+  height: 100%;
126
+  display: flex;
127
+  flex-direction: column;
128
+  overflow-y: auto;
129
+
130
+.cellSpan {
131
+  min-width: 80px;
132
+  display: inline-block;
133
+  margin-right: 10px;
134
+}
135
+
136
+}
137
+.mainCenter {
138
+  display: flex;
139
+  flex: 1;
140
+}
141
+
142
+.centerLeft {
143
+  flex: 1;
144
+  display: flex;
145
+  flex-direction: column;
146
+  position: relative;
147
+
148
+.el-form-item {
149
+  width: 32%;
150
+  margin-right: 1%;
151
+  float: left;
152
+}
153
+
154
+.el-form-item__label {
155
+  text-align: left;
156
+}
157
+
158
+}
159
+.backColor {
160
+  background: #f6f8f9;
161
+  height: 5px;
162
+  margin-bottom: 5px;
163
+}
164
+
165
+.tabsBox {
166
+  position: relative;
167
+  height: 76%;
168
+  overflow-y: auto;
169
+  margin-bottom: 60px;
170
+
171
+.el-tabs__item {
172
+  padding: 0 10px;
173
+}
174
+
175
+}
176
+.preTabs {
177
+  height: 100%;
178
+  display: flex;
179
+  flex-direction: column;
180
+
181
+.el-tabs__content {
182
+  flex: 1;
183
+  overflow-y: auto;
184
+}
185
+
186
+}
187
+
188
+.costBox {
189
+  width: 100%;
190
+  height: 60px;
191
+  background: #fff;
192
+  position: absolute;
193
+  bottom: 0;
194
+  display: flex;
195
+  align-items: center;
196
+}
197
+
198
+.addTab {
199
+  position: absolute;
200
+  right: 0;
201
+  top: 14px;
202
+  z-index: 20;
203
+}
204
+
205
+.centerRight {
206
+  width: 300px;
207
+  margin-left: 10px;
208
+  display: flex;
209
+  flex-direction: column;
210
+  position: relative;
211
+}
212
+
213
+.rightTab {
214
+  height: 40px;
215
+  width: 100%;
216
+  border: 1px solid #d2d2d2;
217
+  box-sizing: border-box;
218
+
219
+p {
220
+  width: 50%;
221
+  height: 40px;
222
+  line-height: 40px;
223
+  text-align: center;
224
+  background: #eee;
225
+  float: left;
226
+}
227
+
228
+> p:last-child {
229
+  border-left: 1px solid #d2d2d2;
230
+  float: right;
231
+}
232
+
233
+.activeP {
234
+  background: #409EFF;
235
+  color: #fff;
236
+}
237
+
238
+}
239
+.comfirmBox {
240
+  width: 100%;
241
+  height: 60px;
242
+  background: #fff;
243
+  position: absolute;
244
+  bottom: 0;
245
+  display: flex;
246
+  align-items: center;
247
+  justify-content: space-between;
248
+}
249
+
250
+.mainHeader {
251
+  width: 100%;
252
+  background: #fff;
253
+  position: fixed;
254
+  z-index: 100;
255
+  height: 36px;
256
+}
257
+
258
+.titleBox {
259
+  position: fixed;
260
+  z-index: 99;
261
+  background: #fff;
262
+}
263
+
264
+.fixedCell {
265
+  position: fixed;
266
+  z-index: 99;
267
+  right: 30px;
268
+  background: #fff;
269
+  width: 300px;
270
+  display: flex;
271
+  justify-content: space-between;
272
+}
273
+</style>
274
+
275
+<style lang="scss">
276
+.centerLeft {
277
+
278
+.el-form-item__label {
279
+  text-align: left;
280
+}
281
+
282
+}
283
+.tabsBox {
284
+
285
+.el-tabs__item {
286
+  padding: 0 10px;
287
+}
288
+
289
+.el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2) {
290
+  padding: 0 10px;
291
+}
292
+
293
+.el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:last-child {
294
+  padding: 0 10px;
295
+}
296
+
297
+.el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable {
298
+  padding: 0 10px;
299
+}
300
+
301
+}
302
+.centerRight {
303
+
304
+.el-tabs__nav-scroll {
305
+  display: flex;
306
+}
307
+
308
+.el-tabs__nav {
309
+  margin: 0 auto;
310
+}
311
+
312
+.el-table th .cell, .el-table td .cell {
313
+  padding: 0 2px;
314
+}
315
+
316
+}
317
+.preTabs {
318
+
319
+.el-tabs__content {
320
+
321
+}
322
+
323
+}
324
+.rightTabs {
325
+  height: 100%;
326
+
327
+
328
+.el-tabs__content {
329
+
330
+}
331
+
332
+}
333
+.centerDialog {
334
+
335
+.el-dialog__body {
336
+  max-height: calc(100vh - 100px) !important;
337
+  padding: 0 20px;
338
+}
339
+
340
+}
341
+</style>

+ 41 - 3
src/xt_pages/qcd/indicatorControlAnalysis/weight.vue View File

@@ -89,7 +89,10 @@
89 89
               <line-chart :options="bar"></line-chart>
90 90
 
91 91
             </div>
92
-            <div class="tableTitle">统计表</div>
92
+              <div class="tableTitle">统计表</div>
93
+              <div style="float:right;margin-right:10px">
94
+               <el-button  size="small" type="primary" @click="toExport">导出</el-button>
95
+              </div>
93 96
             <div>
94 97
 
95 98
               <el-table :data="tableData" style="width: 100%" border :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}">
@@ -165,7 +168,7 @@
165 168
                 @size-change="handleSizeChange"
166 169
                 @current-change="handleCurrentChange"
167 170
                 :current-page="query.page"
168
-                :page-sizes="[10, 20, 50, 100]"
171
+                :page-sizes="[10, 20, 50, 100,500,1000,2000,5000]"
169 172
                 :page-size="10"
170 173
                 background
171 174
                 style="margin-top:20px;"
@@ -615,8 +618,43 @@
615 618
 
616 619
           }
617 620
         })
621
+      },
622
+    toExport(){
623
+      import('@/vendor/Export2Excel').then(excel => {
624
+        console.log("hhhh323223",this.tableData)
625
+        for(let i=0;i<this.tableData.length;i++){
626
+          this.tableData[i].assessment_date = this.getTime(this.tableData[i].assessment_date,'{y}-{m}-{d}')
627
+          this.tableData[i].name = this.tableData[i].patient.name
628
+          this.tableData[i].over_pluse =  this.tableData[i].weight_before -  this.tableData[i].last_after_weight
629
+        }
630
+       
631
+        const tHeader = ['日期', '姓名', '干体重','前次透后体重','透前体重','透后体重','体重增加']
632
+        const filterVal = ['assessment_date', 'name', 'dry_weight','last_after_weight','weight_before','weight_after','over_pluse']
633
+        console.log("table",this.tableData)
634
+      
635
+        const data = this.formatJson(filterVal, this.tableData)
636
+        excel.export_json_to_excel({
637
+          header: tHeader,
638
+          data,
639
+          filename: '患者体重'
640
+        })
641
+        this.downloadLoading = false
642
+     })
643
+    },
644
+    formatJson(filterVal, jsonData) {
645
+      return jsonData.map(v => filterVal.map(j => v[j]));
646
+    },
647
+    getTime(value, temp) {
648
+      if (value == 0) {
649
+        return "";
650
+      }
651
+      if (value != undefined) {
652
+        return uParseTime(value, temp);
618 653
       }
619
-    }, created() {
654
+      return "";
655
+    },
656
+    },
657
+     created() {
620 658
       this.getCurrentOrgPatients()
621 659
       var date = new Date()
622 660
       var year = date.getFullYear() //获取完整的年份(4位)

+ 6 - 6
src/xt_pages/stock/detail/print.vue View File

@@ -52,8 +52,8 @@
52 52
                 <span v-if="type == 1"> {{ item.warehousing_count }}</span>
53 53
                 <span v-if="type == 2"> 
54 54
                   <span  v-if="org_id == 3907 || org_id == 9919 || org_id == 9583">{{getStockCount(item.good_id) }}</span> 
55
-                   <span  v-if="org_id == 10265">{{getMySelfCount(item.good_id) }}</span>   
56
-                  <span v-if="org_id!=3907&&org_id!=10265&&org_id!=10285&&org_id!=9583">{{getStockCount(item.good_id) }}</span>
55
+                   <span  v-if="org_id == 10265 || org_id == 10215">{{getMySelfCount(item.good_id) }}</span>   
56
+                  <span v-if="org_id!=3907&&org_id!=10265&&org_id!=10285&&org_id!=9583&&org_id!=10215">{{getStockCount(item.good_id) }}</span>
57 57
                 </span>
58 58
                
59 59
                 <span v-if="type == 4"> {{ item.count }}</span>
@@ -77,8 +77,8 @@
77 77
                   <span v-if="org_id == 3907 || org_id ==9919">
78 78
                      {{(getStockCount(item.good_id) * item.buy_price).toFixed(2)}}
79 79
                   </span>
80
-                  <span v-if="org_id == 10265">{{(getMySelfCount(item.good_id)*item.packing_price).toFixed(2)}}</span>
81
-                  <span v-if="org_id!=3907&&org_id!=10265&&org_id!=9919">{{(getStockCount(item.good_id) * item.packing_price).toFixed(2)}}</span>
80
+                  <span v-if="org_id == 10265 || org_id == 10215">{{(getMySelfCount(item.good_id)*item.packing_price).toFixed(2)}}</span>
81
+                  <span v-if="org_id!=3907&&org_id!=10265&&org_id!=9919&&org_id!=10215">{{(getStockCount(item.good_id) * item.packing_price).toFixed(2)}}</span>
82 82
                 </span>
83 83
                 <span v-if="type == 4">{{(item.count * item.price).toFixed(2)}}</span>
84 84
               </td>
@@ -100,8 +100,8 @@
100 100
                 <span v-if="type == 1">{{getWareInfoTotal().toFixed(2)}}</span> 
101 101
                 <span v-if="type == 2">
102 102
                   <span v-if="org_id == 3907 || org_id == 9919">{{getWareOutTotalOne().toFixed(2)}}</span>
103
-                  <span v-if="org_id == 10265">{{getWareOutTotalSix().toFixed(2)}}</span>
104
-                  <span v-if="org_id!=3907 && org_id!=9919 && org_id!=10265"> {{getWareOutTotal().toFixed(2)}}</span>
103
+                  <span v-if="org_id == 10265 || org_id == 10215">{{getWareOutTotalSix().toFixed(2)}}</span>
104
+                  <span v-if="org_id!=3907 && org_id!=9919 && org_id!=10265 && org_id!=10215"> {{getWareOutTotal().toFixed(2)}}</span>
105 105
                  </span> 
106 106
                 <span v-if="type == 4">{{getWareOutTotal().toFixed(2)}}</span> 
107 107
               </td>

+ 6 - 6
src/xt_pages/stock/detail/stockOutDetail.vue View File

@@ -338,7 +338,6 @@ export default {
338 338
               warehouse_out_time: 0
339 339
             }
340 340
           });
341
-          console.log("cancelstockdate2332323322332332",this.cancelStockDate)
342 341
         }
343 342
       });
344 343
     },
@@ -385,7 +384,7 @@ export default {
385 384
           }
386 385
           
387 386
           this.tableDataList = response.data.data.list
388
-           console.log("耗材出库数据323323323232232323232",this.tableDataList)
387
+          
389 388
           this.cancelStockDate.push({
390 389
             warehouse_out_order_number: "合计",
391 390
             is_total: 1,
@@ -744,8 +743,6 @@ export default {
744 743
       },
745 744
 
746 745
     exportList(){
747
-       console.log("哈哈哈",this.tableOut)
748
-      
749 746
        for(let i=0;i<this.tableOut.length;i++){
750 747
         this.tableOut[i].index = i+1
751 748
         this.tableOut[i].good_name = this.tableOut[i].good_name
@@ -756,14 +753,17 @@ export default {
756 753
           this.tableOut[i].packing_price = this.tableOut[i].buy_price
757 754
         }else if(this.orgId == 10265){
758 755
           this.tableOut[i].total_price = (this.getMySelfCount(this.tableOut[i].good_id) * this.tableOut[i].retail_price).toFixed(2)
756
+        }else if(this.orgId == 10215){
757
+          this.tableOut[i].total_price = (this.getMySelfCount(this.tableOut[i].good_id) * this.tableOut[i].retail_price).toFixed(2)
759 758
         }else{
760 759
           this.tableOut[i].total_price = (this.getStockCount(this.tableOut[i].good_id) * this.tableOut[i].retail_price).toFixed(2)
761 760
         }
762 761
        
763
-        if(this.orgId  == 10265){
762
+        if(this.orgId  == 10265 || this.orgId ==10215 ){
764 763
         
765 764
          this.tableOut[i].out_count = this.getMySelfCount(this.tableOut[i].good_id)
766
-        }else{
765
+        }
766
+        if(this.orgId!=10265 && this.orgId !=10215){
767 767
           this.tableOut[i].out_count = this.getStockCount(this.tableOut[i].good_id)
768 768
         }
769 769
        }

+ 40 - 7
src/xt_pages/stock/drugs/components/drugOutDetail.vue View File

@@ -136,15 +136,30 @@
136 136
         </el-table-column>
137 137
         <el-table-column label="数量" align="center">
138 138
           <template slot-scope="scope">
139
-            {{scope.row.count}}
139
+            {{scope.row.count}} 
140
+          </template>
141
+        </el-table-column>
142
+         <el-table-column label="单位" align="center">
143
+          <template slot-scope="scope">
144
+            {{scope.row.count_unit}} 
140 145
           </template>
141 146
         </el-table-column>
142 147
         <el-table-column label="总价" align="center">
143 148
           <template slot-scope="scope">
144 149
            <span v-if="org_id == 9919">{{(scope.row.last_price * scope.row.count).toFixed(2)}} </span> 
145 150
            <span v-else>
146
-             <span v-if="scope.row.price >0">{{(scope.row.last_price * scope.row.count).toFixed(2)}}</span>
147
-             <span v-if="scope.row.price  == 0">{{(getPrice(scope.row.drug_id)* scope.row.count).toFixed(2)}}</span>
151
+             <span v-if="scope.row.price >0">
152
+                <span v-if="scope.row.count >= scope.row.min_number">
153
+                 {{((scope.row.price * scope.row.count)/scope.row.min_number).toFixed(2)}}
154
+                </span>  
155
+                <span v-else>{{(scope.row.price * scope.row.count).toFixed(2)}}</span>
156
+              </span>
157
+             <span v-if="scope.row.price  == 0">
158
+               <span v-if="scope.row.count >=scope.row.min_number">
159
+                 {{((getPrice(scope.row.drug_id)* scope.row.count)/scope.row.min_number).toFixed(2)}}
160
+               </span> 
161
+               <span v-else>{{(getPrice(scope.row.drug_id)* scope.row.count).toFixed(2)}}</span>
162
+             </span>
148 163
            </span>
149 164
             <!-- {{scope.row.total_price}} -->
150 165
           </template>
@@ -562,17 +577,35 @@ export default {
562 577
        for(let i=0;i<this.tableData.length;i++){
563 578
          if(this.tableData[i].is_total == 0){
564 579
             this.tableData[i].index = i+1
565
-      
566
-            this.tableData[i].drugtype = this.getTypeList(this.tableData[i].drugtype)
580
+            if(this.tableData[i].drug_type == 1){
581
+              this.tableData[i].drugtype = "西药"
582
+            }
583
+            if(this.tableData[i].drug_type == 2){
584
+              this.tableData[i].drugtype = "草药"
585
+            }
586
+            if(this.tableData[i].drug_type == 3){
587
+              this.tableData[i].drugtype = "成药"
588
+            }
589
+            // this.tableData[i].drugtype = this.getTypeList(this.tableData[i].drugtype)
567 590
             this.tableData[i].specification_name = this.tableData[i].dose + this.tableData[i].dose_unit +"*" + this.tableData[i].min_number + this.tableData[i].min_unit +  "/" + this.tableData[i].max_unit
568 591
             this.tableData[i].time = this.getTime(this.tableData[i].ctime)
569 592
             this.tableData[i].user_name = this.getAdminUser(this.tableData[i].creater)
570 593
             if(this.org_id == 9671 || this.org_id == 9919){
571 594
               this.tableData[i].total = (this.tableData[i].count * this.tableData[i].last_price)
572
-              this.tableData[i].total_price = (this.tableData[i].count * this.tableData[i].last_price)
595
+              if(this.tableData[i].count >=this.tableData[i].min_number){
596
+               this.tableData[i].total_price = (this.tableData[i].count * this.tableData[i].last_price)/this.tableData[i].min_number
597
+              }else{
598
+                this.tableData[i].total_price = (this.tableData[i].count * this.tableData[i].last_price)
599
+              }
600
+              
573 601
             }else{
574 602
               this.tableData[i].total = (this.tableData[i].count * this.tableData[i].price)
575
-              this.tableData[i].total_price = (this.tableData[i].count * this.tableData[i].price)
603
+                if(this.tableData[i].count >=this.tableData[i].min_number){
604
+                  this.tableData[i].total_price = (this.tableData[i].count * this.tableData[i].price)/this.tableData[i].min_number
605
+              }else{
606
+                  this.tableData[i].total_price = (this.tableData[i].count * this.tableData[i].price)
607
+              }
608
+             
576 609
             }
577 610
          }
578 611
        }

+ 3 - 3
src/xt_pages/stock/drugs/drugStockOutOrder.vue View File

@@ -222,7 +222,7 @@
222 222
               <span> {{getTotalCountOne(scope.row.drug_id,scope.row.min_number,scope.row.max_unit,scope.row.min_unit)}}</span>
223 223
             </template>
224 224
           </el-table-column>
225
-          <el-table-column label="出单价" align="center">
225
+          <el-table-column label="出单价" align="center">
226 226
             <template slot-scope="scope">
227 227
               <span v-if="scope.row.price > 0"> {{scope.row.price}}</span>
228 228
               <span v-if="scope.row.price == 0"> {{scope.row.retail_price}}</span>
@@ -235,8 +235,8 @@
235 235
           </el-table-column> -->
236 236
           <el-table-column label="总价" align="center">
237 237
             <template slot-scope="scope">
238
-              <span v-if="scope.row.price > 0">{{getAllPriceOne(scope.row.drug_id,scope.row.price,scope.row.price).toFixed(2)}}</span>
239
-              <span v-if="scope.row.price == 0">{{getAllPriceOne(scope.row.drug_id,scope.row.retail_price,scope.row.min_price).toFixed(2)}}</span>
238
+              <span v-if="scope.row.price > 0">{{(getAllPriceOne(scope.row.drug_id,scope.row.price,scope.row.price/scope.row.min_number)/scope.row.min_number).toFixed(2)}}</span>
239
+              <span v-if="scope.row.price == 0">{{(getAllPriceOne(scope.row.drug_id,scope.row.retail_price,scope.row.min_price)/scope.row.min_number).toFixed(2)}}</span>
240 240
             </template>
241 241
           </el-table-column>
242 242
           <el-table-column label="生产厂家" align="center">

+ 2 - 4
src/xt_pages/stock/inventoryTransfer/index.vue View File

@@ -48,17 +48,15 @@
48 48
         </div>
49 49
       </div>
50 50
       <el-table
51
-        :row-style="changColor"
52 51
         :header-cell-style="{
53 52
           backgroundColor: 'rgb(245, 247, 250)',
54 53
           color: '#606266',
55 54
         }"
56 55
         :data="tableData"
57
-        :class="signAndWeighBoxPatients"
58 56
         border
59 57
         @selection-change="handleSelectionChange"
60 58
       >
61
-        >
59
+        
62 60
         <el-table-column type="selection" width="55"> </el-table-column>
63 61
         <el-table-column label="单据编号" align="center">
64 62
           <template slot-scope="scope">
@@ -111,7 +109,6 @@
111 109
               >
112 110
               </el-button>
113 111
             </el-tooltip>
114
-
115 112
             <el-tooltip class="item" content="删除" placement="top-start">
116 113
               <el-button
117 114
                 icon="el-icon-delete"
@@ -134,6 +131,7 @@
134 131
           </template>
135 132
         </el-table-column>
136 133
       </el-table>
134
+
137 135
       <el-pagination
138 136
         @size-change="handleSizeChange"
139 137
         @current-change="handleCurrentChange"

+ 4 - 4
src/xt_pages/stock/stockOutOrderEdit.vue View File

@@ -724,11 +724,11 @@
724 724
         }
725 725
       getSingleOutOrderDetail(params).then(response=>{
726 726
         if(response.data.state == 1){
727
-          console.log("详情",response.data.data.list)
727
+         
728 728
           var dealerList = response.data.data.dealerList
729 729
           this.dealerList = dealerList
730 730
           var manufacturerList = response.data.data.manufacturerList
731
-          // console.log("hhhhhhhhh",manufacturerList)
731
+         
732 732
           this.manufacturerList = manufacturerList
733 733
           this.goodType = response.data.data.goodType
734 734
           for (let i = 0; i < response.data.data.list.length; i++) {
@@ -760,13 +760,13 @@
760 760
         getStockBatchNumber(params).then(response=>{
761 761
           if(response.data.state == 1){
762 762
             var list = response.data.data.list
763
-            console.log("list2243444",list)
763
+           
764 764
             this.numberList = list
765 765
           }
766 766
        })
767 767
       },
768 768
      changeNumberList(val,index){
769
-       console.log("val232332323223232332",val,index)
769
+       
770 770
        for(let i=0;i<this.recordInfo.recordData.length;i++){
771 771
          if(index == i){
772 772
             this.recordInfo.recordData[i].warehouse_info_id = val.number

+ 0 - 0
src/xt_pages/stock/stockQuery.vue View File


Some files were not shown because too many files changed in this diff