vian преди 5 години
родител
ревизия
acff895a87

+ 3 - 3
web/building_saas/standard_interface/config.js

@@ -58,9 +58,9 @@ const INTERFACE_CONFIG = (() => {
     '安徽@池州': {
       scriptName: 'anhui_chizhou.js',
       fileSuffix: {
-          [BID_INVITATION]: '.CZGLZB',
-          [BID_SUBMISSION]: '.CZLTB',
-          [CONTROL]: '.CZGLZBKZJ',
+        [BID_INVITATION]: '.CZGLZB',
+        [BID_SUBMISSION]: '.CZLTB',
+        [CONTROL]: '.CZGLZBKZJ',
       }
     },
     '广东@中山': {

Файловите разлики са ограничени, защото са твърде много
+ 705 - 705
web/building_saas/standard_interface/export/anhui_maanshan.js


Файловите разлики са ограничени, защото са твърде много
+ 858 - 858
web/building_saas/standard_interface/export/base.js


+ 76 - 76
web/building_saas/standard_interface/export/view.js

@@ -7,84 +7,84 @@
  */
 //导出接口相关
 const EXPORT_VIEW = (() => {
-    'use strict';
+  'use strict';
 
-    const _base = INTERFACE_EXPORT_BASE;
-    const _cache = _base.CACHE;
-    // 导出数据缓存,为了自检完后,再导出的时候不需要重新运行相关提取程序。(暂时取消了自检,但还是留着这个缓存机制)
-    let _exportCache = [];
-    // 操作状态
-    const STATE = {
-        checking: false, // 自检
-        exporting: false, // 导出
-    };
-    // 回到初始状态,需要清空cache中的数据
-    function resetState() {
-        _exportCache = [];
-        _cache.clear();
-    }
-    //事件监听
-    function exportListener() {
-        // 导出接口
-        $('#interface-export-confirm').click(async function () {
-            const pr = new SCComponent.InitProgressBar();
-            try {
-                const checkedDatas = $('#interface-export-modal input[type="checkbox"]:checked');
-                if (!checkedDatas.length) {
-                    throw '请勾选导出文件。';
-                }
-                const parentArea = $('#export-parent-area').val();
-                const subArea = $('#export-sub-area').val();
-                if (!parentArea || !subArea) {
-                    throw '请选择有效地区。';
-                }
-                // 按照地区动态加载导出脚本
-                const areaKey = `${parentArea}@${subArea}`;
-                await STD_INTERFACE.loadScriptByArea(areaKey, STD_INTERFACE.ScriptType.EXPORT);
-                if (STATE.exporting) {
-                    return;
-                }
-                STATE.exporting = true;
-                if (!_exportCache || !_exportCache.length) {
-                    pr.start('导出数据接口', '正在导出文件,请稍候……');
-                    for (const checkedData of checkedDatas) {
-                        const boqType = parseInt($(checkedData).val());
-                        const requestForSummaryInfo = INTERFACE_EXPORT.requestForSummaryInfo || null;
-                        const projectID = projectObj.project.ID();
-                        const exportData = await _base.extractExportData(INTERFACE_EXPORT.entry, requestForSummaryInfo, boqType, areaKey, projectID, userID);
-                        _exportCache.push(...exportData);
-                    }
-                }
-                if (_exportCache && _exportCache.length) {
-                    // 导出文件
-                    await _base.exportFile(_exportCache, INTERFACE_EXPORT.saveAsFile || INTERFACE_EXPORT_BASE.defaultSaveAs);
-                }
-                $('#interface-export-modal').modal('hide');
-            } catch (err) {
-                console.log(err);
-                alert(err);
-            } finally {
-                pr.end();
-                setTimeout(() => {
-                    STATE.exporting = false;
-                }, 300);
-            }
-        });
-        //导出窗口--------
-        $('#interface-export-modal').on('hide.bs.modal', function () {
-            resetState();
-            STATE.checking = false;
-            STATE.exporting = false;
-            $('#interface-export-modal input[type="checkbox"]:eq(0)').prop('checked', true);
-        });
-        $('#interface-export-modal input[type="checkbox"]').click(function () {
-            resetState();
-        });
-    }
-    return { exportListener, resetState }
+  const _base = INTERFACE_EXPORT_BASE;
+  const _cache = _base.CACHE;
+  // 导出数据缓存,为了自检完后,再导出的时候不需要重新运行相关提取程序。(暂时取消了自检,但还是留着这个缓存机制)
+  let _exportCache = [];
+  // 操作状态
+  const STATE = {
+    checking: false, // 自检
+    exporting: false, // 导出
+  };
+  // 回到初始状态,需要清空cache中的数据
+  function resetState() {
+    _exportCache = [];
+    _cache.clear();
+  }
+  //事件监听
+  function exportListener() {
+    // 导出接口
+    $('#interface-export-confirm').click(async function () {
+      const pr = new SCComponent.InitProgressBar();
+      try {
+        const checkedDatas = $('#interface-export-modal input[type="checkbox"]:checked');
+        if (!checkedDatas.length) {
+          throw '请勾选导出文件。';
+        }
+        const parentArea = $('#export-parent-area').val();
+        const subArea = $('#export-sub-area').val();
+        if (!parentArea || !subArea) {
+          throw '请选择有效地区。';
+        }
+        // 按照地区动态加载导出脚本
+        const areaKey = `${parentArea}@${subArea}`;
+        await STD_INTERFACE.loadScriptByArea(areaKey, STD_INTERFACE.ScriptType.EXPORT);
+        if (STATE.exporting) {
+          return;
+        }
+        STATE.exporting = true;
+        if (!_exportCache || !_exportCache.length) {
+          pr.start('导出数据接口', '正在导出文件,请稍候……');
+          for (const checkedData of checkedDatas) {
+            const boqType = parseInt($(checkedData).val());
+            const requestForSummaryInfo = INTERFACE_EXPORT.requestForSummaryInfo || null;
+            const projectID = projectObj.project.ID();
+            const exportData = await _base.extractExportData(INTERFACE_EXPORT.entry, requestForSummaryInfo, boqType, areaKey, projectID, userID);
+            _exportCache.push(...exportData);
+          }
+        }
+        if (_exportCache && _exportCache.length) {
+          // 导出文件
+          await _base.exportFile(_exportCache, INTERFACE_EXPORT.saveAsFile || INTERFACE_EXPORT_BASE.defaultSaveAs);
+        }
+        $('#interface-export-modal').modal('hide');
+      } catch (err) {
+        console.log(err);
+        alert(err);
+      } finally {
+        pr.end();
+        setTimeout(() => {
+          STATE.exporting = false;
+        }, 300);
+      }
+    });
+    //导出窗口--------
+    $('#interface-export-modal').on('hide.bs.modal', function () {
+      resetState();
+      STATE.checking = false;
+      STATE.exporting = false;
+      $('#interface-export-modal input[type="checkbox"]:eq(0)').prop('checked', true);
+    });
+    $('#interface-export-modal input[type="checkbox"]').click(function () {
+      resetState();
+    });
+  }
+  return { exportListener, resetState }
 })();
 
 $(document).ready(() => {
-    $('#interface-export-modal').on('show.bs.modal', () => STD_INTERFACE.initExportAreas($('#export-parent-area'), $('#export-sub-area')));
-    EXPORT_VIEW.exportListener();
+  $('#interface-export-modal').on('show.bs.modal', () => STD_INTERFACE.initExportAreas($('#export-parent-area'), $('#export-sub-area')));
+  EXPORT_VIEW.exportListener();
 })

+ 91 - 91
web/building_saas/standard_interface/index.js

@@ -33,102 +33,102 @@ let INTERFACE_EXPORT = {};
 let INTERFACE_IMPORT = {};
 
 const STD_INTERFACE = (() => {
-    'use strict';
+  'use strict';
 
-    // 根据地区配置,初始化地区选项
-    function initExportAreas($parentAreas, $subAreas) {
-        const connectedAreas = Object.keys(INTERFACE_CONFIG);
-        const parentMap = {};
-        connectedAreas.forEach(connectedArea => {
-            const areas = connectedArea.split('@');
-            (parentMap[areas[0]] || (parentMap[areas[0]] = [])).push(areas[1]);
-        });
-        const parentAreasHtml = Object
-            .keys(parentMap)
-            .reduce((acc, area) => acc += `<option value="${area}">${area}</option>`, '');
-        $parentAreas.html(parentAreasHtml);
-        const subAreasHtml = parentMap[Object.keys(parentMap)[0]].reduce((acc, area) => acc += `<option value="${area}">${area}</option>`, '');
-        $subAreas.html(subAreasHtml);
-        // 父级地区变更,子地区选项更新
-        $parentAreas.change(function () {
-            EXPORT_VIEW.resetState(); // 清空接口缓存
-            const curArea = $(this).val();
-            const subAreasHtml = parentMap[curArea].reduce((acc, area) => acc += `<option value="${area}">${area}</option>`, '');
-            $subAreas.html(subAreasHtml);
-        });
-        $subAreas.change(function() {
-            EXPORT_VIEW.resetState();
-        })
-    }
+  // 根据地区配置,初始化地区选项
+  function initExportAreas($parentAreas, $subAreas) {
+    const connectedAreas = Object.keys(INTERFACE_CONFIG);
+    const parentMap = {};
+    connectedAreas.forEach(connectedArea => {
+      const areas = connectedArea.split('@');
+      (parentMap[areas[0]] || (parentMap[areas[0]] = [])).push(areas[1]);
+    });
+    const parentAreasHtml = Object
+      .keys(parentMap)
+      .reduce((acc, area) => acc += `<option value="${area}">${area}</option>`, '');
+    $parentAreas.html(parentAreasHtml);
+    const subAreasHtml = parentMap[Object.keys(parentMap)[0]].reduce((acc, area) => acc += `<option value="${area}">${area}</option>`, '');
+    $subAreas.html(subAreasHtml);
+    // 父级地区变更,子地区选项更新
+    $parentAreas.change(function () {
+      EXPORT_VIEW.resetState(); // 清空接口缓存
+      const curArea = $(this).val();
+      const subAreasHtml = parentMap[curArea].reduce((acc, area) => acc += `<option value="${area}">${area}</option>`, '');
+      $subAreas.html(subAreasHtml);
+    });
+    $subAreas.change(function () {
+      EXPORT_VIEW.resetState();
+    })
+  }
 
-    /**
-     * 动态加载script
-     * 由于后续的接口可能会非常多,一次性加载所有的接口文件完全没必要,而且不可控,很容易导致初次加载速度变慢。
-     * 在选定相关地区后,再根据地区对应的script路径,动态加载script
-     * 不需要缓存,缓存可能会影响正常操作的性能。而且导入导出时动态获取接口文件的需要的时间,客户是不可感知的。
-     * @param {String} path - 需要加载的scipt路径
-     * @return {Promise}
-     */
-    function loadScript(path) {
-        return new Promise((resolve, reject) => {
-            const scriptID = 'interface-script';
-            const body = document.getElementsByTagName('body')[0];
-            // 移除原来的
-            const orgScript = document.getElementById(scriptID);
-            if (orgScript) {
-                body.removeChild(orgScript);
-            }
-            // 增加新的
-            const script = document.createElement('script');
-            script.src = path;
-            script.type = 'text/javascript';
-            script.id = scriptID;
-            body.appendChild(script);
-            script.onload = script.onreadystatechange = function () { // ie、ff触发事件不同,都写上
-                if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {
-                    script.onload = script.onreadystatechange = null;
-                    resolve();
-                }
-            };
-            script.onerror = function () {
-                reject('script加载失败。');
-            };
-        });
-    }
+  /**
+   * 动态加载script
+   * 由于后续的接口可能会非常多,一次性加载所有的接口文件完全没必要,而且不可控,很容易导致初次加载速度变慢。
+   * 在选定相关地区后,再根据地区对应的script路径,动态加载script
+   * 不需要缓存,缓存可能会影响正常操作的性能。而且导入导出时动态获取接口文件的需要的时间,客户是不可感知的。
+   * @param {String} path - 需要加载的scipt路径
+   * @return {Promise}
+   */
+  function loadScript(path) {
+    return new Promise((resolve, reject) => {
+      const scriptID = 'interface-script';
+      const body = document.getElementsByTagName('body')[0];
+      // 移除原来的
+      const orgScript = document.getElementById(scriptID);
+      if (orgScript) {
+        body.removeChild(orgScript);
+      }
+      // 增加新的
+      const script = document.createElement('script');
+      script.src = path;
+      script.type = 'text/javascript';
+      script.id = scriptID;
+      body.appendChild(script);
+      script.onload = script.onreadystatechange = function () { // ie、ff触发事件不同,都写上
+        if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {
+          script.onload = script.onreadystatechange = null;
+          resolve();
+        }
+      };
+      script.onerror = function () {
+        reject('script加载失败。');
+      };
+    });
+  }
 
-    const ScriptType = {
-        EXPORT: 'export',
-        IMPORT: 'import',
-    };
+  const ScriptType = {
+    EXPORT: 'export',
+    IMPORT: 'import',
+  };
 
-    let curArea = '';
-    /**
-     * 根据地区和脚本类型加载脚本
-     * @param {String} area - 地区选项 eg: '安徽省@马鞍山'
-     * @param {Number} scriptType - 脚本类型
-     * @return {Void}
-     */
-    async function loadScriptByArea(area, scriptType) {
-        if (area === curArea) {
-            return;
-        }
-        curArea = area;
-        const configItem = INTERFACE_CONFIG[area];
-        if (!configItem) {
-            throw new Error(`[${area}]不存在有效配置。`);
-        }
-        const scriptName = configItem.scriptName;
-        if (!scriptName) {
-            throw new Error(`[${area}]不存在有效脚本。`);
-        }
-        const fullPath = `/web/building_saas/standard_interface/${scriptType}/${scriptName}`;
-        await loadScript(fullPath);
+  let curArea = '';
+  /**
+   * 根据地区和脚本类型加载脚本
+   * @param {String} area - 地区选项 eg: '安徽省@马鞍山'
+   * @param {Number} scriptType - 脚本类型
+   * @return {Void}
+   */
+  async function loadScriptByArea(area, scriptType) {
+    if (area === curArea) {
+      return;
+    }
+    curArea = area;
+    const configItem = INTERFACE_CONFIG[area];
+    if (!configItem) {
+      throw new Error(`[${area}]不存在有效配置。`);
+    }
+    const scriptName = configItem.scriptName;
+    if (!scriptName) {
+      throw new Error(`[${area}]不存在有效脚本。`);
     }
+    const fullPath = `/web/building_saas/standard_interface/${scriptType}/${scriptName}`;
+    await loadScript(fullPath);
+  }
 
-    return {
-        initExportAreas,
-        ScriptType,
-        loadScriptByArea,
-    };
+  return {
+    initExportAreas,
+    ScriptType,
+    loadScriptByArea,
+  };
 
 })();