From c4246ca910f28014efaace64ebf92f47a673a9cf Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Mon, 25 Jan 2021 11:47:46 +0800 Subject: [PATCH] gx --- hive-app/pages/workbench/followRecords/index.vue | 108 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 81 insertions(+), 27 deletions(-) diff --git a/hive-app/pages/workbench/followRecords/index.vue b/hive-app/pages/workbench/followRecords/index.vue index 9ea4d6f..2706092 100644 --- a/hive-app/pages/workbench/followRecords/index.vue +++ b/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> -- Gitblit v1.9.1