Merge branch 'main' into featrue/0526-update

This commit is contained in:
Yesol Choi
2025-06-04 13:59:43 +09:00
2 changed files with 64 additions and 18 deletions

View File

@@ -10,8 +10,11 @@ import {getContractList} from "/@src/service/contractApi.ts";
onBeforeMount(async () => { onBeforeMount(async () => {
await getIntegratedPaymentList() await getIntegratedApprovalList()
const userSession = useUserSession()
params.sessionUser = userSession.user.data
}) })
const isModalOpen = ref(false) const isModalOpen = ref(false)
const selectedRow = ref<any>(null) const selectedRow = ref<any>(null)
const prcsNo = ref<string>('') const prcsNo = ref<string>('')
@@ -63,6 +66,7 @@ const notyf = useNotyf()
const params = reactive({ const params = reactive({
title: '', title: '',
sessionUser: '',
priceData: [], priceData: [],
regSdt:'', regSdt:'',
regEdt:'', regEdt:'',
@@ -82,17 +86,32 @@ const params = reactive({
rowData: [], rowData: [],
}) })
const searchParamsList = reactive({
cateCd : '', //분야코드
stCd : '', //등록상태
apprStat : '', //결재상태
regNm : '', //담당자
regSdt: '',//등록시작일
regEdt: '',//등록종료일
})
function formatRegDt(value) { function formatRegDt(value) {
return value ? value.substring(0, 16) : '' return value ? value.substring(0, 16) : ''
} }
async function getIntegratedPaymentList() { async function getIntegratedApprovalList() {
const today = new Date()
searchParamsList.regSdt = new Date().setDate(today.getDate() - 30)
const approvalParams = { const approvalParams = {
title: '', title: params.title,
page: '1', regSdt: formatDatefromString(params.regSdt),
row: '10', regEdt: formatDatefromString(params.regEdt),
page: 1,
row: itemsPerPage,
sabun: '17131303', // 김진형 17131303, 손원창 17131304 sabun: '17131303', // 김진형 17131303, 손원창 17131304
} }
const result = await getIntegratedApproval(approvalParams) const result = await getIntegratedApproval(approvalParams)
params.approvalParams = result.content.map(item => ({ params.approvalParams = result.content.map(item => ({
...item, ...item,
@@ -134,17 +153,39 @@ const gubunMap = {
SVCM: '가격조사', SVCM: '가격조사',
} }
const searchApproval = async () => { const searchApproval = async (item) => {
const searchParams = {
params: { let itemPerChangePage;
title: params.title, if(item == totalPages.value){
page: '1', const remain = totalItems.value % itemsPerPage
row: '10', itemPerChangePage = remain === 0? itemsPerPage : remain
}, }else{
itemPerChangePage = itemsPerPage
} }
const searchParams = {
title: params.title,
// apprStat: searchParamsList.apprStat,
regSdt: formatDatefromString(searchParamsList.regSdt),//등록시작일
regEdt: formatDatefromString(searchParamsList.regEdt),//등록종료일
page: item,//페이지
row: itemPerChangePage, //아이템갯수
sabun: '17131303', // 김진형 17131303, 손원창 17131304
}
console.log('itemPerChangePage', itemPerChangePage)
console.log('itemsPerPage', itemsPerPage)
const result = await getIntegratedApproval(searchParams) const result = await getIntegratedApproval(searchParams)
params.approvalParams = result.content params.approvalParams = result.content.map(item => ({
...item,
process: gubunMap[item.gubun] || '',
}))
totalItems.value = result.totalElements
totalPages.value = result.totalPages
console.log(params.approvalParams) console.log(params.approvalParams)
console.log('itemPerChangePage', itemPerChangePage)
console.log('itemsPerPage', itemsPerPage)
} }
type User = (typeof users)[0] type User = (typeof users)[0]
@@ -176,7 +217,10 @@ const onRowClick = async (row) => {
} }
} }
watch(currentPage, (newParams) => {
currentPage.value = newParams
searchApproval(currentPage.value)
})
</script> </script>
<template> <template>
@@ -193,6 +237,7 @@ const onRowClick = async (row) => {
v-model="params.title" v-model="params.title"
class="input custom-text-filter" class="input custom-text-filter"
placeholder="결재제목" placeholder="결재제목"
@keydown.enter="searchApproval(1)"
> >
</VControl> </VControl>
</VField> </VField>
@@ -206,7 +251,7 @@ const onRowClick = async (row) => {
<div class="columns"> <div class="columns">
<div class="column is-6"> <div class="column is-6">
<VDatePicker <VDatePicker
v-model.string="params.regSdt" v-model.string="searchParamsList.regSdt"
color="green" color="green"
:masks="masks" :masks="masks"
trim-weeks trim-weeks
@@ -231,7 +276,7 @@ const onRowClick = async (row) => {
</div> </div>
<div class="column is-6"> <div class="column is-6">
<VDatePicker <VDatePicker
v-model.string="params.regEdt" v-model.string="searchParamsList.regEdt"
color="green" color="green"
:masks="masks" :masks="masks"
trim-weeks trim-weeks
@@ -262,7 +307,7 @@ const onRowClick = async (row) => {
color="primary" color="primary"
elevated elevated
icon="fas fa-search" icon="fas fa-search"
@click.stop="searchApproval" @click.stop="searchApproval(1)"
> >
검색 검색
</VButton> </VButton>

View File

@@ -62,7 +62,8 @@ const searchPrice = async (item) => {
let itemPerChangePage; let itemPerChangePage;
if(item == totalPages.value){ if(item == totalPages.value){
itemPerChangePage = totalItems.value / totalPages.value == 0? itemsPerPage : totalItems.value % itemsPerPage const remain = totalItems.value % itemsPerPage
itemPerChangePage = remain === 0? itemsPerPage : remain
}else{ }else{
itemPerChangePage = itemsPerPage itemPerChangePage = itemsPerPage
} }