2206 lines
60 KiB
JavaScript
2206 lines
60 KiB
JavaScript
// +----------------------------------------------------------------------
|
||
// | 麦沃德科技赋能开发者,助力商协会发展
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2017~2024 www.wdsxh.cn All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | 沃德商协会系统并不是自由软件,不加密,并不代表开源,未经许可不可自由转售和商用
|
||
// +----------------------------------------------------------------------
|
||
// | Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
|
||
// +----------------------------------------------------------------------
|
||
// | 常用API方法集成 开发者: 麦沃德科技-半夏
|
||
// +----------------------------------------------------------------------
|
||
|
||
// 引入接口列表文档
|
||
import apiList from './api/index.js'
|
||
import store from '@/store'
|
||
|
||
// 接口请求方法
|
||
function request(api, parameter = {}, adminPath) {
|
||
return new Promise((resolve, reject) => {
|
||
let channel = 2
|
||
// #ifdef MP-WEIXIN
|
||
channel = 1
|
||
// #endif
|
||
const config = {
|
||
url: '', // 接口地址
|
||
data: {}, // 请求的参数
|
||
header: {
|
||
"Content-Type": "application/x-www-form-urlencoded",
|
||
"token": uni.getStorageSync('token'),
|
||
"channel": channel
|
||
}, // 设置请求头
|
||
method: "POST", // 请求方法
|
||
timeout: 30000, // 超时时间
|
||
loading: true, // 设置加载等待
|
||
dataType: "json", // 如果设为 json,会尝试对返回的数据做一次 JSON.parse
|
||
responseType: "text", // 设置响应的数据类型
|
||
sslVerify: true, // 验证 ssl 证书
|
||
withCredentials: false, // 跨域请求时是否携带凭证(cookies)
|
||
firstIpv4: "false", // DNS解析时优先使用ipv4
|
||
success: (res) => {
|
||
if (res.statusCode == 401) {
|
||
uni.hideLoading()
|
||
uni.removeStorageSync("token")
|
||
uni.removeStorageSync("userInfo")
|
||
store.commit('user/clearAuth')
|
||
uni.removeStorageSync("myCart")
|
||
uni.removeStorageSync("currentAddress")
|
||
uni.removeStorageSync("searchHistory")
|
||
verifyLogin(2)
|
||
reject(401)
|
||
} else if (res.statusCode == 200) {
|
||
resolve(res.data)
|
||
} else if (res.msg) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
} else if (res.statusCode == 408) {
|
||
uni.showToast({
|
||
title: '请求超时,请稍后重试',
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
reject()
|
||
} else if (res.statusCode == 500) {
|
||
uni.showToast({
|
||
title: '服务器开小差了,请稍后再试',
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
reject()
|
||
} else {
|
||
uni.redirectTo({
|
||
url: "/pages/error/error"
|
||
})
|
||
reject()
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
uni.redirectTo({
|
||
url: "/pages/error/error"
|
||
})
|
||
reject(err)
|
||
}
|
||
}
|
||
let apiObj = getApiObj(api)
|
||
if (!apiObj) {
|
||
reject("接口地址错误")
|
||
} else if (apiObj.auth && !uni.getStorageSync('token')) {
|
||
uni.hideLoading()
|
||
uni.showToast({
|
||
title: '请登录后操作',
|
||
icon: 'none',
|
||
duration: 1000,
|
||
mask: true
|
||
});
|
||
setTimeout(() => {
|
||
verifyLogin(2)
|
||
reject(401)
|
||
}, 1000);
|
||
return
|
||
}
|
||
const newConfig = Object.assign({}, config, {
|
||
url: (adminPath ? adminPath : getApp().globalData.adminPath) + apiObj.url,
|
||
method: apiObj.method,
|
||
data: parameter
|
||
})
|
||
// 判断有无网络
|
||
uni.getNetworkType({
|
||
success: (res) => {
|
||
if (res.networkType === "none") {
|
||
uni.showToast({
|
||
icon: "none",
|
||
title: "请先连接网络后操作"
|
||
})
|
||
uni.hideLoading()
|
||
} else {
|
||
uni.request(newConfig)
|
||
}
|
||
}
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取接口信息
|
||
function getApiObj(url) {
|
||
let apiArray = url.split(".");
|
||
let api = apiList;
|
||
apiArray.forEach(v => {
|
||
api = api[v];
|
||
});
|
||
return api;
|
||
}
|
||
|
||
// 验证是否登录 type: 1.判断是否有token, 2.不判断直接跳转登录
|
||
function verifyLogin(type = 1) {
|
||
if (type == 1) {
|
||
if (!uni.getStorageSync("token")) {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
return false
|
||
} else return true
|
||
} else {
|
||
let pages = getCurrentPages()
|
||
uni.redirectTo({
|
||
url: "/pages/login/index?from=" + encodeURIComponent(pages[pages.length - 1].$page.fullPath),
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
|
||
// 上传文件-单文件
|
||
function uploadFile(file) {
|
||
if (!file) {
|
||
return Promise.reject(new Error("上传文件路径不能为空"));
|
||
}
|
||
return new Promise((resolve, reject) => {
|
||
// 配置上传接口URL
|
||
const uploadUrl = getApp().globalData.adminPath + '/api/wdsxh/common/upload';
|
||
if (!uploadUrl) {
|
||
reject(new Error("上传接口URL未配置"));
|
||
return;
|
||
}
|
||
// 内部维护重试次数
|
||
let currentRetry = 1;
|
||
// 检查网络状态
|
||
const checkNetworkAndUpload = () => {
|
||
uni.getNetworkType({
|
||
success: (res) => {
|
||
if (res.networkType === "none") {
|
||
uni.showToast({
|
||
icon: "none",
|
||
title: "请先连接网络后操作",
|
||
duration: 2000
|
||
});
|
||
reject(new Error("网络连接已断开"));
|
||
return;
|
||
}
|
||
doUpload();
|
||
},
|
||
fail: (networkError) => {
|
||
reject(new Error(`获取网络状态失败:${networkError.errMsg || '未知错误'}`));
|
||
}
|
||
});
|
||
};
|
||
// 执行上传
|
||
const doUpload = () => {
|
||
uni.uploadFile({
|
||
url: uploadUrl,
|
||
filePath: file,
|
||
name: 'file',
|
||
header: {
|
||
token: uni.getStorageSync("token") || '',
|
||
},
|
||
success: (res) => {
|
||
try {
|
||
const result = JSON.parse(res.data);
|
||
resolve(result);
|
||
} catch (parseError) {
|
||
handleUploadError(new Error(`响应格式错误:${parseError.message}`));
|
||
}
|
||
},
|
||
fail: (uploadError) => {
|
||
handleUploadError(new Error(`上传请求失败:${uploadError.errMsg || '未知错误'}`));
|
||
}
|
||
});
|
||
};
|
||
// 错误处理与重试逻辑
|
||
const handleUploadError = (error) => {
|
||
if (currentRetry < 5) {
|
||
currentRetry++;
|
||
const delay = Math.pow(2, currentRetry - 1) * 200;
|
||
setTimeout(doUpload, delay);
|
||
} else {
|
||
uni.showToast({
|
||
title: "文件上传失败,请稍后重试",
|
||
icon: "none",
|
||
duration: 2000
|
||
});
|
||
reject(new Error(`文件上传失败:${error.message}`));
|
||
}
|
||
};
|
||
checkNetworkAndUpload();
|
||
});
|
||
}
|
||
|
||
// 上传文件-多文件 type: 1.返回url, 2.返回fullurl
|
||
function uploadFileMultiple(files, oldFiles, type = 1) {
|
||
return new Promise((resolve, reject) => {
|
||
var uploadList = new Array(files.length)
|
||
var completeNum = 0
|
||
for (var i in files) {
|
||
const index = i
|
||
if (oldFiles && oldFiles.includes(files[i])) {
|
||
uploadList[index] = files[i]
|
||
if (++completeNum == files.length) {
|
||
resolve(uploadList)
|
||
}
|
||
} else {
|
||
uploadFile(files[i]).then((res) => {
|
||
if (res.code == 1) {
|
||
if (type == 2) uploadList[index] = res.data.fullurl
|
||
else uploadList[index] = res.data.url
|
||
if (++completeNum == files.length) {
|
||
resolve(uploadList)
|
||
}
|
||
} else {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none'
|
||
})
|
||
reject(res.msg)
|
||
}
|
||
}).catch(err => {
|
||
reject(err)
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
// 导航菜单跳转及功能
|
||
// path: 跳转页面时使用的地址
|
||
// appId: 跳转小程序时使用的小程序id或原始id
|
||
// phone: 拨打电话时使用的电话号码
|
||
// address: 地图导航时使用的地址
|
||
// content: 复制文本时使用的文本
|
||
// mode: 1.跳转内部页面,2.关闭当前页面跳转,3.关闭所有页面跳转,4.跳转外部链接,5.跳转微信小程序,6.拨打电话,7.地图导航,8.复制文本
|
||
// success: 成功回调函数
|
||
async function toPage(e) {
|
||
if (e.mode == 1 || e.mode == 2 || e.mode == 3) {
|
||
// 需要登录的页面
|
||
let loginRequired = [
|
||
'/pages/mine/settings/user',
|
||
'/pages/mine/subscribe/index',
|
||
'/pages/member/details',
|
||
'/pages/member/enterprise',
|
||
'/pages/member/organization',
|
||
'/pages/member/apply/index',
|
||
'/pages/member/fees/index',
|
||
'/pages/member/fees/pay',
|
||
'/pages/member/information',
|
||
'/pagesActivity/index/order',
|
||
'/pagesActivity/order/index',
|
||
'/pagesActivity/order/details',
|
||
'/pagesActivity/verification/index',
|
||
'/pagesActivity/verification/details',
|
||
'/pagesMall/goods/order',
|
||
'/pagesMall/address/index',
|
||
'/pagesMall/address/add',
|
||
'/pagesMall/cart/index',
|
||
'/pagesMall/order/index',
|
||
'/pagesMall/order/details',
|
||
'/pagesMall/order/payment',
|
||
'/pagesMall/refund/index',
|
||
'/pagesMall/refund/details',
|
||
'/pagesMall/refund/apply',
|
||
'/pagesMall/refund/goods',
|
||
'/pagesDemand/demand/edit',
|
||
'/pagesDemand/demand/list',
|
||
'/pagesDemand/demand/publish',
|
||
'/pagesTools/certificate/index',
|
||
'/pagesTools/certificate/result',
|
||
'/pagesTools/phoneBook/index',
|
||
'/pagesTools/sequence/feedback',
|
||
'/pagesTools/suggest/index',
|
||
'/pagesTools/publicize/index',
|
||
'/pagesTools/sequence/details',
|
||
'/pagesTools/questionnaire/details',
|
||
'/pagesTools/institution/apply',
|
||
'/pagesCard/mine/index',
|
||
'/pagesCard/mine/details',
|
||
'/pagesCard/mine/edit',
|
||
'/pagesCard/mine/manage',
|
||
'/pagesCard/card/details',
|
||
'/pagesAdmin/examine/index',
|
||
'/pagesAdmin/examine/details',
|
||
]
|
||
// 底部导航
|
||
let tabbarList = [
|
||
'/pages/index/index',
|
||
'/pages/member/index',
|
||
'/pages/mall/index',
|
||
'/pages/demand/index',
|
||
'/pages/mine/index'
|
||
]
|
||
// 判断是否需要登录
|
||
if (loginRequired.indexOf(e.path.split("?")[0]) > -1 && !uni.getStorageSync("token")) { // 是否登录
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
return
|
||
}
|
||
const isPermission = await getPagePermission(e)
|
||
if (!isPermission) return
|
||
if (tabbarList.indexOf(e.path.split("?")[0]) > -1) { // 链接是否为底部导航
|
||
uni.switchTab({
|
||
url: e.path
|
||
})
|
||
} else {
|
||
if (e.mode == 1) {
|
||
uni.navigateTo({
|
||
url: e.path,
|
||
success: () => {
|
||
if (e.success) e.success()
|
||
}
|
||
})
|
||
} else if (e.mode == 2) {
|
||
uni.redirectTo({
|
||
url: e.path,
|
||
success: () => {
|
||
if (e.success) e.success()
|
||
}
|
||
})
|
||
} else if (e.mode == 3) {
|
||
uni.reLaunch({
|
||
url: e.path,
|
||
success: () => {
|
||
if (e.success) e.success()
|
||
}
|
||
})
|
||
}
|
||
}
|
||
} else {
|
||
if (e.mode == 4) {
|
||
// 跳转外部链接
|
||
// #ifdef MP-WEIXIN
|
||
uni.navigateTo({
|
||
url: '/pages/webview/webview?path=' + encodeURIComponent(e.path),
|
||
})
|
||
// #endif
|
||
// #ifdef H5
|
||
window.open(e.path, '_blank');
|
||
// #endif
|
||
} else if (e.mode == 5) {
|
||
// 跳转微信小程序
|
||
// #ifdef MP-WEIXIN
|
||
uni.navigateToMiniProgram({
|
||
appId: e.appId,
|
||
path: e.path
|
||
})
|
||
// #endif
|
||
// #ifndef MP-WEIXIN
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "非小程序平台无法跳转其他小程序",
|
||
showCancel: false,
|
||
confirmText: "确定"
|
||
})
|
||
// #endif
|
||
} else if (e.mode == 6) {
|
||
// 拨打电话
|
||
// Android需要在 manifest.json 增加权限 <uses-permission android:name="android.permission.CALL_PHONE"/>
|
||
if (e.phone) {
|
||
uni.makePhoneCall({
|
||
phoneNumber: e.phone + ""
|
||
});
|
||
} else {
|
||
uni.showToast({
|
||
icon: "none",
|
||
title: "暂无可拨打电话"
|
||
})
|
||
}
|
||
} else if (e.mode == 7) {
|
||
if (e.address && e.address.latitude && e.address.longitude) {
|
||
let location = {
|
||
latitude: Number(e.address.latitude),
|
||
longitude: Number(e.address.longitude),
|
||
}
|
||
if (e.address.name) location.name = e.address.name
|
||
if (e.address.address) location.address = e.address.address
|
||
uni.openLocation(location);
|
||
} else {
|
||
uni.showToast({
|
||
icon: "none",
|
||
title: "暂无相关地址"
|
||
})
|
||
}
|
||
} else if (e.mode == 8) {
|
||
if (e.content) {
|
||
uni.setClipboardData({
|
||
data: e.content,
|
||
success: () => {
|
||
if (e.success) {
|
||
e.success()
|
||
} else {
|
||
uni.showToast({
|
||
icon: "success",
|
||
title: "复制成功",
|
||
duration: 2000
|
||
})
|
||
}
|
||
}
|
||
});
|
||
} else {
|
||
uni.showToast({
|
||
icon: "none",
|
||
title: "暂无可复制内容"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 自定义装修-打开链接
|
||
function openLink(e) {
|
||
switch (e.type) {
|
||
case 'Custom':
|
||
this.toPage({
|
||
mode: 1,
|
||
path: e.path
|
||
})
|
||
break;
|
||
case 'Inlay':
|
||
this.toPage({
|
||
mode: 1,
|
||
path: e.path
|
||
})
|
||
break;
|
||
case 'Editor':
|
||
store.commit('app/setEditorContent', e.content)
|
||
this.toPage({
|
||
mode: 1,
|
||
path: `/pages/diy/richText?name=${encodeURIComponent(e.pageTitle || "详情")}`
|
||
})
|
||
break;
|
||
case 'WXMp':
|
||
this.toPage({
|
||
mode: 5,
|
||
appId: e.appid,
|
||
path: e.path
|
||
})
|
||
break;
|
||
case 'Outside':
|
||
this.toPage({
|
||
mode: 4,
|
||
path: e.url
|
||
})
|
||
break;
|
||
case 'Phone':
|
||
this.toPage({
|
||
mode: 6,
|
||
phone: e.phone + ""
|
||
})
|
||
break;
|
||
case 'Member':
|
||
this.toPage({
|
||
mode: 1,
|
||
path: "/pages/member/details?id=" + e.id
|
||
})
|
||
break;
|
||
case 'Article':
|
||
if (e.link_type == 2) {
|
||
this.toPage({
|
||
mode: 4,
|
||
path: e.link_url,
|
||
})
|
||
this.$util.request("main.article.updateReadNum", { id: item.id })
|
||
} else {
|
||
this.toPage({
|
||
mode: 1,
|
||
path: "/pages/article/details?id=" + e.id
|
||
})
|
||
}
|
||
break;
|
||
case 'Activity':
|
||
this.toPage({
|
||
mode: 1,
|
||
path: "/pagesActivity/index/details?id=" + e.id
|
||
})
|
||
break;
|
||
case 'Goods':
|
||
this.toPage({
|
||
mode: 1,
|
||
path: "/pagesMall/goods/details?id=" + e.id
|
||
})
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
// 判断页面跳转权限 isShowTips: 1.显示提示,2不显示提示
|
||
function getPagePermission(e, isShowTips = 1) {
|
||
return new Promise(async (resolve) => {
|
||
// 需要入会的页面
|
||
let memberRequired = [
|
||
'/pages/member/information',
|
||
'/pagesDemand/demand/edit',
|
||
'/pagesDemand/demand/list',
|
||
'/pagesDemand/demand/publish',
|
||
'/pagesTools/certificate/index',
|
||
'/pagesTools/certificate/result',
|
||
'/pagesTools/publicize/index',
|
||
'/pagesTools/institution/apply',
|
||
]
|
||
// 会员权限判断
|
||
let memberLimit = {
|
||
list: [
|
||
'/pages/member/index',
|
||
'/pages/member/units',
|
||
'/pages/member/search/index',
|
||
'/pages/member/industry',
|
||
],
|
||
details: [
|
||
'/pages/member/details',
|
||
'/pages/member/enterprise',
|
||
'/pages/member/organization',
|
||
],
|
||
}
|
||
// 供需权限判断
|
||
let demandLimit = {
|
||
list: [
|
||
'/pages/demand/index',
|
||
'/pages/demand/search/index',
|
||
'/pages/demand/search/result',
|
||
],
|
||
details: [
|
||
'/pagesDemand/demand/details',
|
||
],
|
||
}
|
||
if (memberRequired.indexOf(e.path.split("?")[0]) > -1) { // 用户是否为会员
|
||
resolve(await getMemberState(isShowTips))
|
||
} else if (memberLimit.list.indexOf(e.path.split("?")[0]) > -1) { // 会员列表是否对外
|
||
resolve(await getMemberLimit(1, isShowTips))
|
||
} else if (memberLimit.details.indexOf(e.path.split("?")[0]) > -1) { // 会员详情是否对外
|
||
resolve(await getMemberLimit(2, isShowTips))
|
||
} else if (demandLimit.list.indexOf(e.path.split("?")[0]) > -1) { // 供需列表是否对外
|
||
resolve(await getDemandLimit(1, isShowTips))
|
||
} else if (demandLimit.details.indexOf(e.path.split("?")[0]) > -1) { // 供需详情是否对外
|
||
resolve(await getDemandLimit(2, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesTools/album/index") { // 相册列表是否对外
|
||
resolve(await getAlbumLimit(1, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesTools/album/details") { // 相册详情是否对外
|
||
resolve(await getAlbumLimit(2, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesActivity/index/details") { // 活动详情是否对外
|
||
resolve(await getActivityLimit(getUrlParam(e.path, "id"), isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesTools/institution/details") { // 机构详情是否对外
|
||
resolve(await getInstitutionLimit(isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesTools/phoneBook/index") { // 通讯录是否对外
|
||
resolve(await getAddressBookLimit(isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesTools/questionnaire/details") { // 调查问卷是否对外
|
||
resolve(await getQuestionnaireLimit(getUrlParam(e.path, "id"), isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesTools/sequence/details") { // 接龙是否对外
|
||
resolve(await getSequenceLimit(getUrlParam(e.path, "id"), isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pages/mine/subscribe/index") { // 消息订阅判断管理员
|
||
resolve(await getSubscribeAdmin(1, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesAdmin/examine/index") { // 会员审核列表判断管理员
|
||
resolve(await getSubscribeAdmin(1, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesAdmin/examine/details") { // 会员审核详情判断管理员
|
||
resolve(await getSubscribeAdmin(1, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pagesActivity/verification/index") { // 核销活动判断管理员
|
||
resolve(await getSubscribeAdmin(2, isShowTips))
|
||
} else if (e.path.split("?")[0] == "/pages/member/apply/index") { // 入会申请状态判断
|
||
if (store.state.user.mobile) {
|
||
resolve(await getMemberApply(isShowTips))
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else if (e.path.split("?")[0] == "/pages/member/fees/index") { // 会费缴纳状态判断
|
||
resolve(await getMemberFeesState(isShowTips))
|
||
} else {
|
||
resolve(true)
|
||
}
|
||
})
|
||
}
|
||
|
||
// 获取会员状态
|
||
function getMemberState(isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("member.state").then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.state.state == 6) {
|
||
resolve(true)
|
||
} else if (res.data.state.state == -1) {
|
||
if (isShowTips != 2) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "前往查看",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取会员对外开放状态
|
||
function getMemberLimit(type, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("member.limit", {
|
||
type: type
|
||
}).then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取通讯录对外开放状态
|
||
function getAddressBookLimit(isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("member.addressBookLimit").then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取供需对外开放状态
|
||
function getDemandLimit(type, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("demand.businessLimit", {
|
||
type: type
|
||
}).then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取相册对外开放状态
|
||
function getAlbumLimit(type, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("album.albumLimit", {
|
||
type: type
|
||
}).then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取活动详情对外开放状态
|
||
function getActivityLimit(id, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("activity.limit", {
|
||
id: id,
|
||
}).then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取机构详情对外开放状态
|
||
function getInstitutionLimit(isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("institution.limit").then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为会员后可查看!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取问卷详情对外开放状态
|
||
function getQuestionnaireLimit(id, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("questionnaire.limit", {
|
||
id: id
|
||
}).then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "该问卷需成为会员后可填写!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取接龙详情对外开放状态
|
||
function getSequenceLimit(id, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("sequence.limit", {
|
||
id: id
|
||
}).then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.show_status == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
if (uni.getStorageSync("token")) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "该接龙需成为会员后可参加!",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去加入",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
uni.navigateTo({
|
||
url: "/pages/login/index",
|
||
animationType: "fade-in"
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取管理员状态 type: 1.消息订阅管理员,2.核销活动管理员
|
||
function getSubscribeAdmin(type, isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("mine.user").then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (type == 1 && res.data.set_admin == 1) {
|
||
resolve(true)
|
||
} else if (type == 2 && res.data.is_verifying == 1) {
|
||
resolve(true)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "此页面需成为管理员后可查看!",
|
||
showCancel: false,
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "我知道了",
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取会费缴纳状态
|
||
function getMemberFeesState(isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("member.state").then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.state.state == -1) {
|
||
if (isShowTips != 2) {
|
||
if (store.state.user.mobile) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请先提交入会申请后可查看",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去申请",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
try {
|
||
const memberState = uni.getStorageSync("userInfo")?.apply_member_state?.state || -1
|
||
if (memberState == -1) {
|
||
uni.navigateTo({
|
||
url: "/pages/member/apply/index"
|
||
})
|
||
} else {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
} catch (error) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
}
|
||
})
|
||
} else {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "请前往个人中心绑定手机号",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
resolve(false)
|
||
} else if (res.data.state.state == 1) {
|
||
if (isShowTips != 2) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "入会申请审核中,请耐心等待",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "我知道了",
|
||
showCancel: false
|
||
})
|
||
}
|
||
resolve(false)
|
||
} else {
|
||
resolve(true)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取入会申请状态
|
||
function getMemberApply(isShowTips) {
|
||
return new Promise((resolve) => {
|
||
uni.showLoading({
|
||
title: "加载中",
|
||
mask: true,
|
||
})
|
||
request("member.state").then(res => {
|
||
uni.hideLoading()
|
||
if (res.code == 1) {
|
||
if (res.data.state.state == -1 || res.data.state.state == 2) {
|
||
resolve(true)
|
||
} else if (res.data.state.state == 6) {
|
||
if (isShowTips != 2) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "您已成为会员,无需重复提交",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "前往查看",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
resolve(false)
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showModal({
|
||
title: "系统提示",
|
||
content: "您已提交入会申请,无需重复提交",
|
||
confirmColor: store.state.app.themeColor,
|
||
confirmText: "前往查看",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.switchTab({
|
||
url: "/pages/mine/index"
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
} else {
|
||
if (isShowTips != 2) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'none',
|
||
duration: 2000
|
||
})
|
||
}
|
||
resolve(false)
|
||
}
|
||
}).catch(() => {
|
||
uni.hideLoading()
|
||
resolve(false)
|
||
})
|
||
})
|
||
}
|
||
|
||
// 获取地址栏参数 path: 页面路径,name: 参数名称
|
||
function getUrlParam(path, name) {
|
||
const search = path.split("?")[1] || ""
|
||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||
var r = decodeURI(search).match(reg);
|
||
if (r != null) return unescape(r[2]);
|
||
return null;
|
||
}
|
||
|
||
// 常用规则验证
|
||
// mode: phone验证手机号,email验证邮箱,IDcard身份证号(简单验证),password密码
|
||
// info: 需要验证的内容
|
||
function validation(mode, info) {
|
||
if (mode == 'phone') {
|
||
var reg = /^1[0-9]{10,10}$/
|
||
if (reg.test(info)) return true;
|
||
else return false;
|
||
} else if (mode == 'email') {
|
||
var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
|
||
if (reg.test(info)) return true;
|
||
else return false;
|
||
} else if (mode == 'IDcard') {
|
||
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
|
||
if (reg.test(info)) {
|
||
var birth = (info.length === 18 ? info.slice(6, 14) : info.slice(6, 12));
|
||
var month, day;
|
||
if (birth.length == 8) {
|
||
month = parseInt(birth.slice(4, 6), 10);
|
||
day = parseInt(birth.slice(-2), 10);
|
||
} else if (birth.length == 6) {
|
||
month = parseInt(birth.slice(2, 4), 10);
|
||
day = parseInt(birth.slice(-2), 10);
|
||
} else {
|
||
return false;
|
||
}
|
||
if (month > 12 || month === 0 || day > 31 || day === 0) {
|
||
return false;
|
||
}
|
||
return true;
|
||
} else return false;
|
||
} else if (mode == 'password') {
|
||
if (info.length >= 8) return true;
|
||
else return false;
|
||
}
|
||
}
|
||
|
||
// 获取当前日期
|
||
function getCurrentDate(format = "y-m-d") {
|
||
var date = new Date()
|
||
var year = date.getFullYear() //年
|
||
var month = date.getMonth() + 1 //月
|
||
var day = date.getDate() //日
|
||
var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours() //时
|
||
var minute = date.getMinutes() < 10 ? date.getMinutes() : date.getMinutes() //分
|
||
var second = date.getSeconds() < 10 ? date.getSeconds() : date.getSeconds() //秒
|
||
month >= 1 && month <= 9 ? (month = "0" + month) : "";
|
||
day >= 0 && day <= 9 ? (day = "0" + day) : "";
|
||
hour >= 0 && hour <= 9 ? hour : "";
|
||
minute >= 0 && minute <= 9 ? (minute = "0" + minute) : "";
|
||
second >= 0 && second <= 9 ? (second = "0" + second) : "";
|
||
if (format.indexOf('y') != -1) {
|
||
format = format.replace('y', year)
|
||
}
|
||
if (format.indexOf('m') != -1) {
|
||
format = format.replace('m', month)
|
||
}
|
||
if (format.indexOf('d') != -1) {
|
||
format = format.replace('d', day)
|
||
}
|
||
if (format.indexOf('h') != -1) {
|
||
format = format.replace('h', hour)
|
||
}
|
||
if (format.indexOf('i') != -1) {
|
||
format = format.replace('i', minute)
|
||
}
|
||
if (format.indexOf('s') != -1) {
|
||
format = format.replace('s', second)
|
||
}
|
||
return format;
|
||
}
|
||
|
||
// 时间戳转日期格式 type: dateTime-日期时间,date-日期,hours-时,minutes-时分,seconds-时分秒
|
||
function formatDate(timeStamp, hyphen = "-", type = "dateTime") {
|
||
let date = new Date(timeStamp * 1000);
|
||
let year = date.getFullYear();
|
||
let month = date.getMonth() + 1;
|
||
let day = date.getDate();
|
||
let h = date.getHours();
|
||
let mm = date.getMinutes();
|
||
let s = date.getSeconds();
|
||
month = month >= 10 ? month : "0" + month;
|
||
day = day >= 10 ? day : "0" + day;
|
||
h = h >= 10 ? h : "0" + h;
|
||
mm = mm >= 10 ? mm : "0" + mm;
|
||
s = s >= 10 ? s : "0" + s;
|
||
let result = "";
|
||
if (hyphen == "object") {
|
||
result = {
|
||
year: year,
|
||
month: month,
|
||
day: day,
|
||
hours: h,
|
||
minutes: mm,
|
||
seconds: s,
|
||
}
|
||
} else if (type == "date") {
|
||
result = `${year}${hyphen}${month}${hyphen}${day}`;
|
||
} else if (type == "hours") {
|
||
result = `${h}`;
|
||
} else if (type == "minutes") {
|
||
result = `${h}:${mm}`;
|
||
} else if (type == "seconds") {
|
||
result = `${h}:${mm}:${s}`;
|
||
} else {
|
||
result = `${year}${hyphen}${month}${hyphen}${day} ${h}:${mm}:${s}`;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
// 时间格式化时间为:刚刚、多少分钟前、多少天前
|
||
function getDateBeforeNow(stringTime) {
|
||
// 统一单位换算
|
||
var minute = 1000 * 60;
|
||
var hour = minute * 60;
|
||
var day = hour * 24;
|
||
var time1 = new Date().getTime(); //当前的时间戳
|
||
// 对时间进行毫秒单位转换
|
||
var time2 = new Date(stringTime * 1000).getTime(); //指定时间的时间戳
|
||
var time = time1 - time2;
|
||
var result = null;
|
||
if (time < 0) {
|
||
result = "刚刚";
|
||
} else if (time / day >= 3) {
|
||
result = formatDate(stringTime, ".", "date");
|
||
} else if (time / day >= 1) {
|
||
result = parseInt(time / day) + "天前";
|
||
} else if (time / hour >= 1) {
|
||
result = parseInt(time / hour) + "小时前";
|
||
} else if (time / minute >= 1) {
|
||
result = parseInt(time / minute) + "分钟前";
|
||
} else {
|
||
result = "刚刚";
|
||
}
|
||
return result;
|
||
}
|
||
|
||
// 获取时间差
|
||
function getTimeDifference(startTime, endTime) {
|
||
let result = null
|
||
let second = 1000;
|
||
let minute = second * 60;
|
||
let hour = minute * 60;
|
||
let day = hour * 24;
|
||
let timeDif = endTime - startTime;
|
||
let secondDif = parseInt(timeDif / second);
|
||
let minuteDif = parseInt(timeDif / minute);
|
||
let hourDif = parseInt(timeDif / hour);
|
||
let dayDif = parseInt(timeDif / day);
|
||
if (secondDif <= 0) {
|
||
result = {
|
||
day: 0,
|
||
hours: 0,
|
||
minutes: 0,
|
||
seconds: 0,
|
||
}
|
||
} else if (secondDif < 60) {
|
||
result = {
|
||
day: 0,
|
||
hours: 0,
|
||
minutes: 0,
|
||
seconds: parseInt(secondDif % 60),
|
||
}
|
||
} else if (minuteDif < 60) {
|
||
result = {
|
||
day: 0,
|
||
hours: 0,
|
||
minutes: parseInt(minuteDif % 60),
|
||
seconds: parseInt(secondDif % 60),
|
||
}
|
||
} else if (hourDif < 24) {
|
||
result = {
|
||
day: 0,
|
||
hours: parseInt(hourDif % 24),
|
||
minutes: parseInt(minuteDif % 60),
|
||
seconds: parseInt(secondDif % 60),
|
||
}
|
||
} else {
|
||
result = {
|
||
day: parseInt(dayDif),
|
||
hours: parseInt(hourDif % 24),
|
||
minutes: parseInt(minuteDif % 60),
|
||
seconds: parseInt(secondDif % 60),
|
||
}
|
||
}
|
||
return result
|
||
}
|
||
|
||
// 获取前一天日期
|
||
function getYesterday(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let today = new Date(date);
|
||
let yesterday_milliseconds = today.getTime() - 1000 * 60 * 60 * 24;
|
||
let yesterday = new Date();
|
||
yesterday.setTime(yesterday_milliseconds);
|
||
let strYear = yesterday.getFullYear();
|
||
let strDay = yesterday.getDate();
|
||
let strMonth = yesterday.getMonth() + 1;
|
||
if (strMonth < 10) {
|
||
strMonth = "0" + strMonth;
|
||
}
|
||
if (strDay < 10) {
|
||
strDay = "0" + strDay;
|
||
}
|
||
return strYear + hyphen + strMonth + hyphen + strDay;
|
||
}
|
||
|
||
// 获取后一天日期
|
||
function getTomorrow(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let today = new Date(date);
|
||
let tomorrow_milliseconds = today.getTime() + 1000 * 60 * 60 * 24;
|
||
let tomorrow = new Date();
|
||
tomorrow.setTime(tomorrow_milliseconds);
|
||
let strYear = tomorrow.getFullYear();
|
||
let strDay = tomorrow.getDate();
|
||
let strMonth = tomorrow.getMonth() + 1;
|
||
if (strMonth < 10) {
|
||
strMonth = "0" + strMonth;
|
||
}
|
||
if (strDay < 10) {
|
||
strDay = "0" + strDay;
|
||
}
|
||
return strYear + hyphen + strMonth + hyphen + strDay;
|
||
}
|
||
|
||
// 获取上一周日期
|
||
function getLastWeek(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let lastWeek = new Date(date).getTime() - (86400000 * 7);
|
||
let day = new Date(lastWeek).getDate()
|
||
let month = new Date(lastWeek).getMonth() + 1
|
||
let year = new Date(lastWeek).getFullYear()
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
}
|
||
|
||
// 获取下一周日期
|
||
function getNextWeek(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let nextWeek = new Date(date).getTime() + (86400000 * 7);
|
||
let day = new Date(nextWeek).getDate()
|
||
let month = new Date(nextWeek).getMonth() + 1
|
||
let year = new Date(nextWeek).getFullYear()
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
}
|
||
|
||
// 获取上一月日期
|
||
function getLastMonth(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let year, lastMonth;
|
||
let today = new Date(date);
|
||
let nowYear = today.getFullYear();
|
||
let nowMonth = today.getMonth();
|
||
if (nowMonth == 0) {
|
||
year = nowYear - 1;
|
||
lastMonth = 12;
|
||
} else {
|
||
year = nowYear;
|
||
lastMonth = nowMonth;
|
||
}
|
||
lastMonth = lastMonth < 10 ? ('0' + lastMonth) : lastMonth;
|
||
return year + hyphen + lastMonth;
|
||
}
|
||
|
||
// 获取下一月日期
|
||
function getNextMonth(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let year, nextMonth;
|
||
let today = new Date(date);
|
||
let nowYear = today.getFullYear();
|
||
let nowMonth = today.getMonth() + 2;
|
||
if (nowMonth == 12) {
|
||
year = nowYear + 1;
|
||
nextMonth = 1;
|
||
} else {
|
||
year = nowYear;
|
||
nextMonth = nowMonth;
|
||
}
|
||
nextMonth = nextMonth < 10 ? ('0' + nextMonth) : nextMonth;
|
||
return year + hyphen + nextMonth;
|
||
}
|
||
|
||
// 获取指定日期的一周开始日期(周一为每周开始,周日为每周结束)
|
||
function beginOfWeek(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let subDay = 0;
|
||
let weekDay = new Date(date).getDay()
|
||
if (weekDay == 0) {
|
||
subDay = 6;
|
||
} else {
|
||
subDay = weekDay - 1;
|
||
}
|
||
let beginDateTime = new Date(date).getTime() - (86400000 * subDay);
|
||
let day = new Date(beginDateTime).getDate()
|
||
let month = new Date(beginDateTime).getMonth() + 1
|
||
let year = new Date(beginDateTime).getFullYear()
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
}
|
||
|
||
// 获取指定日期的一周结束日期(周一为每周开始,周日为每周结束)
|
||
function endOfWeek(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let weekDay = new Date(date).getDay();
|
||
if (weekDay == 0) {
|
||
let day = new Date(date).getDate()
|
||
let month = new Date(date).getMonth() + 1
|
||
let year = new Date(date).getFullYear()
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
} else {
|
||
let addDay = 7 - weekDay;
|
||
let endDateTime = new Date(date).getTime() + (86400000 * addDay);
|
||
let day = new Date(endDateTime).getDate()
|
||
let month = new Date(endDateTime).getMonth() + 1
|
||
let year = new Date(endDateTime).getFullYear()
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
}
|
||
}
|
||
|
||
// 获取指定日期的一周的所有日期的数组(周一为每周开始,周日为每周结束)
|
||
function getWeekTime(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
var timesStamp = new Date(date).getTime();
|
||
var currenDay = new Date(date).getDay();
|
||
var dates = [];
|
||
for (var i = 0; i < 7; i++) {
|
||
var das = timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)
|
||
dates.push(formatDate((das / 1000), hyphen, "date"));
|
||
}
|
||
return dates
|
||
}
|
||
|
||
// 获取指定日期的一个月开始日期
|
||
function beginOfMonth(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let currenDay = new Date(date);
|
||
currenDay.setDate(1)
|
||
let day = currenDay.getDate()
|
||
let year = currenDay.getFullYear()
|
||
let month = currenDay.getMonth() + 1
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
}
|
||
|
||
// 获取指定日期的一个月结束日期
|
||
function endOfMonth(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let year = new Date(date).getFullYear()
|
||
let month = new Date(date).getMonth() + 1
|
||
let nextMonthFirthDay = new Date(year, month, 1)
|
||
let oneDay = 1000 * 60 * 60 * 24
|
||
let endDay = new Date(nextMonthFirthDay - oneDay)
|
||
let day = endDay.getDate()
|
||
return year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day);
|
||
}
|
||
|
||
// 获取指定日期的一个月的所有日期的数组
|
||
function getMonthTime(date, hyphen = "-") {
|
||
date = date.replace('-', '/');
|
||
date = date.replace('-', '/');
|
||
let dataTimes = [];
|
||
let year = new Date(date).getFullYear();
|
||
let month = new Date(date).getMonth() + 1;
|
||
let number = new Date(year, month, 0).getDate();
|
||
for (var day = 1; day < number + 1; day++) {
|
||
dataTimes.push(year + hyphen + (month < 10 ? '0' + month : month) + hyphen + (day < 10 ? '0' + day : day));
|
||
}
|
||
return dataTimes; //返回天数数组
|
||
}
|
||
|
||
// 计算年龄
|
||
function getAge(birth) {
|
||
birth = birth.replace('-', '/');
|
||
birth = birth.replace('-', '/');
|
||
const birthDate = new Date(birth);
|
||
const momentDate = new Date();
|
||
momentDate.setHours(0, 0, 0, 0);
|
||
const thisYearBirthDate = new Date(
|
||
momentDate.getFullYear(),
|
||
birthDate.getMonth(),
|
||
birthDate.getDate()
|
||
);
|
||
const aDate = thisYearBirthDate - birthDate;
|
||
const bDate = momentDate - birthDate;
|
||
let tempAge = momentDate.getFullYear() - birthDate.getFullYear();
|
||
let age = null;
|
||
if (bDate < aDate) {
|
||
tempAge = tempAge - 1;
|
||
age = tempAge < 0 ? 0 : tempAge;
|
||
} else {
|
||
age = tempAge;
|
||
}
|
||
return age;
|
||
}
|
||
|
||
//计算两个经纬度之间的距离 单位米
|
||
function getDistance(lat1, lng1, lat2, lng2) {
|
||
var radLat1 = lat1 * Math.PI / 180.0;
|
||
var radLat2 = lat2 * Math.PI / 180.0;
|
||
var a = radLat1 - radLat2;
|
||
var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
|
||
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
|
||
s = s * 6378.137;
|
||
s = Math.round(s * 10000) / 10000;
|
||
s = s * 1000;
|
||
s = parseFloat(s).toFixed(2)
|
||
return s;
|
||
}
|
||
|
||
// 十六进制转rgb/rgba
|
||
function hexToRgb(hex, weight) {
|
||
var reg = new RegExp("^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$");
|
||
let color = hex ? hex.toLowerCase() : hex;
|
||
if (color && reg.test(color)) {
|
||
if (color.length === 4) {
|
||
let temp = "#";
|
||
for (let i = 1; i < 4; i += 1) {
|
||
temp += color.slice(i, i + 1).concat(color.slice(i, i + 1));
|
||
}
|
||
color = temp;
|
||
}
|
||
var colorRes = [];
|
||
for (let i = 1; i < 7; i += 2) {
|
||
colorRes.push(parseInt("0x" + color.slice(i, i + 2)));
|
||
}
|
||
if (weight) {
|
||
return "rgba(" + colorRes.join(",") + "," + weight + ")";
|
||
}
|
||
return colorRes.join(",");
|
||
} else {
|
||
return color;
|
||
}
|
||
}
|
||
|
||
// 文件下载通用函数
|
||
// url: 下载链接
|
||
// mode: 1.下载文件,2.查看文件
|
||
function downloadFile(url, mode = 1, fileName = "") {
|
||
return new Promise((resolve, reject) => {
|
||
// #ifdef MP-WEIXIN
|
||
uni.downloadFile({
|
||
url: url,
|
||
success: (downloadRes) => {
|
||
if (downloadRes.statusCode !== 200) {
|
||
return reject(new Error("下载失败,状态码:" + downloadRes.statusCode));
|
||
}
|
||
const tempFilePath = downloadRes.tempFilePath;
|
||
const fileExt = url.split(".").pop().toLowerCase();
|
||
if (["jpg", "jpeg", "png", "gif", "webp"].includes(fileExt)) {
|
||
const saveImageToPhotosAlbum = () => {
|
||
uni.saveImageToPhotosAlbum({
|
||
filePath: tempFilePath,
|
||
success: () => {
|
||
uni.showToast({ title: "图片已保存到相册", icon: "success" });
|
||
resolve();
|
||
},
|
||
fail: (err) => {
|
||
if (err.errMsg.includes("auth deny") || err.errMsg.includes("auth denied")) {
|
||
uni.showModal({
|
||
title: "授权提示",
|
||
content: "需要获取相册权限才能保存图片,请在设置中开启",
|
||
success: (modalRes) => {
|
||
if (modalRes.confirm) {
|
||
uni.openSetting({
|
||
success: (settingRes) => {
|
||
if (settingRes.authSetting["scope.writePhotosAlbum"]) {
|
||
downloadFileInMiniProgram(url);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
reject(new Error("保存文件失败:" + err?.errMsg || ""));
|
||
}
|
||
});
|
||
};
|
||
if (mode == 2) {
|
||
uni.getImageInfo({
|
||
src: tempFilePath,
|
||
success: (res) => {
|
||
if (res.type == "unknown" || res.width == -1 || res.height == -1) {
|
||
saveImageToPhotosAlbum()
|
||
} else {
|
||
uni.previewImage({
|
||
urls: [tempFilePath],
|
||
success: () => {
|
||
uni.hideLoading()
|
||
},
|
||
fail: (err) => {
|
||
reject(new Error("图片查看失败:" + err?.errMsg || ""));
|
||
}
|
||
})
|
||
}
|
||
},
|
||
fail: () => {
|
||
saveImageToPhotosAlbum()
|
||
},
|
||
})
|
||
} else {
|
||
saveImageToPhotosAlbum()
|
||
}
|
||
} else if (["mp4", "mov", "avi", "flv", "mkv"].includes(fileExt)) {
|
||
uni.saveVideoToPhotosAlbum({
|
||
filePath: tempFilePath,
|
||
success: () => {
|
||
uni.showToast({ title: "视频已保存到相册", icon: "success" });
|
||
resolve();
|
||
},
|
||
fail: (err) => {
|
||
if (err.errMsg.includes("auth deny") || err.errMsg.includes("auth denied")) {
|
||
uni.showModal({
|
||
title: "授权提示",
|
||
content: "需要获取相册权限才能保存图片,请在设置中开启",
|
||
success: (modalRes) => {
|
||
if (modalRes.confirm) {
|
||
uni.openSetting({
|
||
success: (settingRes) => {
|
||
if (settingRes.authSetting["scope.writePhotosAlbum"]) {
|
||
downloadFileInMiniProgram(url);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
reject(new Error("保存文件失败:" + err?.errMsg || ""));
|
||
}
|
||
});
|
||
} else {
|
||
uni.getFileSystemManager().saveFile({
|
||
tempFilePath: tempFilePath,
|
||
...fileName ? { filePath: `${wx.env.USER_DATA_PATH}/${fileName}` } : {},
|
||
success: (saveRes) => {
|
||
uni.openDocument({
|
||
filePath: saveRes.savedFilePath,
|
||
showMenu: true,
|
||
success: () => {
|
||
resolve();
|
||
},
|
||
fail: () => {
|
||
const savedFilePath = saveRes.savedFilePath;
|
||
uni.showModal({
|
||
content: `文件已保存到小程序本地: ${savedFilePath}`,
|
||
showCancel: false,
|
||
confirmText: "我知道了"
|
||
})
|
||
resolve();
|
||
}
|
||
});
|
||
},
|
||
fail: () => {
|
||
uni.openDocument({
|
||
filePath: resData.savedFilePath,
|
||
fileType,
|
||
showMenu: true,
|
||
fail: () => {
|
||
reject(new Error('文件打开失败,请稍后再试!'));
|
||
},
|
||
})
|
||
}
|
||
});
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
reject(new Error("下载文件失败:" + err?.errMsg || ""));
|
||
}
|
||
});
|
||
// #endif
|
||
// #ifdef H5
|
||
uni.setClipboardData({
|
||
data: url,
|
||
success: () => {
|
||
resolve();
|
||
uni.showToast({
|
||
icon: "none",
|
||
title: "链接复制成功,请前往浏览器下载后查看",
|
||
duration: 2000
|
||
})
|
||
},
|
||
fail: (err) => {
|
||
reject(new Error("链接复制失败:" + err?.errMsg || ""));
|
||
}
|
||
});
|
||
// #endif
|
||
});
|
||
}
|
||
|
||
module.exports.request = request;
|
||
module.exports.uploadFile = uploadFile;
|
||
module.exports.uploadFileMultiple = uploadFileMultiple;
|
||
module.exports.verifyLogin = verifyLogin;
|
||
module.exports.toPage = toPage;
|
||
module.exports.openLink = openLink;
|
||
module.exports.getPagePermission = getPagePermission;
|
||
module.exports.getUrlParam = getUrlParam;
|
||
module.exports.validation = validation;
|
||
module.exports.getCurrentDate = getCurrentDate;
|
||
module.exports.formatDate = formatDate;
|
||
module.exports.getDateBeforeNow = getDateBeforeNow;
|
||
module.exports.getTimeDifference = getTimeDifference;
|
||
module.exports.getYesterday = getYesterday;
|
||
module.exports.getTomorrow = getTomorrow;
|
||
module.exports.getLastWeek = getLastWeek;
|
||
module.exports.getNextWeek = getNextWeek;
|
||
module.exports.getLastMonth = getLastMonth;
|
||
module.exports.getNextMonth = getNextMonth;
|
||
module.exports.beginOfWeek = beginOfWeek;
|
||
module.exports.endOfWeek = endOfWeek;
|
||
module.exports.getWeekTime = getWeekTime;
|
||
module.exports.beginOfMonth = beginOfMonth;
|
||
module.exports.endOfMonth = endOfMonth;
|
||
module.exports.getMonthTime = getMonthTime;
|
||
module.exports.getAge = getAge;
|
||
module.exports.getDistance = getDistance;
|
||
module.exports.hexToRgb = hexToRgb;
|
||
module.exports.downloadFile = downloadFile; |