瀏覽代碼

update overconsumption sorting

tags/Baseline_180220205_Frontend
MSI\derek 11 月之前
父節點
當前提交
0a29389dd3
共有 1 個檔案被更改,包括 26 行新增18 行删除
  1. +26
    -18
      src/components/ResourceOverconsumptionReport/ResourceOverconsumptionReport.tsx

+ 26
- 18
src/components/ResourceOverconsumptionReport/ResourceOverconsumptionReport.tsx 查看文件

@@ -11,6 +11,7 @@ import { StaffResult } from "@/app/api/staff";
import { TeamResult } from "@/app/api/team"; import { TeamResult } from "@/app/api/team";
import { Customer } from "@/app/api/customer"; import { Customer } from "@/app/api/customer";
import { Subsidiary } from "@/app/api/subsidiary"; import { Subsidiary } from "@/app/api/subsidiary";
import CostAndExpenseReportLoading from "../CostAndExpenseReport/CostAndExpenseReportLoading";


interface Props { interface Props {
team: TeamResult[] team: TeamResult[]
@@ -19,6 +20,12 @@ interface Props {
needAll: boolean needAll: boolean
} }


type combo = {
value: string,
label: string,
group: string
}

type SearchQuery = Partial<Omit<ProjectResourceOverconsumptionReportFilter, "id">>; type SearchQuery = Partial<Omit<ProjectResourceOverconsumptionReportFilter, "id">>;
type SearchParamNames = keyof SearchQuery; type SearchParamNames = keyof SearchQuery;


@@ -26,19 +33,27 @@ const ResourceOverconsumptionReport: React.FC<Props> = ({ team, customer, subsid
const { t } = useTranslation("report"); const { t } = useTranslation("report");
const statusCombo = ["Potential Overconsumption"] const statusCombo = ["Potential Overconsumption"]
const teamCombo = team.map(t => `${t.code} - ${t.name}`).sort() const teamCombo = team.map(t => `${t.code} - ${t.name}`).sort()
const custCombo = customer.map(c => ({
const custCombo: combo[] = customer.map(c => ({
value: `custId-${c.id}`, value: `custId-${c.id}`,
label: `${c.code} - ${c.name}`, label: `${c.code} - ${c.name}`,
group: t("Client") group: t("Client")
})).sort()
const subsidiariesCombo = subsidiaries.map(sub => ({
}))
.sort((a: combo, b: combo) => {
const [_custType_A, id_A] = readIntFromString(a.value) as [string, number]
const [_custType_B, id_B] = readIntFromString(b.value) as [string, number]
return (id_A - id_B)
});
const subsidiariesCombo: combo[] = subsidiaries.map(sub => ({
value: `subsidiaryId-${sub.id}`, value: `subsidiaryId-${sub.id}`,
label: `${sub.code} - ${sub.name}`, label: `${sub.code} - ${sub.name}`,
group: t("Subsidiary") group: t("Subsidiary")
})).sort()
// const staffCombo = staffs.map(staff => `${staff.name} - ${staff.staffId}`)
// console.log(staffs)

}))
.sort((a: combo, b: combo) => {
const [_custType_A, id_A] = readIntFromString(a.value) as [string, number]
const [_custType_B, id_B] = readIntFromString(b.value) as [string, number]
return (id_A - id_B)
});
const searchCriteria: Criterion<SearchParamNames>[] = useMemo( const searchCriteria: Criterion<SearchParamNames>[] = useMemo(
() => [ () => [
{ {
@@ -83,18 +98,11 @@ return (
status: "All", status: "All",
lowerLimit: 0.9 lowerLimit: 0.9
} }
if (query.team.length > 0 && query.team.toLocaleLowerCase() !== "all") {
if (query.team.length > 0 && query.team.toLocaleLowerCase() !== "all") {
index = teamCombo.findIndex(team => team === query.team) index = teamCombo.findIndex(team => team === query.team)
// console.log(index)
// console.log(teamCombo)
const sortedTeam = team.sort((a, b) => a.code.localeCompare(b.code))
// console.log(sortedTeam)
const sortedId = sortedTeam[index].id
// console.log(sortedId)
// console.log(team.find(team => query.team === `${team.code} - Team ${team.staffName}`)?.id)
// const teamId = team.find(team => query.team === `${team.code} - Team ${team.staffName}`)?.id
postData.teamId = sortedId
// postData.teamId = teamId
const teamId = team[index].id
console.log(teamId)
postData.teamId = teamId
} }
if (Boolean(query.lowerLimit)) { if (Boolean(query.lowerLimit)) {
postData.lowerLimit = query.lowerLimit/100 postData.lowerLimit = query.lowerLimit/100


Loading…
取消
儲存