mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 07:52:16 +00:00
- date filter
This commit is contained in:
@@ -7,26 +7,49 @@ Tabulator.extendModule('filter', 'filters', {
|
||||
"dates": (headerValue, rowValue) => {
|
||||
if (!headerValue)
|
||||
return true;
|
||||
let v = new Date(rowValue);
|
||||
if (Array.isArray(headerValue)) {
|
||||
if (headerValue[1]) {
|
||||
return v >= headerValue[0] && v <= headerValue[1].setHours(23, 59, 59, 999);
|
||||
|
||||
let rowDate = new Date(rowValue);
|
||||
|
||||
if (Array.isArray(headerValue))
|
||||
{
|
||||
let startDate = new Date(headerValue[0]);
|
||||
if (headerValue[1])
|
||||
{
|
||||
let endDate = new Date(headerValue[1]);
|
||||
|
||||
endDate.setHours(23, 59, 59, 999);
|
||||
|
||||
return rowDate >= startDate && rowDate <= endDate;
|
||||
}
|
||||
return v.toDateString() == headerValue[0].toDateString();
|
||||
|
||||
return rowDate.toDateString() === startDate.toDateString();
|
||||
}
|
||||
return v.toDateString() == headerValue.toDateString();
|
||||
let singleDate = new Date(headerValue);
|
||||
return rowDate.toDateString() === singleDate.toDateString();
|
||||
}
|
||||
});
|
||||
|
||||
function dateFilter(cell, onRendered, success) {
|
||||
let div = document.createElement('div');
|
||||
|
||||
let initialValue = null;
|
||||
|
||||
let val = cell.getValue();
|
||||
|
||||
if (Array.isArray(val))
|
||||
{
|
||||
const start = val[0] ? new Date(val[0]) : null;
|
||||
const end = val[1] ? new Date(val[1]) : null;
|
||||
initialValue = [start, end];
|
||||
}
|
||||
|
||||
Vue.createApp({
|
||||
components: {
|
||||
PrimevueCalendar: primevue.calendar
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
val: null
|
||||
val: initialValue
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -34,10 +57,16 @@ function dateFilter(cell, onRendered, success) {
|
||||
success(n);
|
||||
}
|
||||
},
|
||||
template: `<primevue-calendar v-model="val" selection-mode="range" :manual-input="false" show-button-bar></primevue-calendar>`
|
||||
template: `<primevue-calendar
|
||||
v-model="val"
|
||||
selection-mode="range"
|
||||
:manual-input="false"
|
||||
show-button-bar
|
||||
:showIcon="true"
|
||||
dateFormat="dd.mm.yy">
|
||||
</primevue-calendar>`
|
||||
}).use(primevue.config.default).mount(div);
|
||||
|
||||
return div;
|
||||
}
|
||||
|
||||
export { dateFilter as 'dateFilter' };
|
||||
export { dateFilter };
|
||||
Reference in New Issue
Block a user