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

printTwo.vue 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <template>
  2. <div id="statement-print" class="statement-print">
  3. <div class="statementTitle" style="margin-top:20px;" >医保费用明细清单</div>
  4. <!--<div class="statementTitle" style="margin-top:20px;" v-if="info.insutype == '390'">医保费用明细清单</div>-->
  5. <div style="display:flex">
  6. <div style="width:70%">医疗机构名称:{{info.fixmedins_name}}</div>
  7. <div style="width:30%" v-if="info.hosp_lv == '1'">医院等级:三级特等</div>
  8. <div style="width:30%" v-if="info.hosp_lv == '2'">医院等级:三级甲等</div>
  9. <div style="width:30%" v-if="info.hosp_lv == '3'">医院等级:三级乙等</div>
  10. <div style="width:30%" v-if="info.hosp_lv == '4'">医院等级:三级丙等</div>
  11. <div style="width:30%" v-if="info.hosp_lv == '5'">医院等级:二级甲等</div>
  12. <div style="width:30%" v-if="info.hosp_lv == '6'">医院等级:二级乙等</div>
  13. <div style="width:30%" v-if="info.hosp_lv == '7'">医院等级:二级丙等</div>
  14. <div style="width:30%" v-if="info.hosp_lv == '8'">医院等级:一级甲等</div>
  15. <div style="width:30%" v-if="info.hosp_lv == '9'">医院等级:一级乙等</div>
  16. <div style="width:30%" v-if="info.hosp_lv == '10'">医院等级:一级丙等</div>
  17. <div style="width:30%" v-if="info.hosp_lv == '11'">医院等级:无等级</div>
  18. </div>
  19. <div style="display:flex;justify-content: space-between;border-bottom:1px solid #000;padding-bottom:10px;">
  20. <div style="flex:1;">单据编码:{{order_infos.number}}</div>
  21. <div style="width:33%">就诊时间:{{getTime(order_infos.date)}}</div>
  22. <div>金额单位:元</div>
  23. </div>
  24. <div style="display:flex">
  25. <div style="width:50%">姓名:{{info.psn_name}}</div>
  26. <div style="width:50%">个人电脑号:{{info.psn_no}}</div>
  27. </div>
  28. <div style="display:flex">
  29. <div style="width:50%">社保卡号</div>
  30. <div style="width:50%">诊断:慢性肾脏病5期</div>
  31. </div>
  32. <div style="display:flex">
  33. <div style="width:50%" v-if="info.psn_type == '11'">人员类别:在职</div>
  34. <div style="width:50%" v-if="info.psn_type == '1101'">人员类别:职工在职</div>
  35. <div style="width:50%" v-if="info.psn_type == '1102'">人员类别:公务员在职</div>
  36. <div style="width:50%" v-if="info.psn_type == '1103'">人员类别:灵活就业人员在职</div>
  37. <div style="width:50%" v-if="info.psn_type == '1160'">人员类别:地方其他扩展人员</div>
  38. <div style="width:50%" v-if="info.psn_type == '12'">人员类别:退休人员</div>
  39. <div style="width:50%" v-if="info.psn_type == '1201'">人员类别:职工退休</div>
  40. <div style="width:50%" v-if="info.psn_type == '1202'">人员类别:公务员退休</div>
  41. <div style="width:50%" v-if="info.psn_type == '1203'">人员类别:灵活就业人员退休</div>
  42. <div style="width:50%" v-if="info.psn_type == '1260'">人员类别:地方其他扩展人员</div>
  43. <div style="width:50%" v-if="info.psn_type == '13'">人员类别:离休</div>
  44. <div style="width:50%" v-if="info.psn_type == '1300'">人员类别:离休人员</div>
  45. <div style="width:50%" v-if="info.psn_type == '1360'">人员类别:地方其他扩展人员</div>
  46. <div style="width:50%" v-if="info.psn_type == '14'">人员类别:居民(未成年)</div>
  47. <div style="width:50%" v-if="info.psn_type == '1401'">人员类别:新生儿</div>
  48. <div style="width:50%" v-if="info.psn_type == '1402'">人员类别:学龄前儿童</div>
  49. <div style="width:50%" v-if="info.psn_type == '1403'">人员类别:中小学生</div>
  50. <div style="width:50%" v-if="info.psn_type == '1404'">人员类别:大学生</div>
  51. <div style="width:50%" v-if="info.psn_type == '1405'">人员类别:未成年(未入学)</div>
  52. <div style="width:50%" v-if="info.psn_type == '15'">人员类别:居民(成年)</div>
  53. <div style="width:50%" v-if="info.psn_type == '1501'">人员类别:普通居民(成年)</div>
  54. <div style="width:50%" v-if="info.psn_type == '1560'">人员类别:地方其他扩展身份</div>
  55. <div style="width:50%" v-if="info.psn_type == '16'">人员类别:居民(老年)</div>
  56. <div style="width:50%">待遇类别:</div>
  57. </div>
  58. <div style="display:flex;padding:10px 0;border-top:1px solid #000;border-bottom:1px solid #000;">
  59. <div style="width:20%;text-align:center;">医保编码</div>
  60. <div style="width:20%;text-align:center;">项目名称</div>
  61. <div style="width:10%;text-align:center;">单价</div>
  62. <div style="width:10%;text-align:center;">数量</div>
  63. <div style="width:10%;text-align:center;">金额</div>
  64. <div style="width:10%;text-align:center;">先行自付金额</div>
  65. <div style="width:10%;text-align:center;">自费</div>
  66. <div style="width:10%;text-align:center;">自费比例</div>
  67. </div>
  68. <div v-for="(newItem,index) in Object.keys(obj)" :key="index">
  69. <div v-if="Object.values(obj)[index].length > 0" style="border-bottom:1px solid #000;padding:10px 0;">
  70. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type01'">床位费<span>小记:{{ price01 }}</span></span>
  71. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type03'">检查费<span>小记:{{ price03 }}</span></span>
  72. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type04'">化验费<span>小记:{{ price04 }}</span></span>
  73. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type05'">治疗费<span>小记:{{ price05 }}</span></span>
  74. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type06'">手术费<span>小记:{{ price06 }}</span></span>
  75. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type08'">材料费<span>小记:{{ price08 }}</span></span>
  76. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type09'">西药费<span>小记:{{ price09 }}</span></span>
  77. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type11'">中成费<span>小记:{{ price11 }}</span></span>
  78. <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type14'">其他费<span>小记:{{ price14 }}</span></span>
  79. </div>
  80. <div>
  81. <div v-if="Object.values(obj)[index].length > 0" v-for="(item,itemIndex) in Object.values(obj)[index]" :key="itemIndex" style="border-bottom:1px solid #000;padding:10px 0;display:flex;" >
  82. <div style="width:20%;text-align:center;" v-if="item.advice_id > 0">{{ item.advice.drug.medical_insurance_number }}</div>
  83. <div style="width:20%;text-align:center;" v-if="item.project_id > 0">{{item.project.type == 2?item.project.project.medical_code: item.project.good_info.medical_insurance_number}}</div>
  84. <div style="width:20%;text-align:center;" v-if="item.advice_id > 0">{{item.advice.drug.drug_name}}</div>
  85. <div style="width:20%;text-align:center;" v-if="item.project_id > 0">{{item.project.type == 2?item.project.project.project_name:item.project.good_info.good_name}}</div>
  86. <div style="width:10%;text-align:center;">{{item.pric}}</div>
  87. <div style="width:10%;text-align:center;">{{item.cnt}}</div>
  88. <div style="width:10%;text-align:center;">{{item.det_item_fee_sumamt}}</div>
  89. <div style="width:10%;text-align:center;">{{item.preselfpay_amt}}</div>
  90. <div style="width:10%;text-align:center;">{{item.fulamt_ownpay_amt}}</div>
  91. <div style="width:10%;text-align:center;">{{item.selfpay_prop}}</div>
  92. </div>
  93. </div>
  94. </div>
  95. <div style="display:flex;border-bottom:1px solid #000;padding:20px 0 10px;">
  96. <div style="width:70%;">合计:</div>
  97. <div style="width:10%;text-align:center;">{{info.medfee_sumamt}}</div>
  98. <div style="width:20%;"></div>
  99. </div>
  100. <div>医保基金支付金额:{{info.fund_pay_sumamt?info.fund_pay_sumamt:''}}</div>
  101. <div>个人现金支付金额:{{info.psn_pay?info.psn_pay:''}}</div>
  102. <div>其中</div>
  103. <div style="display:flex;border-bottom:1px solid #000;padding-bottom:10px;">
  104. <div>个人自付:</div>
  105. <div>其中:1.乙类自付 {{info.preselfpay_amt?info.preselfpay_amt:''}}</div>
  106. <div style="margin-left:20px;">2.自费 {{info.overlmt_selfpay?info.overlmt_selfpay:''}}</div>
  107. </div>
  108. <div style="display:flex;padding-top:10px;">
  109. <div style="width:33%">参保人签名:</div>
  110. <div style="width:33%">审核人:</div>
  111. <div style="width:33%">医院盖章:</div>
  112. </div>
  113. </div>
  114. <!-- <div>
  115. 123
  116. <div v-for='(item,index) in Object.values(obj)' :key="index">
  117. <div>{{Object.keys(obj)[index]}}</div>
  118. <div v-for="it in Object.values(obj)[index]">{{ it.name }}</div>
  119. </div>
  120. </div> -->
  121. </template>
  122. <script>
  123. import {uParseTime} from '@/utils/tools'
  124. export default {
  125. props: {
  126. info: {
  127. type: Object,
  128. default: function () {
  129. return {}
  130. }
  131. },
  132. order_infos: {
  133. type: Object,
  134. default: function () {
  135. return {}
  136. }
  137. },
  138. p_admin: {
  139. type: Object,
  140. default: function () {
  141. return {}
  142. }
  143. }, charge_admin: {
  144. type: Object,
  145. default: function () {
  146. return {}
  147. }
  148. }
  149. },
  150. data(){
  151. return{
  152. obj:{},
  153. price01: 0,
  154. price03: 0,
  155. price04: 0,
  156. price05: 0,
  157. price06: 0,
  158. price08: 0,
  159. price09: 0,
  160. price11: 0,
  161. price14: 0,
  162. }
  163. },
  164. created(){
  165. // let obj = {
  166. // med_chrgitm_type01:[{name:1,age:2},{name:'张三',age:41}],
  167. // med_chrgitm_type03:[{name:3,age:4}],
  168. // med_chrgitm_type04:[{name:5,age:6}],
  169. // }
  170. // this.obj = obj
  171. // console.log(1111,Object.values(obj))
  172. // obj.map(item => {
  173. // console.log(111,item)
  174. // })
  175. },
  176. methods: {
  177. getTime(val) {
  178. if (val < 0) {
  179. return ""
  180. }
  181. if (val == "") {
  182. return ""
  183. } else {
  184. return uParseTime(val, '{y}-{m}-{d}')
  185. }
  186. },
  187. getNowTime: function () {
  188. let dateTime
  189. let yy = new Date().getFullYear()
  190. let mm = new Date().getMonth() + 1
  191. let dd = new Date().getDate()
  192. let hh = new Date().getHours()
  193. let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
  194. :
  195. new Date().getMinutes()
  196. let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
  197. :
  198. new Date().getSeconds()
  199. dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss
  200. return dateTime
  201. },
  202. },
  203. watch:{
  204. "order_infos.order_infos":{
  205. handler(newVal){
  206. let obj = {
  207. 'med_chrgitm_type01':[],
  208. 'med_chrgitm_type03':[],
  209. 'med_chrgitm_type04':[],
  210. 'med_chrgitm_type05':[],
  211. 'med_chrgitm_type06':[],
  212. 'med_chrgitm_type08':[],
  213. 'med_chrgitm_type09':[],
  214. 'med_chrgitm_type11':[],
  215. 'med_chrgitm_type14':[],
  216. }
  217. newVal.map(item => {
  218. if(item.med_chrgitm_type == '01'){
  219. obj.med_chrgitm_type01.push(item)
  220. this.price01 += item.det_item_fee_sumamt
  221. }else if(item.med_chrgitm_type == '03'){
  222. obj.med_chrgitm_type03.push(item)
  223. this.price03 += item.det_item_fee_sumamt
  224. }else if(item.med_chrgitm_type == '04'){
  225. obj.med_chrgitm_type04.push(item)
  226. this.price04 += item.det_item_fee_sumamt
  227. }else if(item.med_chrgitm_type == '05'){
  228. obj.med_chrgitm_type05.push(item)
  229. this.price05 += item.det_item_fee_sumamt
  230. }else if(item.med_chrgitm_type == '06'){
  231. obj.med_chrgitm_type06.push(item)
  232. this.price06 += item.det_item_fee_sumamt
  233. }else if(item.med_chrgitm_type == '08'){
  234. obj.med_chrgitm_type08.push(item)
  235. this.price08 += item.det_item_fee_sumamt
  236. }else if(item.med_chrgitm_type == '09'){
  237. obj.med_chrgitm_type09.push(item)
  238. this.price09 += item.det_item_fee_sumamt
  239. }else if(item.med_chrgitm_type == '11'){
  240. obj.med_chrgitm_type11.push(item)
  241. this.price11 += item.det_item_fee_sumamt
  242. }else if(item.med_chrgitm_type == '14' || item.med_chrgitm_type == '02' ){
  243. obj.med_chrgitm_type14.push(item)
  244. this.price14 += item.det_item_fee_sumamt
  245. }
  246. })
  247. this.obj = obj
  248. console.log('this.obj',this.obj)
  249. },
  250. deep:true
  251. }
  252. }
  253. }
  254. </script>
  255. <style lang="scss" scoped>
  256. #statement-print{
  257. width: 800px;
  258. margin: 0 auto;
  259. }
  260. .statement-print {
  261. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
  262. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  263. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  264. margin-bottom: 20px;
  265. padding: 20px 10px;
  266. }
  267. .statementTitle {
  268. font-size: 22px;
  269. text-align: center;
  270. margin-bottom: 10px;
  271. }
  272. .statementTable {
  273. width: 100%;
  274. text-align: center;
  275. border-collapse: collapse;
  276. line-height: 40px;
  277. font-size: 14px;
  278. border-color: #000;
  279. }
  280. </style>