mirror of
https://git.hmsn.ink/kospo/svcm/oa.git
synced 2026-03-20 01:22:33 +09:00
func : 최소견적서 표출 기능 추가
fix : priceDetail 스타일 수정
This commit is contained in:
@@ -76,10 +76,14 @@ const params = reactive({
|
||||
{ key: '', label: '금액(VAT별도)', editable: false },
|
||||
],
|
||||
dtlSpecs: [], //상세 규격 입력 데이터
|
||||
minAmt: null,
|
||||
minAmtComp: [],
|
||||
})
|
||||
|
||||
function getDetailList(arg){
|
||||
console.log("arg",arg)//svy_yn
|
||||
|
||||
|
||||
if(!props.prcsNo){
|
||||
params.stCdFalg = true
|
||||
}
|
||||
@@ -107,6 +111,8 @@ function getDetailList(arg){
|
||||
})) //비고 데이터 없음, 승인일자 없음 todo
|
||||
params.prcsAtts = arg.prcsAtts
|
||||
params.svyYn = arg.svyYn
|
||||
|
||||
minAmtCalc(params.prcsBizs)
|
||||
}
|
||||
|
||||
const updateState = async () => {
|
||||
@@ -155,6 +161,17 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
link.click()
|
||||
}
|
||||
|
||||
function minAmtCalc (est) {
|
||||
const totAmts = est.map(value => value.totAmt)
|
||||
if(totAmts.length === 0) {
|
||||
return {minAmt : null, bizNo : []};
|
||||
}
|
||||
const minAmt = Math.min(...totAmts);
|
||||
const bizNo = est.filter(value => value.totAmt === minAmt).map(value => value.bizNo);
|
||||
params.minAmt = minAmt;
|
||||
params.minAmtComp = bizNo;
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
@@ -164,6 +181,7 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
<div class="table-container">
|
||||
<table class="table datatable-table is-fullwidth">
|
||||
<colgroup>
|
||||
<col style="width: 7%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
@@ -172,8 +190,7 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 10%;">
|
||||
<col style="width: 13%;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
@@ -275,7 +292,7 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
<td>등록기간</td>
|
||||
<td colspan="6">
|
||||
<div class="columns">
|
||||
<div class="column is-4">
|
||||
<div class="column is-2">
|
||||
<input
|
||||
:readonly=true
|
||||
v-model="generalParams.regSdat"
|
||||
@@ -283,8 +300,8 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
disabled
|
||||
>
|
||||
</div>
|
||||
<div style="transform: translateY(9px)">~</div>
|
||||
<div class="column is-4">
|
||||
<span style="margin: 0.5rem 0.5rem">~</span>
|
||||
<div class="column is-2">
|
||||
<input
|
||||
:readonly=true
|
||||
v-model="generalParams.regEdat"
|
||||
@@ -297,46 +314,32 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
</tr>
|
||||
<tr>
|
||||
<td>첨부파일</td>
|
||||
<td colspan="9">
|
||||
<td colspan="3">
|
||||
<div class="column is-12">
|
||||
<VField>
|
||||
<VLabel>첨부파일</VLabel>
|
||||
<VControl>
|
||||
<div
|
||||
v-for="f in params.prcsAtts"
|
||||
:key="f.logiFnm"
|
||||
class="content estimate-file-wrapper"
|
||||
>
|
||||
<div class="estimate-file-name">
|
||||
<div class="estimate-file-name ml-2">
|
||||
{{ f.logiFnm }}{{" ("}}{{Math.ceil(f.size / 1024)}}kb{{")"}}
|
||||
</div>
|
||||
<div>
|
||||
<i class="fa fa-download estimate-file-download" @click="onPrcsFileDownload(f.prcsNo, f.fileOrd, f.logiFnm)" />
|
||||
<i class="fa fa-download estimate-file-download pr-2" @click="onPrcsFileDownload(f.prcsNo, f.fileOrd, f.logiFnm)" />
|
||||
</div>
|
||||
</div>
|
||||
</VControl>
|
||||
</VField>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="6"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>견적서확인</td>
|
||||
<td colspan="9">
|
||||
<slot name="status"
|
||||
v-if="params.stCd == '0200'"
|
||||
>
|
||||
<div style="display: flex; justify-content: flex-end; gap: 8px;">
|
||||
<VButton
|
||||
color="primary"
|
||||
icon="fas fa-circle"
|
||||
elevated
|
||||
@click="onChangeFinal"
|
||||
>
|
||||
가격조사 완료
|
||||
</VButton>
|
||||
</div>
|
||||
</slot>
|
||||
<div class="mt-2">
|
||||
<td colspan="6">
|
||||
<div>
|
||||
<VFlexTableCustomize
|
||||
:key="params.prcsBizs.length"
|
||||
:data="params.prcsBizs"
|
||||
@@ -377,12 +380,39 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
</VFlexTableCustomize>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="3">
|
||||
<slot name="status"
|
||||
v-if="params.stCd == '0200'"
|
||||
>
|
||||
<div>
|
||||
<VButton
|
||||
color="info"
|
||||
icon="fas fa-circle"
|
||||
elevated
|
||||
@click="onChangeFinal"
|
||||
>
|
||||
가격조사 완료
|
||||
</VButton>
|
||||
</div>
|
||||
</slot>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>최소견적서</td>
|
||||
<td colspan="7">
|
||||
<div class="columns">
|
||||
<div class="column is-2">사업자명 : {{params.minAmtComp.join(',')}}</div>
|
||||
<div class="column is-2">견적 금액 : {{formatCurrency(params.minAmt)}}원</div>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="column is-12">
|
||||
<VField class="pr-2">
|
||||
<div class="is-12">
|
||||
<VField class="">
|
||||
<VLabel class="has-fullwidth">
|
||||
결재선
|
||||
</VLabel>
|
||||
@@ -425,19 +455,18 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
|
||||
<style scoped lang="scss">
|
||||
/*css 추가 start*/
|
||||
.flex-table {
|
||||
.flex-table-header {
|
||||
padding: 0.1rem !important;
|
||||
min-height: 40px;
|
||||
border-top-left-radius: .75rem;
|
||||
border-top-right-radius: .75rem;
|
||||
.estimate-file-wrapper{
|
||||
padding: 0;
|
||||
margin: 0.25rem 0;
|
||||
}
|
||||
|
||||
.flex-table-cell {
|
||||
.w-100 {
|
||||
width: 100%;
|
||||
}
|
||||
.flex-table {
|
||||
.flex-table-header {
|
||||
padding: 1rem !important;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
|
||||
.flex-table-item {
|
||||
padding: 0.1rem !important;
|
||||
min-height: 40px;
|
||||
@@ -460,13 +489,12 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
width: 100%;
|
||||
}
|
||||
td {
|
||||
padding: 10px 10px !important;
|
||||
padding: 4px 10px;
|
||||
.columns {
|
||||
margin-left: 10px !important;
|
||||
padding-top: 10px;
|
||||
margin-inline-start : 0
|
||||
}
|
||||
.column {
|
||||
padding: 0 !important;
|
||||
padding: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -478,15 +506,17 @@ const onPrcsFileDownload = async (prcsNo: string, fileOrd: number, logiFnm: stri
|
||||
color: var(--smoke-white);
|
||||
}
|
||||
|
||||
.datatable-table {
|
||||
padding: 12px 12px;
|
||||
|
||||
|
||||
.datatable-table {
|
||||
td:nth-child(1) {
|
||||
background-color: var(--primary);
|
||||
}
|
||||
td:nth-child(3) {
|
||||
tr:nth-child(1) > td:nth-child(3) {
|
||||
background-color: var(--primary);
|
||||
}
|
||||
tr:nth-child(3) > td:nth-child(3) {
|
||||
background-color: var(--primary);
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user