From 77b1c6ead6fd56ea0534357ea642ef49cefe0d75 Mon Sep 17 00:00:00 2001 From: chaosBreaking Date: Sun, 13 Oct 2019 00:22:48 +0800 Subject: [PATCH] pic --- src/pages/identity/index.tsx | 69 ++++++++++++++++++++++++++--------- src/pages/identity/model.ts | 4 +- src/pages/identity/style.less | 22 ++++++++++- 3 files changed, 74 insertions(+), 21 deletions(-) diff --git a/src/pages/identity/index.tsx b/src/pages/identity/index.tsx index 268fe24..44ddf84 100644 --- a/src/pages/identity/index.tsx +++ b/src/pages/identity/index.tsx @@ -20,7 +20,8 @@ import kycIdBack from '@/assets/kycIdBack.svg' const idtypes = [ {key:'idcard', value:'身份证'}, - {key:'passport', value:'护照'}] + {key:'passport', value:'护照'} +] const nations = [ {key:'china', value:'中国'}, {key:'us', value:'美国'}, @@ -35,17 +36,25 @@ const IdentityPage: React.FC nameInput, kyc1Submitting }) => { - + const picCover = React.createRef(); + const picBack = React.createRef(); const [idtypesVisible, setIdtypesVisible] = useState(false); const [nationVisible, setNationVisible] = useState(false); + const onPicCover = (key: any) => { + console.log(key); + dispatch({ type: 'user/onUpdateState', payload: key }); + }; + const onPicBack = (key: any) => { + dispatch({ type: 'user/onUpdateState', payload: key }); + }; const onIdTypeSelected = (key: string) => { setIdtypesVisible(false); -// dispatch({ type: 'user/changeIdtype', payload: key }); + dispatch({ type: 'user/onUpdateState', payload: key }); }; const onNationSelected = (key: string) => { setIdtypesVisible(false); -// dispatch({ type: 'user/changeIdtype', payload: key }); + dispatch({ type: 'user/onUpdateState', payload: key }); }; const idtypeModal = ( @@ -70,7 +79,19 @@ const IdentityPage: React.FC title={formatMessage({ id: 'identity.chooseIdtype' })} /> ); - + const submitHandler = () => { + const formData = new FormData(); + const pic1 = picCover.current.files[0]; + const pic2 = picBack.current.files[0]; + // const p1 = new FileReader(pic1); // 用于预览 + // const p2 = new FileReader(pic2); + formData.append('pic1', pic1); + formData.append('pic2', pic2); + /** + 可以在这里直接 + axios.post(url, formData) + */ + } return (
title={formatMessage({ id: 'identity.title' })} /> {user &&
+ dispatch({ type: 'identity/onUpdateState', idcode: e.target.value })} + /> +
+
+
+ +
+ +
+
+
+ +
+ +
+
dispatch({ type: 'identity/onUpdateState', realname: e.target.value })} /> - message={user.idtype} // preview={fromLangToText(lang)} onClick={() => setIdtypesVisible(true)} - /> - dispatch({ type: 'identity/onUpdateState', idcode: e.target.value })} - /> -
- - -
+ /> */} +
一级认证未能通过审核,原因为:
后台返回的理由
@@ -118,7 +150,8 @@ const IdentityPage: React.FC type="primary" size="large" loading={kyc1Submitting} - onClick={() => dispatch({ type: 'identity/kyc1submit' })} + // onClick={() => dispatch({ type: 'identity/kyc1submit' })} + onClick={e => submitHandler(e)} >{formatMessage({ id: user.kyc1success ? 'identity.kyc1btn2' : 'identity.kyc1btn' })}
} {idtypeModal} diff --git a/src/pages/identity/model.ts b/src/pages/identity/model.ts index bfeb94e..ca3aa88 100644 --- a/src/pages/identity/model.ts +++ b/src/pages/identity/model.ts @@ -6,6 +6,7 @@ export interface IdentityModelState { kyc1success: boolean; nameInput: string; kyc1Submitting: boolean; + formData: any; } const model: Model = { @@ -15,13 +16,12 @@ const model: Model = { kyc1success: false, nameInput: '', kyc1Submitting: false, + formData: '' } as IdentityModelState, effects: { *kyc1submit(_, { put, all, call, select }) { -// alert('kyc1 submitting............') const { realname, idcode } = yield select((state:any) => state.identity) -// alert('realname =' + realname + ', idcode =' + idcode) if (!idcode || !realname) return yield put({ type: 'onUpdateState', kyc1Submitting: true }) try { diff --git a/src/pages/identity/style.less b/src/pages/identity/style.less index 5dc7934..56861dc 100644 --- a/src/pages/identity/style.less +++ b/src/pages/identity/style.less @@ -43,5 +43,25 @@ } .idPhoto{ - width:50%; + position: relative; + width:100%; + height:100%; +} +.uploadBox { + flex: 1 0 auto; + position: relative; + text-align: center; + .input { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + font-size: 0; + } + .imgBox { + width: 100%; + height: 100%; + position: relative; + } } \ No newline at end of file