Skip to content

Commit 790bf9b

Browse files
committed
编辑信息功能修改1
1 parent e47de9f commit 790bf9b

4 files changed

Lines changed: 35 additions & 27 deletions

File tree

package-lock.json

Lines changed: 2 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/api/user.api.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ export interface UpdateOwnProfilePayload {
123123
email: string
124124
status: string
125125
birthday: string
126+
gender?: string
127+
nationality?: string
128+
admissionDate?: string
126129
}
127130

128131
export interface AddProjectPayload {

src/constants/default.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ export const CAMPUS_MAP: NumberCodeMap = {
246246
export const GENDER_MAP: NumberCodeMap = {
247247
0: '男',
248248
1: '女',
249+
2:'未知'
249250
} as const
250251

251252
// 政治面貌
@@ -286,6 +287,8 @@ export const degreeOptions = makeOptionsFromMap(DEGREE_MAP)
286287
export const politicalOptions = makeOptionsFromMap(POLITICALSTATUS_MAP)
287288
export const collegeOptions = makeOptionsFromMap(COLLEGE_MAP)
288289
export const majorOptions = makeOptionsFromMap(MAJOR_MAP)
290+
export const genderOptions = makeOptionsFromMap(GENDER_MAP)
291+
export const ethnicOptions = makeOptionsFromMap(ETHNICITY_MAP)
289292

290293
// 历史兼容格式化函数(保留原导出)
291294
export const formatEthnicity = createFormatter(ethnicMap, '未知')

src/views/profile/index.vue

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,15 @@
118118
/>
119119
</el-form-item>
120120

121+
<el-form-item label="入学时间" prop="admissionDate">
122+
<el-date-picker
123+
v-model="editFormModel.admissionDate"
124+
type="date"
125+
value-format="YYYY-MM-DD"
126+
placeholder="请选择入学时间"
127+
/>
128+
</el-form-item>
129+
121130
<el-form-item label="手机号" prop="telephone">
122131
<el-input v-model="editFormModel.telephone" placeholder="请输入手机号" />
123132
</el-form-item>
@@ -169,7 +178,9 @@ import {
169178
collegeOptions,
170179
degreeMap,
171180
degreeOptions,
181+
ethnicOptions,
172182
ethnicMap,
183+
genderOptions,
173184
genderMap,
174185
majorMap,
175186
majorOptions,
@@ -226,6 +237,9 @@ const editFormRef = ref<FormInstance>()
226237
const editFormModel = reactive<UpdateOwnProfilePayload>({
227238
degree: '',
228239
grade: '',
240+
gender: '',
241+
nationality: '',
242+
admissionDate: '',
229243
political: '',
230244
marry: '',
231245
apartment: '',
@@ -258,17 +272,19 @@ const punishRows = computed(() =>
258272
ownPunishList.value.map((item) => ({
259273
...item,
260274
category: mapCodeToLabel(punishTypeMap, item.category),
261-
})),
275+
}))
262276
)
263277
264278
const scholarshipRows = computed(() =>
265279
ownScholarshipList.value.map((item) => ({
266280
...item,
267281
type: mapCodeToLabel(fundTypeMap, item.type),
268-
})),
282+
}))
269283
)
270284
271285
const selectFields: EditFieldConfig[] = [
286+
{ key: 'gender', label: '性别', options: genderOptions },
287+
{ key: 'nationality', label: '民族', options: ethnicOptions },
272288
{ key: 'marry', label: '婚姻状况', options: marryOptions },
273289
{ key: 'major', label: '专业', options: majorOptions },
274290
{ key: 'degree', label: '学历', options: degreeOptions },
@@ -414,6 +430,9 @@ const getPersonalInfoValue = (item: PersonalInfoItem) => {
414430
const syncEditForm = () => {
415431
editFormModel.degree = ownProfile.value.degree || ''
416432
editFormModel.grade = ownProfile.value.grade || ''
433+
editFormModel.gender = ownProfile.value.gender || ''
434+
editFormModel.nationality = ownProfile.value.nationality || ''
435+
editFormModel.admissionDate = ownProfile.value.admissionDate || ''
417436
editFormModel.political = ownProfile.value.political || ''
418437
editFormModel.marry = ownProfile.value.marry || ''
419438
editFormModel.apartment = ownProfile.value.apartment || ''
@@ -432,7 +451,7 @@ watch(
432451
() => {
433452
syncEditForm()
434453
},
435-
{ immediate: true, deep: true },
454+
{ immediate: true, deep: true }
436455
)
437456
438457
const openEditDialog = () => {
@@ -447,7 +466,11 @@ const saveProfileEdit = async () => {
447466
448467
await editFormRef.value.validate()
449468
try {
450-
const response = await userStore.updateOwnProfile({ ...editFormModel })
469+
const payload: UpdateOwnProfilePayload = { ...editFormModel }
470+
// if (payload.admissionDate && !payload.admissionDate.includes(' ')) {
471+
// payload.admissionDate = `${payload.admissionDate} 00:00:00`
472+
// }
473+
const response = await userStore.updateOwnProfile(payload)
451474
if (response.code === 200) {
452475
ElMessage.success('信息更新成功')
453476
editDialogVisible.value = false

0 commit comments

Comments
 (0)