index.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. import { querySingle, bindMedicCard, patientDelete } from './service';
  2. import { getMyCardInfo } from '../personal-center-head/service.js';
  3. import history from '../../utils/history';
  4. import { createSubscribe } from 'applet-page-component';
  5. Component(createSubscribe({
  6. onShow() {
  7. this.init();
  8. }
  9. })({
  10. props: {},
  11. data: {
  12. patient: {
  13. balance: 0,
  14. id: '',
  15. name: '',
  16. age: '',
  17. sex: '',
  18. phoneNumber: '',
  19. birthDay: '',
  20. idCardNo: '',
  21. relationShip: '',
  22. bindCardNum: '',
  23. medicCards: []
  24. },
  25. modalOpened: false,
  26. buttons: [{
  27. text: '取消'
  28. }, {
  29. text: '删除',
  30. extClass: 'buttonBold'
  31. }]
  32. },
  33. didMount() {
  34. this.init();
  35. },
  36. methods: {
  37. async init() {
  38. const {
  39. query = {
  40. id: ''
  41. }
  42. } = this.$page.data;
  43. this.setData({
  44. patient: { ...this.data.patient,
  45. medicCards: []
  46. }
  47. });
  48. if (query.id) {
  49. this.querySingle(query.id);
  50. } else {
  51. const info = await this.getMyCardInfo();
  52. this.querySingle(info.patientId);
  53. }
  54. },
  55. querySingle(id) {
  56. my.showLoading();
  57. querySingle({
  58. id
  59. }).then(data => {
  60. let bind = data.medicCards.findIndex(m => m.cardNum === data.bindCardNum);
  61. bind = Math.max(bind, 0);
  62. data.medicCards.forEach((m, i) => {
  63. m.expand = i === bind;
  64. m.checked = m.cardNum === data.bindCardNum;
  65. });
  66. this.setData({
  67. patient: data
  68. });
  69. my.hideLoading();
  70. });
  71. },
  72. getMyCardInfo() {
  73. return getMyCardInfo();
  74. },
  75. openModal() {
  76. this.setData({
  77. modalOpened: true
  78. });
  79. },
  80. onButtonClick(e) {
  81. this.setData({
  82. modalOpened: false
  83. });
  84. if (e.target.dataset.index === 1) {
  85. patientDelete({
  86. id: this.data.patient.id
  87. }).then(() => {
  88. my.navigateBack();
  89. });
  90. }
  91. },
  92. onChange(e) {
  93. my.showLoading();
  94. this.setData({
  95. patient: { ...this.data.patient,
  96. bindCardNum: e.target.dataset.val
  97. }
  98. });
  99. bindMedicCard({
  100. id: this.data.patient.id,
  101. bindCardNum: e.target.dataset.val
  102. }).then(() => {
  103. this.init();
  104. my.hideLoading();
  105. });
  106. },
  107. // 编辑就诊人
  108. onEdit() {
  109. const {
  110. query = {
  111. id: ''
  112. }
  113. } = this.$page.data;
  114. history.push({
  115. query: {
  116. id: query.id
  117. },
  118. title: '编辑就诊人',
  119. pageType: 'patient-detail-edit'
  120. });
  121. },
  122. // 充值
  123. onPayment(e) {
  124. const {
  125. id,
  126. cardNum
  127. } = e.target.dataset;
  128. history.push({
  129. query: {
  130. id,
  131. cardNum
  132. },
  133. title: '充值',
  134. pageType: 'hospital-recharge'
  135. });
  136. }
  137. }
  138. }));