panyong 4 лет назад
Родитель
Сommit
cb7deff44a

+ 20 - 42
htmldev/loan/src/router/index.js

@@ -124,10 +124,26 @@ const routes = [
         path: '', // 推广
         name: 'partnerMarketing',
         component: () => import(/* webpackChunkName: "partner_marketing" */ '../views/partner/marketing'),
-        meta: {
-          isUseCache: false,
-          keepAlive: true
-        }
+        children: [
+          {
+            path: '', // 客户
+            name: 'partnerCustomer',
+            component: () => import(/* webpackChunkName: "partner_customer" */ '../views/partner/customer'),
+            meta: {
+              isUseCache: false,
+              keepAlive: true
+            }
+          },
+          {
+            path: 'business', // 合伙人
+            name: 'partnerAll',
+            component: () => import(/* webpackChunkName: "partner_all" */ '../views/partner/all'),
+            meta: {
+              isUseCache: false,
+              keepAlive: true
+            }
+          }
+        ]
       },
       {
         path: 'mine', // 我的
@@ -175,39 +191,6 @@ const routes = [
       keepAlive: true
     }
   },
-  {
-    path: '/partner/business', // 我的合伙人
-    component: () => import(/* webpackChunkName: "partner_business" */ '../views/partner/business'),
-    children: [
-      {
-        path: '', // 全部
-        name: 'partnerAll',
-        component: () => import(/* webpackChunkName: "partner_all" */ '../views/partner/all'),
-        meta: {
-          isUseCache: false,
-          keepAlive: true
-        }
-      },
-      {
-        path: 'sign', // 已签约
-        name: 'partnerSign',
-        component: () => import(/* webpackChunkName: "partner_sign" */ '../views/partner/sign'),
-        meta: {
-          isUseCache: false,
-          keepAlive: true
-        }
-      },
-      {
-        path: 'unsigned', // 未签约
-        name: 'partnerUnsigned',
-        component: () => import(/* webpackChunkName: "partner_unsigned" */ '../views/partner/unsigned'),
-        meta: {
-          isUseCache: false,
-          keepAlive: true
-        }
-      }
-    ]
-  },
   {
     path: '/partner/login', // 登录
     name: 'partnerLogin',
@@ -247,11 +230,6 @@ const routes = [
       id: route.query.id
     })
   },
