header.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <section class="topArea" :class="{isMobile: mobile}">
  3. <div class="bgImage">
  4. <img :src="!mobile ? data.bgImg : data.bgImgMobile" alt="">
  5. </div>
  6. <div class="topContent">
  7. <div class="left">
  8. <div class="titleBox">
  9. <img class="icon" v-if="data.icon" :src="data.icon"/>
  10. <p class="title">{{data.title}}</p>
  11. </div>
  12. <p :class="'subWord ' + (!data.isNormal && ' sub')">{{data.subTitle}}</p>
  13. <p :class="'subWord ' + (!data.isNormal && ' sub')" style="font-size: 18px" v-if="data.creditLevel">{{data.creditLevel}}</p>
  14. </div>
  15. <div class="right" v-if="!mobile">
  16. <img :src="data.mapImg" alt="">
  17. <div class="buttonArea" v-if="data.topRightJumpList" >
  18. <div class="cell"
  19. v-for="key in Object.keys(data.topRightJumpList)"
  20. :class="key"
  21. :key="'c'+key"
  22. @click="jumpTo(data.topRightJumpList[key])"
  23. />
  24. </div>
  25. </div>
  26. </div>
  27. </section>
  28. </template>
  29. <script>
  30. export default {
  31. props: {
  32. data: {
  33. type: Object,
  34. default: function () {
  35. return {
  36. icon: '',
  37. title: '技术信用',
  38. subTitle: '真实可信赖的程序员能力与口碑评估体系',
  39. bgImg: require('@/assets/img/credit/bgTop1.png'),
  40. bgImgMobile: require('@/assets/img/credit/bgTopMobile1.png'),
  41. mapImg: require('@/assets/img/credit/indexMap.png'),
  42. isNormal: true,
  43. topRightJumpList: null
  44. }
  45. }
  46. }
  47. },
  48. data() {
  49. return {
  50. mobile: this.$deviceType.isMobile()
  51. }
  52. },
  53. mounted() {
  54. },
  55. methods: {
  56. jumpTo(url) {
  57. if (url) {
  58. location.href = url
  59. }
  60. }
  61. }
  62. };
  63. </script>
  64. <style scoped lang="scss">
  65. @import '~@/assets/css/credit/header.scss';
  66. </style>