Commit ec3390619faf7cdef3711a2362fae1a10f1633f2

Authored by 柏杨
1 parent 91b420d8

fix: 修改支付方式

src/pages/Order/FeedBack/OrderDrawer.tsx
... ... @@ -1492,7 +1492,19 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1492 1492 onChange={(val: any) => {
1493 1493 setPaymentMethod(val);
1494 1494 }}
1495   - options={enumToSelect(PAYMENT_METHOD_OPTIONS)}
  1495 + options={(() => {
  1496 + // 使用Set记录已经处理过的选项值,避免重复
  1497 + const processedValues = new Set();
  1498 + const finalOptions = [];
  1499 +
  1500 + // 处理可选项
  1501 + enumToSelect(PAYMENT_METHOD_OPTIONS).forEach((option) => {
  1502 + finalOptions.push(option);
  1503 + processedValues.add(option.value);
  1504 + });
  1505 +
  1506 + return finalOptions;
  1507 + })()}
1496 1508 rules={[{ required: true, message: '支付方式必填' }]}
1497 1509 disabled={optType('after-sales-check')}
1498 1510 />
... ...
src/pages/Order/Order/components/OrderDrawer.tsx
... ... @@ -1501,7 +1501,19 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1501 1501 onChange={(val: any) => {
1502 1502 setPaymentMethod(val);
1503 1503 }}
1504   - options={enumToSelect(PAYMENT_METHOD_OPTIONS)}
  1504 + options={(() => {
  1505 + // 使用Set记录已经处理过的选项值,避免重复
  1506 + const processedValues = new Set();
  1507 + const finalOptions = [];
  1508 +
  1509 + // 处理可选项
  1510 + enumToSelect(PAYMENT_METHOD_OPTIONS).forEach((option) => {
  1511 + finalOptions.push(option);
  1512 + processedValues.add(option.value);
  1513 + });
  1514 +
  1515 + return finalOptions;
  1516 + })()}
1505 1517 rules={[{ required: true, message: '支付方式必填' }]}
1506 1518 disabled={optType('after-sales-check')}
1507 1519 />
... ...
src/pages/Order/OrderList/OrderDrawer.tsx
... ... @@ -1904,45 +1904,63 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1904 1904 onChange={(val: any) => {
1905 1905 setPaymentMethod(val);
1906 1906 }}
1907   - options={[
1908   - // 默认可选项
1909   - ...enumToSelect(PAYMENT_METHOD_OPTIONS_4_ADD).map((option) => {
  1907 + options={(() => {
  1908 + // 使用Set记录已经处理过的选项值,避免重复
  1909 + const processedValues = new Set();
  1910 + const finalOptions = [];
  1911 +
  1912 + // 先处理默认可选项
  1913 + enumToSelect(PAYMENT_METHOD_OPTIONS_4_ADD).forEach((option) => {
1910 1914 // 将淘宝选项设置为禁用状态,使其无法手动选择
1911 1915 if (option.value === 'PAYMENT_IN_TAOBAO') {
1912   - return { ...option, disabled: true };
  1916 + finalOptions.push({ ...option, disabled: true });
  1917 + } else {
  1918 + finalOptions.push(option);
1913 1919 }
1914   - return option;
1915   - }),
1916   - // 强制禁用项
1917   - { label: '未付款', value: 'UNPAID', disabled: true },
1918   - {
1919   - label: '淘宝订单已付款',
1920   - value: 'TAOBAO_ORDER_HAS_BEEN_PAID',
1921   - disabled: true,
1922   - },
1923   - {
1924   - label: '官网已付',
1925   - value: 'OFFICIAL_WEBSITE_ORDER_HAS_BEEN_PAID',
1926   - disabled: true,
1927   - },
1928   - {
1929   - label: '淘宝',
1930   - value: 'PAYMENT_IN_TAOBAO',
1931   - disabled: true,
1932   - },
1933   - {
1934   - label: '预付',
1935   - value: 'WITHHOLDING_ADVANCE_DEPOSIT',
1936   - disabled: true,
1937   - },
1938   - { label: '平台结算', value: 'PLATFORM_SETTLEMENT', disabled: true },
1939   - { label: '已回款', value: 'PAYMENT_RECEIPT', disabled: true },
1940   - {
1941   - label: '预存款无需发货',
1942   - value: 'PREPAID_NO_NEED_SEND',
1943   - disabled: true,
1944   - },
1945   - ]}
  1920 + processedValues.add(option.value);
  1921 + });
  1922 +
  1923 + // 添加强制禁用项,但只添加尚未存在的选项
  1924 + const disabledOptions = [
  1925 + { label: '未付款', value: 'UNPAID', disabled: true },
  1926 + {
  1927 + label: '淘宝订单已付款',
  1928 + value: 'TAOBAO_ORDER_HAS_BEEN_PAID',
  1929 + disabled: true,
  1930 + },
  1931 + {
  1932 + label: '官网已付',
  1933 + value: 'OFFICIAL_WEBSITE_ORDER_HAS_BEEN_PAID',
  1934 + disabled: true,
  1935 + },
  1936 + { label: '淘宝', value: 'PAYMENT_IN_TAOBAO', disabled: true },
  1937 + {
  1938 + label: '预付',
  1939 + value: 'WITHHOLDING_ADVANCE_DEPOSIT',
  1940 + disabled: true,
  1941 + },
  1942 + {
  1943 + label: '平台结算',
  1944 + value: 'PLATFORM_SETTLEMENT',
  1945 + disabled: true,
  1946 + },
  1947 + { label: '已回款', value: 'PAYMENT_RECEIPT', disabled: true },
  1948 + {
  1949 + label: '预存款无需发货',
  1950 + value: 'PREPAID_NO_NEED_SEND',
  1951 + disabled: true,
  1952 + },
  1953 + ];
  1954 +
  1955 + disabledOptions.forEach((option) => {
  1956 + if (!processedValues.has(option.value)) {
  1957 + finalOptions.push(option);
  1958 + processedValues.add(option.value);
  1959 + }
  1960 + });
  1961 +
  1962 + return finalOptions;
  1963 + })()}
