refactor(page-decoration): 重构装修页面组件与交互方式

- 统一 liliDialog ref 命名为 liliDialogRef,避免与组件 import 冲突
- 商品选择弹窗改为 el-table 表格形式展示
- 链接选择器从 el-dialog 改为 el-drawer 抽屉形式
- 为所有 img 标签添加 alt 属性提升可访问性
- 新增拼团、直播、秒杀、砍价、积分商城、优惠券等营销组件默认配置
- 删除商品分类组件,新增商品列表组件配置
- i18n 配置从 legacy 模式切换为 composition 模式
- 注册 PanelSearch、PanelNotice、PanelVideo 等新面板组件
- 优化画布预览区域样式并添加页面设置入口
This commit is contained in:
pikachu1995@126.com
2026-10-20 16:13:28 +08:00
parent d87e0c5f6b
commit d29ad9c99b
78 changed files with 8441 additions and 1350 deletions

View File

@@ -1,5 +1,6 @@
<template>
<el-dialog
v-if="goodsFlag"
v-model="flag"
width="1160px"
top="120px"
@@ -9,32 +10,49 @@
destroy-on-close
@close="clickClose"
>
<template v-if="flag">
<goodsDialog
@selected="
(val) => {
goodsData = val;
}
"
v-if="goodsFlag"
ref="goodsDialogRef"
:selectedWay="goodsData"
/>
<linkDialog
@selectedLink="
(val) => {
linkData = val;
}
"
v-else
class="linkDialog"
/>
</template>
<goodsDialog
v-if="flag"
ref="goodsDialogRef"
:selectedWay="goodsData"
@selected="
(val) => {
goodsData = val;
}
"
/>
<template #footer>
<el-button @click="clickClose">取消</el-button>
<el-button type="primary" @click="clickOK">确定</el-button>
</template>
</el-dialog>
<el-drawer
v-else
v-model="flag"
class="link-selector-drawer"
direction="rtl"
size="1160px"
:with-header="false"
:z-index="10000"
:close-on-click-modal="false"
append-to-body
destroy-on-close
@close="clickClose"
>
<linkDialog
v-if="flag"
class="linkDialog"
@selectedLink="
(val) => {
linkData = val;
}
"
/>
<template #footer>
<el-button @click="clickClose">取消</el-button>
<el-button type="primary" @click="clickOK">确定</el-button>
</template>
</el-drawer>
</template>
<script setup>
import { ref } from "vue";
@@ -120,3 +138,22 @@ defineExpose({
overflow: hidden;
}
</style>
<style lang="scss">
// 抽屉 append-to-body 后不在当前组件 DOM 内,不能使用 scoped 样式
.link-selector-drawer {
max-width: 96vw;
.el-drawer__body {
overflow: hidden;
}
.goods-select-table,
.shops-select-table,
.articles-select-table,
.specials-select-table {
height: calc(100vh - 240px) !important;
}
}
// 商品分类下拉挂载到 body,需要高于抽屉的 10000 层级
.goods-dialog-cascader-popper {
z-index: 10001 !important;
}
</style>