diff --git a/components/apolloTable/component/base/_utils/getFormatter.tsx b/components/apolloTable/component/base/_utils/getFormatter.tsx index f031468c7898b3a64250b4bc6fa300a0813b9fec..4bef74043bb262b0436c9c985c09d29523c5f67e 100644 --- a/components/apolloTable/component/base/_utils/getFormatter.tsx +++ b/components/apolloTable/component/base/_utils/getFormatter.tsx @@ -3,26 +3,46 @@ import { isNumber } from '../../../utils/utils'; import { accMul } from '../../../utils/calculate'; import { checkoutFileType } from '../extra/upload/utils'; +const initValue = (val) => { + if (!Array.isArray(val) || val.length === 0) return undefined; + // 过滤掉空数据 + const newValue = val.filter((item) => { + return item.text || item.value || item.value === 0; + }); + return newValue.length > 0 ? newValue : undefined; +}; export const GetFormatter = { INPUT: (val) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - return obj.value; + const newValue = initValue(val); + return newValue ? newValue[0].value : undefined; }, SEARCH: (val) => { - if (!Array.isArray(val) || val.length === 0) return undefined; - return { value: val[0].value, label: val[0].text }; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return { value: newValue[0].value, label: newValue[0].text }; }, TEXTAREA: (val) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - return obj.value; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue[0].value; }, TEXTLINK: (val) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - return obj.value; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue[0].value; }, UPLOAD: (val) => { - if (!Array.isArray(val)) return undefined; - return val.map((item) => { + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue.map((item) => { let size = 0; const text = item.text.replace(/\((\d+)\)$/, (s0, s1, s2) => { size = s1; @@ -32,27 +52,33 @@ export const GetFormatter = { }); }, CHECKBOX: (val, config) => { + const newValue = initValue(val); + if (!newValue) { + return undefined; + } const { isMultiple } = config || {}; if (isMultiple) { - return Array.isArray(val) - ? val.map((item) => { - return item.value; - }) - : []; + return newValue.map((item) => { + return item.value; + }); } - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - return obj.value; + return newValue[0].value; }, SELECT: (val) => { // 处理成[{}]结构 - if (!Array.isArray(val) || val.length === 0) return undefined; - const obj = val[0] || {}; - return { key: obj.value, label: obj.text }; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return { key: newValue[0].value, label: newValue[0].text }; }, MULTIPLE_SELECT: (val) => { // 处理成[{}]结构 - if (!Array.isArray(val) || val.length === 0) return undefined; - return val.map((item) => { + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue.map((item) => { return { key: item.value, label: item.text }; }); }, @@ -60,27 +86,39 @@ export const GetFormatter = { return GetFormatter.SELECT(val); }, RATE: (val) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - return obj.value || 0; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue[0].value; }, NUMBER: (val, config) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } const { precision } = config; - if (precision >= 0 && isNumber(obj.value)) { - return Number(obj.value).toFixed(precision); + if (precision >= 0 && isNumber(newValue[0].value)) { + return Number(newValue[0].value).toFixed(precision); } - return obj.value; + return newValue[0].value; }, PERCENTAGE: (val, config) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - if (isNumber(obj.value)) { - return `${accMul(obj.value, 100).toFixed(config.precision)}%`; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + if (isNumber(newValue[0].value)) { + return `${accMul(newValue[0].value, 100).toFixed(config.precision)}%`; } return undefined; }, DATE: (val) => { - const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; - return obj.value ? moment(obj.value) : undefined; + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return moment(newValue[0].value); }, DATERANGE: (val) => { const obj = Array.isArray(val) && val.length > 0 ? val[0] : {}; @@ -92,14 +130,20 @@ export const GetFormatter = { return Array.isArray(val) && val.length > 0 ? val : []; }, MULTIPLE_SEARCH: (val) => { - if (!Array.isArray(val)) return undefined; - return val.map((item) => { + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue.map((item) => { return { value: item.value, label: item.text }; }); }, TREE_SELECT: (val) => { - if (!Array.isArray(val)) return undefined; - return val.map((item) => { + const newValue = initValue(val); + if (!newValue) { + return undefined; + } + return newValue.map((item) => { return { value: item.value, label: item.text }; }); }, diff --git a/components/apolloTable/component/base/edit/select/index.tsx b/components/apolloTable/component/base/edit/select/index.tsx index 5312c432d61b18b966eb8c5d551bda00ec4d3065..268c947cf9af2777a6c438952e7f6d6e7fe028b4 100644 --- a/components/apolloTable/component/base/edit/select/index.tsx +++ b/components/apolloTable/component/base/edit/select/index.tsx @@ -16,6 +16,7 @@ export const ApolloSelect = (props: ApolloSelectProps) => { if (isMultiple) { selfProps.mode = 'multiple'; } + debugger return (