/* * @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-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}`; await STD_INTERFACE.loadScriptByArea(areaKey, STD_INTERFACE.ScriptType.IMPORT); } catch (err) { alert(err); } }); } return { importListener, initFileAccept, }; })(); $(document).ready(() => { $('#interface-import-modal').on('show.bs.modal', () => { IMPORT_VIEW.initFileAccept($('#interface-import-file')); STD_INTERFACE.initInterfaceAreas($('#import-parent-area'), $('#import-sub-area')); }); IMPORT_VIEW.importListener(); });