gx
queenwuli
2021-01-25 c4246ca910f28014efaace64ebf92f47a673a9cf
hive-app/pages/workbench/followRecords/index.vue
@@ -1,6 +1,6 @@
<template>
   <!-- 跟进记录 -->
   <view class="container" @click="isShowComments = false">
   <view class="container">
      <view>
         <h-tabs
            class="tab"
@@ -41,11 +41,11 @@
            <text>订单:{{item.orderAbstract}}</text>
         </view>
         <view class="right mt-5">
            <text class="iconfont" :class="item.zans && item.zans.indexOf(userInfo.id)>-1?'red iconxin1':'iconxin2'" @click="thumbsUp(item)"></text>
            <text class="iconfont" :class="item.zans && item.zans.indexOf(userInfo.id)>-1?'blue iconlove-b':'iconlove-b1'" @click="thumbsUp(item)"></text>
            <text class="iconfont iconliuyan1 ml-15"  @click.stop="showComment(item.id)"></text>
         </view>
         <view class="content-row-notes flex align-center blue" v-if="item.zanUsers && item.zanUsers.length">
            <text class="iconfont iconxin2 mr-10"></text>
            <text class="iconfont iconlove-b1 mr-10"></text>
            <text v-for="(op, i) in item.zanUsers">{{op.suName}}<text v-if="i!=item.zanUsers.length-1">,</text></text>
         </view>
         <view class="content-row-notes blue" v-if="item.followupComments && item.followupComments.length">
@@ -55,10 +55,13 @@
      <view v-if="list.length">
         <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more>
      </view>
      <view v-if="isShowComments" class="message-row" @click.stop="">
         <input type="text" v-model="comment" cursor-spacing="10" :focus="isShowComments" class="message-input" placeholder="评论" placeholder-class="placeholder"/>
         <button class="green-btn message-btn" :disabled="!comment" @click="addFollowupComment">发送</button>
      </view>
      <no-record :isShow="!list.length" txt="暂无跟进记录"></no-record>
      <uni-popup ref="commentEl" type="bottom" :isShowMask="false">
         <view class="message-row">
            <input type="text" v-model="comment"  :focus="true" class="message-input" placeholder="评论" placeholder-class="placeholder"/>
            <button class="blue-btn message-btn" :disabled="!comment" @click="addFollowupComment">发送</button>
         </view>
      </uni-popup>
      <fillter :isShow="isShowFilter" :staffList="staffList" :vipList="vipList" @reset="resetFilter" @change="changeFilter"></fillter>
   </view>
</template>
@@ -67,8 +70,10 @@
   import HTabs from "@/components/liuyuno-tabs/liuyuno-tabs.vue";
   import fillter from './filter'
   import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
   import uniPopup from '../../../components/uni-popup/uni-popup'
   export default {
      components: {
         uniPopup,
          HTabs,
         fillter,
         uniLoadMore
@@ -92,7 +97,6 @@
         type: 1,
         list: [],
         imgIndex: 0,
         isShowComments:false,
         isShowFilter: false,
         pageNum: 0,
         loadStatus: 'more',
@@ -106,23 +110,39 @@
        }  
      },
      onNavigationBarButtonTap(e){
         if(e.index==0){
         if(e.width && e.index==0){
            uni.navigateTo({
               url:"./addRecord"
            })
            this.isShowFilter = false;
         }
         if(e.index==1){
            this.isShowFilter = !this.isShowFilter;
         }
      },
      onLoad() {
      onLoad(options) {
         if(options.selectInfo){
            this.vipList.push(JSON.parse(options.selectInfo))
         }
         this.getUserInfo()
         this.reloadList()
         // 判断权限
         // #ifdef APP-PLUS
         if(!this.$utils.hasPermission('gjjl.add')){
            let webView = this.$mp.page.$getAppWebview();
            webView.setTitleNViewButtonStyle(0, {
                width: 0,
            });
         }
         // #endif
      },
      onShow() {
         this.reloadList(true)
      },
      onPullDownRefresh(){
         this.reloadData();
         this.reload();
         let timer = setTimeout(function () {
            uni.startPullDownRefresh();
            uni.stopPullDownRefresh();
            clearTimeout(timer);
            timer = null;
         }, 800);
@@ -137,10 +157,37 @@
               this.userInfo = roleInfo;
            }
         },
         reloadList(){
         // 重新加载数据, 重置分页参数
         reload(){
            this.pageNum = 0;
            this.loadStatus = 'more';
            this.loadList(true)
         },
         // 重新加载数据, 不重置分页参数
         reloadList(isNeedAdd){
            if(!this.list.length){
               this.loadList();
               return;
            }
            let staffIds = this.staffList.map((item) => {
               return item.id;
            });
            let vipIds = this.vipList.map((item) => {
               return item.id;
            });
            this.$httpUtils.request('/api/followup/findFollowup', {
               startTime: this.startTime,
               endTime: this.endTime,
               limit: isNeedAdd?this.list.length+1:this.list.length,
               offset: 0,
               queryType: this.type,
               staffIds: staffIds,
               vipIds: vipIds
            }, 'POST').then((res) => {
               if(res.status == 200){
                  this.list = res.rows
               }
            })
         },
         loadList(isRest){
            if(this.loadStatus!=='more'){
@@ -166,7 +213,7 @@
                  if(result.length < 10){
                     this.loadStatus = 'noMore';
                  } else {
                     this.pageNum ++ ;
                     this.pageNum = this.pageNum + 10;
                     this.loadStatus = 'more';
                  }
                  if(isRest){
@@ -179,7 +226,7 @@
         },
         changeType(index){
            this.type = index+1;
            this.reloadList()
            this.reload()
         },
         // 预览图片
         previewImg(imgList, index) {
@@ -206,22 +253,29 @@
         },
         // 评论
         addFollowupComment(){
            if(this.isRequesting){
               return;
            }
            this.isRequesting = true;
            this.$httpUtils.request('/api/followup/addFollowupComment', {
               follId: this.follId,
               content: this.comment
            }, 'POST').then((res) => {
               if(res.status == 200){
                  this.reloadList();
                  this.isShowComments = false;
                  this.$refs.commentEl.close();
                  this.comment = '';
               }else{
                  this.$toast.info(res.info)
               }
               this.isRequesting = false;
            }).catch((err) => {
               this.isRequesting = false;
            })
         },
         showComment(id){
            this.follId = id;
            this.isShowComments=true;
            this.$refs.commentEl.open();
         },
         setData(selectItem){
            let pages = getCurrentPages();
@@ -238,12 +292,12 @@
            this.endTime = '';
            this.staffList = [];
            this.vipList = [];
            this.reloadList();
            this.reload();
         },
         changeFilter(data){
            this.startTime = data.startTime;
            this.endTime = data.endTime;
            this.reloadList();
            this.reload();
         }
      }
   }
@@ -282,10 +336,15 @@
      font-size: 13px;
   }
   .message-row{
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      display: flex;
      align-items: center;
      background: #F6F6F8;
      background: #eee;
      padding: 10px;
      margin-bottom: var(–safe-area-inset-bottom);
   }
   .message-input{
      flex: 1;
@@ -299,12 +358,7 @@
   .message-btn{
      margin: 0;
      line-height: 30px;
      border-radius: 0;
      border-radius: 2px;
      font-size: 14px;
   }
   uni-button[disabled]:not([type]), uni-button[disabled][type=default]{
      color: #FFFFFF;
      background-color: rgb(31 183 19 / 0.4);
      border: 0;
   }
</style>