選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.vue 26 KiB

3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
2年前
2年前
3年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
3年前
3年前
3年前
3年前
3年前
2年前
3年前
3年前
3年前
3年前
3年前
3年前
2年前
3年前
3年前
3年前
3年前
3年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
2年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
3年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
2年前
3年前
2年前
3年前
3年前
2年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
2年前
3年前
3年前
2年前
2年前
2年前
2年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
2年前
3年前
2年前
2年前
3年前
2年前
3年前
2年前
2年前
3年前
2年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
2年前
2年前
2年前
2年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
2年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
2年前
2年前
3年前
2年前
2年前
2年前
2年前
2年前
2年前
3年前
3年前
3年前
2年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
3年前
2年前
2年前
2年前
2年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
3年前
3年前
3年前
2年前
3年前
2年前
3年前
2年前
3年前
3年前
2年前
3年前
3年前
3年前
2年前
3年前
3年前
3年前
3年前
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075
  1. <template>
  2. <view class="box">
  3. <view>
  4. <view class="search-box">
  5. <view class="search" @click="goSearch">
  6. <view class="search-img">
  7. <image class="search-img1" src="../../../static/images/search.png" mode=""></image>
  8. </view>
  9. <view class="search-text">输入客户姓名/手机号</view>
  10. </view>
  11. </view>
  12. </view>
  13. <!-- 选择器 -->
  14. <view class="boxtittab">
  15. <view class="tabbox" @click="tapsoltishow">
  16. {{ sortFilter }}
  17. <u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  18. </view>
  19. <view class="tabbox" @click="taptimeisshow">
  20. {{ arriveFilter }}
  21. <u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  22. </view>
  23. <view class="tabbox" @click="taptimetuisshow">
  24. {{ receptionDuration }}
  25. <u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  26. </view>
  27. <view class="tabbox" @click="screenshow">
  28. 更多筛选<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  29. </view>
  30. </view>
  31. <view class="count" v-if="recordList.length > 0">
  32. 筛选结果:<text>{{totalRecords}} </text>条
  33. </view>
  34. <view class="content">
  35. <view v-if="recordList.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;">
  36. <view style="width: 100%;padding-top: 200rpx;background: #FFFFFF;">
  37. <view style="width: 100%;text-align: center;">
  38. <image style="width: 220rpx;height: 200rpx;"
  39. src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
  40. </view>
  41. <view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
  42. </view>
  43. </view>
  44. <view v-if="recordList.length!=0" class="content-tips" v-for="(item,index) in recordList" :key='index'
  45. @click="gotoDetail(item.id)">
  46. <view class="content-first">
  47. <view class="left">
  48. <view v-if="item.level.length==0"></view>
  49. <view class="img" v-else-if="item.level==1">A</view>
  50. <view class="img" v-else-if="item.level==2">B</view>
  51. <view class="img" v-else-if="item.level==3">C</view>
  52. <view class="img" v-else-if="item.level==4">D</view>
  53. <view class="test">{{item.name}}</view>
  54. </view>
  55. <!-- <view class="right">
  56. <view class="point"></view>
  57. <view class="test">定金</view>
  58. </view> -->
  59. </view>
  60. <view class="content-sec">
  61. <view class="content-sec-lab">
  62. 手机号码:<view class="content-sec-lab1">{{item.phone || '--'}}</view>
  63. </view>
  64. <view class="content-sec-lab" style="line-height: 46rpx;">
  65. 客户标签:
  66. <text v-if="item.demand.cusSemanticWordsList==null">暂无</text>
  67. <view v-else class="content-sec-tips" v-for="(che,ind) in item.demand.cusSemanticWordsList"
  68. :key='ind'>{{che.name}}</view>
  69. </view>
  70. <view class="content-sec-lab">
  71. 顾问姓名:<view class="content-sec-lab1">{{item.agentName}}</view>
  72. </view>
  73. <view class="content-sec-lab">
  74. 添加时间:<view class="content-sec-lab1">{{item.createTime}}</view>
  75. </view>
  76. <view class="content-sec-num">
  77. <view class="">{{item.visitRecord || '--'}}次到访</view>
  78. <view class="">{{item.fraction || '0'}}% | {{item.mm || '0'}}<text
  79. style="font-size: 24rpx;">min</text></view>
  80. </view>
  81. </view>
  82. <view class="content-last" v-if="item.isshow==true">
  83. <!-- <view class="content-last-tab">添加提醒</view>
  84. <view class="content-last-tab">拨打电话</view> -->
  85. <view class="content-last-tab" @click.stop="gotoFollowUp(item.id)">写跟进</view>
  86. </view>
  87. </view>
  88. </view>
  89. <u-popup v-model="screenShow" mode="top">
  90. <view class="screen">
  91. <!-- 顾问选择 -->
  92. <view class="screen-counselor">
  93. <view class="screen-text">
  94. 所属顾问
  95. </view>
  96. <view class="screen-sel" @click="selectshow = true">
  97. <u-input v-model="screen.agentIdtext" type="text" placeholder='请选择' class="screen-inp"
  98. disabled />
  99. <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
  100. </view>
  101. </view>
  102. <view class="screen-counselor">
  103. <view class="screen-text">
  104. 客户标签
  105. </view>
  106. <view class="screen-sel" @click="selectTipshow = true">
  107. <u-input v-model="screen.cunsumerTips" type="text" placeholder='请选择' class="screen-inp"
  108. disabled />
  109. <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
  110. </view>
  111. </view>
  112. <view class="screen-counselor">
  113. <view class="screen-text">
  114. 客户阶段
  115. </view>
  116. <view class="screen-sel" @click="selectPhaseShow = true">
  117. <u-input v-model="screen.clientStageName" type="text" placeholder='请选择' class="screen-inp"
  118. disabled />
  119. <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
  120. </view>
  121. </view>
  122. <!-- 录音标示 -->
  123. <view class="screen-record">
  124. <view class="screen-record-text">
  125. 客户等级
  126. </view>
  127. <view class="screen-record-tab">
  128. <block v-for="(item,index) in levelList" :key="index">
  129. <view :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  130. @click="choiceLevel(index,item.value)">
  131. {{item.label}}
  132. </view>
  133. </block>
  134. <!-- <view :class="[screen.record==0?'screen-record-chose':'screen-record-nochose']" @click="recordclick(0)">
  135. A
  136. </view>
  137. <view :class="[screen.record==1?'screen-record-chose':'screen-record-nochose']" @click="recordclick(1)">
  138. B
  139. </view>
  140. <view :class="[screen.record==2?'screen-record-chose':'screen-record-nochose']" @click="recordclick(2)">
  141. C
  142. </view>
  143. <view :class="[screen.record==3?'screen-record-chose':'screen-record-nochose']" @click="recordclick(3)">
  144. D
  145. </view> -->
  146. </view>
  147. </view>
  148. <!-- <view class="screen-record">
  149. <view class="screen-record-text">
  150. 客户阶段
  151. </view>
  152. <view class="screen-record-tab">
  153. <view v-for="(item,index) in stageList" :key="index">
  154. <view :class="[screen.stage==index?'screen-record-chose':'screen-record-nochose']" @click="screen.stage=index" style="width: 120rpx;">
  155. {{item}}
  156. </view>
  157. </view>
  158. </view>
  159. </view> -->
  160. <view class="screen-record">
  161. <view class="screen-record-text">
  162. 到访次数
  163. </view>
  164. <view class="screen-record-tab">
  165. <block v-for="(item,index) in visitList" :key="index">
  166. <view :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  167. @click="choice(index,item.value)">
  168. {{item.label}}
  169. </view>
  170. </block>
  171. <!-- <view :class="[screen.visitRecord==1?'screen-record-chose':'screen-record-nochose']" @click="screenvisitRecord(1)">
  172. 首次到访
  173. </view>
  174. <view :class="[screen.visitRecord==2?'screen-record-chose':'screen-record-nochose']" @click="screenvisitRecord(2)">
  175. 2次到访
  176. </view>
  177. <view :class="[screen.visitRecord==3?'screen-record-chose':'screen-record-nochose']" @click="screenvisitRecord(3)">
  178. 3次到访
  179. </view>
  180. <view :class="[screen.visitRecord==4?'screen-record-chose':'screen-record-nochose']" @click="screenvisitRecord(4)">
  181. 3次以上
  182. </view> -->
  183. </view>
  184. </view>
  185. <view class="screen-foot">
  186. <view class="screen-foot-reset" @click="reset">
  187. 重置
  188. </view>
  189. <view class="screen-foot-sure" @click="screensure">
  190. 确定
  191. </view>
  192. </view>
  193. </view>
  194. </u-popup>
  195. <!-- 选择顾问的选择框 -->
  196. <u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select>
  197. <!-- 客户标签 -->
  198. <u-select v-model="selectTipshow" :list="findKeywordsList" @confirm="selectCallback"></u-select>
  199. <!-- 客户阶段 -->
  200. <u-select v-model="selectPhaseShow" :list="phaseList" @confirm="selectPhase"></u-select>
  201. <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
  202. <u-popup v-model="timeshow" mode="bottom">
  203. <view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }"
  204. @click="tabtimetap(5, '到访时间')">
  205. 全部</view>
  206. <view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }"
  207. @click="tabtimetap(0, '今天')">
  208. 今天</view>
  209. <view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }"
  210. @click="tabtimetap(1, '昨天')">
  211. 昨天</view>
  212. <view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }"
  213. @click="tabtimetap(2, '近7天')">
  214. 近7天</view>
  215. <view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }"
  216. @click="tabtimetap(3, '近30天')">
  217. 近30天</view>
  218. <view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(4)">
  219. 自定义</view>
  220. </u-popup>
  221. <u-popup v-model="timetushow" mode="bottom">
  222. <view class="timeview" :style="{ color: activeTotal2 == 0 ? '#2B6EFF' : '#333333' }"
  223. @click="timetap(0, '接待时长')">全部
  224. </view>
  225. <view class="timeview" :style="{ color: activeTotal2 == 1 ? '#2B6EFF' : '#333333' }"
  226. @click="timetap(1, '0~15min')">
  227. 0~15min</view>
  228. <view class="timeview" :style="{ color: activeTotal2 == 2 ? '#2B6EFF' : '#333333' }"
  229. @click="timetap(2, '15~30min')">
  230. 15~30min</view>
  231. <view class="timeview" :style="{ color: activeTotal2 == 3 ? '#2B6EFF' : '#333333' }"
  232. @click="timetap(3, '30~60min')">
  233. 30~60min</view>
  234. <view class="timeview" :style="{ color: activeTotal2 == 4 ? '#2B6EFF' : '#333333' }"
  235. @click="timetap(4, '60~90min')">
  236. 60~90min</view>
  237. <view class="timeview" :style="{ color: activeTotal2 == 5 ? '#2B6EFF' : '#333333' }"
  238. @click="timetap(5, '90min以上')">
  239. 90min以上</view>
  240. </u-popup>
  241. <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>
  242. </view>
  243. </template>
  244. <script>
  245. export default {
  246. data() {
  247. return {
  248. orderBylist: [{
  249. label: '全部',
  250. value: '0'
  251. },
  252. {
  253. label: '创建时间倒序',
  254. value: '1'
  255. },
  256. {
  257. label: '创建时间正序',
  258. value: '2'
  259. },
  260. {
  261. label: '接待时间倒序',
  262. value: '3'
  263. },
  264. {
  265. label: '接待时间正序',
  266. value: '4'
  267. },
  268. {
  269. label: '执行率正序',
  270. value: '5'
  271. },
  272. {
  273. label: '执行率倒序',
  274. value: '6'
  275. },
  276. {
  277. label: '接访次数正序',
  278. value: '7'
  279. },
  280. {
  281. label: '接访次数倒序',
  282. value: '8'
  283. },
  284. ],
  285. value: '',
  286. screenShow: false,
  287. selectshow: false,
  288. selectTipshow: false,
  289. selectPhaseShow: false,
  290. buildingID: '',
  291. screen: {
  292. agentId: '',
  293. agentIdtext: '',
  294. visitRecord: [],
  295. record: [],
  296. cunsumerTips: '',
  297. cunsumerTipsid: '',
  298. clientStage: '',
  299. clientStageName: ''
  300. },
  301. stageList: ['未知', '到访', '意向', '定金', '成交'],
  302. recordList: [],
  303. nextPage: 1,
  304. totalRecord: '',
  305. freeList: [],
  306. userInfo: {},
  307. findKeywordsList: [],
  308. phaseList: [],
  309. isnorefresh: '',
  310. activeTotal: 5,
  311. activeTotal2: 0,
  312. totalTimeShow: false,
  313. timeshow: false,
  314. timetushow: false,
  315. soltishow: false,
  316. staTime: '',
  317. endtime: '',
  318. orderBy: '',
  319. totalRecords: '',
  320. visitList: [{
  321. label: '首次到访',
  322. value: 1,
  323. isShow: false,
  324. }, {
  325. label: '2次到访',
  326. value: 2,
  327. isShow: false,
  328. }, {
  329. label: '3次到访',
  330. value: 3,
  331. isShow: false,
  332. }, {
  333. label: '3次以上',
  334. value: 4,
  335. isShow: false,
  336. }, ],
  337. levelList: [{
  338. label: 'A',
  339. value: 1,
  340. isShow: false,
  341. }, {
  342. label: 'B',
  343. value: 2,
  344. isShow: false,
  345. }, {
  346. label: 'C',
  347. value: 3,
  348. isShow: false,
  349. }, {
  350. label: 'D',
  351. value: 4,
  352. isShow: false,
  353. }, ],
  354. isRefresh: false,
  355. // 筛选文字展示
  356. sortFilter: '排序',
  357. arriveFilter: '到访时间',
  358. receptionDuration: '接待时长',
  359. }
  360. },
  361. onLoad(options) {
  362. this.isnorefresh = options.refresh;
  363. },
  364. onShow() {
  365. if (this.isnorefresh == 'refresh') {
  366. this.buildingID = uni.getStorageSync('buildingID').id;
  367. this.nextPage = 1;
  368. this.recordList = []
  369. this.isRefresh = false;
  370. this.getMyCustom()
  371. this.getFreeList()
  372. this.getfindKeywordsList()
  373. this.getCustomPhase()
  374. this.isnorefresh = '';
  375. }
  376. },
  377. onPullDownRefresh() {
  378. this.resetFilter()
  379. this.isRefresh = true;
  380. this.nextPage = 1;
  381. this.getMyCustom()
  382. setTimeout(() => {
  383. uni.stopPullDownRefresh()
  384. }, 1000)
  385. },
  386. onReachBottom() {
  387. if (this.totalRecord == this.nextPage) {
  388. uni.showToast({
  389. icon: 'none',
  390. title: '到底了',
  391. duration: 2000
  392. });
  393. return
  394. } else {
  395. this.nextPage += 1;
  396. this.isRefresh = false;
  397. this.getMyCustom();
  398. }
  399. },
  400. methods: {
  401. // 过滤
  402. resetFilter() {
  403. this.sortFilter = '排序';
  404. this.orderBy = null;
  405. this.arriveFilter = '到访时间';
  406. this.staTime = '';
  407. this.endtime = '';
  408. this.nextPage = 1;
  409. this.activeTotal = 5;
  410. this.recordList = [];
  411. this.receptionDuration = '接待时长';
  412. this.activeTotal2 = 0;
  413. },
  414. choice(index, e) {
  415. if (this.visitList[index].isShow == true) {
  416. this.visitList[index].isShow = false;
  417. for (var i = 0; i < this.screen.visitRecord.length; i++) {
  418. if (this.screen.visitRecord[i] === e) {
  419. this.screen.visitRecord.splice(i, 1);
  420. }
  421. }
  422. } else {
  423. this.visitList[index].isShow = true;
  424. this.screen.visitRecord.push(e)
  425. }
  426. },
  427. choiceLevel(index, e) {
  428. if (this.levelList[index].isShow == true) {
  429. this.levelList[index].isShow = false;
  430. for (var i = 0; i < this.screen.record.length; i++) {
  431. if (this.screen.record[i] === e) {
  432. this.screen.record.splice(i, 1);
  433. }
  434. }
  435. } else {
  436. this.levelList[index].isShow = true;
  437. this.screen.record.push(e)
  438. }
  439. },
  440. tapsoltishow() {
  441. this.soltishow = true;
  442. },
  443. taptimetuisshow() {
  444. this.timetushow = true;
  445. },
  446. taptimeisshow() {
  447. this.timeshow = true;
  448. },
  449. //选择标签
  450. selectCallback2(e) {
  451. this.sortFilter = e[0].label;
  452. this.orderBy = e[0].value;
  453. this.nextPage = 1;
  454. this.recordList = [];
  455. this.isRefresh = false;
  456. this.getMyCustom();
  457. },
  458. //选择录音时长
  459. timetap(index, text) {
  460. if (text) this.receptionDuration = text
  461. this.timetushow = false;
  462. this.activeTotal2 = index;
  463. this.nextPage = 1;
  464. this.recordList = [];
  465. this.isRefresh = false;
  466. this.getMyCustom();
  467. },
  468. //时间选择
  469. tabtimetap(index, text) {
  470. this.timeshow = false;
  471. if (text) this.arriveFilter = text
  472. if (index == 4) {
  473. this.totalTimeShow = true;
  474. } else {
  475. this.activeTotal = index;
  476. this.staTime = '';
  477. this.endtime = '';
  478. this.nextPage = 1;
  479. this.recordList = [];
  480. this.isRefresh = false;
  481. this.getMyCustom();
  482. }
  483. },
  484. //自定义时间
  485. totalTimeChange(e) {
  486. this.staTime = e.startDate;
  487. this.endtime = e.endDate;
  488. this.activeTotal = 4;
  489. this.nextPage = 1;
  490. this.recordList = [];
  491. this.isRefresh = false;
  492. this.getMyCustom();
  493. },
  494. recordclick(i) {
  495. if (this.screen.record == i) {
  496. this.screen.record = null
  497. } else {
  498. this.screen.record = i
  499. }
  500. },
  501. screenvisitRecord(i) {
  502. if (this.screen.visitRecord == i) {
  503. this.screen.visitRecord = ''
  504. } else {
  505. this.screen.visitRecord = i
  506. }
  507. },
  508. // 客户详情
  509. gotoDetail(id) {
  510. uni.navigateTo({
  511. url: `/pages/center/consumer/consumerDetail?id=${id}`
  512. })
  513. },
  514. getMyCustom() {
  515. let dateType = 0;
  516. let recDurationInterval = 0;
  517. let orderBy = 0;
  518. if (this.activeTotal == 5) {
  519. dateType = null;
  520. } else if (this.activeTotal == 4) {
  521. dateType = null;
  522. } else {
  523. dateType = this.activeTotal;
  524. }
  525. if (this.activeTotal2 == 0) {
  526. recDurationInterval = null
  527. } else {
  528. recDurationInterval = this.activeTotal2
  529. }
  530. if (this.orderBy == 0) {
  531. orderBy = null;
  532. } else {
  533. orderBy = this.orderBy;
  534. }
  535. var parames = {
  536. pageNum: this.nextPage,
  537. pageSize: 10,
  538. query: {
  539. projectId: this.buildingID,
  540. keywordsId: this.screen.cunsumerTipsid,
  541. clientStage: this.screen.clientStage,
  542. agentId: this.screen.agentId,
  543. dateType: dateType,
  544. staTime: this.staTime,
  545. endtime: this.endtime,
  546. recDurationInterval: recDurationInterval,
  547. orderBy: orderBy
  548. }
  549. };
  550. if (this.screen.visitRecord.length > 0) {
  551. parames.query.visitRecords = this.screen.visitRecord.join(',');
  552. }
  553. if (this.screen.record.length > 0) {
  554. parames.query.level = this.screen.record.join(',');
  555. }
  556. // if(this.screen.record==0){
  557. // parames.query.levels= ["1"]
  558. // }else if(this.screen.record==1){
  559. // parames.query.levels= ["2"]
  560. // }else if(this.screen.record==2){
  561. // parames.query.levels= ["3"]
  562. // }else if(this.screen.record==3){
  563. // parames.query.levels= ["4"]
  564. // }else{
  565. // parames.query.levels=''
  566. // }
  567. this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
  568. this.$u.post("/customer/customerManagement", parames).then(data => {
  569. if(this.staTime && this.endtime) {
  570. this.arriveFilter = `${this.staTime}-${this.endtime}`
  571. }
  572. var list = data.results || [];
  573. list.forEach(item => {
  574. if (this.userInfo.dataCode == 6) {
  575. item.isshow = true;
  576. } else {
  577. item.isshow = false;
  578. }
  579. })
  580. list.forEach(item => {
  581. if (item.demand.cusSemanticWordsList != null) {
  582. item.demand.cusSemanticWordsList.forEach(che => {
  583. if (che.isInterval == 0) {
  584. che.name = che.name + che.unit + '-' + che.endName + che.unit;
  585. }
  586. })
  587. }
  588. })
  589. if (this.isRefresh) {
  590. this.recordList = list;
  591. } else {
  592. this.recordList = [...this.recordList, ...list];
  593. }
  594. this.totalRecord = data.totalPage;
  595. this.totalRecords = data.totalRecord;
  596. })
  597. },
  598. //获取顾问列表
  599. getFreeList() {
  600. this.freeList = []
  601. this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {
  602. houseId: this.buildingID
  603. }).then(res => {
  604. this.freeList = res;
  605. this.freeList.forEach(item => {
  606. item.label = item.name;
  607. item.value = item.accountId
  608. })
  609. })
  610. },
  611. //获取客户标签
  612. getfindKeywordsList() {
  613. this.findKeywordsList = []
  614. this.$u.post("/customer/findKeywords", {
  615. houseId: this.buildingID
  616. }).then(res => {
  617. res.forEach(item => {
  618. if (item.isInterval == 0) {
  619. item.label = item.name + item.unit + '-' + item.endName + item.unit;
  620. } else {
  621. item.label = item.name
  622. }
  623. item.value = item.id;
  624. })
  625. this.findKeywordsList = res;
  626. })
  627. },
  628. getCustomPhase() {
  629. this.phaseList = []
  630. this.$u.post("/customer/lifeTrackDefineList", {
  631. houseId: this.buildingID
  632. }).then(res => {
  633. let tempArr = []
  634. res.forEach(item => {
  635. let tempObj = {}
  636. tempObj.label = item.stageName;
  637. tempObj.value = item.id;
  638. tempArr.push(tempObj)
  639. })
  640. this.phaseList = tempArr;
  641. })
  642. },
  643. // 筛选
  644. screenshow() {
  645. this.screenShow = true
  646. },
  647. //选择顾问
  648. actionSelectCallback(e) {
  649. this.screen.agentId = e[0].value;
  650. this.screen.agentIdtext = e[0].label;
  651. },
  652. //选择标签
  653. selectCallback(e) {
  654. this.screen.cunsumerTips = e[0].label;
  655. this.screen.cunsumerTipsid = e[0].value;
  656. },
  657. selectPhase(e) {
  658. this.screen.clientStageName = e[0].label;
  659. this.screen.clientStage = e[0].value;
  660. },
  661. //重置
  662. reset() {
  663. this.screen = {
  664. agentId: '',
  665. agentIdtext: '',
  666. visitRecord: [],
  667. record: [],
  668. cunsumerTips: '',
  669. cunsumerTipsid: '',
  670. clientStage: '',
  671. clientStageName: ''
  672. }
  673. this.visitList.map(i => {
  674. i.isShow = false
  675. })
  676. this.levelList.map(i => {
  677. i.isShow = false
  678. })
  679. this.nextPage = 1;
  680. this.recordList = [];
  681. // this.screenShow = false;
  682. this.isRefresh = false;
  683. this.getMyCustom();
  684. },
  685. //筛选确认
  686. screensure() {
  687. this.nextPage = 1;
  688. this.recordList = [];
  689. this.screenShow = false;
  690. this.isRefresh = false;
  691. this.getMyCustom();
  692. },
  693. goSearch() {
  694. uni.navigateTo({
  695. url: '/pages/center/consumer/consumerSearch'
  696. });
  697. },
  698. gotoFollowUp(id) {
  699. uni.navigateTo({
  700. url: `/pages/center/consumer/newFollowup/newFollowup?id=${id}`
  701. })
  702. },
  703. }
  704. }
  705. </script>
  706. <style lang="scss" scoped>
  707. .box {
  708. width: 100%;
  709. height: 100%;
  710. background: #F8F8F8;
  711. }
  712. .count {
  713. width: 100%;
  714. height: 90rpx;
  715. display: flex;
  716. align-items: center;
  717. justify-content: center;
  718. background-color: #FBE4E4;
  719. text {
  720. color: #F71616;
  721. }
  722. }
  723. .timeview {
  724. height: 80rpx;
  725. line-height: 80rpx;
  726. width: 100%;
  727. text-align: center;
  728. border-bottom: 1px solid #F8F8F8;
  729. }
  730. //时间切换的样式
  731. .boxtittab {
  732. position: sticky;
  733. top: var(--window-top);
  734. z-index: 999;
  735. width: 100;
  736. height: 92rpx;
  737. background: #FFFFFF;
  738. border: 1px solid #E0E0E0;
  739. display: flex;
  740. align-items: center;
  741. .tabbox {
  742. flex: 1;
  743. height: 100%;
  744. text-align: center;
  745. line-height: 92rpx;
  746. color: #666666;
  747. font-size: 28rpx;
  748. overflow: hidden;
  749. text-overflow: ellipsis;
  750. display: -webkit-box;
  751. /* 将对象作为弹性伸缩盒子模型显示 */
  752. -webkit-line-clamp: 1;
  753. /* 控制最多显示几行 */
  754. -webkit-box-orient: vertical;
  755. /* 设置或检索伸缩盒对象的子元素的排列方式 */
  756. }
  757. }
  758. .search-box {
  759. width: 100%;
  760. height: 102rpx;
  761. background: #FFFFFF;
  762. display: flex;
  763. align-items: center;
  764. justify-content: center;
  765. .search {
  766. width: 94%;
  767. height: 70rpx;
  768. display: flex;
  769. align-items: center;
  770. background: #F8F8F8;
  771. border-radius: 33rpx;
  772. .search-img {
  773. width: 26rpx;
  774. height: 30rpx;
  775. margin-left: 20rpx;
  776. .search-img1 {
  777. width: 100%;
  778. height: 100%;
  779. margin-top: 2rpx;
  780. }
  781. }
  782. .search-text {
  783. font-size: 28rpx;
  784. font-weight: 400;
  785. color: #999999;
  786. margin-left: 10rpx;
  787. }
  788. }
  789. .search-screen {
  790. width: 40rpx;
  791. height: 40rpx;
  792. margin-left: 30rpx;
  793. .search-screen1 {
  794. width: 100%;
  795. height: 100%;
  796. }
  797. }
  798. }
  799. .content {
  800. // height: 1000rpx;/
  801. overflow: hidden;
  802. border-top: 1px solid #E0E0E0;
  803. .content-tips {
  804. background: #fff;
  805. // box-sizing: border-box;
  806. margin-top: 20rpx;
  807. overflow: hidden;
  808. .content-first {
  809. padding: 19rpx 30rpx;
  810. display: flex;
  811. justify-content: space-between;
  812. box-sizing: border-box;
  813. // border-top: 1px solid #E0E0E0;
  814. font-weight: 400;
  815. color: #292929;
  816. height: 90rpx;
  817. font-size: 30rpx;
  818. line-height: 30rpx;
  819. .left {
  820. display: flex;
  821. .img {
  822. // margin-top: 19rpx;
  823. width: 52rpx;
  824. height: 52rpx;
  825. border: 1px solid #E0E0E0;
  826. border-radius: 50%;
  827. text-align: center;
  828. line-height: 50rpx;
  829. margin-right: 20rpx;
  830. }
  831. .test {
  832. margin-top: 11rpx;
  833. // margin-left: 20rpx;
  834. font-weight: 500;
  835. color: #333333;
  836. }
  837. }
  838. .right {
  839. display: flex;
  840. .point {
  841. width: 12rpx;
  842. height: 12rpx;
  843. background: #2B6EFF;
  844. border-radius: 50%;
  845. margin-right: 9rpx;
  846. margin-top: 20rpx;
  847. }
  848. .test {
  849. margin-top: 11rpx;
  850. }
  851. }
  852. }
  853. .content-sec {
  854. border-top: 1px solid #E0E0E0;
  855. padding: 0 30rpx;
  856. padding-bottom: 30rpx;
  857. // height: 270rpx;
  858. position: relative;
  859. .content-sec-lab {
  860. margin-top: 30rpx;
  861. display: flex;
  862. font-size: 30rpx;
  863. font-weight: 400;
  864. color: #666666;
  865. line-height: 46rpx;
  866. .content-sec-lab1 {
  867. color: #333333;
  868. }
  869. .content-sec-tips {
  870. max-width: 160rpx;
  871. height: 46rpx;
  872. background: #F2F2F2;
  873. border-radius: 6rpx;
  874. text-align: center;
  875. line-height: 26rpx;
  876. overflow: hidden;
  877. text-overflow: ellipsis;
  878. white-space: nowrap;
  879. font-size: 26rpx;
  880. font-weight: 400;
  881. color: #333333;
  882. margin-right: 20rpx;
  883. box-sizing: border-box;
  884. padding: 10rpx 24rpx;
  885. }
  886. }
  887. .content-sec-num {
  888. position: absolute;
  889. width: 200rpx;
  890. height: 90rpx;
  891. background: #F4F8FD;
  892. border-radius: 12rpx;
  893. font-weight: 400;
  894. color: #2671E2;
  895. line-height: 45rpx;
  896. bottom: 30rpx;
  897. right: 30rpx;
  898. text-align: center;
  899. }
  900. }
  901. .content-last {
  902. display: flex;
  903. border-top: 1px solid #E0E0E0;
  904. // padding: 0 30rpx;
  905. height: 78rpx;
  906. .content-last-tab {
  907. width: 33.4%;
  908. text-align: center;
  909. font-size: 30rpx;
  910. font-weight: 400;
  911. color: #333333;
  912. line-height: 78rpx;
  913. border-right: 1px solid #E0E0E0;
  914. }
  915. }
  916. }
  917. }
  918. // 这是弹出层
  919. .screen {
  920. // box-sizing: border-box;
  921. // padding: 0 30rpx;
  922. .screen-counselor {
  923. display: flex;
  924. height: 106rpx;
  925. // padding: 40rpx 30rpx 36rpx 30rpx;
  926. padding: 0 30rpx;
  927. box-sizing: border-box;
  928. border-bottom: 1px solid #E0E0E0;
  929. .screen-text {
  930. margin: 40rpx 0 36rpx 0;
  931. font-size: 30rpx;
  932. font-weight: 400;
  933. color: #333333;
  934. line-height: 30rpx;
  935. }
  936. .screen-sel {
  937. display: flex;
  938. justify-content: space-between;
  939. width: 500rpx;
  940. margin-left: 60rpx;
  941. .screen-sel-img {
  942. margin: 40rpx 0 36rpx 0;
  943. width: 14rpx;
  944. height: 30rpx;
  945. }
  946. .screen-inp {
  947. margin-top: 20rpx;
  948. }
  949. }
  950. }
  951. .screen-record {
  952. height: 192rpx;
  953. // width: 100%;
  954. overflow: hidden;
  955. padding: 0 30rpx;
  956. box-sizing: border-box;
  957. border-bottom: 1px solid #E0E0E0;
  958. .screen-record-text {
  959. margin-top: 36rpx;
  960. font-size: 30rpx;
  961. font-weight: 400;
  962. color: #333333;
  963. line-height: 30rpx;
  964. }
  965. .screen-record-tab {
  966. margin-top: 30rpx;
  967. display: flex;
  968. // justify-content: space-around;
  969. .screen-record-chose {
  970. width: 156rpx;
  971. height: 60rpx;
  972. background: #2671E2;
  973. border-radius: 4rpx;
  974. border: 1px solid #2671E2;
  975. text-align: center;
  976. line-height: 60rpx;
  977. margin-right: 22rpx;
  978. color: #FFFFFF;
  979. }
  980. .screen-record-nochose {
  981. width: 156rpx;
  982. height: 60rpx;
  983. background: #FFFFFF;
  984. border-radius: 4rpx;
  985. border: 1px solid #C9C9C9;
  986. text-align: center;
  987. line-height: 60rpx;
  988. margin-right: 22rpx;
  989. }
  990. }
  991. }
  992. .screen-foot {
  993. width: 100%;
  994. height: 88rpx;
  995. display: flex;
  996. .screen-foot-reset {
  997. width: 50%;
  998. text-align: center;
  999. height: 88rpx;
  1000. line-height: 88rpx;
  1001. font-size: 30rpx;
  1002. font-weight: 400;
  1003. color: #666666;
  1004. }
  1005. .screen-foot-sure {
  1006. width: 50%;
  1007. text-align: center;
  1008. line-height: 88rpx;
  1009. height: 88rpx;
  1010. font-size: 30rpx;
  1011. font-weight: 400;
  1012. color: #FFFFFF;
  1013. background: #2671E2;
  1014. }
  1015. }
  1016. }
  1017. </style>