-  {
-    path: '/partner/privacy', // 隐私协议
-    name: 'partnerPrivacy',
-    component: () => import(/* webpackChunkName: "partner_privacy" */ '../views/partner/privacy')
-  },
   {
     path: '/partner/agreement', // 协议
     name: 'partnerAgreement',

+ 10 - 0
htmldev/loan/src/store/modules/business.js

@@ -1,5 +1,6 @@
 const state = {
   search: '',
+  isSearch: 0, // 是否点击了搜索按钮
   totalOf0: 0,
   totalOf1: 0,
   totalOf2: 0
@@ -9,6 +10,9 @@ const getters = {
   searchValue (state) {
     return state.search
   },
+  isSearch (state) {
+    return state.isSearch
+  },
   totalOf0 (state) {
     return state.totalOf0
   },
@@ -24,6 +28,9 @@ const actions = {
   setSearchValue ({ commit }, value) {
     commit('UPDATE_SEARCH_VALUE', value)
   },
+  setIsSearch ({ commit }, value) {
+    commit('UPDATE_ISSEARCH_VALUE', value)
+  },
   setTotal ({ commit }, value) {
     commit('UPDATE_TOTAL_VALUE', value)
   }
@@ -33,6 +40,9 @@ const mutations = {
   UPDATE_SEARCH_VALUE (state, value) {
     state.search = value
   },
+  UPDATE_ISSEARCH_VALUE (state, value) {
+    state.isSearch = value
+  },
   UPDATE_TOTAL_VALUE (state, obj) {
     state[`totalOf${obj.status}`] = obj.value
   }

+ 220 - 221
htmldev/loan/src/views/partner/all/components/main.vue

@@ -33,32 +33,65 @@
 </template>
 
 <script>
-  import BScroll from 'better-scroll'
-  import { Toast } from 'vant'
-  import { mapGetters } from 'vuex'
-  import { partnerList } from '../api'
+import BScroll from 'better-scroll'
+import { Toast } from 'vant'
+import { mapGetters } from 'vuex'
+import { partnerList } from '../api'
 
-  const PAGESIZE = 20
-  export default {
-    name: 'mains',
-    data () {
-      return {
-        pager: {
-          pagenum: 1,
-          pagesize: PAGESIZE,
-          pagecount: 1
-        },
-        listData: [],
-        scroll: null,
-        numFetchStatus: 0,
-        arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
-        booFetchData: false,
-        numPositionY: 0,
-        flag: true
+const PAGESIZE = 20
+export default {
+  name: 'mains',
+  data () {
+    return {
+      pager: {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
+      },
+      listData: [],
+      scroll: null,
+      numFetchStatus: 0,
+      arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
+      booFetchData: false,
+      numPositionY: 0
+    }
+  },
+  activated () {
+    if (!this.$route.meta.isUseCache) {
+      this.pager = {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
       }
-    },
-    activated () {
-      if (!this.$route.meta.isUseCache) {
+      this.listData = []
+      this.numFetchStatus = 0
+      this.booFetchData = false
+      this.numPositionY = 0
+      this.funFetch()
+    } else {
+      this.$nextTick(() => {
+        if (this.scroll) {
+          this.scroll.refresh()
+          this.scroll.scrollTo(0, this.numPositionY)
+        }
+      })
+    }
+    this.$nextTick(() => {
+      this.$refreshTitle('我的合伙人')
+    })
+  },
+  computed: {
+    ...mapGetters({
+      search: 'business/searchValue',
+      isSearch: 'business/isSearch'
+    })
+  },
+  watch: {
+    isSearch: {
+      handler: function (newVal) {
+        if (!newVal) {
+          return
+        }
         this.pager = {
           pagenum: 1,
           pagesize: PAGESIZE,
@@ -68,241 +101,207 @@
         this.numFetchStatus = 0
         this.booFetchData = false
         this.numPositionY = 0
-        this.flag = true
         this.funFetch()
-      } else {
-        this.$nextTick(() => {
-          if (this.scroll) {
-            this.scroll.refresh()
-            this.scroll.scrollTo(0, this.numPositionY)
-          }
-        })
       }
-      this.$nextTick(() => {
-        this.$refreshTitle('我的合伙人')
-      })
-    },
-    computed: {
-      ...mapGetters({
-        search: 'business/searchValue'
-      })
-    },
-    watch: {
-      search: {
-        handler: function (val) {
-          this.pager = {
-            pagenum: 1,
-            pagesize: PAGESIZE,
-            pagecount: 1
-          }
-          this.listData = []
-          this.numFetchStatus = 0
-          this.booFetchData = false
-          this.numPositionY = 0
-          this.funFetch()
-        }
+    }
+  },
+  methods: {
+    funFetch () {
+      const vm = this
+      const partnerStatus = this.$route.name === 'partnerUnsigned' ? '2' : (this.$route.name === 'partnerSign' ? '1' : '0')
+      vm.numFetchStatus = 0
+      // 搜索按钮置为默认状态
+      if (this.isSearch) {
+        vm.$store.dispatch('business/setIsSearch', 0)
       }
-    },
-    methods: {
-      funFetch () {
-        const vm = this
-        const partnerStatus = this.$route.name === 'partnerUnsigned' ? '2' : (this.$route.name === 'partnerSign' ? '1' : '0')
-        vm.numFetchStatus = 0
-        if (!vm.flag) {
-          return
-        }
-        vm.flag = false
-        partnerList(vm.pager.pagenum, vm.pager.pagesize, this.search, partnerStatus).then(response => {
-          vm.flag = true
-          if (response.status) {
-            const data = response.data
-            const temp = data.data
-            vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
-            vm.pager.pagenum++
-            vm.$store.dispatch('business/setTotal', { status: partnerStatus, value: data.count })
-            vm.booFetchData = true
-            if (vm.pager.pagecount <= 1) {
-              vm.numFetchStatus = 2
-            } else {
-              vm.numFetchStatus = 1
-            }
-            if (temp.length) {
-              vm.listData = vm.listData.concat(temp)
-              vm.$nextTick(() => {
-                if (!vm.scroll) {
-                  vm.scroll = new BScroll(vm.$refs.wrapper, {
-                    click: true,
-                    pullUpLoad: {
-                      threshold: -20
-                    },
-                    scrollbar: true
-                  })
-                  vm.scroll.on('pullingUp', () => {
-                    if (vm.pager.pagenum > vm.pager.pagecount) {
-                      vm.numFetchStatus = 2
-                      return
-                    }
-                    vm.funFetch()
-                  })
-                } else {
-                  vm.scroll.refresh()
-                  vm.scroll.finishPullUp()
-                }
-              })
-            }
+      partnerList(vm.pager.pagenum, vm.pager.pagesize, this.search, partnerStatus).then(response => {
+        if (response.status) {
+          const data = response.data
+          const temp = data.data
+          vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
+          vm.pager.pagenum++
+          vm.$store.dispatch('business/setTotal', { status: partnerStatus, value: data.count })
+          vm.booFetchData = true
+          if (vm.pager.pagecount <= 1) {
+            vm.numFetchStatus = 2
           } else {
-            Toast(response.msg)
-            vm.numFetchStatus = 3
+            vm.numFetchStatus = 1
           }
-        }).catch(() => {
-          vm.flag = true
-          Toast('出错啦')
+          if (temp.length) {
+            vm.listData = vm.listData.concat(temp)
+            vm.$nextTick(() => {
+              if (!vm.scroll) {
+                vm.scroll = new BScroll(vm.$refs.wrapper, {
+                  click: true,
+                  pullUpLoad: {
+                    threshold: -20
+                  },
+                  scrollbar: true
+                })
+                vm.scroll.on('pullingUp', () => {
+                  if (vm.pager.pagenum > vm.pager.pagecount) {
+                    vm.numFetchStatus = 2
+                    return
+                  }
+                  vm.funFetch()
+                })
+              } else {
+                vm.scroll.refresh()
+                vm.scroll.finishPullUp()
+              }
+            })
+          }
+        } else {
+          Toast(response.msg)
           vm.numFetchStatus = 3
-        })
-      },
-      funGetGoodsDetail (item) {
-        this.$router.push({ path: `/partner/sale?id=${item.id}` })
-      }
+        }
+      }).catch(() => {
+        Toast('出错啦')
+        vm.numFetchStatus = 3
+      })
     },
-    beforeDestroy () {
-      if (this.scroll) {
-        this.scroll.destroy()
-      }
+    funGetGoodsDetail (item) {
+      this.$router.push({ path: `/partner/sale?id=${item.id}` })
+    }
+  },
+  beforeDestroy () {
+    if (this.scroll) {
+      this.scroll.destroy()
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .wrapper {
-    position: relative;
-    width: 100%;
-    height: calc(100vh - 124px);
-    margin-top: 124px;
-    overflow: hidden;
-
-    ul {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      width: 100%;
-      padding: 0 0 300px;
-    }
-  }
+.wrapper {
+  position: relative;
+  width: 100%;
+  height: calc(100vh - 242px);
+  overflow: hidden;
 
-  .list {
+  ul {
     display: flex;
     flex-direction: column;
     align-items: center;
-    width: 343px;
-    margin-bottom: 16px;
-    background: #FFF;
-    border-radius: 8px;
-
-    &:nth-last-child(1) {
-      margin-bottom: 0;
-    }
+    width: 100%;
+    padding-bottom: 200px;
   }
+}
 
-  .top-wrap {
-    display: flex;
-    justify-content: space-between;
-    align-items: flex-start;
-    width: 313px;
-    padding: 16px 0 17px;
-  }
+.list {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 343px;
+  margin-bottom: 16px;
+  background: #FFF;
+  border-radius: 8px;
 
-  .info-wrap {
-    display: flex;
-    align-items: center;
+  &:nth-last-child(1) {
+    margin-bottom: 0;
   }
+}
 
-  .avatar {
-    width: 48px;
-    height: 48px;
-    border-radius: 50%;
-    overflow: hidden;
-    background: pink;
+.top-wrap {
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-start;
+  width: 313px;
+  padding: 16px 0 17px;
+}
 
-    img {
-      display: block;
-      width: 100%;
-    }
+.info-wrap {
+  display: flex;
+  align-items: center;
+}
+
+.avatar {
+  width: 48px;
+  height: 48px;
+  border-radius: 50%;
+  overflow: hidden;
+  background: pink;
+
+  img {
+    display: block;
+    width: 100%;
   }
+}
 
-  .name {
-    display: flex;
-    flex-direction: column;
-    margin-left: 12px;
+.name {
+  display: flex;
+  flex-direction: column;
+  margin-left: 12px;
 
-    span:nth-of-type(1) {
-      line-height: 22px;
-      font-size: 16px;
-      font-weight: 500;
-      color: #333;
-    }
+  span:nth-of-type(1) {
+    line-height: 22px;
+    font-size: 16px;
+    font-weight: 500;
+    color: #333;
+  }
 
-    span:nth-of-type(2) {
-      margin-top: 8px;
-      line-height: 17px;
-      font-size: 12px;
-      color: #666;
-    }
+  span:nth-of-type(2) {
+    margin-top: 8px;
+    line-height: 17px;
+    font-size: 12px;
+    color: #666;
   }
+}
 
-  .contact-wrap {
-    display: flex;
-    align-items: center;
+.contact-wrap {
+  display: flex;
+  align-items: center;
 
-    span {
-      line-height: 17px;
-      font-size: 12px;
-      color: #999;
-    }
+  span {
+    line-height: 17px;
+    font-size: 12px;
+    color: #999;
+  }
 
-    img {
-      width: 24px;
-      height: 24px;
-      margin-left: 9px;
-    }
+  img {
+    width: 24px;
+    height: 24px;
+    margin-left: 9px;
   }
+}
 
-  .bottom-wrap {
-    display: flex;
-    justify-content: space-between;
-    width: 313px;
-    padding: 10px 0;
-    @include border-top-1px(#E8E8E8);
+.bottom-wrap {
+  display: flex;
+  justify-content: space-between;
+  width: 313px;
+  padding: 10px 0;
+  @include border-top-1px(#E8E8E8);
 
-    span {
-      line-height: 17px;
-      font-size: 12px;
-      color: #333;
-    }
+  span {
+    line-height: 17px;
+    font-size: 12px;
+    color: #333;
+  }
 
-    img {
-      width: 22px;
-      height: 22px;
-    }
+  img {
+    width: 22px;
+    height: 22px;
   }
+}
 
-  .load-status {
-    margin-top: 12px;
+.load-status {
+  margin-top: 12px;
 
-    p {
-      line-height: 20px;
-      font-size: 14px;
-      color: #666;
-      text-align: center;
-    }
+  p {
+    line-height: 20px;
+    font-size: 14px;
+    color: #666;
+    text-align: center;
   }
+}
 
-  .bitmap {
-    p {
-      line-height: 22px;
-      font-size: 16px;
-      font-weight: 500;
-      text-align: center;
-      color: #333;
-    }
+.bitmap {
+  p {
+    line-height: 22px;
+    font-size: 16px;
+    font-weight: 500;
+    text-align: center;
+    color: #333;
   }
+}
 </style>

+ 23 - 23
htmldev/loan/src/views/partner/all/index.vue

@@ -4,32 +4,32 @@
 </template>
 
 <script>
-  import Main from './components/main'
+import Main from './components/main'
 
-  export default {
-    name: 'all',
-    components: {
-      Main
-    },
-    data () {
-      return {
-        numPositionY: 0
-      }
-    },
-    activated () {
-      if (!this.$route.meta.isUseCache) {
-        this.numPositionY = 0
-      }
-      this.$route.meta.isUseCache = false
-    },
-    beforeRouteLeave (to, from, next) {
-      if (['partnerSign', 'partnerUnsigned', 'partnerSale'].includes(to.name)) {
-        from.meta.isUseCache = true
-      }
-      this.numPositionY = this.$refs.myOrder.scroll ? this.$refs.myOrder.scroll.y : 0
-      next()
+export default {
+  name: 'all',
+  components: {
+    Main
+  },
+  data () {
+    return {
+      numPositionY: 0
     }
+  },
+  activated () {
+    if (!this.$route.meta.isUseCache) {
+      this.numPositionY = 0
+    }
+    this.$route.meta.isUseCache = false
+  },
+  beforeRouteLeave (to, from, next) {
+    if (['partnerCustomer', 'partnerGoods', 'partnerMine'].includes(to.name)) {
+      from.meta.isUseCache = true
+    }
+    this.numPositionY = this.$refs.myOrder.scroll ? this.$refs.myOrder.scroll.y : 0
+    next()
   }
+}
 </script>
 
 <style lang="scss" scoped>

+ 96 - 92
htmldev/loan/src/views/partner/business/index.vue

@@ -3,6 +3,8 @@
     <div class="header">
       <van-search
         v-model="searChValue"
+        @search="searchHandle"
+        @clear="clearHandle"
         placeholder="请输入姓名…"/>
       <TabBar :navList="navList" @funChange="funChange" ref="myNav"/>
     </div>
@@ -14,113 +16,115 @@
 </template>
 
 <script>
-  import { Search } from 'vant'
-  import TabBar from './components/tabBar'
-  import { mapGetters } from 'vuex'
+import { Search } from 'vant'
+import TabBar from './components/tabBar'
+import { mapGetters } from 'vuex'
 
-  export default {
-    name: 'business',
-    components: {
-      'van-search': Search,
-      TabBar
-    },
-    data () {
-      return {}
-    },
-    activated () {
-      this.$refs.myNav.funInitTabIndex(this.$route.name === 'partnerAll' ? 1 : (this.$route.name === 'partnerSign' ? 2 : 3))
-    },
-    computed: {
-      ...mapGetters({
-        totalOf0: 'business/totalOf0',
-        totalOf1: 'business/totalOf1',
-        totalOf2: 'business/totalOf2'
-      }),
-      searChValue: {
-        get () {
-          return this.$store.getters['business/searchValue']
-        },
-        set (val) {
-          this.$store.dispatch('business/setSearchValue', val)
-        }
+export default {
+  name: 'business',
+  components: {
+    'van-search': Search,
+    TabBar
+  },
+  data () {
+    return {}
+  },
+  activated () {
+    this.$refs.myNav.funInitTabIndex(this.$route.name === 'partnerAll' ? 1 : (this.$route.name === 'partnerSign' ? 2 : 3))
+  },
+  computed: {
+    ...mapGetters({
+      totalOf0: 'business/totalOf0',
+      totalOf1: 'business/totalOf1',
+      totalOf2: 'business/totalOf2'
+    }),
+    searChValue: {
+      get () {
+        return this.$store.getters['business/searchValue']
       },
-      navList () {
-        return [
-          {
-            id: 1,
-            name: '全部',
-            value: this.totalOf0
-          },
-          {
-            id: 2,
-            name: '已签约',
-            value: this.totalOf1
-          },
-          {
-            id: 3,
-            name: '未签约',
-            value: this.totalOf2
-          }
-        ]
+      set (val) {
+        this.$store.dispatch('business/setSearchValue', val)
       }
     },
-    methods: {
-      funChange (id) {
-        const path = id === 1 ? '/partner/business' : (id === 2 ? '/partner/business/sign' : '/partner/business/unsigned')
-        this.$nextTick(() => {
-          this.$router.replace({ path: path })
-        })
-      }
+    navList () {
+      return [
+        {
+          id: 1,
+          name: '全部',
+          value: this.totalOf0
+        },
+        {
+          id: 2,
+          name: '已签约',
+          value: this.totalOf1
+        },
+        {
+          id: 3,
+          name: '未签约',
+          value: this.totalOf2
+        }
+      ]
+    }
+  },
+  methods: {
+    searchHandle () {},
+    clearHandle () {},
+    funChange (id) {
+      const path = id === 1 ? '/partner/business' : (id === 2 ? '/partner/business/sign' : '/partner/business/unsigned')
+      this.$nextTick(() => {
+        this.$router.replace({ path: path })
+      })
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .header {
-    position: fixed;
-    left: 0;
-    right: 0;
-    top: 0;
-    z-index: 99;
-    width: 100%;
-    padding-top: 12px;
-    background: #fff;
-  }
+.header {
+  position: fixed;
+  left: 0;
+  right: 0;
+  top: 0;
+  z-index: 99;
+  width: 100%;
+  padding-top: 12px;
+  background: #fff;
+}
 
-  ::v-deep .van-search {
-    width: 341px;
-    height: 40px;
-    border-radius: 20px;
-    margin: 0 auto;
-    background: #F7F6F9;
+::v-deep .van-search {
+  width: 341px;
+  height: 40px;
+  border-radius: 20px;
+  margin: 0 auto;
+  background: #F7F6F9;
 
-    .van-search__content {
-      padding-left: 0;
-    }
+  .van-search__content {
+    padding-left: 0;
+  }
 
-    .van-cell {
-      align-items: center;
-    }
+  .van-cell {
+    align-items: center;
+  }
 
-    .van-icon-search {
-      font-size: 22px;
-      color: #DDDDDD;
-    }
+  .van-icon-search {
+    font-size: 22px;
+    color: #DDDDDD;
+  }
 
-    .van-field__control {
-      line-height: 17px;
-      font-size: 12px;
-      color: #333;
-      overflow: hidden;
-      background: transparent;
-      -webkit-text-fill-color: #333;
-      opacity: 1;
+  .van-field__control {
+    line-height: 17px;
+    font-size: 12px;
+    color: #333;
+    overflow: hidden;
+    background: transparent;
+    -webkit-text-fill-color: #333;
+    opacity: 1;
 
-      &::-webkit-input-placeholder {
-        color: #999;
-        -webkit-text-fill-color: #999;
-        opacity: 1;
-      }
+    &::-webkit-input-placeholder {
+      color: #999;
+      -webkit-text-fill-color: #999;
+      opacity: 1;
     }
   }
+}
 </style>

+ 0 - 0
htmldev/loan/src/views/partner/marketing/api/index.js → htmldev/loan/src/views/partner/customer/api/index.js


+ 310 - 0
htmldev/loan/src/views/partner/customer/index.vue

@@ -0,0 +1,310 @@
+<template>
+  <div class="better-scroll wrapper" ref="wrapper">
+    <ul>
+      <li class="list" v-for="(item, index) in listData" :key="index">
+        <div class="name-wrap">
+          <div class="avatar">
+            <img :src="item.userHeadImgUrl" alt="">
+          </div>
+          <p class="name">{{ item.orderUserName }}</p>
+        </div>
+        <p class="phone">手机号:{{ item.orderUserPhone }}</p>
+        <div class="loan-info">
+          <p class="label">申请产品:{{ item.orderProduceName }}</p>
+          <p>
+            <span class="label">需求金额:</span>
+            <span class="value">{{ item.orderPrice / 10000 }}万元</span>
+          </p>
+        </div>
+        <p class="create-time">申请时间:{{ item.createdAt }}</p>
+        <!--orderFinalStatus:0-进行中 1-成功 2-失败-->
+        <p class="status bg-0" v-if="item.orderFinalStatus === 0">进度:{{ item.orderStatus }}</p>
+        <p class="status bg-1" v-if="item.orderFinalStatus === 1">{{ item.orderStatus }}</p>
+        <p class="status bg-2" v-if="item.orderFinalStatus === 2">{{ item.orderStatus }}</p>
+      </li>
+      <li class="load-status" v-if="listData.length && booFetchData">
+        <p>{{ arrFetchStatus[numFetchStatus] }}</p>
+      </li>
+      <li class="bitmap" v-if="!listData.length && booFetchData">
+        <p>暂无记录</p>
+      </li>
+    </ul>
+  </div>
+</template>
+
+<script>
+import BScroll from 'better-scroll'
+import { Toast } from 'vant'
+import { mapGetters } from 'vuex'
+import { saleList } from './api'
+
+const PAGESIZE = 20
+export default {
+  name: 'marketing',
+  data () {
+    return {
+      pager: {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
+      },
+      listData: [],
+      scroll: null,
+      numFetchStatus: 0,
+      arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
+      booFetchData: false
+    }
+  },
+  activated () {
+    if (!this.$route.meta.isUseCache) {
+      this.pager = {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
+      }
+      this.listData = []
+      this.numFetchStatus = 0
+      this.booFetchData = false
+      this.funFetch()
+    } else {
+      this.$nextTick(() => {
+        if (this.scroll) {
+          this.scroll.refresh()
+        }
+      })
+    }
+  },
+  computed: {
+    ...mapGetters({
+      search: 'business/searchValue',
+      isSearch: 'business/isSearch'
+    })
+  },
+  watch: {
+    isSearch: {
+      handler: function (newVal) {
+        if (!newVal) {
+          return
+        }
+        this.pager = {
+          pagenum: 1,
+          pagesize: PAGESIZE,
+          pagecount: 1
+        }
+        this.listData = []
+        this.numFetchStatus = 0
+        this.booFetchData = false
+        this.funFetch()
+      }
+    }
+  },
+  methods: {
+    funFetch () {
+      const vm = this
+      vm.numFetchStatus = 0
+      // 搜索按钮置为默认状态
+      if (this.isSearch) {
+        vm.$store.dispatch('business/setIsSearch', 0)
+      }
+      saleList(vm.pager.pagenum, vm.pager.pagesize).then(response => {
+        if (response.status) {
+          const data = response.data
+          const temp = data.data
+          vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
+          vm.pager.pagenum++
+          vm.booFetchData = true
+          if (vm.pager.pagecount <= 1) {
+            vm.numFetchStatus = 2
+          } else {
+            vm.numFetchStatus = 1
+          }
+          if (temp.length) {
+            vm.listData = vm.listData.concat(temp)
+            vm.$nextTick(() => {
+              if (!vm.scroll) {
+                vm.scroll = new BScroll(vm.$refs.wrapper, {
+                  click: true,
+                  pullUpLoad: {
+                    threshold: -20
+                  },
+                  scrollbar: true
+                })
+                vm.scroll.on('pullingUp', () => {
+                  if (vm.pager.pagenum > vm.pager.pagecount) {
+                    vm.numFetchStatus = 2
+                    return
+                  }
+                  vm.funFetch()
+                })
+              } else {
+                vm.scroll.refresh()
+                vm.scroll.finishPullUp()
+              }
+            })
+          }
+        } else {
+          Toast(response.msg)
+          vm.numFetchStatus = 3
+        }
+      }).catch(() => {
+        Toast('出错啦')
+        vm.numFetchStatus = 3
+      })
+    }
+  },
+  beforeRouteLeave (to, from, next) {
+    if (['partnerAll', 'partnerGoods', 'partnerMine'].includes(to.name)) {
+      from.meta.isUseCache = true
+    }
+    next()
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.wrapper {
+  position: relative;
+  width: 100%;
+  height: calc(100vh - 242px);
+  overflow: hidden;
+
+  ul {
+    width: 100%;
+    padding-bottom: 200px;
+  }
+}
+
+.list {
+  position: relative;
+  left: 0;
+  top: 0;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100%;
+  padding: 19px 0 16px;
+  margin-top: 12px;
+  border-radius: 4px;
+  background: #FFF;
+  box-shadow: 0 2px 0px -1px rgba(224, 224, 224, 0.5);
+
+  &:nth-of-type(1) {
+    margin-top: 0;
+  }
+}
+
+.name-wrap {
+  display: flex;
+  align-items: center;
+  width: 331px;
+}
+
+.avatar {
+  width: 25px;
+  height: 25px;
+  margin-right: 13px;
+  border-radius: 50%;
+  overflow: hidden;
+
+  img {
+    display: block;
+    width: 100%;
+  }
+}
+
+.name,
+.phone {
+  line-height: 20px;
+  font-size: 15px;
+  font-weight: 500;
+  color: #333;
+}
+
+.phone {
+  width: 331px;
+  margin-top: 14px;
+}
+
+.loan-info {
+  display: flex;
+  align-items: center;
+  width: 331px;
+  margin-top: 7px;
+
+  p {
+    display: flex;
+    align-items: center;
+
+    &:nth-of-type(2) {
+      margin-left: 17px;
+    }
+  }
+
+  .label {
+    line-height: 20px;
+    font-size: 15px;
+    color: #333;
+  }
+
+  .value {
+    line-height: 20px;
+    font-size: 15px;
+    font-weight: 500;
+    color: #EE0A23;
+  }
+}
+
+.create-time {
+  width: 331px;
+  margin-top: 7px;
+  line-height: 17px;
+  font-size: 12px;
+  color: #999;
+}
+
+.status {
+  position: absolute;
+  right: 16px;
+  top: 16px;
+  z-index: 1;
+  padding: 0 8px;
+  border-radius: 4px;
+  line-height: 22px;
+  font-size: 15px;
+  font-weight: 500;
+  color: #fff;
+
+  &.bg-0 {
+    background: #F39D41;
+  }
+
+  &.bg-1 {
+    background: #53DA6A;
+  }
+
+  &.bg-2 {
+    background: #EE0A23;
+  }
+}
+
+.load-status {
+  margin-top: 12px;
+
+  p {
+    line-height: 20px;
+    font-size: 14px;
+    color: #666;
+    text-align: center;
+  }
+}
+
+.bitmap {
+  p {
+    line-height: 22px;
+    font-size: 16px;
+    font-weight: 500;
+    text-align: center;
+    color: #333;
+  }
+}
+</style>

+ 229 - 229
htmldev/loan/src/views/partner/goods/index.vue

@@ -35,280 +35,280 @@
 </template>
 
 <script>
-  import BScroll from 'better-scroll'
-  import { Toast } from 'vant'
-  import Poster from '../poster'
-  import { productList } from './api'
+import BScroll from 'better-scroll'
+import { Toast } from 'vant'
+import Poster from '../poster'
+import { productList } from './api'
 
-  const PAGESIZE = 20
-  export default {
-    name: 'goods',
-    components: {
-      Poster
+const PAGESIZE = 20
+export default {
+  name: 'goods',
+  components: {
+    Poster
+  },
+  props: {
+    partnerId: {
+      type: String,
+      default: ''
     },
-    props: {
-      partnerId: {
-        type: String,
-        default: ''
-      },
-      partnerName: {
-        type: String,
-        default: ''
-      },
-      partnerImgUrl: {
-        type: String,
-        default: ''
-      }
+    partnerName: {
+      type: String,
+      default: ''
     },
-    data () {
-      return {
-        pager: {
-          pagenum: 1,
-          pagesize: PAGESIZE,
-          pagecount: 1
-        },
-        listData: [],
-        scroll: null,
-        numFetchStatus: 0,
-        arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
-        booFetchData: false,
-        numPositionY: 0,
-        posterBg: require('./image/poster_loan.png'),
-        codeParams: {
-          link: '',
-          x: 104,
-          y: 1188,
-          width: 202,
-          height: 202
-        }
+    partnerImgUrl: {
+      type: String,
+      default: ''
+    }
+  },
+  data () {
+    return {
+      pager: {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
+      },
+      listData: [],
+      scroll: null,
+      numFetchStatus: 0,
+      arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
+      booFetchData: false,
+      numPositionY: 0,
+      posterBg: require('./image/poster_loan.png'),
+      codeParams: {
+        link: '',
+        x: 104,
+        y: 1188,
+        width: 202,
+        height: 202
       }
-    },
-    activated () {
-      if (!this.$route.meta.isUseCache) {
-        this.pager = {
-          pagenum: 1,
-          pagesize: PAGESIZE,
-          pagecount: 1
-        }
-        this.listData = []
-        this.numFetchStatus = 0
-        this.booFetchData = false
-        this.numPositionY = 0
-        this.funFetch()
-      } else {
-        this.$nextTick(() => {
-          if (this.scroll) {
-            this.scroll.refresh()
-            this.scroll.scrollTo(0, this.numPositionY)
-          }
-        })
+    }
+  },
+  activated () {
+    if (!this.$route.meta.isUseCache) {
+      this.pager = {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
       }
+      this.listData = []
+      this.numFetchStatus = 0
+      this.booFetchData = false
+      this.numPositionY = 0
+      this.funFetch()
+    } else {
       this.$nextTick(() => {
-        this.$refreshTitle('贷款产品')
+        if (this.scroll) {
+          this.scroll.refresh()
+          this.scroll.scrollTo(0, this.numPositionY)
+        }
       })
-    },
-    methods: {
-      funFetch () {
-        const vm = this
-        vm.numFetchStatus = 0
-        productList(vm.pager.pagenum, vm.pager.pagesize).then(response => {
-          if (response.status) {
-            const data = response.data
-            const temp = data.data
-            vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
-            vm.pager.pagenum++
-            vm.booFetchData = true
-            if (vm.pager.pagecount <= 1) {
-              vm.numFetchStatus = 2
-            } else {
-              vm.numFetchStatus = 1
-            }
-            if (temp.length) {
-              vm.listData = vm.listData.concat(temp)
-              vm.$nextTick(() => {
-                if (!vm.scroll) {
-                  vm.scroll = new BScroll(vm.$refs.wrapper, {
-                    click: true,
-                    pullUpLoad: {
-                      threshold: -20
-                    },
-                    scrollbar: true
-                  })
-                  vm.scroll.on('pullingUp', () => {
-                    if (vm.pager.pagenum > vm.pager.pagecount) {
-                      vm.numFetchStatus = 2
-                      return
-                    }
-                    vm.funFetch()
-                  })
-                } else {
-                  vm.scroll.refresh()
-                  vm.scroll.finishPullUp()
-                }
-              })
-            }
+    }
+    this.$nextTick(() => {
+      this.$refreshTitle('贷款产品')
+    })
+  },
+  methods: {
+    funFetch () {
+      const vm = this
+      vm.numFetchStatus = 0
+      productList(vm.pager.pagenum, vm.pager.pagesize).then(response => {
+        if (response.status) {
+          const data = response.data
+          const temp = data.data
+          vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
+          vm.pager.pagenum++
+          vm.booFetchData = true
+          if (vm.pager.pagecount <= 1) {
+            vm.numFetchStatus = 2
           } else {
-            Toast(response.msg)
-            vm.numFetchStatus = 3
+            vm.numFetchStatus = 1
           }
-        }).catch(() => {
-          Toast('出错啦')
+          if (temp.length) {
+            vm.listData = vm.listData.concat(temp)
+            vm.$nextTick(() => {
+              if (!vm.scroll) {
+                vm.scroll = new BScroll(vm.$refs.wrapper, {
+                  click: true,
+                  pullUpLoad: {
+                    threshold: -20
+                  },
+                  scrollbar: true
+                })
+                vm.scroll.on('pullingUp', () => {
+                  if (vm.pager.pagenum > vm.pager.pagecount) {
+                    vm.numFetchStatus = 2
+                    return
+                  }
+                  vm.funFetch()
+                })
+              } else {
+                vm.scroll.refresh()
+                vm.scroll.finishPullUp()
+              }
+            })
+          }
+        } else {
+          Toast(response.msg)
           vm.numFetchStatus = 3
-        })
-      },
-      funJumpDetail (item) {
-        const { id } = item
-        this.$set(this.codeParams, 'link', `${location.origin}/loan/apply/${id}?partnerId=${this.partnerId}`)
-        this.$nextTick(() => {
-          this.$refs.myPoster.createQRCode()
-        })
-      }
+        }
+      }).catch(() => {
+        Toast('出错啦')
+        vm.numFetchStatus = 3
+      })
+    },
+    funJumpDetail (item) {
+      const { id } = item
+      this.$set(this.codeParams, 'link', `${location.origin}/loan/explain/${id}?partnerId=${this.partnerId}`)
+      this.$nextTick(() => {
+        this.$refs.myPoster.createQRCode()
+      })
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .container {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    width: 100%;
-    background: #fff;
-  }
+.container {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100%;
+  background: #fff;
+}
+
+.header {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100%;
+  padding: 25px 0 24px;
+}
+
+.title {
+  width: 343px;
+  padding-left: 8px;
+  line-height: 33px;
+  font-size: 24px;
+  font-weight: 500;
+  color: #333;
+}
+
+.wrapper {
+  position: relative;
+  width: 100%;
+  height: calc(100vh - 82px);
+  overflow: hidden;
 
-  .header {
+  ul {
     display: flex;
     flex-direction: column;
     align-items: center;
     width: 100%;
-    padding: 25px 0 24px;
+    padding-bottom: 80px;
   }
+}
 
-  .title {
-    width: 343px;
-    padding-left: 8px;
-    line-height: 33px;
-    font-size: 24px;
-    font-weight: 500;
-    color: #333;
-  }
+.list {
+  position: relative;
+  left: 0;
+  top: 0;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 343px;
+  margin-bottom: 26px;
+  border-radius: 4px;
 
-  .wrapper {
-    position: relative;
-    width: 100%;
-    height: calc(100vh - 82px);
-    overflow: hidden;
-
-    ul {
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      width: 100%;
-      padding-bottom: 80px;
-    }
+  &.bg-0 {
+    background: linear-gradient(270deg, #E2E2E2 0%, #C7C7C7 100%);
   }
 
-  .list {
-    position: relative;
-    left: 0;
-    top: 0;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    width: 343px;
-    margin-bottom: 26px;
-    border-radius: 4px;
+  &.bg-1 {
+    background: linear-gradient(90deg, #44403B 0%, #93806B 100%);
+  }
+}
 
-    &.bg-0 {
-      background: linear-gradient(270deg, #E2E2E2 0%, #C7C7C7 100%);
-    }
+.top {
+  display: flex;
+  align-items: center;
+  width: 297px;
+  padding: 18px 0 12px;
+}
 
-    &.bg-1 {
-      background: linear-gradient(90deg, #44403B 0%, #93806B 100%);
-    }
-  }
+.left-wrap {
+  width: 60px;
+  height: 60px;
+  border-radius: 4px;
+  overflow: hidden;
 
-  .top {
-    display: flex;
-    align-items: center;
-    width: 297px;
-    padding: 18px 0 12px;
+  img {
+    display: block;
+    width: 100%;
   }
+}
 
-  .left-wrap {
-    width: 60px;
-    height: 60px;
-    border-radius: 4px;
-    overflow: hidden;
+.right-wrap {
+  margin-left: 18px;
 
-    img {
-      display: block;
-      width: 100%;
-    }
+  p:nth-of-type(1) {
+    line-height: 25px;
+    font-size: 18px;
+    font-weight: 500;
+    color: #fff;
   }
 
-  .right-wrap {
-    margin-left: 18px;
+  p:nth-of-type(2) {
+    display: flex;
+    align-items: flex-end;
 
-    p:nth-of-type(1) {
-      line-height: 25px;
-      font-size: 18px;
-      font-weight: 500;
+    span:nth-of-type(1) {
+      padding-bottom: 5px;
+      line-height: 20px;
+      font-size: 15px;
       color: #fff;
     }
 
-    p:nth-of-type(2) {
-      display: flex;
-      align-items: flex-end;
-
-      span:nth-of-type(1) {
-        padding-bottom: 5px;
-        line-height: 20px;
-        font-size: 15px;
-        color: #fff;
-      }
-
-      span:nth-of-type(2) {
-        line-height: 33px;
-        font-size: 24px;
-        font-weight: bold;
-      }
+    span:nth-of-type(2) {
+      line-height: 33px;
+      font-size: 24px;
+      font-weight: bold;
+    }
 
-      span:nth-of-type(3) {
-        padding-bottom: 4px;
-        line-height: 20px;
-        font-size: 15px;
-        font-weight: bolder;
-      }
+    span:nth-of-type(3) {
+      padding-bottom: 4px;
+      line-height: 20px;
+      font-size: 15px;
+      font-weight: bolder;
+    }
 
-      .col-0 {
-        color: #A7A7A7;
-      }
+    .col-0 {
+      color: #A7A7A7;
+    }
 
-      .col-1 {
-        color: #D6BDA1;
-      }
+    .col-1 {
+      color: #D6BDA1;
     }
   }
+}
 
-  .load-status {
-    margin-top: 12px;
+.load-status {
+  margin-top: 12px;
 
-    p {
-      line-height: 20px;
-      font-size: 14px;
-      color: #666;
-      text-align: center;
-    }
+  p {
+    line-height: 20px;
+    font-size: 14px;
+    color: #666;
+    text-align: center;
   }
+}
 
-  .bitmap {
-    p {
-      line-height: 22px;
-      font-size: 16px;
-      font-weight: 500;
-      text-align: center;
-      color: #333;
-    }
+.bitmap {
+  p {
+    line-height: 22px;
+    font-size: 16px;
+    font-weight: 500;
+    text-align: center;
+    color: #333;
   }
+}
 </style>

+ 57 - 57
htmldev/loan/src/views/partner/home/index.vue

@@ -6,8 +6,8 @@
     <router-view v-if="!$route.meta.keepAlive"></router-view>
     <div class="footer">
       <router-link class="btn-marketing" :to="{path: '/partner'}" replace>
-        <img src="./image/tab_xiaoshou_nor@2x.png" alt="" v-show="$route.name !== 'partnerMarketing'">
-        <img src="./image/tab_xiaoshou_sel@2x.png" alt="" v-show="$route.name === 'partnerMarketing'">
+        <img src="./image/tab_xiaoshou_nor@2x.png" alt="" v-show="$route.name === 'partnerMine'">
+        <img src="./image/tab_xiaoshou_sel@2x.png" alt="" v-show="$route.name !== 'partnerMine'">
         <span>销售</span>
       </router-link>
       <router-link class="btn-mine" :to="{path: '/partner/mine'}" replace>
@@ -20,69 +20,69 @@
 </template>
 
 <script>
-  import { mapActions, mapGetters } from 'vuex'
+import { mapActions, mapGetters } from 'vuex'
 
-  export default {
-    name: 'home',
-    computed: {
-      ...mapGetters({
-        userInfo: 'partnerMine/userInfo'
-      })
-    },
-    methods: {
-      ...mapActions({
-        fetchUserInfo: 'partnerMine/fetchUserInfo'
-      })
-    },
-    beforeRouteEnter (to, from, next) {
-      next(vm => {
-        const { id } = vm.userInfo
-        if (!id) {
-          vm.fetchUserInfo()
-        }
-      })
-    }
+export default {
+  name: 'home',
+  computed: {
+    ...mapGetters({
+      userInfo: 'partnerMine/userInfo'
+    })
+  },
+  methods: {
+    ...mapActions({
+      fetchUserInfo: 'partnerMine/fetchUserInfo'
+    })
+  },
+  beforeRouteEnter (to, from, next) {
+    next(vm => {
+      const { id } = vm.userInfo
+      if (!id) {
+        vm.fetchUserInfo()
+      }
+    })
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .wrapper {
-    width: 100%;
-  }
+.wrapper {
+  width: 100%;
+}
 
-  .footer {
-    position: fixed;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    z-index: 99;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    width: 100%;
-    border-radius: 10px 10px 0 0;
-    box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.04);
-    background: #fff;
-  }
+.footer {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 99;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 100%;
+  border-radius: 10px 10px 0 0;
+  box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.04);
+  background: #fff;
+}
 
-  .btn-marketing,
-  .btn-mine {
-    flex: 1;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    padding: 4px 0;
+.btn-marketing,
+.btn-mine {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  padding: 4px 0;
 
-    img {
-      width: 29px;
-      height: 28px;
-    }
+  img {
+    width: 29px;
+    height: 28px;
+  }
 
-    span {
-      margin-top: 1px;
-      line-height: 14px;
-      font-size: 10px;
-      color: #999;
-    }
+  span {
+    margin-top: 1px;
+    line-height: 14px;
+    font-size: 10px;
+    color: #999;
   }
+}
 </style>

+ 341 - 0
htmldev/loan/src/views/partner/marketing/backUpIndex.vue

@@ -0,0 +1,341 @@
+<template>
+  <div class="conatainer">
+    <div class="header">
+      <h2 class="title">您好,{{ userInfo.partnerName }}</h2>
+      <router-link
+        :to="{path: '/partner/goods' + '?partnerId=' + userInfo.id + '&partnerName=' + userInfo.partnerName + '&partnerImgUrl=' + userInfo.partnerImgUrl}">
+        <img src="./image/xiaoshou_bg_tuiguang@2x.png" alt="">
+      </router-link>
+    </div>
+    <p class="my-customer">我的客户</p>
+    <div class="better-scroll wrapper" ref="wrapper">
+      <ul>
+        <li class="list" v-for="(item, index) in listData" :key="index">
+          <div class="name-wrap">
+            <div class="avatar">
+              <img :src="item.userHeadImgUrl" alt="">
+            </div>
+            <p class="name">{{ item.orderUserName }}</p>
+          </div>
+          <p class="phone">手机号:{{ item.orderUserPhone }}</p>
+          <div class="loan-info">
+            <p class="label">申请产品:{{ item.orderProduceName }}</p>
+            <p>
+              <span class="label">需求金额:</span>
+              <span class="value">{{ item.orderPrice / 10000}}万元</span>
+            </p>
+          </div>
+          <p class="create-time">申请时间:{{ item.createdAt }}</p>
+          <!--orderFinalStatus:0-进行中 1-成功 2-失败-->
+          <p class="status bg-0" v-if="item.orderFinalStatus === 0">进度:{{ item.orderStatus }}</p>
+          <p class="status bg-1" v-if="item.orderFinalStatus === 1">{{ item.orderStatus }}</p>
+          <p class="status bg-2" v-if="item.orderFinalStatus === 2">{{ item.orderStatus }}</p>
+        </li>
+        <li class="load-status" v-if="listData.length && booFetchData">
+          <p>{{ arrFetchStatus[numFetchStatus] }}</p>
+        </li>
+        <li class="bitmap" v-if="!listData.length && booFetchData">
+          <p>暂无记录</p>
+        </li>
+      </ul>
+    </div>
+  </div>
+</template>
+
+<script>
+import BScroll from 'better-scroll'
+import { Toast } from 'vant'
+import { saleList } from './api'
+import { mapGetters } from 'vuex'
+
+const PAGESIZE = 20
+export default {
+  name: 'marketing',
+  data () {
+    return {
+      pager: {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
+      },
+      listData: [],
+      scroll: null,
+      numFetchStatus: 0,
+      arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
+      booFetchData: false,
+      numPositionY: 0
+    }
+  },
+  activated () {
+    if (!this.$route.meta.isUseCache) {
+      this.pager = {
+        pagenum: 1,
+        pagesize: PAGESIZE,
+        pagecount: 1
+      }
+      this.listData = []
+      this.numFetchStatus = 0
+      this.booFetchData = false
+      this.numPositionY = 0
+      this.funFetch()
+    } else {
+      this.$nextTick(() => {
+        if (this.scroll) {
+          this.scroll.refresh()
+          this.scroll.scrollTo(0, this.numPositionY)
+        }
+      })
+    }
+    this.$nextTick(() => {
+      this.$refreshTitle('销售')
+    })
+  },
+  computed: {
+    ...mapGetters({
+      userInfo: 'partnerMine/userInfo'
+    })
+  },
+  methods: {
+    funFetch () {
+      const vm = this
+      vm.numFetchStatus = 0
+      saleList(vm.pager.pagenum, vm.pager.pagesize).then(response => {
+        if (response.status) {
+          const data = response.data
+          const temp = data.data
+          vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
+          vm.pager.pagenum++
+          vm.booFetchData = true
+          if (vm.pager.pagecount <= 1) {
+            vm.numFetchStatus = 2
+          } else {
+            vm.numFetchStatus = 1
+          }
+          if (temp.length) {
+            vm.listData = vm.listData.concat(temp)
+            vm.$nextTick(() => {
+              if (!vm.scroll) {
+                vm.scroll = new BScroll(vm.$refs.wrapper, {
+                  click: true,
+                  pullUpLoad: {
+                    threshold: -20
+                  },
+                  scrollbar: true
+                })
+                vm.scroll.on('pullingUp', () => {
+                  if (vm.pager.pagenum > vm.pager.pagecount) {
+                    vm.numFetchStatus = 2
+                    return
+                  }
+                  vm.funFetch()
+                })
+              } else {
+                vm.scroll.refresh()
+                vm.scroll.finishPullUp()
+              }
+            })
+          }
+        } else {
+          Toast(response.msg)
+          vm.numFetchStatus = 3
+        }
+      }).catch(() => {
+        Toast('出错啦')
+        vm.numFetchStatus = 3
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.conatainer {
+  position: relative;
+  left: 0;
+  top: 0;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100%;
+}
+
+.header {
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  padding: 24px 0 20px;
+  background: #fff;
+
+  .title {
+    width: 100%;
+    padding-left: 24px;
+    line-height: 33px;
+    font-size: 24px;
+    font-weight: 500;
+    color: #333;
+  }
+
+  img {
+    display: block;
+    width: 343px;
+    height: 88px;
+    margin: 12px 0 0 17px;
+  }
+}
+
+.my-customer {
+  width: 100%;
+  padding-left: 24px;
+  margin: 24px 0 16px;
+  line-height: 25px;
+  font-size: 18px;
+  font-weight: 500;
+  color: #333;
+}
+
+.wrapper {
+  position: relative;
+  width: 100%;
+  height: calc(100vh - 242px);
+  overflow: hidden;
+
+  ul {
+    width: 100%;
+    padding-bottom: 100px;
+  }
+}
+
+.list {
+  position: relative;
+  left: 0;
+  top: 0;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100%;
+  padding: 19px 0 16px;
+  margin-top: 12px;
+  border-radius: 4px;
+  background: #FFF;
+  box-shadow: 0 2px 0px -1px rgba(224, 224, 224, 0.5);
+
+  &:nth-of-type(1) {
+    margin-top: 0;
+  }
+}
+
+.name-wrap {
+  display: flex;
+  align-items: center;
+  width: 331px;
+}
+
+.avatar {
+  width: 25px;
+  height: 25px;
+  margin-right: 13px;
+  border-radius: 50%;
+  overflow: hidden;
+
+  img {
+    display: block;
+    width: 100%;
+  }
+}
+
+.name,
+.phone {
+  line-height: 20px;
+  font-size: 15px;
+  font-weight: 500;
+  color: #333;
+}
+
+.phone {
+  width: 331px;
+  margin-top: 14px;
+}
+
+.loan-info {
+  display: flex;
+  align-items: center;
+  width: 331px;
+  margin-top: 7px;
+
+  p {
+    display: flex;
+    align-items: center;
+
+    &:nth-of-type(2) {
+      margin-left: 17px;
+    }
+  }
+
+  .label {
+    line-height: 20px;
+    font-size: 15px;
+    color: #333;
+  }
+
+  .value {
+    line-height: 20px;
+    font-size: 15px;
+    font-weight: 500;
+    color: #EE0A23;
+  }
+}
+
+.create-time {
+  width: 331px;
+  margin-top: 7px;
+  line-height: 17px;
+  font-size: 12px;
+  color: #999;
+}
+
+.status {
+  position: absolute;
+  right: 16px;
+  top: 16px;
+  z-index: 1;
+  padding: 0 8px;
+  border-radius: 4px;
+  line-height: 22px;
+  font-size: 15px;
+  font-weight: 500;
+  color: #fff;
+
+  &.bg-0 {
+    background: #F39D41;
+  }
+
+  &.bg-1 {
+    background: #53DA6A;
+  }
+
+  &.bg-2 {
+    background: #EE0A23;
+  }
+}
+
+.load-status {
+  margin-top: 12px;
+
+  p {
+    line-height: 20px;
+    font-size: 14px;
+    color: #666;
+    text-align: center;
+  }
+}
+
+.bitmap {
+  p {
+    line-height: 22px;
+    font-size: 16px;
+    font-weight: 500;
+    text-align: center;
+    color: #333;
+  }
+}
+</style>

BIN
htmldev/loan/src/views/partner/marketing/image/bg_hehuoren_zhaomu@2x.png


BIN
htmldev/loan/src/views/partner/marketing/image/bg_xindai_tuiguang@2x.png


+ 0 - 0
htmldev/loan/src/views/partner/mine/image/poster_partner.png → htmldev/loan/src/views/partner/marketing/image/poster_partner.png


BIN
htmldev/loan/src/views/partner/marketing/image/xiaoshou_bg_tuiguang@2x.png


+ 179 - 279
htmldev/loan/src/views/partner/marketing/index.vue

@@ -2,340 +2,240 @@
   <div class="conatainer">
     <div class="header">
       <h2 class="title">您好,{{ userInfo.partnerName }}</h2>
-      <router-link
-        :to="{path: '/partner/goods' + '?partnerId=' + userInfo.id + '&partnerName=' + userInfo.partnerName + '&partnerImgUrl=' + userInfo.partnerImgUrl}">
-        <img src="./image/xiaoshou_bg_tuiguang@2x.png" alt="">
-      </router-link>
+      <p class="nav-wrap">
+        <router-link
+          :to="{path: '/partner/goods' + '?partnerId=' + userInfo.id + '&partnerName=' + userInfo.partnerName + '&partnerImgUrl=' + userInfo.partnerImgUrl}">
+          <img src="./image/bg_xindai_tuiguang@2x.png" alt="">
+        </router-link>
+        <a href="javascript:;" @click="funJumpParterExplain">
+          <img src="./image/bg_hehuoren_zhaomu@2x.png" alt="">
+        </a>
+      </p>
     </div>
-    <p class="my-customer">我的客户</p>
-    <div class="better-scroll wrapper" ref="wrapper">
-      <ul>
-        <li class="list" v-for="(item, index) in listData" :key="index">
-          <div class="name-wrap">
-            <div class="avatar">
-              <img :src="item.userHeadImgUrl" alt="">
-            </div>
-            <p class="name">{{ item.orderUserName }}</p>
-          </div>
-          <p class="phone">手机号:{{ item.orderUserPhone }}</p>
-          <div class="loan-info">
-            <p class="label">申请产品:{{ item.orderProduceName }}</p>
-            <p>
-              <span class="label">需求金额:</span>
-              <span class="value">{{ item.orderPrice / 10000}}万元</span>
-            </p>
-          </div>
-          <p class="create-time">申请时间:{{ item.createdAt }}</p>
-          <!--orderFinalStatus:0-进行中 1-成功 2-失败-->
-          <p class="status bg-0" v-if="item.orderFinalStatus === 0">进度:{{ item.orderStatus }}</p>
-          <p class="status bg-1" v-if="item.orderFinalStatus === 1">{{ item.orderStatus }}</p>
-          <p class="status bg-2" v-if="item.orderFinalStatus === 2">{{ item.orderStatus }}</p>
-        </li>
-        <li class="load-status" v-if="listData.length && booFetchData">
-          <p>{{ arrFetchStatus[numFetchStatus] }}</p>
-        </li>
-        <li class="bitmap" v-if="!listData.length && booFetchData">
-          <p>暂无记录</p>
-        </li>
-      </ul>
+    <div class="my-customer border-bottom-1px">
+      <div class="top">
+        <p class="label">我的客户</p>
+        <p class="nav-wrap">
+          <router-link :class="{'active': $route.name === 'partnerCustomer'}" :to="{path: '/partner'}">客户</router-link>
+          <router-link :class="{'active': $route.name === 'partnerAll'}" :to="{path: '/partner/business'}">合伙人
+          </router-link>
+        </p>
+      </div>
+      <van-search
+        :show-action="true"
+        v-model="searChValue"
+        @search="searchHandle"
+        @clear="clearHandle"
+        placeholder="输入姓名、手机号">
+        <template #action>
+          <span @click="searchHandle">搜索</span>
+        </template>
+      </van-search>
     </div>
+    <keep-alive>
+      <router-view v-if="$route.meta.keepAlive"></router-view>
+    </keep-alive>
+    <router-view v-if="!$route.meta.keepAlive"></router-view>
+    <Poster :posterBg="posterBg"
+            :codeParams="codeParams"
+            ref="myPoster"/>
   </div>
 </template>
 
 <script>
-  import BScroll from 'better-scroll'
-  import { Toast } from 'vant'
-  import { saleList } from './api'
-  import { mapGetters } from 'vuex'
-
-  const PAGESIZE = 20
-  export default {
-    name: 'marketing',
-    data () {
-      return {
-        pager: {
-          pagenum: 1,
-          pagesize: PAGESIZE,
-          pagecount: 1
-        },
-        listData: [],
-        scroll: null,
-        numFetchStatus: 0,
-        arrFetchStatus: ['正在加载,请稍后~', '上拉加载更多', '没有更多了', '出错啦'],
-        booFetchData: false,
-        numPositionY: 0
+import { Search } from 'vant'
+import Poster from '../poster'
+import { mapGetters } from 'vuex'
+
+export default {
+  name: 'marketing',
+  components: {
+    'van-search': Search,
+    Poster
+  },
+  data () {
+    return {
+      posterBg: require('./image/poster_partner.png'),
+      codeParams: {
+        partnerImgUrl: '',
+        partnerName: '',
+        link: '',
+        x: 122,
+        y: 1191,
+        width: 202,
+        height: 192
       }
-    },
-    activated () {
-      if (!this.$route.meta.isUseCache) {
-        this.pager = {
-          pagenum: 1,
-          pagesize: PAGESIZE,
-          pagecount: 1
-        }
-        this.listData = []
-        this.numFetchStatus = 0
-        this.booFetchData = false
-        this.numPositionY = 0
-        this.funFetch()
-      } else {
-        this.$nextTick(() => {
-          if (this.scroll) {
-            this.scroll.refresh()
-            this.scroll.scrollTo(0, this.numPositionY)
-          }
-        })
+    }
+  },
+  mounted () {
+    this.$nextTick(() => {
+      this.$refreshTitle('妥妥推手')
+    })
+  },
+  computed: {
+    ...mapGetters({
+      userInfo: 'partnerMine/userInfo'
+    }),
+    searChValue: {
+      get () {
+        return this.$store.getters['business/searchValue']
+      },
+      set (val) {
+        this.$store.dispatch('business/setSearchValue', val)
       }
+    }
+  },
+  methods: {
+    funJumpParterExplain () {
+      const { partnerImgUrl, partnerName, inviteCode } = this.userInfo
+      this.$set(this.codeParams, 'partnerImgUrl', partnerImgUrl)
+      this.$set(this.codeParams, 'partnerName', partnerName)
+      this.$set(this.codeParams, 'link', `${location.origin}/partner/explain?inviteCode=${inviteCode}`)
       this.$nextTick(() => {
-        this.$refreshTitle('销售')
+        this.$refs.myPoster.createQRCode()
       })
     },
-    computed: {
-      ...mapGetters({
-        userInfo: 'partnerMine/userInfo'
-      })
+    searchHandle () {
+      this.$store.dispatch('business/setIsSearch', 1)
     },
-    methods: {
-      funFetch () {
-        const vm = this
-        vm.numFetchStatus = 0
-        saleList(vm.pager.pagenum, vm.pager.pagesize).then(response => {
-          if (response.status) {
-            const data = response.data
-            const temp = data.data
-            vm.pager.pagecount = Math.ceil(data.count / PAGESIZE)
-            vm.pager.pagenum++
-            vm.booFetchData = true
-            if (vm.pager.pagecount <= 1) {
-              vm.numFetchStatus = 2
-            } else {
-              vm.numFetchStatus = 1
-            }
-            if (temp.length) {
-              vm.listData = vm.listData.concat(temp)
-              vm.$nextTick(() => {
-                if (!vm.scroll) {
-                  vm.scroll = new BScroll(vm.$refs.wrapper, {
-                    click: true,
-                    pullUpLoad: {
-                      threshold: -20
-                    },
-                    scrollbar: true
-                  })
-                  vm.scroll.on('pullingUp', () => {
-                    if (vm.pager.pagenum > vm.pager.pagecount) {
-                      vm.numFetchStatus = 2
-                      return
-                    }
-                    vm.funFetch()
-                  })
-                } else {
-                  vm.scroll.refresh()
-                  vm.scroll.finishPullUp()
-                }
-              })
-            }
-          } else {
-            Toast(response.msg)
-            vm.numFetchStatus = 3
-          }
-        }).catch(() => {
-          Toast('出错啦')
-          vm.numFetchStatus = 3
-        })
-      }
+    clearHandle () {
+      this.$store.dispatch('business/setIsSearch', 1)
     }
   }
+}
 </script>
 
 <style lang="scss" scoped>
-  .conatainer {
-    position: relative;
-    left: 0;
-    top: 0;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    width: 100%;
-  }
-
-  .header {
-    display: flex;
-    flex-direction: column;
-    width: 100%;
-    padding: 24px 0 20px;
-    background: #fff;
-
-    .title {
-      width: 100%;
-      padding-left: 24px;
-      line-height: 33px;
-      font-size: 24px;
-      font-weight: 500;
-      color: #333;
-    }
-
-    img {
-      display: block;
-      width: 343px;
-      height: 88px;
-      margin: 12px 0 0 17px;
-    }
-  }
-
-  .my-customer {
+.conatainer {
+  position: relative;
+  left: 0;
+  top: 0;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  width: 100%;
+}
+
+.header {
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  padding: 24px 0 22px;
+
+  .title {
     width: 100%;
     padding-left: 24px;
-    margin: 24px 0 16px;
-    line-height: 25px;
-    font-size: 18px;
+    line-height: 33px;
+    font-size: 24px;
     font-weight: 500;
     color: #333;
   }
 
-  .wrapper {
-    position: relative;
-    width: 100%;
-    height: calc(100vh - 242px);
-    overflow: hidden;
-
-    ul {
-      width: 100%;
-      padding-bottom: 100px;
-    }
-  }
-
-  .list {
-    position: relative;
-    left: 0;
-    top: 0;
+  .nav-wrap {
     display: flex;
-    flex-direction: column;
     align-items: center;
-    width: 100%;
-    padding: 19px 0 16px;
+    padding-left: 17px;
     margin-top: 12px;
-    border-radius: 4px;
-    background: #FFF;
-    box-shadow: 0 2px 0px -1px rgba(224, 224, 224, 0.5);
 
-    &:nth-of-type(1) {
-      margin-top: 0;
+    a:nth-of-type(2) {
+      margin-left: 18px;
     }
   }
 
-  .name-wrap {
-    display: flex;
-    align-items: center;
-    width: 331px;
+  img {
+    display: block;
+    width: 163px;
+    height: 88px;
   }
+}
 
-  .avatar {
-    width: 25px;
-    height: 25px;
-    margin-right: 13px;
-    border-radius: 50%;
-    overflow: hidden;
+.my-customer {
+  width: 100%;
+  margin-bottom: 12px;
+  background: #fff;
 
-    img {
-      display: block;
-      width: 100%;
-    }
+  .top {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 10px 40px 15px 24px;
+    @include border-bottom-1px(#E0E0E0);
   }
 
-  .name,
-  .phone {
-    line-height: 20px;
-    font-size: 15px;
+  .label {
+    line-height: 25px;
+    font-size: 18px;
     font-weight: 500;
     color: #333;
   }
 
-  .phone {
-    width: 331px;
-    margin-top: 14px;
-  }
-
-  .loan-info {
+  .nav-wrap {
     display: flex;
     align-items: center;
-    width: 331px;
-    margin-top: 7px;
-
-    p {
-      display: flex;
-      align-items: center;
-
-      &:nth-of-type(2) {
-        margin-left: 17px;
-      }
-    }
-
-    .label {
-      line-height: 20px;
-      font-size: 15px;
-      color: #333;
-    }
-
-    .value {
-      line-height: 20px;
-      font-size: 15px;
-      font-weight: 500;
-      color: #EE0A23;
-    }
   }
 
-  .create-time {
-    width: 331px;
-    margin-top: 7px;
-    line-height: 17px;
-    font-size: 12px;
-    color: #999;
-  }
-
-  .status {
-    position: absolute;
-    right: 16px;
-    top: 16px;
-    z-index: 1;
-    padding: 0 8px;
-    border-radius: 4px;
+  a {
+    position: relative;
+    left: 0;
+    top: 0;
+    padding: 0 9px;
     line-height: 22px;
-    font-size: 15px;
+    font-size: 16px;
     font-weight: 500;
-    color: #fff;
+    color: #333;
 
-    &.bg-0 {
-      background: #F39D41;
+    &:nth-of-type(2) {
+      margin-left: 27px;
     }
 
-    &.bg-1 {
-      background: #53DA6A;
+    &.active:after {
+      position: absolute;
+      left: 0;
+      bottom: -2px;
+      display: block;
+      content: '';
+      width: 100%;
+      height: 2px;
+      background: linear-gradient(90deg, #DBC3A9 0%, #C7AB8A 100%);
+      border-radius: 2px;
     }
+  }
+}
 
-    &.bg-2 {
-      background: #EE0A23;
-    }
+::v-deep .van-search {
+  width: 327px;
+  height: 40px;
+  padding-left: 0;
+  margin: 10px auto 11px;
+
+  .van-search__content {
+    border-radius: 20px;
+    background: #F2F2F2;
   }
 
-  .load-status {
-    margin-top: 12px;
+  .van-cell {
+    align-items: center;
+  }
 
-    p {
-      line-height: 20px;
-      font-size: 14px;
-      color: #666;
-      text-align: center;
-    }
+  .van-icon-search {
+    font-size: 22px;
+    color: #DDDDDD;
   }
 
-  .bitmap {
-    p {
-      line-height: 22px;
-      font-size: 16px;
-      font-weight: 500;
-      text-align: center;
-      color: #333;
+  .van-field__control {
+    line-height: 17px;
+    font-size: 12px;
+    color: #333;
+    overflow: hidden;
+    background: transparent;
+    -webkit-text-fill-color: #333;
+    opacity: 1;
+
+    &::-webkit-input-placeholder {
+      color: #999;
+      -webkit-text-fill-color: #999;
+      opacity: 1;
     }
   }
+}
 </style>

+ 4 - 51
htmldev/loan/src/views/partner/mine/index.vue

@@ -61,46 +61,25 @@
         </span>
         <a class="value-wrap" href="javascript:;">
           <!--todo 专属客服名字及电话号码-->
-          <i class="label" @click="funJumpDetail"></i>
+          <i class="label"></i>
           <img class="icon-phone" src="./image/btn_phone@2x.png" alt="">
         </a>
       </a>
     </div>
-    <Poster :posterBg="posterBg"
-            :codeParams="codeParams"
-            ref="myPoster"/>
   </div>
 </template>
 
 <script>
-import Clipboard from 'clipboard'
 import { Toast } from 'vant'
-import Poster from '../poster'
 import { mapGetters } from 'vuex'
 
 export default {
   name: 'mine',
-  components: {
-    Poster
-  },
   data () {
-    return {
-      clipboardJs: null,
-      posterBg: require('./image/poster_partner.png'),
-      codeParams: {
-        partnerImgUrl: '',
-        partnerName: '',
-        link: '',
-        x: 122,
-        y: 1191,
-        width: 202,
-        height: 192
-      }
-    }
+    return {}
   },
   async mounted () {
     await this.$nextTick()
-    this.clipboardJs = new Clipboard('.btn-copy')
   },
   activated () {
     if (!this.$route.meta.isUseCache) {}
@@ -115,43 +94,17 @@ export default {
     })
   },
   methods: {
-    funJumpDetail () {
-      const { partnerImgUrl, partnerName, inviteCode } = this.userInfo
-      this.$set(this.codeParams, 'partnerImgUrl', partnerImgUrl)
-      this.$set(this.codeParams, 'partnerName', partnerName)
-      this.$set(this.codeParams, 'link', `${location.origin}/partner/explain?inviteCode=${inviteCode}`)
-      this.$nextTick(() => {
-        this.$refs.myPoster.createQRCode()
-      })
-    },
     funJumpCompact () {
       if (!this.userInfo.contractEndTime) {
         Toast('合同不存在')
         return
       }
       this.$router.push({ path: '/partner/compact' })
-    },
-    funCopyText () {
-      const { inviteCode } = this.userInfo
-      if (!inviteCode) {
-        Toast('没有可复制的内容')
-        return
-      }
-      // 不支持点击复制
-      if (!(Clipboard.isSupported())) {
-        Toast('不支持点击复制')
-        return
-      }
-      this.clipboardJs.text = () => inviteCode
-      Toast('复制成功')
     }
   },
-  beforeDestroy () {
-    this.clipboardJs.destroy()
-  },
   beforeRouteLeave (to, from, next) {
-    if (['partnerMarketing'].includes(to.name)) {
-      // from.meta.isUseCache = true
+    if (['partnerWallet', 'partnerSale', 'partnerCompact'].includes(to.name)) {
+      from.meta.isUseCache = true
     }
     next()
   }

+ 0 - 17
htmldev/loan/src/views/partner/privacy/index.vue

@@ -1,17 +0,0 @@
-<template>
-  <div>隐私协议</div>
-</template>
-
-<script>
-  export default {
-    name: 'privacy',
-    async mounted () {
-      await this.$nextTick()
-      this.$refreshTitle('隐私协议')
-    }
-  }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 37
htmldev/loan/src/views/partner/sign/index.vue

@@ -1,37 +0,0 @@
-<template>
-  <Main :numPositionY="numPositionY"
-        ref="myOrder"></Main>
-</template>
-
-<script>
-  import Main from '../all/components/main'
-
-  export default {
-    name: 'all',
-    components: {
-      Main
-    },
-    data () {
-      return {
-        numPositionY: 0
-      }
-    },
-    activated () {
-      if (!this.$route.meta.isUseCache) {
-        this.numPositionY = 0
-      }
-      this.$route.meta.isUseCache = false
-    },
-    beforeRouteLeave (to, from, next) {
-      if (['partnerAll', 'partnerUnsigned', 'partnerSale'].includes(to.name)) {
-        from.meta.isUseCache = true
-      }
-      this.numPositionY = this.$refs.myOrder.scroll ? this.$refs.myOrder.scroll.y : 0
-      next()
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-
-</style>

+ 0 - 37
htmldev/loan/src/views/partner/unsigned/index.vue

@@ -1,37 +0,0 @@
-<template>
-  <Main :numPositionY="numPositionY"
-        ref="myOrder"></Main>
-</template>
-
-<script>
-  import Main from '../all/components/main'
-
-  export default {
-    name: 'all',
-    components: {
-      Main
-    },
-    data () {
-      return {
-        numPositionY: 0
-      }
-    },
-    activated () {
-      if (!this.$route.meta.isUseCache) {
-        this.numPositionY = 0
-      }
-      this.$route.meta.isUseCache = false
-    },
-    beforeRouteLeave (to, from, next) {
-      if (['partnerAll', 'partnerSign', 'partnerSale'].includes(to.name)) {
-        from.meta.isUseCache = true
-      }
-      this.numPositionY = this.$refs.myOrder.scroll ? this.$refs.myOrder.scroll.y : 0
-      next()
-    }
-  }
-</script>
-
-<style lang="scss" scoped>
-
-</style>