Browse Source

qna 관리자 파일다운로드 작업

pull/2/head
김장현 11 months ago
parent
commit
72ea54be43
  1. 5
      src/components/cstmrService/inquiry/QnaDetail.js
  2. 11
      src/containers/cstmrService/inquiry/AdminInquiryContainer.js
  3. 2
      src/modules/cstmrService/inquiry/reducers/index.ts
  4. 39
      src/modules/cstmrService/inquiry/sagas/index.ts

5
src/components/cstmrService/inquiry/QnaDetail.js

@ -85,14 +85,16 @@ export default function QnaDetatil({
/>
</FormGroup>
</Col>
{console.log(adminDetailForm)}
<Col className='list-input' md='4'>
{adminDetailForm.files?.length > 0 && (
<FormGroup>
<Label for='test'>첨부 파일</Label>
<Input
type='text'
bsSize='sm'
placeholder=''
value='파일명.jpg'
value={adminDetailForm.files[0].fileName}
disabled
/>
<div className='user-phone-btn'>
@ -106,6 +108,7 @@ export default function QnaDetatil({
</Button>
</div>
</FormGroup>
)}
</Col>
<Col className='list-input' md='12'>

11
src/containers/cstmrService/inquiry/AdminInquiryContainer.js

@ -6,7 +6,8 @@ import {
ADMIN_DETAIL,
ADMIN_ANSWER,
ADMIN_FILE_DOWN,
ADMIN_DELETE
ADMIN_DELETE,
ADMIN_DETAIL_INITAL
} from '../../../modules/cstmrService/inquiry/action';
import QnaSearchBox from '../../../components/cstmrService/inquiry/QnaSearchBox';
import QnaGrid from '../../../components/cstmrService/inquiry/QnaGrid';
@ -56,6 +57,12 @@ export default function AdminInquiryContainer() {
setAdminDetailForm({ ...adminDetail });
}, [adminDetail]);
useEffect(() => {
if (!isDetailModal) {
dispatch(ADMIN_DETAIL_INITAL());
}
}, [isDetailModal]);
// 관리자 문의 목록 조회
const handlerGetQnaList = () => {
const { category, anserStatus, createUserNm } = searchData;
@ -92,7 +99,7 @@ export default function AdminInquiryContainer() {
);
const handlerFileDownload = () => {
if (adminDetailForm.files.length <= 0) return;
console.log(adminDetailForm.files);
dispatch(ADMIN_FILE_DOWN.request(adminDetailForm.files));
};

2
src/modules/cstmrService/inquiry/reducers/index.ts

@ -23,6 +23,6 @@ export const qnaReducer = createReducer<IQnaState, Actions.QnaAction>(
// 관리자 상세 초기화
.handleAction(Actions.ADMIN_DETAIL_INITAL, (state, action) =>
produce(state, draft => {
draft.adminDetail = state.adminDetail;
draft.adminDetail = initalState.adminDetail;
})
);

39
src/modules/cstmrService/inquiry/sagas/index.ts

@ -1,11 +1,6 @@
import { call, put, takeEvery } from '@redux-saga/core/effects';
import { ActionType } from 'typesafe-actions';
import {
DELETE_MESSAGE,
DUPLATE_MESSAGE,
ERROR_MESSAGE,
SAVE_MESSAGE
} from '../../../../configs/constants';
import { DELETE_MESSAGE, HOST } from '../../../../configs/constants';
import * as MessageActions from '../../../comn/message/actions/comnMessageAction';
import * as Actions from '../action';
import * as Apis from '../apis';
@ -97,23 +92,21 @@ function* adminFileDownSaga(
) {
try {
const payload = action.payload;
const res = yield call(Apis.qnaAPI.adminFileDown, payload);
const { errorCode } = res;
if (errorCode) {
// 오류메시지 호출
yield put(
MessageActions.IS_ERROR({
errorCode: errorCode,
errorMessage: '처리중 오류가 발생하였습니다',
isHistoryBack: false,
isRefresh: false
})
);
return;
}
// yield put(Actions.ADMIN_FILE_DOWN.success(data));
console.log(payload);
let alink = document.createElement('a');
alink.href = `${HOST}${payload[0].downloadUrl.substring(1)}`;
alink.download = payload[0].fileName;
alink.click();
document.removeChild(alink);
// Promise.all(
// payload.map(i => {
// let alink = document.createElement('a');
// alink.href = `${HOST}${i.downloadUrl.substring(1)}`;
// alink.click();
// document.removeChild(alink);
// })
} catch (error) {
yield put(Actions.ADMIN_FILE_DOWN.failure(error));
}

Loading…
Cancel
Save