// INTERFACE_EXPORT =,必须这么写,这样才能在导出时动态加载脚本后,覆盖前端代码 INTERFACE_EXPORT = (() => { 'use strict'; /** * * @param {String} areaKey - 地区标识,如:'安徽@马鞍山',有些地区的接口只是取值上有不同,共有一个接口脚本, 需要通过地区标识确定一些特殊处理 * @param {Number} exportKind - 导出类型,招标、投标、控制价 * @param {Object} projectData - 项目表数据:{ 建设项目Data, children: [单位工程...] } * @param {Object} tenderDetailMap - 单位工程ID与getData接口数据(projectObj.project的结构)的映射。 * @return {Promise} - 返回的数据结构必须按照规定:[{ data, exportKind, fileName }],参考web\building_saas\standard_interface\index.js中的注释说明 */ async function entry(areaKey, exportKind, projectData, tenderDetailMap) { console.log(areaKey) // const { UTIL, Element, } = INTERFACE_EXPORT_BASE; const { EXPORT_KIND: { BID_INVITATION, BID_SUBMISSION, CONTROL }, fixedFlag, } = window.commonConstants let cprjType = { 1: 'ZBKZJ', // 招标 2: 'TBBJ', // 投标 3: 'GCLQD' // 控制价 } const isBidInvitation = exportKind === BID_INVITATION; // 是否是招标 const isBidSubmission = exportKind === BID_SUBMISSION; // 是否是投标 const isControl = exportKind === CONTROL; // 是否是控制价 // 建设项目根节点信息 function CprjInfo(projectName) { const attrs = [{ name: 'CprjName', value: projectName }, { name: 'CprjType', value: cprjType[exportKind] }]; Element.call(this, 'CprjInfo', attrs); } // 项目基本信息 function SystemInfo(projectData) { let hardID = UTIL.generateHardwareId(); let [cpuId, diskId, macId] = hardID.split(';'); const attrs = [{ name: 'Name', value: '公路工程造价数据标准' }, { name: 'Version', value: '1.0' }, { name: 'SoftwareName', value: '纵横公路云造价' }, { name: 'SoftwareVer', value: VERSION }, { name: 'SoftwareCompany', value: '珠海纵横创新软件有限公司' }, { name: 'MakeDate', value: '' }, { name: 'Key1', value: window.btoa(VERSION) }, { name: 'Key2', value: window.btoa(diskId) }, { name: 'Key3', value: window.btoa(macId) } ]; if (isBidSubmission) attrs.splice(6, 0, { name: 'BidderVer', value: '' }) Element.call(this, 'SystemInfo', attrs); } //造价依据 function CostBasis() { // ItemStandardNo="GYSFX-000000-2018-86" const attrs = [{ name: 'MakeRuleNo', value: 'GYSBB-000000-2018-86' }, { name: 'MakeRuleName', value: '公路工程建设项目概算预算编制办法' }, { name: 'ItemStandardNo', value: 'GYSFX-000000-2018-86' }]; Element.call(this, 'CostBasis', attrs); //定额库信息 //to do 改成实际的值 function NormLib() { const attrs = [{ name: 'NormLibNo', value: '0' }, { name: 'NormLibName', value: '部颁公路工程预算定额(2018)' }, { name: 'Type', value: 'ZDEK' }]; Element.call(this, 'NormLib', attrs); } this.children.push(new NormLib()); } function Rate(feeRateInfo) { //RateNo="1" Name="纵横软件测试版本" RateLibNo="GYSFL-000000-2018-86" const attrs = [{ name: 'RateNo', value: feeRateInfo.ID }, { name: 'Name', value: feeRateInfo.name }, { name: 'RateLibNo', value: feeRateInfo.libID }]; Element.call(this, 'Rate', attrs); let RateParams = { name: 'RateParams', attrs: [], children: [] } RateParams.children.push(new RateParam()); this.children.push(RateParams); function RateParam() { // const attrs = [{ name: 'RateTypeNo', value: 'DJSGZJFFL' }, { name: 'RateParamNo', value: '0' }, { name: 'Ratio', value: '100' }]; Element.call(this, 'RateParam', attrs); } } let data = new CprjInfo(projectData.name); data.children.push(new SystemInfo()); data.children.push(new CostBasis()); let feeRataDatas = tenderDetailMap[projectObj.project.ID()].FeeRate.datas; data.children.push(new Rate(feeRataDatas)); return [{ data: data, exportKind: exportKind, fileName: projectData.name + INTERFACE_CONFIG[areaKey]['fileSuffix'][exportKind] }] } return { entry, }; })();