|
@@ -1,4 +1,4 @@
|
|
|
-import { defineComponent, reactive, ref } from 'vue';
|
|
|
+import { defineComponent, onMounted, reactive, ref } from 'vue';
|
|
|
import styles from '../index.module.less';
|
|
|
import {
|
|
|
NImage,
|
|
@@ -12,30 +12,36 @@ import {
|
|
|
NSpace,
|
|
|
SelectOption,
|
|
|
useMessage,
|
|
|
- NModal
|
|
|
+ NModal,
|
|
|
+ NCalendar,
|
|
|
+ NCascader
|
|
|
} from 'naive-ui';
|
|
|
-import headerD from '@/views/home/images/headerD.png';
|
|
|
+import headerD from '../images/headerD.png';
|
|
|
import defultHeade from '@/components/layout/images/teacherIcon.png';
|
|
|
-import femaleIcon from '../images/femaleIcon.png';
|
|
|
import maleIcon from '../images/maleIcon.png';
|
|
|
-import { state } from '/src/state';
|
|
|
+import femaleIcon from '../images/femaleIcon.png';
|
|
|
import { useUserStore } from '/src/store/modules/users';
|
|
|
import { api_teacherUpdate } from '/src/api/user';
|
|
|
import UploadFile from '/src/components/upload-file';
|
|
|
import ForgotPassword from '../modal/forgotPassword';
|
|
|
+import { api_sysAreaQueryAllProvince } from '../api';
|
|
|
export default defineComponent({
|
|
|
name: 'setting-personInfo',
|
|
|
- setup(props, { emit, attrs }) {
|
|
|
+ setup() {
|
|
|
const message = useMessage();
|
|
|
const userStore = useUserStore();
|
|
|
const formOptions = reactive({
|
|
|
sexs: [
|
|
|
{ label: '男', value: 1, class: 'option' },
|
|
|
{ label: '女', value: 0, class: 'option' }
|
|
|
- ] as SelectOption[]
|
|
|
+ ] as SelectOption[],
|
|
|
+ areaList: [] as any[]
|
|
|
});
|
|
|
const formRef = ref();
|
|
|
const teacherForm = reactive({
|
|
|
+ provinceCode: '', // 省份编码
|
|
|
+ cityCode: '', // 城市编码
|
|
|
+ regionCode: '', // 区域编码
|
|
|
nickname: userStore.info.nickname,
|
|
|
phone: userStore.info.phone,
|
|
|
gender: userStore.info.gender,
|
|
@@ -46,7 +52,18 @@ export default defineComponent({
|
|
|
});
|
|
|
const data = reactive({
|
|
|
disabled: true,
|
|
|
- openChangePwd: false
|
|
|
+ openChangePwd: false,
|
|
|
+ uploadShow: true
|
|
|
+ });
|
|
|
+
|
|
|
+ const getAreaList = async () => {
|
|
|
+ const res = await api_sysAreaQueryAllProvince();
|
|
|
+ if (res?.code === 200) {
|
|
|
+ formOptions.areaList = res.data;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ onMounted(() => {
|
|
|
+ getAreaList();
|
|
|
});
|
|
|
|
|
|
const handleSave = () => {
|
|
@@ -77,24 +94,32 @@ export default defineComponent({
|
|
|
style={{ display: data.disabled ? 'none' : '' }}
|
|
|
class={[styles.defultHeade, styles.changeHead]}>
|
|
|
修改头像
|
|
|
- <UploadFile
|
|
|
- class={[styles.uploadFile]}
|
|
|
- cropper
|
|
|
- onUpdate:fileList={val => {
|
|
|
- teacherForm.avatar = val;
|
|
|
- }}
|
|
|
- />
|
|
|
+ {data.uploadShow && (
|
|
|
+ <UploadFile
|
|
|
+ class={[styles.uploadFile]}
|
|
|
+ cropper
|
|
|
+ onUpdate:fileList={val => {
|
|
|
+ teacherForm.avatar = val;
|
|
|
+ data.uploadShow = false;
|
|
|
+ setTimeout(() => {
|
|
|
+ data.uploadShow = true;
|
|
|
+ }, 100);
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ )}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={styles.headerInfo}>
|
|
|
<p class={styles.headerTitle}>
|
|
|
- 张晚意
|
|
|
+ {userStore.info.nickname}
|
|
|
<NImage
|
|
|
previewDisabled
|
|
|
class={styles.sexIcon}
|
|
|
- src={maleIcon}></NImage>
|
|
|
+ src={userStore.info.gender ? maleIcon : femaleIcon}></NImage>
|
|
|
+ </p>
|
|
|
+ <p class={styles.headerSubTitle}>
|
|
|
+ {userStore.info.schoolInfos?.[0]?.name} | 音乐老师
|
|
|
</p>
|
|
|
- <p class={styles.headerSubTitle}>武汉小学 | 音乐老师</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={styles.setInfo}>
|
|
@@ -138,6 +163,7 @@ export default defineComponent({
|
|
|
<NGi>
|
|
|
<NFormItem label="性别" path="sex">
|
|
|
<NSelect
|
|
|
+ class={styles.select}
|
|
|
showArrow={!data.disabled}
|
|
|
placeholder="请选择性别"
|
|
|
options={formOptions.sexs}
|
|
@@ -146,6 +172,24 @@ export default defineComponent({
|
|
|
</NFormItem>
|
|
|
</NGi>
|
|
|
</NGrid>
|
|
|
+ <NFormItem label="城区" style={{ maxWidth: '30%' }}>
|
|
|
+ <NCascader
|
|
|
+ options={formOptions.areaList}
|
|
|
+ labelField="name"
|
|
|
+ valueField="code"
|
|
|
+ childrenField="areas"
|
|
|
+ checkStrategy="child"
|
|
|
+ expandTrigger="hover"
|
|
|
+ defaultValue={
|
|
|
+ userStore.info.regionCode || userStore.info.cityCode
|
|
|
+ }
|
|
|
+ onUpdate:value={(val: any, option: any, pathValues: any) => {
|
|
|
+ teacherForm.provinceCode = pathValues[0]?.code;
|
|
|
+ teacherForm.cityCode = pathValues[1]?.code;
|
|
|
+ teacherForm.regionCode = pathValues[2]?.code;
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NFormItem>
|
|
|
</NForm>
|
|
|
</div>
|
|
|
{data.disabled ? (
|