From 1d95b134d85c3c60cf0e72739888c9741a0bb1ee Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 10 四月 2026 13:20:39 +0800
Subject: [PATCH] #页面优化
---
rsf-design/src/views/basic-info/wh-mat/whMatPage.helpers.js | 446 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 387 insertions(+), 59 deletions(-)
diff --git a/rsf-design/src/views/basic-info/wh-mat/whMatPage.helpers.js b/rsf-design/src/views/basic-info/wh-mat/whMatPage.helpers.js
index 5930c2f..c433717 100644
--- a/rsf-design/src/views/basic-info/wh-mat/whMatPage.helpers.js
+++ b/rsf-design/src/views/basic-info/wh-mat/whMatPage.helpers.js
@@ -1,5 +1,13 @@
import { $t } from '@/locales'
+export const WH_MAT_REPORT_TITLE = '鐗╂枡鎶ヨ〃'
+export const WH_MAT_REPORT_STYLE = {
+ orientation: 'landscape',
+ titleAlign: 'center',
+ titleLevel: 'h2'
+}
+export const WH_MAT_DYNAMIC_FIELD_PREFIX = 'extendField__'
+
function normalizeText(value) {
return String(value ?? '').trim()
}
@@ -20,33 +28,137 @@
return Number.isFinite(numericValue) ? numericValue : null
}
+function normalizeNullableInteger(value) {
+ const numericValue = normalizeNullableNumber(value)
+ return numericValue === null ? null : Math.trunc(numericValue)
+}
+
+function normalizeBooleanLikeText(value, t = $t) {
+ if (value === 1 || value === '1') return t('common.status.yes')
+ if (value === 0 || value === '0') return t('common.status.no')
+ return t('common.placeholder.empty')
+}
+
export function createWhMatSearchState() {
return {
condition: '',
code: '',
name: '',
+ platCode: '',
spec: '',
model: '',
- barcode: ''
+ color: '',
+ size: '',
+ unit: '',
+ purUnit: '',
+ stockUnit: '',
+ barcode: '',
+ describle: '',
+ groupId: '',
+ rglarId: '',
+ weight: null,
+ nromNum: null,
+ stockLevel: '',
+ flagLabelMange: '',
+ safeQty: null,
+ minQty: null,
+ maxQty: null,
+ stagn: null,
+ valid: null,
+ status: '',
+ flagCheck: '',
+ validWarn: null,
+ memo: '',
+ orderBy: 'create_time desc'
+ }
+}
+
+export function createWhMatFormState() {
+ return {
+ id: void 0,
+ code: '',
+ name: '',
+ groupId: '',
+ useOrgName: '',
+ spec: '',
+ model: '',
+ color: '',
+ size: '',
+ weight: void 0,
+ unit: '',
+ purUnit: '',
+ describle: '',
+ safeQty: void 0,
+ minQty: void 0,
+ maxQty: void 0,
+ stagn: void 0,
+ valid: void 0,
+ validWarn: void 0,
+ flagCheck: 0,
+ rglarId: ''
}
}
export function buildWhMatPageQueryParams(params = {}) {
const result = {
current: params.current || 1,
- pageSize: params.pageSize || params.size || 20
+ pageSize: params.pageSize || params.size || 20,
+ orderBy: normalizeText(params.orderBy) || 'create_time desc'
}
- ;['condition', 'code', 'name', 'spec', 'model', 'barcode'].forEach((key) => {
+ ;[
+ 'condition',
+ 'code',
+ 'name',
+ 'platCode',
+ 'spec',
+ 'model',
+ 'color',
+ 'size',
+ 'unit',
+ 'purUnit',
+ 'stockUnit',
+ 'barcode',
+ 'describle',
+ 'memo'
+ ].forEach((key) => {
const value = normalizeText(params[key])
if (value) {
result[key] = value
}
})
+ ;[
+ 'groupId',
+ 'rglarId',
+ 'weight',
+ 'nromNum',
+ 'stockLevel',
+ 'flagLabelMange',
+ 'safeQty',
+ 'minQty',
+ 'maxQty',
+ 'stagn',
+ 'valid',
+ 'status',
+ 'flagCheck',
+ 'validWarn'
+ ].forEach((key) => {
+ const value = params[key]
+ if (value !== '' && value !== null && value !== undefined) {
+ const numericValue = Number(value)
+ result[key] = Number.isFinite(numericValue) ? numericValue : value
+ }
+ })
- if (params.groupId !== undefined && params.groupId !== null && params.groupId !== '') {
- result.groupId = String(params.groupId)
- }
+ Object.entries(params).forEach(([key, value]) => {
+ if (!key.startsWith(WH_MAT_DYNAMIC_FIELD_PREFIX)) {
+ return
+ }
+ const normalizedValue = normalizeText(value)
+ if (normalizedValue) {
+ result[key.slice(WH_MAT_DYNAMIC_FIELD_PREFIX.length)] = normalizedValue
+ }
+ })
return result
}
@@ -63,7 +175,7 @@
}
return records.map((item) => {
- const children = normalizeWhMatGroupTreeRows(item?.children || [])
+ const children = normalizeWhMatGroupTreeRows(item?.children || [], t)
const id = normalizeNullableNumber(item?.id)
const code = normalizeText(item?.code)
const name = normalizeText(item?.name)
@@ -77,8 +189,12 @@
name,
label,
displayLabel: label,
+ value: id,
status: normalizeNullableNumber(item?.status),
- statusText: normalizeNumber(item?.status, 1) === 1 ? t('common.status.normal') : t('common.status.frozen'),
+ statusText:
+ normalizeNumber(item?.status, 1) === 1
+ ? t('common.status.normal')
+ : t('common.status.frozen'),
statusType: normalizeNumber(item?.status, 1) === 1 ? 'success' : 'danger',
memo: normalizeText(item?.memo) || t('common.placeholder.empty'),
children
@@ -86,62 +202,241 @@
})
}
-export function normalizeWhMatRow(record = {}, t = $t) {
- const statusValue = normalizeNullableNumber(record?.status)
+export function resolveWhMatGroupOptions(treeRows = []) {
+ if (!Array.isArray(treeRows)) {
+ return []
+ }
+
+ return treeRows.map((item) => ({
+ id: item.id,
+ value: item.id,
+ label:
+ item.displayLabel || item.label || [item.name, item.code].filter(Boolean).join(' 路 ') || '-',
+ displayLabel:
+ item.displayLabel || item.label || [item.name, item.code].filter(Boolean).join(' 路 ') || '-',
+ children: resolveWhMatGroupOptions(item.children || [])
+ }))
+}
+
+export function resolveWhMatSerialRuleOptions(records = []) {
+ if (!Array.isArray(records)) {
+ return []
+ }
+ return records
+ .map((item) => ({
+ value: normalizeNullableNumber(item?.id),
+ label: normalizeText(item?.name || item?.code || item?.description)
+ }))
+ .filter((item) => item.value !== null && item.label)
+}
+
+export function getWhMatStatusOptions(t = $t) {
+ return [
+ { value: 1, label: t('common.status.normal') },
+ { value: 0, label: t('common.status.frozen') }
+ ]
+}
+
+export function getWhMatFlagCheckOptions(t = $t) {
+ return [
+ { value: 0, label: t('common.status.no') },
+ { value: 1, label: t('common.status.yes') }
+ ]
+}
+
+export function getWhMatStockLevelOptions() {
+ return [
+ { value: 0, label: 'A' },
+ { value: 1, label: 'B' },
+ { value: 2, label: 'C' }
+ ]
+}
+
+export function getWhMatFlagLabelManageOptions(t = $t) {
+ return [
+ { value: 0, label: t('common.status.no') },
+ { value: 1, label: t('common.status.yes') }
+ ]
+}
+
+export function getWhMatDynamicFieldKey(fieldName) {
+ return `${WH_MAT_DYNAMIC_FIELD_PREFIX}${fieldName}`
+}
+
+export function normalizeWhMatEnabledFields(fields = []) {
+ if (!Array.isArray(fields)) {
+ return []
+ }
+
+ return fields
+ .map((item) => ({
+ fields: normalizeText(item?.fields),
+ fieldsAlise: normalizeText(item?.fieldsAlise || item?.fieldsAlias || item?.fields)
+ }))
+ .filter((item) => item.fields)
+}
+
+export function attachWhMatDynamicFields(record = {}, enabledFields = []) {
+ const extendFields =
+ record?.extendFields &&
+ typeof record.extendFields === 'object' &&
+ !Array.isArray(record.extendFields)
+ ? record.extendFields
+ : {}
+ const dynamicValues = {}
+
+ enabledFields.forEach((field) => {
+ dynamicValues[getWhMatDynamicFieldKey(field.fields)] = extendFields[field.fields] || ''
+ })
+
return {
...record,
- code: normalizeText(record?.code) || t('common.placeholder.empty'),
- name: normalizeText(record?.name) || t('common.placeholder.empty'),
- groupName: normalizeText(record?.groupId$ || record?.groupCode) || t('common.placeholder.empty'),
- shipperName: normalizeText(record?.shipperId$ || record?.shipperName) || t('common.placeholder.empty'),
- barcode: normalizeText(record?.barcode) || t('common.placeholder.empty'),
- spec: normalizeText(record?.spec) || t('common.placeholder.empty'),
- model: normalizeText(record?.model) || t('common.placeholder.empty'),
- color: normalizeText(record?.color) || t('common.placeholder.empty'),
- size: normalizeText(record?.size) || t('common.placeholder.empty'),
- unit: normalizeText(record?.unit) || t('common.placeholder.empty'),
- purUnit: normalizeText(record?.purUnit) || t('common.placeholder.empty'),
- stockUnit: normalizeText(record?.stockUnit) || t('common.placeholder.empty'),
- stockLevelText: normalizeText(record?.stockLeval$) || t('common.placeholder.empty'),
- flagLabelManageText: normalizeText(record?.flagLabelMange$) || t('common.placeholder.empty'),
- flagCheckText:
- record?.flagCheck === 1 || record?.flagCheck === '1'
- ? t('common.status.yes')
- : record?.flagCheck === 0 || record?.flagCheck === '0'
- ? t('common.status.no')
- : t('common.placeholder.empty'),
- statusText:
- normalizeText(record?.status$) ||
- (statusValue === 1
- ? t('common.status.normal')
- : statusValue === 0
- ? t('common.status.frozen')
- : t('common.placeholder.empty')),
- statusType: statusValue === 1 ? 'success' : statusValue === 0 ? 'danger' : 'info',
- safeQty: record?.safeQty ?? t('common.placeholder.empty'),
- minQty: record?.minQty ?? t('common.placeholder.empty'),
- maxQty: record?.maxQty ?? t('common.placeholder.empty'),
- valid: record?.valid ?? t('common.placeholder.empty'),
- validWarn: record?.validWarn ?? t('common.placeholder.empty'),
- stagn: record?.stagn ?? t('common.placeholder.empty'),
- describle: normalizeText(record?.describle) || t('common.placeholder.empty'),
- baseUnit: normalizeText(record?.baseUnit) || t('common.placeholder.empty'),
- useOrgName: normalizeText(record?.useOrgName) || t('common.placeholder.empty'),
- erpClsId: normalizeText(record?.erpClsId) || t('common.placeholder.empty'),
- memo: normalizeText(record?.memo) || t('common.placeholder.empty'),
- updateByText: normalizeText(record?.updateBy$) || t('common.placeholder.empty'),
- createByText: normalizeText(record?.createBy$) || t('common.placeholder.empty'),
- updateTimeText: normalizeText(record?.updateTime$ || record?.updateTime) || t('common.placeholder.empty'),
- createTimeText: normalizeText(record?.createTime$ || record?.createTime) || t('common.placeholder.empty'),
- extendFields:
- record?.extendFields && typeof record.extendFields === 'object' && !Array.isArray(record.extendFields)
- ? record.extendFields
- : {}
+ ...dynamicValues,
+ extendFields
}
}
-export function normalizeWhMatDetail(record = {}, t = $t) {
- return normalizeWhMatRow(record, t)
+export function normalizeWhMatRow(record = {}, t = $t, enabledFields = []) {
+ const statusValue = normalizeNullableNumber(record?.status)
+ const validWarn = record?.validWarn ?? record?.valid_warn
+ const purUnit = record?.purUnit ?? record?.purchaseUnit
+ const stockLevelLabel =
+ getWhMatStockLevelOptions().find(
+ (item) => item.value === normalizeNullableNumber(record?.stockLevel)
+ )?.label || ''
+ const flagLabelManageLabel =
+ getWhMatFlagLabelManageOptions(t).find(
+ (item) => item.value === normalizeNullableNumber(record?.flagLabelMange)
+ )?.label || ''
+
+ return attachWhMatDynamicFields(
+ {
+ ...record,
+ id: normalizeNullableNumber(record?.id),
+ code: normalizeText(record?.code) || t('common.placeholder.empty'),
+ name: normalizeText(record?.name) || t('common.placeholder.empty'),
+ groupId: normalizeNullableNumber(record?.groupId),
+ groupName:
+ normalizeText(record?.groupId$ || record?.groupCode || record?.groupName) ||
+ t('common.placeholder.empty'),
+ shipperName:
+ normalizeText(record?.shipperId$ || record?.shipperName) || t('common.placeholder.empty'),
+ barcode: normalizeText(record?.barcode) || t('common.placeholder.empty'),
+ platCode: normalizeText(record?.platCode) || t('common.placeholder.empty'),
+ spec: normalizeText(record?.spec) || t('common.placeholder.empty'),
+ model: normalizeText(record?.model) || t('common.placeholder.empty'),
+ color: normalizeText(record?.color) || t('common.placeholder.empty'),
+ size: normalizeText(record?.size) || t('common.placeholder.empty'),
+ weight: record?.weight ?? t('common.placeholder.empty'),
+ nromNum: record?.nromNum ?? t('common.placeholder.empty'),
+ unit: normalizeText(record?.unit) || t('common.placeholder.empty'),
+ purUnit: normalizeText(purUnit) || t('common.placeholder.empty'),
+ stockUnit: normalizeText(record?.stockUnit) || t('common.placeholder.empty'),
+ stockLevelText:
+ normalizeText(record?.stockLeval$ || record?.stockLevel$ || stockLevelLabel) ||
+ t('common.placeholder.empty'),
+ flagLabelManageText:
+ normalizeText(record?.flagLabelMange$ || record?.isLabelMange$ || flagLabelManageLabel) ||
+ t('common.placeholder.empty'),
+ flagCheckText: normalizeBooleanLikeText(record?.flagCheck, t),
+ statusText:
+ normalizeText(record?.status$) ||
+ (statusValue === 1
+ ? t('common.status.normal')
+ : statusValue === 0
+ ? t('common.status.frozen')
+ : t('common.placeholder.empty')),
+ statusType: statusValue === 1 ? 'success' : statusValue === 0 ? 'danger' : 'info',
+ safeQty: record?.safeQty ?? t('common.placeholder.empty'),
+ minQty: record?.minQty ?? t('common.placeholder.empty'),
+ maxQty: record?.maxQty ?? t('common.placeholder.empty'),
+ valid: record?.valid ?? t('common.placeholder.empty'),
+ validWarn: validWarn ?? t('common.placeholder.empty'),
+ stagn: record?.stagn ?? t('common.placeholder.empty'),
+ describle: normalizeText(record?.describle) || t('common.placeholder.empty'),
+ baseUnit: normalizeText(record?.baseUnit) || t('common.placeholder.empty'),
+ useOrgName: normalizeText(record?.useOrgName) || t('common.placeholder.empty'),
+ erpClsId: normalizeText(record?.erpClsId) || t('common.placeholder.empty'),
+ rglarId: normalizeNullableNumber(record?.rglarId),
+ rglarName:
+ normalizeText(record?.rglarId$ || record?.rglarName || record?.rglarCode) ||
+ t('common.placeholder.empty'),
+ memo: normalizeText(record?.memo) || t('common.placeholder.empty'),
+ updateByText: normalizeText(record?.updateBy$) || t('common.placeholder.empty'),
+ createByText: normalizeText(record?.createBy$) || t('common.placeholder.empty'),
+ updateTimeText:
+ normalizeText(record?.updateTime$ || record?.updateTime) || t('common.placeholder.empty'),
+ createTimeText:
+ normalizeText(record?.createTime$ || record?.createTime) || t('common.placeholder.empty')
+ },
+ enabledFields
+ )
+}
+
+export function normalizeWhMatDetail(record = {}, t = $t, enabledFields = []) {
+ return normalizeWhMatRow(record, t, enabledFields)
+}
+
+export function buildWhMatDialogModel(record = {}) {
+ const source = normalizeWhMatRow(record)
+ return {
+ ...createWhMatFormState(),
+ id: source.id ?? void 0,
+ code: normalizeText(record?.code),
+ name: normalizeText(record?.name),
+ groupId: source.groupId ?? '',
+ useOrgName: normalizeText(record?.useOrgName),
+ spec: normalizeText(record?.spec),
+ model: normalizeText(record?.model),
+ color: normalizeText(record?.color),
+ size: normalizeText(record?.size),
+ weight: normalizeNullableNumber(record?.weight),
+ unit: normalizeText(record?.unit),
+ purUnit: normalizeText(record?.purUnit || record?.purchaseUnit),
+ describle: normalizeText(record?.describle),
+ safeQty: normalizeNullableNumber(record?.safeQty),
+ minQty: normalizeNullableNumber(record?.minQty),
+ maxQty: normalizeNullableNumber(record?.maxQty),
+ stagn: normalizeNullableInteger(record?.stagn),
+ valid: normalizeNullableInteger(record?.valid),
+ validWarn: normalizeNullableInteger(record?.validWarn),
+ flagCheck: normalizeNullableInteger(record?.flagCheck) ?? 0,
+ rglarId: normalizeNullableNumber(record?.rglarId) ?? ''
+ }
+}
+
+export function buildWhMatSavePayload(formData = {}) {
+ const payload = {
+ ...(formData.id !== undefined && formData.id !== null ? { id: Number(formData.id) } : {}),
+ code: normalizeText(formData.code),
+ name: normalizeText(formData.name),
+ groupId:
+ formData.groupId !== undefined && formData.groupId !== null && formData.groupId !== ''
+ ? Number(formData.groupId)
+ : void 0,
+ useOrgName: normalizeText(formData.useOrgName),
+ spec: normalizeText(formData.spec),
+ model: normalizeText(formData.model),
+ color: normalizeText(formData.color),
+ size: normalizeText(formData.size),
+ weight: normalizeNullableNumber(formData.weight),
+ unit: normalizeText(formData.unit),
+ purUnit: normalizeText(formData.purUnit),
+ describle: normalizeText(formData.describle),
+ safeQty: normalizeNullableNumber(formData.safeQty),
+ minQty: normalizeNullableNumber(formData.minQty),
+ maxQty: normalizeNullableNumber(formData.maxQty),
+ stagn: normalizeNullableInteger(formData.stagn),
+ valid: normalizeNullableInteger(formData.valid),
+ validWarn: normalizeNullableInteger(formData.validWarn),
+ flagCheck: normalizeNullableInteger(formData.flagCheck),
+ rglarId:
+ formData.rglarId !== undefined && formData.rglarId !== null && formData.rglarId !== ''
+ ? Number(formData.rglarId)
+ : void 0
+ }
+
+ return Object.fromEntries(Object.entries(payload).filter(([, value]) => value !== undefined))
}
export function getWhMatTreeNodeLabel(node = {}) {
@@ -150,6 +445,39 @@
return [name, code].filter(Boolean).join(' 路 ') || $t('common.placeholder.empty')
}
+export function buildWhMatPrintRows(records = [], t = $t) {
+ return records.map((record) => {
+ const normalizedRecord = normalizeWhMatRow(record, t)
+ return {
+ 鐗╂枡缂栫爜: normalizedRecord.code,
+ 鐗╂枡鍚嶇О: normalizedRecord.name,
+ 鐗╂枡鍒嗙粍: normalizedRecord.groupName,
+ 瑙勬牸: normalizedRecord.spec,
+ 鍨嬪彿: normalizedRecord.model,
+ 鍗曚綅: normalizedRecord.unit,
+ 鐘舵��: normalizedRecord.statusText,
+ 鏇存柊鏃堕棿: normalizedRecord.updateTimeText
+ }
+ })
+}
+
+export function buildWhMatReportMeta({
+ previewMeta = {},
+ count = 0,
+ orientation = WH_MAT_REPORT_STYLE.orientation
+} = {}) {
+ return {
+ reportTitle: WH_MAT_REPORT_TITLE,
+ count,
+ ...previewMeta,
+ reportStyle: {
+ ...WH_MAT_REPORT_STYLE,
+ ...(previewMeta.reportStyle || {}),
+ orientation
+ }
+ }
+}
+
export const buildMatnrPageQueryParams = buildWhMatPageQueryParams
export const buildMatnrGroupTreeQueryParams = buildWhMatGroupTreeQueryParams
export const normalizeMatnrGroupTreeRows = normalizeWhMatGroupTreeRows
--
Gitblit v1.9.1