初始化万家商超用户端仓库
This commit is contained in:
294
common/mixin/index.js
Normal file
294
common/mixin/index.js
Normal file
@ -0,0 +1,294 @@
|
||||
import Vue from 'vue';
|
||||
import { Router } from '@/common/utils/index.js';
|
||||
import { needLoginPages, STATIC_URL, HOME_PAGE_URL, LOGIN_PAGE_URL, ACCEPT_PLATFORM, SYSTEM_CONFIG } from '@/common/config.js';
|
||||
const router = new Router({ needLoginPages });
|
||||
Vue.mixin({
|
||||
data() { return { STATIC_URL: STATIC_URL, isPublish: false } },
|
||||
computed: {
|
||||
i18n() {
|
||||
return this.$t('defVal');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// #ifdef APP-PLUS
|
||||
toJSON() { },
|
||||
// #endif
|
||||
|
||||
getPublishStatus() {
|
||||
this.$api.post(global.apiUrls.post673572b0bebd7, {app_version: SYSTEM_CONFIG.appVersion, type: ACCEPT_PLATFORM == 'IOS' ? 'ios' : 'android'}) .then(res => {
|
||||
if (res.data.code == 1) {
|
||||
this.isPublish = !res.data.data.is_listing;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 页面抛出事件
|
||||
benbenThrowPageEvent(event, data) {
|
||||
uni.$emit(event, data)
|
||||
},
|
||||
//修改uniapi为promise类型
|
||||
syncUniApi(apiName, params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni[apiName]({
|
||||
...params,
|
||||
success: (res) => {
|
||||
resolve(res)
|
||||
},
|
||||
fail: (err) => {
|
||||
reject(err)
|
||||
},
|
||||
});
|
||||
})
|
||||
},
|
||||
// 跳转首页
|
||||
toHomeDiy() {
|
||||
router.switchTab(HOME_PAGE_URL[global.appTabBarType]);
|
||||
},
|
||||
// 跳转登录页
|
||||
toLoginDiy() {
|
||||
router.navigateTo(LOGIN_PAGE_URL);
|
||||
},
|
||||
//微信支付
|
||||
requestPaymentWx(data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.requestPayment({
|
||||
provider: 'wxpay',
|
||||
// #ifdef MP-WEIXIN
|
||||
timeStamp: data.timeStamp,
|
||||
nonceStr: data.nonceStr,
|
||||
package: data.package,
|
||||
signType: data.signType,
|
||||
paySign: data.paySign,
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
orderInfo: data,
|
||||
// #endif
|
||||
success: (e) => {
|
||||
console.log('success', e)
|
||||
if (e.errMsg == 'requestPayment:ok') {
|
||||
resolve()
|
||||
}
|
||||
},
|
||||
fail: (e) => {
|
||||
// #ifdef APP-PLUS
|
||||
let failMsg = 'requestPayment:fail canceled';
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
let failMsg = 'requestPayment:fail cancel';
|
||||
// #endif
|
||||
if (e.errMsg == failMsg) {
|
||||
this.$message.info(this.$t('取消支付'));
|
||||
} else {
|
||||
this.$message.info(this.$t("支付失败,请稍后重试"));
|
||||
}
|
||||
reject(e)
|
||||
},
|
||||
complete: () => {
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
// 支付宝支付
|
||||
requestPaymentAli(data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.requestPayment({
|
||||
provider: 'alipay',
|
||||
orderInfo: data,
|
||||
success: (e) => {
|
||||
if (e.errMsg == 'requestPayment:ok') {
|
||||
resolve()
|
||||
}
|
||||
},
|
||||
fail: (e) => {
|
||||
if (e.errMsg == 'requestPayment:fail canceled') {
|
||||
this.$message.info(this.$t('取消支付'));
|
||||
} else {
|
||||
this.$message.info(this.$t("支付失败,请稍后重试"));
|
||||
}
|
||||
reject(e)
|
||||
},
|
||||
complete: () => {
|
||||
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// diy点击事件处理函数
|
||||
handleEven(e, params) {
|
||||
let dataset = e.currentTarget && e.currentTarget.dataset;
|
||||
let type, data;
|
||||
if (dataset) {
|
||||
type = dataset.event_type
|
||||
data = dataset.event_params
|
||||
} else {
|
||||
type = e
|
||||
data = params
|
||||
}
|
||||
console.log('点击事件触发', dataset, type, data);
|
||||
this.$util.handleAllFn(type, data);
|
||||
},
|
||||
// 设置自定义头部
|
||||
setNavigationBarTitle(title) {
|
||||
uni.setNavigationBarTitle({
|
||||
title: title
|
||||
})
|
||||
},
|
||||
// 点击复制
|
||||
copyText(data) {
|
||||
uni.setClipboardData({
|
||||
data: data,
|
||||
success: () => {
|
||||
this.$message.success('复制成功')
|
||||
}
|
||||
});
|
||||
},
|
||||
// 点击打电话
|
||||
callMobile(phoneNumber) {
|
||||
let STORE_PERMISSION = uni.getStorageSync('PLATFORM_PERMISSION_PHONE') || false;
|
||||
if (!STORE_PERMISSION && ACCEPT_PLATFORM == 'Android') {
|
||||
this.$util.showModal({
|
||||
title: '提示',
|
||||
content: '萬家商超访问电话权限及功能用于联系平台,是否允许?',
|
||||
confirmColor: "#FF2020",
|
||||
// confirmText: this.i18n['允许'],
|
||||
// cancelText:this.i18n["取消"],
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
uni.setStorageSync('PLATFORM_PERMISSION_PHONE', true)
|
||||
this.$util.showModal({
|
||||
title: '拨打电话给', content: phoneNumber + '', confirmText: '拨打', success: res => {
|
||||
if (res.confirm) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: phoneNumber,
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
},
|
||||
});
|
||||
return false;
|
||||
}
|
||||
this.$util.showModal({
|
||||
title: '拨打电话给', content: phoneNumber + '', confirmText: '拨打', success: res => {
|
||||
if (res.confirm) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: phoneNumber,
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
})
|
||||
},
|
||||
// 判断是否多值是否成立
|
||||
in_array(type, str) {
|
||||
let arr = []
|
||||
// str 是否为字符串
|
||||
if (typeof str === 'string') arr = str.split(',')
|
||||
// str 是否为数组
|
||||
if (typeof str === 'object') arr = str
|
||||
let index = -1
|
||||
index = arr.findIndex(item => type == item)
|
||||
console.log('index-------------', index);
|
||||
if (index == -1) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
},
|
||||
|
||||
// 设置自定义底部
|
||||
setTabBarItem() {
|
||||
// uni.setTabBarItem({
|
||||
// index: 0,
|
||||
// text: global.i18n.t('首页'),
|
||||
// })
|
||||
// uni.setTabBarItem({
|
||||
// index: 1,
|
||||
// text: global.i18n.t('分类'),
|
||||
// })
|
||||
// uni.setTabBarItem({
|
||||
// index: 2,
|
||||
// text: global.i18n.t('购物车'),
|
||||
// })
|
||||
// uni.setTabBarItem({
|
||||
// index: 3,
|
||||
// text: global.i18n.t('我的'),
|
||||
// })
|
||||
},
|
||||
// 页面跳转
|
||||
handleJump(e) {
|
||||
let target = e.currentTarget || e.target,
|
||||
url = target.dataset.url || 'back',
|
||||
type = target.dataset.type;
|
||||
if (url == '' || url == '#') return;
|
||||
switch (type) {
|
||||
case 'SWITCH':
|
||||
router.switchTab(url);
|
||||
break;
|
||||
case 'REDIRECT':
|
||||
router.redirectTo(url);
|
||||
break;
|
||||
case 'RELAUNCH':
|
||||
router.reLaunch(url);
|
||||
break;
|
||||
case 'BACK':
|
||||
router.navigateBack();
|
||||
break;
|
||||
default:
|
||||
router.navigateTo(url);
|
||||
break;
|
||||
}
|
||||
},
|
||||
// Diy页面跳转
|
||||
handleJumpDiy(e) {
|
||||
let target = e.currentTarget || e.target,
|
||||
url = target.dataset.url || 'back',
|
||||
type = target.dataset.type;
|
||||
if (url == '' || url == '#') return;
|
||||
switch (type) {
|
||||
case 'switchTab':
|
||||
router.switchTab(url);
|
||||
break;
|
||||
case 'redirectTo':
|
||||
router.redirectTo(url);
|
||||
break;
|
||||
case 'reLaunch':
|
||||
router.reLaunch(url);
|
||||
break;
|
||||
case 'navigateTo':
|
||||
router.navigateTo(url);
|
||||
break;
|
||||
case 'back':
|
||||
router.navigateBack(+url);
|
||||
break;
|
||||
default:
|
||||
router.navigateTo(url);
|
||||
break;
|
||||
}
|
||||
},
|
||||
mixinToPlayVideo(src) {
|
||||
let parm = encodeURIComponent(src)
|
||||
router.navigateTo(`/pages/benben-built-in/playVideo/playVideo?src=${parm}`)
|
||||
},
|
||||
singleImagePreview(url) {
|
||||
uni.previewImage({
|
||||
current: url,
|
||||
urls: [url]
|
||||
});
|
||||
},
|
||||
multiImagePreview(url, images, field) {
|
||||
let arr = []
|
||||
if (field) {
|
||||
images.map((item) => {
|
||||
arr.push(item[field])
|
||||
})
|
||||
} else {
|
||||
arr = images
|
||||
}
|
||||
uni.previewImage({
|
||||
current: url,
|
||||
urls: arr
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user