Commit 0f2095b0258920146c27caf562eecfbdb0a867cd

Authored by boyang
1 parent c2051725

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

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 /**
@@ -936,19 +960,26 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -936,19 +960,26 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
936 values.paymentMethod === 'WITHHOLDING_ADVANCE_DEPOSIT' && 960 values.paymentMethod === 'WITHHOLDING_ADVANCE_DEPOSIT' &&
937 values.prepaidUid 961 values.prepaidUid
938 ) { 962 ) {
939 - console.log('5656原始表单数据:', {  
940 - prepaidUid: values.prepaidUid,  
941 - realPrepaidUid: values.realPrepaidUid,  
942 - privatePocket: values.privatePocket,  
943 - });  
944 -  
945 // 从选项值中提取原始UID (不包含索引后缀) 963 // 从选项值中提取原始UID (不包含索引后缀)
946 - const prepaidUidParts = values.prepaidUid.split('_');  
947 - if (prepaidUidParts.length > 0) {  
948 - // 直接使用第一部分作为实际UID值 (不使用realPrepaidUid)  
949 - values.prepaidUid = parseInt(prepaidUidParts[0], 10);  
950 - console.log('5656使用原始UID进行API提交:', values.prepaidUid); 964 + // 检查prepaidUid是否为字符串类型并包含下划线
  965 + if (
  966 + values.prepaidUid &&
  967 + typeof values.prepaidUid === 'string' &&
  968 + values.prepaidUid.includes('_')
  969 + ) {
  970 + const prepaidUidParts = values.prepaidUid.split('_');
  971 + if (prepaidUidParts.length > 0) {
  972 + // 直接使用第一部分作为实际UID值 (不使用realPrepaidUid)
  973 + values.prepaidUid = parseInt(prepaidUidParts[0], 10);
  974 + }
  975 + } else if (
  976 + values.prepaidUid &&
  977 + typeof values.prepaidUid === 'string'
  978 + ) {
  979 + // 处理纯字符串情况 (没有索引后缀)
  980 + values.prepaidUid = parseInt(values.prepaidUid, 10);
951 } 981 }
  982 + // 如果是数字类型,则无需处理
952 983
953 // 确保privatePocket字段被正确设置 984 // 确保privatePocket字段被正确设置
954 // 表单中存储的是字符串'true'或'false',需要转换成布尔值 985 // 表单中存储的是字符串'true'或'false',需要转换成布尔值
@@ -966,8 +997,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -966,8 +997,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
966 }); 997 });
967 } 998 }
968 999
969 - console.log(values, '5656values');  
970 -  
971 //新增 1000 //新增
972 if (optType('add') || optType('copy')) { 1001 if (optType('add') || optType('copy')) {
973 res = await postServiceOrderAddOrder({ data: values }); 1002 res = await postServiceOrderAddOrder({ data: values });
@@ -1796,9 +1825,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => { @@ -1796,9 +1825,6 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1796 showSearch 1825 showSearch
1797 label="预存账号" 1826 label="预存账号"
1798 onChange={async (value: any, option: any) => { 1827 onChange={async (value: any, option: any) => {
1799 - console.log(value, '5656value');  
1800 - console.log(option, '5656option');  
1801 -  
1802 if (!option) { 1828 if (!option) {
1803 form.setFieldValue('prepaidUid', undefined); 1829 form.setFieldValue('prepaidUid', undefined);
1804 form.setFieldValue('privatePocket', false); 1830 form.setFieldValue('privatePocket', false);