This commit is contained in:
chaosBreaking
2019-10-13 00:22:48 +08:00
parent 0acfd826b1
commit 77b1c6ead6
3 changed files with 74 additions and 21 deletions

View File

@@ -20,7 +20,8 @@ import kycIdBack from '@/assets/kycIdBack.svg'
const idtypes = [ const idtypes = [
{key:'idcard', value:'身份证'}, {key:'idcard', value:'身份证'},
{key:'passport', value:'护照'}] {key:'passport', value:'护照'}
]
const nations = [ const nations = [
{key:'china', value:'中国'}, {key:'china', value:'中国'},
{key:'us', value:'美国'}, {key:'us', value:'美国'},
@@ -35,17 +36,25 @@ const IdentityPage: React.FC<DispatchProp & UserModelState & IdentityModelState>
nameInput, nameInput,
kyc1Submitting kyc1Submitting
}) => { }) => {
const picCover = React.createRef();
const picBack = React.createRef();
const [idtypesVisible, setIdtypesVisible] = useState(false); const [idtypesVisible, setIdtypesVisible] = useState(false);
const [nationVisible, setNationVisible] = 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) => { const onIdTypeSelected = (key: string) => {
setIdtypesVisible(false); setIdtypesVisible(false);
// dispatch({ type: 'user/changeIdtype', payload: key }); dispatch({ type: 'user/onUpdateState', payload: key });
}; };
const onNationSelected = (key: string) => { const onNationSelected = (key: string) => {
setIdtypesVisible(false); setIdtypesVisible(false);
// dispatch({ type: 'user/changeIdtype', payload: key }); dispatch({ type: 'user/onUpdateState', payload: key });
}; };
const idtypeModal = ( const idtypeModal = (
@@ -70,7 +79,19 @@ const IdentityPage: React.FC<DispatchProp & UserModelState & IdentityModelState>
title={formatMessage({ id: 'identity.chooseIdtype' })} 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 ( return (
<div className={styles.container}> <div className={styles.container}>
<Header <Header
@@ -78,13 +99,33 @@ const IdentityPage: React.FC<DispatchProp & UserModelState & IdentityModelState>
title={formatMessage({ id: 'identity.title' })} title={formatMessage({ id: 'identity.title' })}
/> />
{user && <div className={styles.content}> {user && <div className={styles.content}>
<input className={styles.myinput}
placeholder={formatMessage({ id: 'identity.idcode' })}
name="idcode"
value={user.idcode}
onChange={e => dispatch({ type: 'identity/onUpdateState', idcode: e.target.value })}
/>
<div style={{'display': 'flex', 'position': 'relative'}}>
<div className={styles.uploadBox}>
<div className={styles.imgBox}>
<img src={kycIdCover} className={styles.idPhoto} />
</div>
<input type="file" className={styles.input} ref={picCover}/>
</div>
<div className={styles.uploadBox}>
<div className={styles.imgBox}>
<img src={kycIdBack} className={styles.idPhoto}/>
</div>
<input type="file" className={styles.input} ref={picBack}/>
</div>
</div>
<input className={styles.myinput} <input className={styles.myinput}
placeholder={formatMessage({ id: 'identity.realname' })} placeholder={formatMessage({ id: 'identity.realname' })}
name="realname" name="realname"
value={user.realname} value={user.realname}
onChange={e => dispatch({ type: 'identity/onUpdateState', realname: e.target.value })} onChange={e => dispatch({ type: 'identity/onUpdateState', realname: e.target.value })}
/> />
<AccountItem {/* <AccountItem
className="group" className="group"
title="identity.nationality" title="identity.nationality"
message={user.nationality} message={user.nationality}
@@ -97,17 +138,8 @@ const IdentityPage: React.FC<DispatchProp & UserModelState & IdentityModelState>
message={user.idtype} message={user.idtype}
// preview={fromLangToText(lang)} // preview={fromLangToText(lang)}
onClick={() => setIdtypesVisible(true)} onClick={() => setIdtypesVisible(true)}
/> /> */}
<input className={styles.myinput}
placeholder={formatMessage({ id: 'identity.idcode' })}
name="idcode"
value={user.idcode}
onChange={e => dispatch({ type: 'identity/onUpdateState', idcode: e.target.value })}
/>
<div>
<img src={kycIdCover} className={styles.idPhoto}/>
<img src={kycIdBack} className={styles.idPhoto}/>
</div>
<div className={styles.prompt}> <div className={styles.prompt}>
<div></div> <div></div>
<div></div> <div></div>
@@ -118,7 +150,8 @@ const IdentityPage: React.FC<DispatchProp & UserModelState & IdentityModelState>
type="primary" type="primary"
size="large" size="large"
loading={kyc1Submitting} loading={kyc1Submitting}
onClick={() => dispatch({ type: 'identity/kyc1submit' })} // onClick={() => dispatch({ type: 'identity/kyc1submit' })}
onClick={e => submitHandler(e)}
>{formatMessage({ id: user.kyc1success ? 'identity.kyc1btn2' : 'identity.kyc1btn' })}</Button> >{formatMessage({ id: user.kyc1success ? 'identity.kyc1btn2' : 'identity.kyc1btn' })}</Button>
</div>} </div>}
{idtypeModal} {idtypeModal}

View File

@@ -6,6 +6,7 @@ export interface IdentityModelState {
kyc1success: boolean; kyc1success: boolean;
nameInput: string; nameInput: string;
kyc1Submitting: boolean; kyc1Submitting: boolean;
formData: any;
} }
const model: Model = { const model: Model = {
@@ -15,13 +16,12 @@ const model: Model = {
kyc1success: false, kyc1success: false,
nameInput: '', nameInput: '',
kyc1Submitting: false, kyc1Submitting: false,
formData: ''
} as IdentityModelState, } as IdentityModelState,
effects: { effects: {
*kyc1submit(_, { put, all, call, select }) { *kyc1submit(_, { put, all, call, select }) {
// alert('kyc1 submitting............')
const { realname, idcode } = yield select((state:any) => state.identity) const { realname, idcode } = yield select((state:any) => state.identity)
// alert('realname =' + realname + ', idcode =' + idcode)
if (!idcode || !realname) return if (!idcode || !realname) return
yield put({ type: 'onUpdateState', kyc1Submitting: true }) yield put({ type: 'onUpdateState', kyc1Submitting: true })
try { try {

View File

@@ -43,5 +43,25 @@
} }
.idPhoto{ .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;
}
} }