Browse Source

增供应商转移与分配

wangcz 7 years ago
parent
commit
60a4b485a5

+ 2 - 1
app.html

@@ -49,6 +49,7 @@
       var s = document.getElementsByTagName("script")[0];
       s.parentNode.insertBefore(bp, s);
 
+/**
       // 用户浏览统计
       <!-- Piwik -->
         var u="//piwik.ubtob.com/";
@@ -75,7 +76,7 @@
         w.addEventListener(resizeEvt, recalc, false)
         d.addEventListener('DOMContentLoaded', recalc, false)
       }
-*/
+**/
     })(window, document)
   </script>
 </head>

+ 6 - 5
nuxt.config.js

@@ -156,6 +156,7 @@ module.exports = {
     '/sale/tender/**': uasUrl,
     '/sale/sample/**': uasUrl,
     '/sale/**': uasUrl,
+    '/vendorDistribute/**': uasUrl,
     '/tender/purc/**': uasUrl,
     '/tender/getUnreadIds/**': uasUrl,
     '/token**': uasUrl,
@@ -164,9 +165,6 @@ module.exports = {
     '/vendor/customer/**': uasUrl,
     '/vendor/info/**': uasUrl,
     '/vendorPerformanceAssess/info/**': uasUrl,
-    // 权限管理
-    '/account/user/**': uasUrl,
-    '/account/role/**': uasUrl,
     '/vendor/**': baseUrl,
     '/vendor**': baseUrl,
     // 账户中心统一前缀
@@ -221,7 +219,7 @@ module.exports = {
     '/goods/**': baseUrl,
     // 公共物料匹配物料名称
     '/productuser/**': materialUrl,
-    '/account/**': baseUrl,
+    // '/account/**': baseUrl,
     '/internalmessage-service/**': baseUrl,
     '/wx/**': baseUrl,
     '/messages**': messageUrl,
@@ -233,6 +231,9 @@ module.exports = {
     // 代办事项
     '/adminToDo/**': baseUrl,
     // 账户中心获取申请绑定列表接口
-    '/api/userspace/apply/**': ssoUrl
+    '/api/userspace/apply/**': ssoUrl,
+    // 权限管理
+    '/account/user/**': uasUrl,
+    '/account/role/**': uasUrl
   }
 }

+ 219 - 7
pages/mobile/center/user/supplier/index.vue

@@ -9,17 +9,16 @@
         <div v-if="resourceList.content && resourceList.content.length > 0">
           <div class="customer-btob-wrapper-list" v-for="item in resourceList.content">
             <div class="customer-btob-wrapper-content">
-              <div class="list-item"><span>UU:</span>{{item.vendorEnterprise.uu}}</div>
               <div class="list-item"><span>供应商名称:</span><a>{{item.vendorEnterprise.enName}}</a></div>
-              <div class="list-item"><span>简称:</span><a>{{item.vendorEnterprise.enShortname}}</a></div>
               <div class="address clearfix"><span class="fl">地址:</span><div class="fl" style="width:5.6rem">{{item.vendorEnterprise.enAddress}}</div></div>
               <div class="list-item"><span>联系人:</span>{{item.vendorUser.userName}}</div>
-              <div class="list-item"><span>联系人电话:</span>{{item.vendorUser.userTel}}</div>
+              <div class="list-item"><span>供应商电话:</span>{{item.vendorUser.userTel}}</div>
+              <div class="list-item"><span>采购对接人:</span>{{item.saleContacts ? item.saleContacts.toString() : '-'}}</div>
+            </div>
+            <div class="customer-btob-wrapper-bottom clearfix">
+              <div @click="addUserInfo(item)"><i class="iconfont icon-allocation"></i>分配</div>
+              <div @click="transferUserInfo(item)"><i class="iconfont icon-zhuanyi"></i>转移</div>
             </div>
-            <!--<div class="customer-btob-wrapper-bottom clearfix">-->
-              <!--<div @click="addUserInfo(item)"><i class="iconfont icon-allocation"></i>分配</div>-->
-              <!--<div @click="transferUserInfo(item)"><i class="iconfont icon-zhuanyi"></i>转移</div>-->
-            <!--</div>-->
           </div>
         </div>
         <empty-status
@@ -29,6 +28,49 @@
         ></empty-status>
       </div>
     </div>
+    <div class="mobile-modal" v-if="modalObj.showModal" @click="closeModal()">
+      <div class="mobile-modal-box mobile-modal-wrapper" @click="stopPropagation($event)">
+        <div class="mobile-modal-header">{{modalObj.type === 'add' ? '客户分配' : '权限转移'}}<i @click="closeModal()" class="icon-guanbi iconfont"></i></div>
+        <div ref="mobileModalBox" class="mobile-scroll-wrap">
+          <div>
+            <div class="customer-modal-wrapper">
+              <div class="search-content mi-search-content">
+                <input type="text" v-model="modalObj.keyword" @input="modalObjonFilter" placeholder="输入用户UU">
+                <span @click="modalObjonFilter"><i class="iconfont icon-sousuo"></i></span>
+              </div>
+              <div class="customer-modal-content">
+                <div class="customer-modal-content-title">
+                  <span class="item inline-block"  style="width: 28%;" @click="chooseAll()"  v-if="modalObj.type === 'add'">
+                    <label class="mobile-cart-check" :class="{'active': !Allcheck}"></label>
+                    全选
+                  </span>
+                  <span class="item inline-block"  style="width: 28%;height:2px" v-else>
+
+                  </span>
+                  <span class="item inline-block" style="width: 32%;">用户UU</span>
+                  <span class="item inline-block" style="width: 40%;text-align: center">用户名称</span>
+                </div>
+                <div class="customer-modal-content-list" v-for="item in modalObj.showModalList" v-if="item.userUU !== thisUser.userUU">
+                  <span class="item inline-block" style="width: 28%;" @click="checkItem(item)">
+                    <label class="mobile-cart-check" :class="{'active': item.distribute}" v-if="modalObj.type === 'add'"></label>
+                    <label class="mobile-cart-check" :class="{'active': item.transfer}" v-else></label>
+                    <!--<label class="mobile-cart-check" :class="{'active': item.distribute}"></label>-->
+                  </span>
+                  <span class="item inline-block" style="width: 32%;">{{item.userUU}}</span>
+                  <span class="item inline-block" style="width: 40%;text-align: center;">{{item.userName}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="customer-modal-bottom clearfix">
+            <div class="fl" @click="answerModal()">确定</div>
+            <div class="fr" @click="closeModal()">取消</div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <remind-box :title="collectResult" :timeoutCount="timeoutCount"></remind-box>
     <pull-up :fixId="'mobile-customer-btob'" :allPage="allPage" :page="filterParams.page" @pullUpAction="onPullUpAction"></pull-up>
   </div>
 </template>
@@ -47,21 +89,136 @@
           count: 10,
           page: 1
         },
+        collectResult: '',
+        timeoutCount: 0,
         resourceList: {
           content: []
         },
         enabled: '',
+        modalObj: {
+          customer: {},
+          showModal: false,
+          showModalList: [], // 筛选完的数据
+          type: 'add', // chance
+          originList: [] // 原数据
+        },
+        transfer: false,
         thisUser: {}
       }
     },
     created() {
+      this.$http.get('/account/role/currentRole').then(res => {
+        this.thisUser = this.$store.state.option.user.data
+        this.enabled = res.data.count > 0 || this.thisUser.sys
+      })
       this.setSelect()
     },
 
     methods: {
+      async answerModal() {
+        if (this.modalObj.type !== 'add') {
+          if (this.modalObj.customer.vendorEnterprise.uu) {
+            // 当前用户是管理员时
+            if (this.thisUser.sys) {
+              this.$http.post(`/vendorDistribute/bindUserToVendor/${this.modalObj.customer.id}`, this.modalObj.originList).then(data => {
+                this.onMind('转移成功!')
+                this.closeModal()
+              }, err => {
+                this.onMind(err.data)
+                this.closeModal()
+              })
+            } else {
+              this.onMind('您没有权限转移!')
+            }
+          } else {
+            this.closeModal()
+          }
+        } else {
+          this.$http.post(`/vendorDistribute/bindVendor/${this.modalObj.customer.id}`, this.modalObj.originList).then(res => {
+            this.onMind('分配成功!')
+            this.closeModal()
+          }).catch(err => {
+            this.onMind('保存失败!')
+            this.closeModal()
+          })
+        }
+      },
+      chooseAll() {
+        let _str = 'distribute'
+        if (this.modalObj.type !== 'add') {
+          _str = 'transfer'
+        }
+        if (!this.Allcheck) {
+          this.modalObj.showModalList.forEach(item => {
+            item[_str] = false
+          })
+          return
+        }
+        this.modalObj.showModalList.forEach(item => {
+          item[_str] = true
+        })
+      },
+      checkItem(item) {
+        if (this.modalObj.type !== 'add') {
+          if (this.$store.state.option.user.data.sys) { // 管理员操作
+            item.transfer = !item.transfer
+            this.modalObj.originList.forEach(userInfo => {
+              if (this.$store.state.option.user.data.userUU === item.userUU && item.transfer) {
+                this.transfer = true
+              }
+              if (item.userUU !== userInfo.userUU) {
+                userInfo.transfer = false
+              }
+            })
+          } else if (this.transfer) { // 被管理员转移权限的非管理员操作
+            item.transfer = !item.transfer
+            this.modalObj.originList.forEach(userInfo => {
+              if (item.userUU !== userInfo.userUU) {
+                userInfo.transfer = false
+              } else {
+                userInfo.transfer = true
+              }
+            })
+          } else { // 被分配客户的用户
+            item.transfer = !item.transfer
+            this.modalObj.originList.forEach(userInfo => {
+              if (item.userUU !== userInfo.userUU) {
+                userInfo.transfer = false
+              } else {
+                userInfo.transfer = true
+              }
+            })
+          }
+        } else {
+          item.distribute = !item.distribute
+        }
+      },
+      closeModal() {
+        this.modalObj.showModal = false
+        this.initScroll.destroy()
+        this.initScroll = null
+      },
+      modalObjonFilter() {
+        let _arr = []
+        this.modalObj.originList.forEach(item => {
+          if (item.userUU.toString().indexOf(this.modalObj.keyword) > -1) {
+            _arr.push(item)
+          }
+        })
+        this.modalObj.showModalList = _arr
+      },
+      init () {
+        this.$nextTick(() => {
+          this._initscroll()
+        })
+      },
       onFilter() {
         this.setSelect(true)
       },
+      onMind(str) {
+        this.collectResult = str
+        this.timeoutCount++
+      },
       onPullUpAction() {
         this.filterParams.page++
         this.setSelect()
@@ -85,11 +242,66 @@
         }
         this.resourceList = data
         data = null
+      },
+      // 分配
+      async addUserInfo(customer) {
+        this.modalObj.type = 'add'
+        this.modalObj.customer = customer
+        this.$http.post(`/vendorDistribute/${customer.id}`).then(res => {
+          customer.enTransfer = res.data.result
+          if (this.enabled || customer.enTransfer) {
+            this.$http.post(`/account/user/customer/${customer.vendorEnterprise.uu}`).then(data => {
+              customer.userinfos = data.data
+              this.modalObj.showModal = true
+              this.modalObj.showModalList = customer.userinfos
+              this.modalObj.originList = customer.userinfos
+              this.init()
+            })
+          } else {
+            this.onMind('您没有为当前客户分配用户的权限!')
+          }
+        })
+      },
+      // 转移
+      transferUserInfo(customer) {
+        this.modalObj.type = 'chance'
+        this.modalObj.customer = customer
+        this.$http.post(`/vendorDistribute/${customer.id}`).then(res => {
+          customer.enTransfer = res.data.result
+          if (this.enabled || customer.enTransfer) {
+            this.$http.get('/authentication').then(res => {
+              this.thisUser = res.data
+            })
+            this.$http.post(`/account/user/customer/${customer.vendorEnterprise.uu}`).then(data => {
+              customer.userinfos = data.data
+              customer.userinfos.forEach(user => {
+                if (this.$store.state.option.user.data.userUU === user.userUU && user.transfer) {
+                  this.transfer = true
+                }
+              })
+              this.modalObj.showModal = true
+              this.modalObj.showModalList = customer.userinfos
+              this.modalObj.originList = customer.userinfos
+              this.init()
+            })
+          } else {
+            this.onMind('您没有为当前客户分配用户的权限!')
+          }
+        })
       }
     },
     computed: {
       allPage() {
         return this.resourceList.totalPage
+      },
+      Allcheck() {
+        let _str = 'distribute'
+        if (this.modalObj.type !== 'add') {
+          _str = 'transfer'
+        }
+        return this.modalObj.showModalList.some(item => {
+          return item[_str] === false
+        })
       }
     },
     components: {

+ 2 - 2
pages/mobile/center/vendor/customer/index.vue

@@ -24,8 +24,8 @@
               <div class="address clearfix"><span class="fl">地址:</span><div class="fl" style="width:5.6rem">{{item.myEnterprise.enAddress}}</div></div>
               <div class="list-item"><span>客户联系人:</span>{{item.myUser.userName}}</div>
               <div class="list-item"><span>客户电话:</span>{{item.myUser.userTel}}</div>
-              <div class="list-item"><span>业务对接人:</span>
-                <span v-for="(names, key) in item.myContacts">{{names.userName}}{{item.myContacts.length - 1 > key ? ',' : ''}}</span>
+              <div class="list-item"><span>业务对接人:</span>{{item.purchaseContacts ? item.purchaseContacts.toString() : '-'}}
+                <!--<span v-for="(names, key) in item.myContacts">{{names.userName}}{{item.myContacts.length - 1 > key ? ',' : ''}}</span>-->
               </div>
             </div>
             <div class="customer-btob-wrapper-bottom clearfix">