From 82260eef051a7331c87f79cc6f50f3302e4d2acf Mon Sep 17 00:00:00 2001 From: Kasi Date: Tue, 27 May 2025 18:56:04 +0900 Subject: [PATCH] =?UTF-8?q?func=20:=20=EA=B2=B0=EC=9E=AC=ED=95=A8=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=EC=A1=B0=ED=9A=8C=20=ED=99=9C=EC=84=B1?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/app/ContractInsert.vue | 126 ++++++++++++++++++---------- src/pages/app/paymentManagement.vue | 49 +++++++++-- src/service/integratedPayment.ts | 32 ++++++- 3 files changed, 156 insertions(+), 51 deletions(-) diff --git a/src/pages/app/ContractInsert.vue b/src/pages/app/ContractInsert.vue index 53dfd0b..dd5e824 100644 --- a/src/pages/app/ContractInsert.vue +++ b/src/pages/app/ContractInsert.vue @@ -29,6 +29,8 @@ const params = reactive({ contAtts: [], //첨부파일 데이터 }) + + const completedPriceDataParams = reactive({ prcsNo:'', cateCd:'', @@ -37,8 +39,8 @@ const completedPriceDataParams = reactive({ compNm:'', title:'', content:'', - regSdat:'', - regEdat:'', + contSdat:'', + contEdat:'', regSabun:'', regNm:'', regDt:'', @@ -62,6 +64,10 @@ params.modalColumn = [ { key: 'regNm', label: '선택' }, ] +params.contAtts = [ + { prcsNo : '', bizNo : '' ,fileOrd : 0 ,logiFnm : '' ,physFnm : '',size : 0 ,data : '' ,path : '' }, +] + const selectedCode = ref() const priceSearchCheckBoxStatus = ref(false) @@ -105,8 +111,8 @@ function getDateDiff(start, end) { } const contractPeriod = computed(() => { - const start = completedPriceDataParams.regSdat - const end = completedPriceDataParams.regEdat + const start = completedPriceDataParams.contSdat + const end = completedPriceDataParams.contEdat const startStr = formatMonthDate(start) const endStr = formatMonthDate(end) const diff = getDateDiff(start, end) @@ -134,8 +140,8 @@ function handlePriceRowClick(row) { completedPriceDataParams.cateNm = row.cateNm || '' completedPriceDataParams.title = row.title || '' completedPriceDataParams.content = row.content || '' - completedPriceDataParams.regSdat = row.regSdat || '' - completedPriceDataParams.regEdat = row.regEdat || '' + completedPriceDataParams.contSdat = row.regSdat || '' + completedPriceDataParams.contEdat = row.regEdat || '' completedPriceDataParams.regSabun = row.regSabun || '' completedPriceDataParams.regNm = row.regNm || '' completedPriceDataParams.regDt = row.regDt || '' @@ -179,19 +185,27 @@ const saveContOne = async () => { let res = null try{ loading.value = true - // if (!validation()) { - // return; - // } + + const amt = Number(String(completedPriceDataParams.contAmt).replace(/[^0-9]/g, '')) + if (amt >= 10000000) { + const injiFile = pbAtts.value[4] + if (!injiFile || !injiFile.logiFnm) { + notyf.error('계약금액이 1,000만원 이상일 경우 인지세 납부확인서 첨부가 필수입니다.') + loading.value = false + return + } + } + const paramsCont ={ prcsNo: completedPriceDataParams.prcsNo, bizNo: completedPriceDataParams.bizNo, cateCd: priceSearchCheckBoxStatus.value ? selectedCode.value : completedPriceDataParams.cateCd, compNm: completedPriceDataParams.compNm, title: completedPriceDataParams.title, - regSdat: formatMonthDate(completedPriceDataParams.regSdat), - regEdat: formatMonthDate(completedPriceDataParams.regEdat), + contSdat: formatMonthDate(completedPriceDataParams.contSdat), + contEdat: formatMonthDate(completedPriceDataParams.contEdat), contAmt: completedPriceDataParams.contAmt, - signDt: formatMonthDate(completedPriceDataParams.regSdat), + signDt: formatMonthDate(completedPriceDataParams.contSdat), reason: completedPriceDataParams.reason, excYn: priceSearchCheckBoxStatus.value, // 가격조사 예외여부 확인필요 contAtts: params.contAtts, @@ -237,8 +251,8 @@ function resetForm() { completedPriceDataParams.bizNo = '' completedPriceDataParams.compNm = '' completedPriceDataParams.title = '' - completedPriceDataParams.regSdat = '' - completedPriceDataParams.regEdat = '' + completedPriceDataParams.contSdat = '' + completedPriceDataParams.contEdat = '' completedPriceDataParams.contAmt = '' completedPriceDataParams.reason = '' selectedCode.value = '' @@ -254,6 +268,11 @@ watch( function routerMove() { router.push({path: '/app/contractManagement'}) } + +const showReasonError = computed(() => + priceSearchCheckBoxStatus.value && + (!completedPriceDataParams.reason || !completedPriceDataParams.reason.trim()) +)