index.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. import router from "../router";
  2. import { wecomTicket } from "../api/indexAI";
  3. declare let wx: any;
  4. export const dateFormat = (fmt: string, x: Date | string) => {
  5. const date = typeof x === "string" ? new Date(x) : x;
  6. let ret;
  7. let opt: IAny = {
  8. "Y+": date.getFullYear().toString(), // 年
  9. "M+": (date.getMonth() + 1).toString(), // 月
  10. "d+": date.getDate().toString(), // 日
  11. "h+": date.getHours().toString(), // 时
  12. "m+": date.getMinutes().toString(), // 分
  13. "s+": date.getSeconds().toString() // 秒
  14. };
  15. for (let k in opt) {
  16. ret = new RegExp("(" + k + ")").exec(fmt);
  17. if (ret) {
  18. fmt = fmt.replace(
  19. ret[1],
  20. ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
  21. );
  22. }
  23. }
  24. return fmt;
  25. };
  26. export const RegAccount = /^[a-zA-Z0-9]{9,16}$/;
  27. export const Dateformat = (t: string | Date, format: string) => {
  28. let fmt = format;
  29. let ret;
  30. const date = typeof t === "string" ? new Date(t) : t;
  31. const opt: IAny = {
  32. "Y+": date.getFullYear().toString(), // 年
  33. "m+": (date.getMonth() + 1).toString(), // 月
  34. "d+": date.getDate().toString(), // 日
  35. "H+": date.getHours().toString(), // 时
  36. "M+": date.getMinutes().toString(), // 分
  37. "S+": date.getSeconds().toString() // 秒
  38. // 有其他格式化字符需求可以继续添加,必须转化成字符串
  39. };
  40. for (let k in opt) {
  41. ret = new RegExp("(" + k + ")").exec(fmt);
  42. if (ret) {
  43. fmt = fmt.replace(
  44. ret[1],
  45. ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
  46. );
  47. }
  48. }
  49. return fmt;
  50. };
  51. export const getWecomType = (agentFrom: string) => {
  52. switch (agentFrom) {
  53. case 'ssb':
  54. return 0;
  55. case 'hbs':
  56. return 1;
  57. case 'stoneLikePaint':
  58. return 2;
  59. case 'goldShop':
  60. return 3;
  61. case 'dg':
  62. return 4;
  63. default:
  64. return 0; // 默认为0
  65. }
  66. }
  67. export const getAgentFrom = (WecomType: number) => {
  68. switch (WecomType) {
  69. case 0://经销商
  70. return 'ssb';
  71. case 1://好邦手
  72. return 'hbs';
  73. case 2://服务商
  74. return 'stoneLikePaint';
  75. case 3://金牌店
  76. return 'goldShop';
  77. case 4://导购
  78. return 'dg';
  79. default:
  80. return 'ssb'; // 默认为经销商
  81. }
  82. }
  83. export const toLBHome = () => {
  84. router.replace('/');
  85. }
  86. export const toXiaoChengxu = (appid) => {
  87. let url = window.location.href.split("#")[0];
  88. wx.ready(function () {
  89. wx.checkJsApi({
  90. jsApiList: ["agentConfig", "launchMiniprogram"], // 需要检测的JS接口列表
  91. success: function (res) {
  92. const formData = new FormData();
  93. formData.append('url', url);
  94. formData.append('agent', '1');
  95. wecomTicket(formData).then(response => {
  96. if (response.status == 200) {
  97. let yingyongData = response.Data;
  98. wx.agentConfig({
  99. corpid: yingyongData.appid, // 必填,企业微信的corpid,必须与当前登录的企业一致
  100. agentid: process.env.VUE_APP_AGENTID, // 必填,企业微信的应用id (e.g. 1000247)
  101. timestamp: yingyongData.timestamp, // 必填,生成签名的时间戳
  102. nonceStr: yingyongData.noncestr, // 必填,生成签名的随机串
  103. signature: yingyongData.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
  104. jsApiList: ["launchMiniprogram"], //必填,传入需要使用的接口名称
  105. success: function (res) {
  106. wx.invoke(
  107. "launchMiniprogram",
  108. {
  109. appid: appid, // 需跳转的小程序appid
  110. path: "" // 所需跳转的小程序内页面路径及参数。非必填
  111. },
  112. function (res) {
  113. if (res.err_msg == "launchMiniprogram:ok") {
  114. // 正常
  115. console.log("正常");
  116. } else {
  117. // 错误处理
  118. }
  119. }
  120. );
  121. },
  122. fail: function (res) {
  123. if (res.errMsg.indexOf("function not exist") > -1) {
  124. alert("版本过低请升级");
  125. }
  126. }
  127. });
  128. }
  129. });
  130. }
  131. });
  132. });
  133. }
  134. // 获取微信API授权信息
  135. export const getWxconfig = () => {
  136. const jsApiList = ['getSetting', 'authorize', 'showModal', 'openSetting', 'downloadFile', 'saveImageToPhotosAlbum'];
  137. let url = window.location.href.split("#")[0];
  138. const formData = new FormData();
  139. formData.append('url', url);
  140. formData.append('agent', '1');
  141. wecomTicket(formData).then(response => {
  142. if (response.status == 200) {
  143. let qiyeData = response.Data;
  144. wx.agentConfig({
  145. debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  146. corpid: qiyeData.appid, // 必填,企业微信的corpid,必须与当前登录的企业一致
  147. agentid: process.env.VUE_APP_AGENTID, // 必填,企业微信的应用id (e.g. 1000247)
  148. timestamp: qiyeData.timestamp, // 必填,生成签名的时间戳
  149. nonceStr: qiyeData.noncestr, // 必填,生成签名的随机串
  150. signature: qiyeData.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
  151. jsApiList: [...jsApiList], //必填,传入需要使用的接口名称
  152. success: function (res) {
  153. console.log('获取签名成功');
  154. },
  155. fail: function (res) {
  156. console.log(res);
  157. if (res.errMsg.indexOf('function not exist') > -1) {
  158. alert('版本过低请升级');
  159. }
  160. },
  161. });
  162. }
  163. });
  164. }