295 lines
7.8 KiB
JavaScript
295 lines
7.8 KiB
JavaScript
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
|
|
});
|
|
}
|
|
}
|
|
})
|