Commit 28404b757a633d72aaa5819aa62b4631f5b32418

Authored by 柏杨
1 parent fe98caf8

fix: 修改淘宝选择器

src/pages/Order/OrderList/OrderDrawer.tsx
... ... @@ -437,6 +437,30 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
437 437 if (optType('add')) {
438 438 form.resetFields(['list']);
439 439 }
  440 +
  441 + // 如果是复制操作,检查销售代码是否为淘宝相关代码
  442 + if (optType('copy')) {
  443 + const salesCode = data?.salesCode;
  444 + const isTaobaoSalesCode = [
  445 + 'TB',
  446 + 'TBC',
  447 + 'HCTB',
  448 + '淘宝',
  449 + 'TAOBAO',
  450 + ].includes(salesCode);
  451 +
  452 + if (isTaobaoSalesCode) {
  453 + // 锁定支付渠道和支付方式,但保留原有值
  454 + setPaymentChannelDisabled(true);
  455 + setPaymentMethodDisabled(true);
  456 +
  457 + // 确保控制台日志
  458 + console.log('复制淘宝订单,锁定支付渠道和支付方式:', {
  459 + paymentChannel: data?.paymentChannel,
  460 + paymentMethod: data?.paymentMethod,
  461 + });
  462 + }
  463 + }
440 464 }, [data]);
441 465  
442 466 /**
... ... @@ -1152,37 +1176,61 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1152 1176 autoFillSalesInfo(option);
1153 1177  
1154 1178 // 检查是否是特殊的淘宝销售代码
1155   - const isTaobaoSalesCode = ['TB', 'TBC', 'HCTB', '淘宝'].includes(
1156   - value,
1157   - );
1158   -
1159   - // 清空支付渠道和支付方式
1160   - form.setFieldsValue({
1161   - paymentChannel: undefined,
1162   - paymentMethod: undefined,
1163   - });
1164   -
1165   - // 重置支付渠道和支付方式的禁用状态
1166   - setPaymentChannelDisabled(false);
1167   - setPaymentMethodDisabled(false);
1168   -
1169   - if (isTaobaoSalesCode) {
1170   - // 设置支付渠道为淘宝并锁定
1171   - form.setFieldsValue({ paymentChannel: 'TAOBAO' });
  1179 + const isTaobaoSalesCode = [
  1180 + 'TB',
  1181 + 'TBC',
  1182 + 'HCTB',
  1183 + '淘宝',
  1184 + 'TAOBAO',
  1185 + ].includes(value);
  1186 +
  1187 + // 如果是复制操作且是淘宝销售代码,锁定支付方式和支付渠道,不清空值
  1188 + if (optType('copy') && isTaobaoSalesCode) {
  1189 + // 保留当前的支付渠道和支付方式值,只锁定选择器
1172 1190 setPaymentChannelDisabled(true);
1173   -
1174   - // 支付方式默认锁定为预付
1175   - form.setFieldsValue({ paymentMethod: 'PAYMENT_IN_ADVANCE' });
1176   - setPaymentMethod('PAYMENT_IN_ADVANCE');
1177 1191 setPaymentMethodDisabled(true);
1178   - } else {
1179   - // 如果不是淘宝销售代码,解除锁定
1180   - setPaymentChannelDisabled(false);
1181   - // 只有当前支付渠道不是扣预存时才解除付款方式的锁定
  1192 +
  1193 + // 如果当前没有值,则设置默认值
1182 1194 const currentPaymentChannel =
1183 1195 form.getFieldValue('paymentChannel');
1184   - if (currentPaymentChannel !== 'BALANCE') {
1185   - setPaymentMethodDisabled(false);
  1196 + if (!currentPaymentChannel) {
  1197 + form.setFieldsValue({ paymentChannel: 'TAOBAO' });
  1198 + }
  1199 +
  1200 + const currentPaymentMethod = form.getFieldValue('paymentMethod');
  1201 + if (!currentPaymentMethod) {
  1202 + form.setFieldsValue({ paymentMethod: 'PAYMENT_IN_ADVANCE' });
  1203 + setPaymentMethod('PAYMENT_IN_ADVANCE');
  1204 + }
  1205 + } else if (!optType('copy')) {
  1206 + // 非复制操作时,清空支付渠道和支付方式
  1207 + form.setFieldsValue({
  1208 + paymentChannel: undefined,
  1209 + paymentMethod: undefined,
  1210 + });
  1211 +
  1212 + // 重置支付渠道和支付方式的禁用状态
  1213 + setPaymentChannelDisabled(false);
  1214 + setPaymentMethodDisabled(false);
  1215 +
  1216 + if (isTaobaoSalesCode) {
  1217 + // 设置支付渠道为淘宝并锁定
  1218 + form.setFieldsValue({ paymentChannel: 'TAOBAO' });
  1219 + setPaymentChannelDisabled(true);
  1220 +
  1221 + // 支付方式默认锁定为预付
  1222 + form.setFieldsValue({ paymentMethod: 'PAYMENT_IN_ADVANCE' });
  1223 + setPaymentMethod('PAYMENT_IN_ADVANCE');
  1224 + setPaymentMethodDisabled(true);
  1225 + } else {
  1226 + // 如果不是淘宝销售代码,解除锁定
  1227 + setPaymentChannelDisabled(false);
  1228 + // 只有当前支付渠道不是扣预存时才解除付款方式的锁定
  1229 + const currentPaymentChannel =
  1230 + form.getFieldValue('paymentChannel');
  1231 + if (currentPaymentChannel !== 'BALANCE') {
  1232 + setPaymentMethodDisabled(false);
  1233 + }
1186 1234 }
1187 1235 }
1188 1236 }}
... ... @@ -1863,6 +1911,9 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1863 1911 })}
1864 1912 rules={[{ required: true, message: '支付渠道必填' }]}
1865 1913 disabled={optType('after-sales-check') || paymentChannelDisabled}
  1914 + fieldProps={{
  1915 + style: paymentChannelDisabled ? { backgroundColor: '#f5f5f5' } : {},
  1916 + }}
1866 1917 onChange={(val: any) => {
1867 1918 // 根据支付渠道设置不同的支付方式
1868 1919 if (val === 'BALANCE') {
... ... @@ -1927,6 +1978,9 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1927 1978 ]}
1928 1979 rules={[{ required: true, message: '支付方式必填' }]}
1929 1980 disabled={optType('after-sales-check') || paymentMethodDisabled}
  1981 + fieldProps={{
  1982 + style: paymentMethodDisabled ? { backgroundColor: '#f5f5f5' } : {},
  1983 + }}
1930 1984 />
1931 1985 {/* 隐藏字段用于存储真实UID和privatePocket标志 */}
1932 1986 <ProFormText name="realPrepaidUid" hidden />
... ...