Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

printFour.vue 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. <template>
  2. <div>
  3. <div v-if="paramsObj.balance_accounts_type != 2" id='prescription-print' class="prescription-print">
  4. <div v-for='(i,pageIndex) in pageArr.length' :key="pageIndex">
  5. <div class="printTitle">血液透析中心医药费收据及收费项目清单</div>
  6. <div class="infoMain">
  7. <div class="infoP">医院(药店)编号:{{info.org_code}}</div>
  8. <div class="infoP">名称:{{info.org_name}}</div>
  9. <div class="infoP">医生工号:{{info.doctor_code}}</div>
  10. <div class="infoP">门诊流水号:{{info.number}}</div>
  11. <div class="infoP">科别: {{info.department}}</div>
  12. <div class="infoP">处方单据号:{{info.order_number}}</div>
  13. <div class="infoP">姓名:{{info.patient.name}}</div>
  14. <div class="infoP">医疗账号:{{info.health_card_no}}</div>
  15. <div class="infoP">医疗类别:</div>
  16. </div>
  17. <div class="chargeBox">
  18. <div style="display:flex;justify-content: space-between;border-bottom:1px solid #000;">
  19. <div class="chargeUl" style="width:20%;">
  20. <p style="width:50%;border-right:1px solid #000;">费用类型</p>
  21. <p style="width:50%;border-right:1px solid #000;">金额</p>
  22. </div>
  23. <div class="chargeUl" style="width:80%;">
  24. <p style="width:40%;border-right:1px solid #000;">明细名称</p>
  25. <p style="width:15%;border-right:1px solid #000;">规格</p>
  26. <p style="width:15%;border-right:1px solid #000;">数量</p>
  27. <p style="width:15%;border-right:1px solid #000;">单价</p>
  28. <p style="width:15%;">金额</p>
  29. </div>
  30. </div>
  31. <div style="display:flex;justify-content: space-between;">
  32. <div style="width:20%;">
  33. <div class="chargeUl" v-if="info.bed_cost_total > 0">
  34. <p style="width:50%;">床位费</p>
  35. <p style="width:50%;">{{info.bed_cost_total?info.bed_cost_total:0}}元</p>
  36. </div>
  37. <div class="chargeUl" v-if="info.operation_cost_total > 0">
  38. <p style="width:50%;">手术费</p>
  39. <p style="width:50%;">{{info.operation_cost_total?info.operation_cost_total:0}}元</p>
  40. </div>
  41. <div class="chargeUl" v-if="info.other_cost_total > 0">
  42. <p style="width:50%;">其他费</p>
  43. <p style="width:50%;">{{info.other_cost_total?info.other_cost_total:0}}元</p>
  44. </div>
  45. <div class="chargeUl" v-if="info.material_cost_total > 0">
  46. <p style="width:50%;">材料费</p>
  47. <p style="width:50%;">{{info.material_cost_total?info.material_cost_total:0}}元</p>
  48. </div>
  49. <div class="chargeUl" v-if="info.western_medicine_cost_total > 0">
  50. <p style="width:50%;">西药费</p>
  51. <p style="width:50%;">{{info.western_medicine_cost_total?info.western_medicine_cost_total:0}}元</p>
  52. </div>
  53. <div class="chargeUl" v-if="info.chinese_traditional_medicine_cost_total > 0">
  54. <p style="width:50%;">中成费</p>
  55. <p style="width:50%;">{{info.chinese_traditional_medicine_cost_total?info.chinese_traditional_medicine_cost_total:0}}元</p>
  56. </div>
  57. <div class="chargeUl" v-if="info.check_cost_total > 0">
  58. <p style="width:50%;">检查费</p>
  59. <p style="width:50%;">{{info.check_cost_total?info.check_cost_total:0}}元</p>
  60. </div>
  61. <div class="chargeUl" v-if="info.laboratory_cost_total > 0">
  62. <p style="width:50%;">化验费</p>
  63. <p style="width:50%;">{{info.laboratory_cost_total?info.laboratory_cost_total:0}}元</p>
  64. </div>
  65. <div class="chargeUl" v-if="info.treat_cost_total > 0">
  66. <p style="width:50%;">治疗费</p>
  67. <p style="width:50%;">{{info.treat_cost_total?info.treat_cost_total:0}}元</p>
  68. </div>
  69. <div class="chargeUl" style="border-top:1px solid #000;">
  70. <p style="width:50%;">费用合计</p>
  71. <p style="width:50%;">{{info.medfee_sumamt?info.medfee_sumamt:0}}元</p>
  72. </div>
  73. <div class="chargeUl" style="border-top:1px solid #000;">
  74. <p style="width:50%;">记账支付</p>
  75. <p style="width:50%;">{{info.hifp_pay?info.hifp_pay:0}}元</p>
  76. </div>
  77. <div class="chargeUl" style="border-top:1px solid #000;">
  78. <p style="width:50%;">个人账号</p>
  79. <p style="width:50%;">{{info.acct_pay?info.acct_pay:0}}元</p>
  80. </div>
  81. <div class="chargeUl" style="border-top:1px solid #000;border-bottom:1px solid #000;">
  82. <p style="width:50%;">现金支付</p>
  83. <p style="width:50%;">{{info.psn_pay?info.psn_pay:0}}元</p>
  84. </div>
  85. </div>
  86. <div style="width:80%;max-height:500px;">
  87. <div style="display:flex;" v-for="(item,i) in info.order_infos.slice(pageIndex * 13,(pageIndex * 13) + pageArr[pageIndex])" :key="i">
  88. <div style="border-left:1px solid #000;border-right:1px solid #000;width:40%;text-align:center;">
  89. <p class="chargeP">
  90. <span v-if='item.type == 1'>{{item.advice.advice_name}}</span>
  91. <span v-if='item.project.type == 2'>{{item.project.project.project_name}}</span>
  92. <span v-if='item.project.type == 3'>{{item.project.good_info.specification_name}}</span>
  93. </p>
  94. </div>
  95. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  96. <p class="chargeP">
  97. <span v-if='item.type == 1'>{{ item.advice.drug.dose + item.advice.drug.dose_unit + "*" +item.advice.drug.min_number + item.advice.drug.min_unit +"/" + item.advice.drug.max_unit}}</span>
  98. <span v-if='item.project.type == 2'>{{item.project.project.unit}}</span>
  99. <span v-if='item.project.type == 3'>{{item.project.unit}}</span>
  100. </p>
  101. </div>
  102. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  103. <p class="chargeP">
  104. <span v-if='item.type == 1'>{{item.cnt}}{{item.advice.prescribing_number_unit}}</span>
  105. <span v-if='item.project.type == 2'>{{item.cnt}}{{item.project.project.unit}}</span>
  106. <span v-if='item.project.type == 3'>{{item.cnt}}{{item.project.unit}}</span>
  107. </p>
  108. </div>
  109. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  110. <p class="chargeP">
  111. <span>{{item.pric}}元</span>
  112. </p>
  113. </div>
  114. <div style="width:15%;text-align:center;">
  115. <p class="chargeP">
  116. <span>{{(item.cnt * item.pric).toFixed(2)}}元</span>
  117. </p>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. <div class="moneyBox">
  124. <p>实收金:{{info.medfee_sumamt?info.medfee_sumamt:0}}元</p>
  125. <p>记账前金额:{{0.00}}元</p>
  126. <p>扣款金额:{{0.00}}元</p>
  127. <p>记账后金额:{{info.balc}}元</p>
  128. <p>找赎金:{{0.00}}元</p>
  129. </div>
  130. <div class="actionBar">
  131. <div>收费员:{{info.charge_admin.user_name}}</div>
  132. <div>日期:{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</div>
  133. </div>
  134. </div>
  135. </div>
  136. <div v-else id='prescription-print' class="prescription-print">
  137. <div v-for='(i,pageIndex) in pageArr.length' :key="pageIndex">
  138. <div class="printTitle">血液透析中心医药费收据及收费项目清单</div>
  139. <div class="infoMain">
  140. <div class="infoP">医院(药店)编号:{{balanceAccounts.org_config.code}}</div>
  141. <div class="infoP">名称:{{balanceAccounts.org_config.org_name}}</div>
  142. <div class="infoP">医生工号:</div>
  143. <div class="infoP">门诊流水号:{{balanceAccounts.his.number ? balanceAccounts.his.number : ''}}</div>
  144. <div class="infoP">科别: {{balanceAccounts.order.department_name ? balanceAccounts.order.department_name : ''}}</div>
  145. <div class="infoP">处方单据号:{{balanceAccounts.order.number ? balanceAccounts.order.number : ''}}</div>
  146. <div class="infoP">姓名:{{balanceAccounts.patient ? balanceAccounts.patient.name : ''}}</div>
  147. <div class="infoP">医疗账号:</div>
  148. <div class="infoP">医疗类别:自费</div>
  149. </div>
  150. <div class="chargeBox">
  151. <div style="display:flex;justify-content: space-between;border-bottom:1px solid #000;">
  152. <div class="chargeUl" style="width:20%;">
  153. <p style="width:50%;border-right:1px solid #000;">费用类型</p>
  154. <p style="width:50%;border-right:1px solid #000;">金额</p>
  155. </div>
  156. <div class="chargeUl" style="width:80%;">
  157. <p style="width:40%;border-right:1px solid #000;">明细名称</p>
  158. <p style="width:15%;border-right:1px solid #000;">规格</p>
  159. <p style="width:15%;border-right:1px solid #000;">数量</p>
  160. <p style="width:15%;border-right:1px solid #000;">单价</p>
  161. <p style="width:15%;">金额</p>
  162. </div>
  163. </div>
  164. <div style="display:flex;justify-content: space-between;">
  165. <div style="width:20%;">
  166. <div class="chargeUl" v-for="(item,i) in balanceAccounts.new_detail_list" :key="i">
  167. <p style="width:50%;">
  168. <span v-if="item.type == 1">药品费</span>
  169. <span v-if="item.type == 2">治疗费</span>
  170. <span v-if="item.type == 3">耗材费</span>
  171. </p>
  172. <p style="width:50%;">{{item.total?item.total:0}}元</p>
  173. </div>
  174. <div class="chargeUl" style="border-top:1px solid #000;">
  175. <p style="width:50%;">费用合计</p>
  176. <p style="width:50%;">{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</p>
  177. </div>
  178. <div class="chargeUl" style="border-top:1px solid #000;">
  179. <p style="width:50%;">记账支付</p>
  180. <p style="width:50%;">0元</p>
  181. </div>
  182. <div class="chargeUl" style="border-top:1px solid #000;">
  183. <p style="width:50%;">个人账号</p>
  184. <p style="width:50%;">0元</p>
  185. </div>
  186. <div class="chargeUl" style="border-top:1px solid #000;border-bottom:1px solid #000;">
  187. <p style="width:50%;">现金支付</p>
  188. <p style="width:50%;">{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</p>
  189. </div>
  190. </div>
  191. <div style="width:80%;max-height:500px;">
  192. <div style="display:flex;" v-for="(item,i) in balanceAccounts.order_info.slice(pageIndex * 13,(pageIndex * 13) + pageArr[pageIndex])" :key="i">
  193. <div style="border-left:1px solid #000;border-right:1px solid #000;width:40%;text-align:center;">
  194. <p class="chargeP">
  195. <span v-if='item.advice_id > 0'>{{item.advice.advice_name}}</span>
  196. <span v-if='item.project.type == 2'>{{item.project.project.project_name}}</span>
  197. <span v-if='item.project.type == 3'>{{item.project.good_info.specification_name}}</span>
  198. </p>
  199. </div>
  200. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  201. <p class="chargeP">
  202. <span v-if='item.advice_id > 0'>{{ item.advice.drug.dose + item.advice.drug.dose_unit + "*" +item.advice.drug.min_number + item.advice.drug.min_unit +"/" + item.advice.drug.max_unit}}</span>
  203. <span v-if='item.project.type == 2'>{{item.project.project.unit}}</span>
  204. <span v-if='item.project.type == 3'>{{item.project.unit}}</span>
  205. </p>
  206. </div>
  207. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  208. <p class="chargeP">
  209. <span>{{item.cnt}}次</span>
  210. </p>
  211. </div>
  212. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  213. <p class="chargeP">
  214. <span>{{item.pric}}元</span>
  215. </p>
  216. </div>
  217. <div style="width:15%;text-align:center;">
  218. <p class="chargeP">
  219. <span>{{(item.cnt * item.pric).toFixed(2)}}元</span>
  220. </p>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. </div>
  226. <div class="moneyBox">
  227. <p>实收金:{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</p>
  228. <p>记账前金额:{{0.00}}元</p>
  229. <p>扣款金额:{{0.00}}元</p>
  230. <p>记账后金额:{{0.00}}元</p>
  231. <p>找赎金:{{0.00}}元</p>
  232. </div>
  233. <div class="actionBar">
  234. <div>收费员:{{balanceAccounts.current_admin.user_name}}</div>
  235. <div>日期:{{getTime(balanceAccounts.order.settle_accounts_date,"{y}-{m}-{d}")?getTime(balanceAccounts.order.settle_accounts_date,"{y}-{m}-{d}"):""}}</div>
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. </template>
  241. <script>
  242. import axios from 'axios'
  243. import { getChargePrint } from '@/api/project/project'
  244. import { uParseTime } from '@/utils/tools'
  245. export default {
  246. data() {
  247. return {
  248. list: {},
  249. prescription: [],
  250. patient: {},
  251. orgname: '',
  252. result: {},
  253. org_code: '',
  254. patient_name: '',
  255. doctor_code: '',
  256. doctor_name: '',
  257. name_arr: [],
  258. spec_arr: [],
  259. count_arr: [],
  260. price_arr: [],
  261. total_arr: [],
  262. page:1,
  263. pageArr:[],
  264. }
  265. },
  266. props: {
  267. paramsObj: Object,
  268. info: Object,
  269. balanceAccounts:Object
  270. },
  271. methods: {
  272. getItemName(number) {
  273. switch (number) {
  274. case '01':
  275. return '床位费'
  276. break
  277. case '02':
  278. return '西药费'
  279. break
  280. case '03':
  281. return '中药费'
  282. break
  283. case '04':
  284. return '中成药费'
  285. break
  286. case '05':
  287. return '中草药费'
  288. break
  289. case '06':
  290. return '检查费'
  291. break
  292. case '07':
  293. return '治疗费'
  294. break
  295. case '08':
  296. return '放射费'
  297. break
  298. case '09':
  299. return '手术费'
  300. break
  301. case '10':
  302. return '化验费'
  303. break
  304. case '11':
  305. return '输血费'
  306. break
  307. case '12':
  308. return '输氧费'
  309. break
  310. case '13':
  311. return '其它费'
  312. break
  313. case '14':
  314. return '麻醉费'
  315. break
  316. case '15':
  317. return '材料费'
  318. break
  319. case '16':
  320. return '特殊检查费'
  321. break
  322. case '17':
  323. return '特殊治疗费'
  324. break
  325. case '18':
  326. return '诊疗费(诊查费)'
  327. break
  328. case '19':
  329. return '护理费'
  330. break
  331. case '20':
  332. return '诊金'
  333. break
  334. case '21':
  335. return '检查费(CT)'
  336. break
  337. case '22':
  338. return '检查费(MRT)'
  339. break
  340. case '23':
  341. return '检查费(其他)'
  342. break
  343. case '24':
  344. return '特需服务费'
  345. break
  346. case '25':
  347. return '杂费'
  348. break
  349. case '26':
  350. return '挂号费'
  351. break
  352. }
  353. },
  354. getPage(){
  355. if(this.paramsObj.balance_accounts_type != 2){
  356. this.page = 1
  357. this.pageArr = []
  358. if(this.info.order_infos.length <= 13){
  359. this.page = 1
  360. this.pageArr.push(this.info.order_infos.length)
  361. console.log('this.pageArr',this.pageArr)
  362. }else if(this.info.order_infos.length > 13){
  363. this.page = parseInt(this.info.order_infos.length / 13)
  364. let num = this.info.order_infos.length % 13
  365. for (var i=0;i<this.page;i++){
  366. this.pageArr.push(13)
  367. }
  368. if(num != 0){
  369. this.pageArr.push(num)
  370. }
  371. }
  372. }else{
  373. this.page = 1
  374. this.pageArr = []
  375. if(this.balanceAccounts.order_info.length <= 13){
  376. this.page = 1
  377. this.pageArr.push(this.balanceAccounts.order_info.length)
  378. console.log('this.pageArr',this.pageArr)
  379. }else if(this.balanceAccounts.order_info.length > 13){
  380. this.page = parseInt(this.balanceAccounts.order_info.length / 13)
  381. let num = this.balanceAccounts.order_info.length % 13
  382. for (var i=0;i<this.page;i++){
  383. this.pageArr.push(13)
  384. }
  385. if(num != 0){
  386. this.pageArr.push(num)
  387. }
  388. }
  389. }
  390. },
  391. getTime(value, temp) {
  392. if (value != undefined) {
  393. return uParseTime(value, temp)
  394. }
  395. return ''
  396. }
  397. },
  398. created() {
  399. },
  400. watch:{
  401. info: {
  402. handler(newVal) {
  403. this.getPage()
  404. },
  405. deep: true,
  406. },
  407. balanceAccounts(){
  408. this.getPage()
  409. },
  410. deep: true
  411. }
  412. }
  413. </script>
  414. <style lang="scss" scoped>
  415. .prescription-print {
  416. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
  417. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  418. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  419. margin-bottom: 20px;
  420. padding: 20px 10px;
  421. }
  422. .printTitle {
  423. font-size: 22px;
  424. text-align: center;
  425. font-weight: bold;
  426. }
  427. .infoMain {
  428. display: flex;
  429. flex-wrap: wrap;
  430. padding: 0 10px;
  431. margin-top: 10px;
  432. }
  433. .infoMain .infoP {
  434. width: 33%;
  435. line-height: 24px;
  436. }
  437. .chargeBox {
  438. border: 1px solid #000;
  439. }
  440. .chargeUl {
  441. display: flex;
  442. justify-content: space-between;
  443. text-align: center;
  444. }
  445. .chargeUl p {
  446. height: 40px;
  447. line-height: 40px;
  448. }
  449. .chargeP {
  450. height: 40px;
  451. line-height: 40px;
  452. }
  453. .moneyBox {
  454. display: flex;
  455. justify-content: space-between;
  456. padding: 0 10px;
  457. background: #eee;
  458. height: 40px;
  459. align-items: center;
  460. border: 1px solid #000;
  461. border-top: none
  462. }
  463. .actionBar {
  464. display: flex;
  465. justify-content: space-between;
  466. line-height: 24px;
  467. padding: 0 10px;
  468. }
  469. .actionBar div {
  470. width: 150px;
  471. }
  472. </style>