浏览代码

资料归集,上传文件,过滤同名文件

MaiXinRong 1 年之前
父节点
当前提交
0c29e829ef
共有 2 个文件被更改,包括 20 次插入2 次删除
  1. 16 2
      app/public/js/file_detail.js
  2. 4 0
      app/view/file/file_modal.ejs

+ 16 - 2
app/public/js/file_detail.js

@@ -230,10 +230,12 @@ $(document).ready(function() {
                 callback(result);
             });
         }
-        uploadFiles(files, callback) {
+        uploadFiles(files, filterFiles, callback) {
             const formData = new FormData();
             formData.append('filing_id', filingObj.curFiling.id);
+            let count = 0;
             for (const file of files) {
+                if (filterFiles.indexOf(file.name) >= 0) continue;
                 if (file === undefined) {
                     toastr.error('未选择上传文件。');
                     return false;
@@ -249,6 +251,11 @@ $(document).ready(function() {
                 }
                 formData.append('size', file.size);
                 formData.append('file[]', file);
+                count++;
+            }
+            if (count === 0) {
+                toastr.warning('没有可上传的文件');
+                return false;
             }
             postDataWithFile('file/upload', formData, function (data) {
                 filingObj.updateFilingFileCount(filingObj.curFiling, data.filing.file_count);
@@ -574,6 +581,8 @@ $(document).ready(function() {
         });
     });
     $('#add-file').on('show.bs.modal', function() {
+        $('#filter-same')[0].checked = false;
+        $('#filter-same').parent().hide();
         $('#upload-file-hint').hide();
         $('#upload-file')[0].value = '';
         if ($('#add-file-ok').hasClass('btn-warning')) $('#add-file-ok').removeClass('btn-warning').addClass('btn-primary');
@@ -585,16 +594,21 @@ $(document).ready(function() {
             if (result.length === 0) {
                 $('#upload-file-hint').hide();
                 $('#add-file-ok').removeClass('btn-warning').addClass('btn-primary').attr('disabled', false);
+                $('#filter-same').parent().hide();
             } else {
                 const msg = result[0] + (result.length > 1 ? `(等${result.length}个文件)`: '') + '</br>存在同名文件,请确认是否上传重复';
                 $('#upload-file-hint').html(msg).show();
                 $('#add-file-ok').removeClass('btn-primary').addClass('btn-warning').attr('disabled', false);
+                $('#filter-same').parent().show();
+                $('#filter-same').attr('filterFiles', result.join('$;$'));
             }
         });
     });
     $('#add-file-ok').click(() => {
         const input = $('#upload-file');
-        filingObj.uploadFiles(input[0].files, function() {
+        const filter = $('#filter-same')[0].checked;
+        const filterFiles = filter ? $('#filter-same').attr('filterFiles').split('$;$') : [];
+        filingObj.uploadFiles(input[0].files, filterFiles, function() {
             $(input).val('');
             $('#add-file').modal('hide');
         });

+ 4 - 0
app/view/file/file_modal.ejs

@@ -78,6 +78,10 @@
                 </div>
             </div>
             <div class="modal-footer">
+                <div class="custom-control custom-checkbox">
+                    <input type="checkbox" class="custom-control-input" id="filter-same">
+                    <label class="custom-control-label text-primary" for="filter-same">过滤同名附件</label>
+                </div>
                 <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
                 <button type="button" class="btn btn-primary btn-sm" id="add-file-ok">确认</button>
             </div>