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=3340cfd0&scoped=true&lang=css&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/order/Order.vue","mtime":1616807314060},{"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:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKLnNob3AtbGlzdHsKfQoub3JkZXJfYm94IHsKICBtYXJnaW4tdG9wOiAxMHB4Owp9Cgoub3JkZXIgewogIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgaGVpZ2h0OiAxMDB2aDsKfQoubGFzdC1pbnB1dHsKICBtYXJnaW4tdG9wOjIwcHggOwp9CgppewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE1cHggLTFweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmYzVhNWE7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmM1YTVhOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDEzcHg7CiAgICBoZWlnaHQ6IDEzcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOjUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsLTUwJSk7CiAgICBsZWZ0Ojg1cHg7Cn0KCi53cmFwewogICAgIHdpZHRoOiA4MCU7CiAgICAgbWFyZ2luOiAwIGF1dG87Cn0KCi5vcmRlckJvdHRvbXsKICBwb3NpdGlvbjogZml4ZWQ7Cn0KCi5tZXRob2R7CiAgICBtYXJnaW4tdG9wOjIwcHg7CiAgICBoZWlnaHQ6IDgwcHg7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7Cn0KCi5tZXRob2QgLmhlYWRlcnsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBjb2xvcjogIzY2NjsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgoubWV0aG9kIC5mb290ZXJ7CiAgICBtYXJnaW4tdG9wOiAxMHB4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgZGlzcGxheTogZmxleDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGNvbG9yOiAjNjY2OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCgoKLmJhY2sgaW1nIHsKICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7Cn0KCgouYm90dG9tewp9CgouZGlzdHBpY2tlci1hZGRyZXNzLXdyYXBwZXJ7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47Cn0KCi5uYXYtYmFyewogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgIGJhY2tncm91bmQtY29sb3I6I2Y1M2I1NzsKICBjb2xvcjogI2ZmZjsKfQoKLmNvbnRlbnR7CiAgbGVmdDogMDsKICByaWdodDogMDsKICB0b3A6NDRweDsKICBib3R0b206IDQ0cHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KCg=="},{"version":3,"sources":["Order.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoOA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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 @order=\"order\" class=\"orderBottom\"></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 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 console.log(1);\n if (this.clientHeight > document.documentElement.clientHeight) {\n // 隐藏按钮\n const oorderBottom=document.getElementsByClassName('orderBottom')[0];\n oorderBottom.style.position='static !important'\n } else {\n // 显示按钮\n const oorderBottom=document.getElementsByClassName('orderBottom')[0];\n oorderBottom.style.position='fixed'\n }\n }\n };\n }\n }\n};\n\n</script>\n\n<style scoped>\n.shop-list{\n}\n.order_box {\n margin-top: 10px;\n}\n\n.order {\n background-color: #f5f5f5;\n height: 100vh;\n}\n.last-input{\n margin-top:20px ;\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.orderBottom{\n position: fixed;\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\n\n.back img {\n margin-top: 12px !important;\n}\n\n\n.bottom{\n}\n\n.distpicker-address-wrapper{\n display: flex;\n justify-content: space-between;\n}\n\n.nav-bar{\n font-weight: 700;\n background-color:#f53b57;\n color: #fff;\n}\n\n.content{\n left: 0;\n right: 0;\n top:44px;\n bottom: 44px;\n overflow: hidden;\n position: absolute;\n}\n\n</style>\n"]}]}