|
@@ -4,71 +4,33 @@
|
|
<el-page-header @back="onCancel" :content="name"></el-page-header>
|
|
<el-page-header @back="onCancel" :content="name"></el-page-header>
|
|
</h2>
|
|
</h2>
|
|
<div class="m-core">
|
|
<div class="m-core">
|
|
- <el-form
|
|
|
|
- :model="form"
|
|
|
|
- ref="form"
|
|
|
|
- label-width="300px"
|
|
|
|
- :inline="true"
|
|
|
|
- label-position="left"
|
|
|
|
- >
|
|
|
|
- <el-alert
|
|
|
|
- title="直播设备配置"
|
|
|
|
- type="info"
|
|
|
|
- :closable="false"
|
|
|
|
- style="margin-bottom: 20px"
|
|
|
|
- ></el-alert>
|
|
|
|
|
|
+ <el-form :model="form" ref="form" label-width="300px" :inline="true" label-position="left">
|
|
|
|
+ <el-alert title="直播设备配置" type="info" :closable="false" style="margin-bottom: 20px"></el-alert>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- class="mline"
|
|
|
|
- label="直播设备"
|
|
|
|
- prop="os"
|
|
|
|
- label-width="130px"
|
|
|
|
- :rules="[{ required: true, message: '请选择推广类型' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item class="mline" label="直播设备" prop="os" label-width="130px"
|
|
|
|
+ :rules="[{ required: true, message: '请选择推广类型' }]">
|
|
<el-radio-group v-model="form.os" @input="changeOs">
|
|
<el-radio-group v-model="form.os" @input="changeOs">
|
|
<!-- value="rongCloud"></el-option>
|
|
<!-- value="rongCloud"></el-option>
|
|
<el-option label="腾讯云" value="tencentCloud" -->
|
|
<el-option label="腾讯云" value="tencentCloud" -->
|
|
<el-radio v-if="serviceProvider === 'rongCloud'" label="pc">web</el-radio>
|
|
<el-radio v-if="serviceProvider === 'rongCloud'" label="pc">web</el-radio>
|
|
- <el-radio v-if="serviceProvider === 'tencentCloud'" label="client"
|
|
|
|
- >客户端</el-radio
|
|
|
|
- >
|
|
|
|
|
|
+ <el-radio v-if="serviceProvider === 'tencentCloud'" label="client">乐直播</el-radio>
|
|
<el-radio label="mobile">手机</el-radio>
|
|
<el-radio label="mobile">手机</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- class="mline"
|
|
|
|
- label="直播场景"
|
|
|
|
- prop="useScene"
|
|
|
|
- label-width="130px"
|
|
|
|
- :rules="[{ required: true, message: '请选择直播场景' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item class="mline" label="直播场景" prop="useScene" label-width="130px"
|
|
|
|
+ :rules="[{ required: true, message: '请选择直播场景' }]">
|
|
<el-radio-group v-model="form.useScene">
|
|
<el-radio-group v-model="form.useScene">
|
|
- <el-radio label="NORMAL">普通模式</el-radio>
|
|
|
|
- <el-radio label="MUSIC">音乐模式</el-radio>
|
|
|
|
|
|
+ <el-radio label="NORMAL">普通场景</el-radio>
|
|
|
|
+ <el-radio label="MUSIC">音乐场景</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
- <el-alert
|
|
|
|
- title="直播课信息"
|
|
|
|
- type="info"
|
|
|
|
- :closable="false"
|
|
|
|
- style="margin-bottom: 20px"
|
|
|
|
- ></el-alert>
|
|
|
|
|
|
+ <el-alert title="直播间信息" type="info" :closable="false" style="margin-bottom: 20px"></el-alert>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- label="直播课标题"
|
|
|
|
- class="nomb"
|
|
|
|
- prop="roomTitle"
|
|
|
|
- :rules="[{ required: true, message: '请输入直播课标题' }]"
|
|
|
|
- >
|
|
|
|
- <el-input
|
|
|
|
- maxlength="10"
|
|
|
|
- show-word-limit
|
|
|
|
- placeholder="请输入直播课标题"
|
|
|
|
- v-model.trim="form.roomTitle"
|
|
|
|
- ></el-input>
|
|
|
|
|
|
+ <el-form-item label="直播间标题" class="nomb" prop="roomTitle" :rules="[{ required: true, message: '请输入直播间标题' }]">
|
|
|
|
+ <el-input maxlength="10" show-word-limit placeholder="请输入直播间标题" v-model.trim="form.roomTitle"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- <el-form-item
|
|
<!-- <el-form-item
|
|
label="直播方案"
|
|
label="直播方案"
|
|
@@ -94,71 +56,30 @@
|
|
<el-option label="腾讯云" value="tencentCloud"></el-option>
|
|
<el-option label="腾讯云" value="tencentCloud"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item> -->
|
|
</el-form-item> -->
|
|
- <el-form-item
|
|
|
|
- label="直播开始时间"
|
|
|
|
- class="nomb"
|
|
|
|
- prop="liveStartTime"
|
|
|
|
- :rules="[{ required: true, message: '请选择直播开始时间' }]"
|
|
|
|
- >
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="form.liveStartTime"
|
|
|
|
- :picker-options="pickerOptions"
|
|
|
|
- type="datetime"
|
|
|
|
- format="yyyy-MM-dd HH:mm"
|
|
|
|
- value-format="yyyy-MM-dd HH:mm"
|
|
|
|
- placeholder="请选择直播开始时间"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="直播开始时间" class="nomb" prop="liveStartTime"
|
|
|
|
+ :rules="[{ required: true, message: '请选择直播开始时间' }]">
|
|
|
|
+ <el-date-picker v-model="form.liveStartTime" :picker-options="pickerOptions" type="datetime"
|
|
|
|
+ format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" placeholder="请选择直播开始时间">
|
|
</el-date-picker>
|
|
</el-date-picker>
|
|
<p style="color: red">主讲人可提前30分钟进入直播间准备直播</p>
|
|
<p style="color: red">主讲人可提前30分钟进入直播间准备直播</p>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- label="主讲人身份"
|
|
|
|
- class="nomb"
|
|
|
|
- prop="clientType"
|
|
|
|
- :rules="[{ required: true, message: '请选择直播方案' }]"
|
|
|
|
- >
|
|
|
|
- <el-select
|
|
|
|
- placeholder="请选择主讲人身份"
|
|
|
|
- v-model="form.clientType"
|
|
|
|
- :disabled="form.os == 'mobile'"
|
|
|
|
- clearable
|
|
|
|
- @change="
|
|
|
|
- (value) => {
|
|
|
|
- form.speakerId = '';
|
|
|
|
- }
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="主讲人身份" class="nomb" prop="clientType" :rules="[{ required: true, message: '请选择直播方案' }]">
|
|
|
|
+ <el-select placeholder="请选择主讲人身份" v-model="form.clientType" :disabled="form.os == 'mobile'" clearable @change="value => {
|
|
|
|
+ form.speakerId = '';
|
|
|
|
+ }
|
|
|
|
+ ">
|
|
<el-option label="老师" value="TEACHER"></el-option>
|
|
<el-option label="老师" value="TEACHER"></el-option>
|
|
<el-option label="员工" value="EDUCATION"></el-option>
|
|
<el-option label="员工" value="EDUCATION"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item
|
|
|
|
- label="主讲人"
|
|
|
|
- class="nomb"
|
|
|
|
- prop="speakerId"
|
|
|
|
- :rules="[{ required: true, message: '请输入主讲人' }]"
|
|
|
|
- v-if="form.clientType == 'TEACHER'"
|
|
|
|
- >
|
|
|
|
- <el-select
|
|
|
|
- v-model.trim="form.speakerId"
|
|
|
|
- collapse-tags
|
|
|
|
- clearable
|
|
|
|
- placeholder="请输入主讲人"
|
|
|
|
- remote
|
|
|
|
- filterable
|
|
|
|
- :remote-method="remoteMethod"
|
|
|
|
- :loading="remoteLoading"
|
|
|
|
- @change="changeTeacher"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in teacherList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.realName"
|
|
|
|
- :value="item.id"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="主讲人" class="nomb" prop="speakerId" :rules="[{ required: true, message: '请输入主讲人' }]"
|
|
|
|
+ v-if="form.clientType == 'TEACHER'">
|
|
|
|
+ <el-select v-model.trim="form.speakerId" collapse-tags clearable placeholder="请输入主讲人" remote filterable
|
|
|
|
+ :remote-method="remoteMethod" :loading="remoteLoading" @change="changeTeacher">
|
|
|
|
+ <el-option v-for="item in teacherList" :key="item.id" :label="item.realName" :value="item.id">
|
|
<span style="float: left">{{ item.realName }}</span>
|
|
<span style="float: left">{{ item.realName }}</span>
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
item.phone
|
|
item.phone
|
|
@@ -167,30 +88,10 @@
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item
|
|
|
|
- v-else
|
|
|
|
- label="主讲人"
|
|
|
|
- class="nomb"
|
|
|
|
- prop="speakerId"
|
|
|
|
- :rules="[{ required: true, message: '请输入主讲人' }]"
|
|
|
|
- >
|
|
|
|
- <el-select
|
|
|
|
- v-model.trim="form.speakerId"
|
|
|
|
- collapse-tags
|
|
|
|
- clearable
|
|
|
|
- placeholder="请输入主讲人"
|
|
|
|
- remote
|
|
|
|
- filterable
|
|
|
|
- :remote-method="remoteMethodEduc"
|
|
|
|
- :loading="remoteLoading"
|
|
|
|
- @change="changeTeacher"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in educationList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.realName"
|
|
|
|
- :value="item.id"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item v-else label="主讲人" class="nomb" prop="speakerId" :rules="[{ required: true, message: '请输入主讲人' }]">
|
|
|
|
+ <el-select v-model.trim="form.speakerId" collapse-tags clearable placeholder="请输入主讲人" remote filterable
|
|
|
|
+ :remote-method="remoteMethodEduc" :loading="remoteLoading" @change="changeTeacher">
|
|
|
|
+ <el-option v-for="item in educationList" :key="item.id" :label="item.realName" :value="item.id">
|
|
<span style="float: left">{{ item.realName }}</span>
|
|
<span style="float: left">{{ item.realName }}</span>
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
item.phone
|
|
item.phone
|
|
@@ -200,27 +101,13 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- label="直播课内容"
|
|
|
|
- prop="liveRemark"
|
|
|
|
- :rules="[{ required: true, message: '请输入直播课内容' }]"
|
|
|
|
- >
|
|
|
|
- <el-input
|
|
|
|
- :rows="3"
|
|
|
|
- placeholder="请输入直播课内容"
|
|
|
|
- v-model.trim="form.liveRemark"
|
|
|
|
- type="textarea"
|
|
|
|
- maxlength="200"
|
|
|
|
- show-word-limit
|
|
|
|
- ></el-input>
|
|
|
|
|
|
+ <el-form-item label="直播间内容" prop="liveRemark" :rules="[{ required: true, message: '请输入直播间内容' }]">
|
|
|
|
+ <el-input :rows="3" placeholder="请输入直播间内容" v-model.trim="form.liveRemark" type="textarea" maxlength="200"
|
|
|
|
+ show-word-limit></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- label="预热模板(模板使用于分享宣传图片)"
|
|
|
|
- prop="preTemplate"
|
|
|
|
- :rules="[{ required: true, message: '请选择预热模板' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="预热模板(模板使用于分享宣传图片)" prop="preTemplate" :rules="[{ required: true, message: '请选择预热模板' }]">
|
|
<el-checkbox-group v-model="checkList" @change="bindCheckBox">
|
|
<el-checkbox-group v-model="checkList" @change="bindCheckBox">
|
|
<div class="chioseWrap">
|
|
<div class="chioseWrap">
|
|
<div class="chioseItem" @click="setPreTemplate(1)">
|
|
<div class="chioseItem" @click="setPreTemplate(1)">
|
|
@@ -228,12 +115,7 @@
|
|
<!-- v-model="form.preTemplate" -->
|
|
<!-- v-model="form.preTemplate" -->
|
|
<div class="remberBox">
|
|
<div class="remberBox">
|
|
<div class="wrap"></div>
|
|
<div class="wrap"></div>
|
|
- <el-checkbox
|
|
|
|
- class="chioseBox"
|
|
|
|
- :label="1"
|
|
|
|
- :checked="form.preTemplate == 1"
|
|
|
|
- ><br
|
|
|
|
- /></el-checkbox>
|
|
|
|
|
|
+ <el-checkbox class="chioseBox" :label="1" :checked="form.preTemplate == 1"><br /></el-checkbox>
|
|
<!-- <div
|
|
<!-- <div
|
|
class="dotWrap"
|
|
class="dotWrap"
|
|
:class="[form.preTemplate == 1 ? 'checked' : '']"
|
|
:class="[form.preTemplate == 1 ? 'checked' : '']"
|
|
@@ -245,13 +127,8 @@
|
|
<div class="remberBox">
|
|
<div class="remberBox">
|
|
<!-- v-model="form.preTemplate" -->
|
|
<!-- v-model="form.preTemplate" -->
|
|
<div class="wrap"></div>
|
|
<div class="wrap"></div>
|
|
- <el-checkbox
|
|
|
|
- name="2"
|
|
|
|
- class="chioseBox"
|
|
|
|
- :label="2"
|
|
|
|
- :checked="form.preTemplate == 2"
|
|
|
|
- ><br
|
|
|
|
- /></el-checkbox>
|
|
|
|
|
|
+ <el-checkbox name="2" class="chioseBox" :label="2"
|
|
|
|
+ :checked="form.preTemplate == 2"><br /></el-checkbox>
|
|
<!-- <div
|
|
<!-- <div
|
|
class="dotWrap"
|
|
class="dotWrap"
|
|
:class="[form.preTemplate == 2 ? 'checked' : '']"
|
|
:class="[form.preTemplate == 2 ? 'checked' : '']"
|
|
@@ -262,12 +139,7 @@
|
|
<img src="./images/img3.png" alt="" />
|
|
<img src="./images/img3.png" alt="" />
|
|
<div class="remberBox">
|
|
<div class="remberBox">
|
|
<div class="wrap"></div>
|
|
<div class="wrap"></div>
|
|
- <el-checkbox
|
|
|
|
- class="chioseBox"
|
|
|
|
- :label="3"
|
|
|
|
- :checked="form.preTemplate == 3"
|
|
|
|
- ><br
|
|
|
|
- /></el-checkbox>
|
|
|
|
|
|
+ <el-checkbox class="chioseBox" :label="3" :checked="form.preTemplate == 3"><br /></el-checkbox>
|
|
<!-- <div
|
|
<!-- <div
|
|
class="dotWrap"
|
|
class="dotWrap"
|
|
:class="[form.preTemplate == 3 ? 'checked' : '']"
|
|
:class="[form.preTemplate == 3 ? 'checked' : '']"
|
|
@@ -279,34 +151,19 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
- <el-alert
|
|
|
|
- title="观看权限配置"
|
|
|
|
- type="info"
|
|
|
|
- :closable="false"
|
|
|
|
- style="margin-bottom: 20px"
|
|
|
|
- ></el-alert>
|
|
|
|
|
|
+ <el-alert title="观看权限配置" type="info" :closable="false" style="margin-bottom: 20px"></el-alert>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- class="mline"
|
|
|
|
- label="观看权限信息"
|
|
|
|
- prop="popularizeType"
|
|
|
|
- label-width="130px"
|
|
|
|
- :rules="[{ required: true, message: '请选择推广类型' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item class="mline" label="观看权限信息" prop="popularizeType" label-width="130px"
|
|
|
|
+ :rules="[{ required: true, message: '请选择推广类型' }]">
|
|
<el-radio-group v-model="form.popularizeType" @change="changeType">
|
|
<el-radio-group v-model="form.popularizeType" @change="changeType">
|
|
- <el-radio label="ALL">公开</el-radio>
|
|
|
|
- <el-radio label="PRIVATE">私密</el-radio>
|
|
|
|
|
|
+ <el-radio label="ALL">公开模式</el-radio>
|
|
|
|
+ <el-radio label="PRIVATE">私密模式</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- class="mline"
|
|
|
|
- label="观看模式"
|
|
|
|
- prop="viewMode"
|
|
|
|
- label-width="130px"
|
|
|
|
- :rules="[{ required: true, message: '请选择推广类型' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item class="mline" label="观看模式" prop="viewMode" label-width="130px"
|
|
|
|
+ :rules="[{ required: true, message: '请选择推广类型' }]">
|
|
<el-radio-group v-model="form.viewMode">
|
|
<el-radio-group v-model="form.viewMode">
|
|
<el-radio label="LOGIN">登录</el-radio>
|
|
<el-radio label="LOGIN">登录</el-radio>
|
|
<el-radio label="VISITOR">游客</el-radio>
|
|
<el-radio label="VISITOR">游客</el-radio>
|
|
@@ -314,85 +171,35 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- v-if="
|
|
|
|
- form.popularizeType == 'SCHOOL' ||
|
|
|
|
- form.popularizeType == 'ORGAN' ||
|
|
|
|
- form.popularizeType == 'TEAM'
|
|
|
|
- "
|
|
|
|
- label="分部"
|
|
|
|
- prop="organIds"
|
|
|
|
- :rules="[{ required: true, message: '请选择分部' }]"
|
|
|
|
- >
|
|
|
|
- <select-all
|
|
|
|
- v-model.trim="form.organIds"
|
|
|
|
- filterable
|
|
|
|
- clearable
|
|
|
|
- placeholder="请选择分部"
|
|
|
|
- @change="changeSection"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="(item, index) in selects.branchs"
|
|
|
|
- :key="index"
|
|
|
|
- :label="item.name"
|
|
|
|
- :value="item.id"
|
|
|
|
- ></el-option>
|
|
|
|
|
|
+ <el-form-item v-if="form.popularizeType == 'SCHOOL' ||
|
|
|
|
+ form.popularizeType == 'ORGAN' ||
|
|
|
|
+ form.popularizeType == 'TEAM'
|
|
|
|
+ " label="分部" prop="organIds" :rules="[{ required: true, message: '请选择分部' }]">
|
|
|
|
+ <select-all v-model.trim="form.organIds" filterable clearable placeholder="请选择分部" @change="changeSection">
|
|
|
|
+ <el-option v-for="(item, index) in selects.branchs" :key="index" :label="item.name"
|
|
|
|
+ :value="item.id"></el-option>
|
|
</select-all>
|
|
</select-all>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- v-if="form.popularizeType == 'SCHOOL'"
|
|
|
|
- label="合作单位"
|
|
|
|
- prop="schoolIds"
|
|
|
|
- :rules="[{ required: true, message: '请选择合作单位' }]"
|
|
|
|
- >
|
|
|
|
- <select-all
|
|
|
|
- v-model.trim="form.schoolIds"
|
|
|
|
- :disabled="form.organIds.length <= 0"
|
|
|
|
- filterable
|
|
|
|
- clearable
|
|
|
|
- multiple
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item v-if="form.popularizeType == 'SCHOOL'" label="合作单位" prop="schoolIds"
|
|
|
|
+ :rules="[{ required: true, message: '请选择合作单位' }]">
|
|
|
|
+ <select-all v-model.trim="form.schoolIds" :disabled="form.organIds.length <= 0" filterable clearable multiple>
|
|
<!-- @change="changeSchool" -->
|
|
<!-- @change="changeSchool" -->
|
|
- <el-option
|
|
|
|
- v-for="(item, index) in cooperationList"
|
|
|
|
- :key="index"
|
|
|
|
- :label="item.name"
|
|
|
|
- :value="item.id"
|
|
|
|
- ></el-option>
|
|
|
|
|
|
+ <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.name"
|
|
|
|
+ :value="item.id"></el-option>
|
|
</select-all>
|
|
</select-all>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- v-if="form.popularizeType == 'TEAM'"
|
|
|
|
- label="乐团"
|
|
|
|
- prop="teamIds"
|
|
|
|
- :rules="[{ required: true, message: '请选择乐团' }]"
|
|
|
|
- >
|
|
|
|
- <select-all
|
|
|
|
- v-model.trim="form.teamIds"
|
|
|
|
- :disabled="form.organIds.length <= 0"
|
|
|
|
- filterable
|
|
|
|
- clearable
|
|
|
|
- multiple
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="(item, index) in teamList"
|
|
|
|
- :key="index"
|
|
|
|
- :label="item.name"
|
|
|
|
- :value="item.id"
|
|
|
|
- ></el-option>
|
|
|
|
|
|
+ <el-form-item v-if="form.popularizeType == 'TEAM'" label="乐团" prop="teamIds"
|
|
|
|
+ :rules="[{ required: true, message: '请选择乐团' }]">
|
|
|
|
+ <select-all v-model.trim="form.teamIds" :disabled="form.organIds.length <= 0" filterable clearable multiple>
|
|
|
|
+ <el-option v-for="(item, index) in teamList" :key="index" :label="item.name" :value="item.id"></el-option>
|
|
</select-all>
|
|
</select-all>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
- <el-alert
|
|
|
|
- title="直播间信息"
|
|
|
|
- type="info"
|
|
|
|
- :closable="false"
|
|
|
|
- style="margin-bottom: 20px"
|
|
|
|
- ></el-alert>
|
|
|
|
|
|
+ <el-alert title="直播间信息" type="info" :closable="false" style="margin-bottom: 20px"></el-alert>
|
|
<!-- <el-row class="row">
|
|
<!-- <el-row class="row">
|
|
<el-form-item
|
|
<el-form-item
|
|
prop="roomConfig.whether_like"
|
|
prop="roomConfig.whether_like"
|
|
@@ -436,13 +243,8 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row> -->
|
|
</el-row> -->
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- prop="roomConfig.whether_video"
|
|
|
|
- label-width="130px"
|
|
|
|
- class="mline"
|
|
|
|
- label="保存直播回放"
|
|
|
|
- :rules="[{ required: true, message: '是否保存直播回放' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item prop="roomConfig.whether_video" label-width="130px" class="mline" label="保存直播回放"
|
|
|
|
+ :rules="[{ required: true, message: '是否保存直播回放' }]">
|
|
<el-radio-group v-model="form.roomConfig.whether_video">
|
|
<el-radio-group v-model="form.roomConfig.whether_video">
|
|
<el-radio :label="0">是</el-radio>
|
|
<el-radio :label="0">是</el-radio>
|
|
<el-radio :label="1">否</el-radio>
|
|
<el-radio :label="1">否</el-radio>
|
|
@@ -450,13 +252,8 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row">
|
|
<el-row class="row">
|
|
- <el-form-item
|
|
|
|
- prop="roomConfig.whether_view_shop_cart"
|
|
|
|
- label-width="130px"
|
|
|
|
- class="mline"
|
|
|
|
- label="是否展示购物车"
|
|
|
|
- :rules="[{ required: true, message: '是否展示购物车' }]"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item prop="roomConfig.whether_view_shop_cart" label-width="130px" class="mline" label="是否展示购物车"
|
|
|
|
+ :rules="[{ required: true, message: '是否展示购物车' }]">
|
|
<el-radio-group v-model="form.roomConfig.whether_view_shop_cart">
|
|
<el-radio-group v-model="form.roomConfig.whether_view_shop_cart">
|
|
<el-radio :label="0">是</el-radio>
|
|
<el-radio :label="0">是</el-radio>
|
|
<el-radio :label="1">否</el-radio>
|
|
<el-radio :label="1">否</el-radio>
|
|
@@ -470,13 +267,7 @@
|
|
</el-row>
|
|
</el-row>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <el-dialog
|
|
|
|
- title="预览"
|
|
|
|
- width="415px"
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
- append-to-body
|
|
|
|
- :visible.sync="preLookVisible"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-dialog title="预览" width="415px" :close-on-click-modal="false" append-to-body :visible.sync="preLookVisible">
|
|
<preview :form="form" />
|
|
<preview :form="form" />
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</div>
|
|
</div>
|
|
@@ -489,7 +280,7 @@ import {
|
|
createLiveBroadcast,
|
|
createLiveBroadcast,
|
|
resetLiveBroadcastRoomList,
|
|
resetLiveBroadcastRoomList,
|
|
getRoomInfo,
|
|
getRoomInfo,
|
|
- sysTenantConfigAll,
|
|
|
|
|
|
+ sysTenantConfigAll
|
|
} from "./api";
|
|
} from "./api";
|
|
import { queryByOrganId } from "@/api/systemManage";
|
|
import { queryByOrganId } from "@/api/systemManage";
|
|
import { getTeamList } from "@/api/teamServer";
|
|
import { getTeamList } from "@/api/teamServer";
|
|
@@ -497,7 +288,7 @@ export default {
|
|
components: { preview },
|
|
components: { preview },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- name: "新建直播课",
|
|
|
|
|
|
+ name: "新建直播间",
|
|
preLookVisible: false,
|
|
preLookVisible: false,
|
|
form: {
|
|
form: {
|
|
organIds: [],
|
|
organIds: [],
|
|
@@ -517,10 +308,10 @@ export default {
|
|
whether_chat: 0,
|
|
whether_chat: 0,
|
|
whether_video: 0,
|
|
whether_video: 0,
|
|
whether_mic: 0,
|
|
whether_mic: 0,
|
|
- whether_view_shop_cart: 0,
|
|
|
|
|
|
+ whether_view_shop_cart: 0
|
|
},
|
|
},
|
|
checkList: [],
|
|
checkList: [],
|
|
- viewMode: "LOGIN",
|
|
|
|
|
|
+ viewMode: "LOGIN"
|
|
},
|
|
},
|
|
serviceProvider: "tencentCloud",
|
|
serviceProvider: "tencentCloud",
|
|
remoteLoading: false,
|
|
remoteLoading: false,
|
|
@@ -533,9 +324,9 @@ export default {
|
|
firstDayOfWeek: 1,
|
|
firstDayOfWeek: 1,
|
|
disabledDate(time) {
|
|
disabledDate(time) {
|
|
return time.getTime() + 86400000 <= new Date().getTime();
|
|
return time.getTime() + 86400000 <= new Date().getTime();
|
|
- },
|
|
|
|
|
|
+ }
|
|
},
|
|
},
|
|
- educationList: [],
|
|
|
|
|
|
+ educationList: []
|
|
};
|
|
};
|
|
},
|
|
},
|
|
async mounted() {
|
|
async mounted() {
|
|
@@ -543,14 +334,15 @@ export default {
|
|
|
|
|
|
try {
|
|
try {
|
|
const findName = await sysTenantConfigAll({
|
|
const findName = await sysTenantConfigAll({
|
|
- group: "LIVE_CLIENT",
|
|
|
|
|
|
+ group: "LIVE_CLIENT"
|
|
});
|
|
});
|
|
if (findName.data && findName.data.length > 0) {
|
|
if (findName.data && findName.data.length > 0) {
|
|
- findName.data.forEach((item) => {
|
|
|
|
|
|
+ findName.data.forEach(item => {
|
|
if (item.paramName == "live_client") {
|
|
if (item.paramName == "live_client") {
|
|
this.serviceProvider = item.paranValue;
|
|
this.serviceProvider = item.paranValue;
|
|
|
|
|
|
- this.form.os = this.serviceProvider == "tencentCloud" ? "client" : "pc";
|
|
|
|
|
|
+ this.form.os =
|
|
|
|
+ this.serviceProvider == "tencentCloud" ? "client" : "pc";
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -620,19 +412,23 @@ export default {
|
|
schoolIds: [],
|
|
schoolIds: [],
|
|
teamIds: [],
|
|
teamIds: [],
|
|
catIds: [],
|
|
catIds: [],
|
|
- studentIds: [],
|
|
|
|
|
|
+ studentIds: []
|
|
};
|
|
};
|
|
this.form.roomConfig = JSON.parse(res.data.roomConfig);
|
|
this.form.roomConfig = JSON.parse(res.data.roomConfig);
|
|
if (res.data.popularizeOrgIds) {
|
|
if (res.data.popularizeOrgIds) {
|
|
- this.form.organIds = res.data.popularizeOrgIds.split(",").map((item) => {
|
|
|
|
- return item * 1;
|
|
|
|
- });
|
|
|
|
|
|
+ this.form.organIds = res.data.popularizeOrgIds
|
|
|
|
+ .split(",")
|
|
|
|
+ .map(item => {
|
|
|
|
+ return item * 1;
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
if (res.data.popularizeSchoolIds) {
|
|
if (res.data.popularizeSchoolIds) {
|
|
- this.form.schoolIds = res.data.popularizeSchoolIds.split(",").map((item) => {
|
|
|
|
- return item * 1;
|
|
|
|
- });
|
|
|
|
|
|
+ this.form.schoolIds = res.data.popularizeSchoolIds
|
|
|
|
+ .split(",")
|
|
|
|
+ .map(item => {
|
|
|
|
+ return item * 1;
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
if (res.data.popularizeTeamIds) {
|
|
if (res.data.popularizeTeamIds) {
|
|
@@ -659,14 +455,14 @@ export default {
|
|
this.$router.push("/liveClassManager");
|
|
this.$router.push("/liveClassManager");
|
|
},
|
|
},
|
|
changeTeacher(val) {
|
|
changeTeacher(val) {
|
|
- this.teacherList.forEach((item) => {
|
|
|
|
|
|
+ this.teacherList.forEach(item => {
|
|
if (val == item.id) {
|
|
if (val == item.id) {
|
|
this.form.speakerName = item.realName;
|
|
this.form.speakerName = item.realName;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
preLook() {
|
|
preLook() {
|
|
- this.$refs.form.validate((flag) => {
|
|
|
|
|
|
+ this.$refs.form.validate(flag => {
|
|
if (flag) {
|
|
if (flag) {
|
|
this.preLookVisible = true;
|
|
this.preLookVisible = true;
|
|
console.log("预览", this.form);
|
|
console.log("预览", this.form);
|
|
@@ -693,25 +489,25 @@ export default {
|
|
method: "get",
|
|
method: "get",
|
|
headers: {
|
|
headers: {
|
|
Authorization: getToken(),
|
|
Authorization: getToken(),
|
|
- tenantId: getTenantId(),
|
|
|
|
|
|
+ tenantId: getTenantId()
|
|
},
|
|
},
|
|
params: {
|
|
params: {
|
|
rows: 9999,
|
|
rows: 9999,
|
|
search: query,
|
|
search: query,
|
|
lockFlag: 0,
|
|
lockFlag: 0,
|
|
- demissionFlag: false,
|
|
|
|
|
|
+ demissionFlag: false
|
|
},
|
|
},
|
|
- url,
|
|
|
|
|
|
+ url
|
|
};
|
|
};
|
|
this.remoteLoading = true;
|
|
this.remoteLoading = true;
|
|
// this.studentList = []
|
|
// this.studentList = []
|
|
- axios(options).then((res) => {
|
|
|
|
|
|
+ axios(options).then(res => {
|
|
this.remoteLoading = false;
|
|
this.remoteLoading = false;
|
|
let result = res.data;
|
|
let result = res.data;
|
|
if (result.code == 200) {
|
|
if (result.code == 200) {
|
|
// Array.prototype.splice.apply(this.studentList, result.data.rows);
|
|
// Array.prototype.splice.apply(this.studentList, result.data.rows);
|
|
if (result.data && result.data.rows.length > 0) {
|
|
if (result.data && result.data.rows.length > 0) {
|
|
- result.data.rows.forEach((item) => {
|
|
|
|
|
|
+ result.data.rows.forEach(item => {
|
|
this.teacherList.unshift(item);
|
|
this.teacherList.unshift(item);
|
|
});
|
|
});
|
|
this.teacherList = this.deweight(this.teacherList, "phone");
|
|
this.teacherList = this.deweight(this.teacherList, "phone");
|
|
@@ -738,25 +534,25 @@ export default {
|
|
method: "get",
|
|
method: "get",
|
|
headers: {
|
|
headers: {
|
|
Authorization: getToken(),
|
|
Authorization: getToken(),
|
|
- tenantId: getTenantId(),
|
|
|
|
|
|
+ tenantId: getTenantId()
|
|
},
|
|
},
|
|
params: {
|
|
params: {
|
|
rows: 9999,
|
|
rows: 9999,
|
|
search: query,
|
|
search: query,
|
|
lockFlag: 0,
|
|
lockFlag: 0,
|
|
- demissionFlag: false,
|
|
|
|
|
|
+ demissionFlag: false
|
|
},
|
|
},
|
|
- url,
|
|
|
|
|
|
+ url
|
|
};
|
|
};
|
|
this.remoteLoading = true;
|
|
this.remoteLoading = true;
|
|
|
|
|
|
- axios(options).then((res) => {
|
|
|
|
|
|
+ axios(options).then(res => {
|
|
this.remoteLoading = false;
|
|
this.remoteLoading = false;
|
|
let result = res.data;
|
|
let result = res.data;
|
|
if (result.code == 200) {
|
|
if (result.code == 200) {
|
|
// Array.prototype.splice.apply(this.studentList, result.data.rows);
|
|
// Array.prototype.splice.apply(this.studentList, result.data.rows);
|
|
if (result.data && result.data.rows.length > 0) {
|
|
if (result.data && result.data.rows.length > 0) {
|
|
- result.data.rows.forEach((item) => {
|
|
|
|
|
|
+ result.data.rows.forEach(item => {
|
|
this.educationList.unshift(item);
|
|
this.educationList.unshift(item);
|
|
});
|
|
});
|
|
this.educationList = this.deweight(this.educationList, "phone");
|
|
this.educationList = this.deweight(this.educationList, "phone");
|
|
@@ -768,9 +564,9 @@ export default {
|
|
},
|
|
},
|
|
deweight(arr, key) {
|
|
deweight(arr, key) {
|
|
let res = [];
|
|
let res = [];
|
|
- arr.forEach((item) => {
|
|
|
|
|
|
+ arr.forEach(item => {
|
|
let list = [];
|
|
let list = [];
|
|
- res.forEach((resitem) => {
|
|
|
|
|
|
+ res.forEach(resitem => {
|
|
list.push(resitem[key]);
|
|
list.push(resitem[key]);
|
|
});
|
|
});
|
|
if (list.indexOf(item[key]) === -1) {
|
|
if (list.indexOf(item[key]) === -1) {
|
|
@@ -789,7 +585,7 @@ export default {
|
|
this.form.popularizeOrgIds = this.form.organIds.join(",");
|
|
this.form.popularizeOrgIds = this.form.organIds.join(",");
|
|
this.form.popularizeSchoolIds = this.form.schoolIds.join(",");
|
|
this.form.popularizeSchoolIds = this.form.schoolIds.join(",");
|
|
this.form.popularizeTeamIds = this.form.teamIds.join(",");
|
|
this.form.popularizeTeamIds = this.form.teamIds.join(",");
|
|
- this.$refs.form.validate(async (flag) => {
|
|
|
|
|
|
+ this.$refs.form.validate(async flag => {
|
|
if (!flag) return;
|
|
if (!flag) return;
|
|
if (this.$route.query.id) {
|
|
if (this.$route.query.id) {
|
|
// 修改
|
|
// 修改
|
|
@@ -828,7 +624,7 @@ export default {
|
|
if (this.form.popularizeType == "SCHOOL" && val && val.length > 0) {
|
|
if (this.form.popularizeType == "SCHOOL" && val && val.length > 0) {
|
|
let organId = val.join(",");
|
|
let organId = val.join(",");
|
|
try {
|
|
try {
|
|
- await queryByOrganId({ organId }).then((res) => {
|
|
|
|
|
|
+ await queryByOrganId({ organId }).then(res => {
|
|
if (res.code == 200) {
|
|
if (res.code == 200) {
|
|
this.cooperationList = res.data;
|
|
this.cooperationList = res.data;
|
|
}
|
|
}
|
|
@@ -840,7 +636,7 @@ export default {
|
|
if (this.form.popularizeType == "TEAM" && val && val.length > 0) {
|
|
if (this.form.popularizeType == "TEAM" && val && val.length > 0) {
|
|
let organId = val.join(",");
|
|
let organId = val.join(",");
|
|
try {
|
|
try {
|
|
- await getTeamList({ organId, page: 1, rows: 9999 }).then((res) => {
|
|
|
|
|
|
+ await getTeamList({ organId, page: 1, rows: 9999 }).then(res => {
|
|
if (res.code == 200) {
|
|
if (res.code == 200) {
|
|
this.teamList = res.data.rows;
|
|
this.teamList = res.data.rows;
|
|
}
|
|
}
|
|
@@ -849,49 +645,59 @@ export default {
|
|
console.log(e);
|
|
console.log(e);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- },
|
|
|
|
- },
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
.nomb {
|
|
.nomb {
|
|
margin-bottom: 0px !important;
|
|
margin-bottom: 0px !important;
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .mline {
|
|
::v-deep .mline {
|
|
.el-form-item__content {
|
|
.el-form-item__content {
|
|
display: inline-block !important;
|
|
display: inline-block !important;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .el-form--inline {
|
|
::v-deep .el-form--inline {
|
|
.el-form-item__content {
|
|
.el-form-item__content {
|
|
display: block;
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .el-select {
|
|
::v-deep .el-select {
|
|
width: 300px !important;
|
|
width: 300px !important;
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .el-date-editor {
|
|
::v-deep .el-date-editor {
|
|
width: 300px !important;
|
|
width: 300px !important;
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .el-checkbox {
|
|
::v-deep .el-checkbox {
|
|
margin-left: 15px !important;
|
|
margin-left: 15px !important;
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .el-input {
|
|
::v-deep .el-input {
|
|
position: relative;
|
|
position: relative;
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
display: inline-block;
|
|
display: inline-block;
|
|
width: 300px;
|
|
width: 300px;
|
|
}
|
|
}
|
|
|
|
+
|
|
.row {
|
|
.row {
|
|
padding-left: 24px;
|
|
padding-left: 24px;
|
|
}
|
|
}
|
|
|
|
+
|
|
::v-deep .el-textarea__inner {
|
|
::v-deep .el-textarea__inner {
|
|
width: 600px;
|
|
width: 600px;
|
|
}
|
|
}
|
|
|
|
+
|
|
.chioseWrap {
|
|
.chioseWrap {
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-direction: row;
|
|
justify-content: flex-start;
|
|
justify-content: flex-start;
|
|
|
|
+
|
|
.chioseItem {
|
|
.chioseItem {
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -900,6 +706,7 @@ export default {
|
|
width: 188px;
|
|
width: 188px;
|
|
height: 188px;
|
|
height: 188px;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
|
+
|
|
.remberBox {
|
|
.remberBox {
|
|
.wrap {
|
|
.wrap {
|
|
width: 100px;
|
|
width: 100px;
|
|
@@ -908,6 +715,7 @@ export default {
|
|
position: absolute;
|
|
position: absolute;
|
|
// background-color: red;
|
|
// background-color: red;
|
|
}
|
|
}
|
|
|
|
+
|
|
display: flex;
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-direction: row;
|
|
justify-content: flex-start;
|
|
justify-content: flex-start;
|
|
@@ -920,11 +728,13 @@ export default {
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 1px;
|
|
top: 1px;
|
|
right: 1px;
|
|
right: 1px;
|
|
|
|
+
|
|
.chioseBox {
|
|
.chioseBox {
|
|
::v-deep .el-checkbox__inner {
|
|
::v-deep .el-checkbox__inner {
|
|
width: 20px;
|
|
width: 20px;
|
|
height: 20px;
|
|
height: 20px;
|
|
border-radius: 50%;
|
|
border-radius: 50%;
|
|
|
|
+
|
|
&::after {
|
|
&::after {
|
|
height: 8px;
|
|
height: 8px;
|
|
left: 6px;
|
|
left: 6px;
|
|
@@ -934,6 +744,7 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
.dotWrap {
|
|
.dotWrap {
|
|
width: 21px;
|
|
width: 21px;
|
|
height: 21px;
|
|
height: 21px;
|
|
@@ -942,6 +753,7 @@ export default {
|
|
margin-right: 8px;
|
|
margin-right: 8px;
|
|
position: relative;
|
|
position: relative;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
|
+
|
|
&.checked {
|
|
&.checked {
|
|
background: url("../../assets/images/icon_checkbox.png") no-repeat center;
|
|
background: url("../../assets/images/icon_checkbox.png") no-repeat center;
|
|
background-size: contain;
|
|
background-size: contain;
|