feat: 选择trending report之后清除其他参数

This commit is contained in:
2026-05-04 09:41:58 +08:00
parent d073008736
commit 1078961608
3 changed files with 48 additions and 4 deletions

View File

@@ -36,9 +36,10 @@
:setting-title="$t('Input.styleTitle')"
:confirm-text="$t('Input.confirm')"
:create-text="$t('Input.createProject')"
:parameters-disabled="isReportSelected"
:translate="translate"
@file-change="handleFileChange"
@toggle-report="toggleReportTag()"
@toggle-report="handleToggleReportTag"
@create="handleCreateProject"
@send="handleSendAgent"
/>
@@ -48,7 +49,7 @@
v-if="!isAgentMode"
:is-cn="isCn"
:label="$t('Input.trendingReport')"
@click="toggleReportTag()"
@click="handleToggleReportTag"
/>
<Preview v-model="showPreview" :url="previewUrl" />
</div>
@@ -156,6 +157,24 @@
clearImages
} = useInputImages(focusEditor)
const isReportSelected = computed(() => {
return reportTags.value.some((tag) => tag.parentNode)
})
const clearParameterValues = () => {
typeValue.value = ''
areaValue.value = ''
styleValue.value = ''
}
const handleToggleReportTag = () => {
const shouldSelectReport = !isReportSelected.value
toggleReportTag()
if (shouldSelectReport) {
clearParameterValues()
}
}
watch(inputValue, () => {
nextTick(() => {
autoResizeEditor()

View File

@@ -24,6 +24,7 @@
v-if="!isAgentMode"
v-model="typeModel"
:placeholder="typePlaceholder"
:disabled="parametersDisabled"
>
<el-option
v-for="item in typeOptions"
@@ -37,6 +38,7 @@
v-if="!isAgentMode"
v-model="areaModel"
:placeholder="areaPlaceholder"
:disabled="parametersDisabled"
>
<el-option
v-for="item in areaOptions"
@@ -54,6 +56,7 @@
:placeholder="stylePlaceholder"
:title="styleTitle"
:confirm-text="confirmText"
:disabled="parametersDisabled"
/>
<SettingPopover
v-model:options="settingOptionsModel"
@@ -109,11 +112,13 @@
settingTitle: string
confirmText: string
createText: string
parametersDisabled?: boolean
translate: (key: string) => string
}>(),
{
isAgentMode: false,
generating: false
generating: false,
parametersDisabled: false
}
)

View File

@@ -1,13 +1,15 @@
<template>
<div class="fida-style-select-wrapper">
<div class="fida-style-select-wrapper" :class="{ 'is-disabled': disabled }">
<el-select
:model-value="modelValue"
:placeholder="placeholder"
:disabled="disabled"
@focus="openStylePopup"
/>
<el-popover
v-model:visible="stylePopupVisible"
:disabled="disabled"
placement="top"
:width="342"
:show-arrow="false"
@@ -60,6 +62,7 @@
placeholder: string
title: string
confirmText: string
disabled?: boolean
}>()
const emit = defineEmits<{
@@ -77,12 +80,23 @@
{ immediate: true }
)
watch(
() => props.disabled,
(disabled) => {
if (disabled) {
stylePopupVisible.value = false
}
}
)
const openStylePopup = () => {
if (props.disabled) return
tempSelectedValue.value = props.modelValue
stylePopupVisible.value = true
}
const selectStyle = (value: string) => {
if (props.disabled) return
tempSelectedValue.value = value
confirmStyle()
}
@@ -132,6 +146,12 @@
z-index: 1;
cursor: pointer;
}
.is-disabled {
.fida-style-select-trigger {
cursor: not-allowed;
}
}
</style>
<style lang="less">