diff --git a/src/api/setting.ts b/src/api/setting.ts index a035eed..bf25901 100644 --- a/src/api/setting.ts +++ b/src/api/setting.ts @@ -366,12 +366,16 @@ export function updateTermsSetting( export function delTermsSetting(id: number): Promise { return axios.get(`contractSetting/delTermsSetting?id=${id}`); } -// 合同设置-合同条款设置-单个详情 +// 合同设置-合同条款设置-单个条款配置详情 export function getTermsSettingFromId( id: number ): Promise { return axios.get(`contractSetting/getTermsSetting?id=${id}`); } +// 合同设置-合同条款设置-单个条款数据详情 +export function getTermsDataFromId(params: any): Promise { + return axios.post(`contractSetting/getTerm`, params); +} // 合同设置-合同条款设置-启用/禁用 export function disableTermsSetting( params: DisableUserParam diff --git a/src/views/setting/system/contract-settings/contract-template-edit.vue b/src/views/setting/system/contract-settings/contract-template-edit.vue index 090c5c3..cf97fcc 100644 --- a/src/views/setting/system/contract-settings/contract-template-edit.vue +++ b/src/views/setting/system/contract-settings/contract-template-edit.vue @@ -206,7 +206,10 @@ {{ item.title }} - + 优惠条款 @@ -214,11 +217,13 @@ @@ -254,6 +261,7 @@ getContractTagsList, updateTemplateSetting, getAllTermsSettingList, + getTermsDataFromId, } from '@/api/setting'; import contractTemplateForm from './modal/contract-template-form.vue'; import { DepartmentItem } from '@/types/setting'; @@ -276,6 +284,7 @@ { type: 1, text: '含税合同' }, { type: 2, text: '不含税合同' }, ]; + const termsDetailInfo = ref(null); // 表单数据 const formRef = ref(); const defaultForm: any = { @@ -394,6 +403,7 @@ (i: any) => i.type === 'lateFee' && i.isChoose === 1 ) ); + // 获取条款设置相关设置 async function getTermsSettingFromIdData(id) { const { code, data } = await getTermsSettingFromId(id); if (code === 200) { @@ -409,12 +419,31 @@ termTabList.value = next; } } + async function getTermsInfoFromId(contractTermsSettingId) { + const currentTerm = + (currentContractTemplateInfo.value?.terms || []).find( + (t: any) => t.id === currentId.value + ) || {}; + const params = { + type: 1, + contractTemplateSettingId: currentTerm?.id, + contractTermsSettingId, + }; + const { code, data } = await getTermsDataFromId(params); + if (code === 200) { + termsDetailInfo.value = data?.term ?? {}; + } + } const handleChoose = (id: number, str: string, termId: number) => { if (id === currentId.value) return; currentId.value = id; title.value = str; + if (id === 0) { + termsDetailInfo.value = {}; + } if (id === 0 || termId === 0) return; getTermsSettingFromIdData(termId); + getTermsInfoFromId(termId); }; const handleBaseInfoEdit = () => { showModal.value = true; @@ -652,7 +681,7 @@ info.isChoose = info.isChoose === 1 ? 2 : 1; } } - function handleAddTerm() { + function handleAddDiscountTerm() { const idx = termTabList.value.filter( (i: any) => i.type === 'discount' ).length; diff --git a/src/views/setting/system/contract-settings/terms/bond.vue b/src/views/setting/system/contract-settings/terms/bond.vue index f42b609..b47d204 100644 --- a/src/views/setting/system/contract-settings/terms/bond.vue +++ b/src/views/setting/system/contract-settings/terms/bond.vue @@ -54,10 +54,12 @@