tools.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. import moment from 'moment'
  2. import { getOrderPayData } from '@/common/api'
  3. // 获取微信支付并支付
  4. export const toWechatPay = (orderNo, remark) => {
  5. let sendData = { order_no: orderNo }
  6. if (remark) {
  7. sendData.order_remark = remark
  8. }
  9. getOrderPayData(sendData).then(res => {
  10. const { appId, nonceStr, paySign, signType, timeStamp } = res.data.param
  11. uni.requestPayment({
  12. provider: 'wxpay',
  13. nonceStr,
  14. package: res.data.param.package,
  15. paySign,
  16. signType,
  17. timeStamp,
  18. success: function(res) {
  19. uni.navigateTo({ url: `/subPages/paySuccess/paySuccess?orderNo=${orderNo}` })
  20. },
  21. fail: function(err) {
  22. uni.navigateTo({ url: `/subPages/orderDetail/orderDetail?orderNo=${orderNo}` })
  23. }
  24. })
  25. })
  26. }
  27. // 简单对象去空
  28. export const jsonFilterEmpty = data => {
  29. let tempData = {}
  30. for (var key in data) {
  31. if (data[key] === false || data[key] === 0 || !!data[key]) {
  32. tempData[key] = data[key] instanceof Array ? data[key] : data[key]
  33. }
  34. }
  35. return tempData
  36. }
  37. // 定义一个深拷贝函数 接收目标target参数
  38. export function deepClone(target) {
  39. // 定义一个变量
  40. let result
  41. // 如果当前需要深拷贝的是一个对象的话
  42. if (typeof target === 'object') {
  43. // 如果是一个数组的话
  44. if (Array.isArray(target)) {
  45. result = [] // 将result赋值为一个数组,并且执行遍历
  46. for (let i in target) {
  47. // 递归克隆数组中的每一项
  48. result.push(deepClone(target[i]))
  49. }
  50. // 判断如果当前的值是null的话;直接赋值为null
  51. } else if (target === null) {
  52. result = null
  53. // 判断如果当前的值是一个RegExp对象的话,直接赋值
  54. } else if (target.constructor === RegExp) {
  55. result = target
  56. } else {
  57. // 否则是普通对象,直接for in循环,递归赋值对象的所有值
  58. result = {}
  59. for (let i in target) {
  60. result[i] = deepClone(target[i])
  61. }
  62. }
  63. // 如果不是对象的话,就是基本数据类型,那么直接赋值
  64. } else {
  65. result = target
  66. }
  67. // 返回最终结果
  68. return result
  69. }
  70. export function formatDate(data, type) {
  71. if (data) {
  72. let result = data.slice(0, 10).split('-')
  73. if (type) {
  74. return result.join(type)
  75. } else {
  76. return result[0] + '年' + result[1] + '月' + result[2] + '日'
  77. }
  78. } else {
  79. return ''
  80. }
  81. }
  82. // 简单对象去null
  83. export const jsonFilterNull = data => {
  84. let tempData = {}
  85. for (var key in data) {
  86. // if (data[key] === false || data[key] === 0 || !!data[key]) {
  87. // tempData[key] = data[key] instanceof Array ? data[key] : data[key];
  88. // }
  89. if (data[key] == null) {
  90. if (data[key] instanceof Array) {
  91. tempData[key] = []
  92. } else {
  93. tempData[key] = ''
  94. }
  95. } else {
  96. tempData[key] = data[key]
  97. }
  98. }
  99. return tempData
  100. }
  101. // 计算生肖
  102. export const getShengXiao = birth => {
  103. birth += ''
  104. var len = birth.length
  105. if (len < 4 && len != 2) {
  106. return ''
  107. }
  108. if (len == 2) {
  109. birth - 0 > 30 ? birth = '19' + birth : birth = '20' + birth
  110. }
  111. var year = (new Date(birth)).getFullYear()
  112. var arr = ['猴', '鸡', '狗', '猪', '鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊']
  113. return /^\d{4}$/.test(year) ? arr[year % 12] : ''
  114. }
  115. /***************************************************************************
  116. * 计算年龄
  117. *
  118. * 支持传递["yyyy-MM-dd"]等格式的字符串
  119. *
  120. */
  121. // 序列化页面参数
  122. export const stringPageOptions = data => {
  123. let result = '?'
  124. if (data) {
  125. for (let key in data) {
  126. result += `&${key}=${data[key]}`
  127. }
  128. result = result.replace(/&/, '')
  129. return result
  130. } else {
  131. return ''
  132. }
  133. }
  134. // 手机号格式化
  135. export const string2fourPhone = (data, hideFlag) => {
  136. let result = data
  137. if (data) {
  138. result = data.replace(/s/g, '') //去掉空格
  139. if (hideFlag) {
  140. result = data.replace(/^(.{3}).*(.{4})/, '$1****$2')
  141. console.log(result) // 138****8888
  142. } else {
  143. result = data.replace(/^(.{3})(.*)(.{4})/, '$1 $2 $3')
  144. console.log(result) // 138 8888 8888
  145. }
  146. }
  147. return result || ''
  148. }
  149. // 时间格式化 今天 昨天 年月日
  150. export const getFormatData = dataStr => {
  151. var time = new Date()
  152. if (dataStr) {
  153. if (dataStr.indexOf('T') != -1) {
  154. dataStr = dataStr.replace('T', ' ')
  155. }
  156. if (dataStr.indexOf('-') != -1) {
  157. dataStr = dataStr.replace(/\-/g, '/')
  158. }
  159. if (dataStr.indexOf('.') != -1) {
  160. dataStr = dataStr.substring(0, dataStr.indexOf('.'))
  161. console.log(dataStr)
  162. }
  163. time = new Date(dataStr)
  164. } else {
  165. return '无'
  166. }
  167. var nowTime = new Date()
  168. var month = ((time.getMonth() + 1) + '').length < 2 ? '0' + (time.getMonth() + 1) : (time.getMonth() + 1)
  169. var dates = (time.getDate() + '').length < 2 ? '0' + time.getDate() : time.getDate()
  170. var minute = (time.getMinutes() + '').length < 2 ? '0' + time.getMinutes() : time.getMinutes()
  171. var hours = (time.getHours() + '').length < 2 ? '0' + time.getHours() : time.getHours()
  172. var minute = (time.getMinutes() + '').length < 2 ? '0' + time.getMinutes() : time.getMinutes()
  173. var second = (time.getSeconds() + '').length < 2 ? '0' + time.getSeconds() : time.getSeconds()
  174. var strTime = time.getFullYear() + '.' + month + '.' + dates + ' ' + hours + ':' + minute
  175. if (time.setHours(0, 0, 0, 0) == nowTime.setHours(0, 0, 0, 0)) {
  176. strTime = '今天 ' + hours + ':' + minute
  177. } else if (time.setHours(0, 0, 0, 0) - nowTime.setHours(0, 0, 0, 0) == -86400000) {
  178. strTime = '昨天 ' + hours + ':' + minute
  179. } else if (time.setHours(0, 0, 0, 0) - nowTime.setHours(0, 0, 0, 0) == 86400000) {
  180. strTime = '明天 ' + hours + ':' + minute
  181. }
  182. return strTime
  183. }
  184. // 格式化日期
  185. export const commonFormatDate = date => {
  186. if (date && date != 'null') {
  187. return moment(date).format('YYYY.MM.DD HH时')
  188. } else {
  189. return ''
  190. }
  191. }
  192. // 格式化日期
  193. export const commonFormatDate2 = date => {
  194. if (date && date != 'null') {
  195. return moment(date).format('YYYY.MM.DD')
  196. } else {
  197. return ''
  198. }
  199. }
  200. // 格式化日期
  201. export const commonFormatDate3 = date => {
  202. if (date && date != 'null') {
  203. return moment(date).format('YYYY.MM.DD HH:mm')
  204. } else {
  205. return ''
  206. }
  207. }
  208. export const getWeekforStr = dateStr => {
  209. var time = new Date()
  210. if (dateStr) {
  211. if (dateStr.indexOf('T') != -1) {
  212. dateStr = dateStr.replace('T', ' ')
  213. }
  214. if (dateStr.indexOf('-') != -1) {
  215. dateStr = dateStr.replace(/\-/g, '/')
  216. }
  217. if (dateStr.indexOf('.') != -1) {
  218. dateStr = dateStr.substring(0, dateStr.indexOf('.'))
  219. console.log(dateStr)
  220. }
  221. time = new Date(dateStr)
  222. }
  223. var str = ''
  224. var week = time.getDay()
  225. if (week == 0) {
  226. str = '周日'
  227. } else if (week == 1) {
  228. str = '周一'
  229. } else if (week == 2) {
  230. str = '周二'
  231. } else if (week == 3) {
  232. str = '周三'
  233. } else if (week == 4) {
  234. str = '周四'
  235. } else if (week == 5) {
  236. str = '周五'
  237. } else if (week == 6) {
  238. str = '周六'
  239. }
  240. return str
  241. }
  242. // 获取显示地址
  243. export const getAddressDisplay = data => {
  244. const { province = '', city = '', area = '', address = '' } = data
  245. return province + city + area + address
  246. }
  247. // 获取图片baseUrl
  248. export const getImgBaseUrl = () => {
  249. return 'http://wx.ruweitg.com/static/images/'
  250. }