WMS, TMS, OMS λ± λ€μν Management System λ€μ΄ μμ΅λλ€. νμ¬μμ WMS νλ‘μ νΈμ νλ‘ νΈμλ λΆλΆμ 맑μ κ°λ°μ νλ©΄μ λͺ κ°μ§ λλ μ¬νμ΄ μλλ°μ. κ·Έκ²μ XMS λ‘ λννλ νλ‘κ·Έλ¨λ€μ 곡ν΅μ μ μ λ ₯κ°, 볡μ‘ν Form λ€μ μ²λ¦¬νλ€λ κ²μ λλ€.
μ¬λ¬ μ λ ₯κ° λ€μ΄ μ‘΄μ¬νλ Form μ ꡬνν΄ λ³΄κ³ νλ©΄μμ μ‘°ν, λ±λ‘, μμ λ₯Ό ꡬνν΄ λ³΄μμ΅λλ€.
νλ¬Ό κΈ°μ¬μ λ°°μ‘ μ£Όλ¬Έ μ 보λ₯Ό λ±λ‘νκ³ ν μ΄λΈμμ μ£Όλ¬Έ νλͺ©μ μ‘°ν λ° μμ λ₯Ό ν νλ©΄μμ ν μ μλ XMS μ λλ€.
μ λ ₯ν μ μλ κΈ°λ³Έ νλͺ© (μ΄λ¦ ~ μΆκ·Όμ§) μ μΆκ°λ‘ μμ°¨μ§ μ 보λ₯Ό λ±λ‘νλ©°, μμ°¨μ§ μ 보λ μ΅λ 3κ°κΉμ§ μΆκ°ν μ μμ΅λλ€.
μμ°¨μ§ μ 보λ μ΅μ ν κ°κ° λ€μ΄κ°μΌ νλ©°, κΈ°λ³Έ νλͺ©μ λ¬Όλμ μ μΈν λλ¨Έμ§ νλͺ©λ€μ νμ νλͺ©μ λλ€.
νλͺ© νλͺ©μμ 'μ§μ μ λ ₯' μ μ ν μ μ€λ₯Έμͺ½ μ λ ₯κ°μ νμ νλͺ©μ λλ€. λ¬Όλ νλͺ©μμ νλͺ©μ μ ν μ μ€λ₯Έμͺ½ μ λ ₯κ°μ νμ νλͺ©μ λλ€.
κ·Έλ¦¬κ³ ν μ΄λΈμ page, νμ΄μ§μ size μ νμ λ§λ μ‘°ν (GET) λ°μ΄ν°λ₯Ό μμ²ν©λλ€.
μ¬μ©λ κΈ°μ μ€ν λ° λΌμ΄λΈλ¬λ¦¬λ λ€μκ³Ό κ°μ΅λλ€.
- nextjs : v13.2.4
- react : v18.2.0
- typescript : v5.0.2
- react-hook-form : v7.43.8
- @tanstack/react-query : v4.28.0
- msw : v1.1.0
- emotion/react, emotion/styled : v11.10.6
- tailwindcss : v3.2.7
- antd : v5.3.2
- node js: v16.18.0
- package manager: yarn v1.22.19
κΈ°λ³Έ default branch λ₯Ό develop μΌλ‘ μ€μ ν΄ λμκ³ μμ μ feature/task1 κ³Ό κ°μ λΈλμΉλ₯Ό λ°μ PR μ ν΅ν΄ develop λΈλμΉμ merge νλ λ°©μμΌλ‘ μ§ννμμ΅λλ€.
ν΄λΉ develop μμ main λΈλμΉλ‘ ν₯νλ Pull Requestλ₯Ό μμ± νμκ³ Github μμ νμΈνμ€ μ μμ΅λλ€.
κ·Έλ¬λ―λ‘ μμΉλμ΄ μλ branch κ° develop branch μΈμ§ νμΈν΄ μ£Όμκ³ , κ·Έλ μ§ μλ€λ©΄ develop λΈλμΉλ‘ μ΄λν΄ μ£ΌμΈμ.
- yarn install μ ν΅ν΄ ν¨ν€μ§ dependency λ±μ μΈμ€ν¨ ν©λλ€.
- μ΄ν yarn start 컀맨λλ‘ νλ‘ νΈμλ κ°λ° μλ²λ₯Ό μλν©λλ€.
μ λ ₯ νΌμμ νλͺ©, λ¬Όλμ μ ννκ³ μΈλΆμ¬νμ Input μ μ λ ₯ ν λ€ λ€μ μ νμ ν΄μ νλ©΄ ν΄λΉ μ λ ₯κ°μ΄ μμ΄μ§λλ‘ κ΅¬ννμμ΅λλ€.
λ μ§ μ νμ Ant Design μ DatePicker μ»΄ν¬λνΈλ₯Ό 컀μ€ν νμ¬ μ¬μ©νμμ΅λλ€. μ΄μΈμ input, select, button μ μ체 μ»΄ν¬λνΈλ‘ κ°λ°νμμ΅λλ€.
λͺ¨λ¬ μ»΄ν¬λνΈλ μ§μ μ체 μ»΄ν¬λνΈλ‘ κ°λ°νμμ΅λλ€.
νλ² μμ²ν API μ λ°μ΄ν° (pagination μ νμ΄μ§ μ ν λ±) λ μΊμ±νμ¬ API λ₯Ό μ¬ νΈμΆ νμ§ μμ΅λλ€. κ·Έλ¦¬κ³ λ³λμ ν μΌλ‘ μ½λλ₯Ό μμ±ν΄ 볡μ‘ν μ½λλ₯Ό μ΅μν νμμ΅λλ€.
export const useAddOrderMutation = (
successCallback: (result: {
success: boolean;
message: string;
data: OrderFields;
}) => void
) => {
const client = useQueryClient();
return useMutation((body: ReqBody) => api.addOrder(body), {
onSuccess: (result) => {
client
.invalidateQueries(['orderlist'])
.then(() => successCallback(result));
},
});
};
μ λ ₯ νΌμ ν¨κ³Όμ μΌλ‘ μ²λ¦¬νκΈ° μν΄ react-hook-form μ μ¬μ©νμκ³ useFieldArray λ₯Ό ν΅ν΄ μμ°¨μ§ μ 보 μΆκ° λ° μμ κΈ°λ₯μ ꡬννμμ΅λλ€.
μΆκ°, μμ λ²νΌμ ν΄λ¦ μ 쑰건μ μν (boolean) κ° λ°λμ λ°λΌ λ²νΌμ΄ disabled μ²λ¦¬ λλλ‘ νμμ΅λλ€.
ν μ΄λΈ λμ΄λ₯Ό μ§μ νμ¬ μ€ν¬λ‘€μ΄ μκΈ°λ©° ν€λκ° κ³ μ λμ΄ λ³΄μ΄κ² λ©λλ€. (νΉμ μΆκ° μμ² ν λ°μ΄ν°κ° μ μλ³΄μΌ λ μ€ν¬λ‘€μ νλ² μλ‘ μ¬λ € μ£ΌμκΈΈ λΆνλ립λλ€)
WMS κ°λ°μ μ°Έμ¬ν΄ 보면μ λ€μν κ²½νμ ν΄ λ³Ό μ μμμ΅λλ€. λ€λ§ μ΄λ¬ν μμ λ΄μμ ν¬νΈν΄λ¦¬μ€μ gif νλ©΄ λ±μΌλ‘λ§ λ³΄μ¬μ§λ λ°μ μ€μ Form μ μ½λλ‘ μ΄λ»κ² λ€λ£¨λμ§ μ μ μμ΄ μμ¬μ΄ μ μ΄ μμμ΅λλ€.
κ·Έλμ μ΄λ² κΈ°νμ Form μ μ΄λ»κ² λ€λ£¨λμ§, λ°±μλμμμ λ°μ΄ν°κ° μμ λ msw λ₯Ό μ΄λ»κ² μ¬μ©νλμ§, 리μ‘νΈ μΏΌλ¦¬λ μ΄λ»κ² μ μ©ν΄ 보μλμ§μ λν΄ λ―Έλ νλ‘μ νΈλ‘ λ§λ€μ΄ 보μμ΅λλ€.
λΆμ‘±ν μ μ΄λ μ΄ν΄κ° μ λμ§ μλ λΆλΆμ λν΄μλ μ΄μ μμ± νΉμ seolleung22@gmail.com μΌλ‘ λ©μΌ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€.