Jason Chuang 5日前
コミット
e79c1c634d
5個のファイルの変更1129行の追加1174行の削除
  1. +19
    -15
      src/pages/GFMIS/DataGrid.js
  2. +2
    -2
      src/pages/GFMIS/TransactionDataGrid.js
  3. +7
    -2
      src/pages/GFMIS/index.js
  4. +1095
    -1149
      src/pages/authentication/auth-forms/IAmSmartFormWizard.js
  5. +6
    -6
      src/utils/HttpUtils.js

+ 19
- 15
src/pages/GFMIS/DataGrid.js ファイルの表示

@@ -7,8 +7,8 @@ import { FiDataGrid } from "components/FiDataGrid";

// ==============================|| EVENT TABLE ||============================== //

export default function SearchTable({ previewSearchCriteria, onPreviewGridOnReady,selectedIds = []}) {
const [_searchCriteria, set_searchCriteria] = React.useState(previewSearchCriteria);
export default function SearchTable({ previewSearchCriteria, onPreviewGridOnReady,selectedIds = [], previewToken }) {
// const [_searchCriteria, set_searchCriteria] = React.useState(previewSearchCriteria);
const navigate = useNavigate()
// const [rows, setRows] = React.useState([]);

@@ -28,9 +28,21 @@ export default function SearchTable({ previewSearchCriteria, onPreviewGridOnRead
}
}

React.useEffect(() => {
set_searchCriteria(previewSearchCriteria);
}, [previewSearchCriteria]);
const doLoad = React.useMemo(() => {
if (!selectedIds?.length) return undefined;
return {
url: GFIMIS_LIST,
params: {
...previewSearchCriteria,
paymentId: selectedIds.join(',')
}
};
}, [previewSearchCriteria, selectedIds, previewToken]);


// React.useEffect(() => {
// set_searchCriteria(previewSearchCriteria);
// }, [previewSearchCriteria]);

const handleEditClick = (params) => () => {
navigate('/paymentPage/details/' + params.row.id);
@@ -61,23 +73,15 @@ export default function SearchTable({ previewSearchCriteria, onPreviewGridOnRead

return (
<div style={{ width: '100%' }}>

<FiDataGrid
key={previewToken}
sx={_sx}
rowHeight={80}
columns={columns}
customPageSize={10}
onRowDoubleClick={handleEditClick}
applyGridOnReady={onPreviewGridOnReady}
doLoad={React.useMemo(() => {
if (!selectedIds?.length) {
return undefined; // ⬅️ will keep grid empty
}
return {
url: GFIMIS_LIST,
params: { ..._searchCriteria, paymentId: selectedIds.join(',') },
};
}, [_searchCriteria, selectedIds])}
doLoad={doLoad}
/>
</div>
);


+ 2
- 2
src/pages/GFMIS/TransactionDataGrid.js ファイルの表示

@@ -117,10 +117,10 @@ export default function SearchPaymentTable({ searchCriteria, applyGridOnReady, a
callback: (responseData) => {
const newIds = responseData.records.map(r => r.id);
if (selectedIds.length === 0) {
onSelectionChange(newIds);
onSelectionChange?.(newIds);
} else {
const stillValid = selectedIds.filter(id => newIds.includes(id));
onSelectionChange(stillValid);
onSelectionChange?.(stillValid);
}
}
}), [_searchCriteria])}


+ 7
- 2
src/pages/GFMIS/index.js ファイルの表示

@@ -57,6 +57,7 @@ const Index = () => {

const [inputDate, setInputDate] = React.useState(searchCriteria.dateTo);
const [inputDateValue, setInputDateValue] = React.useState("dd / mm / yyyy");
const [previewToken, setPreviewToken] = React.useState(0);

React.useEffect(() => {
setInputDateValue(inputDate);
@@ -145,11 +146,14 @@ const Index = () => {
}

function previewSearch() {
// trigger reload even if criteria object is identical
const withToken = { ...searchCriteria, __ts: Date.now() };
if (selectedIds.length === 0) return;
setIsPopUp(false);
setIsPreviewLoading(true);

const withToken = { ...searchCriteria, __ts: Date.now() };
setPreviewSearchCriteria(withToken);

setPreviewToken(t => t + 1);
}

function onPreviewGridOnReady(isLoading) {
@@ -228,6 +232,7 @@ const Index = () => {
previewSearchCriteria={previewSearchCriteria}
onPreviewGridOnReady={onPreviewGridOnReady}
selectedIds={selectedIds}
previewToken={previewToken}
/>

</MainCard>


+ 1095
- 1149
src/pages/authentication/auth-forms/IAmSmartFormWizard.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 6
- 6
src/utils/HttpUtils.js ファイルの表示

@@ -106,19 +106,19 @@ export const fileDownload = ({ url, fileId, skey, params, method, onResponse, on
};

const fileDownloadResponse = (response, onResponse) => {
const fn = response.headers.get("content-disposition")?.split("filename=")[1]?.split('"')[1]?.trim() ?? filename;
const cd = response.headers?.['content-disposition'];
const fn = cd?.split('filename=')[1]?.replaceAll('"','')?.trim() || 'export.xlsx';

const url = URL.createObjectURL(response.data);
const a = document.createElement('a');
a.href = url;
a.setAttribute("download", fn);
a.download = fn;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
if (onResponse) {
onResponse();
}
}
onResponse?.();
};

export const fileUpload = ({ refType, refId, files, refCode, onSuccess, onFail, onError }) => {
postWithFiles({


読み込み中…
キャンセル
保存