diff --git a/.changeset/tall-windows-cross.md b/.changeset/tall-windows-cross.md new file mode 100644 index 000000000..34a949aa2 --- /dev/null +++ b/.changeset/tall-windows-cross.md @@ -0,0 +1,5 @@ +--- +"@hera/plugin-rental": patch +--- + +费用范围没有考虑直发单,暂时简单处理 diff --git a/packages/plugins/@hera/plugin-rental/src/client/custom-components/RecordFeeScope.tsx b/packages/plugins/@hera/plugin-rental/src/client/custom-components/RecordFeeScope.tsx index ad7509359..515beb734 100644 --- a/packages/plugins/@hera/plugin-rental/src/client/custom-components/RecordFeeScope.tsx +++ b/packages/plugins/@hera/plugin-rental/src/client/custom-components/RecordFeeScope.tsx @@ -13,9 +13,36 @@ export const RecordFeeScope = observer(() => { const path: any = field.path.entire; const fieldPath = path?.replace(`.${fieldSchema.name}`, ''); const item = form.getValuesIn(field.path.slice(0, -2).entire); - const { data, loading } = useFeeItems(item.product?.category_id, form.values.contract_plan?.id); + let _loading = false; + let contractLoading = false; + const data = { + data: [], + }; + if (form.values.record_category === '1' || form.values.record_category === '0') { + let _in = [], + _out = []; + const { data: inData, loading: inLoading } = useFeeItems( + item.product?.category_id, + form.values.in_contract_plan?.id, + ); + _in = inData?.data || []; + contractLoading = contractLoading || inLoading; + if (form.values.record_category === '1') { + const { data: outData, loading: outLoading } = useFeeItems( + item.product?.category_id, + form.values.out_contract_plan?.id, + ); + _out = outData?.data || []; + contractLoading = contractLoading || outLoading; + } + data.data = [..._in, ..._out]; + } else { + const { data: origin, loading } = useFeeItems(item.product?.category_id, form.values.contract_plan?.id); + data.data = origin?.data; + _loading = _loading || loading; + } let result = []; - if (data?.data?.length > 0) { + if (data.data?.length > 0) { const items = data.data as { products: { category_id: Number }[]; fee_items: { fee_product_id: Number }[]; @@ -29,7 +56,12 @@ export const RecordFeeScope = observer(() => { form.setValuesIn(fieldPath, result); }, [result, form, fieldPath]); - return loading ? : <>; + return ((form.values.record_category === '1' || form.values.record_category === '0') && contractLoading) || + _loading ? ( + + ) : ( + <> + ); }) as CustomFC; RecordFeeScope.displayName = 'RecordFeeScope';