foot.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <template>
  2. <footer class="index_foot">
  3. <div class="foot_img_box">
  4. <a :href="item.url" v-for="(item, index) in bottomLink" :title="item.title" target="_blank">
  5. <img :src="item.logo_url" :alt="item.title">
  6. </a>
  7. </div>
  8. <div class="foot_frind_box">
  9. <span>友情链接</span>
  10. <div>
  11. <a :href="item.url" v-for="(item, index) in bottomText" :key="index" :title="item.title" target="_blank">{{ item.title }}</a>
  12. </div>
  13. </div>
  14. <div class="call_us_box">
  15. <span v-for="(item, index) in bottomMenu" :key="index">
  16. <NuxtLink :to="{ path: `/specialList/${item.id}` }" v-if="item.type == 1" :title="item.name">
  17. {{ item.name }}
  18. </NuxtLink>
  19. <NuxtLink :to="{ path: `/speciaArticle/${item.id}` }" v-if="item.type == 0" :title="item.name">
  20. {{ item.name }}
  21. </NuxtLink>
  22. </span>
  23. </div>
  24. <div class="foot_text_box" v-if="bottomBase">
  25. <p v-html="bottomBase.statement" class="foot_text_html_css"></p>
  26. <p v-html="bottomBase.organizer" class="foot_text_html_css"></p>
  27. <p v-html="bottomBase.copyright_information" class="foot_text_html_css"></p>
  28. <p><span v-html="bottomBase.icp_number" class="foot_text_html_css"></span><span v-html="bottomBase.record_number" class="foot_text_html_css"></span></p>
  29. <p v-html="bottomBase.email" class="foot_text_html_css"></p>
  30. <p v-html="bottomBase.company_address" class="foot_text_html_css"></p>
  31. <p v-html="bottomBase.contact_number" class="foot_text_html_css"></p>
  32. </div>
  33. <div class="foot_logo_out" v-if="bottomBase">
  34. <a :href="'http://' + bottomBase.company_url" :title="bottomBase.company_name">
  35. <img :src="bottomBase.project_logo" class="floatLogoLeft" :alt="bottomBase.company_name">
  36. </a>
  37. <a :href="'http://' + bottomBase.project_url" :title="bottomBase.project_name">
  38. <img :src="bottomBase.company_logo" class="floatLogoRight" :alt="bottomBase.project_name">
  39. </a>
  40. </div>
  41. <div class="foot_last_img_box">
  42. <a :href="item.url" v-for="(item, index) in bottomphoto" :title="item.title">
  43. <img :src="item.logo_url" :alt="item.title">
  44. </a>
  45. </div>
  46. <!--在线客服-->
  47. <div class="kefu">
  48. <div class="kefu_itemQQ">
  49. <img src="https://img.bjzxtw.org.cn/pre/public/image/qq1.png">
  50. <p>QQ客服</p>
  51. <div class="kefu_item_content_QQ">
  52. <div @click="addQQFriend(qq1)" class="qqadd">
  53. <img src="https://img.bjzxtw.org.cn/pre/public/index/tubiao1.png" width="100">
  54. <div class="qqfs">{{bottomBase.customer_service_qq}}</div>
  55. </div>
  56. <div @click="addQQFriend(qq2)" class="qqadd">
  57. <img src="https://img.bjzxtw.org.cn/pre/public/index/tubiao2.png" width="100">
  58. <div class="qqfs">{{bottomBase.communications}}</div>
  59. </div>
  60. <div class="arrow"></div>
  61. </div>
  62. </div>
  63. <div class="kefu_itemPhone">
  64. <img src="https://img.bjzxtw.org.cn/pre/public/image/dianhua1.png">
  65. <p>电话客服</p>
  66. <div class="kefu_item_content_phone">
  67. <div class="kefu_item_content_phone_title">联系电话:</div>
  68. <div>{{bottomBase.customer_service}}</div>
  69. <div class="arrow"></div>
  70. </div>
  71. </div>
  72. </div>
  73. </footer>
  74. </template>
  75. <script setup>
  76. //0.添加网站客服 start---------------------------------------->
  77. //添加网站客服
  78. function addQQFriend(qqNumber) {
  79. // 使用tencent协议唤起QQ客户端并添加好友
  80. window.location.href = `tencent://message/?uin=${qqNumber}&Site=&Menu=yes`;
  81. }
  82. //0.添加网站客服 end---------------------------------------->
  83. //获得底部基本信息 start---------------------------------------->
  84. //1.获得全部友情链接与底部图片
  85. const bottomLink = ref([])
  86. const bottomText = ref([])
  87. const bottomphoto = ref([])
  88. const bottomMenu = ref([])
  89. const bottomBase = ref({})
  90. const qq1 = ref("")
  91. const qq2 = ref("")
  92. async function getModelDataAll() {
  93. const mkdata = await requestDataPromise('/web/getWebsiteFootAll', {
  94. method: 'GET',
  95. query: {
  96. 'link_textnum':8,
  97. 'link_imgnum':12,
  98. 'link_footnum':4
  99. },
  100. });
  101. if(mkdata.code == 200){
  102. bottomLink.value = mkdata.data.link_img;
  103. bottomText.value = mkdata.data.link_text;
  104. bottomphoto.value = mkdata.data.link_foot;
  105. bottomMenu.value = mkdata.data.foot_cate;
  106. bottomBase.value = mkdata.data.foot_info;
  107. //获取qq号数字部分
  108. qq1.value = bottomBase.value.customer_service_qq.match(/\d+/g);
  109. qq2.value = bottomBase.value.communications.match(/\d+/g);
  110. }else{
  111. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  112. console.log("错误位置:获取友情链接图片")
  113. console.log("后端错误反馈:",mkdata.message)
  114. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  115. }
  116. }
  117. getModelDataAll();
  118. //获得底部基本信息 end---------------------------------------->
  119. </script>
  120. <style lang="less" scoped>
  121. @import '@/assets/css/foot.less';
  122. </style>