Преглед изворни кода

updat:修改芳华币为积分

ct пре 2 дана
родитељ
комит
4438494958

+ 4 - 4
src/views/live/liveConfig/liveRedConf.vue

@@ -97,7 +97,7 @@
       <el-table-column label="有效时间 单位:分" align="center" prop="duration" />
       <el-table-column label="红包类型" align="center" prop="redType" :formatter="redTypeFormatter"/>
       <el-table-column label="直播间ID" align="center" prop="liveId" />
-      <el-table-column label="芳华币数量" align="center" prop="redNum" />
+      <el-table-column label="积分数量" align="center" prop="redNum" />
       <el-table-column label="可中奖份量" align="center" prop="totalLots" />
       <el-table-column label="实际发放奖励份量" align="center" prop="totalSend" />
       <el-table-column label="红包标题" align="center" prop="desc" />
@@ -184,8 +184,8 @@
         <el-form-item label="直播间ID" prop="liveId">
           <el-input v-model="form.liveId" placeholder="请输入直播间ID" :disabled="canLiveId"/>
         </el-form-item>
-        <el-form-item label="芳华币数" prop="redNum">
-          <el-input v-model="form.redNum" placeholder="请输入芳华币数量" />
+        <el-form-item label="积分数" prop="redNum">
+          <el-input v-model="form.redNum" placeholder="请输入积分数量" />
         </el-form-item>
         <el-form-item label="中奖份量" prop="totalLots">
           <el-input v-model="form.totalLots" placeholder="请输入可中奖份量" />
