| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { ref, computed, watch } from 'vue'
- import { useI18n } from 'vue-i18n'
- import { ucardApi } from '@/api/ucard'
- export default function useIdTypeOptions() {
- const { t } = useI18n()
- const idTypesConfigList = ref('')
- const allIdTypeOptions = computed(() => [
- { text: t('card.Form.v3'), value: 'HK_HKID' },
- { text: t('card.Form.v4'), value: 'PASSPORT' },
- { text: t('card.Form.v5'), value: 'DLN' },
- { text: t('card.Form.v6'), value: 'GOVERNMENT_ISSUED_ID_CARD' }
- ])
- /** 根据接口配置过滤后的可用证件类型 */
- const availableIdTypeOptions = computed(() => {
- const allowList = (idTypesConfigList.value || '')
- .split(',')
- .map(i => i.trim())
- .filter(Boolean)
- if (!allowList.length) return []
- return allIdTypeOptions.value.filter(opt =>
- allowList.includes(opt.value)
- )
- })
- /** 拉取接口配置 */
- async function loadIdTypesConfig(code: string) {
- try {
- const res = await ucardApi.idTypesConfigList({
- code,
- page: { current: 1, row: 10 }
- })
- if (res?.code === 200) {
- idTypesConfigList.value = res?.data?.[0]?.idType || ''
- }
- } catch (err) {
- console.error('[useIdTypeOptions] load failed:', err)
- idTypesConfigList.value = ''
- }
- }
- return {
- /** options */
- availableIdTypeOptions,
- allIdTypeOptions,
- /** methods */
- loadIdTypesConfig
- }
- }
|