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

refactor: 规范命名

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