util.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import {
  2. baseUrl
  3. } from "@/common/env.js"
  4. import store from '@/store'
  5. import http from '@/uview-ui/libs/request/index.js'
  6. function is_weixin() {
  7. var ua = navigator.userAgent.toLowerCase();
  8. if (ua.match(/MicroMessenger/i) == "micromessenger") {
  9. return true;
  10. } else {
  11. return false;
  12. }
  13. }
  14. function ajaxUploadImg(url, tempFilePaths, formData, callback) {
  15. let headerConfig = {
  16. 'token': store.state.vuex_token
  17. }
  18. wx.uploadFile({
  19. url: baseUrl + url,
  20. filePath: tempFilePaths,
  21. name: 'file',
  22. formData: formData,
  23. header: headerConfig,
  24. success(res) {
  25. callback(res)
  26. }
  27. })
  28. }
  29. async function getPhoneData(code, e) {
  30. let data = await http.post('/wechat/getmobile', {
  31. code: code,
  32. encryptedData: e.encryptedData,
  33. iv: e.iv
  34. })
  35. return data
  36. }
  37. const isCardID = (value) => {
  38. if (!/(^\d{15}$)|(^\d{17}(\d|X|x)$)/.test(value)) {
  39. // callback(new Error('你输入的身份证长度或格式错误'))
  40. return '身份证长度或格式错误'
  41. }
  42. //身份证城市
  43. let aCity = {
  44. 11: "北京",
  45. 12: "天津",
  46. 13: "河北",
  47. 14: "山西",
  48. 15: "内蒙古",
  49. 21: "辽宁",
  50. 22: "吉林",
  51. 23: "黑龙江",
  52. 31: "上海",
  53. 32: "江苏",
  54. 33: "浙江",
  55. 34: "安徽",
  56. 35: "福建",
  57. 36: "江西",
  58. 37: "山东",
  59. 41: "河南",
  60. 42: "湖北",
  61. 43: "湖南",
  62. 44: "广东",
  63. 45: "广西",
  64. 46: "海南",
  65. 50: "重庆",
  66. 51: "四川",
  67. 52: "贵州",
  68. 53: "云南",
  69. 54: "西藏",
  70. 61: "陕西",
  71. 62: "甘肃",
  72. 63: "青海",
  73. 64: "宁夏",
  74. 65: "新疆",
  75. 71: "台湾",
  76. 81: "香港",
  77. 82: "澳门",
  78. 91: "国外"
  79. };
  80. if (!aCity[parseInt(value.substr(0, 2))]) {
  81. // callback(new Error('你的身份证地区非法'))
  82. return '你的身份证地区非法'
  83. }
  84. // 出生日期验证
  85. let sBirthday = (value.substr(6, 4) + "-" + Number(value.substr(10, 2)) + "-" + Number(value.substr(12, 2)))
  86. .replace(/-/g, "/"),
  87. d = new Date(sBirthday)
  88. if (sBirthday != (d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate())) {
  89. // callback(new Error('身份证上的出生日期非法'))
  90. return '身份证上的出生日期非法'
  91. }
  92. // 身份证号码校验
  93. let sum = 0,
  94. weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],
  95. codes = "10X98765432"
  96. for (let i = 0; i < value.length - 1; i++) {
  97. sum += value[i] * weights[i];
  98. }
  99. let last = codes[sum % 11]; //计算出来的最后一位身份证号码
  100. if (value[value.length - 1] != last) {
  101. // callback(new Error('你输入的身份证号非法'))
  102. return '你输入的身份证号非法'
  103. }
  104. return 1
  105. };
  106. module.exports = {
  107. isCardID: isCardID,
  108. ajaxUploadImg: ajaxUploadImg,
  109. is_weixin: is_weixin,
  110. getPhoneData: getPhoneData
  111. }