junh_eee(이준희)
8 months ago
10 changed files with 200 additions and 5 deletions
@ -0,0 +1,18 @@
|
||||
import { createSlice } from '@reduxjs/toolkit'; |
||||
import { initDron } from './droneState'; |
||||
import { getDroneList } from './droneThunk'; |
||||
|
||||
const droneSlice = createSlice({ |
||||
name: 'droneSlice', |
||||
initialState: initDron, |
||||
reducers: {}, |
||||
extraReducers: builder => { |
||||
builder.addCase(getDroneList.fulfilled, (state, action) => { |
||||
const data = action.payload; |
||||
state.droneList = data.items; |
||||
state.droneTotal = data.total; |
||||
}); |
||||
} |
||||
}); |
||||
|
||||
export const droneReducer2 = droneSlice.reducer; |
@ -0,0 +1,95 @@
|
||||
export const initDron: IDroneState = { |
||||
droneList: undefined, |
||||
droneTotal: 0, |
||||
droneDetail: undefined, |
||||
|
||||
idntfList: undefined, |
||||
idntfCount: 0, |
||||
|
||||
selectGroup: undefined, |
||||
isRefreshIdntf: false, |
||||
page: 1 |
||||
}; |
||||
|
||||
export interface IDroneState { |
||||
droneList: IDrone[] | undefined; |
||||
droneTotal: number | 0; |
||||
droneDetail: IDrone | undefined; |
||||
|
||||
idntfList: IIdntf[] | undefined; |
||||
idntfCount: number | 0; |
||||
|
||||
selectGroup: ISelectGroup | undefined; |
||||
isRefreshIdntf: boolean | false; |
||||
page: number | 1; |
||||
} |
||||
|
||||
export interface ISelectGroup { |
||||
groupId: string; |
||||
groupNm: string; |
||||
} |
||||
|
||||
export interface IDrone { |
||||
groupId: string; |
||||
arcrftSno: number; |
||||
arcrftHght: number; |
||||
arcrftLngth: number; |
||||
arcrftModelNm: string; |
||||
arcrftTypeCd: string; |
||||
arcrftWdth: number; |
||||
arcrftWght: number; |
||||
cameraYn: string; |
||||
createDt: string; |
||||
createUserId: string; |
||||
insrncYn: string; |
||||
prdctCmpnNm: string; |
||||
prdctNum: string; |
||||
takeoffWght: number; |
||||
updateDt: string; |
||||
updateUserId: string; |
||||
wghtTypeCd: string; |
||||
} |
||||
|
||||
export interface ICreateDroneRq { |
||||
arcrftModelNm: string; |
||||
arcrftTypeCd: string; |
||||
cameraYn: string; |
||||
createUserId: string; |
||||
groupId: string; |
||||
groupNm: string; |
||||
imageUrl: string; |
||||
insrncYn: string; |
||||
prdctCmpnNm: string; |
||||
prdctNum: string; |
||||
updateUserId: string; |
||||
wghtTypeCd: string; |
||||
} |
||||
|
||||
export interface IUpdateDroneRq extends ICreateDroneRq { |
||||
arcrftSno: number; |
||||
} |
||||
|
||||
export interface IIdntf { |
||||
idntfNum: string; |
||||
arcrftSno: number; |
||||
idntfTypeCd: string; |
||||
ownerNm: string; |
||||
hpno: string; |
||||
updateDt: string; |
||||
createDt: string; |
||||
cstmrSno: number; |
||||
groupId: string; |
||||
} |
||||
|
||||
export interface ICreateIdntfRq { |
||||
idntfNum: string; |
||||
idntfTypeCd: string; |
||||
ownerNm: string; |
||||
hpno: string; |
||||
} |
||||
|
||||
export interface IUpdateIdntfRq { |
||||
idntfNum: string; |
||||
ownerNm: string; |
||||
hpno: string; |
||||
} |
@ -0,0 +1,21 @@
|
||||
import axios from '../../../../modules/utils/customAxiosUtil'; |
||||
import qs from 'qs'; |
||||
|
||||
import { createAsyncThunk } from '@reduxjs/toolkit'; |
||||
|
||||
// 드론 목록 조회
|
||||
export const getDroneList = createAsyncThunk( |
||||
'basis/getDroneList', |
||||
async (data: any) => { |
||||
try { |
||||
const queryString = qs.stringify(data, { |
||||
addQueryPrefix: true, |
||||
arrayFormat: 'repeat' |
||||
}); |
||||
const res = await axios.get(`api/bas/dron/list${queryString}`); |
||||
return res.data; |
||||
} catch (error) { |
||||
console.error(error); |
||||
} |
||||
} |
||||
); |
@ -0,0 +1,11 @@
|
||||
import { combineReducers } from '@reduxjs/toolkit'; |
||||
import { droneReducer2 } from './features/basis/drone/droneSlice'; |
||||
|
||||
const rootReducer = (state: any, action: any) => { |
||||
const combineReducer = combineReducers({ |
||||
drone: droneReducer2 |
||||
}); |
||||
|
||||
return combineReducer(state, action); |
||||
}; |
||||
export default rootReducer; |
@ -0,0 +1,17 @@
|
||||
import { configureStore } from '@reduxjs/toolkit'; |
||||
import rootReducer from './rootReducer'; |
||||
import { |
||||
TypedUseSelectorHook, |
||||
useDispatch as useDispatchs, |
||||
useSelector as useSelectors |
||||
} from 'react-redux'; |
||||
|
||||
export const store = configureStore({ |
||||
reducer: rootReducer |
||||
}); |
||||
|
||||
export type RootState = ReturnType<typeof rootReducer>; |
||||
export const useSelector: TypedUseSelectorHook<RootState> = useSelectors; |
||||
|
||||
type AppDispatch = typeof store.dispatch; |
||||
export const useDispatch = () => useDispatchs<AppDispatch>(); |
Loading…
Reference in new issue