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