rocessor.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. //身份证验证
  2. export function isCardNo(card) {
  3. // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
  4. var reg =
  5. /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/;
  6. if (reg.test(card) === false) {
  7. console.log(card);
  8. return false;
  9. }
  10. return true
  11. }
  12. // 金额显示变化
  13. export function getMoneyStyle(value = 0) {
  14. if (typeof value == 'string') {
  15. value = (+value).toFixed(2)
  16. }
  17. if (typeof value == 'number') {
  18. value = value.toFixed(2)
  19. }
  20. // 将字符串转为数组
  21. let n = value.split("");
  22. // 反转数组并复制循环处理
  23. let arr = n.reverse().map(function(e, ind, ar) {
  24. // 判断当前下标是否为3的整数倍数且不为最后一个下标
  25. if (ind % 3 == 0 && ind / 3 > 1 && ind != ar.length) {
  26. return e + ','
  27. } else {
  28. return e
  29. }
  30. })
  31. // 反转数组回复原来排序并合并回字符串
  32. arr = arr.reverse().join('')
  33. return arr;
  34. }
  35. // 倒计时计算
  36. // 计算倒计时时间
  37. export function timeComputed(time) {
  38. // 获取当前时间
  39. const actTime = (new Date()).getTime();
  40. // 获取到期时间
  41. let stopTime = time - actTime;
  42. // 判断是否小于0
  43. if (stopTime < 0) {
  44. stopTime = stopTime * -1
  45. }
  46. let day = Math.floor(stopTime / 1000 / 60 / 60 / 24) //获取剩余天数
  47. let hours = Math.floor((stopTime / 1000 / 60 / 60) % 24); //获取剩余小时数
  48. let minutes = Math.floor((stopTime / 1000 / 60) % 60); //获取分钟
  49. let seconds = Math.floor((stopTime / 1000) % 60); //获取秒数
  50. return {
  51. hours, //倒计时小时数
  52. minutes, //倒计时分钟数
  53. seconds, //倒计时秒数
  54. day //倒计时天数
  55. }
  56. }
  57. // #ifdef MP-WEIXIN
  58. // 调用打开地图方法
  59. export function openMap(e) {
  60. const that = this
  61. return new Promise((resolve, reject) => {
  62. wx.getSetting({
  63. success(res) {
  64. //这里判断是否有地位权限
  65. if (!res.authSetting['scope.userLocation']) {
  66. wx.showModal({
  67. title: '提示',
  68. content: '请求获取位置权限',
  69. success: function(res) {
  70. if (res.confirm == false) {
  71. // 授权失败
  72. reject()
  73. return false;
  74. }
  75. wx.openSetting({
  76. success(res) {
  77. //如果再次拒绝则返回页面并提示
  78. if (!res.authSetting['scope.userLocation']) {
  79. wx.showToast({
  80. title: '此功能需获取位置信息,请重新设置',
  81. duration: 3000,
  82. icon: 'none'
  83. })
  84. } else {
  85. //允许授权,调用地图
  86. resolve()
  87. }
  88. }
  89. })
  90. }
  91. })
  92. } else {
  93. //如果有定位权限,调用地图
  94. resolve()
  95. }
  96. }
  97. })
  98. })
  99. }
  100. // 打开地址设置
  101. function openSettingAddress() {
  102. return new Promise((resolve, reject) => {
  103. wx.openSetting({
  104. success(res) {
  105. //如果再次拒绝则返回页面并提示
  106. if (!res.authSetting['scope.userLocationBackground']) {
  107. wx.showModal({
  108. title: '定位服务开启提示',
  109. content: '此功能需获取使用小程序期间和离开小程序后的定位权限否则不发正常开关锁,是否设置',
  110. confirmText: '重新设置',
  111. success: function(res) {
  112. if (res.confirm == false) {
  113. // 授权失败
  114. reject()
  115. return false;
  116. }
  117. if (res.confirm) {
  118. openGetAddress();
  119. }
  120. }
  121. })
  122. } else {
  123. //允许授权,调用地图
  124. resolve()
  125. }
  126. }
  127. })
  128. })
  129. }
  130. // 调用打开长连接地图方法
  131. export function openGetAddress(e) {
  132. const that = this
  133. return new Promise((resolve, reject) => {
  134. wx.getSetting({
  135. success(res) {
  136. //这里判断是否有地位权限
  137. if (!res.authSetting['scope.userLocationBackground']) {
  138. wx.showModal({
  139. title: '定位服务开启提示',
  140. content: '请求获取您小程序期间和离开小程序后位置改变获取权限',
  141. confirmText: '立即设置',
  142. success: function(res) {
  143. if (res.confirm == false) {
  144. // 授权失败
  145. reject()
  146. return false;
  147. }
  148. if(res.confirm){
  149. console.log(openSettingAddress,'开启设置');
  150. openSettingAddress().then(() => {
  151. reject()
  152. }).catch(() => {
  153. resolve()
  154. })
  155. }
  156. }
  157. })
  158. } else {
  159. //如果有定位权限,调用地图
  160. resolve()
  161. }
  162. }
  163. })
  164. })
  165. }
  166. // #endif
  167. //时间戳转换成时间
  168. export function getTime(time) {
  169. const num = 13 - (time + '').length;
  170. let l = 1; //倍数
  171. for (let i = 0; i < num; i++) {
  172. l += '0';
  173. }
  174. // 重新解析为数字
  175. l = parseInt(l)
  176. const date = new Date(parseInt(time) * l);
  177. const year = date.getFullYear();
  178. const mon = date.getMonth() + 1;
  179. const day = date.getDate();
  180. const hours = date.getHours();
  181. const minu = date.getMinutes();
  182. const sec = date.getSeconds();
  183. return year + '-' + mon + '-' + day + ' ' + hours + ':' + minu + ':' + sec;
  184. }
  185. // 获取前面一个页面
  186. export function prePage(){
  187. // 获取当前页面
  188. let pages = getCurrentPages();
  189. let prePage = pages[pages.length - 2];
  190. // #ifdef H5
  191. return prePage;
  192. // #endif
  193. return prePage.$vm;
  194. }