|
|
@@ -525,34 +525,6 @@ $(document).ready(function() {
|
|
|
relaSheet: ledgerSpread.getActiveSheet(),
|
|
|
});
|
|
|
|
|
|
- $.subMenu({
|
|
|
- menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
|
|
|
- toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
|
|
|
- key: 'menu.1.0.0',
|
|
|
- miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
|
|
|
- callback: function (info) {
|
|
|
- if (info.mini) {
|
|
|
- $('.panel-title').addClass('fluid');
|
|
|
- $('#sub-menu').removeClass('panel-sidebar');
|
|
|
- } else {
|
|
|
- $('.panel-title').removeClass('fluid');
|
|
|
- $('#sub-menu').addClass('panel-sidebar');
|
|
|
- }
|
|
|
- autoFlashHeight();
|
|
|
- ledgerSpread.refresh();
|
|
|
- if (posSpread) posSpread.refresh();
|
|
|
- if (ancGclSpread) ancGclSpread.refresh();
|
|
|
- if (posCalcDetail) posCalcDetail.refresh();
|
|
|
- if (stdXmj) stdXmj.spread.refresh();
|
|
|
- if (stdGcl) stdGcl.spread.refresh();
|
|
|
- if (dealBills) dealBills.spread.refresh();
|
|
|
- if (searchLedger) searchLedger.spread.refresh();
|
|
|
- if (errorList) errorList.spread.refresh();
|
|
|
- if (checkList) checkList.spread.refresh();
|
|
|
- if (gclGather) gclGather.spread.refresh();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
// 定义事件
|
|
|
const treeOperationObj = {
|
|
|
loadExprToInput(sheet) {
|
|
|
@@ -1498,7 +1470,101 @@ $(document).ready(function() {
|
|
|
treeOperationObj.refreshTree(ledgerSheet, refreshNode);
|
|
|
});
|
|
|
},
|
|
|
+ applyTemplate: function(template) {
|
|
|
+ const node = SpreadJsObj.getSelectObject(ledgerSheet);
|
|
|
+ if (!node || !template) return;
|
|
|
+ if (tender.isAssUser && node._invalid) {
|
|
|
+ toastr.warning('请在协作范围内应用模板');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ postData(window.location.pathname + '/update', {
|
|
|
+ postType: 'apply-template', postData: { id: ledgerTree.getNodeKey(node), templateId: template.id }
|
|
|
+ }, function(data) {
|
|
|
+ pos.updateDatas(data.pos);
|
|
|
+ if (data.ancGcl) ancGcl.updateDatas(data.ancGcl);
|
|
|
+ if (data.posCalcDetail) posCalcDetail.detail.updateDatas(data.posCalcDetail);
|
|
|
+ const result = ledgerTree.loadPostData(data.ledger);
|
|
|
+ treeOperationObj.refreshTree(ledgerSheet, result);
|
|
|
+ const sel = ledgerSheet.getSelections()[0];
|
|
|
+ ledgerSheet.setSelection(result.create[0].index, sel.col, sel.rowCount, sel.colCount);
|
|
|
+ SpreadJsObj.reloadRowsBackColor(ledgerSheet, [sel.row, result.create[0].index]);
|
|
|
+ treeOperationObj.refreshOperationValid(ledgerSheet);
|
|
|
+ posOperationObj.loadCurPosData();
|
|
|
+ }, null, true);
|
|
|
+ },
|
|
|
+ getBlockData: function() {
|
|
|
+ const copyBlockList = [];
|
|
|
+ const sheet = ledgerSpread.getActiveSheet();
|
|
|
+ const sel = sheet.getSelections()[0];
|
|
|
+ let iRow = sel.row;
|
|
|
+ const pid = sheet.zh_tree.nodes[iRow].ledger_pid;
|
|
|
+ while (iRow < sel.row + sel.rowCount) {
|
|
|
+ const node = sheet.zh_tree.nodes[iRow];
|
|
|
+ if (node.ledger_pid !== pid) {
|
|
|
+ toastr.error('仅可同时选中同层节点');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const posterity = sheet.zh_tree.getPosterity(node);
|
|
|
+ iRow += posterity.length + 1;
|
|
|
+ posterity.unshift(node);
|
|
|
+ copyBlockList.push(sheet.zh_tree.getDefaultData(posterity));
|
|
|
+ }
|
|
|
+ for (const cbl of copyBlockList) {
|
|
|
+ for (const b of cbl) {
|
|
|
+ const posRange = pos.getLedgerPos(b.id);
|
|
|
+ if (posRange && posRange.length > 0) b.pos = posRange;
|
|
|
+ if (b.calc_template) {
|
|
|
+ const template = posCalcTemplate.find(x => { return x.id === b.calc_template; });
|
|
|
+ b.calc_template_str = template ? template.name : '';
|
|
|
+ if (b.pos) {
|
|
|
+ for (const p of b.pos) {
|
|
|
+ const detailRange = posCalcDetail.detail.getPartData(p.id);
|
|
|
+ p.calcDetail = detailRange;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const gclRange = ancGcl.getPartData(b.id);
|
|
|
+ if (gclRange && gclRange.length > 0) b.ancGcl = gclRange;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return copyBlockList;
|
|
|
+ }
|
|
|
};
|
|
|
+ const ledgerTemplate = $.ledger_template({
|
|
|
+ selector: '#ledger-template',
|
|
|
+ id: 'ledger-template',
|
|
|
+ applyTemplate: readOnly ? null : treeOperationObj.applyTemplate,
|
|
|
+ });
|
|
|
+ $.subMenu({
|
|
|
+ menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
|
|
|
+ toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
|
|
|
+ key: 'menu.1.0.0',
|
|
|
+ miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
|
|
|
+ callback: function (info) {
|
|
|
+ if (info.mini) {
|
|
|
+ $('.panel-title').addClass('fluid');
|
|
|
+ $('#sub-menu').removeClass('panel-sidebar');
|
|
|
+ } else {
|
|
|
+ $('.panel-title').removeClass('fluid');
|
|
|
+ $('#sub-menu').addClass('panel-sidebar');
|
|
|
+ }
|
|
|
+ autoFlashHeight();
|
|
|
+ ledgerSpread.refresh();
|
|
|
+ if (posSpread) posSpread.refresh();
|
|
|
+ if (ancGclSpread) ancGclSpread.refresh();
|
|
|
+ if (posCalcDetail) posCalcDetail.refresh();
|
|
|
+ if (stdXmj) stdXmj.spread.refresh();
|
|
|
+ if (stdGcl) stdGcl.spread.refresh();
|
|
|
+ if (dealBills) dealBills.spread.refresh();
|
|
|
+ if (searchLedger) searchLedger.spread.refresh();
|
|
|
+ if (errorList) errorList.spread.refresh();
|
|
|
+ if (checkList) checkList.spread.refresh();
|
|
|
+ if (gclGather) gclGather.spread.refresh();
|
|
|
+ if (ledgerTemplate) ledgerTemplate.spread.refresh();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
sjsSettingObj.setFxTreeStyle(ledgerSpreadSetting, sjsSettingObj.FxTreeStyle.jz);
|
|
|
if (thousandth) sjsSettingObj.setTpThousandthFormat(ledgerSpreadSetting);
|
|
|
ledgerTreeCol.initSpreadSetting(ledgerSpreadSetting);
|
|
|
@@ -1544,7 +1610,7 @@ $(document).ready(function() {
|
|
|
sjsSettingObj.setNodeTypeCol(ledgerSpreadSetting.cols, [{ field: 'node_type' }]);
|
|
|
sjsSettingObj.setCalcTemplateCol(ledgerSpreadSetting.cols, [{ field: 'calc_template' }],
|
|
|
(typeof posCalcTemplate === 'undefined') ? [] : posCalcTemplate.map(x => { return { value: x.id, text: x.name }; }),
|
|
|
- `/sp/${spid}/template/posCalc`);
|
|
|
+ `/template/posCalc`);
|
|
|
sjsSettingObj.setFromCol(posSpreadSetting.cols, [{field: 'from'}]);
|
|
|
sjsSettingObj.setFromCol(ledgerSpreadSetting.cols, [{ field: 'from'}]);
|
|
|
SpreadJsObj.initSheet(ledgerSpread.getActiveSheet(), ledgerSpreadSetting);
|
|
|
@@ -1894,6 +1960,27 @@ $(document).ready(function() {
|
|
|
};
|
|
|
billsContextMenuOptions.items.sprBatch = '----';
|
|
|
}
|
|
|
+ billsContextMenuOptions.items.addTemplate = {
|
|
|
+ name: '保存为台账模板',
|
|
|
+ icon: 'fa-file-archive-o',
|
|
|
+ callback: function (key, opt) {
|
|
|
+ ledgerTemplate.addTemplate(SpreadJsObj.getSelectObject(ledgerSheet), treeOperationObj.getBlockData());
|
|
|
+ },
|
|
|
+ visible: function (key, opt) {
|
|
|
+ const sheet = ledgerSpread.getActiveSheet();
|
|
|
+ const selection = sheet.getSelections();
|
|
|
+ const row = selection[0].row;
|
|
|
+ const select = ledgerTree.nodes[row];
|
|
|
+ return select;
|
|
|
+ },
|
|
|
+ disabled: function (key, opt) {
|
|
|
+ const sheet = ledgerSpread.getActiveSheet();
|
|
|
+ const selection = sheet.getSelections();
|
|
|
+ const row = selection[0].row;
|
|
|
+ const select = ledgerTree.nodes[row];
|
|
|
+ return select && select.level <= 1;
|
|
|
+ }
|
|
|
+ };
|
|
|
billsContextMenuOptions.items.copyBlock = {
|
|
|
name: '复制整块',
|
|
|
icon: 'fa-files-o',
|
|
|
@@ -1903,40 +1990,7 @@ $(document).ready(function() {
|
|
|
sheetName:ledgerSpread.getActiveSheet().name()
|
|
|
});*/
|
|
|
treeOperationObj.block = [];
|
|
|
- const copyBlockList = [];
|
|
|
- const sheet = ledgerSpread.getActiveSheet();
|
|
|
- const sel = sheet.getSelections()[0];
|
|
|
- let iRow = sel.row;
|
|
|
- const pid = sheet.zh_tree.nodes[iRow].ledger_pid;
|
|
|
- while (iRow < sel.row + sel.rowCount) {
|
|
|
- const node = sheet.zh_tree.nodes[iRow];
|
|
|
- if (node.ledger_pid !== pid) {
|
|
|
- toastr.error('仅可同时选中同层节点');
|
|
|
- return;
|
|
|
- }
|
|
|
- const posterity = sheet.zh_tree.getPosterity(node);
|
|
|
- iRow += posterity.length + 1;
|
|
|
- posterity.unshift(node);
|
|
|
- copyBlockList.push(sheet.zh_tree.getDefaultData(posterity));
|
|
|
- }
|
|
|
- for (const cbl of copyBlockList) {
|
|
|
- for (const b of cbl) {
|
|
|
- const posRange = pos.getLedgerPos(b.id);
|
|
|
- if (posRange && posRange.length > 0) b.pos = posRange;
|
|
|
- if (b.calc_template) {
|
|
|
- const template = posCalcTemplate.find(x => { return x.id === b.calc_template; });
|
|
|
- b.calc_template_str = template ? template.name : '';
|
|
|
- if (b.pos) {
|
|
|
- for (const p of b.pos) {
|
|
|
- const detailRange = posCalcDetail.detail.getPartData(p.id);
|
|
|
- p.calcDetail = detailRange;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- const gclRange = ancGcl.getPartData(b.id);
|
|
|
- if (gclRange && gclRange.length > 0) b.ancGcl = gclRange;
|
|
|
- }
|
|
|
- }
|
|
|
+ const copyBlockList = treeOperationObj.getBlockData();
|
|
|
setLocalCache(copyBlockTag, JSON.stringify({block: copyBlockList}));
|
|
|
},
|
|
|
visible: function (key, opt) {
|
|
|
@@ -3337,6 +3391,8 @@ $(document).ready(function() {
|
|
|
treeOperationObj.loadExprToInput(ledgerSpread.getActiveSheet());
|
|
|
|
|
|
checkList.loadHisCheckData();
|
|
|
+
|
|
|
+ ledgerTemplate.loadDatas(data.ledgerTemplates);
|
|
|
}, null, true);
|
|
|
|
|
|
$.divResizer({
|
|
|
@@ -3353,6 +3409,7 @@ $(document).ready(function() {
|
|
|
if (errorList) errorList.spread.refresh();
|
|
|
if (checkList) checkList.spread.refresh();
|
|
|
if (gclGather) gclGather.spread.refresh();
|
|
|
+ if (ledgerTemplate) ledgerTemplate.spread.refresh();
|
|
|
}
|
|
|
});
|
|
|
const stdLibCellDoubleClick = function (updateData, stdNode) {
|
|
|
@@ -3582,6 +3639,8 @@ $(document).ready(function() {
|
|
|
getAllList();
|
|
|
} else if (tab.attr('content') === '#gcl-gather') {
|
|
|
gclGather.spread.refresh();
|
|
|
+ } else if (tab.attr('content') === '#ledger-template') {
|
|
|
+ ledgerTemplate.spread.refresh();
|
|
|
}
|
|
|
} else { // 收起工具栏
|
|
|
tab.removeClass('active');
|