浏览代码

update

reset-do-picking-order
CANCERYS\kw093 6 天前
父节点
当前提交
5e83e2c8e6
共有 2 个文件被更改,包括 55 次插入19 次删除
  1. +49
    -16
      src/components/StockIssue/SearchPage.tsx
  2. +6
    -3
      src/components/StockTakeManagement/StockTakeTab.tsx

+ 49
- 16
src/components/StockIssue/SearchPage.tsx 查看文件

@@ -1,5 +1,6 @@
"use client";

import dayjs from "dayjs";
import { OUTPUT_DATE_FORMAT } from "@/app/utils/formatUtil";
import SearchBox, { Criterion } from "../SearchBox";
import { useCallback, useMemo, useState } from "react";
import { useTranslation } from "react-i18next";
@@ -52,7 +53,7 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
const [selectedIds, setSelectedIds] = useState<(string | number)[]>([]);
const [submittingIds, setSubmittingIds] = useState<Set<number>>(new Set());
const [batchSubmitting, setBatchSubmitting] = useState(false);
const [paging, setPaging] = useState({ pageNum: 1, pageSize: 10 });
const searchCriteria: Criterion<SearchParamNames>[] = useMemo(
() => [
{
@@ -251,7 +252,33 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
{ name: "itemDescription", label: t("Item") },
{ name: "lotNo", label: t("Lot No.") },
{ name: "storeLocation", label: t("Location") },
{ name: "expiryDate", label: t("Expiry Date") },
{
name: "expiryDate",
label: t("Expiry Date"),
renderCell: (item) => {
const raw = String(item.expiryDate ?? "").trim();
if (!raw) return "—";
let d;
if (raw.includes(",")) {
const parts = raw.split(",").map((s) => parseInt(s.trim(), 10));
const [y, m, d_] = parts;
if (parts.length >= 3 && y != null && m != null && d_ != null && !Number.isNaN(y) && !Number.isNaN(m) && !Number.isNaN(d_)) {
d = dayjs(new Date(y, m - 1, d_));
} else {
d = dayjs("");
}
} else {
let normalized = raw;
if (raw.length === 7) {
normalized = raw.slice(0, 4) + "0" + raw.slice(4, 5) + raw.slice(5, 7);
} else if (raw.length === 6) {
normalized = raw.slice(0, 4) + "0" + raw.slice(4, 5) + "0" + raw.slice(5, 6);
}
d = dayjs(normalized, "YYYYMMDD", true);
}
return d.isValid() ? d.format(OUTPUT_DATE_FORMAT) : raw;
},
},
{ name: "remainingQty", label: t("Remaining Qty") },
{
name: "id",
@@ -280,6 +307,7 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
(_: React.SyntheticEvent, value: string) => {
setTab(value as "miss" | "bad" | "expiry");
setSelectedIds([]);
setPaging((prev) => ({ ...prev, pageNum: 1 })); // 新增:切 Tab 时回到第 1 页
},
[],
);
@@ -291,8 +319,9 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
<SearchResults<StockIssueResult>
items={items}
columns={missColumns}
pagingController={{ pageNum: 1, pageSize: 10 }}
pagingController={paging}
checkboxIds={selectedIds}
setPagingController={setPaging}
setCheckboxIds={setSelectedIds}
/>
);
@@ -304,7 +333,8 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
<SearchResults<StockIssueResult>
items={items}
columns={badColumns}
pagingController={{ pageNum: 1, pageSize: 10 }}
pagingController={paging}
setPagingController={setPaging}
checkboxIds={selectedIds}
setCheckboxIds={setSelectedIds}
/>
@@ -316,7 +346,8 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
<SearchResults<ExpiryItemResult>
items={items}
columns={expiryColumns}
pagingController={{ pageNum: 1, pageSize: 10 }}
pagingController={paging}
setPagingController={setPaging}
checkboxIds={selectedIds}
setCheckboxIds={setSelectedIds}
/>
@@ -336,16 +367,18 @@ const SearchPage: React.FC<Props> = ({ dataList }) => {
onSearch={handleSearch}
/>

<Box sx={{ display: "flex", justifyContent: "flex-end", mb: 1 }}>
<Button
variant="contained"
color="primary"
onClick={handleSubmitSelected}
disabled={batchSubmitting || !currentUserId}
>
{batchSubmitting ? tab === "miss" ? t("Processing...") : tab === "bad" ? t("Disposing...") : t("Disposing...") : t("Batch Disposed All")}
</Button>
</Box>
{tab === "expiry" && (
<Box sx={{ display: "flex", justifyContent: "flex-end", mb: 1 }}>
<Button
variant="contained"
color="primary"
onClick={handleSubmitSelected}
disabled={batchSubmitting || !currentUserId}
>
{batchSubmitting ? t("Disposing...") : t("Batch Disposed All")}
</Button>
</Box>
)}

{renderCurrentTab()}
<SubmitIssueForm


+ 6
- 3
src/components/StockTakeManagement/StockTakeTab.tsx 查看文件

@@ -80,13 +80,14 @@ const StockTakeTab: React.FC = () => {
)
) : null
)}
{/*
{viewScope === "approver-by-section" && tabValue === 1 && (
<ApproverStockTake
selectedSession={selectedSession}
onBack={handleBackToList}
onSnackbar={handleSnackbar}
/>
)}
)} */}
{viewScope === "approver-all" && tabValue === 2 && (
<ApproverStockTakeAll
selectedSession={selectedSession}
@@ -124,7 +125,7 @@ const StockTakeTab: React.FC = () => {
sx={{ mb: 2 }}
>
<Tab label={t("Picker")} />
<Tab label={t("Approver")} />
{/* <Tab label={t("Approver")} /> */}
<Tab label={t("Approver All")} />
</Tabs>

@@ -137,6 +138,7 @@ const StockTakeTab: React.FC = () => {
onReStockTakeClick={handleReStockTakeClick}
/>
)}
{/*
{tabValue === 1 && (
<ApproverCardList
onCardClick={(session) => {
@@ -145,7 +147,8 @@ const StockTakeTab: React.FC = () => {
}}
/>
)}
{tabValue === 2 && (
*/}
{tabValue === 1 && (
<ApproverAllCardList
onCardClick={handleApproverAllCardClick}
/>


正在加载...
取消
保存