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

printOne.vue 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. <template>
  2. <div>
  3. <div id='prescription-print' class="prescription-print">
  4. <div v-for='(i,index) in pageArr.length'>
  5. <div class="printTitle">&nbsp血液透析中心医药费收据及收费项目清单</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.transBody.akc190}}</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">医疗类别:{{info.yiliao_leibie}}</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-for="(item,index) in info.transBody.outputlist2" :key="index">
  34. <p style="width:50%;">{{getItemName(item.aka111)}}</p>
  35. <p style="width:50%;">{{item.bka058?item.bka058:0}}元</p>
  36. </div>
  37. <div class="chargeUl" style="border-top:1px solid #000;">
  38. <p style="width:50%;">费用合计</p>
  39. <p style="width:50%;">{{info.transBody.akc264?info.transBody.akc264:0}}元</p>
  40. </div>
  41. <div class="chargeUl" style="border-top:1px solid #000;">
  42. <p style="width:50%;">记账支付</p>
  43. <p style="width:50%;">{{info.transBody.akb068?info.transBody.akb068:0}}元</p>
  44. </div>
  45. <div class="chargeUl" style="border-top:1px solid #000;">
  46. <p style="width:50%;">个人账号</p>
  47. <p style="width:50%;">{{info.transBody.akc266?info.transBody.akc266:0}}元</p>
  48. </div>
  49. <div class="chargeUl" style="border-top:1px solid #000;border-bottom:1px solid #000;">
  50. <p style="width:50%;">现金支付</p>
  51. <p style="width:50%;">{{info.transBody.akb067?info.transBody.akb067:0}}元</p>
  52. </div>
  53. </div>
  54. <div style="width:80%;display:flex;max-height:500px;">
  55. <div style="border-left:1px solid #000;border-right:1px solid #000;width:40%;text-align:center;">
  56. <p v-for="(item,i) in info.name_arr.slice(index * 13,(index * 13) + pageArr[index])" :key="i" class="chargeP">
  57. {{item}}</p>
  58. </div>
  59. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  60. <p v-for="(item,y) in info.spec_arr.slice(index * 13,(index * 13) + pageArr[index])" :key="y" class="chargeP">
  61. {{item}}</p>
  62. </div>
  63. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  64. <p v-for="(item,z) in info.count_arr.slice(index * 13,(index * 13) + pageArr[index])" :key="z" class="chargeP">
  65. {{item}}次</p>
  66. </div>
  67. <div style="border-right:1px solid #000;width:15%;text-align:center;">
  68. <p v-for="(item,f) in info.price_arr.slice(index * 13,(index * 13) + pageArr[index])" :key="f" class="chargeP">{{item}}元</p>
  69. </div>
  70. <div style="width:15%;text-align:center;">
  71. <p v-for="(item,d) in info.total_arr.slice(index * 13,(index * 13) + pageArr[index])" :key="d" class="chargeP">{{item}}元</p>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="moneyBox">
  77. <p>实收金:{{info.transBody.akc264}}元</p>
  78. <p>记账前金额:{{0.00}}元</p>
  79. <p>扣款金额:{{0.00}}元</p>
  80. <p>记账后金额:{{0.00}}元</p>
  81. <p>找赎金:{{0.00}}元</p>
  82. </div>
  83. <div class="actionBar">
  84. <div>收费员:{{info.doctor_name}}</div>
  85. <div>日期:{{info.record_date}}</div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. </template>
  91. <script>
  92. import axios from 'axios'
  93. import { getChargePrint } from '@/api/project/project'
  94. export default {
  95. data() {
  96. return {
  97. list: {},
  98. prescription: [],
  99. patient: {},
  100. orgname: '',
  101. result: {},
  102. org_code: '',
  103. patient_name: '',
  104. doctor_code: '',
  105. doctor_name: '',
  106. name_arr: [],
  107. spec_arr: [],
  108. count_arr: [],
  109. price_arr: [],
  110. total_arr: [],
  111. page:1,
  112. pageArr:[],
  113. }
  114. },
  115. props: {
  116. info: Object
  117. },
  118. methods: {
  119. getItemName(number) {
  120. switch (number) {
  121. case '01':
  122. return '床位费'
  123. break
  124. case '02':
  125. return '西药费'
  126. break
  127. case '03':
  128. return '中药费'
  129. break
  130. case '04':
  131. return '中成药费'
  132. break
  133. case '05':
  134. return '中草药费'
  135. break
  136. case '06':
  137. return '检查费'
  138. break
  139. case '07':
  140. return '治疗费'
  141. break
  142. case '08':
  143. return '放射费'
  144. break
  145. case '09':
  146. return '手术费'
  147. break
  148. case '10':
  149. return '化验费'
  150. break
  151. case '11':
  152. return '输血费'
  153. break
  154. case '12':
  155. return '输氧费'
  156. break
  157. case '13':
  158. return '其它费'
  159. break
  160. case '14':
  161. return '麻醉费'
  162. break
  163. case '15':
  164. return '材料费'
  165. break
  166. case '16':
  167. return '特殊检查费'
  168. break
  169. case '17':
  170. return '特殊治疗费'
  171. break
  172. case '18':
  173. return '诊疗费(诊查费)'
  174. break
  175. case '19':
  176. return '护理费'
  177. break
  178. case '20':
  179. return '诊金'
  180. break
  181. case '21':
  182. return '检查费(CT)'
  183. break
  184. case '22':
  185. return '检查费(MRT)'
  186. break
  187. case '23':
  188. return '检查费(其他)'
  189. break
  190. case '24':
  191. return '特需服务费'
  192. break
  193. case '25':
  194. return '杂费'
  195. break
  196. case '26':
  197. return '挂号费'
  198. break
  199. }
  200. },
  201. getPage(){
  202. if(this.info.name_arr.length <= 13){
  203. this.page = 1
  204. this.pageArr.push(this.info.name_arr.length)
  205. }else if(this.info.name_arr.length > 13){
  206. this.page = parseInt(this.info.name_arr.length / 13)
  207. let num = this.info.name_arr.length % 13
  208. for (var i=0;i<this.page;i++){
  209. this.pageArr.push(13)
  210. }
  211. if(num != 0){
  212. this.pageArr.push(num)
  213. }
  214. }
  215. }
  216. },
  217. created() {
  218. },
  219. watch:{
  220. info: {
  221. handler(newVal) {
  222. this.getPage()
  223. },
  224. deep: true
  225. }
  226. }
  227. }
  228. </script>
  229. <style lang="scss" scoped>
  230. .prescription-print {
  231. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
  232. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  233. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  234. margin-bottom: 20px;
  235. padding: 20px 10px;
  236. }
  237. .printTitle {
  238. font-size: 22px;
  239. text-align: center;
  240. font-weight: bold;
  241. }
  242. .infoMain {
  243. display: flex;
  244. flex-wrap: wrap;
  245. padding: 0 10px;
  246. margin-top: 10px;
  247. }
  248. .infoMain .infoP {
  249. width: 33%;
  250. line-height: 24px;
  251. }
  252. .chargeBox {
  253. border: 1px solid #000;
  254. }
  255. .chargeUl {
  256. display: flex;
  257. justify-content: space-between;
  258. text-align: center;
  259. }
  260. .chargeUl p {
  261. height: 40px;
  262. line-height: 40px;
  263. }
  264. .chargeP {
  265. height: 40px;
  266. line-height: 40px;
  267. }
  268. .moneyBox {
  269. display: flex;
  270. justify-content: space-between;
  271. padding: 0 10px;
  272. background: #eee;
  273. height: 40px;
  274. align-items: center;
  275. border: 1px solid #000;
  276. border-top: none
  277. }
  278. .actionBar {
  279. display: flex;
  280. justify-content: space-between;
  281. line-height: 24px;
  282. padding: 0 10px;
  283. }
  284. .actionBar div {
  285. width: 150px;
  286. }
  287. </style>