Browse Source

Merge remote-tracking branch 'origin/feature-201817-yc' into feature-201817-yc

yangc 7 years ago
parent
commit
6b9650f46a

+ 4 - 1
components/mobile/MobileHeader.vue

@@ -108,7 +108,7 @@
         return this.$store.state.componentDetail.detail.data
       },
       showEnHeader () {
-        return this.startWith(this.$route.path, '/mobile/center') || this.startWith(this.$route.path, '/mobile/order')
+        return this.startWith(this.$route.path, '/mobile/center') || this.startWith(this.$route.path, '/mobile/order') || this.startWith(this.$route.path, '/mobile/user/address')
       }
 //      showHeader () {
 //        return this.$route.path !== '/' || !this.$route.path || this.$route.path === ''
@@ -190,6 +190,9 @@
         } else if (this.startWith(val, '/mobile/user/info/admin')) {
           this.showSearchIcon = false
           title = '管理员信息'
+        } else if (this.startWith(val, '/mobile/user/address')) {
+          this.showSearchIcon = false
+          title = '收货地址信息'
         } else if (this.startWith(val, '/mobile/product')) {
           this.showSearchIcon = false
           title = '产品详情'

+ 235 - 0
components/mobile/base/addressEdit.vue

@@ -0,0 +1,235 @@
+<template>
+  <div class="shipments_address_edit">
+    <div class="form_line">
+      <ul class="list-unstyled" ref="addressContent">
+        <li class="clearfix">
+          <div class="com_left pull-left"><span>*</span>发货人姓名:</div>
+          <div class="form_input">
+            <input type="text" placeholder="请输入您的姓名" v-model="params.name" maxlength="10">
+          </div>
+        </li>
+        <li class="clearfix">
+          <div class="com_left pull-left"><span>*</span>联系电话:</div>
+          <div class="form_input">
+            <input type="tel" placeholder="请输入您的联系电话" v-model="params.tel" maxlength="11">
+          </div>
+        </li>
+        <li class="clearfix">
+          <div class="com_left pull-left">邮箱:</div>
+          <div class="form_input">
+            <input type="email" placeholder="请输入正确邮箱,用于接收订单提醒" v-model="params.email">
+          </div>
+        </li>
+        <li class="clearfix">
+          <div class="com_left pull-left"><span>*</span>所在地区:</div>
+          <div class="form_input" @click="addressShow = true">
+            <span v-text="params.area || '选择地区'">选择地区</span>
+          </div>
+        </li>
+        <li class="clearfix">
+          <div class="com_left pull-left"><span>*</span>详细地址:</div>
+          <div class="form_input">
+            <input type="text" placeholder="请您填写详细地址,街道名、门牌号等" v-model="params.detailAddress" maxlength="30">
+          </div>
+        </li>
+        <li class="clearfix">
+          <div class="com_left pull-left"><span>*</span>默认地址:</div>
+          <div class="form_input">
+            <el-switch
+              v-model="isActive"
+              on-text="ON"
+              off-text="OFF">
+            </el-switch>
+          </div>
+        </li>
+      </ul>
+    </div>
+    <div class="control clearfix">
+      <div class="cancel" @click="storeInfosave('cancel')">取消</div>
+      <div class="save" @click="storeInfosave()">保存</div>
+    </div>
+    <select-address :isShow="addressShow" @closeAction="addressData"></select-address>
+    <remind-box :title="collectResult" :timeoutCount="timeoutCount"></remind-box>
+  </div>
+</template>
+
+<script>
+  import BScroll from 'better-scroll'
+  import { RemindBox } from '~components/mobile/common'
+  import SelectAddress from './SelectAddress.vue'
+  export default {
+    name: 'AddressEditView',
+    props: {
+      data: {},
+      isSend: {
+        default: true,
+        type: Boolean
+      },
+      isPersonal: {
+        default: true,
+        type: Boolean
+      }
+    },
+    data() {
+      return {
+        params: {
+          area: '',
+          detailAddress: '',
+          email: '',
+          tel: '',
+          name: '',
+          province: '',
+          city: '',
+          district: ''
+        },
+        isActive: false,
+        addressShow: false,
+        timeoutCount: 0,
+        collectResult: ''
+      }
+    },
+    watch: {
+      data(newVal) {
+        this.isActive = false
+        this.params = this.baseUtils.deepCopy(newVal)
+      }
+    },
+    methods: {
+      editClick () {
+        this.$emit('isEditEvent', [], false)
+      },
+      addressData (type) {
+        this.addressShow = false
+        if (type) {
+          this.params.area = `${type.province},${type.city},${type.area}`
+          this.params.province = type.province
+          this.params.city = type.city
+          this.params.district = type.area
+        }
+      },
+      setRemindText (str) {
+        this.collectResult = str
+        this.timeoutCount++
+      },
+      storeInfosave(_tp) {
+        this.BScroll.refresh()
+        if (_tp === 'cancel') {
+          this.editClick()
+          return false
+        }
+        if (!this.params.name || this.params.name === '') {
+          this.setRemindText('发货人姓名不能为空')
+          return false
+        }
+        if (!this.params.tel || this.params.tel === '' || !/^1[3|4|5|6|7|8|9][0-9]{9}$/.test(this.params.tel)) {
+          this.setRemindText('请输入正确的手机号码')
+          return false
+        }
+        if (this.params.email && !/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(this.params.email)) {
+          this.setRemindText('请输入正确的邮箱')
+          return false
+        }
+        if (!this.params.area || this.params.area === '') {
+          this.setRemindText('请选择所在地区')
+          return false
+        }
+        if (!this.params.detailAddress || this.params.detailAddress === '') {
+          this.setRemindText('请填写详细地址信息')
+          return false
+        }
+        this.$http.post(`/trade/address/shipping/save?isPersonal=${this.isPersonal}&isSetTop=${this.isActive}&send=${this.isSend}`, this.params)
+          .then(() => {
+            this.setRemindText('保存成功')
+            this.editClick()
+          }).catch(err => {
+            this.collectResult = err.response.data
+            this.timeoutCount++
+            this.params = this.data
+          })
+      }
+    },
+    components: {
+      RemindBox,
+      SelectAddress
+    },
+    mounted() {
+      this.$nextTick(() => {
+        if (this.BScroll) {
+          this.BScroll.refresh()
+        } else {
+          this.BScroll = new BScroll(this.$refs.addressContent, {
+            click: true
+          })
+        }
+      })
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  .shipments_address_edit{
+    .control {
+      width: 90%;
+      margin: 0.4rem auto 0rem;
+      height: .88rem;
+      line-height: 0.88rem;
+      .save {
+        border-radius: 3px;
+        width: 48%;
+        color: #fff;
+        text-align: center;
+        height: .88rem;
+        line-height: 0.88rem;
+        background: #3e82f5;
+        float: right;
+      }
+      .cancel {
+        border-radius: 3px;
+        width: 48%;
+        background: #acabab;
+        color: #fff;
+        text-align: center;
+        height: .88rem;
+        line-height: 0.88rem;
+        float: left;
+      }
+    }
+    .form_line{
+      margin:.2rem;
+      padding:.2rem;
+      background: #ffffff;
+      border-radius:.05rem;
+      ul{
+        li{
+          line-height: 1.2rem;
+          height:1.2rem;
+          border-bottom:1px solid #d3d3d3;
+          vertical-align: middle;
+          &:last-child{
+            border:none;
+          }
+          .com_left{
+            width:1.85rem;
+            color:#4c8cf7;
+            text-align: right;
+            font-size: .28rem;
+            span{
+              color:#ff3333;
+            }
+          }
+          .form_input{
+            margin-left:1.85rem;
+            padding-right:.2rem;
+            input{
+              width:100%;
+              line-height: .3rem;
+              height:.3rem;
+              border:none;
+              font-size: .28rem;
+            }
+          }
+        }
+      }
+    }
+  }
+</style>

+ 303 - 0
components/mobile/base/addressView.vue

@@ -0,0 +1,303 @@
+<template>
+  <div class="address_info">
+    <div class="add_rule">
+      <a @click="editClick()"><i class="iconfont icon-add"></i>{{isSend ? '新增发货地址' : '新增收货地址'}}</a>
+    </div>
+    <div class="deleteKuang" v-if="showLogout">
+      <div class="kuangContent">
+        <div class="title">系统提示</div>
+        <div class="titleinfo">是否删除?</div>
+        <div class="K_btn">
+          <div class="cancelBtn" @click="showLogout = false">取消</div>
+          <div class="answerBtn" @click="goNext">确定</div>
+        </div>
+      </div>
+    </div>
+    <ul class="list-unstyled">
+      <li v-for="(item, index) in addressList">
+        <div class="wrapper-line clearfix">
+          <div class="name pull-left">{{isSend ? '发货地址:' : '收货地址:'}}</div>
+          <div class="name-text">{{item.area}}{{item.detailAddress}}</div>
+        </div>
+        <div class="wrapper-line clearfix">
+          <div class="name pull-left">{{isSend ? '发货人:' : '收货人:'}}</div>
+          <div class="name-text">{{item.name}}</div>
+        </div>
+        <div class="wrapper-line clearfix">
+          <div class="name pull-left">电话:</div>
+          <div class="name-text">{{item.tel}}</div>
+        </div>
+        <div class="item-bottom clearfix">
+          <div class="pull-left" >
+            <label class="bottom-modal-check mobile-cart-check" :class="{active: item.num === 1}">
+              <input type="checkbox" @change="setActiveClick(item.id)">
+              <span>默认地址</span>
+            </label>
+          </div>
+          <div class="pull-right" >
+            <span @click="editClick(item)"><i class="iconfont icon-edit"></i>修改</span>
+            <span @click="deleteClick(item.id, index)"><i class="iconfont icon-lajitong"></i>删除</span>
+          </div>
+        </div>
+      </li>
+    </ul>
+
+    <pull-up
+      :searchMore="fetching"
+      :allPage="allPage"
+      :page="param.page"
+      :fixId="'logisticsContent'"
+      @pullUpAction="getPullAddress">
+    </pull-up>
+  </div>
+</template>
+
+<script type="text/javascript">
+  import { PullUp } from '~components/mobile/common'
+  export default {
+    name: 'AddressInfoView',
+    props: {
+      isSend: {
+        default: true,
+        type: Boolean
+      }
+    },
+    data() {
+      return {
+        addressList: [],
+        showLogout: false,
+        // 保存操作数据的序号
+        saveId: {
+          id: '',
+          active: 0
+        },
+        param: {
+          count: 10,
+          page: 1,
+          sorting: { 'num': 'asc' }
+        },
+        isChange: false
+      }
+    },
+    watch: {
+      'listInfo': {
+        handler: function (val) {
+          val.content = val.content.sort((a, b) => { return a.num - b.num })
+          if (this.isChange) {
+            this.addressList = val.content
+            this.isChange = false
+          } else {
+            this.addressList = [...this.addressList, ...val.content]
+          }
+        },
+        immediate: true
+      }
+    },
+    methods: {
+      // 设置默认地址
+      setActiveClick (type) {
+        this.$http.put(`/trade/address/settop/${type}`).then(() => {
+          this.initList()
+        })
+      },
+      // 删除事件
+      deleteClick (type, index) {
+        this.saveId.id = type
+        this.saveId.active = index
+        this.showLogout = true
+      },
+      goNext() {
+        if (this.saveId.active === 0) {
+          this.setActiveClick(this.addressList[1].id)
+        }
+        this.$http.put(`/trade/address/delete/${this.saveId.id}`)
+          .then(() => {
+            this.initList()
+            this.showLogout = false
+          })
+      },
+      // 编辑事件
+      editClick (type) {
+        this.$emit('isEditEvent', type || {}, true)
+      },
+      // 加载更多
+      getPullAddress() {
+        this.param.page++
+        this.reloadList()
+      },
+      // 初始化数据页面
+      initList () {
+        this.isChange = true
+        this.param.page = 1
+        this.reloadList()
+      },
+      // 发送请求数据
+      reloadList () {
+        this.$store.dispatch('mobileAddress/loadAddressData', {count: this.param.count, page: this.param.page, isSend: this.isSend, sorting: this.param.sorting})
+      }
+    },
+    computed: {
+      listInfo() {
+        return this.baseUtils.deepCopy(this.$store.state.mobileAddress.address.data)
+      },
+      fetching () {
+        return this.$store.state.mobileAddress.address.fetching
+      },
+      allPage() {
+        return this.listInfo.totalPages
+      }
+    },
+    components: {
+      PullUp
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  @mixin overFlowHidden {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  @mixin lineHeight($value) {
+    height: $value;
+    line-height: $value;
+  }
+  .deleteKuang {
+    position: fixed;
+    background: rgba(0,0,0,0.5);
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    z-index: 9999;
+    .kuangContent {
+      border-radius: 5px;
+      background: #fff;
+      width: 5rem;
+      position: absolute;
+      left: 50%;
+      top: 50%;
+      transform: translate3d(-50%, -50%, 0);
+      overflow: hidden;
+      .titleinfo {
+        font-size: .3rem;
+        color: #666;
+        text-align: center;
+        margin-top: 0.5rem;
+        margin-bottom: 0.1rem;
+      }
+      .title {
+        background: #5078cb;
+        height: .7rem;
+        line-height: .7rem;
+        font-size: .3rem;
+        color: #fff;
+        text-align: center;
+      }
+      .info {
+        color: #f00;
+        text-align: center;
+      }
+      .K_btn {
+        margin-top: 0.4rem;
+        line-height: 0.7rem;
+        height: 0.7rem;
+        &::after{
+          clear: both;
+          display: block;
+          content: ' ';
+          visibility: hidden;
+          zoom: 1;
+        }
+        div {
+          float: left;
+          width: 50%;
+          font-size: 0.3rem;
+          text-align: center;
+          &.cancelBtn {
+            background: #b4b5b9;
+            color: #333;
+          }
+          &.answerBtn {
+            background: #5078cb;
+            color: #fff;
+          }
+        }
+      }
+    }
+  }
+  .add_rule{
+    position:absolute;
+    bottom:.2rem;
+    left:0;
+    right:0;
+    a{
+      display:block;
+      margin: 0 auto;
+      width:95%;
+      height:.78rem;
+      line-height: .78rem;
+      text-align: center;
+      font-size: .32rem;
+      color:#fff;
+      background: #3f84f6;
+      border-radius:.05rem;
+      i{
+        margin-right:.05rem;
+      }
+    }
+  }
+  .address_info{
+    padding:.2rem .2rem 1.2rem;
+    ul {
+      li {
+        margin-bottom: 0.2rem;
+        padding: 0.3rem 0.24rem 0;
+        border: 1px solid #e4e6e9;
+        border-radius: 5px;
+        background: #fefefe;
+        .wrapper-line {
+          margin-bottom: 0.16rem;
+          .name{
+            display:inline-block;
+            text-align: right;
+            width:1.4rem;
+            font-size: .28rem;
+            color: #4c8cf7;
+          }
+          .name-text {
+            margin-left:1.4rem;
+            word-break: break-all;
+            word-wrap: break-word;
+            font-size: 0.28rem;
+            color: #333;
+          }
+        }
+        .item-bottom {
+          color: #333;
+          @include lineHeight(0.8rem);
+          font-size: 0.26rem;
+          text-align: center;
+          border-top: 1px solid #d3d3d3;
+          .pull-left {
+            text-align: left;
+          }
+          .pull-right {
+            width: 50%;
+            text-align: right;
+          }
+          span{
+            font-size: 0.28rem;
+            margin-right:.2rem;
+            i {
+              font-size: 0.34rem;
+              vertical-align: middle;
+            }
+          }
+
+        }
+      }
+    }
+  }
+</style>

+ 3 - 1
components/mobile/base/index.js

@@ -4,5 +4,7 @@ import LinkUser from './LinkUser.vue'
 import ModalWrapper from './ModalWrapper.vue'
 import BottomModalWrapper from './BottomModalWrapper.vue'
 import SelectAddress from './SelectAddress.vue'
+import AddressView from './addressView.vue'
+import AddressEdit from './addressEdit'
 
-export { SearchHeader, SearchHeader2, LinkUser, ModalWrapper, BottomModalWrapper, SelectAddress }
+export { SearchHeader, SearchHeader2, LinkUser, ModalWrapper, BottomModalWrapper, SelectAddress, AddressView, AddressEdit }

+ 4 - 4
pages/mobile/center/vendor/index.vue

@@ -50,10 +50,10 @@
             <img src="/images/mobile/center/user/order.jpg" alt="">
             <p>销售订单</p>
           </nuxt-link>
-          <nuxt-link tag="li" to="/">
-            <img src="/images/mobile/center/user/wuliu_icon.png" alt="">
-            <p>物流管理</p>
-          </nuxt-link>
+          <!--<nuxt-link tag="li" to="/">-->
+            <!--<img src="/images/mobile/center/user/wuliu_icon.png" alt="">-->
+            <!--<p>物流管理</p>-->
+          <!--</nuxt-link>-->
           <nuxt-link tag="li" to="/mobile/center/vendor/payCenter">
             <img src="/images/mobile/center/user/finance_icon.png" alt="">
             <p>财务对账</p>

+ 444 - 227
pages/mobile/order/details.vue

@@ -2,179 +2,249 @@
   <div class="order-wrapper">
     <div class="order-details-wrap">
       <div class="order-details-top">
-        <div class="clearfix top-t-wrap">
-          <div class="pull-left">
-            <template v-if="orderList.status === 404 && vendorType === 'buyer'">待收货</template>
-            <template v-if="vendorType !== 'buyer' && orderList.status === 404">
-              请耐心等待买家确认收货
-            </template>
-            <span v-if="vendorType === 'buyer' && orderList.status === 404">{{restTime()}}</span>
-          </div>
-          <div class="pull-right" v-if="vendorType !== 'buyer'">
-            <div class="concat" @click="cancatAlert()">
-              <i class="iconfont icon-kefu1"></i>联系买家
-            </div>
-          </div>
-          <div class="pull-right" v-if="vendorType === 'buyer'">
-            <div class="concat" @click="cancatAlert()">
-              <i class="iconfont icon-kefu1"></i>联系卖家
-            </div>
-          </div>
+        <div class="orderNumber clearfix">
+          <div class="pull-left">订单号:<span>{{orderList.orderid}}</span></div>
+          <div class="pull-right">{{orderList.createtime || orderList.creattime | time}}</div>
         </div>
-        <div class="sendGoods_buyer">
-          <div class="sendGoods_buyer_top">
-            <span class="name">{{orderList.area.name || '收货人'}}</span>
-            <span class="tel">{{orderList.area.tel || '收货人电话'}}</span>
-          </div>
-          <div class="sendGoods_buyer_bottom">
-            <img src="/images/order/address_icon.png"/>
-            <span>{{orderList.area.area}}{{orderList.area.detailAddress}}</span>
+        <div class="orderStatus clearfix">
+          <div class="clearfix">
+            <span style="color: #666">订单状态:</span>
+            <template v-if="vendorType === 'buyer'">
+              <span v-if="orderList.status === 404">待收货</span>
+              <span v-if="orderList.status === 404" style="color: #666">{{restTime()}}</span>
+              <span v-else-if="orderList.status === 505 || orderList.status === 406 || orderList.status === 407 || orderList.status === 403 || orderList.status === 408">待卖家发货</span>
+              <span v-else-if="orderList.status === 501 || orderList.status === 502 || orderList.status === 503 || orderList.status === 524">待付款</span>
+              <span v-else-if="orderList.status === 602 || orderList.status === 603 || orderList.status === 315 || orderList.status === 604 || orderList.status === 605 || orderList.status === 606">已取消</span>
+              <span v-else-if="orderList.status === 504">付款确认中</span>
+              <span v-else-if="orderList.status === 520 || orderList.status === 405">交易已完成</span>
+              <span v-else-if="orderList.status === 525">卖家请求取消</span>
+            </template>
+            <template v-else>
+              <span v-if="orderList.status === 502 || orderList.status === 406">买家已付款</span>
+              <span v-else-if="orderList.status === 602 || orderList.status === 603 || orderList.status === 315 || orderList.status === 604 || orderList.status === 605 || orderList.status === 606">订单已取消</span>
+              <span v-else-if="orderList.status === 501 || orderList.status === 524 ">待买家付款</span>
+              <span v-else-if="orderList.status === 404">请耐心等待买家确认收货</span>
+              <span v-else-if="orderList.status === 405 || orderList.status === 514 || orderList.status === 503 || orderList.status === 506">待商城付款</span>
+              <span v-else-if="orderList.status === 606">交易关闭</span>
+              <span v-else-if="orderList.status === 520">交易完成</span>
+              <span v-else-if="orderList.status === 525">卖家发起取消,待确认</span>
+              <span v-else-if="orderList.status === 504">付款确认中</span>
+            </template>
           </div>
         </div>
-        <div class="clearfix top-w-wrap">
-          <div class="name pull-left">订单备注</div>
-          <div class="detailsinfo pull-left">{{orderList.purchaseRemark || '无'}}</div>
-        </div>
       </div>
       <ul class="order-list-wrap">
         <li class="clearfix">
-          <div class="list-wrap-title clearfix">
-            <div class="pull-left" v-if="vendorType !== 'buyer'" @click="toShopdetails(orderList)">
-              <template v-if="orderList.buyentername">
-                <span class="labelInfo_ForItem" v-if="orderList.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>
+          <div class="clearfix top-t-wrap">
+            <div class="pull-left clearfix">
+              <template v-if="vendorType !== 'buyer'">
+                <div style="color: #666">买家:</div>
+                <!--<span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>-->
+                <div style="color: #333">{{orderList.buyentername || '(个人账户)'}}</div><div>&nbsp;|&nbsp;{{orderList.buyername}}</div>
               </template>
-              {{orderList.buyername}}&nbsp;|&nbsp;{{orderList.buyentername || '(个人账户)'}}
             </div>
-            <div class="pull-left" v-else @click="toShopdetails(orderList)">
-              <span class="labelInfo_ForItem" v-if="orderList.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>
-              {{orderList.sellername}}</div>
-            <div class="pull-right">
-              <template v-if="vendorType === 'buyer'">
-                <span class="red" v-if="orderList.status === 505 || orderList.status === 406 || orderList.status === 407 || orderList.status === 403 || orderList.status === 408">待卖家发货</span>
-                <span class="red" v-else-if="orderList.status === 501 || orderList.status === 502 || orderList.status === 503 || orderList.status === 524">待付款</span>
-                <span class="red" v-else-if="orderList.status === 404">待收货</span>
-                <span class="red" v-else-if="orderList.status === 602 || orderList.status === 603 || orderList.status === 315 || orderList.status === 604 || orderList.status === 605 || orderList.status === 606">已取消</span>
-                <span class="red" v-else-if="orderList.status === 504">付款确认中</span>
-                <span class="red" v-else-if="orderList.status === 520 || orderList.status === 405">交易已完成</span>
-                <span class="red" v-else-if="orderList.status === 525">卖家请求取消</span>
-              </template>
-              <template v-else>
-                <span class="red" v-if="orderList.status === 502 || orderList.status === 406">买家已付款</span>
-                <!--<span class="red">待发货</span>-->
-                <span class="red" v-else-if="orderList.status === 602 || orderList.status === 603 || orderList.status === 315 || orderList.status === 604 || orderList.status === 605 || orderList.status === 606">订单已取消</span>
-                <span class="red" v-else-if="orderList.status === 501 || orderList.status === 524 ">待买家付款</span>
-                <span class="red" v-else-if="orderList.status === 404">待买家收货</span>
-                <span class="red" v-else-if="orderList.status === 405 || orderList.status === 514 || orderList.status === 503 || orderList.status === 506">待商城付款</span>
-                <span class="red" v-else-if="orderList.status === 606">交易关闭</span>
-                <span class="red" v-else-if="orderList.status === 520">交易完成</span>
-                <span class="red" v-else-if="orderList.status === 525">卖家发起取消,待确认</span>
-                <span class="red" v-else-if="orderList.status === 504">付款确认中</span>
-              </template>
+            <div class="pull-right" v-if="vendorType !== 'buyer'">
+              <div class="concat" @click="cancatAlert()">
+                <i class="iconfont icon-kefu1"></i>联系买家
+              </div>
+            </div>
+            <div class="pull-right" v-if="vendorType === 'buyer'">
+              <div class="concat" @click="cancatAlert()">
+                <i class="iconfont icon-kefu1"></i>联系卖家
+              </div>
             </div>
           </div>
           <div class="list-wrap-content" @click="toproductdetails(details)" v-for="(details, index) in orderList.purchaseDetails" v-if="index < showItem">
             <div class="list-item clearfix">
               <div class="list-wrap-content-brand clearfix pull-left">
                 <div class="name pull-left">品牌:</div>
-                <div class="pull-left">{{details.brName || '-'}}</div>
+                <div class="pull-left spec">{{details.brName || '-'}}</div>
+              </div>
+              <div class="pull-left list-wrap-content-brand clearfix">
+                <div class="name pull-left">交期(天):</div>
+                <div class="pull-left spec noMargin">{{details.b2cMinDelivery}}-{{details.b2cMaxDelivery}}</div>
               </div>
-              <!--<div class="pull-right lab">-->
-                <!--{{details.goodsnumber || ''}}-->
-              <!--</div>-->
             </div>
             <div class="list-item clearfix">
               <div class="list-wrap-content-brand clearfix pull-left">
                 <div class="name pull-left">类目:</div>
-                <div class="pull-left">{{details.kiName || '-'}}</div>
+                <div class="pull-left spec">{{details.kiName || '-'}}</div>
               </div>
-              <div class="pull-right pri">
-                <span>¥</span>{{details.taxUnitprice || details.taxUnitPrice}}
+              <div class="pull-left list-wrap-content-brand clearfix">
+                <div class="name pull-left">单价:</div>
+                <div class="pull-left spec noMargin">
+                  <span>¥</span>{{details.taxUnitprice || details.taxUnitPrice}}
+                </div>
               </div>
             </div>
             <div class="list-item clearfix">
               <div class="list-wrap-content-brand clearfix pull-left">
                 <div class="name pull-left">型号:</div>
-                <div class="pull-left">{{details.cmpCode || '-'}}</div>
+                <div class="pull-left spec">{{details.cmpCode || '-'}}</div>
               </div>
-              <div class="pull-right lab">
-                <span>x</span>{{details.number}}
+              <div class="pull-left list-wrap-content-brand clearfix">
+                <div class="name pull-left">数量:</div>
+                <div class="pull-left spec noMargin"><span>x</span>{{details.number}}</div>
               </div>
             </div>
             <div class="list-item clearfix">
               <div class="list-wrap-content-brand clearfix pull-left">
                 <div class="name pull-left">规格:</div>
-                <div class="pull-left">{{details.spec || '-'}}</div>
+                <div class="pull-left spec">{{details.spec || '-'}}</div>
               </div>
-            </div>
-            <div class="list-item clearfix">
-              <div class="list-wrap-content-brand clearfix pull-left blue">
-                <div class="name pull-left blue">物料编码:</div>
-                <div class="pull-left">{{details.goodsnumber || '-'}}</div>
+              <div class="pull-left pri clearfix">
+                <div class="name pull-left">小计:</div>
+                <span>¥</span>{{details.ensurePrice}}
               </div>
             </div>
           </div>
         </li>
       </ul>
       <div class="lookMorePro" @click="showItem = orderList.purchaseDetails.length" v-if="showItem === 3 && orderList.purchaseDetails && orderList.purchaseDetails.length > 3">查看剩余产品<img src="/images/mobile/user/icon-right.png"/></div>
+      <!--<div class="clearfix top-w-wrap">-->
+        <!--<div class="name pull-left">订单备注</div>-->
+        <!--<div class="detailsinfo pull-left">{{orderList.purchaseRemark || '无'}}</div>-->
+      <!--</div>-->
       <div class="order-details-priInfo">
         <div class="clearfix">
-          <div class="pull-left">商品金额总计:</div>
-          <div class="pull-right">¥{{orderList.ensurePrice - orderList.fare | priceFiter}}</div>
-        </div>
-        <div class="clearfix">
-          <div class="pull-left">运费:</div>
-          <div class="pull-right">¥{{orderList.fare | priceFiter}}</div>
+          <div class="justifyAlign">运费:</div>
+          <span style="display: inline-block;min-width:2rem;text-align: left">
+              <a class="red" style="color:#f43938;">¥{{orderList.fare | priceFiter}}</a>
+          </span>
         </div>
         <div class="clearfix">
-          <div class="pull-left">手续费:</div>
-          <div class="pull-right"><a class="red" style="color:#f43938;">¥0.00</a><span class="del" style="text-decoration: line-through;color: #999;font-size: 0.24rem;">(¥{{parseFloat(orderList.ensurePrice * 0.0045).toFixed(2)}})</span></div>
+          <div class="justifyAlign">手续费:</div>
+          <span style="display: inline-block;width:2rem;text-align: left">
+            <a class="red" style="color:#f43938;">¥0.00</a>
+            <!--<a class="del" style="text-decoration: line-through;color: #999;font-size: 0.24rem;">(¥{{parseFloat(orderList.ensurePrice * 0.0045).toFixed(2)}})</a>-->
+            <span class="jianmian">减免</span>
+            <img src="/images/order/remem_icon.png" style="min-width:0.2rem;height:0.2rem" />
+          </span>
         </div>
-        <!--<div class="clearfix">-->
-          <!--<div class="pull-left">促销优惠:</div>-->
-          <!--<div class="pull-right">-¥13212.32132</div>-->
-        <!--</div>-->
-        <!--<div class="clearfix small">-->
-          <!--<div class="pull-left">积分冲抵:</div>-->
-          <!--<div class="pull-right">-¥13212.32132</div>-->
-        <!--</div>-->
       </div>
       <div class="list-all-info clearfix">
-        <div>共<span>{{orderList.batchQty}}</span>件商品&nbsp;&nbsp;合计:
-          <span class="pri"><a class="red">¥</a>{{orderList.ensurePrice}}</span>
-          <span class="lab">(含运费:<a class="red">¥</a><a class="red">{{orderList.fare | priceFiter}}</a>)</span></div>
+        <!--共<span>{{orderList.batchQty}}</span>件商品&nbsp;&nbsp;合计:-->
+        <div style="font-size: 0.27rem;" class="justifyAlign">合计:</div>
+        <span class="pri" style="min-width: 2rem;text-align: left"><a class="red" style="color:#f43938;font-size: 0.32rem;">¥</a>{{orderList.ensurePrice}}</span>
+        <!--<span class="lab">(含运费:<a class="red">¥</a><a class="red">{{orderList.fare | priceFiter}}</a>)</span>-->
         <!--<div>手续费:<a class="red">¥0.00</a><span class="del">(¥{{parseFloat(orderList.ensurePrice * 0.0045).toFixed(2)}})</span></div>-->
       </div>
       <div class="order-details-info">
+        <!--<div class="clearfix">-->
+          <!--<div class="name pull-left">配送方式</div>-->
+          <!--<div class="pull-right" :style="!orderList.rule.ruleName ? {lineHeight: '0.88rem'} : ''">-->
+            <!--<div :style="orderList.rule.ruleName ? {margin: '0.13rem 0 0.06rem 0'} : ''">{{orderList.sendType === 1301 ? '第三方配送' : (orderList.sendType === 1302 ? '卖家配送': '上门自提')}}</div>-->
+            <!--<div class="smallfont">{{orderList.rule.ruleName ? orderList.rule.ruleName : ''}}</div>-->
+          <!--</div>-->
+        <!--</div>-->
         <div class="clearfix">
-          <div class="name pull-left">配送方式</div>
+          <div class="name pull-left">收获地址</div>
           <div class="pull-right">
-            {{orderList.sendType === 1301 ? '第三方配送' : (orderList.sendType === 1302 ? '卖家配送': '上门自提')}}
-            <!--第三方配送-->
+            <div class="name" style="margin: 0.22rem 0 0 0">{{orderList.area.area}} &nbsp;&nbsp;{{orderList.area.detailAddress}}</div>
+          </div>
+          <div style="clear:both"></div>
+          <div style="padding-bottom: 0.1rem;" class="smallfont">
+            <span class="tel" style="width: 50%;display: inline-block">收货人:<a style="color: #333">{{orderList.area.name}}</a></span>
+            <span class="tel" style="width: 50%;display: inline-block">电话:<a style="color: #333">{{orderList.area.tel}}</a></span>
           </div>
         </div>
         <div class="clearfix">
-          <div class="name pull-left">配送规则</div>
-          <div class="pull-right">
-            ({{orderList.rule.ruleName ? orderList.rule.ruleName : ''}})
-          </div>
+          <div class="name pull-left">发票信息</div>
+          <template v-if="orderList.invoicetype === 1205 || orderList.invoicetype === 1206">
+            <div class="pull-right clearfix" @click="showinvoiceType = !showinvoiceType" style="line-height: 0.88rem;padding: 0;border-bottom: 0;max-width: 6rem;">
+              <div class="overHiddenText" style="float:left">{{orderList.invoicetitle}}</div>
+              <div class="smallfont" style="font-size: 0.24rem;float: left">
+                  ({{orderList.invoicetype === 1205 ? '增值税(专用)发票': '增值税普通发票'}})
+              </div>
+              <img src="/images/mobile/user/icon-right.png" :class="showinvoiceType ? 'dropList' : '' " style="float: left"/>
+            </div>
+          </template>
+          <template v-else>
+            <div class="pull-right clearfix" style="line-height: 0.88rem;padding: 0;border-bottom: 0;">
+              暂不开票
+            </div>
+          </template>
+
         </div>
         <div class="clearfix">
-          <div class="name pull-left">付款方式</div>
-          <div class="pull-right">
+          <div class="name pull-left">付方式</div>
+          <div class="pull-right" style="line-height: 0.88rem">
             <!--{{orderList.paytype}}-->
             {{orderList.paytype === '1103' ? '线下付款' : '线下付款'}}
           </div>
         </div>
         <div class="clearfix">
-          <div class="name pull-left">发票信息</div>
-          <div class="pull-right" @click="(orderList.invoicetype === 1205 || orderList.invoicetype === 1206) ? showinvoiceType = !showinvoiceType : ''">
-            {{(orderList.invoicetype === 1205 || orderList.invoicetype === 1206) ? '查看更多信息' : '暂不开票'}}
-            <img src="/images/mobile/user/icon-right.png"  v-if="orderList.invoicetype === 1205 || orderList.invoicetype === 1206" :class="showinvoiceType ? 'dropList' : '' "/>
+          <template v-if="logisticsInfo.length === 0">
+            <div class="name pull-left">物流信息</div>
+            <div class="pull-right"  style="line-height: 0.88rem">暂无信息</div>
+          </template>
+          <template v-else>
+            <div class="name" style="line-height: 0.88rem;">物流信息</div>
+            <ul class="logistics_ul" v-if="logisticsInfo.length > 0" style="width: 100%">
+              <li class="clearfix" v-for="(item, index) in logisticsInfo">
+                <div class="pull-left" :class="index > 0 ? '' : 'marginL'">
+                  <div class="logistics_icon" :class="index > 0 ? '' : 'active'">
+                    <div class="red" v-if="index === 0"></div>
+                  </div>
+                </div>
+                <div class="pull-right" :class="index > 0 ? '' : 'marginT'">
+                  <div class="logistics_time">{{item.AcceptTime}}</div>
+                  <div class="logistics_info">{{item.AcceptStation}}</div>
+                </div>
+              </li>
+            </ul>
+          </template>
+        </div>
+      </div>
+      <div class="order-details-moreinfo clearfix">
+        <div class="clearfix moreinfoList">
+          <div class="pull-left">
+            <div class="">创建时间:
+              {{orderList.createtime || orderList.creattime | time2}}</div>
+            <div class="" v-if="vendorType === 'buyer'">付款时间:
+              <template v-if="getOverTiem(505) > 0">{{getOverTiem(505) | time2 }}</template>
+              <template v-else>暂未付款</template>
+            </div>
+            <div class="" v-else>付款时间:
+              <template v-if="getOverTiem(502) > 0">{{getOverTiem(502) | time2 }}</template>
+              <template v-else>暂未付款</template>
+            </div>
+            <div class="">发货时间:
+              <template v-if="getOverTiem(404) > 0">{{getOverTiem(404) | time2 }}</template>
+              <template v-else>暂未发货</template>
+            </div>
           </div>
+          <!--<div class="pull-right copyBtn" @click="copyBtn()">复制</div>-->
+        </div>
+        <div class="list-btn clearfix" ref="listBtn" v-show="ShowFixedBtn">
+          <template v-if="vendorType === 'buyer'">
+            <div class="sendGoods" v-if="orderList.status === 404" @click="buyerGetGoods(orderList)">确认收货</div>
+            <div class="sendGoods" v-if="!orderList.installmentId && (orderList.status === 503 || orderList.status === 501)" @click="gotoPay(orderList)">立即付款</div>
+            <div class="sendGoods" @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" v-if="orderList.installmentId && (orderList.status === 503 || orderList.status === 504 || orderList.status === 524 ) && orderList.installment.status !== 505 && !orderList.againUpload">立即付款</div>
+            <div class="" @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" v-if="orderList.installmentId && (orderList.status === 503 || orderList.status === 504 || orderList.status === 524 ) && orderList.installment.status !== 505 && orderList.againUpload">重新上传</div>
+            <div class="" @click="cancelOrder(orderList)" v-if="orderList.status === 503 || orderList.status === 501 || orderList.status === 502">取消订单</div>
+            <div @click="paidTime(orderList)" class="" v-if="_getHoursFromNow(orderList.paytime) > sellsendGoodsTime - 1 && orderList.status !== 404 ">提醒发货</div>
+            <!--<div @click="lookLogisticsInfo(orderList)" class="" v-if="orderList.status === 404 || orderList.status === 520 || orderList.status === 405 || orderList.status === 521">查看物流</div>-->
+          </template>
+          <template v-else>
+            <div class="sendGoods" v-if="(orderList.status === 502 || orderList.status === 406) && !orderList.uasPurcid" @click="sendGoods(orderList)">点击发货</div>
+            <div @click="changelogistics(orderList)" class="sendGoods" v-if="orderList.status === 404 && !orderList.uasPurcid && status === ''">修改物流</div>
+            <!--<div @click="lookLogisticsInfo(orderList)" class="" v-if="orderList.status === 404 || orderList.status === 520 || orderList.status === 405 || orderList.status === 503 || orderList.status === 514">查看物流</div>-->
+            <div @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" class="" v-if="orderList.installmentId && ((orderList.installment.status === 503 && orderList.Overtime) || orderList.installment.status === 504) && orderList.status !== 606 && orderList.status !== 525">
+              取消订单
+            </div>
+            <div @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" class="" v-if="installmentDetailPaid(orderList) && orderList.status !== 525 && orderList.status !== 606">
+              确认收款
+            </div>
+          </template>
         </div>
       </div>
-      <!-- 发票信息 -->
-      <div class="order-details-invoiceinfo" v-if="orderList.invoicetype === 1205 || orderList.invoicetype === 1206" v-show="showinvoiceType">
+    </div>
+    <!-- 发票信息 -->
+    <div class="mobile-modal" @touchmove="preventTouchMove($event)" v-if="orderList.invoicetype === 1205 || orderList.invoicetype === 1206" v-show="showinvoiceType">
+      <div class="sendGoods_Alert">
+        <div class="sendGoods_title">发票信息<span><i class="iconfont icon-guanbi1" @click="showinvoiceType = false"></i></span></div>
+        <div class="order-details-invoiceinfo" >
         <div class="invoiceList clearfix" >
           <div class="pull-left">发票类型:</div>
           <div class="pull-right">
@@ -217,55 +287,10 @@
           <div class="pull-left">详细地址:</div>
           <div class="pull-right">{{invoiceAddress.area}}{{invoiceAddress.detailAddress}}</div>
         </div>
-      </div>
-      <div class="order-details-moreinfo clearfix">
-        <div class="clearfix moreinfoList">
-          <div class="pull-left">
-            <div class="">订单编号:
-              <span id="orderNumber">{{orderList.orderid}}</span>
-              <textarea id="input" cols="1" rows="1" style="position: fixed;left: 0px;top: 0px;">这是幕后黑手</textarea>
-            </div>
-            <div class="">创建时间:
-              {{orderList.createtime || orderList.creattime | time}}</div>
-            <div class="" v-if="vendorType === 'buyer'">付款时间:
-              <template v-if="getOverTiem(505) > 0">{{getOverTiem(505) | time }}</template>
-              <template v-else>暂未付款</template>
-            </div>
-            <div class="" v-else>付款时间:
-              <template v-if="getOverTiem(502) > 0">{{getOverTiem(502) | time }}</template>
-              <template v-else>暂未付款</template>
-            </div>
-            <div class="">发货时间:
-              <template v-if="getOverTiem(404) > 0">{{getOverTiem(404) | time }}</template>
-              <template v-else>暂未发货</template>
-            </div>
-          </div>
-          <div class="pull-right copyBtn" @click="copyBtn()">复制</div>
-        </div>
-        <div class="list-btn clearfix">
-          <template v-if="vendorType === 'buyer'">
-            <div class="sendGoods" v-if="orderList.status === 404" @click="buyerGetGoods(orderList)">确认收货</div>
-            <div class="sendGoods" v-if="!orderList.installmentId && (orderList.status === 503 || orderList.status === 501)" @click="gotoPay(orderList)">立即付款</div>
-            <div class="sendGoods" @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" v-if="orderList.installmentId && (orderList.status === 503 || orderList.status === 504 || orderList.status === 524 ) && orderList.installment.status !== 505 && !orderList.againUpload">立即付款</div>
-            <div class="" @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" v-if="orderList.installmentId && (orderList.status === 503 || orderList.status === 504 || orderList.status === 524 ) && orderList.installment.status !== 505 && orderList.againUpload">重新上传</div>
-            <div class="" @click="cancelOrder(orderList)" v-if="orderList.status === 503 || orderList.status === 501 || orderList.status === 502">取消订单</div>
-            <div @click="paidTime(orderList)" class="" v-if="_getHoursFromNow(orderList.paytime) > sellsendGoodsTime - 1 && orderList.status !== 404 ">提醒发货</div>
-            <div @click="lookLogisticsInfo(orderList)" class="" v-if="orderList.status === 404 || orderList.status === 520 || orderList.status === 405 || orderList.status === 521">查看物流</div>
-          </template>
-          <template v-else>
-            <div class="sendGoods" v-if="(orderList.status === 502 || orderList.status === 406) && !orderList.uasPurcid" @click="sendGoods(orderList)">点击发货</div>
-            <div @click="changelogistics(orderList)" class="sendGoods" v-if="orderList.status === 404 && !orderList.uasPurcid && status === ''">修改物流</div>
-            <div @click="lookLogisticsInfo(orderList)" class="" v-if="orderList.status === 404 || orderList.status === 520 || orderList.status === 405 || orderList.status === 503 || orderList.status === 514">查看物流</div>
-            <div @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" class="" v-if="orderList.installmentId && ((orderList.installment.status === 503 && orderList.Overtime) || orderList.installment.status === 504) && orderList.status !== 606 && orderList.status !== 525">
-              取消订单
-            </div>
-            <div @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" class="" v-if="installmentDetailPaid(orderList) && orderList.status !== 525 && orderList.status !== 606">
-              确认收款
-            </div>
-          </template>
         </div>
       </div>
     </div>
+    <!-- /end -->
     <!-- 发货弹窗 -->
     <div class="mobile-modal" v-if="showSend" @touchmove="preventTouchMove($event)">
       <div class="sendGoods_Alert">
@@ -374,7 +399,6 @@
       </div>
     </div>
     <!-- /联系买卖家 -->
-
     <remind-box :title="collectResult" :timeoutCount="timeoutCount"></remind-box>
   </div>
 </template>
@@ -388,6 +412,7 @@
       middleware: 'authenticated',
       data() {
         return {
+          ShowFixedBtn: false, // 是否显示悬浮按钮
           showStoreInfo: false, // 联系信息弹窗
           showinvoiceType: false, // 是否展示发票信息
           cancatInfo: {
@@ -401,7 +426,7 @@
           sendGoodsInfo: { // 发货弹窗对象
             area: {}
           },
-          status: '', // 物流状态
+          status: '1', // 物流状态
           peisongShow: false, // 是否显示配送商选择弹窗
           seekKeyword: '',
           peisongChooseIndex: 0, // 配送商选择下标
@@ -415,7 +440,8 @@
           $Orderreason: '', // 取消订单原因
           OrderCancelIndex: '', // 取消订单原因下标
           showItem: 3, // 允许展示多个产品
-          invoiceAddress: {} // 发票信息
+          invoiceAddress: {}, // 发票信息
+          logisticsInfo: [] // 物流信息
         }
       },
       async asyncData({route}) {
@@ -466,6 +492,38 @@
         priceFiter(val) {
           if (!val) return '0.00'
           return val.toFixed(2)
+        },
+        time: function (time) {
+          if (typeof time === 'number') {
+            if (!time) {
+              return '无'
+            } else {
+              let d = new Date(time)
+              let year = d.getFullYear()
+              let month = d.getMonth() + 1
+              let day = d.getDate() < 10 ? '0' + d.getDate() : '' + d.getDate()
+              return year + '-' + month + '-' + day
+            }
+          }
+        },
+        time2: function (time) {
+          if (typeof time === 'number') {
+            if (!time) {
+              return '无'
+            } else {
+              let d = new Date(time)
+              let year = d.getFullYear()
+              let month = d.getMonth() + 1
+              let day = d.getDate() < 10 ? '0' + d.getDate() : '' + d.getDate()
+              let hour = d.getHours() < 10 ? '0' + d.getHours() : '' + d.getHours()
+              let minutes = d.getMinutes() < 10 ? '0' + d.getMinutes() : '' + d.getMinutes()
+              let seconds = d.getSeconds() < 10 ? '0' + d.getSeconds() : '' + d.getSeconds()
+              let _arr = [year, month, day].map(item => {
+                return item.toString().length < 2 ? '0' + item : item
+              })
+              return _arr.join('-') + ' ' + hour + ':' + minutes + ':' + seconds
+            }
+          }
         }
       },
       created() {
@@ -473,6 +531,7 @@
           this.$http.get(`/trade/logistics/${this.orderList.lgtId}`).then(data => {
             this.$http.get(`/kdn/logistics/query?companyName=${data.data.companyName}&logisticsCode=${data.data.number}`).then(res => {
               let str = res.data.traces
+              this.logisticsInfo = JSON.parse(str).reverse()
               if (str.indexOf('揽件') !== -1 || str.indexOf('收件') !== -1 || str.indexOf('转运') !== -1 || str.indexOf('运输') !== -1 || str.indexOf('发往') !== -1 ||
                 str.indexOf('发出') !== -1 || str.indexOf('收入') !== -1 || str.indexOf('扫描') !== -1 || str.indexOf('到达') !== -1) {
                 this.status = 'transit'
@@ -888,6 +947,11 @@
       },
       components: {
         RemindBox
+      },
+      mounted() {
+        this.$nextTick(res => {
+          this.$refs.listBtn.children.length > 0 ? this.ShowFixedBtn = true : this.ShowFixedBtn = false
+        })
       }
     }
 </script>
@@ -906,33 +970,43 @@
     margin: 1.26rem 0 0.98rem 0;
     height: calc(100vh - 1.26rem - 0.98rem);
     overflow-y: scroll;
+    position: absolute;
     .order-details-wrap {
       .order-details-top {
-        .top-t-wrap {
+        .orderNumber {
+          margin-bottom: 0.2rem;
+          font-size: 0.27rem;
+          color: #666;
+          @include lineHeight(0.88rem);
+          background: #fff;
+          padding: 0 0.2rem;
+          .pull-left {
+            width: 5rem;
+            @include overFlowHidden();
+            span {
+              color: #3f84f6
+            }
+          }
+        }
+        .orderStatus {
           background: #fff;
           padding: 0 0.2rem;
           height: 0.88rem;
           line-height: 0.88rem;
-          .pull-left {
+          margin-bottom: 0.2rem;
+          .clearfix {
             font-size: 0.28rem;
             color: #333;
             span {
-              color: #f21c1c
+              float: left;
+              color: #333;
             }
-          }
-          .pull-right {
-            @include lineHeight(0.56rem);
-            border: 1px solid #3f84f6;
-            color: #3f84f6;
-            font-size: 0.26rem;
-            text-align: center;
-            border-radius: 3px;
-            margin-top: 0.14rem;
-            padding: 0 0.1rem;
-            overflow: hidden;
-            i {
-              font-size: 0.26rem;
-              margin-left: 0.05rem;
+            img {
+              width: 0.18rem;
+              height: 0.32rem;
+              vertical-align: top;
+              margin-top: 0.18rem;
+              margin-left: 0.1rem;
             }
           }
         }
@@ -961,37 +1035,73 @@
             }
           }
         }
-        .top-w-wrap {
+
+      }
+      .order-list-wrap {
+        .top-t-wrap {
           background: #fff;
-          margin: 0.2rem 0;
           padding: 0 0.2rem;
-          @include lineHeight(0.88rem);
-          .name {
-            color: #333;
+          height: 0.88rem;
+          line-height: 0.88rem;
+          .pull-left {
             font-size: 0.28rem;
-            margin-right: 0.2rem;
+            color: #333;
+            width: 5rem;
+            @include overFlowHidden();
+            div {
+              max-width: 3rem;
+              @include overFlowHidden();
+              float: left;
+            }
+            img {
+              width: 0.18rem;
+              height: 0.32rem;
+              vertical-align: top;
+              margin-top: 0.18rem;
+              margin-left: 0.1rem;
+            }
           }
-          .detailsinfo {
-            font-size: 0.28rem;
-            color: #999;
-            width: 5.6rem;
-            @include overFlowHidden()
+          .pull-right {
+            @include lineHeight(0.56rem);
+            border: 1px solid #3f84f6;
+            color: #3f84f6;
+            font-size: 0.26rem;
+            text-align: center;
+            border-radius: 3px;
+            margin-top: 0.14rem;
+            padding: 0 0.1rem;
+            overflow: hidden;
+            i {
+              font-size: 0.26rem;
+              margin-left: 0.05rem;
+            }
           }
         }
-      }
-      .order-list-wrap {
         li {
           margin-top: 0.2rem;
         }
         .list-wrap-title{
           padding: 0 0.2rem;
           background: #fff;
-          @include lineHeight(0.88rem);
+          @include lineHeight(0.67rem);
           font-size: 0.28rem;
           color: #333;
+          border-bottom: 1px solid #e4e4e4;
           .pull-left {
             width: 5rem;
-            @include overFlowHidden()
+            @include overFlowHidden();
+            span {
+              max-width: 3rem;
+              @include overFlowHidden();
+              display: inline-block;
+            }
+            img {
+              width: 0.18rem;
+              height: 0.32rem;
+              vertical-align: top;
+              margin-top: 0.18rem;
+              margin-left: 0.1rem;
+            }
           }
           .pull-right {
             .red {
@@ -1007,21 +1117,21 @@
           .list-item {
             font-size: 0.28rem;
             color: #333;
-            margin-top: 0.18rem;
+            /*line-height: 0.5rem;*/
+            margin-top: 0.22rem;
             &:nth-child(1) {
               margin-top: 0px;
             }
-            &:nth-child(2) {
-              margin-top: 0.21rem;
-            }
-            &:nth-child(3) {
-              margin-top: 0.1rem;
-            }
             .list-wrap-content-brand {
               @include overFlowHidden();
               .spec {
-                width: 4rem;
-                @include overFlowHidden()
+                width: 3.1rem;
+                @include overFlowHidden();
+                margin-right: 0.2rem;
+                &.noMargin {
+                  margin-right: 0;
+                  width: 1.5rem;
+                }
               }
             }
             .name {
@@ -1037,16 +1147,8 @@
               }
             }
             .pri {
-              font-size: 0.32rem;
+              font-size: 0.28rem;
               color: #f43938;
-              max-width: 2.2rem;
-              @include overFlowHidden();
-              span {
-                font-size: 0.24rem;
-              }
-            }
-            .blue {
-              color: #3f84f6
             }
           }
         }
@@ -1072,6 +1174,23 @@
           }
         }
       }
+      .top-w-wrap {
+        background: #fff;
+        padding: 0 0.2rem;
+        border-bottom: 1px solid #e4e4e4;
+        @include lineHeight(0.88rem);
+        .name {
+          color: #333;
+          font-size: 0.28rem;
+          margin-right: 0.2rem;
+        }
+        .detailsinfo {
+          font-size: 0.28rem;
+          color: #999;
+          width: 5.6rem;
+          @include overFlowHidden()
+        }
+      }
       .lookMorePro {
         background: #fff;
         font-size: 0.28rem;
@@ -1089,30 +1208,45 @@
         }
       }
       .order-details-priInfo {
-        margin-top: 0.2rem;
-        border-top: 1px solid #e4e4e4;
+        /*border-top: 1px solid #e4e4e4;*/
         border-bottom: 1px solid #e4e4e4;
         font-size: 0.28rem;
         color: #333;
-        padding: 0.2rem;
+        padding: 0.1rem;
         background: #fff;
+        text-align: right;
         .clearfix {
           @include lineHeight(0.5rem);
         }
+        span {
+          @include overFlowHidden();
+        }
         .small {
           font-size: 0.24rem;
           color: #999;
         }
+        .jianmian {
+          font-size: 0.22rem;
+          color: #fff;
+          width: 0.48rem;
+          height:0.25rem;
+          text-align: center;
+          line-height: 0.25rem;
+          background: #15b262;
+          margin: 0 0.1rem;
+        }
       }
       .list-all-info{
         text-align: right;
         background: #fff;
-        padding: 0 0.2rem;
-        @include overFlowHidden();
-        line-height: 0.5rem;
+        padding: 0 0.1rem;
+        @include lineHeight(0.72rem);
         font-size: 0.26rem;
         color: #333;
         border-bottom: 1px solid #e4e4e4;
+        span {
+          display: inline-block;
+        }
         .pri {
           font-size: 0.32rem;
           color: #f43938;
@@ -1135,26 +1269,27 @@
         background: #fff;
         margin-top: 0.2rem;
         .clearfix{
+          padding: 0 0.2rem;
+          font-size: 0.28rem;
+          color: #333;
+          .pull-left {
+            @include lineHeight(0.88rem);
+          }
           img {
-            transform: rotate(90deg);
-            width: 0.16rem;
-            height: 0.26rem;
+            width: 0.18rem;
+            height: 0.32rem;
             vertical-align: top;
             margin-top: 0.3rem;
             margin-left: 0.1rem;
             margin-right: 0.1rem;
-            &.dropList {
-              transform: rotate(270deg);
-            }
           }
-          padding: 0 0.2rem;
-          font-size: 0.28rem;
-          color: #666;
-          @include lineHeight(0.89rem);
           border-bottom: 1px solid #e4e4e4;
           .pull-right {
-            @include overFlowHidden();
             max-width: 5rem;
+            text-align: right;
+          }
+          .smallfont{
+            color: #666;
           }
         }
       }
@@ -1204,6 +1339,71 @@
           }
         }
       }
+      .logistics_ul {
+        background: #fff;
+        li.clearfix {
+          position: relative;
+          border-left: 2px solid #e4e5ea;
+          margin-left: 0.2rem;
+          border-bottom: 0px;
+          .pull-left {
+            position: absolute;
+            left: -7px;
+            top: 0.36rem;
+            .logistics_icon {
+              width: 12px;
+              height: 12px;
+              border-radius: 50%;
+              background: #b5b5b5;
+              &.active {
+                width: 20px;
+                height: 20px;
+                border-radius: 50%;
+                background: rgba(0, 0, 0, 0);
+                position: relative;
+                &~.logistics_line {
+                  margin-left: 9px;
+                }
+                .red {
+                  position: absolute;
+                  width: 12px;
+                  height: 12px;
+                  background: #0ca43a;
+                  margin-left: 4px;
+                  margin-top: 4px;
+                  border-radius: 50%;
+                }
+              }
+            }
+            &.marginL {
+              left: -10px;
+              top: -0.1rem
+            }
+          }
+          .pull-right {
+            padding-top: 0.2rem;
+            font-size: 0.24rem;
+            color: #333;
+            border-bottom: 1px solid #f3f3f3;
+            padding-bottom: 0.2rem;
+            max-width: 6.4rem;
+            width: 6.4rem;
+            .logistics_time {
+              @include lineHeight(20px);
+            }
+            .logistics_info {
+              margin-top: 0.2rem;
+              word-break:break-all;
+              word-wrap: break-word;
+              line-height: 0.45rem
+            }
+            &.marginT {
+              padding-top: 0;
+              margin-top: -0.1rem;
+            }
+          }
+        }
+      }
     }
     .sendGoods_Alert {
       background: #fff;
@@ -1565,7 +1765,7 @@
       border-radius: 3px;
     }
     .order-details-invoiceinfo {
-      padding: 0.1rem 0.4rem;
+      padding: 0.1rem 0.2rem;
       background: #fff;
       .invoiceList {
         font-size: 0.24rem;
@@ -1581,5 +1781,22 @@
         }
       }
     }
+    .overHiddenText {
+      @include overFlowHidden();
+      max-width: 3rem;
+    }
+    .justifyAlign {
+      width: 1.2rem;
+      display:inline-block;
+      text-align: justify;
+      vertical-align:top;
+    }
+    .justifyAlign::after{
+      content:"";
+      display: inline-block;
+      width:100%;
+      overflow:hidden;
+      height:0;
+    }
   }
 </style>

+ 121 - 43
pages/mobile/order/index.vue

@@ -6,16 +6,27 @@
       <div :class="activeType === 'comfirmed' ? 'active' : ''" @click="ChangeList('comfirmed')"><span>待发货</span></div>
       <div :class="activeType === 'inbound' ? 'active' : ''" @click="ChangeList('inbound')"><span>待收货</span></div>
     </div>
+    <div class="search-content search-content2" >
+      <input type="text" placeholder="订单号/产品信息/买家名字" v-model="keyword" @keyup.13="searchOrderlist">
+      <span @click="searchOrderlist" >
+          <i class="iconfont icon-sousuo"></i>
+      </span>
+    </div>
     <ul class="order-list-wrap"  id="order-wrapper" v-show="orderList.length > 0">
       <li class="clearfix" v-for="item in orderList">
+        <div class="orderNumber clearfix">
+          <div class="pull-left">订单号:<span>{{item.orderid}}</span></div>
+          <div class="pull-right">{{item.createtime || item.creattime | time}}</div>
+        </div>
         <div class="list-wrap-title clearfix">
           <div class="pull-left" v-if="vendorType !== 'buyer'" @click="toShopdetails(item)">
-            <span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>
-            {{item.buyername}}&nbsp;|&nbsp;{{item.buyentername || '(个人账户)'}}
+            <span>买家:</span>
+            <!--<span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>-->
+            <span>{{item.buyentername || '(个人账户)'}}</span><span>&nbsp;|&nbsp;{{item.buyername}}</span>
           </div>
-          <div class="pull-left" v-else @click="toShopdetails(item)">
-            <span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>
-            {{item.sellername}}</div>
+          <div class="pull-left" v-else @click="toShopdetails(item)">卖家:
+            <!--<span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>-->
+            {{item.sellername}}<img src="/images/mobile/user/icon-right.png"/></div>
           <div class="pull-right">
             <template v-if="vendorType === 'buyer'">
               <span class="red" v-if="item.status === 505 || item.status === 406 || item.status === 407 || item.status === 403 || item.status === 408">待卖家发货</span>
@@ -40,7 +51,7 @@
             </template>
           </div>
         </div>
-        <div class="list-wrap-content" @click="toproductdetails(details)" v-for="(details, index) in item.purchaseDetails" v-if="index < 3">
+        <div class="list-wrap-content" @click="toproductdetails(details)" v-for="(details, index) in item.purchaseDetails" v-if="index < item.showItem">
           <div class="list-item clearfix">
             <div class="list-wrap-content-brand clearfix pull-left">
               <div class="name pull-left">品牌:</div>
@@ -55,8 +66,9 @@
               <div class="name pull-left">类目:</div>
               <div class="pull-left spec">{{details.kiName || '-'}}</div>
             </div>
-            <div class="pull-right pri">
-              <span>¥</span>{{details.taxUnitprice || details.taxUnitPrice}}
+            <div class="pull-left list-wrap-content-brand clearfix">
+              <div class="name pull-left">单价:</div>
+              <div class="pull-left spec noMargin">{{details.taxUnitprice || details.taxUnitPrice}}</div>
             </div>
           </div>
           <div class="list-item clearfix">
@@ -64,8 +76,9 @@
               <div class="name pull-left">型号:</div>
               <div class="pull-left spec">{{details.cmpCode || '-'}}</div>
             </div>
-            <div class="pull-right lab">
-              <span>x</span>{{details.number}}
+            <div class="pull-left list-wrap-content-brand clearfix">
+              <div class="name pull-left">数量:</div>
+              <div class="pull-left spec noMargin"><span>x</span>{{details.number}}</div>
             </div>
           </div>
           <div class="list-item clearfix">
@@ -73,14 +86,16 @@
               <div class="name pull-left">规格:</div>
               <div class="pull-left spec">{{details.spec || '-'}}</div>
             </div>
+            <div class="pull-left pri clearfix">
+              <div class="name pull-left">小计:</div>
+              <span>¥</span>{{details.ensurePrice}}
+            </div>
           </div>
         </div>
+        <div class="lookMorePro" @click="item.showItem = item.purchaseDetails.length" v-if="item.showItem === 3 && item.purchaseDetails && item.purchaseDetails.length > 3">查看更多<img src="/images/mobile/user/icon-right.png"/></div>
         <div class="list-all-info clearfix">
-          <div class="orderNumber clearfix">
-            <div class="pull-left">{{item.createtime || item.creattime | time}}</div>
-            <div class="pull-right">订单号:{{item.orderid}}</div>
-          </div>
-          <div>共<span>{{item.batchQty}}</span>件商品&nbsp;&nbsp;合计:
+          <!--共<span>{{item.batchQty}}</span>件商品&nbsp;&nbsp;-->
+          <div>合计:
             <span class="pri"><a class="red">¥</a>{{item.ensurePrice }}</span>
             <span class="lab">(含运费:<a class="red">¥</a><a class="red">{{item.fare | priceFiter}}</a>)</span></div>
         </div>
@@ -299,7 +314,8 @@
         cancelList: ['我不想买了', '信息填写有误,重新购买', '先看看样品再下单', '付款遇到问题(如余额不足、超出限额等)', '买错了', '其他原因'], // 取消订单原因数组
         $CancenOrderId: '', // 取消订单id
         $Orderreason: '', // 取消订单原因
-        OrderCancelIndex: '' // 取消订单原因下标
+        OrderCancelIndex: '', // 取消订单原因下标
+        keyword: ''
       }
     },
     computed: {
@@ -330,6 +346,17 @@
       }
     },
     methods: {
+      // 搜索
+      searchOrderlist() {
+        this.page = 1
+        if (this.$route.query.type !== 'buyer') {
+          // 卖家中心
+          this.sellOrderList(this.activeType)
+        } else {
+          // 买家中心
+          this.buyerOrderList(this.activeType)
+        }
+      },
       // 确认付款
       gotoPay(item) {
         let id = EncryptionFilter(item.orderid)
@@ -369,7 +396,8 @@
           status: this.$status,
           storeType: 'other',
           isRate: false,
-          currentPage: this.page
+          currentPage: this.page,
+          keyword: this.keyword
         }
         if (this.vendorType === 'buyer') {
           params.sorting = { creattime: 'DESC' }
@@ -382,6 +410,7 @@
         })
       },
       ChangeList(_tp) {
+        this.keyword = ''
         this.activeType = _tp
         this.page = 1
         if (this.$route.query.type !== 'buyer') {
@@ -410,7 +439,8 @@
           isRate: false,
           currentPage: 1,
           sorting: { creattime: 'DESC' },
-          status: status
+          status: status,
+          keyword: this.keyword
         })
       },
       // 卖家中心订单列表加载数据
@@ -432,7 +462,8 @@
           page: 1,
           sorting: {createtime: 'DESC'},
           status: status,
-          storeType: 'other'
+          storeType: 'other',
+          keyword: this.keyword
         })
       },
       // 是否为分期付款
