Commit a92458b0 authored by shirlyn.guo's avatar shirlyn.guo 🤡

refactor: 规范命名

parent b2c2040a
import { request } from '@/utils/request' import { request } from '@/utils/request'
// 声音与数字人形象定制资料填写 export function fetchDigitalImageCustomizationInfo<T>(payload: {
export function uploadVoiceCharacterCustomize<T>(payload: {
customServiceType: 'VOICE_FIGURE' customServiceType: 'VOICE_FIGURE'
companyName: string companyName: string
contactName: string contactName: string
......
import { request } from '@/utils/request' import { request } from '@/utils/request'
// 根据ID获取推荐模板信息
export function fetchGiftCodeRedemption<T>(redemptionCode: string) { export function fetchGiftCodeRedemption<T>(redemptionCode: string) {
return request.post<T>(`/bizRedemptionRest/equityRedeem.json?redemptionCode=${redemptionCode}`) return request.post<T>(`/bizRedemptionRest/equityRedeem.json?redemptionCode=${redemptionCode}`)
} }
...@@ -3,28 +3,28 @@ import type { FormInst, FormItemRule, FormRules } from 'naive-ui' ...@@ -3,28 +3,28 @@ import type { FormInst, FormItemRule, FormRules } from 'naive-ui'
import { ref, shallowReadonly, useTemplateRef } from 'vue' import { ref, shallowReadonly, useTemplateRef } from 'vue'
import isMobilePhone from 'validator/es/lib/isMobilePhone' import isMobilePhone from 'validator/es/lib/isMobilePhone'
import isEmail from 'validator/es/lib/isEmail' import isEmail from 'validator/es/lib/isEmail'
import { uploadVoiceCharacterCustomize } from '@/apis/custom' import { fetchDigitalImageCustomizationInfo } from '@/apis/digital-image-customization'
interface CustomizeInfoPayload { interface CustomizationInfoPayload {
customServiceType: 'VOICE_FIGURE' customServiceType: 'VOICE_FIGURE'
companyName: string companyName: string
contactName: string contactName: string
contactInformation: string contactInformation: string
} }
const isShowVoiceCharacterCustomizeModal = defineModel<boolean>('isShowVoiceCharacterCustomizeModal', { const isShowDigitalImageCustomizationModal = defineModel<boolean>('isShowDigitalImageCustomizationModal', {
default: false, default: false,
}) })
const customizeInfoFormRef = useTemplateRef<FormInst>('customizeInfoFormRef') const customizationInfoFormRef = useTemplateRef<FormInst>('customizationInfoFormRef')
const customizeInfoForm = ref({ const customizationInfoForm = ref({
companyName: '', companyName: '',
contactName: '', contactName: '',
contactInformation: '', contactInformation: '',
}) })
const customizeInfoFormRules = shallowReadonly<FormRules>({ const customizationInfoFormRules = shallowReadonly<FormRules>({
companyName: { companyName: {
required: true, required: true,
trigger: 'blur', trigger: 'blur',
...@@ -77,37 +77,37 @@ const customizeInfoFormRules = shallowReadonly<FormRules>({ ...@@ -77,37 +77,37 @@ const customizeInfoFormRules = shallowReadonly<FormRules>({
}, },
}) })
const customizeSubmitBtnLoading = ref(false) const customizationSubmitBtnLoading = ref(false)
function handleCustomizeInfoSubmit() { function handleCustomizeInfoSubmit() {
customizeInfoFormRef.value?.validate((errors) => { customizationInfoFormRef.value?.validate((errors) => {
if (errors) return '' if (errors) return ''
customizeSubmitBtnLoading.value = true customizationSubmitBtnLoading.value = true
let payload: CustomizeInfoPayload = { let payload: CustomizationInfoPayload = {
customServiceType: 'VOICE_FIGURE', customServiceType: 'VOICE_FIGURE',
...customizeInfoForm.value, ...customizationInfoForm.value,
} }
uploadVoiceCharacterCustomize(payload) fetchDigitalImageCustomizationInfo(payload)
.then(() => { .then(() => {
window.$message.success('提交成功') window.$message.success('提交成功')
isShowVoiceCharacterCustomizeModal.value = false isShowDigitalImageCustomizationModal.value = false
}) })
.catch(() => { .catch(() => {
window.$message.error('提交失敗,請重新提交') window.$message.error('提交失敗,請重新提交')
}) })
.finally(() => { .finally(() => {
customizeSubmitBtnLoading.value = false customizationSubmitBtnLoading.value = false
}) })
}) })
} }
function onModalAfterLeave() { function onModalAfterLeave() {
customizeInfoFormRef.value?.restoreValidation() customizationInfoFormRef.value?.restoreValidation()
customizeInfoForm.value = { customizationInfoForm.value = {
companyName: '', companyName: '',
contactName: '', contactName: '',
contactInformation: '', contactInformation: '',
...@@ -116,31 +116,35 @@ function onModalAfterLeave() { ...@@ -116,31 +116,35 @@ function onModalAfterLeave() {
</script> </script>
<template> <template>
<n-modal v-model:show="isShowVoiceCharacterCustomizeModal" :mask-closable="false" :on-after-leave="onModalAfterLeave"> <n-modal
v-model:show="isShowDigitalImageCustomizationModal"
:mask-closable="false"
:on-after-leave="onModalAfterLeave"
>
<n-card <n-card
class="!w-[600px]" class="!w-[600px]"
title="聲音與數字人形象定制" title="聲音與數字人形象定制"
:bordered="false" :bordered="false"
size="medium" size="medium"
closable closable
@close="() => (isShowVoiceCharacterCustomizeModal = false)" @close="() => (isShowDigitalImageCustomizationModal = false)"
> >
<n-form <n-form
ref="customizeInfoFormRef" ref="customizationInfoFormRef"
label-placement="left" label-placement="left"
label-width="auto" label-width="auto"
:model="customizeInfoForm" :model="customizationInfoForm"
:rules="customizeInfoFormRules" :rules="customizationInfoFormRules"
> >
<n-form-item label="公司名稱" path="companyName"> <n-form-item label="公司名稱" path="companyName">
<n-input v-model:value="customizeInfoForm.companyName" placeholder="請輸入公司名稱" /> <n-input v-model:value="customizationInfoForm.companyName" placeholder="請輸入公司名稱" />
</n-form-item> </n-form-item>
<n-form-item label="聯系人姓名" path="contactName"> <n-form-item label="聯系人姓名" path="contactName">
<n-input v-model:value="customizeInfoForm.contactName" placeholder="請輸入聯系人姓名" /> <n-input v-model:value="customizationInfoForm.contactName" placeholder="請輸入聯系人姓名" />
</n-form-item> </n-form-item>
<n-form-item label="聯系方式" path="contactInformation"> <n-form-item label="聯系方式" path="contactInformation">
<n-input <n-input
v-model:value="customizeInfoForm.contactInformation" v-model:value="customizationInfoForm.contactInformation"
placeholder="请输入手机号码(加区号)或电子邮箱" placeholder="请输入手机号码(加区号)或电子邮箱"
/> />
</n-form-item> </n-form-item>
...@@ -149,8 +153,8 @@ function onModalAfterLeave() { ...@@ -149,8 +153,8 @@ function onModalAfterLeave() {
<template #footer> <template #footer>
<div class="text-end"> <div class="text-end">
<n-space justify="end"> <n-space justify="end">
<n-button @click="() => (isShowVoiceCharacterCustomizeModal = false)">取消</n-button> <n-button @click="() => (isShowDigitalImageCustomizationModal = false)">取消</n-button>
<n-button type="info" :loading="customizeSubmitBtnLoading" @click="handleCustomizeInfoSubmit" <n-button type="info" :loading="customizationSubmitBtnLoading" @click="handleCustomizeInfoSubmit"
>提交</n-button >提交</n-button
> >
</n-space> </n-space>
......
...@@ -3,7 +3,7 @@ import { h, ref, shallowReadonly, watchEffect } from 'vue' ...@@ -3,7 +3,7 @@ import { h, ref, shallowReadonly, watchEffect } from 'vue'
import type { MenuOption } from 'naive-ui' import type { MenuOption } from 'naive-ui'
import { useRoute, useRouter } from 'vue-router' import { useRoute, useRouter } from 'vue-router'
import { Workbench, DocumentFolder, Inbox, CommentOne, PeopleSpeak } from '@icon-park/vue-next' import { Workbench, DocumentFolder, Inbox, CommentOne, PeopleSpeak } from '@icon-park/vue-next'
import VoiceCharacterCustomize from '../components/voice-character-customize.vue' import DigitalImageCustomization from '../components/digital-image-customization.vue'
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
...@@ -50,11 +50,11 @@ const menuOptions = shallowReadonly<MenuOption[]>([ ...@@ -50,11 +50,11 @@ const menuOptions = shallowReadonly<MenuOption[]>([
{ {
type: 'group', type: 'group',
label: '定制', label: '定制',
key: 'Customize', key: 'Customization',
children: [ children: [
{ {
label: '聲音與數字人形象定制', label: '聲音與數字人形象定制',
key: 'VoiceDigitalCharacterCustomize', key: 'DigitalImageCustomization',
icon: () => h(PeopleSpeak, { ...iconConfigFactory() }), icon: () => h(PeopleSpeak, { ...iconConfigFactory() }),
}, },
], ],
...@@ -62,15 +62,15 @@ const menuOptions = shallowReadonly<MenuOption[]>([ ...@@ -62,15 +62,15 @@ const menuOptions = shallowReadonly<MenuOption[]>([
]) ])
const currentMenuValue = ref('') const currentMenuValue = ref('')
const isShowViceCharacterCustomizeModal = ref(false) const isShowDigitalImageCustomizationModal = ref(false)
watchEffect(() => { watchEffect(() => {
currentMenuValue.value = route.name as string currentMenuValue.value = route.name as string
}) })
function onMenuValueChange(key: string) { function onMenuValueChange(key: string) {
if (key === 'VoiceDigitalCharacterCustomize') { if (key === 'DigitalImageCustomization') {
isShowViceCharacterCustomizeModal.value = true isShowDigitalImageCustomizationModal.value = true
return return
} }
router.push({ name: key }) router.push({ name: key })
...@@ -88,5 +88,5 @@ function onMenuValueChange(key: string) { ...@@ -88,5 +88,5 @@ function onMenuValueChange(key: string) {
</div> </div>
</section> </section>
<VoiceCharacterCustomize v-model:is-show-voice-character-customize-modal="isShowViceCharacterCustomizeModal" /> <DigitalImageCustomization v-model:is-show-digital-image-customization-modal="isShowDigitalImageCustomizationModal" />
</template> </template>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment