Appearance
저장
서버에 저장는 데이터는 FlexGrid
의 CollectionView
에서 추출해서 전송한다.
명명규칙
- 저장 프로그램의 호출 url은
save
로 시작한다.
리턴 타입. ResMap과 json
저장후에 메시지에 저장 건수가 필요하면 저장 건수를 담고, 아니면 단순히 ResMap
을 리턴한다.
Front End
그리드에서 저장할 데이터 추출 해서 저장
flex.getSaveData()
함수로추가
,수정
,삭제
된 데이터를 추출한다.getSaveData()
는 저장할 데이터가 없으면null
이다.- 저장할 파라미터를 object로 생성한다.
파라미터의key
가 서버의 저장 파라미터 Bean의 필드명과 매핑된다. - 저장 함수를 호출하기전에 모든 유효성 검증을 완료한다.
- 유효성 검증 실패시 경고는
await vmAler(메시지)
함수를 사용한다. - 유효성 검증 완료후
await vmConfirm(메시지)
으로 저장할지 물어본다. vmConfirm
의 return type은Promise<'YES' | 'NO' | 'CANCEL'>
이므로answer === 'YES'
와 같이 비교한다.await vmConfirm() === 'YES'
또는if (vmConfirm())
와 같이 함수의 결과를 비교하면 않됨.- 유효성 검증이 완료되면
http.post
함수를 실행한다.
첫번째는 저장할 url, 두번째 파라미터는 저자할 파라미터이다.
async/await와 http.post 사용
async function save() {
const saveData = flex.getSaveData()
if (!saveData) {
await vmAlert('저장할 데이터가 없습니다.')
} else {
const answer = await vmConfirm('저장하시겠습니까?')
if (answer === 'YES') {
const { data } = await http.post('/formGrid/save', { flex: saveData })
console.log('save data result', data)
}
}
}
// 저장할 변수 타입
let saveData: {
flex: VmCollectionViewItem[] | null,
flexDetail: VmCollectionViewItem[] | null
}
async function save() {
saveData = {
flex: flex.getSaveData(),
flexDetail: flexDetail.getSaveData()
}
const valid = validate(saveData)
if ( valid ) {
const answer = await vmConfirm('저장하시겠습니까?')
if (answer === 'YES') {
const { data } = await http.post('/formGrid/save', saveData)
console.log('save data result', data)
}
}
}
function validate(saveData:{flex: VmCollectionViewItem[] | null, flex: VmCollectionViewItem[] | null}) {
let result = false;
if (!saveData.flex && !saveData.flexDetail) {
await vmAlert('저장할 데이터가 없습니다.')
}
return result;
}
Back End