list.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <template>
  2. <div class="jobList">
  3. <section class="index_1 clearfix">
  4. <div class="shop_head_1 clearfix">
  5. <div class="shop_head_1_name">{{ parent_name }}</div>
  6. </div>
  7. <div class="categ_color_box clearfix">
  8. <div class="categ_color_name clearfix">直达:</div>
  9. <div class="categ_color_in clearfix">
  10. <NuxtLink class="categ_color_a" :href="`/${item.aLIas_pinyin}/list-1.html`" :title="item.title"
  11. v-for="(item, index) in pageData" :key="index"
  12. :class="{ categ_color_a_only: navCid == item.cid }">
  13. {{ item.alias }}
  14. </NuxtLink>
  15. </div>
  16. </div>
  17. </section>
  18. <div class="breadcrumb">
  19. <div class="inner">
  20. <span class="location">当前位置 :</span>
  21. <el-breadcrumb :separator-icon="ArrowRight">
  22. <el-breadcrumb-item>
  23. <NuxtLink to="/">首页</NuxtLink>
  24. </el-breadcrumb-item>
  25. <el-breadcrumb-item v-if="p_parent_name != ''">
  26. <NuxtLink :to="`/${targetSegment}/index.html`"> {{ p_parent_name }}</NuxtLink>
  27. </el-breadcrumb-item>
  28. <el-breadcrumb-item v-if="parent_name != ''">
  29. <NuxtLink :to="`/${targetSegment}/${targetSegment1}/index.html`"> {{ parent_name }}
  30. </NuxtLink>
  31. </el-breadcrumb-item>
  32. <el-breadcrumb-item>{{ navTitle }}</el-breadcrumb-item>
  33. </el-breadcrumb>
  34. </div>
  35. </div>
  36. </div>
  37. <JobListRecruit v-if="routeType == 4"></JobListRecruit>
  38. <JobListJobHunting v-if="routeType == 5"></JobListJobHunting>
  39. </template>
  40. <script setup>
  41. //0.加载页面依赖 start ---------------------------------------->
  42. import { ref } from 'vue';
  43. import { ElBreadcrumb, ElBreadcrumbItem } from 'element-plus';
  44. import { ArrowRight } from '@element-plus/icons-vue'
  45. //0.加载页面依赖 end ---------------------------------------->
  46. //1.获得路由id start ---------------------------------------->
  47. const targetSegment = getRoutePath(1);
  48. const targetSegment1 = getRoutePath(2);
  49. const targetSegment2 = getRoutePath(3);
  50. //1.1 获得当前的路由id
  51. let routeId;
  52. let routeType;
  53. let navTitle = ref('')//二级导航标题
  54. let navCid = ref('')//二级导航id
  55. //通过导航路径反向查询导航id
  56. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  57. method: 'GET',
  58. query: {
  59. 'pinyin': targetSegment2,
  60. },
  61. });
  62. console.log("getRouteId", getRouteId);
  63. if (getRouteId.code == 200) {
  64. navTitle.value = getRouteId.data.alias
  65. navCid.value = getRouteId.data.category_id
  66. routeType = getRouteId.data.type
  67. } else {
  68. console.log("获得路由id出错!", getRouteId.message)
  69. }
  70. //1.2 获取二级栏目
  71. let parent_name = ref('');//父级名称
  72. let parent_id = ref('');//父级id
  73. const getRoutePName = await requestDataPromise('/web/getWebsiteRoute', {
  74. method: 'GET',
  75. query: {
  76. 'pinyin': targetSegment1,
  77. },
  78. });
  79. console.log("getRoutePName", getRoutePName);
  80. if (getRoutePName.code == 200) {
  81. routeId = getRoutePName.data.category_id
  82. parent_id.value = getRoutePName.data.category_id
  83. parent_name.value = getRoutePName.data.alias
  84. } else {
  85. console.log("获得路由id出错!", getRoutePName.message)
  86. }
  87. //1.3 获取一级栏目
  88. let p_parent_name = ref('');//父级名称
  89. let p_parent_id = ref('');//父级id
  90. const getRoutePName_parent = await requestDataPromise('/web/getWebsiteRoute', {
  91. method: 'GET',
  92. query: {
  93. 'pinyin': targetSegment,
  94. },
  95. });
  96. console.log("getRoutePName_parent", getRoutePName_parent);
  97. if (getRoutePName_parent.code == 200) {
  98. p_parent_id.value = getRoutePName_parent.data.category_id
  99. p_parent_name.value = getRoutePName_parent.data.alias
  100. } else {
  101. console.log("获得路由id出错!", getRoutePName_parent.message)
  102. }
  103. //1.获得路由id end ---------------------------------------->
  104. //2.页面数据 start ---------------------------------------->
  105. const pageData = ref([])
  106. //2.1 获取所有导航
  107. try {
  108. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  109. method: 'GET',
  110. query: {
  111. 'placeid': 1,
  112. 'pid': routeId,
  113. 'num': 20,
  114. 'type': 1
  115. },
  116. });
  117. if (navigateData.code == 200) {
  118. // 遍历可用的导航池放到页面中
  119. for (let index in navigateData.data) {
  120. let data = {
  121. title: navigateData.data[index].name,
  122. cid: navigateData.data[index].category_id,
  123. children_count: navigateData.data[index].children_count,
  124. alias: navigateData.data[index].alias,
  125. aLIas_pinyin: targetSegment + "/" + targetSegment1 + "/" + navigateData.data[index].aLIas_pinyin,
  126. type: navigateData.data[index].type,
  127. };
  128. if (navigateData.data[index].is_url == 1) {
  129. // 处理 URL 的逻辑
  130. } else {
  131. //每个页面最多8个模块
  132. pageData.value.push(data);
  133. }
  134. }
  135. } else {
  136. console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
  137. }
  138. } catch (error) {
  139. console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
  140. }
  141. //2.页面数据 end ---------------------------------------->
  142. //3.设置seo信息 start---------------------------------------->
  143. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  144. method: 'GET',
  145. query: {
  146. 'catid': navCid.value
  147. },
  148. });
  149. if (setData.code == 200) {
  150. let seoTitle = setData.data.seo_title;
  151. let seoDescription = setData.data.seo_description;
  152. let seoKeywords = setData.data.seo_keywords;
  153. let seoSuffix = setData.data.suffix;
  154. let seoName = setData.data.website_name;
  155. useSeoMeta({
  156. title: seoTitle + "_" + seoSuffix,
  157. meta: [
  158. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  159. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
  160. ]
  161. });
  162. } else {
  163. console.log("设置频道页SEO出错!", setData.message)
  164. }
  165. //3.设置seo信息 end---------------------------------------->
  166. </script>
  167. <style lang="less" scoped>
  168. @import url('@/assets/css/job/list.less');
  169. </style>