Commit 34a0cb86 by FE

Merge branch 'new-share'

parents 18c2e46b c39b1536
......@@ -570,6 +570,7 @@ class Detail extends Component {
history={this.props.history}
country={this.props.country}
delCountryNum={this.props.delCountryNum}
userInfo={this.props.user.data}
/>
}
......
import React, { PureComponent } from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';
import {CopyToClipboard} from 'react-copy-to-clipboard';
import classnames from 'classnames';
import { isEmpty } from 'lodash';
import { browser } from '@/utils';
......@@ -28,13 +28,11 @@ class RedPacket extends PureComponent {
shareInfo: {
url: '',
share_code: '',
command: ''
command: '【七月在线送你一个红包】https://www.julyedu.com/'
},
doneInfo: { //领取后的状态,1:领取成功,2:领取超时
status: 2,
txt: '手机号绑定超时,红包已失效!',
// txt: '今日已领取5.6元代金券碎片!',
// txt: '今日已领取5.6元现金!',
desc: ''
},
money: '', // 红包金额,
......@@ -51,49 +49,82 @@ class RedPacket extends PureComponent {
componentDidMount() {
// console.log(this.props);
const share_code = getParam('share_code');
const { country } = this.props;
const { shareInfo } = this.state;
if(country.code) {
this.setState({
country,
shareInfo: {
...shareInfo,
share_code: country.code
}
});
// 检查收否领取过
http.post(
`${API.home}/sys/redPacket/split`,
{
action: 'check',
share_code: country.code
}
).then(res => {
console.log(res);
const { code, data } = res.data;
if(code === 200) {
this.judgePopupTypeFromCountry();
// is_receive 是否领取过 0-否 1-是
if(data.is_receive) {
this.judgeReceiveStatus(data, 8);
}else {
this.setState({
type: 3
});
}
// 清除
this.props.delCountryNum();
// 分享链接进入
this.judgePopupType();
// 微信进入
const isWechat = getParam('wechat');
const { userInfo } = this.props;
if(isWechat === '1' && !browser.isWeixin) {
if(userInfo && userInfo.uid) {
const type = window.localStorage.getItem('redpacket-click');
if(type === 'split') {
http.get(`${API.home}/sys/redPacket/shareUrl/${getParam('id')}`).then(res => {
const { code, data } = res.data;
if(code === 200) {
// 检查收否领取过
http.post(
`${API.home}/sys/redPacket/split`,
{
action: 'check',
share_code: data.share_code
}
).then(res => {
const { code, data } = res.data;
if(code === 200) {
window.localStorage.removeItem('redpacket-click');
// is_receive 是否领取过 0-否 1-是
if(data.is_receive) {
this.judgeReceiveStatus(data, 8);
}else {
this.setState({
type: 3
});
}
}
})
}
});
}else {
this.setState({
type: 1
});
window.localStorage.removeItem('redpacket-click');
}
})
}else {
this.setState({
type: 1
});
}
}
// 分享链接进入
if(share_code) {
this.fetchShareInfo();
}
// 获取分享信息
fetchShareInfo = () => {
http.get(`${API.home}/sys/redPacket/shareUrl/${getParam('id')}`).then(res => {
const { code, data } = res.data;
if(code === 200) {
this.setState({
shareInfo: data
});
}
});
}
// 分享后进入,链接中带 share_code 字段
judgePopupType = () => {
const share_code = getParam('share_code');
const { shareInfo } = this.state;
if(share_code && share_code !== 'null') {
this.setState({
shareInfo: {
...shareInfo,
shareInfo: Object.assign({}, shareInfo, {
share_code
}
})
});
// 检查收否领取过
......@@ -133,6 +164,47 @@ class RedPacket extends PureComponent {
}
}
// 选择区号后进入
judgePopupTypeFromCountry = () => {
const { country } = this.props;
const { shareInfo } = this.state;
if(country.code) {
this.setState({
country,
shareInfo: Object.assign({}, shareInfo, {
share_code: country.code
})
});
// 检查收否领取过
http.post(
`${API.home}/sys/redPacket/split`,
{
action: 'check',
share_code: country.code
}
).then(res => {
console.log(res);
const { code, data } = res.data;
if(code === 200) {
// is_receive 是否领取过 0-否 1-是
if(data.is_receive) {
this.judgeReceiveStatus(data, 8);
}else {
this.setState({
type: 3
});
}
// 清除
this.props.delCountryNum();
}
})
}
}
// 判断领取状态--领取后
judgeReceiveStatus = (data, bindType=4) => {
let txt = '';
......@@ -209,25 +281,21 @@ class RedPacket extends PureComponent {
// 获取分享信息
handleToShare = () => {
const { history } = this.props;
http.get(`${API.home}/sys/redPacket/shareUrl/${getParam('id')}`).then(res => {
const { code, data } = res.data;
if(code === 4030 || code === 4040) {
if(browser.isWeixin) {
this.setState({
type: 2
});
}else {
history.push('/passport/login');
}
}
if(code === 200) {
const { history, userInfo } = this.props;
if(browser.isWeixin) {
this.setState({
type: 2
});
history.push(`/detail?id=${getParam('id')}&wechat=1`);
}else {
if(userInfo && userInfo.uid) {
this.setState({
shareInfo: data,
type: browser.isWeixin? 2 : 1
type: 1
});
}else {
history.push('/passport/login');
}
});
}
}
// 提示关注公众号
......@@ -354,13 +422,6 @@ class RedPacket extends PureComponent {
}
}
// 复制口令
handleToCopy = () => {
this.setState({
isCopy: true
});
}
getCaptchaInstance = instance => {
this.setState({
captchaInstance: instance
......@@ -515,7 +576,7 @@ class RedPacket extends PureComponent {
render() {
// console.log(this.props);
const { history } = this.props;
const { history, userInfo } = this.props;
const {
type,
isCopy,
......@@ -570,10 +631,25 @@ class RedPacket extends PureComponent {
{command.length > 16? `${command.substr(0, 16)}...` : command}
</p>
{!isCopy
? userInfo && userInfo.uid
? (
<CopyToClipboard text={command} onCopy={this.handleToCopy}>
<button className="popup-password__button--copy">复制口令</button>
</CopyToClipboard>
<CopyToClipboard
text={command}
onCopy={() => this.setState({
isCopy: true
})}
>
<button className="popup-password__button--copy">复制口令</button>
</CopyToClipboard>
)
: (
<button
className="popup-password__button--copy"
onClick={() => {
window.localStorage.setItem('redpacket-click', 'copy');
history.push('/passport/login');
}}
>复制口令</button>
)
: <p className="popup-password__success">复制成功,快发送给好友吧~</p>
}
......@@ -585,7 +661,21 @@ class RedPacket extends PureComponent {
</div>
<i
className="popup-password__button--close iconfont iconiconfront-2"
onClick={() => this.handleToClose(true)}
onClick={() => {
if(getParam('wechat') === '1') {
if(userInfo && userInfo.uid) {
this.handleToClose(true);
history.push(`/detail?id=${getParam('id')}`);
}else {
this.setState({
type: 3
});
window.localStorage.setItem('redpacket-click', 'split');
}
}else {
this.handleToClose(true);
}
}}
/>
</div>
}
......
......@@ -2772,6 +2772,11 @@ cli-width@^2.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
clipboard-copy@^3.1.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/clipboard-copy/download/clipboard-copy-3.1.0.tgz#4c59030a43d4988990564a664baeafba99f78ca4"
integrity sha1-TFkDCkPUmImQVkpmS66vupn3jKQ=
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment