diff --git a/.env.dev b/.env.dev index a52eec30b621bbf40e8113aa7fa44924aa9f4a04..9249ced85a6d9da669ff428a9b707ef30cfe512e 100644 --- a/.env.dev +++ b/.env.dev @@ -19,13 +19,13 @@ VITE_API_URL=/admin-api VITE_BASE_PATH=/ # 是否删除debugger -VITE_DROP_DEBUGGER=false +VITE_DROP_DEBUGGER=true # 是否删除console.log VITE_DROP_CONSOLE=false # 是否sourcemap -VITE_SOURCEMAP=true +VITE_SOURCEMAP=false # 输出路径 VITE_OUT_DIR=dist-dev diff --git a/package.json b/package.json index 7a00c122ede1fc3768312e2ded945a9290c51040..8cdf9380e5e9bbf122910238e3a41d721de4a9fa 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,9 @@ "qs": "^6.11.1", "steady-xml": "^0.1.0", "url": "^0.11.0", - "video.js": "^8.0.4", - "vue": "3.2.47", + "video.js": "^8.3.0", + "vue": "3.3.4", + "vue-dompurify-html": "^4.1.4", "vue-i18n": "9.2.2", "vue-router": "^4.1.6", "vue-types": "^5.0.2", diff --git a/src/api/mall/product/spu.ts b/src/api/mall/product/spu.ts index fd55e126ce1f9940b1e6342be7cda91e74a0261f..e0d4ec832c75c9c890743b2570705d5fcbc035c0 100644 --- a/src/api/mall/product/spu.ts +++ b/src/api/mall/product/spu.ts @@ -7,8 +7,7 @@ export interface Property { valueName?: string // 属性值名称 } -// TODO puhui999:是不是直接叫 Sku 更简洁一点哈。type 待后面,总感觉有个类型? -export interface SkuType { +export interface Sku { id?: number // 商品 SKU 编号 spuId?: number // SPU 编号 properties?: Property[] // 属性数组 @@ -25,8 +24,7 @@ export interface SkuType { salesCount?: number // 商品销量 } -// TODO puhui999:是不是直接叫 Spu 更简洁一点哈。type 待后面,总感觉有个类型? -export interface SpuType { +export interface Spu { id?: number name?: string // 商品名称 categoryId?: number | null // 商品分类 @@ -39,9 +37,9 @@ export interface SpuType { brandId?: number | null // 商品品牌编号 specType?: boolean // 商品规格 subCommissionType?: boolean // 分销类型 - skus: SkuType[] // sku数组 + skus?: Sku[] // sku数组 description?: string // 商品详情 - sort?: string // 商品排序 + sort?: number // 商品排序 giveIntegral?: number // 赠送积分 virtualSalesCount?: number // 虚拟销量 recommendHot?: boolean // 是否热卖 @@ -62,12 +60,12 @@ export const getTabsCount = () => { } // 创建商品 Spu -export const createSpu = (data: SpuType) => { +export const createSpu = (data: Spu) => { return request.post({ url: '/product/spu/create', data }) } // 更新商品 Spu -export const updateSpu = (data: SpuType) => { +export const updateSpu = (data: Spu) => { return request.put({ url: '/product/spu/update', data }) } diff --git a/src/api/mall/trade/delivery/expressTemplate/index.ts b/src/api/mall/trade/delivery/expressTemplate/index.ts index 9414c8474983f701a9cfef3ad5ab481edfdb653a..53f2cdebad2c227ff896880b402dd9f6bfb5809a 100644 --- a/src/api/mall/trade/delivery/expressTemplate/index.ts +++ b/src/api/mall/trade/delivery/expressTemplate/index.ts @@ -33,6 +33,11 @@ export const getDeliveryExpressTemplate = async (id: number) => { return await request.get({ url: '/trade/delivery/express-template/get?id=' + id }) } +// 查询快递运费模板详情 +export const getSimpleTemplateList = async () => { + return await request.get({ url: '/trade/delivery/express-template/list-all-simple' }) +} + // 新增快递运费模板 export const createDeliveryExpressTemplate = async (data: DeliveryExpressTemplateVO) => { return await request.post({ url: '/trade/delivery/express-template/create', data }) diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue index c11216416102f657709aaf2dd141e9ee925cbed6..3dca6c944f57dd9b786feb8910d412e08d6a1eee 100644 --- a/src/components/Form/src/Form.vue +++ b/src/components/Form/src/Form.vue @@ -1,16 +1,16 @@ diff --git a/src/views/mall/product/spu/components/DescriptionForm.vue b/src/views/mall/product/spu/components/DescriptionForm.vue index fbae9a86b628d278a4ccfa66a450b6c00371be23..f7597006e0c1c1332a4734a2ffc408ff9ffe6f18 100644 --- a/src/views/mall/product/spu/components/DescriptionForm.vue +++ b/src/views/mall/product/spu/components/DescriptionForm.vue @@ -1,28 +1,49 @@ diff --git a/src/views/mall/product/spu/components/spu.data.ts b/src/views/mall/product/spu/components/spu.data.ts new file mode 100644 index 0000000000000000000000000000000000000000..41c43df90c1e860b182cb17d992c1ae133284882 --- /dev/null +++ b/src/views/mall/product/spu/components/spu.data.ts @@ -0,0 +1,105 @@ +import { CrudSchema } from '@/hooks/web/useCrudSchemas' + +export const basicInfoSchema = reactive([ + { + label: '商品名称', + field: 'name' + }, + { + label: '关键字', + field: 'keyword' + }, + { + label: '商品简介', + field: 'introduction' + }, + { + label: '商品分类', + field: 'categoryId' + }, + { + label: '商品品牌', + field: 'brandId' + }, + { + label: '商品封面图', + field: 'picUrl' + }, + { + label: '商品轮播图', + field: 'sliderPicUrls' + }, + { + label: '商品视频', + field: 'videoUrl' + }, + { + label: '单位', + field: 'unit', + dictType: DICT_TYPE.PRODUCT_UNIT + }, + { + label: '规格类型', + field: 'specType' + }, + { + label: '分销类型', + field: 'subCommissionType' + }, + { + label: '物流模版', + field: 'deliveryTemplateId' + }, + { + label: '商品属性列表', + field: 'skus' + } +]) +export const descriptionSchema = reactive([ + { + label: '商品详情', + field: 'description' + } +]) +export const otherSettingsSchema = reactive([ + { + label: '商品排序', + field: 'sort' + }, + { + label: '赠送积分', + field: 'giveIntegral' + }, + { + label: '虚拟销量', + field: 'virtualSalesCount' + }, + { + label: '是否热卖推荐', + field: 'recommendHot' + }, + { + label: '是否优惠推荐', + field: 'recommendBenefit' + }, + { + label: '是否精品推荐', + field: 'recommendBest' + }, + { + label: '是否新品推荐', + field: 'recommendNew' + }, + { + label: '是否优品推荐', + field: 'recommendGood' + }, + { + label: '赠送的优惠劵', + field: 'giveCouponTemplateIds' + }, + { + label: '活动显示排序', + field: 'activityOrders' + } +]) diff --git a/src/views/mall/product/spu/index.vue b/src/views/mall/product/spu/index.vue index 539171b06bf073a30fd7af795b6dd6459c43cd7f..47a9c8d59491cba92370fd63f1a99a22deff6ffd 100644 --- a/src/views/mall/product/spu/index.vue +++ b/src/views/mall/product/spu/index.vue @@ -8,18 +8,16 @@ class="-mb-15px" label-width="68px" > - - + - - + @@ -80,31 +79,60 @@ /> - +虚拟销量:999 --> @@ -143,8 +171,13 @@