基于Vue实现微信小程序的图文编辑器
发布时间:2020-12-14 20:05:35 所属栏目:资源 来源:网络整理
导读:由于微信小程序不能使用常规的图文编辑器(比如百度的UEditor )编辑新闻内容之类的,所以用vue写了个针对小程序用的图文编辑器。效果如下 多图上传图片用到了 ajaxfileupload.js (不知道哪位仁兄写的,拿来用了,很好用) 最终形成一串Json数据(转成字符串
由于微信小程序不能使用常规的图文编辑器(比如百度的UEditor )编辑新闻内容之类的,所以用vue写了个针对小程序用的图文编辑器。效果如下 多图上传图片用到了 ajaxfileupload.js (不知道哪位仁兄写的,拿来用了,很好用) 最终形成一串Json数据(转成字符串,传入后台存入数据库,小程序端用JSON.parse 转成JSON ,按照后台一样的方式渲染即可【小程序端代码还没写,后面再贴出来吧】) json格式如 html代码 ![]() js 代码 需要引用 jquery、vue、ajaxfileupload index && pageData.editorData[index].mytype == 1)
pageData.editorData[index].font.showcolor = 0;
},//上传图片
uploadfile: function (index) {
//用于强制重新渲染 input.file 用于清空之前的文件 ^_^
pageData.reload = false;
//添加一个组ID,方便后面上传完成后识别应该更新哪条数据
var groupid = guid();
var that = this;
var fileid = "file" + index;
var files = $("#" + fileid)[0].files;
for (var i = 0; i < files.length; i++) {
that.itemadd(index + i,2,groupid);
}
jQuery.ajaxFileUpload({
url: '@Url.Content("~/img/uploadproductdpicArray?path=dyProductImgs")',//用于文件上传的服务器端请求地址
secureuri: false,//是否需要安全协议,一般设置为false
fileElementId: fileid,//文件上传域的ID
dataType: 'json',//返回值类型 一般设置为json
success: function (data) //服务器成功响应处理函数
{
//var result = JSON.parse(data);
pageData.reload = true;
var result = data;
console.log(result);
if (result.resultState == "1") {
var j = 0;
for (var i = 0; i < pageData.editorData.length; i++) {
if (pageData.editorData[i].groupid && pageData.editorData[i].groupid == groupid) {
pageData.editorData[i].content = "@Url.Content("~")" + result.Data[j].substring(1);
pageData.editorData[i].loading = 1;
j++;
}
}
console.log(result);
}
else alert("上传失败!");
},error: function (data)//服务器响应失败处理函数
{
alert("上传失败!");
}
});
},//上升模块
itemup: function (index) {
if (index > 0) {
var itemData = pageData.editorData[index];
pageData.editorData.splice(index,1);
pageData.editorData.splice(index - 1,itemData);
}
},//下降模块
itembottom: function (index) {
if (index + 1 < pageData.editorData.length) {
var itemData = pageData.editorData[index];
pageData.editorData.splice(index,1);
pageData.editorData.splice(index + 1,//删除模块
itemdel: function (index) {
pageData.editorData.splice(index,1);
},//添加一个新的模块
itemadd: function (index,type,groupid) {
var itemData = null;
switch (type) {
case 1:
itemData = {
mytype: 1,content: "",font: {
size: 0,//字体大小 每+1 字体+2px -1同减
weight: 0,//是否加粗
del: 0,//是否删除线
line: 0,//是否下划线
center: 0,//是否居中
color: "#000",//字体颜色
bgcolor: "#fff",//字体颜色
showcolor: 0 //是否显示颜色选择框
}
};
break;
case 2:
itemData = {
mytype: 2,content: "res/img/1.jpg",loading: 0 //是否已经成功上传
};
break;
case 3:
itemData = {
mytype: 3,content: ""
};
break;
default:
alert('暂不支持');
break;
}
if (itemData) {
if (groupid) itemData.groupid = groupid;
pageData.editorData.splice(index,//一个用于阻止冒泡的事件
stopclick: function () { },},//实例被调用后
created: function () {
},//el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
updated: function () {
this.$nextTick(function () {
////console.log(pageData);
//var files = this.$refs.feedbakcImg;
//for (var i = 0; i < files.length; i++) {
// files[i].clearFiles();
//}
})
}
});
后台代码 .net (有些方法没有放出来,后面我有时间整理一个单独的demo出来放到云盘)
/// 批量上传商品详情图片
///
///
总结以上所述是小编给大家介绍的基于Vue实现微信小程序的图文编辑器。编程之家 52php.cn 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |