ttk-app-core
Version:
enterprise develop framework
165 lines (139 loc) • 4.9 kB
JavaScript
import React from 'react'
import { action as MetaAction, AppLoader } from 'edf-meta-engine'
import config from './config'
import female from './img/female.png'
import male from './img/male.png'
import imgOther from './img/other.png'
import {fetch} from 'edf-utils'
class action {
constructor(option) {
this.metaAction = option.metaAction
this.config = config.current
this.webapi = this.config.webapi
}
onInit = ({ component, injections }) => {
this.component = component
this.injections = injections
injections.reduce('init')
this.load()
}
load = async () => {
const currentUser = this.metaAction.context.get('currentUser')
const response = await this.webapi.mySetting.init(currentUser && currentUser.id)
this.injections.reduce('load', response)
}
saveBaseInfo = async () => {
const form = this.metaAction.gf('data.form').toJS()
const ok = await this.check([{
path: 'data.form.nickname', value: form.nickname
}])
if (!ok) return
await this.webapi.user.update({
mobile: form.mobile,
sex: form.sex,
nickname: form.nickname,
birthday: form.birthday
})
this.component.props.onPortalReload && this.component.props.onPortalReload()
this.metaAction.toast('success', '保存个人资料成功')
}
upload = () => {
// this.metaAction.toast('error', '纯静态网站,上传目前不可用')
}
getPhoto = (sex) => {
if (sex == 1) {
return male
} else if (sex == 2) {
return female
} else {
return imgOther
}
}
getPasswordStrength = () => {
const level = this.metaAction.gf('data.form.passwordStrength')
if (level == 1)
return '弱'
else if (level == 2)
return '中'
else if (level == 3)
return '高'
}
getColor = () => {
const level = this.metaAction.gf('data.form.passwordStrength')
if (level == 1)
return 'orangeBg'
else if (level == 2)
return 'yellowBg'
else if (level == 3)
return 'greenBg'
}
fieldChange = async (fieldPath, value) => {
await this.check([{ path: fieldPath, value }])
}
check = async (fieldPathAndValues) => {
if (!fieldPathAndValues)
return
var checkResults = []
for (var o of fieldPathAndValues) {
let r = { ...o }
if (o.path == 'data.form.nickname') {
Object.assign(r, await this.checkNickname(o.value))
}
checkResults.push(r)
}
var json = {}
var hasError = true
checkResults.forEach(o => {
json[o.path] = o.value
json[o.errorPath] = o.message
if (o.message)
hasError = false
})
this.metaAction.sfs(json)
return hasError
}
checkNickname = async (nickname) => {
var message
if (!nickname)
message = '请录入操作员'
else if(nickname.length > 50)
message = '操作员不能超过50个字'
return { errorPath: 'data.other.error.nickname', message }
}
getAccessTokenJson = () => {
return {token: fetch.getAccessToken()}
}
//修改密码
changePassword = async () => {
const ret = await this.metaAction.modal('show', {
title: '修改登录密码',
width:500,
height:251,
children: this.metaAction.loadApp('edfx-app-my-setting-change-password', {
store: this.component.props.store,
})
})
ret.passwordStrength && this.metaAction.sf('data.form.passwordStrength', ret.passwordStrength)
}
//修改绑定手机
changeMobile = async () => {
const ret = await this.metaAction.modal('show', {
title: '修改手机号',
width:500,
height:251,
children: this.metaAction.loadApp('edfx-app-my-setting-change-mobile', {
store: this.component.props.store,
mobile: this.metaAction.gf('data.form.mobile')
})
})
// this.injections.reduce('load', response)
ret.newMobile && this.metaAction.sf('data.form.mobile', ret.newMobile)
}
}
export default function creator(option) {
const metaAction = new MetaAction(option),
o = new action({ ...option, metaAction }),
ret = { ...metaAction, ...o }
metaAction.config({ metaHandlers: ret })
return ret
}