index.html.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. <template>
  2. <div>
  3. <HomePageHead></HomePageHead>
  4. <HomePageNavigation></HomePageNavigation>
  5. <HomeSecondaryHeadingZgzp :titleData="pageDataList" :pinyinid="routeId"></HomeSecondaryHeadingZgzp>
  6. <main class="index_main">
  7. <!-- 三农资讯网-招工招聘 snzx_recruit-->
  8. <section class="index_2">
  9. <!-- 职位搜索 -->
  10. <div class="recruit_head_box clearfix">
  11. <div class="cruit_head_left">
  12. <a class="cruit_head_a cruit_head_only" href="" title="">职位搜索</a>
  13. </div>
  14. <div class="cruit_head_right clearfix">
  15. <span class="cruit_head_right_a" @click="createResume" v-if="type_id == 1">创建个人简历</span>
  16. <!-- <span class="cruit_head_right_a" @click="createJob" v-if="type_id == 3">发布招聘信息</span> -->
  17. </div>
  18. </div>
  19. <!-- <div class="cruit_ul_1 clearfix">
  20. <NuxtLink class="cruit_ul_1_a" :class="{ cruit_ul_1_a_only: cruit_ul_1_a_only_num == index }"
  21. :href="{ path: '/zhaogongzhaopinnongmingong/search', query: { provinceid: `${item.id}` } }"
  22. title="" v-for="(item, index) in provinceList" :key="item.id">
  23. {{ item.name }}
  24. </NuxtLink>
  25. </div> -->
  26. <form class="cruit_form clearfix" action=" " method=" ">
  27. <div class="cruit_form_tip clearfix">
  28. <div class="cruit_form_per">
  29. <label class="cruit_form_label">行业类别:</label>
  30. <div class="cruit_form_label_right clearfix">
  31. <el-select v-model="industry_category" placeholder="请选择" style="width: 140px" clearable
  32. @change="hyChange">
  33. <el-option v-for="item in industry_categoryList" :key="item.hyid"
  34. :label="item.hyname" :value="item.hyid" />
  35. </el-select>
  36. </div>
  37. </div>
  38. <div class="cruit_form_per">
  39. <label class="cruit_form_label">职位类别:</label>
  40. <div class="cruit_form_label_right clearfix">
  41. <el-select v-model="position_category" placeholder="请选择" style="width: 140px" clearable
  42. @change="zwChange">
  43. <el-option v-for="item in position_categoryList" :key="item.zwid"
  44. :label="item.zwname" :value="item.zwid" />
  45. </el-select>
  46. </div>
  47. </div>
  48. <div class="cruit_form_per">
  49. <label class="cruit_form_label">具体职位:</label>
  50. <div class="cruit_form_label_right clearfix">
  51. <el-select v-model="position" placeholder="请选择" style="width: 140px" clearable
  52. no-data-text="请先选择职位类别" @change="jtzwChange">
  53. <el-option v-for="item in positionList" :key="item.zwid" :label="item.zwname"
  54. :value="item.zwid" />
  55. </el-select>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="cruit_form_tip clearfix">
  60. <div class="cruit_form_per">
  61. <label class="cruit_form_label">地区选择:</label>
  62. <div class="cruit_form_label_right clearfix">
  63. <el-select v-model="province" placeholder="请选择省" style="width: 140px" clearable
  64. @change="provinceChange">
  65. <el-option v-for="item in provinceList" :key="item.id" :label="item.name"
  66. :value="item.id" />
  67. </el-select>
  68. <el-select v-model="city" placeholder="请选择市" style="width: 140px" no-data-text="请先选择省"
  69. clearable @change="cityChange">
  70. <el-option v-for="item in cityList" :key="item.id" :label="item.name"
  71. :value="item.id" />
  72. </el-select>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="cruit_form_tip clearfix">
  77. <div class="cruit_form_per">
  78. <label class="cruit_form_label">关键词:</label>
  79. <div class="cruit_form_label_right clearfix">
  80. <span>
  81. <el-input v-model="keywords" style="width: 300px" placeholder="请输入搜索关键词"
  82. clearable></el-input>
  83. </span>
  84. <span>
  85. <el-button type="success" @click="goSearch">搜索</el-button>
  86. </span>
  87. </div>
  88. </div>
  89. </div>
  90. </form>
  91. <!-- 职位搜索 -->
  92. </section>
  93. </main>
  94. <main class="color_main">
  95. <main class="index_main">
  96. <!-- 招聘职位 -->
  97. <section class="index_3 clearfix">
  98. <div class="recruit_head_box clearfix">
  99. <div class="cruit_head_left">
  100. <a class="cruit_head_a cruit_head_only" href="" title="">招聘职位</a>
  101. </div>
  102. </div>
  103. <div class="cruit_ul_2 clearfix" v-if="job_vacancy">
  104. <div class="cruit_li_2 clearfix" v-for="(item, index) in job_vacancy" :key="item.id">
  105. <NuxtLink class="cruit_li_2_a" :href="`/${item.pinyin}/${item.id}.html`" title="">
  106. <div class="cruit_li_2_head_box clearfix">
  107. <div class="cruit_li_2_head clearfix dot1">{{ item.title }}</div>
  108. <div class="cruit_li_2_head_name clearfix dot1">{{ item.business_name }}</div>
  109. </div>
  110. <div class="cruit_li_2_foot_title_box clearfix">
  111. <span class="cruit_li_2_foot_title">{{ item.jtzw_name }}</span>
  112. </div>
  113. <div class="cruit_li_2_foot clearfix">
  114. <span class="cruit_li_2_foot_tag cruit_li_2_foot_addres">{{ item.city_name }}</span>
  115. <span class="cruit_li_2_foot_tag cruit_li_2_foot_exper"
  116. v-if="item.experience_name || item.education_name">
  117. <span class="cruit_li_2_foot_tag_in">{{ item.experience_name }}</span>
  118. <span class="cruit_li_2_foot_tag_in">{{ item.education_name }}</span>
  119. </span>
  120. <span class="cruit_li_2_foot_tag cruit_li_2_foot_time">
  121. {{ getTime(item.due_data, 'year', 1) }}
  122. </span>
  123. </div>
  124. </NuxtLink>
  125. </div>
  126. </div>
  127. <div class="empty" v-if="job_vacancy == false">
  128. <img src="@/public/topic/empty.png" alt="" class="empty_img">
  129. <span class="empty_text">当前暂无数据</span>
  130. </div>
  131. <div class="pagination" v-if="zptotal">
  132. <el-pagination size="small" background layout="prev, pager, next" :total="zptotal" class="mt-4"
  133. prev-text="上一页" next-text="下一页" @change="changePage" />
  134. </div>
  135. </section>
  136. <!-- <section class="index_4 clearfix">
  137. <div class="recruit_head_box clearfix">
  138. <div class="cruit_head_left">
  139. <a class="cruit_head_a cruit_head_only" href="" title="">人才服务</a>
  140. </div>
  141. </div>
  142. <div class="cruit_ul_3 clearfix" v-if="job_resume">
  143. <div class="cruit_li_3 clearfix" v-for="(item, index) in job_resume" :key="item.id">
  144. <NuxtLink class="cruit_li_3_a" :href="`/${item.pinyin}/${item.id}.html`" title="">
  145. <div class="cruit_li_3_head_box clearfix">
  146. <div class="cruit_li_3_head clearfix dot1">{{ item.name }}</div>
  147. <div class="cruit_li_3_head_name clearfix dot1">{{ item.jtzw_name }}</div>
  148. </div>
  149. <div class="cruit_li_3_text_box clearfix">
  150. <div class="cruit_li_3_text">
  151. {{ item.sexy == 1 ? '男' : '女' }}
  152. <em class="point">·</em>
  153. </div>
  154. <div class="cruit_li_3_text" v-if="item.experience">
  155. {{ item.experience }} 年
  156. <em class="point">·</em>
  157. </div>
  158. <div class="cruit_li_3_text">
  159. {{ item.origin }}
  160. <em class="point">·</em>
  161. </div>
  162. <div class="cruit_li_3_text">{{ item.hy_name }}</div>
  163. </div>
  164. <div class="cruit_li_3_tag_box clearfix">
  165. <span class="cruit_li_3_tag">{{ item.city_name }}</span>
  166. <span class="cruit_li_3_tag">
  167. {{ getTime(item.updated_at, 'year', 1) }}
  168. </span>
  169. </div>
  170. </NuxtLink>
  171. </div>
  172. </div>
  173. <div class="empty" v-if="job_resume == false">
  174. <img src="@/public/topic/empty.png" alt="" class="empty_img">
  175. <span class="empty_text">当前暂无数据</span>
  176. </div>
  177. </section> -->
  178. </main>
  179. </main>
  180. <HomeAdvertising :imgurl="adImg1" v-if="adImg1"></HomeAdvertising>
  181. <HomeFoot1></HomeFoot1>
  182. </div>
  183. </template>
  184. <script setup>
  185. //0.加载页面依赖 start ---------------------------------------->
  186. import { ref, onMounted } from 'vue';
  187. import { ElMessage, ElSelect, ElOption, ElInput, ElButton, ElPagination } from 'element-plus';
  188. const { $webUrl, $CwebUrl, $BwebUrl } = useNuxtApp()
  189. const nuxtApp = useNuxtApp();
  190. const axios = nuxtApp.$axios;
  191. //获取用户信息
  192. let type_id = ref('')
  193. let website_id = ref('')
  194. let getUserInfo = () => {
  195. axios.get("/user/getUserInfo").then(response => {
  196. console.log("gettypeid", response.data);
  197. type_id.value = response.data.type_id
  198. website_id.value = response.data.website_id
  199. })
  200. }
  201. onMounted(() => {
  202. getUserInfo()
  203. })
  204. //0.加载页面依赖 end ---------------------------------------->
  205. //1.获得路由id start ---------------------------------------->
  206. const route = useRoute();
  207. //获得当前的完整路径
  208. const fullPath = route.path;
  209. //拆分,取出来中间这一段,然后提取数字部分
  210. const segments = fullPath.split('/');
  211. const targetSegment = segments[1];
  212. //let routeId = 11 //排除路径错误可以打开这个
  213. //const numberPart = targetSegment.match(/\d+$/)?.[0];
  214. //let routeId = numberPart;
  215. let routeId;
  216. //通过导航路径反向查询导航id
  217. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  218. method: 'GET',
  219. query: {
  220. 'pinyin': targetSegment,
  221. },
  222. });
  223. if (getRouteId.code == 200) {
  224. routeId = getRouteId.data.category_id
  225. } else {
  226. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  227. console.log("错误位置:通过url路径查询导航池id")
  228. console.log("后端错误反馈:", getRouteId.message)
  229. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  230. }
  231. //1.获得路由id end ---------------------------------------->
  232. //2.页面交互效果 start ---------------------------------------->
  233. //分页
  234. const page = ref(1) //页码
  235. const pageSize = ref(20) //每页显示条数
  236. const zptotal = ref(0) //总条数
  237. //分页事件
  238. let changePage = (value) => {
  239. console.log("当前页码", value);
  240. // navigateTo(`/${targetSegment}/${value}.html`)
  241. }
  242. // 2.1 下拉列表
  243. // 2.1.1 获取省份
  244. const province = ref('') //省
  245. const provinceid = ref('') //省
  246. const city = ref('') //市
  247. const provinceList = ref([]) //省列表
  248. const cityList = ref([]) //市列表
  249. const getArea = await requestDataPromise('/web/selectWebsiteArea', {
  250. method: 'GET',
  251. query: {},
  252. });
  253. if (getArea.code == 200) {
  254. provinceList.value = getArea.data;
  255. }
  256. // 2.1.2 获取市
  257. const provinceChange = async (val) => {
  258. console.log('获取到的省份id', val);
  259. provinceid.value = val;
  260. city.value = '';
  261. getCity(val)
  262. }
  263. const getCity = async (val) => {
  264. const getCity = await requestDataPromise('/web/selectWebsiteArea', {
  265. method: 'GET',
  266. query: {
  267. 'pid': val,
  268. },
  269. });
  270. if (getCity.code == 200) {
  271. cityList.value = getCity.data;
  272. }
  273. }
  274. // 2.2.1 行业和职位
  275. const industry_category = ref('') //行业类别
  276. const position_category = ref('') //职位类别
  277. const position = ref('') //具体职位
  278. const keywords = ref('') //关键词
  279. const industry_categoryList = ref([]) //行业类别列表
  280. const position_categoryList = ref([]) //职位类别列表
  281. const positionList = ref([]) //具体职位列表
  282. const getData = async () => {
  283. const getData = await requestDataPromise('/web/getWebsiteJobSelect', {
  284. method: 'GET',
  285. query: {},
  286. });
  287. if (getData.code == 200) {
  288. // console.log("获取到的分类数据:", getData.data);
  289. industry_categoryList.value = getData.data.hy; //行业
  290. position_categoryList.value = getData.data.zw; //职位
  291. // positionList.value = getData.data.jtzw; //具体职位
  292. }
  293. }
  294. getData()
  295. //2.2.2 获取岗位和简历
  296. const job_vacancy = ref('') // 招聘岗位
  297. const job_resume = ref('') // 简历
  298. const getJob = async () => {
  299. const getJob = await requestDataPromise('/web/getWebsiteJobList', {
  300. method: 'GET',
  301. query: {
  302. 'page': page.value,
  303. 'pageSize': pageSize.value
  304. },
  305. });
  306. if (getJob.code == 200) {
  307. console.log("获取到的岗位和简历:", getJob.data);
  308. job_vacancy.value = getJob.data.JobRecruiting; // 招聘岗位
  309. job_resume.value = getJob.data.JobHunting; // 简历
  310. zptotal.value = getJob.data.recruit_count;
  311. // qztotal.value = getJob.data.hunt_count;
  312. }
  313. }
  314. getJob()
  315. // 2.3 change事件
  316. const hyid = ref('') //行业
  317. const zwid = ref('') //职位
  318. const jtzwid = ref('') //具体职位
  319. const cityid = ref('') //具体城市
  320. const hyChange = async (val) => {
  321. hyid.value = val;
  322. }
  323. const zwChange = async (val) => {
  324. console.log('111', val);
  325. zwid.value = val;
  326. position.value = '';
  327. const getPosition = await requestDataPromise('/web/getPositionList', {
  328. method: 'GET',
  329. query: {
  330. 'zwpid': val,
  331. },
  332. })
  333. console.log("11112222", getPosition);
  334. if (getPosition.code == 200) {
  335. positionList.value = getPosition.data; //具体职位
  336. } else {
  337. positionList.value = []; //具体职位
  338. }
  339. }
  340. const jtzwChange = async (val) => {
  341. jtzwid.value = val;
  342. }
  343. const cityChange = async (val) => {
  344. cityid.value = val;
  345. }
  346. //2.3 搜索
  347. const router = useRouter();
  348. const goSearch = async () => {
  349. router.push({
  350. path: '/renliziyuanku/search',
  351. query: {
  352. 'hyid': hyid.value,
  353. 'zwid': zwid.value,
  354. 'jtzwid': jtzwid.value,
  355. 'provinceid': provinceid.value,
  356. 'cityid': cityid.value,
  357. 'keywords': keywords.value,
  358. }
  359. })
  360. }
  361. // 创建个人简历
  362. let createResume = () => {
  363. window.open($BwebUrl + '/#/addJobHunting', '_blank');
  364. }
  365. // 发布招聘信息
  366. let createJob = () => {
  367. window.open($BwebUrl + '/#/creatJob', '_blank');
  368. }
  369. //2.4 展示广告
  370. let adImg1 = ref({})
  371. let adImg2 = ref({})
  372. let adImg3 = ref({})
  373. let adImg4 = ref({})
  374. onMounted(async () => {
  375. //从客户端获取行政职能部门 加快打开速度
  376. const { $webUrl, $CwebUrl } = useNuxtApp();
  377. //广告1
  378. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0001`
  379. const responseAd1 = await fetch(url, {
  380. headers: {
  381. 'Content-Type': 'application/json',
  382. 'Userurl': $CwebUrl,
  383. 'Origin': $CwebUrl
  384. }
  385. });
  386. const resultAd1 = await responseAd1.json();
  387. adImg1.value = resultAd1.data[0];
  388. //广告2
  389. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0002`
  390. const responseAd2 = await fetch(url2, {
  391. headers: {
  392. 'Content-Type': 'application/json',
  393. 'Userurl': $CwebUrl,
  394. 'Origin': $CwebUrl
  395. }
  396. });
  397. const resultAd2 = await responseAd2.json();
  398. adImg2.value = resultAd2.data[0];
  399. //广告3
  400. let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0003`
  401. const responseAd3 = await fetch(url3, {
  402. headers: {
  403. 'Content-Type': 'application/json',
  404. 'Userurl': $CwebUrl,
  405. 'Origin': $CwebUrl
  406. }
  407. });
  408. const resultAd3 = await responseAd3.json();
  409. adImg3.value = resultAd3.data[0];
  410. //广告4
  411. let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0004`
  412. const responseAd4 = await fetch(url4, {
  413. headers: {
  414. 'Content-Type': 'application/json',
  415. 'Userurl': $CwebUrl,
  416. 'Origin': $CwebUrl
  417. }
  418. });
  419. const resultAd4 = await responseAd4.json();
  420. adImg4.value = resultAd4.data[0];
  421. })
  422. //2.页面交互效果 end ---------------------------------------->
  423. //3.渲染页面数据 start ---------------------------------------->
  424. //3.1 该页面上所有的导航池 转为动态数据
  425. //3.1 该页面上所有的导航池 转为动态数据
  426. const pageCategory = ref([]);
  427. //3.2 该页面上需要渲染的所有数据
  428. const pageData = ref([])
  429. const pageDataList = ref([])
  430. //3.3 获取所有导航
  431. try {
  432. const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
  433. method: 'GET',
  434. query: {
  435. 'placeid': 1,
  436. 'pid': routeId,
  437. 'num': 8
  438. },
  439. });
  440. if (navigateData.code == 200) {
  441. // 遍历可用的导航池放到页面中
  442. for (let index in navigateData.data) {
  443. let data = {
  444. title: navigateData.data[index].name,
  445. cid: navigateData.data[index].category_id,
  446. children_count: navigateData.data[index].children_count,
  447. alias: navigateData.data[index].alias,
  448. aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
  449. data: [],
  450. data1: [],
  451. data2: [],
  452. data3: [],
  453. data4: [],
  454. category_id1: "",
  455. category_id2: "",
  456. category_id3: "",
  457. category_id4: "",
  458. title1: "",
  459. title2: "",
  460. title3: "",
  461. title4: ""
  462. };
  463. console.log("导航池数据:", navigateData.data[index]);
  464. if (navigateData.data[index].type == 1) {
  465. //每个页面最多8个模块
  466. pageData.value.push(data);
  467. }
  468. if (navigateData.data[index].is_url == 1) {
  469. // 处理 URL 的逻辑
  470. } else {
  471. //每个页面最多8个模块
  472. pageDataList.value.push(data);
  473. }
  474. }
  475. console.log("导航池数据11:", pageDataList.value);
  476. //导航池加载完毕,开始申请模块数据
  477. // await getPageData1();
  478. // await getPageData2();
  479. // await getPageData3();
  480. // await getPageData4();
  481. // await getPageData5();
  482. // await getPageData6();
  483. // await getPageData7();
  484. // await getPageData8();
  485. let getJson = [
  486. { "parent": routeId + ",0,0", "child": pageDataList.value[0].cid + ",1,1" },//模块1理论前沿
  487. { "parent": routeId + ",0,0", "child": pageDataList.value[1].cid + ",5,0" },//模块2典型经验
  488. { "parent": routeId + ",0,0", "child": pageDataList.value[2].cid + ",1,6" },//模块3农业天地
  489. { "parent": routeId + ",0,0", "child": pageDataList.value[3].cid + ",1,6" },//模块4美丽乡村
  490. { "parent": routeId + ",0,0", "child": pageDataList.value[4].cid + ",1,6" },//模块5农民之家
  491. { "parent": routeId + ",0,0", "child": pageDataList.value[5].cid + ",6,3" },//模块6农业天地
  492. ]
  493. let jsonString = JSON.stringify(getJson);
  494. // getPageAllData(jsonString);
  495. } else {
  496. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  497. console.log("错误位置:分类页导航池")
  498. console.log("后端错误反馈:", navigateData.message)
  499. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  500. }
  501. } catch (error) {
  502. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  503. console.log("错误位置:分类页导航渲染阶段")
  504. console.log("错误:导航池渲染执行接口出错!请检查首页的14的模块的具体执行方法!")
  505. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  506. }
  507. //获取资讯
  508. async function getPageAllData(jsonString) {
  509. const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
  510. method: 'GET',
  511. query: {
  512. 'id': jsonString
  513. },
  514. });
  515. console.log('mkdata', mkdata);
  516. if (mkdata.code == 200) {
  517. console.log(778899)
  518. console.log(mkdata.data)
  519. //模块1理论前沿
  520. if (mkdata.data[0].child.imgnum.length > 0) {
  521. pageData.value[0].data.push(mkdata.data[0].child.imgnum[0]);
  522. }
  523. if (mkdata.data[0].child.imgnum.length > 1) {
  524. pageData.value[0].data2.push(mkdata.data[0].child.imgnum[1]);
  525. }
  526. if (mkdata.data[0].child.imgnum.length > 2) {
  527. pageData.value[0].data2.push(mkdata.data[0].child.imgnum[2]);
  528. }
  529. if (mkdata.data[0].child.imgnum.length > 3) {
  530. pageData.value[0].data2.push(mkdata.data[0].child.imgnum[3]);
  531. }
  532. if (mkdata.data[0].child.imgnum.length > 4) {
  533. pageData.value[0].data2.push(mkdata.data[0].child.imgnum[4]);
  534. }
  535. pageData.value[0].data3 = mkdata.data[0].child.textnum;
  536. //模块2典型经验
  537. pageData.value[1].data = mkdata.data[1].child.imgnum;
  538. //模块3农业天地
  539. pageData.value[2].data = mkdata.data[2].child.imgnum;
  540. pageData.value[2].data2 = mkdata.data[2].child.textnum;
  541. //模块4美丽乡村
  542. pageData.value[3].data = mkdata.data[3].child.imgnum;
  543. pageData.value[3].data2 = mkdata.data[3].child.textnum;
  544. //模块5农民之家
  545. pageData.value[4].data = mkdata.data[4].child.imgnum;
  546. pageData.value[4].data2 = mkdata.data[4].child.textnum;
  547. //模块6农业天地 注意,三农资讯网跟其他行星站不一样,你不需要复制我这个
  548. //因为本来二级分类页有9个模块,但是实际应用中只有8个,所以我把本来是模块7
  549. //的地方和现有的模块6合并成1个了
  550. if (mkdata.data[5].child.imgnum.length > 0) {
  551. pageData.value[5].data.push(mkdata.data[5].child.imgnum[0]);
  552. }
  553. pageData.value[5].data2 = mkdata.data[5].child.textnum;
  554. //把模块6的内容放到模块7中一部分
  555. for (let i = 1; i < mkdata.data[5].child.imgnum.length && i <= 5; i++) {
  556. pageData.value[7].data.push(mkdata.data[5].child.imgnum[i]);
  557. }
  558. //模块7农村建设
  559. pageData.value[6].data = mkdata.data[6].child.imgnum;
  560. pageData.value[6].data2 = mkdata.data[6].child.textnum;
  561. //模块8高端资讯
  562. pageData.value[7].data2 = mkdata.data[7].child.imgnum;
  563. } else {
  564. ElMessage.error(mkdata.message)
  565. }
  566. }
  567. //4.设置seo信息 start---------------------------------------->
  568. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  569. method: 'GET',
  570. query: {
  571. 'catid': routeId
  572. },
  573. });
  574. if (setData.code == 200) {
  575. let seoTitle = setData.data.seo_title;
  576. let seoDescription = setData.data.seo_description;
  577. let seoKeywords = setData.data.seo_keywords;
  578. let seoSuffix = setData.data.suffix;
  579. let seoName = setData.data.website_name;
  580. useSeoMeta({
  581. title: seoTitle + "_" + seoName + "_" + seoSuffix,
  582. meta: [
  583. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  584. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  585. { name: 'viewport', content: 'width=device-width,initial-scale=1,user-scalable=no',tagPriority: 10 }
  586. ]
  587. });
  588. } else {
  589. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  590. console.log("错误位置:设置分类页面SEO数据")
  591. console.log("后端错误反馈:", setData.message)
  592. console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  593. }
  594. //4.设置seo信息 end---------------------------------------->
  595. </script>
  596. <style lang="less" scoped>
  597. @import '@/assets/css/zgzpClass.less';
  598. </style>