|
@@ -1,16 +1,51 @@
|
|
|
import QRCode from 'qrcode.react';
|
|
|
-import { connect } from 'dva';
|
|
|
import React, { useEffect, useState } from 'react';
|
|
|
+import { Spin } from 'antd';
|
|
|
|
|
|
+let timer;
|
|
|
function DDCode(props) {
|
|
|
+ const { value, onChange } = props;
|
|
|
+ const [loading, setLoading] = useState(false);
|
|
|
+ const [time, setTime] = useState(0);
|
|
|
+
|
|
|
+ const queryCode = async () => {
|
|
|
+ setLoading(true);
|
|
|
+ // TODO 查询接口获得code
|
|
|
+
|
|
|
+ setLoading(false);
|
|
|
+ clearInterval(timer);
|
|
|
+ onChange({
|
|
|
+ code: '',
|
|
|
+ });
|
|
|
+ let second = 60 * 5;
|
|
|
+ if (second <= 0) return;
|
|
|
+ setTime(second);
|
|
|
+
|
|
|
+ timer = setInterval(() => {
|
|
|
+ setTime(time => {
|
|
|
+ if (time > 0) {
|
|
|
+ return time--;
|
|
|
+ }
|
|
|
+ return time;
|
|
|
+ });
|
|
|
+ }, second * 1000);
|
|
|
+ };
|
|
|
return (
|
|
|
<div>
|
|
|
- 钉钉扫码授权
|
|
|
- <QRCode size={128} value={'http://192.168.20.80:8000/bom/#/bom/dd-login'} />
|
|
|
+ {time > 0 ? (
|
|
|
+ <div>
|
|
|
+ 码授权已获取
|
|
|
+ <br />
|
|
|
+ 有效时间:{time}
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
+ <Spin spinning={loading}>
|
|
|
+ <QRCode size={128} value={'http://192.168.20.80:8000/bom/#/bom/dd-login'} />
|
|
|
+ 请使用钉钉扫码授权<a onClick={queryCode}>刷新</a>
|
|
|
+ </Spin>
|
|
|
+ )}
|
|
|
</div>
|
|
|
);
|
|
|
}
|
|
|
|
|
|
-export default connect(({ loading }) => ({
|
|
|
- loading,
|
|
|
-}))(DDCode);
|
|
|
+export default DDCode;
|