|
@@ -48,7 +48,7 @@ var projectObj = {
|
|
|
},
|
|
|
refreshBaseActn: function (tree) {
|
|
|
let setButtonValid = function (valid, btn) {
|
|
|
- if (valid) {
|
|
|
+ if (!projectReadOnly && valid) {
|
|
|
btn.removeClass('disabled');
|
|
|
} else {
|
|
|
btn.addClass('disabled');
|
|
@@ -234,7 +234,7 @@ var projectObj = {
|
|
|
let fieldCol = colSettingObj.getColByField(field);
|
|
|
if(fieldCol){
|
|
|
if(moveScroll){
|
|
|
- mainSheet.showColumn(fieldCol, GC.Spread.Sheets.HorizontalPosition.left);
|
|
|
+ mainSheet.showColumn(fieldCol, GC.Spread.Sheets.HorizontalPosition.center);
|
|
|
}
|
|
|
mainSheet.setActiveCell(projectObj.project.mainTree.selected.serialNo(), fieldCol);
|
|
|
}
|
|
@@ -540,6 +540,7 @@ var projectObj = {
|
|
|
if (isDef(node.data.prefix) && node.data.prefix !== rationPrefix.none){
|
|
|
value = value.replace(new RegExp(node.data.prefix), '');
|
|
|
};
|
|
|
+ value = value.replace(new RegExp(rationPrefix.replace), '');
|
|
|
info.sheet.setValue(info.row, info.col, value);
|
|
|
}
|
|
|
if(node&&fieldName =='quantity'&&(node.data.quantityEXP !==null||node.data.quantityEXP !==undefined)){
|
|
@@ -581,15 +582,33 @@ var projectObj = {
|
|
|
}
|
|
|
if(node.sourceType == ModuleNames.ration){ //在定额编码中双击,如果右侧定额库没有展开,则自动展开。
|
|
|
if(!rationLibObj.tree){
|
|
|
+ sessionStorage.setItem('stdRationLib', node.data.libID);
|
|
|
rationLibObj.doAfterGetRationTree = function () {
|
|
|
- this.locateAtRation(code);
|
|
|
+ this.locateAtRation(node.data.libID, code);
|
|
|
this.doAfterGetRationTree = null;
|
|
|
};
|
|
|
}
|
|
|
else {
|
|
|
- rationLibObj.locateAtRation(code);
|
|
|
+ if($('#stdRationLibSelect').select().val() != node.data.libID){
|
|
|
+ let libOpts = $('#stdRationLibSelect').find('option');
|
|
|
+ for(let libOpt of libOpts){
|
|
|
+ if($(libOpt).val() == node.data.libID){
|
|
|
+ $(libOpt).prop('selected', 'selected');
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('#stdRationLibSelect').change();
|
|
|
+ rationLibObj.doAfterGetRationTree = function () {
|
|
|
+ this.locateAtRation(node.data.libID, code);
|
|
|
+ this.doAfterGetRationTree = null;
|
|
|
+ };
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ rationLibObj.locateAtRation(node.data.libID, code);
|
|
|
+ }
|
|
|
}
|
|
|
if(!$("#de").is(":visible")) $('#stdRationTab').click();
|
|
|
+ console.log($('#stdRationLibSelect').select().val());
|
|
|
}
|
|
|
|
|
|
},
|
|
@@ -641,7 +660,17 @@ var projectObj = {
|
|
|
function getPasteTextArr(info) {
|
|
|
let copyText = info.pasteData.text.trim();
|
|
|
if (!copyText) return null;
|
|
|
- let rows = copyText.split('\r\n');
|
|
|
+ let spliter = '';
|
|
|
+ if (copyText.includes('\r\n')){
|
|
|
+ spliter = '\r\n'
|
|
|
+ }
|
|
|
+ else if (copyText.includes('\n')){ // 兼容Unix、Mac 等系统回车换行符
|
|
|
+ spliter = '\n'
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ spliter = '\r'
|
|
|
+ };
|
|
|
+ let rows = copyText.split(spliter);
|
|
|
let rstArr = [];
|
|
|
for (let row of rows) {
|
|
|
row = row.trim();
|
|
@@ -662,7 +691,7 @@ var projectObj = {
|
|
|
curNode = projectObj.project.mainTree.items[i - 1];
|
|
|
break;
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
if (nodesArr.length < count){
|
|
|
if (projectObj.project.mainTree.selected != curNode)
|
|
@@ -708,7 +737,7 @@ var projectObj = {
|
|
|
// 编号去掉“换、借、补”等多余的字
|
|
|
code = code.replace(new RegExp(rationPrefix.complementary), '');
|
|
|
code = code.replace(new RegExp(rationPrefix.borrow), '');
|
|
|
- // code = code.replace(new RegExp(rationPrefix.replace), '');
|
|
|
+ code = code.replace(new RegExp(rationPrefix.replace), '');
|
|
|
updateRationCodes.push({'node':ptNode, value:code});
|
|
|
}
|
|
|
projectObj.project.Ration.updateRationCodes(updateRationCodes);
|
|
@@ -771,7 +800,7 @@ var projectObj = {
|
|
|
for (let changedCell of changedObj.changedCells) {
|
|
|
let node = project.mainTree.items[changedCell.row];
|
|
|
let colSetting = setting.cols[changedCell.col];
|
|
|
- let value = projectObj.checkSpreadEditingText(changedCell.text, colSetting)
|
|
|
+ let value = projectObj.checkSpreadEditingText(changedCell.text, colSetting);
|
|
|
if(colSetting.data.field=='code' && node.sourceType == project.Ration.getSourceType()&&node.data.type==rationType.ration){//如果是更新定额的编码
|
|
|
updateRationCodes.push({'node':node,value:value});
|
|
|
}else {
|
|
@@ -1087,6 +1116,7 @@ var projectObj = {
|
|
|
var project = this.project, spread = this.mainSpread, controller = this.mainController;
|
|
|
$.contextMenu({
|
|
|
selector: '#billsSpread',
|
|
|
+ selectableSubMenu: true,
|
|
|
build: function ($trigger, e) {
|
|
|
var target = SheetDataHelper.safeRightClickSelection($trigger, e, spread);
|
|
|
controller.setTreeSelected(controller.tree.items[target.row]);
|
|
@@ -1187,7 +1217,7 @@ var projectObj = {
|
|
|
callback: function (key, opt) {
|
|
|
if(project.mainTree.selected.data.type == billType.DXFY){
|
|
|
if(project.mainTree.selected.data.calcBase&&project.mainTree.selected.data.calcBase!=""){
|
|
|
- alert("当前有基数计算不能插入子项。");
|
|
|
+ alert("当前有基数计算,不能插入子项。");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
@@ -1231,13 +1261,16 @@ var projectObj = {
|
|
|
callback: function (key, opt) {
|
|
|
project.Ration.addNewRation(null,rationType.volumePrice,null,true);
|
|
|
// ProjectController.addRation(project, controller, rationType.volumePrice);
|
|
|
- }/*,
|
|
|
- visible: function(key, opt){
|
|
|
- var selected = project.mainTree.selected;
|
|
|
- if(selected){
|
|
|
- return canInsertRationNode(selected);
|
|
|
+ },
|
|
|
+ /* items:{
|
|
|
+ firstCommand:{
|
|
|
+ name: "插入量价",
|
|
|
+ icon: 'fa-sign-in',
|
|
|
+ callback:function(key){
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
- return false;
|
|
|
+
|
|
|
}*/
|
|
|
},
|
|
|
"insertGLJ": {
|
|
@@ -1253,7 +1286,7 @@ var projectObj = {
|
|
|
if(selected.sourceType == ModuleNames.bills){
|
|
|
if(selected.data.type == billType.FX||selected.data.type ==billType.BILL){
|
|
|
if(selected.data.calcBase&&selected.data.calcBase!=""){
|
|
|
- alert("当前有基数计算不能插入子项。");
|
|
|
+ alert("当前有基数计算,不能插入子项。");
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
@@ -1383,6 +1416,17 @@ var projectObj = {
|
|
|
projectObj.editContent(node,'claimVisa');
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+ "replaceMaterial":{
|
|
|
+ name:'智能材料替换',
|
|
|
+ icon: 'fa-edit',
|
|
|
+ disabled:function (key,opt) {
|
|
|
+ let selected = project.mainTree.selected;
|
|
|
+ return selected.sourceType==ModuleNames.bills ?!(project.Bills.isFXorBX(selected)||selected.source.children.length ==0):true//是分项、补项或叶子清单才有效;
|
|
|
+ },
|
|
|
+ callback:function(){
|
|
|
+ MaterialController.replaceMaterial([project.mainTree.selected]);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -1405,6 +1449,7 @@ var projectObj = {
|
|
|
col = parseInt(col);
|
|
|
const sheet = this.mainSpread.getActiveSheet();
|
|
|
sheet.setSelection(row, col, 1, 1);
|
|
|
+ row=row<this.mainController.tree.items.length?row:0;
|
|
|
this.mainController.setTreeSelected(this.mainController.tree.items[row]);//触发树节点选中事件
|
|
|
sheet.showRow(row, GC.Spread.Sheets.VerticalPosition.center);
|
|
|
},
|
|
@@ -1693,10 +1738,12 @@ var projectObj = {
|
|
|
});
|
|
|
},
|
|
|
ifItemCharHiden:function (setting) {//项目特征及内容列是否隐藏
|
|
|
- let col = _.find(setting.cols,function (item) {
|
|
|
- return item.data.field == "itemCharacterText";
|
|
|
- })
|
|
|
- return !col.visible;
|
|
|
+ if(this.itemCol == null||this.itemCol == undefined){
|
|
|
+ this.itemCol = _.find(setting.cols,function (item) {
|
|
|
+ return item.data.field == "itemCharacterText";
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return !this.itemCol.visible;
|
|
|
},
|
|
|
//综合合价cellType
|
|
|
getCommonTotalFeeCellType:function () {
|
|
@@ -1742,7 +1789,7 @@ var projectObj = {
|
|
|
sheetArea: context.sheetArea
|
|
|
};
|
|
|
};
|
|
|
- CommonTotalFeeCellType.prototype.processMouseDown = function (hitinfo) {
|
|
|
+ /*CommonTotalFeeCellType.prototype.processMouseDown = function (hitinfo) {
|
|
|
let me=calcBaseView;
|
|
|
me.pmLeave = false;
|
|
|
if(me.editingCell==null){
|
|
@@ -1781,6 +1828,58 @@ var projectObj = {
|
|
|
hitinfo.sheet.repaint();
|
|
|
calcBaseView.pmLeave = true;
|
|
|
}
|
|
|
+ };*/
|
|
|
+ CommonTotalFeeCellType.prototype.processMouseDown = function (hitinfo) {
|
|
|
+ let me = calcBaseView;
|
|
|
+ if(me.editingCell && hitinfo.row==me.editingCell.row){
|
|
|
+ var offset=hitinfo.cellRect.x+hitinfo.cellRect.width-6;
|
|
|
+ var imageMagin=3;
|
|
|
+ var imageHeight = hitinfo.cellRect.height-2*imageMagin;
|
|
|
+ var imageWidth = hitinfo.cellRect.width*2/7;
|
|
|
+ if(hitinfo.x<offset&&hitinfo.x>offset-imageWidth){
|
|
|
+ if(!projectReadOnly && me.ifEdit(type, hitinfo.row)){
|
|
|
+ if(hitinfo.sheet.getParent() === projectObj.mainSpread){
|
|
|
+ projectObj.project.mainTree.selected = projectObj.project.mainTree.items[hitinfo.row] ? projectObj.project.mainTree.items[hitinfo.row] : null;
|
|
|
+ }
|
|
|
+ hitinfo.sheet.setActiveCell(hitinfo.row, hitinfo.col);
|
|
|
+ calcBaseView.confirmBtn.attr('toggle', 'commonTotalFee');
|
|
|
+ changeCalcBaseFeeRate('commonTotalFee');
|
|
|
+ $('#tabCalcBase').tab('show');
|
|
|
+ calcBaseView.initCalctor(type);
|
|
|
+ feeRateObject.showSelectModal(hitinfo);
|
|
|
+ }
|
|
|
+ }else {//鼠标点击其它地方,消失
|
|
|
+ hideButton(hitinfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ CommonTotalFeeCellType.prototype.processMouseEnter = function (hitinfo){
|
|
|
+ let me = calcBaseView;
|
|
|
+ me.pmLeave = false;
|
|
|
+ if(me.editingCell==null){
|
|
|
+ var showSelectBtn = true;
|
|
|
+ showSelectBtn=me.ifEdit(type, hitinfo.row);
|
|
|
+ if(showSelectBtn){
|
|
|
+ me.editingCell={
|
|
|
+ row:hitinfo.row,
|
|
|
+ col:hitinfo.col
|
|
|
+ };
|
|
|
+ hitinfo.sheet.invalidateLayout();
|
|
|
+ hitinfo.sheet.repaint();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ CommonTotalFeeCellType.prototype.processMouseLeave = function (hitinfo) {
|
|
|
+ hideButton(hitinfo);
|
|
|
+ };
|
|
|
+
|
|
|
+ function hideButton(hitinfo) {
|
|
|
+ if(!calcBaseView.pmLeave){
|
|
|
+ calcBaseView.editingCell=null;
|
|
|
+ hitinfo.sheet.invalidateLayout();
|
|
|
+ hitinfo.sheet.repaint();
|
|
|
+ calcBaseView.pmLeave = true;
|
|
|
+ }
|
|
|
}
|
|
|
return new CommonTotalFeeCellType();
|
|
|
},
|
|
@@ -2036,6 +2135,14 @@ $('#recColSetting').click(function () {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+//恢复默认系统设置
|
|
|
+$('#property_default').click(function () {
|
|
|
+ let project = projectObj.project,
|
|
|
+ projectID = project.ID();
|
|
|
+ CommonAjax.post('/pm/api/defaultSettings', {user_id: userID, projectID: projectID}, function (rstData) {
|
|
|
+ window.location.href = `/main?project=${projectID}`;
|
|
|
+ });
|
|
|
+});
|
|
|
$('#property_ok').click(function () {
|
|
|
let project = projectObj.project,
|
|
|
projectID = project.ID(),
|
|
@@ -2448,7 +2555,7 @@ $('#importConfirm').click(function () {
|
|
|
//选择的表及导入位置
|
|
|
let importSheetsInfo = importBills.getImportSheetsInfo();
|
|
|
if(importSheetsInfo.length === 0){
|
|
|
- throw '请选择要导入的表';
|
|
|
+ throw '请勾选要导入的表';
|
|
|
}
|
|
|
let importSheets = importBills.getImportSheets(importJson.sheets, importSheetsInfo, fileType);
|
|
|
console.log(`importSheets`);
|
|
@@ -2663,16 +2770,17 @@ $(function () {
|
|
|
//项目只读,处理不可操作的工具栏
|
|
|
function disableTools(){
|
|
|
//造价书按钮
|
|
|
- $('#insertRation').remove();
|
|
|
- $('#delete').remove();
|
|
|
- $('#upLevel').remove();
|
|
|
- $('#downLevel').remove();
|
|
|
- $('#upMove').remove();
|
|
|
- $('#downMove').remove();
|
|
|
- $('#ZLFB_btn').remove();
|
|
|
- $('#switchTznr').remove();
|
|
|
- $('#importSpan').remove();
|
|
|
- $('a[name="lockBills"]').remove();
|
|
|
+ $('#insertRation').addClass('disabled');
|
|
|
+ $('#delete').addClass('disabled');
|
|
|
+ $('#upLevel').addClass('disabled');
|
|
|
+ $('#downLevel').addClass('disabled');
|
|
|
+ $('#upMove').addClass('disabled');
|
|
|
+ $('#downMove').addClass('disabled');
|
|
|
+ $('#ZLFB_btn').addClass('disabled');
|
|
|
+ $('#switchTznr').addClass('disabled');
|
|
|
+ $('#uploadLj').addClass('disabled');
|
|
|
+ $('#uploadGld').addClass('disabled');
|
|
|
+ $('a[name="lockBills"]').addClass('disabled');
|
|
|
//关于计算
|
|
|
$('#poj-settings-4').find('input').prop('disabled', 'disabled');
|
|
|
//小数位数
|
|
@@ -2755,6 +2863,9 @@ function changeCalcBaseFeeRate(toggle) {
|
|
|
$('#calcBaseFeeRate').find('.modal-title').text('计算基数选择').show();
|
|
|
$('#calcBaseFeeRate').find('.modal-body').find('button:first').hide();
|
|
|
$('#calcBaseFeeRate').find('.modal-body').find('ul:first').hide();
|
|
|
+ $('#calcBaseExp').remove();
|
|
|
+ let $input = $('<input>').attr('id', 'calcBaseExp').addClass('form-control');
|
|
|
+ $('#expArea').prepend($input);
|
|
|
}
|
|
|
else if(toggle === 'feeRate'){
|
|
|
$('#calcBaseFeeRate').find('.modal-header').show();
|
|
@@ -2766,6 +2877,9 @@ function changeCalcBaseFeeRate(toggle) {
|
|
|
$('#calcBaseFeeRate').find('.modal-header').hide();
|
|
|
$('#calcBaseFeeRate').find('.modal-body').find('button:first').show();
|
|
|
$('#calcBaseFeeRate').find('.modal-body').find('ul:first').show();
|
|
|
+ $('#calcBaseExp').remove();
|
|
|
+ let $textarea = $('<textarea>').attr('id', 'calcBaseExp').prop('rows', 3).addClass('form-control').css('resize', 'none');
|
|
|
+ $('#expArea').prepend($textarea);
|
|
|
}
|
|
|
}
|
|
|
//综合合价弹出计算基数费率确认
|
|
@@ -2783,13 +2897,19 @@ $('#calcBaseFeeRateConf').click(function () {
|
|
|
selected.data.userCalcBase = calcBaseValue;
|
|
|
projectObj.project.calcBase.calculate(selected);
|
|
|
}
|
|
|
- if(!projectObj.project.calcBase.success){
|
|
|
- return;
|
|
|
- }
|
|
|
if(validateFeeRate){
|
|
|
feeRateObject.submitFeeRateFromBill();
|
|
|
}
|
|
|
- else if(!validateFeeRate && needToSave) {
|
|
|
+ else {
|
|
|
+ if(calcBaseValue === calcBaseValue){
|
|
|
+ $('#calcBaseFeeRate').modal('hide');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!projectObj.project.calcBase.success){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else if((!validateFeeRate || selected.data.feeRateID === parseInt(feeRateObject.feeRateSelection.ID)) && needToSave) {
|
|
|
projectObj.project.calcProgram.calcAndSave(selected);
|
|
|
+ $('#calcBaseFeeRate').modal('hide');
|
|
|
}
|
|
|
});
|