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

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
}
}
}