fix(缺陷管理): 缺陷管理表格增加对自定义多选框的友好展示

--bug=1036382 --user=宋天阳 【缺陷管理】创建缺陷-多选输入框字段显示错误 https://www.tapd.cn/55049933/s/1477706
This commit is contained in:
song-tianyang 2024-03-19 20:41:14 +08:00 committed by Craftsman
parent 1ea17a964c
commit 9621269bab
1 changed files with 7 additions and 2 deletions

View File

@ -3,6 +3,7 @@ import JSEncrypt from 'jsencrypt';
import { BatchActionQueryParams, MsTableColumnData } from '@/components/pure/ms-table/type'; import { BatchActionQueryParams, MsTableColumnData } from '@/components/pure/ms-table/type';
import { BugEditCustomField, CustomFieldItem } from '@/models/bug-management'; import { BugEditCustomField, CustomFieldItem } from '@/models/bug-management';
import type { CustomAttributes } from '@/models/caseManagement/featureCase';
import { isObject } from './is'; import { isObject } from './is';
import { json } from 'stream/consumers'; import { json } from 'stream/consumers';
@ -685,7 +686,11 @@ export function parseQueryParams(url: string): QueryParam[] {
*/ */
export function customFieldDataToTableData(customFieldData: Record<string, any>[], customFields: BugEditCustomField[]) { export function customFieldDataToTableData(customFieldData: Record<string, any>[], customFields: BugEditCustomField[]) {
if (!customFieldData || !customFields) return {}; if (!customFieldData || !customFields) return {};
const tableData: Record<string, any> = {}; const tableData: Record<string, any> = {};
const multipleExcludes = ['MULTIPLE_SELECT', 'CHECKBOX', 'MULTIPLE_MEMBER'];
const selectExcludes = ['MEMBER', 'RADIO', 'SELECT'];
customFieldData.forEach((field) => { customFieldData.forEach((field) => {
const customField = customFields.find((item) => item.fieldId === field.id); const customField = customFields.find((item) => item.fieldId === field.id);
if (!customField) return; if (!customField) return;
@ -697,9 +702,9 @@ export function customFieldDataToTableData(customFieldData: Record<string, any>[
} }
// 后端返回来的数据这个字段没值 // 后端返回来的数据这个字段没值
field.type = customField.type; field.type = customField.type;
if (['SELECT', 'RADIO'].includes(field.type) && Array.isArray(field.options)) { if (selectExcludes.includes(field.type) && Array.isArray(field.options)) {
tableData[field.id] = field.options.find((option) => option.value === field.value)?.text; tableData[field.id] = field.options.find((option) => option.value === field.value)?.text;
} else if (['MUTIPLE_SELECT', 'CHECKBOX'].includes(field.type) && Array.isArray(field.options)) { } else if (multipleExcludes.includes(field.type) && Array.isArray(field.options)) {
// 多值的类型后端返回的是json字符串 // 多值的类型后端返回的是json字符串
field.value = JSON.parse(field.value); field.value = JSON.parse(field.value);
tableData[field.id] = field.value tableData[field.id] = field.value