From 4eca4d4119f8c389a1bc03b8e1417f313acf77c3 Mon Sep 17 00:00:00 2001
From: 77 <270260644@qq.com>
Date: Tue, 8 Oct 2024 19:58:21 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=AA=E5=AE=9A?=
=?UTF-8?q?=E4=B9=89=E9=A1=B5=E9=9D=A2=E7=A7=AF=E5=88=86=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yudao-admin-vue3/.env.local | 5 +-
.../src/api/mall/promotion/point/index.ts | 91 ++++
.../src/api/mall/statistics/member.ts | 7 +
.../AppLinkInput/AppLinkSelectDialog.vue | 395 +++++++++---------
.../src/components/AppLinkInput/data.ts | 51 +--
.../mobile/PromotionCombination/index.vue | 13 +-
.../mobile/PromotionPoint/config.ts | 96 +++++
.../mobile/PromotionPoint/index.vue | 202 +++++++++
.../mobile/PromotionPoint/property.vue | 154 +++++++
.../mobile/PromotionSeckill/index.vue | 13 +-
.../src/components/DiyEditor/util.ts | 2 +-
.../point/activity/PointActivityForm.vue | 227 ++++++++++
.../mall/promotion/point/activity/index.vue | 219 ++++++++++
.../point/activity/pointActivity.data.ts | 55 +++
.../point/components/PointShowcase.vue | 154 +++++++
.../point/components/PointTableSelect.vue | 300 +++++++++++++
16 files changed, 1757 insertions(+), 227 deletions(-)
create mode 100644 yudao-admin-vue3/src/api/mall/promotion/point/index.ts
create mode 100644 yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/config.ts
create mode 100644 yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/index.vue
create mode 100644 yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue
create mode 100644 yudao-admin-vue3/src/views/mall/promotion/point/activity/PointActivityForm.vue
create mode 100644 yudao-admin-vue3/src/views/mall/promotion/point/activity/index.vue
create mode 100644 yudao-admin-vue3/src/views/mall/promotion/point/activity/pointActivity.data.ts
create mode 100644 yudao-admin-vue3/src/views/mall/promotion/point/components/PointShowcase.vue
create mode 100644 yudao-admin-vue3/src/views/mall/promotion/point/components/PointTableSelect.vue
diff --git a/yudao-admin-vue3/.env.local b/yudao-admin-vue3/.env.local
index f61c09e..120bda0 100644
--- a/yudao-admin-vue3/.env.local
+++ b/yudao-admin-vue3/.env.local
@@ -4,12 +4,13 @@ NODE_ENV=development
VITE_DEV=true
# 请求路径
-VITE_BASE_URL='http://localhost:6127'
+#VITE_BASE_URL='https://zysc.fjptzykj.com'
+VITE_BASE_URL='http://192.168.1.12:6127'
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
VITE_UPLOAD_TYPE=server
# 上传路径
-VITE_UPLOAD_URL='http://localhost:6127/admin-api/infra/file/upload'
+VITE_UPLOAD_URL='https://zysc.fjptzykj.com/admin-api/infra/file/upload'
# 接口地址
VITE_API_URL=/admin-api
diff --git a/yudao-admin-vue3/src/api/mall/promotion/point/index.ts b/yudao-admin-vue3/src/api/mall/promotion/point/index.ts
new file mode 100644
index 0000000..38254c2
--- /dev/null
+++ b/yudao-admin-vue3/src/api/mall/promotion/point/index.ts
@@ -0,0 +1,91 @@
+import request from '@/config/axios'
+import { Sku, Spu } from '@/api/mall/product/spu' // 积分商城活动 VO
+
+// 积分商城活动 VO
+export interface PointActivityVO {
+ id: number // 积分商城活动编号
+ spuId: number // 积分商城活动商品
+ status: number // 活动状态
+ stock: number // 积分商城活动库存
+ totalStock: number // 积分商城活动总库存
+ remark?: string // 备注
+ sort: number // 排序
+ createTime: string // 创建时间
+ products: PointProductVO[] // 积分商城商品
+
+ // ========== 商品字段 ==========
+ spuName: string // 商品名称
+ picUrl: string // 商品主图
+ marketPrice: number // 商品市场价,单位:分
+
+ //======================= 显示所需兑换积分最少的 sku 信息 =======================
+ point: number // 兑换积分
+ price: number // 兑换金额,单位:分
+}
+
+// 秒杀活动所需属性
+export interface PointProductVO {
+ id?: number // 积分商城商品编号
+ activityId?: number // 积分商城活动 id
+ spuId?: number // 商品 SPU 编号
+ skuId: number // 商品 SKU 编号
+ count: number // 可兑换数量
+ point: number // 兑换积分
+ price: number // 兑换金额,单位:分
+ stock: number // 积分商城商品库存
+ activityStatus?: number // 积分商城商品状态
+}
+
+// 扩展 Sku 配置
+export type SkuExtension = Sku & {
+ productConfig: PointProductVO
+}
+
+export interface SpuExtension extends Spu {
+ skus: SkuExtension[] // 重写类型
+}
+
+export interface SpuExtension0 extends Spu {
+ pointStock: number // 积分商城活动库存
+ pointTotalStock: number // 积分商城活动总库存
+ point: number // 兑换积分
+ pointPrice: number // 兑换金额,单位:分
+}
+
+// 积分商城活动 API
+export const PointActivityApi = {
+ // 查询积分商城活动分页
+ getPointActivityPage: async (params: any) => {
+ return await request.get({ url: `/promotion/point-activity/page`, params })
+ },
+
+ // 查询积分商城活动详情
+ getPointActivity: async (id: number) => {
+ return await request.get({ url: `/promotion/point-activity/get?id=` + id })
+ },
+
+ // 查询积分商城活动列表,基于活动编号数组
+ getPointActivityListByIds: async (ids: number[]) => {
+ return request.get({ url: `/promotion/point-activity/list-by-ids?ids=${ids}` })
+ },
+
+ // 新增积分商城活动
+ createPointActivity: async (data: PointActivityVO) => {
+ return await request.post({ url: `/promotion/point-activity/create`, data })
+ },
+
+ // 修改积分商城活动
+ updatePointActivity: async (data: PointActivityVO) => {
+ return await request.put({ url: `/promotion/point-activity/update`, data })
+ },
+
+ // 删除积分商城活动
+ deletePointActivity: async (id: number) => {
+ return await request.delete({ url: `/promotion/point-activity/delete?id=` + id })
+ },
+
+ // 关闭秒杀活动
+ closePointActivity: async (id: number) => {
+ return await request.put({ url: '/promotion/point-activity/close?id=' + id })
+ }
+}
diff --git a/yudao-admin-vue3/src/api/mall/statistics/member.ts b/yudao-admin-vue3/src/api/mall/statistics/member.ts
index d9accf9..5d9827a 100644
--- a/yudao-admin-vue3/src/api/mall/statistics/member.ts
+++ b/yudao-admin-vue3/src/api/mall/statistics/member.ts
@@ -121,3 +121,10 @@ export const getMemberRegisterCountList = (
params: { times: [formatDate(beginTime), formatDate(endTime)] }
})
}
+
+// 获取自定义页面数据
+export const getDiyPage = () => {
+ return request.get({
+ url: '/promotion/diy-page/getDiyPage'
+ })
+}
diff --git a/yudao-admin-vue3/src/components/AppLinkInput/AppLinkSelectDialog.vue b/yudao-admin-vue3/src/components/AppLinkInput/AppLinkSelectDialog.vue
index 5133f16..762ee96 100644
--- a/yudao-admin-vue3/src/components/AppLinkInput/AppLinkSelectDialog.vue
+++ b/yudao-admin-vue3/src/components/AppLinkInput/AppLinkSelectDialog.vue
@@ -1,210 +1,215 @@
-
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/yudao-admin-vue3/src/components/AppLinkInput/data.ts b/yudao-admin-vue3/src/components/AppLinkInput/data.ts
index 77fb4e1..e6424a9 100644
--- a/yudao-admin-vue3/src/components/AppLinkInput/data.ts
+++ b/yudao-admin-vue3/src/components/AppLinkInput/data.ts
@@ -250,30 +250,31 @@ export const APP_LINK_GROUP_LIST = [
path: '/pages/user/user_vip/index'
}
]
- },
- {
- name: '自定义页面',
- links: [
- {
- name: '促销页面',
- path: 'ss'
- },
- {
- name: '关于我们',
- path: '/pages/pay/recharge-lo'
- },
- {
- name: '产品与服务',
- path: '/pages/pay/recharge-l'
- },
- {
- name: '自定义页面',
- path: '/pages/pay/recharge-'
- },
- {
- name: '个人中心',
- path: '/pages/pay/recharge'
- }
- ]
}
+ // ,
+ // {
+ // name: '自定义页面',
+ // links: [
+ // {
+ // name: '促销页面',
+ // path: 'ss'
+ // },
+ // {
+ // name: '关于我们',
+ // path: '/pages/pay/recharge-lo'
+ // },
+ // {
+ // name: '产品与服务',
+ // path: '/pages/pay/recharge-l'
+ // },
+ // {
+ // name: '自定义页面',
+ // path: '/pages/pay/recharge-'
+ // },
+ // {
+ // name: '个人中心',
+ // path: '/pages/pay/recharge'
+ // }
+ // ]
+ // }
] as AppLinkGroup[]
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue
index 328c049..fce5090 100644
--- a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue
@@ -7,8 +7,9 @@
-
+
+
拼团活动
92人拼团成功
@@ -158,6 +159,14 @@ onMounted(() => {
.wh {
position: relative;
padding-right: 10px;
+ display: flex;
+ align-items: center;
+ .new-text1{
+ width:30px;
+ }
+ .new-text{
+ font-weight: 700;
+ }
}
.wh::after {
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/config.ts b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/config.ts
new file mode 100644
index 0000000..75aa0ff
--- /dev/null
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/config.ts
@@ -0,0 +1,96 @@
+import {ComponentStyle, DiyComponent} from '@/components/DiyEditor/util'
+
+/** 积分商城属性 */
+export interface PromotionPointProperty {
+ // 布局类型:单列 | 三列
+ layoutType: 'oneColBigImg' | 'oneColSmallImg' | 'twoCol'
+ // 商品字段
+ fields: {
+ // 商品名称
+ name: PromotionPointFieldProperty
+ // 商品简介
+ introduction: PromotionPointFieldProperty
+ // 商品价格
+ price: PromotionPointFieldProperty
+ // 市场价
+ marketPrice: PromotionPointFieldProperty
+ // 商品销量
+ salesCount: PromotionPointFieldProperty
+ // 商品库存
+ stock: PromotionPointFieldProperty
+ }
+ // 角标
+ badge: {
+ // 是否显示
+ show: boolean
+ // 角标图片
+ imgUrl: string
+ }
+ // 按钮
+ btnBuy: {
+ // 类型:文字 | 图片
+ type: 'text' | 'img'
+ // 文字
+ text: string
+ // 文字按钮:背景渐变起始颜色
+ bgBeginColor: string
+ // 文字按钮:背景渐变结束颜色
+ bgEndColor: string
+ // 图片按钮:图片地址
+ imgUrl: string
+ }
+ // 上圆角
+ borderRadiusTop: number
+ // 下圆角
+ borderRadiusBottom: number
+ // 间距
+ space: number
+ // 秒杀活动编号
+ activityIds: number[]
+ // 组件样式
+ style: ComponentStyle
+}
+
+// 商品字段
+export interface PromotionPointFieldProperty {
+ // 是否显示
+ show: boolean
+ // 颜色
+ color: string
+}
+
+// 定义组件
+export const component = {
+ id: 'PromotionPoint',
+ name: '积分商城',
+ icon: 'ep:present',
+ property: {
+ layoutType: 'oneColBigImg',
+ fields: {
+ name: { show: true, color: '#000' },
+ introduction: { show: true, color: '#999' },
+ price: { show: true, color: '#ff3000' },
+ marketPrice: { show: true, color: '#c4c4c4' },
+ salesCount: { show: true, color: '#c4c4c4' },
+ stock: { show: false, color: '#c4c4c4' }
+ },
+ badge: { show: false, imgUrl: '' },
+ btnBuy: {
+ type: 'text',
+ text: '立即兑换',
+ bgBeginColor: '#FF6000',
+ bgEndColor: '#FE832A',
+ imgUrl: ''
+ },
+ borderRadiusTop: 8,
+ borderRadiusBottom: 8,
+ space: 8,
+ style: {
+ bgType: 'color',
+ bgColor: '',
+ marginLeft: 8,
+ marginRight: 8,
+ marginBottom: 8
+ } as ComponentStyle
+ }
+} as DiyComponent
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/index.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/index.vue
new file mode 100644
index 0000000..4acd93f
--- /dev/null
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/index.vue
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ spu.name }}
+
+
+
+ {{ spu.introduction }}
+
+
+
+
+ {{ spu.point }}积分
+ {{ !spu.pointPrice || spu.pointPrice === 0 ? '' : `+${fenToYuan(spu.pointPrice)}元` }}
+
+
+
+ ¥{{ fenToYuan(spu.marketPrice) }}
+
+
+
+
+
+ 已兑{{ (spu.pointTotalStock || 0) - (spu.pointStock || 0) }}件
+
+
+
+ 库存{{ spu.pointTotalStock || 0 }}
+
+
+
+
+
+
+
+ {{ property.btnBuy.text }}
+
+
+
+
+
+
+
+
+
+
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue
new file mode 100644
index 0000000..84a429b
--- /dev/null
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionPoint/property.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 建议尺寸:36 * 22
+
+
+
+
+
+
+ 文字
+ 图片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 建议尺寸:56 * 56
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue
index b851de6..ec2670b 100644
--- a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue
@@ -6,8 +6,9 @@
-
+
+
限时秒杀
已有99人购买
@@ -150,6 +151,14 @@
.wh {
position: relative;
padding-right: 10px;
+ display: flex;
+ align-items: center;
+ .new-text1{
+ width:30px;
+ }
+ .new-text{
+ font-weight: 700;
+ }
}
.wh::after {
diff --git a/yudao-admin-vue3/src/components/DiyEditor/util.ts b/yudao-admin-vue3/src/components/DiyEditor/util.ts
index 5154c9b..c75945f 100644
--- a/yudao-admin-vue3/src/components/DiyEditor/util.ts
+++ b/yudao-admin-vue3/src/components/DiyEditor/util.ts
@@ -146,7 +146,7 @@ export const PAGE_LIBS = [
components: [
'PromotionCombination',
'PromotionSeckill',
- // 'PromotionPoint',
+ 'PromotionPoint',
'CouponCard',
'PromotionArticle'
]
diff --git a/yudao-admin-vue3/src/views/mall/promotion/point/activity/PointActivityForm.vue b/yudao-admin-vue3/src/views/mall/promotion/point/activity/PointActivityForm.vue
new file mode 100644
index 0000000..a09565c
--- /dev/null
+++ b/yudao-admin-vue3/src/views/mall/promotion/point/activity/PointActivityForm.vue
@@ -0,0 +1,227 @@
+
+
+
+
+ 确 定
+ 取 消
+
+
+
+
+
diff --git a/yudao-admin-vue3/src/views/mall/promotion/point/activity/index.vue b/yudao-admin-vue3/src/views/mall/promotion/point/activity/index.vue
new file mode 100644
index 0000000..ceceb7b
--- /dev/null
+++ b/yudao-admin-vue3/src/views/mall/promotion/point/activity/index.vue
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 重置
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getRedeemedQuantity(row) }}
+
+
+
+
+
+
+ 编辑
+
+
+ 关闭
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/yudao-admin-vue3/src/views/mall/promotion/point/activity/pointActivity.data.ts b/yudao-admin-vue3/src/views/mall/promotion/point/activity/pointActivity.data.ts
new file mode 100644
index 0000000..a3334ea
--- /dev/null
+++ b/yudao-admin-vue3/src/views/mall/promotion/point/activity/pointActivity.data.ts
@@ -0,0 +1,55 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+// 表单校验
+export const rules = reactive({
+ spuId: [required],
+ sort: [required]
+})
+
+// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
+const crudSchemas = reactive
([
+ {
+ label: '排序',
+ field: 'sort',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ table: {
+ width: 80
+ }
+ },
+ {
+ label: '积分商城活动商品',
+ field: 'spuId',
+ isTable: true,
+ isSearch: false,
+ form: {
+ colProps: {
+ span: 24
+ }
+ },
+ table: {
+ width: 300
+ }
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ isSearch: false,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea',
+ rows: 4
+ },
+ colProps: {
+ span: 24
+ }
+ },
+ table: {
+ width: 300
+ }
+ }
+])
+export const { allSchemas } = useCrudSchemas(crudSchemas)
diff --git a/yudao-admin-vue3/src/views/mall/promotion/point/components/PointShowcase.vue b/yudao-admin-vue3/src/views/mall/promotion/point/components/PointShowcase.vue
new file mode 100644
index 0000000..82e490c
--- /dev/null
+++ b/yudao-admin-vue3/src/views/mall/promotion/point/components/PointShowcase.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
diff --git a/yudao-admin-vue3/src/views/mall/promotion/point/components/PointTableSelect.vue b/yudao-admin-vue3/src/views/mall/promotion/point/components/PointTableSelect.vue
new file mode 100644
index 0000000..d68b5f1
--- /dev/null
+++ b/yudao-admin-vue3/src/views/mall/promotion/point/components/PointTableSelect.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+ handleCheckOne(checked, row, true)"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getRedeemedQuantity(row) }}
+
+
+
+
+
+
+
+
+ 确 定
+ 取 消
+
+
+
+
+
From 678b0ef892a794c8c638e83843b13f0806b21f84 Mon Sep 17 00:00:00 2001
From: 77 <270260644@qq.com>
Date: Wed, 9 Oct 2024 14:20:26 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A3=85=E4=BF=AE?=
=?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=88=97=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DiyEditor/components/mobile/CouponCard/property.vue | 6 +++---
.../components/mobile/PromotionCombination/property.vue | 1 +
.../components/mobile/PromotionSeckill/property.vue | 5 +++--
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/CouponCard/property.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/CouponCard/property.vue
index 4f32c21..4cecea5 100644
--- a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/CouponCard/property.vue
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/CouponCard/property.vue
@@ -23,7 +23,7 @@
-
+
@@ -85,7 +85,7 @@ defineOptions({ name: 'CouponCardProperty' })
const props = defineProps<{ modelValue: CouponCardProperty }>()
const emit = defineEmits(['update:modelValue'])
const { formData } = usePropertyForm(props.modelValue, emit)
-
+formData.value.columns = '3';
// 优惠券列表
const couponList = ref([])
const couponSelectDialog = ref()
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue
index b479582..f31e1db 100644
--- a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionCombination/property.vue
@@ -99,6 +99,7 @@ defineOptions({ name: 'PromotionCombinationProperty' })
const props = defineProps<{ modelValue: PromotionCombinationProperty }>()
const emit = defineEmits(['update:modelValue'])
const { formData } = usePropertyForm(props.modelValue, emit)
+formData.value.layoutType = 'threeCol';
// 活动列表
const activityList = ref([])
onMounted(async () => {
diff --git a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue
index 8753782..e4a9bf6 100644
--- a/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue
+++ b/yudao-admin-vue3/src/components/DiyEditor/components/mobile/PromotionSeckill/property.vue
@@ -14,7 +14,7 @@
-
+
@@ -99,6 +99,7 @@ defineOptions({ name: 'PromotionSeckillProperty' })
const props = defineProps<{ modelValue: PromotionSeckillProperty }>()
const emit = defineEmits(['update:modelValue'])
const { formData } = usePropertyForm(props.modelValue, emit)
+formData.value.layoutType = "threeCol"
// 活动列表
const activityList = ref([])
onMounted(async () => {