index.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. <template>
  2. <div>
  3. <!-- banner区域 start -->
  4. <div class="swiper-container banner" id="banner">
  5. <div class="swiper-wrapper">
  6. <div class="swiper-slide">
  7. <img src="/img/cooperative-banner.jpg" alt="" />
  8. </div>
  9. </div>
  10. </div>
  11. <!-- banner区域 end -->
  12. <div class="main">
  13. <div class="tabbar">
  14. <div class="container">
  15. <template v-for="(tab, index) in tabList">
  16. <div class="tab" :class="{ on: tab.id === current }" :key="tab.en" @click="onTabChange(tab)">
  17. <div class="name" v-text="tab.name"></div>
  18. <div class="en" v-text="tab.en"></div>
  19. </div>
  20. <div class="line" :key="index" v-if="index < 3"></div>
  21. </template>
  22. </div>
  23. </div>
  24. <div class="tab-content container">
  25. <!-- 品牌实力 -->
  26. <div class="tab-item strength" v-show="current === 1">
  27. <div class="section-title">
  28. <img src="/img/cooperative-title-strength.png" alt="品牌实力" />
  29. <h3>品牌实力</h3>
  30. </div>
  31. <div class="description only-mobile">
  32. 40多年坚持创新,获得多项国际认证,致力于从细胞到 肌肉层面改善人体亚健康问题;从面部到身体,全 方位满足多样化需求。ROS'S-来自智能科技的
  33. 成果,重新定义美与健康。
  34. </div>
  35. <div class="cover"><img src="/img/cooperative-strength-cover.png" alt="" /></div>
  36. <div class="section-title">
  37. <img src="/img/cooperative-title-authorized.png" alt="部分授权使用机构" />
  38. <h3>部分授权使用机构</h3>
  39. </div>
  40. <div class="cover"><img src="/img/cooperative-authorized-cover.png" alt="" /></div>
  41. </div>
  42. <!-- 提供支持 -->
  43. <div class="tab-item support" v-show="current === 2">
  44. <div class="section-title">
  45. <img src="/img/cooperative-title-support.png" alt="提供支持" />
  46. <h3>提供支持</h3>
  47. </div>
  48. <div class="content">
  49. <div class="section">
  50. <div class="tag">品牌支持</div>
  51. <div class="tag">培训支持</div>
  52. <div class="tag">技术支持</div>
  53. <div class="tag">运营支持</div>
  54. <div class="tag">推广支持</div>
  55. <div class="tag">售后服务</div>
  56. <div class="tag">产品支持</div>
  57. <div class="tag">活动支持</div>
  58. <div class="tag">营销支持</div>
  59. <div class="tag">成功案例</div>
  60. <div class="tag">战略规划</div>
  61. <div class="tag">开业支持</div>
  62. </div>
  63. <div class="row1">专业团队&nbsp;&nbsp;&nbsp;&nbsp;·&nbsp;&nbsp;&nbsp;&nbsp;随时待命</div>
  64. <div class="row2">拓客<span>|</span>锁客<span>|</span>留客<span>|</span>升客</div>
  65. </div>
  66. </div>
  67. <!-- 服务模式 -->
  68. <div class="tab-item service" v-show="current === 3">
  69. <div class="section-title">
  70. <img src="/img/cooperative-title-service.png" alt="服务模式" />
  71. <h3>服务模式</h3>
  72. </div>
  73. <div class="content">
  74. <div class="item">
  75. <div class="cover"><img src="/img/cooperative-service-1.png" alt="品牌运作" /></div>
  76. <div class="name">品牌运作</div>
  77. </div>
  78. <div class="item">
  79. <div class="cover"><img src="/img/cooperative-service-2.png" alt="设备升级" /></div>
  80. <div class="name">设备升级</div>
  81. </div>
  82. <div class="item">
  83. <div class="cover"><img src="/img/cooperative-service-3.png" alt="销售服务" /></div>
  84. <div class="name">销售服务</div>
  85. </div>
  86. <div class="item">
  87. <div class="cover"><img src="/img/cooperative-service-4.png" alt="业绩解决方案" /></div>
  88. <div class="name">业绩解决方案</div>
  89. </div>
  90. <div class="item">
  91. <div class="cover"><img src="/img/cooperative-service-5.png" alt="活动策划" /></div>
  92. <div class="name">活动策划</div>
  93. </div>
  94. <div class="item">
  95. <div class="cover"><img src="/img/cooperative-service-6.png" alt="专业培训" /></div>
  96. <div class="name">专业培训</div>
  97. </div>
  98. </div>
  99. </div>
  100. <!-- 在线咨询 -->
  101. <div class="tab-item consult" v-show="current === 4">
  102. <div class="section-title">
  103. <img src="/img/cooperative-title-consult.png" alt="在线咨询" />
  104. <h3>在线咨询</h3>
  105. </div>
  106. <div class="content">
  107. <ContactConsult />
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. </template>
  114. <script>
  115. export default {
  116. head() {
  117. return {
  118. title: '首页-艾斯佰丽官网-合作加盟',
  119. }
  120. },
  121. data() {
  122. return {
  123. tabList: [],
  124. current: 1,
  125. }
  126. },
  127. asyncData() {
  128. return {
  129. tabList: [
  130. {
  131. id: 1,
  132. name: '品牌实力',
  133. en: 'brand influence',
  134. },
  135. {
  136. id: 2,
  137. name: '提供支持',
  138. en: 'professional support',
  139. },
  140. {
  141. id: 3,
  142. name: '服务模式',
  143. en: 'after-sales service',
  144. },
  145. {
  146. id: 4,
  147. name: '在线咨询',
  148. en: 'chat with us',
  149. },
  150. ],
  151. }
  152. },
  153. mounted() {
  154. const current = this.$route.query.index
  155. if (current) {
  156. this.current = parseInt(current) || 1
  157. }
  158. new Swiper('#banner', {
  159. loop: false, // 循环模式选项
  160. })
  161. },
  162. methods: {
  163. onTabChange(tab) {
  164. this.current = tab.id
  165. },
  166. },
  167. }
  168. </script>
  169. <style lang="scss" scoped>
  170. @media screen and (min-width: 768px) {
  171. .main {
  172. .tabbar {
  173. background: #eeeeee;
  174. height: 100px;
  175. .container {
  176. display: flex;
  177. justify-content: space-between;
  178. align-items: center;
  179. height: 100%;
  180. }
  181. .line {
  182. height: 46px;
  183. width: 3px;
  184. background: #aaaaaa;
  185. }
  186. .tab {
  187. display: flex;
  188. justify-content: center;
  189. align-items: center;
  190. flex-direction: column;
  191. position: relative;
  192. height: 100%;
  193. width: 24%;
  194. user-select: none;
  195. .name {
  196. font-size: 29px;
  197. font-weight: 400;
  198. color: #000000;
  199. text-align: center;
  200. }
  201. .en {
  202. font-size: 17px;
  203. font-weight: 300;
  204. color: #000000;
  205. text-align: center;
  206. margin-top: 10px;
  207. text-transform: uppercase;
  208. }
  209. &:hover {
  210. cursor: pointer;
  211. }
  212. &::after {
  213. content: '';
  214. position: absolute;
  215. opacity: 0;
  216. width: 0;
  217. height: 0;
  218. border-style: solid;
  219. border-width: 0 12px 8px 12px;
  220. border-color: transparent transparent #f3920d transparent;
  221. bottom: 0;
  222. }
  223. &.on {
  224. &::after {
  225. opacity: 1;
  226. }
  227. .name,
  228. .en {
  229. color: #f3920d;
  230. }
  231. }
  232. }
  233. }
  234. .tab-content {
  235. .strength {
  236. .cover {
  237. img {
  238. display: block;
  239. width: 100%;
  240. }
  241. }
  242. }
  243. .support {
  244. .section {
  245. display: flex;
  246. justify-content: space-between;
  247. align-items: center;
  248. flex-wrap: wrap;
  249. .tag {
  250. width: 224px;
  251. height: 67px;
  252. background: #ed8f0d;
  253. border-radius: 10px;
  254. font-size: 42px;
  255. font-weight: 400;
  256. color: #ffffff;
  257. text-align: center;
  258. line-height: 67px;
  259. margin-right: 50px;
  260. margin-bottom: 26px;
  261. &:nth-child(4n) {
  262. margin-right: 0;
  263. }
  264. }
  265. }
  266. .row1 {
  267. font-size: 27px;
  268. font-weight: 400;
  269. color: #000000;
  270. text-align: center;
  271. margin-top: 58px;
  272. }
  273. .row2 {
  274. font-size: 33px;
  275. font-weight: 400;
  276. color: #000000;
  277. text-align: center;
  278. margin-top: 38px;
  279. span {
  280. margin: 0 64px;
  281. }
  282. }
  283. }
  284. .service {
  285. .content {
  286. display: flex;
  287. justify-content: space-between;
  288. align-items: center;
  289. flex-wrap: wrap;
  290. .item {
  291. display: flex;
  292. align-items: center;
  293. flex-wrap: wrap;
  294. flex-direction: column;
  295. width: 380px;
  296. height: 450px;
  297. background: #f3920d;
  298. margin-bottom: 75px;
  299. &:nth-child(4),
  300. &:nth-child(5),
  301. &:nth-child(6) {
  302. margin-bottom: 0;
  303. }
  304. .cover {
  305. margin-top: 42px;
  306. img {
  307. display: block;
  308. width: 300px;
  309. height: 300px;
  310. }
  311. }
  312. .name {
  313. font-size: 33px;
  314. font-weight: bold;
  315. color: #000000;
  316. margin-top: 35px;
  317. }
  318. }
  319. }
  320. }
  321. }
  322. }
  323. }
  324. @media screen and (max-width: 768px) {
  325. .main {
  326. .tabbar {
  327. background: #eeeeee;
  328. padding: 0 0.3rem;
  329. height: 0.8rem;
  330. .container {
  331. display: flex;
  332. justify-content: space-between;
  333. align-items: center;
  334. height: 100%;
  335. }
  336. .line {
  337. height: 0.4rem;
  338. width: 0.02rem;
  339. background: #aaaaaa;
  340. }
  341. .tab {
  342. display: flex;
  343. justify-content: center;
  344. align-items: center;
  345. flex-direction: column;
  346. position: relative;
  347. height: 100%;
  348. width: 16%;
  349. user-select: none;
  350. .name {
  351. font-size: 0.26rem;
  352. font-weight: 400;
  353. color: #000000;
  354. text-align: center;
  355. }
  356. .en {
  357. display: none;
  358. }
  359. &:hover {
  360. cursor: pointer;
  361. }
  362. &::after {
  363. content: '';
  364. position: absolute;
  365. opacity: 0;
  366. width: 0;
  367. height: 0;
  368. border-style: solid;
  369. border-width: 0 0.12rem 0.08rem 0.12rem;
  370. border-color: transparent transparent #f3920d transparent;
  371. bottom: 0;
  372. }
  373. &.on {
  374. &::after {
  375. opacity: 1;
  376. }
  377. .name,
  378. .en {
  379. color: #f3920d;
  380. }
  381. }
  382. }
  383. }
  384. .tab-content {
  385. .strength {
  386. .cover {
  387. width: 6.8rem;
  388. margin: 0.4rem auto 0;
  389. img {
  390. display: block;
  391. width: 100%;
  392. }
  393. }
  394. .description {
  395. font-size: 0.26rem;
  396. line-height: 0.48rem;
  397. width: 6.28rem;
  398. margin: 0 auto;
  399. text-align: center;
  400. }
  401. }
  402. .support {
  403. .section {
  404. display: flex;
  405. justify-content: space-between;
  406. align-items: center;
  407. flex-wrap: wrap;
  408. width: 6.36rem;
  409. margin: 0 auto;
  410. .tag {
  411. width: 1.8rem;
  412. height: 0.6rem;
  413. background: #ed8f0d;
  414. border-radius: 0.1rem;
  415. font-size: 0.28rem;
  416. font-weight: 400;
  417. color: #ffffff;
  418. text-align: center;
  419. line-height: 0.6rem;
  420. margin-bottom: 0.24rem;
  421. &:nth-child(3n) {
  422. margin-right: 0;
  423. }
  424. }
  425. }
  426. .row1 {
  427. font-size: 0.24rem;
  428. font-weight: 400;
  429. color: #000000;
  430. text-align: center;
  431. margin-top: 0.64rem;
  432. }
  433. .row2 {
  434. font-size: 0.28rem;
  435. font-weight: 400;
  436. color: #000000;
  437. text-align: center;
  438. margin-top: 0.16rem;
  439. }
  440. }
  441. .service {
  442. .content {
  443. display: flex;
  444. justify-content: space-between;
  445. align-items: center;
  446. flex-wrap: wrap;
  447. width: 6.64rem;
  448. margin: 0 auto;
  449. .item {
  450. display: flex;
  451. align-items: center;
  452. flex-wrap: wrap;
  453. flex-direction: column;
  454. width: 3.2rem;
  455. height: 4rem;
  456. background: #f3920d;
  457. margin-bottom: 0.24rem;
  458. &:nth-child(5),
  459. &:nth-child(6) {
  460. margin-bottom: 0;
  461. }
  462. .cover {
  463. margin-top: 0.2rem;
  464. img {
  465. display: block;
  466. width: 2.8rem;
  467. height: 2.8rem;
  468. }
  469. }
  470. .name {
  471. font-size: 0.28rem;
  472. font-weight: bold;
  473. color: #000000;
  474. margin-top: 0.32rem;
  475. }
  476. }
  477. }
  478. }
  479. }
  480. }
  481. }
  482. </style>