AI销管
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

1314 satır
30 KiB

  1. <template>
  2. <view class="box">
  3. <view class="content">
  4. <view class="content-tips">
  5. <view class="content-first">
  6. <view class="left">
  7. <view v-if="customerInfo.level.length==0"></view>
  8. <view class="img A" v-else-if="customerInfo.level==1">A</view>
  9. <view class="img B" v-else-if="customerInfo.level==2">B</view>
  10. <view class="img C" v-else-if="customerInfo.level==3">C</view>
  11. <view class="img D" v-else-if="customerInfo.level==4">D</view>
  12. <view class="test">
  13. {{customerInfo.name || '--'}}
  14. <view v-if="customerInfo.clientStageName" class="clientStageName">{{ customerInfo.clientStageName }}</view>
  15. </view>
  16. <view class="edit" @click="goedit()" v-if="isHavePermission">
  17. <image class="screen-sel-img" src="../../../static/images/edit.png" mode=""></image>
  18. </view>
  19. </view>
  20. <!-- <view class="right">
  21. <view class="point"></view>
  22. <view class="test">定金</view>
  23. </view> -->
  24. </view>
  25. <view class="content-sec">
  26. <view class="content-sec-lab">
  27. 手机号码:<view class="content-sec-lab1">
  28. {{customerInfo.phone | phoneText}}
  29. </view>
  30. </view>
  31. <view class="content-sec-lab" @click.stop="tipupon">
  32. 客户标签:
  33. <text v-if="!customerInfo.demand.cusSemanticWordsList">暂无</text>
  34. <view v-else class="content-sec-tips"
  35. v-for="(che,ind) in customerInfo.demand.cusSemanticWordsList" :key='ind'>{{che.name}}</view>
  36. <view class="conmsg-msg-lab-img" v-if="customerInfo.demand.cusSemanticWordsList.length>0">
  37. <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
  38. </view>
  39. </view>
  40. <view class="content-sec-lab">
  41. 顾问姓名:<view class="content-sec-lab1">{{customerInfo.agentName}}</view>
  42. </view>
  43. <view class="content-sec-lab">
  44. 添加时间:<view class="content-sec-lab1">{{customerInfo.createTime}}</view>
  45. </view>
  46. <view class="content-sec-num">
  47. <view class="">{{customerInfo.visitRecord || '--'}}次到访</view>
  48. <view class="">{{customerInfo.fraction || '0'}}% | {{customerInfo.mm || '0'}}<text
  49. style="font-size: 24rpx;">min</text></view>
  50. </view>
  51. </view>
  52. <view class="content-last">
  53. <view class="content-last-con">
  54. 备注:{{customerInfo.remarks ? customerInfo.remarks : "暂无"}}
  55. </view>
  56. </view>
  57. </view>
  58. </view>
  59. <view class="tabchange">
  60. <view class="tab">
  61. <view class="tabbox">
  62. <view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">接待记录</view>
  63. </view>
  64. <view class="tabbox">
  65. <view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">跟进记录</view>
  66. </view>
  67. <view class="tabbox">
  68. <view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">执行率</view>
  69. </view>
  70. </view>
  71. <!-- 接待记录 -->
  72. <view class="tabactive1" v-if="activeTotal==0" style="min-height: 800rpx;">
  73. <view v-if="Thevisitingrecords.length==0"
  74. style="width: 100%;height: 100%;display: flex;align-items: center;">
  75. <view style="width: 100%;padding-top: 60rpx;">
  76. <view style="width: 100%;text-align: center;">
  77. <image style="width: 220rpx;height: 200rpx;"
  78. src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
  79. </view>
  80. <view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
  81. </view>
  82. </view>
  83. <view v-if="Thevisitingrecords.length!=0" class="content-tips"
  84. v-for="(item,index) in Thevisitingrecords" :key="index" @click="tapThevisiting(item)">
  85. <view class="content-first">
  86. <view class="left">
  87. <view class="name">{{item.agentName || '--'}}</view>
  88. <view class="status" v-if="item.replaceReception==1">代接待</view>
  89. </view>
  90. <!-- <view class="right">
  91. <view class="point"></view>
  92. <view class="">优秀案例</view>
  93. </view> -->
  94. </view>
  95. <view class="content-sec">
  96. <view class="left">
  97. <view class="cus" style="line-height: 46rpx;">客户:{{item.name || ''}} |</view>
  98. <view style="line-height: 46rpx;" class="arriveNum">{{item.visitRecord || '--'}}次到访</view>
  99. </view>
  100. <view class="right">{{item.fraction || '0'}}%</view>
  101. </view>
  102. <view class="content-last">{{item.createTime}} | {{item.mm || '--'}}min</view>
  103. </view>
  104. </view>
  105. <!-- 跟进记录 -->
  106. <view class="tabactive2" v-if="activeTotal==1" style="min-height: 600rpx;">
  107. <view v-if="fllowList.length==0"
  108. style="width: 100%;height:600rpx;display: flex;align-items: center;background-color: #FFFFFF;">
  109. <view style="width: 100%;padding-top: 60rpx;">
  110. <view style="width: 100%;text-align: center;">
  111. <image style="width: 220rpx;height: 200rpx;"
  112. src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
  113. </view>
  114. <view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
  115. </view>
  116. </view>
  117. <view v-if="fllowList.length!=0" class="tab2-tips" v-for="(item,index) in fllowList" :key="index">
  118. <view class="tab2-first">
  119. <view class="tab2-first-1">
  120. <view class="tab2-first-left">
  121. <view class="img">{{item.agentName.slice(0,1) || '--'}}</view>
  122. <view class="name">{{item.agentName || '||'}}</view>
  123. <view v-if="item.clientStageName" class="clientStageName">{{ item.clientStageName }}</view>
  124. </view>
  125. <view class="tab2-first-right">{{item.createTime}}</view>
  126. </view>
  127. <view class="tab2-first-foot">跟进内容:{{item.remarks || '暂无'}}</view>
  128. </view>
  129. <!-- <view class="tab2-sec">
  130. <view class="tab-sec-edit">编辑记录</view>
  131. </view> -->
  132. </view>
  133. </view>
  134. <!-- 评分 -->
  135. <view class="ratecenter" v-if="activeTotal==2">
  136. <view class="ratetetle">执行总览</view>
  137. <view class="rateyuanbox">
  138. <view class="rateyuanboxzuo">
  139. <view class="boxzuoview cccccc">{{customerInfo.visitRecord || '--'}}次</view>
  140. <view style="color: #333333;font-size: 28rpx;font-weight: 400;text-align: center;">接待次数</view>
  141. </view>
  142. <view class="rateyuanboxyou">
  143. <view class="boxzuoview" style="width: 100%;display: flex;justify-content: center;">
  144. <u-circle-progress active-color="#4FC78F" width='139' :percent="customerInfo.fraction">
  145. <view style="text-align: center;color: #4FC78F;">{{customerInfo.fraction}}%</view>
  146. </u-circle-progress>
  147. </view>
  148. <view style="color: #333333;font-size: 28rpx;font-weight: 400;text-align: center;">销讲执行率</view>
  149. </view>
  150. <view class="rateyuanboxzuo">
  151. <view class="boxzuoview cccccc">{{customerInfo.mm}}min</view>
  152. <view style="color: #333333;font-size: 28rpx;font-weight: 400;text-align: center;">接待时长</view>
  153. </view>
  154. </view>
  155. <view
  156. style="width: 100%;height: 80rpx;border-bottom: 1rpx solid #E0E0E0;display: flex;align-items: center;">
  157. <view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 20rpx;">指标</view>
  158. <view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率
  159. </view>
  160. </view>
  161. <view v-if="ratelist.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;">
  162. <view style="width: 100%;padding-top: 60rpx;">
  163. <view style="width: 100%;text-align: center;">
  164. <image style="width: 220rpx;height: 200rpx;"
  165. src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
  166. </view>
  167. <view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
  168. </view>
  169. </view>
  170. <view class="Level-box" v-if="ratelist.length!=0" v-for="(item,index) in ratelist" :key="index">
  171. <view class="Level1che" @click="changeshow(item,1)">
  172. <view class="title1">{{item.name}}</view>
  173. <view class="leve1-jindu">
  174. <view class="jindutiao">
  175. <view class="huanxing" :style="{width: item.ratepercent/item.rate*100+'%'}"></view>
  176. <view class="text">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view>
  177. </view>
  178. </view>
  179. <view class="jiantobox">
  180. <image v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" />
  181. <image v-else class="arrow" src="/static/images/up.png" mode="" />
  182. </view>
  183. </view>
  184. <view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i">
  185. <view class="Level2che" @click="changeshow2(subitem,1)">
  186. <view class="title1">{{subitem.name}}</view>
  187. <view class="leve1-jindu">
  188. <view class="zhixing" v-if="!subitem.selected">已执行</view>
  189. <view class="zhixing2" v-else>未执行</view>
  190. </view>
  191. <view class="jiantobox">
  192. <image v-if="!subitem.show" class="arrow rotatearrow" src="/static/images/down.png"
  193. mode="" />
  194. <image v-else class="arrow" src="/static/images/up.png" mode="" />
  195. </view>
  196. </view>
  197. <view class="hsnrtest" v-if="subitem.show">话术内容</view>
  198. <view class="Level3che" @tap="clickaudeopal(che)" v-if="subitem.show"
  199. v-for="(che,inc) in subitem.children" :key='inc'>
  200. <view class="title1">{{inc+1}}.{{che.name}}</view>
  201. <view class="jiantobox">
  202. <image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png"
  203. mode="" />
  204. </view>
  205. </view>
  206. <view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view>
  207. </view>
  208. </view>
  209. </view>
  210. </view>
  211. <view class="pon-foot" v-if="buttonisshow">
  212. <!-- <view class="foot-tab" @click="goRemind">添加提醒</view> -->
  213. <!-- <view class="foot-tab">拨打电话</view> -->
  214. <view class="foot-tab" @click="followRecordAdd()">写跟进</view>
  215. </view>
  216. <!-- closeable -->
  217. <u-popup v-model="tipshow" mode="center" width="500rpx" height="500rpx" closeable>
  218. <scroll-view scroll-y="true" style="height: 440rpx;">
  219. <view style="margin-top: 60rpx; display: flex; flex-wrap: wrap; padding-left: 20rpx;">
  220. <view class="upon-sec-tips" v-for="(item,index) in customerInfo.demand.cusSemanticWords"
  221. :key="index">
  222. {{item.name}}
  223. </view>
  224. </view>
  225. </scroll-view>
  226. </u-popup>
  227. </view>
  228. </template>
  229. <script>
  230. let _this
  231. export default {
  232. data() {
  233. return {
  234. activeTotal: 0,
  235. customerId: '',
  236. tipshow: false,
  237. customerInfo: {
  238. name: '',
  239. createTime: '',
  240. agentName: ''
  241. },
  242. Thevisitingrecords: [],
  243. totalRate: [],
  244. ratelist: [],
  245. fllowList: [],
  246. userInfo: {},
  247. buttonisshow: false,
  248. isHavePermission: false
  249. }
  250. },
  251. onLoad(options) {
  252. this.customerId = options.id;
  253. _this = this
  254. },
  255. onShow() {
  256. this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
  257. console.log(this.userInfo.showPhoneStatus)
  258. if (this.userInfo.dataCode == 6) {
  259. this.buttonisshow = true;
  260. } else {
  261. this.buttonisshow = false
  262. }
  263. this.getCustomerInfo()
  264. this.tabtimetap(0)
  265. let newmenulist = uni.getStorageSync('weapp_session_Menu_data');
  266. if (newmenulist.khgl_bj == true || newmenulist.khgl_gj == true) {
  267. this.isHavePermission = true
  268. }
  269. },
  270. methods: {
  271. // 获取到访记录
  272. getVisitList() {
  273. this.$u.get("/customer/findByPhoneAndProject?id=" + this.customerId, ).then(res => {
  274. this.Thevisitingrecords = res
  275. })
  276. },
  277. // 获取客户信息
  278. getCustomerInfo() {
  279. const that = this;
  280. this.$u.get("/customer/findById", {
  281. id: this.customerId
  282. }).then(res => {
  283. if (res.fraction == null) {
  284. res.fraction = '0';
  285. }
  286. if (res.demand.cusSemanticWordsList != null) {
  287. res.demand.cusSemanticWords = res.demand.cusSemanticWordsList
  288. res.demand.cusSemanticWordsList.forEach(che => {
  289. if (che.isInterval == 0) {
  290. che.name = che.name + che.unit + '-' + che.endName + che.unit;
  291. }
  292. })
  293. res.demand.cusSemanticWordsList = res.demand.cusSemanticWordsList.slice(0, 3)
  294. }
  295. // console.log(res.demand.cusSemanticWords,'关键字')
  296. this.customerInfo = res;
  297. })
  298. },
  299. tabtimetap(idx) {
  300. this.activeTotal = idx
  301. if (idx == 0) {
  302. this.getVisitList()
  303. } else if (idx == 1) {
  304. this.getFollowList()
  305. } else {
  306. this.getRatelist()
  307. }
  308. },
  309. tapThevisiting(item) {
  310. console.log("11111111111111")
  311. uni.showLoading({
  312. title: '加载中',
  313. mask: true
  314. });
  315. if (item.yon != 0) {
  316. setTimeout(function() {
  317. uni.hideLoading();
  318. }, 2000);
  319. uni.showToast({
  320. icon: 'none',
  321. title: '暂无录音',
  322. duration: 2000
  323. });
  324. return
  325. } else {
  326. const parames = {
  327. pageNum: 1,
  328. pageSize: 100,
  329. query: {
  330. customerId: item.id,
  331. }
  332. }
  333. var item = {
  334. bg: 0,
  335. customerId: item.id,
  336. id: ''
  337. }
  338. uni.setStorageSync("entrance", 1); //写入缓存
  339. uni.setStorageSync("searchobj", item); //写入缓存
  340. this.$u.post("/corpus/findByPage", parames).then(res => {
  341. setTimeout(function() {
  342. uni.hideLoading();
  343. }, 2000);
  344. if (res == null) {
  345. uni.showToast({
  346. icon: "none",
  347. title: "暂无音频"
  348. })
  349. return
  350. }
  351. if (res[0].merge == 0) {
  352. let newobj = res[0];
  353. uni.navigateTo({
  354. url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}`
  355. })
  356. } else {
  357. let newobj = res[0];
  358. uni.navigateTo({
  359. url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"1"}`
  360. })
  361. }
  362. })
  363. }
  364. },
  365. // 获取跟进记录
  366. getFollowList() {
  367. this.fllowList = [];
  368. this.$u.post("/customer/getCusStage", {
  369. customerId: this.customerId
  370. }).then(res => {
  371. res.forEach(item => {
  372. item.agentName = this.customerInfo.agentName
  373. })
  374. this.fllowList = res;
  375. })
  376. },
  377. // 新增跟进
  378. followRecordAdd() {
  379. uni.navigateTo({
  380. url: `/pages/center/consumer/newFollowup/newFollowup?id=${this.customerId}&level=${this.customerInfo.level}&clientStageName=${this.customerInfo.clientStageName}`
  381. })
  382. },
  383. // 去编辑
  384. goedit() {
  385. let newmenulist = uni.getStorageSync('weapp_session_Menu_data');
  386. if (newmenulist.khgl_bj == true || newmenulist.khgl_gj) {
  387. uni.navigateTo({
  388. url: `/pages/center/consumer/edit?id=${this.customerId}`
  389. })
  390. }
  391. },
  392. // 去添加提醒
  393. goRemind() {
  394. uni.navigateTo({
  395. url: `/pages/center/consumer/remind?str=${this.customerInfo.name+'/'+this.customerInfo.phone}&customerId=${this.customerId}`
  396. })
  397. },
  398. //评分点击
  399. clickaudeopal(item) {
  400. if (item.selected == 0) {
  401. uni.navigateTo({
  402. url: '/pages/mine/ScoringPlaylist?customerId=' + this.customerId + "&id=" + item
  403. .marketingId + "&type=0"
  404. })
  405. }
  406. },
  407. tipupon() {
  408. if (!this.customerInfo.demand.cusSemanticWordsList) return
  409. this.tipshow = true
  410. },
  411. changeshow(item, type) {
  412. item.show = !item.show
  413. },
  414. changeshow2(item, type) {
  415. item.show = !item.show
  416. },
  417. // 获取评分
  418. getRatelist() {
  419. this.$u.get("/customer/findzkMByCusId", {
  420. cusId: this.customerId
  421. }).then(res => {
  422. if (res.length) {
  423. let level1 = []
  424. res.forEach(item => {
  425. if (item.pid == 0) {
  426. level1.push({
  427. id: item.marketingId,
  428. rate: item.fraction,
  429. name: item.name,
  430. sort: item.sort,
  431. show: false,
  432. ratepercent: 0,
  433. children: []
  434. })
  435. }
  436. })
  437. // this.totalRate = level2rate;
  438. res.forEach(subitem => {
  439. let subitempid = subitem.pid
  440. level1.forEach(item => {
  441. if (subitempid == item.id) {
  442. if (subitem.selected == 0) {
  443. item.ratepercent += subitem.fraction
  444. }
  445. item.children.push({
  446. id: subitem.id,
  447. rate: subitem.fraction,
  448. selected: subitem.selected,
  449. name: subitem.name,
  450. show: false,
  451. marketingId: subitem.marketingId,
  452. children: []
  453. })
  454. }
  455. })
  456. })
  457. res.forEach(subitem => {
  458. let subitempid = subitem.pid
  459. level1.forEach(chen => {
  460. chen.children.forEach(zxc => {
  461. if (subitempid == zxc.marketingId) {
  462. zxc.children.push({
  463. id: subitem.id,
  464. rate: subitem.fraction,
  465. selected: subitem.selected,
  466. name: subitem.name,
  467. marketingId: subitem.marketingId,
  468. })
  469. }
  470. })
  471. })
  472. })
  473. level1[0].show = true;
  474. level1[0].children[0].show = true;
  475. this.ratelist = level1
  476. }
  477. })
  478. },
  479. },
  480. filters: {
  481. // 加密手机
  482. phoneText(mobile) {
  483. if (!mobile) return '--'
  484. if (_this.userInfo.showPhoneStatus == 1) return mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
  485. else return mobile
  486. },
  487. }
  488. }
  489. </script>
  490. <style lang="scss" scoped>
  491. .rotatearrow {
  492. transform: rotate(270deg);
  493. }
  494. // 评分
  495. .rate-box {
  496. padding: 10rpx 20rpx;
  497. background-color: #FFFFFF;
  498. .date {
  499. width: 300rpx;
  500. height: 33rpx;
  501. font-size: 24rpx;
  502. font-weight: 400;
  503. color: #333333;
  504. line-height: 33rpx;
  505. letter-spacing: 1rpx;
  506. margin-bottom: 8rpx;
  507. }
  508. .title {
  509. width: 100%;
  510. height: 42rpx;
  511. font-size: 30rpx;
  512. font-weight: 500;
  513. color: #333333;
  514. line-height: 42rpx;
  515. letter-spacing: 2rpx;
  516. margin-bottom: 20rpx;
  517. }
  518. .level1 {
  519. display: flex;
  520. align-items: center;
  521. .level-name {
  522. width: 104rpx;
  523. height: 33rpx;
  524. font-size: 24rpx;
  525. font-weight: 500;
  526. color: #333333;
  527. line-height: 33rpx;
  528. letter-spacing: 1rpx;
  529. margin-right: 10rpx;
  530. }
  531. .level-progress {
  532. flex: 1;
  533. border-radius: 11rpx;
  534. height: 21rpx;
  535. background-color: #BEE4FF;
  536. position: relative;
  537. .color {
  538. width: 0;
  539. position: absolute;
  540. top: 0;
  541. left: 0;
  542. height: 21rpx;
  543. border-radius: 11rpx 0 0 11rpx;
  544. background-color: #008EF2;
  545. }
  546. }
  547. .level-rate {
  548. width: 65rpx;
  549. height: 33rpx;
  550. font-size: 24rpx;
  551. font-weight: 500;
  552. color: #333333;
  553. line-height: 33rpx;
  554. letter-spacing: 1rpx;
  555. margin: 0 20rpx 0 15rpx;
  556. }
  557. .arrow {
  558. width: 37rpx;
  559. height: 21rpx;
  560. padding: 5rpx 20rpx;
  561. }
  562. .rotatearrow {
  563. transform: rotate(270deg);
  564. }
  565. }
  566. .level1-subbox {
  567. display: flex;
  568. margin-top: 20rpx;
  569. flex-wrap: wrap;
  570. .sub-name {
  571. width: 50%;
  572. display: flex;
  573. margin-bottom: 18rpx;
  574. .subitem-name {
  575. width: 104rpx;
  576. height: 33rpx;
  577. font-size: 24rpx;
  578. font-weight: 400;
  579. color: #999999;
  580. line-height: 33rpx;
  581. letter-spacing: 1rpx;
  582. margin-right: 12rpx;
  583. }
  584. .checkimg {
  585. width: 27rpx;
  586. height: 27rpx;
  587. }
  588. }
  589. }
  590. }
  591. .Level-box {
  592. padding-bottom: 2rpx;
  593. .hhhbox {
  594. width: 100%;
  595. padding-left: 30rpx;
  596. padding-right: 30rpx;
  597. border-bottom: 1rpx solid #E0E0E0;
  598. background: #FFFFFF;
  599. // padding-bottom: 32rpx;
  600. .hsnrtest {
  601. height: 24rpx;
  602. font-size: 24rpx;
  603. font-weight: 400;
  604. color: #666666;
  605. line-height: 24rpx;
  606. }
  607. .Level3che {
  608. width: 100%;
  609. height: 28rpx;
  610. display: flex;
  611. line-height: 28rpx;
  612. align-items: center;
  613. margin-top: 30rpx;
  614. .title1 {
  615. flex: 1;
  616. font-size: 28rpx;
  617. color: #2671E2;
  618. font-weight: 400;
  619. }
  620. .jiantobox {
  621. width: 30rpx;
  622. height: 30rpx;
  623. display: flex;
  624. align-items: center;
  625. .arrow {
  626. width: 28rpx;
  627. height: 28rpx;
  628. }
  629. }
  630. }
  631. }
  632. .Level2che {
  633. width: 100%;
  634. height: 88rpx;
  635. display: flex;
  636. line-height: 88rpx;
  637. align-items: center;
  638. .title1 {
  639. flex: 2;
  640. font-size: 28rpx;
  641. color: #333333;
  642. font-weight: 400;
  643. }
  644. .leve1-jindu {
  645. flex: 3;
  646. display: flex;
  647. justify-content: center;
  648. align-items: center;
  649. .zhixing {
  650. width: 108rpx;
  651. height: 44rpx;
  652. background: #2671E2;
  653. border-radius: 4rpx;
  654. font-size: 28rpx;
  655. text-align: center;
  656. line-height: 44rpx;
  657. color: #FFFFFF;
  658. }
  659. .zhixing2 {
  660. width: 108rpx;
  661. height: 44rpx;
  662. background: #F8F8F8;
  663. border-radius: 4rpx;
  664. font-size: 28rpx;
  665. text-align: center;
  666. line-height: 44rpx;
  667. color: #999999;
  668. }
  669. }
  670. .jiantobox {
  671. width: 30rpx;
  672. height: 30rpx;
  673. display: flex;
  674. align-items: center;
  675. .arrow {
  676. width: 30rpx;
  677. height: 18rpx;
  678. }
  679. }
  680. }
  681. .Level1che {
  682. width: 100%;
  683. height: 94rpx;
  684. background: #F5F5F5;
  685. display: flex;
  686. line-height: 94rpx;
  687. align-items: center;
  688. padding-left: 30rpx;
  689. padding-right: 30rpx;
  690. .title1 {
  691. flex: 2;
  692. font-size: 30rpx;
  693. color: #333333;
  694. font-weight: 400;
  695. }
  696. .leve1-jindu {
  697. flex: 3;
  698. .jindutiao {
  699. width: 96%;
  700. height: 28rpx;
  701. background: #D5EEE2;
  702. line-height: 28rpx;
  703. border-radius: 14rpx;
  704. position: relative;
  705. .huanxing {
  706. height: 100%;
  707. background: #4FC78F;
  708. border-radius: 14rpx;
  709. }
  710. .text {
  711. position: absolute;
  712. top: 0rpx;
  713. right: 0rpx;
  714. font-size: 28rpx;
  715. font-weight: 400;
  716. color: #333333;
  717. }
  718. }
  719. }
  720. .jiantobox {
  721. width: 30rpx;
  722. height: 30rpx;
  723. display: flex;
  724. align-items: center;
  725. .arrow {
  726. width: 30rpx;
  727. height: 18rpx;
  728. }
  729. }
  730. }
  731. }
  732. .cccccc {
  733. text-align: center;
  734. height: 140rpx;
  735. line-height: 140rpx;
  736. font-size: 30rpx;
  737. }
  738. .ratecenter {
  739. background-color: #FFFFFF;
  740. padding-bottom: 30rpx;
  741. width: 100%;
  742. .ratetetle {
  743. padding: 30rpx;
  744. font-size: 30rpx;
  745. font-weight: 400;
  746. color: #333333;
  747. padding-bottom: 6rpx;
  748. }
  749. .rateyuanbox {
  750. width: 100%;
  751. height: 210rpx;
  752. padding-bottom: 30rpx;
  753. border-bottom: 1rpx solid #E0E0E0;
  754. display: flex;
  755. padding-left: 80rpx;
  756. padding-right: 80rpx;
  757. .rateyuanboxzuo {
  758. width: 30%;
  759. height: 100%;
  760. }
  761. .rateyuanboxyou {
  762. width: 40%;
  763. height: 100%;
  764. }
  765. .boxzuoview {
  766. width: 100%;
  767. height: 140rpx;
  768. }
  769. }
  770. }
  771. .box {
  772. width: 100%;
  773. height: 100%;
  774. background: #F8F8F8;
  775. }
  776. .tab {
  777. height: 88rpx;
  778. border-bottom: 1px solid #E0E0E0;
  779. background: #FFFFFF;
  780. display: flex;
  781. align-items: center;
  782. .tabbox {
  783. flex: 1;
  784. height: 100%;
  785. text-align: center;
  786. line-height: 92rpx;
  787. color: #666666;
  788. font-size: 28rpx;
  789. display: flex;
  790. justify-content: center;
  791. .activecllasscet {
  792. border-bottom: 2px solid #2671E2;
  793. color: #2671E2;
  794. font-weight: 600;
  795. }
  796. }
  797. }
  798. .content {
  799. // height: 1000rpx;/
  800. overflow: hidden;
  801. border-top: 1px solid #E0E0E0;
  802. .content-tips {
  803. background: #fff;
  804. // box-sizing: border-box;
  805. margin-bottom: 20rpx;
  806. overflow: hidden;
  807. .content-first {
  808. padding: 19rpx 30rpx;
  809. display: flex;
  810. justify-content: space-between;
  811. box-sizing: border-box;
  812. // border-top: 1px solid #E0E0E0;
  813. font-weight: 400;
  814. color: #292929;
  815. height: 90rpx;
  816. font-size: 30rpx;
  817. line-height: 30rpx;
  818. .left {
  819. flex-grow: 1;
  820. display: flex;
  821. align-items: center;
  822. justify-content: space-between;
  823. .img {
  824. flex-shrink: 0;
  825. width: 52rpx;
  826. height: 52rpx;
  827. border: 1px solid #E0E0E0;
  828. border-radius: 50%;
  829. text-align: center;
  830. line-height: 50rpx;
  831. margin-right: 20rpx;
  832. }
  833. .test {
  834. flex-grow: 1;
  835. font-weight: 500;
  836. color: #333333;
  837. display: flex;
  838. align-items: center;
  839. .clientStageName {
  840. margin-left: 20rpx;
  841. padding: 5rpx 20rpx;
  842. border: 1px solid #F29819;
  843. border-radius: 32rpx 32rpx 32rpx 0;
  844. color: #F29819;
  845. font-size: 20rpx;
  846. }
  847. }
  848. .edit {
  849. flex-shrink: 0;
  850. height: 40rpx;
  851. width: 40rpx;
  852. margin-left: 30rpx;
  853. image {
  854. width: 100%;
  855. height: 100%;
  856. }
  857. }
  858. }
  859. .right {
  860. display: flex;
  861. .point {
  862. width: 12rpx;
  863. height: 12rpx;
  864. background: #2B6EFF;
  865. border-radius: 50%;
  866. margin-right: 9rpx;
  867. margin-top: 20rpx;
  868. }
  869. .test {
  870. margin-top: 11rpx;
  871. }
  872. }
  873. }
  874. .content-sec {
  875. border-top: 1px solid #E0E0E0;
  876. padding: 0 30rpx;
  877. height: 270rpx;
  878. position: relative;
  879. .content-sec-lab {
  880. margin-top: 30rpx;
  881. display: flex;
  882. font-size: 30rpx;
  883. font-weight: 400;
  884. color: #666666;
  885. line-height: 46rpx;
  886. .content-sec-lab1 {
  887. color: #333333;
  888. }
  889. .content-sec-tips {
  890. max-width: 120rpx;
  891. height: 46rpx;
  892. background: #F2F2F2;
  893. border-radius: 6rpx;
  894. text-align: center;
  895. line-height: 26rpx;
  896. overflow: hidden;
  897. text-overflow: ellipsis;
  898. white-space: nowrap;
  899. font-size: 26rpx;
  900. font-weight: 400;
  901. color: #333333;
  902. margin-right: 20rpx;
  903. box-sizing: border-box;
  904. padding: 10rpx 24rpx;
  905. }
  906. }
  907. .content-sec-num {
  908. position: absolute;
  909. width: 200rpx;
  910. height: 90rpx;
  911. background: #F4F8FD;
  912. border-radius: 12rpx;
  913. font-weight: 400;
  914. color: #2671E2;
  915. line-height: 45rpx;
  916. bottom: 15rpx;
  917. right: 30rpx;
  918. text-align: center;
  919. }
  920. }
  921. .content-last {
  922. padding: 30rpx;
  923. height: 168rpx;
  924. .content-last-con {
  925. width: 690rpx;
  926. height: 108rpx;
  927. background: #F8F8F8;
  928. border-radius: 8rpx;
  929. padding: 14rpx 20rpx;
  930. font-size: 28rpx;
  931. font-weight: 400;
  932. color: #333333;
  933. line-height: 40rpx;
  934. }
  935. }
  936. }
  937. }
  938. .tabchange {
  939. // background: #FFFFFF;
  940. overflow: hidden;
  941. .tabactive1 {
  942. padding-bottom: 100rpx;
  943. .content-tips {
  944. background: #fff;
  945. padding: 0 30rpx;
  946. box-sizing: border-box;
  947. overflow: hidden;
  948. margin-bottom: 20rpx;
  949. .content-first {
  950. margin-top: 19rpx;
  951. display: flex;
  952. justify-content: space-between;
  953. .left {
  954. display: flex;
  955. .img {
  956. width: 52rpx;
  957. height: 52rpx;
  958. background: #FFFFFF;
  959. border: 1px solid #C9C9C9;
  960. border-radius: 50%;
  961. text-align: center;
  962. line-height: 52rpx;
  963. margin-right: 20rpx;
  964. }
  965. .name {
  966. font-weight: 600;
  967. color: #333333;
  968. // margin-left: 20rpx;
  969. margin-top: 11rpx;
  970. }
  971. .status {
  972. width: 110rpx;
  973. height: 42rpx;
  974. background: #FFF9F5;
  975. border-radius: 4rpx;
  976. font-size: 26rpx;
  977. font-weight: 400;
  978. color: #EC8D49;
  979. line-height: 42rpx;
  980. text-align: center;
  981. margin-left: 19rpx;
  982. margin-top: 11rpx;
  983. }
  984. }
  985. .right {
  986. display: flex;
  987. margin-top: 11rpx;
  988. .point {
  989. width: 12rpx;
  990. height: 12rpx;
  991. background: #2B6EFF;
  992. border-radius: 50%;
  993. margin-right: 9rpx;
  994. margin-top: 16rpx;
  995. }
  996. }
  997. }
  998. .content-sec {
  999. display: flex;
  1000. justify-content: space-between;
  1001. margin-top: 19rpx;
  1002. .left {
  1003. display: flex;
  1004. .cus {
  1005. font-size: 30rpx;
  1006. font-weight: 400;
  1007. color: #666666;
  1008. line-height: 30rpx;
  1009. }
  1010. .arriveNum {
  1011. font-size: 30rpx;
  1012. font-weight: 400;
  1013. line-height: 30rpx;
  1014. margin-left: 10rpx;
  1015. }
  1016. }
  1017. .right {
  1018. width: 192rpx;
  1019. height: 46rpx;
  1020. background: #F4F8FD;
  1021. border-radius: 6rpx;
  1022. text-align: center;
  1023. line-height: 46rpx;
  1024. font-weight: 400;
  1025. color: #2671E2;
  1026. }
  1027. }
  1028. .content-last {
  1029. margin: 30rpx 0;
  1030. font-size: 30rpx;
  1031. font-weight: 400;
  1032. color: #666666;
  1033. line-height: 30rpx;
  1034. }
  1035. }
  1036. }
  1037. .tabactive2 {
  1038. .tab2-tips {
  1039. background: #fff;
  1040. // height: 270rpx;
  1041. overflow: auto;
  1042. margin-bottom: 20rpx;
  1043. .tab2-first {
  1044. // height: 150rpx;
  1045. border-bottom: 1px solid #E0E0E0;
  1046. padding: 0 30rpx;
  1047. margin-top: 19rpx;
  1048. box-sizing: border-box;
  1049. .tab2-first-1 {
  1050. display: flex;
  1051. justify-content: space-between;
  1052. // height: 75rpx;
  1053. .tab2-first-left {
  1054. display: flex;
  1055. align-items: center;
  1056. .img {
  1057. width: 52rpx;
  1058. height: 52rpx;
  1059. background: #FFFFFF;
  1060. border: 1px solid #C9C9C9;
  1061. border-radius: 50%;
  1062. text-align: center;
  1063. line-height: 52rpx;
  1064. }
  1065. .name {
  1066. font-weight: 600;
  1067. color: #333333;
  1068. margin-left: 20rpx;
  1069. }
  1070. .clientStageName {
  1071. margin-left: 20rpx;
  1072. padding: 5rpx 20rpx;
  1073. border: 1px solid #F29819;
  1074. border-radius: 32rpx 32rpx 32rpx 0;
  1075. color: #F29819;
  1076. font-size: 20rpx;
  1077. }
  1078. }
  1079. .tab2-first-right {
  1080. font-size: 30rpx;
  1081. font-weight: 400;
  1082. color: #666666;
  1083. margin-top: 11rpx;
  1084. }
  1085. }
  1086. .tab2-first-foot {
  1087. margin-top: 19rpx;
  1088. margin-bottom: 30rpx;
  1089. font-size: 30rpx;
  1090. font-weight: 400;
  1091. color: #666666;
  1092. line-height: 30rpx;
  1093. }
  1094. }
  1095. .tab2-sec {
  1096. height: 120rpx;
  1097. padding: 30rpx;
  1098. float: right;
  1099. .tab-sec-edit {
  1100. width: 156rpx;
  1101. height: 60rpx;
  1102. background: #FFFFFF;
  1103. border-radius: 4px;
  1104. border: 1px solid #2671E2;
  1105. text-align: center;
  1106. line-height: 60rpx;
  1107. font-weight: 400;
  1108. color: #2671E2;
  1109. }
  1110. }
  1111. }
  1112. }
  1113. }
  1114. .pon-foot {
  1115. position: fixed;
  1116. width: 750rpx;
  1117. height: 100rpx;
  1118. background: #FFFFFF;
  1119. box-shadow: 0px -2rpx 8rpx 0rpx rgba(224, 224, 224, 0.5);
  1120. bottom: 0;
  1121. display: flex;
  1122. justify-content: space-around;
  1123. align-items: center;
  1124. // padding-top: 24rpx;
  1125. box-sizing: border-box;
  1126. // padding: ;
  1127. .foot-tab {
  1128. text-align: center;
  1129. width: 270rpx;
  1130. height: 70rpx;
  1131. line-height: 70rpx;
  1132. background: #2671E2;
  1133. box-shadow: 0px -2rpx 8rpx 0px rgba(224, 224, 224, 0.5);
  1134. border-radius: 6rpx;
  1135. font-size: 30rpx;
  1136. font-weight: 400;
  1137. color: #FFFFFF;
  1138. }
  1139. }
  1140. .upon-sec-tips {
  1141. // max-width:120rpx ;
  1142. height: 46rpx;
  1143. background: #F2F2F2;
  1144. border-radius: 6rpx;
  1145. text-align: center;
  1146. line-height: 26rpx;
  1147. overflow: hidden;
  1148. text-overflow: ellipsis;
  1149. white-space: nowrap;
  1150. font-size: 26rpx;
  1151. font-weight: 400;
  1152. color: #333333;
  1153. margin-right: 20rpx;
  1154. margin-top: 20rpx;
  1155. box-sizing: border-box;
  1156. padding: 10rpx 24rpx;
  1157. }
  1158. .conmsg-msg-lab-img {
  1159. width: 14rpx;
  1160. height: 30rpx;
  1161. margin-top: 6rpx;
  1162. margin-left: auto;
  1163. image {
  1164. width: 100%;
  1165. height: 100%;
  1166. }
  1167. }
  1168. .A {
  1169. color: #FFF;
  1170. background: #19AC09;
  1171. border: 1px solid #19AC09 !important;
  1172. }
  1173. .B {
  1174. color: #FFF;
  1175. background: #F29819;
  1176. border: 1px solid #F29819 !important;
  1177. }
  1178. .C {
  1179. color: #FFF;
  1180. background: #F2D01A;
  1181. border: 1px solid #F2D01A !important;
  1182. }
  1183. .D {
  1184. color: #FFF;
  1185. background: #1396F6;
  1186. border: 1px solid #1396F6 !important;
  1187. }
  1188. </style>