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 => { }); }); } }