📖 code review:店铺装修逻辑
This commit is contained in:
parent
df1c565cd9
commit
b86f082306
@ -35,8 +35,6 @@ export const enum APP_LINK_TYPE_ENUM {
|
|||||||
PRODUCT_DETAIL_NORMAL,
|
PRODUCT_DETAIL_NORMAL,
|
||||||
// 拼团商品详情
|
// 拼团商品详情
|
||||||
PRODUCT_DETAIL_COMBINATION,
|
PRODUCT_DETAIL_COMBINATION,
|
||||||
// 积分商品详情
|
|
||||||
PRODUCT_DETAIL_POINT,
|
|
||||||
// 秒杀商品详情
|
// 秒杀商品详情
|
||||||
PRODUCT_DETAIL_SECKILL
|
PRODUCT_DETAIL_SECKILL
|
||||||
}
|
}
|
||||||
@ -80,10 +78,6 @@ export const APP_LINK_GROUP_LIST = [
|
|||||||
name: '系统设置',
|
name: '系统设置',
|
||||||
path: '/pages/public/setting'
|
path: '/pages/public/setting'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: '问题反馈',
|
|
||||||
path: '/pages/public/feedback'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: '常见问题',
|
name: '常见问题',
|
||||||
path: '/pages/public/faq'
|
path: '/pages/public/faq'
|
||||||
@ -112,11 +106,6 @@ export const APP_LINK_GROUP_LIST = [
|
|||||||
name: '秒杀商品详情',
|
name: '秒杀商品详情',
|
||||||
path: '/pages/goods/seckill',
|
path: '/pages/goods/seckill',
|
||||||
type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_SECKILL
|
type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_SECKILL
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '积分商品详情',
|
|
||||||
path: '/pages/goods/score',
|
|
||||||
type: APP_LINK_TYPE_ENUM.PRODUCT_DETAIL_POINT
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -145,10 +134,6 @@ export const APP_LINK_GROUP_LIST = [
|
|||||||
name: '签到中心',
|
name: '签到中心',
|
||||||
path: '/pages/app/sign'
|
path: '/pages/app/sign'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: '积分商城',
|
|
||||||
path: '/pages/app/score-shop'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: '优惠券中心',
|
name: '优惠券中心',
|
||||||
path: '/pages/coupon/list'
|
path: '/pages/coupon/list'
|
||||||
@ -242,10 +227,6 @@ export const APP_LINK_GROUP_LIST = [
|
|||||||
name: '地址管理',
|
name: '地址管理',
|
||||||
path: '/pages/user/address/list'
|
path: '/pages/user/address/list'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: '发票管理',
|
|
||||||
path: '/pages/user/invoice/list'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: '用户佣金',
|
name: '用户佣金',
|
||||||
path: '/pages/user/wallet/commission'
|
path: '/pages/user/wallet/commission'
|
||||||
|
@ -100,6 +100,7 @@ const emits = defineEmits<{
|
|||||||
(e: 'copy'): void
|
(e: 'copy'): void
|
||||||
(e: 'delete'): void
|
(e: 'delete'): void
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移动组件
|
* 移动组件
|
||||||
* @param direction 移动方向
|
* @param direction 移动方向
|
||||||
@ -107,12 +108,14 @@ const emits = defineEmits<{
|
|||||||
const handleMoveComponent = (direction: number) => {
|
const handleMoveComponent = (direction: number) => {
|
||||||
emits('move', direction)
|
emits('move', direction)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复制组件
|
* 复制组件
|
||||||
*/
|
*/
|
||||||
const handleCopyComponent = () => {
|
const handleCopyComponent = () => {
|
||||||
emits('copy')
|
emits('copy')
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除组件
|
* 删除组件
|
||||||
*/
|
*/
|
||||||
|
@ -4,6 +4,7 @@ import { floatToFixed2 } from '@/utils'
|
|||||||
import { formatDate } from '@/utils/formatTime'
|
import { formatDate } from '@/utils/formatTime'
|
||||||
|
|
||||||
// 优惠值
|
// 优惠值
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
export const CouponDiscount = defineComponent({
|
export const CouponDiscount = defineComponent({
|
||||||
name: 'CouponDiscount',
|
name: 'CouponDiscount',
|
||||||
props: {
|
props: {
|
||||||
|
@ -24,6 +24,7 @@ export interface CouponCardProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'CouponCard',
|
id: 'CouponCard',
|
||||||
name: '优惠券',
|
name: '优惠券',
|
||||||
|
@ -9,6 +9,7 @@ export interface HotZoneProperty {
|
|||||||
// 组件样式
|
// 组件样式
|
||||||
style: ComponentStyle
|
style: ComponentStyle
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 热区项目属性 */
|
/** 热区项目属性 */
|
||||||
export interface HotZoneItemProperty {
|
export interface HotZoneItemProperty {
|
||||||
// 链接的名称
|
// 链接的名称
|
||||||
|
@ -13,6 +13,7 @@ export interface MagicCubeProperty {
|
|||||||
// 组件样式
|
// 组件样式
|
||||||
style: ComponentStyle
|
style: ComponentStyle
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 广告魔方项目属性 */
|
/** 广告魔方项目属性 */
|
||||||
export interface MagicCubeItemProperty {
|
export interface MagicCubeItemProperty {
|
||||||
// 图标链接
|
// 图标链接
|
||||||
@ -30,6 +31,7 @@ export interface MagicCubeItemProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:有 idea 爆红告警
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'MagicCube',
|
id: 'MagicCube',
|
||||||
name: '广告魔方',
|
name: '广告魔方',
|
||||||
|
@ -10,6 +10,7 @@ export interface MenuGridProperty {
|
|||||||
// 组件样式
|
// 组件样式
|
||||||
style: ComponentStyle
|
style: ComponentStyle
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 宫格导航项目属性 */
|
/** 宫格导航项目属性 */
|
||||||
export interface MenuGridItemProperty {
|
export interface MenuGridItemProperty {
|
||||||
// 图标链接
|
// 图标链接
|
||||||
|
@ -8,6 +8,7 @@ export interface MenuListProperty {
|
|||||||
// 组件样式
|
// 组件样式
|
||||||
style: ComponentStyle
|
style: ComponentStyle
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 列表导航项目属性 */
|
/** 列表导航项目属性 */
|
||||||
export interface MenuListItemProperty {
|
export interface MenuListItemProperty {
|
||||||
// 图标链接
|
// 图标链接
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
<el-form-item label="文字颜色" prop="文字颜色">
|
<el-form-item label="文字颜色" prop="文字颜色">
|
||||||
<ColorInput v-model="formData.textColor" />
|
<ColorInput v-model="formData.textColor" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-card header="公告内容" class="property-group" shadow="never">
|
<el-card header="公告内容" class="property-group" shadow="never">
|
||||||
<Draggable v-model="formData.contents">
|
<Draggable v-model="formData.contents">
|
||||||
<template #default="{ element }">
|
<template #default="{ element }">
|
||||||
|
@ -59,6 +59,7 @@ export interface ProductCardFieldProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'ProductCard',
|
id: 'ProductCard',
|
||||||
name: '商品卡片',
|
name: '商品卡片',
|
||||||
|
@ -134,6 +134,7 @@ watch(
|
|||||||
deep: true
|
deep: true
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算商品的间距
|
* 计算商品的间距
|
||||||
* @param index 商品索引
|
* @param index 商品索引
|
||||||
|
@ -38,6 +38,7 @@ export interface ProductListFieldProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'ProductList',
|
id: 'ProductList',
|
||||||
name: '商品栏',
|
name: '商品栏',
|
||||||
|
@ -6,6 +6,7 @@ import { PromotionArticleProperty } from './config'
|
|||||||
import * as ArticleApi from '@/api/mall/promotion/article/index'
|
import * as ArticleApi from '@/api/mall/promotion/article/index'
|
||||||
|
|
||||||
/** 营销文章 */
|
/** 营销文章 */
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
defineOptions({ name: 'PromotionArticle' })
|
defineOptions({ name: 'PromotionArticle' })
|
||||||
// 定义属性
|
// 定义属性
|
||||||
const props = defineProps<{ property: PromotionArticleProperty }>()
|
const props = defineProps<{ property: PromotionArticleProperty }>()
|
||||||
|
@ -29,6 +29,7 @@ export interface PromotionCombinationProperty {
|
|||||||
// 组件样式
|
// 组件样式
|
||||||
style: ComponentStyle
|
style: ComponentStyle
|
||||||
}
|
}
|
||||||
|
|
||||||
// 商品字段
|
// 商品字段
|
||||||
export interface PromotionCombinationFieldProperty {
|
export interface PromotionCombinationFieldProperty {
|
||||||
// 是否显示
|
// 是否显示
|
||||||
@ -38,6 +39,7 @@ export interface PromotionCombinationFieldProperty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'PromotionCombination',
|
id: 'PromotionCombination',
|
||||||
name: '拼团',
|
name: '拼团',
|
||||||
|
@ -17,6 +17,7 @@ export interface SearchProperty {
|
|||||||
export type PlaceholderPosition = 'left' | 'center'
|
export type PlaceholderPosition = 'left' | 'center'
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:idea 这里爆红,可以卡看咋优化下哇:is missing the following properties from type DiyComponent<SearchProperty>: uid, position
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'SearchBar',
|
id: 'SearchBar',
|
||||||
name: '搜索框',
|
name: '搜索框',
|
||||||
|
@ -19,6 +19,7 @@ export interface VideoPlayerStyle extends ComponentStyle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 定义组件
|
// 定义组件
|
||||||
|
// TODO @疯狂:idea 有告警
|
||||||
export const component = {
|
export const component = {
|
||||||
id: 'VideoPlayer',
|
id: 'VideoPlayer',
|
||||||
name: '视频播放',
|
name: '视频播放',
|
||||||
|
@ -103,6 +103,7 @@ export function usePropertyForm<T>(modelValue: T, emit: Function): { formData: R
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TODO @疯狂:这个 idea 爆红,看看怎么可以解决哈
|
||||||
return { formData }
|
return { formData }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,10 +27,11 @@
|
|||||||
</DiyEditor>
|
</DiyEditor>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
// TODO @疯狂:要不要建个 decorate 目录,然后挪进去,改成 index.vue,这样可以更明确看到是个独立界面哈,更好找
|
||||||
import * as DiyTemplateApi from '@/api/mall/promotion/diy/template'
|
import * as DiyTemplateApi from '@/api/mall/promotion/diy/template'
|
||||||
import * as DiyPageApi from '@/api/mall/promotion/diy/page'
|
import * as DiyPageApi from '@/api/mall/promotion/diy/page'
|
||||||
import { useTagsViewStore } from '@/store/modules/tagsView'
|
import { useTagsViewStore } from '@/store/modules/tagsView'
|
||||||
import { DiyComponentLibrary, PAGE_LIBS } from '@/components/DiyEditor/util'
|
import { DiyComponentLibrary, PAGE_LIBS } from '@/components/DiyEditor/util' // 商城的 DIY 组件,在 DiyEditor 目录下
|
||||||
import { toNumber } from 'lodash-es'
|
import { toNumber } from 'lodash-es'
|
||||||
|
|
||||||
/** 装修模板表单 */
|
/** 装修模板表单 */
|
||||||
@ -51,7 +52,7 @@ const formData = ref<DiyTemplateApi.DiyTemplatePropertyVO>()
|
|||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
// 当前编辑的属性
|
// 当前编辑的属性
|
||||||
const currentFormData = ref<DiyTemplateApi.DiyTemplatePropertyVO | DiyPageApi.DiyPageVO>()
|
const currentFormData = ref<DiyTemplateApi.DiyTemplatePropertyVO | DiyPageApi.DiyPageVO>()
|
||||||
// 商城H5预览地址
|
// 商城 H5 预览地址
|
||||||
const previewUrl = ref('')
|
const previewUrl = ref('')
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
|
@ -205,7 +205,7 @@ const handleUse = async (row: DiyTemplateApi.DiyTemplateVO) => {
|
|||||||
// 使用模板的二次确认
|
// 使用模板的二次确认
|
||||||
await message.confirm(`是否使用模板“${row.name}”?`)
|
await message.confirm(`是否使用模板“${row.name}”?`)
|
||||||
// 发起删除
|
// 发起删除
|
||||||
await DiyTemplateApi.useDiyTemplate(row.id)
|
await DiyTemplateApi.useDiyTemplate(row.id!)
|
||||||
message.success('使用成功')
|
message.success('使用成功')
|
||||||
// 刷新列表
|
// 刷新列表
|
||||||
await getList()
|
await getList()
|
||||||
|
Loading…
Reference in New Issue
Block a user