Ver código fonte

Merge branch 'test' of git.oschina.net:yiguanjia/php into test

north 8 anos atrás
pai
commit
5122b43c11

+ 2 - 1
www/vue/.eslintrc.js

@@ -29,6 +29,7 @@ module.exports = {
     // allow async-await
     'generator-star-spacing': 0,
     // allow debugger during development
-    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
+    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
+    "space-before-function-paren": [0, "never"]
   }
 }

+ 0 - 0
www/vue/.eslintrc.json


+ 0 - 46
www/vue/node_modules/chromedriver/.vscode/launch.json

@@ -1,46 +0,0 @@
-{
-    "version": "0.2.0",
-    "configurations": [
-        {
-            "name": "Launch",
-            "type": "node",
-            "request": "launch",
-            "program": "${workspaceRoot}\\install.js",
-            "stopOnEntry": false,
-            "args": [],
-            "cwd": "${workspaceRoot}",
-            "preLaunchTask": null,
-            "runtimeExecutable": null,
-            "runtimeArgs": [
-                "--nolazy"
-            ],
-            "env": {
-                "NODE_ENV": "development"
-            },
-            "console": "internalConsole",
-            "sourceMaps": false,
-            "outFiles": []
-        },
-        {
-            "name": "Attach",
-            "type": "node",
-            "request": "attach",
-            "port": 5858,
-            "address": "localhost",
-            "restart": false,
-            "sourceMaps": false,
-            "outFiles": [],
-            "localRoot": "${workspaceRoot}",
-            "remoteRoot": null
-        },
-        {
-            "name": "Attach to Process",
-            "type": "node",
-            "request": "attach",
-            "processId": "${command.PickProcess}",
-            "port": 5858,
-            "sourceMaps": false,
-            "outFiles": []
-        }
-    ]
-}

+ 0 - 3
www/vue/node_modules/chromedriver/.vscode/settings.json

@@ -1,3 +0,0 @@
-{
-    "vsicons.presets.angular": false
-}

+ 0 - 9
www/vue/node_modules/countup.js/.vscode/tasks.json

@@ -1,9 +0,0 @@
-{
-    // See https://go.microsoft.com/fwlink/?LinkId=733558
-    // for the documentation about the tasks.json format
-    "version": "0.1.0",
-    "command": "open",
-    "isShellCommand": true,
-    "args": ["-a", "Google Chrome", "${file}"],
-    "showOutput": "always"
-}

+ 379 - 487
www/vue/src/components/placeOrder.vue

@@ -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}}&nbsp;{{addressContent.address.area}}&nbsp;{{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}}&nbsp;{{addressContent.address.area}}&nbsp;{{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>