|
@@ -26,20 +26,20 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="客户名称" prop="customerId">
|
|
|
|
|
|
|
+ <el-form-item label="伙伴商名称" prop="customerId">
|
|
|
<el-select
|
|
<el-select
|
|
|
v-model="form.customerId"
|
|
v-model="form.customerId"
|
|
|
filterable
|
|
filterable
|
|
|
remote
|
|
remote
|
|
|
reserve-keyword
|
|
reserve-keyword
|
|
|
- placeholder="请输入客户名称"
|
|
|
|
|
- :remote-method="remoteSearchCustomer"
|
|
|
|
|
|
|
+ placeholder="请输入伙伴商名称"
|
|
|
|
|
+ :remote-method="remoteSearchPartner"
|
|
|
:loading="customerLoading"
|
|
:loading="customerLoading"
|
|
|
clearable
|
|
clearable
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
- @change="handleCustomerChange"
|
|
|
|
|
|
|
+ @change="handlePartnerChange"
|
|
|
>
|
|
>
|
|
|
- <el-option v-for="item in customerOptions" :key="item.id" :label="item.customerName" :value="item.id" />
|
|
|
|
|
|
|
+ <el-option v-for="item in partnerOptions" :key="item.id" :label="item.partnerName" :value="item.id" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
@@ -114,7 +114,7 @@
|
|
|
<el-table :data="form.detailList" border style="width: 100%; margin-bottom: 20px">
|
|
<el-table :data="form.detailList" border style="width: 100%; margin-bottom: 20px">
|
|
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
|
|
<el-table-column prop="orderNo" label="订单编号" min-width="150" align="center" />
|
|
<el-table-column prop="orderNo" label="订单编号" min-width="150" align="center" />
|
|
|
- <el-table-column prop="deliverCode" label="发货单编号" min-width="150" align="center" />
|
|
|
|
|
|
|
+ <!-- <el-table-column prop="deliverCode" label="发货单编号" min-width="150" align="center" /> -->
|
|
|
<el-table-column prop="amount" label="金额" min-width="120" align="center" />
|
|
<el-table-column prop="amount" label="金额" min-width="120" align="center" />
|
|
|
<el-table-column prop="orderTime" label="下单日期" min-width="120" align="center" />
|
|
<el-table-column prop="orderTime" label="下单日期" min-width="120" align="center" />
|
|
|
<el-table-column prop="userName" label="下单人" min-width="100" align="center" />
|
|
<el-table-column prop="userName" label="下单人" min-width="100" align="center" />
|
|
@@ -244,6 +244,8 @@ import { StatementOrderForm } from '@/api/bill/statementOrder/types';
|
|
|
import { StatementDetailForm } from '@/api/bill/statementDetail/types';
|
|
import { StatementDetailForm } from '@/api/bill/statementDetail/types';
|
|
|
import { getListBycustomerName } from '@/api/customer/customerFile/customerInfo';
|
|
import { getListBycustomerName } from '@/api/customer/customerFile/customerInfo';
|
|
|
import { CustomerInfoVO } from '@/api/customer/customerFile/customerInfo/types';
|
|
import { CustomerInfoVO } from '@/api/customer/customerFile/customerInfo/types';
|
|
|
|
|
+import { getListByPartnerName } from '@/api/partner/merchant';
|
|
|
|
|
+import { PartnerMerchantVO } from '@/api/partner/merchant/types';
|
|
|
import { listOrderMain, getOrderMain } from '@/api/order/orderMain';
|
|
import { listOrderMain, getOrderMain } from '@/api/order/orderMain';
|
|
|
import { OrderMainVO, OrderMainQuery, OrderMainForm } from '@/api/order/orderMain/types';
|
|
import { OrderMainVO, OrderMainQuery, OrderMainForm } from '@/api/order/orderMain/types';
|
|
|
import { OrderDeliverVO } from '@/api/order/orderDeliver/types';
|
|
import { OrderDeliverVO } from '@/api/order/orderDeliver/types';
|
|
@@ -319,11 +321,13 @@ const isEdit = ref(false); // 是否为编辑模式
|
|
|
|
|
|
|
|
const customerLoading = ref(false);
|
|
const customerLoading = ref(false);
|
|
|
const customerOptions = ref<CustomerInfoVO[]>([]);
|
|
const customerOptions = ref<CustomerInfoVO[]>([]);
|
|
|
|
|
+const partnerOptions = ref<PartnerMerchantVO[]>([]);
|
|
|
const staffOptions = ref<ComStaffVO[]>([]);
|
|
const staffOptions = ref<ComStaffVO[]>([]);
|
|
|
const orderMainDrawerRef = ref<any>();
|
|
const orderMainDrawerRef = ref<any>();
|
|
|
const uploadAction = import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload';
|
|
const uploadAction = import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload';
|
|
|
const currentSelectedOrders = ref<OrderDeliverVO[]>([]);
|
|
const currentSelectedOrders = ref<OrderDeliverVO[]>([]);
|
|
|
-const preloadedOrders = ref<OrderDeliverVO[]>([]); // 预加载的订单列表
|
|
|
|
|
|
|
+const preloadedOrders = ref<OrderDeliverVO[]>([]); // 预加载的发货单列表
|
|
|
|
|
+const preloadedOrderList = ref<OrderMainVO[]>([]); // 预加载的发货单列表
|
|
|
const productTableRef = ref<any>(); // 商品表格引用
|
|
const productTableRef = ref<any>(); // 商品表格引用
|
|
|
const selectedProductIds = ref<Set<string>>(new Set()); // 选中的商品ID集合
|
|
const selectedProductIds = ref<Set<string>>(new Set()); // 选中的商品ID集合
|
|
|
const isProductSelectMode = ref(false); // 是否处于商品选择模式
|
|
const isProductSelectMode = ref(false); // 是否处于商品选择模式
|
|
@@ -436,8 +440,10 @@ const reset = () => {
|
|
|
productPage.pageSize = 10;
|
|
productPage.pageSize = 10;
|
|
|
productPage.total = 0;
|
|
productPage.total = 0;
|
|
|
customerOptions.value = [];
|
|
customerOptions.value = [];
|
|
|
|
|
+ partnerOptions.value = [];
|
|
|
currentSelectedOrders.value = [];
|
|
currentSelectedOrders.value = [];
|
|
|
preloadedOrders.value = [];
|
|
preloadedOrders.value = [];
|
|
|
|
|
+ preloadedOrderList.value = [];
|
|
|
preloadedTotal.value = 0;
|
|
preloadedTotal.value = 0;
|
|
|
formRef.value?.clearValidate();
|
|
formRef.value?.clearValidate();
|
|
|
};
|
|
};
|
|
@@ -473,6 +479,43 @@ const handleCustomerChange = async (customerId: string | number) => {
|
|
|
form.value.customerName = undefined;
|
|
form.value.customerName = undefined;
|
|
|
form.value.customerNo = undefined;
|
|
form.value.customerNo = undefined;
|
|
|
preloadedOrders.value = [];
|
|
preloadedOrders.value = [];
|
|
|
|
|
+ preloadedOrderList.value = [];
|
|
|
|
|
+ preloadedTotal.value = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+/** 远程搜索伙伴商 */
|
|
|
|
|
+const remoteSearchPartner = async (query: string) => {
|
|
|
|
|
+ if (query) {
|
|
|
|
|
+ customerLoading.value = true;
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await getListByPartnerName(query);
|
|
|
|
|
+ partnerOptions.value = res.data;
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error(error);
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ customerLoading.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ customerOptions.value = [];
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+/** 伙伴商变更 */
|
|
|
|
|
+const handlePartnerChange = async (customerId: string | number) => {
|
|
|
|
|
+ if (customerId) {
|
|
|
|
|
+ const partner = partnerOptions.value.find((item) => item.id === customerId);
|
|
|
|
|
+ if (partner) {
|
|
|
|
|
+ form.value.customerName = partner.partnerName;
|
|
|
|
|
+ form.value.customerNo = partner.partnerNo;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 预加载订单列表
|
|
|
|
|
+ await preloadOrders(customerId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ form.value.customerName = undefined;
|
|
|
|
|
+ form.value.customerNo = undefined;
|
|
|
|
|
+ preloadedOrders.value = [];
|
|
|
|
|
+ preloadedOrderList.value = [];
|
|
|
preloadedTotal.value = 0;
|
|
preloadedTotal.value = 0;
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -480,12 +523,19 @@ const handleCustomerChange = async (customerId: string | number) => {
|
|
|
/** 预加载订单列表 */
|
|
/** 预加载订单列表 */
|
|
|
const preloadOrders = async (customerId: string | number) => {
|
|
const preloadOrders = async (customerId: string | number) => {
|
|
|
try {
|
|
try {
|
|
|
- const res = await getCustomerDeliverOrders(customerId);
|
|
|
|
|
- preloadedOrders.value = res.rows || [];
|
|
|
|
|
|
|
+ const query: any = {
|
|
|
|
|
+ assigneeId: customerId,
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+ pageSize: 1000,
|
|
|
|
|
+ returnedStatus: '2',
|
|
|
|
|
+ assigneeType: 'bp'
|
|
|
|
|
+ };
|
|
|
|
|
+ const res = await listOrderMain(query);
|
|
|
|
|
+ preloadedOrderList.value = res.rows || [];
|
|
|
preloadedTotal.value = res.total || 0;
|
|
preloadedTotal.value = res.total || 0;
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.error('预加载订单列表失败:', error);
|
|
console.error('预加载订单列表失败:', error);
|
|
|
- preloadedOrders.value = [];
|
|
|
|
|
|
|
+ preloadedOrderList.value = [];
|
|
|
preloadedTotal.value = 0;
|
|
preloadedTotal.value = 0;
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
@@ -551,7 +601,7 @@ const handleOrderSelected = (data: any) => {
|
|
|
const detail: any = {
|
|
const detail: any = {
|
|
|
id: undefined,
|
|
id: undefined,
|
|
|
statementOrderId: undefined,
|
|
statementOrderId: undefined,
|
|
|
- orderNo: order.orderCode,
|
|
|
|
|
|
|
+ orderNo: order.orderNo,
|
|
|
deliverCode: order.deliverCode || '',
|
|
deliverCode: order.deliverCode || '',
|
|
|
orderTime: order.orderTime || '',
|
|
orderTime: order.orderTime || '',
|
|
|
amount: order.totalAmount,
|
|
amount: order.totalAmount,
|
|
@@ -606,6 +656,7 @@ const handleAddDetail = () => {
|
|
|
currentSelectedOrders.value,
|
|
currentSelectedOrders.value,
|
|
|
form.value.productList,
|
|
form.value.productList,
|
|
|
preloadedOrders.value,
|
|
preloadedOrders.value,
|
|
|
|
|
+ preloadedOrderList.value,
|
|
|
preloadedTotal.value
|
|
preloadedTotal.value
|
|
|
);
|
|
);
|
|
|
};
|
|
};
|