Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467
  1. const common_vendor = require("../../common/vendor.js");
  2. var uni = common_vendor.index
  3. /**
  4. *json字符串转换成json对象
  5. */
  6. function stringToJson(data) {
  7. return JSON.parse(data);
  8. }
  9. /**
  10. *json对象转换成json对符串
  11. */
  12. function jsonToString(data) {
  13. return JSON.stringify(data);
  14. }
  15. /**
  16. *map转换为json
  17. */
  18. function mapToJson(map) {
  19. return JSON.stringify(strMapToObj(map));
  20. }
  21. /**
  22. *json转换为map
  23. */
  24. function jsonToMap(jsonStr) {
  25. return objToStrMap(JSON.parse(jsonStr));
  26. }
  27. /**
  28. *map转化为对象(map所有键都是字符串,可以将其转换为对象)
  29. */
  30. function strMapToObj(strMap) {
  31. let obj = Object.create(null);
  32. for (let [k, v] of strMap) {
  33. obj[k] = v;
  34. }
  35. return obj;
  36. }
  37. /**
  38. *对象转换为Map
  39. */
  40. function objToStrMap(obj) {
  41. let strMap = new Map();
  42. for (let k of Object.keys(obj)) {
  43. strMap.set(k, obj[k]);
  44. }
  45. return strMap;
  46. }
  47. //保存数据
  48. function setData(key, data) {
  49. uni.setStorageSync(key, data);
  50. } //获取数据
  51. function getData(key) {
  52. return uni.getStorageSync(key);
  53. } //清除数据
  54. function removeData(key) {
  55. uni.removeStorageSync(key);
  56. }
  57. //arrayToJsonString array 转json字符串
  58. function arrayToJsonString(array) {
  59. var json = {};
  60. for (var i in array) {
  61. if (array[i] instanceof Array) {
  62. json[i] = {};
  63. for (var o in array[i]) {
  64. if (array[i][o] instanceof Array) {
  65. json[i][o] = {};
  66. for (var q in array[i][o]) {
  67. if (array[i][o][q] instanceof Array) {
  68. json[i][o][q] = {};
  69. for (var w in array[i][o][q]) {
  70. json[i][o][q][w] = array[i][o][q][w];
  71. }
  72. } else {
  73. json[i][o][q] = array[i][o][q];
  74. }
  75. }
  76. } else {
  77. json[i][o] = array[i][o];
  78. }
  79. }
  80. } else {
  81. json[i] = array[i];
  82. }
  83. }
  84. return JSON.stringify(json);
  85. }
  86. function pad2(n) {
  87. return n < 10 ? '0' + n : n;
  88. }
  89. //获取时间ymdHis
  90. function getDate() {
  91. var date = new Date();
  92. return date.getFullYear().toString() + pad2(date.getMonth() + 1) + pad2(date.getDate()) + pad2(date.getHours()) + pad2(date.getMinutes()) + pad2(date.getSeconds());
  93. }
  94. //获取随机数
  95. function randomNum(Min, Max) {
  96. var Range = Max - Min;
  97. var Rand = Math.random();
  98. if (Math.round(Rand * Range) == 0) {
  99. return Min + 1;
  100. } else if (Math.round(Rand * Max) == Max) {
  101. index++;
  102. return Max - 1;
  103. } else {
  104. var num = Min + Math.round(Rand * Range) - 1;
  105. return num;
  106. }
  107. } //array转json对象
  108. function arrayToJson(array) {
  109. return stringToJson(arrayToJsonString(array));
  110. }
  111. /**
  112. * 获取随机数
  113. */
  114. function generateMixed(n) {
  115. var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
  116. var res = '';
  117. for (var i = 0; i < n; i++) {
  118. var id = Math.ceil(Math.random() * 8);
  119. res += chars[id];
  120. }
  121. return res;
  122. }
  123. /**
  124. * 十六进制转Byte
  125. */
  126. function stringToByte(str) {
  127. var pos = 0;
  128. var len = str.length;
  129. if (len % 2 != 0) {
  130. return null;
  131. }
  132. len /= 2;
  133. var hexA = new Array();
  134. for (var i = 0; i < len; i++) {
  135. var s = str.substr(pos, 2);
  136. var v = parseInt(s, 16);
  137. hexA.push(v);
  138. pos += 2;
  139. }
  140. return hexA;
  141. }
  142. /** 验证身份证**/
  143. function judgeIdcard(target) {
  144. return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(target);
  145. }
  146. /** 验证手机号**/
  147. function judgePhone(target) {
  148. return /^1[23456789]\d{9}$/.test(target);
  149. }
  150. function judgeNoChinese(str) {
  151. return /^[a-zA-Z0-9_]{0,}$/.test(str);
  152. }
  153. /* 证件类型 index=1个人类型 index=2企业类型*/
  154. function getIdcardType(index) {
  155. let values1 = [
  156. {
  157. id: '101',
  158. name: '身份证(含临时身份证)'
  159. },
  160. {
  161. id: '102',
  162. name: '护照(限外籍人士)'
  163. },
  164. {
  165. id: '103',
  166. name: '港澳居民来往内地通行证'
  167. },
  168. {
  169. id: '104',
  170. name: '台湾居民来往大陆通行证'
  171. },
  172. {
  173. id: '105',
  174. name: '军官证'
  175. },
  176. {
  177. id: '106',
  178. name: '武警警察身份证'
  179. },
  180. {
  181. id: '199',
  182. name: '个人默认证件'
  183. }
  184. ];
  185. let values2 = [
  186. {
  187. id: '201',
  188. name: '统一社会信用代码证书'
  189. },
  190. {
  191. id: '202',
  192. name: '组织机构代码证'
  193. },
  194. {
  195. id: '203',
  196. name: '营业执照'
  197. },
  198. {
  199. id: '204',
  200. name: '事业单位法人证书'
  201. },
  202. {
  203. id: '205',
  204. name: '社会团体法人登记证书'
  205. },
  206. {
  207. id: '206',
  208. name: '律师事务所执业许可证'
  209. },
  210. {
  211. id: '299',
  212. name: '单位默认证件'
  213. }
  214. ];
  215. return index == 1 ? values1 : values2;
  216. }
  217. /**
  218. * 获取车辆类型
  219. */
  220. function getCarType(num) {
  221. var _name = '';
  222. switch (num) {
  223. case 1:
  224. _name = '一型客车';
  225. break;
  226. case 2:
  227. _name = '二型客车';
  228. break;
  229. case 3:
  230. _name = '三型客车';
  231. break;
  232. case 4:
  233. _name = '四型客车';
  234. break;
  235. case 11:
  236. _name = '一型货车';
  237. break;
  238. case 12:
  239. _name = '二型货车';
  240. break;
  241. case 13:
  242. _name = '三型货车';
  243. break;
  244. case 14:
  245. _name = '四型货车';
  246. break;
  247. case 15:
  248. _name = '五型货车';
  249. break;
  250. case 16:
  251. _name = '六型货车';
  252. break;
  253. default:
  254. _name = '未知' + '_' + num;
  255. break;
  256. }
  257. return _name;
  258. }
  259. /**
  260. * 替换emoji表情
  261. */
  262. function filterEmoji(name) {
  263. var str = name.replace(
  264. /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi,
  265. ''
  266. );
  267. return str;
  268. }
  269. /**
  270. * 替换空格键
  271. */
  272. function filterSpace(name) {
  273. var str = name.replace(/\s+/g, '');
  274. return str;
  275. }
  276. /*
  277. * 金额转换 分》元
  278. */
  279. function replacemoney(money) {
  280. if (money % 100 > 0) {
  281. return money / 100;
  282. } else {
  283. return money / 100 + '.00';
  284. }
  285. }
  286. /**
  287. * OBU状态
  288. */
  289. function getObuStatus(index) {
  290. var statuss = [
  291. {
  292. id: '0',
  293. name: '申请'
  294. },
  295. {
  296. id: '1',
  297. name: '正常'
  298. },
  299. {
  300. id: '2',
  301. name: '有签挂起'
  302. },
  303. {
  304. id: '3',
  305. name: '无签挂起'
  306. },
  307. {
  308. id: '4',
  309. name: '有签注销'
  310. },
  311. {
  312. id: '5',
  313. name: '无签注销'
  314. },
  315. {
  316. id: '6',
  317. name: '签挂失'
  318. },
  319. {
  320. id: '7',
  321. name: '标签过期'
  322. },
  323. {
  324. id: '8',
  325. name: '已过户'
  326. },
  327. {
  328. id: '9',
  329. name: '预注销'
  330. }
  331. ];
  332. var obj = statuss.filter((item) => {
  333. return item.id == index;
  334. });
  335. return index && obj.length > 0 ? obj[0].name : '';
  336. }
  337. /**
  338. * ETC卡状态
  339. */
  340. function getCardStatus(index) {
  341. var statuss = [
  342. {
  343. id: '0',
  344. name: '申请'
  345. },
  346. {
  347. id: '1',
  348. name: '正常'
  349. },
  350. {
  351. id: '2',
  352. name: '有卡挂起'
  353. },
  354. {
  355. id: '3',
  356. name: '无卡挂起'
  357. },
  358. {
  359. id: '4',
  360. name: '有卡注销'
  361. },
  362. {
  363. id: '5',
  364. name: '无卡注销'
  365. },
  366. {
  367. id: '6',
  368. name: '卡挂失'
  369. },
  370. {
  371. id: '9',
  372. name: '预注销'
  373. },
  374. {
  375. id: '12',
  376. name: '预注销'
  377. }
  378. ];
  379. var obj = statuss.filter((item) => {
  380. return item.id == index;
  381. });
  382. return index && obj.length > 0 ? obj[0].name : '';
  383. }
  384. module.exports = {
  385. getIdcardType,
  386. judgeIdcard,
  387. judgePhone,
  388. judgeNoChinese,
  389. stringToJson,
  390. //json转字符串
  391. jsonToString,
  392. //字符串转json
  393. mapToJson,
  394. jsonToMap,
  395. strMapToObj,
  396. objToStrMap,
  397. setData,
  398. getData,
  399. removeData,
  400. arrayToJson,
  401. getDate,
  402. randomNum,
  403. generateMixed,
  404. stringToByte,
  405. filterEmoji,
  406. filterSpace,
  407. replacemoney,
  408. getCarType,
  409. getObuStatus,
  410. getCardStatus
  411. };