C端小程序
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
4.6 KiB

  1. var barcode = require("./barcode");
  2. var qrcode = require("./qrcode");
  3. const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {}
  4. let imgOrgUrl = extConfig.attr.imgOrgUrl;
  5. let imgOrgUrl1 = extConfig.attr.imgOrgUrl1;
  6. let imgNewUrl = extConfig.attr.imgNewUrl;
  7. let imgNewUrl1 = extConfig.attr.imgNewUrl1;
  8. const formatTime = (date, fmt) => {
  9. try {
  10. if (!date) {
  11. return date;
  12. }
  13. if (typeof date == "number") {
  14. date = new Date(date);
  15. }
  16. var o = {
  17. "M+": date.getMonth() + 1, //月份
  18. "d+": date.getDate(), //日
  19. "h+": date.getHours(), //小时
  20. "m+": date.getMinutes(), //分
  21. "s+": date.getSeconds(), //秒
  22. "q+": Math.floor((date.getMonth() + 3) / 3), //季度
  23. S: date.getMilliseconds() //毫秒
  24. };
  25. if (/(y+)/.test(fmt))
  26. fmt = fmt.replace(
  27. RegExp.$1,
  28. (date.getFullYear() + "").substr(4 - RegExp.$1.length)
  29. );
  30. for (var k in o)
  31. if (new RegExp("(" + k + ")").test(fmt))
  32. fmt = fmt.replace(
  33. RegExp.$1,
  34. RegExp.$1.length == 1
  35. ? o[k]
  36. : ("00" + o[k]).substr(("" + o[k]).length)
  37. );
  38. return fmt;
  39. } catch (error) {
  40. return date;
  41. }
  42. };
  43. const formatNumber = n => {
  44. n = n.toString();
  45. return n[1] ? n : "0" + n;
  46. };
  47. function convert_length(length) {
  48. return Math.round((wx.getSystemInfoSync().windowWidth * length) / 750);
  49. }
  50. function barc(id, code, width, height) {
  51. barcode.code128(
  52. wx.createCanvasContext(id),
  53. code,
  54. convert_length(width),
  55. convert_length(height)
  56. );
  57. }
  58. function qrc(id, code, width, height) {
  59. qrcode.api.draw(code, {
  60. ctx: wx.createCanvasContext(id),
  61. width: convert_length(width),
  62. height: convert_length(height)
  63. });
  64. }
  65. function fmtDate(obj) {
  66. var date = new Date(obj);
  67. var y = 1900 + date.getYear();
  68. var m = "0" + (date.getMonth() + 1);
  69. var d = "0" + date.getDate();
  70. return (
  71. y +
  72. "-" +
  73. m.substring(m.length - 2, m.length) +
  74. "-" +
  75. d.substring(d.length - 2, d.length)
  76. );
  77. }
  78. //计算下单的时间与现在的时间的
  79. function timechuo(startTime) {
  80. var s1 = new Date(startTime.replace(/-/g, "/"));
  81. var s2 = new Date();
  82. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  83. var year = Math.floor(runTime / 86400 / 365);
  84. var runTime = runTime % (86400 * 365);
  85. var month = Math.floor(runTime / 86400 / 30);
  86. var runTime = runTime % (86400 * 30);
  87. var day = Math.floor(runTime / 86400);
  88. var runTime = runTime % 86400;
  89. var hour = Math.floor(runTime / 3600);
  90. var runTime = runTime % 3600;
  91. var minute = Math.floor(runTime / 60);
  92. var runTime = runTime % 60;
  93. var second = runTime;
  94. if (day && !year && !month){
  95. return (day + '天' + hour + "小时" + minute + "分钟")
  96. } else if (month && !year){
  97. return ((month*30+day) +'天' + hour + "小时" + minute + "分钟")
  98. } else if (year) {
  99. return ((year*365 + month*30+ day) + '天' + hour + "小时" + minute + "分钟")
  100. }else{
  101. return (hour + "小时" + minute + "分钟")
  102. }
  103. }
  104. //计算时间差
  105. function timecha(endTime,startTime) {
  106. var s1 = new Date(endTime.replace(/-/g, "/"));
  107. var s2 = new Date(startTime.replace(/-/g, "/"));
  108. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  109. var year = Math.floor(runTime / 86400 / 365);
  110. var runTime = runTime % (86400 * 365);
  111. var month = Math.floor(runTime / 86400 / 30);
  112. var runTime = runTime % (86400 * 30);
  113. var day = Math.floor(runTime / 86400);
  114. var runTime = runTime % 86400;
  115. var hour = Math.floor(runTime / 3600);
  116. var runTime = runTime % 3600;
  117. var minute = Math.floor(runTime / 60);
  118. var runTime = runTime % 60;
  119. var second = runTime;
  120. return (month+"月"+day+"天"+hour+"小时"+minute+"分钟")
  121. }
  122. function isJSON(str) {
  123. if (typeof str == 'string') {
  124. console.log("string")
  125. try {
  126. var obj = JSON.parse(str);
  127. if (typeof obj == 'object' && obj) {
  128. return true;
  129. } else {
  130. return false;
  131. }
  132. } catch (e) {
  133. console.log(e);
  134. wx.showToast({
  135. title: '请扫描正确的二维码',
  136. icon: 'none',
  137. duration: 1300
  138. })
  139. }
  140. } else {
  141. wx.showToast({
  142. title: '请扫描正确的二维码',
  143. icon: 'none',
  144. duration: 1300
  145. })
  146. }
  147. }
  148. function getProxyImgUrl(str) {
  149. if (str.indexOf(imgOrgUrl) == 0) {
  150. return str.replace(imgOrgUrl, imgNewUrl)
  151. } else if(str.indexOf(imgOrgUrl1) == 0) {
  152. return str.replace(imgOrgUrl1, imgNewUrl1)
  153. }
  154. return str
  155. }
  156. module.exports = {
  157. formatTime: formatTime,
  158. barcode: barc,
  159. qrcode: qrc,
  160. isJSON: isJSON,
  161. fmtDate: fmtDate,
  162. timechuo: timechuo,
  163. timecha: timecha,
  164. getProxyImgUrl: getProxyImgUrl
  165. };