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 (