You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

177 lines
5.6 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div>
  3. <div style="display: flex">
  4. <el-table :data="dataTransOpts.tableM.register_asbitem" border
  5. :height="window.pageHeight < 600 ? 100 : Math.floor((window.pageHeight - 302) / 3)" size="small"
  6. highlight-current-row :summary-method="getSummaries" show-summary
  7. ref="patientRegister.patientRegisterAbs">
  8. <el-table-column label="序号" width="50" align="center">
  9. <template slot-scope="scope">
  10. <div><i v-if="scope.row.groupPackageId" class="el-icon-star-on" style="font-size: 16px;color: purple;"></i>{{ scope.$index + 1 }}</div>
  11. </template>
  12. </el-table-column>
  13. <el-table-column prop="asbitemName" label="已选组合项目" width="120" />
  14. <el-table-column prop="standardPrice" label="标准价" align="center" />
  15. <el-table-column prop="discount" label="折扣" align="center" />
  16. <el-table-column prop="amount" label="数量" width="50" align="center" />
  17. <el-table-column prop="chargePrice" label="价格" align="center" />
  18. <el-table-column prop="payTypeFlag" label="支付方式" align="center" >
  19. <template slot-scope="scope">
  20. <div>{{ dddw(dict.payType, "id", scope.row.payTypeFlag, "displayName") }}</div>
  21. </template>
  22. </el-table-column>
  23. <el-table-column prop="isCharge" label="收费" min-width="50" align="center">
  24. <template slot-scope="scope">
  25. <el-checkbox :value="scope.row.isCharge == 'Y'" align="center" />
  26. </template>
  27. </el-table-column>
  28. <el-table-column prop="checkCompleteFlag" label="状态" min-width="50" align="center" >
  29. <template slot-scope="scope">
  30. <div>
  31. {{
  32. dddw(
  33. dict.checkCompleteFlag,
  34. "id",
  35. scope.row.checkCompleteFlag,
  36. "displayName"
  37. )
  38. }}
  39. </div>
  40. </template>
  41. </el-table-column>
  42. <el-table-column prop="isLock" label="锁" min-width="50" align="center" >
  43. <template slot-scope="scope">
  44. <el-checkbox :value="scope.row.isLock == 'Y'" align="center" />
  45. </template>
  46. </el-table-column>
  47. <el-table-column prop="creatorName" label="登记人" min-width="70" align="center" />
  48. <el-table-column prop="creationTime" label="登记日期" min-width="90" align="center" >
  49. <template slot-scope="scope">
  50. <div>{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}</div>
  51. </template>
  52. </el-table-column>
  53. </el-table>
  54. </div>
  55. </div>
  56. </template>
  57. <script>
  58. import moment from "moment";
  59. import { mapState } from "vuex";
  60. import { dddw } from "../../utlis/proFunc";
  61. import { getapi, postapi, putapi, deletapi } from "../../api/api";
  62. export default {
  63. components: {},
  64. data() {
  65. return {};
  66. },
  67. created() {
  68. },
  69. updated(){
  70. this.$nextTick(() => {
  71. this.$refs['patientRegister.patientRegisterAbs'].doLayout()
  72. })
  73. },
  74. //挂载完成
  75. mounted() { },
  76. computed: {
  77. ...mapState(["window", "dataTransOpts", "dict", "patientRegister"]),
  78. },
  79. methods: {
  80. dddw,moment,
  81. // 刷新登记的项目
  82. retrieveRegister_asbitem(id){
  83. if(!id){
  84. this.dataTransOpts.tableM.register_asbitem = []
  85. return
  86. }
  87. getapi(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`)
  88. .then(res => {
  89. console.log(`/api/app/registerasbitem/getlistinpatientregisterid?PatientRegisterId=${id}`, res)
  90. if (res.code != -1) {
  91. res.data.forEach(e => {
  92. e.standTotal = e.amount * e.standardPrice
  93. e.total = e.amount * e.chargePrice
  94. });
  95. this.dataTransOpts.tableM.register_asbitem = res.data
  96. }
  97. })
  98. },
  99. // :row-class-name="tableRowClassName"
  100. // tableRowClassName({ row, rowIndex }) {
  101. // //console.log(row)
  102. // if (row.groupPackageId) {
  103. // //console.log('row.groupPackageId',row.groupPackageId)
  104. // return 'purple-row'; //分组或套餐
  105. // } else {
  106. // return '';
  107. // }
  108. // },
  109. //自定义计算列
  110. getSummaries(param) {
  111. const { columns, data } = param;
  112. const sumCol = [2, 5]; //需合计的列
  113. const sums = [];
  114. columns.forEach((column, index) => {
  115. //显示合计列
  116. if (index === 1) {
  117. sums[index] = "合计";
  118. return;
  119. }
  120. //不合计的列
  121. if (sumCol.indexOf(index) == -1) {
  122. sums[index] = "";
  123. return;
  124. }
  125. const values = data.map((item) => Number(item[column.property]));
  126. if (!values.every((value) => isNaN(value))) {
  127. sums[index] = values.reduce((prev, curr) => {
  128. const value = Number(curr);
  129. if (!isNaN(value)) {
  130. return prev + curr;
  131. } else {
  132. return prev;
  133. }
  134. }, 0);
  135. sums[index] = Math.round(sums[index], 2);
  136. sums[index] += " 元";
  137. } else {
  138. sums[index] = "N/A";
  139. }
  140. });
  141. return sums;
  142. },
  143. },
  144. //监听事件
  145. watch: {
  146. //人员ID未切换换时 也可以强制刷新数据
  147. "dataTransOpts.refresh.register_asbitem.M":{
  148. immediate:true,
  149. handler(newVal, oldVal) {
  150. console.log(`watch 人员登记 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`);
  151. this.retrieveRegister_asbitem(this.dataTransOpts.tableS.patient_register.id)
  152. }
  153. },
  154. }
  155. };
  156. </script>
  157. <style scoped>
  158. @import "../../assets/css/global.css";
  159. .box {
  160. display: flex;
  161. }
  162. </style>