|
@@ -179,7 +179,7 @@
|
|
|
style="margin-bottom: 15px;"
|
|
style="margin-bottom: 15px;"
|
|
|
prop="videoId"
|
|
prop="videoId"
|
|
|
>
|
|
>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<el-select
|
|
<el-select
|
|
|
v-model="addForm.courseId"
|
|
v-model="addForm.courseId"
|
|
|
placeholder="默认50条,可输入关键字检索"
|
|
placeholder="默认50条,可输入关键字检索"
|
|
@@ -257,7 +257,7 @@
|
|
|
>
|
|
>
|
|
|
<el-row style="padding-bottom: 20px">
|
|
<el-row style="padding-bottom: 20px">
|
|
|
<el-col :span="22">
|
|
<el-col :span="22">
|
|
|
- <el-form
|
|
|
|
|
|
|
+ <el-form
|
|
|
:model="content"
|
|
:model="content"
|
|
|
label-width="70px"
|
|
label-width="70px"
|
|
|
>
|
|
>
|
|
@@ -265,12 +265,12 @@
|
|
|
style="margin: 2%"
|
|
style="margin: 2%"
|
|
|
>
|
|
>
|
|
|
<div>
|
|
<div>
|
|
|
- <el-radio-group
|
|
|
|
|
|
|
+ <el-radio-group
|
|
|
v-model="content.contentType"
|
|
v-model="content.contentType"
|
|
|
@change="handleContentTypeChange()"
|
|
@change="handleContentTypeChange()"
|
|
|
>
|
|
>
|
|
|
<el-radio
|
|
<el-radio
|
|
|
- :disabled="!addForm.canOp || !['11', '20'].includes(item.dictValue)"
|
|
|
|
|
|
|
+ :disabled="!addForm.canOp || !['9','11', '20', '21'].includes(item.dictValue)"
|
|
|
:key="item.dictValue"
|
|
:key="item.dictValue"
|
|
|
:label="item.dictValue"
|
|
:label="item.dictValue"
|
|
|
v-for="item in sysQwSopAiContentType"
|
|
v-for="item in sysQwSopAiContentType"
|
|
@@ -283,10 +283,10 @@
|
|
|
|
|
|
|
|
<!-- 科普 -->
|
|
<!-- 科普 -->
|
|
|
<el-form-item label="内容" v-if="[9].includes(Number(content.contentType))">
|
|
<el-form-item label="内容" v-if="[9].includes(Number(content.contentType))">
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<div>
|
|
<div>
|
|
|
<el-card class="box-card">
|
|
<el-card class="box-card">
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="链接标题:"
|
|
label="链接标题:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
required
|
|
required
|
|
@@ -298,7 +298,7 @@
|
|
|
:disabled="!addForm.canOp"
|
|
:disabled="!addForm.canOp"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="链接描述:"
|
|
label="链接描述:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
required
|
|
required
|
|
@@ -312,7 +312,7 @@
|
|
|
style="width: 90%;margin-top: 1%;"
|
|
style="width: 90%;margin-top: 1%;"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="链接封面:"
|
|
label="链接封面:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
required
|
|
required
|
|
@@ -328,11 +328,11 @@
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<div>
|
|
<div>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="链接地址:"
|
|
label="链接地址:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
>
|
|
>
|
|
|
- <el-tag
|
|
|
|
|
|
|
+ <el-tag
|
|
|
type="warning"
|
|
type="warning"
|
|
|
v-model="content.isBindUrl"
|
|
v-model="content.isBindUrl"
|
|
|
>选择的科普小节
|
|
>选择的科普小节
|
|
@@ -340,11 +340,11 @@
|
|
|
</el-tag>
|
|
</el-tag>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="课节过期时间"
|
|
label="课节过期时间"
|
|
|
>
|
|
>
|
|
|
<el-row>
|
|
<el-row>
|
|
|
- <el-input
|
|
|
|
|
|
|
+ <el-input
|
|
|
type="number"
|
|
type="number"
|
|
|
v-model="content.expiresDays"
|
|
v-model="content.expiresDays"
|
|
|
style="width: 200px"
|
|
style="width: 200px"
|
|
@@ -413,7 +413,7 @@
|
|
|
<el-form-item label="内容" v-else-if="[6].includes(Number(content.contentType))">
|
|
<el-form-item label="内容" v-else-if="[6].includes(Number(content.contentType))">
|
|
|
|
|
|
|
|
<div>
|
|
<div>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="上传视频:"
|
|
label="上传视频:"
|
|
|
prop="videoUrl"
|
|
prop="videoUrl"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
@@ -429,7 +429,7 @@
|
|
|
>
|
|
>
|
|
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
- <video
|
|
|
|
|
|
|
+ <video
|
|
|
v-if="content.videoUrl"
|
|
v-if="content.videoUrl"
|
|
|
:src="content.videoUrl"
|
|
:src="content.videoUrl"
|
|
|
controls
|
|
controls
|
|
@@ -443,9 +443,9 @@
|
|
|
|
|
|
|
|
<!-- 疗法 -->
|
|
<!-- 疗法 -->
|
|
|
<el-form-item label="内容" v-else-if="[20].includes(Number(content.contentType))">
|
|
<el-form-item label="内容" v-else-if="[20].includes(Number(content.contentType))">
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<el-card class="box-card">
|
|
<el-card class="box-card">
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="选择疗法:"
|
|
label="选择疗法:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
required
|
|
required
|
|
@@ -471,7 +471,7 @@
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="疗法名称:"
|
|
label="疗法名称:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
>
|
|
>
|
|
@@ -482,11 +482,11 @@
|
|
|
style="width: 90%;margin-top: 1%;"
|
|
style="width: 90%;margin-top: 1%;"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
label="疗法封面:"
|
|
label="疗法封面:"
|
|
|
label-width="100px"
|
|
label-width="100px"
|
|
|
>
|
|
>
|
|
|
- <ImageUpload
|
|
|
|
|
|
|
+ <ImageUpload
|
|
|
:disabled="true"
|
|
:disabled="true"
|
|
|
v-model="content.packageImgUrl"
|
|
v-model="content.packageImgUrl"
|
|
|
type="image"
|
|
type="image"
|
|
@@ -501,15 +501,73 @@
|
|
|
|
|
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
+ <!-- 直播 -->
|
|
|
|
|
+ <el-form-item label="内容" v-else-if="[21].includes(Number(content.contentType))">
|
|
|
|
|
+ <el-card class="box-card">
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ label="直播间:"
|
|
|
|
|
+ label-width="100px"
|
|
|
|
|
+ required
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ :disabled="!addForm.canOp"
|
|
|
|
|
+ v-model="content.liveId"
|
|
|
|
|
+ placeholder="请选择直播间"
|
|
|
|
|
+ style="margin-right: 10px; width: 230px;"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ clearable
|
|
|
|
|
+ @change="liveChangeUpdate(content)"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in liveList"
|
|
|
|
|
+ :key="dict.liveId"
|
|
|
|
|
+ :label="dict.liveName"
|
|
|
|
|
+ :value="parseInt(dict.liveId)"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ label="标题:"
|
|
|
|
|
+ label-width="100px"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ disabled
|
|
|
|
|
+ type="textarea"
|
|
|
|
|
+ :rows="2"
|
|
|
|
|
+ maxlength="64"
|
|
|
|
|
+ v-model="content.liveTitle"
|
|
|
|
|
+ placeholder="请输入消息标题,最长为64字节"
|
|
|
|
|
+ style="width: 90%;margin-top: 1%;"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ label="封面:"
|
|
|
|
|
+ label-width="100px"
|
|
|
|
|
+ >
|
|
|
|
|
+ <ImageUpload
|
|
|
|
|
+ :disabled="true"
|
|
|
|
|
+ v-model="content.liveImgUrl"
|
|
|
|
|
+ type="image"
|
|
|
|
|
+ :num="1"
|
|
|
|
|
+ :file-size="1"
|
|
|
|
|
+ :width="150"
|
|
|
|
|
+ :height="150"
|
|
|
|
|
+ style="margin-top: 1%;"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
|
|
|
|
|
- <el-col
|
|
|
|
|
|
|
+ <el-col
|
|
|
:span="1"
|
|
:span="1"
|
|
|
:offset="1"
|
|
:offset="1"
|
|
|
>
|
|
>
|
|
|
<!-- 删除内容节点 -->
|
|
<!-- 删除内容节点 -->
|
|
|
- <i
|
|
|
|
|
|
|
+ <i
|
|
|
class="el-icon-delete"
|
|
class="el-icon-delete"
|
|
|
@click="delContentNode(contentIndex)"
|
|
@click="delContentNode(contentIndex)"
|
|
|
style="margin-top: 20px;"
|
|
style="margin-top: 20px;"
|
|
@@ -544,7 +602,7 @@
|
|
|
只作用于此客服
|
|
只作用于此客服
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" v-if="addForm.canOp" @click="submitForm">确 定</el-button>
|
|
<el-button type="primary" v-if="addForm.canOp" @click="submitForm">确 定</el-button>
|
|
@@ -575,6 +633,7 @@ import {
|
|
|
} from "@/api/app/course/courseFinishTemp";
|
|
} from "@/api/app/course/courseFinishTemp";
|
|
|
import { courseList, videoList } from "@/api/app/course";
|
|
import { courseList, videoList } from "@/api/app/course";
|
|
|
import { getPackageOptions,} from "@/api/app/pkg";
|
|
import { getPackageOptions,} from "@/api/app/pkg";
|
|
|
|
|
+import { getLiveOptions,} from "@/api/app/live";
|
|
|
import ImageUpload from "@/views/qw/sop/ImageUpload.vue";
|
|
import ImageUpload from "@/views/qw/sop/ImageUpload.vue";
|
|
|
import CusRoleList from '@/views/app/user/CusRoleList.vue';
|
|
import CusRoleList from '@/views/app/user/CusRoleList.vue';
|
|
|
import {listRole} from '@/api/app/user/userList';
|
|
import {listRole} from '@/api/app/user/userList';
|
|
@@ -598,6 +657,7 @@ export default {
|
|
|
courseList: [],
|
|
courseList: [],
|
|
|
videoList: [],
|
|
videoList: [],
|
|
|
pkgList: [],
|
|
pkgList: [],
|
|
|
|
|
+ liveList: [],
|
|
|
queryCourseList: [],
|
|
queryCourseList: [],
|
|
|
queryVideoList: [],
|
|
queryVideoList: [],
|
|
|
// 遮罩层
|
|
// 遮罩层
|
|
@@ -683,6 +743,8 @@ export default {
|
|
|
this.queryCourseList = courseList.list;
|
|
this.queryCourseList = courseList.list;
|
|
|
let defaultPkg = await this.getPkgList(null, null);
|
|
let defaultPkg = await this.getPkgList(null, null);
|
|
|
this.pkgList = defaultPkg.data;
|
|
this.pkgList = defaultPkg.data;
|
|
|
|
|
+ let defaultLive = await this.getLiveList();
|
|
|
|
|
+ this.liveList = defaultLive.data || [];
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
//--------------------------------------------------------------列表 begin---------------------------------------------------------
|
|
//--------------------------------------------------------------列表 begin---------------------------------------------------------
|
|
@@ -713,7 +775,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 多选框选中数据
|
|
* 多选框选中数据
|
|
|
- * @param selection
|
|
|
|
|
|
|
+ * @param selection
|
|
|
*/
|
|
*/
|
|
|
handleSelectionChange(selection) {
|
|
handleSelectionChange(selection) {
|
|
|
this.ids = selection.map((item) => item.id);
|
|
this.ids = selection.map((item) => item.id);
|
|
@@ -735,7 +797,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 修改按钮操作
|
|
* 修改按钮操作
|
|
|
- * @param row
|
|
|
|
|
|
|
+ * @param row
|
|
|
*/
|
|
*/
|
|
|
async handleUpdate(row, canOp) {
|
|
async handleUpdate(row, canOp) {
|
|
|
this.reset();
|
|
this.reset();
|
|
@@ -766,7 +828,7 @@ export default {
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
})
|
|
})
|
|
|
if (info.data.appCustomerIds) {
|
|
if (info.data.appCustomerIds) {
|
|
|
let userInfo = await listRole({ids: info.data.appCustomerIds});
|
|
let userInfo = await listRole({ids: info.data.appCustomerIds});
|
|
@@ -782,7 +844,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 删除按钮操作
|
|
* 删除按钮操作
|
|
|
- * @param row
|
|
|
|
|
|
|
+ * @param row
|
|
|
*/
|
|
*/
|
|
|
handleDelete(row) {
|
|
handleDelete(row) {
|
|
|
const ids = row.id || this.ids;
|
|
const ids = row.id || this.ids;
|
|
@@ -808,7 +870,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 选中的用户列表
|
|
* 选中的用户列表
|
|
|
- * @param list
|
|
|
|
|
|
|
+ * @param list
|
|
|
*/
|
|
*/
|
|
|
customerSelectionChangeCallForBind(config) {
|
|
customerSelectionChangeCallForBind(config) {
|
|
|
let selected = config.selected;
|
|
let selected = config.selected;
|
|
@@ -874,7 +936,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 校验数据
|
|
* 校验数据
|
|
|
- * @param data
|
|
|
|
|
|
|
+ * @param data
|
|
|
*/
|
|
*/
|
|
|
checkData(data) {
|
|
checkData(data) {
|
|
|
|
|
|
|
@@ -934,8 +996,12 @@ export default {
|
|
|
this.$message.error("疗法不能为空")
|
|
this.$message.error("疗法不能为空")
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (21 == setting.contentType && this.isEmpty(setting.liveId)) {
|
|
|
|
|
+ this.$message.error("直播间不能为空")
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
return true;
|
|
return true;
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
@@ -966,7 +1032,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 科普小节变化
|
|
* 科普小节变化
|
|
|
- * @param mode 模式,0-查询列表,1-新增编辑页
|
|
|
|
|
|
|
+ * @param mode 模式,0-查询列表,1-新增编辑页
|
|
|
*/
|
|
*/
|
|
|
videoIdChange(mode) {
|
|
videoIdChange(mode) {
|
|
|
if (mode == 1) {
|
|
if (mode == 1) {
|
|
@@ -994,8 +1060,8 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 疗法下拉搜索
|
|
* 疗法下拉搜索
|
|
|
- * @param keyword
|
|
|
|
|
- * @param content
|
|
|
|
|
|
|
+ * @param keyword
|
|
|
|
|
+ * @param content
|
|
|
*/
|
|
*/
|
|
|
async handlePkgRemoteSearch(keyword, content) {
|
|
async handlePkgRemoteSearch(keyword, content) {
|
|
|
content.meta.pkgLoading = true;
|
|
content.meta.pkgLoading = true;
|
|
@@ -1006,7 +1072,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 删除内容节点
|
|
* 删除内容节点
|
|
|
- * @param index
|
|
|
|
|
|
|
+ * @param index
|
|
|
*/
|
|
*/
|
|
|
delContentNode(index){
|
|
delContentNode(index){
|
|
|
this.addForm.setting.splice(index, 1)
|
|
this.addForm.setting.splice(index, 1)
|
|
@@ -1036,7 +1102,7 @@ export default {
|
|
|
: null;
|
|
: null;
|
|
|
for (let i = 0; i < this.addForm.setting.length; i++) {
|
|
for (let i = 0; i < this.addForm.setting.length; i++) {
|
|
|
let contentItem = this.addForm.setting[i];
|
|
let contentItem = this.addForm.setting[i];
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 科普
|
|
// 科普
|
|
|
if (Number(contentItem.contentType) === 9) {
|
|
if (Number(contentItem.contentType) === 9) {
|
|
|
// 处理科普链接标题/封面
|
|
// 处理科普链接标题/封面
|
|
@@ -1064,11 +1130,18 @@ export default {
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ // 直播:无 liveId 时清空标题封面
|
|
|
|
|
+ else if (Number(contentItem.contentType) === 21) {
|
|
|
|
|
+ if (contentItem.liveId == null || contentItem.liveId === '') {
|
|
|
|
|
+ this.$set(contentItem, 'liveTitle', null);
|
|
|
|
|
+ this.$set(contentItem, 'liveImgUrl', null);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 疗法变动处理
|
|
* 疗法变动处理
|
|
|
- * @param content
|
|
|
|
|
|
|
+ * @param content
|
|
|
*/
|
|
*/
|
|
|
async pkgChangeUpdate(content) {
|
|
async pkgChangeUpdate(content) {
|
|
|
//将当前规则已选中的视频小节清空
|
|
//将当前规则已选中的视频小节清空
|
|
@@ -1081,6 +1154,22 @@ export default {
|
|
|
this.$set(content, 'packageImgUrl', selectedPkg.imgUrl);
|
|
this.$set(content, 'packageImgUrl', selectedPkg.imgUrl);
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 直播间切换
|
|
|
|
|
+ * @param content
|
|
|
|
|
+ */
|
|
|
|
|
+ liveChangeUpdate(content) {
|
|
|
|
|
+ this.$set(content, 'liveTitle', null);
|
|
|
|
|
+ this.$set(content, 'liveImgUrl', null);
|
|
|
|
|
+ if (content.liveId == null || content.liveId === '') {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ const selectedLive = this.liveList.find(live => parseInt(live.liveId) === parseInt(content.liveId));
|
|
|
|
|
+ if (selectedLive) {
|
|
|
|
|
+ this.$set(content, 'liveTitle', selectedLive.liveName);
|
|
|
|
|
+ this.$set(content, 'liveImgUrl', selectedLive.liveImgUrl);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
/**
|
|
/**
|
|
|
* 打开选择客服的对话框
|
|
* 打开选择客服的对话框
|
|
|
*/
|
|
*/
|
|
@@ -1089,7 +1178,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 删除客服
|
|
* 删除客服
|
|
|
- * @param list
|
|
|
|
|
|
|
+ * @param list
|
|
|
*/
|
|
*/
|
|
|
handleCloseCustomer(node) {
|
|
handleCloseCustomer(node) {
|
|
|
const index = this.customerConfig.selected.findIndex(t => t == node);
|
|
const index = this.customerConfig.selected.findIndex(t => t == node);
|
|
@@ -1174,8 +1263,8 @@ export default {
|
|
|
},
|
|
},
|
|
|
/**
|
|
/**
|
|
|
* 根据科普获取视频小节
|
|
* 根据科普获取视频小节
|
|
|
- * @param courseId
|
|
|
|
|
- * @param title
|
|
|
|
|
|
|
+ * @param courseId
|
|
|
|
|
+ * @param title
|
|
|
*/
|
|
*/
|
|
|
async getVideoList(courseId, title) {
|
|
async getVideoList(courseId, title) {
|
|
|
return await videoList({
|
|
return await videoList({
|
|
@@ -1194,9 +1283,15 @@ export default {
|
|
|
};
|
|
};
|
|
|
return await getPackageOptions(data);
|
|
return await getPackageOptions(data);
|
|
|
},
|
|
},
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取直播间信息
|
|
|
|
|
+ */
|
|
|
|
|
+ async getLiveList() {
|
|
|
|
|
+ return await getLiveOptions();
|
|
|
|
|
+ },
|
|
|
/**
|
|
/**
|
|
|
* 空校验
|
|
* 空校验
|
|
|
- * @param obj
|
|
|
|
|
|
|
+ * @param obj
|
|
|
*/
|
|
*/
|
|
|
isEmpty(obj) {
|
|
isEmpty(obj) {
|
|
|
return obj === null || obj === undefined || obj.length === 0;
|
|
return obj === null || obj === undefined || obj.length === 0;
|