Jing 2 долоо хоног өмнө
parent
commit
883c520fce

+ 1 - 1
.nuxt/manifest/latest.json

@@ -1 +1 @@
-{"id":"9ea091a8-2151-4bc7-8faf-db5fd074a017","timestamp":1750673154471}
+{"id":"881c3b2e-d9a2-4c57-b0c4-3928fab9bb93","timestamp":1750928164779}

+ 1 - 0
.nuxt/manifest/meta/881c3b2e-d9a2-4c57-b0c4-3928fab9bb93.json

@@ -0,0 +1 @@
+{"id":"881c3b2e-d9a2-4c57-b0c4-3928fab9bb93","timestamp":1750928164779,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 0 - 1
.nuxt/manifest/meta/9ea091a8-2151-4bc7-8faf-db5fd074a017.json

@@ -1 +0,0 @@
-{"id":"9ea091a8-2151-4bc7-8faf-db5fd074a017","timestamp":1750673154471,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 1 - 1
.nuxt/tsconfig.json

@@ -102,7 +102,7 @@
         "./imports"
       ],
       "#app-manifest": [
-        "./manifest/meta/9ea091a8-2151-4bc7-8faf-db5fd074a017.json"
+        "./manifest/meta/881c3b2e-d9a2-4c57-b0c4-3928fab9bb93.json"
       ],
       "#components": [
         "./components"

+ 2 - 0
composables/publicFunction.ts

@@ -58,6 +58,8 @@ const getLinkPath = (item: any) => {
     return `/${item.aLIas_pinyin}/index.html`;
   } else if (item.alias == '农民工求职') { //农民工求职
     return `/${item.aLIas_pinyin}/index.html`;
+  } else if (item.alias == '人力资源库') { //人力资源库
+    return `/${item.aLIas_pinyin}/index.html`;
   } else if (item.children_count == 0) {
     //return `/newsList/${item.category_id}?page=1`;
     return `/${item.aLIas_pinyin}/list-1.html`;

+ 598 - 0
pages/renliziyuanku/[id].vue

@@ -0,0 +1,598 @@
+<template>
+    <div>
+        <HomePageHead></HomePageHead>
+        <HomePageNavigation></HomePageNavigation>
+        <HomeAdvertising :imgurl="adImg1" v-if="adImg1"></HomeAdvertising>
+        <!-- 面包屑导航 -->
+        <div class="breadcrumb">
+            <div class="inner">
+                <span class="location">当前位置:</span>
+                <el-breadcrumb :separator-icon="ArrowRight">
+                    <el-breadcrumb-item>
+                        <NuxtLink to="/">首页</NuxtLink>
+                    </el-breadcrumb-item>
+                    <el-breadcrumb-item>
+                        <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
+                    </el-breadcrumb-item>
+                    <el-breadcrumb-item>招聘详情</el-breadcrumb-item>
+                </el-breadcrumb>
+            </div>
+        </div>
+        <!-- 简历 -->
+        <!-- <main class="gerenjianli" v-if="type == 2">
+            <section class="index_1 clearfix">
+                <div class="seek_head_box clearfix">
+                    <div class="seek_head_left">
+                        <a class="seek_head_a seek_head_only" title="">个人简历</a>
+                    </div>
+                    <div class="seek_head_right_box clearfix">
+                        <span class="seek_head_right_text">更新时间:{{ jobInfo.created_at }}</span>
+                    </div>
+                </div>
+                <div class="index_1_left clearfix">
+                    <div class="seek_introduce_box clearfix">
+                        <div class="seek_introduce_left clearfix">
+                            <div class="seek_introduce_head clearfix">
+                                <h4 class="seek_introduce_h4">{{ jobInfo.name }}</h4>
+                                <div class="seek_introduce_tag clearfix" v-if="resume">此简历已被推荐</div>
+                                <div class="seek_introduce_text clearfix" v-if="resume">
+                                    (已有单位把本简历加入人才库)
+                                </div>
+                            </div>
+                            <div class="seek_introduce_title_box clearfix">
+                                <span class="seek_introduce_label">期望岗位:</span>
+                                <span class="seek_introduce_title">{{ jobInfo.jtzw_name }}</span>
+                                <span class="seek_introduce_label">薪资待遇:</span>
+                                <span class="seek_introduce_title">{{ jobInfo.salary_name }}</span>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="seek_introduce_foot clearfix">
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.sexy">
+                            {{ jobInfo.sexy == 1 ? '男' : '女' }}
+                        </span>
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.birth">
+                            {{ getTime(jobInfo.birth, 'year', 0) }}
+                        </span>
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.origin">
+                            籍贯:{{ jobInfo.origin }}
+                        </span>
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.education_name">
+                            {{ jobInfo.education_name }}
+                        </span>
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.experience_name">
+                            {{ jobInfo.experience_name }}
+                        </span>
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.hunt_cityname">
+                            工作地点:{{ jobInfo.hunt_cityname }}
+                        </span>
+                        <span class="seek_introduce_foot_text" v-if="jobInfo.language_name">
+                            {{ jobInfo.language_name }}
+                        </span>
+                    </div>
+                </div>
+                <div class="index_1_right clearfix">
+                    <img class="index_1_right_img" src="@/public/image/touxiang.png" title="" alt=""
+                        v-if="!jobInfo.imgurl">
+                    <img class="index_1_right_img" :src="jobInfo.imgurl" title="" alt="" v-if="jobInfo.imgurl">
+
+                </div>
+            </section>
+        </main> -->
+        <!-- <main class="jianli" v-if="type == 2">
+            <section class="index_2 clearfix">
+                <div class="seek_head_box clearfix">
+                    <div class="seek_head_left">
+                        <a class="seek_head_a seek_head_only" title="">自我介绍</a>
+                    </div>
+                </div>
+                <article class="seek_article">
+                    {{ jobInfo.self_evaluation }}
+                </article>
+            </section>
+            <section class="index_3 clearfix">
+                <div class="seek_head_box clearfix">
+                    <div class="seek_head_left">
+                        <a class="seek_head_a seek_head_only" title="">工作经历</a>
+                    </div>
+                </div>
+                <div class="seek_in clearfix" v-for="(item, index) in experienceInfo" :key="index">
+                    <div class="seek_in_head clearfix">
+                        <span class="seek_in_head_text">{{ index + 1 }}.{{ item.company_name }}</span>
+                        <span class="seek_in_head_text">
+                            职位类别:
+                            {{ item.zw_name }}
+                        </span>
+                        <span class="seek_in_head_text">
+                            具体职位:
+                            {{ item.jtzw_name }}
+                        </span>
+                        <span class="seek_in_head_text" style="float: right;" v-if="item.job_timeList">
+                            {{ getTime(item.job_timeList[0], 'year', 0) }}
+                            -
+                            {{ getTime(item.job_timeList[1], 'year', 0) }}
+                        </span>
+                    </div>
+                    <div class="seek_in_ul clearfix">
+                        <div class="seek_in_li clearfix">
+                            <label class="seek_in_label">工作内容:</label>
+                            <div class="seek_in_li_text">{{ item.job_content }}</div>
+                        </div>
+                        <div class="seek_in_li clearfix">
+                            <label class="seek_in_label">工作业绩:</label>
+                            <div class="seek_in_li_text">{{ item.performance }}</div>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <section class="index_4 clearfix">
+                <div class="seek_head_box clearfix">
+                    <div class="seek_head_left">
+                        <a class="seek_head_a seek_head_only" title="">教育背景</a>
+                    </div>
+                </div>
+                <div class="seek_in clearfix" v-for="(item, index) in education" :key="index">
+                    <div class="seek_in_head clearfix">
+                        <span class="seek_in_head_text"
+                            v-if="item.school_name || item.education_name || item.school_major || item.school_timeList">
+                            {{ index + 1 }}. {{ item.school_name }} {{ education }}
+                        </span>
+                        <span class="seek_in_head_text">
+                            {{ item.education_name }}
+                        </span>
+                        <span class="seek_in_head_text">{{ item.school_major }}</span>
+                        <span class="seek_in_head_text" style="float: right;" v-if="item.school_timeList">
+                            {{ getTime(item.school_timeList[0], 'year', 0) }}
+                            -
+                            {{ getTime(item.school_timeList[1], 'year', 0) }}
+                        </span>
+                    </div>
+                    <div class="seek_in_ul clearfix" v-if="item.school_experience">
+                        <div class="seek_in_li clearfix">
+                            <label class="seek_in_label">在校经历:</label>
+                            <div class="seek_in_li_text">{{ item.school_experience }}</div>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <section class="index_5 clearfix">
+                <div class="seek_head_box clearfix">
+                    <div class="seek_head_left">
+                        <a class="seek_head_a seek_head_only" title="">专业技能</a>
+                    </div>
+                </div>
+                <div class="seek_in clearfix">
+                    <div class="seek_in_ul clearfix">
+                        <div class="seek_in_li clearfix" v-for="(item, index) in skillList">
+                            <label class="seek_in_label" v-if="item.skill">{{ index + 1 }}.</label>
+                            <div class="seek_in_li_text">{{ item.skill }}</div>
+                        </div>
+                    </div>
+                </div>
+            </section>
+            <section class="index_6 clearfix">
+                <div class="seek_head_box clearfix">
+                    <div class="seek_head_left">
+                        <a class="seek_head_a seek_head_only" title="">联系方式</a>
+                    </div>
+                </div>
+                <div class="seek_in clearfix" v-if="type_id == 10000 || type_id == 3">
+                    <article class="seek_article_2">
+                        {{ jobInfo.phone }}
+                    </article>
+                </div>
+                <div class="seek_in clearfix" v-else>
+                    <article class="seek_article_2">
+                        登录后可查看
+                    </article>
+                </div>
+            </section>
+        </main> -->
+
+        <!-- 岗位 -->
+        <div class="gangwei" v-if="type == 1">
+            <main class="color_main">
+                <main class="index_main">
+                    <section class="index_1 clearfix">
+                        <div class="cruit_head_box clearfix">
+                            <div class="cruit_head_left">
+                                <a class="cruit_head_a cruit_head_only" title="">基本信息</a>
+                            </div>
+                        </div>
+                        <div class="index_1_box clearfix">
+                            <div class="demand_head_box clearfix">
+                                <div class="demand_head_name">{{ jobInfo.title }}</div>
+                                <div class="demand_head_btn hand" v-if="type_id == 1" @click="applyJob">申请该职位</div>
+                                <div class="demand_head_btn1" v-if="type_id != 1">申请该职位</div>
+                            </div>
+                            <div class="cruit_li_2_foot clearfix">
+                                <span class="cruit_li_2_foot_tag cruit_li_2_foot_exper">
+                                    {{ jobInfo.hy_name }}
+                                    &gt;
+                                    {{ jobInfo.zw_name }}
+                                </span>
+                                <span class="cruit_li_2_foot_tag cruit_li_2_foot_addres">{{ jobInfo.city_name }}</span>
+                            </div>
+                        </div>
+                    </section>
+                </main>
+            </main>
+
+            <main class="index_main">
+                <section class="index_2 clearfix">
+                    <div class="demand_1 clearfix">
+                        <div class="demand_left_1 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">基本要求</a>
+                                </div>
+                            </div>
+                            <div class="demand_ul_2">
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">工作性质:</div>
+                                    <div class="demand_li_2_text clearfix">{{ jobInfo.job_nature_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">工作经验:</div>
+                                    <div class="demand_li_2_text clearfix">{{ jobInfo.experience_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">学历文凭:</div>
+                                    <div class="demand_li_2_text clearfix">{{ jobInfo.education_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">语言选择:</div>
+                                    <div class="demand_li_2_text clearfix">{{ jobInfo.language_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">薪资待遇:</div>
+                                    <div class="demand_li_2_text clearfix">{{ jobInfo.salary_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">截止日期:</div>
+                                    <div class="demand_li_2_text clearfix">
+                                        {{ getTime(jobInfo.created_at, 'year', 1) }}
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="demand_left_2 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">岗位职责</a>
+                                </div>
+                            </div>
+                            <article class="demand_article_1">
+                                {{ jobInfo.description }}
+                            </article>
+                        </div>
+                        <div class="demand_left_3 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">具体要求</a>
+                                </div>
+                            </div>
+                            <article class="demand_article_1">
+                                {{ jobInfo.jt_description }}
+                            </article>
+                        </div>
+                        <div class="demand_left_4 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">联系方式</a>
+                                </div>
+                            </div>
+                            <div class="demand_ul_2">
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">地址:</div>
+                                    <div class="demand_li_2_text clearfix">{{ companyInfo.address_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">邮箱:</div>
+                                    <div class="demand_li_2_text clearfix">{{ companyInfo.email }}</div>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="demand_left_5 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">公司介绍</a>
+                                </div>
+                            </div>
+                            <div class="demand_ul_2">
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">公司规模:</div>
+                                    <div class="demand_li_2_text clearfix">{{ companyInfo.company_size_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">公司性质:</div>
+                                    <div class="demand_li_2_text clearfix">{{ companyInfo.company_nature_name }}</div>
+                                </div>
+                                <div class="demand_li_2 clearfix">
+                                    <div class="demand_li_2_label">公司行业:</div>
+                                    <div class="demand_li_2_text clearfix">{{ companyInfo.hy_name }}</div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="demand_2 clearfix">
+                        <div class="demand_right_1 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">招聘单位</a>
+                                </div>
+                            </div>
+                            <div class="demand_ul_1">
+                                <span class="demand_ul_1_span dot1">
+                                    {{ companyInfo.business_name }}
+                                </span>
+                            </div>
+                        </div>
+                        <div class="demand_right_2 clearfix">
+                            <div class="cruit_head_box clearfix">
+                                <div class="cruit_head_left">
+                                    <a class="cruit_head_a cruit_head_only" title="">其他职位</a>
+                                </div>
+                            </div>
+                            <div class="demand_ul_1">
+                                <NuxtLink class="demand_ul_1_a dot1" :href="`/${item.pinyin}/${item.id}.html`" title=""
+                                    v-for="(item, index) in other_job" :key="item.id">
+                                    {{ item.title }}
+                                </NuxtLink>
+                            </div>
+                        </div>
+                    </div>
+                </section>
+            </main>
+        </div>
+        <HomeAdvertising :imgurl="adImg2" v-if="adImg2"></HomeAdvertising>
+        <HomeFoot1></HomeFoot1>
+    </div>
+
+</template>
+<script setup>
+import { ref, reactive } from 'vue'
+import { ElBreadcrumb, ElBreadcrumbItem, ElMessage } from 'element-plus'
+import { ArrowRight } from '@element-plus/icons-vue'
+const route = useRoute();
+const type = ref(1);
+
+const nuxtApp = useNuxtApp();
+const axios = nuxtApp.$axios;
+
+//获取用户信息
+let type_id = ref('')
+let website_id = ref('')
+let getUserInfo = () => {
+    axios.get("/user/getUserInfo").then(response => {
+        console.log("gettypeid", response.data);
+        type_id.value = response.data.type_id
+        website_id.value = response.data.website_id
+    })
+}
+onMounted(() => {
+    getUserInfo()
+})
+
+
+//1.1 获得跳转过来的id
+const articleId = parseInt(route.params.id);  //获得该页面的id
+// const existingArr = [];
+const articleIdArr = reactive([articleId]);
+// let articleIdArr = Array.of(articleId);
+// console.log('111222111', articleId);
+
+//1.2 获得父级栏目的名称、id
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[1];
+const targetRoute = segments[2];
+console.log("targetSegment1", targetSegment);
+console.log("targetSegment2", targetRoute);
+
+
+let routeId;
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+if (getRouteId.code == 200) {
+    routeId = getRouteId.data.category_id
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+
+//1.3 面包屑导航
+const parent_name = ref("");
+const parent_id = ref("");
+const parent_pinyin = ref("");
+let getParentNav = async () => {
+    const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': routeId
+        },
+    });
+
+    if (listData.code == 200) {
+        parent_name.value = listData.data.alias;
+        parent_id.value = listData.data.parent_id;
+        parent_pinyin.value = listData.data.aLIas_pinyin;
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取面包屑导航")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+//获得父级栏目详情
+getParentNav();
+
+//1.4 展示广告
+let adImg1 = ref({})
+let adImg2 = ref({})
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_detail_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_detail_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+})
+
+// 2 获取详情
+let jobInfo = ref([]) //基本信息
+let companyInfo = ref([])// 公司介绍
+let category = ref([]) // 栏目
+let other_job = ref([]) // 岗位
+let experienceInfo = ref([]) // 工作经历
+let education = ref([]) // 教育背景
+let skillList = ref([]) // 专业技能
+let resume = ref(0)
+
+
+const getDetail = async () => {
+    const listData = await requestDataPromise('/web/getWebsiteJobInfo', {
+        method: 'GET',
+        query: {
+            'id': articleId,
+            'type': type.value,
+            'pageSize': 10,
+        },
+    });
+
+    if (listData.code == 200) {
+        console.log("详情1111", listData.data);
+        // console.log("详情1111222", listData.data.job[0].job_experience);
+        // console.log("详情111122233", JSON.parse(listData.data.job[0].job_experience));
+        // console.log("详情1111222233344", JSON.parse(listData.data.job[0].education_experience));
+        // jobInfo.value = listData.data.job[0];
+        // category.value = listData.data.category;
+        if (type.value == 1) {
+            jobInfo.value = listData.data.job[0];
+            category.value = listData.data.category;
+            companyInfo.value = listData.data.company[0];
+            other_job.value = listData.data.other_job;
+        }
+        if (type.value == 2) {
+            jobInfo.value = listData.data.job[0];
+            category.value = listData.data.category;
+            experienceInfo.value = listData.data.job_experience;
+            education.value = listData.data.education_experience;
+            skillList.value = JSON.parse(listData.data.job[0].skillList);
+            resume.value = listData.data.resume;
+        }
+    }
+
+}
+getDetail();
+
+//获取行业 职位 具体职位
+const industry_categoryList = ref([])  //行业类别列表
+const position_categoryList = ref([])  //职位类别列表
+const positionList = ref([])  //具体职位列表
+
+const getData = async () => {
+    const getData = await requestDataPromise('/web/getWebsiteJobSelect', {
+        method: 'GET',
+        query: {},
+    });
+    if (getData.code == 200) {
+        // console.log("获取到的分类数据:", getData.data);
+        industry_categoryList.value = getData.data.hy; //行业
+        position_categoryList.value = getData.data.zw; //职位
+        positionList.value = getData.data.jtzw; //具体职位
+    }
+}
+getData()
+
+// 3 申请该职位
+const applyJob = () => {
+    // console.log("点击了申请该职位", typeof website_id.value);
+    // console.log("点击了申请该职位", articleIdArr);
+
+    axios.post('/web/getWebsiteJobApply', {
+        website_id: website_id.value,
+        recruit_id: articleIdArr,
+    }).then(response => {
+        // console.log("申请该职位11111111", response);
+        if (response.code == 200) {
+            ElMessage({
+                message: '申请成功',
+                type: 'success',
+            });
+        } else {
+            ElMessage({
+                message: response.message,
+                type: 'error',
+            });
+        }
+    }).catch(error => {
+        console.error('Error:', error);
+    });
+}
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId,
+    },
+});
+
+if (setData.code == 200) {
+    let seoTitle = setData.data.seo_title;
+    let seoDescription = setData.data.seo_description;
+    let seoKeywords = setData.data.seo_keywords;
+    let seoSuffix = setData.data.suffix;
+    let seoName = setData.data.website_name;
+
+    useSeoMeta({
+        title: seoTitle + "_" + seoName + "_" + seoSuffix,
+        meta: [
+            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:设置列表页面SEO数据")
+    console.log("后端错误反馈:", setData.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//4.设置seo信息 end---------------------------------------->
+</script>
+
+<style scoped lang="less">
+@import "@/assets/css/zgzpjianli.less";
+@import "@/assets/css/zgzpzhaopin.less";
+</style>

+ 628 - 0
pages/renliziyuanku/index.html.vue

@@ -0,0 +1,628 @@
+<template>
+    <div>
+        <HomePageHead></HomePageHead>
+        <HomePageNavigation></HomePageNavigation>
+        <HomeSecondaryHeadingZgzp :titleData="pageDataList" :pinyinid="routeId"></HomeSecondaryHeadingZgzp>
+
+        <main class="index_main">
+            <!-- 三农资讯网-招工招聘 snzx_recruit-->
+            <section class="index_2">
+                <!-- 职位搜索 -->
+                <div class="recruit_head_box clearfix">
+                    <div class="cruit_head_left">
+                        <a class="cruit_head_a cruit_head_only" href="" title="">职位搜索</a>
+                    </div>
+                    <div class="cruit_head_right clearfix">
+                        <span class="cruit_head_right_a" @click="createResume" v-if="type_id == 1">创建个人简历</span>
+                        <!-- <span class="cruit_head_right_a" @click="createJob" v-if="type_id == 3">发布招聘信息</span> -->
+                    </div>
+                </div>
+                <!-- <div class="cruit_ul_1 clearfix">
+                    <NuxtLink class="cruit_ul_1_a" :class="{ cruit_ul_1_a_only: cruit_ul_1_a_only_num == index }"
+                        :href="{ path: '/zhaogongzhaopinnongmingong/search', query: { provinceid: `${item.id}` } }"
+                        title="" v-for="(item, index) in provinceList" :key="item.id">
+                        {{ item.name }}
+                    </NuxtLink>
+                </div> -->
+                <form class="cruit_form clearfix" action=" " method=" ">
+                    <div class="cruit_form_tip clearfix">
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">行业类别:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-select v-model="industry_category" placeholder="请选择" style="width: 140px" clearable
+                                    @change="hyChange">
+                                    <el-option v-for="item in industry_categoryList" :key="item.hyid"
+                                        :label="item.hyname" :value="item.hyid" />
+                                </el-select>
+                            </div>
+                        </div>
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">职位类别:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-select v-model="position_category" placeholder="请选择" style="width: 140px" clearable
+                                    @change="zwChange">
+                                    <el-option v-for="item in position_categoryList" :key="item.zwid"
+                                        :label="item.zwname" :value="item.zwid" />
+                                </el-select>
+                            </div>
+                        </div>
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">具体职位:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-select v-model="position" placeholder="请选择" style="width: 140px" clearable
+                                    no-data-text="请先选择职位类别" @change="jtzwChange">
+                                    <el-option v-for="item in positionList" :key="item.zwid" :label="item.zwname"
+                                        :value="item.zwid" />
+                                </el-select>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="cruit_form_tip clearfix">
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">地区选择:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-select v-model="province" placeholder="请选择省" style="width: 140px" clearable
+                                    @change="provinceChange">
+                                    <el-option v-for="item in provinceList" :key="item.id" :label="item.name"
+                                        :value="item.id" />
+                                </el-select>
+                                <el-select v-model="city" placeholder="请选择市" style="width: 140px" no-data-text="请先选择省"
+                                    clearable @change="cityChange">
+                                    <el-option v-for="item in cityList" :key="item.id" :label="item.name"
+                                        :value="item.id" />
+                                </el-select>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="cruit_form_tip clearfix">
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">关键词:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-input v-model="keywords" style="width: 300px" placeholder="请输入搜索关键词" clearable />
+                                <el-button type="success" @click="goSearch">搜索</el-button>
+                            </div>
+                        </div>
+                    </div>
+                </form>
+                <!-- 职位搜索 -->
+            </section>
+        </main>
+        <main class="color_main">
+            <main class="index_main">
+                <!-- 招聘职位 -->
+                <section class="index_3 clearfix">
+                    <div class="recruit_head_box clearfix">
+                        <div class="cruit_head_left">
+                            <a class="cruit_head_a cruit_head_only" href="" title="">招聘职位</a>
+                        </div>
+                    </div>
+                    <div class="cruit_ul_2 clearfix" v-if="job_vacancy">
+                        <div class="cruit_li_2 clearfix" v-for="(item, index) in job_vacancy" :key="item.id">
+                            <NuxtLink class="cruit_li_2_a" :href="`/${item.pinyin}/${item.id}.html`" title="">
+                                <div class="cruit_li_2_head_box clearfix">
+                                    <div class="cruit_li_2_head clearfix dot1">{{ item.title }}</div>
+                                    <div class="cruit_li_2_head_name clearfix dot1">{{ item.business_name }}</div>
+                                </div>
+                                <div class="cruit_li_2_foot_title_box clearfix">
+                                    <span class="cruit_li_2_foot_title">{{ item.jtzw_name }}</span>
+                                </div>
+                                <div class="cruit_li_2_foot clearfix">
+                                    <span class="cruit_li_2_foot_tag cruit_li_2_foot_addres">{{ item.city_name }}</span>
+                                    <span class="cruit_li_2_foot_tag cruit_li_2_foot_exper"
+                                        v-if="item.experience_name || item.education_name">
+                                        <span class="cruit_li_2_foot_tag_in">{{ item.experience_name }}</span>
+                                        <span class="cruit_li_2_foot_tag_in">{{ item.education_name }}</span>
+                                    </span>
+                                    <span class="cruit_li_2_foot_tag cruit_li_2_foot_time">
+                                        {{ getTime(item.due_data, 'year', 1) }}
+                                    </span>
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="empty" v-if="job_vacancy == false">
+                        <img src="@/public/topic/empty.png" alt="" class="empty_img">
+                        <span class="empty_text">当前暂无数据</span>
+                    </div>
+                    <div class="pagination" v-if="zptotal">
+                        <el-pagination size="small" background layout="prev, pager, next" :total="zptotal" class="mt-4"
+                            prev-text="上一页" next-text="下一页" @change="changePage" />
+                    </div>
+                </section>
+
+                <!-- <section class="index_4 clearfix">
+                    <div class="recruit_head_box clearfix">
+                        <div class="cruit_head_left">
+                            <a class="cruit_head_a cruit_head_only" href="" title="">人才服务</a>
+                        </div>
+                    </div>
+                    <div class="cruit_ul_3 clearfix" v-if="job_resume">
+                        <div class="cruit_li_3 clearfix" v-for="(item, index) in job_resume" :key="item.id">
+                            <NuxtLink class="cruit_li_3_a" :href="`/${item.pinyin}/${item.id}.html`" title="">
+                                <div class="cruit_li_3_head_box clearfix">
+                                    <div class="cruit_li_3_head clearfix dot1">{{ item.name }}</div>
+                                    <div class="cruit_li_3_head_name clearfix dot1">{{ item.jtzw_name }}</div>
+                                </div>
+                                <div class="cruit_li_3_text_box clearfix">
+                                    <div class="cruit_li_3_text">
+                                        {{ item.sexy == 1 ? '男' : '女' }}
+                                        <em class="point">·</em>
+                                    </div>
+                                    <div class="cruit_li_3_text" v-if="item.experience">
+                                        {{ item.experience }} 年
+                                        <em class="point">·</em>
+                                    </div>
+
+                                    <div class="cruit_li_3_text">
+                                        {{ item.origin }}
+                                        <em class="point">·</em>
+                                    </div>
+
+                                    <div class="cruit_li_3_text">{{ item.hy_name }}</div>
+                                </div>
+                                <div class="cruit_li_3_tag_box clearfix">
+                                    <span class="cruit_li_3_tag">{{ item.city_name }}</span>
+                                    <span class="cruit_li_3_tag">
+                                        {{ getTime(item.updated_at, 'year', 1) }}
+                                    </span>
+                                </div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <div class="empty" v-if="job_resume == false">
+                        <img src="@/public/topic/empty.png" alt="" class="empty_img">
+                        <span class="empty_text">当前暂无数据</span>
+                    </div>
+                </section> -->
+            </main>
+        </main>
+        <HomeAdvertising :imgurl="adImg1" v-if="adImg1"></HomeAdvertising>
+        <HomeFoot1></HomeFoot1>
+    </div>
+</template>
+
+<script setup>
+//0.加载页面依赖 start ---------------------------------------->
+import { ref, onMounted } from 'vue';
+import { ElMessage, ElSelect, ElOption, ElInput, ElButton, ElPagination } from 'element-plus';
+const { $webUrl, $CwebUrl, $BwebUrl } = useNuxtApp()
+
+const nuxtApp = useNuxtApp();
+const axios = nuxtApp.$axios;
+
+//获取用户信息
+let type_id = ref('')
+let website_id = ref('')
+let getUserInfo = () => {
+    axios.get("/user/getUserInfo").then(response => {
+        console.log("gettypeid", response.data);
+        type_id.value = response.data.type_id
+        website_id.value = response.data.website_id
+    })
+}
+onMounted(() => {
+    getUserInfo()
+})
+//0.加载页面依赖 end ---------------------------------------->
+
+//1.获得路由id start ---------------------------------------->
+const route = useRoute();
+
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[1];
+//let routeId = 11 //排除路径错误可以打开这个
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+//let routeId = numberPart;
+let routeId;
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetSegment,
+    },
+});
+if (getRouteId.code == 200) {
+    routeId = getRouteId.data.category_id
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//1.获得路由id end ---------------------------------------->
+
+//2.页面交互效果 start ---------------------------------------->
+//分页
+const page = ref(1) //页码
+const pageSize = ref(20) //每页显示条数
+const zptotal = ref(0) //总条数
+//分页事件
+let changePage = (value) => {
+    console.log("当前页码", value);
+    // navigateTo(`/${targetSegment}/${value}.html`)
+}
+// 2.1 下拉列表
+// 2.1.1 获取省份
+const province = ref('')  //省
+const provinceid = ref('')  //省
+const city = ref('')  //市
+const provinceList = ref([])  //省列表
+const cityList = ref([])  //市列表
+const getArea = await requestDataPromise('/web/selectWebsiteArea', {
+    method: 'GET',
+    query: {},
+});
+if (getArea.code == 200) {
+    provinceList.value = getArea.data;
+}
+// 2.1.2 获取市
+const provinceChange = async (val) => {
+    console.log('获取到的省份id', val);
+    provinceid.value = val;
+    city.value = '';
+    getCity(val)
+}
+const getCity = async (val) => {
+    const getCity = await requestDataPromise('/web/selectWebsiteArea', {
+        method: 'GET',
+        query: {
+            'pid': val,
+        },
+    });
+    if (getCity.code == 200) {
+        cityList.value = getCity.data;
+    }
+}
+
+// 2.2.1 行业和职位
+const industry_category = ref('')  //行业类别
+const position_category = ref('')  //职位类别
+const position = ref('')  //具体职位
+const keywords = ref('')  //关键词
+const industry_categoryList = ref([])  //行业类别列表
+const position_categoryList = ref([])  //职位类别列表
+const positionList = ref([])  //具体职位列表
+
+const getData = async () => {
+    const getData = await requestDataPromise('/web/getWebsiteJobSelect', {
+        method: 'GET',
+        query: {},
+    });
+    if (getData.code == 200) {
+        // console.log("获取到的分类数据:", getData.data);
+        industry_categoryList.value = getData.data.hy; //行业
+        position_categoryList.value = getData.data.zw; //职位
+        // positionList.value = getData.data.jtzw; //具体职位
+    }
+}
+getData()
+//2.2.2 获取岗位和简历
+const job_vacancy = ref('') // 招聘岗位
+const job_resume = ref('') // 简历
+const getJob = async () => {
+    const getJob = await requestDataPromise('/web/getWebsiteJobList', {
+        method: 'GET',
+        query: {
+            'page': page.value,
+            'pageSize': pageSize.value
+        },
+    });
+    if (getJob.code == 200) {
+        console.log("获取到的岗位和简历:", getJob.data);
+        job_vacancy.value = getJob.data.JobRecruiting; // 招聘岗位
+        job_resume.value = getJob.data.JobHunting; // 简历
+        zptotal.value = getJob.data.recruit_count;
+        // qztotal.value = getJob.data.hunt_count;
+    }
+}
+getJob()
+
+// 2.3 change事件
+const hyid = ref('')  //行业
+const zwid = ref('')  //职位
+const jtzwid = ref('')  //具体职位
+const cityid = ref('')  //具体城市
+const hyChange = async (val) => {
+    hyid.value = val;
+}
+const zwChange = async (val) => {
+    console.log('111', val);
+
+    zwid.value = val;
+    position.value = '';
+    const getPosition = await requestDataPromise('/web/getPositionList', {
+        method: 'GET',
+        query: {
+            'zwpid': val,
+        },
+    })
+    console.log("11112222", getPosition);
+
+    if (getPosition.code == 200) {
+        positionList.value = getPosition.data; //具体职位 
+    } else {
+        positionList.value = []; //具体职位
+    }
+}
+const jtzwChange = async (val) => {
+    jtzwid.value = val;
+}
+const cityChange = async (val) => {
+    cityid.value = val;
+}
+
+//2.3 搜索
+const router = useRouter();
+const goSearch = async () => {
+    router.push({
+        path: '/zhaogongzhaopinnongmingong/search',
+        query: {
+            'hyid': hyid.value,
+            'zwid': zwid.value,
+            'jtzwid': jtzwid.value,
+            'provinceid': provinceid.value,
+            'cityid': cityid.value,
+            'keywords': keywords.value,
+        }
+    })
+}
+// 创建个人简历
+let createResume = () => {
+    window.open($BwebUrl + '/#/addJobHunting', '_blank');
+}
+// 发布招聘信息
+let createJob = () => {
+    window.open($BwebUrl + '/#/creatJob', '_blank');
+}
+
+
+//2.4 展示广告
+let adImg1 = ref({})
+let adImg2 = ref({})
+let adImg3 = ref({})
+let adImg4 = ref({})
+onMounted(async () => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+
+    //广告3
+    let url3 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0003`
+    const responseAd3 = await fetch(url3, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd3 = await responseAd3.json();
+    adImg3.value = resultAd3.data[0];
+
+    //广告4
+    let url4 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_category_0004`
+    const responseAd4 = await fetch(url4, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd4 = await responseAd4.json();
+    adImg4.value = resultAd4.data[0];
+
+})
+//2.页面交互效果 end ---------------------------------------->
+
+//3.渲染页面数据 start ---------------------------------------->
+//3.1 该页面上所有的导航池 转为动态数据
+//3.1 该页面上所有的导航池 转为动态数据
+const pageCategory = ref([]);
+//3.2 该页面上需要渲染的所有数据
+const pageData = ref([])
+const pageDataList = ref([])
+//3.3 获取所有导航
+try {
+    const navigateData = await requestDataPromise('/web/getWebsiteModelCategory', {
+        method: 'GET',
+        query: {
+            'placeid': 1,
+            'pid': routeId,
+            'num': 8
+        },
+    });
+    if (navigateData.code == 200) {
+        // 遍历可用的导航池放到页面中
+        for (let index in navigateData.data) {
+            let data = {
+                title: navigateData.data[index].name,
+                cid: navigateData.data[index].category_id,
+                children_count: navigateData.data[index].children_count,
+                alias: navigateData.data[index].alias,
+                aLIas_pinyin: targetSegment + "/" + navigateData.data[index].aLIas_pinyin,
+                data: [],
+                data1: [],
+                data2: [],
+                data3: [],
+                data4: [],
+                category_id1: "",
+                category_id2: "",
+                category_id3: "",
+                category_id4: "",
+                title1: "",
+                title2: "",
+                title3: "",
+                title4: ""
+            };
+            console.log("导航池数据:", navigateData.data[index]);
+
+            if (navigateData.data[index].type == 1) {
+                //每个页面最多8个模块
+                pageData.value.push(data);
+            }
+
+            if (navigateData.data[index].is_url == 1) {
+                // 处理 URL 的逻辑
+            } else {
+                //每个页面最多8个模块
+                pageDataList.value.push(data);
+            }
+        }
+        console.log("导航池数据11:", pageDataList.value);
+        //导航池加载完毕,开始申请模块数据
+        // await getPageData1();
+        // await getPageData2();
+        // await getPageData3();
+        // await getPageData4();
+        // await getPageData5();
+        // await getPageData6();
+        // await getPageData7();
+        // await getPageData8();
+        let getJson = [
+            { "parent": routeId + ",0,0", "child": pageDataList.value[0].cid + ",1,1" },//模块1理论前沿
+            { "parent": routeId + ",0,0", "child": pageDataList.value[1].cid + ",5,0" },//模块2典型经验
+            { "parent": routeId + ",0,0", "child": pageDataList.value[2].cid + ",1,6" },//模块3农业天地
+            { "parent": routeId + ",0,0", "child": pageDataList.value[3].cid + ",1,6" },//模块4美丽乡村
+            { "parent": routeId + ",0,0", "child": pageDataList.value[4].cid + ",1,6" },//模块5农民之家
+            { "parent": routeId + ",0,0", "child": pageDataList.value[5].cid + ",6,3" },//模块6农业天地
+        ]
+
+        let jsonString = JSON.stringify(getJson);
+        // getPageAllData(jsonString);
+
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:分类页导航池")
+        console.log("后端错误反馈:", navigateData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+} catch (error) {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:分类页导航渲染阶段")
+    console.log("错误:导航池渲染执行接口出错!请检查首页的14的模块的具体执行方法!")
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//获取资讯
+async function getPageAllData(jsonString) {
+    const mkdata = await requestDataPromise('/web/getWebsiteAllArticle', {
+        method: 'GET',
+        query: {
+            'id': jsonString
+        },
+    });
+    console.log('mkdata', mkdata);
+
+    if (mkdata.code == 200) {
+        console.log(778899)
+        console.log(mkdata.data)
+        //模块1理论前沿
+        if (mkdata.data[0].child.imgnum.length > 0) {
+            pageData.value[0].data.push(mkdata.data[0].child.imgnum[0]);
+        }
+        if (mkdata.data[0].child.imgnum.length > 1) {
+            pageData.value[0].data2.push(mkdata.data[0].child.imgnum[1]);
+        }
+        if (mkdata.data[0].child.imgnum.length > 2) {
+            pageData.value[0].data2.push(mkdata.data[0].child.imgnum[2]);
+        }
+        if (mkdata.data[0].child.imgnum.length > 3) {
+            pageData.value[0].data2.push(mkdata.data[0].child.imgnum[3]);
+        }
+        if (mkdata.data[0].child.imgnum.length > 4) {
+            pageData.value[0].data2.push(mkdata.data[0].child.imgnum[4]);
+        }
+        pageData.value[0].data3 = mkdata.data[0].child.textnum;
+        //模块2典型经验
+        pageData.value[1].data = mkdata.data[1].child.imgnum;
+        //模块3农业天地
+        pageData.value[2].data = mkdata.data[2].child.imgnum;
+        pageData.value[2].data2 = mkdata.data[2].child.textnum;
+        //模块4美丽乡村
+        pageData.value[3].data = mkdata.data[3].child.imgnum;
+        pageData.value[3].data2 = mkdata.data[3].child.textnum;
+        //模块5农民之家
+        pageData.value[4].data = mkdata.data[4].child.imgnum;
+        pageData.value[4].data2 = mkdata.data[4].child.textnum;
+        //模块6农业天地 注意,三农资讯网跟其他行星站不一样,你不需要复制我这个
+        //因为本来二级分类页有9个模块,但是实际应用中只有8个,所以我把本来是模块7
+        //的地方和现有的模块6合并成1个了
+        if (mkdata.data[5].child.imgnum.length > 0) {
+            pageData.value[5].data.push(mkdata.data[5].child.imgnum[0]);
+        }
+        pageData.value[5].data2 = mkdata.data[5].child.textnum;
+        //把模块6的内容放到模块7中一部分
+        for (let i = 1; i < mkdata.data[5].child.imgnum.length && i <= 5; i++) {
+            pageData.value[7].data.push(mkdata.data[5].child.imgnum[i]);
+        }
+        //模块7农村建设
+        pageData.value[6].data = mkdata.data[6].child.imgnum;
+        pageData.value[6].data2 = mkdata.data[6].child.textnum;
+        //模块8高端资讯
+        pageData.value[7].data2 = mkdata.data[7].child.imgnum;
+
+    } else {
+        ElMessage.error(mkdata.message)
+    }
+}
+
+//4.设置seo信息 start---------------------------------------->
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': routeId
+    },
+});
+
+if (setData.code == 200) {
+    let seoTitle = setData.data.seo_title;
+    let seoDescription = setData.data.seo_description;
+    let seoKeywords = setData.data.seo_keywords;
+    let seoSuffix = setData.data.suffix;
+    let seoName = setData.data.website_name;
+
+    useSeoMeta({
+        title: seoTitle + "_" + seoSuffix,
+        meta: [
+            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:设置分类页面SEO数据")
+    console.log("后端错误反馈:", setData.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//4.设置seo信息 end---------------------------------------->
+
+
+
+</script>
+
+<style lang="less" scoped>
+@import '@/assets/css/zgzpClass.less';
+</style>

+ 904 - 0
pages/renliziyuanku/search.vue

@@ -0,0 +1,904 @@
+<template>
+    <div id="newsList">
+        <!-- 页面头部 -->
+        <HomePageHead></HomePageHead>
+
+        <!-- 导航栏 -->
+        <HomePageNavigation></HomePageNavigation>
+
+        <!-- 列表页广告一 -->
+        <HomeAdvertising :imgurl="adImg1" v-if="adImg1"></HomeAdvertising>
+
+        <!-- 二级标题-->
+        <HomeListSecondaryHeadingZgzp v-if="parent_name != ''" :name="parent_name" :nav="secondNav"
+            :pinyin="parent_pinyin">
+        </HomeListSecondaryHeadingZgzp>
+
+        <main class="index_main">
+            <!-- 三农资讯网-招工招聘-社会招聘 snzx_society -->
+            <section class="index_2">
+                <!-- 职位搜索 -->
+                <div class="recruit_head_box clearfix">
+                    <div class="cruit_head_left">
+                        <span class="cruit_head_a cruit_head_only">职位搜索</span>
+                    </div>
+                    <div class="cruit_head_right clearfix">
+                        <span class="cruit_head_right_a" @click="createResume"
+                            v-if="job_search == 1 && type_id == 1">创建个人简历</span>
+                        <!-- <span class="cruit_head_right_a" @click="createJob"
+                            v-if="job_search == 1 && type_id == 3">发布招聘信息</span> -->
+                    </div>
+                </div>
+                <form class="cruit_form clearfix" action=" " method=" ">
+                    <div class="society_form_tip clearfix">
+                        <label class="society_form_label">行业类别:</label>
+                        <div class="society_form_right_a_box clearfix">
+                            <a class="society_form_right_a"
+                                :class="{ society_form_right_a_only: hyid == '' || !hyid || hyid == 0 }" title="全部"
+                                @click="hyChange(0)">
+                                全部
+                            </a>
+                            <NuxtLink v-for="(item, index) in industry_categoryList" :key="item">
+                                <span class="society_form_right_a"
+                                    :class="{ society_form_right_a_only: item.hyid == hyid }" :title="item.hyname"
+                                    @click="hyChange(item.hyid)" v-if="index < 20 && hyIndex == 1">{{ item.hyname
+                                    }}</span>
+                                <span class="society_form_right_a" v-if="hyIndex == 2" @click="hyChange(item.hyid)"
+                                    :class="{ society_form_right_a_only: item.hyid == hyid }" :title="item.hyname">
+                                    {{ item.hyname }}
+                                </span>
+                            </NuxtLink>
+                            <span class="society_form_right_btn" @click="hyIndex = 2" v-if="hyIndex == 1">展开</span>
+                            <span class="society_form_right_btn" @click="hyIndex = 1" v-if="hyIndex == 2">收起</span>
+                        </div>
+                    </div>
+                    <div class="society_form_tip clearfix">
+                        <label class="society_form_label">职位类别:</label>
+                        <div class="society_form_right_a_box clearfix">
+                            <a class="society_form_right_a"
+                                :class="{ society_form_right_a_only: zwid == '' || !zwid || zwid == 0 }" title=""
+                                @click="zwChange(0)">全部</a>
+                            <span v-for="(item, index) in position_categoryList" :key="item">
+                                <span class="society_form_right_a" v-if="index < 20 && zwIndex == 1"
+                                    @click="zwChange(item.zwid)"
+                                    :class="{ society_form_right_a_only: item.zwid == zwid }" :title="item.zwname">
+                                    {{ item.zwname }}
+                                </span>
+                                <span class="society_form_right_a" v-if="zwIndex == 2" @click="zwChange(item.zwid)"
+                                    :class="{ society_form_right_a_only: item.zwid == zwid }" :title="item.zwname">
+                                    {{ item.zwname }}
+                                </span>
+                            </span>
+                            <span class="society_form_right_btn society_form_right_btn_up" @click="zwIndex = 2"
+                                v-if="zwIndex == 1">展开</span>
+                            <span class="society_form_right_btn society_form_right_btn_up" @click="zwIndex = 1"
+                                v-if="zwIndex == 2">收起</span>
+                        </div>
+                    </div>
+                    <div class="society_form_tip clearfix">
+                        <label class="society_form_label">具体职位:</label>
+                        <div class="society_form_right_a_box clearfix">
+                            <a class="society_form_right_a" @click="jtzwChange(0)"
+                                :class="{ society_form_right_a_only: jtzwid == '' || !jtzwid || jtzwid == 0 }"
+                                title="">全部</a>
+                            <span v-for="(item, index) in positionList" :key="item">
+                                <span class="society_form_right_a" v-if="index < 20 && jtzwIndex == 1"
+                                    @click="jtzwChange(item.zwid)"
+                                    :class="{ society_form_right_a_only: item.zwid == jtzwid }" :title="item.zwname">
+                                    {{ item.zwname }}
+                                </span>
+                                <span class="society_form_right_a" v-if="jtzwIndex == 2" @click="jtzwChange(item.zwid)"
+                                    :class="{ society_form_right_a_only: item.zwid == jtzwid }" :title="item.zwname">
+                                    {{ item.zwname }}
+                                </span>
+                            </span>
+                            <!-- <span class="society_form_right_btn">展开</span> -->
+                            <span class="society_form_right_btn" @click="jtzwIndex = 2" v-if="jtzwIndex == 1">展开</span>
+                            <span class="society_form_right_btn" @click="jtzwIndex = 1" v-if="jtzwIndex == 2">收起</span>
+                        </div>
+                    </div>
+                    <div class="cruit_form_tip clearfix">
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">地区选择:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-select v-model="province" placeholder="请选择省" style="width: 140px" clearable
+                                    @change="provinceChange">
+                                    <el-option v-for="item in provinceList" :key="item.id" :label="item.name"
+                                        :value="item.id" />
+                                </el-select>
+                                <el-select v-model="city" placeholder="请选择市" style="width: 140px" no-data-text="请先选择省"
+                                    clearable>
+                                    <el-option v-for="item in cityList" :key="item.id" :label="item.name"
+                                        :value="item.id" />
+                                </el-select>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="cruit_form_tip clearfix">
+                        <div class="cruit_form_per">
+                            <label class="cruit_form_label">关键词:</label>
+                            <div class="cruit_form_label_right clearfix">
+                                <el-input v-model="keywords" style="width: 300px" placeholder="请输入搜索关键词" clearable />
+                                <el-button type="success" @click="goSearch">搜索</el-button>
+                            </div>
+                        </div>
+                    </div>
+                </form>
+                <!-- 职位搜索 -->
+            </section>
+        </main>
+        <main class="color_main">
+            <main class="index_main">
+                <!-- 选项卡头 -->
+                <section class="index_3 clearfix">
+                    <div class="recruit_head_box clearfix">
+                        <div class="cruit_head_left">
+                            <a class="cruit_head_a" :class="{ cruit_head_only: job_search == 1 }"
+                                @mouseover="job_search = 1" title="">找工作</a>
+                            <!-- <a class="cruit_head_a" :class="{ cruit_head_only: job_search == 2 }"
+                                @mouseover="job_search = 2" title="">招人才</a> -->
+                        </div>
+                        <div class="society_head_right clearfix">
+                            <div class="society_head_checkbox_box" v-if="job_search == 1 && type_id == 1">
+                                <el-checkbox v-model="allJob" label="" @change="toggleAllJob" />
+                            </div>
+                            <div class="society_head_right_all_box" v-if="job_search == 1 && type_id == 1">
+                                全选
+                            </div>
+                            <!-- <div class="society_head_checkbox_box" v-if="job_search == 2 && type_id == 3">
+                                <el-checkbox v-model="allResume" label="" @change="toggleAllResume" />
+                            </div>
+                            <div class="society_head_right_all_box" v-if="job_search == 2 && type_id == 3">
+                                全选
+                            </div> -->
+                            <div class="society_head_right_a" title="" v-if="job_search == 1 && type_id == 1"
+                                @click="getjob">申请职位</div>
+                            <!-- <div class="society_head_right_a" v-if="job_search == 2 && type_id == 3"
+                                @click="talkResume">
+                                沟通简历</div> -->
+                            <!-- resumeBoo = true -->
+                        </div>
+                    </div>
+                    <!-- 选项卡头 -->
+                    <!-- 选项卡 -->
+                    <div class=" clearfix">
+                        <!-- 找工作 -->
+                        <div class=" clearfix" v-show="job_search == 1">
+                            <div class="cruit_ul_2 clearfix" v-if="job_vacancy">
+                                <div class="cruit_li_2 clearfix" v-for="(item, index) in job_vacancy" :key="item.id">
+                                    <div class="society_inp_checkbox_box_li_1 hand" v-if="type_id == 1">
+                                        <el-checkbox v-model="selectedJobs" :value="item.id" @change="jobChange" />
+                                    </div>
+                                    <NuxtLink class="cruit_li_2_a" :href="`/${item.pinyin}/${item.id}.html`" title="">
+                                        <div class="cruit_li_2_head_box clearfix">
+                                            <div class="cruit_li_2_head clearfix dot1">{{ item.title }}</div>
+                                            <div class="cruit_li_2_head_name clearfix dot1">
+                                                {{ item.business_name }}
+                                            </div>
+                                        </div>
+                                        <div class="cruit_li_2_foot_title_box clearfix">
+                                            <span class="cruit_li_2_foot_title">{{ item.jtzw_name }}</span>
+                                        </div>
+                                        <div class="cruit_li_2_foot clearfix">
+                                            <span class="cruit_li_2_foot_tag cruit_li_2_foot_addres">
+                                                {{ item.city_name }}
+                                            </span>
+                                            <span class="cruit_li_2_foot_tag cruit_li_2_foot_exper"
+                                                v-if="item.experience_name || item.education_name">
+                                                <span class="cruit_li_2_foot_tag_in">{{ item.experience_name }}</span>
+                                                <span class="cruit_li_2_foot_tag_in">{{ item.education_name }}</span>
+                                            </span>
+                                            <span class="cruit_li_2_foot_tag cruit_li_2_foot_time">
+                                                {{ getTime(item.updated_at, 'year', 1) }}
+                                            </span>
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                            <div class="pagination" v-if="zptotal">
+                                <el-pagination size="small" background layout="prev, pager, next" :total="zptotal"
+                                    class="mt-4" prev-text="上一页" next-text="下一页" @change="changePage" />
+                            </div>
+                            <div class="empty" v-if="job_vacancy == false">
+                                <img src="@/public/topic/empty.png" alt="" class="empty_img">
+                                <span class="empty_text">当前暂无数据</span>
+                            </div>
+                        </div>
+                        <!-- 找工作 -->
+                        <!-- 招人才 -->
+                        <!-- <div class=" clearfix" v-show="job_search == 2">
+                            <div class="society_ul_3 clearfix" v-if="job_resume">
+                                <div class="society_li_3 clearfix" v-for="(item, index) in job_resume" :key="item">
+                                    <div class="society_inp_checkbox_box_li_3 hand" v-if="type_id == 3">
+                                        <el-checkbox v-model="selectedResume" :value="item.id" @change="jobChange" />
+                                    </div>
+                                    <NuxtLink class="society_li_3_a" :href="`/${item.pinyin}/${item.id}.html`" title="">
+                                        <div class="society_li_3_head_box clearfix">
+                                            <div class="society_li_3_head clearfix dot1">
+                                                {{ item.name }}
+                                            </div>
+                                            <div class="society_li_3_head_name clearfix dot1">
+                                                {{ item.jtzw_name }}
+                                            </div>
+                                        </div>
+                                        <div class="society_li_3_text_box clearfix">
+                                            <div class="society_li_3_text">
+                                                {{ item.sexy == 1 ? '男' : '女' }}
+                                                <em class="point">·</em>
+                                            </div>
+                                            <div class="society_li_3_text" v-if="item.experience">
+                                                {{ item.experience }}年
+                                                <em class="point">·</em>
+                                            </div>
+                                            <div class="society_li_3_text">
+                                                {{ item.origin }}
+                                                <em class="point">·</em>
+                                            </div>
+                                            <div class="society_li_3_text">{{ item.hy_name }}</div>
+                                        </div>
+                                        <div class="society_li_3_tag_box clearfix">
+                                            <span class="society_li_3_tag">{{ item.city_name }}</span>
+                                            <span class="society_li_3_tag">
+                                                {{ getTime(item.updated_at, 'year', 1) }}
+                                            </span>
+                                        </div>
+                                    </NuxtLink>
+                                </div>
+                            </div>
+                            <div class="pagination" v-if="qztotal">
+                                <el-pagination size="small" background layout="prev, pager, next" :total="qztotal"
+                                    class="mt-4" prev-text="上一页" next-text="下一页" @change="changePage" />
+                            </div>
+                            <div class="empty" v-if="job_resume == false">
+                                <img src="@/public/topic/empty.png" alt="" class="empty_img">
+                                <span class="empty_text">当前暂无数据</span>
+                            </div>
+                        </div> -->
+                        <!-- 招人才 -->
+                    </div>
+                    <!-- 选项卡 -->
+                </section>
+                <!-- 招聘职位 -->
+                <!-- <div class="cruit_alert_box">投递成功</div> -->
+            </main>
+            <!-- 弹框 -->
+            <section class="cruit_alert_rgb clearfix" v-if="resumeBoo">
+                <!-- 请选择要沟通的职位1 -->
+                <!-- <div class="cruit_alert_rgb_box">
+                    <div class="cruit_alert_rgb_head_box">
+                        <div class="cruit_alert_rgb_close hand back100"></div>
+                        <div class="cruit_alert_rgb_head">请选择要沟通的职位</div>
+                    </div>
+                    <form class="cruit_alert_rgb_form clearfix" action=" " method=" ">
+                        <div class="cruit_alert_rgb_form_in clearfix">
+                            <div class="cruit_alert_rgb_li clearfix" v-for="(item, index) in 17" :key="item.id">
+                                <input name="type" type="checkbox" value="" class="cruit_alert_rgb_checkbox hand" />
+                                <label
+                                    class="cruit_alert_rgb_label dot1">高级PHP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程HP工程师</label>
+                            </div>
+                        </div>
+                        <div class="cruit_alert_rgb_foot clearfix">
+                            <input class="cruit_alert_rgb_foot_sub hand" name="" type="submit" value="沟通职位">
+                        </div>
+                    </form>
+                </div> -->
+                <!-- 请选择要沟通的职位2 -->
+                <!-- 请选择要投递的简历1 -->
+                <div class="cruit_alert_rgb_box">
+                    <div class="cruit_alert_rgb_head_box">
+                        <div class="cruit_alert_rgb_close hand back100"></div>
+                        <div class="cruit_alert_rgb_head">请选择要沟通的岗位
+                            <span class="close" @click="resumeBoo = false">x</span>
+                        </div>
+
+                    </div>
+                    <form class="cruit_alert_rgb_form clearfix" action=" " method=" ">
+                        <div class="cruit_alert_rgb_form_in clearfix">
+                            <div class="cruit_alert_rgb_li clearfix" v-for="(item, index) in companyJobList"
+                                :key="item.id">
+                                <!-- <el-checkbox v-model="company_job" :value="item.id" @change="jobChange" /> -->
+                                <el-radio :value="item.id" v-model="company_job" @change="jobChange">
+                                    <div class="cruit_alert_rgb_label dot1">
+                                        {{ item.title }}
+                                    </div>
+                                </el-radio>
+                            </div>
+                        </div>
+                        <div class="cruit_alert_rgb_foot clearfix">
+                            <div class="cruit_alert_rgb_foot_sub hand" @click="getresume">沟通岗位</div>
+                        </div>
+                    </form>
+                </div>
+                <!-- 请选择要投递的简历2 -->
+            </section>
+        </main>
+        <!-- 页面底部 -->
+        <HomeFoot1></HomeFoot1>
+    </div>
+</template>
+
+<script setup>
+//1.页面必备依赖 start ---------------------------------------->
+import { ElSelect, ElOption, ElInput, ElButton, ElPagination, ElCheckbox, ElRadio, ElMessage } from 'element-plus';
+import { ref, onMounted } from 'vue';
+import { useRoute } from 'vue-router'
+
+const nuxtApp = useNuxtApp();
+const axios = nuxtApp.$axios;
+
+
+//当前列表名称
+const name = ref('')
+const selectedJobs = ref([])
+const selectedResume = ref([])
+const company_job = ref('')
+const allJob = ref(false)
+const allResume = ref(false)
+const cruit_ul_1_a_only_num = ref(0)
+const job_search = ref(1)   // 选项卡
+const { $webUrl, $CwebUrl, $BwebUrl } = useNuxtApp()
+
+
+//获取用户信息
+let type_id = ref('')
+let website_id = ref('')
+let getUserInfo = () => {
+    axios.get("/user/getUserInfo").then(response => {
+        console.log("gettypeid", response.data);
+        type_id.value = response.data.type_id
+        website_id.value = response.data.website_id
+    })
+}
+onMounted(() => {
+    getUserInfo()
+})
+//1.页面必备依赖 end ---------------------------------------->
+
+//1.获得路由id start ---------------------------------------->
+const route = useRoute();
+
+const hyid = ref(route.query.hyid);
+const zwid = ref(route.query.zwid);
+const jtzwid = ref(route.query.jtzwid);
+const provinceid = ref(route.query.provinceid);
+const cityid = ref(route.query.cityid);
+// const zwid = route.query.zwid;
+// const jtzwid = route.query.jtzwid;
+// const provinceid = route.query.provinceid;
+// const cityid = route.query.cityid;
+const keyword = route.query.keywords;
+
+
+
+let articleId = 0;//路由id
+let pageNum = ref(2);
+let total = ref(0);
+let zptotal = ref(0);
+let qztotal = ref(0);
+const page = ref(1)
+const pageSize = ref(10);
+let hyIndex = ref(1);
+let zwIndex = ref(1);
+let jtzwIndex = ref(1);
+
+//获得当前的完整路径
+const fullPath = route.path;
+//拆分,取出来中间这一段,然后提取数字部分
+const segments = fullPath.split('/');
+const targetSegment = segments[2];
+const targetRoute = segments[1];
+// console.log('111222', targetRoute);
+
+
+//const numberPart = targetSegment.match(/\d+$/)?.[0]; 
+//let routeId = 20 //排除路径错误可以打开这个
+//articleId = numberPart;
+
+//通过导航路径反向查询导航id
+const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
+    method: 'GET',
+    query: {
+        'pinyin': targetRoute,
+    },
+});
+// console.log("111222333", getRouteId);
+
+if (getRouteId.code == 200) {
+    articleId = getRouteId.data.category_id
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:通过url路径查询导航池id")
+    console.log("后端错误反馈:", getRouteId.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//获得html前的数字
+// const pageUrl = segments[3]; 
+// const pageNumber = pageUrl.split('.')[0];
+// console.log("当前URL中的页码:")
+// console.log(pageNumber)//2
+// pageNum.value = parseInt(pageNumber);
+pageNum.value = parseInt(route.params.id);
+// 创建个人简历
+let createResume = () => {
+    window.open($BwebUrl + '/#/addJobHunting', '_blank');
+}
+// 发布招聘信息
+let createJob = () => {
+    window.open($BwebUrl + '/#/creatJob', '_blank');
+}
+//1.获得路由id end ---------------------------------------->
+
+//2.页面数据 start ---------------------------------------->
+// 2.1.1 获取省份
+const province = ref('')  //省
+const city = ref('')  //市
+const provinceList = ref([])  //省列表
+const cityList = ref([])  //市列表
+const getArea = await requestDataPromise('/web/selectWebsiteArea', {
+    method: 'GET',
+    query: {},
+});
+if (getArea.code == 200) {
+    provinceList.value = getArea.data;
+}
+
+
+// 2.1.2 获取
+const provinceChange = (val) => {
+    provinceid.value = val;
+    city.value = '';
+    console.log('获取到的省份id', val);
+    getCity(val)
+}
+const getCity = async (value) => {
+    const getCity = await requestDataPromise('/web/selectWebsiteArea', {
+        method: 'GET',
+        query: {
+            'pid': value,
+        },
+    });
+    if (getCity.code == 200) {
+        cityList.value = getCity.data;
+    }
+}
+
+
+if (provinceid) {
+    for (let i = 0; i < provinceList.value.length; i++) {
+        if (provinceList.value[i].id == provinceid) {
+            province.value = provinceList.value[i].id;
+        }
+    }
+    const getCity = await requestDataPromise('/web/selectWebsiteArea', {
+        method: 'GET',
+        query: {
+            'pid': provinceid,
+        },
+    });
+    if (getCity.code == 200) {
+        cityList.value = getCity.data;
+    }
+    if (cityid) {
+        for (let i = 0; i < cityList.value.length; i++) {
+            if (cityList.value[i].id == cityid) {
+                city.value = cityList.value[i].id;
+            }
+        }
+    }
+}
+
+
+// 2.2.1 行业和职位
+const keywords = ref('')  //关键词
+const industry_categoryList = ref([])  //行业类别列表
+const position_categoryList = ref([])  //职位类别列表
+const positionList = ref([])  //具体职位列表
+
+const getData = async () => {
+    const getData = await requestDataPromise('/web/getWebsiteJobSelect', {
+        method: 'GET',
+        query: {},
+    });
+    if (getData.code == 200) {
+        // console.log("获取到的分类数据:", getData.data);
+        industry_categoryList.value = getData.data.hy; //行业
+        position_categoryList.value = getData.data.zw; //职位
+        if (zwid.value == 0 || zwid.value == '' || zwid.value == undefined || zwid.value == null) {
+            positionList.value = getData.data.jtzw; //具体职位
+        }
+
+    }
+}
+getData()
+
+const job_vacancy = ref('') // 招聘岗位
+const job_resume = ref('') // 简历
+if (keyword) {
+    keywords.value = keyword
+}
+const getJob = async () => {
+    const getJob = await requestDataPromise('/web/getWebsiteJobList', {
+        method: 'GET',
+        query: {
+            'catid': articleId,
+            'city_id': provinceid.value,
+            'hy_id': hyid.value,
+            'zw_id': zwid.value,
+            'jtzw_id': jtzwid.value,
+            'page': page.value,
+            'pageSize': pageSize.value,
+            'keyword': keywords.value,
+        },
+    });
+    if (getJob.code == 200) {
+        // console.log("获取到的岗位和简历:", getJob.data);
+        job_vacancy.value = getJob.data.JobRecruiting; // 招聘岗位
+        job_resume.value = getJob.data.JobHunting; // 简历
+        zptotal.value = getJob.data.recruit_count;
+        qztotal.value = getJob.data.hunt_count;
+    }
+}
+getJob()
+
+let hyChange = (val) => {
+    console.log('hyChange', val)
+    hyid.value = val;
+    getJob()
+}
+let zwChange = async (val) => {
+    console.log('zwChange', val)
+    zwid.value = val;
+    const getPosition = await requestDataPromise('/web/getPositionList', {
+        method: 'GET',
+        query: {
+            'zwpid': val,
+        },
+    })
+    console.log("11112222", getPosition);
+
+    if (getPosition.code == 200) {
+        positionList.value = getPosition.data; //具体职位 
+    } else {
+        positionList.value = []; //具体职位
+        jtzwid.value = 0; //职位id
+    }
+    getJob()
+}
+let jtzwChange = (val) => {
+    console.log('jtzwChange', val)
+    jtzwid.value = val;
+    getJob()
+}
+
+// 搜索
+const goSearch = async () => {
+    const getJob = await requestDataPromise('/web/getWebsiteJobList', {
+        method: 'GET',
+        query: {
+            'catid': articleId,
+            'city_id': provinceid.value,
+            'hy_id': hyid.value,
+            'zw_id': zwid.value,
+            'jtzw_id': jtzwid.value,
+            'page': page.value,
+            'pageSize': pageSize.value,
+            'keyword': keywords.value,
+        },
+    });
+    console.log("111获取到的岗位和简历:", getJob.data);
+
+    if (getJob.code == 200) {
+        job_vacancy.value = getJob.data.JobRecruiting; // 招聘岗位
+        job_resume.value = getJob.data.JobHunting; // 简历
+        zptotal.value = getJob.data.recruit_count;
+        qztotal.value = getJob.data.hunt_count;
+    }
+}
+
+//2.2change事件
+let jobChange = (val) => {
+    console.log('jobChange', val)
+    console.log('jobChange111', selectedJobs.value)
+    console.log('jobChange111', selectedResume.value)
+    console.log('jobChange11122', company_job.value) //企业会员的职位
+    if (selectedJobs.value.length == job_vacancy.value.length) {
+        allJob.value = true;
+    } else {
+        allJob.value = false;
+    }
+    if (selectedResume.value.length == job_resume.value.length) {
+        allResume.value = true;
+    } else {
+        allResume.value = false;
+    }
+}
+let toggleAllJob = () => {
+    if (allJob.value) {
+        selectedJobs.value = job_vacancy.value.map(item => item.id);
+    } else {
+        selectedJobs.value = [];
+    }
+}
+
+let toggleAllResume = () => {
+    if (allResume.value) {
+        selectedResume.value = job_resume.value.map(item => item.id);
+    } else {
+        selectedResume.value = [];
+    }
+}
+
+
+//分页事件
+let changePage = (value) => {
+    console.log("当前页码", value);
+    navigateTo(`/${targetSegment}/${value}.html`)
+}
+
+//申请职位
+let getjob = () => {
+    if (selectedJobs.value.length == 0) {
+        ElMessage({
+            message: '请选择要申请的职位',
+            type: 'warning',
+        });
+    } else {
+        console.log("获取到的11111_sel:", selectedJobs.value);
+        console.log("获取到的1111_website_id:", website_id.value);
+        axios.post('/web/getWebsiteJobApply', {
+            'website_id': website_id.value,
+            'recruit_id': selectedJobs.value,
+        }).then(response => {
+            console.log("获取到的申请结果:", response.data);
+            if (response.code == 200) {
+                ElMessage({
+                    message: '投递成功',
+                    type: 'success',
+                });
+            } else {
+                ElMessage({
+                    message: response.message,
+                    type: 'error',
+                });
+            }
+            allJob.value = false;
+            selectedJobs.value = [];
+        })
+    }
+
+}
+//沟通简历
+let talkResume = () => {
+    if (selectedResume.value.length == 0) {
+        ElMessage({
+            message: '请选择要沟通的简历',
+            type: 'warning',
+        });
+        return false;
+    } else {
+        resumeBoo.value = true;
+    }
+    // resumeBoo.value = true;
+
+}
+//获取当前企业会员的职位
+const companyJobList = ref([])
+let companyJOb = async () => {
+    const companyJOb = await requestDataPromise('/web/getWebsiteJobRecruiting', {
+        method: 'POST',
+        body: {
+            'pageSize': pageSize.value,
+            'website_id': website_id.value,
+        }
+    })
+    // console.log("获取到的企业会员的职位11:", companyJOb.data);
+    if (companyJOb.code == 200) {
+        // console.log("获取到的企业会员的职位:", companyJOb.data);
+        companyJobList.value = companyJOb.data
+    }
+}
+companyJOb()
+
+// 沟通简历
+let resumeBoo = ref(false)
+let getresume = async () => {
+    const resumelist = await requestDataPromise('/web/getWebsiteJobResume', {
+        method: 'POST',
+        body: {
+            'website_id': website_id.value,
+            'recruit_id': company_job.value,
+            'hunt_id': selectedResume.value,
+        },
+    });
+
+    // console.log("沟通简历00", resumelist);
+    // console.log("沟通简历11", website_id.value);
+    // console.log("沟通简历22", company_job.value);
+    // console.log("沟通简历33", selectedResume.value);
+    if (resumelist.code == 200) {
+        ElMessage({
+            message: '投递成功',
+            type: 'sussess',
+        });
+        resumeBoo.value = false;
+    } else {
+        ElMessage({
+            message: resumelist.message,
+            type: 'error',
+        });
+        resumeBoo.value = false;
+    }
+    company_job.value = '';
+    selectedResume.value = [];
+    job_search.value = 2
+}
+
+
+
+// //2.3获得页面名称
+// let getPageName = async () => {
+//     const pageName = await requestDataPromise('/web/getOneWebsiteCategory', {
+//         method: 'GET',
+//         query: {
+//             'catid': articleId
+//         },
+//     });
+//     console.log('11122233344',pageName);
+
+//     if (pageName.code == 200) {
+//         name.value = pageName.data.alias
+//     } else {
+//         console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+//         console.log("错误位置:设置页面标题")
+//         console.log("后端错误反馈:", pageName.message)
+//         console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+//     }
+// }
+// //获得列表
+// getPageName();
+//2.页面数据 end ---------------------------------------->
+
+
+//3.二级栏目 start ---------------------------------------->
+//3.1通过id获取一级栏目
+const parent_name = ref([]);
+const parent_id = ref([]);
+const parent_pinyin = ref("");
+let getParentNav = async () => {
+    const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
+        method: 'GET',
+        query: {
+            'catid': articleId
+        },
+    });
+    // console.log("1112223334455", listData.data);
+
+    if (listData.code == 200) {
+        // console.log(111999)
+        console.log(listData.data);
+        parent_name.value = listData.data.alias;
+        parent_id.value = listData.data.category_id;
+        parent_pinyin.value = listData.data.aLIas_pinyin;
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取新闻列表")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+    getSecondNav();
+}
+//获得父级栏目详情
+getParentNav();
+
+// 3.2获取二级栏目
+const secondNav = ref([]);
+let getSecondNav = async () => {
+    const listData = await requestDataPromise('/web/getWebsiteModelCategory', {
+        method: 'GET',
+        query: {
+            'placeid': 1,
+            'pid': parent_id.value,
+            'num': 8,
+        },
+    });
+    console.log('listData', listData);
+
+    if (listData.code == 200) {
+        secondNav.value = listData.data;
+    } else {
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误位置:获取新闻列表")
+        console.log("后端错误反馈:", listData.message)
+        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    }
+}
+//3.二级栏目 end ---------------------------------------->
+
+//4.设置seo信息 start---------------------------------------->
+//4.1 设置seo信息
+const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
+    method: 'GET',
+    query: {
+        'catid': articleId
+    },
+});
+
+if (setData.code == 200) {
+    let seoTitle = setData.data.seo_title;
+    let seoDescription = setData.data.seo_description;
+    let seoKeywords = setData.data.seo_keywords;
+    let seoSuffix = setData.data.suffix;
+    let seoName = setData.data.website_name;
+
+    useSeoMeta({
+        title: seoTitle + "_" + seoName + "_" + seoSuffix,
+        meta: [
+            { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
+            { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
+        ]
+    });
+} else {
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+    console.log("错误位置:设置列表页面SEO数据")
+    console.log("后端错误反馈:", setData.message)
+    console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+}
+//4.设置seo信息 end---------------------------------------->
+
+
+//5.广告 start---------------------------------------->
+let adImg1 = ref({});
+let adImg2 = ref({});
+
+onMounted(async () => {
+
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_search_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_list_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+
+})
+//5.广告 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+@import url('@/assets/css/zgzpsearch.less');
+
+.empty {
+    width: 100%;
+    height: 150px;
+    line-height: 150px;
+    text-align: center;
+}
+
+.empty_img {
+    vertical-align: -30px;
+    margin-right: 20px;
+}
+
+.empty_text {
+    font-size: 26px;
+    color: #999;
+}
+</style>