FooterBottom.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. <!--
  2. * @Author: your name
  3. * @Date: 2021-01-09 20:19:.gitignore
  4. * @LastEditTime: 2021-01-13 17:21:02
  5. * @LastEditors: Please set LastEditors
  6. * @Description: In User Settings Edit
  7. * @FilePath: /java-pc/src/components/FooterBottom.vue
  8. -->
  9. <template>
  10. <div>
  11. <div class="footer_service_wrap" v-if="ImgBG">
  12. <!-- <div class="footer_service">
  13. <a>
  14. <img :src="ImgBG" alt />
  15. </a>
  16. </div> -->
  17. </div>
  18. <div class="footer_link">
  19. <div class="link_box" v-if="navList.data.length > 0">
  20. <div class="link_wrap" v-for="(
  21. { categoryName, categoryId, articleList }, index
  22. ) in navList.data" :key="index">
  23. <p @click="toarticle(categoryId)">{{ categoryName }}</p>
  24. <li v-for="({ title, cateId, articleId }, index) in articleList" :key="index">
  25. <!-- <router-link :to="{
  26. path: '/article',
  27. query: { cateId: cateId, articleId: articleId },
  28. }" replace> -->
  29. <a style="cursor:pointer" @click="getContent(articleId)">{{ title }}</a>
  30. <!-- </router-link> -->
  31. </li>
  32. </div>
  33. </div>
  34. <!-- <div class="bottom_box">
  35. <div class="footer_bottom">
  36. <ul class="footer_list">
  37. <li v-for="({ linkName, linkUrl }, index) in helpList.data" :key="index">
  38. <a :href="linkUrl" target="_blank">
  39. {{ linkName }}
  40. </a>
  41. </li>
  42. </ul>
  43. <p class="copy_right">
  44. {{ CopyrightData.data[1] }} {{ L["版权所有"] }}
  45. <a style="text-decoration: underline;color:#333;" href="https://beian.miit.gov.cn/" target="_blank">{{ CopyrightData.data[0] }}</a>
  46. </p>
  47. <p class="author">
  48. {{ CopyrightData.data[2] }} {{ L["提供技术支持"] }}
  49. </p>
  50. </div>
  51. </div> -->
  52. </div>
  53. </div>
  54. </template>
  55. <script setup>
  56. const L = getCurLanguage();
  57. const ImgBG = ref('')
  58. const router = useRouter()
  59. //获取底部合作案例-联系我们等帮助部分的链接list
  60. const helpList = reactive({ data: [] });
  61. const getInitDataList = async () => {
  62. const { data: res } = await useFetchRaw(
  63. apiUrl + "v3/cms/front/friendLink/list"
  64. );
  65. if (res._rawValue.state == 200) {
  66. helpList.data = res._rawValue.data;
  67. }
  68. };
  69. getInitDataList();
  70. //获取产品列表-新手说明等部分的链接list
  71. const navList = reactive({ data: [] });
  72. const getInitData = async () => {
  73. const { data: res } = await useFetchRaw(
  74. apiUrl + "v3/cms/front/article/helpList",
  75. {
  76. params: {
  77. cateSize: 6,
  78. articleSize: 5,
  79. },
  80. }
  81. );
  82. if (res._rawValue.state == 200) {
  83. navList.data = res._rawValue.data;
  84. }
  85. };
  86. getInitData();
  87. //跳转判断
  88. const getContent = (articleId) => {
  89. const params = {
  90. articleId: articleId,
  91. };
  92. get("v3/cms/front/article/articleDetail", params).then((res) => {
  93. if (res.state === 200) {
  94. if (res.data.outUrl) {
  95. window.open(res.data.outUrl,'_blank');
  96. return
  97. }else{
  98. router.push({ path: "/article", query: { articleId: articleId }});
  99. }
  100. }
  101. });
  102. }
  103. //获取版权,技术支持信息
  104. const CopyrightData = reactive({ data: [] });
  105. const getCopyrightData = async () => {
  106. const { data: res } = await useFetchRaw(
  107. apiUrl +
  108. "v3/system/front/setting/getSettings?names=basic_site_icp,basic_site_copyright,basic_site_technical_support,pc_home_bottom_adv"
  109. );
  110. if (res._rawValue.state == 200) {
  111. CopyrightData.data = res._rawValue.data;
  112. ImgBG.value = res._rawValue.data[3]
  113. }
  114. };
  115. getCopyrightData();
  116. </script>
  117. <style lang="scss" scoped>
  118. @import "@/assets/style/theme.scss";
  119. .footer_link {
  120. width: 100%;
  121. display: flex;
  122. flex-direction: column;
  123. align-items: center;
  124. justify-content: center;
  125. position: relative;
  126. overflow: hidden;
  127. box-sizing: border-box;
  128. background: #fff;
  129. // background: rgb(176 221 204 / 37%);
  130. .link_box {
  131. border-top: 1px dashed #f2f2f2;
  132. padding-top: 50px;
  133. width: 100%;
  134. margin: 0 auto 50px;
  135. display: flex;
  136. position: relative;
  137. // flex-direction: row;
  138. justify-content: space-around;
  139. .link_wrap {
  140. text-align: left;
  141. p {
  142. font-weight: bold;
  143. font-size: 16px;
  144. color: #282E30;
  145. margin-bottom: 20px;
  146. }
  147. li {
  148. line-height: 25px;
  149. a {
  150. font-weight: 400;
  151. font-size: 12px;
  152. color: rgba(40,46,48,0.6);
  153. &:hover {
  154. color: $colorMain;
  155. }
  156. }
  157. }
  158. }
  159. .link_wrap:nth-child(1) {
  160. /*width: 295px;*/
  161. /*text-align: left;*/
  162. }
  163. .link_wrap:nth-child(2) {
  164. /*width: 270px;*/
  165. }
  166. .link_wrap:nth-child(3) {
  167. /*width: 280px;*/
  168. }
  169. .link_wrap:nth-child(4) {
  170. /*width: 280px;*/
  171. }
  172. .link_wrap:nth-child(5) {
  173. /*width: 280px;*/
  174. }
  175. }
  176. .bottom_box,
  177. .bottom_box_none {
  178. position: relative;
  179. width: 100%;
  180. overflow: hidden;
  181. height: 130px;
  182. }
  183. .bottom_box_none {
  184. width: 100%;
  185. height: 87px;
  186. background-color: #333333;
  187. }
  188. }
  189. </style>
  190. <style lang="scss" scoped>
  191. .footer_bottom {
  192. // background: rgba(176, 221, 204, 0.37);
  193. background-color: #fff;
  194. position: absolute;
  195. width: 100%;
  196. overflow: hidden;
  197. bottom: 0;
  198. color: #333;
  199. font-size: 12px;
  200. display: flex;
  201. flex-direction: column;
  202. align-items: center;
  203. padding-bottom: 12px;
  204. padding-top: 12px;
  205. .footer_list {
  206. width: 1200px;
  207. margin: 15px auto;
  208. display: flex;
  209. margin-bottom: 10px;
  210. margin-top: 15px;
  211. flex-wrap: wrap;
  212. justify-content: center;
  213. li {
  214. box-sizing: border-box;
  215. padding: 0 7px;
  216. border-right: 1px solid rgba(255, 255, 255, 0.4);
  217. color: #333;
  218. line-height: 19px;
  219. cursor: pointer;
  220. a {
  221. color: #333;
  222. }
  223. }
  224. }
  225. li:last-child {
  226. border-right: none;
  227. }
  228. .copy_right {
  229. letter-spacing: 1px;
  230. margin-bottom: 10px;
  231. }
  232. }
  233. .footer_service_wrap {
  234. width: 100%;
  235. height: 100%;
  236. .footer_service {
  237. width: 100%;
  238. height: 50px;
  239. overflow: hidden;
  240. a {
  241. display: inline-block;
  242. width: 100%;
  243. height: 100%;
  244. // overflow: hidden;
  245. img {
  246. width: 1920px;
  247. height: 100%;
  248. margin-left: -960px;
  249. left: 50%;
  250. position: relative;
  251. overflow: hidden;
  252. display: block;
  253. }
  254. }
  255. }
  256. }
  257. </style>