feat(dict): reuse user dictionaries in personal center

This commit is contained in:
Leo 2025-09-27 01:03:40 +08:00
parent 05b0bc1376
commit 862ed051ed

View File

@ -97,13 +97,7 @@
<div class="flex justify-between items-center py-2"> <div class="flex justify-between items-center py-2">
<span class="text-gray-600">状态</span> <span class="text-gray-600">状态</span>
<n-tag <DictTag dict-type="sys_switch_status" :value="personalData.userStatus || '0'" />
:type="(personalData.userStatus || '0') === '0' ? 'info' : 'error'"
:style="(personalData.userStatus || '0') === '0' ? { backgroundColor: '#6366f1', color: 'white', border: 'none' } : {}"
size="small"
>
{{ getStatusText(personalData.userStatus || '0') }}
</n-tag>
</div> </div>
<div class="flex justify-between items-center py-2"> <div class="flex justify-between items-center py-2">
@ -260,12 +254,14 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue' import { computed, onMounted, ref } from 'vue'
import { useAuthStore } from '@/store/auth' import { useAuthStore } from '@/store/auth'
import { coiMsgError, coiMsgSuccess, coiMsgWarning } from '@/utils/coi' import { coiMsgError, coiMsgSuccess, coiMsgWarning } from '@/utils/coi'
import { getPersonalData, updateBasicData, updatePassword, uploadAvatar } from '@/service/api/personal' import { getPersonalData, updateBasicData, updatePassword, uploadAvatar } from '@/service/api/personal'
import type { PersonalDataVo, UpdatePasswordBo, UpdatePersonalBo } from '@/service/api/personal' import type { PersonalDataVo, UpdatePasswordBo, UpdatePersonalBo } from '@/service/api/personal'
import { serviceConfig } from '@/../service.config' import { serviceConfig } from '@/../service.config'
import DictTag from '@/components/common/DictTag.vue'
import { useDict } from '@/hooks'
// //
const authStore = useAuthStore() const authStore = useAuthStore()
@ -343,29 +339,12 @@ const passwordRules = {
], ],
} }
// const { getSelectOptions, getDictLabel } = useDict(['sys_user_sex', 'sys_switch_status'])
const genderOptions = [
{ label: '男', value: '1' },
{ label: '女', value: '2' },
{ label: '未知', value: '3' },
]
// const genderOptions = computed(() => getSelectOptions('sys_user_sex'))
const statusOptions = [
{ label: '启用', value: '0' },
{ label: '停用', value: '1' },
]
//
function getGenderText(sex: string) { function getGenderText(sex: string) {
const option = genderOptions.find(item => item.value === sex) return getDictLabel('sys_user_sex', sex, '未知')
return option?.label || '未知'
}
//
function getStatusText(status: string) {
const option = statusOptions.find(item => item.value === status)
return option?.label || '未知'
} }
// //