commonFun.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760
  1. // 公共函数
  2. import GoEasy from "./lib/goeasy-2.2.4.min.js";
  3. import IMService from "./lib/imservice"
  4. import commonData from './commonData.js'
  5. /*线上使用*/
  6. // 静态图片路径
  7. //const serverUrl = 'https://api.kuailaiyou.top/prjcenter/prjKLY/fileroot/images/front/';
  8. // 请求URL路径
  9. //const serverUrlReq = 'https://api.kuailaiyou.top/';
  10. // const serverUrlReq = 'https://zpwebapi.kaidekuai.com/';
  11. // 请求webviewURL路径
  12. //const webviewServerUrlReq = 'https://admin.kuailaiyou.top/';
  13. /*本地测试*/
  14. // 静态图片路径
  15. const serverUrl = 'http://api.bizdbKLY.com/prjcenter/prjKLY/fileroot/images/front/';
  16. // 请求URL路径
  17. const serverUrlReq = 'http://api.bizdbKLY.com/';
  18. // 请求webviewURL路径
  19. const webviewServerUrlReq = 'http://admin.bizdbKLY.com/';
  20. // request数据
  21. const requestUrl = (url, data, callback, auto_change_params = true, Trader2 = false) => {
  22. // 改造URL
  23. let url_new = Trader2 ? url : (commonData.sys_role == 1 ? url.replace('Worker', 'Trader') : url.replace(
  24. 'Trader', 'Worker'))
  25. console.log('原请求路径:'+url+' 改造后请求路径:'+url_new);
  26. let data_new = {
  27. ...data,
  28. ...commonData.data_token,
  29. FOREND_TOKEN: uni.getStorageSync('FOREND_TOKEN'),
  30. phone: data.phone ? data.phone : uni.getStorageSync('PHONE'),
  31. // FOREND_TOKEN: '0_16415187935b9011bc8aa3ce44cb0cf40dac3d48b4', //用户
  32. // FOREND_TOKEN: '0_1641527485b098792a509f99b8c991030644125b2b', //商户
  33. // phone: '17640181459',
  34. }
  35. // 改造参数
  36. if (auto_change_params) {
  37. if (data_new.bizCatalog) {
  38. data_new.bizCatalog = commonData.sys_role == 1 ? data_new.bizCatalog.replace('Worker', 'Trader') :
  39. data_new
  40. .bizCatalog.replace('Trader', 'Worker')
  41. }
  42. if (data_new.handleMode) {
  43. data_new.handleMode = commonData.sys_role == 1 ? data_new.handleMode.replace('Worker', 'Trader') :
  44. data_new
  45. .handleMode.replace('Trader', 'Worker')
  46. }
  47. }
  48. const requestTask = uni.request({
  49. url: serverUrlReq + 'ajaxEntryCenter.php?WsAjaxPrj=KLY' + url_new,
  50. method: 'post',
  51. header: {
  52. 'content-type': 'application/json'
  53. },
  54. data: {
  55. ...data_new,
  56. },
  57. success: (res) => {
  58. // 异常处理
  59. if (res.data.ErrMsg) {
  60. uni.hideLoading();
  61. // res.data.ErrMsg为字符串时做一般处理
  62. if (typeof(res.data.ErrMsg) == 'string') {
  63. // FOREND_TOKEN异常处理
  64. if (res.data.ErrMsg.indexOf('FOREND_TOKEN') != -1 || res.data.ErrMsg.indexOf(
  65. 'phone') != -1) {
  66. uni.showModal({
  67. title: '当前未登录',
  68. confirmText: '去登陆',
  69. cancelText: '游客登录',
  70. showCancel: commonData.sys_role == 1 ? false : true,
  71. success: (res) => {
  72. if (res.confirm) {
  73. uni.navigateTo({
  74. url: '/pages/login/index?need_back=1'
  75. })
  76. } else {
  77. // 设定游客模式
  78. uni.setStorageSync('IS_TOURIST', '1')
  79. }
  80. callback({
  81. status: false,
  82. data: '未登录',
  83. })
  84. }
  85. })
  86. return
  87. }
  88. // 其他异常处理
  89. uni.showModal({
  90. title: '操作失败',
  91. content: JSON.stringify(res.data.ErrMsg),
  92. showCancel: false,
  93. success: function(res2) {
  94. callback({
  95. status: false,
  96. })
  97. }
  98. });
  99. } else {
  100. // res.data.ErrMsg为非字符串时做特殊回调处理
  101. callback({
  102. status: false,
  103. data: res.data
  104. });
  105. }
  106. } else {
  107. // 非异常处理
  108. callback({
  109. status: true,
  110. data: res.data
  111. });
  112. }
  113. },
  114. fail: result => {
  115. uni.hideLoading();
  116. uni.showModal({
  117. // title: '接口调用网路错误',
  118. content: JSON.stringify(result.errMsg),
  119. showCancel: false,
  120. success: function(res) {
  121. callback({
  122. status: false
  123. })
  124. }
  125. });
  126. }
  127. });
  128. }
  129. // 获取位置信息
  130. const getPositionLocal = callback => {
  131. uni.getLocation({
  132. type: 'wgs84',
  133. success: res => {
  134. // console.log('位置信息')
  135. // console.log(res)
  136. let latitude = res.latitude;
  137. let longitude = res.longitude;
  138. // callback({
  139. // status: true,
  140. // city: '天津市',
  141. // latitude,
  142. // longitude,
  143. // })
  144. // return
  145. requestUrl('&WsAjaxBiz=Public&WsAjaxAction=entityDataHandle', {
  146. bizCatalog: 'LbsEntity',
  147. handleMode: 'fetchAddressByLocation',
  148. lat: latitude,
  149. lng: longitude,
  150. }, res => {
  151. // console.log('根据经纬度返回城市名称')
  152. // console.log(res)
  153. if (res.status) {
  154. callback({
  155. status: true,
  156. city: res.data.Result.city,
  157. latitude,
  158. longitude,
  159. })
  160. } else {
  161. // uni.showModal({
  162. // title: '获取位置失败',
  163. // content: JSON.stringify(res),
  164. // showCancel: false
  165. // })
  166. callback({
  167. status: false,
  168. })
  169. }
  170. })
  171. },
  172. fail: e => {
  173. if (e.errMsg.indexOf('频繁调用') == -1) {
  174. uni.showModal({
  175. title: '获取位置信息失败',
  176. content: JSON.stringify(e),
  177. showCancel: false
  178. })
  179. }
  180. // console.log('获取位置信息失败')
  181. // console.log(e)
  182. callback({
  183. status: false,
  184. })
  185. },
  186. complete: () => {
  187. uni.hideLoading()
  188. }
  189. });
  190. }
  191. // 上传图片/视频到阿里云OSS
  192. const uploadFileApiOSS = (callback, fileType = 'image', allow_album = true) => {
  193. if (fileType == 'image') {
  194. uni.chooseImage({
  195. count: 1,
  196. sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
  197. sourceType: allow_album ? ['album', 'camera'] : ['camera'], //从相册选择
  198. success: res => {
  199. success_fun(res.tempFilePaths[0], callback)
  200. },
  201. fail: res => {
  202. fail_fun(res, callback)
  203. }
  204. });
  205. } else {
  206. uni.chooseVideo({
  207. count: 1,
  208. sourceType: ['camera', 'album'],
  209. success: res => {
  210. success_fun(res.tempFilePath, callback)
  211. },
  212. fail: res => {
  213. fail_fun(res, callback)
  214. }
  215. });
  216. }
  217. // 成功回调
  218. function success_fun(filePath, callback) {
  219. uni.showLoading({
  220. title: '上传中...',
  221. mask: true
  222. })
  223. let tiemr = new Date();
  224. let address = tiemr.getFullYear() + '' + (tiemr.getMonth() + 1) + '' + tiemr.getDate();
  225. address = 'zskp/userHead/' + address + '/';
  226. let str = filePath.substr(filePath.lastIndexOf('.'));
  227. let nameStr = address + tiemr.getTime() + str;
  228. let ossUrl = 'https://goeasy-kuailaiyou.oss-cn-beijing.aliyuncs.com/';
  229. uni.uploadFile({
  230. url: ossUrl,
  231. filePath,
  232. fileType,
  233. name: 'file',
  234. formData: {
  235. name: nameStr,
  236. key: nameStr,
  237. policy: 'eyJleHBpcmF0aW9uIjoiMjA1MC0wMS0wMVQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ==', // 输入你获取的的policy
  238. OSSAccessKeyId: 'LTAI5tSQRXPMmcJbE3TGDPCr', // 输入你的AccessKeyId
  239. success_action_status: '200', // 让服务端返回200,不然,默认会返回204
  240. signature: 'sjxOXt7eILxUdyE/0idSJaCGrc8=' // 输入你获取的的signature
  241. },
  242. success: res => {
  243. uni.hideLoading();
  244. if (res.statusCode == '200') {
  245. callback({
  246. status: true,
  247. data: ossUrl + nameStr
  248. });
  249. } else {
  250. uni.showModal({
  251. title: 'OSS文件上传失败',
  252. content: JSON.stringify(res),
  253. showCancel: false,
  254. success: function(res) {
  255. callback({
  256. status: false,
  257. })
  258. }
  259. });
  260. }
  261. }
  262. });
  263. }
  264. // 失败回调
  265. function fail_fun(res, callback) {
  266. // console.log(res.errMsg.indexOf('cancel'))
  267. if (res.errMsg.indexOf('cancel') == -1) {
  268. uni.showModal({
  269. title: '文件选择失败',
  270. content: JSON.stringify(res),
  271. showCancel: false,
  272. success: function(res) {
  273. callback({
  274. status: false,
  275. })
  276. }
  277. });
  278. }
  279. }
  280. }
  281. // 上传文件到服务器
  282. const uploadFileApi = callback => {
  283. uni.chooseImage({
  284. count: 1,
  285. sizeType: ['compressed'],
  286. success: (chooseImageRes) => {
  287. uni.showLoading({
  288. title: '上传中...',
  289. mask: true
  290. })
  291. const tempFilePaths = chooseImageRes.tempFilePaths;
  292. uni.uploadFile({
  293. url: serverUrlReq + 'ajaxEntryCenter.php?WsAjaxPrj=KLY' +
  294. "&WsAjaxBiz=PublicAPP&WsAjaxAction=fileUpload",
  295. filePath: tempFilePaths[0],
  296. name: 'file',
  297. formData: {
  298. 'uploadfile': 'file'
  299. },
  300. success: (uploadFileRes) => {
  301. console.log(uploadFileRes)
  302. let res = JSON.parse(uploadFileRes.data);
  303. uni.hideLoading();
  304. if (res.ErrMsg) {
  305. uni.showModal({
  306. title: '文件上传失败',
  307. content: res.ErrMsg,
  308. showCancel: false,
  309. success: function(res) {
  310. callback({
  311. status: false,
  312. })
  313. }
  314. });
  315. } else {
  316. callback({
  317. status: true,
  318. data: res.Result
  319. });
  320. }
  321. },
  322. fail(result) {
  323. uni.hideLoading();
  324. uni.showModal({
  325. title: '文件上传fail',
  326. content: JSON.stringify(result),
  327. showCancel: false,
  328. success: function(res) {
  329. callback({
  330. status: false
  331. })
  332. }
  333. });
  334. },
  335. });
  336. },
  337. fail: res => {
  338. uni.showModal({
  339. title: '文件选择失败',
  340. content: JSON.stringify(res),
  341. showCancel: false,
  342. success: function(res) {
  343. callback({
  344. status: false,
  345. })
  346. }
  347. });
  348. }
  349. });
  350. }
  351. // goEasy相关
  352. const goEasy = GoEasy.getInstance({
  353. host: "hangzhou.goeasy.io", //应用所在的区域地址: 【hangzhou.goeasy.io |singapore.goeasy.io】
  354. appkey: "BC-b1e650ef62484e08826652d48242b06b", // common key,
  355. modules: ["im"],
  356. // true表示支持通知栏提醒,false则表示不需要通知栏提醒
  357. allowNotification: true //仅有效于app,小程序和H5将会被自动忽略
  358. });
  359. goEasy.onClickNotification((message) => {
  360. let currentUrl;
  361. const routes = getCurrentPages();
  362. if (routes && routes.length) {
  363. const curRoute = routes[routes.length - 1].route;
  364. const curParam = routes[routes.length - 1].options;
  365. currentUrl = '/' + curRoute + `?to=${curParam.to}`;
  366. }
  367. let newUrl;
  368. switch (message.toType) {
  369. case GoEasy.IM_SCENE.PRIVATE:
  370. newUrl = '/pages/message/chat?to=' + message.senderId;
  371. break;
  372. // case GoEasy.IM_SCENE.GROUP:
  373. // newUrl = '/pages/chat/groupChat/groupChat?to=' + message.groupId;
  374. // break;
  375. }
  376. if (currentUrl !== newUrl) {
  377. uni.navigateTo({
  378. url: newUrl,
  379. });
  380. }
  381. });
  382. const init_go_easy = (user_info, type) => {
  383. let currentUser = {
  384. "uuid": type + user_info.id,
  385. "name": type == 'user_' ? (user_info.true_name ? user_info.true_name : user_info.nickname) : (user_info
  386. .company_name ? user_info.company_name : (user_info.nickname ? user_info.nickname :
  387. '商家名称')),
  388. "avatar": user_info.profile_photo != '' ? user_info.profile_photo : '/static/user.png'
  389. }
  390. // console.log('初始化init_go_easy')
  391. // console.log(currentUser)
  392. uni.setStorageSync('currentUser', currentUser);
  393. if (goEasy.getConnectionStatus() === 'disconnected') {
  394. getApp().globalData.imService = new IMService(goEasy, GoEasy);
  395. getApp().globalData.imService.connect(currentUser);
  396. }
  397. }
  398. // 获取会话最新数据
  399. const get_message_data = () => {
  400. //监听会话列表变化
  401. goEasy.im.on(GoEasy.IM_EVENT.CONVERSATIONS_UPDATED, (content) => {});
  402. goEasy.im.latestConversations({
  403. onSuccess: function(result) {
  404. let content = result.content;
  405. // console.log('加载会话列表成功')
  406. // console.log(content)
  407. let unreadTotal = content.unreadTotal;
  408. get_user_info(res => {
  409. let ss_notice_unreaded = res.data.Result.ss_notice_unreaded
  410. this.unreadTotal = Number(unreadTotal) + ss_notice_unreaded;
  411. if (this.unreadTotal > 0) {
  412. uni.setTabBarBadge({
  413. index: 1,
  414. text: this.unreadTotal.toString()
  415. });
  416. } else {
  417. uni.removeTabBarBadge({
  418. index: 1
  419. });
  420. }
  421. })
  422. },
  423. onFailed: function(error) {
  424. console.log("获取最新会话列表失败:, code:" + error.code + " content:" + error.content);
  425. }
  426. });
  427. }
  428. const formatDate = function(t) {
  429. t = t || Date.now();
  430. let time = new Date(t);
  431. let str = time.getMonth() < 9 ? ('0' + (time.getMonth() + 1)) : (time.getMonth() + 1);
  432. str += '-';
  433. str += time.getDate() < 10 ? ('0' + time.getDate()) : time.getDate();
  434. str += ' ';
  435. str += time.getHours();
  436. str += ':';
  437. str += time.getMinutes() < 10 ? ('0' + time.getMinutes()) : time.getMinutes();
  438. return str;
  439. }
  440. const formatDate2 = now => {
  441. let y = ''
  442. let m = ''
  443. let d = ''
  444. let h = ''
  445. let mi = ''
  446. let s = ''
  447. y = now.getFullYear();
  448. m = now.getMonth() + 1;
  449. d = now.getDate();
  450. h = now.getHours()
  451. mi = now.getMinutes()
  452. s = now.getSeconds()
  453. return y + '-' + (m < 10 ? "0" + m : m) + '-' + (d < 10 ? "0" + d : d);
  454. }
  455. function getNextDate(date, day) {
  456. var dd = new Date(date);
  457. dd.setDate(dd.getDate() + day);
  458. var y = dd.getFullYear();
  459. var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
  460. var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
  461. return y + "-" + m + "-" + d;
  462. }
  463. // 检测是否包括手机号码等敏感信息
  464. const is_contain_sensitive_words = str => {
  465. str = String(str)
  466. // 检测手机号码
  467. if (str.length >= 11) {
  468. for (let i = 0; i < str.length - 10; i++) {
  469. let str_new = Number(str.slice(i, i + 11))
  470. if (!isNaN(str_new)) {
  471. if (str_new >= 13000000000 && str_new < 20000000000) {
  472. return true
  473. }
  474. }
  475. }
  476. }
  477. // 检测是否包括敏感词汇
  478. const sensitive_words = [
  479. '共产党', '民进党', '民主进步党', '国民党', '中华民国', '蔡英文', '苏贞昌', '吴钊燮', '微信', '手机号', '电话号码',
  480. ]
  481. for (let i in sensitive_words) {
  482. if (str.indexOf(sensitive_words[i]) !== -1) {
  483. return true
  484. }
  485. }
  486. return false
  487. }
  488. // 从数组中多选数组
  489. const select_from_arr = (data, index) => {
  490. let district = data[0]
  491. let district_index_arr = data[1]
  492. let index_of = district_index_arr.indexOf(index)
  493. if (index_of === -1) {
  494. district_index_arr.push(index)
  495. return district_index_arr
  496. } else {
  497. let district_index_new = []
  498. district_index_arr.map((item, index2) => {
  499. if (index2 !== index_of) {
  500. district_index_new.push(item)
  501. }
  502. })
  503. return district_index_new
  504. }
  505. }
  506. // 获取最新用户信息
  507. const get_user_info = callback => {
  508. requestUrl('&WsAjaxBiz=Worker&WsAjaxAction=entityDataHandle', {
  509. handleMode: 'fetch',
  510. bizCatalog: 'WorkerEntity',
  511. }, res => {
  512. callback(res)
  513. })
  514. }
  515. // 从身份证中获取年龄
  516. const get_age_from_id_num = idcard => (idcard && idcard.length == 18 && !isNaN(idcard.slice(6, 10))) ? (new Date()
  517. .getFullYear() - Number(idcard.slice(6, 10))) : ''
  518. // 时间戳转换为时间
  519. function getLocalTime(nS) {
  520. return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ');
  521. }
  522. // 检测是否为身份证号码
  523. function IsIdCard(str) {
  524. var reg = /^[1-8][1-7]\d{4}(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/;
  525. return reg.test(str);
  526. }
  527. // 核销/支付
  528. const paySettleMer = (workid, callback = () => {}, handleMode = 'paySettle') => {
  529. console.log(handleMode)
  530. uni.showLoading({
  531. title: '加载中...',
  532. mask: true
  533. })
  534. let params2 = {
  535. bizCatalog: 'TodoWorkEntity',
  536. handleMode: 'fetch',
  537. workid,
  538. }
  539. // 查询待支付金额
  540. requestUrl('&WsAjaxBiz=Worker&WsAjaxAction=entityDataHandle', params2, res => {
  541. if (res.status) {
  542. console.log('查询待支付金额')
  543. console.log(res.data)
  544. uni.hideLoading()
  545. uni.showModal({
  546. title: '确认支付' + res.data.Result.btr_feetotal + '元?',
  547. success: (res) => {
  548. if (res.confirm) {
  549. uni.showLoading({
  550. title: '加载中...',
  551. mask: true
  552. })
  553. uni.login({
  554. success: res => {
  555. let params = {
  556. bizCatalog: 'TodoWorkEntity',
  557. handleMode,
  558. workid,
  559. minaCode: res.code,
  560. todo: 'allow',
  561. }
  562. console.log('paySettle处理请求参数')
  563. console.log('支付参数', params)
  564. requestUrl(
  565. '&WsAjaxBiz=Trader&WsAjaxAction=entityDataHandle',
  566. params,
  567. res => {
  568. console.log('paySettle处理获取参数')
  569. console.log(res)
  570. if (res.status) {
  571. let prePayInfo = res.data.Result
  572. .prePayInfo
  573. // 走支付
  574. if (prePayInfo) {
  575. console.log('prePayInfo')
  576. console.log(prePayInfo)
  577. uni.hideLoading()
  578. uni.requestPayment({
  579. ...prePayInfo,
  580. success: (res2) => {
  581. uni.showModal({
  582. title: '支付成功',
  583. showCancel: false,
  584. success: res => {
  585. callback
  586. ()
  587. }
  588. })
  589. },
  590. fail: function(
  591. res2) {
  592. if (res2
  593. .errMsg
  594. .indexOf(
  595. 'cancel'
  596. ) == -1
  597. ) {
  598. uni.showModal({
  599. title: '支付失败',
  600. content: JSON
  601. .stringify(
  602. res2
  603. ),
  604. showCancel: false,
  605. })
  606. }
  607. }
  608. });
  609. } else {
  610. // 走余额
  611. uni.showModal({
  612. title: '支付成功',
  613. showCancel: false,
  614. success: res => {
  615. callback()
  616. }
  617. })
  618. uni.hideLoading()
  619. return
  620. }
  621. }
  622. uni.hideLoading()
  623. })
  624. }
  625. })
  626. }
  627. }
  628. })
  629. }
  630. })
  631. }
  632. // 处理报名者假头像
  633. const formate_enrolled_heads = (enrolled_heads, num) => {
  634. let res_arr = []
  635. if (num > 0) {
  636. num = num > 3 ? 3 : num
  637. let enrolled_heads_arr = enrolled_heads.split(',')
  638. if (enrolled_heads_arr.length > 1) {
  639. res_arr = enrolled_heads_arr.slice(0, num)
  640. }
  641. }
  642. return res_arr
  643. }
  644. // 计算时间
  645. const calc_hours = (start_time, end_time) => {
  646. let h1 = start_time.slice(0, 2)
  647. let min1 = start_time.slice(3, 5)
  648. let h2 = end_time.slice(0, 2)
  649. let min2 = end_time.slice(3, 5)
  650. let res = (Number(h2) - Number(h1)) + (Number(min2) - Number(min1)) / 60
  651. return res < 0 ? '--' : res.toFixed(1)
  652. }
  653. // 计算日期
  654. const calc_date = (begin_datetime, finish_datetime) => {
  655. if (begin_datetime && finish_datetime) {
  656. let total_date = (new Date(finish_datetime) - new Date(begin_datetime)) / (1000 * 3600 * 24) + 1
  657. if (total_date > 0) {
  658. return total_date
  659. } else {
  660. return '--'
  661. }
  662. } else {
  663. return '--'
  664. }
  665. }
  666. const formate_name_card = (data) => {
  667. let res = {
  668. ...data
  669. }
  670. let lawer_name = res.lawer_name
  671. let lawer_idcard = res.lawer_idcard
  672. let str = ''
  673. for (let i = 0; i < lawer_name.length - 1; i++) {
  674. str += '*'
  675. }
  676. res.lawer_name = str + lawer_name.slice(lawer_name.length - 1, lawer_name.length)
  677. str = ''
  678. for (let i = 0; i < 13; i++) {
  679. str += '*'
  680. }
  681. res.lawer_idcard = lawer_idcard.slice(0, 3) + str + lawer_idcard.slice(16, 18)
  682. return res
  683. }
  684. const formate_name_card_mem = (data) => {
  685. let res = {
  686. ...data
  687. }
  688. let true_name = res.true_name
  689. let idcard = res.idcard
  690. let str = ''
  691. for (let i = 0; i < true_name.length - 1; i++) {
  692. str += '*'
  693. }
  694. res.true_name = str + true_name.slice(true_name.length - 1, true_name.length)
  695. str = ''
  696. for (let i = 0; i < 13; i++) {
  697. str += '*'
  698. }
  699. res.idcard = idcard.slice(0, 3) + str + idcard.slice(16, 18)
  700. return res
  701. }
  702. export default {
  703. formate_name_card_mem,
  704. formate_name_card,
  705. formatDate,
  706. init_go_easy,
  707. GoEasy,
  708. goEasy,
  709. serverUrl,
  710. serverUrlReq,
  711. webviewServerUrlReq,
  712. requestUrl,
  713. select_from_arr,
  714. uploadFileApi,
  715. uploadFileApiOSS,
  716. getPositionLocal,
  717. get_user_info,
  718. is_contain_sensitive_words,
  719. get_age_from_id_num,
  720. getLocalTime,
  721. IsIdCard,
  722. formatDate2,
  723. paySettleMer,
  724. get_message_data,
  725. formate_enrolled_heads,
  726. calc_hours,
  727. calc_date,
  728. getNextDate,
  729. }