You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
4.2 KiB
208 lines
4.2 KiB
5 months ago
|
import $util from "@/utils/index.js"
|
||
|
import $api from "@/api/index.js"
|
||
|
import $store from "@/store/index.js"
|
||
|
import {
|
||
|
req
|
||
|
} from '@/utils/req.js';
|
||
|
export default {
|
||
|
state: {
|
||
|
autograph: '',
|
||
|
userInfo: {},
|
||
|
appLogin: '',
|
||
|
loginType: '',
|
||
|
loginPage: '',
|
||
|
isGzhLogin: false,
|
||
|
locationChange: false,
|
||
|
locationChangeUnix: 0,
|
||
|
commonOptions: {
|
||
|
id: 0,
|
||
|
pid: 0,
|
||
|
coupon_atv_id: 0,
|
||
|
admin_id: 0,
|
||
|
coach_id: 0,
|
||
|
channel_id: 0,
|
||
|
},
|
||
|
location: {},
|
||
|
isShowAuth: true,
|
||
|
mineInfo: {}, // 用户个人中心
|
||
|
userPageType: 1, // 1用户,2技-师
|
||
|
coachInfo: {},
|
||
|
haveShieldOper: 0,
|
||
|
personVerifyUrl: '',
|
||
|
fddExtsign: '',
|
||
|
},
|
||
|
mutations: {
|
||
|
//更新内容
|
||
|
async updateUserItem(state, item) {
|
||
|
let {
|
||
|
key,
|
||
|
val
|
||
|
} = item
|
||
|
if (key == 'userInfo' && val.id) {
|
||
|
let {
|
||
|
phone = '',
|
||
|
create_time,
|
||
|
alipay_number = ''
|
||
|
} = val
|
||
|
if (phone) {
|
||
|
val.split_phone = phone.substring(0, 3) + '****' + phone.substring(7, 11)
|
||
|
}
|
||
|
val.create_date = $util.formatTime(create_time * 1000, 'YY-M-D')
|
||
|
if (alipay_number) {
|
||
|
let len = alipay_number.length
|
||
|
val.split_alipay_number = alipay_number.substring(0, len > 3 ? 3 : 1) + '***'
|
||
|
if (len > 6) {
|
||
|
val.split_alipay_number += alipay_number.substring(len == 6 ? len - 2 :
|
||
|
len - 3, len)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (key == 'mineInfo') {
|
||
|
let {
|
||
|
id: mine_id = -1
|
||
|
} = val
|
||
|
|
||
|
if (mine_id == -1) {
|
||
|
let stoerArr = ['userInfo', 'location', 'appLogin', 'loginType', 'isShowLogin',
|
||
|
'isGzhLogin'
|
||
|
]
|
||
|
stoerArr.map(key => {
|
||
|
state[key] = key == 'isShowLogin' ? true : ''
|
||
|
uni.setStorageSync(key, key == 'isShowLogin' ? true : '')
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (['autograph', 'userInfo', 'location', 'appLogin', 'loginType', 'isShowLogin', 'isGzhLogin']
|
||
|
.includes(key)) {
|
||
|
uni.setStorageSync(key, val)
|
||
|
}
|
||
|
|
||
|
|
||
|
if (key === 'locationChange' && val == true) {
|
||
|
let locationChangeUnix = $util.DateToUnix($util.formatTime(new Date(), 'YY-M-D h:m:s'))
|
||
|
state.locationChangeUnix = locationChangeUnix
|
||
|
}
|
||
|
|
||
|
state[key] = val
|
||
|
}
|
||
|
},
|
||
|
actions: {
|
||
|
//获取个人信息
|
||
|
async getUserInfo({
|
||
|
commit,
|
||
|
state
|
||
|
}, param) {
|
||
|
let data = await $api.user.userInfo()
|
||
|
commit('updateUserItem', {
|
||
|
key: 'userInfo',
|
||
|
val: data
|
||
|
})
|
||
|
},
|
||
|
//获取用户个人中心数据
|
||
|
async getMineInfo({
|
||
|
commit,
|
||
|
state
|
||
|
}, param) {
|
||
|
let data = await $api.mine.index()
|
||
|
let {
|
||
|
id = 0,
|
||
|
fx_status
|
||
|
} = data
|
||
|
if (!id) {
|
||
|
data = {
|
||
|
id: -1
|
||
|
}
|
||
|
}
|
||
|
let {
|
||
|
fx_check = 0
|
||
|
} = $store.state.config.configInfo
|
||
|
data.is_fx = !fx_check || (fx_check && fx_status == 2)
|
||
|
commit('updateUserItem', {
|
||
|
key: 'mineInfo',
|
||
|
val: data
|
||
|
})
|
||
|
},
|
||
|
//获取技-师信息
|
||
|
async getCoachInfo({
|
||
|
commit,
|
||
|
state
|
||
|
}, param) {
|
||
|
let data = await $api.technician.coachInfo()
|
||
|
commit('updateUserItem', {
|
||
|
key: 'coachInfo',
|
||
|
val: data
|
||
|
})
|
||
|
},
|
||
|
// 获取用户信息
|
||
|
async getAuthUserProfile({
|
||
|
commit,
|
||
|
state
|
||
|
}, param) {
|
||
|
let {
|
||
|
nickName,
|
||
|
avatarUrl
|
||
|
} = param
|
||
|
await $api.user.userUpdate(param)
|
||
|
let data = Object.assign({}, state.userInfo, {
|
||
|
nickName,
|
||
|
avatarUrl
|
||
|
})
|
||
|
commit('updateUserItem', {
|
||
|
key: 'userInfo',
|
||
|
val: data
|
||
|
})
|
||
|
},
|
||
|
// 获取手机号
|
||
|
async getAuthPhone({
|
||
|
commit,
|
||
|
state
|
||
|
}, {
|
||
|
e = {
|
||
|
detail: {}
|
||
|
},
|
||
|
must = false
|
||
|
} = {}) {
|
||
|
let {
|
||
|
encryptedData = '', iv = ''
|
||
|
} = e.detail;
|
||
|
let phone = ''
|
||
|
if (encryptedData && iv) {
|
||
|
let phone = await $api.user.reportPhone({
|
||
|
encryptedData,
|
||
|
iv
|
||
|
})
|
||
|
let data = Object.assign({}, state.userInfo, {
|
||
|
phone
|
||
|
})
|
||
|
commit('updateUserItem', {
|
||
|
key: 'userInfo',
|
||
|
val: data
|
||
|
})
|
||
|
return phone;
|
||
|
}
|
||
|
},
|
||
|
// 更新公共参数
|
||
|
async updateCommonOptions({
|
||
|
commit,
|
||
|
state
|
||
|
}, param) {
|
||
|
let target = {}
|
||
|
if (param.scene) {
|
||
|
let res = await $api.base.getWxCodeData({
|
||
|
code_id: param.scene
|
||
|
})
|
||
|
target = Object.assign({}, state.commonOptions, res.data)
|
||
|
} else {
|
||
|
target = Object.assign({}, state.commonOptions, param)
|
||
|
}
|
||
|
let data = $util.pick(target, ['id', 'pid', 'coupon_atv_id', 'admin_id', 'channel_id', 'coach_id'])
|
||
|
commit('updateUserItem', {
|
||
|
key: 'commonOptions',
|
||
|
val: data
|
||
|
})
|
||
|
return target
|
||
|
}
|
||
|
}
|
||
|
}
|