|
@@ -11,38 +11,50 @@
|
|
|
ref="form"
|
|
|
label-width="120px"
|
|
|
style="width: 100%">
|
|
|
- <el-form-item label="标题"
|
|
|
- prop="title">
|
|
|
+ <el-form-item label="标题" prop="title">
|
|
|
<el-input v-model.trim="form.title"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="排序值">
|
|
|
<el-input v-model.trim="form.order"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="适用范围"
|
|
|
- prop="tenantId">
|
|
|
+ <el-form-item label="适用范围" prop="tenantId">
|
|
|
<el-select v-model="form.tenantId">
|
|
|
- <el-option label="对内"
|
|
|
- value="1"></el-option>
|
|
|
- <el-option label="对外"
|
|
|
- value="2"></el-option>
|
|
|
+ <el-option label="对内" value="1"></el-option>
|
|
|
+ <el-option label="对外" value="2"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<!-- banner图 && app按钮管理,才需要添加版本号 -->
|
|
|
- <el-form-item label="版本号"
|
|
|
- v-if="type == 3 || type == 6 || type == 8">
|
|
|
+ <el-form-item label="版本号" v-if="type == 3 || type == 6 || type == 8">
|
|
|
<el-input v-model="form.memo"></el-input>
|
|
|
</el-form-item>
|
|
|
<!-- -->
|
|
|
- <el-form-item v-if="type == 3 || type == 6 || type == 5 || type == 8"
|
|
|
- label="链接地址">
|
|
|
+ <el-form-item v-if="type == 3 || type == 6 || type == 5 || type == 8" label="链接地址">
|
|
|
<el-input v-model.trim="form.linkUrl"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-else
|
|
|
- label="链接地址"
|
|
|
- prop="linkUrl">
|
|
|
+ <el-form-item v-else label="链接地址" prop="linkUrl">
|
|
|
<el-input v-model.trim="form.linkUrl"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item :label="type == 8 ? '广告图' : '封面图'"
|
|
|
+ <!-- 广告管理才有类型 -->
|
|
|
+ <el-form-item label="类型" v-if="type == 8">
|
|
|
+ <el-select v-model="uploadType">
|
|
|
+ <el-option label="图片" :value="1"></el-option>
|
|
|
+ <el-option label="视频" :value="2"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item v-if="uploadType == 2" key="coverImage" label="广告视频" prop="coverImage">
|
|
|
+ <div @click="addAdvVideo" style="display: inline-block;">
|
|
|
+ <video class="avatar"
|
|
|
+ v-if="form.coverImage"
|
|
|
+ type="video/mp4"
|
|
|
+ preload="auto"
|
|
|
+ controls
|
|
|
+ :poster="form.videoCoverImage"
|
|
|
+ :src="form.coverImage"></video>
|
|
|
+ <i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-else key="coverImage" :label="type == 8 ? '广告图' : '封面图'"
|
|
|
prop="coverImage">
|
|
|
<el-upload class="avatar-uploader"
|
|
|
action="/api-web/uploadFile"
|
|
@@ -51,15 +63,23 @@
|
|
|
accept=".jpg, .jpeg, .png"
|
|
|
:on-success="handleAvatarSuccess"
|
|
|
:before-upload="beforeAvatarUpload">
|
|
|
+ <!-- 判断是图片还是视频 -->
|
|
|
<img v-if="form.coverImage"
|
|
|
- :src="form.coverImage"
|
|
|
- class="avatar" />
|
|
|
+ :src="form.coverImage"
|
|
|
+ class="avatar" />
|
|
|
<i v-else
|
|
|
class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
</el-upload>
|
|
|
<p class="imageSize"
|
|
|
v-if="imageSize">上传图片尺寸为:{{ imageSize }}</p>
|
|
|
</el-form-item>
|
|
|
+ <!-- 广告管理才有时长 -->
|
|
|
+ <el-form-item label="显示时长" prop="attribute1" v-if="type == 8">
|
|
|
+ <el-input type="number" v-model.number="form.attribute1"></el-input>
|
|
|
+ <p style="color: red">建议时长不超过5秒</p>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <!-- 知识库管理才会有类型 -->
|
|
|
<el-form-item v-if="type == 7"
|
|
|
label="知识类别"
|
|
|
prop="subType">
|
|
@@ -111,9 +131,6 @@
|
|
|
:rules="dialogFormRules">
|
|
|
<el-form-item label="封面图地址"
|
|
|
label-width="90px">
|
|
|
- <!-- <el-input v-model="dialogForm.poster"
|
|
|
- style="width: 100%;"
|
|
|
- autocomplete="off"></el-input> -->
|
|
|
<el-upload class="avatar-uploader"
|
|
|
style="line-height: 0;display: inline-block"
|
|
|
action="/api-web/uploadFile"
|
|
@@ -150,9 +167,6 @@
|
|
|
label="上传视频"
|
|
|
label-width="90px"
|
|
|
prop="videoUrl">
|
|
|
- <!-- <el-input v-model="dialogForm.url"
|
|
|
- style="width: 100%;"
|
|
|
- autocomplete="off"></el-input> -->
|
|
|
<el-upload class="upload-demo"
|
|
|
style="display: inline-block"
|
|
|
v-loading="uploadLoading"
|
|
@@ -255,6 +269,17 @@ const titleConfig = {
|
|
|
"ql-upload": "文件"
|
|
|
};
|
|
|
|
|
|
+let validNum = (rule, value, callback) => {
|
|
|
+ console.log(value)
|
|
|
+ console.log(typeof value)
|
|
|
+ if (typeof value == 'string' || value == null) {
|
|
|
+ callback(new Error('请输入显示时长'))
|
|
|
+ } else if (value < 0) {
|
|
|
+ callback(new Error('输入显示时长必须大于0'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+}
|
|
|
// 这里引入修改过的video模块并注册
|
|
|
import Video from "../quill/video.js";
|
|
|
import dayjs from 'dayjs'
|
|
@@ -267,8 +292,18 @@ export default {
|
|
|
data () {
|
|
|
let that = this;
|
|
|
const query = this.$route.query
|
|
|
- const url = query.type == 7 ? vaildStudentUrl() + "/#/knowledge" : vaildStudentUrl() + "/#/specialdetail"
|
|
|
+ let url = ''
|
|
|
+ // let url = query.type == 7 ? vaildStudentUrl() + "/#/knowledge" : vaildStudentUrl() + "/#/specialdetail"
|
|
|
+ if(query.type == 7) {
|
|
|
+ url = vaildStudentUrl() + "/#/knowledge"
|
|
|
+ } else if(query.type == 8) {
|
|
|
+ url = ''
|
|
|
+ } else {
|
|
|
+ url = vaildStudentUrl() + "/#/specialdetail"
|
|
|
+ }
|
|
|
return {
|
|
|
+ uploadType: 1, // 上传类型
|
|
|
+ uploadStatus: false,
|
|
|
categoryList: [],
|
|
|
type: query.type,
|
|
|
pageType: query.pageType,
|
|
@@ -281,7 +316,7 @@ export default {
|
|
|
formRadio: 1,
|
|
|
lookVisible: false,
|
|
|
dataInfo: {
|
|
|
- title: '知识库13',
|
|
|
+ title: '',
|
|
|
type: query.type,
|
|
|
updateTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
|
|
content: null
|
|
@@ -331,6 +366,8 @@ export default {
|
|
|
title: null,
|
|
|
order: null,
|
|
|
coverImage: null,
|
|
|
+ videoCoverImage: null,
|
|
|
+ attribute1: null, // 时长
|
|
|
linkUrl: url,
|
|
|
type: query.type,
|
|
|
status: 1,
|
|
@@ -346,8 +383,11 @@ export default {
|
|
|
linkUrl: [
|
|
|
{ required: true, message: "请输入连接地址", trigger: "blur" }
|
|
|
],
|
|
|
+ attribute1: [
|
|
|
+ {required: true, validator: validNum, trigger: 'blur'}
|
|
|
+ ],
|
|
|
coverImage: [
|
|
|
- { required: true, message: "请选择封面图", trigger: "blur" }
|
|
|
+ { required: true, message: '请选择封面图或广告视频', trigger: "blur" }
|
|
|
],
|
|
|
content: [{ required: true, message: "请编辑内容", trigger: "blur" }],
|
|
|
tenantId: [{ required: true, message: "请选择适用范围", trigger: "change" }],
|
|
@@ -363,11 +403,21 @@ export default {
|
|
|
activated () {
|
|
|
const query = this.$route.query
|
|
|
if (query.pageType == "create") {
|
|
|
+ let url = ''
|
|
|
+ if(query.type == 7) {
|
|
|
+ url = vaildStudentUrl() + "/#/knowledge"
|
|
|
+ } else if(query.type == 8) {
|
|
|
+ url = ''
|
|
|
+ } else {
|
|
|
+ url = vaildStudentUrl() + "/#/specialdetail"
|
|
|
+ }
|
|
|
this.form = {
|
|
|
title: null,
|
|
|
order: null,
|
|
|
coverImage: null,
|
|
|
- linkUrl: query.type == 7 ? vaildStudentUrl() + "/#/knowledge" : vaildStudentUrl() + "/#/specialdetail",
|
|
|
+ videoCoverImage: null,
|
|
|
+ attribute1: null,
|
|
|
+ linkUrl: url,
|
|
|
type: query.type,
|
|
|
status: 1,
|
|
|
content: null,
|
|
@@ -405,20 +455,34 @@ export default {
|
|
|
};
|
|
|
this.imageSize = tempTitle[this.form.type];
|
|
|
},
|
|
|
+ addAdvVideo() {
|
|
|
+ this.dialogFormVisible = true
|
|
|
+ this.uploadStatus = true
|
|
|
+ },
|
|
|
onVideoComfirm (formName) {
|
|
|
this.$refs[formName].validate(valid => {
|
|
|
if (valid) {
|
|
|
let dialogForm = this.dialogForm;
|
|
|
- // 获取富文本组件实例
|
|
|
- let quill = this.editor;
|
|
|
- // 插入图片,res为服务器返回的图片链接地址
|
|
|
- const params = {
|
|
|
- poster: dialogForm.poster,
|
|
|
- url: this.formRadio == 1 ? dialogForm.url : dialogForm.videoUrl,
|
|
|
+ if(this.uploadStatus) {
|
|
|
+ // 添加视频类型
|
|
|
+ let form = this.form
|
|
|
+ form.coverImage = this.formRadio == 1 ? dialogForm.url : dialogForm.videoUrl
|
|
|
+ form.videoCoverImage = dialogForm.poster
|
|
|
+
|
|
|
+ this.uploadStatus = false
|
|
|
+ } else {
|
|
|
+ // 编辑器输入视频
|
|
|
+ // 获取富文本组件实例
|
|
|
+ let quill = this.editor;
|
|
|
+ // 插入图片,res为服务器返回的图片链接地址
|
|
|
+ const params = {
|
|
|
+ poster: dialogForm.poster,
|
|
|
+ url: this.formRadio == 1 ? dialogForm.url : dialogForm.videoUrl,
|
|
|
+ }
|
|
|
+ quill.insertEmbed(this.editorIndex, "video", params);
|
|
|
+ // 调整光标到最后
|
|
|
+ quill.setSelection(this.editorIndex + 1, { preload: false });
|
|
|
}
|
|
|
- quill.insertEmbed(this.editorIndex, "video", params);
|
|
|
- // 调整光标到最后
|
|
|
- quill.setSelection(this.editorIndex + 1, { preload: false });
|
|
|
|
|
|
this.dialogFormVisible = false;
|
|
|
this.dialogForm = {
|