| | |
| | | F: { text: '在库', type: 'primary' } |
| | | } |
| | | |
| | | const LOC_ID_FIELDS = ['id', 'version', 'warehouseId', 'areaId'] |
| | | const LOC_SIZE_FIELDS = ['length', 'height', 'width'] |
| | | const LOC_POSITION_FIELDS = ['row', 'col', 'lev', 'channel'] |
| | | const LOC_CAPACITY_FIELDS = ['maxParts', 'maxPack'] |
| | | const LOC_OPTIONAL_NUMBER_FIELDS = [...LOC_ID_FIELDS, ...LOC_SIZE_FIELDS, ...LOC_POSITION_FIELDS, ...LOC_CAPACITY_FIELDS] |
| | | |
| | | export const LOC_REPORT_TITLE = '库位报表' |
| | | export const LOC_REPORT_STYLE = { |
| | | titleAlign: 'center', |
| | |
| | | return String(value ?? '').trim() |
| | | } |
| | | |
| | | function hasValue(value) { |
| | | return value !== '' && value !== null && value !== undefined |
| | | } |
| | | |
| | | function normalizeNumber(value, fallback = void 0) { |
| | | if (value === '' || value === null || value === undefined) { |
| | | if (!hasValue(value)) { |
| | | return fallback |
| | | } |
| | | const parsed = Number(value) |
| | | return Number.isNaN(parsed) ? fallback : parsed |
| | | } |
| | | |
| | | function toOptionalNumber(value) { |
| | | return hasValue(value) ? Number(value) : void 0 |
| | | } |
| | | |
| | | function toNumberOr(value, fallback) { |
| | | return hasValue(value) ? Number(value) : fallback |
| | | } |
| | | |
| | | function buildNumberField(key, value) { |
| | | return hasValue(value) ? { [key]: Number(value) } : {} |
| | | } |
| | | |
| | | function buildOptionalNumberFields(source = {}, fields = []) { |
| | | return Object.fromEntries(fields.map((field) => [field, toOptionalNumber(source[field])]).filter(([, value]) => hasValue(value))) |
| | | } |
| | | |
| | | function normalizeFlagText(value) { |
| | |
| | | |
| | | function normalizeTypeIds(typeIds = []) { |
| | | if (Array.isArray(typeIds)) { |
| | | return typeIds |
| | | .map((item) => normalizeNumber(item, void 0)) |
| | | .filter((item) => item !== void 0 && item !== null) |
| | | return typeIds.map((item) => normalizeNumber(item, void 0)).filter(hasValue) |
| | | } |
| | | |
| | | if (typeof typeIds === 'string' && typeIds.trim()) { |
| | | return typeIds |
| | | .split(',') |
| | | .map((item) => normalizeNumber(item, void 0)) |
| | | .filter((item) => item !== void 0 && item !== null) |
| | | return typeIds.split(',').map((item) => normalizeNumber(item, void 0)).filter(hasValue) |
| | | } |
| | | |
| | | return [] |
| | | } |
| | | |
| | | export function filterLocAreaOptionsByWarehouse(options = [], warehouseId) { |
| | | if (!warehouseId) { |
| | | return options |
| | | } |
| | | |
| | | return options.filter((item) => { |
| | | if (!hasValue(item?.warehouseId)) { |
| | | return true |
| | | } |
| | | return Number(item.warehouseId) === Number(warehouseId) |
| | | }) |
| | | } |
| | | |
| | | export function createLocSearchState() { |
| | |
| | | export function buildLocSearchParams(params = {}) { |
| | | const searchParams = { |
| | | condition: normalizeText(params.condition), |
| | | warehouseId: |
| | | params.warehouseId !== undefined && params.warehouseId !== null && params.warehouseId !== '' |
| | | ? Number(params.warehouseId) |
| | | : void 0, |
| | | areaId: |
| | | params.areaId !== undefined && params.areaId !== null && params.areaId !== '' |
| | | ? Number(params.areaId) |
| | | : void 0, |
| | | warehouseId: toOptionalNumber(params.warehouseId), |
| | | areaId: toOptionalNumber(params.areaId), |
| | | code: normalizeText(params.code), |
| | | useStatus: normalizeText(params.useStatus), |
| | | row: |
| | | params.row !== undefined && params.row !== null && params.row !== '' |
| | | ? Number(params.row) |
| | | : void 0, |
| | | col: |
| | | params.col !== undefined && params.col !== null && params.col !== '' |
| | | ? Number(params.col) |
| | | : void 0, |
| | | lev: |
| | | params.lev !== undefined && params.lev !== null && params.lev !== '' |
| | | ? Number(params.lev) |
| | | : void 0, |
| | | channel: |
| | | params.channel !== undefined && params.channel !== null && params.channel !== '' |
| | | ? Number(params.channel) |
| | | : void 0, |
| | | status: |
| | | params.status !== undefined && params.status !== null && params.status !== '' |
| | | ? Number(params.status) |
| | | : void 0, |
| | | row: toOptionalNumber(params.row), |
| | | col: toOptionalNumber(params.col), |
| | | lev: toOptionalNumber(params.lev), |
| | | channel: toOptionalNumber(params.channel), |
| | | status: toOptionalNumber(params.status), |
| | | barcode: normalizeText(params.barcode), |
| | | memo: normalizeText(params.memo) |
| | | } |
| | | |
| | | return Object.fromEntries( |
| | | Object.entries(searchParams).filter(([, value]) => value !== '' && value !== void 0 && value !== null) |
| | | ) |
| | | return Object.fromEntries(Object.entries(searchParams).filter(([, value]) => hasValue(value))) |
| | | } |
| | | |
| | | export function buildLocPageQueryParams(params = {}) { |
| | |
| | | |
| | | export function buildLocSavePayload(formData = {}) { |
| | | return { |
| | | ...(formData.id !== undefined && formData.id !== null && formData.id !== '' |
| | | ? { id: Number(formData.id) } |
| | | : {}), |
| | | ...(formData.version !== undefined && formData.version !== null && formData.version !== '' |
| | | ? { version: Number(formData.version) } |
| | | : {}), |
| | | ...(formData.warehouseId !== undefined && formData.warehouseId !== null && formData.warehouseId !== '' |
| | | ? { warehouseId: Number(formData.warehouseId) } |
| | | : {}), |
| | | ...(formData.areaId !== undefined && formData.areaId !== null && formData.areaId !== '' |
| | | ? { areaId: Number(formData.areaId) } |
| | | : {}), |
| | | ...buildOptionalNumberFields(formData, LOC_ID_FIELDS), |
| | | code: normalizeText(formData.code) || '', |
| | | typeIds: normalizeTypeIds(formData.typeIds), |
| | | ...(formData.flagLogic !== undefined && formData.flagLogic !== null && formData.flagLogic !== '' |
| | | ? { flagLogic: Number(formData.flagLogic) } |
| | | : {}), |
| | | ...buildNumberField('flagLogic', formData.flagLogic), |
| | | fucAtrrs: normalizeText(formData.fucAtrrs) || '', |
| | | barcode: normalizeText(formData.barcode) || '', |
| | | unit: normalizeText(formData.unit) || '', |
| | | ...(formData.length !== undefined && formData.length !== null && formData.length !== '' |
| | | ? { length: Number(formData.length) } |
| | | : {}), |
| | | ...(formData.height !== undefined && formData.height !== null && formData.height !== '' |
| | | ? { height: Number(formData.height) } |
| | | : {}), |
| | | ...(formData.width !== undefined && formData.width !== null && formData.width !== '' |
| | | ? { width: Number(formData.width) } |
| | | : {}), |
| | | ...(formData.row !== undefined && formData.row !== null && formData.row !== '' |
| | | ? { row: Number(formData.row) } |
| | | : {}), |
| | | ...(formData.col !== undefined && formData.col !== null && formData.col !== '' |
| | | ? { col: Number(formData.col) } |
| | | : {}), |
| | | ...(formData.lev !== undefined && formData.lev !== null && formData.lev !== '' |
| | | ? { lev: Number(formData.lev) } |
| | | : {}), |
| | | ...(formData.channel !== undefined && formData.channel !== null && formData.channel !== '' |
| | | ? { channel: Number(formData.channel) } |
| | | : {}), |
| | | ...(formData.maxParts !== undefined && formData.maxParts !== null && formData.maxParts !== '' |
| | | ? { maxParts: Number(formData.maxParts) } |
| | | : {}), |
| | | ...(formData.maxPack !== undefined && formData.maxPack !== null && formData.maxPack !== '' |
| | | ? { maxPack: Number(formData.maxPack) } |
| | | : {}), |
| | | ...buildOptionalNumberFields(formData, [...LOC_SIZE_FIELDS, ...LOC_POSITION_FIELDS, ...LOC_CAPACITY_FIELDS]), |
| | | useStatus: normalizeText(formData.useStatus) || 'O', |
| | | ...(formData.flagLabelMange !== undefined && formData.flagLabelMange !== null && formData.flagLabelMange !== '' |
| | | ? { flagLabelMange: Number(formData.flagLabelMange) } |
| | | : {}), |
| | | ...buildNumberField('flagLabelMange', formData.flagLabelMange), |
| | | locAttrs: normalizeText(formData.locAttrs) || '', |
| | | status: |
| | | formData.status !== undefined && formData.status !== null && formData.status !== '' |
| | | ? Number(formData.status) |
| | | : 1, |
| | | status: toNumberOr(formData.status, 1), |
| | | memo: normalizeText(formData.memo) || '' |
| | | } |
| | | } |
| | |
| | | export function buildLocDialogModel(record = {}) { |
| | | return { |
| | | ...createLocFormState(), |
| | | ...(record.id !== undefined && record.id !== null && record.id !== '' ? { id: Number(record.id) } : {}), |
| | | ...(record.version !== undefined && record.version !== null && record.version !== '' |
| | | ? { version: Number(record.version) } |
| | | : {}), |
| | | warehouseId: |
| | | record.warehouseId !== undefined && record.warehouseId !== null && record.warehouseId !== '' |
| | | ? Number(record.warehouseId) |
| | | : void 0, |
| | | areaId: |
| | | record.areaId !== undefined && record.areaId !== null && record.areaId !== '' |
| | | ? Number(record.areaId) |
| | | : void 0, |
| | | ...buildOptionalNumberFields(record, LOC_OPTIONAL_NUMBER_FIELDS), |
| | | code: normalizeText(record.code || ''), |
| | | typeIds: normalizeTypeIds(record.typeIds ?? record.type ?? ''), |
| | | flagLogic: |
| | | record.flagLogic !== undefined && record.flagLogic !== null && record.flagLogic !== '' |
| | | ? Number(record.flagLogic) |
| | | : 0, |
| | | flagLogic: toNumberOr(record.flagLogic, 0), |
| | | fucAtrrs: normalizeText(record.fucAtrrs || ''), |
| | | barcode: normalizeText(record.barcode || ''), |
| | | unit: normalizeText(record.unit || ''), |
| | | length: |
| | | record.length !== undefined && record.length !== null && record.length !== '' |
| | | ? Number(record.length) |
| | | : void 0, |
| | | height: |
| | | record.height !== undefined && record.height !== null && record.height !== '' |
| | | ? Number(record.height) |
| | | : void 0, |
| | | width: |
| | | record.width !== undefined && record.width !== null && record.width !== '' |
| | | ? Number(record.width) |
| | | : void 0, |
| | | row: |
| | | record.row !== undefined && record.row !== null && record.row !== '' |
| | | ? Number(record.row) |
| | | : void 0, |
| | | col: |
| | | record.col !== undefined && record.col !== null && record.col !== '' |
| | | ? Number(record.col) |
| | | : void 0, |
| | | lev: |
| | | record.lev !== undefined && record.lev !== null && record.lev !== '' |
| | | ? Number(record.lev) |
| | | : void 0, |
| | | channel: |
| | | record.channel !== undefined && record.channel !== null && record.channel !== '' |
| | | ? Number(record.channel) |
| | | : void 0, |
| | | maxParts: |
| | | record.maxParts !== undefined && record.maxParts !== null && record.maxParts !== '' |
| | | ? Number(record.maxParts) |
| | | : void 0, |
| | | maxPack: |
| | | record.maxPack !== undefined && record.maxPack !== null && record.maxPack !== '' |
| | | ? Number(record.maxPack) |
| | | : void 0, |
| | | useStatus: normalizeText(record.useStatus || 'O') || 'O', |
| | | flagLabelMange: |
| | | record.flagLabelMange !== undefined && record.flagLabelMange !== null && record.flagLabelMange !== '' |
| | | ? Number(record.flagLabelMange) |
| | | : 0, |
| | | flagLabelMange: toNumberOr(record.flagLabelMange, 0), |
| | | locAttrs: normalizeText(record.locAttrs || ''), |
| | | status: record.status !== undefined && record.status !== null ? Number(record.status) : 1, |
| | | status: toNumberOr(record.status, 1), |
| | | memo: normalizeText(record.memo || '') |
| | | } |
| | | } |
| | |
| | | const typeIds = normalizeTypeIds(record.typeIds ?? record.type ?? '') |
| | | return { |
| | | ...record, |
| | | ...buildOptionalNumberFields(record, [...LOC_SIZE_FIELDS, ...LOC_POSITION_FIELDS, ...LOC_CAPACITY_FIELDS]), |
| | | warehouseName: normalizeText(record.warehouseId$ || record.warehouseName || ''), |
| | | areaName: normalizeText(record.areaId$ || record.areaName || ''), |
| | | typeIds, |
| | |
| | | statusText: statusMeta.text, |
| | | statusType: statusMeta.type, |
| | | statusBool: record.statusBool !== void 0 ? Boolean(record.statusBool) : statusMeta.bool, |
| | | row: record.row !== undefined && record.row !== null ? Number(record.row) : void 0, |
| | | col: record.col !== undefined && record.col !== null ? Number(record.col) : void 0, |
| | | lev: record.lev !== undefined && record.lev !== null ? Number(record.lev) : void 0, |
| | | channel: record.channel !== undefined && record.channel !== null ? Number(record.channel) : void 0, |
| | | length: record.length !== undefined && record.length !== null ? Number(record.length) : void 0, |
| | | height: record.height !== undefined && record.height !== null ? Number(record.height) : void 0, |
| | | width: record.width !== undefined && record.width !== null ? Number(record.width) : void 0, |
| | | maxParts: record.maxParts !== undefined && record.maxParts !== null ? Number(record.maxParts) : void 0, |
| | | maxPack: record.maxPack !== undefined && record.maxPack !== null ? Number(record.maxPack) : void 0, |
| | | createByText: normalizeText(record.createBy$ || record.createByText || ''), |
| | | createTimeText: normalizeText(record.createTime$ || record.createTime || ''), |
| | | updateByText: normalizeText(record.updateBy$ || record.updateByText || ''), |
| | |
| | | return null |
| | | } |
| | | const value = item.id ?? item.value |
| | | if (value === void 0 || value === null || value === '') { |
| | | if (!hasValue(value)) { |
| | | return null |
| | | } |
| | | return { |
| | |
| | | return null |
| | | } |
| | | const value = item.id ?? item.value |
| | | if (value === void 0 || value === null || value === '') { |
| | | if (!hasValue(value)) { |
| | | return null |
| | | } |
| | | return { |
| | | value: Number(value), |
| | | label: normalizeText(item.name || item.code || `库区 ${value}`), |
| | | warehouseId: |
| | | item.warehouseId !== undefined && item.warehouseId !== null && item.warehouseId !== '' |
| | | ? Number(item.warehouseId) |
| | | : void 0 |
| | | warehouseId: toOptionalNumber(item.warehouseId) |
| | | } |
| | | }) |
| | | .filter(Boolean) |
| | |
| | | return null |
| | | } |
| | | const value = item.id ?? item.value |
| | | if (value === void 0 || value === null || value === '') { |
| | | if (!hasValue(value)) { |
| | | return null |
| | | } |
| | | return { |