zoukankan      html  css  js  c++  java
  • layui后台管理系统的坑

      1 <script>
      2 
      3     //公共js页
      4     //修改的iframe 接列表传来的值, 封装好直接调用, 具体是啥意思我也不知道  —_—||
      5     function  GetQueryString(name) {
      6         var  reg = new  RegExp("(^|&)" + name + "=([^&]*)(&|$)");
      7         var  r = window.location.search.substr(1).match(reg);
      8         if(r != null) return   unescape(r[2]);
      9         return  null;
     10     }
     11 
     12     //list:数组
     13     //key:主键名称
     14     //val:组件的值  封装了一个方法, 方便在edit里面取 id, 不用每次都for循环
     15     function getListItemByKey(list, key, val) {
     16         if(list != null) {
     17             for(var i = 0; i < list.length; i++) {
     18                 if(list[i][key] == val) {
     19                     return list[i];
     20                 }
     21             }
     22         }
     23     }
     24 
     25     // list页
     26     function edit(id) {
     27         let obj = getListItemByKey(list, "id", id);
     28         // let title = getListItemByKey(list,"title",title);
     29         // 传输的是中文的话,传到下一页会乱码,需要encodeURI();进行转码
     30         // 两次转码,之后到update页再解码, 由于是传id 在下一页重查, 所以没传, 而且传输大量中文的话容易出现问题
     31         // let title = encodeURI(encodeURI(obj.title));
     32         // console.log(title)
     33         let modelName = '修改信息';
     34         // var timestamp = (new Date()).getTime()/1000;   //由于浏览器相同地址会默认有缓存,加上时间戳变会认为打开的不是同一个网址, 不过layui默认iframe 打开的
     35         // 不是同一个网址, 所以时间戳没用上, 便注释掉了
     36         var url = '../case_update/yj.html?id=' + id;    //传值将id 传到下一页,在下一页重新查询一遍需要修改的信息,显示在页面上
     37         x_admin_show(modelName, url);  // layui自带的方法,用来跳转到哪一页
     38     }
     39 
     40     // update 页
     41     // 调用封装好的方法, 获得上一页欻传来的id
     42     var id = GetQueryString("id");
     43 
     44     $.ajax({
     45         type: 'post',
     46         url: url + '',
     47         dataType: "json",
     48         async: true,
     49         data: {
     50             id: id
     51         },
     52         success: function(data) {
     53             // 由于修改是用form表单提交, 所以要把获取的值放进form表单中
     54             $('input[name="case_id"]').val(data.obj[0].id); // 放入的属性是name=""
     55             $('#title').val(data.obj[0].title); // 放入的属性是id=""
     56         }
     57     });
     58 
     59     //修改图片
     60     var photoes = [];
     61 
     62     $("#photo").change(function() {
     63         var file = this.files[0];
     64         photoes.push(file);
     65         var filereader = new FileReader();
     66         filereader.onload = function(e) {
     67             var base64 = e.target.result;  //转成base64 显示在页面上
     68             $("#photos").append("<img class="appedphoto" src="" + base64 + "" />");
     69         }
     70         filereader.readAsDataURL(file);
     71     });
     72 
     73     $("#upload").click(function() {
     74 
     75         if (photoes.length == 0) {
     76             update_case();
     77             return;
     78         }
     79 
     80         var formData = new FormData(document.getElementById("ff"));  // ff为表单的id
     81 
     82         for (var i = 0; i < photoes.length; i++) {
     83             formData.append("CaseImages", photoes[i]);  // CaseImages 后台图片对应的字段
     84         }
     85 
     86         $.ajax({
     87             type: "post",
     88             url: url + "add",
     89             data: formData, //formData 里面啥都有
     90             dataType: "json",
     91             contentType: false,
     92             processData: false,
     93             success: function () {
     94                 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
     95                 parent.location.reload(); //刷新列表页, 也就是list页, 是update页的父级
     96                 parent.layer.close(index); //找到当前窗口,关闭当前窗口
     97             }
     98         });
     99     });
    100 
    101     function update_case() {
    102         $.post(url + "update_info.xsh", {
    103             id: GetQueryString("id"),
    104             case_num: $("#case_num").val(),
    105             title: $("#title").val(),
    106         },
    107         function() {
    108             var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
    109             parent.location.reload(); //刷新列表页, 也就是list页, 是update页的父级
    110             parent.layer.close(index); //找到当前窗口,关闭当前窗口
    111         })
    112     }
    113 
    114 
    115     //修改时删除已经存好的图片
    116     //获得删除的id
    117     $(document).on('click', '.del-btn', function() {
    118         let id = "'" + $(this).attr('alt') + "'";
    119         let index = $(this).parent().parent().index();
    120         layer.confirm('确认要删除吗?', function() {
    121             //删除
    122             $.ajax({
    123                 type: 'post',
    124                 url: url + 'delete.xsh',
    125                 dataType: "json",
    126                 async: true,
    127                 data: {
    128                     id: id
    129                 },
    130                 success() {
    131                     $('tbody tr:eq(' + index + ')').remove();
    132                     layer.msg('删除成功', {
    133                         icon: 1
    134                     });
    135                 }
    136             });
    137         });
    138     })
    139 
    140 </script>
  • 相关阅读:
    线程池的状态整理
    线程池 ThreadPoolExecutor 源码整理
    ReentrantReadWriteLock 源码分析
    ReentrantLock 锁释放源码分析
    编译Hadoop源码
    Ubuntu安装secureCRT
    ubuntu中为hive配置远程MYSQL database
    解决Ubuntu下sublime3无法输入中文
    Ubuntu下安装PAC Manager
    Git起步--git安装与初次运行git前配置
  • 原文地址:https://www.cnblogs.com/wo1ow1ow1/p/11821540.html
Copyright © 2011-2022 走看看