index.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import { getCardList } from './service';
  2. import { CREATE_CARD_TYPE } from './common';
  3. import { industryEntry } from "../../../../core/utils";
  4. export function promisify(func) {
  5. return function wrapPromisify(args) {
  6. return new Promise(resolve => {
  7. func({ ...args,
  8. success(res) {
  9. resolve([null, res]);
  10. },
  11. fail(err) {
  12. resolve([err, null]);
  13. }
  14. });
  15. });
  16. };
  17. } // 查看pdf
  18. export function openPdf({
  19. url
  20. }) {
  21. my.showLoading();
  22. my.downloadFile({
  23. // 示例 url,并非真实存在
  24. url,
  25. success({
  26. apFilePath
  27. }) {
  28. my.openDocument({
  29. filePath: apFilePath,
  30. fileType: 'pdf'
  31. });
  32. },
  33. fail: () => {
  34. my.showToast({
  35. type: 'none',
  36. content: '查看失败'
  37. });
  38. },
  39. complete: () => {
  40. my.hideLoading();
  41. }
  42. });
  43. } // 替换 ***
  44. // str: 要替换的字符串
  45. // start: 前面保留几位
  46. // end: 后面保留几位
  47. export function replaceStar(str = '', start = 0, end = 0) {
  48. if (!str) {
  49. return '';
  50. }
  51. const len = str.length;
  52. if (len <= start + end) {
  53. return str;
  54. } // eslint-disable-next-line no-shadow
  55. return [...str].reduce((str, value, i) => i < start || i > len - end - 1 ? str + value : `${str}*`, '');
  56. } // 页面跳转,方便后面迁移
  57. export function navigateTo({
  58. url,
  59. ...other
  60. }) {
  61. my.navigateTo({
  62. url: `${industryEntry}/hospital${url}`,
  63. ...other
  64. });
  65. } // 字符串转对象
  66. export function mapToArray(obj) {
  67. let parseObj;
  68. try {
  69. parseObj = JSON.parse(obj);
  70. } catch (error) {
  71. parseObj = {};
  72. }
  73. return Object.keys(parseObj || {}).map(item => ({
  74. key: item,
  75. value: parseObj[item]
  76. }));
  77. } // 获取查询信息
  78. export async function getCardListRange() {
  79. const [, result] = await getCardList({
  80. type: 0,
  81. pageIndex: 1,
  82. pageSize: 100
  83. });
  84. if (result) {
  85. return result.list.map(item => ({
  86. id: item.cardNum,
  87. name: `${item.name}-${item.cardNum}`,
  88. isDefault: item.isDefault
  89. }));
  90. }
  91. return [];
  92. } // 跳转到创建就诊卡
  93. export const openCardForm = async item => {
  94. const [, bookingStep] = item.urlQuery.split('=');
  95. const [, pageUuid] = item.url.split(':');
  96. if (bookingStep === 'bindCard') {
  97. history.openPage({
  98. pageType: 'card-form',
  99. data: {
  100. type: CREATE_CARD_TYPE.BIND,
  101. btnText: '绑定就诊卡',
  102. back: true,
  103. pageUuid
  104. }
  105. });
  106. }
  107. if (bookingStep === 'createCard') {
  108. history.openPage({
  109. pageType: 'card-form',
  110. data: {
  111. type: CREATE_CARD_TYPE.CREATE,
  112. btnText: '创建电子就诊卡',
  113. back: true,
  114. pageUuid
  115. }
  116. });
  117. }
  118. }; // 页面跳转
  119. export const history = (() => {
  120. const storage = ({
  121. pageType,
  122. data
  123. }) => {
  124. if (!getApp().globalData.pageTemp) {
  125. getApp().globalData.pageTemp = {};
  126. }
  127. getApp().globalData.pageTemp[pageType] = data;
  128. };
  129. return {
  130. openPage({
  131. pageType,
  132. data
  133. }) {
  134. storage({
  135. pageType,
  136. data
  137. });
  138. navigateTo({
  139. url: `/pages/page-temp/index?pageType=${pageType}`
  140. });
  141. },
  142. replacePage({
  143. pageType,
  144. data
  145. }) {
  146. storage({
  147. pageType,
  148. data
  149. });
  150. my.redirectTo({
  151. url: `${industryEntry}/hospital/pages/page-temp/index?pageType=${pageType}`
  152. });
  153. }
  154. };
  155. })();