fix : 대금청구 기능 개발중

This commit is contained in:
Yesol Choi
2025-06-04 13:57:59 +09:00
parent 2656bcc2fc
commit 7944cf7dda
2 changed files with 267 additions and 257 deletions

View File

@@ -59,11 +59,10 @@ const params = reactive({
page: 1, page: 1,
row: 10, row: 10,
flexColumn: [ flexColumn: [
{ key: 'btext', label: '이름', value: {} }, //{ key: 'btext', label: '이름', value: {} },
{ key: 'lineclsf', label: '구분', value: {} },
{ key: 'bname', label: '사원번호', value: {} }, { key: 'bname', label: '사원번호', value: {} },
{ key: 'posit', label: '부서', value: {} }, { key: 'abscd', label: '근태관리', value: {} },
{ key: 'lineclsf', label: '담당', value: {} },
{ key: 'wkfst', label: '결재요청', value: {} },
], ],
apprList:[], apprList:[],
modalColumn: [], modalColumn: [],
@@ -111,7 +110,13 @@ const createChit = async () => {
projk : selectCostCode.value, projk : selectCostCode.value,
trtGubun : '',//어떤 값인지 모름 trtGubun : '',//어떤 값인지 모름
txBillSeq : '',//어떤 값인지 모름 txBillSeq : '',//어떤 값인지 모름
slipAtts: '' // 파일 업로드 slipAtts: [], // 파일 업로드
zwf0011t : {
belnr: '',
wkfid: '',
wkftx: '',
apprs: params.apprList,
}
} }
notyf.dismissAll() notyf.dismissAll()
res = await saveTempSlip(createParams) res = await saveTempSlip(createParams)

View File

@@ -3,6 +3,7 @@
import {getBeforeSlipDetail, saveTempSlip} from "/@src/service/slipApi.ts"; import {getBeforeSlipDetail, saveTempSlip} from "/@src/service/slipApi.ts";
import {formatDatefromStringDate} from "/@src/utils/common/comfunc.ts"; import {formatDatefromStringDate} from "/@src/utils/common/comfunc.ts";
import {ApprsList} from "/@src/utils/types.ts"; import {ApprsList} from "/@src/utils/types.ts";
import {VTabsItem} from "/@src/components/app-vuero/VCustomTabs.vue";
onBeforeMount(async ()=>{ onBeforeMount(async ()=>{
const result = await getBeforeSlipDetail(history.state.key) const result = await getBeforeSlipDetail(history.state.key)
@@ -31,7 +32,7 @@ const getDetailList = (item) => {
selectCostCode.value = ''// kostl wbs projk selectCostCode.value = ''// kostl wbs projk
// //
// //
params.apprList = item.zwf0011t.apprs[0].value[0] params.apprList = item.zwf0011t.apprs
console.log("apprsList.value",apprsList.value) console.log("apprsList.value",apprsList.value)
} }
@@ -61,11 +62,10 @@ const params = reactive({
page: 1, page: 1,
row: 10, row: 10,
flexColumn: [ flexColumn: [
{ key: 'btext', label: '이름'}, //
{ key: 'bname', label: '사원번호'}, { key: 'lineclsf', label: '구분', value: {} },
{ key: 'posit', label: '부서'}, { key: 'bname', label: '사원번호', value: {} },
{ key: 'lineclsf', label: '담당'}, { key: 'abscd', label: '근태관리', value: {} },
{ key: 'wkfst', label: '결재요청'},
], ],
apprList:[], apprList:[],
modalColumn: [], modalColumn: [],
@@ -113,7 +113,8 @@ const createChit = async () => {
projk : selectCostCode.value, projk : selectCostCode.value,
trtGubun : '',// trtGubun : '',//
txBillSeq : '',// txBillSeq : '',//
slipAtts: '' // slipAtts: '', //
zwf0011t : { params.apprList}
} }
notyf.dismissAll() notyf.dismissAll()
res = await saveTempSlip(createParams) res = await saveTempSlip(createParams)
@@ -127,6 +128,12 @@ const createChit = async () => {
loading.value = false loading.value = false
} }
} }
const selectedTab = ref<VTabsItem[]>()
const addTabFromRow =()=>{
console.log("row",row)
console.log("row",index)
}
</script> </script>
<template> <template>
@@ -147,307 +154,305 @@ const createChit = async () => {
<col style="width: 10%;"> <col style="width: 10%;">
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<td>소속</td> <td>소속</td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VCodeSelect <VCodeSelect
v-model="affiliationCode" v-model="affiliationCode"
cd_grp=11 > cd_grp=11 >
</VCodeSelect> </VCodeSelect>
</VField> </VField>
</td> </td>
<td colspan="7" /> <td colspan="7" />
</tr> </tr>
<tr> <tr>
<td>계약명</td> <td>계약명</td>
<td colspan="9"> <td colspan="9">
<VField> <VField>
<VControl> <VControl>
<input <input
v-model="params.title" v-model="params.title"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="계약명" placeholder="계약명"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>계약상대자</td> <td>계약상대자</td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VControl> <VControl>
<input <input
v-model="params.regNm" v-model="params.regNm"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="사업자번호" placeholder="사업자번호"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VControl> <VControl>
<input <input
v-model="params.place" v-model="params.place"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="업체명" placeholder="업체명"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
<td> <td>
<VButton color="danger"> <VButton color="danger">
구매처 확인 구매처 확인
</VButton> </VButton>
</td> </td>
<td> <td>
<VButton color="success"> <VButton color="success">
정상 정상
</VButton> </VButton>
</td> </td>
<td colspan="2" /> <td colspan="2" />
</tr> </tr>
<tr> <tr>
<td>공급가액</td> <td>공급가액</td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VControl> <VControl>
<input <input
:value="formattedNumber" :value="formattedNumber"
placeholder="금액" placeholder="금액"
@input="onInput" @input="onInput"
class="input custom-text-filter" class="input custom-text-filter"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
<td style="color: black">(부가세 별도)</td> <td style="color: black">(부가세 별도)</td>
<td style="background-color: var(--primary); text-align: center"> <td style="background-color: var(--primary); text-align: center">
<span>세금코드</span> <span>세금코드</span>
</td> </td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VCodeSelect v-model="taxCode" cd_grp="12"> <VCodeSelect v-model="taxCode" cd_grp="12">
<template #code="{ item }"> <template #code="{ item }">
{{ item.cd }} {{ item.cd }}
</template> </template>
</VCodeSelect> </VCodeSelect>
</VField> </VField>
</td> </td>
<td style="background-color: var(--primary); text-align: center">통화</td> <td style="background-color: var(--primary); text-align: center">통화</td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VCodeSelect v-model="currencyCode" cd_grp="13"> <VCodeSelect v-model="currencyCode" cd_grp="13">
<template #code="{ item }"> <template #code="{ item }">
{{ item.cd }} {{ item.cd }}
</template> </template>
</VCodeSelect> </VCodeSelect>
</VField> </VField>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>증빙일</td> <td>증빙일</td>
<td colspan="2"> <td colspan="2">
<div> <div>
<VDatePicker <VDatePicker
v-model="params.regSdt" v-model="params.regSdt"
color="green" color="green"
trim-weeks trim-weeks
> >
<template #default="{ inputValue, inputEvents }"> <template #default="{ inputValue, inputEvents }">
<VField> <VField>
<VControl icon="lucide:calendar"> <VControl icon="lucide:calendar">
<input <input
class="input v-input" class="input v-input"
type="text" type="text"
:value="inputValue" :value="inputValue"
placeholder="증빙일" placeholder="증빙일"
v-on="inputEvents" v-on="inputEvents"
> >
</VControl> </VControl>
</VField> </VField>
</template> </template>
</VDatePicker> </VDatePicker>
</div> </div>
</td> </td>
<td /> <td />
<td style="background-color: var(--primary); text-align: center"> <td style="background-color: var(--primary); text-align: center">
<span>전기일</span> <span>전기일</span>
</td> </td>
<td colspan="2"> <td colspan="2">
<div> <div>
<VDatePicker <VDatePicker
v-model="params.regSdt2" v-model="params.regSdt2"
color="green" color="green"
trim-weeks trim-weeks
> >
<template #default="{ inputValue, inputEvents }"> <template #default="{ inputValue, inputEvents }">
<VField> <VField>
<VControl icon="lucide:calendar"> <VControl icon="lucide:calendar">
<input <input
class="input v-input" class="input v-input"
type="text" type="text"
:value="inputValue" :value="inputValue"
placeholder="전기일" placeholder="전기일"
v-on="inputEvents" v-on="inputEvents"
> >
</VControl> </VControl>
</VField> </VField>
</template> </template>
</VDatePicker> </VDatePicker>
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>계좌관리</td> <td>계좌관리</td>
<td> <td>
<VField> <VField>
<VControl> <VControl>
<input <input
v-model="params.bankl" v-model="params.bankl"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="계약번호" placeholder="계약번호"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VControl> <VControl>
<input <input
v-model="params.bankn" v-model="params.bankn"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="계좌번호" placeholder="계좌번호"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
<td> <td>
<VButton color="info"> <VButton color="info">
계좌조회 계좌조회
</VButton> </VButton>
</td> </td>
<td> <td>
<VButton color="success"> <VButton color="success">
정상 정상
</VButton> </VButton>
</td> </td>
<td></td> <td></td>
<td style="background-color: var(--primary); text-align: center"> <td style="background-color: var(--primary); text-align: center">
<span>세금계산서</span> <span>세금계산서</span>
</td> </td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VCodeSelect <VCodeSelect
v-model="taxInvoiceCode" v-model="taxInvoiceCode"
cd_grp=12 > cd_grp=12 >
</VCodeSelect> </VCodeSelect>
</VField> </VField>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>예산관리</td> <td>예산관리</td>
<td> <td>
<VButton <VButton
color="primary" color="primary"
@click="centeredActionsOpen = true" @click="centeredActionsOpen = true"
> >
G/L계정// G/L계정//
</VButton> </VButton>
</td> </td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VCodeSelect <VCodeSelect
v-model="accountSubjectCode" v-model="accountSubjectCode"
cd_grp=12 > cd_grp=12 >
</VCodeSelect> </VCodeSelect>
</VField> </VField>
</td> </td>
<td> <td>
<VField> <VField>
<VSelect v-model="selectCostCode"> <VSelect v-model="selectCostCode">
<option v-for="opt in selectCostCodeOptions" :key="opt.key"> <option v-for="opt in selectCostCodeOptions" :key="opt.key">
{{ opt.text }} {{ opt.text }}
</option> </option>
</VSelect> </VSelect>
</VField> </VField>
</td> </td>
<td colspan="2"> <td colspan="2">
<VField> <VField>
<VControl> <VControl>
<input <input
v-model="params.title" v-model="params.title"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="코드" placeholder="코드"
> >
</VControl> </VControl>
</VField> </VField>
</td> </td>
<td colspan="4"></td> <td colspan="4"></td>
</tr> </tr>
<tr> <tr>
<td>첨부파일</td> <td>첨부파일</td>
<td colspan="1"> <td colspan="1">
<VButton color="info"> <VButton color="info">
등록 등록
</VButton> </VButton>
</td> </td>
<td colspan="5"> <td colspan="5">
<div>('준공보고서' 또는 '검수보고서' )</div> <div>('준공보고서' 또는 '검수보고서' )</div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="bottom-button"> <div class="bottom-button">
<VButton @click="createChit"> </VButton> <VButton @click="createChit"> </VButton>
<VButton @click="cancel"> </VButton> <VButton @click="cancel"> </VButton>
</div> </div>
<VTabs <VCustomTabs
type="boxed" type="boxed"
selected="team" v-model:selected="selectedTab"
:tabs="[ :tabs="params.apprList">
{ label: '결재', value:'team' }, <template #tab-link-label="{ tab }">
]" {{ tab.label }}
> </template>
<template #tab="{ activeValue }"> <template #tab="{ activeValue }">
<p v-if="activeValue === 'team'"> <div>
<ComVFlexTable <ComVFlexTable
:data="params.apprList" :data="activeValue? activeValue[0] : []"
:columns="params.flexColumn" :columns="params.flexColumn"
:compact="true"> :compact="true"
<template #body-cell="{ row, column, index, value }"> :clickable="true"
<span v-if="column.key=='lineclsf'" class="column"> @rowClick="addTabFromRow"
>
<template #body-cell="{row, column}">
<span v-if="column.key=='lineclsf'" class="column">
<VField class="pr-1"> <VField class="pr-1">
<VCodeSelect <VCodeSelect
disabled="true"
cd_grp=9 cd_grp=9
v-model="row.lineclsf" v-model="row.lineclsf"
/> />
<!-- :disabled="index === 0"-->
</VField> </VField>
</span> </span>
<span v-if="column.key=='wkfst'" class="column"> <span v-else-if="column.key=='wkfst'" class="column">
<VField class="pr-1"> <VField class="pr-1">
<VCodeSelect <VCodeSelect
disabled="true"
cd_grp=8 cd_grp=8
v-model="row.wkfst" v-model="row.wkfst"
/> />
<!-- :disabled="index === 0"-->
</VField> </VField>
</span> </span>
</template> <span v-else>{{ row[column.key] }}</span>
</ComVFlexTable> </template>
</p> </ComVFlexTable>
</template> </div>
</VTabs> </template>
</VCustomTabs>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
@@ -457,12 +462,12 @@ const createChit = async () => {
} }
.datatable-table { .datatable-table {
td{ td{
font-family: var(--font),serif; font-family: var(--font),serif;
vertical-align: middle; vertical-align: middle;
padding: 4px 20px; padding: 4px 20px;
border-bottom: 1px solid var(--fade-grey); border-bottom: 1px solid var(--fade-grey);
} }
td:nth-child(1) { td:nth-child(1) {
background-color: var(--primary); background-color: var(--primary);
@@ -506,11 +511,11 @@ button:nth-child(3) {
} }
.disabled-button { .disabled-button {
//opacity: 0.5; //opacity: 0.5;
background-color: #ccc; background-color: #ccc;
cursor: not-allowed; cursor: not-allowed;
//transition: all 0.2s; //transition: all 0.2s;
} }
</style> </style>