|
@@ -498,6 +498,7 @@
|
|
|
<ModelGenerationDialog
|
|
<ModelGenerationDialog
|
|
|
v-model="modelDialogVisible"
|
|
v-model="modelDialogVisible"
|
|
|
:initial-models="selectedModels"
|
|
:initial-models="selectedModels"
|
|
|
|
|
+ :default-active-tab="modelDialogDefaultTab"
|
|
|
@confirm="handleModelSelection"
|
|
@confirm="handleModelSelection"
|
|
|
@cancel="modelDialogVisible = false"
|
|
@cancel="modelDialogVisible = false"
|
|
|
/>
|
|
/>
|
|
@@ -910,6 +911,7 @@ const onlineStoreTempList = ref<any[]>([]) // 国内电商平台列表
|
|
|
const onlineStoreTempListForeign = ref<any[]>([]) // 国外电商平台列表
|
|
const onlineStoreTempListForeign = ref<any[]>([]) // 国外电商平台列表
|
|
|
// 模特与场景弹窗
|
|
// 模特与场景弹窗
|
|
|
const modelDialogVisible = ref(false)
|
|
const modelDialogVisible = ref(false)
|
|
|
|
|
+const modelDialogDefaultTab = ref<'female' | 'male'>('female')
|
|
|
const scenePromptDialogVisible = ref(false)
|
|
const scenePromptDialogVisible = ref(false)
|
|
|
const selectedModels = ref<{ female: any; male: any } | null>(null)
|
|
const selectedModels = ref<{ female: any; male: any } | null>(null)
|
|
|
const scenePrompt = ref('')
|
|
const scenePrompt = ref('')
|
|
@@ -1052,8 +1054,21 @@ const loadTemplateFromCache = () => {
|
|
|
ensureDefaultTemplateSelection({ ensureVisible: true })
|
|
ensureDefaultTemplateSelection({ ensureVisible: true })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const openModelDialog = () => {
|
|
|
|
|
|
|
+const openModelDialog = (eventOrDefaultTab?: MouseEvent | 'female' | 'male') => {
|
|
|
modelDialogVisible.value = true
|
|
modelDialogVisible.value = true
|
|
|
|
|
+ let defaultTab: 'female' | 'male' | undefined
|
|
|
|
|
+
|
|
|
|
|
+ if (typeof eventOrDefaultTab === 'string') {
|
|
|
|
|
+ defaultTab = eventOrDefaultTab
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (defaultTab) {
|
|
|
|
|
+ // 传递给子组件的默认标签页
|
|
|
|
|
+ modelDialogDefaultTab.value = defaultTab
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 重置为默认值
|
|
|
|
|
+ modelDialogDefaultTab.value = 'female'
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
const openScenePromptDialog = () => {
|
|
const openScenePromptDialog = () => {
|
|
|
scenePromptDialogVisible.value = true
|
|
scenePromptDialogVisible.value = true
|
|
@@ -1065,7 +1080,7 @@ const handleModelSelection = (models: { female: any; male: any }) => {
|
|
|
selectedModels.value = models
|
|
selectedModels.value = models
|
|
|
saveModelsToCache(models)
|
|
saveModelsToCache(models)
|
|
|
modelDialogVisible.value = false
|
|
modelDialogVisible.value = false
|
|
|
- ElMessage.success('模特选择完成!')
|
|
|
|
|
|
|
+ // ElMessage.success('模特选择完成!')
|
|
|
}
|
|
}
|
|
|
const handleScenePromptConfirm = (prompt: string) => {
|
|
const handleScenePromptConfirm = (prompt: string) => {
|
|
|
scenePrompt.value = prompt
|
|
scenePrompt.value = prompt
|
|
@@ -1322,12 +1337,29 @@ const generate = async function () {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 必填验证
|
|
// 必填验证
|
|
|
- if (form.services.includes('is_upper_footer') && !( selectedModels.value && selectedModels.value.male?.id && selectedModels.value.female?.id)) {
|
|
|
|
|
- openModelDialog();
|
|
|
|
|
- setTimeout(()=>{
|
|
|
|
|
- ElMessage.error('请选择模特')
|
|
|
|
|
- },200)
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ if (form.services.includes('is_upper_footer')) {
|
|
|
|
|
+ const hasMale = selectedModels.value?.male?.id
|
|
|
|
|
+ const hasFemale = selectedModels.value?.female?.id
|
|
|
|
|
+
|
|
|
|
|
+ if (!hasMale && !hasFemale) {
|
|
|
|
|
+ openModelDialog();
|
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
|
+ ElMessage.error('请选择男模特和女模特')
|
|
|
|
|
+ },200)
|
|
|
|
|
+ return
|
|
|
|
|
+ } else if (!hasMale) {
|
|
|
|
|
+ openModelDialog('male');
|
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
|
+ ElMessage.error('请选择男模特')
|
|
|
|
|
+ },200)
|
|
|
|
|
+ return
|
|
|
|
|
+ } else if (!hasFemale) {
|
|
|
|
|
+ openModelDialog('female');
|
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
|
+ ElMessage.error('请选择女模特')
|
|
|
|
|
+ },200)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (form.services.includes('is_product_scene') && !scenePrompt.value) {
|
|
if (form.services.includes('is_product_scene') && !scenePrompt.value) {
|