Commit bd6bd99b authored by wangwei's avatar wangwei

添加来源吗管理菜单

parent d143fa66
...@@ -33,14 +33,14 @@ ...@@ -33,14 +33,14 @@
</div> </div>
<div class="title-content"> <div class="title-content">
<ul> <ul>
<li v-for="data in splitContent">· {{data}}</li> <li v-for="data in splitContent">{{data}}</li>
</ul> </ul>
</div> </div>
<div class="tips title2"> <div class="tips title2">
{{formData.content.tips.title2}} {{formData.content.tips.title2}}
</div> </div>
<div class="title-content title2"> <div class="title-content title2">
· {{formData.content.tips.title2_content}} {{formData.content.tips.title2_content}}
</div> </div>
</div> </div>
</el-col> </el-col>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class='tinymce'> <div class='tinymce'>
<editor id='tinymce' v-model='tinymceHtml' :init='init'></editor> <editor id='tinymce' v-model='tinymceHtml' :init='init'></editor>
<div> <div>
<div class="imgInter" @click="imgInter()">插入图片</div> <div class="imgInter" @click="showDialog()">插入图片</div>
</div> </div>
<el-dialog <el-dialog
title="插入图片" title="插入图片"
...@@ -12,6 +12,37 @@ ...@@ -12,6 +12,37 @@
center center
:append-to-body="true" :append-to-body="true"
width="30%"> width="30%">
<el-form label-width="80px">
<el-form-item label="图片">
<el-upload
action="/api/public/upload"
:http-request="uploadFile"
:on-remove="removeFile"
drag
:on-exceed="handleExceed"
multiple
:limit="1"
:file-list="form.imgList">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">只能上传png文件,且不超过100kb</div>
</el-upload>
</el-form-item>
<el-form-item label="铺满">
<el-switch
v-model="form.big">
</el-switch>
</el-form-item>
<el-form-item label="居中">
<el-switch
v-model="form.center">
</el-switch>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="imgInter">确 定</el-button>
</span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -30,11 +61,19 @@ ...@@ -30,11 +61,19 @@
import 'tinymce/plugins/colorpicker' import 'tinymce/plugins/colorpicker'
import 'tinymce/plugins/preview' import 'tinymce/plugins/preview'
import 'tinymce/plugins/media' import 'tinymce/plugins/media'
import {uploadFileApi} from "../../service/api";
export default { export default {
name: 'tinymce', name: 'tinymce',
data () { data () {
return { return {
tinymceHtml: '请输入内容', tinymceHtml: '请输入内容',
form:{
imgList:[],
big:false,
weight:'',
center:true
},
show:'', show:'',
dialogVisible:false, dialogVisible:false,
init: { init: {
...@@ -57,55 +96,81 @@ ...@@ -57,55 +96,81 @@
}, },
methods:{ methods:{
imgInter(){ imgInter(){
let element = document.getElementById('tinymce_ifr').contentWindow.document.getElementById('tinymce'); if(this.form.imgList.length < 1){
let str= `<img src="https://cdn.singsingenglish.com/new-sing/20181011/2de184727933c47a1a20fb354c55ab29b17256631539238287351.jpg" style="display: block;width: 100%"/>`; this.$message({
console.log(this.getCursortPosition(element)) type: 'error',
if(this.getCursortPosition(element)){ message: '请选择图片'
this.tinymceHtml = this.insert_flg(this.tinymceHtml,str,this.getCursortPosition(element)) });
return false
}
let ImageStyle = '';
if(this.form.big){
ImageStyle += 'width:100%;'
}else{ }else{
this.tinymceHtml += str ImageStyle += 'width:70%'
}
if(this.form.center){
ImageStyle = 'display:block;margin:auto'
} }
let str= `<img src="${this.form.imgList[0]}" style="${ImageStyle}"/>`;
this.insertContent(str)
this.dialogVisible = false
},
uploadFile(a){
if(a.file.size < 100*1024 && a.file.type === 'image/png'){
this.$store.dispatch('setProgress',{type:'new',id:a.file.uid});
uploadFileApi({file:a.file,type:'local'}).then(res=>{
this.$message({
type: 'success',
message: '上传成功!'
});
this.form.imgList = [process.env.IMAGE_URL_HEAD + res.url];
this.selectedMould[this.nowIndex].content.banner[0] = {name:res.name,url:process.env.IMAGE_URL_HEAD + res.url,title:'',lable:''};
this.$store.dispatch('setProgress',{type:'delete',id:a.file.uid});
})
}else {
this.$message({
type: 'error',
message: '上传失败,图片格式或大小不正确!'
});
this.form.imgList = [];
}
}, },
showDialog(){ showDialog(){
this.dialogVisible = true this.dialogVisible = true
}, },
insert_flg(str,flg,sn){ insertContent(content) {
var newstr=""; if (!content) {//如果插入的内容为空则返回
for(var i=0;i<str.length;i+=sn){ return;
var tmp=str.substring(i, i+sn);
console.log(tmp);
if(i===0){
newstr+=tmp+flg;
}else{
newstr+=tmp
}
} }
return newstr; let sel = null;
}, if (document.selection) {//IE9以下
getCursortPosition(element) { sel = document.selection;
var caretOffset = 0; sel.createRange().pasteHTML(content);
var doc = element.ownerDocument || element.document; } else {
var win = doc.defaultView || doc.parentWindow; sel = document.getElementById('tinymce_ifr').contentWindow.getSelection();
var sel; if (sel.rangeCount > 0) {
if (typeof win.getSelection != "undefined") {//谷歌、火狐 let range = sel.getRangeAt(0); //获取选择范围
sel = win.getSelection(); range.deleteContents(); //删除选中的内容
console.log(sel); let el = document.createElement("div"); //创建一个空的div外壳
if (sel.rangeCount > 0) {//选中的区域 el.innerHTML = content; //设置div内容为我们想要插入的内容。
var range = win.getSelection().getRangeAt(0); let frag = document.createDocumentFragment();//创建一个空白的文档片段,便于之后插入dom树
var preCaretRange = range.cloneRange();//克隆一个选中区域
preCaretRange.selectNodeContents(element);//设置选中区域的节点内容为当前节点 let node = el.firstChild;
preCaretRange.setEnd(range.endContainer, range.endOffset); //重置选中区域的结束位置 let lastNode = frag.appendChild(node);
caretOffset = preCaretRange.toString().length; range.insertNode(frag); //设置选择范围的内容为插入的内容
let contentRange = range.cloneRange(); //克隆选区
contentRange.setStartAfter(lastNode); //设置光标位置为插入内容的末尾
contentRange.collapse(true); //移动光标位置到末尾
sel.removeAllRanges(); //移出所有选区
sel.addRange(contentRange); //添加修改后的选区
} }
} else if ((sel = doc.selection) && sel.type != "Control") {//IE
var textRange = sel.createRange();
var preCaretTextRange = doc.body.createTextRange();
preCaretTextRange.moveToElementText(element);
preCaretTextRange.setEndPoint("EndToEnd", textRange);
caretOffset = preCaretTextRange.text.length;
} }
return caretOffset; },
} removeFile(){},
handleExceed(){}
}, },
created:function(){ created:function(){
tinymce.init({}) tinymce.init({})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment