feat: 系统配置
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Has been cancelled

This commit is contained in:
luo
2026-07-25 14:13:49 +08:00
parent ee508c3e1e
commit dd6bceeeb7
20 changed files with 805 additions and 41 deletions

View File

@@ -0,0 +1,44 @@
import type { GrantPackageInfo, PackageResponse } from '@/types/api'
export interface GrantPackageCandidate {
id: number
package_name?: string
package_code?: string
cost_price?: number
suggested_retail_price?: number | null
is_authorized: boolean
authorized_package?: GrantPackageInfo
}
export const mergeGrantPackageCandidates = (
candidates: PackageResponse[],
authorizedPackages: GrantPackageInfo[]
): GrantPackageCandidate[] => {
const merged = new Map<number, GrantPackageCandidate>()
candidates.forEach((candidate) => {
merged.set(candidate.id, {
id: candidate.id,
package_name: candidate.package_name,
package_code: candidate.package_code,
cost_price: candidate.cost_price,
suggested_retail_price: candidate.suggested_retail_price,
is_authorized: false
})
})
authorizedPackages.forEach((authorizedPackage) => {
const candidate = merged.get(authorizedPackage.package_id)
merged.set(authorizedPackage.package_id, {
id: authorizedPackage.package_id,
package_name: candidate?.package_name ?? authorizedPackage.package_name,
package_code: candidate?.package_code ?? authorizedPackage.package_code,
cost_price: authorizedPackage.cost_price ?? candidate?.cost_price,
suggested_retail_price: candidate?.suggested_retail_price,
is_authorized: true,
authorized_package: authorizedPackage
})
})
return [...merged.values()]
}