From 010fb39e85681ca11a6cfd9c0d6b9ea93dedbd19 Mon Sep 17 00:00:00 2001 From: chenxing Date: Mon, 28 Sep 2026 12:33:39 +0800 Subject: [PATCH] =?UTF-8?q?[CMS-VISUAL]=20F4:=20Banner=20=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=94=B9=E3=80=8C=E9=A6=96=E9=A1=B5=E8=BD=AE=E6=92=AD?= =?UTF-8?q?/=E7=BA=BF=E4=B8=8A=E5=B1=95=E5=8E=85=E3=80=8D=E5=8F=8C=20Tab?= =?UTF-8?q?=EF=BC=8C=E5=90=84=20Tab=20=E7=8B=AC=E7=AB=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?/=E5=B0=BA=E5=AF=B8=E6=8F=90=E7=A4=BA=EF=BC=8C=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E5=BD=92=E5=B1=9E=E9=94=9A=E5=AE=9A=E6=89=93=E5=BC=80?= =?UTF-8?q?=E6=97=B6=20Tab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cms/BannerManage.vue | 52 +++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/views/cms/BannerManage.vue b/src/views/cms/BannerManage.vue index 07f0844..67526c1 100644 --- a/src/views/cms/BannerManage.vue +++ b/src/views/cms/BannerManage.vue @@ -20,13 +20,16 @@ const linkTypeDict = [ ]; const linkTypeText = (v: number) => linkTypeDict.find(i => i.value === v)?.label || "-"; -/** 展示位(docs/12):home=首页轮播 / gallery=线上展厅图片画廊 */ +/** 展示位(docs/12;docs/20 F4 双 Tab 化):home=首页轮播 / gallery=线上展厅图片画廊 */ const position = ref("home"); +/** 弹窗打开时的展示位锚点(F4:保存归属以打开时所在 Tab 为准,弹窗期间切换 Tab 不串数据) */ +const formPosition = ref("home"); const positionDict = [ - { value: "home", label: "首页轮播", tip: "轮播图设计尺寸建议 1920×560(皮肤包约定)" }, - { value: "gallery", label: "线上展厅", tip: "画廊图片设计尺寸建议 800×520,多图横向轮播(炫彩校园皮肤消费)" }, + { value: "home", label: "首页轮播", short: "轮播", addLabel: "新增轮播", tip: "轮播图设计尺寸建议 1920×560(皮肤包约定)" }, + { value: "gallery", label: "线上展厅", short: "展厅图片", addLabel: "新增展厅图片", tip: "画廊图片设计尺寸建议 800×520,多图横向轮播(炫彩校园皮肤消费)" }, ]; -const positionTip = computed(() => positionDict.find(p => p.value === position.value)?.tip || ""); +const formPositionMeta = computed(() => positionDict.find(p => p.value === formPosition.value)!); +const modalTitle = computed(() => `${form.id ? "编辑" : "新增"}${formPositionMeta.value.short}`); const columns = [ { @@ -120,6 +123,7 @@ function openCreate() { endTime: "", status: 1, }); + formPosition.value = position.value; modalVisible.value = true; } @@ -135,6 +139,7 @@ function openEdit(row: BannerVo) { endTime: row.endTime || "", status: row.status, }); + formPosition.value = position.value; modalVisible.value = true; } @@ -154,7 +159,7 @@ async function save() { return; } if (!form.imageUrl) { - Message.warning("请上传轮播图片"); + Message.warning("请上传图片"); return; } saving.value = true; @@ -163,7 +168,8 @@ async function save() { .save({ id: form.id, siteId: store.siteId!, - position: position.value, + // F4:保存归属以弹窗打开时所在 Tab 为准(弹窗期间切换 Tab 不串数据) + position: formPosition.value, title: form.title, imageUrl: form.imageUrl, linkType: form.linkType, @@ -184,7 +190,7 @@ async function save() { function doDelete(row: BannerVo) { MyConfirm({ - title: "删除轮播", + title: `删除${formPositionMeta.value.short}`, msg: `确定删除「${row.title}」吗?`, async onOk() { await bannerApi.delete({ id: row.id!, siteId: store.siteId! }).send(); @@ -204,34 +210,34 @@ watch(position, () => run());