feat(purchase): 更新采购模块功能和UI细节
- 在成本列表中过滤掉空箱费、纸箱费、运费和草帘费 - 自动添加纸箱费用项到订单成本列表 - 根据装车方式调整步骤导航逻辑 - 优化车辆信息表单,增加单位显示和可选性检查 - 预览页面过滤不显示带空箱和纸箱的成本项 - 优化供应商列表滚动视图样式 - 新增装车方式切换确认逻辑及对话框 - 支持硒砂瓜产品的不同装车方式选择 - 定金和价格输入框添加单位标识 - 提交审核前检查计提费是否为零并提示确认 - 添加运费和草帘费到订单成本列表 - 修复服务接口类型定义中的字段顺序和缺失属性 - 升级应用版本号至 v0.0.33
This commit is contained in:
parent
97681ae969
commit
a79fc0ef9f
@ -157,7 +157,12 @@ export default function CostList(props: {
|
||||
|
||||
{orderCosts.map((orderCost) => {
|
||||
if (type === "MATERIAL_TYPE") {
|
||||
if (orderCost.name === "空箱费" || orderCost.name === "纸箱费") {
|
||||
if (
|
||||
orderCost.name === "空箱费" ||
|
||||
orderCost.name === "纸箱费" ||
|
||||
orderCost.name === "运费" ||
|
||||
orderCost.name === "草帘费"
|
||||
) {
|
||||
return <></>;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ import { View } from "@tarojs/components";
|
||||
import { Icon } from "@/components";
|
||||
import { forwardRef, useEffect, useImperativeHandle, useState } from "react";
|
||||
import { Button, Checkbox, Input, Toast } from "@nutui/nutui-react-taro";
|
||||
import { generateShortId } from "@/utils";
|
||||
import { generateShortId, PurchaseOrderCalculator } from "@/utils";
|
||||
import { EmptyBoxModule } from "@/components/purchase";
|
||||
|
||||
// 定义ref暴露的方法接口
|
||||
@ -21,6 +21,8 @@ export default forwardRef<OrderCostItemRef, IOrderCostItemProps>(
|
||||
function OrderCostItem(props, ref) {
|
||||
const { value, onChange } = props;
|
||||
|
||||
const calculator = new PurchaseOrderCalculator(value as any);
|
||||
|
||||
const {
|
||||
orderId,
|
||||
orderSupplierList,
|
||||
@ -91,6 +93,27 @@ export default forwardRef<OrderCostItemRef, IOrderCostItemProps>(
|
||||
});
|
||||
});
|
||||
|
||||
// 自动把纸箱加进去
|
||||
const boxCostItem = parsedCostTemplate.materialTypeList?.find(
|
||||
(item: any) => item.name === "纸箱",
|
||||
);
|
||||
|
||||
if (boxCostItem) {
|
||||
newOrderCostItemList.push({
|
||||
orderCostItemId: boxCostItem?.orderCostItemId || generateShortId(),
|
||||
orderId: orderId,
|
||||
costItemId: boxCostItem.costItemId,
|
||||
name: boxCostItem.name,
|
||||
price: calculator.getBoxSale(),
|
||||
unit: boxCostItem.unit,
|
||||
selected: true,
|
||||
count: boxCostItem?.count || 1,
|
||||
payerType: boxCostItem?.payerType,
|
||||
type: boxCostItem.type,
|
||||
rule: boxCostItem.rule,
|
||||
});
|
||||
}
|
||||
|
||||
onChange?.({
|
||||
...value,
|
||||
orderCostItemList: newOrderCostItemList,
|
||||
|
||||
@ -336,8 +336,23 @@ export default forwardRef<OrderOptionRef, IOrderOptionProps>(
|
||||
className="flex-1 bg-gray-200 text-gray-700"
|
||||
onClick={() => {
|
||||
if (active > 1) {
|
||||
if (active === 5) {
|
||||
// 获取当前选中的供应商
|
||||
const selectedIndex = orderSupplierList.findIndex(
|
||||
(supplier) => supplier.selected,
|
||||
);
|
||||
if (
|
||||
orderSupplierList[selectedIndex].loadingMode ===
|
||||
"FRAME_WITH_NET"
|
||||
) {
|
||||
setActive(active - 2);
|
||||
} else {
|
||||
setActive(active - 1);
|
||||
}
|
||||
} else {
|
||||
setActive(active - 1);
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
上一步
|
||||
@ -407,9 +422,17 @@ export default forwardRef<OrderOptionRef, IOrderOptionProps>(
|
||||
) {
|
||||
const success = await saveSupplierInfo();
|
||||
if (success) {
|
||||
// 判断装箱方式
|
||||
if (
|
||||
orderSupplierList[selectedIndex].loadingMode ===
|
||||
"FRAME_WITH_NET"
|
||||
) {
|
||||
setActive(active + 2);
|
||||
} else {
|
||||
setActive(active + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
} // 在第四步(包装信息)时进行校验
|
||||
else if (active === 4) {
|
||||
// 获取当前选中的供应商
|
||||
|
||||
@ -782,6 +782,14 @@ export default forwardRef<OrderVehicleRef, IOrderVehicleProps>(
|
||||
onChange={handlePriceChange}
|
||||
onBlur={handlePriceBlur}
|
||||
/>
|
||||
<View
|
||||
className="text-gray-500"
|
||||
style={{
|
||||
padding: `var(--nutui-input-padding)`,
|
||||
}}
|
||||
>
|
||||
元
|
||||
</View>
|
||||
</View>
|
||||
{priceError && (
|
||||
<View className="mt-1 text-xs text-red-500">
|
||||
@ -796,7 +804,7 @@ export default forwardRef<OrderVehicleRef, IOrderVehicleProps>(
|
||||
</View>
|
||||
<Checkbox
|
||||
className={"flex flex-row items-center"}
|
||||
checked={orderVehicle.openStrawCurtain}
|
||||
checked={orderVehicle?.openStrawCurtain}
|
||||
onChange={(checked) => {
|
||||
onChange?.({
|
||||
...value,
|
||||
@ -812,7 +820,7 @@ export default forwardRef<OrderVehicleRef, IOrderVehicleProps>(
|
||||
</View>
|
||||
</Checkbox>
|
||||
</View>
|
||||
{orderVehicle.openStrawCurtain && (
|
||||
{orderVehicle?.openStrawCurtain && (
|
||||
<View
|
||||
className={`flex h-10 w-full items-center rounded-md ${strawCurtainPriceError ? "border-4 border-red-500" : "border-4 border-gray-300"}`}
|
||||
>
|
||||
@ -823,9 +831,17 @@ export default forwardRef<OrderVehicleRef, IOrderVehicleProps>(
|
||||
onChange={handleStrawCurtainPriceChange}
|
||||
onBlur={handleStrawCurtainPriceBlur}
|
||||
/>
|
||||
<View
|
||||
className="text-gray-500"
|
||||
style={{
|
||||
padding: `var(--nutui-input-padding)`,
|
||||
}}
|
||||
>
|
||||
元
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
{strawCurtainPriceError && orderVehicle.openStrawCurtain && (
|
||||
{strawCurtainPriceError && orderVehicle?.openStrawCurtain && (
|
||||
<View className="mt-1 text-xs text-red-500">
|
||||
请输入正确的草帘费用
|
||||
</View>
|
||||
|
||||
@ -368,7 +368,9 @@ export default function PurchasePreview(props: IPurchasePreviewProps) {
|
||||
|
||||
{purchaseOrder.orderCostItemList?.filter(
|
||||
(orderCostItem: BusinessAPI.OrderCostItem) =>
|
||||
orderCostItem.type === "MATERIAL_TYPE",
|
||||
orderCostItem.type === "MATERIAL_TYPE" &&
|
||||
orderCostItem.name !== "带空箱" &&
|
||||
orderCostItem.name !== "纸箱",
|
||||
).length > 0 && (
|
||||
<>
|
||||
<View className="text-sm font-bold">辅料使用明细</View>
|
||||
@ -377,7 +379,9 @@ export default function PurchasePreview(props: IPurchasePreviewProps) {
|
||||
{purchaseOrder.orderCostItemList
|
||||
?.filter(
|
||||
(orderCostItem: BusinessAPI.OrderCostItem) =>
|
||||
orderCostItem.type === "MATERIAL_TYPE",
|
||||
orderCostItem.type === "MATERIAL_TYPE" &&
|
||||
orderCostItem.name !== "带空箱" &&
|
||||
orderCostItem.name !== "纸箱",
|
||||
)
|
||||
.map((orderCostItem) => (
|
||||
<View
|
||||
|
||||
@ -70,7 +70,12 @@ export default function SupplierList(props: ISupplierListProps) {
|
||||
|
||||
return (
|
||||
<View className={"sticky top-12 z-10 bg-[#D1D5DB] p-2.5"}>
|
||||
<ScrollView className={"rounded-xl bg-white shadow-sm"} scrollX>
|
||||
<ScrollView
|
||||
className={
|
||||
"border-primary rounded-lg rounded-xl border-4 bg-white shadow-sm"
|
||||
}
|
||||
scrollX
|
||||
>
|
||||
<View className="flex flex-row">
|
||||
{orderSupplierList?.map((supplierVO: BusinessAPI.OrderSupplier) => (
|
||||
<View
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { Image, View } from "@tarojs/components";
|
||||
import {
|
||||
Button,
|
||||
Dialog,
|
||||
Input,
|
||||
Popup,
|
||||
Radio,
|
||||
@ -123,6 +124,11 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
[key: string]: boolean;
|
||||
}>({});
|
||||
|
||||
// 装车方式切换确认状态
|
||||
const [loadingModeConfirmVisible, setLoadingModeConfirmVisible] =
|
||||
useState(false);
|
||||
const [pendingLoadingMode, setPendingLoadingMode] = useState<string>("");
|
||||
|
||||
// 空磅照片上传处理函数
|
||||
const handleEmptyWeightImgUpload = async () => {
|
||||
await Taro.chooseImage({
|
||||
@ -203,6 +209,49 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
});
|
||||
};
|
||||
|
||||
// 检查是否有包装信息
|
||||
const hasPackageInfo = () => {
|
||||
return (
|
||||
supplierVO.orderPackageList && supplierVO.orderPackageList.length > 0
|
||||
);
|
||||
};
|
||||
|
||||
// 处理装车方式切换
|
||||
const handleLoadingModeChange = (newLoadingMode: string) => {
|
||||
// 如果切换到"搭架子+网垫"且有包装信息,需要确认
|
||||
if (newLoadingMode === "FRAME_WITH_NET" && hasPackageInfo()) {
|
||||
setPendingLoadingMode(newLoadingMode);
|
||||
setLoadingModeConfirmVisible(true);
|
||||
} else {
|
||||
// 直接切换
|
||||
setSupplierVO({
|
||||
...supplierVO,
|
||||
loadingMode: newLoadingMode as any,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 确认切换装车方式并清空包装信息
|
||||
const confirmLoadingModeChange = () => {
|
||||
setLoadingModeConfirmVisible(false);
|
||||
setSupplierVO({
|
||||
...supplierVO,
|
||||
loadingMode: pendingLoadingMode as any,
|
||||
orderPackageList: [], // 清空包装信息
|
||||
});
|
||||
Toast.show("toast", {
|
||||
title: "提示",
|
||||
icon: "success",
|
||||
content: "已切换装车方式并清空包装信息",
|
||||
});
|
||||
};
|
||||
|
||||
// 取消切换装车方式
|
||||
const cancelLoadingModeChange = () => {
|
||||
setLoadingModeConfirmVisible(false);
|
||||
setPendingLoadingMode("");
|
||||
};
|
||||
|
||||
// 将校验方法暴露给父组件
|
||||
useImperativeHandle(ref, () => ({
|
||||
validate,
|
||||
@ -566,27 +615,6 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
|
||||
{isFirst && (
|
||||
<>
|
||||
{/* 装车方式 */}
|
||||
{/*<View className="border-primary rounded-lg border-4 bg-white p-2.5 shadow-sm">*/}
|
||||
{/* <View className={"flex items-center justify-between gap-2.5"}>*/}
|
||||
{/* <View className="text-sm">装车需要纸箱吗?</View>*/}
|
||||
{/* <View className="text-neutral-darkest text-sm font-medium">*/}
|
||||
{/* <Radio.Group*/}
|
||||
{/* direction="horizontal"*/}
|
||||
{/* value={supplierVO.pricingMethod}*/}
|
||||
{/* onChange={(value) => {*/}
|
||||
{/* setSupplierVO({*/}
|
||||
{/* ...supplierVO,*/}
|
||||
{/* pricingMethod: value as any,*/}
|
||||
{/* });*/}
|
||||
{/* }}*/}
|
||||
{/* >*/}
|
||||
{/* <Radio value="BY_GROSS_WEIGHT">需要</Radio>*/}
|
||||
{/* <Radio value="BY_NET_WEIGHT">不需要</Radio>*/}
|
||||
{/* </Radio.Group>*/}
|
||||
{/* </View>*/}
|
||||
{/* </View>*/}
|
||||
{/*</View>*/}
|
||||
<View className="border-primary rounded-lg border-4 bg-white p-2.5 shadow-sm">
|
||||
<View className={"flex items-center justify-between gap-2.5"}>
|
||||
<View className="text-sm">空车过磅时带纸箱了吗?</View>
|
||||
@ -637,6 +665,7 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
|
||||
{productList.length > 0 && (
|
||||
<View className="border-primary rounded-lg border-4 bg-white p-2.5 shadow-sm">
|
||||
<View className={"flex flex-col gap-2.5"}>
|
||||
<View className={"flex items-center justify-between gap-2.5"}>
|
||||
<View className="text-sm">装的西瓜品种是?</View>
|
||||
<View className="text-neutral-darkest text-sm font-medium">
|
||||
@ -665,6 +694,10 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
...supplierVO,
|
||||
productId: productVO?.productId,
|
||||
productName: productVO?.name,
|
||||
loadingMode:
|
||||
productVO?.name !== "硒砂瓜"
|
||||
? "BOX_WITH_TAPE"
|
||||
: undefined,
|
||||
});
|
||||
|
||||
changeProduct(productVO);
|
||||
@ -673,7 +706,9 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
}}
|
||||
>
|
||||
<Radio
|
||||
value={supplierVO.productId || productList?.[0].productId}
|
||||
value={
|
||||
supplierVO.productId || productList?.[0].productId
|
||||
}
|
||||
>
|
||||
{supplierVO.productName || productList?.[0].name}
|
||||
</Radio>
|
||||
@ -686,6 +721,41 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
请选择西瓜品种
|
||||
</View>
|
||||
)}
|
||||
{/*装车方式 */}
|
||||
{supplierVO.productName === "硒砂瓜" && (
|
||||
<>
|
||||
<View className="text-neutral-darkest text-sm font-medium">
|
||||
装车方式
|
||||
</View>
|
||||
<View className="flex flex-row gap-4">
|
||||
<View
|
||||
className={`flex flex-1 flex-row items-center justify-center rounded-md py-2 ${
|
||||
supplierVO.loadingMode === "FRAME_WITH_NET"
|
||||
? "bg-blue-100 text-blue-600"
|
||||
: "border border-gray-300"
|
||||
}`}
|
||||
onClick={() => {
|
||||
handleLoadingModeChange("FRAME_WITH_NET");
|
||||
}}
|
||||
>
|
||||
搭架子+网垫
|
||||
</View>
|
||||
<View
|
||||
className={`flex flex-1 flex-row items-center justify-center rounded-md py-2 ${
|
||||
supplierVO.loadingMode === "BOX_WITH_TAPE"
|
||||
? "bg-blue-100 text-blue-600"
|
||||
: "border border-gray-300"
|
||||
}`}
|
||||
onClick={() => {
|
||||
handleLoadingModeChange("BOX_WITH_TAPE");
|
||||
}}
|
||||
>
|
||||
纸箱+胶带+木隔板
|
||||
</View>
|
||||
</View>
|
||||
</>
|
||||
)}
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
</>
|
||||
@ -715,6 +785,7 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
|
||||
{/* 有定金吗,有定金就要填写本车扣多少定金 */}
|
||||
<View className="border-primary rounded-lg border-4 bg-white p-2.5 shadow-sm">
|
||||
<View className={"flex flex-col gap-2.5"}>
|
||||
<View className={"flex items-center justify-between gap-2.5"}>
|
||||
<View className="text-sm">付{supplierVO.name}定金了吗?</View>
|
||||
<View className="text-neutral-darkest text-sm font-medium">
|
||||
@ -753,8 +824,10 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
</View>
|
||||
|
||||
{supplierVO.isDepositPaid === true && (
|
||||
<View className="mt-2.5">
|
||||
<View className="mb-1 text-sm">本车需付多少订金</View>
|
||||
<>
|
||||
<View className="text-neutral-darkest text-sm font-medium">
|
||||
本车需付多少订金
|
||||
</View>
|
||||
<View
|
||||
className={`flex h-10 w-full items-center rounded-md ${depositError[supplierVO.orderSupplierId] ? "border-4 border-red-500" : "border-4 border-gray-300"}`}
|
||||
>
|
||||
@ -795,9 +868,10 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
请输入有效的定金金额(必须大于0)
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
</>
|
||||
)}
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* 采购单价区域 */}
|
||||
<View className="border-primary rounded-lg border-4 bg-white p-2.5 shadow-sm">
|
||||
@ -836,6 +910,14 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
validatePurchasePrice(supplierVO.purchasePrice);
|
||||
}}
|
||||
/>
|
||||
<View
|
||||
className="text-gray-500"
|
||||
style={{
|
||||
padding: `var(--nutui-input-padding)`,
|
||||
}}
|
||||
>
|
||||
元/斤
|
||||
</View>
|
||||
</View>
|
||||
{priceError[supplierVO.orderSupplierId] && (
|
||||
<View className="mt-1 text-xs text-red-500">
|
||||
@ -887,6 +969,14 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
validateEmptyWeight(supplierVO.emptyWeight);
|
||||
}}
|
||||
/>
|
||||
<View
|
||||
className="text-gray-500"
|
||||
style={{
|
||||
padding: `var(--nutui-input-padding)`,
|
||||
}}
|
||||
>
|
||||
kg
|
||||
</View>
|
||||
</View>
|
||||
{emptyWeightError[supplierVO.orderSupplierId] && (
|
||||
<View className="mt-1 text-xs text-red-500">
|
||||
@ -938,6 +1028,14 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
validateTotalWeight(supplierVO.totalWeight);
|
||||
}}
|
||||
/>
|
||||
<View
|
||||
className="text-gray-500"
|
||||
style={{
|
||||
padding: `var(--nutui-input-padding)`,
|
||||
}}
|
||||
>
|
||||
kg
|
||||
</View>
|
||||
</View>
|
||||
{totalWeightError[supplierVO.orderSupplierId] && (
|
||||
<View className="mt-1 text-xs text-red-500">
|
||||
@ -1047,6 +1145,15 @@ export default forwardRef<WeighRef, IWeightProps>(function Weigh(props, ref) {
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* 装车方式切换确认对话框 */}
|
||||
<Dialog
|
||||
visible={loadingModeConfirmVisible}
|
||||
title="装车方式切换确认"
|
||||
content="检测到已经录入包装信息,切换到搭架子+网垫将会清空所有包装信息,是否确认切换?"
|
||||
onCancel={cancelLoadingModeChange}
|
||||
onConfirm={confirmLoadingModeChange}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
});
|
||||
|
||||
@ -43,7 +43,7 @@ export default function DeliveryFormSection(props: {
|
||||
|
||||
useEffect(() => {
|
||||
init(purchaseOrderVO);
|
||||
}, [purchaseOrderVO]);
|
||||
}, [purchaseOrderVO.orderDealer.dealerId]);
|
||||
|
||||
// 更新模板配置
|
||||
const updateTemplateConfig = async (template: any[], data: any) => {
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
// App 相关常量
|
||||
export const APP_VERSION = "v0.0.32";
|
||||
export const APP_VERSION = "v0.0.33";
|
||||
|
||||
@ -303,6 +303,8 @@ export default hocAuth(function Page(props: CommonComponent) {
|
||||
// 暂存和提交审核的Dialog状态
|
||||
const [saveDialogVisible, setSaveDialogVisible] = useState(false);
|
||||
const [submitDialogVisible, setSubmitDialogVisible] = useState(false);
|
||||
const [provisionZeroConfirmVisible, setProvisionZeroConfirmVisible] =
|
||||
useState(false);
|
||||
|
||||
// 控制更多操作的ActionSheet显示状态
|
||||
const [moreActionVisible, setMoreActionVisible] = useState(false);
|
||||
@ -352,9 +354,26 @@ export default hocAuth(function Page(props: CommonComponent) {
|
||||
}
|
||||
};
|
||||
|
||||
// 检查计提费是否为0
|
||||
const checkProvisionFeeZero = () => {
|
||||
const provisionCost = purchaseOrderVO?.orderCostList.find(
|
||||
(item) => item.name === "计提费" && item.type === "OTHER_TYPE",
|
||||
);
|
||||
|
||||
// 如果没有计提费或者计提费金额为0,返回true
|
||||
return !provisionCost || provisionCost.price === 0;
|
||||
};
|
||||
|
||||
// 提交老板审核操作
|
||||
const handleSubmit = () => {
|
||||
// 检查计提费是否为0
|
||||
if (checkProvisionFeeZero()) {
|
||||
// 计提费为0,弹出确认对话框
|
||||
setProvisionZeroConfirmVisible(true);
|
||||
} else {
|
||||
// 计提费不为0,直接弹出提交确认对话框
|
||||
setSubmitDialogVisible(true);
|
||||
}
|
||||
};
|
||||
|
||||
// 确认提交老板审核
|
||||
@ -396,6 +415,17 @@ export default hocAuth(function Page(props: CommonComponent) {
|
||||
}
|
||||
};
|
||||
|
||||
// 确认计提费为0仍继续提交
|
||||
const confirmProvisionZeroSubmit = () => {
|
||||
setProvisionZeroConfirmVisible(false);
|
||||
confirmSubmit();
|
||||
};
|
||||
|
||||
// 取消提交(当计提费为0时)
|
||||
const cancelProvisionZeroSubmit = () => {
|
||||
setProvisionZeroConfirmVisible(false);
|
||||
};
|
||||
|
||||
// 表单校验
|
||||
const validateForm = () => {
|
||||
// 校验销售方
|
||||
@ -490,6 +520,38 @@ export default hocAuth(function Page(props: CommonComponent) {
|
||||
selected: true,
|
||||
});
|
||||
}
|
||||
|
||||
// 加运费
|
||||
if (purchaseOrderVO.orderVehicle.price) {
|
||||
purchaseOrderVO.orderCostList.push({
|
||||
orderCostId: generateShortId(),
|
||||
costId: "",
|
||||
name: "运费",
|
||||
price: purchaseOrderVO.orderVehicle.price,
|
||||
unit: "元",
|
||||
count: 1,
|
||||
type: "OTHER_TYPE",
|
||||
costItemIds: [],
|
||||
principal: "",
|
||||
selected: true,
|
||||
});
|
||||
}
|
||||
|
||||
// 加草帘
|
||||
if (purchaseOrderVO.orderVehicle.openStrawCurtain) {
|
||||
purchaseOrderVO.orderCostList.push({
|
||||
orderCostId: generateShortId(),
|
||||
costId: "",
|
||||
name: "草帘费",
|
||||
price: purchaseOrderVO.orderVehicle.strawCurtainPrice!,
|
||||
unit: "元",
|
||||
count: 1,
|
||||
type: "OTHER_TYPE",
|
||||
costItemIds: [],
|
||||
principal: "",
|
||||
selected: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
setPurchaseOrderVO(purchaseOrderVO);
|
||||
@ -744,6 +806,16 @@ export default hocAuth(function Page(props: CommonComponent) {
|
||||
onConfirm={confirmSave}
|
||||
/>
|
||||
|
||||
{/* 计提费为0确认对话框 */}
|
||||
<Dialog
|
||||
visible={provisionZeroConfirmVisible}
|
||||
title="计提费确认"
|
||||
content="检测到计提费为0,请确认是否需要继续提交给老板审核?"
|
||||
confirmText={"确认并提交"}
|
||||
onCancel={cancelProvisionZeroSubmit}
|
||||
onConfirm={confirmProvisionZeroSubmit}
|
||||
/>
|
||||
|
||||
{/* 提交审核确认对话框 */}
|
||||
<Dialog
|
||||
visible={submitDialogVisible}
|
||||
|
||||
@ -179,15 +179,6 @@ export default hocAuth(function Page(props: CommonComponent) {
|
||||
setStep(purchase.steps[purchaseOrder?.active! - 1]);
|
||||
}, [purchaseOrder?.active]);
|
||||
|
||||
// useEffect(() => {
|
||||
// if (defaultStep) {
|
||||
// setPurchaseOrder((prev) => ({
|
||||
// ...prev!,
|
||||
// active: defaultStep + 1,
|
||||
// }));
|
||||
// }
|
||||
// }, [defaultStep]);
|
||||
|
||||
const setOrderSupplierList = (
|
||||
orderSupplierList: BusinessAPI.OrderSupplier[],
|
||||
) => {
|
||||
|
||||
@ -2022,6 +2022,8 @@ declare namespace BusinessAPI {
|
||||
type LastVehicleNoQry = {
|
||||
/** 状态:1_启用;0_禁用; */
|
||||
status?: boolean;
|
||||
/** 经销商ID */
|
||||
dealerId?: string;
|
||||
};
|
||||
|
||||
type listAgreementParams = {
|
||||
@ -2362,8 +2364,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: AgreementVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseBoxBrandVO = {
|
||||
@ -2371,8 +2373,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: BoxBrandVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseBoxProductVO = {
|
||||
@ -2380,8 +2382,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: BoxProductVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseBoxSpecVO = {
|
||||
@ -2389,8 +2391,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: BoxSpecVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseCompanyPaymentAccountVO = {
|
||||
@ -2398,8 +2400,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: CompanyPaymentAccountVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseCompanyVO = {
|
||||
@ -2407,8 +2409,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: CompanyVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseCostItemVO = {
|
||||
@ -2416,8 +2418,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: CostItemVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseCostVO = {
|
||||
@ -2425,8 +2427,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: CostVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseDealerPaymentAccountVO = {
|
||||
@ -2434,8 +2436,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: DealerPaymentAccountVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseDealerRebateCustomerVO = {
|
||||
@ -2443,8 +2445,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: DealerRebateCustomerVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseDealerVO = {
|
||||
@ -2452,8 +2454,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: DealerVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseDealerWarehouseVO = {
|
||||
@ -2461,8 +2463,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: DealerWarehouseVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseDictionaryVO = {
|
||||
@ -2470,8 +2472,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: DictionaryVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseEmployeeVO = {
|
||||
@ -2479,8 +2481,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: EmployeeVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseGiftBoxVO = {
|
||||
@ -2488,8 +2490,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: GiftBoxVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseMaterialVO = {
|
||||
@ -2497,8 +2499,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: MaterialVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseMenuVO = {
|
||||
@ -2506,8 +2508,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: MenuVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponsePermissionVO = {
|
||||
@ -2515,8 +2517,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: PermissionVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponsePlatformVO = {
|
||||
@ -2524,8 +2526,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: PlatformVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseProductVO = {
|
||||
@ -2533,8 +2535,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: ProductVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponsePurchaseOrderVO = {
|
||||
@ -2542,8 +2544,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: PurchaseOrderVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseRoleVO = {
|
||||
@ -2551,8 +2553,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: RoleVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseShipOrderVO = {
|
||||
@ -2560,8 +2562,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: ShipOrderVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseSupplierVO = {
|
||||
@ -2569,8 +2571,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: SupplierVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseTreeLong = {
|
||||
@ -2578,8 +2580,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: TreeLong[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type MultiResponseUserVO = {
|
||||
@ -2587,8 +2589,8 @@ declare namespace BusinessAPI {
|
||||
errCode?: string;
|
||||
errMessage?: string;
|
||||
data?: UserVO[];
|
||||
notEmpty?: boolean;
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
};
|
||||
|
||||
type OrderCompany = {
|
||||
@ -2648,7 +2650,7 @@ declare namespace BusinessAPI {
|
||||
| "PRODUCTION_TYPE"
|
||||
| "OTHER_TYPE";
|
||||
/** 关联项目id */
|
||||
costItemIds?: number[];
|
||||
costItemIds?: string[];
|
||||
/** 是否选中 */
|
||||
selected: boolean;
|
||||
};
|
||||
@ -2812,6 +2814,8 @@ declare namespace BusinessAPI {
|
||||
purchasePrice: number;
|
||||
/** 箱子类型 */
|
||||
packageUsage: SupplierPackageUsage[];
|
||||
/** 装车模式 1_搭架子+网垫;2_纸箱+胶带+木隔板 */
|
||||
loadingMode?: "FRAME_WITH_NET" | "BOX_WITH_TAPE";
|
||||
/** 销售单价(元/斤) */
|
||||
salePrice: number;
|
||||
/** 报价方式:1_按毛重报价;2_按净重报价; */
|
||||
@ -2891,6 +2895,8 @@ declare namespace BusinessAPI {
|
||||
isDepositPaid?: boolean;
|
||||
/** 定金金额 */
|
||||
depositAmount?: number;
|
||||
/** 装车模式 1_搭架子+网垫;2_纸箱+胶带+木隔板 */
|
||||
loadingMode?: "FRAME_WITH_NET" | "BOX_WITH_TAPE";
|
||||
};
|
||||
|
||||
type OrderSupplierVO = {
|
||||
@ -2918,6 +2924,8 @@ declare namespace BusinessAPI {
|
||||
productId?: string;
|
||||
/** 产品名称 */
|
||||
productName?: string;
|
||||
/** 装车模式 1_搭架子+网垫;2_纸箱+胶带+木隔板 */
|
||||
loadingMode?: "FRAME_WITH_NET" | "BOX_WITH_TAPE";
|
||||
/** 空车重量(kg) */
|
||||
emptyWeight?: number;
|
||||
/** 总重量(kg) */
|
||||
@ -3094,9 +3102,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: AgreementVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseBoxBrandVO = {
|
||||
@ -3107,9 +3115,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: BoxBrandVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseBoxProductVO = {
|
||||
@ -3120,9 +3128,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: BoxProductVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseBoxSpecVO = {
|
||||
@ -3133,9 +3141,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: BoxSpecVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseChannelVO = {
|
||||
@ -3146,9 +3154,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: ChannelVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseCompanyPaymentAccountVO = {
|
||||
@ -3159,9 +3167,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: CompanyPaymentAccountVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseCompanyVO = {
|
||||
@ -3172,9 +3180,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: CompanyVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseCostItemVO = {
|
||||
@ -3185,9 +3193,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: CostItemVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseCostVO = {
|
||||
@ -3198,9 +3206,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: CostVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseDealerPaymentAccountVO = {
|
||||
@ -3211,9 +3219,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: DealerPaymentAccountVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseDealerRebateCustomerVO = {
|
||||
@ -3224,9 +3232,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: DealerRebateCustomerVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseDealerVO = {
|
||||
@ -3237,9 +3245,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: DealerVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseDealerWarehouseVO = {
|
||||
@ -3250,9 +3258,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: DealerWarehouseVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseDictionaryVO = {
|
||||
@ -3263,9 +3271,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: DictionaryVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseEmployeeVO = {
|
||||
@ -3276,9 +3284,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: EmployeeVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseGiftBoxVO = {
|
||||
@ -3289,9 +3297,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: GiftBoxVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseMaterialVO = {
|
||||
@ -3302,9 +3310,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: MaterialVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseOrderSupplierVO = {
|
||||
@ -3315,9 +3323,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: OrderSupplierVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponsePermissionVO = {
|
||||
@ -3328,9 +3336,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: PermissionVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponsePlatformVO = {
|
||||
@ -3341,9 +3349,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: PlatformVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseProductVO = {
|
||||
@ -3354,9 +3362,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: ProductVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponsePurchaseOrderVO = {
|
||||
@ -3367,9 +3375,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: PurchaseOrderVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseRoleVO = {
|
||||
@ -3380,9 +3388,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: RoleVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseShipOrderVO = {
|
||||
@ -3393,9 +3401,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: ShipOrderVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseSupplierVO = {
|
||||
@ -3406,9 +3414,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: SupplierVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type PageResponseUserVO = {
|
||||
@ -3419,9 +3427,9 @@ declare namespace BusinessAPI {
|
||||
pageSize?: number;
|
||||
pageIndex?: number;
|
||||
data?: UserVO[];
|
||||
empty?: boolean;
|
||||
notEmpty?: boolean;
|
||||
totalPages?: number;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
type pageRoleParams = {
|
||||
@ -4919,11 +4927,11 @@ declare namespace BusinessAPI {
|
||||
};
|
||||
|
||||
type TreeLong = {
|
||||
config?: TreeNodeConfig;
|
||||
weight?: any;
|
||||
parentId?: number;
|
||||
name?: { empty?: boolean };
|
||||
id?: number;
|
||||
parentId?: number;
|
||||
config?: TreeNodeConfig;
|
||||
weight?: any;
|
||||
empty?: boolean;
|
||||
};
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user