Commit ec3390619faf7cdef3711a2362fae1a10f1633f2
1 parent
91b420d8
fix: 修改支付方式
Showing
5 changed files
with
125 additions
and
48 deletions
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 }) => { |
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 }) => { |
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 | /> | ... | ... |