fix : 대금지급중, 대금지급전 화면 Tab 처리중

This commit is contained in:
Yesol Choi
2025-06-02 22:07:06 +09:00
parent af89bbb5fb
commit b3109bbf65
7 changed files with 686 additions and 27 deletions

View File

@@ -1,28 +1,38 @@
<script setup lang="ts">
import { getSlipDetail } from "/@src/service/slipApi.ts";
import {getBeforeSlipDetail, saveTempSlip} from "/@src/service/slipApi.ts";
import {formatDatefromStringDate} from "/@src/utils/common/comfunc.ts";
import {ApprsList} from "/@src/utils/types.ts";
onBeforeMount(async ()=>{
const result = await getSlipDetail(history.state.key)
const result = await getBeforeSlipDetail(history.state.key)
getDetailList(result)
})
const notyf = useNotyf()
//결재선 담아오는 변수
const apprsList = ref<ApprsList>()
const getDetailList = (item) => {
console.log("getDetailList",item)
affiliationCode.value = item.trtGubun//소속
params.contNo = item.contNo
affiliationCode.value = item.bukrs//소속
params.title = item.bktxt //계약명
params.regNm = item.lifnr //계약상대자
params.place = ''// 업체명
formattedNumber.value = '' //공급가액
params.place = ''// 업체명 bupla
formattedNumber.value = item.wrbtrS //공급가액
taxCode.value= item.mwskz //세금코드 ->세금계산서랑 같이 ?
currencyCode.value = item.banks //통화
params.regSdt = '' //증빙일
params.regSdt2 = ''//전기일
taxInvoiceCode.value = item.mwskz //세금계산서
accountSubjectCode.value = item.mwskz //예산관리
selectCostCode.value = ''//코스트센터
currencyCode.value = item.waers //통화
params.regSdt = formatDatefromStringDate(item.bldat) //증빙일
params.regSdt2 = formatDatefromStringDate(item.budat)//전기일
params.bankl = item.bankl //계좌관리 은행코드
params.bankn = item.bankn//계좌관리 계좌번호
//taxInvoiceCode.value = item.mwskz //세금계산서 따로 연계 태워야됨 todo
// item.hkont G/L 계정
selectCostCode.value = ''//코스트센터 kostl wbs요소코드 projk
//코드
//첨부파일
params.apprList = item.zwf0011t.apprs[0].value[0]
console.log("apprsList.value",apprsList.value)
}
const affiliationCode = ref()
@@ -46,9 +56,18 @@ const params = reactive({
reason: '',
regSdt: '',
regSdt2: '',
bankl:'',
bankn:'',
page: 1,
row: 10,
flexColumn: [],
flexColumn: [
{ key: 'btext', label: '이름'},
{ key: 'bname', label: '사원번호'},
{ key: 'posit', label: '부서'},
{ key: 'lineclsf', label: '담당'},
{ key: 'wkfst', label: '결재요청'},
],
apprList:[],
modalColumn: [],
})
const formattedNumber = ref(0)
@@ -58,16 +77,56 @@ function onInput(event) {
formattedNumber.value = onlyNumber ? Number(onlyNumber).toLocaleString() : ''
}
const selectCostCode = ref('코스트센터')
const selectCostCode = ref('코스트센터') //todo
const selectCostCodeOptions = [
{ text: '코스트센터', value: '코스트센터' },
{ text: 'WBS', value: 'WBS'}
{ text: '코스트센터', key: 'kostl' },
{ text: 'WBS', key: 'projk'}
]
const router = useRouter()
const cancel = () => {
router.push('/app/contractManagement')
}
const loading = ref(false)
const createChit = async () => {
let res = null
try{
loading.value = true
const createParams = {
contNo : params.contNo,
bldat : '20250602',//params.regSdt.replace("-",""),
budat : '20250602',//params.regSdt2.replace("-",""),
waers : currencyCode.value,
bktxt : params.title,
lifnr : params.regNm,
wrbtr : formattedNumber.value, //수정필요
mwskz : taxCode.value,
gsber : affiliationCode.value, //무슨 값인지 모름 gsber bukrs bupla
bupla : affiliationCode.value,
zterm : '', //어떤 값인지 모름
banks : '' , //어떤 값인지 모름
bankl : params.bankl,
bankn : params.bankn,
hkont : '',//G/L 계정
wrbtrS : formattedNumber.value,
kostl : selectCostCode.value,
projk : selectCostCode.value,
trtGubun : '',//어떤 값인지 모름
txBillSeq : '',//어떤 값인지 모름
slipAtts: '' // 파일 업로드
}
notyf.dismissAll()
res = await saveTempSlip(createParams)
if(res.request.status == '200'){
notyf.primary('등록 되었습니다.')
router.push({path: '/app/priceManagement'})
}
}catch(e){
notyf.error(e.message)
}finally {
loading.value = false
}
}
</script>
<template>
@@ -247,7 +306,7 @@ const cancel = () => {
<VField>
<VControl>
<input
v-model="params.title"
v-model="params.bankl"
class="input custom-text-filter"
placeholder="계약번호"
>
@@ -258,7 +317,7 @@ const cancel = () => {
<VField>
<VControl>
<input
v-model="params.title"
v-model="params.bankn"
class="input custom-text-filter"
placeholder="계좌번호"
>
@@ -295,7 +354,7 @@ const cancel = () => {
color="primary"
@click="centeredActionsOpen = true"
>
G/L계정
G/L계정// 설정필요
</VButton>
</td>
<td colspan="2">
@@ -309,7 +368,7 @@ const cancel = () => {
<td>
<VField>
<VSelect v-model="selectCostCode">
<option v-for="opt in selectCostCodeOptions" :key="opt.value" :value="opt.value">
<option v-for="opt in selectCostCodeOptions" :key="opt.key">
{{ opt.text }}
</option>
</VSelect>
@@ -342,12 +401,53 @@ const cancel = () => {
</tbody>
</table>
<div class="bottom-button">
<VButton> </VButton>
<VButton @click="createChit"> </VButton>
<VButton @click="cancel"> </VButton>
</div>
<VTabs
type="boxed"
selected="team"
:tabs="[
{ label: '결재', value:'team' },
]"
>
<template #tab="{ activeValue }">
<p v-if="activeValue === 'team'">
<ComVFlexTable
:data="params.apprList"
:columns="params.flexColumn"
:compact="true">
<template #body-cell="{ row, column, index, value }">
<span v-if="column.key=='lineclsf'" class="column">
<VField class="pr-1">
<VCodeSelect
disabled="true"
cd_grp=9
v-model="row.lineclsf"
/>
<!-- :disabled="index === 0"-->
</VField>
</span>
<span v-if="column.key=='wkfst'" class="column">
<VField class="pr-1">
<VCodeSelect
disabled="true"
cd_grp=8
v-model="row.wkfst"
/>
<!-- :disabled="index === 0"-->
</VField>
</span>
</template>
</ComVFlexTable>
</p>
</template>
</VTabs>
</div>
</div>
</div>
</template>
<style scoped lang="scss">