/* * @Descripttion: 导入接口视图相关 * @Author: vian * @Date: 2020-09-08 09:36:52 */ const IMPORT_VIEW = (() => { /** * 根据接口配置文件,设置可被接受的导入文件类型 * @param {Object} $file - 文件选择Jquery dom * @return {Void} */ function initFileAccept($file) { const set = new Set(); Object .values(INTERFACE_CONFIG) .forEach(config => { Object .values(config.fileSuffix) .forEach(suffix => set.add(suffix)); }); const accept = [...set].join(','); $file.prop('accept', accept); } // 导入相关事件监听器 function importListener() { // 文件选择变更 $('#interface-import-file').change(function () { const file = $(this)[0].files[0]; $('#interface-import-label').text(file && file.name || '请选择导入文件'); }); // 导入确认事件 $('#interface-import-confirm').click(async function () { try { const file = $('#interface-import-file')[0].files[0]; if (!file) { throw '请选择导入文件。'; } // 按照地区动态加载导入脚本 const parentArea = $('#import-parent-area').val(); const subArea = $('#import-sub-area').val(); if (!parentArea || !subArea) { throw '请选择有效地区。'; } const areaKey = `${parentArea}@${subArea}`; $.bootstrapLoading.progressStart('导入文件', true); $("#progress_modal_body").text('正在导入接口文件,请稍候……'); await STD_INTERFACE.loadScriptByArea(areaKey, STD_INTERFACE.ScriptType.IMPORT); const feeRateStandard = INTERFACE_CONFIG[areaKey].feeRateStandard; const importData = await INTERFACE_EXPORT_BASE.extractImportData(INTERFACE_IMPORT.entry, file, areaKey, feeRateStandard); // 转换成File实例 /* const blob = new Blob([JSON.stringify(importData)], { type: 'text/plain;charset=utf-8' }); const key = `${uuid.v1()}.json`; const file = new File([blob], key); // 上传文件 await projTreeObj.getUploadToken(); await UPLOAD_CDN.uploadSync(file, key, projTreeObj.uptoken); // 下载并处理文件 await ajaxPost('/pm/import/importInterface', { key }); await importProcessChecking(key, null, (projectData) => handleProjectAfterChecking(projectData)); */ } catch (err) { alert(err); } finally { setTimeout(() => $.bootstrapLoading.progressEnd(), 500); } }); } return { importListener, initFileAccept, }; })(); $(document).ready(() => { $('#interface-import-modal').on('show.bs.modal', () => { $('#interface-import-file').val(''); $('#interface-import-label').text('请选择导入文件'); IMPORT_VIEW.initFileAccept($('#interface-import-file')); STD_INTERFACE.initInterfaceAreas($('#import-parent-area'), $('#import-sub-area')); }); IMPORT_VIEW.importListener(); });