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