You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
12 KiB

{"remainingRequest":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/order/Order.vue?vue&type=style&index=0&id=4c616900&scoped=true&lang=css&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/order/Order.vue","mtime":1616774533318},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/css-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/postcss-loader/src/index.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgouc2hvcC1saXN0ewogIG1hcmdpbi10b3A6NTBweDsKfQoKLmxhc3QtaW5wdXR7CiAgbWFyZ2luLXRvcDoxNXB4IDsKfQoKCml7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTVweCAtMXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjNWE1YTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYzVhNWE7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aWR0aDogMTNweDsKICAgIGhlaWdodDogMTNweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6NTAlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwtNTAlKTsKICAgIGxlZnQ6ODVweDsKfQoKLndyYXB7CiAgICAgd2lkdGg6IDgwJTsKICAgICBtYXJnaW46IDAgYXV0bzsKfQoKLm1ldGhvZHsKICAgIG1hcmdpbi10b3A6MjBweDsKICAgIGhlaWdodDogODBweDsKICAgIHdpZHRoOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKfQoKLm1ldGhvZCAuaGVhZGVyewogICAgZGlzcGxheTogZmxleDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjNjY2OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5tZXRob2QgLmZvb3RlcnsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6ICM2NjY7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKLm9yZGVyX2JveCB7CiAgbWFyZ2luLXRvcDogMjBweDsKICBoZWlnaHQ6IDE4MHB4Owp9CgouY29udGVudCB7CiAgbGVmdDogMDsKICByaWdodDogMDsKICB0b3A6IDQ0cHg7CiAgYm90dG9tOiA1OHB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgcG9zaXRpb246IGFic29sdXRlOwp9Cgoub3JkZXIgewogIC8qcG9zaXRpb246IHJlbGF0aXZlOyovCiAgaGVpZ2h0OiAxMDB2aDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLm5hdi1iYXIgewogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1M2I1NzsKICBjb2xvcjogI2ZmZjsKfQoKLmJhY2sgaW1nIHsKICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7Cn0KLmJvdHRvbXsKfQoKLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyewogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9CgoK"},{"version":3,"sources":["Order.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmOA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","file":"Order.vue","sourceRoot":"src/views/order","sourcesContent":["<template>\n <div class=\"order\">\n <NavBar class=\"nav-bar\">\n <div slot=\"left\" class=\"back\" @click=\"backClick\">\n <img src=\"~assets/img/common/back.svg\" alt=\"\" />\n </div>\n <div slot=\"center\" >填写订单</div>\n </NavBar>\n <scroll class=\"content\" ref=\"scroll\"\n :probe-type=\"3\"\n :pull-up-load=\"true\"\n @pullingUp=\"loadMore\"\n @pullingDown=\"pullingDown\"\n >\n <div class=\"order_box\">\n <!-- 登陆区域 -->\n <el-form\n ref=\"orderFormRef\"\n label-width=\"0px\"\n :model=\"orderForm\"\n :rules=\"orderFormRules\"\n >\n <el-form-item prop=\"name\">\n <el-input\n placeholder=\"请输入用户名\"\n v-model=\"orderForm.name\"\n prefix-icon=\"el-icon-user-solid\"\n ></el-input>\n </el-form-item>\n\n <el-form-item prop=\"telephone\">\n <el-input\n placeholder=\"请输入电话号码\"\n v-model=\"orderForm.telephone\"\n prefix-icon=\"el-icon-phone\"\n ></el-input>\n </el-form-item>\n\n <VDistpicker :city=\"orderForm.city\" :area=\"orderForm.area\" :province=\"orderForm.province\" @area=\"onChangeArea\" @province=\"onChangeProvince\" @city=\"onChangeCity\"></VDistpicker>\n\n <el-form-item prop=\"address\">\n <el-input\n class=\"last-input\"\n placeholder=\"请输入详细地址\"\n v-model=\"orderForm.address\"\n prefix-icon=\"el-icon-s-goods\"\n ></el-input>\n </el-form-item>\n </el-form>\n </div>\n <OredertList class=\"shop-list\"></OredertList>\n <div class=\"method\">\n <div class=\"wrap\">\n <div class=\"header\">\n <div>支付方式</div>\n <div><i></i> 在线支付</div>\n <div><i></i> 货到付款</div>\n </div>\n <div class=\"footer\">\n <div>发票信息</div>\n <div>不需要发表</div>\n </div>\n </div>\n </div>\n </scroll>\n <OrderBottom class=\"bottom\" @order=\"order\" v-if=\"isShow\"></OrderBottom>\n </div>\n</template>\n\n<script>\nimport OredertList from \"@/views/order/childComps/OrderList\";\nimport OrderBottom from \"@/views/order/childComps/OrderBottom\";\nimport Scroll from \"@/components/common/Scroll/Scroll\";\n\nimport NavBar from \"@/components/common/navbar/NavBar\";\nimport VDistpicker from 'v-distpicker'\n\nimport { mapGetters } from \"vuex\";\n\n\nexport default {\n name: \"Order\",\n components: {\n OrderBottom,\n NavBar,\n OredertList,\n Scroll,\n VDistpicker\n },\n data() {\n var checkphone = (rule, value, callback) => {\n // let phoneReg = /(^1[3|4|5|6|7|8|9]\\d{9}$)|(^09\\d{8}$)/;\n if (value === \"\") {\n callback(new Error(\"请输入手机号\"));\n } else if (!this.isCellPhone(value)) {\n // 引入methods中封装的检查手机格式的方法\n callback(new Error(\"请输入正确的手机号!\"));\n } else {\n callback();\n }\n };\n return {\n clientHeight: document.documentElement.clientHeight,\n isShow:true,\n listdata:[],\n orderForm: {\n user_id:\"\",\n name: \"\",\n telephone: \"\",\n province:\"\",\n city:\"\",\n area:\"\",\n address: \"\",\n picture:\"\",\n title:\"\",\n detail:\"\",\n price:\"\",\n },\n orderFormRules: {\n //验证用户名是否合法\n name: [\n { required: true, message: \"请输入用户名\", trigger: \"blur\" },\n { min: 2, max: 11, message: \"长度在 2 到 11 个字符\", trigger: \"blur\" }\n ],\n telephone: [\n { required: true, message: \"请输入手机号\", trigger: \"blur\" },\n { validator: checkphone, trigger: \"blur\" }\n ],\n //验证密码是否合法\n address: [\n { required: true, message: \"请输入地址\", trigger: \"blur\" },\n {\n min: 3,\n max: 6,\n message: \"长度在 3 到 6 个字符\",\n trigger: \"blur\"\n }\n ]\n }\n };\n },\n computed: {\n // ...mapGetters(['cartLength','cartList'])\n ...mapGetters({\n length: \"cartLength\",\n list: \"cartList\",\n })\n },\n methods: {\n backClick() {\n this.$router.push(\"/cart\");\n },\n isCellPhone(val) {\n if (!/^1(3|4|5|6|7|8|9)\\d{9}$/.test(val)) {\n return false;\n } else {\n return true;\n }\n },\n loadMore(){\n // this.getHomeGoods(this.currentType)\n this.$refs.scroll.refresh()\n },\n pullingDown() {\n this.pullingdown = true;\n setTimeout(() => {\n this.pullingdown = false;\n this.$refs.scroll.finishPullDown();\n }, 0)\n },\n order() {\n this.$refs.orderFormRef.validate( async valid => {\n if (!valid) return;\n this.listdata=this.$store.state.cartList\n try{\n for(var item in this.listdata){\n this.orderForm.picture=this.listdata[item].image\n this.orderForm.title=this.listdata[item].title\n this.orderForm.detail=this.listdata[item].desc\n this.orderForm.price=this.listdata[item].price\n this.orderForm.count=this.listdata[item].count\n await this.$http.post('/order/bookorder',this.orderForm);\n }\n this.$message.success(\"下单成功\")\n this.$router.push('/cart')\n }catch(err){\n this.$message.error('下单失败')\n }\n });\n },\n onChangeProvince(data) {\n this.orderForm.province = data.value\n },\n onChangeCity(data) {\n this.orderForm.city = data.value\n },\n onChangeArea(data){\n this.orderForm.area=data.value\n }\n },\n mounted(){\n this.orderForm.user_id = window.sessionStorage.getItem(\"userId\");\n const olabel=document.getElementsByTagName('select');\n olabel[0].style.fontSize='8px';\n olabel[1].style.fontSize='8px';\n olabel[2].style.fontSize='8px';\n var n = navigator.userAgent;\n if (n.indexOf(\"iPhone\") <= -1) {\n window.onresize = () => {\n if (location.pathname == \"/order\") {\n if (this.clientHeight > document.documentElement.clientHeight) {\n // 隐藏按钮\n this.isShow=false;\n } else {\n // 显示按钮\n this.isShow=true;\n }\n }\n };\n }\n }\n};\n\n</script>\n\n<style scoped>\n\n.shop-list{\n margin-top:50px;\n}\n\n.last-input{\n margin-top:15px ;\n}\n\n\ni{\n background-position: -15px -1px;\n background-color: #fc5a5a;\n border: 1px solid #fc5a5a;\n display: inline-block;\n width: 13px;\n height: 13px;\n border: 1px solid #aaa;\n border-radius: 50%;\n position: absolute;\n top:50%;\n transform: translate(0,-50%);\n left:85px;\n}\n\n.wrap{\n width: 80%;\n margin: 0 auto;\n}\n\n.method{\n margin-top:20px;\n height: 80px;\n width: 100%;\n background-color: #fff;\n}\n\n.method .header{\n display: flex;\n justify-content: space-between;\n font-size: 14px;\n color: #666;\n line-height: 28px;\n position: relative;\n}\n\n.method .footer{\n margin-top: 10px;\n justify-content: space-between;\n display: flex;\n font-size: 14px;\n color: #666;\n line-height: 28px;\n}\n\n.order_box {\n margin-top: 20px;\n height: 180px;\n}\n\n.content {\n left: 0;\n right: 0;\n top: 44px;\n bottom: 58px;\n overflow: hidden;\n position: absolute;\n}\n\n.order {\n /*position: relative;*/\n height: 100vh;\n background-color: #f5f5f5;\n position: relative;\n}\n\n.nav-bar {\n font-weight: 700;\n background-color: #f53b57;\n color: #fff;\n}\n\n.back img {\n margin-top: 12px !important;\n}\n.bottom{\n}\n\n.distpicker-address-wrapper{\n display: flex;\n justify-content: space-between;\n}\n\n\n</style>\n"]}]}