You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
5.5 KiB
223 lines
5.5 KiB
<template>
|
|
<div class="imageTextTool">
|
|
<h3 class="toolTit">图文</h3>
|
|
<div class="toolBox">
|
|
<tool-single-img :imageUrl.sync='activeComponent.componentContent.imageUrl' tip='建议尺寸: 500*300px, 高度自适应'></tool-single-img>
|
|
<tool-select-link :linkObj.sync='activeComponent.componentContent.linkObj' title="图片链接"></tool-select-link>
|
|
<tool-select :linkValue.sync='activeComponent.componentContent.positionValue' title="PC图片位置" :options="positionOpt"></tool-select>
|
|
<div class="textTit">文本设置</div>
|
|
<div class="itemBox">
|
|
<label>标题</label>
|
|
<el-input v-model="activeComponent.componentContent.title" maxlength="20" :placeholder="$t('common.defaulthint')"></el-input>
|
|
</div>
|
|
<div class="itemBox">
|
|
<label>正文</label>
|
|
<quill-editor
|
|
v-model="activeComponent.componentContent.content"
|
|
ref="myQuillEditor"
|
|
:options="editorOption"
|
|
@blur="onEditorBlur($event)" @focus="onEditorFocus($event)"
|
|
@change="onEditorChange($event)">
|
|
</quill-editor>
|
|
</div>
|
|
</div>
|
|
<el-dialog :visible.sync="dialogVisible">
|
|
<img width="100%" :src="dialogImageUrl" alt="">
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { quillEditor } from 'vue-quill-editor'
|
|
import {toolMixin} from '@@/config/mixin'
|
|
import ToolSingleImg from '../toolModule/tool-single-img'
|
|
import ToolSelect from '../toolModule/tool-select'
|
|
import ToolSelectLink from '../toolModule/tool-select-link'
|
|
export default {
|
|
name: 'videoTool',
|
|
mixins: [toolMixin],
|
|
components: {
|
|
ToolSelectLink,
|
|
ToolSelect,
|
|
ToolSingleImg,
|
|
quillEditor
|
|
},
|
|
data () {
|
|
return {
|
|
// imageUrl: '',
|
|
// title: '', // 标题内容
|
|
// linkValue: '',
|
|
// positionValue: '',
|
|
// content: null,
|
|
dialogVisible: false,
|
|
dialogImageUrl: '',
|
|
linkOptions: [
|
|
{
|
|
value: '/index',
|
|
label: '首页'
|
|
},
|
|
{
|
|
value: '/list',
|
|
label: '列表页'
|
|
},
|
|
{
|
|
value: '/detail',
|
|
label: '详情页'
|
|
},
|
|
{
|
|
value: '/about',
|
|
label: '关于我们'
|
|
}
|
|
],
|
|
positionOpt: [
|
|
{
|
|
value: 'left',
|
|
label: '左图右文'
|
|
},
|
|
{
|
|
value: 'right',
|
|
label: '右图左文'
|
|
},
|
|
{
|
|
value: 'top',
|
|
label: '上图下文'
|
|
},
|
|
{
|
|
value: 'bottom',
|
|
label: '下图上文'
|
|
}
|
|
],
|
|
editorOption: {
|
|
placeholder: '请输入',
|
|
modules: {
|
|
toolbar: [
|
|
['bold', 'italic', 'link'] // toggled buttons
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.imageTextTool {
|
|
padding: 20px 20px 0 20px;
|
|
h3 {
|
|
font-size: 18px;
|
|
font-weight: 500;
|
|
height: 35px;
|
|
line-height: 35px;
|
|
color: #333333;
|
|
margin-bottom: 20px;
|
|
}
|
|
.toolBox {
|
|
padding-bottom: 10px;
|
|
.textTit {
|
|
height: 35px;
|
|
line-height: 35px;
|
|
font-size: 16px;
|
|
color: #333333;
|
|
margin-top: 30px;
|
|
font-weight: bold;
|
|
}
|
|
.itemBox {
|
|
label {
|
|
font-size: 14px;
|
|
color: #666666;
|
|
height: 40px;
|
|
line-height: 40px;
|
|
}
|
|
margin-bottom: 15px;
|
|
::v-deep .el-select {
|
|
display: block;
|
|
}
|
|
}
|
|
.imgBox{
|
|
position: relative;
|
|
.overlay{
|
|
display: none;
|
|
}
|
|
&:hover .overlay{
|
|
position: absolute;
|
|
top:0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: rgba(0,0,0,0.3);
|
|
color: #fff;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
.iconfont{
|
|
padding: 5px;
|
|
margin: 0 5px;
|
|
font-size: 20px;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
::v-deep .ql-container {
|
|
height: 150px;
|
|
}
|
|
::v-deep .avatar-uploader .el-upload {
|
|
border: 1px dashed #d9d9d9;
|
|
border-radius: 6px;
|
|
cursor: pointer;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
::v-deep .avatar-uploader-icon {
|
|
font-size: 28px;
|
|
color: #8c939d;
|
|
width: 178px;
|
|
height: 178px;
|
|
line-height: 178px;
|
|
text-align: center;
|
|
}
|
|
::v-deep .el-upload__tip {
|
|
height: auto;
|
|
margin-top: 0;
|
|
line-height: normal;
|
|
}
|
|
::v-deep .el-upload {
|
|
width: 100%;
|
|
}
|
|
::v-deep .el-upload-dragger {
|
|
width: 100%;
|
|
position: relative;
|
|
.avatar{
|
|
max-width: 100%;
|
|
height: 100%;
|
|
max-height: 100%;
|
|
position: absolute;
|
|
margin: auto;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
}
|
|
}
|
|
::v-deep .ql-snow .ql-tooltip{
|
|
z-index: 8;
|
|
left: 5px!important;
|
|
}
|
|
::v-deep .ql-snow .ql-tooltip::before{
|
|
content: '链接';
|
|
}
|
|
::v-deep .ql-snow .ql-tooltip a.ql-action::after{
|
|
content: '编辑';
|
|
}
|
|
::v-deep .ql-snow .ql-tooltip a.ql-remove::before{
|
|
content: '移除';
|
|
}
|
|
::v-deep .ql-snow .ql-tooltip[data-mode=link]::before{
|
|
content: '链接';
|
|
}
|
|
::v-deep .ql-snow .ql-tooltip.ql-editing a.ql-action::after{
|
|
content: '确定';
|
|
}
|
|
}
|
|
</style>
|