Commit a11effeb67a8b573947a8c1ba2a4c34634f0d11d
1 parent
c62f707b
fix: 客户需求改为多选
Showing
2 changed files
with
49 additions
and
12 deletions
src/pages/Client/Client/Components/ClientDrawer.tsx
... | ... | @@ -6,7 +6,6 @@ import { |
6 | 6 | postDistrictSelectByNameAndLevel, |
7 | 7 | postDistrictSelOrderProvince, |
8 | 8 | postServiceConstClientLevels, |
9 | - postServiceConstClientRequirements, | |
10 | 9 | postServiceConstClientSource, |
11 | 10 | postServiceConstTradeStatus, |
12 | 11 | } from '@/services'; |
... | ... | @@ -24,6 +23,12 @@ import { useState } from 'react'; |
24 | 23 | |
25 | 24 | export default ({ optType, record, onFinish }) => { |
26 | 25 | const [form] = Form.useForm(); |
26 | + const requirementsEnum = { | |
27 | + EXPERIMENTAL_EQUIPMENT: '实验设备', | |
28 | + EXPERIMENTAL_MATERIALS: '实验材料', | |
29 | + OTHER: '其他', | |
30 | + PILOT_TEST_VALIDATION_SERVICES: '中式验证服务', | |
31 | + }; | |
27 | 32 | //省市区 |
28 | 33 | const [province, setProvince] = useState(''); |
29 | 34 | const [city, setCity] = useState(''); |
... | ... | @@ -87,6 +92,20 @@ export default ({ optType, record, onFinish }) => { |
87 | 92 | // 在这里可以添加其他逻辑,比如根据选择更新其他表单项的值 |
88 | 93 | }; |
89 | 94 | |
95 | + // MODIFIED: 增加处理非 JSON 格式字符串的逻辑 | |
96 | + const parsedRecord = record | |
97 | + ? { | |
98 | + ...record, | |
99 | + requirements: (() => { | |
100 | + try { | |
101 | + return JSON.parse(record.requirements); // 尝试解析 JSON | |
102 | + } catch (error) { | |
103 | + return record.requirements ? record.requirements.split(',') : []; // 如果不是 JSON,则按逗号分隔字符串 | |
104 | + } | |
105 | + })(), | |
106 | + } | |
107 | + : {}; // 如果 record 为空,返回一个空对象 | |
108 | + | |
90 | 109 | return ( |
91 | 110 | <DrawerForm |
92 | 111 | title={optTypeEnum[optType].text} |
... | ... | @@ -97,7 +116,7 @@ export default ({ optType, record, onFinish }) => { |
97 | 116 | maxWidth: window.innerWidth * 0.8, |
98 | 117 | minWidth: 300, |
99 | 118 | }} |
100 | - initialValues={record} | |
119 | + initialValues={parsedRecord} | |
101 | 120 | form={form} |
102 | 121 | trigger={optTypeEnum[optType].button} |
103 | 122 | autoFocusFirstInput |
... | ... | @@ -345,20 +364,22 @@ export default ({ optType, record, onFinish }) => { |
345 | 364 | name="requirements" |
346 | 365 | label="客户需求" |
347 | 366 | placeholder="请输入客户需求" |
348 | - // fieldProps={{ | |
349 | - // mode: 'multiple', | |
350 | - // }} | |
367 | + valueEnum={requirementsEnum} | |
368 | + fieldProps={{ | |
369 | + mode: 'multiple', | |
370 | + }} | |
351 | 371 | rules={[ |
352 | 372 | { |
353 | 373 | required: true, |
354 | 374 | message: '请输入客户需求', |
355 | - // type: 'array', | |
375 | + type: 'array', | |
356 | 376 | }, |
357 | 377 | ]} |
358 | - request={async () => { | |
359 | - const res = await postServiceConstClientRequirements(); | |
360 | - return enumToSelect(res.data); | |
361 | - }} | |
378 | + // request={async () => { | |
379 | + // const res = await postServiceConstClientRequirements(); | |
380 | + // console.log(res.data, '5656require'); | |
381 | + // return enumToSelect(res.data); | |
382 | + // }} | |
362 | 383 | /> |
363 | 384 | <ProFormSelect |
364 | 385 | name="hasScheme" |
... | ... | @@ -403,7 +424,17 @@ export default ({ optType, record, onFinish }) => { |
403 | 424 | ]} |
404 | 425 | request={async () => { |
405 | 426 | const res = await postServiceConstClientLevels(); |
406 | - return enumToSelect(res.data); | |
427 | + function enumToSelectLevel(data: any) { | |
428 | + const order = [ | |
429 | + 'PRIMARY_CLIENT', | |
430 | + 'SECONDARY_CLIENT', | |
431 | + 'TERTIARY_CLIENT', | |
432 | + ]; | |
433 | + return order.map((key) => { | |
434 | + return { label: data[key], value: key }; | |
435 | + }); | |
436 | + } | |
437 | + return enumToSelectLevel(res.data); | |
407 | 438 | }} |
408 | 439 | /> |
409 | 440 | <ProFormSelect | ... | ... |
src/pages/Client/Client/index.tsx
... | ... | @@ -87,7 +87,7 @@ const columns = [ |
87 | 87 | }, |
88 | 88 | { |
89 | 89 | title: '客户需求', |
90 | - width: 150, | |
90 | + width: 240, | |
91 | 91 | ellipsis: true, |
92 | 92 | dataIndex: 'requirementsText', |
93 | 93 | hideInSearch: true, |
... | ... | @@ -99,6 +99,12 @@ const columns = [ |
99 | 99 | hideInTable: true, |
100 | 100 | request: async () => { |
101 | 101 | const res = await postServiceConstClientRequirements(); |
102 | + // function enumToSelect(data: any) { | |
103 | + // const keys = Object.keys(data); | |
104 | + // return keys.map((value) => { | |
105 | + // return { label: data[value], value: value }; | |
106 | + // }); | |
107 | + // } | |
102 | 108 | return enumToSelect(res.data); |
103 | 109 | }, |
104 | 110 | }, | ... | ... |