|
@@ -22,12 +22,43 @@ $(document).ready(() => {
|
|
|
if (thousandth) sjsSettingObj.setTpThousandthFormat(xmjSpreadSetting);
|
|
|
SpreadJsObj.initSheet(unitSheet, unitSpreadSetting);
|
|
|
|
|
|
+ const filterUnitTree = createNewPathTree('filter', {
|
|
|
+ id: 'ledger_id',
|
|
|
+ pid: 'ledger_pid',
|
|
|
+ order: 'order',
|
|
|
+ level: 'level',
|
|
|
+ rootId: -1,
|
|
|
+ fullPath: 'full_path',
|
|
|
+ });
|
|
|
+
|
|
|
const unitTreeObj = {
|
|
|
+ getFilterUnitTree: function (unitTree) {
|
|
|
+ const filter = $('#unit-filter').val();
|
|
|
+ if (!filter || unitTree.nodes.length === 0) return unitTree;
|
|
|
+ filterUnitTree.clearDatas();
|
|
|
+ const filterPath = [];
|
|
|
+ for (const node of unitTree.nodes) {
|
|
|
+ if ((node.code && node.code.indexOf(filter) >= 0) || (node.b_code && node.b_code.indexOf(filter) >= 0)
|
|
|
+ || (node.name && node.name.indexOf(filter) >= 0) || (node.pos_name && node.pos_name.indexOf(filter) >= 0))
|
|
|
+ filterPath.push(node.full_path);
|
|
|
+ }
|
|
|
+ for (const node of unitTree.nodes) {
|
|
|
+ for (const fp of filterPath) {
|
|
|
+ if (fp.indexOf(node.full_path) >= 0 || node.full_path.indexOf(fp) >= 0) {
|
|
|
+ filterUnitTree.addData(node, ['id', 'ledger_id', 'ledger_pid', 'order', 'level', 'full_path', 'pos_name',
|
|
|
+ 'code', 'b_code', 'name', 'unit', 'unit_price', 'quantity', 'total_price', 'drawing_code_merge', 'memo_merge']);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ filterUnitTree.sortTreeNode();
|
|
|
+ return filterUnitTree;
|
|
|
+ },
|
|
|
loadCurUnitData: function () {
|
|
|
const node = SpreadJsObj.getSelectObject(xmjSheet);
|
|
|
SpreadJsObj.resetTopAndSelect(unitSheet);
|
|
|
if (node && node.unitTree) {
|
|
|
- SpreadJsObj.loadSheetData(unitSheet, SpreadJsObj.DataType.Tree, node.unitTree);
|
|
|
+ SpreadJsObj.loadSheetData(unitSheet, SpreadJsObj.DataType.Tree, unitTreeObj.getFilterUnitTree(node.unitTree));
|
|
|
} else {
|
|
|
SpreadJsObj.initSheet(unitSheet, unitSpreadSetting);
|
|
|
}
|
|
@@ -55,7 +86,6 @@ $(document).ready(() => {
|
|
|
n.unitTree.loadDatas(n.unitTreeData);
|
|
|
}
|
|
|
}
|
|
|
- console.log(xmjTree);
|
|
|
SpreadJsObj.loadSheetData(xmjSheet, SpreadJsObj.DataType.Tree, xmjTree);
|
|
|
unitTreeObj.loadCurUnitData();
|
|
|
});
|
|
@@ -170,6 +200,10 @@ $(document).ready(() => {
|
|
|
xmjSpread.refresh();
|
|
|
unitSpread.refresh();
|
|
|
});
|
|
|
+ $('#unit-filter').bind('keydown', function (e) {
|
|
|
+ const evt = window.event || e;
|
|
|
+ if (e.keyCode == 13) unitTreeObj.loadCurUnitData();
|
|
|
+ })
|
|
|
|
|
|
// 显示层次
|
|
|
(function (select, sheet) {
|