#
whycq
2023-10-10 155f2b80f2a9b6f900c73f6e4461e9cebb7cd028
pages/business/cstmr/cstmrDetails.vue
@@ -30,12 +30,30 @@
            <view class="list-item1">修改时间</view><view class="list-item2 color-main">{{cstmr.updateTime$}}</view>
         </view>
         <view class="container">
            <view><y-title title="跟进人"></y-title></view><view></view><view><uni-icons type="plus" size="20" color="#55aaff"></uni-icons></view>
            <view><y-title title="跟进人"></y-title></view><view></view><view><uni-icons @click="addPerson()" type="plus" size="20" color="#55aaff"></uni-icons></view>
            <view class="list" v-for="(item,index) in followers" :key="index">
               <view class="list-left">{{item.userName}}</view>
               <view class="list-right"><button size="mini" style="float: right;" type="warn" @click="removeFollowers(item.userId)">移除</button></view>
            </view>
            <view class="list-none" v-show="followers.length == 0">
               <text>暂无跟进人</text>
            </view>
         </view>
         
      </scroll-view>
      <view class="foot">
         <button>删除</button>
         <button  size="mini" type="warn" @click="del(id)">删除</button>
      </view>
      <view>
         <!-- 输入框示例 -->
         <uni-popup ref="inputDialog" type="dialog">
            <uni-popup-dialog ref="inputClose" mode="input" title="添加跟进人" value="对话框预置提示内容!"
               placeholder="请输入内容" @confirm="confirm">
                  <uni-combox :candidates="addFollower.followers" placeholder="请选择"
                  v-model="addFollower.follower" @input="autoLoad('follower',addFollower.follower)"></uni-combox>
            </uni-popup-dialog>
         </uni-popup>
      </view>
   </view>
</template>
@@ -44,20 +62,30 @@
   export default {
      data() {
         return {
            id: '',
            baseUrl: '',
            id: 0,
            cstmr: {
               name: '河北君邦乳业有限公司',
               tel: '15067665399',
               addr: '河北省邯郸市君邦乳业有限公司',
               cstman: '朱明忠'
            }
               id: '',
               name: '',
               tel: '',
               addr: '',
               cstman: ''
            },
            addFollower: {
               follower: '',
               followers: '',
               followerList: []
            },
            followers: [],
            cstmrId: ''
         }
      },
      onLoad(option) { 
         this.id = option.id
         this.baseUrl = uni.getStorageSync('baseUrl')
         this.init()
         this.autoLoad('follower','')
         setTimeout(()=>{
            this.getFollowers()
         },500)
      },
      methods: {
         init() {
@@ -69,7 +97,120 @@
               success(res) {
                  res = res.data
                  that.cstmr = res.data
                  that.cstmrId = that.cstmr.id
               }
            })
         },
         del(e) {
            let that = this
            e = Number(e)
            uni.request({
               url: that.baseUrl + '/cstmr/delete/one/' + e,
               header: {'token' : uni.getStorageSync('token'),
               },
               method: 'GET',
               success(res) {
                  console.log(res);
                  res = res.data
                  if (res.code === 200) {
                     uni.navigateBack()
                  } else if (res.code === 403) {
                     uni.showToast({title: res.msg, icon: "none", position: 'top'})
                     setTimeout(() => {
                        uni.reLaunch({
                           url: '../../login/login'
                        });
                     }, 1000);
                  } else {
                     uni.showToast({title: res.msg, icon: "none",position: 'top'})
                  }
               }
            })
         },
         addPerson() {
            this.$refs.inputDialog.open()
         },
         // 确认选择工作人
         confirm() {
            let that = this
            var followerId
            var followerList = that.addFollower.followerList
            for (var i = 0;i < followerList.length; i++) {
               if (followerList[i].name == this.addFollower.follower) {
                  followerId =followerList[i].value
               }
            }
            uni.request({
               url: that.baseUrl + '/cstmr/followers/add/json',
               header:{'token':uni.getStorageSync('token'),
                  // 'content-type':'application/x-www-form-urlencoded',
                  },
               data: {
                  cstmrId: that.cstmrId,
                  followerIds:followerId},
               method: 'POST',
               success(result) {
                  var res = result.data
                  that.getFollowers()
               }
            })
            this.addFollower.follower = ''
         },
         // 工作人列表
         autoLoad(type,condition) {
            let that = this
            that.addFollower.followers = []
            that.addFollower.followerList = []
            uni.request({
               url: that.baseUrl + '/user/all/get/kv',
               header:{'token':uni.getStorageSync('token')},
               data: {condition:condition},
               method: 'POST',
               success(result) {
                  var res = result.data
                  if (res.code === 200) {
                     var element;
                     if (type == 'follower') {
                        for(element of res.data) {
                           that.addFollower.followers.push(element.name)
                           that.addFollower.followerList.push(element)
                        }
                        return
                     }
                  }
               }
            })
         },
         getFollowers() {
            let that = this
            uni.request({
               url: that.baseUrl + '/cstmr/followers/table/auth',
               header:{'token':uni.getStorageSync('token')},
               data: {cstmrId:that.cstmrId},
               method:'GET',
               success(res) {
                  res = res.data
                  that.followers = res.data
               }
            })
         },
         removeFollowers(userId) {
            let that = this
            uni.request({
               url: that.baseUrl + '/cstmr/followers/remove/auth',
               header:{
                  'token':uni.getStorageSync('token'),
                  'content-type': 'application/x-www-form-urlencoded'
               },
               data: {
                  cstmrId:that.cstmrId,
                  userId: userId
                  },
               method:'POST',
               success(res) {
                  res = res.data
                  that.getFollowers()
               }
            })
         }
@@ -81,7 +222,7 @@
   .header {
      width: auto;
      min-height: 110rpx;
      background-color: #f8f8f8;
      background-color: #fff;
      padding: 30px 20px 10px 20px;
   }
   .cstmr-name {
@@ -105,13 +246,13 @@
   .container {
      margin-top: 10px;
      padding: 10rpx 20rpx 0 20rpx;
      background-color: #f8f8f8;
      background-color: #fff;
      display: grid;
      grid-template-columns: 1fr 3fr;
   }
   .container:last-child {
      grid-template-columns: 10fr 10fr 1fr;
      margin-bottom: 100rpx;
      grid-template-columns: 5fr 5fr 2fr;
      margin-bottom: 120rpx;
   }
   .list-item1 {
      min-height: 45rpx;
@@ -129,9 +270,43 @@
   }
   .foot {
      position: fixed;
      /* display: flex; */
      width: 100%;
      min-height: 100rpx;
      bottom: 0;
      margin-bottom: 0;
      background-color: #fff;
      border-top: 1px solid #efefef;
      display: flex;
      align-items: center;
   }
   .list {
      min-height: 60rpx;
      margin-top: 20rpx;
      grid-column: 1 / 10;
      display: grid;
      grid-template-columns: 1fr 1fr;
      position: relative;
   }
   .list-left {
      min-height: 60rpx;
      line-height: 60rpx;
      padding-left: 20rpx;
      color: #55aaff
   }
   .list-right {
      min-height: 60rpx;
      line-height: 60rpx;
      /* background-color: #222; */
      padding-right: 30rpx;
   }
   .list-none {
      min-height: 60rpx;
      margin-top: 20rpx;
      text-align: center;
      /* background-color: #303133; */
      color: #b1b3b8;
      grid-column: 1 / 10;
      display: grid;
      position: relative;
   }
</style>