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.
 
 
 

613 line
16 KiB

  1. <template>
  2. <div class="box-center">
  3. <div class="topbox">
  4. <div class="topzuo">
  5. <div class="title" style="display: flex;">
  6. <div style="flex:1;">
  7. <span class="span1">首次到访</span>
  8. <span class="span2">无效录音|未标注|反面案例</span>
  9. </div>
  10. <div style="width: 120px;display: flex;color:#2671E2;">
  11. <div>加精</div>
  12. <div style="margin-left: 20px;">接待标记</div>
  13. </div>
  14. </div>
  15. <div class="title" style="margin-top: 6px;">
  16. <span class="span3">宋先生</span>
  17. <span class="span2">2021-10-01 10:00:00</span>
  18. </div>
  19. <div style="display: flex;width: 100%;">
  20. <div class="aplayer" id="aplayer"></div>
  21. <div style="margin-left: -5px; margin-top: 21px;" @click="download()">
  22. <img style="width:12px;height:12px;"
  23. src="/img/xiaza1.png" alt="">
  24. </div>
  25. </div>
  26. <div class="aplayerSpeed">
  27. <div style="display: flex; justify-content: space-around; width: 130px;">
  28. <div @click="aplayerChange('del')" style="cursor:pointer">上一首</div>
  29. <div style="cursor:pointer">{{(aplayerId/1+1)+'/'+aplayerLength}}</div>
  30. <div @click="aplayerChange('add')" style="cursor:pointer">下一首</div>
  31. </div>
  32. <div @click="aplayerSpeed(0.5)" :class="aplayerSpeedNum==0.5?'aplayerSpeedFont':''" style="cursor:pointer">0.5x</div>
  33. <div @click="aplayerSpeed(1)" :class="aplayerSpeedNum==1?'aplayerSpeedFont':''" style="cursor:pointer">1.0x</div>
  34. <div @click="aplayerSpeed(1.5)" :class="aplayerSpeedNum==1.5?'aplayerSpeedFont':''" style="cursor:pointer">1.5x</div>
  35. <div @click="aplayerSpeed(2)" :class="aplayerSpeedNum==2?'aplayerSpeedFont':''" style="cursor:pointer">2.0x</div>
  36. </div>
  37. </div>
  38. <div class="topyou" >
  39. <div style="font-size:16px;">
  40. 客户:<span style="color: #2671E2;">李先生</span>
  41. </div>
  42. <div style="display: flex;font-size:15px;margin-top: 8px;">
  43. <div style="width:40%;">
  44. <div style="margin-top: 6px;">负责顾问:李先生</div>
  45. <div style="margin-top: 6px;">接待时长:155min</div>
  46. <div style="margin-top: 6px;">客户等级:A</div>
  47. </div>
  48. <div style="width:60%;">
  49. <div style="margin-top: 6px;">到访次数:3次</div>
  50. <div style="margin-top: 6px;">最近到访:2021-10-01 14:00:00</div>
  51. <div style="margin-top: 6px;">客户阶段:初访</div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. <div class="topbox1">
  57. <div class="topzuo">
  58. <div class="topzuo-zuo">
  59. <div class="zuo-titbox">
  60. <div class="searchbox">
  61. <div style="flex:1;">
  62. <div style="width:96%;display: flex;margin:0 auto;">
  63. <div class="input" >请输入关键词</div>
  64. <div class="input2">搜索</div>
  65. </div>
  66. </div>
  67. <div style="width:100px;display: flex; justify-content: center;align-items: center;">
  68. <div class="searchbutt">文本优化</div>
  69. </div>
  70. </div>
  71. <div class="headboxbott">
  72. <div class="headovfu">
  73. <div style="width: 100%;display: flex;" class="inner-container">
  74. <div @click="tapspagek(index)" :class="{ roleindexclass: roleindex == index }" class="biaoji1"
  75. v-for="(item,index) in tablist" :key="index">{{item.name}}</div>
  76. </div>
  77. </div>
  78. <div class="headpade">
  79. <div class="biaoji" @click="biaoji()">标记</div>
  80. </div>
  81. </div>
  82. <div style="width: 100%">
  83. <div class="center2" style="width: 100%;height:410px;overflow-y: scroll;">
  84. <div class="text" :data-bg="item.bg" :data-ed="item.ed"
  85. v-for="(item,index) in list" :key="index" :data-speaker="item.speaker">
  86. <div class="avatar">
  87. <div v-if="item.speaker == 1">
  88. <img style="margin: 0 auto;" v-if="item.isShow == 1" src="http://121.42.63.138:9091/autoSR/static/plugins/audio/images/A.png" alt="">
  89. <div v-else>A</div>
  90. </div>
  91. </div>
  92. <div class="content123" style="cursor:pointer;">
  93. <div v-html="item.onebest"></div>
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. <div class="topzuo-you">
  101. <div style="width: 100%;height: 44px;border-bottom: 1rpx solid #E0E0E0;display: flex;align-items: center;border-bottom: 1px solid #E0E0E0;">
  102. <div style="flex: 1;font-size: 16px;color: #333333;text-indent:5%;">客户意向</div>
  103. <div style="flex: 1;font-size: 16px;color: #2671E2;text-indent:70%;">校准</div>
  104. </div>
  105. <div class="pingfenbox" >
  106. <div :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">
  107. 系统分析
  108. </div>
  109. <div :class="{ activecllasscet: zhixingcenterindex == 1 }" @click="recordclick(1)">人工校准</div>
  110. </div>
  111. <div>
  112. <div class="intentionBox">
  113. <div class="intentionName">置业需求</div>
  114. <div class="intentionChe">
  115. <div>投资</div>
  116. <div>管家</div>
  117. <div>婚房</div>
  118. <div>山水相逢</div>
  119. <div>青山不改</div>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. </div>
  125. <div class="topyou">
  126. <div class="pingfenbox" >
  127. <div :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率10%</div>
  128. <div :class="{ activecllasscet: zhixingcenterindex == 1 }" @click="recordclick(1)">禁忌执行</div>
  129. </div>
  130. <div>
  131. <div style="width: 100%;height: 44px;border-bottom: 1rpx solid #E0E0E0;display: flex;align-items: center;">
  132. <div style="width:60%;font-size: 16px;color: #333333;text-indent:20px;">指标</div>
  133. <div style="width:40%;flex: 1;font-size: 16px;color: #333333;">
  134. <div style="width:60px; text-align: center;">执行率</div>
  135. </div>
  136. </div>
  137. </div>
  138. <div>
  139. <div class="zxlBox">
  140. <div class="zxlLev1">
  141. <div style="width:60%;" class="zxlLev1box">超市 29%</div>
  142. <div style="width:40%;">
  143. <div style="width:60px; text-align: center;"> <i style=" font-size: 18px;" class="el-icon-arrow-down"></i> </div>
  144. </div>
  145. </div>
  146. <div class="zxlLev2">
  147. <div style="width:60%;" class="zxlLev2tit">蔬菜</div>
  148. <div style="width:40%;display: flex;align-items: center;">
  149. <div class="zxlzx">执行</div>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. </template>
  158. <script>
  159. import "aplayer/dist/APlayer.min.css";
  160. import APlayer from "aplayer";
  161. export default {
  162. data() {
  163. return {
  164. aplayer: null,
  165. aplayerSpeedNum: "1", //点击字体更换
  166. arr: [],
  167. aplayerId: 0,
  168. aplayerLength: 0,
  169. audioList: [
  170. {
  171. name: "音频1",
  172. url: "https://static.quhouse.com/audio/d7879fbcdfcc436189ce79e643e0aeb8.mp3",
  173. },
  174. {
  175. name: "音频2",
  176. url: "https://static.quhouse.com/record/dev/2021-09-26/1632648911706-56129.mp3",
  177. },
  178. ],
  179. tablist:[ {name:'全部',}, {name:'A',}, {name:'b',}, {name:'c',},{name:'c',},{name:'c',},{name:'c',},],
  180. roleindex:0,
  181. zhixingcenterindex:0,
  182. list:[]
  183. };
  184. },
  185. mounted() {
  186. this.bofangchushihua();
  187. this.init()
  188. },
  189. methods: {
  190. init(){
  191. this.$api.http.findByCusIdcusId({cusId:'e9d0e3b6a34f41abb3691d89b83fe9e5'}).then((res) => {
  192. this.list=JSON.parse(res.data[0].audioContent)
  193. console.log(this.list)
  194. })
  195. },
  196. recordclick(i){
  197. this.zhixingcenterindex=i;
  198. },
  199. tapspagek(i){
  200. this.roleindex=i;
  201. },
  202. bofangchushihua() {
  203. var that = this;
  204. this.$nextTick(() => {
  205. this.aplayer = new APlayer({
  206. container: document.getElementById("aplayer"),
  207. theme: "#2671E2",
  208. audio: [
  209. {
  210. url: "https://static.quhouse.com/audio/d7879fbcdfcc436189ce79e643e0aeb8.mp3",
  211. cover:"https://qufang.oss-cn-beijing.aliyuncs.com/recording/1626251359408.png",
  212. }
  213. ],
  214. });
  215. //结束的回调
  216. this.aplayer.on("ended", function () {
  217. console.log("player ended");
  218. });
  219. this.aplayer.on("timeupdate", function () {
  220. // that.drawActive(that.aplayer.audio.currentTime * 1000);
  221. });
  222. });
  223. },
  224. },
  225. };
  226. </script>
  227. <!-- Add "scoped" attribute to limit CSS to this component only -->
  228. <style scoped lang="scss" >
  229. .box-center {
  230. width: 100%;
  231. padding: 15px;
  232. min-width: 1200px;
  233. padding-bottom: 100px;
  234. background: #FFFFFF;
  235. }
  236. // 播放
  237. .center2{
  238. padding-left: 10px;
  239. padding-right: 10px;
  240. }
  241. .text {
  242. width: 100%;
  243. font-size: 12px;
  244. line-height: 20px;
  245. display: flex;
  246. align-items: center;
  247. margin:18px 0px;
  248. position: relative;
  249. }
  250. .text[data-speaker="2"],
  251. .text[data-speaker="4"],
  252. .text[data-speaker="6"] {
  253. flex-direction: row-reverse;
  254. text-align: left;
  255. }
  256. .content123 div{
  257. color:#ffffff;
  258. font-size:14px;
  259. padding:5px 14px;
  260. background:#3ca953;
  261. /*background: rgb(79,194,103);*/
  262. border-radius:8px;
  263. margin: 0 12px;
  264. line-height: 1.5;
  265. max-width: 365px;
  266. }
  267. .center2 .text .avatar{
  268. width: 34px;
  269. height:34px;
  270. background-color: #ccc;
  271. border-radius: 50%;
  272. // margin-left: 15px;
  273. display: flex;
  274. justify-content: center;
  275. align-items: center;
  276. }
  277. .center2 .text .avatar img{
  278. width: 28px;
  279. height:28px;
  280. display: block;
  281. }
  282. .center2 .text .avatar div{
  283. width: 100%;
  284. height: 100%;
  285. text-align: center;
  286. line-height: 38px;
  287. color: #ffffff;
  288. font-size: 24px;
  289. }
  290. //指标执行率
  291. .zxlBox{
  292. width: 100%;
  293. .zxlLev1{
  294. width: 100%;
  295. height: 40px;
  296. line-height: 40px;
  297. display: flex;
  298. align-items: center;
  299. background: #F8F8F8;
  300. font-size: 15px;
  301. }
  302. .zxlLev1box{
  303. text-indent: 20px;
  304. }
  305. .zxlLev2{
  306. width: 100%;
  307. height: 40px;
  308. line-height: 40px;
  309. display: flex;
  310. border-bottom: 1px solid #F8F8F8;
  311. font-size: 14px;
  312. .zxlzx{
  313. width: 60px;
  314. height: 24px;
  315. line-height: 24px;
  316. background: #2671E2;
  317. text-align: center;
  318. color: #FFFFFF;
  319. border-radius:4px ;
  320. }
  321. }
  322. .zxlLev2tit{
  323. line-height: 40px;
  324. text-indent: 20px;
  325. }
  326. }
  327. //客户意向
  328. .intentionBox{
  329. width: 94%;
  330. margin: 0 auto;
  331. padding-bottom: 12px;
  332. border-bottom: 1px solid #E0E0E0;
  333. }
  334. .intentionChe{
  335. width: 100%;
  336. display: flex;
  337. flex-wrap: wrap;
  338. }
  339. .intentionName{
  340. font-size: 16px;;
  341. margin-top: 10px;
  342. }
  343. .intentionChe div{
  344. padding: 4px 10px;
  345. background: #F4F8FD;
  346. margin-left: 6px;
  347. border-radius:6px ;
  348. color: #2671E2;
  349. font-size: 14px;
  350. margin-top: 10px;
  351. }
  352. .topbox{
  353. width: 100%;
  354. display: flex;
  355. .topzuo{
  356. width:75% ;
  357. min-width: 800px;
  358. height: 140px;
  359. background: #FFFFFF;
  360. border: 1px solid #E0E0E0;
  361. padding: 10px;
  362. position: relative;
  363. .title{
  364. color: #32363D;
  365. .span1{
  366. font-size: 16px;
  367. font-weight: 600;
  368. margin-left: 2px;
  369. }
  370. .span2{
  371. font-size: 14px;
  372. margin-left: 10px;
  373. }
  374. .span3{
  375. font-size: 16px;
  376. margin-left: 2px;
  377. }
  378. }
  379. }
  380. .topyou{
  381. width:24% ;
  382. min-width: 380px;
  383. height: 140px;
  384. padding: 10px;
  385. background: #FFFFFF;
  386. border: 1px solid #E0E0E0;
  387. margin-left: 20px;
  388. }
  389. }
  390. .input{
  391. width: 94%;
  392. height: 32px;
  393. line-height: 32px;
  394. background: #FFFFFF;
  395. border-radius: 2px 0px 0px 2px;
  396. text-indent: 6px;
  397. border: 1px solid #E0E0E0;
  398. }
  399. .input2{
  400. width: 70px;
  401. height: 32px;
  402. line-height: 32px;
  403. background: #2671E2;
  404. border-radius:0px 2px 2px 0px;
  405. color: #FFFFFF;
  406. text-align: center;
  407. }
  408. .topbox1{
  409. width: 100%;
  410. display: flex;
  411. margin-top: 18px;
  412. height: calc(80vh - 150px);
  413. .topzuo{
  414. width:75% ;
  415. min-width: 800px;
  416. height: 100%;
  417. display: flex;
  418. .topzuo-zuo{
  419. width: 60%;
  420. height: 100%;
  421. background: #FFFFFF;
  422. border: 1px solid #E0E0E0;
  423. .zuo-titbox{
  424. width: 100%;
  425. height: 100px;
  426. border-bottom: 1px solid #E0E0E0;
  427. .searchbox{
  428. width: 100%;
  429. height: 50px;
  430. display: flex;
  431. margin-top: 6px;
  432. justify-content: center;
  433. align-items: center;
  434. .searchbutt{
  435. width: 80px;
  436. height: 32px;
  437. line-height: 32px;
  438. background: #2671E2;
  439. border-radius: 2px;
  440. color: #FFFFFF;
  441. // margin-left: 20px;
  442. text-align: center;
  443. }
  444. }
  445. }
  446. }
  447. .topzuo-you{
  448. width: 39%;
  449. height: 100%;
  450. margin-left: 18px;
  451. background: #FFFFFF;
  452. border: 1px solid #E0E0E0;
  453. }
  454. }
  455. .topyou{
  456. width:24% ;
  457. min-width: 380px;
  458. height: 100%;
  459. background: #FFFFFF;
  460. border: 1px solid #E0E0E0;
  461. margin-left: 20px;
  462. }
  463. }
  464. .roleindexclass{
  465. background: #2671E2;
  466. color: #FFFFFF;
  467. }
  468. .headboxbott{
  469. width: 100%;
  470. height:50px;
  471. display: flex;
  472. align-items: center;
  473. }
  474. .headovfu{
  475. flex: 1;
  476. height: 40px;
  477. overflow: hidden;
  478. margin-top: 10px;
  479. }
  480. .headpade{
  481. width: 100px;
  482. height: 40px;
  483. display: flex;
  484. justify-content: center;
  485. align-items: center;
  486. }
  487. .biaoji{
  488. width: 70px;
  489. height: 30px;
  490. background: #E6625B;
  491. border-radius: 24px;
  492. text-align: center;
  493. line-height: 30px;
  494. color: #FFFFFF;
  495. }
  496. .biaoji1{
  497. width: 70px;
  498. height: 30px;
  499. text-align: center;
  500. line-height: 30px;
  501. margin-left: 10px;
  502. flex-shrink: 0;
  503. border-radius: 4px;
  504. }
  505. .inner-container{
  506. overflow-x: scroll;
  507. height: 40px;
  508. }
  509. /*滚动条样式*/
  510. .inner-container::-webkit-scrollbar {
  511. height: 4px;
  512. }
  513. .inner-container::-webkit-scrollbar-thumb {
  514. border-radius: 10px;
  515. -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
  516. background: rgba(0,0,0,0.2);
  517. }
  518. .inner-container::-webkit-scrollbar-track {
  519. -webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
  520. border-radius: 0;
  521. background: rgba(0,0,0,0.1);
  522. }
  523. .aplayer{
  524. box-shadow:none;
  525. /*width: 80%;*/
  526. width: 95.3%;
  527. }
  528. .aplayer-author{
  529. display: none;
  530. }
  531. .aplayerSpeed{
  532. display: flex;
  533. /*justify-content: space-around;*/
  534. justify-content: space-between;
  535. padding: 0 10px;
  536. font-size: 14px;
  537. color: #999;
  538. /*width: 616px;*/
  539. width: 86.5%;
  540. margin: 0 auto;
  541. position: absolute;
  542. left: 78px;
  543. bottom: 12px;
  544. }
  545. /deep/.aplayer-pic{
  546. width: 60px !important;
  547. height: 60px !important;
  548. }
  549. /deep/.aplayer-music{
  550. display: none !important;
  551. }
  552. .aplayer-controller{
  553. margin-top: 15px;
  554. }
  555. .aplayerSpeedFont{
  556. color: #2671E2;
  557. }
  558. /deep/.aplayer-info{
  559. padding: 22px 7px 0px 10px;;
  560. }
  561. .pingfenbox{
  562. width: 100%;
  563. height: 46px;
  564. line-height: 46px;
  565. border-bottom: 1px solid #E0E0E0;
  566. display: flex;
  567. }
  568. .pingfenbox div{
  569. flex: 1;
  570. text-align: center;
  571. font-size: 16px;
  572. }
  573. .activecllasscet{
  574. color: #2671E2;
  575. border-bottom: 2px solid #2671E2;
  576. }
  577. </style>