Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-03-07 18:21:05 +07:00
parent 1af948aa35
commit a8fab3e765
4 changed files with 1317 additions and 1094 deletions

View File

@@ -42,3 +42,10 @@ export function delImLiveActivity(id) {
method: 'delete'
})
}
export function endImLiveActivity(id) {
return request({
url: '/service/imLiveActivity/end/' + id,
method: 'post'
})
}

View File

@@ -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="上级邀请码"

View File

@@ -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`,
);
}

View File

@@ -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`,
);
}