@@ -783,6 +814,7 @@
             // _obj[i].paidTimeFromNow = this._getHoursFromNow(_obj[i].paytime)
             // _obj[i].lastNotiDelivery = this._getHoursFromNow(_obj[i].lastNotifyDeliveryTime)
           }
+          _obj[i].showItem = _obj[i].purchaseDetails.length > 3 ? 3 : _obj[i].purchaseDetails.length
         }
         return _obj
       },
@@ -870,21 +902,47 @@
       }
     }
   }
+  .search-content2 {
+    text-align: center;
+    padding: .25rem 0 0 0;
+    margin-top: 0 !important;
+    input {
+      width: 7.1rem;
+      border: 1px solid #376ff3;
+    }
+    span {
+      height: .46rem;
+      line-height: .46rem;
+    }
+  }
   .order-list-wrap {
-    height: calc(100vh - 1.26rem - 0.96rem - 0.84rem);
+    height: calc(100vh - 1.26rem - 0.96rem - 0.84rem - 1rem);
     overflow-y: scroll;
     li {
-      margin-top: 0.2rem;
+      margin-bottom: 0.2rem;
     }
     .list-wrap-title{
        padding: 0 0.2rem;
        background: #fff;
-       @include lineHeight(0.88rem);
+       @include lineHeight(0.67rem);
        font-size: 0.28rem;
        color: #333;
+       border-bottom: 1px solid #e4e4e4;
        .pull-left {
          width: 5rem;
-         @include overFlowHidden()
+         @include overFlowHidden();
+         span {
+           max-width: 3rem;
+           @include overFlowHidden();
+           display: inline-block;
+         }
+         img {
+           width: 0.18rem;
+           height: 0.32rem;
+           vertical-align: top;
+           margin-top: 0.18rem;
+           margin-left: 0.1rem;
+         }
        }
        .pull-right {
          .red {
@@ -901,21 +959,20 @@
         font-size: 0.28rem;
         color: #333;
         /*line-height: 0.5rem;*/
-        margin-top: 0.18rem;
+        margin-top: 0.22rem;
         &:nth-child(1) {
           margin-top: 0px;
         }
-        &:nth-child(2) {
-          margin-top: 0.21rem;
-        }
-        &:nth-child(3) {
-          margin-top: 0.1rem;
-        }
         .list-wrap-content-brand {
           @include overFlowHidden();
           .spec {
-            width: 4rem;
-            @include overFlowHidden()
+            width: 3.4rem;
+            @include overFlowHidden();
+            margin-right: 0.2rem;
+            &.noMargin {
+              margin-right: 0;
+              width: 1.5rem;
+            }
           }
         }
         .name {
@@ -931,13 +988,23 @@
           }
         }
         .pri {
-          font-size: 0.32rem;
+          font-size: 0.28rem;
           color: #f43938;
-          max-width: 2.2rem;
-          @include overFlowHidden();
-          span {
-            font-size: 0.24rem;
-          }
+        }
+      }
+    }
+    .orderNumber {
+      font-size: 0.27rem;
+      color: #666;
+      border-bottom: 1px solid #e4e4e4;
+      @include lineHeight(0.88rem);
+      background: #fff;
+      padding: 0 0.2rem;
+      .pull-left {
+        width: 5rem;
+        @include overFlowHidden();
+        span {
+          color: #3f84f6
         }
       }
     }
@@ -950,11 +1017,6 @@
       font-size: 0.26rem;
       color: #333;
       border-bottom: 1px solid #e4e4e4;
-      .orderNumber {
-        font-size: 0.24rem;
-        color: #999;
-        border-bottom: 1px solid #e4e4e4;
-      }
       .pri {
         font-size: 0.32rem;
         color: #f43938;
@@ -1004,6 +1066,22 @@
         }
       }
     }
