helper.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. import * as config from '../config'
  2. const selectContractNo = {}
  3. const detailData = {}
  4. const erpWarehouse = {}
  5. let rolesList = []
  6. const gjList = []
  7. const dtList = []
  8. const now = Date.now || function() {
  9. return new Date().getTime();
  10. };
  11. const isArray = Array.isArray || function(obj) {
  12. return obj instanceof Array;
  13. };
  14. const getListByUserId = function() {
  15. let baseUrlNew = config.def().baseUrlNew
  16. var userInfo = uni.getStorageSync("userInfo")
  17. console.log("------", userInfo)
  18. if (userInfo) {
  19. uni.request({
  20. url: baseUrlNew + '/roleMenu/query/getListByUserId',
  21. data: {
  22. userId: userInfo.id ? userInfo.id : userInfo.data.id
  23. },
  24. method: 'GET',
  25. success: (res) => {
  26. if (res.statusCode === 200) {
  27. // debugger
  28. rolesList = []
  29. uni.setStorageSync("jurisdiction", res.data.data)
  30. let list = getUserAllRoles(res.data.data);
  31. uni.setStorageSync("rolesList", list)
  32. }
  33. }
  34. })
  35. }
  36. }
  37. const getUserAllRoles = (item) => {
  38. console.log(item)
  39. // debugger
  40. for (let i = 0; i < item.length; i++) {
  41. rolesList.push(item[i].name)
  42. // console.log('用户权限',rolesList)
  43. if (item[i].children && item[i].children.length > 0) {
  44. getUserAllRoles(item[i].children)
  45. }
  46. }
  47. return rolesList;
  48. }
  49. const contactCustomerService = (phone) => {
  50. console.log(phone)
  51. //客服
  52. if (!phone) {
  53. phone = '18241771147'
  54. }
  55. const res = uni.getSystemInfoSync();
  56. // ios系统默认有个模态框
  57. if (res.platform == 'ios') {
  58. uni.makePhoneCall({
  59. phoneNumber: phone,
  60. success() {
  61. console.log('拨打成功了');
  62. },
  63. fail() {
  64. console.log('拨打失败了');
  65. }
  66. })
  67. } else {
  68. //安卓手机手动设置一个showActionSheet
  69. uni.showActionSheet({
  70. itemList: [phone, '呼叫'],
  71. success: function(res) {
  72. console.log(res);
  73. if (res.tapIndex == 1) {
  74. uni.makePhoneCall({
  75. phoneNumber: phone,
  76. success: (res) => {
  77. console.log('调用成功!')
  78. },
  79. // 失败回调
  80. fail: (res) => {
  81. console.log('调用失败!')
  82. // contactCustomerService(item)
  83. }
  84. })
  85. }
  86. }
  87. })
  88. }
  89. // console.log("联系客服")
  90. // uni.makePhoneCall({
  91. // phoneNumber: item,
  92. // success: (res) => {
  93. // console.log('调用成功!')
  94. // },
  95. // // 失败回调
  96. // fail: (res) => {
  97. // console.log('调用失败!')
  98. // contactCustomerService(item)
  99. // }
  100. // });
  101. }
  102. const setAudit = (item) => {
  103. let _list = uni.getStorageSync("copyTaskInfo")
  104. let _isShowbtn = true
  105. if (_list.length == 0) {
  106. _isShowbtn = false
  107. }
  108. for (let i = 0; i < _list.length; i++) {
  109. if (_list[i].businessId == item.id) {
  110. _list.splice(i, 1)
  111. uni.setStorageSync("copyTaskInfo", _list)
  112. }
  113. }
  114. if (_list.length > 0) {
  115. uni.navigateTo({
  116. url: _list[0].itemUrl + '&isShowbtn=' + _isShowbtn,
  117. })
  118. }
  119. console.log(item)
  120. }
  121. //获取当天日期
  122. const getNowFormatDate = () => {
  123. var date = new Date();
  124. var seperator1 = "-";
  125. var year = date.getFullYear();
  126. var month = date.getMonth() + 1;
  127. var strDate = date.getDate();
  128. if (month >= 1 && month <= 9) {
  129. month = "0" + month;
  130. }
  131. if (strDate >= 0 && strDate <= 9) {
  132. strDate = "0" + strDate;
  133. }
  134. var currentdate = year + seperator1 + month + seperator1 + strDate;
  135. return currentdate;
  136. }
  137. //获取当天+N日期
  138. const getNowNumFormatDate = (num) => {
  139. var date = new Date();
  140. var seperator1 = "-";
  141. var year = date.getFullYear();
  142. var month = date.getMonth() + 1;
  143. var strDate = date.getDate() + num;
  144. if (month >= 1 && month <= 9) {
  145. month = "0" + month;
  146. }
  147. if (strDate >= 0 && strDate <= 9) {
  148. strDate = "0" + strDate;
  149. }
  150. var currentdate = year + seperator1 + month + seperator1 + strDate;
  151. return currentdate;
  152. }
  153. const convertCurrency = (money) => {
  154. //汉字的数字
  155. var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
  156. //基本单位
  157. var cnIntRadice = new Array('', '拾', '佰', '仟');
  158. //对应整数部分扩展单位
  159. var cnIntUnits = new Array('', '万', '亿', '兆');
  160. //对应小数部分单位
  161. var cnDecUnits = new Array('角', '分', '毫', '厘');
  162. //整数金额时后面跟的字符
  163. var cnInteger = '整';
  164. //整型完以后的单位
  165. var cnIntLast = '元';
  166. //最大处理的数字
  167. var maxNum = 999999999999999.9999;
  168. //金额整数部分
  169. var integerNum;
  170. //金额小数部分
  171. var decimalNum;
  172. //输出的中文金额字符串
  173. var chineseStr = '';
  174. //分离金额后用的数组,预定义
  175. var parts;
  176. if (money == '') {
  177. return '';
  178. }
  179. money = parseFloat(money);
  180. if (money >= maxNum) {
  181. //超出最大处理数字
  182. return '';
  183. }
  184. if (money == 0) {
  185. chineseStr = cnNums[0] + cnIntLast + cnInteger;
  186. return chineseStr;
  187. }
  188. //转换为字符串
  189. money = money.toString();
  190. if (money.indexOf('.') == -1) {
  191. integerNum = money;
  192. decimalNum = '';
  193. } else {
  194. parts = money.split('.');
  195. integerNum = parts[0];
  196. decimalNum = parts[1].substr(0, 4);
  197. }
  198. //获取整型部分转换
  199. if (parseInt(integerNum, 10) > 0) {
  200. var zeroCount = 0;
  201. var IntLen = integerNum.length;
  202. for (var i = 0; i < IntLen; i++) {
  203. var n = integerNum.substr(i, 1);
  204. var p = IntLen - i - 1;
  205. var q = p / 4;
  206. var m = p % 4;
  207. if (n == '0') {
  208. zeroCount++;
  209. } else {
  210. if (zeroCount > 0) {
  211. chineseStr += cnNums[0];
  212. }
  213. //归零
  214. zeroCount = 0;
  215. chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
  216. }
  217. if (m == 0 && zeroCount < 4) {
  218. chineseStr += cnIntUnits[q];
  219. }
  220. }
  221. chineseStr += cnIntLast;
  222. }
  223. //小数部分
  224. if (decimalNum != '') {
  225. var decLen = decimalNum.length;
  226. for (var i = 0; i < decLen; i++) {
  227. var n = decimalNum.substr(i, 1);
  228. if (n != '0') {
  229. chineseStr += cnNums[Number(n)] + cnDecUnits[i];
  230. }
  231. }
  232. }
  233. if (chineseStr == '') {
  234. chineseStr += cnNums[0] + cnIntLast + cnInteger;
  235. } else if (decimalNum == '') {
  236. chineseStr += cnInteger;
  237. }
  238. return chineseStr;
  239. }
  240. //获取省份简称
  241. const getProvinceAbbreviation = (province) => {
  242. if (province == "北京市" || province == "北京")
  243. return "京";
  244. else if (province == "天津市" || province == "天津")
  245. return "津";
  246. else if (province == "重庆市" || province == "重庆")
  247. return "渝";
  248. else if (province == "上海市" || province == "上海")
  249. return "沪";
  250. else if (province == "河北省" || province == "河北")
  251. return "冀";
  252. else if (province == "山西省" || province == "山西")
  253. return "晋";
  254. else if (province == "辽宁省" || province == "辽宁")
  255. return "辽";
  256. else if (province == "吉林省" || province == "吉林")
  257. return "吉";
  258. else if (province == "黑龙江省" || province == "黑龙江")
  259. return "黑";
  260. else if (province == "江苏省" || province == "江苏")
  261. return "苏";
  262. else if (province == "浙江省" || province == "浙江")
  263. return "浙";
  264. else if (province == "安徽省" || province == "安徽")
  265. return "皖";
  266. else if (province == "福建省" || province == "福建")
  267. return "闽";
  268. else if (province == "江西省" || province == "江西")
  269. return "赣";
  270. else if (province == "山东省" || province == "山东")
  271. return "鲁";
  272. else if (province == "河南省" || province == "河南")
  273. return "豫";
  274. else if (province == "湖北省" || province == "湖北")
  275. return "鄂";
  276. else if (province == "湖南省" || province == "湖南")
  277. return "湘";
  278. else if (province == "广东省" || province == "广东")
  279. return "粤";
  280. else if (province == "海南省" || province == "海南")
  281. return "琼";
  282. else if (province == "四川省" || province == "四川")
  283. return "川";
  284. else if (province == "贵州省" || province == "贵州")
  285. return "贵";
  286. else if (province == "云南省" || province == "云南")
  287. return "云";
  288. else if (province == "陕西省" || province == "陕西")
  289. return "陕";
  290. else if (province == "甘肃省" || province == "甘肃")
  291. return "甘";
  292. else if (province == "青海省" || province == "青海")
  293. return "青";
  294. else if (province == "台湾省" || province == "台湾")
  295. return "台";
  296. else if (province == "内蒙古自治区" || province == "内蒙古")
  297. return "蒙";
  298. else if (province == "广西壮族自治区" || province == "广西")
  299. return "桂";
  300. else if (province == "宁夏回族自治区" || province == "宁夏")
  301. return "宁";
  302. else if (province == "新疆维吾尔自治区" || province == "新疆")
  303. return "新";
  304. else if (province == "西藏自治区" || province == "西藏")
  305. return "藏";
  306. else if (province == "香港特别行政区" || province == "香港")
  307. return "港";
  308. else if (province == "澳门特别行政区" || province == "澳门")
  309. return "澳";
  310. }
  311. // 获取市、区简称
  312. const filterUrban = (s) => {
  313. if (s.lastIndexOf('市') != -1) {
  314. return s.substring(0, s.length - 1)
  315. }
  316. return s
  317. }
  318. const filterArea = (q) => {
  319. if (q.lastIndexOf('区') != -1) {
  320. return q.substring(0, q.length - 1)
  321. }
  322. return q
  323. }
  324. const fUN_AmapLocation = uni.requireNativePlugin('FUN-AmapLocation');
  325. function getDates() {
  326. // var new_Date = new Date(t2)
  327. var new_Date = new Date()
  328. var timesStamp = new_Date.getTime()
  329. var currenDay = new_Date.getDay()
  330. var dates = []
  331. for (var i = 0; i < 7; i++) {
  332. dates.push(new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)).toLocaleDateString().replace(
  333. /[年月]/g, '-').replace(/[日上下午]/g, ''));
  334. }
  335. var weekStar = new Date(dates[0] + ' 00:00:00').getTime()
  336. var weekEnd = new Date(dates[dates.length - 1] + ' 23:59:59').getTime()
  337. var week = [weekStar, weekEnd]
  338. return week
  339. }
  340. //判断是否是今天,昨天,明天
  341. function isToday(str, type) {
  342. //type == 0 判断是否是今天,type == 1 判断是否是昨天,type == 2 判断是否是明天
  343. if (type == 0) {
  344. if (new Date(str).toDateString() === new Date().toDateString()) {
  345. // console.log('今天');
  346. return true
  347. } else {
  348. // console.log('不是今天');
  349. return false
  350. }
  351. }
  352. if (type == 1) {
  353. if (new Date(str).toDateString() === new Date(new Date().getTime() - 1000 * 60 * 60 * 24).toDateString()) {
  354. // console.log('昨天');
  355. return true
  356. } else {
  357. // console.log('不是昨天');
  358. return false
  359. }
  360. }
  361. if (type == 2) {
  362. if (new Date(str).toDateString() === new Date(new Date().getTime() + 1000 * 60 * 60 * 24).toDateString()) {
  363. // console.log('明天');
  364. return true
  365. } else {
  366. // console.log('不是明天');
  367. return false
  368. }
  369. }
  370. }
  371. const changeTime = (t1) => {
  372. // console.log(t1)
  373. // t1截止时间 t2当前时间
  374. // 调用getDtes函数把当前时间传过去,获取本周一和本周日时间戳
  375. // var weeks = getDates(t2)
  376. var weeks = getDates()
  377. // console.log(weeks)
  378. var dateBegin = new Date(t1.replace(/-/g, '/')) //解决ios时new Date(2021-04-17 09:50:20)报错
  379. // var dateEnd = new Date(t2)
  380. var dateEnd = new Date()
  381. // 时间戳
  382. var end = dateBegin.getTime()
  383. // console.log(end)
  384. var nows = dateEnd.getTime()
  385. // console.log(nows)
  386. // 获取当天0点时间戳todayStar
  387. const start = new Date(new Date(dateEnd).toLocaleDateString())
  388. start.setTime(start.getTime())
  389. var todayStar = new Date(start).getTime()
  390. // console.log(todayStar)
  391. // 获取当天23点59分59秒时间戳todayEnd
  392. var ends = new Date(new Date(new Date(dateEnd).toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1)
  393. var todayEnd = new Date(ends).getTime()
  394. // console.log(todayEnd)
  395. // 时间差的毫秒数
  396. var dateDiff = Math.abs(dateBegin.getTime() - dateEnd.getTime())
  397. // 计算出相差天数
  398. var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000))
  399. // console.log(dayDiff);
  400. // 计算天数后剩余的毫秒数
  401. var leave1 = dateDiff % (24 * 3600 * 1000)
  402. // 计算出小时数
  403. var hours = Math.floor(leave1 / (3600 * 1000))
  404. // console.log(hours);
  405. // 计算相差分钟数
  406. var leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数
  407. // 计算相差分钟数
  408. var minutes = Math.floor(leave2 / (60 * 1000))
  409. // console.log(minutes);
  410. // t1截止时间 t2当前时间
  411. if (dateEnd < dateBegin) {
  412. if ((dayDiff === 0)) {
  413. if (hours === 0) {
  414. if (minutes < 30 || minutes == 30) {
  415. return minutes + '分钟后'
  416. } else {
  417. return '今天' + t1.substring(10, 16)
  418. }
  419. } else {
  420. if (isToday(end, 0)) {
  421. return '今天' + t1.substring(10, 16)
  422. } else {
  423. return '明天' + t1.substring(10, 16)
  424. }
  425. }
  426. } else if (dayDiff === 1) {
  427. if (isToday(end, 2)) {
  428. return '明天' + t1.substring(10, 16)
  429. } else {
  430. if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
  431. var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
  432. var week = weekArray[new Date(t1.replace(/-/g, '/')).getDay()] // 注意此处必须是先new一个Date
  433. return '周' + week + t1.substring(10, 16)
  434. } else {
  435. return t1.substring(0, 16).replace(/-/g, '/')
  436. }
  437. }
  438. } else {
  439. if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
  440. var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
  441. var week = weekArray[new Date(t1.replace(/-/g, '/')).getDay()] // 注意此处必须是先new一个Date
  442. return '周' + week + t1.substring(10, 16)
  443. } else {
  444. return t1.substring(0, 16).replace(/-/g, '/')
  445. }
  446. }
  447. }
  448. if (dateEnd === dateBegin) {
  449. return '刚刚'
  450. }
  451. if (dateEnd > dateBegin) {
  452. if (dayDiff === 0) {
  453. if (hours === 0) {
  454. if (minutes < 60 || minutes == 60) {
  455. if (minutes < 5 || minutes == 5) {
  456. return '刚刚'
  457. } else {
  458. return minutes + '分钟前'
  459. }
  460. } else {
  461. return '今天' + t1.substring(10, 16)
  462. }
  463. } else {
  464. if (isToday(end, 0)) {
  465. return hours + '小时前'
  466. } else {
  467. return '昨天' + t1.substring(10, 16)
  468. }
  469. }
  470. } else if (dayDiff === 1) {
  471. if (isToday(end, 1)) {
  472. // return '昨天' + t1.substring(10, 16)
  473. return dayDiff + '天前'
  474. } else {
  475. if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
  476. var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
  477. var week = weekArray[new Date(t1.replace(/-/g, '/')).getDay()] // 注意此处必须是先new一个Date
  478. return '周' + week + t1.substring(10, 16)
  479. } else {
  480. return t1.substring(0, 16).replace(/-/g, '/')
  481. }
  482. }
  483. } else if (dayDiff < 30) {
  484. // return dayDiff +'天前'+ t1.substring(10, 16)
  485. return dayDiff + '天前'
  486. } else if (dayDiff > 30 && dayDiff < 365) {
  487. return t1.substring(5, 10)
  488. } else if (dayDiff > 365) {
  489. return t1.substring(0, 4)
  490. } else {
  491. if ((weeks[0] < end || weeks[0] == end) && (weeks[1] > end || weeks[1] == end)) {
  492. var weekArray = new Array('日', '一', '二', '三', '四', '五', '六')
  493. var week = weekArray[new Date(t1.replace(/-/g, '/')).getDay()] // 注意此处必须是先new一个Date
  494. return '周' + week + t1.substring(10, 16)
  495. } else {
  496. return t1.substring(0, 16).replace(/-/g, '/')
  497. }
  498. }
  499. }
  500. }
  501. export default {
  502. changeTime,
  503. detailData,
  504. selectContractNo,
  505. contactCustomerService,
  506. now,
  507. isArray,
  508. erpWarehouse,
  509. getListByUserId,
  510. setAudit,
  511. getNowFormatDate,
  512. getNowNumFormatDate,
  513. getProvinceAbbreviation,
  514. convertCurrency,
  515. filterUrban,
  516. filterArea,
  517. gjList,
  518. dtList,
  519. fUN_AmapLocation
  520. }