tools.js 7.0 KB

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