@@ -1533,6 +1554,24 @@ function backToBrands(): void {
word-break: break-all;
}
+.candidate-row__editor {
+ width: 100%;
+ min-width: 0;
+ min-height: 44px;
+ line-height: 1.6;
+ white-space: pre-wrap;
+ resize: none;
+}
+
+.candidate-row__editor :deep(.ant-input) {
+ width: 100%;
+ min-height: 44px;
+ line-height: 1.6;
+ white-space: pre-wrap;
+ overflow-wrap: anywhere;
+ resize: none;
+}
+
.candidate-row__actions {
display: flex;
gap: 4px;
diff --git a/apps/admin-web/src/views/TemplateWizardView.vue b/apps/admin-web/src/views/TemplateWizardView.vue
index 9312eaa..6160dbe 100644
--- a/apps/admin-web/src/views/TemplateWizardView.vue
+++ b/apps/admin-web/src/views/TemplateWizardView.vue
@@ -286,6 +286,12 @@ const templateMeta = computed(() => {
const selectedBrand = computed(
() => brandsQuery.data.value?.find((brand) => brand.id === selectedBrandId.value) ?? null,
)
+const brandNameOptions = computed(() =>
+ (brandsQuery.data.value ?? []).map((item) => ({
+ label: item.name,
+ value: item.name,
+ })),
+)
function findQuestionById(id: number | null): Question | null {
if (!id) {
@@ -654,6 +660,23 @@ watch(supplementalQuestionIds, (ids) => {
}
})
+function handleBrandNameInput(value: string): void {
+ brandName.value = value
+ const matchedBrand = brandsQuery.data.value?.find((item) => item.name === value)
+ selectedBrandId.value = matchedBrand?.id ?? null
+}
+
+function handleBrandNameSelect(value: string): void {
+ const brand = brandsQuery.data.value?.find((item) => item.name === value)
+ if (!brand) {
+ selectedBrandId.value = null
+ brandName.value = value
+ return
+ }
+ selectedBrandId.value = brand.id
+ brandName.value = brand.name
+}
+
watch(selectedBrandId, async (brandId) => {
if (restoringDraft.value) {
return
@@ -1192,8 +1215,9 @@ function sanitizeLegacyKeywordCopy(copy: TemplateCardCopy): TemplateCardCopy {
function sanitizeLegacyKeywordText(value: string | undefined): string {
return (value || '')
- .replace(/核心关键词/g, '品牌主问题')
- .replace(/关键词/g, '品牌问题')
+ .replace(/品牌主问题/g, '优化关键词')
+ .replace(/补充覆盖问题/g, '补充关键词')
+ .replace(/核心关键词/g, '优化关键词')
.replace(/标题生成/g, '后续生成')
}
@@ -2392,29 +2416,17 @@ function onStructureDragEnd(): void {
/>
diff --git a/apps/admin-web/src/views/TrackingView.vue b/apps/admin-web/src/views/TrackingView.vue
index 781fa61..b1d90c6 100644
--- a/apps/admin-web/src/views/TrackingView.vue
+++ b/apps/admin-web/src/views/TrackingView.vue
@@ -862,7 +862,7 @@ function disableTrackingDate(current: dayjs.Dayjs): boolean {
/>