Ver Fonte

修改客户部门绑定地址

hurx há 2 meses atrás
pai
commit
862415720e

+ 34 - 5
src/views/customer/customerFile/customerInfo/overview/orgStructure.vue

@@ -7,7 +7,7 @@
             <span>企业组织结构信息列表</span>
           </el-col>
           <el-col :span="2" style="text-align: right">
-            <el-button type="primary" plain icon="Plus" @click="handleAdd">新增部门</el-button>
+            <el-button type="primary" plain icon="Plus" @click="handleAdd()">新增部门</el-button>
           </el-col>
         </el-row>
       </template>
@@ -17,7 +17,7 @@
         <el-table-column prop="yearlyBudget" label="年度预算" align="center" />
         <el-table-column prop="monthLimit" label="月采限额" align="center" />
         <el-table-column prop="usedBudget" label="已用预算" align="center" />
-        <el-table-column prop="bindAddress" label="绑定地址" align="center" />
+        <el-table-column prop="bindAddressStr" label="绑定地址" align="center" />
         <el-table-column label="状态" align="center">
           <template #default="scope">
             <el-tag v-if="scope.row.status === '0'" type="success">启用</el-tag>
@@ -70,9 +70,13 @@
           <el-switch v-model="form.bindStatus" :active-value="'0'" :inactive-value="'1'" />
         </el-form-item>
         <el-form-item v-if="form.bindStatus === '0'" label="绑定地址" prop="bindAddress">
-          <el-select v-model="form.bindAddress" placeholder="请选择" style="width: 100%">
-            <el-option label="地址1" value="address1" />
-            <el-option label="地址2" value="address2" />
+          <el-select v-model="form.bindAddress" placeholder="请选择" clearable style="width: 100%">
+            <el-option
+              v-for="addr in shippingAddressList"
+              :key="addr.id"
+              :label="(addr.provincialCityCountry || '') + (addr.provincialCityCountry && addr.address ? ' - ' : '') + (addr.address || '')"
+              :value="addr.id"
+            />
           </el-select>
         </el-form-item>
       </el-form>
@@ -89,6 +93,8 @@
 <script setup name="CustomerDept" lang="ts">
 import { listCustomerDept, getCustomerDept, delCustomerDept, addCustomerDept, updateCustomerDept } from '@/api/customer/customerFile/customerDept';
 import { CustomerDeptVO, CustomerDeptQuery, CustomerDeptForm } from '@/api/customer/customerFile/customerDept/types';
+import { listShippingAddress, getShippingAddress } from '@/api/customer/customerFile/shippingAddress';
+import { ShippingAddressVO, ShippingAddressQuery, ShippingAddressForm } from '@/api/customer/customerFile/shippingAddress/types';
 import { delDept } from '@/api/system/dept';
 
 type CustomerDeptOption = {
@@ -110,6 +116,7 @@ const { sys_platform_yes_no } = toRefs<any>(proxy?.useDict('sys_platform_yes_no'
 
 const customerDeptList = ref<CustomerDeptVO[]>([]);
 const customerDeptOptions = ref<CustomerDeptOption[]>([]);
+const shippingAddressList = ref<ShippingAddressVO[]>([]);
 const buttonLoading = ref(false);
 const showSearch = ref(true);
 const isExpandAll = ref(true);
@@ -209,6 +216,26 @@ const getTreeselect = async () => {
   customerDeptOptions.value = proxy?.handleTree<CustomerDeptOption>(res.data, 'deptId', 'parentId') || [];
 };
 
+/** 获取客户收货地址列表 */
+const getShippingAddressList = async () => {
+  if (!props.customerId) {
+    shippingAddressList.value = [];
+    return;
+  }
+  try {
+    const query: ShippingAddressQuery = {
+      pageNum: 1,
+      pageSize: 100,
+      customerId: props.customerId
+    };
+    const res = await listShippingAddress(query);
+    shippingAddressList.value = res.rows || [];
+  } catch (error) {
+    console.error('获取收货地址列表失败:', error);
+    shippingAddressList.value = [];
+  }
+};
+
 // 取消按钮
 const cancel = () => {
   reset();
@@ -236,6 +263,7 @@ const resetQuery = () => {
 const handleAdd = async (row?: CustomerDeptVO) => {
   reset();
   await getTreeselect();
+  await getShippingAddressList();
   if (row != null && row.deptId) {
     form.value.parentId = row.deptId;
   }
@@ -264,6 +292,7 @@ const toggleExpandAll = (data: CustomerDeptVO[], status: boolean) => {
 const handleUpdate = async (row: CustomerDeptVO) => {
   reset();
   await getTreeselect();
+  await getShippingAddressList();
   const res = await getCustomerDept(row.deptId);
   Object.assign(form.value, res.data);
   // 修正数据:如果 parentId 等于自己的 id,说明是顶级部门,将 parentId 设为 0