123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- import store from '@/store'
- import * as util from '@/utils/util'
- import { paginate } from '@/common/constant'
- /**
- * 显示成功提示框
- */
- export const showSuccess = (msg, callback) => {
- uni.showToast({
- title: msg,
- icon: 'success',
- mask: true,
- duration: 1500,
- success() {
- callback && callback()
- }
- })
- }
- /**
- * 显示失败提示框
- */
- export const showError = (msg, callback) => {
- uni.showModal({
- title: '友情提示',
- content: msg,
- showCancel: false,
- success(res) {
- callback && callback()
- }
- })
- }
- /**
- * 显示纯文字提示框
- */
- export const showToast = (msg, duration = 1500, mask = true) => {
- uni.showToast({
- title: msg, // 提示的内容
- icon: 'none',
- mask, // 是否显示透明蒙层,防止触摸穿透
- duration // 提示的延迟时间,单位毫秒,默认:1500
- })
- }
- /**
- * tabBar页面路径列表 (用于链接跳转时判断)
- * tabBarLinks为常量, 无需修改
- */
- export const getTabBarLinks = () => {
- const tabBarLinks = [
- 'pages/index/index',
- 'pages/category/index',
- 'pages/cart/index',
- 'pages/user/index'
- ]
- return tabBarLinks
- }
- /**
- * 生成完整的H5地址 [带参数]
- * @param {string} h5Url H5访问地址
- * @param {string} path 页面路径
- * @param {object} params 页面参数
- * @return {string}
- */
- export const buildUrL = (h5Url, path, params) => {
- let complete = h5Url
- if (!util.isEmpty(path)) {
- complete += '#/' + path
- const shareParamsStr = getShareUrlParams(params)
- if (!util.isEmpty(shareParamsStr)) {
- complete += '?' + shareParamsStr
- }
- }
- return complete
- }
- /**
- * 生成转发的url参数(string格式)
- */
- export const getShareUrlParams = (params) => {
- return util.urlEncode({
- // refereeId: store.getters.userId, // 推荐人ID
- ...params
- })
- }
- /**
- * 跳转到指定页面url
- * 支持tabBar页面
- * @param {string} url 页面路径
- * @param {object} query 页面参数
- * @param {string} modo 跳转类型(默认navigateTo)
- */
- export const navTo = (url, query = {}, modo = 'navigateTo') => {
- if (!url || url.length == 0) {
- return false
- }
- // tabBar页面, 使用switchTab
- if (util.inArray(url, getTabBarLinks())) {
- uni.switchTab({
- url: `/${url}`
- })
- return true
- }
- // 生成query参数
- const queryStr = !util.isEmpty(query) ? '?' + util.urlEncode(query) : ''
- // 普通页面, 使用navigateTo
- modo === 'navigateTo' && uni.navigateTo({
- url: `/${url}${queryStr}`
- })
- // 特殊指定, 使用redirectTo
- modo === 'redirectTo' && uni.redirectTo({
- url: `/${url}${queryStr}`
- })
- return true
- }
- /**
- * 获取购物车商品总数量
- * @param {*} value
- */
- export const getCartTotalNum = (value) => {
- const cartTotal = uni.getStorageSync('cartTotalNum') || 0
- return checkLogin() ? cartTotal : 0
- }
- /**
- * 记录购物车商品总数量
- * @param {*} value
- */
- export const setCartTotalNum = (value) => {
- uni.setStorageSync('cartTotalNum', Number(value))
- }
- /**
- * 设置购物车tabbar的角标
- * 该方法只能在tabbar页面中调用, 其他页面调用会报错
- */
- export const setCartTabBadge = () => {
- const cartTabbarIndex = 2
- const cartTotal = getCartTotalNum()
- if (cartTotal > 0) {
- uni.setTabBarBadge({
- index: cartTabbarIndex,
- text: `${cartTotal}`
- })
- } else {
- uni.removeTabBarBadge({
- index: cartTabbarIndex
- })
- }
- return
- }
- /**
- * 验证是否已登录
- */
- export const checkLogin = () => {
- return !!store.getters.userId
- }
- /**
- * 发起支付请求
- * @param {Object} 参数
- */
- export const wxPayment = (option) => {
- const options = {
- timeStamp: '',
- nonceStr: '',
- prepay_id: '',
- paySign: '',
- ...option
- }
- return new Promise((resolve, reject) => {
- uni.requestPayment({
- provider: 'wxpay',
- timeStamp: options.timeStamp,
- nonceStr: options.nonceStr,
- 'package': `prepay_id=${options.prepay_id}`,
- signType: 'MD5',
- paySign: options.paySign,
- success: res => resolve(res),
- fail: res => reject(res)
- })
- })
- }
- /**
- * 加载更多列表数据
- * @param {Object} resList 新列表数据
- * @param {Object} oldList 旧列表数据
- * @param {int} pageNo 当前页码
- */
- export const getEmptyPaginateObj = () => {
- return util.cloneObj(paginate)
- }
- /**
- * 加载更多列表数据
- * @param {Object} resList 新列表数据
- * @param {Object} oldList 旧列表数据
- * @param {int} pageNo 当前页码
- */
- export const getMoreListData = (resList, oldList, pageNo) => {
- // 如果是第一页需手动制空列表
- if (pageNo == 1) oldList.data = []
- // 合并新数据
- return oldList.data.concat(resList.data)
- }
|