우편번호, 설계의뢰 팝업 더블클릭

This commit is contained in:
basssy 2025-01-21 17:39:15 +09:00
parent a0eb6cf3fa
commit a4f39df521
4 changed files with 188 additions and 45 deletions

View File

@ -15,6 +15,7 @@ import { QcastContext } from '@/app/QcastProvider'
import { useSwal } from '@/hooks/useSwal' import { useSwal } from '@/hooks/useSwal'
import BoardDetailModal from '../community/modal/BoardDetailModal' import BoardDetailModal from '../community/modal/BoardDetailModal'
import { handleFileDown } from '@/util/board-utils'
export default function MainContents() { export default function MainContents() {
const { swalFire } = useSwal() const { swalFire } = useSwal()
@ -22,8 +23,7 @@ export default function MainContents() {
const { getMessage } = useMessage() const { getMessage } = useMessage()
const router = useRouter() const router = useRouter()
const globalLocaleState = useRecoilValue(globalLocaleStore) const globalLocaleState = useRecoilValue(globalLocaleStore)
const { promiseGet } = useAxios(globalLocaleState) const { promiseGet, get } = useAxios(globalLocaleState)
// //
const [recentNoticeList, setRecentNoticeList] = useState([]) const [recentNoticeList, setRecentNoticeList] = useState([])
@ -92,6 +92,33 @@ export default function MainContents() {
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const [modalNoticeNo, setModalNoticeNo] = useState('') const [modalNoticeNo, setModalNoticeNo] = useState('')
//
const handleDetailFileListDown = async (noticeNo) => {
//396, 395
const url = `/api/board/detail`
const params = new URLSearchParams({
noticeNo: noticeNo,
})
const apiUrl = `${url}?${params.toString()}`
const resultData = await get({ url: apiUrl })
if (resultData) {
if (resultData.result.code === 200) {
const boardDetailFileList = resultData.data.listFile
if (boardDetailFileList && Array.isArray(boardDetailFileList)) {
boardDetailFileList.forEach((boardFile) => {
handleFileDown(boardFile)
})
}
} else {
swalFire({ type: 'alert', text: resultData.result.message, icon: 'error' })
}
}
}
return ( return (
<div className="main-product-list-wrap"> <div className="main-product-list-wrap">
<div className="main-product-list"> <div className="main-product-list">
@ -114,7 +141,7 @@ export default function MainContents() {
> >
<div className="item-inner"> <div className="item-inner">
<span className="time">{dayjs(row.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')}</span> <span className="time">{dayjs(row.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')}</span>
<span>{row.tempFlg === '0' ? row.objectNo : getMessage('stuff.gridData.tempObjectNo')}</span> <span className="product">{row.tempFlg === '0' ? row.objectNo : getMessage('stuff.gridData.tempObjectNo')}</span>
<span>{row.objectName ? row.objectName : '-'}</span> <span>{row.objectName ? row.objectName : '-'}</span>
<span>{row.saleStoreName}</span> <span>{row.saleStoreName}</span>
</div> </div>
@ -184,7 +211,13 @@ export default function MainContents() {
</ProductItem> </ProductItem>
<ProductItem num={4} name={'Data Download'}> <ProductItem num={4} name={'Data Download'}>
<div className="data-download-wrap"> <div className="data-download-wrap">
<button className="data-down" type="button" onClick={() => swalFire({ text: getMessage('main.content.alert.noFile'), type: 'alert' })}> <button
className="data-down"
type="button"
onClick={() => {
// handleDetailFileListDown(395)
}}
>
<span>{getMessage('main.content.download1')}</span> <span>{getMessage('main.content.download1')}</span>
</button> </button>
<button className="data-down" type="button" onClick={() => swalFire({ text: getMessage('main.content.alert.noFile'), type: 'alert' })}> <button className="data-down" type="button" onClick={() => swalFire({ text: getMessage('main.content.alert.noFile'), type: 'alert' })}>

View File

@ -222,7 +222,6 @@ export default function Stuff() {
if (!params.saleStoreId) { if (!params.saleStoreId) {
params.saleStoreId = session.storeId params.saleStoreId = session.storeId
} }
async function fetchData() { async function fetchData() {
const apiUrl = `/api/object/list?${queryStringFormatter(params)}` const apiUrl = `/api/object/list?${queryStringFormatter(params)}`
await get({ await get({
@ -278,6 +277,13 @@ export default function Stuff() {
if (!stuffSearchParams.saleStoreId) { if (!stuffSearchParams.saleStoreId) {
stuffSearchParams.saleStoreId = session.storeId stuffSearchParams.saleStoreId = session.storeId
} }
if (stuffSearchParams.schMyDataCheck) {
if (session.storeLvl === '1') {
//schOtherSelSaleStoreId schSelSaleStoreId saleStoreId
stuffSearchParams.schOtherSelSaleStoreId = ''
stuffSearchParams.schSelSaleStoreId = session.storeId
}
}
async function fetchData() { async function fetchData() {
const apiUrl = `/api/object/list?${queryStringFormatter(stuffSearchParams)}` const apiUrl = `/api/object/list?${queryStringFormatter(stuffSearchParams)}`
@ -312,6 +318,12 @@ export default function Stuff() {
if (!params.saleStoreId) { if (!params.saleStoreId) {
stuffSearchParams.saleStoreId = session.storeId stuffSearchParams.saleStoreId = session.storeId
} }
if (stuffSearchParams.schMyDataCheck) {
//schOtherSelSaleStoreId schSelSaleStoreId saleStoreId
stuffSearchParams.schOtherSelSaleStoreId = ''
stuffSearchParams.schSelSaleStoreId = session.storeId
}
async function fetchData() { async function fetchData() {
const apiUrl = `/api/object/list?${queryStringFormatter(stuffSearchParams)}` const apiUrl = `/api/object/list?${queryStringFormatter(stuffSearchParams)}`
await get({ url: apiUrl }).then((res) => { await get({ url: apiUrl }).then((res) => {
@ -347,6 +359,7 @@ export default function Stuff() {
code: 'S', code: 'S',
pageNo: 1, pageNo: 1,
pageSize: 100, pageSize: 100,
schMyDataCheck: false,
} }
setStuffSearch({ setStuffSearch({

View File

@ -4,7 +4,6 @@ import { useState, useEffect, useRef, useContext } from 'react'
import { useRouter, useSearchParams } from 'next/navigation' import { useRouter, useSearchParams } from 'next/navigation'
import { Button } from '@nextui-org/react' import { Button } from '@nextui-org/react'
import Select, { components } from 'react-select' import Select, { components } from 'react-select'
import Link from 'next/link'
import { useAxios } from '@/hooks/useAxios' import { useAxios } from '@/hooks/useAxios'
import { globalLocaleStore } from '@/store/localeAtom' import { globalLocaleStore } from '@/store/localeAtom'
import { isEmptyArray, isNotEmptyArray, isObjectNotEmpty, queryStringFormatter } from '@/util/common-utils' import { isEmptyArray, isNotEmptyArray, isObjectNotEmpty, queryStringFormatter } from '@/util/common-utils'
@ -289,10 +288,12 @@ export default function StuffDetail() {
display: 'none', display: 'none',
} }
} }
// if (managementState?.createUser === 'T01' && session?.userId !== 'T01') { if (managementState?.createUser === 'T01') {
//createUser T01 T01 !!!!!!!! if (session.userId !== 'T01') {
//buttonStyle = { display: 'none' } // #474
// } buttonStyle = { display: 'none' }
}
}
return ( return (
<> <>
<div className="grid-cell-btn"> <div className="grid-cell-btn">
@ -301,7 +302,6 @@ export default function StuffDetail() {
type="button" type="button"
className="grid-btn" className="grid-btn"
onClick={() => { onClick={() => {
//mid:5(), /pid:
setFloorPlanObjectNo({ floorPlanObjectNo: params.data.objectNo }) setFloorPlanObjectNo({ floorPlanObjectNo: params.data.objectNo })
setIsGlobalLoading(true) setIsGlobalLoading(true)
setMenuNumber(5) setMenuNumber(5)
@ -1025,6 +1025,8 @@ export default function StuffDetail() {
const _objectNameOmit = watch('objectNameOmit') const _objectNameOmit = watch('objectNameOmit')
// saleStoreId: '', //1 ID // saleStoreId: '', //1 ID
const _saleStoreId = watch('saleStoreId') const _saleStoreId = watch('saleStoreId')
// 2
const _otherSaleStoreId = watch('otherSaleStoreId')
// zipNo: '', // // zipNo: '', //
const _zipNo = watch('zipNo') const _zipNo = watch('zipNo')
// prefId: '', // // prefId: '', //
@ -1043,6 +1045,7 @@ export default function StuffDetail() {
useEffect(() => { useEffect(() => {
if (editMode === 'NEW') { if (editMode === 'NEW') {
const formData = form.getValues() const formData = form.getValues()
let errors = {} let errors = {}
if (!formData.receiveUser || formData.receiveUser.trim().length === 0) { if (!formData.receiveUser || formData.receiveUser.trim().length === 0) {
errors.receiveUser = true errors.receiveUser = true
@ -1057,6 +1060,12 @@ export default function StuffDetail() {
errors.saleStoreId = true errors.saleStoreId = true
} }
if (session?.storeLvl === '2') {
if (!formData.otherSaleStoreId) {
errors.otherSaleStoreId = true
}
}
if (!formData.zipNo) { if (!formData.zipNo) {
errors.zipNo = true errors.zipNo = true
} }
@ -1099,6 +1108,12 @@ export default function StuffDetail() {
errors.saleStoreId = true errors.saleStoreId = true
} }
if (session?.storeLvl === '2') {
if (!formData.otherSaleStoreId) {
errors.otherSaleStoreId = true
}
}
if (!formData.zipNo) { if (!formData.zipNo) {
errors.zipNo = true errors.zipNo = true
} }
@ -1130,6 +1145,7 @@ export default function StuffDetail() {
_objectName, _objectName,
_objectNameOmit, _objectNameOmit,
_saleStoreId, _saleStoreId,
_otherSaleStoreId,
_zipNo, _zipNo,
_prefId, _prefId,
_address, _address,
@ -1595,6 +1611,13 @@ export default function StuffDetail() {
// //
const getCellDoubleClicked = (params) => { const getCellDoubleClicked = (params) => {
//#474
if (managementState.createUser === 'T01') {
if (session.userId !== 'T01') {
return false
}
}
if (params?.column?.colId !== 'estimateDate') { if (params?.column?.colId !== 'estimateDate') {
if (params?.data?.planNo && params?.data?.objectNo) { if (params?.data?.planNo && params?.data?.objectNo) {
let objectNo = params?.data?.objectNo let objectNo = params?.data?.objectNo
@ -2462,6 +2485,7 @@ export default function StuffDetail() {
<td> <td>
<div className="flx-box"> <div className="flx-box">
<div className="select-wrap mr5" style={{ width: '567px' }}> <div className="select-wrap mr5" style={{ width: '567px' }}>
상세
<Select <Select
id="long-value-select2" id="long-value-select2"
instanceId="long-value-select2" instanceId="long-value-select2"
@ -2473,16 +2497,18 @@ export default function StuffDetail() {
onChange={onSelectionChange2} onChange={onSelectionChange2}
getOptionLabel={(x) => x.saleStoreName} getOptionLabel={(x) => x.saleStoreName}
getOptionValue={(x) => x.saleStoreId} getOptionValue={(x) => x.saleStoreId}
// isDisabled={ isDisabled={
// managementState?.tempFlg === '0' managementState?.tempFlg === '0'
// ? true ? true
// : session?.storeLvl === '1' && form.watch('saleStoreId') != '' : session?.storeLvl === '1'
// ? false ? otherSaleStoreList.length > 0
// : false ? false
// } : true
isDisabled={managementState?.tempFlg === '0' ? true : false} : otherSaleStoreList.length === 1
? true
: false
}
isClearable={managementState?.tempFlg === '0' ? false : true} isClearable={managementState?.tempFlg === '0' ? false : true}
// isClearable={managementState?.tempFlg === '0' ? false : session?.storeLvl === '1' ? true : true}
value={otherSaleStoreList.filter(function (option) { value={otherSaleStoreList.filter(function (option) {
return option.saleStoreId === otherSelOptions return option.saleStoreId === otherSelOptions
})} })}

View File

@ -343,7 +343,7 @@ export default function StuffSearchCondition() {
}) })
} else { } else {
if (session?.storeLvl === '2') { if (session?.storeLvl === '2') {
if (otherSaleStoreList.length > 1) { if (otherSaleStoreList.length === 1) {
setOtherSaleStoreId(session.storeId) setOtherSaleStoreId(session.storeId)
stuffSearch.schOtherSelSaleStoreId = session.storeId stuffSearch.schOtherSelSaleStoreId = session.storeId
stuffSearch.schObjectNo = '' stuffSearch.schObjectNo = ''
@ -356,6 +356,24 @@ export default function StuffSearchCondition() {
stuffSearch.schTempFlg = '' stuffSearch.schTempFlg = ''
stuffSearch.schMyDataCheck = false stuffSearch.schMyDataCheck = false
stuffSearch.startRow = 1
stuffSearch.endRow = 100
stuffSearch.schSortType = 'U'
stuffSearch.pageNo = 1
stuffSearch.pageSize = 100
} else if (otherSaleStoreList.length > 1) {
setOtherSaleStoreId('')
stuffSearch.schOtherSelSaleStoreId = session.storeId
stuffSearch.schObjectNo = ''
stuffSearch.schAddress = ''
stuffSearch.schObjectName = ''
stuffSearch.schSaleStoreName = ''
stuffSearch.schReceiveUser = ''
stuffSearch.schDispCompanyName = ''
stuffSearch.schDateType = 'U'
stuffSearch.schTempFlg = ''
stuffSearch.schMyDataCheck = false
stuffSearch.startRow = 1 stuffSearch.startRow = 1
stuffSearch.endRow = 100 stuffSearch.endRow = 100
stuffSearch.schSortType = 'U' stuffSearch.schSortType = 'U'
@ -504,13 +522,23 @@ export default function StuffSearchCondition() {
}) })
} else { } else {
if (stuffSearch.code === 'S') { if (stuffSearch.code === 'S') {
setOtherSaleStoreId(session?.storeId) if (otherList.length === 1) {
setStuffSearch({ setOtherSaleStoreId(session?.storeId)
...stuffSearch, setStuffSearch({
code: 'S', ...stuffSearch,
schSelSaleStoreId: res[0].saleStoreId, code: 'S',
schOtherSelSaleStoreId: otherList[0].saleStoreId, schSelSaleStoreId: res[0].saleStoreId,
}) schOtherSelSaleStoreId: otherList[0].saleStoreId,
})
} else {
setOtherSaleStoreId('')
setStuffSearch({
...stuffSearch,
code: 'S',
schSelSaleStoreId: res[0].saleStoreId,
schOtherSelSaleStoreId: '',
})
}
} else { } else {
setOtherSaleStoreId(stuffSearch?.schOtherSelSaleStoreId) setOtherSaleStoreId(stuffSearch?.schOtherSelSaleStoreId)
setStuffSearch({ setStuffSearch({
@ -561,7 +589,6 @@ export default function StuffSearchCondition() {
setOtherSaleStoreId('') setOtherSaleStoreId('')
setSchSelSaleStoreId(key.saleStoreId) setSchSelSaleStoreId(key.saleStoreId)
stuffSearch.schSelSaleStoreId = key.saleStoreId stuffSearch.schSelSaleStoreId = key.saleStoreId
//T01 1
// 1 saleStoreId 2 API // 1 saleStoreId 2 API
let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${session?.userId}` let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${session?.userId}`
let otherList let otherList
@ -720,19 +747,61 @@ export default function StuffSearchCondition() {
setMyDataCheck(stuffSearch.schMyDataCheck) setMyDataCheck(stuffSearch.schMyDataCheck)
} }
} else { } else {
setStartDate(stuffSearch?.schFromDt ? stuffSearch.schFromDt : dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD')) if (stuffSearch.code === 'DELETE') {
setEndDate(stuffSearch?.schToDt ? stuffSearch.schToDt : dayjs(new Date()).format('YYYY-MM-DD')) //1
setObjectNo(stuffSearch.schObjectNo ? stuffSearch.schObjectNo : objectNo) if (session.storeLvl === '1') {
setSaleStoreName(stuffSearch.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName) stuffSearch.schOtherSelSaleStoreId = ''
setAddress(stuffSearch.schAddress ? stuffSearch.schAddress : address) setOtherSaleStoreId('')
setobjectName(stuffSearch.schObjectName ? stuffSearch.schObjectName : objectName) } else {
setDispCompanyName(stuffSearch.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName) //2
setReceiveUser(stuffSearch.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser) //34
setDateType(stuffSearch.schDateType ? stuffSearch.schDateType : dateType) stuffSearch.schOtherSelSaleStoreId = ''
setTempFlg(stuffSearch.schTempFlg ? stuffSearch.schTempFlg : tempFlg) setOtherSaleStoreId('')
setMyDataCheck(stuffSearch.schMyDataCheck) }
if (session.storeLvl !== '1') {
stuffSearch.schSelSaleStoreId = '' setObjectNo('')
setSaleStoreName('')
setAddress('')
setobjectName('')
setDispCompanyName('')
setReceiveUser('')
objectNoRef.current.value = ''
saleStoreNameRef.current.value = ''
addressRef.current.value = ''
objectNameRef.current.value = ''
dispCompanyNameRef.current.value = ''
receiveUserRef.current.value = ''
stuffSearch.schObjectNo = ''
stuffSearch.schAddress = ''
stuffSearch.schObjectName = ''
stuffSearch.schSaleStoreName = ''
stuffSearch.schReceiveUser = ''
stuffSearch.schDispCompanyName = ''
stuffSearch.schDateType = 'U'
stuffSearch.schTempFlg = ''
stuffSearch.schMyDataCheck = false
stuffSearch.schFromDt = dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD')
stuffSearch.schToDt = dayjs(new Date()).format('YYYY-MM-DD')
stuffSearch.startRow = 1
stuffSearch.endRow = 100
stuffSearch.schSortType = 'U'
stuffSearch.pageNo = 1
stuffSearch.pageSize = 100
} else {
setStartDate(stuffSearch?.schFromDt ? stuffSearch.schFromDt : dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'))
setEndDate(stuffSearch?.schToDt ? stuffSearch.schToDt : dayjs(new Date()).format('YYYY-MM-DD'))
setObjectNo(stuffSearch.schObjectNo ? stuffSearch.schObjectNo : objectNo)
setSaleStoreName(stuffSearch.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName)
setAddress(stuffSearch.schAddress ? stuffSearch.schAddress : address)
setobjectName(stuffSearch.schObjectName ? stuffSearch.schObjectName : objectName)
setDispCompanyName(stuffSearch.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName)
setReceiveUser(stuffSearch.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser)
setDateType(stuffSearch.schDateType ? stuffSearch.schDateType : dateType)
setTempFlg(stuffSearch.schTempFlg ? stuffSearch.schTempFlg : tempFlg)
setMyDataCheck(stuffSearch.schMyDataCheck)
if (session.storeLvl !== '1') {
stuffSearch.schSelSaleStoreId = ''
}
} }
} }
@ -802,10 +871,12 @@ export default function StuffSearchCondition() {
if (e.target.checked) { if (e.target.checked) {
stuffSearch.schMyDataCheck = e.target.value stuffSearch.schMyDataCheck = e.target.value
setMyDataCheck(true) setMyDataCheck(true)
if (otherSaleStoreList.length > 1) { if (otherSaleStoreList.length > 1) {
stuffSearch.schSelSaleStoreId = otherSaleStoreId stuffSearch.schOtherSelSaleStoreId = session.storeId
stuffSearch.schOtherSelSaleStoreId = '' setOtherSaleStoreId(session.storeId)
} else {
stuffSearch.schSelSaleStoreId = ''
stuffSearch.schOtherSelSaleStoreId = session.storeId
} }
} else { } else {
setMyDataCheck(false) setMyDataCheck(false)