xw пре 3 дана
родитељ
комит
3100bdb561
1 измењених фајлова са 20 додато и 13 уклоњено
  1. 20 13
      src/views/live/liveConfig/liveRedConf.vue

+ 20 - 13
src/views/live/liveConfig/liveRedConf.vue

@@ -99,6 +99,11 @@
       <el-table-column label="可中奖份量" align="center" prop="totalLots" />
       <el-table-column label="实际发放奖励份量" align="center" prop="totalSend" />
       <el-table-column label="积分标题" align="center" prop="desc" />
+      <el-table-column label="评论关键词" align="center" prop="requireConf" min-width="120" show-overflow-tooltip>
+        <template slot-scope="scope">
+          <span>{{ scope.row.redType === 4 ? (scope.row.requireConf || '—') : '—' }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="创建日期" align="center" prop="createTime" width="120">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
@@ -193,7 +198,7 @@
             clearable
           />
           <span style="display: block; margin-top: 5px; font-size: 12px; color: #909399;">
-            💡 提示:用户发送包含该关键词的评论即可参与红包
+            💡 多个关键词用逗号分隔,用户评论包含任一词即可领积分;留空则任意评论均可领
           </span>
         </el-form-item>
         <el-form-item label="持续时间" prop="duration" :style="form.require+'' === '4' ? '' : 'margin-top: 50px;'">
@@ -419,19 +424,15 @@ export default {
   },
   methods: {
     validRequireConf(rule, value, callback) {
-      // 当参与方式为"送礼参与"(2)、"下单参与"(3)或"评论参与"(4)时,requireConf不能为空
-      if(this.form.require+"" === "2" || this.form.require+"" === "3" || this.form.require+"" === "4"){
-        if(!value || value.trim() === ""){
-          if(this.form.require+"" === "4") {
-            callback(new Error('请输入评论关键词'));
-          } else {
-            callback(new Error('当参与方式选择为送礼参与或下单参与时,对应的配置不能为空'));
-          }
-          return false;
+      // 评论参与(4):requireConf 可选,留空表示任意评论均可领
+      // 送礼(2)/下单(3) 时 requireConf 必填(若后续支持)
+      if (this.form.require + "" === "2" || this.form.require + "" === "3") {
+        if (!value || (typeof value === 'string' && value.trim() === "")) {
+          callback(new Error('当参与方式选择为送礼参与或下单参与时,对应的配置不能为空'));
+          return;
         }
       }
       callback();
-      return true;
     },
     handleStatusChange(row, status) {
       if (this.$store.state.liveWs[this.liveId] == null) {
@@ -521,7 +522,9 @@ export default {
         redId: null,
         redStatus: null,
         duration: null,
-        //redType: null,
+        redType: null,
+        requireConf: null,
+        require: null,
         liveId: null,
         redNum: null,
         totalLots: null,
@@ -576,6 +579,9 @@ export default {
       const redId = row.redId || this.ids
       getLiveRedConf(redId).then(response => {
         this.form = response.data;
+        // 与后端一致:redType=4 为评论领积分,回填参与方式与评论关键词
+        this.form.require = (response.data.redType === 4 ? '4' : '1');
+        this.form.requireConf = response.data.requireConf || '';
         this.open = true;
         this.title = "修改直播积分记录配置";
       });
@@ -584,6 +590,8 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          // 参与方式 4=评论领积分 对应后端 redType=4,其余为 1
+          this.form.redType = (this.form.require === '4' ? 4 : 1);
           if (this.form.redId != null) {
             updateLiveRedConf(this.form).then(response => {
               this.msgSuccess("修改成功");
@@ -591,7 +599,6 @@ export default {
               this.getList();
             });
           } else {
-            this.form.redType = 1;
             addLiveRedConf(this.form).then(response => {
               this.msgSuccess("新增成功");
               this.open = false;