From 3918fab1ec69793f7e3a6e1b3cc86fa5f30d987e Mon Sep 17 00:00:00 2001 From: YunaiV <zhijiantianya@gmail.com> Date: Fri, 1 Sep 2023 00:49:42 +0800 Subject: [PATCH] code review --- src/views/mall/product/brand/index.vue | 2 +- src/views/mall/product/category/index.vue | 2 +- src/views/mall/product/comment/index.vue | 2 +- .../mall/product/property/value/index.vue | 2 +- .../mall/product/spu/components/index.ts | 31 ++++++++++++++++++- .../mall/product/spu/form/BasicInfoForm.vue | 30 +----------------- src/views/mall/product/spu/form/index.vue | 2 +- src/views/mall/product/spu/index.vue | 18 +++++------ .../mall/trade/afterSale/detail/index.vue | 28 ++++++++--------- 9 files changed, 57 insertions(+), 60 deletions(-) diff --git a/src/views/mall/product/brand/index.vue b/src/views/mall/product/brand/index.vue index 9250befd..c89fe520 100644 --- a/src/views/mall/product/brand/index.vue +++ b/src/views/mall/product/brand/index.vue @@ -59,7 +59,7 @@ <el-table-column label="品牌名称" prop="name" sortable /> <el-table-column label="品牌图片" align="center" prop="picUrl"> <template #default="scope"> - <img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="品牌图片" class="h-100px" /> + <img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="品牌图片" class="h-30px" /> </template> </el-table-column> <el-table-column label="品牌排序" align="center" prop="sort" /> diff --git a/src/views/mall/product/category/index.vue b/src/views/mall/product/category/index.vue index a2adfe7f..27ea5368 100644 --- a/src/views/mall/product/category/index.vue +++ b/src/views/mall/product/category/index.vue @@ -38,7 +38,7 @@ <el-table-column label="分类名称" prop="name" sortable /> <el-table-column label="移动端分类图" align="center" prop="picUrl"> <template #default="scope"> - <img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="移动端分类图" class="h-100px" /> + <img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="移动端分类图" class="h-30px" /> </template> </el-table-column> <el-table-column label="分类排序" align="center" prop="sort" /> diff --git a/src/views/mall/product/comment/index.vue b/src/views/mall/product/comment/index.vue index 1b0745ba..7c0737f5 100644 --- a/src/views/mall/product/comment/index.vue +++ b/src/views/mall/product/comment/index.vue @@ -115,7 +115,7 @@ :formatter="dateFormatter" width="170" /> - <el-table-column label="状态" align="center" width="65px"> + <el-table-column label="是否展示" align="center" width="80px"> <template #default="scope"> <el-switch v-model="scope.row.visible" diff --git a/src/views/mall/product/property/value/index.vue b/src/views/mall/product/property/value/index.vue index b8be9e3c..0d30fd74 100644 --- a/src/views/mall/product/property/value/index.vue +++ b/src/views/mall/product/property/value/index.vue @@ -147,7 +147,7 @@ const handleDelete = async (id: number) => { // 删除的二次确认 await message.delConfirm() // 发起删除 - await PropertyApi.deleteProperty(id) + await PropertyApi.deletePropertyValue(id) message.success(t('common.delSuccess')) // 刷新列表 await getList() diff --git a/src/views/mall/product/spu/components/index.ts b/src/views/mall/product/spu/components/index.ts index 8f793c51..edecbe89 100644 --- a/src/views/mall/product/spu/components/index.ts +++ b/src/views/mall/product/spu/components/index.ts @@ -1,4 +1,5 @@ import SkuList from './SkuList.vue' +import { Spu } from '@/api/mall/product/spu' interface PropertyAndValues { id: number @@ -22,4 +23,32 @@ interface RuleConfig { message: string } -export { SkuList, PropertyAndValues, RuleConfig } +/** + * 获得商品的规格列表 + * + * @param spu + * @return PropertyAndValues 规格列表 + */ +const getPropertyList = (spu: Spu): PropertyAndValues[] => { + // 直接拿返回的 skus 属性逆向生成出 propertyList + const properties: PropertyAndValues[] = [] + // 只有是多规格才处理 + if (spu.specType) { + spu.skus?.forEach((sku) => { + sku.properties?.forEach(({ propertyId, propertyName, valueId, valueName }) => { + // 添加属性 + if (!properties?.some((item) => item.id === propertyId)) { + properties.push({ id: propertyId!, name: propertyName!, values: [] }) + } + // 添加属性值 + const index = properties?.findIndex((item) => item.id === propertyId) + if (!properties[index].values?.some((value) => value.id === valueId)) { + properties[index].values?.push({ id: valueId!, name: valueName! }) + } + }) + }) + } + return properties +} + +export { SkuList, getPropertyList, PropertyAndValues, RuleConfig } diff --git a/src/views/mall/product/spu/form/BasicInfoForm.vue b/src/views/mall/product/spu/form/BasicInfoForm.vue index 678b564d..b399d0f8 100644 --- a/src/views/mall/product/spu/form/BasicInfoForm.vue +++ b/src/views/mall/product/spu/form/BasicInfoForm.vue @@ -175,7 +175,7 @@ import { propTypes } from '@/utils/propTypes' import { checkSelectedNode, defaultProps, handleTree, treeToString } from '@/utils/tree' import { createImageViewer } from '@/components/ImageViewer' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' -import { PropertyAndValues, SkuList } from '@/views/mall/product/spu/components/index.ts' +import { getPropertyList, SkuList } from '@/views/mall/product/spu/components/index.ts' import ProductAttributes from './ProductAttributes.vue' import ProductPropertyAddForm from './ProductPropertyAddForm.vue' import { basicInfoSchema } from './spu.data' @@ -203,34 +203,6 @@ const imagePreview = (args) => { }) } -/** - * 获得商品的规格列表 - * - * @param spu - * @return PropertyAndValues 规格列表 - */ -const getPropertyList = (spu: Spu): PropertyAndValues[] => { - // 直接拿返回的 skus 属性逆向生成出 propertyList - const properties: PropertyAndValues[] = [] - // 只有是多规格才处理 - if (spu.specType) { - spu.skus?.forEach((sku) => { - sku.properties?.forEach(({ propertyId, propertyName, valueId, valueName }) => { - // 添加属性 - if (!properties?.some((item) => item.id === propertyId)) { - properties.push({ id: propertyId!, name: propertyName!, values: [] }) - } - // 添加属性值 - const index = properties?.findIndex((item) => item.id === propertyId) - if (!properties[index].values?.some((value) => value.id === valueId)) { - properties[index].values?.push({ id: valueId!, name: valueName! }) - } - }) - }) - } - return properties -} - // ====== end ====== const message = useMessage() // 消息弹窗 diff --git a/src/views/mall/product/spu/form/index.vue b/src/views/mall/product/spu/form/index.vue index db5b0445..ebe1587d 100644 --- a/src/views/mall/product/spu/form/index.vue +++ b/src/views/mall/product/spu/form/index.vue @@ -189,7 +189,7 @@ const submitForm = async () => { /** 关闭按钮 */ const close = () => { delView(unref(currentRoute)) - push('/product/product-spu') + push({ name: 'ProductSpu' }) } /** 初始化 */ onMounted(async () => { diff --git a/src/views/mall/product/spu/index.vue b/src/views/mall/product/spu/index.vue index 9ea06cd5..2ed6d3ad 100644 --- a/src/views/mall/product/spu/index.vue +++ b/src/views/mall/product/spu/index.vue @@ -170,6 +170,14 @@ > 详情 </el-button> + <el-button + v-hasPermi="['product:spu:update']" + link + type="primary" + @click="openForm(row.id)" + > + 修改 + </el-button> <template v-if="queryParams.tabType === 4"> <el-button v-hasPermi="['product:spu:delete']" @@ -189,16 +197,6 @@ </el-button> </template> <template v-else> - <!-- 只有不是上架和回收站的商品可以编辑 --> - <el-button - v-if="queryParams.tabType !== 0" - v-hasPermi="['product:spu:update']" - link - type="primary" - @click="openForm(row.id)" - > - 修改 - </el-button> <el-button v-hasPermi="['product:spu:update']" link diff --git a/src/views/mall/trade/afterSale/detail/index.vue b/src/views/mall/trade/afterSale/detail/index.vue index 7802a805..360800ad 100644 --- a/src/views/mall/trade/afterSale/detail/index.vue +++ b/src/views/mall/trade/afterSale/detail/index.vue @@ -154,44 +154,41 @@ const getDetail = async () => { formData.value = await AfterSaleApi.getAfterSale(id) } } -/** - * 同意售后 - */ + +// TODO @puhui999:操作后,需要提示和刷新哈。 +/** 同意售后 */ const agree = () => { message.confirm('是否同意售后?').then(() => { AfterSaleApi.agree(formData.value.id) }) } -/** - * 拒绝售后 - */ + +/** 拒绝售后 */ const disagree = () => { updateAuditReasonFormRef.value?.open(formData.value) } -/** - * 确认收货 - */ + +/** 确认收货 */ const receive = () => { message.confirm('是否确认收货?').then(() => { AfterSaleApi.receive(formData.value.id) }) } -/** - * 拒绝收货 - */ + +/** 拒绝收货 */ const refuse = () => { message.confirm('是否拒绝收货?').then(() => { AfterSaleApi.refuse(formData.value.id) }) } -/** - * 确认退款 - */ + +/** 确认退款 */ const refund = () => { message.confirm('是否确认退款?').then(() => { AfterSaleApi.refund(formData.value.id) }) } + /** 图片预览 */ const imagePreview = (args) => { const urlList = [] @@ -206,6 +203,7 @@ const imagePreview = (args) => { urlList }) } + onMounted(async () => { await getDetail() })