|
@@ -4,6 +4,7 @@
|
|
|
*/
|
|
|
|
|
|
var billsLibObj = {
|
|
|
+ stdBillsTree: null,
|
|
|
stdBillsSpread: null,
|
|
|
stdBillsJobSpread: null,
|
|
|
stdBillsFeatureSpread: null,
|
|
@@ -13,6 +14,7 @@ var billsLibObj = {
|
|
|
checkBillsSpread: function () {
|
|
|
if (!this.stdBillsSpread) {
|
|
|
this.stdBillsSpread = SheetDataHelper.createNewSpread($('#stdBillsSpread')[0]);
|
|
|
+ this.stdBillsSpread.getSheet(0).name('stdBillsLib_bills');
|
|
|
// 刷新setting中记录的spread的位置
|
|
|
this.refreshSettingForHint();
|
|
|
}
|
|
@@ -64,8 +66,12 @@ var billsLibObj = {
|
|
|
select.empty();
|
|
|
|
|
|
let bills_lib = projectInfoObj.projectInfo.engineeringInfo.bill_lib;
|
|
|
+ let selectedBillsLib = sessionStorage.getItem('stdBillsLib');
|
|
|
bills_lib.forEach(function (data) {
|
|
|
var option = $('<option>').val(data.id).text(data.name);
|
|
|
+ if(selectedBillsLib && data.id == selectedBillsLib){
|
|
|
+ option.attr('selected', 'selected');
|
|
|
+ }
|
|
|
select.append(option);
|
|
|
});
|
|
|
if (select.children.length !== 0) {
|
|
@@ -75,8 +81,11 @@ var billsLibObj = {
|
|
|
loadStdBills: function (stdBillsLibID) {
|
|
|
var that = this;
|
|
|
var stdBillsJobData, stdBillsFeatureData, stdBills;
|
|
|
- var stdBillsTree = idTree.createNew({id: 'ID', pid: 'ParentID', nid: 'NextSiblingID', rootId: -1, autoUpdate: true});
|
|
|
- var stdBillsTreeController = TREE_SHEET_CONTROLLER.createNew(stdBillsTree, billsLibObj.stdBillsSpread.getActiveSheet(), billsLibObj.stdBillsTreeSetting);
|
|
|
+ if(that.stdBillsTree){
|
|
|
+ that.stdBillsTree = null;
|
|
|
+ }
|
|
|
+ that.stdBillsTree = idTree.createNew({id: 'ID', pid: 'ParentID', nid: 'NextSiblingID', rootId: -1, autoUpdate: true});
|
|
|
+ var stdBillsTreeController = TREE_SHEET_CONTROLLER.createNew(that.stdBillsTree, billsLibObj.stdBillsSpread.getActiveSheet(), billsLibObj.stdBillsTreeSetting);
|
|
|
var findData = function (value, field, Array) {
|
|
|
var i = 0;
|
|
|
for (i = 0; i < Array.length; i++) {
|
|
@@ -164,25 +173,31 @@ var billsLibObj = {
|
|
|
});
|
|
|
CommonAjax.post('/stdBillsEditor/getBills', {userId: userID, billsLibId: stdBillsLibID}, function (datas) {
|
|
|
stdBills = datas;
|
|
|
- stdBillsTree.loadDatas(stdBills);
|
|
|
+ that.stdBillsTree.loadDatas(stdBills);
|
|
|
+ //读取展开收起状态
|
|
|
+ let currentExpState = sessionStorage.getItem('stdBillsLibExpState');
|
|
|
+ if(currentExpState){
|
|
|
+ that.stdBillsTree.setExpandedByState(that.stdBillsTree.items, currentExpState);
|
|
|
+ }
|
|
|
//非叶子节点默认收起
|
|
|
- stdBillsTree.setRootExpanded(stdBillsTree.roots, false);
|
|
|
-
|
|
|
+ else{
|
|
|
+ that.stdBillsTree.setRootExpanded(that.stdBillsTree.roots, false);
|
|
|
+ }
|
|
|
stdBillsTreeController.showTreeData();
|
|
|
billsLibObj.setTagForHint(datas);
|
|
|
- showBillsRela(stdBillsTree.firstNode());
|
|
|
+ showBillsRela(that.stdBillsTree.firstNode());
|
|
|
|
|
|
stdBillsTreeController.bind(TREE_SHEET_CONTROLLER.eventName.treeSelectedChanged, showBillsRela);
|
|
|
that.stdBillsSpread.unbind(GC.Spread.Sheets.Events.CellDoubleClick);
|
|
|
that.stdBillsSpread.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (sender, args) {
|
|
|
- let selectNode = stdBillsTree.items[args.row];
|
|
|
+ let selectNode = that.stdBillsTree.items[args.row];
|
|
|
let name = selectNode.data.name;
|
|
|
- if (stdBillsTree.items[args.row].children.length === 0) {
|
|
|
+ if (that.stdBillsTree.items[args.row].children.length === 0) {
|
|
|
if(projectInfoObj.projectInfo.property.lockBills == true){
|
|
|
return;
|
|
|
}
|
|
|
//特征及内容转化
|
|
|
- pageCCOprObj.setItemContentNode(stdBillsTree.items[args.row], getBillsJobs(stdBillsTree.items[args.row]), getBillsFeatures(stdBillsTree.items[args.row]), name);
|
|
|
+ pageCCOprObj.setItemContentNode(that.stdBillsTree.items[args.row], getBillsJobs(that.stdBillsTree.items[args.row]), getBillsFeatures(that.stdBillsTree.items[args.row]), name);
|
|
|
if (/\//.test(selectNode.data.unit)) {
|
|
|
let existB = projectObj.project.Bills.sameStdCodeBillsData(selectNode.data.code);
|
|
|
if (existB) {
|
|
@@ -200,14 +215,16 @@ var billsLibObj = {
|
|
|
}
|
|
|
else{
|
|
|
let me = billsLibObj;
|
|
|
- let node = stdBillsTree.items[args.row];
|
|
|
+ let node = that.stdBillsTree.items[args.row];
|
|
|
if (!node || node.children.length === 0)
|
|
|
return;
|
|
|
node.setExpanded(!node.expanded);
|
|
|
+ //设置展开收起状态
|
|
|
+ sessionStorage.setItem('stdBillsLibExpState', that.stdBillsTree.getExpState(that.stdBillsTree.items));
|
|
|
TREE_SHEET_HELPER.massOperationSheet(args.sheet, function () {
|
|
|
let iCount = node.posterityCount(), i, child;
|
|
|
for (i = 0; i < iCount; i++) {
|
|
|
- child = stdBillsTree.items[args.row + i + 1];
|
|
|
+ child = that.stdBillsTree.items[args.row + i + 1];
|
|
|
args.sheet.setRowVisible(args.row + i + 1, child.visible, args.sheetArea);
|
|
|
}
|
|
|
args.sheet.invalidateLayout();
|
|
@@ -224,7 +241,7 @@ var billsLibObj = {
|
|
|
|
|
|
if (!keyword || keyword === '') {return}
|
|
|
|
|
|
- var result = stdBillsTree.items.filter(function (item) {
|
|
|
+ var result = that.stdBillsTree.items.filter(function (item) {
|
|
|
var codeIs = item.data.code ? item.data.code.indexOf(keyword) !== -1 : false;
|
|
|
var nameIs = item.data.name ? item.data.name.indexOf(keyword) !== -1 : false;
|
|
|
return codeIs || nameIs;
|
|
@@ -243,7 +260,7 @@ var billsLibObj = {
|
|
|
|
|
|
$('#nextStdBills').show();
|
|
|
$('#nextStdBills').click(function () {
|
|
|
- var cur = stdBillsTree.selected, resultIndex = result.indexOf(cur), sel = billsLibObj.stdBillsSpread.getActiveSheet().getSelections();
|
|
|
+ var cur = that.stdBillsTree.selected, resultIndex = result.indexOf(cur), sel = billsLibObj.stdBillsSpread.getActiveSheet().getSelections();
|
|
|
if (resultIndex === result.length - 1) {
|
|
|
stdBillsTreeController.setTreeSelected(result[0]);
|
|
|
billsLibObj.stdBillsSpread.getActiveSheet().setSelection(result[0].serialNo(), sel[0].col, 1, 1);
|
|
@@ -423,7 +440,12 @@ $('#stdBillsLibSelect').change(function () {
|
|
|
|
|
|
var select = $(this);
|
|
|
if (this.children.length !== 0) {
|
|
|
- billsLibObj.loadStdBills(select.val());
|
|
|
+ //设置sessionStorage
|
|
|
+ let billsLibId = select.val();
|
|
|
+ sessionStorage.setItem('stdBillsLib', billsLibId);
|
|
|
+ //清除展开收起状态sessionStorage
|
|
|
+ sessionStorage.removeItem('stdBillsLibExpState');
|
|
|
+ billsLibObj.loadStdBills(billsLibId);
|
|
|
}
|
|
|
});
|
|
|
|