|
|
@@ -171,11 +171,57 @@ const importView = (() => {
|
|
|
$('#tbc-engineering').empty(); //清空工程专业选项
|
|
|
$('#tbc-feeStandard').empty(); //清空费用标准选项
|
|
|
$('#tbc-calcProgram').empty(); //清空计算程序选项
|
|
|
+ //
|
|
|
+ //let engineerings = this.engineeringList.filter(data => data.lib.name === tenderData.engineering);
|
|
|
+ let engineerings = [];
|
|
|
+ if (tenderData.temp.engineering) {
|
|
|
+ engineerings = this.engineeringList.filter(data => data.lib.name === tenderData.temp.engineering);
|
|
|
+ } else {
|
|
|
+ engineerings = this.engineeringList.filter(data => data.lib.name === tenderData.engineering);
|
|
|
+ tenderData.temp.engineering = tenderData.engineering;
|
|
|
+ }
|
|
|
+ //文件里的工程专业跟软件里的对应不上,取第一个
|
|
|
+ if (!engineerings.length) {
|
|
|
+ engineerings = this.engineeringList.filter(data => data.lib.seq === 1) || [this.engineeringList[0]];
|
|
|
+ tenderData.temp.engineering = engineerings[0];
|
|
|
+ }
|
|
|
+ if (!engineerings.length) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //工程专业名称去重
|
|
|
+ let engineeringNames = [...new Set(this.engineeringList.map(data => data.lib.name))];
|
|
|
+ let engineeringHtml = engineeringNames.map(name =>
|
|
|
+ `<option ${tenderData.temp.engineering === name ? 'selected' : ''} value="${name}">${name}</option>`);
|
|
|
+ $('#tbc-engineering').html(engineeringHtml);
|
|
|
+ //$('#tbc-engineering').html(`<option selected value="${tenderData.engineering}">${tenderData.engineering}</option>`);
|
|
|
+ //费用标准,若当前工程有费用标准数据(该数据本身没有费用标准数据,选择过了,就会记录),则选中该费用标准
|
|
|
+ let feeOptsHtml = engineerings.map(data =>
|
|
|
+ `<option ${tenderData.temp.feeStandard === data.lib.feeName ? 'selected' : ''} value="${data.lib.feeName}">${data.lib.feeName}</option>`).join('');
|
|
|
+ $('#tbc-feeStandard').html(feeOptsHtml);
|
|
|
+ //记录选中的费用标准
|
|
|
+ tenderData.temp.feeStandard = $('#tbc-feeStandard').val();
|
|
|
+ //根据工程专业及费用标准确定的当前选中的工程专业库
|
|
|
+ let curEngineering = engineerings.find(data => data.lib.feeName === tenderData.temp.feeStandard) || engineerings[0];
|
|
|
+ //根据计税方法过滤出来的计税组合
|
|
|
+ let taxDatas = curEngineering.lib.tax_group.filter(data => data.taxType == this.taxType);
|
|
|
+ //计算程序,若当前工程有计算程序(该数据本身没有计算程序数据,选择过了,就会记录),则选中该计算程序
|
|
|
+ let calcOptsHtml = taxDatas.map(data =>
|
|
|
+ `<option ${tenderData.temp.calcProgram === data.program_lib.name ? 'selected' : ''} value="${data.program_lib.name}">${data.program_lib.name}</option>`);
|
|
|
+ $('#tbc-calcProgram').html(calcOptsHtml);
|
|
|
+ tenderData.temp.calcProgram = $('#tbc-calcProgram').val();
|
|
|
+ }
|
|
|
+ /*initFeeOpts(tenderData) {
|
|
|
+ $('#tbc-engineering').empty(); //清空工程专业选项
|
|
|
+ $('#tbc-feeStandard').empty(); //清空费用标准选项
|
|
|
+ $('#tbc-calcProgram').empty(); //清空计算程序选项
|
|
|
//工程专业
|
|
|
let engineerings = this.engineeringList.filter(data => data.lib.name === tenderData.engineering);
|
|
|
if (!engineerings.length) {
|
|
|
return;
|
|
|
}
|
|
|
+ /!*let engineeringHtml = this.engineeringList.map(data =>
|
|
|
+ `<option ${tenderData.engineering === data.lib.name ? 'selected' : ''} value="${data.lib.name}">${data.lib.name}</option>`);
|
|
|
+ $('#tbc-engineering').html(engineeringHtml);*!/
|
|
|
$('#tbc-engineering').html(`<option selected value="${tenderData.engineering}">${tenderData.engineering}</option>`);
|
|
|
//费用标准,若当前工程有费用标准数据(该数据本身没有费用标准数据,选择过了,就会记录),则选中该费用标准
|
|
|
let feeOptsHtml = engineerings.map(data =>
|
|
|
@@ -195,7 +241,7 @@ const importView = (() => {
|
|
|
if (!tenderData.temp.calcProgram) {
|
|
|
tenderData.temp.calcProgram = $('#tbc-calcProgram').val();
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
/*
|
|
|
* 根据条件获取计税组合数据
|
|
|
@@ -223,7 +269,7 @@ const importView = (() => {
|
|
|
}
|
|
|
//计税数据
|
|
|
let query = {
|
|
|
- engineeringName: curData.engineering,
|
|
|
+ engineeringName: curData.temp.engineering || curData.engineering,
|
|
|
feeStandard: curData.temp.feeStandard,
|
|
|
taxType: tbcObj.taxType, //取导入时选择的计税方法,不读取文件中的计税方法
|
|
|
calcProgram: curData.temp.calcProgram
|
|
|
@@ -350,6 +396,15 @@ const importView = (() => {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ //变换专业工程
|
|
|
+ $('#tbc-engineering').change(function () {
|
|
|
+ let curData = tbcObj ? tbcObj.datas[tbcObj.curIdx] : null;
|
|
|
+ if (!curData) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ curData.temp.engineering = $(this).val();
|
|
|
+ tbcObj.initFeeOpts(curData);
|
|
|
+ });
|
|
|
//变换费用标准
|
|
|
$('#tbc-feeStandard').change(function () {
|
|
|
let curData = tbcObj ? tbcObj.datas[tbcObj.curIdx] : null;
|
|
|
@@ -357,6 +412,7 @@ const importView = (() => {
|
|
|
return;
|
|
|
}
|
|
|
curData.temp.feeStandard = $(this).val();
|
|
|
+ tbcObj.initFeeOpts(curData);
|
|
|
});
|
|
|
//变换计算程序
|
|
|
$('#tbc-calcProgram').change(function () {
|
|
|
@@ -365,6 +421,7 @@ const importView = (() => {
|
|
|
return;
|
|
|
}
|
|
|
curData.temp.calcProgram = $(this).val();
|
|
|
+ tbcObj.initFeeOpts(curData);
|
|
|
});
|
|
|
//待确认-下一工程
|
|
|
$('#tbc-next').click(function () {
|
|
|
@@ -381,37 +438,38 @@ const importView = (() => {
|
|
|
if (tbcObj && tbcObj.checkValid()) {
|
|
|
return;
|
|
|
}
|
|
|
- //建设项目设置选择的文件类型和选择的计税方法
|
|
|
- xmlObj.property.fileKind = tbcObj.fileKind;
|
|
|
- xmlObj.property.taxType = tbcObj.taxType;
|
|
|
- //确定使用的计税组合
|
|
|
- tbcObj.datas.map(data => {
|
|
|
- data.property = getProperty(tbcObj, data);
|
|
|
- //默认定额库
|
|
|
- let curEngineering = tbcObj.engineeringList.find(enData => data.engineering === enData.lib.name &&
|
|
|
- data.temp.feeStandard === enData.lib.feeName);
|
|
|
- let defaultLib = curEngineering.lib.ration_lib.find(data => data.isDefault) || curEngineering.lib.ration_lib[0];
|
|
|
- data.defaultRationLib = parseInt(defaultLib.id);
|
|
|
- //此费用定额下可用的定额库id,人材机库id
|
|
|
- data.rationLibIDs = curEngineering.lib.ration_lib.map(data => parseInt(data.id));
|
|
|
- data.gljLibIDs = curEngineering.lib.glj_lib.map(data => parseInt(data.id));
|
|
|
- });
|
|
|
- //确定生成建设项目的父、前、后节点ID
|
|
|
- let {parentProjectID, preProjectID, nextProjectID} = projTreeObj.getRelProjectID(projTreeObj.tree.selected);
|
|
|
- xmlObj.ParentID = parentProjectID;
|
|
|
- xmlObj.preID = preProjectID;
|
|
|
- xmlObj.NextSiblingID = nextProjectID;
|
|
|
- //确定建设项目的名称(不允许重复)
|
|
|
- let sameDepthProjs = getProjs(projTreeObj.tree.selected);
|
|
|
- if (sameDepthProjs.find(node => node.data.name === xmlObj.name)) {
|
|
|
- xmlObj.name += `(${moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')})`;
|
|
|
- }
|
|
|
- //console.log(xmlObj);
|
|
|
- $('#importInterface').modal('hide');
|
|
|
- //let importData = await importXML.transformData(xmlObj);
|
|
|
let pr = new SCComponent.InitProgressBar($('#progress'), $('#progress-title'), $('#progress-content'), $('#progressBar'));
|
|
|
- pr.start('导入文件', '正在生成文件,请稍候……');
|
|
|
try {
|
|
|
+ //建设项目设置选择的文件类型和选择的计税方法
|
|
|
+ xmlObj.property.fileKind = tbcObj.fileKind;
|
|
|
+ xmlObj.property.taxType = tbcObj.taxType;
|
|
|
+ //确定使用的计税组合
|
|
|
+ tbcObj.datas.map(data => {
|
|
|
+ data.property = getProperty(tbcObj, data);
|
|
|
+ //默认定额库
|
|
|
+ let curEngineering = tbcObj.engineeringList.find(enData => data.temp.engineering === enData.lib.name &&
|
|
|
+ data.temp.feeStandard === enData.lib.feeName);
|
|
|
+ let defaultLib = curEngineering.lib.ration_lib.find(data => data.isDefault) || curEngineering.lib.ration_lib[0];
|
|
|
+ data.defaultRationLib = parseInt(defaultLib.id);
|
|
|
+ //此费用定额下可用的定额库id,人材机库id
|
|
|
+ data.rationLibIDs = curEngineering.lib.ration_lib.map(data => parseInt(data.id));
|
|
|
+ data.gljLibIDs = curEngineering.lib.glj_lib.map(data => parseInt(data.id));
|
|
|
+ });
|
|
|
+ //确定生成建设项目的父、前、后节点ID
|
|
|
+ let {parentProjectID, preProjectID, nextProjectID} = projTreeObj.getRelProjectID(projTreeObj.tree.selected);
|
|
|
+ xmlObj.ParentID = parentProjectID;
|
|
|
+ xmlObj.preID = preProjectID;
|
|
|
+ xmlObj.NextSiblingID = nextProjectID;
|
|
|
+ //确定建设项目的名称(不允许重复)
|
|
|
+ let sameDepthProjs = getProjs(projTreeObj.tree.selected);
|
|
|
+ if (sameDepthProjs.find(node => node.data.name === xmlObj.name)) {
|
|
|
+ xmlObj.name += `(${moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')})`;
|
|
|
+ }
|
|
|
+ //console.log(xmlObj);
|
|
|
+ $('#importInterface').modal('hide');
|
|
|
+ //let importData = await importXML.transformData(xmlObj);
|
|
|
+ pr.start('导入文件', '正在生成文件,请稍候……');
|
|
|
+
|
|
|
let importData = await importXML.transformData(xmlObj);
|
|
|
let blob = new Blob([JSON.stringify(importData)], {type: 'text/plain;charset=utf-8'});
|
|
|
console.log(blob);
|
|
|
@@ -441,7 +499,7 @@ const importView = (() => {
|
|
|
pr.end();
|
|
|
alert(err);
|
|
|
}
|
|
|
- });
|
|
|
+ });
|
|
|
//导入窗口消失后
|
|
|
$('#importInterface').on('hidden.bs.modal', function () {
|
|
|
importXML = null;
|