2 Commits
Author SHA1 Message Date
fsyah ceeef16de9 feat: input virtual can join other table 2026-07-02 15:15:33 +07:00
fsyah 74250261f2 fix bug some array filter 2026-06-29 13:39:41 +07:00
3 changed files with 1051 additions and 1029 deletions
+1030 -1025
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -36,6 +36,12 @@ const Testing = () => {
filter={[ filter={[
{name:"company_id",value: "442,722","logic_operator":"IN","operator":"AND"} {name:"company_id",value: "442,722","logic_operator":"IN","operator":"AND"}
]} ]}
joins={[
{
table: "vehicle_type",
columns: ["min_speed", "max_speed"],
},
]}
multiple multiple
/> />
</ApiProvider> </ApiProvider>
+14 -3
View File
@@ -36,7 +36,8 @@ export default function ListVirtual({
filter, filter,
isApiGo = false, isApiGo = false,
multiple, multiple,
customSxTextField = {} customSxTextField = {},
joins = [],
}) { }) {
const headersRequest = useApiHeaders(); const headersRequest = useApiHeaders();
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
@@ -72,10 +73,14 @@ export default function ListVirtual({
filter.forEach(f => payload.where(f.logic_operator || "=", f.name, f.value, f.operator || "AND", f.value1 || null, f.table_name || null)); filter.forEach(f => payload.where(f.logic_operator || "=", f.name, f.value, f.operator || "AND", f.value1 || null, f.table_name || null));
} }
if (filter.some(f => f.name === "company_id")) { if (Array.isArray(filter) && filter.some(f => f.name === "company_id")) {
payload.addJoin("company", ["name"]); payload.addJoin("company", ["name"]);
} }
joins.forEach(join => {
payload.addJoin(join.table, join.columns);
});
try { try {
const res = await apiRequest.search( const res = await apiRequest.search(
url, url,
@@ -217,7 +222,9 @@ export default function ListVirtual({
}; };
const displayValue = multiple const displayValue = multiple
? `${selected?.length || 0} ${label} selected` ? (selected?.length > 0
? `${selected.length} ${label} selected`
: "")
: selected?.[name] || ""; : selected?.[name] || "";
const isSelected = (row) => { const isSelected = (row) => {
@@ -256,6 +263,10 @@ export default function ListVirtual({
); );
} }
joins.forEach(join => {
payload.addJoin(join.table, join.columns);
});
requests.push( requests.push(
apiRequest.search( apiRequest.search(
url, url,