+    .lookMorePro {
+      background: #fff;
+      font-size: 0.28rem;
+      color: #999;
+      text-align: center;
+      border-bottom: 1px solid #e4e4e4;
+      @include lineHeight(0.67rem);
+      img {
+        transform: rotate(90deg);
+        width: 0.16rem;
+        height: 0.26rem;
+        vertical-align: top;
+        margin-top: 0.23rem;
+        margin-left: 0.1rem;
+      }
+    }
   }
   .sendGoods_Alert {
     background: #fff;

+ 7 - 3
pages/mobile/product/_batchCode.vue

@@ -608,11 +608,15 @@
         button {
           width: 50%;
           height: 100%;
-          color: #fff;
-          background: #ff9c00;
+          background: #fff;
           border: none;
+          color: #3f84f6;
+          &:first-child {
+            border: 1px solid #3f84f6;
+          }
           &:last-child {
-            background: #f80915;
+            background: #3f84f6;
+            color: #fff;
           }
         }
       }

+ 70 - 0
pages/mobile/user/address.vue

@@ -0,0 +1,70 @@
+<template>
+  <div class="logistics-wrapper">
+    <div class="logistics-content" id="logisticsContent">
+      <address-view ref="addressView" v-show="!isEdit" :isSend="isSend" @isEditEvent="editClick"></address-view>
+      <address-edit v-show="isEdit" :data="setData" :isPersonal="isPersonal" :isSend="isSend" @isEditEvent="editClick"></address-edit>
+    </div>
+  </div>
+</template>
+
+<script type="text/javascript">
+  import { AddressView, AddressEdit } from '~components/mobile/base'
+  export default {
+    name: 'NoSendAddress',
+    layout: 'mobile',
+    middleware: 'authenticated',
+    fetch({store}) {
+      return Promise.all([
+        store.dispatch('mobileAddress/loadAddressData', {count: 10, page: 1, isSend: false, sorting: { 'num': 'ASC' }})
+      ])
+    },
+    components: {
+      AddressView,
+      AddressEdit
+    },
+    data () {
+      return {
+        isEdit: false,
+        setData: {}
+      }
+    },
+    computed: {
+      isSend () {
+        return false
+      },
+      isPersonal () {
+        return true
+      }
+    },
+    methods: {
+      editClick (item, type) {
+        this.isEdit = type
+        if (item) {
+          this.setData = item
+        }
+        if (type === false) {
+          this.$refs.addressView.initList()
+        }
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  @mixin Fixed() {
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    top: 1.26rem;
+  }
+  .logistics-wrapper {
+    @include Fixed();
+    z-index: 111;
+    background: #f1f3f6;
+    .logistics-content {
+      overflow-y: scroll;
+      height: calc(100vh - 1.26rem)
+    }
+  }
+</style>

+ 8 - 0
pages/mobile/user/index.vue

@@ -64,6 +64,14 @@
         <i class="iconfont icon-xiangyou"></i>
         <div class="border-line"></div>
       </div>
+      <div @click="go('/mobile/user/address')" class="line block-line">
+        <div class="img-wrap">
+          <img src="/images/mobile/user/icon_06.png" alt="">
+        </div>
+        <span>收货地址信息</span>
+        <i class="iconfont icon-xiangyou"></i>
+        <div class="border-line"></div>
+      </div>
       <div class="deleteKuang" v-if="showLogout">
         <div class="kuangContent">
           <div class="title">系统提示</div>

+ 1 - 8
pages/supplier/index.vue

@@ -27,9 +27,7 @@
         store.dispatch('supplier/loadVendorList', {page: 1, size: 10}),
         store.dispatch('supplier/loadVendorAll', {page: 1, size: 20}),
         store.dispatch('supplier/loadNewMerchant', {filter: 'page', size: 10}),
-        store.dispatch('supplier/loadRecommend', {size: 19}),
-        store.dispatch('loadBanners', {type: 'home'}),
-        store.dispatch('loadProductKinds', { id: 0 })
+        store.dispatch('supplier/loadRecommend', {size: 19})
       ])
     },
     components: {
@@ -40,10 +38,5 @@
       ArticleOne,
       ArticleTwo
     }
