|
@@ -24,6 +24,10 @@ let fileType = {
|
|
|
feeRateFile: 'FeeRateFile'
|
|
|
};
|
|
|
|
|
|
+let taxTypeMap = {
|
|
|
+ 1:"一般计税",
|
|
|
+ 2:"简易计税"
|
|
|
+};
|
|
|
|
|
|
const projTreeObj = {
|
|
|
tree: null,
|
|
@@ -1084,6 +1088,13 @@ $(document).ready(function() {
|
|
|
changeEngineering();
|
|
|
});
|
|
|
|
|
|
+ //选择计税方式
|
|
|
+ $("#taxType").change(function () {
|
|
|
+ $('#valuation-info').hide();
|
|
|
+ getStdCalcProgramFiles();
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
// 新增单项项目点击
|
|
|
/* $("#add-engineering-btn").click(function() {
|
|
|
let selectedItem = projTreeObj.tree.selected;
|
|
@@ -1113,7 +1124,7 @@ $(document).ready(function() {
|
|
|
});*/
|
|
|
|
|
|
//新建单位工程-建设项目提示
|
|
|
- $('#poj-name').change(function () {
|
|
|
+ $('#poj-name').keyup(function () {
|
|
|
let pojName = $('#poj-name').val().trim();
|
|
|
let nameList = getNameList($('#poj-name-list').children());
|
|
|
let isExist = hasListName(nameList, pojName);
|
|
@@ -1122,25 +1133,40 @@ $(document).ready(function() {
|
|
|
replaceClass($('#poj-name-info'), 'text-danger', 'text-info');
|
|
|
setDangerInfo($('#poj-name-info'), `新建“${pojName}”`);
|
|
|
}
|
|
|
+ else {
|
|
|
+ $('#poj-name-info').hide();
|
|
|
+ }
|
|
|
//清空单项工程下拉和文件下拉
|
|
|
setEngOptions(null);
|
|
|
setFileOptions(null);
|
|
|
}
|
|
|
else {
|
|
|
+ //触发选项
|
|
|
+ let curName = $(this).val().trim();
|
|
|
+ function getProjOpt(opts){
|
|
|
+ for(let opt of opts){
|
|
|
+ if($(opt).text().trim() === curName){
|
|
|
+ return $(opt);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ let matchOpt = getProjOpt($('#poj-name-list').find('button'));
|
|
|
+ if(matchOpt){
|
|
|
+ matchOpt.click();
|
|
|
+ }
|
|
|
$('#poj-name-info').hide();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
//新建单位工程-单项工程提示
|
|
|
- $('#eng-name').change(function () {
|
|
|
+ $('#eng-name').keyup(function () {
|
|
|
let engName = $('#eng-name').val().trim();
|
|
|
let nameList = getNameList($('#eng-name-list').children());
|
|
|
let isExist = hasListName(nameList, engName);
|
|
|
- if(!isExist){
|
|
|
- if(engName !== ''){
|
|
|
- replaceClass($('#eng-name-info'), 'text-danger', 'text-info');
|
|
|
- setDangerInfo($('#eng-name-info'), `新建“${engName}”`);
|
|
|
- }
|
|
|
+ if(!isExist && engName !== ''){
|
|
|
+ replaceClass($('#eng-name-info'), 'text-danger', 'text-info');
|
|
|
+ setDangerInfo($('#eng-name-info'), `新建“${engName}”`);
|
|
|
}
|
|
|
else {
|
|
|
$('#eng-name-info').hide();
|
|
@@ -1148,7 +1174,7 @@ $(document).ready(function() {
|
|
|
});
|
|
|
|
|
|
//新建单位工程-单位工程提示
|
|
|
- $('#tender-name').change(function () {
|
|
|
+ $('#tender-name').keyup(function () {
|
|
|
let selected = projTreeObj.tree.selected;
|
|
|
let pojName = $('#poj-name').val().trim();
|
|
|
let engName = $('#eng-name').val().trim();
|
|
@@ -1394,46 +1420,71 @@ $(document).ready(function() {
|
|
|
function changeEngineering(){
|
|
|
$('#engineering-info').hide();
|
|
|
let engineeringList = getEngineeringList();
|
|
|
- if(engineeringList.length === 0){
|
|
|
- return false;
|
|
|
- }
|
|
|
- let selectedEngineering = $("#tender-engineering").val();
|
|
|
- selectedEngineering = parseInt(selectedEngineering);
|
|
|
- let currentLib = {};
|
|
|
- for(let engineering of engineeringList) {
|
|
|
- if (engineering.engineering === selectedEngineering) {
|
|
|
- currentLib = engineering.lib;
|
|
|
+ if(engineeringList.length > 0){
|
|
|
+ let selectedEngineering = $("#tender-engineering").val();
|
|
|
+ let currentLib = {};
|
|
|
+ for(let engineering of engineeringList) {
|
|
|
+ if (engineering.engineering_id === selectedEngineering) {
|
|
|
+ currentLib = engineering.lib;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Object.keys(currentLib).length > 0) {
|
|
|
+ // 输出数据到页面
|
|
|
+ if (currentLib.fee_lib !== undefined && currentLib.fee_lib.length > 0) {
|
|
|
+ $("#tender-fee-rate").children("option").first().val("newFeeRate-"+currentLib.fee_lib[0].id);
|
|
|
+ }
|
|
|
+ $("#tender-engineering").parent().siblings('.hidden-area').slideDown('fast');
|
|
|
}
|
|
|
}
|
|
|
+ setTaxGroupHtml();
|
|
|
+ getStdCalcProgramFiles();
|
|
|
+ }
|
|
|
|
|
|
- if (Object.keys(currentLib).length <= 0) {
|
|
|
- return false;
|
|
|
+
|
|
|
+ function setTaxGroupHtml() {
|
|
|
+ let groups = getTaxGroupList();
|
|
|
+ let taxTypeArray = [];
|
|
|
+ let htmlString = "";
|
|
|
+ if(groups && groups.length > 0){
|
|
|
+ taxTypeArray = _.uniq(_.map(groups,'taxType'));
|
|
|
}
|
|
|
- // 输出数据到页面
|
|
|
- if (currentLib.fee_lib !== undefined && currentLib.fee_lib.length > 0) {
|
|
|
- $("#tender-fee-rate").children("option").first().val("newFeeRate-"+currentLib.fee_lib[0].id);
|
|
|
+ for(let t of taxTypeArray){
|
|
|
+ htmlString += "<option value='"+t+"'>"+taxTypeMap[t]+"</option>"
|
|
|
}
|
|
|
- $("#tender-engineering").parent().siblings('.hidden-area').slideDown('fast');
|
|
|
-
|
|
|
- function getStdCalcProgramFiles(){
|
|
|
- function getStdCPFilesHtml(stdCPLibs) {
|
|
|
- let result = '<option value="">请选择计算程序</option>';
|
|
|
- if (stdCPLibs.length <= 0) {
|
|
|
- return result;
|
|
|
- };
|
|
|
+ $('#taxType').html(htmlString);
|
|
|
+ if(taxTypeArray.length <2){
|
|
|
+ $('#taxType_div').hide();
|
|
|
+ }else {
|
|
|
+ $('#taxType_div').show();
|
|
|
+ }
|
|
|
+ console.log(taxTypeArray);
|
|
|
+ }
|
|
|
|
|
|
- for (let lib of stdCPLibs){
|
|
|
- result += '<option value='+ lib.id +'>'+ lib.name +'</option>';
|
|
|
- };
|
|
|
+ function getStdCalcProgramFiles(){
|
|
|
+ function getStdCPFilesHtml(taxGroups) {
|
|
|
+ let result = '<option value="">请选择计算程序</option>';
|
|
|
+ if (taxGroups.length <= 0) {
|
|
|
return result;
|
|
|
};
|
|
|
- let stdCPHtml = getStdCPFilesHtml(getcalcProgramList());
|
|
|
- $("#tender-calcProgram").html(stdCPHtml);
|
|
|
- if ($("#tender-calcProgram")[0].options.length > 1)
|
|
|
- $("#tender-calcProgram")[0].selectedIndex = 1;
|
|
|
+
|
|
|
+ for (let group of taxGroups){
|
|
|
+ let groupString = ""; //把计算程序、清单模板、列设置的ID生成一个组合的值
|
|
|
+ let p_id = group.program_lib?group.program_lib.id:"";
|
|
|
+ let t_id = group.template_lib?group.template_lib.id:"";
|
|
|
+ let c_id = group.col_lib?group.col_lib.id:"";
|
|
|
+ groupString = p_id + "|-|" +t_id+"|-|"+c_id;
|
|
|
+ result += '<option value='+ groupString +'>'+ group.program_lib.name +'</option>';
|
|
|
+ };
|
|
|
+ return result;
|
|
|
};
|
|
|
- getStdCalcProgramFiles();
|
|
|
+ let taxType = $("#taxType").val();
|
|
|
+ let stdCPHtml = getStdCPFilesHtml(getTaxGroupList(taxType));
|
|
|
+ $("#tender-calcProgram").html(stdCPHtml);
|
|
|
+ if ($("#tender-calcProgram")[0].options.length > 1)
|
|
|
+ $("#tender-calcProgram")[0].selectedIndex = 1;
|
|
|
}
|
|
|
+
|
|
|
// 选择工程专业后动态更改费率文件等数据
|
|
|
$("#tender-engineering").change(function() {
|
|
|
changeEngineering()
|
|
@@ -1810,17 +1861,26 @@ function getEngineeringList(){
|
|
|
return engineeringList;
|
|
|
}
|
|
|
|
|
|
-function getcalcProgramList(){
|
|
|
+
|
|
|
+
|
|
|
+function getTaxGroupList(type){//getcalcProgramList
|
|
|
let egrs = getEngineeringList();
|
|
|
- let calcProgramList = [];
|
|
|
+ let groupList = [];
|
|
|
let egrID = $("#tender-engineering").val();
|
|
|
for(let egr of egrs) {
|
|
|
- if (egr.engineering == egrID) {
|
|
|
- calcProgramList = egr.lib.program_lib;
|
|
|
- break;
|
|
|
+ if (egr.engineering_id == egrID && egr.lib) {
|
|
|
+ if(type){//是否要过滤,如果这个参数不传,则返回整个数组;
|
|
|
+ for(let group of egr.lib.tax_group){
|
|
|
+ if(group.taxType == type && group.program_lib){
|
|
|
+ groupList.push(group);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ groupList = egr.lib.tax_group;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- return calcProgramList;
|
|
|
+ return groupList;
|
|
|
}
|
|
|
|
|
|
function getNodeByName(name, nodes){
|
|
@@ -2100,22 +2160,36 @@ function AddTender() {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- let engineering = $("#tender-engineering").val();
|
|
|
- if (engineering === '') {
|
|
|
+ let engineering_id = $("#tender-engineering").val();
|
|
|
+ if (engineering_id === '') {
|
|
|
setDangerInfo($('#engineering-info'), '请选择工程专业');
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- let calcProgram = $("#tender-calcProgram").val();
|
|
|
- if (calcProgram === '') {
|
|
|
+ let taxType = $("#taxType").val();
|
|
|
+ if(taxType ===""){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ let IDGroup = $("#tender-calcProgram").val();
|
|
|
+ if (IDGroup === '') {
|
|
|
setDangerInfo($('#calcProgram-info'), '请选择计算程序');
|
|
|
return false;
|
|
|
}
|
|
|
+ IDGroup = IDGroup.split("|-|");
|
|
|
+
|
|
|
+ let calcProgram = isNaN(parseInt(IDGroup[0]))?IDGroup[0]:parseInt(IDGroup[0]);//转换成整数
|
|
|
+ let templateLibID = IDGroup[1];
|
|
|
+ let colLibID = IDGroup[2];
|
|
|
+ if(templateLibID == ''|| colLibID ==''){
|
|
|
+ alert("工程专业配置有误!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
let valuationName = $("#valuation").children("option:selected").text();
|
|
|
let valuationType = $("input[name='valuation_type']:checked").val();
|
|
|
|
|
|
- let engineering_id = undefined;
|
|
|
+ let engineering = undefined;
|
|
|
let valuationData = valuationType === 'bill' ? JSON.parse(billValuation) : JSON.parse(rationValuation);
|
|
|
let engineeringList = [];
|
|
|
for(let tmp of valuationData) {
|
|
@@ -2126,15 +2200,15 @@ function AddTender() {
|
|
|
}
|
|
|
let libs = null;
|
|
|
for(let tmp of engineeringList) {
|
|
|
- if (tmp.engineering == engineering) {
|
|
|
- engineering_id = tmp.engineering_id;
|
|
|
+ if (tmp.engineering_id == engineering_id) {
|
|
|
+ engineering = tmp.engineering;
|
|
|
libs = tmp.lib;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
// 一个项目里面,这两个文件必须得有,而界面又没有像费率、单价文件那样给出可选项。所以这里给出提示。
|
|
|
if (!libs.artificial_lib) throw '编办没有绑定人工系数标准文件';
|
|
|
- if (!libs.program_lib) throw '编办没有绑定计算程序标准文件';
|
|
|
+ //if (!libs.program_lib) throw '编办没有绑定计算程序标准文件';
|
|
|
|
|
|
let engineeringName = $('#tender-engineering').children("option:selected").text();
|
|
|
let calcProgramName = $('#tender-calcProgram').children("option:selected").text();
|
|
@@ -2162,7 +2236,10 @@ function AddTender() {
|
|
|
engineeringName: engineeringName,
|
|
|
unitPriceFile: {name: unitPriceFileObj.name, id: unitPriceFileObj.id},
|
|
|
feeFile: {name: feeFileObj.name, id: feeFileObj.id},
|
|
|
- calcProgram: {name: calcProgramName, id: calcProgram}
|
|
|
+ calcProgram: {name: calcProgramName, id: calcProgram},
|
|
|
+ taxType:taxType,
|
|
|
+ templateLibID:templateLibID,
|
|
|
+ colLibID:colLibID
|
|
|
};
|
|
|
AddTenderItems(selectedItem, projName, engName, tenderName, tenderInfo, callback);
|
|
|
|
|
@@ -2495,9 +2572,10 @@ function getEngineeringHtml(engineeringList) {
|
|
|
|
|
|
for(let i = 0; i < engineeringList.length; i++){
|
|
|
let tmp = engineeringList[i];
|
|
|
- if (engineeringObject[tmp.engineering] !== undefined) {
|
|
|
+ result += `<option ${i === 0 ? 'selected' : ''} value="${tmp.engineering_id}">${tmp.lib.name}</option>`;
|
|
|
+ /*if (engineeringObject[tmp.engineering] !== undefined) {
|
|
|
result += `<option ${i === 0 ? 'selected' : ''} value="${tmp.engineering}">${engineeringObject[tmp.engineering]}</option>`;
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
/*for(let tmp of engineeringList) {
|