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

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 BoardDetailModal from '../community/modal/BoardDetailModal'
import { handleFileDown } from '@/util/board-utils'
export default function MainContents() {
const { swalFire } = useSwal()
@ -22,8 +23,7 @@ export default function MainContents() {
const { getMessage } = useMessage()
const router = useRouter()
const globalLocaleState = useRecoilValue(globalLocaleStore)
const { promiseGet } = useAxios(globalLocaleState)
const { promiseGet, get } = useAxios(globalLocaleState)
//
const [recentNoticeList, setRecentNoticeList] = useState([])
@ -92,6 +92,33 @@ export default function MainContents() {
const [open, setOpen] = useState(false)
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 (
<div className="main-product-list-wrap">
<div className="main-product-list">
@ -114,7 +141,7 @@ export default function MainContents() {
>
<div className="item-inner">
<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.saleStoreName}</span>
</div>
@ -184,7 +211,13 @@ export default function MainContents() {
</ProductItem>
<ProductItem num={4} name={'Data Download'}>
<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>
</button>
<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) {
params.saleStoreId = session.storeId
}
async function fetchData() {
const apiUrl = `/api/object/list?${queryStringFormatter(params)}`
await get({
@ -278,6 +277,13 @@ export default function Stuff() {
if (!stuffSearchParams.saleStoreId) {
stuffSearchParams.saleStoreId = session.storeId
}
if (stuffSearchParams.schMyDataCheck) {
if (session.storeLvl === '1') {
//schOtherSelSaleStoreId schSelSaleStoreId saleStoreId
stuffSearchParams.schOtherSelSaleStoreId = ''
stuffSearchParams.schSelSaleStoreId = session.storeId
}
}
async function fetchData() {
const apiUrl = `/api/object/list?${queryStringFormatter(stuffSearchParams)}`
@ -312,6 +318,12 @@ export default function Stuff() {
if (!params.saleStoreId) {
stuffSearchParams.saleStoreId = session.storeId
}
if (stuffSearchParams.schMyDataCheck) {
//schOtherSelSaleStoreId schSelSaleStoreId saleStoreId
stuffSearchParams.schOtherSelSaleStoreId = ''
stuffSearchParams.schSelSaleStoreId = session.storeId
}
async function fetchData() {
const apiUrl = `/api/object/list?${queryStringFormatter(stuffSearchParams)}`
await get({ url: apiUrl }).then((res) => {
@ -347,6 +359,7 @@ export default function Stuff() {
code: 'S',
pageNo: 1,
pageSize: 100,
schMyDataCheck: false,
}
setStuffSearch({

View File

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

View File

@ -343,7 +343,7 @@ export default function StuffSearchCondition() {
})
} else {
if (session?.storeLvl === '2') {
if (otherSaleStoreList.length > 1) {
if (otherSaleStoreList.length === 1) {
setOtherSaleStoreId(session.storeId)
stuffSearch.schOtherSelSaleStoreId = session.storeId
stuffSearch.schObjectNo = ''
@ -356,6 +356,24 @@ export default function StuffSearchCondition() {
stuffSearch.schTempFlg = ''
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.endRow = 100
stuffSearch.schSortType = 'U'
@ -504,13 +522,23 @@ export default function StuffSearchCondition() {
})
} else {
if (stuffSearch.code === 'S') {
setOtherSaleStoreId(session?.storeId)
setStuffSearch({
...stuffSearch,
code: 'S',
schSelSaleStoreId: res[0].saleStoreId,
schOtherSelSaleStoreId: otherList[0].saleStoreId,
})
if (otherList.length === 1) {
setOtherSaleStoreId(session?.storeId)
setStuffSearch({
...stuffSearch,
code: 'S',
schSelSaleStoreId: res[0].saleStoreId,
schOtherSelSaleStoreId: otherList[0].saleStoreId,
})
} else {
setOtherSaleStoreId('')
setStuffSearch({
...stuffSearch,
code: 'S',
schSelSaleStoreId: res[0].saleStoreId,
schOtherSelSaleStoreId: '',
})
}
} else {
setOtherSaleStoreId(stuffSearch?.schOtherSelSaleStoreId)
setStuffSearch({
@ -561,7 +589,6 @@ export default function StuffSearchCondition() {
setOtherSaleStoreId('')
setSchSelSaleStoreId(key.saleStoreId)
stuffSearch.schSelSaleStoreId = key.saleStoreId
//T01 1
// 1 saleStoreId 2 API
let url = `/api/object/saleStore/${key.saleStoreId}/list?firstFlg=0&userId=${session?.userId}`
let otherList
@ -720,19 +747,61 @@ export default function StuffSearchCondition() {
setMyDataCheck(stuffSearch.schMyDataCheck)
}
} 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 = ''
if (stuffSearch.code === 'DELETE') {
//1
if (session.storeLvl === '1') {
stuffSearch.schOtherSelSaleStoreId = ''
setOtherSaleStoreId('')
} else {
//2
//34
stuffSearch.schOtherSelSaleStoreId = ''
setOtherSaleStoreId('')
}
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) {
stuffSearch.schMyDataCheck = e.target.value
setMyDataCheck(true)
if (otherSaleStoreList.length > 1) {
stuffSearch.schSelSaleStoreId = otherSaleStoreId
stuffSearch.schOtherSelSaleStoreId = ''
stuffSearch.schOtherSelSaleStoreId = session.storeId
setOtherSaleStoreId(session.storeId)
} else {
stuffSearch.schSelSaleStoreId = ''
stuffSearch.schOtherSelSaleStoreId = session.storeId
}
} else {
setMyDataCheck(false)