Commit d91e16c7481cc854e392acf23a05206c676d07f0

Authored by boyang
2 parents 9dfbf7be 0f2095b0

Merge branch 'bugfix-250603' into 'master'

fix: 修改预存账号选择器bug



See merge request !48
src/pages/Order/OrderList/OrderDrawer.tsx
@@ -248,6 +248,30 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -248,6 +248,30 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
248 248
249 console.log(newAccountOptions); 249 console.log(newAccountOptions);
250 setAccountOptions(newAccountOptions); 250 setAccountOptions(newAccountOptions);
  251 +
  252 + // 如果privatePocket为true且有隐私钱包选项,自动选择隐私钱包
  253 + if (copyData.privatePocket === true || copyData.privatePocket === 'true') {
  254 + console.log('检测到privatePocket为true,尝试自动选择隐私钱包');
  255 +
  256 + // 查找隐私钱包选项
  257 + const privacyWalletOption = newAccountOptions.find(
  258 + (option) => option.institution === '隐私钱包',
  259 + );
  260 +
  261 + if (privacyWalletOption) {
  262 + // 找到了隐私钱包选项,获取其索引
  263 + const index = newAccountOptions.indexOf(privacyWalletOption);
  264 + // 构造包含索引的value值 (与ProFormSelect的options映射保持一致)
  265 + const valueWithIndex = `${privacyWalletOption.value}_${index}`;
  266 +
  267 + // 设置表单字段值
  268 + form.setFieldValue('prepaidUid', valueWithIndex);
  269 + form.setFieldValue('realPrepaidUid', privacyWalletOption.uid);
  270 + form.setFieldValue('privatePocket', 'true');
  271 + } else {
  272 + console.log('未找到可用的隐私钱包选项');
  273 + }
  274 + }
251 } 275 }
252 276
253 /** 277 /**
@@ -938,19 +962,26 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -938,19 +962,26 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
938 values.paymentMethod === 'WITHHOLDING_ADVANCE_DEPOSIT' && 962 values.paymentMethod === 'WITHHOLDING_ADVANCE_DEPOSIT' &&
939 values.prepaidUid 963 values.prepaidUid
940 ) { 964 ) {
941 - console.log('5656原始表单数据:', {  
942 - prepaidUid: values.prepaidUid,  
943 - realPrepaidUid: values.realPrepaidUid,  
944 - privatePocket: values.privatePocket,  
945 - });  
946 -  
947 // 从选项值中提取原始UID (不包含索引后缀) 965 // 从选项值中提取原始UID (不包含索引后缀)
948 - const prepaidUidParts = values.prepaidUid.split('_');  
949 - if (prepaidUidParts.length > 0) {  
950 - // 直接使用第一部分作为实际UID值 (不使用realPrepaidUid)  
951 - values.prepaidUid = parseInt(prepaidUidParts[0], 10);  
952 - console.log('5656使用原始UID进行API提交:', values.prepaidUid); 966 + // 检查prepaidUid是否为字符串类型并包含下划线
  967 + if (
  968 + values.prepaidUid &&
  969 + typeof values.prepaidUid === 'string' &&
  970 + values.prepaidUid.includes('_')
  971 + ) {
  972 + const prepaidUidParts = values.prepaidUid.split('_');
  973 + if (prepaidUidParts.length > 0) {
  974 + // 直接使用第一部分作为实际UID值 (不使用realPrepaidUid)
  975 + values.prepaidUid = parseInt(prepaidUidParts[0], 10);
  976 + }
  977 + } else if (
  978 + values.prepaidUid &&
  979 + typeof values.prepaidUid === 'string'
  980 + ) {
  981 + // 处理纯字符串情况 (没有索引后缀)
  982 + values.prepaidUid = parseInt(values.prepaidUid, 10);
953 } 983 }
  984 + // 如果是数字类型,则无需处理
954 985
955 // 确保privatePocket字段被正确设置 986 // 确保privatePocket字段被正确设置
956 // 表单中存储的是字符串'true'或'false',需要转换成布尔值 987 // 表单中存储的是字符串'true'或'false',需要转换成布尔值
@@ -968,8 +999,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -968,8 +999,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
968 }); 999 });
969 } 1000 }
970 1001
971 - console.log(values, '5656values');  
972 -  
973 //新增 1002 //新增
974 if (optType('add') || optType('copy')) { 1003 if (optType('add') || optType('copy')) {
975 res = await postServiceOrderAddOrder({ data: values }); 1004 res = await postServiceOrderAddOrder({ data: values });
@@ -1798,9 +1827,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -1798,9 +1827,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1798 showSearch 1827 showSearch
1799 label="预存账号" 1828 label="预存账号"
1800 onChange={async (value: any, option: any) => { 1829 onChange={async (value: any, option: any) => {
1801 - console.log(value, '5656value');  
1802 - console.log(option, '5656option');  
1803 -  
1804 if (!option) { 1830 if (!option) {
1805 form.setFieldValue('prepaidUid', undefined); 1831 form.setFieldValue('prepaidUid', undefined);
1806 form.setFieldValue('privatePocket', false); 1832 form.setFieldValue('privatePocket', false);