refs #5334 tree
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Carlos Satorres 2023-06-01 14:19:50 +02:00
parent f37c66304f
commit bb5247c49b
11 changed files with 16 additions and 49 deletions

View File

@ -1,5 +1,3 @@
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
const buildFilter = require('vn-loopback/util/filter').buildFilter; const buildFilter = require('vn-loopback/util/filter').buildFilter;
const mergeFilters = require('vn-loopback/util/filter').mergeFilters; const mergeFilters = require('vn-loopback/util/filter').mergeFilters;
@ -51,7 +49,6 @@ module.exports = Self => {
Self.filter = async(ctx, filter) => { Self.filter = async(ctx, filter) => {
let conn = Self.dataSource.connector; let conn = Self.dataSource.connector;
console.log('ENTRY');
let where = buildFilter(ctx.args, (param, value) => { let where = buildFilter(ctx.args, (param, value) => {
switch (param) { switch (param) {
case 'search': case 'search':
@ -71,9 +68,7 @@ module.exports = Self => {
}); });
filter = mergeFilters(ctx.args.filter, {where}); filter = mergeFilters(ctx.args.filter, {where});
console.log(filter);
const departments = await Self.app.models.Department.find(filter); const departments = await Self.app.models.Department.find(filter);
console.log(departments);
return departments; return departments;
}; };
}; };

View File

@ -25,14 +25,12 @@ module.exports = Self => {
`CALL department_getLeaves(?, ?)`, `CALL department_getLeaves(?, ?)`,
[parentId, search] [parentId, search]
); );
let map = new Map(); let map = new Map();
for (let node of res) { for (let node of res) {
if (!map.has(node.parentFk)) if (!map.has(node.parentFk))
map.set(node.parentFk, []); map.set(node.parentFk, []);
map.get(node.parentFk).push(node); map.get(node.parentFk).push(node);
} }
function setLeaves(nodes) { function setLeaves(nodes) {
if (!nodes) return; if (!nodes) return;
for (let node of nodes) { for (let node of nodes) {
@ -42,6 +40,7 @@ module.exports = Self => {
} }
let leaves = map.get(parentId); let leaves = map.get(parentId);
setLeaves(leaves); setLeaves(leaves);
return leaves || []; return leaves || [];

View File

@ -3,5 +3,4 @@ module.exports = Self => {
require('../methods/department/createChild')(Self); require('../methods/department/createChild')(Self);
require('../methods/department/removeChild')(Self); require('../methods/department/removeChild')(Self);
require('../methods/department/moveChild')(Self); require('../methods/department/moveChild')(Self);
require('../methods/department/filter')(Self);
}; };

View File

@ -42,7 +42,6 @@
<vn-popup vn-id="summary"> <vn-popup vn-id="summary">
<vn-worker-summary worker="$ctrl.worker"></vn-worker-summary> <vn-worker-summary worker="$ctrl.worker"></vn-worker-summary>
</vn-popup> </vn-popup>
<vn-confirm <vn-confirm
vn-id="deleteConfirmation" vn-id="deleteConfirmation"
on-accept="$ctrl.deleteDepartment()" on-accept="$ctrl.deleteDepartment()"

View File

@ -4,5 +4,4 @@ import './summary';
import './card'; import './card';
import './descriptor'; import './descriptor';
import './basic-data'; import './basic-data';
import './search-panel';
import './descriptor-popover'; import './descriptor-popover';

View File

@ -3,6 +3,14 @@
url="departments/getLeaves" url="departments/getLeaves"
auto-load="false"> auto-load="false">
</vn-crud-model> </vn-crud-model>
<vn-portal slot="topbar">
<vn-searchbar
vn-focus
info="Search departments by id, name or code"
on-search="$ctrl.onSearch($params)"
base-state="worker.department">
</vn-searchbar>
</vn-portal>
<form name="form" class="vn-w-md"> <form name="form" class="vn-w-md">
<vn-card class="vn-pa-md"> <vn-card class="vn-pa-md">
<vn-treeview vn-id="treeview" root-label="Departments" read-only="false" <vn-treeview vn-id="treeview" root-label="Departments" read-only="false"

View File

@ -6,6 +6,13 @@ class Controller extends Section {
this.$.treeview.fetch(); this.$.treeview.fetch();
} }
onSearch(params) {
this.$.model.applyFilter({}, params).then(() => {
const data = this.$.model.data;
this.$.treeview.data = data;
});
}
onFetch(item) { onFetch(item) {
const params = item ? {parentId: item.id} : null; const params = item ? {parentId: item.id} : null;
return this.$.model.applyFilter({}, params).then(() => { return this.$.model.applyFilter({}, params).then(() => {

View File

@ -4,15 +4,6 @@
limit="20" limit="20"
order="id"> order="id">
</vn-crud-model> </vn-crud-model>
<vn-portal slot="topbar">
<vn-searchbar
vn-focus
panel="vn-worker-department-search-panel"
info="Search departments by id, name or code"
model="model"
base-state="worker.department">
</vn-searchbar>
</vn-portal>
<ui-view> <ui-view>
<vn-worker-department-index></vn-worker-department-index> <vn-worker-department-index></vn-worker-department-index>
</ui-view> </ui-view>

View File

@ -1,22 +0,0 @@
<div class="search-panel">
<form ng-submit="$ctrl.onSearch()">
<vn-horizontal>
<vn-textfield
vn-one
label="Name"
ng-model="filter.name"
vn-focus>
</vn-textfield>
</vn-horizontal>
<vn-horizontal>
<vn-textfield
vn-one
label="Code"
ng-model="filter.code">
</vn-textfield>
</vn-horizontal>
<vn-horizontal class="vn-mt-lg">
<vn-submit label="Search"></vn-submit>
</vn-horizontal>
</form>
</div>

View File

@ -1,7 +0,0 @@
import ngModule from '../../module';
import SearchPanel from 'core/components/searchbar/search-panel';
ngModule.component('vnWorkerDepartmentSearchPanel', {
template: require('./index.html'),
controller: SearchPanel
});

View File

@ -33,7 +33,6 @@ module.exports = Self => {
Self.getLeaves = async(id, parentId = null, search, options) => { Self.getLeaves = async(id, parentId = null, search, options) => {
const myOptions = {}; const myOptions = {};
if (typeof options == 'object') if (typeof options == 'object')
Object.assign(myOptions, options); Object.assign(myOptions, options);