|
@@ -1,508 +1,400 @@
|
|
|
<template>
|
|
|
- <div class="place-order">
|
|
|
- <scroller>
|
|
|
- <img :src="productBox.pics[0].url" alt="">
|
|
|
- <!--extra-->
|
|
|
- <div class="extra" v-if="extraB">
|
|
|
- <div v-for="(itemExtra,index) in productBox.extra" :key="itemExtra" @click="btnAction(index, $event)">
|
|
|
- <div class="extra-text" v-bind:class="{active: index == isActive}">
|
|
|
- {{itemExtra.type}}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!--选择数量-->
|
|
|
- <group>
|
|
|
- <x-number title="选择数量" v-model="xNumberValue" :value="0" :min="0" @on-change="xNumberValueChange" fillable></x-number>
|
|
|
- </group>
|
|
|
- <!--选择时间-->
|
|
|
- <group>
|
|
|
- <datetime v-model="bookingTime" :placeholder="(bookingTime)" :max-year=2017 format="YYYY-MM-DD HH:00" @on-change="change" :title="('服务时间')" year-row="{value}年" month-row="{value}月" day-row="{value}日" hour-row="{value}点" minute-row="{value}分" confirm-text="完成" cancel-text="取消" :start-date='startDate' :end-date='endDate' :min-hour=9 :max-hour=18></datetime>
|
|
|
- </group>
|
|
|
- <!--选择地址-->
|
|
|
- <div class="weui-cells vux-no-group-title">
|
|
|
- <div class="vux-datetime weui-cell weui-cell_access" @click="clearConfig">
|
|
|
- <div>
|
|
|
- <p>选择地址</p>
|
|
|
- </div>
|
|
|
- <div class="weui-cell__ft vux-cell-primary vux-datetime-value address-info">
|
|
|
- <span>{{addressContent.name}}</span>
|
|
|
- <span>{{addressContent.mobile}}</span>
|
|
|
- <p>{{addressContent.address.city}} {{addressContent.address.area}} {{addressContent.address.detail}}</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!--优惠券-->
|
|
|
- <group>
|
|
|
- <cell class="address" title="优惠券" :value="couponName" isLink @click="selectCoupon()"></cell>
|
|
|
- </group>
|
|
|
- <!--备注-->
|
|
|
- <group>
|
|
|
- <x-textarea class="remarks" :placeholder="('可填写附加内容')" inline-desc="备注:" v-model="remarks" :show-counter="true" :rows="1" autosize></x-textarea>
|
|
|
- </group>
|
|
|
- <div class="agreement-content">
|
|
|
- <check-icon :value.sync="agreement" type="plain">
|
|
|
- <router-link to="/agreement" v-bind:class="{agreementColor: agreement}">壹管家用户服务协议</router-link>
|
|
|
- </check-icon>
|
|
|
- </div>
|
|
|
- <div style="width: 100%;padding-bottom: 15%;"></div>
|
|
|
- </scroller>
|
|
|
- <!--下单-->
|
|
|
- <div class="btn">
|
|
|
- <!--费用总计-->
|
|
|
- <div class="order-amount">
|
|
|
- <span>费用总计:</span>
|
|
|
- <span>{{orderPrice}}</span>
|
|
|
- </div>
|
|
|
- <!--确认预约-->
|
|
|
- <div class="btn-order" v-on:click="btnOrder" v-bind:class="{active: !agreement}">立即下单</div>
|
|
|
- </div>
|
|
|
- <!--展示报错信息-->
|
|
|
- <alert v-model="showAlert" :title="(alertTitle)"> {{ (alertContent) }}</alert>
|
|
|
- </div>
|
|
|
+ <div class="place-order">
|
|
|
+ <scroller>
|
|
|
+ <img :src="productBox.pics[0].url" alt="">
|
|
|
+ <!--extra-->
|
|
|
+ <div class="extra" v-if="extraB">
|
|
|
+ <div v-for="(itemExtra,index) in productBox.extra" :key="itemExtra" @click="btnAction(index, $event)">
|
|
|
+ <div class="extra-text" v-bind:class="{active: index == isActive}">
|
|
|
+ {{itemExtra.type}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!--选择数量-->
|
|
|
+ <group>
|
|
|
+ <x-number title="选择数量" v-model="xNumberValue" :value="0" :min="0" @on-change="xNumberValueChange"
|
|
|
+ fillable></x-number>
|
|
|
+ </group>
|
|
|
+ <!--选择时间-->
|
|
|
+ <group>
|
|
|
+ <datetime v-model="bookingTime" :placeholder="(bookingTime)" :max-year=2017 format="YYYY-MM-DD HH:00"
|
|
|
+ @on-change="change" :title="('服务时间')" year-row="{value}年" month-row="{value}月" day-row="{value}日"
|
|
|
+ hour-row="{value}点" minute-row="{value}分" confirm-text="完成" cancel-text="取消" :start-date='startDate'
|
|
|
+ :end-date='endDate' :min-hour=9 :max-hour=18></datetime>
|
|
|
+ </group>
|
|
|
+ <!--选择地址-->
|
|
|
+ <div class="weui-cells vux-no-group-title">
|
|
|
+ <div class="vux-datetime weui-cell weui-cell_access" @click="clearConfig">
|
|
|
+ <div>
|
|
|
+ <p>选择地址</p>
|
|
|
+ </div>
|
|
|
+ <div class="weui-cell__ft vux-cell-primary vux-datetime-value address-info">
|
|
|
+ <span>{{addressContent.name}}</span>
|
|
|
+ <span>{{addressContent.mobile}}</span>
|
|
|
+ <p v-if="addressContent.name !== '暂无地址信息'">
|
|
|
+ {{addressContent.address.city}} {{addressContent.address.area}} {{addressContent.address.detail}}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!--优惠券-->
|
|
|
+ <group>
|
|
|
+ <cell class="address" title="优惠券" :value="couponName" isLink @click="selectCoupon()"></cell>
|
|
|
+ </group>
|
|
|
+ <!--备注-->
|
|
|
+ <group>
|
|
|
+ <x-textarea class="remarks" :placeholder="('可填写附加内容')" inline-desc="备注:" v-model="remarks" :show-counter="true"
|
|
|
+ :rows="1" autosize></x-textarea>
|
|
|
+ </group>
|
|
|
+ <div class="agreement-content">
|
|
|
+ <check-icon :value.sync="agreement" type="plain">
|
|
|
+ <router-link to="/agreement" v-bind:class="{agreementColor: agreement}">壹管家用户服务协议</router-link>
|
|
|
+ </check-icon>
|
|
|
+ </div>
|
|
|
+ <div style="width: 100%;padding-bottom: 15%;"></div>
|
|
|
+ </scroller>
|
|
|
+ <!--下单-->
|
|
|
+ <div class="btn">
|
|
|
+ <!--费用总计-->
|
|
|
+ <div class="order-amount">
|
|
|
+ <span>费用总计:</span>
|
|
|
+ <span>{{orderPrice}}</span>
|
|
|
+ </div>
|
|
|
+ <!--确认预约-->
|
|
|
+ <div class="btn-order" v-on:click="btnOrder" v-bind:class="{active: !agreement}">立即下单</div>
|
|
|
+ </div>
|
|
|
+ <!--展示报错信息-->
|
|
|
+ <alert v-model="showAlert" :title="(alertTitle)"> {{ (alertContent) }}</alert>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
-<script type="es6">
|
|
|
-import config from '../config/config'
|
|
|
-import selectTime from '../config/selectTime'
|
|
|
-import { Group, DatetimeRange, TransferDom, Datetime, XNumber, Cell, CellBox, XTextarea, Alert, CheckIcon } from 'vux'
|
|
|
-import { mapState, mapActions } from 'vuex'
|
|
|
-// import axios from 'axios'
|
|
|
-// import qs from 'qs'
|
|
|
-// import api from '../config/api'
|
|
|
-export default {
|
|
|
- name: 'placeOrder',
|
|
|
- data() {
|
|
|
- return {
|
|
|
- productBox: config.productInfo, // 当前服务内容
|
|
|
- extraB: config.productInfo.extra, // 当前服务类型
|
|
|
- bookingTime: selectTime.serviceHours, // 服务时间
|
|
|
- value: ['2017-06-24', '03', '05'], // 设定日期格式
|
|
|
- startDate: selectTime.startDate, // 限定最小日期
|
|
|
- endDate: selectTime.endDate, // 限定最大日期
|
|
|
- isActive: config.isActive,
|
|
|
- addressContent: config.addressContent, // 只做显示用户地址内容
|
|
|
- xNumberValue: config.xNumberValue, // 选择数量
|
|
|
- remarks: '', // 备注
|
|
|
- orderPrice: config.orderPrice, // 价格
|
|
|
- showAlert: false, // 是否显示弹出框
|
|
|
- alertTitle: '', // 弹窗标题
|
|
|
- alertContent: '', // 弹窗内容
|
|
|
- couponName: '暂无优惠券', // 优惠券名称
|
|
|
- couponValue: 0, // 优惠券名称
|
|
|
- CouponProduct: {},
|
|
|
- agreement: true // 壹管家用户服务协议
|
|
|
- }
|
|
|
- },
|
|
|
- // 指令
|
|
|
- directives: {
|
|
|
- TransferDom
|
|
|
- },
|
|
|
- // 组成组件
|
|
|
- components: {
|
|
|
- Group, DatetimeRange, TransferDom, Datetime, XNumber, Cell, CellBox, XTextarea, Alert, CheckIcon
|
|
|
- },
|
|
|
- beforeCreate() {
|
|
|
- config.addressAdd = {
|
|
|
- userName: '',
|
|
|
- userMobile: '',
|
|
|
- positionName: '请定位您的小区或者街道',
|
|
|
- userAddress: ''
|
|
|
- }
|
|
|
- if (this.$store.state.order.time !== undefined) {
|
|
|
- selectTime.serviceHours = this.$store.state.order.time
|
|
|
- }
|
|
|
- },
|
|
|
- created() {
|
|
|
- console.log(config.isActive)
|
|
|
- if (config.orderInfo.coupons) {
|
|
|
- this.couponName = config.orderInfo.coupons.coupon.name
|
|
|
- this.couponValue = parseInt(config.orderInfo.coupons.coupon.value)
|
|
|
- }
|
|
|
- if (config.station === '') {
|
|
|
- config.station = '57db39709f5160bb048b456a'
|
|
|
- }
|
|
|
- if (config.orderPrice === '') {
|
|
|
- config.orderPrice = 0
|
|
|
- }
|
|
|
- if (config.addressContent.name === undefined) {
|
|
|
- if (config.shopAddress.length === 0) {
|
|
|
- this.addressContent.name = '暂无地址信息'
|
|
|
- } else {
|
|
|
- this.addressContent = config.shopAddress[0]
|
|
|
+<script>
|
|
|
+ import config from '../config/config'
|
|
|
+ import selectTime from '../config/selectTime'
|
|
|
+ import {Group, DatetimeRange, TransferDom, Datetime, XNumber, Cell, CellBox, XTextarea, Alert, CheckIcon} from 'vux'
|
|
|
+ import {mapState, mapActions} from 'vuex'
|
|
|
+ // import axios from 'axios'
|
|
|
+ // import qs from 'qs'
|
|
|
+ // import api from '../config/api'
|
|
|
+ export default {
|
|
|
+ name: 'placeOrder',
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ productBox: config.productInfo, // 当前服务内容
|
|
|
+ extraB: config.productInfo.extra, // 当前服务类型
|
|
|
+ bookingTime: selectTime.serviceHours, // 服务时间
|
|
|
+ value: ['2017-06-24', '03', '05'], // 设定日期格式
|
|
|
+ startDate: selectTime.startDate, // 限定最小日期
|
|
|
+ endDate: selectTime.endDate, // 限定最大日期
|
|
|
+ isActive: config.isActive,
|
|
|
+ addressContent: config.addressContent, // 只做显示用户地址内容
|
|
|
+ xNumberValue: config.xNumberValue, // 选择数量
|
|
|
+ remarks: '', // 备注
|
|
|
+ orderPrice: config.orderPrice, // 价格
|
|
|
+ showAlert: false, // 是否显示弹出框
|
|
|
+ alertTitle: '', // 弹窗标题
|
|
|
+ alertContent: '', // 弹窗内容
|
|
|
+ couponName: '暂无优惠券', // 优惠券名称
|
|
|
+ couponValue: 0, // 优惠券名称
|
|
|
+ CouponProduct: {},
|
|
|
+ agreement: true // 壹管家用户服务协议
|
|
|
}
|
|
|
- } else {
|
|
|
- this.addressContent = config.addressContent
|
|
|
- }
|
|
|
- config.order.extra = JSON.stringify(config.productInfo.extra[0])
|
|
|
- },
|
|
|
- computed: {
|
|
|
- ...mapState({
|
|
|
- order: state => state.order,
|
|
|
- orderChange: state => state.orderChange
|
|
|
- })
|
|
|
- },
|
|
|
- watch: {
|
|
|
- 'isActive'(val, oldVal) {
|
|
|
- // 计算商品价格
|
|
|
- this.orderPrice = config.orderPrice = payCharge(parseInt(config.productInfo.extra[val].price), config.xNumberValue, this.couponValue)
|
|
|
},
|
|
|
- 'couponValue'(val, oldVal) {
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- // 监听时间插件值得变化
|
|
|
- clearConfig() {
|
|
|
- this.$router.push({ path: '/addressList' })
|
|
|
+ // 指令
|
|
|
+ directives: {
|
|
|
+ TransferDom
|
|
|
},
|
|
|
- ...mapActions([
|
|
|
- 'PAYCHANGE'
|
|
|
- ]),
|
|
|
- // 商品数量
|
|
|
- xNumberValueChange(val) {
|
|
|
- config.xNumberValue = val
|
|
|
- // 计算商品价格
|
|
|
- if (config.productInfo.price === '') {
|
|
|
- if (config.isActive === '') {
|
|
|
- config.isActive = 0
|
|
|
+ // 组成组件
|
|
|
+ components: {
|
|
|
+ Group, DatetimeRange, TransferDom, Datetime, XNumber, Cell, CellBox, XTextarea, Alert, CheckIcon
|
|
|
+ },
|
|
|
+ beforeCreate () {
|
|
|
+ config.addressAdd = {
|
|
|
+ userName: '',
|
|
|
+ userMobile: '',
|
|
|
+ positionName: '请定位您的小区或者街道',
|
|
|
+ userAddress: ''
|
|
|
+ }
|
|
|
+ if (this.$store.state.order.time !== undefined) {
|
|
|
+ selectTime.serviceHours = this.$store.state.order.time
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created () {
|
|
|
+ if (config.orderInfo.coupons) {
|
|
|
+ this.couponName = config.orderInfo.coupons.coupon.name
|
|
|
+ this.couponValue = parseInt(config.orderInfo.coupons.coupon.value)
|
|
|
+ }
|
|
|
+ if (config.station === '') {
|
|
|
+ config.station = '57db39709f5160bb048b456a'
|
|
|
+ }
|
|
|
+ if (config.orderPrice === '') {
|
|
|
+ config.orderPrice = 0
|
|
|
+ }
|
|
|
+ if (config.addressContent.name === undefined) {
|
|
|
+ if (config.shopAddress.length === 0) {
|
|
|
+ this.addressContent.name = '暂无地址信息'
|
|
|
+ } else {
|
|
|
+ this.addressContent = config.shopAddress[0]
|
|
|
}
|
|
|
- this.orderPrice = config.orderPrice = payCharge(parseInt(config.productInfo.extra[config.isActive].price), config.xNumberValue, this.couponValue)
|
|
|
} else {
|
|
|
- this.orderPrice = config.orderPrice = payCharge(parseInt(config.productInfo.price), config.xNumberValue, this.couponValue)
|
|
|
+ this.addressContent = config.addressContent
|
|
|
}
|
|
|
+ config.order.extra = JSON.stringify(config.productInfo.extra[0])
|
|
|
},
|
|
|
- selectCoupon() {
|
|
|
- if (this.products) {
|
|
|
-
|
|
|
- }
|
|
|
+ computed: {
|
|
|
+ ...mapState({
|
|
|
+ order: state => state.order,
|
|
|
+ orderChange: state => state.orderChange
|
|
|
+ })
|
|
|
},
|
|
|
- change(val) {
|
|
|
- this.$store.state.order.time = val
|
|
|
- config.order.time = val
|
|
|
+ watch: {
|
|
|
+ 'isActive' (val, oldVal) {
|
|
|
+ // 计算商品价格
|
|
|
+ this.orderPrice = config.orderPrice = payCharge(parseInt(config.productInfo.extra[val].price), config.xNumberValue, this.couponValue)
|
|
|
+ },
|
|
|
+ 'couponValue' (val, oldVal) {
|
|
|
+ }
|
|
|
},
|
|
|
- btnOrder: function () {
|
|
|
- if (this.agreement) {
|
|
|
- // 判断服务是否选择
|
|
|
- if (localStorage.getItem('extra') === null && config.productInfo.extra.length !== 0) {
|
|
|
- // config.order.extra = ''
|
|
|
- this.alertTitle = '抱歉'
|
|
|
- this.alertContent = '你还没有选择服务类型'
|
|
|
- this.showAlert = true
|
|
|
+ methods: {
|
|
|
+ // 监听时间插件值得变化
|
|
|
+ clearConfig () {
|
|
|
+ this.$router.push({path: '/addressList'})
|
|
|
+ },
|
|
|
+ ...mapActions([
|
|
|
+ 'PAYCHANGE'
|
|
|
+ ]),
|
|
|
+ // 商品数量
|
|
|
+ xNumberValueChange (val) {
|
|
|
+ config.xNumberValue = val
|
|
|
+ // 计算商品价格
|
|
|
+ if (config.productInfo.price === '') {
|
|
|
+ if (config.isActive === '') {
|
|
|
+ config.isActive = 0
|
|
|
+ }
|
|
|
+ this.orderPrice = config.orderPrice = payCharge(parseInt(config.productInfo.extra[config.isActive].price), config.xNumberValue, this.couponValue)
|
|
|
+ } else {
|
|
|
+ this.orderPrice = config.orderPrice = payCharge(parseInt(config.productInfo.price), config.xNumberValue, this.couponValue)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectCoupon () {
|
|
|
+ if (this.products) {
|
|
|
+
|
|
|
}
|
|
|
- // 判断布艺沙发下单数量少于5套
|
|
|
- // 擦玻璃数量少于10平米
|
|
|
- // 新居开慌的数量少于50平米
|
|
|
- // 民宿保洁的数量少于10平米
|
|
|
- // 商品数量不为0
|
|
|
- if (this.xNumberValue <= 0) {
|
|
|
- // 弹出提示框
|
|
|
- this.$vux.alert.show({
|
|
|
- title: '抱歉',
|
|
|
- content: '你还没有选择服务数量',
|
|
|
- onShow() {
|
|
|
- },
|
|
|
- onHide() {
|
|
|
- }
|
|
|
- })
|
|
|
+ },
|
|
|
+ change (val) {
|
|
|
+ this.$store.state.order.time = val
|
|
|
+ config.order.time = val
|
|
|
+ },
|
|
|
+ btnOrder: function () {
|
|
|
+ if (this.agreement) {
|
|
|
+ // 判断服务是否选择
|
|
|
+ if (localStorage.getItem('extra') === null && config.productInfo.extra.length !== 0) {
|
|
|
+ // config.order.extra = ''
|
|
|
+ this.alertTitle = '抱歉'
|
|
|
+ this.alertContent = '你还没有选择服务类型'
|
|
|
+ this.showAlert = true
|
|
|
+ }
|
|
|
+ // 判断布艺沙发下单数量少于5套
|
|
|
+ // 擦玻璃数量少于10平米
|
|
|
+ // 新居开慌的数量少于50平米
|
|
|
+ // 民宿保洁的数量少于10平米
|
|
|
+ // 商品数量不为0
|
|
|
+ if (this.xNumberValue <= 0) {
|
|
|
+ // 弹出提示框
|
|
|
+ this.$vux.alert.show({
|
|
|
+ title: '抱歉',
|
|
|
+ content: '你还没有选择服务数量',
|
|
|
+ onShow () {
|
|
|
+ },
|
|
|
+ onHide () {
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 玻璃清洁10平米起购
|
|
|
+ // 朱芳
|
|
|
+ // 获得余额支付的金额
|
|
|
+ // 判断用户余额大于等于订单金额,满足条件走余额支付
|
|
|
+ // config.order.userId = config.userId
|
|
|
+ // config.order.memo = this.remarks
|
|
|
+ // config.order.id = config.productInfo.id
|
|
|
+ // config.order.products = JSON.stringify({
|
|
|
+ // product_id: config.productInfo.id, // 产品ID
|
|
|
+ // count: this.xNumberValue // 产品数量
|
|
|
+ // })
|
|
|
+ // if (this.$store.state.user.userInfo.balance >= this.orderPrice) {
|
|
|
+ // config.order.balance = this.orderPrice
|
|
|
+ // this.orderPrice = 0
|
|
|
+ // } else {
|
|
|
+ // // 不满足条件走混合支付
|
|
|
+ // config.order.balance = this.$store.state.user.userInfo.balance
|
|
|
+ // this.orderPrice = this.orderPrice - config.order.balance
|
|
|
+ // }
|
|
|
+ // let productParamJson = [{'product_id': config.productInfo.id, 'count': config.xNumberValue}]
|
|
|
+ // productParamJson = JSON.stringify(productParamJson)
|
|
|
+ // config.order.extra = '[' + config.order.extra + ']'
|
|
|
+ // let tmp = {
|
|
|
+ // balance: config.order.balance,
|
|
|
+ // products: productParamJson,
|
|
|
+ // memo: config.order.memo,
|
|
|
+ // precedence: 0,
|
|
|
+ // booking_time: this.bookingTime,
|
|
|
+ // address_id: this.addressContent.address_id,
|
|
|
+ // coupons: [],
|
|
|
+ // station: config.station,
|
|
|
+ // type: config.productInfo.type,
|
|
|
+ // counts: config.xNumberValue,
|
|
|
+ // extra: config.order.extra,
|
|
|
+ // order_channel: 'wx_pub',
|
|
|
+ // tech_id: '',
|
|
|
+ // user_id: config.userId
|
|
|
+ // }
|
|
|
+ // // config.orderInfo = tmp
|
|
|
+ // axios.post('o2o/order/add', qs.stringify(tmp)).then(res => {
|
|
|
+ // if (res.data.data.status === 1) {
|
|
|
+ // this.$router.push({path: '/'})
|
|
|
+ // } else {
|
|
|
+ // this.$router.push({path: '/pay', query: {orderInfo: res.data.data}})
|
|
|
+ // }
|
|
|
+ // })
|
|
|
}
|
|
|
- // 玻璃清洁10平米起购
|
|
|
- // 朱芳
|
|
|
- // 获得余额支付的金额
|
|
|
- // 判断用户余额大于等于订单金额,满足条件走余额支付
|
|
|
- // config.order.userId = config.userId
|
|
|
- // config.order.memo = this.remarks
|
|
|
- // config.order.id = config.productInfo.id
|
|
|
- // config.order.products = JSON.stringify({
|
|
|
- // product_id: config.productInfo.id, // 产品ID
|
|
|
- // count: this.xNumberValue // 产品数量
|
|
|
- // })
|
|
|
- // if (this.$store.state.user.userInfo.balance >= this.orderPrice) {
|
|
|
- // config.order.balance = this.orderPrice
|
|
|
- // this.orderPrice = 0
|
|
|
- // } else {
|
|
|
- // // 不满足条件走混合支付
|
|
|
- // config.order.balance = this.$store.state.user.userInfo.balance
|
|
|
- // this.orderPrice = this.orderPrice - config.order.balance
|
|
|
- // }
|
|
|
- // let productParamJson = [{'product_id': config.productInfo.id, 'count': config.xNumberValue}]
|
|
|
- // productParamJson = JSON.stringify(productParamJson)
|
|
|
- // config.order.extra = '[' + config.order.extra + ']'
|
|
|
- // let tmp = {
|
|
|
- // balance: config.order.balance,
|
|
|
- // products: productParamJson,
|
|
|
- // memo: config.order.memo,
|
|
|
- // precedence: 0,
|
|
|
- // booking_time: this.bookingTime,
|
|
|
- // address_id: this.addressContent.address_id,
|
|
|
- // coupons: [],
|
|
|
- // station: config.station,
|
|
|
- // type: config.productInfo.type,
|
|
|
- // counts: config.xNumberValue,
|
|
|
- // extra: config.order.extra,
|
|
|
- // order_channel: 'wx_pub',
|
|
|
- // tech_id: '',
|
|
|
- // user_id: config.userId
|
|
|
- // }
|
|
|
- // // config.orderInfo = tmp
|
|
|
- // axios.post('o2o/order/add', qs.stringify(tmp)).then(res => {
|
|
|
- // if (res.data.data.status === 1) {
|
|
|
- // this.$router.push({path: '/'})
|
|
|
- // } else {
|
|
|
- // this.$router.push({path: '/pay', query: {orderInfo: res.data.data}})
|
|
|
- // }
|
|
|
- // })
|
|
|
+ },
|
|
|
+ btnAction: function (index, event) {
|
|
|
+ this.xNumberValue = config.xNumberValue = 0
|
|
|
+ localStorage.setItem('extra', index)
|
|
|
+ config.order.extra = JSON.stringify(config.productInfo.extra[index])
|
|
|
+ config.orderInfo.coupons = []
|
|
|
+ this.couponName = '暂无优惠券'
|
|
|
+ this.couponValue = 0
|
|
|
+ this.isActive = index
|
|
|
+ config.isActive = index
|
|
|
}
|
|
|
- },
|
|
|
- btnAction: function (index, event) {
|
|
|
- this.xNumberValue = config.xNumberValue = 0
|
|
|
- localStorage.setItem('extra', index)
|
|
|
- config.order.extra = JSON.stringify(config.productInfo.extra[index])
|
|
|
- config.orderInfo.coupons = []
|
|
|
- this.couponName = '暂无优惠券'
|
|
|
- this.couponValue = 0
|
|
|
- this.isActive = index
|
|
|
- config.isActive = index
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
-function payCharge(price, count, couponValue) {
|
|
|
- let p = ''
|
|
|
- p = price * count - couponValue
|
|
|
- return p
|
|
|
-}
|
|
|
+ function payCharge(price, count, couponValue) {
|
|
|
+ let p = ''
|
|
|
+ p = price * count - couponValue
|
|
|
+ return p
|
|
|
+ }
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-/*订单背景色*/
|
|
|
-
|
|
|
-
|
|
|
-/*类目*/
|
|
|
-
|
|
|
-.extra {
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
- padding: 0 15px;
|
|
|
- background-color: #fff;
|
|
|
-}
|
|
|
-
|
|
|
-.extra>div {
|
|
|
- width: 50%;
|
|
|
-}
|
|
|
-
|
|
|
-.extra-text {
|
|
|
- border: 1px solid #000;
|
|
|
- font-size: 0.8rem;
|
|
|
- transition-duration: 95ms;
|
|
|
- margin: 10px;
|
|
|
- padding: 5px;
|
|
|
- color: #929292;
|
|
|
-}
|
|
|
-
|
|
|
-.active {
|
|
|
- border-color: rgb(13, 12, 8);
|
|
|
- color: #fff;
|
|
|
- background: #000;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-/*选择地址*/
|
|
|
-
|
|
|
-.address {
|
|
|
- text-align: left;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-/*壹管家用户服务协议*/
|
|
|
-
|
|
|
-.agreement-content {
|
|
|
- text-align: left;
|
|
|
- padding-top: 15px;
|
|
|
- padding-left: 10px;
|
|
|
-}
|
|
|
-
|
|
|
-.agreementColor {
|
|
|
- color: #007aff;
|
|
|
-}
|
|
|
-
|
|
|
-.vux-check-icon {
|
|
|
- display: block;
|
|
|
-}
|
|
|
-
|
|
|
-span {
|
|
|
- a {
|
|
|
- color: #d3d3d3;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.address-info {
|
|
|
- span {
|
|
|
- font-size: 13px;
|
|
|
- &:nth-child(1) {
|
|
|
- margin-right: 5px;
|
|
|
- }
|
|
|
- }
|
|
|
- p {
|
|
|
- font-size: 13px;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-/*填写备注*/
|
|
|
-
|
|
|
-.remarks {
|
|
|
- textarea {
|
|
|
- background-color: #f5f5f5;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-/*下单样式*/
|
|
|
-
|
|
|
-.btn {
|
|
|
- position: fixed;
|
|
|
- right: 0;
|
|
|
- bottom: 0;
|
|
|
- left: 0;
|
|
|
- border-top: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
- background-color: #ffffff;
|
|
|
- height: 2.5rem;
|
|
|
- .order-amount {
|
|
|
- padding-left: 15px;
|
|
|
- float: left;
|
|
|
- width: 50%;
|
|
|
- font-size: 16px;
|
|
|
- text-align: left;
|
|
|
- line-height: 2.5rem;
|
|
|
- span:nth-child(2) {
|
|
|
- color: red;
|
|
|
- }
|
|
|
- }
|
|
|
- .btn-order {
|
|
|
- padding: 3%;
|
|
|
- width: 30%;
|
|
|
- float: right;
|
|
|
- margin: 0 auto;
|
|
|
- background-color: #927603;
|
|
|
- border: 1px solid #a78b03;
|
|
|
- color: #ffffff;
|
|
|
- font-size: 18px;
|
|
|
- }
|
|
|
- .active {
|
|
|
- background-color: #ddd;
|
|
|
- color: white;
|
|
|
- border: 1px solid #ddd;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-img {
|
|
|
- display: block;
|
|
|
- width: 100%;
|
|
|
-}
|
|
|
+ /*订单背景色*/
|
|
|
+
|
|
|
+ /*类目*/
|
|
|
+
|
|
|
+ .extra {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ padding: 0 15px;
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .extra > div {
|
|
|
+ width: 50%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .extra-text {
|
|
|
+ border: 1px solid #000;
|
|
|
+ font-size: 0.8rem;
|
|
|
+ transition-duration: 95ms;
|
|
|
+ margin: 10px;
|
|
|
+ padding: 5px;
|
|
|
+ color: #929292;
|
|
|
+ }
|
|
|
+
|
|
|
+ .active {
|
|
|
+ border-color: rgb(13, 12, 8);
|
|
|
+ color: #fff;
|
|
|
+ background: #000;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*选择地址*/
|
|
|
+
|
|
|
+ .address {
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*壹管家用户服务协议*/
|
|
|
+
|
|
|
+ .agreement-content {
|
|
|
+ text-align: left;
|
|
|
+ padding-top: 15px;
|
|
|
+ padding-left: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .agreementColor {
|
|
|
+ color: #007aff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .vux-check-icon {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ a {
|
|
|
+ color: #d3d3d3;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .address-info {
|
|
|
+ span {
|
|
|
+ font-size: 13px;
|
|
|
+ &:nth-child(1) {
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p {
|
|
|
+ font-size: 13px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*填写备注*/
|
|
|
+
|
|
|
+ .remarks {
|
|
|
+ textarea {
|
|
|
+ background-color: #f5f5f5;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*下单样式*/
|
|
|
+
|
|
|
+ .btn {
|
|
|
+ position: fixed;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
+ background-color: #ffffff;
|
|
|
+ height: 2.5rem;
|
|
|
+ .order-amount {
|
|
|
+ padding-left: 15px;
|
|
|
+ float: left;
|
|
|
+ width: 50%;
|
|
|
+ font-size: 16px;
|
|
|
+ text-align: left;
|
|
|
+ line-height: 2.5rem;
|
|
|
+ span:nth-child(2) {
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .btn-order {
|
|
|
+ padding: 3%;
|
|
|
+ width: 30%;
|
|
|
+ float: right;
|
|
|
+ margin: 0 auto;
|
|
|
+ background-color: #927603;
|
|
|
+ border: 1px solid #a78b03;
|
|
|
+ color: #ffffff;
|
|
|
+ font-size: 18px;
|
|
|
+ }
|
|
|
+ .active {
|
|
|
+ background-color: #ddd;
|
|
|
+ color: white;
|
|
|
+ border: 1px solid #ddd;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ display: block;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
</style>
|