tools.js 8.5 KB

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