From 4fcc33ec60130d9e5c9c3f5e95ec878aa7f868fa Mon Sep 17 00:00:00 2001 From: puhui999 <puhui999@163.com> Date: Tue, 10 Sep 2024 12:25:14 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=91=E5=95=86=E5=9F=8E:=20=E6=BB=A1=E5=87=8F=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E5=A2=9E=E5=8A=A0=E5=85=B3=E9=97=AD=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/promotion/reward/rewardActivity.ts | 5 + .../promotion/combination/activity/index.vue | 92 ++++++++++--------- .../mall/promotion/rewardActivity/index.vue | 30 +++++- 3 files changed, 79 insertions(+), 48 deletions(-) diff --git a/src/api/mall/promotion/reward/rewardActivity.ts b/src/api/mall/promotion/reward/rewardActivity.ts index 09f32ac5..7d426953 100644 --- a/src/api/mall/promotion/reward/rewardActivity.ts +++ b/src/api/mall/promotion/reward/rewardActivity.ts @@ -47,6 +47,11 @@ export const getReward = async (id: number) => { return await request.get({ url: '/promotion/reward-activity/get?id=' + id }) } +// 关闭拼团活动 +export const closeRewardActivity = async (id: number) => { + return await request.put({ url: '/promotion/reward-activity/close?id=' + id }) +} + // 删除限时折扣活动 export const deleteRewardActivity = async (id: number) => { return await request.delete({ url: '/promotion/reward-activity/delete?id=' + id }) diff --git a/src/views/mall/promotion/combination/activity/index.vue b/src/views/mall/promotion/combination/activity/index.vue index 02c7de22..a40044df 100644 --- a/src/views/mall/promotion/combination/activity/index.vue +++ b/src/views/mall/promotion/combination/activity/index.vue @@ -4,27 +4,27 @@ <ContentWrap> <!-- 搜索工作栏 --> <el-form - class="-mb-15px" - :model="queryParams" ref="queryFormRef" :inline="true" + :model="queryParams" + class="-mb-15px" label-width="68px" > <el-form-item label="活动名称" prop="name"> <el-input v-model="queryParams.name" - placeholder="请输入活动名称" - clearable - @keyup.enter="handleQuery" class="!w-240px" + clearable + placeholder="请输入活动名称" + @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="活动状态" prop="status"> <el-select v-model="queryParams.status" - placeholder="请选择活动状态" - clearable class="!w-240px" + clearable + placeholder="请选择活动状态" > <el-option v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" @@ -35,15 +35,22 @@ </el-select> </el-form-item> <el-form-item> - <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> - <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> + <el-button @click="handleQuery"> + <Icon class="mr-5px" icon="ep:search" /> + 搜索 + </el-button> + <el-button @click="resetQuery"> + <Icon class="mr-5px" icon="ep:refresh" /> + 重置 + </el-button> <el-button - type="primary" - plain - @click="openForm('create')" v-hasPermi="['promotion:combination-activity:create']" + plain + type="primary" + @click="openForm('create')" > - <Icon icon="ep:plus" class="mr-5px" /> 新增 + <Icon class="mr-5px" icon="ep:plus" /> + 新增 </el-button> </el-form-item> </el-form> @@ -51,77 +58,77 @@ <!-- 列表 --> <ContentWrap> - <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> - <el-table-column label="活动编号" prop="id" min-width="80" /> - <el-table-column label="活动名称" prop="name" min-width="140" /> + <el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" :stripe="true"> + <el-table-column label="活动编号" min-width="80" prop="id" /> + <el-table-column label="活动名称" min-width="140" prop="name" /> <el-table-column label="活动时间" min-width="210"> <template #default="scope"> {{ formatDate(scope.row.startTime, 'YYYY-MM-DD') }} ~ {{ formatDate(scope.row.endTime, 'YYYY-MM-DD') }} </template> </el-table-column> - <el-table-column label="商品图片" prop="spuName" min-width="80"> + <el-table-column label="商品图片" min-width="80" prop="spuName"> <template #default="scope"> <el-image + :preview-src-list="[scope.row.picUrl]" :src="scope.row.picUrl" class="h-40px w-40px" - :preview-src-list="[scope.row.picUrl]" preview-teleported /> </template> </el-table-column> - <el-table-column label="商品标题" prop="spuName" min-width="300" /> + <el-table-column label="商品标题" min-width="300" prop="spuName" /> <el-table-column - label="原价" - prop="marketPrice" - min-width="100" :formatter="fenToYuanFormat" + label="原价" + min-width="100" + prop="marketPrice" /> - <el-table-column label="拼团价" prop="seckillPrice" min-width="100"> + <el-table-column label="拼团价" min-width="100" prop="seckillPrice"> <template #default="scope"> {{ formatCombinationPrice(scope.row.products) }} </template> </el-table-column> - <el-table-column label="开团组数" prop="groupCount" min-width="100" /> - <el-table-column label="成团组数" prop="groupSuccessCount" min-width="100" /> - <el-table-column label="购买次数" prop="recordCount" min-width="100" /> - <el-table-column label="活动状态" align="center" prop="status" min-width="100"> + <el-table-column label="开团组数" min-width="100" prop="groupCount" /> + <el-table-column label="成团组数" min-width="100" prop="groupSuccessCount" /> + <el-table-column label="购买次数" min-width="100" prop="recordCount" /> + <el-table-column align="center" label="活动状态" min-width="100" prop="status"> <template #default="scope"> <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" /> </template> </el-table-column> <el-table-column - label="创建时间" - align="center" - prop="createTime" :formatter="dateFormatter" + align="center" + label="创建时间" + prop="createTime" width="180px" /> - <el-table-column label="操作" align="center" width="150px" fixed="right"> + <el-table-column align="center" fixed="right" label="操作" width="150px"> <template #default="scope"> <el-button + v-hasPermi="['promotion:combination-activity:update']" link type="primary" @click="openForm('update', scope.row.id)" - v-hasPermi="['promotion:combination-activity:update']" > 编辑 </el-button> <el-button + v-if="scope.row.status === 0" + v-hasPermi="['promotion:combination-activity:close']" link type="danger" @click="handleClose(scope.row.id)" - v-if="scope.row.status === 0" - v-hasPermi="['promotion:combination-activity:close']" > 关闭 </el-button> <el-button + v-else + v-hasPermi="['promotion:combination-activity:delete']" link type="danger" @click="handleDelete(scope.row.id)" - v-else - v-hasPermi="['promotion:combination-activity:delete']" > 删除 </el-button> @@ -130,9 +137,9 @@ </el-table> <!-- 分页 --> <Pagination - :total="total" - v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" + v-model:page="queryParams.pageNo" + :total="total" @pagination="getList" /> </ContentWrap> @@ -141,12 +148,11 @@ <CombinationActivityForm ref="formRef" @success="getList" /> </template> -<script setup lang="ts"> +<script lang="ts" setup> import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' -import { dateFormatter } from '@/utils/formatTime' +import { dateFormatter, formatDate } from '@/utils/formatTime' import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationActivity' import CombinationActivityForm from './CombinationActivityForm.vue' -import { formatDate } from '@/utils/formatTime' import { fenToYuanFormat } from '@/utils/formatter' import { fenToYuan } from '@/utils' @@ -165,7 +171,6 @@ const queryParams = reactive({ status: null }) const queryFormRef = ref() // 搜索的表单 -const exportLoading = ref(false) // 导出的加载中 /** 查询列表 */ const getList = async () => { @@ -197,12 +202,11 @@ const openForm = (type: string, id?: number) => { formRef.value.open(type, id) } -// TODO 芋艿:这里要改下 /** 关闭按钮操作 */ const handleClose = async (id: number) => { try { // 关闭的二次确认 - await message.confirm('确认关闭该秒杀活动吗?') + await message.confirm('确认关闭该拼团活动吗?') // 发起关闭 await CombinationActivityApi.closeCombinationActivity(id) message.success('关闭成功') diff --git a/src/views/mall/promotion/rewardActivity/index.vue b/src/views/mall/promotion/rewardActivity/index.vue index 55f30358..95f63fb9 100644 --- a/src/views/mall/promotion/rewardActivity/index.vue +++ b/src/views/mall/promotion/rewardActivity/index.vue @@ -55,7 +55,7 @@ 重置 </el-button> <el-button - v-hasPermi="['product:brand:create']" + v-hasPermi="['promotion:reward-activity:create']" plain type="primary" @click="openForm('create')" @@ -85,7 +85,7 @@ /> <el-table-column align="center" label="状态" prop="status"> <template #default="scope"> - <dict-tag :type="DICT_TYPE.PROMOTION_ACTIVITY_STATUS" :value="scope.row.status" /> + <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" /> </template> </el-table-column> <el-table-column @@ -98,7 +98,7 @@ <el-table-column align="center" label="操作"> <template #default="scope"> <el-button - v-hasPermi="['product:brand:update']" + v-hasPermi="['promotion:reward-activity:update']" link type="primary" @click="openForm('update', scope.row.id)" @@ -106,7 +106,16 @@ 编辑 </el-button> <el-button - v-hasPermi="['product:brand:delete']" + v-if="scope.row.status === 0" + v-hasPermi="['promotion:reward-activity:close']" + link + type="danger" + @click="handleClose(scope.row.id)" + > + 关闭 + </el-button> + <el-button + v-hasPermi="['promotion:reward-activity:delete']" link type="danger" @click="handleDelete(scope.row.id)" @@ -180,6 +189,19 @@ const openForm = (type: string, id?: number) => { formRef.value?.open(type, id) } +/** 关闭按钮操作 */ +const handleClose = async (id: number) => { + try { + // 关闭的二次确认 + await message.confirm('确认关闭该满减活动吗?') + // 发起关闭 + await RewardActivityApi.closeRewardActivity(id) + message.success('关闭成功') + // 刷新列表 + await getList() + } catch {} +} + /** 删除按钮操作 */ const handleDelete = async (id: number) => { try {