Contrast.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650
  1. <template>
  2. <div class="sub-contrast">
  3. <div class="contrast-header">
  4. <div class="line-flex">
  5. <span class="split-box--before"></span>
  6. <div class="second-desc">免费订阅</div>
  7. <img class="text-vs" src="@/assets/images/sub-compare.png" alt="对比" />
  8. <div class="second-desc">超级订阅</div>
  9. <span class="split-box--after"></span>
  10. </div>
  11. </div>
  12. <div class="contrast-main">
  13. <ul
  14. class="contrast-main-header flex-r-c"
  15. ref="stickyHeader"
  16. v-stickyed="stickyed"
  17. >
  18. <li class="top-title modify-left">功能/产品</li>
  19. <li class="top-title modify-center gray">免费订阅</li>
  20. <li class="top-title modify-right flex-r-c center">
  21. <img
  22. src="@/assets/images/subscribe/new-crown.png"
  23. style="width: 28px; position: relative"
  24. />
  25. <div style="margin-left: 8px">超级订阅</div>
  26. </li>
  27. </ul>
  28. <div class="contrast-main-center" ref="main">
  29. <div class="center-left">
  30. <ul class="clearfix">
  31. <li class="top-title modify-left">功能/产品</li>
  32. <li class="double">
  33. <div style="display: flex; align-items: center">
  34. <div>企业画像</div>
  35. <img
  36. src="@/assets/images/subscribe/new-logo.png"
  37. alt=""
  38. style="margin-left: 8px; width: 40px"
  39. />
  40. </div>
  41. <div>提供企业中标项目分析、重点客户等多维分析</div>
  42. </li>
  43. <li class="gray double">
  44. <div style="display: flex; align-items: center">
  45. <div>采购单位画像</div>
  46. <img
  47. src="@/assets/images/subscribe/new-logo.png"
  48. alt=""
  49. style="margin-left: 8px; width: 40px"
  50. />
  51. </div>
  52. <div>提供重点供应商、采购预算/方式等分析</div>
  53. </li>
  54. <li class="double">
  55. <div style="display: flex; align-items: center">
  56. <div>附件下载</div>
  57. <img
  58. src="@/assets/images/subscribe/new-logo.png"
  59. alt=""
  60. style="margin-left: 8px; width: 40px"
  61. />
  62. </div>
  63. <div>招标文件/采购清单一键下载</div>
  64. </li>
  65. <li class="double">
  66. <div style="display: flex; align-items: center">
  67. <div>查看公告原文链接</div>
  68. <img
  69. src="@/assets/images/subscribe/new-logo.png"
  70. alt=""
  71. style="margin-left: 8px; width: 40px"
  72. />
  73. </div>
  74. <div>支持用户点击原文链接查看公告原地址,鉴别信息真伪</div>
  75. </li>
  76. <li class="gray" style="display: flex; align-items: center">
  77. <div>项目报告下载</div>
  78. <img
  79. src="@/assets/images/subscribe/new-logo.png"
  80. alt=""
  81. style="margin-left: 8px; width: 40px"
  82. />
  83. </li>
  84. <li>订阅关键词</li>
  85. <li>中标企业联系方式</li>
  86. <li>订阅区域</li>
  87. <li>订阅推送</li>
  88. <li>匹配方式</li>
  89. <li class="double">
  90. <div>推送设置</div>
  91. <div>固定时间/实时推送</div>
  92. </li>
  93. <li class="gray double">
  94. <div>标讯高级搜索</div>
  95. <div>按联系方式、附件、项目名称/标的物、发布时间搜索</div>
  96. </li>
  97. <li class="double">
  98. <div>企业搜索</div>
  99. <div>按中标项目/标的物、联系方式等搜索企业信息</div>
  100. </li>
  101. <li class="double">
  102. <div>采购单位搜索</div>
  103. <div>按地区、采购单位类型等搜索采购单位信息,高效精准拓客</div>
  104. </li>
  105. <li class="gray">月报/周报</li>
  106. <li class="double">
  107. <div>标讯收藏</div>
  108. <div>关注项目一键收藏,重要信息不遗漏</div>
  109. </li>
  110. <li class="gray">专属资源社群对接</li>
  111. </ul>
  112. </div>
  113. <div class="center-center">
  114. <ul class="clearfix">
  115. <li class="top-title modify-center gray">免费订阅</li>
  116. <li class="double"><i class="wrong"></i></li>
  117. <li class="gray double"><i class="wrong"></i></li>
  118. <li class="double"><i class="wrong"></i></li>
  119. <li class="double"><i class="wrong"></i></li>
  120. <li class="gray"><i class="wrong"></i></li>
  121. <li>10组</li>
  122. <li>公告公示</li>
  123. <li>免费订阅1个省</li>
  124. <li>300条/天</li>
  125. <li>标题</li>
  126. <li class="double"><i class="wrong"></i></li>
  127. <li class="gray double"><i class="wrong"></i></li>
  128. <li class="double">4条/次</li>
  129. <li class="double"><i class="right"></i></li>
  130. <li class="gray"><i class="wrong"></i></li>
  131. <li class="double">100条</li>
  132. <li class="gray"><i class="wrong"></i></li>
  133. </ul>
  134. </div>
  135. <div class="center-right">
  136. <ul class="clearfix">
  137. <li class="top-title modify-right flex-r-c center">
  138. <img
  139. src="@/assets/images/subscribe/new-crown.png"
  140. alt=""
  141. style="width: 28px; position: relative"
  142. />
  143. <div style="margin-left: 8px">超级订阅</div>
  144. </li>
  145. <li class="double">50个画像/省/月</li>
  146. <li class="gold double">5个画像/省/月</li>
  147. <li class="double">10个/月</li>
  148. <li class="double"><i class="right"></i></li>
  149. <li class="gold"><i class="right"></i></li>
  150. <li>300组</li>
  151. <li>招标公告+国家企业公示</li>
  152. <li>根据套餐类型可选</li>
  153. <li>2000条/天</li>
  154. <li>标题+全文</li>
  155. <li class="double">可选</li>
  156. <li class="gold double"><i class="right"></i></li>
  157. <li class="double">150条/次</li>
  158. <li class="double"><i class="right"></i></li>
  159. <li class="gold"><i class="right"></i></li>
  160. <li class="double">5000条</li>
  161. <li class="gold"><i class="right"></i></li>
  162. </ul>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </template>
  168. <script>
  169. export default {
  170. name: 'contrast',
  171. data() {
  172. return {
  173. stickyed: {
  174. className: ['contrast-fixed'],
  175. startFixedTop: 1000, // 从高度为startFixedTop处开始置顶
  176. forbid: false
  177. }
  178. }
  179. },
  180. mounted() {
  181. setTimeout(this.calcStickyNav, 100)
  182. this.$refs.stickyHeader.windowScrollStickyEventCallback =
  183. this.stickyCallback
  184. },
  185. methods: {
  186. calcStickyNav() {
  187. const offset = $(this.$refs.main).offset()
  188. if (offset) {
  189. this.stickyed.startFixedTop = offset.top - 70
  190. }
  191. },
  192. stickyCallback() {
  193. const $ = this.$querySelector.bind(this)
  194. // 表格顶部固定
  195. const tableDom = $(this.$refs.main)
  196. const tableHeaderChangeDom = $(this.$refs.stickyHeader)
  197. const tableMaxHeight =
  198. tableDom.height() +
  199. this.stickyed.startFixedTop -
  200. tableHeaderChangeDom.height()
  201. const show =
  202. $(window).scrollTop() > this.stickyed.startFixedTop &&
  203. $(window).scrollTop() < tableMaxHeight
  204. this.stickyed.forbid = !show
  205. }
  206. }
  207. }
  208. </script>
  209. <style lang="scss" scoped>
  210. .split-box {
  211. &--before {
  212. margin-right: 25px;
  213. &::before {
  214. content: '';
  215. display: inline-block;
  216. width: 120px;
  217. height: 1px;
  218. margin-bottom: 4px;
  219. background: linear-gradient(90deg, rgba(204, 173, 135, 0), #ccad87 100%);
  220. }
  221. &::after {
  222. content: '';
  223. display: inline-block;
  224. width: 8px;
  225. height: 8px;
  226. background: #ccad87;
  227. transform: rotate(45deg);
  228. }
  229. }
  230. &--after {
  231. margin-left: 25px;
  232. &::before {
  233. content: '';
  234. display: inline-block;
  235. width: 8px;
  236. height: 8px;
  237. background: #ccad87;
  238. transform: rotate(45deg);
  239. }
  240. &::after {
  241. content: '';
  242. display: inline-block;
  243. width: 120px;
  244. height: 1px;
  245. margin-bottom: 4px;
  246. background: linear-gradient(90deg, #ccad87, rgba(204, 173, 135, 0) 100%);
  247. }
  248. }
  249. }
  250. .line-flex {
  251. display: flex;
  252. justify-content: center;
  253. align-items: center;
  254. height: 100%;
  255. }
  256. .text-vs {
  257. width: 39px;
  258. height: 18px;
  259. margin: 0 10px;
  260. }
  261. .second-desc {
  262. font-size: 24px;
  263. color: #1d1d1d;
  264. line-height: 36px;
  265. }
  266. .sub-contrast {
  267. width: 100%;
  268. min-height: 1020px;
  269. padding-top: 79px;
  270. background-color: #fff;
  271. .contrast-header {
  272. width: 100%;
  273. height: 31px;
  274. }
  275. .contrast-main {
  276. width: 100%;
  277. height: 1180px;
  278. margin-top: 32px;
  279. $border-color: #ececec;
  280. i {
  281. &.wrong {
  282. width: 100%;
  283. height: 100%;
  284. &::before {
  285. display: block;
  286. width: 100%;
  287. height: 100%;
  288. content: '';
  289. background: url(~@/assets/images/icon/guan.png) no-repeat center;
  290. background-size: 16px 16px;
  291. }
  292. }
  293. &.right::before {
  294. display: block;
  295. width: 100%;
  296. height: 100%;
  297. content: '';
  298. background-image: url(~@/assets/images/icon/right.png);
  299. background-size: 24px 24px;
  300. background-repeat: no-repeat;
  301. background-position: center;
  302. }
  303. }
  304. .top-title {
  305. height: 68px;
  306. text-align: center;
  307. transition: all 0.5s;
  308. line-height: 68px;
  309. font-size: 20px;
  310. font-weight: 400;
  311. color: rgba(29, 29, 29, 1);
  312. opacity: 1;
  313. border-bottom: 1px solid $border-color;
  314. }
  315. .contrast-main-header {
  316. display: none;
  317. padding: 0 30px;
  318. height: 68px;
  319. flex-wrap: nowrap;
  320. .modify-left {
  321. width: 468px;
  322. height: 100%;
  323. background-color: #fff;
  324. border: 1px solid $border-color;
  325. }
  326. .modify-center {
  327. width: 336px;
  328. height: 100%;
  329. background: #f5f5fb;
  330. border: 1px solid $border-color;
  331. }
  332. /* 选中VIP订阅专属服务 */
  333. .modify-right {
  334. width: 336px !important;
  335. height: 100%;
  336. background: rgba(52, 53, 90, 1);
  337. color: rgba(255, 218, 177, 1);
  338. position: relative;
  339. border-right: 0;
  340. width: 100%;
  341. background-image: url(~@/assets/images/vip/mengban.png);
  342. background-repeat: no-repeat;
  343. background-position: right bottom;
  344. img {
  345. background: rgba(52, 53, 90, 1);
  346. color: rgba(255, 218, 177, 1);
  347. position: absolute;
  348. right: 0;
  349. bottom: 0;
  350. width: 174px;
  351. }
  352. }
  353. }
  354. .contrast-fixed {
  355. display: block;
  356. }
  357. .contrast-main-center {
  358. display: flex;
  359. justify-content: center;
  360. padding: 0 32px;
  361. width: 100%;
  362. .gray {
  363. background: #f5f5fb;
  364. }
  365. .gold {
  366. background: #fbf5eb !important;
  367. }
  368. /* 功能/价格 */
  369. /* li+li表示选中除第一个li其他所有的li */
  370. .center-left {
  371. flex: 4;
  372. & > ul {
  373. width: 100%;
  374. margin: 0;
  375. li + li {
  376. color: rgba(29, 29, 29, 1);
  377. padding-left: 24px;
  378. width: 100%;
  379. opacity: 1;
  380. border-left: 1px solid #ececec;
  381. border-bottom: 1px solid $border-color;
  382. border-right: 1px solid $border-color;
  383. &.double {
  384. height: 74px;
  385. font-size: 16px;
  386. font-weight: 400;
  387. color: rgba(29, 29, 29, 1);
  388. display: flex;
  389. flex-direction: column;
  390. justify-content: center;
  391. & > div:nth-child(1) {
  392. font-size: 16px;
  393. line-height: 24px;
  394. color: #1d1d1d;
  395. font-weight: 400;
  396. }
  397. }
  398. &:not(.double) {
  399. height: 52px;
  400. line-height: 52px;
  401. font-size: 16px;
  402. font-weight: 400;
  403. color: rgba(29, 29, 29, 1);
  404. }
  405. &.double,
  406. &.double > div:nth-child(2) {
  407. font-size: 14px;
  408. font-weight: 400;
  409. color: #686868;
  410. line-height: 22px;
  411. }
  412. }
  413. }
  414. .modify-left {
  415. width: 100%;
  416. border-left: 1px solid $border-color;
  417. border-top: 1px solid $border-color;
  418. }
  419. }
  420. // 免费版
  421. .center-center {
  422. flex: 3;
  423. transition: all 0.5s;
  424. & > ul {
  425. width: 100%;
  426. transition: all 0.5s;
  427. margin: 0;
  428. li + li {
  429. transition: all 0.5s;
  430. width: 100%;
  431. text-align: center;
  432. font-size: 14px;
  433. font-weight: 400;
  434. color: rgba(29, 29, 29, 1);
  435. opacity: 1;
  436. border-bottom: 1px solid $border-color;
  437. border-right: 1px solid $border-color;
  438. &.double {
  439. height: 74px;
  440. line-height: 74px;
  441. }
  442. &:not(.double) {
  443. height: 52px;
  444. line-height: 52px;
  445. }
  446. }
  447. li {
  448. &:last-of-type {
  449. display: flex;
  450. transition: all 0.5s;
  451. justify-content: center;
  452. align-items: center;
  453. .btn-free {
  454. display: block;
  455. cursor: pointer;
  456. transition: all 0.5s;
  457. width: 90px;
  458. height: 30px;
  459. background: rgba(246, 246, 246, 1);
  460. opacity: 1;
  461. border-radius: 4px;
  462. font-size: 16px;
  463. font-weight: 400;
  464. line-height: 26px;
  465. color: rgba(104, 104, 104, 1);
  466. }
  467. }
  468. }
  469. }
  470. /* 免费版滑过特效 */
  471. &:hover {
  472. position: relative;
  473. ul {
  474. transition: 0.5s;
  475. box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2);
  476. margin-top: -22px;
  477. .modify-center {
  478. height: 90px;
  479. line-height: 90px;
  480. transition: 0.5s;
  481. }
  482. li {
  483. &:last-of-type {
  484. height: 65px;
  485. transition: 0.5s;
  486. line-height: 80px;
  487. display: flex;
  488. justify-content: center;
  489. align-items: center;
  490. .btn-free {
  491. transition: 0.5s;
  492. background: rgba(44, 183, 202, 1);
  493. color: white;
  494. }
  495. }
  496. }
  497. }
  498. }
  499. }
  500. /* VIP订阅专属服务 */
  501. .center-right {
  502. flex: 3;
  503. transition: all 0.5s;
  504. border-right: 1px solid $border-color;
  505. & > ul {
  506. width: 100%;
  507. margin: 0;
  508. transition: all 0.5s;
  509. li + li {
  510. width: 100%;
  511. text-align: center;
  512. transition: all 0.5s;
  513. font-size: 14px;
  514. font-weight: 400;
  515. color: #714402;
  516. background: rgba(255, 226, 193, 0.08);
  517. opacity: 1;
  518. border-bottom: 1px solid $border-color;
  519. &.double {
  520. height: 74px;
  521. line-height: 74px;
  522. }
  523. &:not(.double) {
  524. height: 52px;
  525. line-height: 52px;
  526. }
  527. }
  528. li {
  529. &:last-of-type {
  530. align-items: center;
  531. transition: all 0.5s;
  532. .On-trial {
  533. width: 90px;
  534. height: 30px;
  535. border: 1px solid rgba(207, 173, 137, 1);
  536. transition: all 0.5s;
  537. opacity: 1;
  538. border-radius: 4px;
  539. display: block;
  540. text-align: center;
  541. line-height: 30px;
  542. font-size: 14px;
  543. font-family: MicrosoftYaHei;
  544. color: rgba(207, 173, 137, 1);
  545. margin-left: 16px;
  546. text-decoration: none !important;
  547. }
  548. }
  549. }
  550. }
  551. /* VIP订阅滑过特效 */
  552. &:hover {
  553. position: relative;
  554. ul {
  555. margin-top: -22px;
  556. box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2);
  557. transition: all 0.5s;
  558. .modify-right {
  559. height: 90px;
  560. line-height: 90px;
  561. transition: all 0.5s;
  562. }
  563. li {
  564. &:last-of-type {
  565. height: 65px;
  566. line-height: 80px;
  567. transition: all 0.5s;
  568. .On-trial {
  569. background: #34355a;
  570. font-size: 14px;
  571. font-family: MicrosoftYaHei;
  572. line-height: 30px;
  573. color: rgba(255, 218, 177, 1);
  574. transition: all 0.5s;
  575. opacity: 1;
  576. text-decoration: none;
  577. }
  578. }
  579. }
  580. }
  581. }
  582. }
  583. ul {
  584. /* 选中免费版 */
  585. .modify-center {
  586. background: #f5f5fb;
  587. width: 100%;
  588. }
  589. /* 选中VIP订阅专属服务 */
  590. .modify-right {
  591. background: rgba(52, 53, 90, 1);
  592. color: rgba(255, 218, 177, 1);
  593. position: relative;
  594. border-right: 0;
  595. width: 100%;
  596. background-image: url(~@/assets/images/vip/mengban.png);
  597. background-repeat: no-repeat;
  598. background-position: right bottom;
  599. img {
  600. background: rgba(52, 53, 90, 1);
  601. color: rgba(255, 218, 177, 1);
  602. position: absolute;
  603. right: 0;
  604. bottom: 0;
  605. width: 174px;
  606. }
  607. }
  608. li > p {
  609. font-size: 14px;
  610. font-weight: 400;
  611. color: #686868;
  612. line-height: 22px;
  613. }
  614. }
  615. }
  616. }
  617. }
  618. </style>