diff --git a/src/api/partner.js b/src/api/partner.js
index b7613f8..5d90539 100644
--- a/src/api/partner.js
+++ b/src/api/partner.js
@@ -43,3 +43,20 @@ export function mockSyncPartner(id) {
method: "post",
});
}
+
+/** 获取货代公司组织列表(用于关联内部组织选择) */
+export function getAgentOrgList() {
+ return request({
+ url: "/admin/org/listAllOrgNameByTypeWithId",
+ method: "post",
+ data: { orgCode: "AGENT" },
+ }).then((res) => {
+ if (String(res?.code || "") === "0000") {
+ return (res?.result || []).map((item) => ({
+ label: item.name,
+ value: item.id,
+ }));
+ }
+ return [];
+ });
+}
diff --git a/src/views/contract/partner/components/PartnerModal.vue b/src/views/contract/partner/components/PartnerModal.vue
index 105e9e1..ce7cfcf 100644
--- a/src/views/contract/partner/components/PartnerModal.vue
+++ b/src/views/contract/partner/components/PartnerModal.vue
@@ -82,11 +82,25 @@
-
+ handleGroupFlagChange(e)">
是
否
+
+
+
import { computed, ref } from "vue";
import { message } from "ant-design-vue";
+import { getAgentOrgList } from "@/api/partner.js";
const props = defineProps({
optionSets: {
@@ -319,6 +334,8 @@ function createFormData() {
createTime: "",
syncTime: "",
syncMessage: "",
+ linkedOrgId: undefined,
+ linkedUserAccount: "",
};
}
@@ -347,6 +364,7 @@ const visible = ref(false);
const modalMode = ref("create");
const originalState = ref(createFormData());
const formState = ref(createFormData());
+const agentOrgOptions = ref([]);
const isViewMode = computed(() => modalMode.value === "view");
@@ -424,6 +442,13 @@ function handleOppositeCharacterChange() {
}
}
+function handleGroupFlagChange(e) {
+ const value = e?.target?.value ?? e;
+ if (value !== "Y") {
+ formState.value.linkedOrgId = undefined;
+ }
+}
+
function handleNatureOfEnterpriseOrgChange() {
if (formState.value.natureOfEnterpriseOrg !== "QY") {
formState.value.natureOfEnterpriseOrgLev = undefined;
@@ -497,6 +522,12 @@ function normalizeFormBeforeSave() {
formState.value.isSgat = formState.value.gatFlag === "Y" ? "1" : "0";
formState.value.isJtn = formState.value.groupFlag === "Y" ? "1" : "0";
+ // 如果非集团内,清空关联内部组织
+ if (formState.value.groupFlag !== "Y") {
+ formState.value.linkedOrgId = undefined;
+ formState.value.linkedUserAccount = "";
+ }
+
formState.value.contacts = (formState.value.contacts || []).map((item) => ({
...item,
contactName: item.contactName?.trim?.() || "",
@@ -528,6 +559,10 @@ function showModal(record = {}, mode = "create") {
modalMode.value === "create" ? createFormData() : copyFormData(record);
originalState.value = copyFormData(source);
formState.value = copyFormData(source);
+ // 加载货代公司组织列表
+ getAgentOrgList().then((options) => {
+ agentOrgOptions.value = options;
+ });
visible.value = true;
}