670 lines
15 KiB
JavaScript
670 lines
15 KiB
JavaScript
import globalData from '@/common/js/globalData.js';
|
||
|
||
export default {
|
||
address: 'https://www.opsoul.com:8881',
|
||
// 异步接口拦截
|
||
addInterceptor() {
|
||
let _this = this;
|
||
uni.addInterceptor('request', {
|
||
invoke(args) {
|
||
uni.showLoading({
|
||
mask: true,
|
||
title: '加载中'
|
||
})
|
||
let userInfo = _this.getCurUserInfo();
|
||
// request 触发前拼接 url
|
||
args.url = 'https://www.opsoul.com:8881' + args.url;
|
||
// args.url = 'http://127.0.0.1:80' + args.url;
|
||
// args.url = 'http://192.168.2.50:80' + args.url;
|
||
|
||
if (!args.data) {
|
||
args.data = {}
|
||
}
|
||
if (args.data instanceof Object) {
|
||
args.data.deptId = globalData.deptId;
|
||
args.data.from = globalData.from;
|
||
if (args.data.workerId === undefined && userInfo && userInfo.workerId) {
|
||
args.data.workerId = userInfo.workerId;
|
||
}
|
||
}
|
||
|
||
if (!args.header) {
|
||
args.header = {}
|
||
}
|
||
args.header.deptId = globalData.deptId;
|
||
args.header.from = globalData.from;
|
||
// console.log("停止触发");
|
||
// return false;
|
||
},
|
||
success(res) {
|
||
if (!res || !res.data || res.data.code !== 0) {
|
||
uni.showToast({
|
||
title: '系统开小差啦T_T,请稍后重试',
|
||
icon: 'error'
|
||
})
|
||
}
|
||
},
|
||
fail(err) {
|
||
uni.showToast({
|
||
title: '系统开小差啦T_T,请稍后重试',
|
||
icon: 'error'
|
||
})
|
||
},
|
||
complete(res) {
|
||
uni.hideLoading();
|
||
}
|
||
})
|
||
},
|
||
checkAndAuth() {
|
||
let _this = this;
|
||
// 通过 wx.getSetting 先查询一下用户是否授权了 "scope.userInfo" 这个 scope
|
||
wx.getSetting({
|
||
success(res) {
|
||
if (!res.authSetting['scope.userInfo']) {
|
||
// 用户授权
|
||
wx.authorize({
|
||
scope: 'scope.userInfo',
|
||
success() {
|
||
// 用户已经同意, 后续调用此接口不会弹窗询问
|
||
_this.login();
|
||
},
|
||
fail() {
|
||
// 用户已经拒绝过授权
|
||
wx.openSetting({
|
||
success(res) {
|
||
if (res['scope.userInfo']) {
|
||
_this.checkAndAuth();
|
||
}
|
||
}
|
||
})
|
||
}
|
||
})
|
||
} else {
|
||
_this.login();
|
||
}
|
||
}
|
||
})
|
||
},
|
||
async login() {
|
||
let userInfo = await wx.getUserProfile({
|
||
desc: '用于小程序登录'
|
||
});
|
||
// console.log("从微信获取基本用户信息:" + userInfo);
|
||
// 获取微信登录凭证
|
||
const wxLoginRes = await wx.login();
|
||
// console.log(wxLoginRes)
|
||
// 获取openid
|
||
const wxAuthRes = await uni.request({
|
||
url: '/wx/auth',
|
||
header: {
|
||
code: wxLoginRes.code
|
||
}
|
||
})
|
||
// console.log(wxAuthRes)
|
||
const openId = wxAuthRes[1].data.data.openid;
|
||
// 第一次从服务端获取用户信息
|
||
let wxGetUserRes = await this.qryUserInfo(openId);
|
||
// 获取失败则获取微信信息再调用注册接口
|
||
if (!wxGetUserRes.data) {
|
||
// 注册完成后再次从服务端获取用户信息
|
||
let registerRes = await this.registerUser({
|
||
openId: openId,
|
||
name: userInfo.userInfo.nickName,
|
||
workerLogoUrl: userInfo.userInfo.avatarUrl
|
||
});
|
||
if (registerRes.code === 0) {
|
||
wxGetUserRes = await this.qryUserInfo(openId);
|
||
}
|
||
}
|
||
if (!wxGetUserRes.data) {
|
||
userInfo = null;
|
||
} else {
|
||
userInfo = {
|
||
...wxGetUserRes.data,
|
||
wxLoginCode: wxLoginRes.code
|
||
}
|
||
}
|
||
// console.log("通过后台服务获取用户信息:" + userInfo);
|
||
if (!userInfo || userInfo.workerId == null || userInfo.workerId == undefined) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '微信用户信息获取失败,请退出小程序重试'
|
||
})
|
||
return false;
|
||
}
|
||
// 页面存储用户登录有效信息,以便其他页面调用
|
||
uni.setStorageSync('userProfile', userInfo);
|
||
return true;
|
||
},
|
||
async getWxUserInfo() {
|
||
// 获取微信登录凭证
|
||
const wxLoginRes = await wx.login();
|
||
// 获取openid
|
||
const wxAuthRes = await uni.request({
|
||
url: '/wx/auth',
|
||
header: {
|
||
code: wxLoginRes.code
|
||
}
|
||
})
|
||
const openId = wxAuthRes[1].data.data.openid;
|
||
// 从服务端获取用户信息
|
||
let wxGetUserRes = await this.qryUserInfo(openId);
|
||
let userInfo = null;
|
||
if (wxGetUserRes.data) {
|
||
userInfo = {
|
||
...wxGetUserRes.data,
|
||
wxLoginCode: wxLoginRes.code
|
||
}
|
||
}
|
||
return userInfo;
|
||
},
|
||
async storageExistUser() {
|
||
// 获取微信登录凭证
|
||
const wxLoginRes = await wx.login();
|
||
// 获取openid
|
||
const wxAuthRes = await uni.request({
|
||
url: '/wx/auth',
|
||
header: {
|
||
code: wxLoginRes.code
|
||
}
|
||
})
|
||
const openId = wxAuthRes[1].data.data.openid;
|
||
// 从服务端获取用户信息
|
||
let wxGetUserRes = await this.qryUserInfo(openId);
|
||
let userInfo = null;
|
||
if (wxGetUserRes.data) {
|
||
userInfo = {
|
||
...wxGetUserRes.data,
|
||
wxLoginCode: wxLoginRes.code
|
||
}
|
||
}
|
||
uni.clearStorageSync('userProfile');
|
||
uni.setStorageSync('userProfile', userInfo);
|
||
},
|
||
async registerUser(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/wx/addWorker',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async sendVertifyCode(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/tool/sms/send',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async realRegisterUser(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/register',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async appLogin(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/login',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryUserInfo(openId, phone) {
|
||
let res = await uni.request({
|
||
url: '/wx/getWorkerInfo',
|
||
method: 'POST',
|
||
data: {
|
||
openId: openId,
|
||
phone: phone
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryUserPhone(code) {
|
||
let res = await uni.request({
|
||
url: '/wx/auth/phone',
|
||
method: 'GET',
|
||
header: {
|
||
code: code
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async updateUserPhone(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/update',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
// 更新用户信息的方法顺便更新本地缓存
|
||
if (res[1].data.code === 0) {
|
||
let userInfo = this.getCurUserInfo();
|
||
userInfo.phone = params.phone;
|
||
userInfo.account = params.account;
|
||
uni.setStorageSync('userProfile', userInfo);
|
||
}
|
||
return res[1].data;
|
||
},
|
||
async storagePhoneIntoUserInfo(code) {
|
||
let phoneRes = await this.qryUserPhone(code)
|
||
if (phoneRes && phoneRes.data) {
|
||
let userInfo = this.getCurUserInfo();
|
||
await this.updateUserPhone({
|
||
workerId: userInfo.workerId,
|
||
account: phoneRes.data,
|
||
phone: phoneRes.data
|
||
})
|
||
return true;
|
||
}
|
||
},
|
||
getCurUserInfo() {
|
||
let userProfile = uni.getStorageSync('userProfile');
|
||
return userProfile;
|
||
},
|
||
updateCache(cacheKey, cacheVal) {
|
||
uni.setStorageSync(cacheKey, cacheVal);
|
||
},
|
||
async getCurUserNoCache() {
|
||
let userInfo = this.getCurUserInfo();
|
||
let wxGetUserRes = await this.qryUserInfo(userInfo.openId);
|
||
if (!wxGetUserRes.data) {
|
||
userInfo = null;
|
||
} else {
|
||
userInfo = {
|
||
...wxGetUserRes.data,
|
||
wxLoginCode: userInfo.wxLoginCode
|
||
}
|
||
}
|
||
return userInfo;
|
||
},
|
||
async updateCurUserCache() {
|
||
let curUserInfo = await this.getCurUserNoCache();
|
||
uni.setStorageSync('userProfile', curUserInfo);
|
||
return true;
|
||
},
|
||
async uploadFile(filePath) {
|
||
let res = await uni.uploadFile({
|
||
url: this.address + '/tool/qiniu/upload',
|
||
filePath: filePath,
|
||
name: 'uploadFile'
|
||
})
|
||
let resStr = res[1].data;
|
||
let resObj = null;
|
||
if (resStr != null && resStr.length > 0) {
|
||
try {
|
||
resObj = JSON.parse(resStr);
|
||
} catch(e) {
|
||
console.log(e)
|
||
}
|
||
}
|
||
if (!resObj || resObj.code !== 0) {
|
||
uni.showToast({
|
||
icon: 'error',
|
||
title: '上传失败'
|
||
})
|
||
return '';
|
||
}
|
||
return resObj.url;
|
||
},
|
||
async qrySpecialSkillList(params = {goodsCategoryId : null}) {
|
||
let res = await uni.request({
|
||
url: '/special/skill/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async listByStep(params = {goodsCategoryId : null}) {
|
||
let res = await uni.request({
|
||
url: '/goods/deptcategory/listByStep',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async areaListByStep(params = { parentCode: null }) {
|
||
let res = await uni.request({
|
||
url: '/system/area/app/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async bindBankCard(params) {
|
||
let res = await uni.request({
|
||
url: '/worker/bank/bind',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getBindBankCardByWorkerId(params) {
|
||
let res = await uni.request({
|
||
url: '/worker/bank/getByWorkerId',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async addGoods(params) {
|
||
let res = await uni.request({
|
||
url: '/goods/goods/addGoods',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async addTeam(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/team/addTeam',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getTeamPage(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/team/getTeamList',
|
||
method: 'POST',
|
||
data: params,
|
||
header: {
|
||
pageNum: params.pageNum,
|
||
pageSize: params.pageSize
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async updateWorker(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/update',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
// 更新用户信息的方法顺便更新本地缓存
|
||
if (res[1].data.code === 0) {
|
||
let userInfo = this.getCurUserInfo();
|
||
let qryUserInfoRes = await this.qryUserInfo(userInfo.openId);
|
||
let newUserInfo = {
|
||
...qryUserInfoRes.data,
|
||
wxLoginCode: userInfo.wxLoginCode
|
||
};
|
||
uni.setStorageSync('userProfile', newUserInfo);
|
||
}
|
||
return res[1].data;
|
||
},
|
||
async updateWorkerTeam(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/team/updateTeam',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryFinancialCount(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/financial/detail/count',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryFinancialDetail(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/financial/detail/app/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryMasterOrderPage(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/master/app/list',
|
||
method: 'POST',
|
||
data: params,
|
||
header: {
|
||
pageNum: params.pageNum,
|
||
pageSize: params.pageSize
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getOrderMasterDetail(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/master/app/detail',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryMixOrderList(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/app/mix/order/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryMixAfterList(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/app/mix/after/list',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async updateOrder(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/master/editOrderMaster',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getCanAssignList(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/can/assign',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async assign(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/assign',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryDetailOrderPage(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/list',
|
||
method: 'POST',
|
||
data: params,
|
||
header: {
|
||
pageNum: params.pageNum,
|
||
pageSize: params.pageSize
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async updateDetailOrder(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/edit',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async applyFinishOrder(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/applyFinishOrder',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getOrderDetail(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/detail',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async workerSettled(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/settled',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qryProductPage(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/goods/goods/app/list',
|
||
method: 'POST',
|
||
data: params,
|
||
header: {
|
||
pageNum: params.pageNum,
|
||
pageSize: params.pageSize
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async updateGoodsStatus(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/goods/goods/app/updateStatus',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getWorkerArea(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/area/worker',
|
||
method: 'GET',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getWorkerGoodsCategory(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/goods/category/worker',
|
||
method: 'GET',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getWorkerSpecialSkill(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/special/skill/' + params.workerId,
|
||
method: 'POST'
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async qrPay(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/pay/ali/qr',
|
||
method: 'POST',
|
||
data: params.orderMasterId
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async priceAddedQrPay(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/pay/ali/addQr',
|
||
method: 'POST',
|
||
data: params.orderDetailId
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async updateMasterOrder(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/master/editOrderMaster',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async addWorkerCertify(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/certification/app/add',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getWorkerCertify(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/certification/app/getByWorkerId',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async orderStatistics(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/app/statistics',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async rejectDetailOrder(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/order/reject',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async changeOrderPrice(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/change/price',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getChangeOrderPrice(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/order/detail/app/getChangePrice',
|
||
method: 'POST',
|
||
data: params
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async getAfterList() {
|
||
let res = await uni.request({
|
||
url: '/order/detail/after/list',
|
||
method: 'POST',
|
||
data: {}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async editAfterServiceRecord(params = {}) {
|
||
let res = await uni.request({
|
||
url: '/worker/record/edit',
|
||
method: 'POST',
|
||
data: params,
|
||
header: {
|
||
pageNum: params.pageNum,
|
||
pageSize: params.pageSize
|
||
}
|
||
})
|
||
return res[1].data;
|
||
},
|
||
async wxGetLocation() {
|
||
let res = await wx.getLocation({
|
||
type: 'gcj02'
|
||
})
|
||
// res.latitude, res.longitude
|
||
return res;
|
||
},
|
||
}
|