diff --git a/src/views/crm/contract/ContractForm.vue b/src/views/crm/contract/ContractForm.vue
index a2fd475d5..a249af507 100644
--- a/src/views/crm/contract/ContractForm.vue
+++ b/src/views/crm/contract/ContractForm.vue
@@ -56,10 +56,10 @@
-
+
-
+
@@ -237,7 +237,7 @@
@@ -295,8 +295,8 @@
-
-
+
+
-
-
+
+
-
-
+
+
按月结算
按项目结算
@@ -480,6 +480,8 @@ import ContractAAuthorizedPersonForm from './components/ContractAAuthorizedPerso
import ContractBAuthorizedPersonForm from './components/ContractBAuthorizedPersonForm.vue'
import { propTypes } from '@/utils/propTypes'
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
+import { defaultProps, handleTree } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
@@ -493,12 +495,14 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const formType = ref('') // 表单的类型:create - 新增;update - 修改
+const deptTree = ref() // 部门树形结构
const formData = ref({
id: undefined,
name: undefined,
no: undefined,
customerId: undefined,
partyName: undefined,
+ lastPayDate: undefined,
partAddress: undefined,
secPartyPerson: undefined,
wechat: undefined,
@@ -533,6 +537,7 @@ const formData = ref({
partnerCompanyId: undefined,
deptId: undefined,
quotationTimes: undefined,
+ statementDate: undefined,
products: []
})
const formRules = reactive({
@@ -541,7 +546,7 @@ const formRules = reactive({
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
- statement: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
+ statementDate: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
contractType: [{ required: true, message: '合同类型不能为空', trigger: 'change' }],
penaltyRate: [{ required: true, message: '违约金比例不能为空', trigger: 'blur' }],
latePaymentRate: [{ required: true, message: '延期付款利率不能为空', trigger: 'blur' }],
@@ -695,6 +700,7 @@ const resetForm = () => {
partnerCompanyId: undefined,
deptId: undefined,
quotationTimes: undefined,
+ paymentTerm: undefined,
products: []
}
formRef.value?.resetFields()
@@ -713,11 +719,10 @@ const handleQuotationChange = async (quotationId: number) => {
formData.value.ownerUserId = quotation.ownerUserId;
formData.value.expanderUserId = quotation.expanderUserId;
- formData.value.pricingUserId = quotation.pricingUserId;
formData.value.signUserId = quotation.signUserId;
formData.value.signPhoneNumber = quotation.signPhoneNumber;
formData.value.signEmail = quotation.signEmail;
- formData.value.signWechat = quotation.signWechat;
+ formData.value.paymentTerm = quotation.paymentTerm;
formData.value.partnerCompanyId = quotation.partnerCompanyId;
@@ -732,6 +737,7 @@ const handleQuotationChange = async (quotationId: number) => {
// 🔁 自动加载客户详情
await onCustomerChange(quotation.customerId);
+ await onPartnerChange(quotation.partnerCompanyId);
} catch (err) {
} finally {
@@ -753,13 +759,15 @@ const onCustomerChange = async (customerId: string) => {
formData.value.insuredCount = customerRes.insuredCount;
formData.value.establishmentDate = customerRes.establishmentDate;
formData.value.enterpriseType = customerRes.enterpriseType;
- formData.value.businessStatus = customerRes.businessStatus;
- formData.value.defendantRecord = customerRes.defendantRecord;
- formData.value.businessAbnormal = customerRes.businessAbnormal;
- formData.value.equityPledge = customerRes.equityPledge;
- formData.value.dishonestRecord = customerRes.dishonestRecord;
- formData.value.financingRecord = customerRes.financingRecord;
- formData.value.enforcementRecord = customerRes.enforcementRecord;
+ formData.value.actualCapital = customerRes.actualCapital;
+
+ formData.value.partAddress = customerRes.partAddress;
+ formData.value.listingStatus = customerRes.listingStatus;
+ formData.value.legalRepresentative = customerRes.legalRepresentative;
+ formData.value.creditCode = customerRes.creditCode;
+ formData.value.regType = customerRes.regType;
+ formData.value.financingInfo = customerRes.financingInfo;
+ formData.value.socialEmployeeNum = customerRes.socialEmployeeNum;
} catch (err) {
console.error('获取客户详情失败:', err);
} finally {
@@ -767,6 +775,23 @@ const onCustomerChange = async (customerId: string) => {
}
}
+const onPartnerChange = async (id: string) => {
+ if (!id) return
+ try {
+ formLoading.value = true;
+ const res = await ContractApi.getOrgInfo(id);
+ formData.value.bankName = res.bankName;
+ formData.value.bankAccount = res.bankAccount;
+ formData.value.legalRepresentative = res.legalRepresentative;
+ formData.value.businessLicenseNumber = res.businessLicenseNumber;
+ formData.value.businessLicense = res.businessLicense;
+ // formData.value.partnerCompanyId = res.partnerCompanyId;
+ } catch (err) {
+ } finally {
+ formLoading.value = false;
+ }
+}
+
/** 动态获取客户联系人 */
const getContactOptions = computed(() =>
@@ -793,6 +818,10 @@ onMounted(async () => {
pageSize: 1000,
})
templateOptions.value = tempData.list
+
+
+ // 获得部门树
+ deptTree.value = handleTree(await DeptApi.getSimpleDeptList())
// 默认新建时选中自己
// if (formType.value === 'create') {
// formData.value.ownerUserId = useUserStore().getUser.id
diff --git a/src/views/crm/contract/components/ContractAAuthorizedPersonForm.vue b/src/views/crm/contract/components/ContractAAuthorizedPersonForm.vue
index b25594f98..9b6563f4e 100644
--- a/src/views/crm/contract/components/ContractAAuthorizedPersonForm.vue
+++ b/src/views/crm/contract/components/ContractAAuthorizedPersonForm.vue
@@ -9,20 +9,20 @@
>
-
+
-
+
@@ -37,7 +37,7 @@
-
+
diff --git a/src/views/crm/contract/components/ContractBAuthorizedPersonForm.vue b/src/views/crm/contract/components/ContractBAuthorizedPersonForm.vue
index 2ccbaeff4..2e6ae00c1 100644
--- a/src/views/crm/contract/components/ContractBAuthorizedPersonForm.vue
+++ b/src/views/crm/contract/components/ContractBAuthorizedPersonForm.vue
@@ -9,20 +9,13 @@
>
-
+
@@ -37,10 +30,18 @@
+
+
+
+
+
+
+
+
-
+
diff --git a/src/views/crm/contract/components/ContractProductForm.vue b/src/views/crm/contract/components/ContractProductForm.vue
index 398a98b80..86b9cdb7f 100644
--- a/src/views/crm/contract/components/ContractProductForm.vue
+++ b/src/views/crm/contract/components/ContractProductForm.vue
@@ -10,13 +10,13 @@
>
-
+