352 lines
12 KiB
JavaScript
352 lines
12 KiB
JavaScript
import $store from "@/store/index"
|
||
import Vue from "vue"
|
||
let prototype = Vue.prototype;
|
||
|
||
export default {
|
||
/**
|
||
* 登录平台
|
||
*/
|
||
platformLogin() {
|
||
return new Promise((resolve, reject) => {
|
||
// #ifdef MP-WEIXIN
|
||
uni.login({
|
||
provider: "weixin",
|
||
success(result) {
|
||
prototype.$request({
|
||
api: 'user.openId',
|
||
data: {
|
||
code: result.code
|
||
}
|
||
}).then((response) => {
|
||
prototype.$storage.set("open_id", response.data.openid);
|
||
return resolve(response.data);
|
||
}).catch(e => { });
|
||
}
|
||
});
|
||
// #endif
|
||
// #ifdef H5
|
||
return resolve({
|
||
openid: "mobile_000000000000000000"
|
||
});
|
||
// #endif
|
||
});
|
||
},
|
||
/**
|
||
* 初始化用户
|
||
*/
|
||
async initUser() {
|
||
// openid
|
||
let openId = prototype.$storage.get("open_id");
|
||
if (!openId) {
|
||
await this.platformLogin().then((response) => {
|
||
openId = response.openid;
|
||
});
|
||
}
|
||
$store.commit("user/openId", openId);
|
||
// token
|
||
let token = prototype.$storage.get("user_access_token");
|
||
$store.commit('user/token', token);
|
||
},
|
||
/**
|
||
* 发送验证码
|
||
*/
|
||
sendVerificationCode(mobile) {
|
||
return new Promise((resolve, reject) => {
|
||
if (!prototype.$test.mobile(mobile)) {
|
||
return reject('请输入正确的手机号码');
|
||
}
|
||
prototype.$request({
|
||
api: 'user.sendCode',
|
||
data: {
|
||
username: mobile,
|
||
},
|
||
}).then((res) => {
|
||
if (res.code == 1) {
|
||
return resolve();
|
||
} else {
|
||
return reject(response.msg);
|
||
}
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 获取信息
|
||
*/
|
||
info(refresh) {
|
||
return new Promise((resolve, reject) => {
|
||
if (refresh === true) {
|
||
prototype.$storage.remove('userinfo');
|
||
}
|
||
let cacheUser = prototype.$storage.get('userinfo');
|
||
if (cacheUser) {
|
||
return resolve(cacheUser);
|
||
}
|
||
prototype.$request({
|
||
api: 'user.info',
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
let user = {
|
||
nickname: response.data.user_nickname,
|
||
openid: response.data.openid,
|
||
mobile: response.data.mobile,
|
||
createTime: response.data.create_time,
|
||
worker: null,
|
||
serviceData: {
|
||
times: response.data.data.count || 0,
|
||
favorableRate: response.data.data.good || "0",
|
||
grade: response.data.data.score || "0",
|
||
disposableBalance: response.data.balance || 0,
|
||
FreezeBalance: response.data.balance_no || 0,
|
||
}
|
||
};
|
||
if (response.data.worker) {
|
||
user.worker = {
|
||
id: response.data.worker.id,
|
||
uid: response.data.worker.uid,
|
||
avatar: response.data.worker.avatar,
|
||
area: response.data.worker.area,
|
||
cateIds: response.data.worker.service,
|
||
carTypeId: response.data.worker.car,
|
||
name: response.data.worker.name,
|
||
mobile: response.data.worker.mobile,
|
||
idcardA: response.data.worker.imga,
|
||
idcardB: response.data.worker.imgb,
|
||
license: response.data.worker.imgc,
|
||
content: response.data.worker.desc,
|
||
serviceType: response.data.worker.types,
|
||
type: response.data.worker.status,
|
||
acceptOrderState: response.data.worker.worker,
|
||
};
|
||
}
|
||
prototype.$storage.set('userinfo', user);
|
||
return resolve(user);
|
||
} else {
|
||
return reject(response.msg);
|
||
}
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 用户注册
|
||
*/
|
||
register(user, verificationCode) {
|
||
return new Promise((resolve, reject) => {
|
||
if (!prototype.$test.mobile(user.mobile)) {
|
||
return reject('请输入正确的手机号码');
|
||
}
|
||
if (user.password.length < 6 || user.password.length > 16) {
|
||
return reject('密码在6至16位字符之间');
|
||
}
|
||
if (!user.openId) {
|
||
return reject('缺少OpenId,请重启应用');
|
||
}
|
||
prototype.$request({
|
||
api: 'user.register',
|
||
data: {
|
||
username: user.mobile,
|
||
password: user.password,
|
||
openid: user.openId,
|
||
verification_code: verificationCode,
|
||
register_type: user.registerType,
|
||
types: 2,
|
||
}
|
||
}).then((response) => {
|
||
if (response.code == 1) {
|
||
return resolve(response);
|
||
} else {
|
||
return reject(response.msg);
|
||
}
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 登录用户
|
||
*/
|
||
login(user) {
|
||
return new Promise((resolve, reject) => {
|
||
if (!prototype.$test.mobile(user.mobile)) {
|
||
return reject('请输入正确的手机号码');
|
||
}
|
||
if (user.password.length < 6 || user.password.length > 16) {
|
||
return reject('密码在6至16位字符之间');
|
||
}
|
||
prototype.$request({
|
||
api: 'user.login',
|
||
data: {
|
||
username: user.mobile,
|
||
password: user.password,
|
||
}
|
||
}).then(async response => {
|
||
if (response.code == 1) {
|
||
prototype.$storage.set('user_access_token', response.data.token);
|
||
// 提交token到store
|
||
await this.initUser();
|
||
return resolve(response);
|
||
} else {
|
||
return reject(response.msg);
|
||
}
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 找回密码
|
||
*/
|
||
resetPassword(data, verificationCode) {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.resetPassword",
|
||
data: {
|
||
username: data.username,
|
||
password: data.password,
|
||
verification_code: verificationCode,
|
||
types: 2,
|
||
},
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
return resolve(response.msg);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 设置信息
|
||
*/
|
||
setServiceInfo(data) {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.setServiceInfo",
|
||
data: data
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
return resolve(response.msg);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 注销登录
|
||
*/
|
||
logout() {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$storage.set('user_access_token', null);
|
||
prototype.$storage.set('userinfo', null);
|
||
$store.commit('user/token', "");
|
||
return resolve();
|
||
});
|
||
},
|
||
/**
|
||
* 提现
|
||
*/
|
||
withdraw(money) {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.withdraw.withdraw",
|
||
data: {
|
||
money: money
|
||
}
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
return resolve(response);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 提现说明
|
||
*/
|
||
withdrawExplain() {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.withdraw.explain",
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
return resolve(response.data);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
/**
|
||
* 设置服务状态
|
||
*/
|
||
setServiceState() {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.setServiceState",
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
return resolve();
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
appraise: {
|
||
count() {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.appraise.count",
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
return resolve(response.data);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
},
|
||
list(data) {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.appraise.list",
|
||
data: data
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
let list = [];
|
||
response.data.forEach((data) => {
|
||
list.push({
|
||
id: data.id,
|
||
avatar: data.u_avatar,
|
||
nickname: data.u_name,
|
||
createTime: data.time,
|
||
tags: data.msg ? data.msg.split(",") : [],
|
||
area: data.worker_city,
|
||
worker: data.worker_name,
|
||
grade: data.score,
|
||
images: data.img,
|
||
content: data.desc,
|
||
});
|
||
});
|
||
return resolve(list);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
}
|
||
},
|
||
withdrawLog(data) {
|
||
return new Promise((resolve, reject) => {
|
||
prototype.$request({
|
||
api: "user.cash.withdrawLog",
|
||
data: data,
|
||
}).then(response => {
|
||
if (response.code == 1) {
|
||
let list = [];
|
||
response.data.forEach(item => {
|
||
list.push({
|
||
id: item.id,
|
||
money: item.money,
|
||
state: item.status,
|
||
createTime: item.times,
|
||
});
|
||
});
|
||
return resolve(list);
|
||
}
|
||
return reject(response.msg);
|
||
}).catch(e => { });
|
||
});
|
||
}
|
||
}
|