From 7f6e12bff1dad726ec103c786473da45f5a27bf0 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 30 九月 2025 16:43:14 +0800
Subject: [PATCH] 店铺绑定抽奖活动
---
manager/src/api/prize-store.js | 7 ++
manager/src/views/activity-prize/prize-store.vue | 119 ++++++++++++++++++++++++---------------
2 files changed, 80 insertions(+), 46 deletions(-)
diff --git a/manager/src/api/prize-store.js b/manager/src/api/prize-store.js
index abde40d..fd67570 100644
--- a/manager/src/api/prize-store.js
+++ b/manager/src/api/prize-store.js
@@ -27,3 +27,10 @@
method: "POST",
})
}
+export const getClaimPage = (params) =>{
+ return service({
+ url: "/lmk/scan-prize/getClaimPage",
+ method: "GET",
+ params:params
+ })
+}
diff --git a/manager/src/views/activity-prize/prize-store.vue b/manager/src/views/activity-prize/prize-store.vue
index 5bc9f20..4ad9f62 100644
--- a/manager/src/views/activity-prize/prize-store.vue
+++ b/manager/src/views/activity-prize/prize-store.vue
@@ -109,6 +109,12 @@
v-if="row.generateStatus ==='NOT_GENERATE'"
>鐢熸垚浼樻儬鍗�</Button>
<Button
+ style="margin-left: 10px;"
+ type="primary"
+ class="add-btn"
+ :disabled="row.material !== 'NOT_GENERATE'"
+ >鏌ョ湅鏉愭枡</Button>
+ <Button
@click="detail(row)"
style="margin-left: 10px;"
type="primary"
@@ -154,16 +160,16 @@
</Modal>
<Modal
- v-model="showCouponStore"
+ v-model="showPrizeClaim"
width="1200"
:mask-closable="false"
@on-cancel="handleCancelCouponStore"
>
<Table
- :loading="couponStoreLoading"
+ :loading="showPrizeClaimLoading"
border
- :columns="couponStoreColumns"
- :data="couponStoreData"
+ :columns="prizeClaimColumns"
+ :data="prizeClaimData"
ref="table"
>
<template slot-scope="{ row }" slot="action">
@@ -177,11 +183,11 @@
</Table>
<Row type="flex" justify="center" class="mt_10">
<Page
- :current="storeCouponSingleQuery.pageNumber"
- :total="couponStoreTotal"
- :page-size="storeCouponSingleQuery.pageSize"
- @on-change="couponStoreChangePage"
- @on-page-size-change="couponStoreChangePageSize"
+ :current="prizeClaimQuery.pageNumber"
+ :total="prizeClaimTotal"
+ :page-size="prizeClaimQuery.pageSize"
+ @on-change="prizeCliamChangePage"
+ @on-page-size-change="prizeCliamChangePageSize"
:page-size-opts="[10, 20, 50]"
size="small"
show-total
@@ -274,7 +280,7 @@
<script>
import vueQr from "vue-qr";
-import { getPage,add,changeStatus,generateStorePrize} from "@/api/prize-store.js"
+import { getPage,add,changeStatus,generateStorePrize,getClaimPage} from "@/api/prize-store.js"
import * as API_Activity_Prize from "@/api/activity-prize.js"
import * as API_Order from "@/api/order";
@@ -290,23 +296,23 @@
showGeneralQrCode:false,
codeLoading:false,
- codeUrl: this.QRcodeBaseUrl+ '/scanpage/couponStore',
+ codeUrl: this.QRcodeBaseUrl+ '/scanpage/prize',
- showCouponStore:false,
- couponStoreTotal:0,
- couponStoreData:[],
- couponStoreLoading:false,
- couponStoreColumns: [
+ showPrizeClaim:false,
+ prizeClaimTotal:0,
+ prizeClaimData:[],
+ showPrizeClaimLoading:false,
+ prizeClaimColumns: [
{
- title: "浼樻儬鍒稿悕绉�",
- key: "couponName",
+ title: "娲诲姩鍚�",
+ key: "prizeActivityName",
width: 200,
align: "center",
tooltip: true
},
{
- title: "浼樻儬鍒哥紪鍙�",
- key: "couponNo",
+ title: "缂栧彿",
+ key: "no",
width: 200,
align: "center",
tooltip: true
@@ -410,10 +416,10 @@
total: 0,
listLoading: false,
submitLoading: false,
- storeCouponSingleQuery:{
+ prizeClaimQuery:{
pageNumber: 1,
pageSize: 10,
- refId:""
+ storePrizeId:""
},
listQuery: {
@@ -521,12 +527,11 @@
},
detail(row){
- console.log(row)
- this.showCouponStore = true;
- this.storeCouponSingleQuery.refId = row.id
- this.storeCouponSingleQuery.pageSize = 10
- this.storeCouponSingleQuery.pageNumber = 1
- this.getCouponStoreDataList();
+ this.showPrizeClaim = true;
+ this.prizeClaimQuery.storePrizeId = row.id
+ this.prizeClaimQuery.pageSize = 10
+ this.prizeClaimQuery.pageNumber = 1
+ this.getClaimPage();
},
generalStorePrize(row){
generateStorePrize(row.id).then(response => {
@@ -556,16 +561,16 @@
this.getActivityPrizeDataList();
},
- couponStoreChangePage(v) {
+ prizeCliamChangePage(v) {
// 鏀瑰彉椤电爜
- this.storeCouponSingleQuery.pageNumber = v;
- this.getCouponStoreDataList();
+ this.prizeClaimQuery.pageNumber = v;
+ this.getClaimPage();
},
- couponStoreChangePageSize(v) {
+ prizeCliamChangePageSize(v) {
// 鏀瑰彉椤垫暟
- this.storeCouponSingleQuery.pageNumber = 1;
- this.storeCouponSingleQuery.pageSize = v;
- this.getCouponStoreDataList();
+ this.prizeClaimQuery.pageNumber = 1;
+ this.prizeClaimQuery.pageSize = v;
+ this.getClaimPage();
},
handleRowClick(currentRow ,oldCurrentRow){
console.log(currentRow)
@@ -576,15 +581,15 @@
console.log(this.temp.couponId)
},
- getCouponStoreDataList(){
- this.couponStoreLoading = true;
- // API_Activity_Prize(this.storeCouponSingleQuery).then((res) =>{
- // this.couponStoreLoading =false;
- // if (res.code === 200){
- // this.couponStoreData = res.data;
- // this.couponStoreTotal = res.total;
- // }
- // })
+ getClaimPage(){
+ this.showPrizeClaimLoading = true;
+ getClaimPage(this.prizeClaimQuery).then((res) =>{
+ this.showPrizeClaimLoading =false;
+ if (res.code === 200){
+ this.prizeClaimData = res.data;
+ this.prizeClaimTotal = res.total;
+ }
+ })
},
getActivityPrizeDataList() {
@@ -692,7 +697,7 @@
return colorMap[status] || 'default';
},
handleCancelCouponStore(){
- this.showCouponStore = false;
+ this.showPrizeClaim = false;
},
// 寮圭獥鍙栨秷
handleCancel() {
@@ -714,7 +719,29 @@
}
});
- }
+ },
+ formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {
+ if (!date) return '';
+
+ const d = new Date(date);
+ if (isNaN(d.getTime())) return '';
+
+ const padZero = (num) => String(num).padStart(2, '0'); // 鏇村彲闈犵殑琛ラ浂鏂规硶
+
+ const year = d.getFullYear();
+ const month = padZero(d.getMonth() + 1); // 鏈堜唤 0-11 鈫� +1
+ const day = padZero(d.getDate());
+ const hours = padZero(d.getHours());
+ const minutes = padZero(d.getMinutes());
+ const seconds = padZero(d.getSeconds());
+ return format
+ .replace('YYYY', year)
+ .replace('MM', month)
+ .replace('DD', day)
+ .replace('HH', hours)
+ .replace('mm', minutes)
+ .replace('ss', seconds);
+ },
},
mounted() {
this.getStoreSelect();
--
Gitblit v1.8.0