{"version":3,"sources":["webpack:///./src/components/select/high-school-select/index.tsx","webpack:///./src/pages/index/user/update-info/index.tsx"],"names":["nextSchoolMap","provinceId","provinceName","cityId","cityName","countyId","countyName","highSchoolId","highSchoolName","HighSchoolSelect","TSXComponent","constructor","treeData","initLoaded","loading","province","labelValue","this","label","loadData","node","query","type","attach","CommonModule","getHighSchoolInfo","then","result","map","item","treeNode","id","getTreeNode","key","isLeaf","hasChildren","_Toast","areaNodes","firstNode","title","treeNodes","error","hide","$nextTick","info","message","render","h","arguments","_Select","height","handleBeforeOpen","control","content","handleChange","_Divider","_TreeSelect","value","keyPath","change","__decorate","Prop","String","Array","default","Component","name","UpdateInfoView","changedValues","isSubmit","userInfo","userModule","highSchool","nickName","nikename","_isEmpty","values","success","msg","updateUserInfo","_Dialog","confirm","icon","_CheckboxCircleFilled","color","onOk","$router","replace","onClose","getUserInfo","fail","PageView","PageStatus","SUCCESS","updateInfo","_Form","yup","string","max","required","valuesChange","prop","$set","handleSubmit","Field","_Input","_Button","canSubmit"],"mappings":"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","file":"js/chunk-5575fe79.808562d2.js","sourcesContent":["/**\n * 高中选择器\n */\n\nimport TSXComponent from '@/utils/tsx-component';\nimport Component from 'vue-class-component';\nimport { TreeSelect, TreeNode, Select, Toast, InternalTreeNode, Divider } from '@ohu-mobile/core';\nimport { CommonQuery } from '@/api';\nimport { CommonModule } from '@/store/modules/common';\nimport getTreeNode from '@/utils/get-tree-node';\nimport './index.scss';\nimport { Prop } from 'vue-property-decorator';\n\n\nconst nextSchoolMap: Record = {\n provinceId: 2,\n provinceName: 2,\n cityId: 3,\n cityName: 3,\n countyId: 4,\n countyName: 4,\n highSchoolId: 5,\n highSchoolName: 5,\n};\n\nexport interface HighSchoolSelectProps {\n value?: string;\n keyPath?: string[];\n label?: string;\n}\n\n@Component({ name: 'high-school-select' })\nexport default class HighSchoolSelect extends TSXComponent {\n\n @Prop(String)\n public value!: string;\n @Prop(Array)\n public keyPath!: string[];\n @Prop({ type: String, default: '' })\n public label!: string;\n\n\n public treeData: TreeNode[] = [];\n public initLoaded = false;\n public loading = false;\n public province = '';\n public labelValue = this.label;\n public loadData(node?: InternalTreeNode): Promise {\n const query: CommonQuery = {\n type: 1,\n };\n if (node) {\n query.type = node.attach;\n }\n return CommonModule.getHighSchoolInfo(query).then(({ result }) => {\n return result.map((item: any) => {\n const { treeNode, id } = getTreeNode(item);\n if (id) {\n treeNode.attach = [nextSchoolMap[id], treeNode.key];\n }\n if (item.highSchoolId) {\n treeNode.isLeaf = true;\n } else {\n treeNode.hasChildren = true;\n }\n return treeNode;\n });\n });\n }\n public async handleBeforeOpen() {\n if (this.loading) { return false; }\n if (this.initLoaded) { return true; }\n Toast.loading('正在加载');\n this.loading = true;\n try {\n const areaNodes = await this.loadData();\n const firstNode = areaNodes[0];\n this.province = firstNode.title || '';\n const treeNodes = await this.loadData(firstNode as InternalTreeNode);\n this.initLoaded = true;\n this.treeData = treeNodes;\n } catch (error) {\n Toast.hide();\n this.$nextTick(() => {\n Toast.info((error as Error).message);\n });\n return false;\n } finally {\n this.loading = false;\n }\n Toast.hide();\n return true;\n }\n public render() {\n return (\n {\n if (!this.labelValue) { return '选择所在高中'; }\n return this.labelValue;\n },\n content: ({ handleChange }) => (\n
\n
\n
\n {this.province}\n (选后不能更改请如实选择)\n
\n \n
\n {\n this.labelValue = node.title || '';\n handleChange(value, { label: node.title, value: node.value });\n }}\n loadData={this.loadData} />\n
\n ),\n }} />\n );\n }\n}\n","\nimport TSXComponent from '@/utils/tsx-component';\nimport Component from 'vue-class-component';\nimport PageView, { PageStatus } from '@/components/page-view';\nimport { Form, Input, Button, Toast, Dialog } from '@ohu-mobile/core';\nimport HighSchoolSelect from '@/components/select/high-school-select';\nimport { userModule } from '@/store/modules/user';\nimport { updateUserInfo, UpdateUserInfoBody } from '@/api';\nimport { isEmpty } from 'lodash';\nimport { CheckboxCircleFilled } from '@ohu-mobile/icons';\nimport './index.scss';\n\n@Component({ name: 'update-info-view' })\nexport default class UpdateInfoView extends TSXComponent {\n get updateInfo() {\n const userInfo = userModule.userInfo;\n if (userInfo) {\n const {\n highSchoolId,\n highSchoolName,\n countyId,\n cityId,\n } = userInfo.highSchool;\n return {\n nickName: userInfo.nikename,\n highSchoolId,\n label: highSchoolName,\n keyPath: [ cityId, countyId, highSchoolId ],\n };\n }\n return null;\n }\n\n public changedValues: Record = {};\n\n public isSubmit = false;\n\n get canSubmit() {\n return !isEmpty(this.changedValues);\n }\n\n public async handleSubmit(values: UpdateUserInfoBody) {\n if (this.isSubmit) { return; }\n this.isSubmit = true;\n const { success, msg } = await updateUserInfo(values);\n this.isSubmit = false;\n if (!success) {\n Toast.fail(msg || '更新失败,请重试');\n } else {\n Dialog.confirm({\n icon: { type: CheckboxCircleFilled, color: '#36b365' },\n title: '更新成功',\n content: '是否返回个人中心?',\n onOk: () => {\n this.$router.replace('/user-center');\n },\n onClose: () => {\n userModule.getUserInfo(true);\n },\n });\n }\n }\n\n public render() {\n\n return (\n \n {\n this.updateInfo\n &&\n ({\n nickName: yup.string().max(30, '不能超过30个字符').required('必须填写昵称'),\n })}\n onValuesChange={({ prop, value }) => {\n this.$set(this.changedValues, prop, value);\n }}\n onSubmit={this.handleSubmit}>\n
\n \n \n \n \n \n \n
\n \n 保存\n \n
\n \n }\n \n );\n }\n}\n"],"sourceRoot":""}