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

printTwo.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. <template>
  2. <div>
  3. <div id='prescription-print' class="prescription-print">
  4. <img style="width:100%;" src="../../../assets/img/bailinTop.jpg" alt="">
  5. <div class="printTitle">门诊收费清单</div>
  6. <div style="display:flex;">
  7. <div>单据号:<span style="display:inline-block;width:200px;">{{info.order_number}}</span></div>
  8. <div>透析号:<span style="display:inline-block;width:200px;">{{info.dialysis_no}}</span></div>
  9. </div>
  10. <div style="display:flex;">
  11. <div>姓名:<span style="display:inline-block;width:50px;">{{info.patient_name}}</span></div>
  12. <div>性别:<span style="display:inline-block;width:30px;">{{info.patient_info.transBody.aac004 == '1' ? '男' : '女'}}</span></div>
  13. <div>年龄:<span style="display:inline-block;width:50px;">{{info.patient_info.transBody.bae093}}岁</span></div>
  14. <div>费别:<span style="display:inline-block;width:80px;">{{getName(info.patient_info.transBody.outputlist1)}}</span>
  15. </div>
  16. <div>电脑号:<span style="display:inline-block;width:80px;">{{info.patient_info.transBody.aac999}}</span></div>
  17. <div>收费日期:<span style="display:inline-block;width:80px;">{{info.record_date}}</span></div>
  18. <div style="float:right">金额单位:元</div>
  19. </div>
  20. <table border='1' style="width:100%;" cellspacing="0">
  21. <tr>
  22. <td width="70">类别</td>
  23. <td>项目</td>
  24. <td width="80">规格</td>
  25. <td width="50">单位</td>
  26. <td width="50">数量</td>
  27. <td width="60">单价</td>
  28. <td width="70">总额</td>
  29. <td width="100">小计</td>
  30. </tr>
  31. <div v-for="(item,i) in info.new_detail_list" :key="i" style="width:100%;display: table-row-group;">
  32. <tr v-for="(subItem,index) in item.details" :key="index">
  33. <td>{{ getItemName(subItem.aka111) }}</td>
  34. <td>{{subItem.ake006}}</td>
  35. <td>{{subItem.aka074}}</td>
  36. <td>{{subItem.aka067}}</td>
  37. <td>{{subItem.akc226}}</td>
  38. <td>{{subItem.akc225}}</td>
  39. <td>{{ subItem.akc264}}</td>
  40. <td :colspan="item.details.length" v-if="index == 0">{{ item.total }}</td>
  41. </tr>
  42. </div>
  43. <tr>
  44. <td colspan="7">
  45. <div style="display:flex;flez-wrap:wrap;">
  46. <div style="width:33%;" v-for="(item,index) in info.transBody.outputlist2" :key="index">{{getValue(item)}}</div>
  47. </div>
  48. </td>
  49. <td>合计: {{info.transBody.akc264?info.transBody.akc264:0}}元</td>
  50. </tr>
  51. <tr>
  52. <td colspan="7">
  53. <div style="display:flex;flez-wrap:wrap;">
  54. <div style="width:33%;">医疗费总额:{{info.transBody.akc264?info.transBody.akc264:0}}元</div>
  55. <div style="width:33%;">基金支付金额:{{info.transBody.akb068?info.transBody.akb068:0}}元</div>
  56. <div style="width:33%;">个人账户支付金额:{{info.transBody.akb066?info.transBody.akb066:0}}元</div>
  57. </div>
  58. <div style="display:flex;flez-wrap:wrap;">
  59. <div style="width:33%;">个人支付金额:{{info.transBody.akb067?info.transBody.akb067:0}}元</div>
  60. <div style="width:33%;">个人账户金额:{{info.after_money}}元</div>
  61. </div>
  62. </td>
  63. <td>合计:{{info.transBody.akc264?info.transBody.akc264:0}}元</td>
  64. </tr>
  65. </table>
  66. <div style="float:right;margin:10px 0;display:flex;">
  67. <div>操作人:<span style="width:100px;display:inline-block;">{{info.doctor_name}}</span></div>
  68. <div>操作日期:<span style="width:100px;display:inline-block;">{{info.record_date}}</span></div>
  69. </div>
  70. <img style="width:100%;" src="../../../assets/img/bailinBottom.jpg" alt="">
  71. </div>
  72. </div>
  73. </template>
  74. <script>
  75. import axios from 'axios'
  76. import { getChargePrint } from '@/api/project/project'
  77. export default {
  78. data() {
  79. return {
  80. list: {},
  81. prescription: [],
  82. patient: {},
  83. orgname: '',
  84. result: {},
  85. org_code: '',
  86. patient_name: '',
  87. doctor_code: '',
  88. doctor_name: '',
  89. name_arr: [],
  90. spec_arr: [],
  91. count_arr: [],
  92. price_arr: [],
  93. total_arr: [],
  94. }
  95. },
  96. props: {
  97. paramsObj: Object
  98. },
  99. methods: {
  100. getName(list) {
  101. let new_list = []
  102. for (let i = 0; i < list.length; i++) {
  103. if (list[i].aac031 == '1') {
  104. new_list.push(list[i])
  105. }
  106. }
  107. switch (new_list[0].bbc334) {
  108. case "A31001":
  109. return "深圳医保1档"
  110. break
  111. case "A31002":
  112. return "深圳医保2档"
  113. break
  114. case "A31003":
  115. return "深圳医保3档"
  116. break
  117. case "A31004":
  118. return "二档(少儿)"
  119. break
  120. case "A31005":
  121. return "学生二档"
  122. break
  123. case "A31006":
  124. return "大学生二档"
  125. break
  126. case "A32001":
  127. return "在职公务员"
  128. break
  129. case "A32002":
  130. return "在职驻深公务员"
  131. break
  132. case "A39301":
  133. return "家属统筹医疗"
  134. break
  135. case "A41001":
  136. return "工伤在职"
  137. break
  138. case "A51001":
  139. return "生育在职"
  140. break
  141. case "A52001":
  142. return "生育医疗一档"
  143. break
  144. case "A52002":
  145. return "生育医疗一档"
  146. break
  147. case "C31001":
  148. return "一档医疗退休"
  149. break
  150. case "C31002":
  151. return "二档医疗退休"
  152. break
  153. }
  154. },
  155. getValue(item) {
  156. return this.getItemName(item.aka111) + ': ' + item.bka058 + '元'
  157. },
  158. getItemName(number) {
  159. switch (number) {
  160. case '01':
  161. return '床位费'
  162. break
  163. case '02':
  164. return '西药费'
  165. break
  166. case '03':
  167. return '中药费'
  168. break
  169. case '04':
  170. return '中成药费'
  171. break
  172. case '05':
  173. return '中草药费'
  174. break
  175. case '06':
  176. return '检查费'
  177. break
  178. case '07':
  179. return '治疗费'
  180. break
  181. case '08':
  182. return '放射费'
  183. break
  184. case '09':
  185. return '手术费'
  186. break
  187. case '10':
  188. return '化验费'
  189. break
  190. case '11':
  191. return '输血费'
  192. break
  193. case '12':
  194. return '输氧费'
  195. break
  196. case '13':
  197. return '其它费'
  198. break
  199. case '14':
  200. return '麻醉费'
  201. break
  202. case '15':
  203. return '材料费'
  204. break
  205. case '16':
  206. return '特殊检查费'
  207. break
  208. case '17':
  209. return '特殊治疗费'
  210. break
  211. case '18':
  212. return '诊疗费(诊查费)'
  213. break
  214. case '19':
  215. return '护理费'
  216. break
  217. case '20':
  218. return '诊金'
  219. break
  220. case '21':
  221. return '检查费(CT)'
  222. break
  223. case '22':
  224. return '检查费(MRT)'
  225. break
  226. case '23':
  227. return '检查费(其他)'
  228. break
  229. case '24':
  230. return '特需服务费'
  231. break
  232. case '25':
  233. return '杂费'
  234. break
  235. case '26':
  236. return '挂号费'
  237. break
  238. }
  239. },
  240. getChargePrint(record_date, patient_id, prescription_id) {
  241. var params = {
  242. record_date: record_date,
  243. patient_id: patient_id,
  244. prescription_id: prescription_id
  245. }
  246. console.log('params', params)
  247. getChargePrint(params).then(response => {
  248. if (response.data.state == 1) {
  249. var list = response.data.data.list
  250. console.log('list9999999999', list)
  251. this.list = list
  252. var prescription = response.data.data.prescription
  253. console.log('prescription', prescription)
  254. this.prescription = prescription
  255. var patient = response.data.data.patient
  256. console.log('patient', patient)
  257. this.patient = patient
  258. var histpatient = response.data.data.hisPatient
  259. console.log('hispatient', histpatient)
  260. }
  261. })
  262. }
  263. },
  264. created() {
  265. 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) {
  266. this.orgname = xtuser.org.org_name
  267. var form = {
  268. 'order_id': this.paramsObj.order_id,
  269. 'patient_id': this.paramsObj.patient_id,
  270. 'record_time': this.paramsObj.record_date,
  271. 'admin_user_id': this.$store.getters.xt_user.user.id
  272. }
  273. var that = this
  274. axios.get('http://127.0.0.1:9532/sz/api/settle/query', {
  275. params: form
  276. })
  277. .then(function(response) {
  278. if (response.data.state == 0) {
  279. that.$message.error(response.data.msg)
  280. return false
  281. } else {
  282. if (response.data.data.failed_code == -10) {
  283. // that.$message.error(response.data.data.msg)
  284. that.$confirm(response.data.data.msg, '医保错误信息', {
  285. confirmButtonText: '确 定',
  286. type: 'warning'
  287. }).then(() => {
  288. }).catch(() => {
  289. })
  290. } else {
  291. that.result = response.data.data.result
  292. that.org_code = response.data.data.org_code
  293. that.patient_name = response.data.data.patient_name
  294. that.doctor_code = response.data.data.doctor_code
  295. that.doctor_name = response.data.data.doctor_name
  296. that.name_arr = []
  297. that.spec_arr = []
  298. that.count_arr = []
  299. that.price_arr = []
  300. that.total_arr = []
  301. for (let i = 0; i < that.result.transBody.outputlist1.length; i++) {
  302. that.name_arr.push(that.result.transBody.outputlist1[i].ake006)
  303. that.spec_arr.push(that.result.transBody.outputlist1[i].aka074)
  304. that.count_arr.push(that.result.transBody.outputlist1[i].akc226)
  305. that.price_arr.push(that.result.transBody.outputlist1[i].akc225)
  306. that.total_arr.push(that.result.transBody.outputlist1[i].akc264)
  307. }
  308. }
  309. }
  310. })
  311. .catch(function(error) {
  312. })
  313. } else {
  314. var record_date = this.paramsObj.record_date
  315. console.log('record_date', record_date)
  316. var patient_id = this.paramsObj.patient_id
  317. console.log('patient_id', patient_id)
  318. var prescription_id = this.paramsObj.prescription_id
  319. this.getChargePrint(record_date, patient_id, prescription_id)
  320. var xtuser = this.$store.getters.xt_user
  321. this.orgname = xtuser.org.org_name
  322. }
  323. },
  324. watch: {
  325. paramsObj: {//深度监听,可监听到对象、数组的变化
  326. handler(val, oldVal) {
  327. this.paramsObj = val
  328. this.patient_id = this.paramsObj.patient_id
  329. var record_date = this.paramsObj.record
  330. this.record_date = record_date
  331. var prescription_id = this.paramsObj.prescription_id
  332. this.prescription_id = prescription_id
  333. },
  334. deep: true
  335. }
  336. }
  337. }
  338. </script>
  339. <style lang="scss" scoped>
  340. .prescription-print {
  341. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
  342. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  343. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  344. margin-bottom: 20px;
  345. padding: 20px 10px;
  346. }
  347. .printTitle {
  348. font-size: 22px;
  349. text-align: center;
  350. font-weight: bold;
  351. }
  352. .infoMain {
  353. display: flex;
  354. flex-wrap: wrap;
  355. padding: 0 10px;
  356. margin-top: 10px;
  357. }
  358. .infoMain .infoP {
  359. width: 33%;
  360. line-height: 24px;
  361. }
  362. .chargeBox {
  363. border: 1px solid #000;
  364. }
  365. .chargeUl {
  366. display: flex;
  367. justify-content: space-between;
  368. text-align: center;
  369. }
  370. .chargeUl p {
  371. height: 40px;
  372. line-height: 40px;
  373. }
  374. .chargeP {
  375. height: 40px;
  376. line-height: 40px;
  377. }
  378. .moneyBox {
  379. display: flex;
  380. justify-content: space-between;
  381. padding: 0 10px;
  382. background: #eee;
  383. height: 40px;
  384. align-items: center;
  385. border: 1px solid #000;
  386. border-top: none
  387. }
  388. .actionBar {
  389. display: flex;
  390. justify-content: space-between;
  391. line-height: 24px;
  392. padding: 0 10px;
  393. }
  394. .actionBar div {
  395. width: 150px;
  396. }
  397. table {
  398. td {
  399. padding: 0 5px;
  400. }
  401. }
  402. </style>