UploadVerify.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <extend name="Public/layout"/>
  2. <block name="main">
  3. <link rel="stylesheet" href="__PUBLIC__/libs/layui/css/layui.css" media="all">
  4. <script src="__PUBLIC__/libs/layui/layui.js"></script>
  5. <script src="__PUBLIC__/libs/jquery/2.x/jquery.js"></script>
  6. <script src="__PUBLIC__/libs/guide/bootstrap-tour.js"></script>
  7. <script src="__PUBLIC__/libs/guide/guide.js?_t=2016121401"></script>
  8. <form action="" enctype="multipart/form-data" method="post" class="layui-form">
  9. <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
  10. <legend>{$meta_title}</legend>
  11. </fieldset>
  12. <div class="layui-form-item">
  13. <label class="layui-form-label">编号</label>
  14. <div class="layui-input-inline">
  15. <select id='bach_name' name="bach_name" lay-verify="required">
  16. <option value="">请选批次编号</option>
  17. <volist name="bach_result" id="v">
  18. <option value="{$v[name]}">{$v[name]}</option>
  19. </volist>
  20. </select>
  21. </div>
  22. <div class="layui-form-mid layui-word-aux">选择对应的批次编号,上传码包</div>
  23. </div>
  24. <div class="layui-upload">
  25. <div class="layui-upload-list">
  26. <table class="layui-table">
  27. <thead>
  28. <tr>
  29. <th>文件名</th>
  30. <th>大小</th>
  31. <th>状态</th>
  32. <th>操作</th>
  33. </tr>
  34. </thead>
  35. <tbody id="demoList"></tbody>
  36. </table>
  37. </div>
  38. <button style="margin-left:2%" type="button" class="layui-btn layui-btn-normal" id="fileList">选择文件</button>
  39. <button style="margin-left:0.8%" type="button" class="layui-btn" id="testListAction">开始上传</button>
  40. <button class="layui-btn layui-btn-warm" lay-submit lay-filter="submits">数据校验</button>
  41. </div>
  42. <span id="hidden">
  43. </span>
  44. </form>
  45. <script>
  46. layui.use(['upload', 'layer', 'form'], function () {
  47. var $ = layui.jquery
  48. , upload = layui.upload,
  49. layer = layui.layer,
  50. form = layui.form;
  51. //多文件列表示例
  52. var demoListView = $('#demoList')
  53. , uploadListIns = upload.render({
  54. elem: '#fileList'
  55. , url: "{:U('Qr/UploadTemp',array('is_verify'=>1))}"
  56. , accept: 'file'
  57. , exts: 'txt'
  58. , multiple: true
  59. , auto: false
  60. , bindAction: '#testListAction'
  61. , choose: function (obj) {
  62. var files = obj.pushFile(); //将每次选择的文件追加到文件队列
  63. //读取本地文件
  64. obj.preview(function (index, file, result) {
  65. if (file.name.indexOf($('#bach_name option:selected').val()) < 0 || $('#bach_name option:selected').val()=='') {
  66. delete files[index]; //删除对应的文件
  67. layer.msg('请选择对应的编号!');
  68. } else {
  69. var tr = $(['<tr id="upload-' + index + '">'
  70. , '<td>' + file.name + '</td>'
  71. , '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
  72. , '<td>等待上传</td>'
  73. , '<td>'
  74. , '<button class="layui-btn layui-btn-mini layui-btn-danger demo-delete">删除</button>'
  75. , '</td>'
  76. , '</tr>'].join(''));
  77. //单个重传
  78. tr.find('.demo-reload').on('click', function () {
  79. obj.upload(index, file);
  80. });
  81. //删除
  82. tr.find('.demo-delete').on('click', function () {
  83. delete files[index]; //删除对应的文件
  84. tr.remove();
  85. });
  86. demoListView.append(tr);
  87. }
  88. });
  89. }
  90. , done: function (res, index, upload) {
  91. if (res.code == 1) { //上传成功
  92. var tr = demoListView.find('tr#upload-' + index)
  93. , tds = tr.children();
  94. tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');
  95. tds.eq(3).html(''); //清空操作
  96. $('#hidden').append("<input type='hidden' name='url[]' value=" + res.file + ">");
  97. /* delete files[index]; //删除文件队列已经上传成功的文件*/
  98. return;
  99. }
  100. layer.msg(res.msg);
  101. this.error(index, upload);
  102. }
  103. , error: function (index, upload) {
  104. var tr = demoListView.find('tr#upload-' + index)
  105. , tds = tr.children();
  106. tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
  107. tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
  108. }
  109. });
  110. form.on('submit(submits)', function (data) {
  111. var url = [];
  112. $("input[name='url[]']").each(function () {
  113. url.push($(this).val());
  114. });
  115. if (url.length == 0) {
  116. layer.msg('请选择上传的文件');
  117. return false;
  118. }
  119. $.ajax({
  120. async: false,//同步
  121. url: "{:U('Qr/Upload',array('is_verify'=>1))}",
  122. type: 'POST',
  123. data: {
  124. url: url,
  125. },
  126. timeout: 1000,//1秒
  127. dataType: 'json',
  128. success: function (data) {
  129. /* layer.msg(data.info,{time:2000});*/
  130. layer.alert(data.msg, function (index) {
  131. window.location.href = '__SELF__';
  132. });
  133. }
  134. });
  135. return false;
  136. });
  137. });
  138. </script>
  139. </block>