-//    methods: {
-//      loadProductKinds (id) {
-//        this.$store.dispatch('loadAllProductKinds', {id})
-//      }
-//    }
   }
 </script>

+ 2 - 1
plugins/element-ui.js

@@ -1,5 +1,5 @@
 import Vue from 'vue'
-import { Message, Breadcrumb, BreadcrumbItem, Tree, Pagination, Upload, Dialog, DatePicker } from 'element-ui'
+import { Message, Breadcrumb, BreadcrumbItem, Tree, Pagination, Upload, Dialog, DatePicker, Switch } from 'element-ui'
 
 Vue.use(Breadcrumb)
 Vue.use(BreadcrumbItem)
@@ -8,5 +8,6 @@ Vue.use(Pagination)
 Vue.use(Upload)
 Vue.use(Dialog)
 Vue.use(DatePicker)
+Vue.use(Switch)
 
 Vue.prototype.$message = Message

BIN
static/images/mobile/user/icon_06.png


BIN
static/images/order/remem_icon.png


+ 43 - 0
store/mobileAddress.js

@@ -0,0 +1,43 @@
+import axios from '~plugins/axios'
+/**
+ * 发 收货地址管理数据
+ */
+export const state = () => ({
+  // 收发货切换
+  send: true,
+  // 地址数据
+  address: {
+    fetching: false,
+    data: []
+  }
+})
+
+export const mutations = {
+  SET_SEND (state, result) {
+    state.send = result || true
+  },
+  REQUEST_ADDRESS (state) {
+    state.address.fetching = true
+  },
+  REQUEST_ADDRESS_SUCCESS (state, result) {
+    state.address.fetching = false
+    state.address.data = result
+  },
+  REQUEST_ADDRESS_FAILURE (state) {
+    state.address.fetching = false
+  }
+}
+
+export const actions = {
+  // 获取地址数据
+  loadAddressData ({ commit }, params = {}) {
+    commit('REQUEST_ADDRESS')
+    return axios.get('/trade/address/page', {params})
+      .then(response => {
+        commit('REQUEST_ADDRESS_SUCCESS', response.data)
+      }, err => {
+        commit('REQUEST_ADDRESS_FAILURE', err)
+      })
+  }
+}
+