AI销管
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.vue 31 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221
  1. <template>
  2. <view class="box">
  3. <!-- 选择器 -->
  4. <view class="boxtittab">
  5. <view class="tabbox" :class="{activeColor: arriveFilter!=='接待时间'}" @click="timeshow = true">
  6. {{ arriveFilter }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  7. </view>
  8. <view class="tabbox" :class="{activeColor:counselorName!=='接待顾问'}" @click="selectshow=true">
  9. {{ counselorName }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  10. </view>
  11. <view class="tabbox" :class="{activeColor: sortText!=='排序'}" @click="soltishow = true">
  12. {{ sortText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  13. </view>
  14. <view class="tabbox" @click="screenShow = true">
  15. 更多筛选<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
  16. </view>
  17. </view>
  18. <!-- 筛选后的数量 -->
  19. <view class="count" v-if="recordList.length > 0">
  20. 筛选结果:<text>{{totalRecords}}</text>条
  21. </view>
  22. <view class="content">
  23. <view v-if="recordList.length == 0"
  24. style="width: 100%;height: 100%;display: flex;align-items: center;background: #FFFFFF;">
  25. <view style="width: 100%;padding-top: 200rpx;">
  26. <view style="width: 100%;text-align: center;">
  27. <image style="width: 220rpx;height: 200rpx;"
  28. src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
  29. </view>
  30. <view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
  31. </view>
  32. </view>
  33. <view v-else class="content-tips" v-for="(item,index) in recordList" :key='index'
  34. @click="tapThevisiting(item)">
  35. <view class="content-first">
  36. <view class="left">
  37. <view class="adviser">顾</view>
  38. <view class="name">{{item.agentName}}</view>
  39. </view>
  40. <view class="right" v-if="item.recording!=0">
  41. <view v-if="item.receptionStatusName" style="margin-right: 6rpx;color: red;">{{item.receptionStatusName.slice(0, 2) || ''}}</view>
  42. <text style="margin-right: 6rpx;" v-if="item.receptionStatusName"> |</text>
  43. <view v-if="methodsisshow">
  44. <text style="margin-right: 6rpx;color: red;" v-if="item.taboo==1">违禁接待</text>
  45. <text style="margin-right: 6rpx;" v-if="item.taboo==1"> |</text>
  46. </view>
  47. <view v-if="item.validInvalidName" style="margin-right: 6rpx;">{{item.validInvalidName.slice(0, 2)||''}}</view>
  48. <text style="margin-right: 6rpx;" v-if="item.validInvalidName"> |</text>
  49. <view v-if="item.markAdvisor==0" class="">未标记</view>
  50. <view v-if="item.markAdvisor==1" class="">已标记</view>
  51. </view>
  52. <view class="right" v-else>
  53. <view class="">无录音</view>
  54. </view>
  55. </view>
  56. <view class="content-sec">
  57. <view class="left">
  58. <view class="adviser">客</view>
  59. <view class="cus">{{item.name || '--'}}</view>
  60. <view class="arriveNum">{{ item.phone | encryption }}</view>
  61. </view>
  62. <view class="right">
  63. 销讲业务:{{item.marketingBusiness || 'xxx'}}
  64. </view>
  65. </view>
  66. <view class="content-newadd">
  67. <view class="c-items">
  68. 挖掘执行:{{item.wordFraction||0}}%
  69. </view>
  70. <view class="c-items">
  71. 挖掘成功:{{item.wordFinishFraction||0}}%
  72. </view>
  73. <view class="c-items u-flex">
  74. 销讲执行:<view class="value" style="color: #2671E2;font-weight:bold;">{{item.fraction||0}}%</view>
  75. </view>
  76. </view>
  77. <view class="content-last">
  78. <view class="c-items">
  79. <image src="../static/img/people.png" class="c-items-img" mode=""></image>
  80. {{ item.visitRecord || "--" }}次到访
  81. </view>
  82. <view class="c-items">
  83. <image src="../static/img/time.png" class="c-items-img" mode=""></image>
  84. {{ item.createTime }}
  85. </view>
  86. <view class="c-items">
  87. <image src="../static/img/voice.png" class="c-items-img" mode=""></image>
  88. {{ item.mm || '0' }}min
  89. </view>
  90. </view>
  91. </view>
  92. </view>
  93. <u-popup v-model="screenShow" mode="top" height="900">
  94. <view class="screen">
  95. <scroll-view scroll-y="true" style="height: 750rpx;">
  96. <!-- 销讲业务 -->
  97. <view class="screen-record">
  98. <view class="screen-record-text" @click="showTemplate=!showTemplate">
  99. 销讲业务
  100. <image v-if="showTemplate" class="arrow"
  101. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  102. <image v-else class="arrow"
  103. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  104. </view>
  105. <view class="screen-record-tab" v-if="showTemplate">
  106. <block v-for="(item,index) in templateList" :key="index">
  107. <view class="screen-record-item"
  108. :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  109. @click="choice(item)">
  110. {{item.templateName}}
  111. </view>
  112. </block>
  113. </view>
  114. </view>
  115. <!-- 销讲执行率 -->
  116. <view class="screen-record">
  117. <view class="screen-record-text" @click="xiaojiangArrow=!xiaojiangArrow">
  118. 销讲执行率
  119. <image v-if="xiaojiangArrow" class="arrow"
  120. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  121. <image v-else class="arrow"
  122. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  123. </view>
  124. <view class="screen-record-tab" v-if="xiaojiangArrow">
  125. <block v-for="(item,index) in xiaojiangList" :key="index">
  126. <view class="screen-record-item"
  127. :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  128. @click="choice(item)">
  129. {{item.label}}
  130. </view>
  131. </block>
  132. </view>
  133. </view>
  134. <!-- 需求挖掘率 -->
  135. <view class="screen-record">
  136. <view class="screen-record-text" @click="wajueArrow=!wajueArrow">
  137. 需求挖掘率
  138. <image v-if="wajueArrow" class="arrow"
  139. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  140. <image v-else class="arrow"
  141. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  142. </view>
  143. <view class="screen-record-tab" v-if="wajueArrow">
  144. <block v-for="(item,index) in wajueList" :key="index">
  145. <view class="screen-record-item"
  146. :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  147. @click="choice(item)">
  148. {{item.label}}
  149. </view>
  150. </block>
  151. </view>
  152. </view>
  153. <!-- 接待时长 -->
  154. <view class="screen-record">
  155. <view class="screen-record-text" @click="jiedaiArrow=!jiedaiArrow">
  156. 接待时长
  157. <image v-if="jiedaiArrow" class="arrow"
  158. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  159. <image v-else class="arrow"
  160. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  161. </view>
  162. <view class="screen-record-tab" v-if="jiedaiArrow">
  163. <block v-for="(item,index) in jiedaiList" :key="index">
  164. <view class="screen-record-item"
  165. :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  166. @click="choice(item)">
  167. {{item.label}}
  168. </view>
  169. </block>
  170. </view>
  171. </view>
  172. <!-- 录音标识 -->
  173. <view class="screen-record">
  174. <view class="screen-record-text" @click="luyinArrow=!luyinArrow">
  175. 录音标识
  176. <image v-if="luyinArrow" class="arrow"
  177. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  178. <image v-else class="arrow"
  179. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  180. </view>
  181. <view class="screen-record-tab" v-if="luyinArrow">
  182. <view class="screen-record-item"
  183. :class="[screen.validInvalid===0?'screen-record-chose':'screen-record-nochose']"
  184. @click="screenvisivalidInvalid(0)">
  185. 有效接待
  186. </view>
  187. <view class="screen-record-item"
  188. :class="[screen.validInvalid===1?'screen-record-chose':'screen-record-nochose']"
  189. @click="screenvisivalidInvalid(1)">
  190. 无效接待
  191. </view>
  192. <view class="screen-record-item"
  193. :class="[screen.validInvalid===2?'screen-record-chose':'screen-record-nochose']"
  194. @click="screenvisivalidInvalid(2)">
  195. 无录音
  196. </view>
  197. <view class="screen-record-item"
  198. :class="[screen.validInvalid===3?'screen-record-chose':'screen-record-nochose']"
  199. @click="screenvisivalidInvalid(3)">
  200. 无效(未审核)
  201. </view>
  202. </view>
  203. </view>
  204. <!-- 标记顾问 -->
  205. <view class="screen-record">
  206. <view class="screen-record-text" @click="markArrow=!markArrow">
  207. 标记顾问
  208. <image v-if="markArrow" class="arrow"
  209. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  210. <image v-else class="arrow"
  211. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  212. </view>
  213. <view class="screen-record-tab" v-if="markArrow">
  214. <view class="screen-record-item"
  215. :class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']"
  216. @click="screenvisitRecord(1)">
  217. 标记
  218. </view>
  219. <view class="screen-record-item"
  220. :class="[screen.markAdvisor===0?'screen-record-chose':'screen-record-nochose']"
  221. @click="screenvisitRecord(0)">
  222. 未标记
  223. </view>
  224. </view>
  225. </view>
  226. <!-- 到访次数 -->
  227. <view class="screen-record">
  228. <view class="screen-record-text" @click="visitArrow=!visitArrow">
  229. 到访次数
  230. <image v-if="visitArrow" class="arrow"
  231. src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
  232. <image v-else class="arrow"
  233. src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
  234. </view>
  235. <view class="screen-record-tab" v-if="visitArrow">
  236. <block v-for="(item,index) in visitList" :key="index">
  237. <view class="screen-record-item"
  238. :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
  239. @click="choice(item)">
  240. {{item.label}}
  241. </view>
  242. </block>
  243. </view>
  244. </view>
  245. </scroll-view>
  246. <view class="screen-foot">
  247. <view class="screen-foot-reset" @click="reset">
  248. 重置
  249. </view>
  250. <view class="screen-foot-sure" @click="screensure">
  251. 确定
  252. </view>
  253. </view>
  254. </view>
  255. </u-popup>
  256. <!-- 选择顾问的选择框 -->
  257. <u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select>
  258. <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
  259. <u-popup v-model="timeshow" mode="bottom">
  260. <view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(5, '接待时间')">
  261. 全部</view>
  262. <view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(0, '今天')">
  263. 今天</view>
  264. <view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(1, '昨天')">
  265. 昨天</view>
  266. <view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(2, '近7天')">
  267. 近7天</view>
  268. <view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(3, '近30天')">
  269. 近30天</view>
  270. <view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(4)">
  271. 自定义</view>
  272. </u-popup>
  273. <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>
  274. <!-- 加载组件 -->
  275. <u-loadings v-model="LOADING"></u-loadings>
  276. </view>
  277. </template>
  278. <script>
  279. export default {
  280. data() {
  281. return {
  282. templateList: [], // 销讲业务
  283. showTemplate: true, // 展示销讲业务
  284. orderBylist: [
  285. // {
  286. // label: '全部',
  287. // value: '0'
  288. // },
  289. {
  290. label: '创建时间倒序',
  291. value: '1'
  292. },
  293. {
  294. label: '创建时间正序',
  295. value: '2'
  296. },
  297. {
  298. label: '接待时间倒序',
  299. value: '3'
  300. },
  301. {
  302. label: '接待时间正序',
  303. value: '4'
  304. },
  305. {
  306. label: '执行率正序',
  307. value: '5'
  308. },
  309. {
  310. label: '执行率倒序',
  311. value: '6'
  312. },
  313. {
  314. label: '接访次数正序',
  315. value: '7'
  316. },
  317. {
  318. label: '接访次数倒序',
  319. value: '8'
  320. },
  321. ],
  322. jiedaiList: [{
  323. label: '0~15min',
  324. value: 1,
  325. isShow: false,
  326. }, {
  327. label: '16~30min',
  328. value: 2,
  329. isShow: false,
  330. }, {
  331. label: '31~60min',
  332. value: 3,
  333. isShow: false,
  334. }, {
  335. label: '61~90min',
  336. value: 4,
  337. isShow: false,
  338. }, {
  339. label: '91min及以上',
  340. value: 5,
  341. isShow: false,
  342. }],
  343. wajueList: [{
  344. label: '30%及以下',
  345. value: 1,
  346. isShow: false,
  347. }, {
  348. label: '31%~50%',
  349. value: 2,
  350. isShow: false,
  351. }, {
  352. label: '51%~70%',
  353. value: 3,
  354. isShow: false,
  355. }, {
  356. label: '71%及以上',
  357. value: 4,
  358. isShow: false,
  359. }],
  360. xiaojiangList: [{
  361. label: '30%及以下',
  362. value: 1,
  363. isShow: false,
  364. }, {
  365. label: '31%~50%',
  366. value: 2,
  367. isShow: false,
  368. }, {
  369. label: '51%~70%',
  370. value: 3,
  371. isShow: false,
  372. }, {
  373. label: '71%及以上',
  374. value: 4,
  375. isShow: false,
  376. }],
  377. activeTotal: 5,
  378. value: '',
  379. screenShow: false,
  380. wajueArrow: true,
  381. jiedaiArrow: true,
  382. markArrow: true,
  383. visitArrow: true,
  384. xiaojiangArrow: true,
  385. luyinArrow: true,
  386. selectshow: false,
  387. totalTimeShow: false,
  388. totalRecords: '',
  389. screen: {
  390. orderBy: '', //排序
  391. agentId: '', //顾问id
  392. markAdvisor: '', //标记顾问
  393. validInvalid: '', // 录音标识
  394. visitRecord: [], // 到访次数
  395. wajueVal: [], // 需求挖掘
  396. xiaojiangVal: [], //销讲执行率
  397. jiedaiVal: [], // 接待时长
  398. marketingBusiness: [], // 选中销讲业务id
  399. },
  400. freeList: [], //顾问
  401. recordList: [],
  402. buildingID: '',
  403. nextPage: 1,
  404. totalRecord: "",
  405. staTime: '',
  406. endtime: '',
  407. isnorefresh: '',
  408. activeTotal2: 0,
  409. timeshow: false,
  410. timetushow: false,
  411. soltishow: false,
  412. methodsisshow: false,
  413. userInfo: {},
  414. counselorName: '接待顾问',//接待顾问
  415. arriveFilter: '接待时间', // 接待时间
  416. sortText: '排序',
  417. visitList: [{
  418. label: '首次到访',
  419. value: 1,
  420. isShow: false,
  421. }, {
  422. label: '2次到访',
  423. value: 2,
  424. isShow: false,
  425. }, {
  426. label: '3次到访',
  427. value: 3,
  428. isShow: false,
  429. }, {
  430. label: '3次以上',
  431. value: 4,
  432. isShow: false,
  433. }, ],
  434. isRefresh:false
  435. }
  436. },
  437. onLoad(options) {
  438. this.LOADING = true
  439. this.isnorefresh = options.refresh;
  440. this.activeTotal = options.activeTotal
  441. this.screen.markAdvisor = options.markAdvisor
  442. this.screen.validInvalid = options.validInvalid
  443. if (options.staTime) {
  444. this.staTime = options.staTime;
  445. this.endtime = options.endtime +' 23:59:59';
  446. }
  447. },
  448. onShow() {
  449. try {
  450. this.$store.commit('stopAduio')
  451. } catch(e) {
  452. console.log(e)
  453. }
  454. this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
  455. if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) {
  456. this.methodsisshow = false;
  457. } else {
  458. this.methodsisshow = true;
  459. }
  460. if (this.isnorefresh == 'refresh') {
  461. this.buildingID = uni.getStorageSync('buildingID').id;
  462. this.recordList = [];
  463. this.nextPage = 1;
  464. this.isRefresh = false;
  465. this.getMyCustom()
  466. this.getFreeList();
  467. // this.getMarketingBusiness()
  468. this.isnorefresh = '';
  469. }
  470. },
  471. onPullDownRefresh(){
  472. this.isRefresh = true;
  473. this.nextPage = 1;
  474. this.getMyCustom()
  475. setTimeout(function () {
  476. uni.stopPullDownRefresh();
  477. }, 1000);
  478. },
  479. onReachBottom() {
  480. if (this.totalRecord == this.nextPage) {
  481. uni.showToast({
  482. icon: 'none',
  483. title: '到底了',
  484. duration: 2000
  485. });
  486. return
  487. } else {
  488. this.nextPage += 1;
  489. this.isRefresh = false;
  490. this.getMyCustom();
  491. }
  492. },
  493. methods: {
  494. // 获取销讲业务
  495. getMarketingBusiness() {
  496. this.$u.get('/customer/marketingBusiness', {
  497. houseId: this.buildingID,
  498. }).then(res => {
  499. this.templateList = res.map(item => {
  500. return {
  501. ...item,
  502. isShow: false,
  503. }
  504. })
  505. })
  506. },
  507. taptimetuisshow() {
  508. this.timetushow = true;
  509. },
  510. //选择标签
  511. selectCallback2(e) {
  512. this.sortText = e[0].label
  513. this.screen.orderBy = e[0].value;
  514. this.nextPage = 1;
  515. this.recordList = [];
  516. this.isRefresh = false;
  517. this.getMyCustom();
  518. },
  519. //时间选择
  520. tabtimetap(index, text) {
  521. this.timeshow = false;
  522. if(text) {
  523. this.arriveFilter = text
  524. }
  525. if (index == 4) {
  526. this.totalTimeShow = true;
  527. } else {
  528. this.activeTotal = index;
  529. this.staTime = '';
  530. this.endtime = '';
  531. this.nextPage = 1;
  532. this.recordList = [];
  533. this.isRefresh = false;
  534. this.getMyCustom();
  535. }
  536. },
  537. //自定义时间
  538. totalTimeChange(e) {
  539. this.staTime = e.startDate;
  540. this.endtime = e.endDate;
  541. this.activeTotal = 4;
  542. this.nextPage = 1;
  543. this.recordList = [];
  544. this.isRefresh = false;
  545. this.getMyCustom();
  546. },
  547. tapThevisiting(item) {
  548. let newmenulist = uni.getStorageSync('weapp_session_Menu_data');
  549. if (newmenulist.jdjl_ck != true) {
  550. return
  551. }
  552. this.wordFinishFraction=item.wordFinishFraction
  553. this.wordFraction=item.wordFraction
  554. uni.showLoading({
  555. title: '加载中',
  556. mask: true
  557. });
  558. if (item.status == 0) {
  559. setTimeout(function() {
  560. uni.hideLoading();
  561. }, 2000);
  562. uni.showToast({
  563. icon: "none",
  564. title: "排队中"
  565. })
  566. return
  567. } else {
  568. const parames = {
  569. pageNum: 1,
  570. pageSize: 100,
  571. query: {
  572. customerId: item.id,
  573. }
  574. }
  575. var item = {
  576. bg: 0,
  577. customerId: item.id,
  578. }
  579. uni.setStorageSync("searchobj", item); //写入缓存
  580. uni.setStorageSync("entrance", 1); //写入缓存
  581. this.$u.post("/corpus/findByPage", parames).then(res => {
  582. if (res == null) {
  583. setTimeout(function() {
  584. uni.hideLoading();
  585. }, 2000);
  586. uni.showToast({
  587. icon: "none",
  588. title: "暂无音频"
  589. })
  590. return
  591. } else {
  592. setTimeout(function() {
  593. uni.hideLoading();
  594. }, 2000);
  595. let newobj = res[0];
  596. if (res[0].merge == 0) {
  597. uni.navigateTo({
  598. url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=2&wordFraction=${this.wordFraction}&wordFinishFraction=${this.wordFinishFraction}`
  599. })
  600. } else {
  601. uni.navigateTo({
  602. url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=1`
  603. })
  604. }
  605. }
  606. })
  607. }
  608. },
  609. getMyCustom() {
  610. let dateType = 0;
  611. let recDurationInterval = 0;
  612. if (this.activeTotal == 5) {
  613. dateType = null;
  614. } else if (this.activeTotal == 4) {
  615. dateType = null;
  616. } else {
  617. dateType = this.activeTotal;
  618. }
  619. if (this.activeTotal2 == 0) {
  620. recDurationInterval = null
  621. } else {
  622. recDurationInterval = this.activeTotal2
  623. }
  624. this.screen.jiedaiVal = []
  625. this.screen.wajueVal = []
  626. this.screen.xiaojiangVal = []
  627. this.screen.visitRecord = []
  628. this.screen.marketingBusiness = []
  629. // 到访次数
  630. this.visitList.forEach(i => {
  631. if (i.isShow) this.screen.visitRecord.push(i.value)
  632. })
  633. // 接待时长
  634. this.jiedaiList.forEach(i => {
  635. if (i.isShow) this.screen.jiedaiVal.push(i.value)
  636. })
  637. // 需求挖掘
  638. this.wajueList.forEach(i => {
  639. if (i.isShow) this.screen.wajueVal.push(i.value)
  640. })
  641. // 销讲执行率
  642. this.xiaojiangList.forEach(i => {
  643. if (i.isShow) this.screen.xiaojiangVal.push(i.value)
  644. })
  645. // 销讲业务
  646. this.templateList.forEach(i => {
  647. if (i.isShow) this.screen.marketingBusiness.push(i.value)
  648. })
  649. var parames = {
  650. pageNum: this.nextPage,
  651. pageSize: 10,
  652. query: {
  653. projectId: this.buildingID,
  654. time: 1,
  655. staDate: this.staTime,
  656. endDate: this.endtime,
  657. markAdvisor: this.screen.markAdvisor,
  658. dateType: dateType,
  659. recDurationInterval: recDurationInterval,
  660. orderBy: this.screen.orderBy == '' ? '' : this.screen.orderBy, //排序,
  661. validInvalid:this.screen.validInvalid==2?null:this.screen.validInvalid,//录音标识
  662. recording:this.screen.validInvalid==2?0:null,
  663. visitRecords:this.screen.visitRecord.length? this.screen.visitRecord.join(","): '',//到访次数
  664. wordFractions: this.screen.wajueVal.length ? this.screen.wajueVal.join(',') : '', //需求挖掘
  665. duractionNums: this.screen.jiedaiVal.length ? this.screen.jiedaiVal.join(',') : '', //接待时长
  666. fractions: this.screen.xiaojiangVal.length ? this.screen.xiaojiangVal.join(',') : '', //销讲执行
  667. marketingBusiness: this.screen.marketingBusiness.length ? this.screen.marketingBusiness.join(',') : '', //销讲执行
  668. }
  669. };
  670. if (this.screen.agentId) {
  671. parames.query.agentId = this.screen.agentId
  672. }
  673. this.$u.post("/customer/findbypage", parames).then(data => {
  674. this.LOADING = false
  675. // console.log(data)
  676. let list = data.records || [];
  677. if(this.isRefresh){
  678. this.recordList = list;
  679. }else{
  680. this.recordList = [].concat(this.recordList,list)
  681. }
  682. this.totalRecord = data.pages;
  683. this.totalRecords = data.total;
  684. if(this.staTime && this.endtime) {
  685. this.arriveFilter = `${this.staTime}-${this.endtime}`
  686. }
  687. }).catch(e => {
  688. this.LOADING = false
  689. })
  690. },
  691. //获取顾问列表
  692. getFreeList() {
  693. this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {houseId: this.buildingID}).then(res => {
  694. this.freeList = res;
  695. this.freeList.forEach(item => {
  696. item.label = item.name;
  697. item.value = item.accountId
  698. })
  699. this.freeList.unshift({
  700. label: '全部',
  701. value: ''
  702. })
  703. })
  704. },
  705. //select接待顾问
  706. actionSelectCallback(e) {
  707. if(e[0].label=='全部'){
  708. this.counselorName = '接待顾问'
  709. this.screen.agentId = ''
  710. }else{
  711. this.screen.agentId = e[0].value;
  712. this.counselorName = e[0].label
  713. }
  714. this.recordList = [];
  715. this.nextPage = 1;
  716. this.isRefresh = false;
  717. this.getMyCustom();
  718. },
  719. reset() {
  720. this.screen.agentId = ''
  721. this.screen.validInvalid = ''
  722. this.screen.markAdvisor = ''
  723. this.screen.orderBy = '';
  724. this.screen.jiedaiVal = []
  725. this.screen.wajueVal = []
  726. this.screen.xiaojiangVal = []
  727. this.screen.visitRecord = []
  728. this.screen.marketingBusiness = []
  729. this.sortText = '排序';
  730. this.arriveFilter = '接待时间';
  731. this.staTime = '';
  732. this.endTime = '';
  733. this.nextPage = 1;
  734. this.activeTotal = 5;
  735. this.recordList = [];
  736. this.counselorName = '接待顾问';
  737. this.visitList.forEach(i => {
  738. i.isShow = false
  739. })
  740. this.jiedaiList.forEach(i => {
  741. i.isShow = false
  742. })
  743. this.wajueList.forEach(i => {
  744. i.isShow = false
  745. })
  746. this.xiaojiangList.forEach(i => {
  747. i.isShow = false
  748. })
  749. this.templateList.forEach(i => {
  750. i.isShow = false
  751. })
  752. this.isRefresh = false;
  753. this.getMyCustom();
  754. },
  755. choice(item) {
  756. item.isShow = !item.isShow;
  757. },
  758. // 标记顾问
  759. screenvisitRecord(i) {
  760. if (this.screen.markAdvisor === i) {
  761. this.screen.markAdvisor = ''
  762. } else {
  763. this.screen.markAdvisor = i
  764. }
  765. },
  766. // 录音标识
  767. screenvisivalidInvalid(i) {
  768. if (this.screen.validInvalid == i) {
  769. this.screen.validInvalid = null
  770. } else {
  771. this.screen.validInvalid = i
  772. }
  773. },
  774. screensure() {
  775. this.screenShow = false;
  776. this.recordList = [];
  777. this.nextPage = 1;
  778. this.isRefresh = false;
  779. this.getMyCustom();
  780. },
  781. goSearch() {
  782. uni.navigateTo({
  783. url: '/pages/center/records/recordSearch'
  784. });
  785. },
  786. },
  787. filters: {
  788. // 加密手机号
  789. encryption(phone) {
  790. if (!phone) return
  791. return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
  792. }
  793. }
  794. }
  795. </script>
  796. <style lang="scss" scoped>
  797. .box {
  798. width: 100%;
  799. height: 100%;
  800. background: #F8F8F8;
  801. }
  802. .timeview {
  803. height: 90rpx;
  804. line-height: 90rpx;
  805. width: 100%;
  806. text-align: center;
  807. border-bottom: 1rpx solid #F8F8F8;
  808. }
  809. //时间切换的样式
  810. .boxtittab {
  811. position: sticky;
  812. top: var(--window-top);
  813. z-index: 999;
  814. width: 100;
  815. height: 92rpx;
  816. background: #FFFFFF;
  817. display: flex;
  818. align-items: center;
  819. .tabbox {
  820. flex-shrink: 0;
  821. flex-grow: 1;
  822. height: 100%;
  823. text-align: center;
  824. line-height: 92rpx;
  825. color: #666666;
  826. font-size: 28rpx;
  827. overflow: hidden;
  828. text-overflow: ellipsis;
  829. display: -webkit-box;
  830. /* 将对象作为弹性伸缩盒子模型显示 */
  831. -webkit-line-clamp: 1;
  832. /* 控制最多显示几行 */
  833. -webkit-box-orient: vertical;
  834. /* 设置或检索伸缩盒对象的子元素的排列方式 */
  835. }
  836. .activeColor{
  837. font-weight: bold;
  838. color: #2671E2;
  839. }
  840. }
  841. .search-box {
  842. width: 100%;
  843. height: 102rpx;
  844. background: #FFFFFF;
  845. display: flex;
  846. align-items: center;
  847. justify-content: center;
  848. .search {
  849. width: 94%;
  850. height: 70rpx;
  851. display: flex;
  852. align-items: center;
  853. background: #F8F8F8;
  854. border-radius: 33rpx;
  855. .search-img {
  856. width: 26rpx;
  857. height: 30rpx;
  858. margin-left: 20rpx;
  859. .search-img1 {
  860. width: 100%;
  861. height: 100%;
  862. margin-top: 2rpx;
  863. }
  864. }
  865. .search-text {
  866. font-size: 28rpx;
  867. font-weight: 400;
  868. color: #999999;
  869. margin-left: 10rpx;
  870. }
  871. }
  872. .search-screen {
  873. width: 40rpx;
  874. height: 40rpx;
  875. margin-left: 30rpx;
  876. .search-screen1 {
  877. width: 100%;
  878. height: 100%;
  879. }
  880. }
  881. }
  882. .count {
  883. width: 100%;
  884. height: 82rpx;
  885. line-height: 82rpx;
  886. display: flex;
  887. align-items: center;
  888. justify-content: center;
  889. background-color: #f8f8f8;
  890. font-size: 30rpx;
  891. font-family: PingFangSC-Regular, PingFang SC;
  892. font-weight: 400;
  893. color: #333333;
  894. text {
  895. color: #E7483C;
  896. }
  897. }
  898. .content {
  899. .content-tips {
  900. background: #fff;
  901. box-sizing: border-box;
  902. overflow: hidden;
  903. margin-bottom: 20rpx;
  904. &:last-child{
  905. margin-bottom: 0
  906. }
  907. .content-first {
  908. padding: 0 30rpx;
  909. height: 92rpx;
  910. border-bottom: 1rpx solid #D8D8D8;
  911. display: flex;
  912. align-items: center;
  913. justify-content: space-between;
  914. .left {
  915. flex-shrink: 0;
  916. min-width: 40%;
  917. display: flex;
  918. align-items: center;
  919. overflow: hidden;
  920. .adviser {
  921. margin-right: 10rpx;
  922. padding: 5rpx 11rpx;
  923. border-radius: 50%;
  924. border: 1rpx solid #2671E2;
  925. font-size: 30rpx;
  926. color: #2671E2;
  927. }
  928. .img {
  929. width: 52rpx;
  930. height: 52rpx;
  931. background: #FFFFFF;
  932. border: 1px solid #C9C9C9;
  933. border-radius: 50%;
  934. text-align: center;
  935. }
  936. .name {
  937. color: #333333;
  938. font-size: 32rpx;
  939. font-weight: bold;
  940. }
  941. .status {
  942. margin-left: 19rpx;
  943. width: 110rpx;
  944. background: #FFF9F5;
  945. border-radius: 4rpx;
  946. font-size: 26rpx;
  947. font-weight: 400;
  948. color: #EC8D49;
  949. text-align: center;
  950. }
  951. }
  952. .right {
  953. flex: 1;
  954. display: flex;
  955. font-size: 30rpx;
  956. justify-content: flex-end;
  957. view,
  958. text {
  959. flex-shrink: 0;
  960. }
  961. .point {
  962. flex-shrink: 0;
  963. width: 12rpx;
  964. height: 12rpx;
  965. background: #2B6EFF;
  966. border-radius: 50%;
  967. margin-right: 9rpx;
  968. margin-top: 16rpx;
  969. }
  970. }
  971. }
  972. .content-sec {
  973. padding: 28rpx 30rpx 32rpx;
  974. display: flex;
  975. justify-content: space-between;
  976. .left {
  977. display: flex;
  978. align-items: center;
  979. .adviser {
  980. margin-right: 10rpx;
  981. padding: 5rpx 11rpx;
  982. border-radius: 50%;
  983. border: 1rpx solid #2671E2;
  984. background: #2671E2;
  985. font-size: 30rpx;
  986. color: #fff;
  987. }
  988. .cus {
  989. font-size: 30rpx;
  990. font-weight: 400;
  991. color: #333;
  992. overflow: hidden;
  993. text-overflow: ellipsis;
  994. display: -webkit-box;
  995. line-height: 23px;
  996. max-height: 46px;
  997. -webkit-line-clamp: 1;
  998. -webkit-box-orient: vertical;
  999. }
  1000. .arriveNum {
  1001. font-size: 30rpx;
  1002. font-weight: 400;
  1003. margin-left: 10rpx;
  1004. }
  1005. }
  1006. .right {
  1007. font-size: 28rpx;
  1008. font-weight: 400;
  1009. display: flex;
  1010. align-items: center;
  1011. }
  1012. }
  1013. .content-newadd{
  1014. padding: 0 30rpx 34rpx;
  1015. display: flex;
  1016. align-items: center;
  1017. justify-content: space-between;
  1018. font-size: 30rpx;
  1019. color: #333;
  1020. }
  1021. .content-last {
  1022. padding: 0 30rpx 34rpx;
  1023. font-size: 30rpx;
  1024. font-weight: 400;
  1025. color: #666666;
  1026. display: flex;
  1027. align-items: center;
  1028. justify-content: space-between;
  1029. .c-items {
  1030. flex-shrink: 0;
  1031. display: flex;
  1032. align-items: center;
  1033. font-size: 28rpx;
  1034. .c-items-img {
  1035. margin-right: 10rpx;
  1036. width: 32rpx;
  1037. height: 32rpx;
  1038. }
  1039. }
  1040. }
  1041. }
  1042. }
  1043. // 这是弹出层
  1044. .screen {
  1045. width: 750rpx;
  1046. .screen-counselor {
  1047. display: flex;
  1048. height: 106rpx;
  1049. padding: 0 30rpx;
  1050. box-sizing: border-box;
  1051. border-bottom: 1px solid #EEEEEE;
  1052. .screen-text {
  1053. margin: 40rpx 0 36rpx 0;
  1054. font-size: 30rpx;
  1055. font-weight: 400;
  1056. color: #333333;
  1057. line-height: 30rpx;
  1058. }
  1059. .screen-sel {
  1060. display: flex;
  1061. justify-content: space-between;
  1062. width: 500rpx;
  1063. margin-left: 60rpx;
  1064. .screen-sel-img {
  1065. margin: 40rpx 0 36rpx 0;
  1066. width: 14rpx;
  1067. height: 30rpx;
  1068. }
  1069. .screen-inp {
  1070. margin-top: 20rpx;
  1071. }
  1072. }
  1073. }
  1074. .screen-record {
  1075. overflow: hidden;
  1076. padding: 0 30rpx;
  1077. box-sizing: border-box;
  1078. border-bottom: 1px solid #e0e0e0;
  1079. .screen-record-text {
  1080. padding: 30rpx 0;
  1081. font-size: 30rpx;
  1082. font-weight: 600;
  1083. color: #333333;
  1084. line-height: 30rpx;
  1085. display: flex;
  1086. align-items: center;
  1087. justify-content: space-between;
  1088. .arrow {
  1089. width: 30rpx;
  1090. height: 14rpx;
  1091. }
  1092. }
  1093. .screen-record-tab {
  1094. margin-top: 30rpx;
  1095. padding-bottom: 10rpx;
  1096. display: flex;
  1097. flex-wrap: wrap;
  1098. .screen-record-item {
  1099. min-width: 150rpx;
  1100. padding: 0 14rpx;
  1101. height: 60rpx;
  1102. border-radius: 8rpx;
  1103. text-align: center;
  1104. line-height: 60rpx;
  1105. margin: 0 22rpx 22rpx 0;
  1106. &:nth-child(4n) {
  1107. margin-right: 0;
  1108. }
  1109. }
  1110. .screen-record-chose {
  1111. background: #F1F6FD;
  1112. color: #2671E2;
  1113. }
  1114. .screen-record-nochose {
  1115. background: #F7F8FA;
  1116. color: #333;
  1117. }
  1118. }
  1119. }
  1120. .screen-foot {
  1121. width: 100%;
  1122. height: 78rpx;
  1123. display: flex;
  1124. margin: 30rpx 30rpx 0;
  1125. .screen-foot-reset {
  1126. width: 176rpx;
  1127. height: 78rpx;
  1128. line-height: 78rpx;
  1129. background: #FFFFFF;
  1130. border-radius: 8rpx;
  1131. border: 1px solid #2671E2;
  1132. margin-right: 30rpx;
  1133. font-size: 30rpx;
  1134. font-family: PingFangSC-Regular, PingFang SC;
  1135. font-weight: 400;
  1136. color: #2671E2;
  1137. text-align: center;
  1138. }
  1139. .screen-foot-sure {
  1140. width: 484rpx;
  1141. height: 78rpx;
  1142. line-height: 78rpx;
  1143. background: #2671E2;
  1144. border: 1px solid #2671E2;
  1145. border-radius: 8rpx;
  1146. font-size: 30rpx;
  1147. font-family: PingFangSC-Regular, PingFang SC;
  1148. font-weight: 400;
  1149. color: #FFFFFF;
  1150. text-align: center;
  1151. }
  1152. }
  1153. }
  1154. </style>