This commit is contained in:
김민식 2025-01-07 11:21:28 +09:00
commit d454a8b8de
6 changed files with 49 additions and 16 deletions

View File

@ -85,6 +85,7 @@ export default function MainContents() {
} }
} }
console.log('qcastState:::', qcastState?.businessCharger)
return ( return (
<div className="main-product-list-wrap"> <div className="main-product-list-wrap">
<div className="main-product-list"> <div className="main-product-list">
@ -106,8 +107,8 @@ 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.objectNo}</span> <span>{row.tempFlg === '0' ? row.objectNo : getMessage('stuff.gridData.tempObjectNo')}</span>
<span>{row.objectName}</span> <span>{row.objectName ? row.objectName : '-'}</span>
<span>{row.saleStoreName}</span> <span>{row.saleStoreName}</span>
</div> </div>
</li> </li>
@ -115,7 +116,13 @@ export default function MainContents() {
})} })}
</ul> </ul>
) : ( ) : (
<MainSkeleton count={6} /> <div className="recently-no-data">
<h3>{getMessage('main.content.objectList.noData1')}</h3>
<p>{getMessage('main.content.objectList.noData2')}</p>
<button type="button" className="btn-origin navy" onClick={() => router.push('/management/stuff/tempReg')}>
+ {getMessage('stuff.search.btn.register')}
</button>
</div>
)} )}
</ProductItem> </ProductItem>
<ProductItem num={2} name={getMessage('main.content.notice')}> <ProductItem num={2} name={getMessage('main.content.notice')}>

View File

@ -1307,12 +1307,16 @@ export default function StuffDetail() {
delete params_sort.workNo delete params_sort.workNo
delete params_sort.workName delete params_sort.workName
// console.log(JSON.stringify(detail_sort) === JSON.stringify(params_sort))
// console.log(Object.entries(detail_sort).toString() === Object.entries(params_sort).toString())
if (Object.entries(detail_sort).toString() === Object.entries(params_sort).toString()) { if (Object.entries(detail_sort).toString() === Object.entries(params_sort).toString()) {
return alert(getMessage('stuff.detail.noChgData')) return alert(getMessage('stuff.detail.noChgData'))
} }
if (params?.receiveUser !== '') {
if (params?.receiveUser.trim().length > 10) {
return alert(getMessage('stuff.detail.tempSave.message2'))
}
}
if (editMode === 'NEW') { if (editMode === 'NEW') {
await promisePost({ url: apiUrl, data: params }) await promisePost({ url: apiUrl, data: params })
.then((res) => { .then((res) => {
@ -1384,6 +1388,13 @@ export default function StuffDetail() {
params.saleStoreLevel = session.storeLvl params.saleStoreLevel = session.storeLvl
} }
//
if (params?.receiveUser !== '') {
if (params?.receiveUser.trim().length > 10) {
return alert(getMessage('stuff.detail.tempSave.message2'))
}
}
const apiUrl = '/api/object/save-object' const apiUrl = '/api/object/save-object'
if (objectNo) { if (objectNo) {
await promisePut({ url: apiUrl, data: params }) await promisePut({ url: apiUrl, data: params })

View File

@ -83,7 +83,13 @@ export function useRoofAllocationSetting(id) {
} }
setCurrentRoofList([ setCurrentRoofList([
...currentRoofList, ...currentRoofList,
{ ...currentRoofMaterial, selected: false, id: currentRoofMaterial.roofMatlCd, name: currentRoofMaterial.roofMatlNm }, {
...currentRoofMaterial,
selected: false,
id: currentRoofMaterial.roofMatlCd,
name: currentRoofMaterial.roofMatlNm,
index: currentRoofList.length,
},
]) ])
} }
@ -108,15 +114,18 @@ export function useRoofAllocationSetting(id) {
// 지붕재 오른쪽 마우스 클릭 후 단일로 지붕재 변경 필요한 경우 // 지붕재 오른쪽 마우스 클릭 후 단일로 지붕재 변경 필요한 경우
const handleSaveContext = () => { const handleSaveContext = () => {
const newRoofList = currentRoofList.map((roof, idx) => {
return { ...roof, index: idx }
})
setBasicSetting((prev) => { setBasicSetting((prev) => {
return { return {
...prev, ...prev,
selectedRoofMaterial: currentRoofList.find((roof) => roof.selected), selectedRoofMaterial: newRoofList.find((roof) => roof.selected),
} }
}) })
setRoofList(currentRoofList) setRoofList(newRoofList)
const selectedRoofMaterial = currentRoofList.find((roof) => roof.selected) const selectedRoofMaterial = newRoofList.find((roof) => roof.selected)
setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial) setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial)
closeAll() closeAll()
} }
@ -180,14 +189,18 @@ export function useRoofAllocationSetting(id) {
canvas.remove(wallLine) canvas.remove(wallLine)
}) })
const newRoofList = currentRoofList.map((roof, idx) => {
return { ...roof, index: idx }
})
setBasicSetting((prev) => { setBasicSetting((prev) => {
return { return {
...prev, ...prev,
selectedRoofMaterial: currentRoofList.find((roof) => roof.selected), selectedRoofMaterial: newRoofList.find((roof) => roof.selected),
} }
}) })
setRoofList(currentRoofList) setRoofList(newRoofList)
const roofs = canvas.getObjects().filter((obj) => obj.name === 'roof') const roofs = canvas.getObjects().filter((obj) => obj.name === 'roof')
@ -245,8 +258,6 @@ export function useRoofAllocationSetting(id) {
return roof return roof
}) })
newRoofList[selectedIndex].selected = true
setCurrentRoofList(newRoofList) setCurrentRoofList(newRoofList)
} }

