{"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":"uRA0DeA,cAlDX,SAAAA,EAAYC,GAAO,IAAAC,EAAA,OAAAC,OAAAC,EAAA,EAAAD,CAAAE,KAAAL,IACfE,EAAAC,OAAAG,EAAA,EAAAH,CAAAE,KAAAF,OAAAI,EAAA,EAAAJ,CAAAH,GAAAQ,KAAAH,KAAMJ,KACDQ,MAAQ,CACTC,IAAKT,EAAMU,KAAKC,OAHLV,wEAOVW,EAAGC,GACR,IAAIC,EAAUF,EAAEG,OAAOD,QACvBV,KAAKJ,MAAMgB,YAAYH,EAAIC,oCAGtB,IAAAG,EAAAb,KACDM,EAAON,KAAKJ,MAAMU,KAChBQ,EACFC,EAAAC,EAAAC,cAAA,OAAKC,UAAU,cACXH,EAAAC,EAAAC,cAAA,KAAGC,UAAU,gCAAgCC,QAAS,kBAAIN,EAAKjB,MAAMwB,SAASd,EAAKe,aAE9Ef,EAAKgB,cAGVP,EAAAC,EAAAC,cAAA,KAAGC,UAAU,iCAAiCZ,EAAKiB,mBACnDR,EAAAC,EAAAC,cAAA,KAAGC,UAAU,aACTH,EAAAC,EAAAC,cAAA,QAAMC,UAAU,kBAAhB,OAAmCZ,EAAKkB,QACxCT,EAAAC,EAAAC,cAAA,QAAMC,UAAU,eAAhB,OAAgCZ,EAAKmB,UAKjD,OACQV,EAAAC,EAAAC,cAAA,OAAKC,UAAU,eACXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,gBACXH,EAAAC,EAAAC,cAAAS,EAAAV,EAAA,CAAUN,QAASJ,EAAKqB,MAAOC,SAAU,SAACpB,GACtCK,EAAKe,SAASpB,EAAGF,EAAKe,eAI9BN,EAAAC,EAAAC,cAAA,OAAKC,UAAU,aACXH,EAAAC,EAAAC,cAACY,EAAA,EAAD,CACIC,KAAMhB,EACNiB,IAAKzB,EAAK0B,WACVvB,GAAIH,EAAKe,UACTD,SAAUpB,KAAKJ,MAAMwB,oBA5C1Ba,aCiCRC,mLAlCF,IAAArC,EAAAG,KACL,OACIe,EAAAC,EAAAC,cAAA,OAAKC,UAAU,aAEXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,eAEPlB,KAAKJ,MAAMuC,KAAKC,OAAS,EACrBpC,KAAKJ,MAAMuC,KAAKE,IAAI,SAAC/B,EAAMgC,GACvB,OACIvB,EAAAC,EAAAC,cAACsB,EAAD,CACID,MAAOA,EACPE,YAAa,SAAC/B,EAAIJ,GACdR,EAAKD,MAAM4C,YAAY/B,EAAIJ,IAE/BO,YAAa,SAACH,EAAIJ,GACdR,EAAKD,MAAMgB,YAAYH,EAAIJ,IAE/BoC,IAAKH,EACLhC,KAAMA,EACNc,SAAUvB,EAAKD,MAAMwB,aAI/BL,EAAAC,EAAAC,cAAA,OAAKC,UAAU,YACbH,EAAAC,EAAAC,cAAA,KAAGC,UAAU,aAAb,uEACAH,EAAAC,EAAAC,cAACyB,EAAA,EAAD,CAAMC,GAAG,aAAT,gCA1BTV,8CCOjBW,SAAQC,EAAA7B,EAAM4B,OAEdE,cACF,SAAAA,EAAYlD,GAAO,IAAAC,EAAA,OAAAC,OAAAC,EAAA,EAAAD,CAAAE,KAAA8C,IACfjD,EAAAC,OAAAG,EAAA,EAAAH,CAAAE,KAAAF,OAAAI,EAAA,EAAAJ,CAAAgD,GAAA3C,KAAAH,KAAMJ,KAkBVmD,QAAU,WACNC,IAAKC,IAAL,GAAAC,OAAYC,IAAIC,KAAhB,iBAAoCC,KAAK,SAACC,GAChB,MAAlBA,EAAInB,KAAKoB,KACT1D,EAAK2D,SAAS,CACVrB,KAAMmB,EAAInB,KAAKA,KAAKsB,QACpBC,WAAW,IAGfC,EAAA3C,EAAMc,KAAKwB,EAAInB,KAAKyB,IAAK,MA3BlB/D,EAoHnBgE,MAAQ,WAEJb,IAAKC,IAAL,GAAAC,OAAYC,IAAI,YAAhB,2BAAAD,OAAqDrD,EAAKO,MAAM0D,YAAhE,MAAgFT,KAAK,SAACC,GAC5D,GAAlBA,EAAInB,KAAK4B,MACTlE,EAAKD,MAAMoE,QAAQC,KAAnB,cAAAf,OAAsCrD,EAAKO,MAAM0D,YAAjD,KAAgE,CAACI,OAAQ,IAEzEP,EAAA3C,EAAMc,KAAKwB,EAAInB,KAAKyB,IAAK,MA1HlB/D,EAiInBsE,SAAW,WACHtE,EAAKO,MAAM0D,YAAY1B,OAAS,GAChCQ,EAAM,GAAI,+DAAc,CACpB,CAACwB,KAAM,eAAMC,QAAS,kBAAMC,QAAQC,IAAI,YACxC,CACIH,KAAM,eACNC,QAAS,WACL,IAAIlC,EAAO,CACPqC,WAAY3E,EAAKO,MAAM0D,aAE3Bd,IAAKyB,KAAL,GAAAvB,OAAaC,IAAIC,KAAjB,kBAAuCjB,GAAMkB,KAAK,SAACC,GACzB,MAAlBA,EAAInB,KAAKoB,MACT1D,EAAKkD,UACLlD,EAAK2D,SAAS,CACVkB,WAAY,EACZC,SAAS,KAGbhB,EAAA3C,EAAMc,KAAKwB,EAAInB,KAAKyB,IAAK,UAnJlC/D,EA6JnB+E,eAAiB,SAACnE,GAAO,IAAAoE,EAEShF,EAAKD,MAFdiF,EAEbC,SAFaD,EAEHb,QAENC,KAAR,cAAAf,OAA2BzC,KA/J/BZ,EAAKO,MAAQ,CACT+B,KAAM,GACNuC,WAAY,EACZC,SAAU,EACVI,QAAS,EACTjB,YAAa,GACbJ,WAAW,GARA7D,mFAefG,KAAK+C,4CAkBCvC,GACN,IAAIE,EAAUF,EAAEG,OAAOD,QACnBsE,EAAUhF,KAAKI,MAAM+B,KAAKE,IAAI,SAAC/B,EAAM2E,GACrC,OAAOnF,OAAAoF,EAAA,EAAApF,CAAA,GACAQ,EADP,CAEIqB,MAAOjB,MAQf,GALAV,KAAKwD,SAAS,CACVrB,KAAM6C,IAEVhF,KAAKmF,KAAKH,GAENtE,EAAS,CACT,IAAI0E,EAAM,GACVJ,EAAQ3C,IAAI,SAAC/B,EAAM2E,GACfG,EAAInB,KAAK3D,EAAKe,aAElBrB,KAAKwD,SAAS,CACVM,YAAasB,SAIjBpF,KAAKwD,SAAS,CACVM,YAAa,yCAObrD,EAAIkB,GAAO,IAAAd,EAAAb,KACfgF,EAAUhF,KAAKI,MAAM+B,KAAKE,IAAI,SAAC/B,EAAM2E,GACrC,OAAI3E,EAAKe,YAAcZ,EACZX,OAAAoF,EAAA,EAAApF,CAAA,GACAQ,EADP,CAEIqB,MAAOA,IAGJrB,IAGfN,KAAKwD,SAAS,CACVrB,KAAM6C,IAEVhF,KAAKmF,KAAKH,GACV,IAAII,EAAM,GACVJ,EAAQK,QAAQ,SAAC/E,EAAM2E,GACf3E,EAAKqB,OACLyD,EAAInB,KAAK3D,EAAKe,WACdR,EAAK2C,SAAS,CACVM,YAAasB,KAGjBvE,EAAK2C,SAAS,CACVM,YAAasB,mCAOxBJ,GACD,IAAIL,EAAW,EACXD,EAAa,EACbK,EAAU,EACVK,EAAM,GACVJ,EAAQK,QAAQ,SAAC/E,EAAM2E,GACf3E,EAAKqB,QACLyD,EAAInB,KAAK3D,GACTyE,GAAW,EACXL,EAAaU,EAAIhD,OACjBuC,GAAYW,WAAWhF,EAAKkB,WAGpCxB,KAAKwD,SAAS,CACVkB,aACAC,WACAI,6CAuDC,IAAAQ,EAAAvF,KACL,OACIe,EAAAC,EAAAC,cAAA,OAAKC,UAAU,YAAYsE,MAAO,CAACC,SAAU,WACzC1E,EAAAC,EAAAC,cAACyE,EAAA,EAAD,CAAWC,MAAM,qBAAMC,OAAO,EAAMC,MAAM,EAAOC,QAAQ,EAAMC,SAAU/F,KAAKmE,WAE9EpD,EAAAC,EAAAC,cAAC+E,EAAA,EAAD,CAAStC,UAAW1D,KAAKI,MAAMsD,WAC3B3C,EAAAC,EAAAC,cAAA,OAAKC,UAAU,aACXH,EAAAC,EAAAC,cAACgF,EAAD,CACIrF,YAAaZ,KAAKY,YAAYsF,KAAKlG,MACnCmC,KAAMnC,KAAKI,MAAM+B,KACjBf,SAAUpB,KAAK4E,iBAGnB7D,EAAAC,EAAAC,cAAA,OAAKC,UAAU,eACXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,cACXH,EAAAC,EAAAC,cAAAS,EAAAV,EAAA,CAAUY,SAAU,SAACpB,GACjB+E,EAAKY,UAAU3F,MAEnBO,EAAAC,EAAAC,cAAA,4BAEJF,EAAAC,EAAAC,cAAA,OAAKC,UAAU,aACXH,EAAAC,EAAAC,cAAA,SACIF,EAAAC,EAAAC,cAAA,kCACAF,EAAAC,EAAAC,cAAA,qBAAQjB,KAAKI,MAAMuE,YAG3B5D,EAAAC,EAAAC,cAAA,OAAKC,UAAWkF,IAAW,CACvBC,OAAUrG,KAAKI,MAAMsE,WAAa,IAClCvD,QAAS,WACLoE,EAAKnF,MAAMsE,WAAa,GACxBa,EAAK1B,UAJb,eAOM9C,EAAAC,EAAAC,cAAA,kBAAUjB,KAAKI,MAAMsE,WAArB,mBAxMfzC,aAqNJqE,wBAAUxD","file":"mrstatic/js/ShopCart.6e5298f3.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":""}