{"version":3,"sources":["components/shopCart/cartItem.js","components/shopCart/cartList.js","components/shopCart/index.js"],"names":["CartItem","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","val","item","value","e","id","checked","target","checkChange","_this2","Info","react_default","a","createElement","className","onClick","toDetail","course_id","course_title","simpledescription","price1","price0","checkbox_default","check","onChange","OrderList","info","src","image_name","Component","cartList","data","length","map","index","cartItem","changeStock","key","react_router_dom","to","alert","modal_default","Cart","getList","http","get","concat","API","home","then","res","code","setState","courses","isLoading","toast_default","msg","tobuy","courseIdarr","errno","history","push","simple","todelete","text","onPress","console","log","course_ids","post","checkedNum","allPrice","toCourseDetail","_this$props","dispatch","cartNmu","newData","i","objectSpread","calc","arr","forEach","parseFloat","_this3","style","overflow","common","title","arrow","cart","delete","toDelete","Loading","shopCart_cartList","bind","allChange","classnames","active","connect"],"mappings":"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","file":"mrstatic/js/ShopCart.7c468284.chunk.js","sourcesContent":["import React, { Component } from 'react';\nimport { Checkbox } from 'antd-mobile';\nimport OrderList from '@/common/OrderList';\nimport {Link} from \"react-router-dom\";\n\n\nclass CartItem extends Component {\n // 构造函数\n constructor(props) {\n super(props)\n this.state = {\n val: props.item.value\n }\n }\n // 改变选择\n onChange(e, id) {\n let checked = e.target.checked\n this.props.checkChange(id, checked)\n }\n\n render() {\n let item = this.props.item\n const Info = (\n <div className=\"order-info\">\n <p className='order-title text-overflow-one' onClick={()=>this.props.toDetail(item.course_id)}>\n {/* <Link to={`/detail?id=${item.course_id}`}> */}\n {item.course_title}\n {/* </Link> */}\n </p>\n <p className='order-content text-overflow-2'>{item.simpledescription}</p>\n <p className='order-des'>\n <span className='order-newprice'>¥{item.price1}</span>\n <span className='order-price'>¥{item.price0}</span>\n </p>\n </div>\n )\n\n return (\n <div className=\"cart-c-item\" >\n <div className=\"cart-c-check\">\n <Checkbox checked={item.check} onChange={(e) => {\n this.onChange(e, item.course_id)\n }} />\n </div>\n\n <div className=\"card-wrap\">\n <OrderList \n info={Info} \n src={item.image_name} \n id={item.course_id}\n toDetail={this.props.toDetail}\n ></OrderList>\n </div>\n </div>\n\n )\n }\n}\nexport default CartItem;","import React, {Component} from 'react'\nimport {Link} from 'react-router-dom'\nimport CartItem from './cartItem'\n\nclass cartList extends Component {\n render() {\n return (\n <div className=\"cart-main\">\n {/* 遍历购物车商品列表 */}\n <div className=\"cart-c-body\">\n {\n this.props.data.length > 0 ?\n this.props.data.map((item, index) => {\n return (\n <CartItem\n index={index}\n changeStock={(id, val) => {\n this.props.changeStock(id, val)\n }}\n checkChange={(id, val) => {\n this.props.checkChange(id, val)\n }}\n key={index} \n item={item}\n toDetail={this.props.toDetail}\n />\n )\n })\n : <div className=\"cart-tip\">\n <p className='cart-mess'>这里是空的,快去逛逛吧~</p>\n <Link to='/classify'>去逛逛</Link>\n </div>\n }\n </div>\n </div>\n )\n }\n}\n\nexport default cartList;","import React, {Component} from 'react'\nimport {connect} from 'react-redux'\nimport {Checkbox, Modal, Toast} from 'antd-mobile'\nimport {HeaderBar} from '../../common'\nimport Loading from '@/common/Loading'\nimport ShopCart from './cartList.js'\nimport './card.scss'\nimport classnames from 'classnames'\nimport {http} from \"@/utils\";\nimport {getCourses} from './../detail/actions';\n\nconst alert = Modal.alert;\n\nclass Cart extends Component {\n constructor(props) {\n super(props)\n this.state = {\n data: [],\n checkedNum: 0,\n allPrice: 0,\n cartNmu: 0,\n courseIdarr: [], // 选中的课程id\n isLoading: true\n }\n\n }\n\n\n componentDidMount() {\n this.getList()\n }\n\n // 获取课程列表\n getList = () => {\n http.get(`${API.home}/m/cart/list`).then((res) => {\n if (res.data.code === 200) {\n this.setState({\n data: res.data.data.courses,\n isLoading: false\n })\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n\n //全选\n allChange(e) {\n let checked = e.target.checked\n let newData = this.state.data.map((item, i) => {\n return {\n ...item,\n check: checked\n }\n })\n this.setState({\n data: newData\n })\n this.calc(newData)\n\n if (checked) {\n let arr = []\n newData.map((item, i) => {\n arr.push(item.course_id)\n })\n this.setState({\n courseIdarr: arr\n })\n\n } else {\n this.setState({\n courseIdarr: []\n })\n }\n\n }\n\n //点击\n checkChange(id, check) {\n let newData = this.state.data.map((item, i) => {\n if (item.course_id === id) {\n return {\n ...item,\n check: check\n }\n } else {\n return item;\n }\n })\n this.setState({\n data: newData\n })\n this.calc(newData)\n let arr = []\n newData.forEach((item, i) => {\n if (item.check) {\n arr.push(item.course_id)\n this.setState({\n courseIdarr: arr\n })\n } else {\n this.setState({\n courseIdarr: arr\n })\n }\n })\n }\n\n //计算总价\n calc(newData) {\n let allPrice = 0;\n let checkedNum = 0;\n let cartNmu = 0;\n let arr = []\n newData.forEach((item, i) => {\n if (item.check) {\n arr.push(item)\n cartNmu += 1;\n checkedNum = arr.length;\n allPrice += parseFloat(item.price1);\n }\n })\n this.setState({\n checkedNum,\n allPrice,\n cartNmu\n })\n }\n\n // 去结算\n tobuy = () => {\n // console.log(this.state.courseIdarr);\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${this.state.courseIdarr}]`).then((res) => {\n if (res.data.errno == 0) {\n this.props.history.push(`/order?id=[${this.state.courseIdarr}]`,{simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n\n\n // 删除\n todelete = () => {\n if (this.state.courseIdarr.length > 0) {\n alert('', '确定从购物车中删除?', [\n {text: '取消', onPress: () => console.log('cancel')},\n {\n text: '确认',\n onPress: () => {\n let data = {\n course_ids: this.state.courseIdarr\n }\n http.post(`${API.home}/m/cart/remove`, data).then((res) => {\n if (res.data.code === 200) {\n this.getList()\n this.setState({\n checkedNum: 0,\n allPrice:0\n })\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n }\n ])\n }\n\n }\n\n toCourseDetail = (id) => {\n // console.log(id);\n const { dispatch, history } = this.props;\n // dispatch(getCourses(id, () => {\n history.push(`/detail?id=${id}`)\n // }));\n }\n\n\n render() {\n return (\n <div className=\"cart-page\" style={{overflow: 'hidden'}}>\n <HeaderBar title='购物车' arrow={true} cart={false} delete={true} toDelete={this.todelete}></HeaderBar>\n\n <Loading isLoading={this.state.isLoading}>\n <div className=\"cart-body\">\n <ShopCart\n checkChange={this.checkChange.bind(this)}\n data={this.state.data}\n toDetail={this.toCourseDetail}\n />\n\n <div className=\"cart-footer\">\n <div className=\"cart-label\">\n <Checkbox onChange={(e) => {\n this.allChange(e)\n }}/>\n <div>全选</div>\n </div>\n <div className=\"all-pirce\">\n <p>\n <span>合计:</span>\n <span>¥{this.state.allPrice}</span>\n </p>\n </div>\n <div className={classnames({\n 'active': this.state.checkedNum > 0\n })} onClick={() => {\n if (this.state.checkedNum > 0) {\n this.tobuy()\n }\n }}>\n 结算<span> ( {this.state.checkedNum} ) </span>\n </div>\n </div>\n\n </div>\n </Loading>\n\n\n </div>\n )\n }\n}\n\nexport default connect()(Cart)"],"sourceRoot":""}