Przeglądaj źródła

复制打卡活动

wangxy 20 godzin temu
rodzic
commit
00ff94bcee
1 zmienionych plików z 103 dodań i 8 usunięć
  1. 103 8
      src/views/his/courseCheckIn/index.vue

+ 103 - 8
src/views/his/courseCheckIn/index.vue

@@ -73,6 +73,11 @@
                      @click="handleCopy(scope.row)"
                      v-has-permi="['course:checkinActivity:add']"
                      v-if="scope.row.status === 2">复制活动</el-button>
+          <el-button size="mini"
+                     type="text"
+                     icon="el-icon-gift"
+                     @click="handlePrizeRecord(scope.row)"
+                     v-has-permi="['course:checkinReceive:query']">奖品记录</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -95,11 +100,11 @@
         <el-form-item label="活动时间" prop="timeRange">
           <el-date-picker
             v-model="form.timeRange"
-            type="datetimerange"
+            type="daterange"
             range-separator="至"
-            start-placeholder="开始时间"
-            end-placeholder="结束时间"
-            value-format="yyyy-MM-dd HH:mm:ss"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            value-format="yyyy-MM-dd"
             size="small"
             style="width: 100%">
           </el-date-picker>
@@ -191,11 +196,11 @@
         <el-form-item label="新活动时间" prop="timeRange">
           <el-date-picker
             v-model="copyForm.timeRange"
-            type="datetimerange"
+            type="daterange"
             range-separator="至"
-            start-placeholder="开始时间"
-            end-placeholder="结束时间"
-            value-format="yyyy-MM-dd HH:mm:ss"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            value-format="yyyy-MM-dd"
             size="small"
             style="width: 100%">
           </el-date-picker>
@@ -206,6 +211,55 @@
         <el-button type="primary" @click="submitCopy">确 定</el-button>
       </div>
     </el-dialog>
+
+    <!-- 奖品领取记录对话框 -->
+    <el-dialog :title="'奖品领取记录 - ' + prizeRecordTitle" :visible.sync="prizeRecordOpen" width="900px" append-to-body>
+      <el-tabs v-model="prizeRecordType" @tab-click="handlePrizeRecordTabChange">
+        <el-tab-pane label="红包记录" name="redpacket">
+          <el-table v-loading="prizeRecordLoading" :data="prizeRecordList" border style="width: 100%">
+            <el-table-column label="ID" align="center" prop="receiveId" min-width="80" />
+            <el-table-column label="用户昵称" align="center" prop="userNickName" min-width="120" show-overflow-tooltip />
+            <el-table-column label="企业名" align="center" prop="companyName" min-width="150" show-overflow-tooltip />
+            <el-table-column label="红包金额" align="center" prop="redpacketAmount" min-width="100">
+              <template slot-scope="scope">
+                <span>{{ scope.row.redpacketAmount }} 元</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="领取状态" align="center" prop="receiveStatus" min-width="100">
+              <template slot-scope="scope">
+                <el-tag v-if="scope.row.receiveStatus === 0" type="info">未领取</el-tag>
+                <el-tag v-else-if="scope.row.receiveStatus === 1" type="success">已领取</el-tag>
+                <el-tag v-else-if="scope.row.receiveStatus === 2" type="danger">领取失败</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="领取时间" align="center" prop="receiveTime" min-width="160" />
+          </el-table>
+        </el-tab-pane>
+        <el-tab-pane label="积分商品记录" name="goods">
+          <el-table v-loading="prizeRecordLoading" :data="prizeRecordList" border style="width: 100%">
+            <el-table-column label="ID" align="center" prop="receiveId" min-width="80" />
+            <el-table-column label="用户昵称" align="center" prop="userNickName" min-width="120" show-overflow-tooltip />
+            <el-table-column label="企业名" align="center" prop="companyName" min-width="150" show-overflow-tooltip />
+            <el-table-column label="积分商品名" align="center" prop="goodsName" min-width="150" show-overflow-tooltip />
+            <el-table-column label="领取状态" align="center" prop="receiveStatus" min-width="100">
+              <template slot-scope="scope">
+                <el-tag v-if="scope.row.receiveStatus === 0" type="info">未领取</el-tag>
+                <el-tag v-else-if="scope.row.receiveStatus === 1" type="success">已领取</el-tag>
+                <el-tag v-else-if="scope.row.receiveStatus === 2" type="danger">领取失败</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="领取时间" align="center" prop="receiveTime" min-width="160" />
+          </el-table>
+        </el-tab-pane>
+      </el-tabs>
+      <pagination
+        v-show="prizeRecordTotal>0"
+        :total="prizeRecordTotal"
+        :page.sync="prizeRecordQuery.pageNum"
+        :limit.sync="prizeRecordQuery.pageSize"
+        @pagination="getPrizeRecordList"
+      />
+    </el-dialog>
   </div>
 </template>
 
@@ -273,6 +327,19 @@ export default {
         timeRange: [
           { required: true, message: "新活动时间不能为空", trigger: "change" }
         ]
+      },
+      // 奖品领取记录
+      prizeRecordOpen: false,
+      prizeRecordTitle: "",
+      prizeRecordType: "redpacket",
+      prizeRecordLoading: false,
+      prizeRecordList: [],
+      prizeRecordTotal: 0,
+      prizeRecordQuery: {
+        pageNum: 1,
+        pageSize: 10,
+        activityId: null,
+        prizeType: 1
       }
     };
   },
@@ -461,6 +528,34 @@ export default {
         }
       });
     },
+    handlePrizeRecord(row) {
+      this.prizeRecordTitle = row.activityName;
+      this.prizeRecordQuery.activityId = row.activityId;
+      this.prizeRecordQuery.pageNum = 1;
+      this.prizeRecordType = "redpacket";
+      this.prizeRecordQuery.prizeType = 1;
+      this.prizeRecordOpen = true;
+      this.getPrizeRecordList();
+    },
+    handlePrizeRecordTabChange() {
+      this.prizeRecordQuery.prizeType = this.prizeRecordType === "redpacket" ? 1 : 2;
+      this.prizeRecordQuery.pageNum = 1;
+      this.getPrizeRecordList();
+    },
+    getPrizeRecordList() {
+      this.prizeRecordLoading = true;
+      request({
+        url: '/course/checkinActivity/prizeRecord',
+        method: 'get',
+        params: this.prizeRecordQuery
+      }).then(response => {
+        this.prizeRecordList = response.rows || [];
+        this.prizeRecordTotal = response.total || 0;
+        this.prizeRecordLoading = false;
+      }).catch(() => {
+        this.prizeRecordLoading = false;
+      });
+    },
     cancel() {
       this.open = false;
       this.reset();