Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -42,3 +42,10 @@ export function delImLiveActivity(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function endImLiveActivity(id) {
|
||||
return request({
|
||||
url: '/service/imLiveActivity/end/' + id,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@@ -107,7 +107,7 @@
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="用户ID" align="center" prop="userId" /> -->
|
||||
<el-table-column label="用户ID" align="center" prop="userId" />
|
||||
<el-table-column label="用户昵称" align="center" prop="nickName" />
|
||||
<el-table-column
|
||||
label="上级邀请码"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="background-color-fff padding-20 border-radius-8px margin-bottom-20">
|
||||
<div
|
||||
class="background-color-fff padding-20 border-radius-8px margin-bottom-20"
|
||||
>
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
@@ -73,13 +75,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div class="background-color-fff padding-20 border-radius-8px margin-bottom-20">
|
||||
<div
|
||||
class="background-color-fff padding-20 border-radius-8px margin-bottom-20"
|
||||
>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
@@ -134,7 +140,9 @@
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<div class="background-color-fff padding-20 border-radius-8px margin-bottom-20">
|
||||
<div
|
||||
class="background-color-fff padding-20 border-radius-8px margin-bottom-20"
|
||||
>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="imLiveActivityList"
|
||||
@@ -148,12 +156,12 @@
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
row.activityType == 1
|
||||
? '签到'
|
||||
? "签到"
|
||||
: row.activityType == 2
|
||||
? '抽奖'
|
||||
? "抽奖"
|
||||
: row.activityType == 3
|
||||
? '答题'
|
||||
: '红包'
|
||||
? "答题"
|
||||
: "红包"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -164,23 +172,37 @@
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
row.status == 1
|
||||
? '进行中'
|
||||
? "进行中"
|
||||
: row.status == 2
|
||||
? '已结束'
|
||||
? "已结束"
|
||||
: row.status == 3
|
||||
? '已取消'
|
||||
: '未开始'
|
||||
? "已取消"
|
||||
: "未开始"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动开始时间" align="center" prop="startTime" width="180">
|
||||
<el-table-column
|
||||
label="活动开始时间"
|
||||
align="center"
|
||||
prop="startTime"
|
||||
width="180"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
<span>{{
|
||||
parseTime(scope.row.startTime, "{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动结束时间" align="center" prop="endTime" width="180">
|
||||
<el-table-column
|
||||
label="活动结束时间"
|
||||
align="center"
|
||||
prop="endTime"
|
||||
width="180"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
<span>{{
|
||||
parseTime(scope.row.endTime, "{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="活动持续时长" align="center" prop="duration" /> -->
|
||||
@@ -188,30 +210,45 @@
|
||||
<el-table-column label="创建人类型" align="center" prop="creatorType">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
row.creatorType == 1 ? '主播' : row.creatorType == 2 ? '管理员' : '系统'
|
||||
row.creatorType == 1
|
||||
? "主播"
|
||||
: row.creatorType == 2
|
||||
? "管理员"
|
||||
: "系统"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否可重复参与" align="center" prop="isRepeat">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_general_yes_no" :value="scope.row.isRepeat" />
|
||||
<dict-tag
|
||||
:options="sys_general_yes_no"
|
||||
:value="scope.row.isRepeat"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="重复间隔" align="center" prop="repeatInterval" /> -->
|
||||
<el-table-column label="最大参与人数" align="center" prop="maxParticipants" />
|
||||
<el-table-column label="当前参与人数" align="center" prop="participantCount" />
|
||||
<el-table-column
|
||||
label="最大参与人数"
|
||||
align="center"
|
||||
prop="maxParticipants"
|
||||
/>
|
||||
<el-table-column
|
||||
label="当前参与人数"
|
||||
align="center"
|
||||
prop="participantCount"
|
||||
/>
|
||||
<el-table-column label="奖励类型" align="center" prop="rewardType">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
row.rewardType == 1
|
||||
? '积分'
|
||||
? "积分"
|
||||
: row.rewardType == 2
|
||||
? '虚拟币'
|
||||
? "虚拟币"
|
||||
: row.rewardType == 3
|
||||
? '实物'
|
||||
? "实物"
|
||||
: row.rewardType == 4
|
||||
? '勋章'
|
||||
: '特权'
|
||||
? "勋章"
|
||||
: "特权"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -235,6 +272,16 @@
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="warning"
|
||||
icon="Edit"
|
||||
v-if="scope.row.status === 1"
|
||||
@click="handleEndActivity(scope.row)"
|
||||
v-hasPermi="['service:imLiveActivity:edit']"
|
||||
>
|
||||
结束活动
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
@@ -276,13 +323,25 @@
|
||||
label-position="top"
|
||||
>
|
||||
<el-form-item label="活动ID" prop="activityId">
|
||||
<el-input v-model="form.activityId" disabled placeholder="请输入活动ID" />
|
||||
<el-input
|
||||
v-model="form.activityId"
|
||||
disabled
|
||||
placeholder="请输入活动ID"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="直播间ID" prop="roomId">
|
||||
<el-input v-model="form.roomId" disabled placeholder="请输入直播间ID" />
|
||||
<el-input
|
||||
v-model="form.roomId"
|
||||
disabled
|
||||
placeholder="请输入直播间ID"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动标题" prop="title">
|
||||
<el-input v-model="form.title" disabled placeholder="请输入活动标题" />
|
||||
<el-input
|
||||
v-model="form.title"
|
||||
disabled
|
||||
placeholder="请输入活动标题"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="活动描述" prop="description">
|
||||
<el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
|
||||
@@ -314,10 +373,18 @@
|
||||
<el-input v-model="form.duration" placeholder="请输入活动持续时长" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="创建人用户id" prop="userId">
|
||||
<el-input v-model="form.userId" disabled placeholder="请输入创建人账号" />
|
||||
<el-input
|
||||
v-model="form.userId"
|
||||
disabled
|
||||
placeholder="请输入创建人账号"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人类型" prop="creatorType">
|
||||
<el-select v-model="form.creatorType" disabled placeholder="创建人类型">
|
||||
<el-select
|
||||
v-model="form.creatorType"
|
||||
disabled
|
||||
placeholder="创建人类型"
|
||||
>
|
||||
<el-option label="主播" :value="1"></el-option>
|
||||
<el-option label="管理员" :value="2"></el-option>
|
||||
<el-option label="系统" :value="3"></el-option>
|
||||
@@ -350,7 +417,11 @@
|
||||
<el-input v-model="form.participantCount" placeholder="请输入当前参与人数" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="奖励积分" prop="rewardValue">
|
||||
<el-input v-model="form.rewardValue" disabled placeholder="请输入内容" />
|
||||
<el-input
|
||||
v-model="form.rewardValue"
|
||||
disabled
|
||||
placeholder="请输入内容"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="奖励类型" prop="rewardType">
|
||||
<el-select v-model="form.rewardType" placeholder="创建人类型">
|
||||
@@ -384,11 +455,12 @@ import {
|
||||
delImLiveActivity,
|
||||
addImLiveActivity,
|
||||
updateImLiveActivity,
|
||||
} from '@/api/service/imLiveActivity';
|
||||
import ImLiveActivityRecordModal from '@/components/ImLive/ImLiveActivityRecordModal.vue';
|
||||
endImLiveActivity,
|
||||
} from "@/api/service/imLiveActivity";
|
||||
import ImLiveActivityRecordModal from "@/components/ImLive/ImLiveActivityRecordModal.vue";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { sys_general_yes_no } = proxy.useDict('sys_general_yes_no');
|
||||
const { sys_general_yes_no } = proxy.useDict("sys_general_yes_no");
|
||||
|
||||
const imLiveActivityList = ref([]);
|
||||
const open = ref(false);
|
||||
@@ -398,7 +470,7 @@ const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
const title = ref("");
|
||||
const recordModalRef = ref();
|
||||
const currentActivityId = ref(null); // 当前活动ID,可以从接口获取
|
||||
|
||||
@@ -429,31 +501,40 @@ const data = reactive({
|
||||
version: null,
|
||||
},
|
||||
rules: {
|
||||
roomId: [{ required: true, message: '直播间ID不能为空', trigger: 'blur' }],
|
||||
roomId: [{ required: true, message: "直播间ID不能为空", trigger: "blur" }],
|
||||
activityType: [
|
||||
{
|
||||
required: true,
|
||||
message: '活动类型:1-签到 2-抽奖 3-答题 4-红包 5-任务 6-投票 7-连麦PK不能为空',
|
||||
trigger: 'change',
|
||||
message:
|
||||
"活动类型:1-签到 2-抽奖 3-答题 4-红包 5-任务 6-投票 7-连麦PK不能为空",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
title: [{ required: true, message: '活动标题不能为空', trigger: 'blur' }],
|
||||
title: [{ required: true, message: "活动标题不能为空", trigger: "blur" }],
|
||||
status: [
|
||||
{
|
||||
required: true,
|
||||
message: '状态:0-未开始 1-进行中 2-已结束 3-已取消不能为空',
|
||||
trigger: 'change',
|
||||
message: "状态:0-未开始 1-进行中 2-已结束 3-已取消不能为空",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
startTime: [{ required: true, message: '活动开始时间不能为空', trigger: 'blur' }],
|
||||
endTime: [{ required: true, message: '活动结束时间不能为空', trigger: 'blur' }],
|
||||
userId: [{ required: true, message: '创建人账号不能为空', trigger: 'blur' }],
|
||||
rewardValue: [{ required: true, message: '奖励积分不能为空', trigger: 'blur' }],
|
||||
startTime: [
|
||||
{ required: true, message: "活动开始时间不能为空", trigger: "blur" },
|
||||
],
|
||||
endTime: [
|
||||
{ required: true, message: "活动结束时间不能为空", trigger: "blur" },
|
||||
],
|
||||
userId: [
|
||||
{ required: true, message: "创建人账号不能为空", trigger: "blur" },
|
||||
],
|
||||
rewardValue: [
|
||||
{ required: true, message: "奖励积分不能为空", trigger: "blur" },
|
||||
],
|
||||
creatorType: [
|
||||
{
|
||||
required: true,
|
||||
message: '创建人类型:1-主播 2-管理员 3-系统不能为空',
|
||||
trigger: 'change',
|
||||
message: "创建人类型:1-主播 2-管理员 3-系统不能为空",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -464,7 +545,7 @@ const { queryParams, form, rules } = toRefs(data);
|
||||
/** 查询直播间活动列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listImLiveActivity(queryParams.value).then(response => {
|
||||
listImLiveActivity(queryParams.value).then((response) => {
|
||||
imLiveActivityList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
@@ -504,7 +585,7 @@ function reset() {
|
||||
createTime: null,
|
||||
updateTime: null,
|
||||
};
|
||||
proxy.resetForm('imLiveActivityRef');
|
||||
proxy.resetForm("imLiveActivityRef");
|
||||
}
|
||||
|
||||
// 显示记录弹窗
|
||||
@@ -524,13 +605,13 @@ function handleQuery() {
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id);
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
@@ -539,34 +620,50 @@ function handleSelectionChange(selection) {
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加直播间活动';
|
||||
title.value = "添加直播间活动";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getImLiveActivity(_id).then(response => {
|
||||
getImLiveActivity(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改直播间活动';
|
||||
title.value = "修改直播间活动";
|
||||
});
|
||||
}
|
||||
|
||||
function handleEndActivity(row) {
|
||||
console.log(row);
|
||||
|
||||
const _id = row.activityId || ids.value;
|
||||
proxy.$modal
|
||||
.confirm('是否确认结束直播间活动编号为"' + _id + '"的数据项?')
|
||||
.then(function () {
|
||||
return endImLiveActivity(_id);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("活动已结束");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['imLiveActivityRef'].validate(valid => {
|
||||
proxy.$refs["imLiveActivityRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
form.isRepeat = 0;
|
||||
if (form.value.id != null) {
|
||||
updateImLiveActivity(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
updateImLiveActivity(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addImLiveActivity(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
addImLiveActivity(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -585,7 +682,7 @@ function handleDelete(row) {
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
@@ -593,11 +690,11 @@ function handleDelete(row) {
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'service/imLiveActivity/export',
|
||||
"service/imLiveActivity/export",
|
||||
{
|
||||
...queryParams.value,
|
||||
},
|
||||
`imLiveActivity_${new Date().getTime()}.xlsx`
|
||||
`imLiveActivity_${new Date().getTime()}.xlsx`,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="background-color-fff padding-20 border-radius-8px margin-bottom-20">
|
||||
<div
|
||||
class="background-color-fff padding-20 border-radius-8px margin-bottom-20"
|
||||
>
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
@@ -67,13 +69,17 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div class="background-color-fff padding-20 border-radius-8px margin-bottom-20">
|
||||
<div
|
||||
class="background-color-fff padding-20 border-radius-8px margin-bottom-20"
|
||||
>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
@@ -128,7 +134,9 @@
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<div class="background-color-fff padding-20 border-radius-8px margin-bottom-20">
|
||||
<div
|
||||
class="background-color-fff padding-20 border-radius-8px margin-bottom-20"
|
||||
>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="imLiveRoomList"
|
||||
@@ -177,18 +185,22 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建者用户ID" align="center" prop="userId" />
|
||||
<el-table-column label="直播间创建者账号" align="center" prop="ownerAccount" />
|
||||
<el-table-column
|
||||
label="直播间创建者账号"
|
||||
align="center"
|
||||
prop="ownerAccount"
|
||||
/>
|
||||
<el-table-column label="主播账号" align="center" prop="anchorAccount" />
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
<template #default="{ row }">
|
||||
{{
|
||||
row.status == 0
|
||||
? '准备中'
|
||||
? "准备中"
|
||||
: row.status == 1
|
||||
? '直播中'
|
||||
? "直播中"
|
||||
: row.status == 2
|
||||
? '已结束'
|
||||
: '已封禁'
|
||||
? "已结束"
|
||||
: "已封禁"
|
||||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -198,18 +210,40 @@
|
||||
prop="liveType"
|
||||
/> -->
|
||||
<!-- <el-table-column label="最大观众数" align="center" prop="maxViewers" /> -->
|
||||
<el-table-column label="当前观众数" align="center" prop="currentViewers" />
|
||||
<el-table-column label="虚拟观众数" align="center" prop="virtualViewers" />
|
||||
<el-table-column
|
||||
label="当前观众数"
|
||||
align="center"
|
||||
prop="currentViewers"
|
||||
/>
|
||||
<el-table-column
|
||||
label="虚拟观众数"
|
||||
align="center"
|
||||
prop="virtualViewers"
|
||||
/>
|
||||
<el-table-column label="点赞数" align="center" prop="likeCount" />
|
||||
<el-table-column label="礼物数" align="center" prop="giftCount" />
|
||||
<el-table-column label="开始时间" align="center" prop="startTime" width="180">
|
||||
<el-table-column
|
||||
label="开始时间"
|
||||
align="center"
|
||||
prop="startTime"
|
||||
width="180"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
<span>{{
|
||||
parseTime(scope.row.startTime, "{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束时间" align="center" prop="endTime" width="180">
|
||||
<el-table-column
|
||||
label="结束时间"
|
||||
align="center"
|
||||
prop="endTime"
|
||||
width="180"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
<span>{{
|
||||
parseTime(scope.row.endTime, "{y}-{m}-{d} {h}:{i}:{s}")
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="直播时长(秒)" align="center" prop="duration" /> -->
|
||||
@@ -315,10 +349,18 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="直播间封面URL" prop="coverUrl">
|
||||
<el-input v-model="form.coverUrl" type="textarea" placeholder="请输入内容" />
|
||||
<el-input
|
||||
v-model="form.coverUrl"
|
||||
type="textarea"
|
||||
placeholder="请输入内容"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="OBS推流地址" prop="liveUrl">
|
||||
<el-input v-model="form.liveUrl" type="textarea" placeholder="请输入内容" />
|
||||
<el-input
|
||||
v-model="form.liveUrl"
|
||||
type="textarea"
|
||||
placeholder="请输入内容"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="播放地址" prop="playUrl">
|
||||
<el-input v-model="form.playUrl" type="textarea" placeholder="请输入内容" />
|
||||
@@ -330,7 +372,10 @@
|
||||
<el-input v-model="form.userId" placeholder="请输入创建者用户ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="直播间创建者账号" prop="ownerAccount">
|
||||
<el-input v-model="form.ownerAccount" placeholder="请输入直播间创建者账号" />
|
||||
<el-input
|
||||
v-model="form.ownerAccount"
|
||||
placeholder="请输入直播间创建者账号"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="主播账号" prop="anchorAccount">
|
||||
<el-input v-model="form.anchorAccount" placeholder="请输入主播账号" />
|
||||
@@ -339,7 +384,10 @@
|
||||
<el-input v-model="form.maxViewers" placeholder="请输入最大观众数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="当前观众数" prop="currentViewers">
|
||||
<el-input v-model="form.currentViewers" placeholder="请输入当前观众数" />
|
||||
<el-input
|
||||
v-model="form.currentViewers"
|
||||
placeholder="请输入当前观众数"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="虚拟观众数" prop="virtualViewers">
|
||||
<el-input v-model="form.virtualViewers" placeholder="请输入虚拟观众数" />
|
||||
@@ -402,7 +450,12 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 添加或修改虚拟观众配置对话框 -->
|
||||
<el-dialog title="虚拟观众配置" v-model="openVirtual" width="500px" append-to-body>
|
||||
<el-dialog
|
||||
title="虚拟观众配置"
|
||||
v-model="openVirtual"
|
||||
width="500px"
|
||||
append-to-body
|
||||
>
|
||||
<el-form
|
||||
ref="imLiveVirtualConfigRef"
|
||||
:model="formVirtual"
|
||||
@@ -411,13 +464,23 @@
|
||||
label-position="top"
|
||||
>
|
||||
<el-form-item label="直播间ID" prop="roomId">
|
||||
<el-input v-model="formVirtual.roomId" disabled placeholder="请输入直播间ID" />
|
||||
<el-input
|
||||
v-model="formVirtual.roomId"
|
||||
disabled
|
||||
placeholder="请输入直播间ID"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="虚拟观众数量" prop="virtualCount">
|
||||
<el-input v-model="formVirtual.virtualCount" placeholder="请输入虚拟观众数量" />
|
||||
<el-input
|
||||
v-model="formVirtual.virtualCount"
|
||||
placeholder="请输入虚拟观众数量"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="isActive">
|
||||
<el-select v-model="formVirtual.isActive" placeholder="请选择是否启用">
|
||||
<el-select
|
||||
v-model="formVirtual.isActive"
|
||||
placeholder="请选择是否启用"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in sys_general_yes_no"
|
||||
:key="dict.value"
|
||||
@@ -445,17 +508,17 @@ import {
|
||||
addImLiveRoom,
|
||||
updateImLiveRoom,
|
||||
removeImLiveRoom,
|
||||
} from '@/api/service/imLiveRoom';
|
||||
} from "@/api/service/imLiveRoom";
|
||||
import {
|
||||
listImLiveVirtualConfig,
|
||||
getImLiveVirtualConfig,
|
||||
delImLiveVirtualConfig,
|
||||
addImLiveVirtualConfig,
|
||||
updateImLiveVirtualConfig,
|
||||
} from '@/api/service/imLiveVirtualConfig';
|
||||
} from "@/api/service/imLiveVirtualConfig";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { sys_general_yes_no } = proxy.useDict('sys_general_yes_no');
|
||||
const { sys_general_yes_no } = proxy.useDict("sys_general_yes_no");
|
||||
|
||||
const imLiveRoomList = ref([]);
|
||||
const open = ref(false);
|
||||
@@ -466,7 +529,7 @@ const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
const title = ref("");
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
@@ -502,53 +565,109 @@ const data = reactive({
|
||||
version: null,
|
||||
},
|
||||
rules: {
|
||||
roomId: [{ required: true, message: '直播间ID不能为空', trigger: 'blur' }],
|
||||
groupId: [{ required: true, message: '关联群组ID不能为空', trigger: 'blur' }],
|
||||
roomName: [{ required: true, message: '直播间名称不能为空', trigger: 'blur' }],
|
||||
userId: [{ required: true, message: '创建者用户ID不能为空', trigger: 'blur' }],
|
||||
ownerAccount: [{ required: true, message: '直播间创建者账号不能为空', trigger: 'blur' }],
|
||||
anchorAccount: [{ required: true, message: '主播账号不能为空', trigger: 'blur' }],
|
||||
roomId: [{ required: true, message: "直播间ID不能为空", trigger: "blur" }],
|
||||
groupId: [
|
||||
{ required: true, message: "关联群组ID不能为空", trigger: "blur" },
|
||||
],
|
||||
roomName: [
|
||||
{ required: true, message: "直播间名称不能为空", trigger: "blur" },
|
||||
],
|
||||
userId: [
|
||||
{ required: true, message: "创建者用户ID不能为空", trigger: "blur" },
|
||||
],
|
||||
ownerAccount: [
|
||||
{ required: true, message: "直播间创建者账号不能为空", trigger: "blur" },
|
||||
],
|
||||
anchorAccount: [
|
||||
{ required: true, message: "主播账号不能为空", trigger: "blur" },
|
||||
],
|
||||
status: [
|
||||
{
|
||||
required: true,
|
||||
message: '状态:0-准备中 1-直播中 2-已结束 3-已封禁不能为空',
|
||||
trigger: 'change',
|
||||
message: "状态:0-准备中 1-直播中 2-已结束 3-已封禁不能为空",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
liveType: [
|
||||
{
|
||||
required: true,
|
||||
message: '直播类型:1-普通直播 2-语音直播 3-屏幕分享不能为空',
|
||||
trigger: 'change',
|
||||
message: "直播类型:1-普通直播 2-语音直播 3-屏幕分享不能为空",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
maxViewers: [{ required: true, message: '最大观众数不能为空', trigger: 'blur' }],
|
||||
currentViewers: [{ required: true, message: '当前观众数不能为空', trigger: 'blur' }],
|
||||
virtualViewers: [{ required: true, message: '虚拟观众数不能为空', trigger: 'blur' }],
|
||||
likeCount: [{ required: true, message: '点赞数不能为空', trigger: 'blur' }],
|
||||
giftCount: [{ required: true, message: '礼物数不能为空', trigger: 'blur' }],
|
||||
duration: [{ required: true, message: '直播时长(秒)不能为空', trigger: 'blur' }],
|
||||
isRecorded: [{ required: true, message: '是否录制:0-否 1-是不能为空', trigger: 'blur' }],
|
||||
isPrivate: [
|
||||
{ required: true, message: '是否私密:0-公开 1-私密不能为空', trigger: 'blur' },
|
||||
maxViewers: [
|
||||
{ required: true, message: "最大观众数不能为空", trigger: "blur" },
|
||||
],
|
||||
currentViewers: [
|
||||
{ required: true, message: "当前观众数不能为空", trigger: "blur" },
|
||||
],
|
||||
virtualViewers: [
|
||||
{ required: true, message: "虚拟观众数不能为空", trigger: "blur" },
|
||||
],
|
||||
likeCount: [{ required: true, message: "点赞数不能为空", trigger: "blur" }],
|
||||
giftCount: [{ required: true, message: "礼物数不能为空", trigger: "blur" }],
|
||||
duration: [
|
||||
{ required: true, message: "直播时长(秒)不能为空", trigger: "blur" },
|
||||
],
|
||||
isRecorded: [
|
||||
{
|
||||
required: true,
|
||||
message: "是否录制:0-否 1-是不能为空",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
isPrivate: [
|
||||
{
|
||||
required: true,
|
||||
message: "是否私密:0-公开 1-私密不能为空",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
version: [{ required: true, message: "版本号不能为空", trigger: "blur" }],
|
||||
createTime: [
|
||||
{ required: true, message: "创建时间不能为空", trigger: "blur" },
|
||||
],
|
||||
updateTime: [
|
||||
{ required: true, message: "更新时间不能为空", trigger: "blur" },
|
||||
],
|
||||
version: [{ required: true, message: '版本号不能为空', trigger: 'blur' }],
|
||||
createTime: [{ required: true, message: '创建时间不能为空', trigger: 'blur' }],
|
||||
updateTime: [{ required: true, message: '更新时间不能为空', trigger: 'blur' }],
|
||||
},
|
||||
formVirtual: {},
|
||||
Virtualrules: {
|
||||
roomId: [{ required: true, message: '直播间ID不能为空', trigger: 'blur' }],
|
||||
virtualCount: [{ required: true, message: '虚拟观众数量不能为空', trigger: 'blur' }],
|
||||
enterInterval: [{ required: true, message: '进入间隔(秒)不能为空', trigger: 'blur' }],
|
||||
leaveInterval: [{ required: true, message: '离开间隔(秒)不能为空', trigger: 'blur' }],
|
||||
minWatchTime: [{ required: true, message: '最小观看时间(秒)不能为空', trigger: 'blur' }],
|
||||
maxWatchTime: [{ required: true, message: '最大观看时间(秒)不能为空', trigger: 'blur' }],
|
||||
likeProbability: [{ required: true, message: '点赞概率不能为空', trigger: 'blur' }],
|
||||
giftProbability: [{ required: true, message: '送礼概率不能为空', trigger: 'blur' }],
|
||||
isActive: [{ required: true, message: '是否启用:0-否 1-是不能为空', trigger: 'blur' }],
|
||||
createTime: [{ required: true, message: '创建时间不能为空', trigger: 'blur' }],
|
||||
updateTime: [{ required: true, message: '更新时间不能为空', trigger: 'blur' }],
|
||||
roomId: [{ required: true, message: "直播间ID不能为空", trigger: "blur" }],
|
||||
virtualCount: [
|
||||
{ required: true, message: "虚拟观众数量不能为空", trigger: "blur" },
|
||||
],
|
||||
enterInterval: [
|
||||
{ required: true, message: "进入间隔(秒)不能为空", trigger: "blur" },
|
||||
],
|
||||
leaveInterval: [
|
||||
{ required: true, message: "离开间隔(秒)不能为空", trigger: "blur" },
|
||||
],
|
||||
minWatchTime: [
|
||||
{ required: true, message: "最小观看时间(秒)不能为空", trigger: "blur" },
|
||||
],
|
||||
maxWatchTime: [
|
||||
{ required: true, message: "最大观看时间(秒)不能为空", trigger: "blur" },
|
||||
],
|
||||
likeProbability: [
|
||||
{ required: true, message: "点赞概率不能为空", trigger: "blur" },
|
||||
],
|
||||
giftProbability: [
|
||||
{ required: true, message: "送礼概率不能为空", trigger: "blur" },
|
||||
],
|
||||
isActive: [
|
||||
{
|
||||
required: true,
|
||||
message: "是否启用:0-否 1-是不能为空",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
createTime: [
|
||||
{ required: true, message: "创建时间不能为空", trigger: "blur" },
|
||||
],
|
||||
updateTime: [
|
||||
{ required: true, message: "更新时间不能为空", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
@@ -557,7 +676,7 @@ const { queryParams, form, rules, formVirtual, Virtualrules } = toRefs(data);
|
||||
/** 查询直播间列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listImLiveRoom(queryParams.value).then(response => {
|
||||
listImLiveRoom(queryParams.value).then((response) => {
|
||||
imLiveRoomList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
@@ -565,7 +684,7 @@ function getList() {
|
||||
}
|
||||
|
||||
function copySuccess() {
|
||||
proxy.$modal.msgSuccess('复制成功');
|
||||
proxy.$modal.msgSuccess("复制成功");
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
@@ -605,21 +724,21 @@ function resetVirtual() {
|
||||
createTime: null,
|
||||
updateTime: null,
|
||||
};
|
||||
proxy.resetForm('imLiveVirtualConfigRef');
|
||||
proxy.resetForm("imLiveVirtualConfigRef");
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitFormVirtual() {
|
||||
proxy.$refs['imLiveVirtualConfigRef'].validate(valid => {
|
||||
proxy.$refs["imLiveVirtualConfigRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (formVirtual.value.id != null) {
|
||||
updateImLiveVirtualConfig(formVirtual.value).then(response => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
updateImLiveVirtualConfig(formVirtual.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
openVirtual.value = false;
|
||||
});
|
||||
} else {
|
||||
addImLiveVirtualConfig(formVirtual.value).then(response => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
addImLiveVirtualConfig(formVirtual.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
openVirtual.value = false;
|
||||
});
|
||||
}
|
||||
@@ -661,7 +780,7 @@ function reset() {
|
||||
createTime: null,
|
||||
updateTime: null,
|
||||
};
|
||||
proxy.resetForm('imLiveRoomRef');
|
||||
proxy.resetForm("imLiveRoomRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
@@ -672,13 +791,13 @@ function handleQuery() {
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id);
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
@@ -687,25 +806,25 @@ function handleSelectionChange(selection) {
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加直播间';
|
||||
title.value = "添加直播间";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getImLiveRoom(_id).then(response => {
|
||||
getImLiveRoom(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改直播间';
|
||||
title.value = "修改直播间";
|
||||
});
|
||||
}
|
||||
|
||||
function handleUpdateShow(row, num) {
|
||||
// console.log(row);
|
||||
row.isPrivate = num;
|
||||
updateImLiveRoom(row).then(response => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
updateImLiveRoom(row).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -713,17 +832,17 @@ function handleUpdateShow(row, num) {
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['imLiveRoomRef'].validate(valid => {
|
||||
proxy.$refs["imLiveRoomRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateImLiveRoom(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
updateImLiveRoom(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addImLiveRoom(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess('新增成功');
|
||||
addImLiveRoom(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
@@ -742,7 +861,7 @@ function handleDelete(row) {
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
@@ -750,11 +869,11 @@ function handleDelete(row) {
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'service/imLiveRoom/export',
|
||||
"service/imLiveRoom/export",
|
||||
{
|
||||
...queryParams.value,
|
||||
},
|
||||
`imLiveRoom_${new Date().getTime()}.xlsx`
|
||||
`imLiveRoom_${new Date().getTime()}.xlsx`,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user