import React from 'react'; import './index.less'; import Page from '@src/containers/Page'; import { Checkbox } from 'antd'; // import Assets from '@src/components/Assets'; import { getMap } from '@src/services/Tools'; import Button from '../../../components/Button'; import Money from '../../../components/Money'; import { Order } from '../../../stores/order'; import { Main } from '../../../stores/main'; import { ServiceKey, OrderInfoMap } from '../../../../Constant'; const ServiceKeyMap = getMap(ServiceKey, 'value', 'label'); export default class extends Page { initState() { return {}; } initData() { const { id } = this.params; Order.getOrder(id).then(order => { order.packageMap = {}; (order.packages || []).forEach(row => { order.packageMap[row.id] = row; }); order.courseMap = {}; (order.courses || []).forEach(row => { order.courseMap[row.id] = row; }); order.dataMap = {}; (order.datas || []).forEach(row => { order.dataMap[row.id] = row; }); order.checkouts.forEach(checkout => { checkout.info = OrderInfoMap[checkout.productType]; switch (checkout.productType) { case 'service': checkout.title = ServiceKeyMap[checkout.service]; checkout.info = checkout.info[checkout.service]; break; case 'data': checkout.title = order.dataMap[checkout.productId].title; break; case 'course_package': checkout.title = order.packageMap[checkout.productId].title; break; case 'course': checkout.title = order.courseMap[checkout.productId].title; break; default: } }); const [checkout] = order.checkouts.filter(row => row.parentId === 0); this.setState({ order, checkout }); }); Main.getContract('course').then(result => { this.setState({ contract: result }); }); } pay() { const { id } = this.params; Order.wechatJs(id).then(() => { }); } renderView() { const { order = {}, contract = {}, checkout = {} } = this.state; const { info = {}, productType } = checkout; let content = ''; switch (productType) { case 'data': content = this.renderData(); break; case 'course_package': content = this.renderCoursePackage(); break; case 'course': case 'service': content = this.renderSingle(); break; default: } return (
商品信息
{content} {info.refund_policy && [< div className="title">退款政策
,
本产品为虚拟产品,购买成功后不支持退款。
]} {info.copyright_notes && [
版权说明
,
本商品仅限购买者本人使用,不可商用和传播。
]} {order.productTypes && order.productTypes.indexOf('course') > 0 &&
我已阅读并同意 this.setState({ showContract: true })}>{contract.title}
}
*若在购买过程中遇到问题,请联系千行小助手协助解决
应付:
); } renderData() { const { checkout } = this.state; return (
{checkout.title}
开通有效期 {checkout.expireDays ? `${checkout.expireDays}天` : '永久'}
); } renderCoursePackage() { const { checkout, order } = this.state; return (
{checkout.title}
{order.checkouts.map(row => { if (row.parentId === 0) return null; return
{row.title} 开通有效期: {checkout.expireDays ? `${checkout.expireDays}天` : '永久'} 使用有效期: {checkout.useExpireDays ? `${checkout.useExpireDays}天` : '永久'}
; })}
); } renderSingle() { const { checkout } = this.state; console.log(checkout); return (
{checkout.title}
开通有效期 {checkout.expireDays ? `${checkout.expireDays}天` : '永久'}
使用有效期 {checkout.useExpireDays ? `${checkout.useExpireDays}天` : '永久'}
); } }