view.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * @Descripttion: 导入接口视图相关
  3. * @Author: vian
  4. * @Date: 2020-09-08 09:36:52
  5. */
  6. const IMPORT_VIEW = (() => {
  7. /**
  8. * 根据接口配置文件,设置可被接受的导入文件类型
  9. * @param {Object} $file - 文件选择Jquery dom
  10. * @return {Void}
  11. */
  12. function initFileAccept($file) {
  13. const set = new Set();
  14. Object
  15. .values(INTERFACE_CONFIG)
  16. .forEach(config => {
  17. Object
  18. .values(config.fileSuffix)
  19. .forEach(suffix => set.add(suffix));
  20. });
  21. const accept = [...set].join(',');
  22. $file.prop('accept', accept);
  23. }
  24. // 导入相关事件监听器
  25. function importListener() {
  26. // 导入确认事件
  27. $('#interface-import-confirm').click(async function () {
  28. try {
  29. const file = $('#interface-import-file')[0].files[0];
  30. if (!file) {
  31. throw '请选择导入文件。';
  32. }
  33. // 按照地区动态加载导入脚本
  34. const parentArea = $('#import-parent-area').val();
  35. const subArea = $('#import-sub-area').val();
  36. if (!parentArea || !subArea) {
  37. throw '请选择有效地区。';
  38. }
  39. const areaKey = `${parentArea}@${subArea}`;
  40. await STD_INTERFACE.loadScriptByArea(areaKey, STD_INTERFACE.ScriptType.IMPORT);
  41. } catch (err) {
  42. alert(err);
  43. }
  44. });
  45. }
  46. return {
  47. importListener,
  48. initFileAccept,
  49. };
  50. })();
  51. $(document).ready(() => {
  52. $('#interface-import-modal').on('show.bs.modal', () => {
  53. IMPORT_VIEW.initFileAccept($('#interface-import-file'));
  54. STD_INTERFACE.initInterfaceAreas($('#import-parent-area'), $('#import-sub-area'));
  55. });
  56. IMPORT_VIEW.importListener();
  57. });