View File

@ -665,6 +665,7 @@
"stuff.detail.tooltip.saleStoreId": "販売代理店または販売代理店IDを1文字以上入力してください", "stuff.detail.tooltip.saleStoreId": "販売代理店または販売代理店IDを1文字以上入力してください",
"stuff.detail.tooltip.surfaceType": "塩害地域の定義は各メーカーの設置マニュアルをご確認ください", "stuff.detail.tooltip.surfaceType": "塩害地域の定義は各メーカーの設置マニュアルをご確認ください",
"stuff.detail.tempSave.message1": "一時保存されました。商品番号を取得するには、必須項目をすべて入力してください。", "stuff.detail.tempSave.message1": "一時保存されました。商品番号を取得するには、必須項目をすべて入力してください。",
"stuff.detail.tempSave.message2": "担当者は10桁以下で入力してください.",
"stuff.detail.confirm.message1": "販売店情報を変更すると、設計依頼文書番号が削除されます。変更しますか?", "stuff.detail.confirm.message1": "販売店情報を変更すると、設計依頼文書番号が削除されます。変更しますか?",
"stuff.detail.delete.message1": "仕様が確定したものは削除できません。", "stuff.detail.delete.message1": "仕様が確定したものは削除できません。",
"stuff.detail.planList.title": "プランリスト", "stuff.detail.planList.title": "プランリスト",
@ -800,6 +801,8 @@
"main.storeName": "販売店名", "main.storeName": "販売店名",
"main.objectNo": "物件番号", "main.objectNo": "物件番号",
"main.faq": "FAQ", "main.faq": "FAQ",
"main.content.objectList.noData1": "登録された商品情報はありません.",
"main.content.objectList.noData2": "下のボタンをクリックして商品情報を登録してください.",
"main.content.objectList": "最近の更新物件一覧", "main.content.objectList": "最近の更新物件一覧",
"main.content.notice": "お知らせ", "main.content.notice": "お知らせ",
"main.content.download1": "操作マニュアル", "main.content.download1": "操作マニュアル",

View File

@ -675,6 +675,7 @@
"stuff.detail.tooltip.saleStoreId": "판매대리점 또는 판매대리점ID를 1자 이상 입력하세요", "stuff.detail.tooltip.saleStoreId": "판매대리점 또는 판매대리점ID를 1자 이상 입력하세요",
"stuff.detail.tooltip.surfaceType": "염해지역 정의는 각 메이커의 설치 메뉴얼을 확인해주십시오", "stuff.detail.tooltip.surfaceType": "염해지역 정의는 각 메이커의 설치 메뉴얼을 확인해주십시오",
"stuff.detail.tempSave.message1": "임시저장 되었습니다. 물건번호를 획득하려면 필수 항목을 모두 입력해 주십시오.", "stuff.detail.tempSave.message1": "임시저장 되었습니다. 물건번호를 획득하려면 필수 항목을 모두 입력해 주십시오.",
"stuff.detail.tempSave.message2": "담당자는 10자리 이하로 입력해 주십시오.",
"stuff.detail.confirm.message1": "판매점 정보를 변경하면, 설계의뢰 문서번호가 삭제됩니다. 변경하시겠습니까?", "stuff.detail.confirm.message1": "판매점 정보를 변경하면, 설계의뢰 문서번호가 삭제됩니다. 변경하시겠습니까?",
"stuff.detail.delete.message1": "사양이 확정된 물건은 삭제할 수 없습니다.", "stuff.detail.delete.message1": "사양이 확정된 물건은 삭제할 수 없습니다.",
"stuff.detail.planList.title": "플랜리스트", "stuff.detail.planList.title": "플랜리스트",
@ -810,6 +811,8 @@
"main.storeName": "판매점명", "main.storeName": "판매점명",
"main.objectNo": "물건번호", "main.objectNo": "물건번호",
"main.faq": "FAQ", "main.faq": "FAQ",
"main.content.objectList.noData1": "등록된 물건정보가 없습니다.",
"main.content.objectList.noData2": "아래 버튼을 클릭하여 물건정보를 등록하십시오.",
"main.content.objectList": "최근 갱신 물건목록", "main.content.objectList": "최근 갱신 물건목록",
"main.content.notice": "공지사항", "main.content.notice": "공지사항",
"main.content.download1": "조작메뉴얼", "main.content.download1": "조작메뉴얼",

View File

@ -224,9 +224,7 @@ export const roofMaterialsAtom = atom({
export const selectedRoofMaterialSelector = selector({ export const selectedRoofMaterialSelector = selector({
key: 'selectedRoofMaterialSelector', key: 'selectedRoofMaterialSelector',
get: ({ get }) => { get: ({ get }) => {
const addedRoofs = get(addedRoofsState) return get(basicSettingState).selectedRoofMaterial
return addedRoofs.find((roof) => roof.selected)
}, },
}) })