| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- // 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<Array>} - 返回的数据结构必须按照规定:[{ data, exportKind, fileName }],参考web\building_saas\standard_interface\index.js中的注释说明
- */
- async function entry(areaKey, exportKind, projectData, tenderDetailMap) {
- console.log(areaKey)
- //<CprjInfo CprjName="中山接口报错" CprjType="QDYS">
- 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() {
- //<RateParam RateTypeNo="DJSGZJFFL" RateParamNo="0" Ratio="100"/>
- 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,
- };
- })();
|