hurx 1 kuukausi sitten
vanhempi
sitoutus
9f40885c67
1 muutettua tiedostoa jossa 50 lisäystä ja 16 poistoa
  1. 50 16
      src/views/order/orderAssignment/splitAssignDialog.vue

+ 50 - 16
src/views/order/orderAssignment/splitAssignDialog.vue

@@ -141,20 +141,29 @@
       <!-- 分配目标选择 -->
       <div class="assign-target-section">
         <el-row :gutter="20">
-          <!-- <el-col :span="12">
+          <el-col :span="12">
             <div class="target-input-wrapper">
               <span class="required-mark">*</span>
               <span class="label">分配对象类型:</span>
               <el-select v-model="assignForm.targetType" placeholder="请选择分配对象类型" clearable style="flex: 1" @change="handleTargetTypeChange">
-                <el-option label="SRM供应商" value="srm" />
+                <el-option label="自营" value="zy" />
                 <el-option label="BP伙伴商" value="bp" />
               </el-select>
             </div>
-          </el-col> -->
-          <el-col :span="12">
+          </el-col>
+          <el-col :span="12" v-if="assignForm.targetType === 'zy'">
             <div class="target-input-wrapper">
               <span class="required-mark">*</span>
-              <span class="label">供应商: </span>
+              <span class="label">自营客户: </span>
+              <el-select v-model="assignForm.targetId" :placeholder="'请选择自营客户'" clearable filterable style="flex: 1">
+                <el-option v-for="item in customerList" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
+            </div>
+          </el-col>
+          <el-col :span="12" v-if="assignForm.targetType === 'bp'">
+            <div class="target-input-wrapper">
+              <span class="required-mark">*</span>
+              <span class="label">伙伴商: </span>
               <el-select v-model="assignForm.targetId" :placeholder="'请选择伙伴商'" clearable filterable style="flex: 1">
                 <el-option v-for="item in partnerList" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
@@ -217,6 +226,8 @@
 import { getOrderMain } from '@/api/order/orderMain';
 import { listOrderAssignment } from '@/api/order/orderAssignmentLog';
 import { listPartnerMerchant } from '@/api/partner/merchant';
+import { listCustomerInfo } from '@/api/customer/customerFile/customerInfo';
+
 import { addOrderSplitAssign, addOrderAssignment } from '@/api/order/orderAssignmentLog';
 import { OrderSplitAssignForm, OrderProductAssignRule, OrderAssignmentForm } from '@/api/order/orderAssignmentLog/types';
 
@@ -270,6 +281,9 @@ const cachedPartnerList = ref<any[]>([]);
 
 // 伙伴商列表
 const partnerList = ref<any[]>([]);
+// 自营客户列表
+const customerList = ref<any[]>([]);
+const cachedCustomerList = ref<any[]>([]);
 
 // 标签页
 const activeTab = ref('pending');
@@ -504,17 +518,37 @@ const submitAssign = async () => {
   }
 };
 
-// /** 分配对象类型变化 */
-// const handleTargetTypeChange = () => {
-//   // 切换类型时清空已选择的目标
-//   assignForm.targetId = '';
-
-//   if (assignForm.targetType === 'srm') {
-//     supplierList.value = cachedPartnerList.value;
-//   } else {
-//     // 处理伙伴商等其他情况(目前留空或使用别的缓存)
-//   }
-// };
+/** 加载自营客户数据 */
+const loadCustomerData = async () => {
+  if (cachedCustomerList.value.length > 0) {
+    customerList.value = cachedCustomerList.value;
+    return;
+  }
+  try {
+    const res: any = await listCustomerInfo({ pageNum: 1, pageSize: 1000 });
+    const list = res.rows || res.data || [];
+    cachedCustomerList.value = list.map((item: any) => ({
+      ...item,
+      id: item.id,
+      name: item.customerName
+    }));
+    customerList.value = cachedCustomerList.value;
+  } catch (error) {
+    console.error('获取自营客户列表失败', error);
+  }
+};
+
+/** 分配对象类型变化 */
+const handleTargetTypeChange = () => {
+  // 切换类型时清空已选择的目标
+  assignForm.targetId = '';
+
+  if (assignForm.targetType === 'zy') {
+    loadCustomerData();
+  } else if (assignForm.targetType === 'bp') {
+    partnerList.value = cachedPartnerList.value;
+  }
+};
 
 defineExpose({
   open