|
@@ -3,6 +3,7 @@ import './index.less';
|
|
|
import Assets from '@src/components/Assets';
|
|
|
import { getMap, formatSeconds } from '@src/services/Tools';
|
|
|
import Button from '../Button';
|
|
|
+import More from '../More';
|
|
|
import { Order } from '../../stores/order';
|
|
|
import { User } from '../../stores/user';
|
|
|
import { ServiceKey, ServiceParamMap, CrowdList } from '../../../Constant';
|
|
@@ -18,13 +19,11 @@ export class SingleItem extends Component {
|
|
|
buy() {
|
|
|
const { data } = this.props;
|
|
|
User.needLogin().then(() => {
|
|
|
- Order.speedPay({ productType: 'course', productId: data.id })
|
|
|
- .then(result => {
|
|
|
- User.needPay(result)
|
|
|
- .then(() => {
|
|
|
- linkTo('/my/course');
|
|
|
- });
|
|
|
+ Order.speedPay({ productType: 'course', productId: data.id }).then(result => {
|
|
|
+ User.needPay(result).then(() => {
|
|
|
+ linkTo('/my/course');
|
|
|
});
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -45,7 +44,8 @@ export class SingleItem extends Component {
|
|
|
<div className="single-item">
|
|
|
<div className="img" onClick={() => linkTo(`/course/detail/${data.id}`)}>
|
|
|
<div className="title">
|
|
|
- <div className="tag">{CrowdMap[data.crowd]}</div>{data.title}
|
|
|
+ <div className="tag">{CrowdMap[data.crowd]}</div>
|
|
|
+ {data.title}
|
|
|
</div>
|
|
|
<div className="left">
|
|
|
<span>课时数: {data.noNumber}</span>
|
|
@@ -61,17 +61,38 @@ export class SingleItem extends Component {
|
|
|
<span>有效期: {data.useExpireDays}天</span>
|
|
|
</div>
|
|
|
<div className="money">¥ {data.price}</div>
|
|
|
- {!noAction && <div className="action">
|
|
|
- {!data.have && <Button radius size="lager" onClick={() => this.buy()}>
|
|
|
- 立即购买
|
|
|
- </Button>}
|
|
|
- {data.have && <Button className="f-r" theme="default" radius size="lager" onClick={() => linkTo(`/course/detail/${data.id}`)}>
|
|
|
- 查看课程
|
|
|
- </Button>}
|
|
|
- {!data.have && <Button className="f-r" theme="default" disabled={data.add || add} radius size="lager" onClick={() => this.add()} >
|
|
|
- <Assets name="add" />
|
|
|
- </Button>}
|
|
|
- </div>}
|
|
|
+ {!noAction && (
|
|
|
+ <div className="action">
|
|
|
+ {!data.have && (
|
|
|
+ <Button radius size="lager" onClick={() => this.buy()}>
|
|
|
+ 立即购买
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ {data.have && (
|
|
|
+ <Button
|
|
|
+ className="f-r"
|
|
|
+ theme="default"
|
|
|
+ radius
|
|
|
+ size="lager"
|
|
|
+ onClick={() => linkTo(`/course/detail/${data.id}`)}
|
|
|
+ >
|
|
|
+ 查看课程
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ {!data.have && (
|
|
|
+ <Button
|
|
|
+ className="f-r"
|
|
|
+ theme="default"
|
|
|
+ disabled={data.add || add}
|
|
|
+ radius
|
|
|
+ size="lager"
|
|
|
+ onClick={() => this.add()}
|
|
|
+ >
|
|
|
+ <Assets name="add" />
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
{!noAction && data.have && <Assets className="buyed" width={75} height={75} name="Purchased" />}
|
|
|
</div>
|
|
|
);
|
|
@@ -87,23 +108,20 @@ export class PackageItem extends Component {
|
|
|
buy() {
|
|
|
const { data } = this.props;
|
|
|
User.needLogin().then(() => {
|
|
|
- Order.speedPay({ productType: 'course_package', productId: data.id })
|
|
|
- .then(result => {
|
|
|
- User.needPay(result)
|
|
|
- .then(() => {
|
|
|
- linkTo('/my/course');
|
|
|
- });
|
|
|
+ Order.speedPay({ productType: 'course_package', productId: data.id }).then(result => {
|
|
|
+ User.needPay(result).then(() => {
|
|
|
+ linkTo('/my/course');
|
|
|
});
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
|
add() {
|
|
|
const { data } = this.props;
|
|
|
User.needLogin().then(() => {
|
|
|
- Order.addCheckout({ productType: 'course_package', productId: data.id })
|
|
|
- .then(() => {
|
|
|
- this.setState({ add: true });
|
|
|
- });
|
|
|
+ Order.addCheckout({ productType: 'course_package', productId: data.id }).then(() => {
|
|
|
+ this.setState({ add: true });
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -121,15 +139,22 @@ export class PackageItem extends Component {
|
|
|
<div className="package-item">
|
|
|
<div className="block m-b-1" onClick={() => linkTo(`/course/package/detail/${data.id}`)}>
|
|
|
<div className="title t-1 m-b-5 f-w-b">
|
|
|
- <div hidden={!novice} className="tag f-w-d">新手</div>{data.title}
|
|
|
+ <div hidden={!novice} className="tag f-w-d">
|
|
|
+ 新手
|
|
|
+ </div>
|
|
|
+ {data.title}
|
|
|
</div>
|
|
|
<div className="t-1 t-s-12 m-b-5">授课老师 {teachers.join(' ')}</div>
|
|
|
<div className="t-1 t-s-12 m-b-2">{data.description}</div>
|
|
|
<div className="t-1 t-s-12">包含课程</div>
|
|
|
<div className="p-t-5">
|
|
|
- {data.courses.map((course => {
|
|
|
- return <div className="t m-b-1 t-4 m-r-5 t-s-12 d-i-b p-5">{course.title}({course.noNumber}课时)</div>;
|
|
|
- }))}
|
|
|
+ {data.courses.map(course => {
|
|
|
+ return (
|
|
|
+ <div className="t m-b-1 t-4 m-r-5 t-s-12 d-i-b p-5">
|
|
|
+ {course.title}({course.noNumber}课时)
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ })}
|
|
|
</div>
|
|
|
<div className="t-1 t-s-12">配套服务</div>
|
|
|
<div className="p-t-5">
|
|
@@ -144,9 +169,17 @@ export class PackageItem extends Component {
|
|
|
const list = ServiceParamMap[row.value];
|
|
|
if (list) {
|
|
|
const map = getMap(list, 'value', 'label');
|
|
|
- return <div className="t m-b-1 t-4 m-r-5 t-s-12 d-i-b p-5">{row.label}×{map[data.gift[row.value]]}</div>;
|
|
|
+ return (
|
|
|
+ <div className="t m-b-1 t-4 m-r-5 t-s-12 d-i-b p-5">
|
|
|
+ {row.label}×{map[data.gift[row.value]]}
|
|
|
+ </div>
|
|
|
+ );
|
|
|
}
|
|
|
- return <div className="t m-b-1 t-4 m-r-5 t-s-12 d-i-b p-5">{row.label}×{data.gift[row.value]}</div>;
|
|
|
+ return (
|
|
|
+ <div className="t m-b-1 t-4 m-r-5 t-s-12 d-i-b p-5">
|
|
|
+ {row.label}×{data.gift[row.value]}
|
|
|
+ </div>
|
|
|
+ );
|
|
|
})}
|
|
|
</div>
|
|
|
</div>
|
|
@@ -158,7 +191,14 @@ export class PackageItem extends Component {
|
|
|
<Button radius size="lager" onClick={() => this.buy()}>
|
|
|
立即购买
|
|
|
</Button>
|
|
|
- <Button className="f-r" theme="default" radius size="lager" disabled={data.add || add} onClick={() => this.add()}>
|
|
|
+ <Button
|
|
|
+ className="f-r"
|
|
|
+ theme="default"
|
|
|
+ radius
|
|
|
+ size="lager"
|
|
|
+ disabled={data.add || add}
|
|
|
+ onClick={() => this.add()}
|
|
|
+ >
|
|
|
<Assets name="add" />
|
|
|
</Button>
|
|
|
</div>
|
|
@@ -176,23 +216,20 @@ export class DataItem extends Component {
|
|
|
buy() {
|
|
|
const { data } = this.props;
|
|
|
User.needLogin().then(() => {
|
|
|
- Order.speedPay({ productType: 'data', productId: data.id })
|
|
|
- .then(result => {
|
|
|
- User.needPay(result)
|
|
|
- .then(() => {
|
|
|
- linkTo('/my/tools?tab=data');
|
|
|
- });
|
|
|
+ Order.speedPay({ productType: 'data', productId: data.id }).then(result => {
|
|
|
+ User.needPay(result).then(() => {
|
|
|
+ linkTo('/my/tools?tab=data');
|
|
|
});
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
|
add() {
|
|
|
const { data } = this.props;
|
|
|
User.needLogin().then(() => {
|
|
|
- Order.addCheckout({ productType: 'data', productId: data.id })
|
|
|
- .then(() => {
|
|
|
- this.setState({ add: true });
|
|
|
- });
|
|
|
+ Order.addCheckout({ productType: 'data', productId: data.id }).then(() => {
|
|
|
+ this.setState({ add: true });
|
|
|
+ });
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -201,26 +238,74 @@ export class DataItem extends Component {
|
|
|
const { add } = this.state;
|
|
|
return (
|
|
|
<div className="data-item">
|
|
|
- <Assets width="309" height="264" name="" src={data.cover} onClick={() => linkTo(`/course/data/detail/${data.id}`)} />
|
|
|
+ <Assets
|
|
|
+ width="309"
|
|
|
+ height="264"
|
|
|
+ name=""
|
|
|
+ src={data.cover}
|
|
|
+ onClick={() => linkTo(`/course/data/detail/${data.id}`)}
|
|
|
+ />
|
|
|
<div className="m-b-1">
|
|
|
<span className="t-7 t-s-24 f-w-b">¥{data.price}</span>
|
|
|
<span className="f-r t-8 t-s-20">{data.saleNumber}人</span>
|
|
|
</div>
|
|
|
<div className="action">
|
|
|
- {!data.have && <Button radius size="lager" onClick={() => {
|
|
|
- this.buy();
|
|
|
- }}>
|
|
|
- 立即购买
|
|
|
- </Button>}
|
|
|
- {data.have && <Button className="f-r" theme="default" radius size="lager" onClick={() => openLink(data.resource)}>
|
|
|
- 查看资料
|
|
|
- </Button>}
|
|
|
- {!data.have && <Button className="f-r" theme="default" disabled={data.add || add} radius size="lager" onClick={() => this.add()}>
|
|
|
- <Assets name="add" />
|
|
|
- </Button>}
|
|
|
+ {!data.have && (
|
|
|
+ <Button
|
|
|
+ radius
|
|
|
+ size="lager"
|
|
|
+ onClick={() => {
|
|
|
+ this.buy();
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 立即购买
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ {data.have && (
|
|
|
+ <Button className="f-r" theme="default" radius size="lager" onClick={() => openLink(data.resource)}>
|
|
|
+ 查看资料
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ {!data.have && (
|
|
|
+ <Button
|
|
|
+ className="f-r"
|
|
|
+ theme="default"
|
|
|
+ disabled={data.add || add}
|
|
|
+ radius
|
|
|
+ size="lager"
|
|
|
+ onClick={() => this.add()}
|
|
|
+ >
|
|
|
+ <Assets name="add" />
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
</div>
|
|
|
{data.have && <Assets className="buyed" width={75} height={75} name="Purchased" />}
|
|
|
</div>
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+export class TextbookItem extends Component {
|
|
|
+ constructor(props) {
|
|
|
+ super(props);
|
|
|
+ this.state = {};
|
|
|
+ }
|
|
|
+
|
|
|
+ render() {
|
|
|
+ const { data = {} } = this.props;
|
|
|
+ return (
|
|
|
+ <div className="textbook-item">
|
|
|
+ <Assets src={data.src} className="m-b-5" />
|
|
|
+ <div className="t-6 t-s-14 m-b-5">
|
|
|
+ 已更新至 <span className="t-4">30</span> 题
|
|
|
+ </div>
|
|
|
+ <div className="t-6 t-s-12 m-b-1">
|
|
|
+ 2019-08-31 09:26:13{' '}
|
|
|
+ <div className="f-r">
|
|
|
+ <More />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|