printFour.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. <template>
  2. <div>
  3. <div 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.fund_pay_sumamt?info.fund_pay_sumamt: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_cash_pay?info.psn_cash_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.type == 2'>{{item.project.project.project_name}}</span>
  92. <span v-if='item.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.drug_spec}}</span>
  98. <span v-if='item.type == 2'>{{item.project.project.unit}}</span>
  99. <span v-if='item.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>{{item.cnt}}次</span>
  105. </p>
  106. </div>
  107. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  108. <p class="chargeP">
  109. <span>{{item.pric}}元</span>
  110. </p>
  111. </div>
  112. <div style="width:15%;text-align:center;">
  113. <p class="chargeP">
  114. <span>{{item.cnt * item.pric}}元</span>
  115. </p>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="moneyBox">
  122. <p>实收金:{{info.medfee_sumamt?info.medfee_sumamt:0}}元</p>
  123. <p>记账前金额:{{0.00}}元</p>
  124. <p>扣款金额:{{0.00}}元</p>
  125. <p>记账后金额:{{info.balc}}元</p>
  126. <p>找赎金:{{0.00}}元</p>
  127. </div>
  128. <div class="actionBar">
  129. <div>收费员:{{info.charge_admin.user_name}}</div>
  130. <div>日期:{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</div>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. </template>
  136. <script>
  137. import axios from 'axios'
  138. import { getChargePrint } from '@/api/project/project'
  139. export default {
  140. data() {
  141. return {
  142. list: {},
  143. prescription: [],
  144. patient: {},
  145. orgname: '',
  146. result: {},
  147. org_code: '',
  148. patient_name: '',
  149. doctor_code: '',
  150. doctor_name: '',
  151. name_arr: [],
  152. spec_arr: [],
  153. count_arr: [],
  154. price_arr: [],
  155. total_arr: [],
  156. page:1,
  157. pageArr:[],
  158. }
  159. },
  160. props: {
  161. info: Object
  162. },
  163. methods: {
  164. getItemName(number) {
  165. switch (number) {
  166. case '01':
  167. return '床位费'
  168. break
  169. case '02':
  170. return '西药费'
  171. break
  172. case '03':
  173. return '中药费'
  174. break
  175. case '04':
  176. return '中成药费'
  177. break
  178. case '05':
  179. return '中草药费'
  180. break
  181. case '06':
  182. return '检查费'
  183. break
  184. case '07':
  185. return '治疗费'
  186. break
  187. case '08':
  188. return '放射费'
  189. break
  190. case '09':
  191. return '手术费'
  192. break
  193. case '10':
  194. return '化验费'
  195. break
  196. case '11':
  197. return '输血费'
  198. break
  199. case '12':
  200. return '输氧费'
  201. break
  202. case '13':
  203. return '其它费'
  204. break
  205. case '14':
  206. return '麻醉费'
  207. break
  208. case '15':
  209. return '材料费'
  210. break
  211. case '16':
  212. return '特殊检查费'
  213. break
  214. case '17':
  215. return '特殊治疗费'
  216. break
  217. case '18':
  218. return '诊疗费(诊查费)'
  219. break
  220. case '19':
  221. return '护理费'
  222. break
  223. case '20':
  224. return '诊金'
  225. break
  226. case '21':
  227. return '检查费(CT)'
  228. break
  229. case '22':
  230. return '检查费(MRT)'
  231. break
  232. case '23':
  233. return '检查费(其他)'
  234. break
  235. case '24':
  236. return '特需服务费'
  237. break
  238. case '25':
  239. return '杂费'
  240. break
  241. case '26':
  242. return '挂号费'
  243. break
  244. }
  245. },
  246. getPage(){
  247. this.page = 1
  248. this.pageArr = []
  249. if(this.info.order_infos.length <= 13){
  250. this.page = 1
  251. this.pageArr.push(this.info.order_infos.length)
  252. console.log('this.pageArr',this.pageArr)
  253. }else if(this.info.order_infos.length > 13){
  254. this.page = parseInt(this.info.order_infos.length / 13)
  255. let num = this.info.order_infos.length % 13
  256. for (var i=0;i<this.page;i++){
  257. this.pageArr.push(13)
  258. }
  259. if(num != 0){
  260. this.pageArr.push(num)
  261. }
  262. }
  263. }
  264. },
  265. created() {
  266. },
  267. watch:{
  268. info: {
  269. handler(newVal) {
  270. this.getPage()
  271. },
  272. deep: true,
  273. }
  274. }
  275. }
  276. </script>
  277. <style lang="scss" scoped>
  278. .prescription-print {
  279. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
  280. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  281. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  282. margin-bottom: 20px;
  283. padding: 20px 10px;
  284. }
  285. .printTitle {
  286. font-size: 22px;
  287. text-align: center;
  288. font-weight: bold;
  289. }
  290. .infoMain {
  291. display: flex;
  292. flex-wrap: wrap;
  293. padding: 0 10px;
  294. margin-top: 10px;
  295. }
  296. .infoMain .infoP {
  297. width: 33%;
  298. line-height: 24px;
  299. }
  300. .chargeBox {
  301. border: 1px solid #000;
  302. }
  303. .chargeUl {
  304. display: flex;
  305. justify-content: space-between;
  306. text-align: center;
  307. }
  308. .chargeUl p {
  309. height: 40px;
  310. line-height: 40px;
  311. }
  312. .chargeP {
  313. height: 40px;
  314. line-height: 40px;
  315. }
  316. .moneyBox {
  317. display: flex;
  318. justify-content: space-between;
  319. padding: 0 10px;
  320. background: #eee;
  321. height: 40px;
  322. align-items: center;
  323. border: 1px solid #000;
  324. border-top: none
  325. }
  326. .actionBar {
  327. display: flex;
  328. justify-content: space-between;
  329. line-height: 24px;
  330. padding: 0 10px;
  331. }
  332. .actionBar div {
  333. width: 150px;
  334. }
  335. </style>