@@ -267,7 +267,7 @@ export default {
           { required: true, message: "直播间ID不能为空", trigger: "blur" }
         ],
         redNum: [
-          { required: true, message: "芳华币数量不能为空", trigger: "blur" }
+          { required: true, message: "积分数量不能为空", trigger: "blur" }
         ],
         totalLots: [
           { required: true, message: "可中奖份量不能为空", trigger: "blur" }

+ 4 - 4
src/views/live/liveRedConf/index.vue

@@ -95,7 +95,7 @@
       <el-table-column label="有效时间 单位:分" align="center" prop="duration" />
       <el-table-column label="红包类型" align="center" prop="redType" :formatter="redTypeFormatter"/>
       <el-table-column label="直播间ID" align="center" prop="liveId" />
-      <el-table-column label="芳华币数量" align="center" prop="redNum" />
+      <el-table-column label="积分数量" align="center" prop="redNum" />
       <el-table-column label="可中奖份量" align="center" prop="totalLots" />
       <el-table-column label="实际发放奖励份量" align="center" prop="totalSend" />
       <el-table-column label="红包标题" align="center" prop="desc" />
@@ -177,8 +177,8 @@
         <el-form-item label="直播间ID" prop="liveId">
           <el-input v-model="form.liveId" placeholder="请输入直播间ID" :disabled="canLiveId"/>
         </el-form-item>
-        <el-form-item label="芳华币数" prop="redNum">
-          <el-input v-model="form.redNum" placeholder="请输入芳华币数量" />
+        <el-form-item label="积分数" prop="redNum">
+          <el-input v-model="form.redNum" placeholder="请输入积分数量" />
         </el-form-item>
         <el-form-item label="中奖份量" prop="totalLots">
           <el-input v-model="form.totalLots" placeholder="请输入可中奖份量" />
@@ -253,7 +253,7 @@ export default {
           { required: true, message: "直播间ID不能为空", trigger: "blur" }
         ],
         redNum: [
-          { required: true, message: "芳华币数量不能为空", trigger: "blur" }
+          { required: true, message: "积分数量不能为空", trigger: "blur" }
         ],
         totalLots: [
           { required: true, message: "可中奖份量不能为空", trigger: "blur" }

+ 496 - 0
src/views/qw/luckyBag/index.vue

@@ -0,0 +1,496 @@
+<template>
+
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="福袋名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入福袋名称"
+          clearable
+          size="small"
+        />
+      </el-form-item>
+      <el-form-item label="状态" prop="dataStatus">
+        <el-select v-model="queryParams.dataStatus" placeholder="请选择状态" clearable size="small">
+          <el-option
+            v-for="dict in statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          @click="handleUpdate"
+          :disabled="single"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+
+        >删除</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="rewardList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="主键ID" align="center" prop="id" />
+      <el-table-column label="福袋名称" align="center" prop="name" />
+      <el-table-column label="福袋类型" align="center" prop="rewardType">
+        <template slot-scope="scope">
+          <dict-tag :options="typeOptions" :value="scope.row.type"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="状态" align="center" prop="dataStatus">
+        <template slot-scope="scope">
+          <dict-tag :options="statusOptions" :value="scope.row.dataStatus"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="福袋内容" align="center" prop="actualRewards">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleViewReward(scope.row)"
+          >查看详情</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改奖励配置对话框 -->
+    <el-dialog :title="title" :visible.sync="open" :width="width" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="福袋名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入奖励名称" style="width: 200px;"/>
+        </el-form-item>
+        <el-form-item label="福袋类型" prop="type">
+          <el-select v-model="form.type" placeholder="请选择福袋类型" clearable size="small">
+            <el-option
+              v-for="item in this.typeOptions"
+              :key="item.dictValue"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <!-- 当选择定值时显示数字输入框 -->
+        <el-form-item v-if="form.type === '1'" label="定值金额" prop="amount">
+          <el-input-number :min="1" :step="1" :max="9999" :precision="0" v-model="form.amount" placeholder="期望值" />
+        </el-form-item>
+        <el-form-item v-if="form.type === '2'" label="随机奖励" prop="rewardItems">
+          <div class="reward-table-container">
+            <div class="table-header">
+              <span>随机奖励配置</span>
+              <el-button type="primary" icon="el-icon-plus" size="mini" @click="addRewardItem">添加奖励项</el-button>
+            </div>
+            <el-table :data="form.rewardItems" border size="small">
+              <el-table-column label="奖励模式">
+                <template slot-scope="scope">
+                  <span>积分</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="奖励数量">
+                <template slot-scope="scope">
+                  <el-input-number v-model="scope.row.amount" :min="0" :max="9999" :step="1" :precision="0" :controls="false" style="width: 100%"></el-input-number>
+                </template>
+              </el-table-column>
+              <el-table-column label="概率" >
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.probability" placeholder="例如: 20%"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column  v-if="false" label="唯一序列号" >
+                <template slot-scope="scope">
+                  <el-input v-model="scope.row.code" placeholder="奖励唯一序列号">
+                    <el-button slot="append" icon="el-icon-refresh" @click="generateUUID(scope.row)"></el-button>
+                  </el-input>
+                </template>
+              </el-table-column>
+              <el-table-column label="操作" width="80">
+                <template slot-scope="scope">
+                  <el-button type="danger" icon="el-icon-delete" size="mini" @click="removeRewardItem(scope.$index)"></el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+        </el-form-item>
+        <el-form-item label="状态" prop="dataStatus">
+          <el-radio-group v-model="form.dataStatus">
+            <el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{dict.dictLabel}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+
+    <el-dialog
+      :title="`福袋详情`"
+      :visible.sync="detailVisible"
+      width="700px"
+      append-to-body
+    >
+      <div class="reward-detail-container">
+        <!-- 基础信息 -->
+        <el-descriptions :column="2" border class="base-info" :label-style="{ width: '120px' }" :content-style="{ width: '200px' }">
+          <el-descriptions-item label="福袋名称">{{ currentReward.name }}</el-descriptions-item>
+          <el-descriptions-item label="福袋类型">
+            <dict-tag :options="typeOptions" :value="currentReward.type"/>
+          </el-descriptions-item>
+          <el-descriptions-item label="状态">
+            <dict-tag :options="statusOptions" :value="currentReward.dataStatus"/>
+          </el-descriptions-item>
+        </el-descriptions>
+
+        <!-- 内容详情 -->
+        <div class="reward-content">
+          <h4>福袋内容详情</h4>
+        </div>
+        <div v-if="true" class="chest-reward">
+          <el-table :data="actualRewards" size="small" border stripe>
+            <el-table-column label="内容" prop="amount"  align="center">
+              <template slot-scope="{row}">
+                {{ row.name }}
+              </template>
+            </el-table-column>
+            <el-table-column label="数量" prop="amount"  align="center">
+              <template slot-scope="{row}">
+                {{ row.amount }}
+              </template>
+            </el-table-column>
+            <el-table-column label="概率" prop="probability" align="center" v-if="currentReward.type=='2'">
+              <template slot-scope="{row}">
+                <el-tag v-if="row.probability" size="small">{{ row.probability }}</el-tag>
+                <span v-else>-</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script >
+import {addReward, listReward,getReward,updateReward,delReward } from "@/api/qw/luckyBag";
+export default {
+  name: "luckyBag",
+  data() {
+    return {
+      currentReward: {},
+      detailVisible:false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      open: false,
+      title: '',
+      form:{
+        dataStatus: '1',
+        status: '1'
+      },
+      width: '1200px',
+      // 添加固定的奖励类型选项
+      typeOptions: [
+        { dictValue: '1', dictLabel: '定值' },
+        { dictValue: '2', dictLabel: '随机' }
+      ],
+      statusOptions: [
+        { dictValue: '1', dictLabel: '正常' },
+        { dictValue: '0', dictLabel: '禁止' }
+      ],
+      actualRewards:[],
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "奖励名称不能为空", trigger: "blur" }
+        ],
+      },
+      // 总条数
+      total: 0,
+      rewardList: [],
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        type: null
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除奖励配置编号为"' + ids + '"的数据项?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(function() {
+        return delReward(ids);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids;
+      getReward(id).then(response => {
+        this.form = response.data[0];
+        console.log(response.data[0])
+        this.form.status = response.data[0].status.toString();
+        this.form.type = response.data[0].type.toString();
+        this.form.dataStatus = response.data[0].dataStatus.toString();
+
+        try {
+          const actualRewards = JSON.parse(response.data[0].actualRewards || "[]");
+          this.form.rewardItems=actualRewards;
+        } catch (e) {
+          console.error("解析actualRewards失败", e);
+          this.form.rewardItems = [];
+          this.form.account = 0;
+        }
+
+        this.open = true;
+        this.title = "修改奖励配置";
+      });
+    },
+    // 解析奖励项数据
+    parsedRewardItems() {
+      if (this.currentReward.type == '1') {
+        const newRewards = [
+          {
+            name: this.currentReward.name,
+            amount: this.currentReward.amount
+          }
+        ];
+        this.actualRewards=newRewards;
+      }else{
+        if (this.currentReward.actualRewards == null) {
+          return null
+        }
+        try {
+          const parsed = JSON.parse(this.currentReward.actualRewards);
+          console.log(parsed);
+          this.actualRewards = parsed;
+        } catch (e) {
+          console.error("解析奖励内容失败", e);
+          this.actualRewards=null;
+        }
+      }
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    handleViewReward(row) {
+      this.currentReward = { ...row };
+      this.detailVisible = true;
+      this.parsedRewardItems()
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加福袋配置"
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        status: "1",
+        dataStatus: '1',
+        type: '1',
+        rewardItems: []
+      };
+      this.resetForm("form");
+    },
+    // 查询
+    getList() {
+      this.loading = true;
+      listReward(this.queryParams).then(response => {
+        this.rewardList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 添加
+    addRewardItem() {
+      this.form.rewardItems.push({
+        type: '1',
+        name:'积分', // 默认使用表单中的奖励名称
+        amount: 1,
+        probability: '',
+        code: this.generateUUID()
+      });
+    },
+    // 移除奖励项
+    removeRewardItem(index) {
+      this.form.rewardItems.splice(index, 1);
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          let actualRewards = "";
+          if (this.form.type === '2' ) {
+            // 宝箱类型,将rewardItems转为JSON
+            actualRewards = JSON.stringify(this.form.rewardItems);
+          }
+
+          // 设置actualRewards
+          this.form.actualRewards = actualRewards;
+
+          if (this.form.id != null) {
+            updateReward(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addReward(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+
+
+    // 生成UUID
+    generateUUID(item) {
+      if (item) {
+        item.code = this.generateUUIDString();
+      } else {
+        return this.generateUUIDString();
+      }
+    },
+    // 生成UUID字符串
+    generateUUIDString() {
+      return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+        var r = Math.random() * 16 | 0,
+          v = c == 'x' ? r : (r & 0x3 | 0x8);
+        return v.toString(16);
+      });
+    },
+  },
+}
+</script>
+<style scoped>
+.reward-table-container {
+  border: 1px solid #ebeef5;
+  border-radius: 4px;
+}
+.table-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 15px;
+  background-color: #f5f7fa;
+  border-bottom: 1px solid #ebeef5;
+}
+.reward-detail-container {
+  max-height: 60vh;
+  overflow-y: auto;
+}
+.base-info {
+  margin-bottom: 20px;
+  width: 100%;
+  table-layout: fixed;
+}
+.reward-content {
+  margin: 20px 0;
+}
+.chest-reward,
+.redpacket-reward,
+.points-reward {
+  margin: 15px 0;
+}
+</style>

+ 541 - 0
src/views/qw/luckyBagCollectRecord/index.vue

@@ -0,0 +1,541 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="客户名称" prop="userName">
+        <el-input
+          v-model="queryParams.userName"
+          placeholder="请输入客户名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="业务类型" prop="rewardType">
+        <el-select v-model="queryParams.rewardType" placeholder="请选择业务类型" clearable size="small">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="客服名称" prop="qwUserName">
+        <el-input
+          v-model="queryParams.qwUserName"
+          placeholder="请输入客服名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+<!--      <el-form-item label="公司名称" prop="companyName">-->
+<!--        <el-input-->
+<!--          v-model="queryParams.companyName"-->
+<!--          placeholder="请输入公司名称"-->
+<!--          clearable-->
+<!--          size="small"-->
+<!--          @keyup.enter.native="handleQuery"-->
+<!--        />-->
+<!--      </el-form-item>-->
+      <el-form-item label="积分数" prop="coinAmount">
+        <el-input
+          v-model="queryParams.coinAmount"
+          placeholder="请输入积分数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="发放时间">
+        <el-date-picker
+          v-model="daterangeSendTime"
+          size="small"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="领取时间">
+        <el-date-picker
+          v-model="daterangeCollectTime"
+          size="small"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="失效时间">
+        <el-date-picker
+          v-model="daterangeExpiryTime"
+          size="small"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="领取状态" prop="collectType">
+        <el-select v-model="queryParams.collectType" placeholder="请选择领取状态" clearable size="small">
+          <el-option
+            v-for="item in collectTypeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"/>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="群聊名称" prop="externalUserName">
+        <el-input
+          v-model="queryParams.externalUserName"
+          placeholder="请输入群聊名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['qw:luckyBagCollectRecord:add']"-->
+<!--        >新增</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="success"-->
+<!--          plain-->
+<!--          icon="el-icon-edit"-->
+<!--          size="mini"-->
+<!--          :disabled="single"-->
+<!--          @click="handleUpdate"-->
+<!--          v-hasPermi="['qw:luckyBagCollectRecord:edit']"-->
+<!--        >修改</el-button>-->
+<!--      </el-col>-->
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="danger"-->
+<!--          plain-->
+<!--          icon="el-icon-delete"-->
+<!--          size="mini"-->
+<!--          :disabled="multiple"-->
+<!--          @click="handleDelete"-->
+<!--          v-hasPermi="['qw:luckyBagCollectRecord:remove']"-->
+<!--        >删除</el-button>-->
+<!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['qw:luckyBagCollectRecord:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="luckyBagCollectRecordList" @selection-change="handleSelectionChange">
+<!--      <el-table-column type="selection" width="55" align="center" />-->
+      <el-table-column v-if="false"  label="主键ID" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userId" />
+      <el-table-column label="客户名称" align="center" prop="userName" />
+      <el-table-column label="福袋名称" align="center" prop="luckyBagName" />
+      <el-table-column label="客服名称" align="center" prop="qwUserName" />
+      <el-table-column label="企微员工名称" align="center" prop="companyUserName" />
+      <el-table-column label="业务类型" align="center" prop="rewardType">
+        <template slot-scope="scope">
+          <div v-for="item in options" v-if="item.value==scope.row.rewardType">{{item.label}}</div>
+        </template>
+      </el-table-column>
+<!--      <el-table-column label="福袋表主键ID" align="center" prop="luckyBagId" />-->
+<!--      <el-table-column label="销售ID" align="center" prop="companyUserId" />-->
+<!--      <el-table-column label="公司ID" align="center" prop="companyId" />-->
+      <el-table-column label="公司名称" align="center" prop="companyName" />
+      <el-table-column label="积分数量" align="center" prop="coinAmount" />
+      <el-table-column label="发放时间" align="center" prop="sendTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="领取时间" align="center" prop="collectTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.collectTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="失效时间" align="center" prop="expiryTime" width="160">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.expiryTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="领取状态" align="center" prop="collectType">
+        <template slot-scope="scope">
+          <div v-for="item in collectTypeOptions" v-if="item.value==scope.row.collectType">{{item.label}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="群聊名称" align="center" prop="externalUserName" />
+      <el-table-column label="发放ID" align="center" prop="id" />
+      <el-table-column label="领取ID" align="center" prop="relationId"/>
+
+<!--      <el-table-column label="群聊会话id" align="center" prop="chatId" />-->
+<!--      <el-table-column label="关联id 关联群发记录id" align="center" prop="relationId" />-->
+<!--      <el-table-column label="发送链接" align="center" prop="sendLink" />-->
+<!--      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
+<!--        <template slot-scope="scope">-->
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['qw:luckyBagCollectRecord:edit']"-->
+<!--          >修改</el-button>-->
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-delete"-->
+<!--            @click="handleDelete(scope.row)"-->
+<!--            v-hasPermi="['qw:luckyBagCollectRecord:remove']"-->
+<!--          >删除</el-button>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改福袋发放及领取记录对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="领取用户ID" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入领取用户ID" />
+        </el-form-item>
+        <el-form-item label="客户名称" prop="userName">
+          <el-input v-model="form.userName" placeholder="请输入客户名称" />
+        </el-form-item>
+        <el-form-item label="业务类型" prop="rewardType">
+          <el-select v-model="form.rewardType" placeholder="请选择业务类型">
+            <el-option label="1" value="群福袋" />
+            <el-option label="2" value="个人福袋" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="福袋表主键ID" prop="luckyBagId">
+          <el-input v-model="form.luckyBagId" placeholder="请输入福袋表主键ID" />
+        </el-form-item>
+        <el-form-item label="销售ID" prop="companyUserId">
+          <el-input v-model="form.companyUserId" placeholder="请输入销售ID" />
+        </el-form-item>
+        <el-form-item label="公司ID" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入公司ID" />
+        </el-form-item>
+        <el-form-item label="公司名称" prop="companyName">
+          <el-input v-model="form.companyName" placeholder="请输入公司名称" />
+        </el-form-item>
+        <el-form-item label="积分数量" prop="coinAmount">
+          <el-input v-model="form.coinAmount" placeholder="请输入积分数量" />
+        </el-form-item>
+        <el-form-item label="发放时间" prop="sendTime">
+          <el-date-picker clearable size="small"
+            v-model="form.sendTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择发放时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="领取时间" prop="collectTime">
+          <el-date-picker clearable size="small"
+            v-model="form.collectTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择领取时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="失效时间" prop="expiryTime">
+          <el-date-picker clearable size="small"
+            v-model="form.expiryTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择失效时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="领取状态(0-已发放 1-已领取 2-已失效)" prop="collectType">
+          <el-select v-model="form.collectType" placeholder="请选择领取状态(0-已发放 1-已领取 2-已失效)">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="客户或者群聊名称" prop="externalUserName">
+          <el-input v-model="form.externalUserName" placeholder="请输入客户或者群聊名称" />
+        </el-form-item>
+        <el-form-item label="群聊会话id" prop="chatId">
+          <el-input v-model="form.chatId" placeholder="请输入群聊会话id" />
+        </el-form-item>
+        <el-form-item label="关联id 关联群发记录id" prop="relationId">
+          <el-input v-model="form.relationId" placeholder="请输入关联id 关联群发记录id" />
+        </el-form-item>
+        <el-form-item label="发送链接" prop="sendLink">
+          <el-input v-model="form.sendLink" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listLuckyBagCollectRecord, getLuckyBagCollectRecord, delLuckyBagCollectRecord, addLuckyBagCollectRecord, updateLuckyBagCollectRecord, exportLuckyBagCollectRecord } from "@/api/qw/luckyBagCollectRecord";
+
+export default {
+  name: "LuckyBagCollectRecord",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 福袋发放及领取记录表格数据
+      luckyBagCollectRecordList: [],
+      // 弹出层标题
+      title: "",
+      // 发放时间时间范围
+      daterangeSendTime: [],
+      // 领取时间时间范围
+      daterangeCollectTime: [],
+      // 失效时间时间范围
+      daterangeExpiryTime: [],
+      // 是否显示弹出层
+      open: false,
+      options:[{
+        label: "群福袋",
+        value: 1
+      },
+      {
+        label: "个人福袋",
+        value: 2
+      }],
+      collectTypeOptions:[
+        {
+          label: "已发放",
+          value: "0"
+        },
+        {
+          label: "已领取",
+          value: "1"
+        },
+        {
+          label: "已失效",
+          value: "2"
+        }
+      ],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userName: null,
+        rewardType: null,
+        qwUserName: null,
+        companyName: null,
+        coinAmount: null,
+        sendTime: null,
+        collectTime: null,
+        expiryTime: null,
+        collectType: null,
+        externalUserName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        rewardType: [
+          { required: true, message: "业务类型:1-群福袋 2-个人福袋不能为空", trigger: "change" }
+        ],
+        luckyBagId: [
+          { required: true, message: "福袋表主键ID不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    getRewardTypeLabel(value) {
+      console.log(value)
+      console.log("++++++++++++++")
+      const option = this.options.find(item => item.value === value);
+      return option ? option.label : '';
+    },
+    /** 查询福袋发放及领取记录列表 */
+    getList() {
+      this.loading = true;
+      this.queryParams.params = {};
+      if (null != this.daterangeSendTime && '' != this.daterangeSendTime) {
+        this.queryParams.params["beginSendTime"] = this.daterangeSendTime[0];
+        this.queryParams.params["endSendTime"] = this.daterangeSendTime[1];
+      }
+      if (null != this.daterangeCollectTime && '' != this.daterangeCollectTime) {
+        this.queryParams.params["beginCollectTime"] = this.daterangeCollectTime[0];
+        this.queryParams.params["endCollectTime"] = this.daterangeCollectTime[1];
+      }
+      if (null != this.daterangeExpiryTime && '' != this.daterangeExpiryTime) {
+        this.queryParams.params["beginExpiryTime"] = this.daterangeExpiryTime[0];
+        this.queryParams.params["endExpiryTime"] = this.daterangeExpiryTime[1];
+      }
+      listLuckyBagCollectRecord(this.queryParams).then(response => {
+        this.luckyBagCollectRecordList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userId: null,
+        userName: null,
+        rewardType: null,
+        qwUserName: null,
+        luckyBagId: null,
+        companyUserId: null,
+        companyId: null,
+        companyName: null,
+        coinAmount: null,
+        sendTime: null,
+        collectTime: null,
+        expiryTime: null,
+        collectType: null,
+        externalUserName: null,
+        chatId: null,
+        relationId: null,
+        sendLink: null,
+        updateTime: null,
+        createTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.daterangeSendTime = [];
+      this.daterangeCollectTime = [];
+      this.daterangeExpiryTime = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加福袋发放及领取记录";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLuckyBagCollectRecord(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改福袋发放及领取记录";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLuckyBagCollectRecord(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLuckyBagCollectRecord(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除福袋发放及领取记录编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delLuckyBagCollectRecord(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有福袋发放及领取记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportLuckyBagCollectRecord(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>