1946 1964 rules={[{ required: true, message: '支付方式必填' }]}
1947 1965 disabled={optType('after-sales-check') || paymentMethodDisabled}
1948 1966 fieldProps={{
... ... @@ -1955,13 +1973,31 @@ export default ({ onClose, data, subOrders, orderOptType }) => {
1955 1973 width="lg"
1956 1974 key="paymentChannel"
1957 1975 label="支付渠道"
1958   - options={enumToSelect(PAYMENT_CHANNEL_OPTIONS).map((option) => {
1959   - // 将淘宝选项设置为禁用状态,使其无法手动选择
1960   - if (option.value === 'TAOBAO') {
1961   - return { ...option, disabled: true };
1962   - }
1963   - return option;
1964   - })}
  1976 + options={(() => {
  1977 + // 获取当前支付方式
  1978 + const currentPaymentMethod =
  1979 + paymentMethod || form.getFieldValue('paymentMethod');
  1980 +
  1981 + return enumToSelect(PAYMENT_CHANNEL_OPTIONS).map((option) => {
  1982 + // 将淘宝选项设置为禁用状态,使其无法手动选择
  1983 + if (option.value === 'TAOBAO') {
  1984 + return { ...option, disabled: true };
  1985 + }
  1986 +
  1987 + // 如果选择了"预存款无需发货",禁用"平台结算"和"官网已付"选项
  1988 + if (currentPaymentMethod === 'PREPAID_NO_NEED_SEND') {
  1989 + if (
  1990 + option.value === 'PLATFORM' ||
  1991 + option.value === 'OFFICIAL_WEBSITE' ||
  1992 + option.value === 'BALANCE'
  1993 + ) {
  1994 + return { ...option, disabled: true };
  1995 + }
  1996 + }
  1997 +
  1998 + return option;
  1999 + });
  2000 + })()}
1965 2001 rules={[{ required: true, message: '支付渠道必填' }]}
1966 2002 disabled={optType('after-sales-check') || paymentChannelDisabled}
1967 2003 fieldProps={{
... ...
src/pages/Order/OrderList/OrderList.tsx
... ... @@ -2752,7 +2752,7 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => {
2752 2752 <div>
2753 2753 <span className="text-[#8C8C8C]">已回款金额:¥</span>
2754 2754 <span className="text-slate-700">
2755   - {record.payedMoney || '-'}
  2755 + {record.payedMoney || '0'}
2756 2756 </span>
2757 2757 </div>
2758 2758 <Divider type="vertical" />
... ... @@ -2761,7 +2761,7 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) =&gt; {
2761 2761 <div>
2762 2762 <span className="text-[#8C8C8C]">未回款金额:¥</span>
2763 2763 <span className="text-slate-700">
2764   - {record.unPayedMoney || '-'}
  2764 + {record.unPayedMoney || '0'}
2765 2765 </span>
2766 2766 </div>
2767 2767 <Divider type="vertical" />
... ...
src/pages/Order/OrderWarning/components/OrderDrawer.tsx
... ... @@ -1611,7 +1611,24 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
1611 1611 onChange={(val: any) => {
1612 1612 setPaymentMethod(val);
1613 1613 }}
1614   - options={enumToSelect(PAYMENT_METHOD_OPTIONS_4_ADD)}
  1614 + options={(() => {
  1615 + // 使用Set记录已经处理过的选项值,避免重复
  1616 + const processedValues = new Set();
  1617 + const finalOptions = [];
  1618 +
  1619 + // 先处理默认可选项
  1620 + enumToSelect(PAYMENT_METHOD_OPTIONS_4_ADD).forEach((option) => {
  1621 + // 将淘宝选项设置为禁用状态,使其无法手动选择
  1622 + if (option.value === 'PAYMENT_IN_TAOBAO') {
  1623 + finalOptions.push({ ...option, disabled: true });
  1624 + } else {
  1625 + finalOptions.push(option);
  1626 + }
  1627 + processedValues.add(option.value);
  1628 + });
  1629 +
  1630 + return finalOptions;
  1631 + })()}
1615 1632 rules={[{ required: true, message: '支付方式必填' }]}
1616 1633 disabled={optType('after-sales-check')}
1617 1634 />
... ...