'use strict'; const $ = id => document.getElementById(id); const dropzone = $('dropzone'); const fileInput = $('fileInput'); const progressList = $('progressList'); const actionRow = $('actionRow'); const uploadBtn = $('uploadBtn'); const clearBtn = $('clearBtn'); const filesList = $('filesList'); const filesMeta = $('filesMeta'); const quotaWrap = $('quotaWrap'); const quotaText = $('quotaText'); const quotaPercent = $('quotaPercent'); const quotaBar = $('quotaBar'); const toastEl = $('toast'); const totalProgress= $('totalProgress'); const totalLabel = $('totalLabel'); const checkAll = $('checkAll'); const checkAllWrap = $('checkAllWrap'); const batchBtn = $('batchBtn'); const batchCount = $('batchCount'); // pending[i] = { id, file, xhr, status: 'pending'|'uploading'|'done'|'error'|'cancelled', progress, error } let pending = []; let nextId = 1; let isUploading = false; // selectedFiles 在 batch.js 顶层 var 声明, 同