|
|
@@ -6,7 +6,7 @@
|
|
|
<el-option v-for="(item,index) in redStatusOptions" :key="item.dictValue+index" :label="item.dictLabel" :value="item.dictValue" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="红包类型" prop="redType">
|
|
|
+ <el-form-item label="红包类型" prop="redType" v-if="!isPasswordBagMode">
|
|
|
<el-select v-model="queryParams.redType" placeholder="请选择红包类型" clearable size="small">
|
|
|
<el-option v-for="(item,index) in redTypeOptions" :key="item.dictValue+index" :label="item.dictLabel" :value="item.dictValue" />
|
|
|
</el-select>
|
|
|
@@ -21,7 +21,7 @@
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="红包标题" prop="desc">
|
|
|
+ <el-form-item :label="isPasswordBagMode ? '标题' : '红包标题'" prop="desc">
|
|
|
<el-input
|
|
|
v-model="queryParams.desc"
|
|
|
placeholder="请输入描述"
|
|
|
@@ -30,22 +30,6 @@
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
-<!-- <el-form-item label="创建日期" prop="createTime">-->
|
|
|
-<!-- <el-date-picker clearable size="small"-->
|
|
|
-<!-- v-model="queryParams.createTime"-->
|
|
|
-<!-- type="date"-->
|
|
|
-<!-- value-format="yyyy-MM-dd"-->
|
|
|
-<!-- placeholder="选择创建日期">-->
|
|
|
-<!-- </el-date-picker>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- <el-form-item label="修改日期" prop="updateTime">-->
|
|
|
-<!-- <el-date-picker clearable size="small"-->
|
|
|
-<!-- v-model="queryParams.updateTime"-->
|
|
|
-<!-- type="date"-->
|
|
|
-<!-- value-format="yyyy-MM-dd"-->
|
|
|
-<!-- placeholder="选择修改日期">-->
|
|
|
-<!-- </el-date-picker>-->
|
|
|
-<!-- </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>
|
|
|
@@ -55,7 +39,6 @@
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
type="primary"
|
|
|
plain
|
|
|
icon="el-icon-plus"
|
|
|
@@ -64,20 +47,19 @@
|
|
|
v-hasPermi="['live:liveRedConf:add']"
|
|
|
>新增</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
+ <el-col :span="1.5" v-if="!isPasswordBagMode">
|
|
|
<el-button
|
|
|
type="success"
|
|
|
plain
|
|
|
icon="el-icon-edit"
|
|
|
size="mini"
|
|
|
- :disabled="single || isViewOnly"
|
|
|
+ :disabled="single"
|
|
|
@click="handleUpdate"
|
|
|
v-hasPermi="['live:liveRedConf:edit']"
|
|
|
>修改</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
+ <el-col :span="1.5" v-if="!isPasswordBagMode">
|
|
|
<el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
type="warning"
|
|
|
plain
|
|
|
icon="el-icon-download"
|
|
|
@@ -91,73 +73,100 @@
|
|
|
</el-row>
|
|
|
|
|
|
<el-table border v-loading="loading" :data="liveRedConfList" @selection-change="handleSelectionChange">
|
|
|
- <el-table-column type="selection" width="55" align="center" />
|
|
|
+ <el-table-column type="selection" width="55" align="center" v-if="!isPasswordBagMode" />
|
|
|
<el-table-column label="红包ID" align="center" prop="redId" />
|
|
|
<el-table-column label="红包状态" align="center" prop="redStatus" :formatter="redStatusFormatter"/>
|
|
|
- <el-table-column label="有效时间 单位:分" align="center" prop="duration" />
|
|
|
- <el-table-column label="红包类型" align="center" prop="redType" :formatter="redTypeFormatter"/>
|
|
|
+ <el-table-column :label="isPasswordBagMode ? '持续时间(分)' : '有效时间 单位:分'" align="center" prop="duration" />
|
|
|
+ <el-table-column label="发放类型" align="center" prop="distributeType" :formatter="distributeTypeFormatter" v-if="!isPasswordBagMode" />
|
|
|
+ <el-table-column label="红包类型" align="center" prop="redType" :formatter="redTypeFormatter" v-if="!isPasswordBagMode"/>
|
|
|
+ <el-table-column label="口令" align="center" prop="passwordCmd" v-if="isPasswordBagMode" :show-overflow-tooltip="true" />
|
|
|
<el-table-column label="直播间ID" align="center" prop="liveId" />
|
|
|
- <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" />
|
|
|
+ <el-table-column :label="isPasswordBagMode ? '奖励积分' : '芳华币数量'" align="center" prop="redNum" />
|
|
|
+ <el-table-column :label="isPasswordBagMode ? '奖励份数' : '可中奖份量'" align="center" prop="totalLots" />
|
|
|
+ <el-table-column label="参与人数" align="center" prop="joinCount" v-if="isPasswordBagMode" />
|
|
|
+ <el-table-column label="实际发放奖励份量" align="center" prop="totalSend" v-if="!isPasswordBagMode" />
|
|
|
+ <el-table-column :label="isPasswordBagMode ? '标题' : '红包标题'" align="center" prop="desc" />
|
|
|
<el-table-column label="创建日期" align="center" prop="createTime" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="修改日期" align="center" prop="updateTime" width="120">
|
|
|
+ <el-table-column label="修改日期" align="center" prop="updateTime" width="120" v-if="!isPasswordBagMode">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="handleUpdate(scope.row)"
|
|
|
- v-hasPermi="['live:liveRedConf:edit']"
|
|
|
- style="margin-left: 10px"
|
|
|
- >修改</el-button>
|
|
|
- <!-- 开始 -->
|
|
|
- <el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleStatusChange(scope.row,'1')"
|
|
|
- v-hasPermi="['live:liveRedConf:edit']"
|
|
|
- >开始</el-button>
|
|
|
- <!-- 暂停 -->
|
|
|
- <el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleStatusChange(scope.row,'3')"
|
|
|
- v-hasPermi="['live:liveRedConf:edit']"
|
|
|
- >暂停</el-button>
|
|
|
- <!-- 结算 -->
|
|
|
- <el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleStatusChange(scope.row,'2')"
|
|
|
- v-hasPermi="['live:liveRedConf:edit']"
|
|
|
- >结算</el-button>
|
|
|
-
|
|
|
- <el-button
|
|
|
- :disabled="isViewOnly"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row)"
|
|
|
- v-hasPermi="['live:liveRedConf:edit']"
|
|
|
- >删除</el-button>
|
|
|
+ <template v-if="isPasswordBagMode">
|
|
|
+ <el-button
|
|
|
+ v-if="String(scope.row.redStatus) === '0'"
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="handleStatusChange(scope.row,'1')"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >开始</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="String(scope.row.redStatus) === '0'"
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleUpdate(scope.row)"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >修改</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="String(scope.row.redStatus) === '1'"
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="handleStatusChange(scope.row,'2')"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >结束</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDelete(scope.row)"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >删除</el-button>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleUpdate(scope.row)"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ style="margin-left: 10px"
|
|
|
+ >修改</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleStatusChange(scope.row,'1')"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >开始</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleStatusChange(scope.row,'3')"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >暂停</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleStatusChange(scope.row,'2')"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >结算</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDelete(scope.row)"
|
|
|
+ v-hasPermi="['live:liveRedConf:edit']"
|
|
|
+ >删除</el-button>
|
|
|
+ </template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
@@ -171,27 +180,37 @@
|
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改直播红包记录配置对话框 -->
|
|
|
- <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="duration">
|
|
|
- <el-input v-model="form.duration" placeholder="请输入红包有效时间 单位:分" />
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="520px" append-to-body>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
|
|
+ <el-form-item label="发放类型" prop="distributeType" v-if="!isPasswordBagMode">
|
|
|
+ <el-radio-group v-model="form.distributeType" :disabled="form.redId != null">
|
|
|
+ <el-radio :label="1">普通均分</el-radio>
|
|
|
+ <el-radio :label="2">拼手气</el-radio>
|
|
|
+ <el-radio :label="3">口令福袋</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="口令" prop="passwordCmd" v-if="showPasswordFields">
|
|
|
+ <el-input
|
|
|
+ v-model="form.passwordCmd"
|
|
|
+ maxlength="30"
|
|
|
+ show-word-limit
|
|
|
+ placeholder="请输入口令,最多30字"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="showPasswordFields ? '持续时间' : '持续时间'" prop="duration">
|
|
|
+ <el-input v-model="form.duration" :placeholder="showPasswordFields ? '请输入持续时间(分)' : '请输入红包有效时间 单位:分'" />
|
|
|
</el-form-item>
|
|
|
-<!-- <el-form-item label="红包类型" prop="redType">
|
|
|
- <el-select v-model="form.redType" placeholder="请选择红包类型">
|
|
|
- <el-option v-for="(item,index) in redTypeOptions" :key="item.dictValue+index" :label="item.dictLabel" :value="item.dictValue" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>-->
|
|
|
<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="showPasswordFields ? '奖励积分' : '积分'" prop="redNum">
|
|
|
+ <el-input v-model="form.redNum" :placeholder="showPasswordFields ? '请输入奖励积分' : '请输入积分数量'" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="中奖份量" prop="totalLots">
|
|
|
- <el-input v-model="form.totalLots" placeholder="请输入可中奖份量" />
|
|
|
+ <el-form-item :label="showPasswordFields ? '奖励份数' : '中奖份量'" prop="totalLots">
|
|
|
+ <el-input v-model="form.totalLots" :placeholder="showPasswordFields ? '请输入奖励份数' : '请输入可中奖份量'" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="红包标题" prop="desc">
|
|
|
- <el-input v-model="form.desc" placeholder="请输入红包描述" />
|
|
|
+ <el-form-item :label="showPasswordFields ? '标题' : '红包标题'" prop="desc">
|
|
|
+ <el-input v-model="form.desc" :placeholder="showPasswordFields ? '请输入标题' : '请输入红包描述'" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
@@ -206,19 +225,36 @@
|
|
|
import { listLiveRedConf, getLiveRedConf, delLiveRedConf, addLiveRedConf, updateLiveRedConf, exportLiveRedConf } from "@/api/live/liveRedConf";
|
|
|
|
|
|
export default {
|
|
|
- props:{
|
|
|
- isViewOnly: {
|
|
|
- type: Boolean,
|
|
|
- default: false,
|
|
|
+ name: "LiveRedConf",
|
|
|
+ props: {
|
|
|
+ forceDistributeType: {
|
|
|
+ type: Number,
|
|
|
+ default: null
|
|
|
}
|
|
|
},
|
|
|
- name: "LiveRedConf",
|
|
|
data() {
|
|
|
+ const validatePassword = (rule, value, callback) => {
|
|
|
+ if (!this.showPasswordFields) {
|
|
|
+ callback()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (!value || !String(value).trim()) {
|
|
|
+ callback(new Error('口令不能为空'))
|
|
|
+ } else if (String(value).trim().length > 30) {
|
|
|
+ callback(new Error('口令不能超过30字'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
return {
|
|
|
//字典
|
|
|
- // redStatusOptions: [{label:"未发放",value:0},{label:"发放中",value:1},{label:"已结束",value:2},{label:"暂停",value:3}],
|
|
|
redStatusOptions: [],
|
|
|
redTypeOptions: [],
|
|
|
+ distributeTypeMap: {
|
|
|
+ 1: '普通均分',
|
|
|
+ 2: '拼手气',
|
|
|
+ 3: '口令福袋'
|
|
|
+ },
|
|
|
canLiveId:false,
|
|
|
//parentLiveId
|
|
|
parentLiveId : null,
|
|
|
@@ -250,6 +286,7 @@ export default {
|
|
|
redType: null,
|
|
|
liveId: null,
|
|
|
desc: null,
|
|
|
+ distributeType: null,
|
|
|
createTime: null,
|
|
|
updateTime: null,
|
|
|
},
|
|
|
@@ -257,28 +294,39 @@ export default {
|
|
|
form: {},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
+ distributeType: [
|
|
|
+ { required: true, message: "发放类型不能为空", trigger: "change" }
|
|
|
+ ],
|
|
|
+ passwordCmd: [
|
|
|
+ { validator: validatePassword, trigger: "blur" }
|
|
|
+ ],
|
|
|
duration: [
|
|
|
{ required: true, message: "有效时间 单位:分不能为空", trigger: "blur" }
|
|
|
],
|
|
|
- /* redType: [
|
|
|
- { required: true, message: "红包类型不能为空", trigger: "change" }
|
|
|
- ], */
|
|
|
liveId: [
|
|
|
{ required: true, message: "直播间ID不能为空", trigger: "blur" }
|
|
|
],
|
|
|
redNum: [
|
|
|
- { required: true, message: "芳华币数量不能为空", trigger: "blur" }
|
|
|
+ { required: true, message: "积分数量不能为空", trigger: "blur" }
|
|
|
],
|
|
|
totalLots: [
|
|
|
- { required: true, message: "可中奖份量不能为空", trigger: "blur" }
|
|
|
+ { required: true, message: "份量不能为空", trigger: "blur" }
|
|
|
],
|
|
|
desc: [
|
|
|
{ required: true, message: "描述不能为空", trigger: "blur" }
|
|
|
],
|
|
|
},
|
|
|
-
|
|
|
+ liveId: null,
|
|
|
};
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ isPasswordBagMode() {
|
|
|
+ return this.forceDistributeType === 3
|
|
|
+ },
|
|
|
+ showPasswordFields() {
|
|
|
+ return this.isPasswordBagMode || Number(this.form.distributeType) === 3
|
|
|
+ }
|
|
|
+ },
|
|
|
watch: {
|
|
|
// 监听路由的 query 参数变化
|
|
|
'$route.query': {
|
|
|
@@ -290,6 +338,9 @@ export default {
|
|
|
}
|
|
|
this.queryParams.liveId = this.liveId;
|
|
|
this.parentLiveId = this.liveId;
|
|
|
+ if (this.isPasswordBagMode) {
|
|
|
+ this.queryParams.distributeType = 3
|
|
|
+ }
|
|
|
if(this.queryParams.liveId){
|
|
|
this.form.liveId = this.parentLiveId;
|
|
|
//设置查询条件直播间ID不可修改
|
|
|
@@ -305,15 +356,15 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
+ if (this.isPasswordBagMode) {
|
|
|
+ this.queryParams.distributeType = 3
|
|
|
+ }
|
|
|
this.getDicts("sys_live_red_status").then(response => {
|
|
|
this.redStatusOptions = response.data;
|
|
|
});
|
|
|
this.getDicts("sys_live_red_type").then(response => {
|
|
|
this.redTypeOptions = response.data;
|
|
|
});
|
|
|
- },
|
|
|
- computed: {
|
|
|
-
|
|
|
},
|
|
|
methods: {
|
|
|
handleStatusChange(row, status) {
|
|
|
@@ -359,8 +410,10 @@ export default {
|
|
|
redType: row.redType,
|
|
|
redNum: row.redNum,
|
|
|
liveId: this.liveId,
|
|
|
- status: status,
|
|
|
- duration: row.duration
|
|
|
+ duration: row.duration,
|
|
|
+ distributeType: row.distributeType,
|
|
|
+ passwordCmd: row.passwordCmd,
|
|
|
+ status: status
|
|
|
};
|
|
|
updateLiveRedConf(doRedParam).then(response => {
|
|
|
if(response.code === 200){
|
|
|
@@ -369,15 +422,13 @@ export default {
|
|
|
data: doRedParam
|
|
|
};
|
|
|
this.$store.state.liveWs[this.liveId].send(JSON.stringify(msg));
|
|
|
+
|
|
|
this.msgSuccess("修改成功");
|
|
|
- console.log(1)
|
|
|
}else{
|
|
|
this.msgError(response.msg);
|
|
|
- console.log(2)
|
|
|
}
|
|
|
this.open = false;
|
|
|
this.getList();
|
|
|
- console.log(3)
|
|
|
});
|
|
|
},
|
|
|
redStatusFormatter(row, column) {
|
|
|
@@ -386,9 +437,15 @@ export default {
|
|
|
redTypeFormatter(row, column) {
|
|
|
return this.selectDictLabel(this.redTypeOptions, row.redType);
|
|
|
},
|
|
|
+ distributeTypeFormatter(row) {
|
|
|
+ return this.distributeTypeMap[row.distributeType] || this.distributeTypeMap[1]
|
|
|
+ },
|
|
|
/** 查询直播红包记录配置列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
|
+ if (this.isPasswordBagMode) {
|
|
|
+ this.queryParams.distributeType = 3
|
|
|
+ }
|
|
|
listLiveRedConf(this.queryParams).then(response => {
|
|
|
this.liveRedConfList = response.rows;
|
|
|
this.total = response.total;
|
|
|
@@ -412,6 +469,8 @@ export default {
|
|
|
totalLots: null,
|
|
|
totalSend: null,
|
|
|
desc: null,
|
|
|
+ distributeType: this.isPasswordBagMode ? 3 : 1,
|
|
|
+ passwordCmd: null,
|
|
|
createTime: null,
|
|
|
updateTime: null,
|
|
|
createBy: null,
|
|
|
@@ -436,6 +495,9 @@ export default {
|
|
|
resetQuery() {
|
|
|
this.resetForm("queryForm");
|
|
|
this.checkParentLiveId();
|
|
|
+ if (this.isPasswordBagMode) {
|
|
|
+ this.queryParams.distributeType = 3
|
|
|
+ }
|
|
|
this.handleQuery();
|
|
|
},
|
|
|
// 多选框选中数据
|
|
|
@@ -448,7 +510,7 @@ export default {
|
|
|
handleAdd() {
|
|
|
this.reset();
|
|
|
this.open = true;
|
|
|
- this.title = "添加直播红包记录配置";
|
|
|
+ this.title = this.isPasswordBagMode ? "添加口令福袋" : "添加直播红包记录配置";
|
|
|
},
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
@@ -461,23 +523,33 @@ export default {
|
|
|
const redId = row.redId || this.ids
|
|
|
getLiveRedConf(redId).then(response => {
|
|
|
this.form = response.data;
|
|
|
+ if (this.form.distributeType == null) {
|
|
|
+ this.form.distributeType = 1
|
|
|
+ }
|
|
|
this.open = true;
|
|
|
- this.title = "修改直播红包记录配置";
|
|
|
+ this.title = this.isPasswordBagMode ? "修改口令福袋" : "修改直播红包记录配置";
|
|
|
});
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- if (this.form.redId != null) {
|
|
|
- updateLiveRedConf(this.form).then(response => {
|
|
|
+ const data = {
|
|
|
+ ...this.form,
|
|
|
+ distributeType: this.isPasswordBagMode ? 3 : this.form.distributeType,
|
|
|
+ passwordCmd: this.showPasswordFields && this.form.passwordCmd
|
|
|
+ ? String(this.form.passwordCmd).trim()
|
|
|
+ : this.form.passwordCmd
|
|
|
+ }
|
|
|
+ if (data.redId != null) {
|
|
|
+ updateLiveRedConf(data).then(response => {
|
|
|
this.msgSuccess("修改成功");
|
|
|
this.open = false;
|
|
|
this.getList();
|
|
|
});
|
|
|
} else {
|
|
|
- this.form.redType = 1;
|
|
|
- addLiveRedConf(this.form).then(response => {
|
|
|
+ data.redType = 1;
|
|
|
+ addLiveRedConf(data).then(response => {
|
|
|
this.msgSuccess("新增成功");
|
|
|
this.open = false;
|
|
|
this.getList();
|
|
|
@@ -488,8 +560,8 @@ export default {
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
|
- //如果状态不为0,则不能删除
|
|
|
- if (row.redStatus+"" !== "0") {
|
|
|
+ // 口令福袋允许按状态删除;普通红包仅未发放可删
|
|
|
+ if (!this.isPasswordBagMode && row.redStatus+"" !== "0") {
|
|
|
this.msgError("只能删除未发放的红包");
|
|
|
return;
|
|
|
}
|
|
|
@@ -503,16 +575,20 @@ export default {
|
|
|
}).then(() => {
|
|
|
this.getList();
|
|
|
this.msgSuccess("删除成功");
|
|
|
- const msg = {
|
|
|
- cmd: 'red',
|
|
|
- data: {
|
|
|
- redId: row.redId,
|
|
|
- status: 2,
|
|
|
- totalLots: row.totalLots,
|
|
|
- duration: row.duration
|
|
|
- }
|
|
|
- };
|
|
|
- this.$store.state.liveWs[this.liveId].send(JSON.stringify(msg));
|
|
|
+ if (this.$store.state.liveWs[this.liveId]) {
|
|
|
+ const msg = {
|
|
|
+ cmd: 'red',
|
|
|
+ data: {
|
|
|
+ redId: row.redId,
|
|
|
+ redStatus: 2,
|
|
|
+ totalLots: row.totalLots,
|
|
|
+ duration: row.duration,
|
|
|
+ distributeType: row.distributeType,
|
|
|
+ passwordCmd: row.passwordCmd
|
|
|
+ }
|
|
|
+ };
|
|
|
+ this.$store.state.liveWs[this.liveId].send(JSON.stringify(msg));
|
|
|
+ }
|
|
|
}).catch(() => {});
|
|
|
},
|
|
|
/** 导出按钮操作 */
|