Quellcode durchsuchen

销售直播代码

yuhongqi vor 3 Tagen
Ursprung
Commit
79a6f94045
4 geänderte Dateien mit 409 neuen und 188 gelöschten Zeilen
  1. 10 1
      src/api/live/gift.js
  2. 29 27
      src/views/live/gift/index.vue
  3. 364 154
      src/views/live/liveConfig/index.vue
  4. 6 6
      src/views/live/words/index.vue

+ 10 - 1
src/api/live/gift.js

@@ -50,4 +50,13 @@ export function exportGift(query) {
     method: 'get',
     params: query
   })
-}
+}
+
+
+// 查询直播间礼物配置详细
+export function getDictData(dictType) {
+  return request({
+    url: '/system/dict/data/type/' + dictType,
+    method: 'get'
+  })
+}

+ 29 - 27
src/views/live/gift/index.vue

@@ -10,27 +10,14 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="礼物图标链接地址" prop="iconUrl">
-        <el-input
-          v-model="queryParams.iconUrl"
-          placeholder="请输入礼物图标链接地址"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="礼物价格" prop="price">
-        <el-input
-          v-model="queryParams.price"
-          placeholder="请输入礼物价格"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="礼物当前状态" prop="status">
+      <el-form-item label="礼物当前状态" prop="status" label-width="120px">
         <el-select v-model="queryParams.status" placeholder="请选择礼物当前状态" clearable size="small">
-          <el-option label="请选择字典生成" value="" />
+          <el-option
+            v-for="dict in statusOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -93,7 +80,7 @@
       <el-table-column label="礼物描述" align="center" prop="description" />
       <el-table-column label="礼物图标链接地址" align="center" prop="iconUrl" />
       <el-table-column label="礼物价格" align="center" prop="price" />
-      <el-table-column label="礼物当前状态" align="center" prop="status" />
+      <el-table-column label="礼物当前状态" align="center" prop="status" :formatter="formatStatus" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -124,14 +111,14 @@
 
     <!-- 添加或修改直播间礼物配置对话框 -->
     <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 ref="form" :model="form" :rules="rules" label-width="120px">
         <el-form-item label="礼物名称" prop="giftName">
           <el-input v-model="form.giftName" placeholder="请输入礼物名称" />
         </el-form-item>
         <el-form-item label="礼物描述" prop="description">
           <el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
         </el-form-item>
-        <el-form-item label="礼物图标链接地址" prop="iconUrl">
+        <el-form-item label="图标链接地址" prop="iconUrl">
           <el-input v-model="form.iconUrl" placeholder="请输入礼物图标链接地址" />
         </el-form-item>
         <el-form-item label="礼物价格" prop="price">
@@ -139,7 +126,13 @@
         </el-form-item>
         <el-form-item label="礼物当前状态">
           <el-radio-group v-model="form.status">
-            <el-radio label="1">请选择字典生成</el-radio>
+            <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>
@@ -152,7 +145,7 @@
 </template>
 
 <script>
-import { listGift, getGift, delGift, addGift, updateGift, exportGift } from "@/api/live/gift";
+import { listGift, getGift, delGift, addGift, updateGift, exportGift,getDictData } from "@/api/live/gift";
 
 export default {
   name: "Gift",
@@ -184,10 +177,9 @@ export default {
         pageSize: 10,
         giftName: null,
         description: null,
-        iconUrl: null,
-        price: null,
         status: null
       },
+      statusOptions:{},
       // 表单参数
       form: {},
       // 表单校验
@@ -203,8 +195,18 @@ export default {
   },
   created() {
     this.getList();
+    this.getDict();
   },
   methods: {
+    formatStatus(row, column, cellValue) {
+      const found = this.statusOptions.find(d => d.dictValue === cellValue);
+      return found ? found.dictLabel : '未知';
+    },
+    getDict() {
+      getDictData("sys_normal_disable").then(response => {
+        this.statusOptions = response.data;
+      });
+    },
     /** 查询直播间礼物配置列表 */
     getList() {
       this.loading = true;

+ 364 - 154
src/views/live/liveConfig/index.vue

@@ -7,165 +7,331 @@
         <el-tabs v-if="item.name == 'market'" v-model="marketActiveName" type="card" @tab-click="handleTabClick">
           <el-tab-pane v-for="marketItem in marketTabs" :key="marketItem.name" :label="marketItem.label" :name="marketItem.name" class="market-tab-pane">
             <!-- 观看奖励 start -->
-            <div v-if="marketItem.name == 'watchReward'">
-              <!-- 提示信息 -->
-              <div class="tip-message">
-                设置观看奖励,用户达到直播观看时长后可领取奖励
-              </div>
+            <template>
+              <div v-if="marketItem.name == 'watchReward'">
+                <!-- 提示信息 -->
+                <div class="tip-message">
+                  设置观看奖励,用户达到直播观看时长后可领取奖励
+                </div>
 
-              <!-- 开启观看奖励开关 -->
-              <div class="reward-switch">
-                <span class="switch-label">开启观看奖励</span>
-                <el-switch v-model="watchRewardForm.enabled"></el-switch>
-              </div>
+                <!-- 开启观看奖励开关 -->
+                <div class="reward-switch">
+                  <span class="switch-label">开启观看奖励</span>
+                  <el-switch v-model="watchRewardForm.enabled"></el-switch>
+                </div>
 
-              <!-- 观看奖励设置 -->
-              <div v-if="watchRewardForm.enabled" class="section-block">
-                <div class="section-title">观看奖励设置</div>
-
-                <!-- 表单内容 -->
-                <el-form :model="watchRewardForm" ref="watchRewardForm" label-width="130px" class="reward-form">
-                  <!-- 参与条件 -->
-                  <el-form-item label="参与条件" required>
-                    <el-radio v-model="watchRewardForm.participateCondition" label="1">
-                      达到指定观看时长
-                    </el-radio>
-                  </el-form-item>
-
-                  <!-- 观看时长 -->
-                  <el-form-item label="观看时长" required>
-                    <el-input v-model="watchRewardForm.watchDuration" placeholder="请输入观看时长" class="duration-input">
-                      <template slot="append">分钟</template>
-                    </el-input>
-                  </el-form-item>
-
-                  <!-- 实施动作 -->
-                  <el-form-item label="实施动作" required>
-                    <el-select v-model="watchRewardForm.action" placeholder="请选择实施动作" style="width: 300px;">
-                      <el-option
-                        v-for="item in actionOptions"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                      </el-option>
-                    </el-select>
-                  </el-form-item>
-
-                  <!-- 领取提示语 -->
-                  <el-form-item label="领取提示语" required>
-                    <el-input v-model="watchRewardForm.receivePrompt" placeholder="请输入领取提示语"></el-input>
-                  </el-form-item>
-                </el-form>
-              </div>
+                <!-- 观看奖励设置 -->
+                <div v-if="watchRewardForm.enabled" class="section-block">
+                  <div class="section-title">观看奖励设置</div>
 
-              <!-- 红包设置 -->
-              <div v-if="watchRewardForm.enabled" class="section-block">
-                <div class="section-title">红包设置</div>
-                <el-form :model="watchRewardForm" label-width="130px" class="reward-form">
-                  <!-- 根据实施动作类型显示不同的表单内容 -->
-                  <template v-if="watchRewardForm.action === '1'">
-                    <!-- 现金红包设置 -->
-                    <!-- 红包发放方式   1固定金额 2随机金额 -->
-                    <el-form-item label="红包发放方式" required>
-                      <el-radio-group v-model="watchRewardForm.redPacketType">
-                        <el-radio label="1">固定金额</el-radio>
-                        <el-radio label="2">随机金额</el-radio>
-                      </el-radio-group>
+                  <!-- 表单内容 -->
+                  <el-form
+                    :model="watchRewardForm"
+                    :rules="rules"
+                    ref="watchRewardForm"
+                    label-width="130px"
+                  >
+                    <!-- 参与条件 -->
+                    <el-form-item label="参与条件" prop="participateCondition">
+                      <el-radio v-model="watchRewardForm.participateCondition" label="1">
+                        达到指定观看时长
+                      </el-radio>
                     </el-form-item>
 
-                    <!-- 红包金额 -->
-                    <el-form-item label="红包金额" required>
-                      <el-input v-model="watchRewardForm.redPacketAmount" placeholder="请输入红包金额"></el-input>
+                    <!-- 观看时长 -->
+                    <el-form-item label="观看时长" prop="watchDuration">
+                      <el-input v-model="watchRewardForm.watchDuration" placeholder="请输入观看时长" class="duration-input">
+                        <template #append>分钟</template>
+                      </el-input>
                     </el-form-item>
 
-                    <!-- 红包发放数量 -->
-                    <el-form-item label="红包发放数量">
-                      <el-input v-model="watchRewardForm.redPacketCount" placeholder="红包数量+28888人数"></el-input>
+                    <!-- 实施动作 -->
+                    <el-form-item label="实施动作" prop="action">
+                      <el-select v-model="watchRewardForm.action" placeholder="请选择实施动作" style="width: 300px;">
+                        <el-option
+                          v-for="item in actionOptions"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        ></el-option>
+                      </el-select>
                     </el-form-item>
 
-                    <!-- 红包领取方式  1二维码核销 2微信提现-->
-                    <el-form-item label="红包领取方式" required>
-                      <el-radio-group v-model="watchRewardForm.receiveMethod">
-                        <el-radio label="1">二维码领取</el-radio>
-                        <el-radio label="2">微信发放</el-radio>
-                      </el-radio-group>
+                    <!-- 领取提示语 -->
+                    <el-form-item label="领取提示语" prop="receivePrompt">
+                      <el-input v-model="watchRewardForm.receivePrompt" placeholder="请输入领取提示语"></el-input>
                     </el-form-item>
-                  </template>
 
-                  <template v-else>
-                    <!-- 积分红包设置 -->
-                    <!-- 积分值 -->
-                    <el-form-item label="积分值" required>
-                      <el-input v-model="watchRewardForm.scoreAmount" placeholder="请输入积分值" style="width: 300px;"></el-input>
-                    </el-form-item>
+                    <!-- 红包设置 -->
+                    <div>
+                      <div class="section-title">红包设置</div>
+
+                      <!-- 根据实施动作类型显示不同的表单内容 -->
+                      <template v-if="watchRewardForm.action === '1'">
+                        <!-- 现金红包设置 -->
+                        <!-- 红包发放方式   1固定金额 2随机金额 -->
+                        <el-form-item label="红包发放方式" prop="redPacketType">
+                          <el-radio-group v-model="watchRewardForm.redPacketType">
+                            <el-radio label="1">固定金额</el-radio>
+                            <el-radio label="2">随机金额</el-radio>
+                          </el-radio-group>
+                        </el-form-item>
+
+                        <!-- 红包金额 -->
+                        <el-form-item label="红包金额" prop="redPacketAmount">
+                          <el-input v-model="watchRewardForm.redPacketAmount" placeholder="请输入红包金额"></el-input>
+                        </el-form-item>
+
+                        <!-- 红包发放数量 -->
+                        <el-form-item label="红包发放数量" prop="redPacketCount">
+                          <el-input v-model="watchRewardForm.redPacketCount" placeholder="红包数量+28888人数"></el-input>
+                        </el-form-item>
+
+                        <!-- 红包领取方式  1二维码核销 2微信提现 -->
+                        <el-form-item label="红包领取方式" prop="receiveMethod">
+                          <el-radio-group v-model="watchRewardForm.receiveMethod">
+                            <el-radio label="1">二维码领取</el-radio>
+                            <el-radio label="2">微信发放</el-radio>
+                          </el-radio-group>
+                        </el-form-item>
+                      </template>
 
-                    <!-- 最大领取人数 -->
-                    <el-form-item label="最大领取人数" required>
-                      <el-input v-model="watchRewardForm.maxReceivers" placeholder="请输入最大领取人数" style="width: 300px;"></el-input>
-                    </el-form-item>
-                  </template>
-                </el-form>
-              </div>
+                      <template v-else>
+                        <!-- 积分红包设置 -->
+                        <!-- 积分值 -->
+                        <el-form-item label="积分值" prop="scoreAmount">
+                          <el-input
+                            v-model="watchRewardForm.scoreAmount"
+                            placeholder="请输入积分值"                style="width: 300px;"
+                          ></el-input>
+                        </el-form-item>
+
+                        <!-- 最大领取人数 -->
+                        <el-form-item label="最大领取人数" prop="maxReceivers">
+                          <el-input
+                            v-model="watchRewardForm.maxReceivers"
+                            placeholder="请输入最大领取人数"                style="width: 300px;"
+                          ></el-input>
+                        </el-form-item>
+                      </template>
+                    </div>
 
-              <!-- 其他设置 -->
-              <div v-if="watchRewardForm.enabled" class="section-block">
-                <div class="section-title">其他设置</div>
-                <template v-if="watchRewardForm.action === '1'">
-                  <el-form :model="watchRewardForm" label-width="130px" class="reward-form">
-                    <!-- 客服引导  1跟进企业微信 2不设置-->
-                    <el-form-item label="客服引导" required>
-                      <el-radio-group v-model="watchRewardForm.showGuide">
-                        <el-radio label="1">跟进企业微信</el-radio>
-                        <el-radio label="2">不设置</el-radio>
-                      </el-radio-group>
-                    </el-form-item>
-                    <el-form-item label="客服引导语" required>
-                      <el-input
-                        v-model="watchRewardForm.guideText"
-                        placeholder="请输入客服引导语"
-                        style="width: 300px;"
-                      ></el-input>
-                    </el-form-item>
-                  </el-form>
-                </template>
-
-                <template v-else>
-                  <el-form :model="watchRewardForm" label-width="150px" class="reward-form">
-                    <!-- 积分使用引导语 -->
-                    <el-form-item label="积分使用引导语" required>
-                      <el-input
-                        v-model="watchRewardForm.scoreGuideText"
-                        placeholder="请输入积分使用引导语"
-                        style="width: 300px;"
-                      ></el-input>
-                    </el-form-item>
+                    <!-- 其他设置 -->
+                    <div >
+                      <div class="section-title">其他设置</div>
+
+                      <template v-if="watchRewardForm.action === '1'">
+                        <!-- 客服引导  1跟进企业微信 2不设置 -->
+                        <el-form-item label="客服引导" prop="showGuide">
+                          <el-radio-group v-model="watchRewardForm.showGuide">
+                            <el-radio label="1">跟进企业微信</el-radio>
+                            <el-radio label="2">不设置</el-radio>
+                          </el-radio-group>
+                        </el-form-item>
+
+                        <!-- 客服引导语 -->
+                        <el-form-item label="客服引导语" prop="guideText">
+                          <el-input
+                            v-model="watchRewardForm.guideText"
+                            placeholder="请输入客服引导语"                style="width: 300px;"
+                          ></el-input>
+                        </el-form-item>
+                      </template>
 
-                    <!-- 积分使用引导链接 -->
-                    <el-form-item label="积分使用引导链接" required>
-                      <el-input
-                        v-model="watchRewardForm.scoreGuideLink"
-                        placeholder="请输入积分使用引导链接"
-                        style="width: 300px;"
-                      ></el-input>
-                    </el-form-item>
+                      <template v-else>
+                        <!-- 积分使用引导语 -->
+                        <el-form-item label="积分使用引导语" prop="scoreGuideText">
+                          <el-input
+                            v-model="watchRewardForm.scoreGuideText"
+                            placeholder="请输入积分使用引导语"                style="width: 300px;"
+                          ></el-input>
+                        </el-form-item>
+
+                        <!-- 积分使用引导链接 -->
+                        <el-form-item label="积分使用引导链接" prop="scoreGuideLink">
+                          <el-input
+                            v-model="watchRewardForm.scoreGuideLink"
+                            placeholder="请输入积分使用引导链接"                style="width: 300px;"
+                          ></el-input>
+                        </el-form-item>
+
+                        <!-- 引导语 -->
+                        <el-form-item label="引导语" prop="guideText">
+                          <el-input
+                            v-model="watchRewardForm.guideText"
+                            placeholder="请输入引导语"                style="width: 300px;"
+                          ></el-input>
+                        </el-form-item>
+                      </template>
+                    </div>
 
-                    <!-- 引导语 -->
-                    <el-form-item label="引导语" required>
-                      <el-input
-                        v-model="watchRewardForm.guideText"
-                        placeholder="请输入引导语"
-                        style="width: 300px;"
-                      ></el-input>
-                    </el-form-item>
+                    <!-- 保存按钮 -->
+                    <div class="form-actions">
+                      <el-button type="primary" @click="saveWatchReward">保存</el-button>
+                    </div>
                   </el-form>
-                </template>
-              </div>
-
-              <!-- 保存按钮 -->
-              <div class="form-actions">
-                <el-button type="primary" @click="saveWatchReward">保存</el-button>
+                </div>
               </div>
-            </div>
+            </template>
+<!--            <div v-if="marketItem.name == 'watchReward'">-->
+<!--              &lt;!&ndash; 提示信息 &ndash;&gt;-->
+<!--              <div class="tip-message">-->
+<!--                设置观看奖励,用户达到直播观看时长后可领取奖励-->
+<!--              </div>-->
+
+<!--              &lt;!&ndash; 开启观看奖励开关 &ndash;&gt;-->
+<!--              <div class="reward-switch">-->
+<!--                <span class="switch-label">开启观看奖励</span>-->
+<!--                <el-switch v-model="watchRewardForm.enabled"></el-switch>-->
+<!--              </div>-->
+
+<!--              &lt;!&ndash; 观看奖励设置 &ndash;&gt;-->
+<!--              <div v-if="watchRewardForm.enabled" class="section-block">-->
+<!--                <div class="section-title">观看奖励设置</div>-->
+
+<!--                &lt;!&ndash; 表单内容 &ndash;&gt;-->
+<!--                <el-form :model="watchRewardForm" ref="watchRewardForm" label-width="130px" class="reward-form">-->
+<!--                  &lt;!&ndash; 参与条件 &ndash;&gt;-->
+<!--                  <el-form-item label="参与条件" required>-->
+<!--                    <el-radio v-model="watchRewardForm.participateCondition" label="1">-->
+<!--                      达到指定观看时长-->
+<!--                    </el-radio>-->
+<!--                  </el-form-item>-->
+
+<!--                  &lt;!&ndash; 观看时长 &ndash;&gt;-->
+<!--                  <el-form-item label="观看时长" required>-->
+<!--                    <el-input v-model="watchRewardForm.watchDuration" placeholder="请输入观看时长" class="duration-input">-->
+<!--                      <template slot="append">分钟</template>-->
+<!--                    </el-input>-->
+<!--                  </el-form-item>-->
+
+<!--                  &lt;!&ndash; 实施动作 &ndash;&gt;-->
+<!--                  <el-form-item label="实施动作" required>-->
+<!--                    <el-select v-model="watchRewardForm.action" placeholder="请选择实施动作" style="width: 300px;">-->
+<!--                      <el-option-->
+<!--                        v-for="item in actionOptions"-->
+<!--                        :key="item.value"-->
+<!--                        :label="item.label"-->
+<!--                        :value="item.value">-->
+<!--                      </el-option>-->
+<!--                    </el-select>-->
+<!--                  </el-form-item>-->
+
+<!--                  &lt;!&ndash; 领取提示语 &ndash;&gt;-->
+<!--                  <el-form-item label="领取提示语" required>-->
+<!--                    <el-input v-model="watchRewardForm.receivePrompt" placeholder="请输入领取提示语"></el-input>-->
+<!--                  </el-form-item>-->
+<!--                </el-form>-->
+<!--              </div>-->
+
+<!--              &lt;!&ndash; 红包设置 &ndash;&gt;-->
+<!--              <div v-if="watchRewardForm.enabled" class="section-block">-->
+<!--                <div class="section-title">红包设置</div>-->
+<!--                <el-form :model="watchRewardForm" label-width="130px" class="reward-form">-->
+<!--                  &lt;!&ndash; 根据实施动作类型显示不同的表单内容 &ndash;&gt;-->
+<!--                  <template v-if="watchRewardForm.action === '1'">-->
+<!--                    &lt;!&ndash; 现金红包设置 &ndash;&gt;-->
+<!--                    &lt;!&ndash; 红包发放方式   1固定金额 2随机金额 &ndash;&gt;-->
+<!--                    <el-form-item label="红包发放方式" required>-->
+<!--                      <el-radio-group v-model="watchRewardForm.redPacketType">-->
+<!--                        <el-radio label="1">固定金额</el-radio>-->
+<!--                        <el-radio label="2">随机金额</el-radio>-->
+<!--                      </el-radio-group>-->
+<!--                    </el-form-item>-->
+
+<!--                    &lt;!&ndash; 红包金额 &ndash;&gt;-->
+<!--                    <el-form-item label="红包金额" required>-->
+<!--                      <el-input v-model="watchRewardForm.redPacketAmount" placeholder="请输入红包金额"></el-input>-->
+<!--                    </el-form-item>-->
+
+<!--                    &lt;!&ndash; 红包发放数量 &ndash;&gt;-->
+<!--                    <el-form-item label="红包发放数量">-->
+<!--                      <el-input v-model="watchRewardForm.redPacketCount" placeholder="红包数量+28888人数"></el-input>-->
+<!--                    </el-form-item>-->
+
+<!--                    &lt;!&ndash; 红包领取方式  1二维码核销 2微信提现&ndash;&gt;-->
+<!--                    <el-form-item label="红包领取方式" required>-->
+<!--                      <el-radio-group v-model="watchRewardForm.receiveMethod">-->
+<!--                        <el-radio label="1">二维码领取</el-radio>-->
+<!--                        <el-radio label="2">微信发放</el-radio>-->
+<!--                      </el-radio-group>-->
+<!--                    </el-form-item>-->
+<!--                  </template>-->
+
+<!--                  <template v-else>-->
+<!--                    &lt;!&ndash; 积分红包设置 &ndash;&gt;-->
+<!--                    &lt;!&ndash; 积分值 &ndash;&gt;-->
+<!--                    <el-form-item label="积分值" required>-->
+<!--                      <el-input v-model="watchRewardForm.scoreAmount" placeholder="请输入积分值" style="width: 300px;"></el-input>-->
+<!--                    </el-form-item>-->
+
+<!--                    &lt;!&ndash; 最大领取人数 &ndash;&gt;-->
+<!--                    <el-form-item label="最大领取人数" required>-->
+<!--                      <el-input v-model="watchRewardForm.maxReceivers" placeholder="请输入最大领取人数" style="width: 300px;"></el-input>-->
+<!--                    </el-form-item>-->
+<!--                  </template>-->
+<!--                </el-form>-->
+<!--              </div>-->
+
+<!--              &lt;!&ndash; 其他设置 &ndash;&gt;-->
+<!--              <div v-if="watchRewardForm.enabled" class="section-block">-->
+<!--                <div class="section-title">其他设置</div>-->
+<!--                <template v-if="watchRewardForm.action === '1'">-->
+<!--                  <el-form :model="watchRewardForm" label-width="130px" class="reward-form">-->
+<!--                    &lt;!&ndash; 客服引导  1跟进企业微信 2不设置&ndash;&gt;-->
+<!--                    <el-form-item label="客服引导" required>-->
+<!--                      <el-radio-group v-model="watchRewardForm.showGuide">-->
+<!--                        <el-radio label="1">跟进企业微信</el-radio>-->
+<!--                        <el-radio label="2">不设置</el-radio>-->
+<!--                      </el-radio-group>-->
+<!--                    </el-form-item>-->
+<!--                    <el-form-item label="客服引导语" required>-->
+<!--                      <el-input-->
+<!--                        v-model="watchRewardForm.guideText"-->
+<!--                        placeholder="请输入客服引导语"-->
+<!--                        style="width: 300px;"-->
+<!--                      ></el-input>-->
+<!--                    </el-form-item>-->
+<!--                  </el-form>-->
+<!--                </template>-->
+
+<!--                <template v-else>-->
+<!--                  <el-form :model="watchRewardForm" label-width="150px" class="reward-form">-->
+<!--                    &lt;!&ndash; 积分使用引导语 &ndash;&gt;-->
+<!--                    <el-form-item label="积分使用引导语" required>-->
+<!--                      <el-input-->
+<!--                        v-model="watchRewardForm.scoreGuideText"-->
+<!--                        placeholder="请输入积分使用引导语"-->
+<!--                        style="width: 300px;"-->
+<!--                      ></el-input>-->
+<!--                    </el-form-item>-->
+
+<!--                    &lt;!&ndash; 积分使用引导链接 &ndash;&gt;-->
+<!--                    <el-form-item label="积分使用引导链接" required>-->
+<!--                      <el-input-->
+<!--                        v-model="watchRewardForm.scoreGuideLink"-->
+<!--                        placeholder="请输入积分使用引导链接"-->
+<!--                        style="width: 300px;"-->
+<!--                      ></el-input>-->
+<!--                    </el-form-item>-->
+
+<!--                    &lt;!&ndash; 引导语 &ndash;&gt;-->
+<!--                    <el-form-item label="引导语" required>-->
+<!--                      <el-input-->
+<!--                        v-model="watchRewardForm.guideText"-->
+<!--                        placeholder="请输入引导语"-->
+<!--                        style="width: 300px;"-->
+<!--                      ></el-input>-->
+<!--                    </el-form-item>-->
+<!--                  </el-form>-->
+<!--                </template>-->
+<!--              </div>-->
+
+<!--              &lt;!&ndash; 保存按钮 &ndash;&gt;-->
+<!--              <div class="form-actions">-->
+<!--                <el-button type="primary" @click="saveWatchReward">保存</el-button>-->
+<!--              </div>-->
+<!--            </div>-->
             <!-- 观看奖励 end -->
 
             <!-- 答题 start -->
@@ -338,7 +504,8 @@ import {
   addLiveQuestionLive,
   deleteLiveQuestionLive,
   getConfig,
-  addConfig
+  addConfig,
+  updateConfig
 } from '@/api/live/liveQuestionLive'
 export default {
   name: 'LiveConfig',
@@ -381,7 +548,8 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        title: null
+        title: null,
+        liveId: null
       },
       questionLiveList: [],
       questionTotal: 0,
@@ -390,7 +558,38 @@ export default {
         pageSize: 10,
         liveId: null
       },
+      rules:{
+        participateCondition:[
+          { required: true, message: '请选择参与条件', trigger: 'blur'}
+        ],
+        watchDuration:[
+          { required: true, message: '请输入观看时长', trigger: 'blur'}
+        ],
+        action:[
+          { required: true, message: '请选择实施动作', trigger: 'blur'}
+        ],
+        receivePrompt:[
+          { required: true, message: '请输入领取提示语', trigger: 'blur'}
+        ],
+        redPacketType:[
+          { required: true, message: '请选择红包发放方式', trigger: 'blur'}
+        ],
+        redPacketAmount:[
+          { required: true, message: '请输入红包金额', trigger: 'blur'}
+        ],
+        receiveMethod:[
+          { required: true, message: '请选择红包领取方式', trigger: 'blur'}
+        ],
+        guideText:[
+          { required: true, message: '请输入客服引导语', trigger: 'blur'}
+        ],
+        showGuide:[
+          { required: true, message: '请选择是否显示客服引导', trigger: 'blur'}
+        ]
+      },
       watchRewardForm: {
+        id: null,
+        liveId: null,
         // 是否启用观看奖励
         enabled: false,
         // 参与条件
@@ -439,14 +638,15 @@ export default {
     this.liveId = this.$route.params.liveId
     this.queryParams.liveId = this.liveId
     this.questionParams.liveId = this.liveId
-    this.getLiveQuestionLiveList()
-    // this.getLiveConfig();
+    this.watchRewardForm.liveId = this.liveId
+    // this.getLiveQuestionLiveList()
+    this.getLiveConfig();
   },
   methods: {
     getLiveConfig(){
       getConfig(this.liveId).then(response => {
-        if(response.data != null){
-          this.watchRewardForm = response.data
+        if(response.code == 200){
+          this.watchRewardForm = JSON.parse(response.data)
         }
       })
     },
@@ -538,14 +738,24 @@ export default {
       table.toggleRowSelection(row, !isSelected)
     },
     saveWatchReward() {
-      this.watchRewardForm.liveId = this.liveId
-      // 调用保存观看奖励接口
-      // 实现保存逻辑
-      addConfig(this.watchRewardForm).then(res => {
-        if (res.code == 200) {
-
+      this.$refs["watchRewardForm"][0].validate(valid => {
+        if (valid) {
+          if (this.watchRewardForm.id == null) {
+            // 调用保存观看奖励接口
+            // 实现保存逻辑
+            addConfig(this.watchRewardForm).then(res => {
+              if (res.code == 200) {
+                this.msgSuccess("修改成功");
+              }
+            })
+          } else {
+            updateConfig(this.watchRewardForm).then(response => {
+              this.msgSuccess("修改成功");
+            });
+          }
         }
       })
+
     }
   }
 }

+ 6 - 6
src/views/live/words/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="需要过滤的敏感词" prop="word">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="敏感词" prop="word">
         <el-input
           v-model="queryParams.word"
           placeholder="请输入需要过滤的敏感词"
@@ -10,7 +10,7 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="敏感词添加时间" prop="createdAt">
+      <el-form-item label="敏感词添加时间" prop="createdAt" label-width="120px">
         <el-date-picker clearable size="small"
           v-model="queryParams.createdAt"
           type="date"
@@ -110,11 +110,11 @@
 
     <!-- 添加或修改直播间敏感词过滤对话框 -->
     <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="需要过滤的敏感词" prop="word">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="敏感词" prop="word">
           <el-input v-model="form.word" placeholder="请输入需要过滤的敏感词" />
         </el-form-item>
-        <el-form-item label="敏感词添加时间" prop="createdAt">
+        <el-form-item label="敏感词添加时间" prop="createdAt" >
           <el-date-picker clearable size="small"
             v-model="form.createdAt"
             type="date"