diff --git a/src/pages/app/ContractInsert.vue b/src/pages/app/ContractInsert.vue index 53dfd0b..66f5b88 100644 --- a/src/pages/app/ContractInsert.vue +++ b/src/pages/app/ContractInsert.vue @@ -7,8 +7,13 @@ import {useRouter} from "vue-router"; const registerFormOpen = ref(false) const loading = ref(false) +const isSelectOpen = ref(false) const notyf = useNotyf() const router = useRouter() +const selectedCode = ref() +const priceSearchCheckBoxStatus = ref(false) +const isLoading = ref(false) + const params = reactive({ cateCd: '', contNo: '', @@ -29,6 +34,8 @@ const params = reactive({ contAtts: [], //첨부파일 데이터 }) + + const completedPriceDataParams = reactive({ prcsNo:'', cateCd:'', @@ -37,8 +44,8 @@ const completedPriceDataParams = reactive({ compNm:'', title:'', content:'', - regSdat:'', - regEdat:'', + contSdat:'', + contEdat:'', regSabun:'', regNm:'', regDt:'', @@ -62,15 +69,16 @@ params.modalColumn = [ { key: 'regNm', label: '선택' }, ] -const selectedCode = ref() -const priceSearchCheckBoxStatus = ref(false) +params.contAtts = [ + { prcsNo : '', bizNo : '' ,fileOrd : 0 ,logiFnm : '' ,physFnm : '',size : 0 ,data : '' ,path : '' }, +] + const data = reactive({ contractData: [], completedPriceSearchData: [], }) -const isLoading = ref(false) watch(registerFormOpen, async (isOpen) => { if (isOpen) { isLoading.value = true @@ -105,8 +113,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 +142,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 || '' @@ -160,8 +168,9 @@ function handlePriceRowClick(row) { } registerFormOpen.value = false + completedPriceDataParams.estimates = row.estimates console.log(row) - console.log(completedPriceDataParams.contAmt) + console.log(completedPriceDataParams.estimates) } const showFileInputs = ref(false) @@ -179,19 +188,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, @@ -201,7 +218,7 @@ const saveContOne = async () => { if(res.request.status == '200'){ notyf.primary('등록 되었습니다.') - // router.push({path: '/app/contractManagement'}) + router.push({path: '/app/contractManagement'}) } }catch(e){ notyf.error(e.message) @@ -227,7 +244,7 @@ const onFileChange = (e, idx) => { // 인덱스별로 파일 저장 pbAtts.value[idx] = pbAtt console.log(pbAtts) - console.log(pbAtts.value[0].logiFnm) + console.log(pbAtts.value[idx].logiFnm) } reader.readAsDataURL(file) } @@ -237,8 +254,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 +271,33 @@ watch( function routerMove() { router.push({path: '/app/contractManagement'}) } + +const showReasonError = computed(() => + priceSearchCheckBoxStatus.value && + (!completedPriceDataParams.reason || !completedPriceDataParams.reason.trim()) +) + +const estimateBizNoOptions = computed(() => + completedPriceDataParams.estimates.map(est => ({ + value: est.bizNo, + text: est.bizNo + })) +) + +function onBizNoChange() { + const selected = completedPriceDataParams.estimates.find(est => est.bizNo === completedPriceDataParams.bizNo) + + if (selected) { + completedPriceDataParams.compNm = selected.compNm || '' + completedPriceDataParams.contAmt = selected.amt || 0 + completedPriceDataParams.bizNo = selected.bizNo || '' + } else { + completedPriceDataParams.compNm = '' + completedPriceDataParams.contAmt = 0 + completedPriceDataParams.bizNo = '' + } +} +