编辑时根据获取的信息进行回显操作

 
let iseditor=GetQueryString("data");
function GetQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return decodeURI(r[2]);
        return null;
    }
//根据iseditor是否存在来判断是修改 还是 新增 
现在是内容修改时
1  对于radio,input 标签的回显
 if(!!iseditor){
        urldata= JSON.parse(iseditor.replace(/'/g,'\"'));
        type=urldata.type;
        parentid=urldata.parentid;
        if(!!urldata.id){
            id=urldata.id;
			 $(":radio").each(function () {
			     let obj = $(this);
			       obj.removeAttr("checked");
			       let name = obj.attr("name");
			       let value = obj.attr("value");
			       if (!!name && !!urldata[name] && value==urldata[name]) {
			           let val = urldata[name];
			           $(":radio[value=" + val + "][name=" + name + "]").click();
			           $(":radio[value='0'][name='inBanner']").click();
			       }
			   });
			   $("input[type!='radio'],select").each(function () {
			       let obj = $(this);
			       let name = obj.attr("name");
			       if (!!name && !!urldata[name]) {
			           obj.val(urldata[name]);
			       }
			   });
       }
  }
2  对于图片的回显
   //如4中请求成功后,的图片回显
3  对于视频的回显
  $.ajax({
         url: '/public/'+id,//请求路径
         type: "get",
         dataType: "json",
         data: {
         },
         success: function (data) {
        // data.modular.content 其实就是视频链接
 $("#file_content").val(data.modular.content);//视频内容回显存储
 var liststr="<div id=\"a1\" style='height: 100px;width: 200px;margin-left: 189px;'></div>\n" +
      "<script type=\"text/javascript\" src=\"assets/libs/modular/index/js/ckplayer.js\" charset=\"utf-8\"><\/script>\n" +
      "<script type=\"text/javascript\">\n" +
      "var flashvars={\n" +
      "f:'${request.contextPath}/tv/tv1.flv',\n" +
      "c:0\n" +
      "};\n" +
      "var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:'transparent'};\n" +
      "var video=['" +data.modular.content+ "'];\n" +
      "CKobject.embed('${request.contextPath}/ckplayer/ckplayer.swf','a1','ckplayer_a1','200','100',false,flashvars,video,params);\n" +
      "<\/script>\n"
  $("#showupvideo").html(liststr)
})
4  对于内容里有加下载附件的回显
if(urldata.contenttype=="content"){//文本内容修改
    $.ajax({
         url: '/public/'+id,//请求路径
         type: "get",
         dataType: "json",
         data: {
         },
         success: function (data) {
       $('#showupimgcontents').attr('src',urldata.img);//回显图片
       $('#file_content_cover').val(urldata.img)//如果没有修改图片,得将图片暂存起来,
             setTimeout(function(){//定时器的作用 是因为要往编辑器回显内容,但因为ajax是异步的,所以
                 if(!!data.modular.content){
                 //上传附件时,是将内容+拼接上上传的附件,回显的时候得将内容和附件分开
                     var splitContent=data.modular.content.split(/<br><c id="fenkai">/)
                     editor.html(splitContent[0]);//截取的第一部分回显到编辑器中,对于editor的使用放到下篇文章去描述
                     if(splitContent.length==2){
                     //如果内容中有上传附件,将其放到页面
                         $('.upfujianlist').html(splitContent[1])
                         //点击下载附件  去掉
                         $('.fujianli strong').remove()
                         //在将内容+拼接上上传的附件时,移除了button删除按钮,回显时需要再加上
                         $('.fujianli').append( "<button type=\"button\" class=\"layui-btn remove\">\n" +
                             "    删除选项\n" +
                             "    </button>\n")
                     }
                 }

             },100)

         },
         error: function (data) {
         }
     });

 }

上传附件操作

var uploadInst2 = upload.render({//模块图片
    elem: '#upfujian'
    ,url: '/ass/sss?token='+getToken() //改成您自己的上传接口
    ,data: {"filetype": "file"},
    accept:'file'
    ,done: function(res){
        //上传成功
        if(res.code==200){
            layer.msg('上传成功');
            // 附件需要 res.file_code res.file_name 
            var file= '/ass/sss/baseGetFile/'+res.file_code//file_code='134'
            //同样上传附件为异步请求,得等到数据拿到之后才能append
            setTimeout(function () {
                if($('.upfujianlist button').size()<5){
                    $('.upfujianlist').append("<div class=\"fujianli\">\n" +
                    //此处的downloFile('134')就是下载文件,会在文章显示显示,
                        "<a οnclick=\"downloFile("+res.file_code+")\" src=\""+file+"\" style=\"display: inline-block; height:41px;text-decoration: underline;\n" +
                        "color: #4d32e4\">\n" +
                        ""+res.file_name+"</a>\n"+
//在上传附件的内容与编辑器内容拼接时,需要移除button按钮,也就有了上面回显时,添加上button按钮
                        "    <button type=\"button\" class=\"layui-btn remove\">\n" +
                        "    删除选项\n" +
                        "    </button>\n" +
                        "    </div>\n"
                    )
                }
            },800)
        }
        //如果上传失败
        else{
            return layer.msg('上传失败');
        }
    }
    ,error: function(){
        return layer.msg('上传失败');
    }
});
  $('.remove').live('click',function(){
       $(this).parent('div').remove();
   });

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue中,实现编辑的文件上传回显可以通过以下几个步骤实现: 1. 准备文件上传的组件:创建一个文件上传的组件,包含一个input[type="file"]元素和一个用于展示已选择文件的区域。 2. 绑定input元素的change事件:在组件的mounted()钩子函数中,通过document.querySelector()等方法获取到input元素,并为其绑定change事件。 3. 读取选择的文件:在change事件的回调函数中,可以通过event.target.files[0]来获取到用户选择的文件,使用FileReader来读取文件的内容。 4. 显示文件内容:读取文件的内容后,可以将其保存到Vue组件的data属性中,然后在模板中使用{{}}语法将文件内容展示出来。 5. 编辑和保存:通过对文件内容进行编辑,并通过按钮点击等方式触发保存操作,将编辑后的文件内容上传到服务器。 需要注意的是,文件上传的后端逻辑需要根据具体的业务需求来实现,并处理上传文件的保存、校验等操作。此外,还要考虑到上传文件大小的限制、文件类型的限制以及错误处理等问题。 ### 回答2: 在Vue中,如果要实现编辑回显上传的功能,可以通过以下步骤实现: 1. 定义一个变量来存储上传的文件信息,例如`fileInfo`。 2. 在上传文件的方法中,将已上传的文件信息保存到变量`fileInfo`中。 3. 在编辑表单中,可以使用`v-model`将`fileInfo`绑定到对应的上传输入框上。 4. 当进入编辑页面,将已保存的文件信息传递给`fileInfo`,以便在上传输入框中进行回显。你可以在`created`生命周期钩子函数中从后端获取已保存的文件信息,并将其赋值给`fileInfo`。 5. 使用`v-if`指令判断`fileInfo`是否存在,如果存在,则显示已选择文件的名称或相关信息,以便用户知道已经选择了文件。 总结起来,实现vue upload编辑回显的关键是使用一个变量来存储已上传的文件信息,并在编辑页面中将它绑定到对应的上传输入框上,以及在进入编辑页面将已保存的文件信息传递给变量,实现文件的回显效果。同,为了更好地展示回显的文件信息,可以使用`v-if`指令进行条件渲染。 ### 回答3: 在Vue中实现编辑回显的功能,一般有以下几个步骤。 1. 获取服务器返回的数据:一般在编辑页面进入,需要先向服务器请求相应的数据。可以使用Vue的Ajax库(如axios)发送GET请求获取编辑的数据。获取到数据后,可以将其保存到Vue组件的data中。 2. 绑定数据到表单元素:将获取到的数据绑定到表单元素上,实现回显效果。在Vue中,可以使用v-model指令将数据与表单元素进行双向绑定。例如,将获取到的数据绑定到input的value上:`<input v-model="formData.name" />`。 3. 提交编辑后的数据:当完成编辑后,需要将修改后的数据提交到服务器保存。可以使用Vue的Ajax库发送POST请求,将修改后的数据传递给服务器。根据实际情况,可能需要在请求中携带标识该数据的ID。 总结来说,实现编辑回显的功能主要是通过获取服务器数据,并将其与表单元素进行双向绑定,以实现数据的回显编辑完成后,将修改后的数据提交到服务器保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值