layui 文件上传upload

html代码:

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="stylesheet" href="/static/layuiadmin/layui/css/layui.css"/>
  <style>
    .layui-form-item .layui-inline{
      margin-right:0;
    }
    .layui-table td, .layui-table th{
      text-align: center;
    }
    .layui-form-item .button{
      float: right;
    }
  </style>
</head>
<body>
<div class="layui-container" style="padding:10px 5px">
  <form class="layui-form" action="" lay-filter="component-form-element">
  <div class="layui-form-item">
    <div class="layui-inline">
      <label class="layui-form-label">项目编号</label>
      <div class="layui-input-inline">
        <input type="hidden" name="projectId" id="projectId">
        <input type="text" id="projectNumber" disabled lay-verify="" autocomplete="off" class="layui-input">
      </div>
    </div>
    <div class="layui-inline">
      <label class="layui-form-label">客户名称</label>
      <div class="layui-input-inline">
        <input type="text" id="customerName" lay-verify="" autocomplete="off" disabled  class="layui-input">
      </div>
    </div>
    <div class="layui-inline">
      <label class="layui-form-label">报告文号<i style="color:red;">*</i></label>
      <div class="layui-input-inline">
        <input type="text" name="archivesNumber" required="required" lay-verify="" placeholder="手动输入文号" autocomplete="off" class="layui-input">
      </div>
    </div>
  </div>
    <div class="layui-form-item">
      <div class="layui-inline">
        <label class="layui-form-label">上传文件</label>
        <button type="button" class="layui-btn layui-btn-normal" id="upload"><i class="layui-icon layui-icon-upload-drag"></i>上传文件</button>
      </div>
    </div>
    <div class="layui-form-item">
      <table class="layui-table" id="loaded">
        <thead>
        <tr><th colspan="4"><h3>附件列表</h3></th></tr>
        <tr><th>序号</th><th>文件名<b style="color:red;">(点击即可下载)</b></th><th>上传日期</th><th >操作</th></tr>
        </thead>
        <tbody>
          <!--<tr><td>序号</td><td>文件的名字</td><td>上传日期</td><td><button type="button"  class="layui-btn  layui-btn-sm layui-btn-danger">删除</button></td></tr>-->
        </tbody>
      </table>
    </div>
    <div class="layui-form-item">
      <div class="layui-input-inline button">
        <button class="layui-btn layui-btn-normal layui-anim layui-anim-scale" lay-submit lay-filter="component-form-element">保存</button>
        <button id="cancel" type="button" class="layui-btn layui-btn-primary layui-anim layui-anim-scale">取消</button>
      </div>
    </div>
  </form>
</div>
<script type="application/javascript" rel="script" src="/static/layuiadmin/layui/layui.js"></script>

</body>
</html>

js代码:

<script>
  layui.use(['form','util','upload','table'],function() {
    var $ = layui.jquery,
      form = layui.form,
      util = layui.util,
      table = layui.table,
      upload = layui.upload;

    /* 时间格式转换函数 */
    function _util(date) {
      if (date != '' && date != null) {
        return util.toDateString(date, 'yyyy-MM-dd')
      } else {
        return '';
      }
    }

    /* 数据重组 */
    var filesList = [];

    /* 上传文件 */
    //指定允许上传的文件类型
    upload.render({ //允许上传的文件后缀
      elem: '#upload'
      , url: '/project/archives/uploadFile'
      , multiple: true
      , accept: 'file' //普通文件
      // , exts: 'zip|rar|7z' //只允许上传压缩文件
      , done: function (res, index, upload) {
        if (res.status == 200) { //上传成功
          parent.layer.msg("上传成功", {
            icon: 6
          });
          //创建结构的时候只能通过删除按钮的长度来 命名序号
          var btns = $('#loaded tbody').find('button')
          var leng = btns.length + 1  //序号
          var html = '<tr><td>' + leng + '</td><td><a  href="' + res.data.url + '" target="_blank">' + res.data.fileName + '</a></td><td>' + _util(res.data.createTime) + '</td><td><button type="button"  class="layui-btn  layui-btn-sm layui-btn-danger" fileId="' + res.data.fileId + '">删除</button></td></tr>'
          $('#loaded tbody').append(html)
          //文件id 的数组
          filesList.push(
            {
              "id": res.data.fileId
            }
          )
        }else{
          parent.layer.msg(res.msg, {
            icon: 5,
            title:'温馨提示'
          });
        }
      }
    });

    /* 删除文件结构 */
    function deleteElement(Obj) {
      Obj.parentNode.parentNode.parentNode.removeChild(Obj.parentNode.parentNode);
    }

    //序号重排
    function sortTdNumber() {
      $('#loaded tbody>tr').each(function (index, obj) {
        $(obj).find("td:first").html(index + 1);
      });
    }

    /* 删除 */
    $('#loaded tbody').on('click', 'button', function () {
      var _this = $(this)[0]  //当前的jsDOM对象
      var fileId = $(this).attr('fileId')
      $.ajax({
        url: "/project/archives/deletFile?fileId=" + fileId,
        type: "DELETE",
        contentType: "application/json", //设置请求参数类型为json字符串
        dataType: "json",
        success: function (res) {
          if (res.status == 200) {
            filesList.splice($.inArray(fileId, filesList), 1); //未知索引但知道数组的某项;
            deleteElement(_this)
            sortTdNumber()
            parent.layer.msg("删除成功", {
              icon: 6
            });
          } else {
            parent.layer.msg(res, {
              icon: 5
            });
          }
        }
      })
      return false;
    })

      var index = parent.layer.getFrameIndex(window.name);
      //点击取消,关闭页面
      $('#cancel').on('click',function(){
          parent.layer.close(index); //执行关闭
          return false  ;
      })
    /* 表单提交 */
    form.on('submit(component-form-element)', function (data) {
      var obj = {
        "buzProjectArchives": {
          ...data.field
        },
        filesList
      };
      $.ajax({
        url: "/project/archives",
        type: "post",
        contentType: "application/json", //设置请求参数类型为json字符串
        dataType: "json",
        data: JSON.stringify(obj),
        success: function (res) {
          var index = parent.layer.getFrameIndex(window.name); /* 先得到当前iframe层的索引 */
          if (res.status == 200) {
            parent.layui.table.reload('fileReload', {page: {curr: 1}});
            parent.layer.close(index); //成功再执行关闭
            parent.layer.msg("添加成功", {
              icon: 6
            });
          } else {
            parent.layer.msg(res.msg, {
              icon: 5
            });
          }
        }
      });
      return false;
    });


  })
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝世唐门三哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值