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

printTwo10265.vue 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <template>
  2. <div id="list-print" class="list-print">
  3. <div v-for="(i, index) in pageArr.length" :key="index">
  4. <div class="listTitle">{{$store.getters.xt_user.org.org_name}}费用清单</div>
  5. <!-- <div class="listTitle" :style="{position: 'absolute',top:(20 + (index * 160)) + 'px',left:200+ 'px',}">赤峰市肿瘤医院病人费用明细清单</div> -->
  6. <div class="listInfo">
  7. <div>病人ID:{{order.psn_no}}</div>
  8. <div>住院号:{{ order.mdtrt_id }}</div>
  9. <!-- <div>次数:</div>-->
  10. <div>姓名:{{ order.psn_name }}</div>
  11. <div>性别:{{ patient.gender == 1 ? "男" : "女" }}</div>
  12. </div>
  13. <div class="listInfo">
  14. <div>入院科室:血液透析室</div>
  15. <div>出院科室:血液透析室</div>
  16. <!-- <div>入院日期:{{hospital_record.in_hosptial_time.split(' ')[0]}}</div> -->
  17. <!-- <div>出院日期:{{hospital_record.out_hosptial_time.split(' ')[0]}}</div> -->
  18. <!-- <div>住院天数:{{getDay(hospital_record.in_hosptial_time.split(' ')[0] ,hospital_record.out_hosptial_time.split(' ')[0])}}</div> -->
  19. </div>
  20. <div
  21. class="listInfo"
  22. style="padding-bottom: 10px; border-bottom: 1px solid"
  23. >
  24. <div>出院诊断:尿毒症</div>
  25. <div>床位号:</div>
  26. <div v-if="order&&order.insutype == '390'">费别:城乡居民基本医疗保险</div>
  27. <div v-if="order&&order.insutype == '310'">费别:职工基本医疗保险</div>
  28. </div>
  29. <table
  30. class="listTable"
  31. border="1"
  32. frame="hsides"
  33. rules="none"
  34. v-for="item in list"
  35. cellspacing="0"
  36. >
  37. <tr style="border: 1px solid" >
  38. <td style="width: 19%">账单名称:{{item.med_chrgitm_name}}</td>
  39. <td style="width: 21%">费用名称</td>
  40. <td style="width: 14%">规格</td>
  41. <td style="width: 10%">类别</td>
  42. <td style="width: 10%">单价(元)</td>
  43. <td style="width: 6%">数量</td>
  44. <td style="width: 20%">金额(元)</td>
  45. </tr>
  46. <tr v-for="subItem in item.details">
  47. <td style="width: 19%;white-space: nowrap;">{{subItem.name}}</td>
  48. <td style="width: 21%;white-space: nowrap;"></td>
  49. <td style="width: 14%">{{ subItem.spec }}</td>
  50. <td style="width: 10%;white-space: nowrap;">{{ subItem.medicine_insurance_kind }}</td>
  51. <td style="width: 10%">{{ subItem.price.toFixed(2) }}</td>
  52. <td style="width: 6%;white-space: nowrap;">{{ subItem.count }}{{ subItem.unit }}</td>
  53. <td style="width: 20%">{{ (subItem.price * subItem.count).toFixed(2) }}</td>
  54. </tr>
  55. <tr>
  56. <td style="width: 20%;white-space: nowrap;">甲类:{{item.jiaTotal}}</td>
  57. <td style="width: 20%;white-space: nowrap;">乙类药品:{{item.yiTotal}}</td>
  58. <td style="width: 5%;white-space: nowrap;">非药品:{{0.00}}</td>
  59. <td style="width: 5%;white-space: nowrap;">丙类:{{item.bingTotal}}</td>
  60. <td style="width: 5%;white-space: nowrap;">其他:{{0.00}}</td>
  61. <td></td>
  62. <td style="width: 20%;white-space: nowrap;">小计:{{item.total}}</td>
  63. </tr>
  64. </table>
  65. <table
  66. class="listTable"
  67. border="1"
  68. frame="below"
  69. rules="none"
  70. cellspacing="0"
  71. >
  72. <tr>
  73. <td></td>
  74. <td></td>
  75. <td></td>
  76. <td></td>
  77. <td></td>
  78. <td></td>
  79. <td>总费用:{{order.medfee_sumamt}}</td>
  80. </tr>
  81. <tr>
  82. <td>报销类别费用合计</td>
  83. <td>甲类:{{getJaiTotal()}}</td>
  84. <td>乙类药品:{{getYiTotal()}}</td>
  85. <td>丙类:{{getBingTotal()}}</td>
  86. <td>非药品:0.00</td>
  87. <td></td>
  88. <td>其他:0.00</td>
  89. </tr>
  90. </table>
  91. <div class="tableBottom">
  92. <!-- <div class="tableBottomOne">制表人:{{ admin.user_name }}</div> -->
  93. <div class="tableBottomOne">制表日期:{{ getNowTime() }}</div>
  94. <!-- <div class="tableBottomOne">总费用:{{ order.medfee_sumamt }}元</div> -->
  95. </div>
  96. </div>
  97. </div>
  98. </template>
  99. <script>
  100. import { uParseTime } from "@/utils/tools";
  101. export default {
  102. props: {
  103. list: {
  104. type: Array,
  105. default: function () {
  106. return [];
  107. },
  108. },
  109. patient: {
  110. type: Object,
  111. default: function () {
  112. return {};
  113. },
  114. },hospital_record:{
  115. type: Object,
  116. default: function () {
  117. return {};
  118. },
  119. },
  120. order: {
  121. type: Object,
  122. default: function () {
  123. return {};
  124. },
  125. },
  126. admin: {
  127. type: Object,
  128. default: function () {
  129. return {};
  130. },
  131. },
  132. },
  133. data() {
  134. return {
  135. page: 1,
  136. pageArr: [],
  137. };
  138. },
  139. // mounted(){
  140. // this.getPage()
  141. // },
  142. methods: {
  143. getDay(dateString1,dateString2){
  144. var startDate = Date.parse(dateString1);
  145. var endDate = Date.parse(dateString2);
  146. if (startDate>endDate){
  147. return 0;
  148. }
  149. if (startDate==endDate){
  150. return 1;
  151. }
  152. var days=(endDate - startDate)/(1*24*60*60*1000);
  153. return days;
  154. },
  155. getJaiTotal(){
  156. var total = 0
  157. for(let i =0; i < this.list.length; i++){
  158. total = parseFloat(total) + parseFloat(this.list[i].jiaTotal)
  159. }
  160. return total.toFixed(2)
  161. }, getYiTotal(){
  162. var total = 0
  163. for(let i =0; i< this.list.length; i++){
  164. total = parseFloat(total) + parseFloat(this.list[i].yiTotal)
  165. }
  166. return total.toFixed(2)
  167. }, getBingTotal(){
  168. var total = 0
  169. for(let i =0; i < this.list.length; i++){
  170. total = parseFloat(total) + parseFloat(this.list[i].bingTotal)
  171. }
  172. return total.toFixed(2)
  173. },
  174. getNowTime: function () {
  175. let dateTime;
  176. let yy = new Date().getFullYear();
  177. let mm = new Date().getMonth() + 1;
  178. let dd = new Date().getDate();
  179. let hh = new Date().getHours();
  180. let mf =
  181. new Date().getMinutes() < 10
  182. ? "0" + new Date().getMinutes()
  183. : new Date().getMinutes();
  184. let ss =
  185. new Date().getSeconds() < 10
  186. ? "0" + new Date().getSeconds()
  187. : new Date().getSeconds();
  188. dateTime = yy + "-" + mm + "-" + dd + " " + hh + ":" + mf + ":" + ss;
  189. return dateTime;
  190. },
  191. getTimes(time) {
  192. return uParseTime(time, "{y}-{m}-{d}");
  193. },
  194. getPage() {
  195. if (this.list.length <= 13) {
  196. this.page = 1;
  197. this.pageArr.push(this.list.length);
  198. } else if (this.list.length > 13) {
  199. this.page = parseInt(this.list.length / 13);
  200. let num = this.list.length % 13;
  201. for (var i = 0; i < this.page; i++) {
  202. this.pageArr.push(13);
  203. }
  204. if (num != 0) {
  205. this.pageArr.push(num);
  206. }
  207. }
  208. console.log(this.pageArr,'this.pageArr')
  209. },
  210. },
  211. watch: {
  212. list: {
  213. handler(newVal) {
  214. this.getPage();
  215. },
  216. deep: true,
  217. },
  218. },
  219. };
  220. </script>
  221. <style lang="scss" scoped>
  222. .list-print {
  223. -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
  224. 0 0 60px rgba(0, 0, 0, 0.06) inset;
  225. -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
  226. 0 0 40px rgba(0, 0, 0, 0.06) inset;
  227. box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
  228. margin-bottom: 20px;
  229. padding: 20px 10px;
  230. }
  231. .listTitle {
  232. font-size: 24px;
  233. text-align: center;
  234. font-weight: bold;
  235. margin-bottom: 10px;
  236. }
  237. .listInfo {
  238. display: flex;
  239. font-size: 16px;
  240. justify-content: space-between;
  241. margin: 10px 0;
  242. }
  243. .listTable {
  244. width: 100%;
  245. text-align: center;
  246. border-collapse: collapse;
  247. line-height: 40px;
  248. font-size: 14px;
  249. border-color: #000;
  250. text-align: left;
  251. }
  252. .listTable tr td {
  253. padding: 0 5px;
  254. }
  255. .tableBottom {
  256. font-size: 16px;
  257. display: flex;
  258. margin-top: 20px;
  259. }
  260. .tableBottomOne {
  261. margin-right: 40px;
  262. }
  263. </style>