|
@ -1,71 +1,84 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="container"> |
|
|
<div class="container"> |
|
|
<div class="title">{{ showAdd ? '添加' : '修改' }}详情</div> |
|
|
<div class="title">{{ showAdd ? '添加' : '修改' }}详情</div> |
|
|
<el-form :model="formLabelAlign" :rules="rules" ref="ruleForm" label-width="150px" class="demo-ruleForm"> |
|
|
<el-form :model="formLabelAlign" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm"> |
|
|
<el-form-item label="作者:" prop="author"> |
|
|
|
|
|
<el-input v-model="formLabelAlign.input" placeholder="作者" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="责编:" prop="editor"> |
|
|
|
|
|
<el-input v-model="formLabelAlign.editor" placeholder="责编" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="标题:" prop="title"> |
|
|
<el-form-item label="标题:" prop="title"> |
|
|
<el-input v-model="formLabelAlign.title" placeholder="标题" /> |
|
|
<el-input v-model="formLabelAlign.title" placeholder="标题" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="标题图片/视频:" prop="titleUrl"> |
|
|
<div class="flex justify-between"> |
|
|
|
|
|
<el-form-item label="作者:" prop="author"> |
|
|
|
|
|
<el-input v-model="formLabelAlign.input" class="w-230" placeholder="作者" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="责编:" prop="editor"> |
|
|
|
|
|
<el-input v-model="formLabelAlign.editor" class="w-230" placeholder="责编" /> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</div> |
|
|
|
|
|
<el-form-item label="显示类型:" prop="showType"> |
|
|
|
|
|
<el-radio-group v-model="formLabelAlign.showType" @change="changeShowType"> |
|
|
|
|
|
<el-radio :label="0">文本</el-radio> |
|
|
|
|
|
<el-radio :label="1">图片</el-radio> |
|
|
|
|
|
<el-radio :label="2">视频</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="跳转路径:" prop="jumpUrl"> |
|
|
|
|
|
<el-input v-model="formLabelAlign.jumpUrl" placeholder="跳转路径" /> |
|
|
|
|
|
<el-upload |
|
|
|
|
|
class="upload-demo mt-4" |
|
|
|
|
|
:action="`${BASE_API}/file/upload`" |
|
|
|
|
|
:on-success="handleJumpUrlSuccess" |
|
|
|
|
|
:show-file-list="false" |
|
|
|
|
|
> |
|
|
|
|
|
<el-button size="small" type="primary" class="mr-4">点击上传</el-button> |
|
|
|
|
|
<span slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</span> |
|
|
|
|
|
</el-upload> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="标题图片/视频:" prop="titleUrl" :rules="[ |
|
|
|
|
|
{ required: formLabelAlign.showType === 0 ? false : true, message: formLabelAlign.showType === 1 ? '请上传标题图片' : '请上传标题视频' }, |
|
|
|
|
|
]"> |
|
|
<el-upload |
|
|
<el-upload |
|
|
class="avatar-uploader" |
|
|
class="avatar-uploader" |
|
|
:action="`${BASE_API}/file/upload`" |
|
|
:action="`${BASE_API}/file/upload`" |
|
|
:show-file-list="false" |
|
|
:show-file-list="false" |
|
|
:on-success="handleAvatarSuccess" |
|
|
:on-success="handleAvatarSuccess" |
|
|
:before-upload="beforeAvatarUpload" |
|
|
:before-upload="beforeAvatarUpload" |
|
|
> |
|
|
> |
|
|
<img v-if="formLabelAlign.showType === 1" :src="formLabelAlign.titleUrl" class="avatar w-full"> |
|
|
<img v-if="formLabelAlign.showType === 1 && formLabelAlign.titleUrl" :src="formLabelAlign.titleUrl" class="avatar-img"> |
|
|
<video v-else-if="formLabelAlign.showType === 2" controls="controls" :src="formLabelAlign.titleUrl"></video> |
|
|
<video v-else-if="formLabelAlign.showType === 2 && formLabelAlign.titleUrl" controls="controls" class="avatar-img" :src="formLabelAlign.titleUrl"></video> |
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i> |
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i> |
|
|
</el-upload> |
|
|
</el-upload> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="跳转路径:" prop="jumpUrl"> |
|
|
<div class="flex justify-between"> |
|
|
<el-input v-model="formLabelAlign.jumpUrl" placeholder="跳转路径" /> |
|
|
<el-form-item label="提交状态:" prop="submitStatus"> |
|
|
</el-form-item> |
|
|
<el-radio-group v-model="formLabelAlign.submitStatus" @change="changeSubmitStatus"> |
|
|
<el-form-item label="发表时间:" prop="publishTime"> |
|
|
<el-radio :label="0">保存</el-radio> |
|
|
<el-date-picker |
|
|
<el-radio :label="1">发布</el-radio> |
|
|
v-model="formLabelAlign.publishTime" |
|
|
</el-radio-group> |
|
|
type="date" |
|
|
</el-form-item> |
|
|
placeholder="选择日期"> |
|
|
<el-form-item label="来源:" prop="source"> |
|
|
</el-date-picker> |
|
|
<el-input v-model="formLabelAlign.source" class="w-230" placeholder="来源" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="页面显示位置:" prop="showPage"> |
|
|
</div> |
|
|
<el-cascader |
|
|
<div class="flex justify-between"> |
|
|
v-model="formLabelAlign.showPage" |
|
|
<el-form-item label="页面显示位置:" prop="showPage"> |
|
|
:props="props" |
|
|
<el-cascader |
|
|
:options="tabList" |
|
|
v-model="formLabelAlign.showPage" |
|
|
@change="handleChange"> |
|
|
:props="props" |
|
|
</el-cascader> |
|
|
class="w-230" |
|
|
</el-form-item> |
|
|
:options="tabList" |
|
|
<el-form-item label="标题路径显示类型:" prop="showType"> |
|
|
@change="handleChange"> |
|
|
<el-radio-group v-model="formLabelAlign.showType" @change="changeShowType"> |
|
|
</el-cascader> |
|
|
<el-radio :label="0">文本</el-radio> |
|
|
</el-form-item> |
|
|
<el-radio :label="1">图片</el-radio> |
|
|
<el-form-item label="发表时间:" prop="publishTime"> |
|
|
<el-radio :label="2">视频</el-radio> |
|
|
<el-date-picker |
|
|
</el-radio-group> |
|
|
v-model="formLabelAlign.publishTime" |
|
|
</el-form-item> |
|
|
type="date" |
|
|
<el-form-item label="来源:" prop="source"> |
|
|
class="w-230" |
|
|
<el-input v-model="formLabelAlign.source" placeholder="来源" /> |
|
|
placeholder="选择日期"> |
|
|
</el-form-item> |
|
|
</el-date-picker> |
|
|
<el-form-item label="提交状态:" prop="submitStatus"> |
|
|
</el-form-item> |
|
|
<el-radio-group v-model="formLabelAlign.submitStatus" @change="changeSubmitStatus"> |
|
|
</div> |
|
|
<el-radio :label="0">保存</el-radio> |
|
|
|
|
|
<el-radio :label="1">发布</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="正文:" prop="content"> |
|
|
<el-form-item label="正文:" prop="content"> |
|
|
<!-- <editor /> --> |
|
|
<editor ref="editor" :content="formLabelAlign.content" /> |
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
placeholder="请输入内容" |
|
|
|
|
|
v-model="formLabelAlign.content"> |
|
|
|
|
|
</el-input> |
|
|
|
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item> |
|
|
<el-form-item> |
|
|
<el-button type="primary" @click="submit(formLabelAlign)">确定</el-button> |
|
|
<el-button type="primary" @click="submit(formLabelAlign)">确定</el-button> |
|
@ -76,7 +89,7 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
// import Editor from './editor.vue'; |
|
|
import Editor from '../Detail/editor.vue'; |
|
|
import {BASE_API} from '../../config'; |
|
|
import {BASE_API} from '../../config'; |
|
|
import {tabList} from '../../filters/code'; |
|
|
import {tabList} from '../../filters/code'; |
|
|
import { |
|
|
import { |
|
@ -89,17 +102,26 @@ |
|
|
export default { |
|
|
export default { |
|
|
name: "detailsOfDistribution", |
|
|
name: "detailsOfDistribution", |
|
|
components: { |
|
|
components: { |
|
|
// Editor, |
|
|
Editor, |
|
|
}, |
|
|
}, |
|
|
props: ['currList', 'showAdd'], |
|
|
props: ['currList', 'showAdd'], |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
labelPosition: 'right', |
|
|
labelPosition: 'right', |
|
|
formLabelAlign: { |
|
|
formLabelAlign: { |
|
|
|
|
|
title: '', |
|
|
|
|
|
author: '', |
|
|
|
|
|
editor: '', |
|
|
|
|
|
showType: 0, |
|
|
|
|
|
jumpUrl: '', |
|
|
|
|
|
titleUrl: '', |
|
|
|
|
|
submitStatus: 1, |
|
|
|
|
|
source: '', |
|
|
showPage: ['00', '0000'], |
|
|
showPage: ['00', '0000'], |
|
|
|
|
|
publishTime: '', |
|
|
content: '', |
|
|
content: '', |
|
|
showType: 0 |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
fileList: [], |
|
|
BASE_API, |
|
|
BASE_API, |
|
|
tabList, |
|
|
tabList, |
|
|
props: { |
|
|
props: { |
|
@ -108,8 +130,14 @@ |
|
|
children: 'children' |
|
|
children: 'children' |
|
|
}, |
|
|
}, |
|
|
rules: { |
|
|
rules: { |
|
|
|
|
|
title: [ |
|
|
|
|
|
{ type: 'string', required: true, message: '请输入标题', trigger: 'blur' } |
|
|
|
|
|
], |
|
|
showPage: [ |
|
|
showPage: [ |
|
|
{ type: 'array', required: true, message: '请选择位置', trigger: 'change' } |
|
|
{ type: 'array', required: true, message: '请选择页面显示位置', trigger: 'change' } |
|
|
|
|
|
], |
|
|
|
|
|
content: [ |
|
|
|
|
|
{ type: 'string', required: true, message: '请输入正文' } |
|
|
], |
|
|
], |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -153,6 +181,13 @@ |
|
|
return isLt2M; |
|
|
return isLt2M; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 上传跳转路径 |
|
|
|
|
|
handleJumpUrlSuccess(res) { |
|
|
|
|
|
if (res.data && res.data.path) { |
|
|
|
|
|
this.formLabelAlign.jumpUrl = res.data.path; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// 位置选择 |
|
|
// 位置选择 |
|
|
handleChange(value) { |
|
|
handleChange(value) { |
|
|
this.formLabelAlign.showPage = value |
|
|
this.formLabelAlign.showPage = value |
|
@ -169,10 +204,13 @@ |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
submit(formName) { |
|
|
submit(formName) { |
|
|
|
|
|
const child = this.$refs['editor'] |
|
|
|
|
|
this.formLabelAlign.content = child.getValue(); |
|
|
this.$refs.ruleForm.validate((valid) => { |
|
|
this.$refs.ruleForm.validate((valid) => { |
|
|
if (valid) { |
|
|
if (valid) { |
|
|
if(this.showAdd){ |
|
|
if(this.showAdd){ |
|
|
this.addCarousel(formName) |
|
|
console.log('formName: ', formName); |
|
|
|
|
|
// this.addCarousel(formName) |
|
|
}else{ |
|
|
}else{ |
|
|
this.updateCarousel(formName) |
|
|
this.updateCarousel(formName) |
|
|
} |
|
|
} |
|
@ -263,9 +301,17 @@ |
|
|
border: 1px dashed #d9d9d9; |
|
|
border: 1px dashed #d9d9d9; |
|
|
font-size: 28px; |
|
|
font-size: 28px; |
|
|
color: #8c939d; |
|
|
color: #8c939d; |
|
|
width: 178px; |
|
|
width: 150px; |
|
|
height: 178px; |
|
|
height: 150px; |
|
|
line-height: 178px; |
|
|
line-height: 150px; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.avatar-img{ |
|
|
|
|
|
width: 150px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.w-230{ |
|
|
|
|
|
width: 230px; |
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |
|
|