Explorar el Código

Merge branch 'master' of https://git.nanodreamtech.com/Boss/yizhizan-h5

# Conflicts:
#	common/config.js
fuchaoyong hace 2 semanas
padre
commit
6795589a05

+ 1 - 1
common/config.js

@@ -28,4 +28,4 @@ if (process.env.NODE_ENV !== 'development') {
 		WSHOST4: ROOTPATH4
 	
 	};
-}
+}

+ 7 - 7
my/order/index.vue

@@ -8,12 +8,12 @@
 		<view>
 			<view class="box" v-for="(item,index) in goods" :key="index"
 				@click="goNav('/my/order/pay?postPushId='+item.postPushId)">
-				<view class="flex align-center justify-between padding-lr padding-tb-sm">
+				<!-- <view class="flex align-center justify-between padding-lr padding-tb-sm">
 					<view style="color: #00B88F;font-size: 28rpx;font-weight: bold;"><text
 							v-if="item.isOverdue==1">到期</text>{{item.statusName}}</view>
 					<view class="text-sm" style="color: #999999;">{{item.createTime}}</view>
 				</view>
-				<view style="width: 100%;height: 1rpx;background: #EEEEEE;"></view>
+				<view style="width: 100%;height: 1rpx;background: #EEEEEE;"></view> -->
 				<view class="padding-lr padding-tb-sm">
 					<view class="flex align-center justify-between">
 						<view class="text-bold" style="color: #1F1F1F;font-size: 38upx;">
@@ -33,19 +33,19 @@
 							{{ite}}
 						</view>
 					</view>
-					<view class="address flex align-center justify-between">
+					<!-- <view class="address flex align-center justify-between">
 						<view class="" style="color: #999999;">
 							{{item.company?item.company.companyName:''}}
 						</view>
 						<view class="" style="color: #666666;">
 							{{item.city}} {{item.county}}
 						</view>
-					</view>
+					</view> -->
 				</view>
 				<view style="width: 100%;height: 1rpx;background: #EEEEEE;"></view>
-				<view class="flex align-center padding-tb justify-end padding-lr">
+				<!-- <view class="flex align-center padding-tb justify-end padding-lr">
 					<view class="flex align-center">
-						<!-- <view class="btn" @click.stop="Changekefu()">联系客服</view> -->
+						<view class="btn" @click.stop="Changekefu()">联系客服</view>
 						<view class="btn" v-if="item.status == 2" @click.stop="closeJob(item.postPushId,'close')">关闭岗位
 						</view>
 						<view class="btn" v-if="item.status == 5 && item.isOverdue == 0"
@@ -57,7 +57,7 @@
 							@click.stop="updataServeType(item.postPushId,'updata')">修改内容</view>
 						<view v-if="item.status==1" class="btn" @click.stop="cancelProject(item.postPushId)">取消招聘</view>
 					</view>
-				</view>
+				</view> -->
 			</view>
 		</view>
 		<empty v-if="goods.length==0" />

+ 145 - 0
package/jobIntention/addAddress.vue

@@ -0,0 +1,145 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="岗位描述" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">添加地址</view>
+        <view class="form-item">
+          <view class="item-label"> 工作地址 </view>
+          <u-input
+            placeholder="请输入办公大楼名称,例:碧桂园凤凰智谷"
+            v-model="address"
+            clearable
+            class="custom-input"
+            :customStyle="{ padding: '8rpx 24rpx ' }"
+          >
+            <template #prefix>
+              <u-icon name="phone" size="36rpx" color="#999" marginRight="20rpx"></u-icon>
+            </template>
+          </u-input>
+        </view>
+        <view class="form-item">
+          <view class="item-label"> 楼层/单元室 </view>
+          <u-input
+            placeholder="楼层/单元室/门牌号,例:3层302室"
+            v-model="addressDetail"
+            clearable
+            class="custom-input"
+            :customStyle="{ padding: '8rpx 24rpx ' }"
+          >
+            <template #prefix>
+              <u-icon name="phone" size="36rpx" color="#999" marginRight="20rpx"></u-icon>
+            </template>
+          </u-input>
+        </view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goBack">确定</view>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      address: "",
+      addressDetail: '',
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    onInput(e) {
+      //   console.log(e);
+      // 如果需要额外的输入控制
+      //   this.text = e.detail.value;
+    },
+    goBack() {
+      uni.navigateBack();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+    }
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+}
+.form-item {
+  margin-bottom: 32rpx;
+  width: 100%;
+}
+.item-label {
+  color: rgba(18, 26, 44, 1);
+  font-family: Roboto;
+  font-size: 32rpx;
+  font-weight: 400;
+  line-height: 51.2rpx;
+  letter-spacing: 0px;
+  text-align: left;
+  padding-bottom: 6rpx;
+  padding: 10rpx 0;
+  box-sizing: border-box;
+}
+
+.custom-input {
+  box-sizing: border-box;
+  border: 2rpx solid rgba(158, 161, 168, 1);
+  border-radius: 100rpx;
+  background: rgba(255, 255, 255, 1);
+  padding: 8rpx 24rpx !important;
+}
+::v-deep .u-input {
+  text-align: left !important;
+}
+</style>

+ 158 - 0
package/jobIntention/editJob.vue

@@ -0,0 +1,158 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="岗位描述" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">岗位描述</view>
+        <view class="desc"
+          >请勿填写QQ、微信、电话等联系方式及特殊符号,性别歧视词、
+          违反劳动法相关内容,否则有可能导致账号封禁。</view
+        >
+        <view class="check-box">
+          <textarea
+            v-model="text"
+            placeholder="1.工作内容
+2.任务要求
+3.特别说明"
+            maxlength="500"
+            @input="onInput"
+            class="textarea"
+          ></textarea>
+          <view class="word-count">
+            <text>{{ text ? text.length : 0 }}</text> /500</view
+          >
+        </view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goJobPosting">确定</view>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      peopleList: [
+        "0-20人",
+        "20-99人",
+        "100-499人",
+        "500-999人",
+        "1000-9999人",
+        "10000人以上",
+      ],
+      text: "",
+      check: 0,
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    onInput(e) {
+      //   console.log(e);
+      // 如果需要额外的输入控制
+      //   this.text = e.detail.value;
+    },
+    goJobPosting() {
+      uni.navigateTo({
+        url: `/pages/my/jobPosting?text=${this.text}`,
+      });
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+      .desc {
+        color: rgba(102, 102, 102, 1);
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 24rpx;
+        font-weight: 400;
+        line-height: 32rpx;
+        letter-spacing: 0.5%;
+        text-align: left;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-box {
+        width: 100%;
+        border-radius: 12rpx;
+        background: rgba(240, 240, 240, 1);
+        padding: 34rpx;
+        padding-top: 40rpx;
+        box-sizing: border-box;
+        .word-count {
+          font-family: DM Sans;
+          font-size: 20rpx;
+          font-weight: 400;
+          line-height: 26rpx;
+          text-align: right;
+          text {
+            color: #016bf6;
+          }
+        }
+      }
+    }
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+}
+::v-deep .textarea-placeholder {
+  color: rgba(153, 153, 153, 1);
+  font-family: DM Sans;
+  font-size: 20rpx !important;
+  font-weight: 400;
+  line-height: 26rpx;
+}
+::v-deep .uni-textarea-textarea {
+  font-size: 20rpx;
+}
+</style>

+ 195 - 0
package/jobIntention/fund.vue

@@ -0,0 +1,195 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="福利待遇" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">福利待遇</view>
+        <view class="check-box">
+          <textarea
+            v-model="text"
+            placeholder="请详细描述公司的福利待遇"
+            maxlength="500"
+            @input="onInput"
+            class="textarea"
+          ></textarea>
+          <view class="word-count">
+            <text>{{ text ? text.length : 0 }}</text> /500</view
+          >
+        </view>
+        <view class="fund-box">
+          <view
+            class="fund-item"
+            :class="{ 'fund-check': checkList.includes(index) }"
+            v-for="(item, index) in fundList"
+            :key="index"
+            @click="checkFund(index)"
+          >
+            {{ item }}
+          </view>
+        </view>
+        <view class="fund-desc-txt">已选{{ checkList.length }}个</view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goBack">确定</view>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      fundList: [
+        "五险一金",
+        "定期体检",
+        "年终奖",
+        "带薪年假",
+        "员工旅游",
+        "节日福利",
+        "绩效",
+        "零食下午茶",
+      ],
+      text: "",
+      checkList: [],
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    onInput(e) {
+      //   console.log(e);
+      // 如果需要额外的输入控制
+      //   this.text = e.detail.value;
+    },
+    goBack() {
+      uni.navigateBack();
+    },
+    checkFund(index) {
+      const currentIndex = this.checkList.indexOf(index);
+      if (currentIndex > -1) {
+        // 如果已选中,移除
+        this.checkList.splice(currentIndex, 1);
+      } else {
+        // 如果未选中,添加
+        this.checkList.push(index);
+      }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+
+      .check-box {
+        width: 100%;
+        border-radius: 12rpx;
+        background: rgba(240, 240, 240, 1);
+        padding: 34rpx;
+        padding-top: 40rpx;
+        box-sizing: border-box;
+        margin: 20rpx 0;
+        .word-count {
+          font-family: DM Sans;
+          font-size: 20rpx;
+          font-weight: 400;
+          line-height: 26rpx;
+          text-align: right;
+          text {
+            color: #016bf6;
+          }
+        }
+      }
+    }
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+}
+.fund-desc-txt {
+  color: #016bf6;
+  font-family: DM Sans;
+  font-size: 20rpx;
+  font-weight: 400;
+  line-height: 26rpx;
+  width: 100%;
+  margin-top: 8rpx;
+}
+.fund-box {
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  gap: 8rpx;
+  .fund-item {
+    flex-shrink: 0;
+    box-sizing: border-box;
+    border: 1rpx solid rgba(255, 102, 0, 1);
+    border-radius: 8rpx;
+    padding: 8rpx;
+    color: #016bf6;
+    font-family: DM Sans;
+    font-size: 16rpx;
+    font-weight: 400;
+    text-align: left;
+  }
+  .fund-check {
+    background: #fce9dc;
+    border-color: #fce9dc;
+  }
+}
+::v-deep .textarea-placeholder {
+  color: rgba(153, 153, 153, 1);
+  font-family: DM Sans;
+  font-size: 20rpx !important;
+  font-weight: 400;
+  line-height: 26rpx;
+}
+::v-deep .uni-textarea-textarea {
+  font-size: 20rpx;
+}
+</style>

+ 65 - 0
pages.json

@@ -42,6 +42,13 @@
 				"navigationStyle": "custom"
 			}
 		},
+		{
+			"path": "pages/my/jobPostingSecond",
+			"style": {
+				"navigationBarTitleText": "发布职位",
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/index/search/index",
 			"style": {
@@ -165,6 +172,34 @@
 				"navigationStyle": "custom"
 			}
 		},
+		{
+			"path": "pages/jobManagement/jobManagement",
+			"style": {
+				"navigationBarTitleText": "职位管理",
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/jobManagement/jobDetail",
+			"style": {
+				"navigationBarTitleText": "职位详情",
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/talentSearch/index",
+			"style": {
+				"navigationBarTitleText": "搜索",
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/talentSearch/filter",
+			"style": {
+				"navigationBarTitleText": "筛选",
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path": "pages/index/webView",
 			"style": {
@@ -475,6 +510,14 @@
 						"navigationStyle": "custom"
 					}
 				},
+				{
+					"path": "jobIntention/editJob",
+					"style": {
+						"navigationBarTitleText": "岗位描述",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
 				{
 					"path": "jobIntention/edit",
 					"style": {
@@ -539,6 +582,22 @@
 						"navigationStyle": "custom"
 					}
 				},
+				{
+					"path": "jobIntention/addAddress",
+					"style": {
+						"navigationBarTitleText": "添加地址",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
+							{
+					"path": "jobIntention/fund",
+					"style": {
+						"navigationBarTitleText": "福利待遇",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
 				{
 					"path": "jobIntention/basicInfo",
 					"style": {
@@ -1088,6 +1147,12 @@
 				"selectedIconPath": "static/tabbar/ACjipin.png",
 				"text": "急聘"
 			},
+			{
+				"pagePath": "pages/talentSearch/index",
+				"iconPath": "static/tabbar/Hrsearch.png",
+				"selectedIconPath": "static/tabbar/ACsearch.png",
+				"text": "搜索"
+			},
 			{
 				"pagePath": "pages/msg/index",
 				"iconPath": "static/tabbar/Chat.png",

+ 272 - 79
pages/index/index.vue

@@ -291,20 +291,24 @@
 			</block>
 			<!-- 企业版 -->
 			<block v-else>
-				<!-- banner -->
-				<view class="banner flex justify-center">
-					<view class="banner-box">
-						<swiper :indicator-dots="false" style="width: 100%;height: 100%;" :autoplay="true"
-							:interval="5000" :duration="300">
-							<swiper-item v-for="(item,index) in bannerList" :key="index">
-								<view class="swiper-item" style="width: 100%;height: 100%;">
-									<image :src="item.imageUrl" style="width: 100%;height: 100%;border-radius: 24rpx;"
-										mode="scaleToFill"></image>
-								</view>
-							</swiper-item>
-						</swiper>
+				<!-- 顶部banner图片 -->
+				<!-- 
+					<view class="banner flex justify-center">
+						<view class="banner-box">
+							<swiper :indicator-dots="false" style="width: 100%;height: 100%;" :autoplay="true"
+								:interval="5000" :duration="300">
+								<swiper-item v-for="(item,index) in bannerList" :key="index">
+									<view class="swiper-item" style="width: 100%;height: 100%;">
+										<image :src="item.imageUrl" style="width: 100%;height: 100%;border-radius: 24rpx;"
+											mode="scaleToFill"></image>
+									</view>
+								</swiper-item>
+							</swiper>
+						</view>
 					</view>
-				</view>
+				-->
+				
+				<!-- 最新公告 -->
 				<view class="announcement" v-if="gongao.length!=0">
 					<view class="announcementbox">
 						<view class="anount">最新公告</view>
@@ -335,57 +339,73 @@
 				<u-sticky @fixed="isfixed" @unfixed="isunfixed" :radius='40' h5-nav-height="0" :enable="enable">
 					<view class="qySx flex justify-center" :class="isfixeds==true?'isfixed':'isfixeds'">
 						<view class="qySx-box">
-							<view class="qySx-box-sxp flex justify-between">
+							<!-- 第一行:tabs -->
+							<view class="qySx-box-row flex justify-between align-center">
 								<view class="qySx-box-l flex align-center">
-									<scroll-view scroll-x="true" class="topbg-scroll"
-										:scroll-into-view="'bottomView'+currentJobSx" scroll-with-animation="true">
-										<view class="qySx-box-l-i flex flex-wrap align-center" :id="'bottomView'+index"
-											@tap="currentJobSx=index;getDomWidth()"
-											v-for="(item,index) in jobSxTypeList" :key="index">
-											<view class="jobtitle" style="z-index: 999;"
-												:class="currentJobSx==index?'activeQ':''">
-												{{item.name}}
-												<view class="jobtitleBom"
-													:style="domeWidth>0?'width:'+domeWidth+'rpx':''"
-													v-if="currentJobSx==index"
-													style="height: 14rpx;background: linear-gradient(90deg, #08F3CE 0%, #05F3A7 100%);border-radius: 7rpx;">
-												</view>
-											</view>
-
-										</view>
-									</scroll-view>
-
-
+									<view class="qySx-box-l-i" :class="currentJobSx==index?'active':''"
+										@tap="currentJobSx=index;getDomWidth()" v-for="(item,index) in jobSxTypeList" :key="index">
+										{{item.name}}
+									</view>
 								</view>
+								<!-- 发布招聘 -->
 								<view class="qySx-box-r flex align-center" @click="goNavss('/package/addJob/addJob')">
-									<text style="margin-right: 20rpx;color: #00B88F;">发布招聘</text>
-									<u-icon name="plus-circle" color="#00B88F" size="38"></u-icon>
+									<image src="../../static/images/index/Attachment.svg" class="attachment-icon" />
 								</view>
 							</view>
-							<view class="qySx-box-sxs flex justify-between align-center">
-								<view class="qySx-box-sxs-l flex align-center">
-									<view class="qySx-box-sxs-l-i" @click="currentJobSxs=index"
-										:class="currentJobSxs==index?'activeQs':''"
-										v-for="(item,index) in jobSxsTypeList" :key="index">
+							
+							<!-- 第二行:筛选 -->
+							<view class="qySx-sx-box flex justify-between align-center">
+								<!-- 分类 -->
+								<view class="qySx-sx-box-l flex align-center">
+									<view class="qySx-sx-box-l-i" :class="currentJobSxs==index?'active3':''"
+										@click="currentJobSxs=index" v-for="(item,index) in jobSxsTypeList" :key="index">
 										{{item.name}}
 									</view>
 								</view>
-								<view class="qySx-box-sxs-r flex align-center">
-									<text style="margin-right: 10rpx;color: #00B78F;"
-										@click="goNav('/package/jobIntention/city')">{{city?city:'选择城市'}}</text>
-									<u-icon name="arrow-down-fill" @click="goNav('/package/jobIntention/city')"
-										style="margin-right: 30rpx;" color="#00B88F" size="20">
-									</u-icon>
-									<text style="margin-right: 10rpx;"
-										@click="goNav('/package/screen/screen?type=2')">筛选</text>
-									<u-icon name="arrow-down-fill" @click="goNav('/package/screen/screen?type=2')"
-										color="#CCCCCC" size="20"></u-icon>
+								
+								<view class="qySx-sx-box-r flex align-center">
+									<!-- 城市 -->
+									<view class="qySx-sx-box-r-i flex align-center">
+										<text style="margin-right: 10rpx;"
+											@click="goNav('/package/jobIntention/city')">{{city?city:'选择城市'}}</text>
+										<u-icon name="arrow-down" color="#00B78F" size="16"
+											@click="goNav('/package/jobIntention/city')"></u-icon>
+									</view>
+
+									<!-- 筛选 -->
+									<view class="qySx-sx-box-filter flex align-center">
+										<text style="margin-right: 10rpx;"
+											@click="goNav('/package/screen/screen?type=2')">筛选</text>
+										<u-icon name="arrow-down" color="#999999" size="16"
+											@click="goNav('/package/screen/screen?type=2')"></u-icon>
+									</view>
 								</view>
 							</view>
-
 						</view>
 					</view>
 				</u-sticky>
+
+				<!-- Vip推荐 -->
+				<view class="vipRecommend">
+					<view class="vipRecommend-box">
+						<view class="vipRecommend-close" @click="closeVipRecommend">
+							<image src="../../static/images/index/qiyeDelete.svg" class="close-icon" />
+						</view>
+						<view class="vipRecommend-content">
+							<view class="vipRecommend-title">
+								<text class="job-title">亚马逊运营总监</text>
+								<text class="job-status">职位体验中</text>
+							</view>
+							<view class="vipRecommend-message">
+								今日已错过24位新增牛人
+							</view>
+							<view class="vipRecommend-hint">
+								升级VIP正式版,享更多查看沟通权益
+							</view>
+						</view>
+					</view>
+				</view>
+
 				<!-- 简历列表 -->
 				<view class="qyList flex justify-center">
 					<view class="qyList-box">
@@ -1502,6 +1522,13 @@
 				uni.navigateTo({
 					url: '/package/jobIntention/tagManage'
 				})
+			},
+			
+			//关闭VIP推荐
+			closeVipRecommend() {
+				// 这里可以添加关闭逻辑,比如隐藏卡片或记录用户选择
+				console.log('关闭VIP推荐')
+				// 可以通过v-if控制显示隐藏
 			}
 
 		}
@@ -2130,59 +2157,225 @@
 	}
 
 	.isfixeds {
-		border-radius: 40rpx 40rpx 0 0;
+		// border-radius: 40rpx 40rpx 0 0;
 	}
 
 	.qySx {
+		position: fixed;
+		top: 0;
+		padding-top: 80rpx !important;
+		z-index: 999;
 		width: 100%;
-		// height: 366rpx;
-		background: linear-gradient(to bottom, #ffffff, #F2F2F7);
+		background: linear-gradient(180.00deg, rgba(255, 102, 0, 1),rgba(255, 89, 89, 1) 83%);
 		padding-bottom: 40rpx;
+		padding: 20rpx;
 
 		.qySx-box {
-			width: 686rpx;
+			width: 100%;
 			height: 100%;
+			border-radius: 12rpx;
+			box-shadow: 0px 8px 12px 0px rgba(0, 0, 0, 0.05);
+			background: rgba(255, 255, 255, 1);
+			padding: 28rpx;
 
-			.qySx-box-sxp {
-				height: 60rpx;
-				margin-top: 40rpx;
+			.qySx-box-row {
+				margin-bottom: 20rpx;
 			}
 
 			.qySx-box-l {
-				height: 100%;
-				width: 65%;
+				flex: 1;
+				white-space: nowrap;
+				overflow-x: auto;
+			}
 
-				// background-color: red;
-				.qySx-box-l-i {
-					display: inline-block;
-					height: 100%;
-					margin-right: 20rpx;
-					color: #999999;
-					font-size: 32rpx;
+			.qySx-box-l-i {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 28rpx;
+				font-weight: 400;
+				line-height: 18px;
+				letter-spacing: 0%;
+				text-align: left;
+				margin-right: 14rpx;
+
+				&.active {
+					background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+					-webkit-background-clip: text;
+					-webkit-text-fill-color: transparent;
+					background-clip: text;
+					text-fill-color: transparent;
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 700;
+					line-height: 48rpx;
+					letter-spacing: 0%;
+					text-align: left;
 				}
 			}
 
 			.qySx-box-r {
-				height: 100%;
+				color: #ffffff;
+				
+				.attachment-icon {
+					width: 38rpx;
+					height: 38rpx;
+				}
 			}
+		}
 
-			.qySx-box-sxs {
-				width: 100%;
-				height: 30rpx;
-				margin-top: 30rpx;
+		.qySx-sx-box {
+			width: 100%;
+			margin-top: 0rpx;
 
-				.qySx-box-sxs-l {
+			.qySx-sx-box-l-i {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 400;
+				line-height: 18px;
+				letter-spacing: 0%;
+				text-align: center;
+				margin-right: 20rpx;
+				border-radius: 6px;
+				background: rgba(198, 198, 198, 0.1);
+				padding: 8rpx 12rpx;
+				display: inline-block;
+				min-width: 60rpx;
+				white-space: nowrap;
 
-					.qySx-box-sxs-l-i {
-						margin-right: 40rpx;
-						color: #999999;
+				&.active3 {
+					font-family: DM Sans;
+					font-size: 24rpx !important;
+					font-weight: 400 !important;
+					line-height: 18px;
+					letter-spacing: 0%;
+					text-align: left;
+					padding: 8rpx 12rpx !important;
+					color: rgba(1, 107, 246, 1) !important;
+					// background: #D6E7FD !important;
+					background: rgba(252, 233, 220, 1);
+					border: 1px solid rgba(1, 107, 246, 1);
+				}
+			}
+
+			.qySx-sx-box-r-i {
+				color: rgba(1, 107, 246, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 400;
+				line-height: 18px;
+				letter-spacing: 0%;
+				text-align: center;
+				margin-right: 20rpx;
+				border-radius: 6px;
+				// background: #D6E7FD;
+				background: rgba(252, 233, 220, 1);
+				padding: 8rpx 12rpx;
+				display: inline-block;
+				min-width: 60rpx;
+				white-space: nowrap;
+				cursor: pointer;
+				transition: all 0.3s ease;
+				border: 0.5px solid rgba(1, 107, 246, 1);
+			}
+
+			.qySx-sx-box-filter {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 400;
+				line-height: 18px;
+				letter-spacing: 0%;
+				text-align: center;
+				border-radius: 6px;
+				background: rgba(198, 198, 198, 0.1);
+				padding: 8rpx 12rpx;
+				display: inline-block;
+				min-width: 60rpx;
+				white-space: nowrap;
+				cursor: pointer;
+				transition: all 0.3s ease;
+			}
+		}
+	}
+
+	.vipRecommend {
+		width: 100%;
+		margin-top: 280rpx;
+		padding: 0 20rpx;
+		box-sizing: border-box;
+
+		.vipRecommend-box {
+			width: 100%;
+			background: #ffffff;
+			border-radius: 12rpx;
+			box-shadow: 0px 8px 12px 0px rgba(0, 0, 0, 0.05);
+			padding: 28rpx;
+			position: relative;
+
+			.vipRecommend-close {
+				position: absolute;
+				top: 24rpx;
+				right: 24rpx;
+				width: 48rpx;
+				height: 48rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				border-radius: 50%;
+
+				.close-icon {
+					width: 48rpx;
+					height: 48rpx;
+				}
+			}
+
+			.vipRecommend-content {
+				padding-right: 60rpx;
+
+				.vipRecommend-title {
+					margin-bottom: 16rpx;
+
+					.job-title {
+						color: rgba(23, 23, 37, 1);
+						font-family: DM Sans;
 						font-size: 28rpx;
+						font-weight: 700;
+						line-height: 48rpx;
+						text-align: left;
+						margin-right: 8rpx;
+					}
+
+					.job-status {
+						color: rgba(156, 164, 171, 1);
+						font-family: DM Sans;
+						font-size: 24rpx;
+						font-weight: 400;
+						line-height: 40rpx;
+						letter-spacing: 0.5%;
+						text-align: left;
 					}
 				}
 
-				.qySx-box-sxs-r {
-					color: #999999;
-					font-size: 28rpx;
+				.vipRecommend-message {
+					color: rgba(102, 102, 102, 1);
+					font-family: DM Sans;
+					font-size: 24rpx;
+					font-weight: 400;
+					line-height: 32rpx;
+					letter-spacing: 0.5%;
+					text-align: left;
+					margin-bottom: 16rpx;
+				}
+
+				.vipRecommend-hint {
+					color: rgba(102, 102, 102, 1);
+					font-family: DM Sans;
+					font-size: 18rpx;
+					font-weight: 400;
+					line-height: 20rpx;
+					letter-spacing: 0.5%;
+					text-align: left;
 				}
 			}
 		}

+ 281 - 0
pages/jobManagement/jobDetail.vue

@@ -0,0 +1,281 @@
+<template>
+	<view class="job-detail-page">
+		<!-- 固定顶部导航栏 -->
+		<view class="fixed-header">
+			<!-- 自定义导航栏 -->
+			<view class="custom-navbar">
+				<view class="navbar-content">
+					<view class="nav-left" @click="goBack">
+						<u-icon name="arrow-leftward" color="#333" size="32"></u-icon>
+					</view>
+					<view class="nav-title">职位详情</view>
+					<view class="nav-right"></view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 主要内容区域 -->
+		<view class="main-content">
+			<!-- 审核状态提示 -->
+			<view class="status-section">
+				<view class="status-icon">
+					<image src="../../static/images/index/redGantan.svg" class="status-icon-img"></image>
+				</view>
+				<view class="status-title">职位审核失败</view>
+			</view>
+			
+			<!-- 职位信息卡片 -->
+			<view class="job-info-card">
+				<view class="job-header">
+					<view class="job-title-section">
+						<text class="job-title">亚马逊运营</text>
+					</view>
+					<view class="job-status">
+						<text class="status-text">审核未通过</text>
+					</view>
+				</view>
+				<view class="job-info">
+					<text class="job-details">深圳-西乡 本科 1-3年 10-15K·13薪 全职</text>
+				</view>
+			</view>
+			
+			<!-- 失败原因 -->
+			<view class="failure-reason-section">
+				<view class="section-title">失败原因</view>
+				<view class="reason-list">
+					<view class="reason-item">
+						<text class="reason-text">1.这是一段由平台端填写的审核详情</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 底部重新发布按钮 -->
+		<view class="bottom-action">
+			<view class="republish-btn" @click="republishJob">
+				<text class="republish-text">重新发布</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			
+		}
+	},
+	methods: {
+		goBack() {
+			uni.navigateBack()
+		},
+		republishJob() {
+			// 跳转到重新发布页面
+			uni.navigateTo({
+				url: '/package/addJob/addJob'
+			})
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+page {
+	background-color: #ffffff;
+}
+
+.job-detail-page {
+	min-height: 100vh;
+	background-color: #ffffff;
+}
+
+.fixed-header {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	z-index: 9999;
+	background-color: #ffffff;
+}
+
+.custom-navbar {
+	padding-top: 80rpx;
+	background-color: #ffffff;
+	box-sizing: border-box;
+	
+	.navbar-content {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 88rpx;
+		padding: 0 40rpx;
+		
+		.nav-left, .nav-right {
+			width: 60rpx;
+			height: 60rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+		
+		.nav-title {
+			color: rgba(51, 51, 51, 1);
+			font-family: DM Sans;
+			font-size: 30rpx;
+			font-weight: 700;
+			line-height: 52px;
+			letter-spacing: 0.5%;
+			text-align: center;
+		}
+	}
+}
+
+.main-content {
+	padding: 0 40rpx;
+	margin-top: 200rpx;
+	padding-bottom: 120rpx;
+}
+
+.status-section {
+	display: flex;
+	justify-content: center;
+	align-items: center;
+	margin-bottom: 40rpx;
+	
+	.status-icon {
+		margin-right: 20rpx;
+		display: flex;
+		align-items: center;
+		
+		.status-icon-img {
+			width: 48rpx;
+			height: 48rpx;
+		}
+	}
+	
+	.status-title {
+		color: rgba(29, 33, 41, 1);
+		font-family: DM Sans;
+		font-size: 36rpx;
+		font-weight: 500;
+		line-height: 48rpx;
+		letter-spacing: 0%;
+		text-align: left;
+		display: flex;
+		align-items: center;
+	}
+}
+
+.job-info-card {
+	background: #ffffff;
+	border-radius: 12rpx;
+	margin-bottom: 40rpx;
+	padding: 32rpx;
+	border: 0.5px solid rgba(227, 231, 236, 1);
+	
+	.job-header {
+		display: flex;
+		justify-content: space-between;
+		align-items: flex-start;
+		margin-bottom: 16rpx;
+		
+		.job-title-section {
+			flex: 1;
+			
+			.job-title {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 28rpx;
+				font-weight: 400;
+				line-height: 44rpx;
+				letter-spacing: 0.5%;
+				text-align: left;
+			}
+		}
+		
+		.job-status {
+			.status-text {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 18rpx;
+				font-weight: 400;
+				line-height: 20rpx;
+				letter-spacing: -0.5px;
+				text-align: right;
+			}
+		}
+	}
+	
+	.job-info {
+		.job-details {
+			color: rgba(153, 153, 153, 1);
+			font-family: DM Sans;
+			font-size: 28rpx;
+			font-weight: 400;
+			line-height: 36rpx;
+			letter-spacing: 0.5%;
+			text-align: left;
+		}
+	}
+}
+
+.failure-reason-section {
+	.section-title {
+		color: rgba(31, 44, 55, 1);
+		font-family: DM Sans;
+		font-size: 28rpx;
+		font-weight: 500;
+		line-height: 44rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+		margin-bottom: 20rpx;
+	}
+	
+	.reason-list {
+		.reason-item {
+			margin-bottom: 16rpx;
+			
+			.reason-text {
+				color: rgba(153, 153, 153, 1);
+				font-family: DM Sans;
+				font-size: 24rpx;
+				font-weight: 500;
+				line-height: 48rpx;
+				letter-spacing: 0.5%;
+				text-align: left;
+			}
+		}
+	}
+}
+
+.bottom-action {
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	padding: 30rpx 40rpx;
+	background: #ffffff;
+	z-index: 9999;
+	
+	.republish-btn {
+		width: 100%;
+		height: 88rpx;
+		background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+		border-radius: 44rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		.republish-text {
+			color: rgba(255, 255, 255, 1);
+			font-family: DM Sans;
+			font-size: 32rpx;
+			font-weight: 400;
+			line-height: 48rpx;
+			letter-spacing: 0%;
+			text-align: center;
+		}
+	}
+}
+</style>

+ 605 - 0
pages/jobManagement/jobManagement.vue

@@ -0,0 +1,605 @@
+<template>
+	<view class="job-management-page">
+		<!-- 固定顶部导航栏和标签页 -->
+		<view class="fixed-header">
+			<!-- 自定义导航栏 -->
+			<view class="custom-navbar">
+				<view class="navbar-content">
+					<view class="nav-left" @click="goBack">
+						<u-icon name="arrow-leftward" color="#333" size="32"></u-icon>
+					</view>
+					<view class="nav-title">职位管理</view>
+					<view class="nav-right"></view>
+				</view>
+			</view>
+			
+			<!-- 标签页导航 -->
+			<u-tabs 
+				:list="tabList" 
+				:current="activeTab" 
+				@change="switchTab"
+				:is-scroll="false"
+				:height="88"
+				:font-size="24"
+				active-color="#016BF6"
+				inactive-color="rgba(102, 102, 102, 1)"
+				:bar-width="60"
+				:bar-height="4"
+				:gutter="0"
+				bg-color="#ffffff"
+			></u-tabs>
+		</view>
+		
+		<!-- 职位列表 -->
+		<view class="job-list">
+			<!-- 有数据时显示列表 -->
+			<scroll-view scroll-y="true" style="width: 100%;height: 70vh;" v-if="jobList.length > 0">
+				<view 
+					class="job-card" 
+					:class="job.statusClass"
+					v-for="(job, index) in jobList" 
+					:key="index"
+					@click="goToJobDetail(job)"
+				>
+					<view class="job-card-content">
+						<view class="job-header">
+							<view class="job-title-section">
+								<text class="job-title">{{job.title}}</text>
+								<view class="urgent-tag" v-if="job.isUrgent">
+									<text class="urgent-text">急聘</text>
+								</view>
+							</view>
+							<view class="job-status" :class="job.statusClass">
+								<text class="status-text">{{job.status}}</text>
+							</view>
+						</view>
+						<view class="job-info">
+							<text class="job-details">{{job.location}} {{job.education}} {{job.experience}} {{job.salary}} {{job.type}}</text>
+						</view>
+					</view>
+				</view>
+			</scroll-view>
+			
+			<!-- 空状态显示 -->
+			<view class="empty-state" v-else>
+				<view class="empty-illustration">
+					<image src="../../static/images/index/Hrempty.svg" class="empty-image" mode="aspectFit" />
+				</view>
+			</view>
+		</view>
+		
+		<!-- 底部发布按钮 -->
+		<view class="bottom-action">
+			<view class="publish-btn" @click="publishNewJob">
+				<text class="publish-text">发布新职位</text>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			activeTab: 0,
+			tabList: [
+				{ name: '全部' },
+				{ name: '开放中' },
+				{ name: '审核失败' },
+				{ name: '已关闭' }
+			],
+			jobList: []
+		}
+	},
+	created() {
+		// 页面创建时初始化数据
+		this.filterJobsByTab(0)
+		// 动态设置body和html高度
+		this.setBodyHeight()
+	},
+	methods: {
+		goBack() {
+			// 检查页面栈,如果没有可返回的页面,则跳转到首页
+			const pages = getCurrentPages()
+			if (pages.length > 1) {
+				uni.navigateBack()
+			} else {
+				// 如果没有可返回的页面,跳转到首页
+				uni.switchTab({
+					url: '/pages/index/index'
+				})
+			}
+		},
+		switchTab(e) {
+			// u-tabs组件的change事件传递的是事件对象,需要获取index
+			const index = typeof e === 'number' ? e : e.index
+			this.activeTab = index
+			// 这里可以根据选中的标签过滤职位列表
+			this.filterJobsByTab(index)
+		},
+		filterJobsByTab(tabIndex) {
+			// 根据标签过滤职位列表的逻辑
+			console.log('切换到标签:', this.tabList[tabIndex].name)
+			
+			// 模拟不同标签的数据
+			if (tabIndex === 0) { // 全部
+				this.jobList = [
+					{
+						title: '亚马逊运营',
+						location: '深圳-西乡',
+						education: '本科',
+						experience: '1-3年',
+						salary: '10-15K·13薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: true
+					},
+					{
+						title: '亚马逊运营',
+						location: '深圳-西乡',
+						education: '本科',
+						experience: '1-3年',
+						salary: '10-15K·13薪',
+						type: '全职',
+						status: '审核中',
+						statusClass: 'status-review',
+						isUrgent: false
+					},
+					{
+						title: '亚马逊运营',
+						location: '深圳-西乡',
+						education: '本科',
+						experience: '1-3年',
+						salary: '10-15K·13薪',
+						type: '全职',
+						status: '审核未通过',
+						statusClass: 'status-failed',
+						isUrgent: false
+					},
+					{
+						title: '亚马逊运营',
+						location: '深圳-西乡',
+						education: '本科',
+						experience: '1-3年',
+						salary: '10-15K·13薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: false
+					},
+					{
+						title: '产品经理',
+						location: '深圳-南山',
+						education: '本科',
+						experience: '3-5年',
+						salary: '15-25K·14薪',
+						type: '全职',
+						status: '审核中',
+						statusClass: 'status-review',
+						isUrgent: true
+					},
+					{
+						title: 'UI设计师',
+						location: '深圳-福田',
+						education: '本科',
+						experience: '2-4年',
+						salary: '12-18K·13薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: false
+					},
+					{
+						title: '前端开发工程师',
+						location: '深圳-宝安',
+						education: '本科',
+						experience: '2-5年',
+						salary: '15-22K·13薪',
+						type: '全职',
+						status: '审核中',
+						statusClass: 'status-review',
+						isUrgent: true
+					},
+					{
+						title: '数据分析师',
+						location: '深圳-龙岗',
+						education: '硕士',
+						experience: '1-3年',
+						salary: '18-28K·14薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: false
+					},
+					{
+						title: '销售经理',
+						location: '深圳-罗湖',
+						education: '本科',
+						experience: '3-6年',
+						salary: '20-35K·15薪',
+						type: '全职',
+						status: '审核中',
+						statusClass: 'status-review',
+						isUrgent: false
+					},
+					{
+						title: '运营专员',
+						location: '深圳-盐田',
+						education: '本科',
+						experience: '1-2年',
+						salary: '8-12K·13薪',
+						type: '全职',
+						status: '审核未通过',
+						statusClass: 'status-failed',
+						isUrgent: false
+					},
+					{
+						title: '运营专员',
+						location: '深圳-盐田',
+						education: '本科',
+						experience: '1-2年',
+						salary: '8-12K·13薪',
+						type: '全职',
+						status: '审核未通过',
+						statusClass: 'status-failed',
+						isUrgent: false
+					},
+					{
+						title: '运营专员',
+						location: '深圳-盐田',
+						education: '本科',
+						experience: '1-2年',
+						salary: '8-12K·13薪',
+						type: '全职',
+						status: '审核未通过',
+						statusClass: 'status-failed',
+						isUrgent: false
+					},
+					{
+						title: '运营专员',
+						location: '深圳-盐田',
+						education: '本科',
+						experience: '1-2年',
+						salary: '8-12K·13薪',
+						type: '全职',
+						status: '审核未通过',
+						statusClass: 'status-failed',
+						isUrgent: false
+					}
+				]
+			} else if (tabIndex === 1) { // 开放中
+				this.jobList = [
+					{
+						title: '亚马逊运营',
+						location: '深圳-西乡',
+						education: '本科',
+						experience: '1-3年',
+						salary: '10-15K·13薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: true
+					},
+					{
+						title: '产品经理',
+						location: '深圳-南山',
+						education: '本科',
+						experience: '3-5年',
+						salary: '15-25K·14薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: true
+					},
+					{
+						title: 'UI设计师',
+						location: '深圳-福田',
+						education: '本科',
+						experience: '2-4年',
+						salary: '12-18K·13薪',
+						type: '全职',
+						status: '免费试用中',
+						statusClass: 'status-trial',
+						isUrgent: false
+					}
+				]
+			} else if (tabIndex === 2) { // 审核失败
+				this.jobList = [
+					{
+						title: '亚马逊运营',
+						location: '深圳-西乡',
+						education: '本科',
+						experience: '1-3年',
+						salary: '10-15K·13薪',
+						type: '全职',
+						status: '审核未通过',
+						statusClass: 'status-failed',
+						isUrgent: false
+					}
+				]
+			} else if (tabIndex === 3) { // 已关闭
+				this.jobList = [
+					{
+						title: '运营专员',
+						location: '深圳-盐田',
+						education: '本科',
+						experience: '1-2年',
+						salary: '8-12K·13薪',
+						type: '全职',
+						status: '已关闭',
+						statusClass: 'status-closed',
+						isUrgent: false
+					}
+				]
+			}
+		},
+		goToJobDetail(job) {
+			// 跳转到职位详情页面
+			uni.navigateTo({
+				url: '/pages/jobManagement/jobDetail'
+			})
+		},
+		publishNewJob() {
+			// 跳转到发布新职位页面
+			uni.navigateTo({
+				url: '/package/addJob/addJob'
+			})
+		},
+		setBodyHeight() {
+			// 动态设置body和html高度为auto
+			if (typeof document !== 'undefined') {
+				document.body.style.height = 'auto'
+				document.documentElement.style.height = 'auto'
+				document.body.style.minHeight = 'auto'
+				document.documentElement.style.minHeight = 'auto'
+			}
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+page {
+	background-color: #ffffff;
+}
+.job-management-page {
+	background-color: #ffffff;
+}
+
+.fixed-header {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	z-index: 9999;
+	background-color: #ffffff;
+}
+
+.custom-navbar {
+	padding-top: 80rpx;
+	background-color: #ffffff;
+	box-sizing: border-box;
+	
+	.navbar-content {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 88rpx;
+		padding: 0 40rpx;
+		
+		.nav-left, .nav-right {
+			width: 60rpx;
+			height: 60rpx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+		
+		.nav-title {
+            color: rgba(51, 51, 51, 1);
+            font-family: DM Sans;
+            font-size: 30rpx;
+            font-weight: 700;
+            line-height: 52px;
+            letter-spacing: 0.5%;
+            text-align: center;
+		}
+	}
+}
+
+.job-list {
+	padding: 0 40rpx;
+	margin-top: 280rpx;
+	
+	.job-card {
+		background: #ffffff;
+		border-radius: 12rpx;
+		margin-bottom: 20rpx;
+		padding: 32rpx;
+        border: 0.5px solid rgba(227, 231, 236, 1);
+		// box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.05);
+		
+		.job-card-content {
+			.job-header {
+				display: flex;
+				justify-content: space-between;
+				align-items: flex-start;
+				margin-bottom: 16rpx;
+				
+				.job-title-section {
+					display: flex;
+					align-items: center;
+					flex: 1;
+                    gap: 28rpx;
+					
+					.job-title {
+                        color: rgba(23, 23, 37, 1);
+                        font-family: DM Sans;
+                        font-size: 28rpx;
+                        font-weight: 400;
+                        line-height: 44rpx;
+                        letter-spacing: 0.5%;
+                        text-align: left;
+					}
+					
+					.urgent-tag {
+                        border-radius: 8rpx;
+                        background: rgba(252, 233, 220, 1);
+						padding: 4rpx 8rpx;
+						
+						.urgent-text {
+                            color: rgba(1, 107, 246, 1);
+                            font-family: DM Sans;
+                            font-size: 16rpx;
+                            font-weight: 400;
+                            // line-height: 20rpx;
+                            // letter-spacing: -0.5px;
+                            text-align: left;
+						}
+					}
+				}
+				
+				.job-status {
+					&.status-trial {
+						color: rgba(1, 107, 246, 1);
+					}
+					
+					&.status-review {
+						color: rgba(1, 107, 246, 1);
+					}
+					
+					&.status-failed {
+						color: rgba(153, 153, 153, 1);
+						
+						.status-text {
+							color: rgba(153, 153, 153, 1) !important;
+							background: none !important;
+							-webkit-background-clip: unset !important;
+							-webkit-text-fill-color: rgba(153, 153, 153, 1) !important;
+							background-clip: unset !important;
+							text-fill-color: rgba(153, 153, 153, 1) !important;
+						}
+					}
+					
+					&.status-closed {
+						color: rgba(153, 153, 153, 1);
+						
+						.status-text {
+							color: rgba(153, 153, 153, 1) !important;
+							background: none !important;
+							-webkit-background-clip: unset !important;
+							-webkit-text-fill-color: rgba(153, 153, 153, 1) !important;
+							background-clip: unset !important;
+							text-fill-color: rgba(153, 153, 153, 1) !important;
+						}
+					}
+					
+					.status-text {
+                        background: linear-gradient(132.53deg, rgba(106.94185638427734, 84.63434600830078, 214.0178680419922, 0.96),rgba(144.87640380859375, 87.8011474609375, 191.25, 1) 95%);
+                        -webkit-background-clip: text;
+                        -webkit-text-fill-color: transparent;
+                        background-clip: text;
+                        text-fill-color: transparent;
+                        font-family: DM Sans;
+                        font-size: 18rpx;
+                        font-weight: 400;
+                        line-height: 20rpx;
+                        letter-spacing: -0.5px;
+                        text-align: right;
+					}
+				}
+			}
+			
+			.job-info {
+				.job-details {
+                    color: rgba(120, 130, 138, 1);
+                    font-family: DM Sans;
+                    font-size: 28rpx;
+                    font-weight: 400;
+                    line-height: 36rpx;
+                    letter-spacing: 0.5%;
+                    text-align: left;
+				}
+			}
+		}
+		
+		&.status-failed {
+			.job-title {
+				color: rgba(153, 153, 153, 1) !important;
+			}
+			
+			.job-details {
+				color: rgba(153, 153, 153, 1) !important;
+			}
+		}
+		
+		&.status-closed {
+			.job-title {
+				color: rgba(153, 153, 153, 1) !important;
+			}
+			
+			.job-details {
+				color: rgba(153, 153, 153, 1) !important;
+			}
+		}
+	}
+}
+
+.empty-state {
+	display: flex;
+	// flex-direction: column;
+	align-items: center;
+	justify-content: center;
+	padding: 40rpx;
+	
+	.empty-illustration {
+		margin-bottom: 40rpx;
+		
+		.empty-image {
+			width: 700rpx;
+			height: 800rpx;
+		}
+	}
+	
+	.empty-text {
+		color: rgba(120, 130, 138, 1);
+		font-family: DM Sans;
+		font-size: 28rpx;
+		font-weight: 400;
+		line-height: 36rpx;
+		letter-spacing: 0.5%;
+		text-align: center;
+	}
+}
+
+.bottom-action {
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	padding: 30rpx 40rpx;
+	background: #ffffff;
+	z-index: 9999;
+	
+	.publish-btn {
+		width: 100%;
+		height: 88rpx;
+		background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+		border-radius: 44rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		
+		.publish-text {
+            color: rgba(255, 255, 255, 1);
+            font-family: DM Sans;
+            font-size: 32rpx;
+            font-weight: 400;
+            line-height: 48rpx;
+            letter-spacing: 0%;
+            text-align: center;
+		}
+	}
+}
+</style>

+ 196 - 252
pages/my/jobPosting.vue

@@ -1,280 +1,224 @@
 <template>
-  <view class="publish-job">
-    <!-- 导航栏 -->
-    <nav-bar title="发布职位" color="#000"></nav-bar>
-    
-    <view class="content">
-      <!-- 顶部提示 -->
-      <view class="top-tip">
-        <text class="tip-title">发布社招</text>
-        <text class="tip-desc">“深圳市汉睿国际猎头服务有限公司”的人员规模</text>
-        <text class="tip-step">填写基本信息 · Confirm</text>
-      </view>
-
-      <!-- 招聘类型 -->
-      <view class="section">
-        <view class="section-title">招聘类型</view>
-        <view class="recruit-type">
-          <view 
-            class="type-item" 
-            :class="{ active: recruitType === 'social' }"
-            @click="recruitType = 'social'"
-          >
-            <text>社招全职</text>
-          </view>
-          <view 
-            class="type-item" 
-            :class="{ active: recruitType === 'campus' }"
-            @click="recruitType = 'campus'"
-          >
-            <text>应届生校园招聘</text>
-          </view>
-          <view 
-            class="type-item" 
-            :class="{ active: recruitType === 'intern' }"
-            @click="recruitType = 'intern'"
-          >
-            <text>实习生招聘</text>
-          </view>
-          <view 
-            class="type-item" 
-            :class="{ active: recruitType === 'parttime' }"
-            @click="recruitType = 'parttime'"
+  <view class="switch-roles">
+    <nav-bar title="选择公司规模" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">发布社招</view>
+        <view class="desc">“深圳市汉睿国际猎头服务有限公司”的人员规模</view>
+        <view class="step">
+          <u-steps :list="numList" mode="number" :current="1"></u-steps>
+        </view>
+        <view class="check-title">招聘类型</view>
+        <view class="check-box">
+          <view
+            class="check-item"
+            :class="{ 'is-check': check == index }"
+            v-for="(item, index) in peopleList"
+            :key="index"
+            @click="checkPeople(index)"
+            >{{ item }}</view
           >
-            <text>兼职招聘</text>
-          </view>
         </view>
-      </view>
-
-      <!-- 招聘职位 -->
-      <view class="section">
-        <view class="section-title">招聘职位</view>
-        <view class="job-select" @click="showJobPicker = true">
-          <text class="placeholder" v-if="!selectedJob">请选择要招聘的职位</text>
-          <text class="selected-job" v-else>{{ selectedJob }}</text>
-          <u-icon name="arrow-right" color="#999" size="14"></u-icon>
+        <view class="check-title-big">招聘职位</view>
+        <view class="check-select" @click="goJob">
+          <view class="select-txt">请选择要招聘的职位</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
         </view>
-        <u-picker 
-          :show="showJobPicker" 
-          :columns="jobColumns" 
-          keyName="label"
-          @confirm="confirmJob"
-          @cancel="showJobPicker = false"
-        ></u-picker>
-      </view>
-
-      <!-- 岗位描述 -->
-      <view class="section">
-        <view class="section-title">岗位描述</view>
-        <view class="job-desc">
-          <u-textarea
-            v-model="jobDescription"
-            placeholder="介绍工作内容、职位要求"
-            height="200"
-            maxlength="1000"
-          ></u-textarea>
+        <view class="check-title-big">岗位描述</view>
+        <view class="check-select" @click="goJobContent">
+          <view class="select-txt">{{
+            this.text ? this.text : "介绍工作内容、职位要求"
+          }}</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
         </view>
-        <view class="desc-tip">介绍工作内容、职位要求</view>
+        <view class="txt-desc">注:职位名称、职位类型等发布后不可修改</view>
       </view>
-
-      <!-- 注意事项 -->
-      <view class="notice">
-        <text class="notice-text">注:职位名称、职位类型等发布后不可修改</text>
-      </view>
-    </view>
-
-    <!-- 底部按钮 -->
-    <view class="footer">
-      <u-button 
-        type="primary" 
-        text="下一步" 
-        @click="nextStep"
-        :customStyle="{
-          height: '88rpx',
-          borderRadius: '44rpx',
-          fontSize: '32rpx',
-          margin: '0 32rpx'
-        }"
-      ></u-button>
     </view>
+    <view class="submit-btn" @click="goJobPostingSecond">下一步</view>
   </view>
 </template>
-
 <script>
 import navBar from "@/components/nav-bar/index.vue";
-
 export default {
-  components: {
-    navBar
-  },
   data() {
     return {
-      recruitType: 'social', // 默认社招全职
-      showJobPicker: false,
-      selectedJob: '',
-      jobDescription: '',
-      jobColumns: [
-        [
-          { label: '前端开发工程师', value: 'frontend' },
-          { label: '后端开发工程师', value: 'backend' },
-          { label: 'UI设计师', value: 'ui' },
-          { label: '产品经理', value: 'pm' },
-          { label: '测试工程师', value: 'test' },
-          { label: '运维工程师', value: 'devops' }
-        ]
-      ]
+      peopleList: ["社招全职", "应届生校园招聘", "实习生招聘", "兼职招聘"],
+      check: 0,
+      text: "",
+      numList: [
+        {
+          name: "填写基本信息",
+        },
+        {
+          name: "选择职位要求",
+        },
+      ],
     };
   },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
   methods: {
-    confirmJob(e) {
-      this.selectedJob = e.value[0].label;
-      this.showJobPicker = false;
+    goBusinessLicense() {
+      uni.navigateTo({ url: "/pages/my/businessLicense" });
     },
-    
-    nextStep() {
-      if (!this.selectedJob) {
-        uni.showToast({
-          title: '请选择招聘职位',
-          icon: 'none'
-        });
-        return;
-      }
-      
-      if (!this.jobDescription) {
-        uni.showToast({
-          title: '请输入岗位描述',
-          icon: 'none'
-        });
-        return;
-      }
-      
-      // 跳转到下一步
+    checkPeople(index) {
+      this.check = index;
+    },
+    goJob() {
+      uni.navigateTo({
+        url: "/package/jobIntention/jobList",
+      });
+    },
+    goJobContent() {
       uni.navigateTo({
-        url: '/pages/job/publish-next'
+        url: `/package/jobIntention/editJob?text=${this.text}`,
       });
+    },
+    goJobPostingSecond(){
+      uni.navigateTo({ url: "/pages/my/jobPostingSecond" });
+
     }
-  }
+  },
 };
 </script>
-
 <style lang="scss" scoped>
-.publish-job {
-  background-color: #f5f5f5;
-  min-height: 100vh;
-  display: flex;
-  flex-direction: column;
-}
-
-.content {
-  flex: 1;
-  padding: 32rpx;
-}
-
-.top-tip {
-  background: #fff;
-  border-radius: 16rpx;
-  padding: 32rpx;
-  margin-bottom: 32rpx;
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
   display: flex;
   flex-direction: column;
-}
-
-.tip-title {
-  font-size: 36rpx;
-  font-weight: 600;
-  color: #333;
-  margin-bottom: 16rpx;
-}
-
-.tip-desc {
-  font-size: 28rpx;
-  color: #666;
-  margin-bottom: 8rpx;
-}
-
-.tip-step {
-  font-size: 24rpx;
-  color: #999;
-}
-
-.section {
-  background: #fff;
-  border-radius: 16rpx;
-  padding: 32rpx;
-  margin-bottom: 32rpx;
-}
-
-.section-title {
-  font-size: 32rpx;
-  font-weight: 500;
-  color: #333;
-  margin-bottom: 24rpx;
-}
-
-.recruit-type {
-  display: grid;
-  grid-template-columns: 1fr 1fr;
-  gap: 24rpx;
-}
-
-.type-item {
-  height: 80rpx;
-  border: 2rpx solid #e0e0e0;
-  border-radius: 12rpx;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  font-size: 28rpx;
-  color: #666;
-  
-  &.active {
-    border-color: #2979ff;
-    background: #f0f7ff;
-    color: #2979ff;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+      .desc {
+        color: rgba(102, 102, 102, 1);
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 24rpx;
+        font-weight: 400;
+        line-height: 32rpx;
+        letter-spacing: 0.5%;
+        text-align: left;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-title {
+        width: 100%;
+        color: rgba(31, 44, 55, 1);
+        font-family: DM Sans;
+        font-size: 28rpx;
+        font-weight: 500;
+        line-height: 44rpx;
+        margin-top: 20rpx;
+        margin-bottom: 16rpx;
+      }
+      .check-title-big {
+        color: rgba(58, 57, 67, 1);
+        font-family: DM Sans;
+        font-size: 36rpx;
+        font-weight: 500;
+        line-height: 48rpx;
+        width: 100%;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-select {
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        border-radius: 12rpx;
+        box-shadow: 0px 16rpx 300rpx 0px rgba(0, 0, 0, 0.06);
+        background: rgba(255, 255, 255, 1);
+        padding: 32rpx 47rpx;
+        box-sizing: border-box;
+        .select-txt {
+        }
+      }
+      .check-box {
+        width: 100%;
+        display: grid;
+        grid-template-columns: repeat(2, 1fr);
+        gap: 24rpx;
+        .check-item {
+          border-radius: 16rpx;
+          background: rgba(245, 248, 254, 1);
+          color: rgba(153, 153, 153, 1);
+          font-family: DM Sans;
+          font-size: 28rpx;
+          font-weight: 400;
+          line-height: 44rpx;
+          text-align: center;
+          padding: 12rpx 48rpx;
+          box-sizing: border-box;
+        }
+        .is-check {
+          box-sizing: border-box;
+          border: 1rpx solid #016bf6;
+          border-radius: 16rpx;
+          background: rgba(252, 233, 220, 1);
+          color: #016bf6;
+        }
+      }
+    }
+  }
+  .step {
+    width: 100%;
+    padding: 32rpx 0;
+    box-sizing: border-box;
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+  .txt-desc {
+    color: rgba(102, 102, 102, 1);
+    font-family: DM Sans;
+    font-size: 24rpx;
+    font-weight: 400;
+    line-height: 32rpx;
+    text-align: left;
+    width: 100%;
+    margin-top: 20rpx;
   }
 }
-
-.job-select {
-  height: 80rpx;
-  border: 2rpx solid #e0e0e0;
-  border-radius: 12rpx;
-  padding: 0 24rpx;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-
-.placeholder {
-  color: #999;
-  font-size: 28rpx;
-}
-
-.selected-job {
-  color: #333;
-  font-size: 28rpx;
-}
-
-.job-desc {
-  margin-bottom: 16rpx;
-}
-
-.desc-tip {
-  font-size: 24rpx;
-  color: #999;
-}
-
-.notice {
-  padding: 0 32rpx;
-}
-
-.notice-text {
-  font-size: 24rpx;
-  color: #ff6b35;
-}
-
-.footer {
-  padding: 32rpx 0;
-  background: #fff;
-  border-top: 1rpx solid #f0f0f0;
-}
-</style>
+</style>

+ 479 - 0
pages/my/jobPostingSecond.vue

@@ -0,0 +1,479 @@
+<template>
+  <view class="switch-roles">
+    <nav-bar title="选择公司规模" color="#000"></nav-bar>
+    <view class="roles-content">
+      <view class="content">
+        <view class="title">继续填写</view>
+        <view class="desc">“深圳市汉睿国际猎头服务有限公司”的人员规模</view>
+        <view class="step">
+          <u-steps :list="numList" mode="number" :current="1"></u-steps>
+        </view>
+        <view class="check-title-big">经验要求</view>
+        <view class="check-select" @click="showExper = true">
+          <view class="select-txt">请选择经验按要求</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">最低学历</view>
+        <view class="check-select" @click="showLevel = true">
+          <view class="select-txt">{{ this.text ? this.text : "请选择学历" }}</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">薪资范围</view>
+        <view class="check-select" @click="showMoney = true">
+          <view class="select-txt">请选择合理的薪资范围</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">福利待遇(选填)</view>
+        <view class="check-select" @click="goFund">
+          <view class="select-txt">请填写奖金绩效</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">职位关键词</view>
+        <view class="check-select" @click="goJobSkill">
+          <view class="select-txt">被选中的关键词将突出展示给牛人</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="check-title-big">工作地址</view>
+        <view class="check-select" @click="goAddAddress">
+          <view class="select-txt">请填写精确的工作地点</view>
+          <u-icon name="arrow-down" color="#D3D3D6" size="22"></u-icon>
+        </view>
+        <view class="txt-desc"
+          >温馨提示:职位类型、职位名称和工作城市发布后不可修改, 请您确保信息正确 <br />
+          <br />
+          发布职位即表示同意遵守《招聘行为管理规范》,如违反规则 将导致账号被锁定
+        </view>
+      </view>
+    </view>
+    <view class="submit-btn" @click="goJobPosting">确定</view>
+    <u-select v-model="showExper" :list="listExper" title="请选择经验"></u-select>
+    <u-select v-model="showLevel" :list="listLevel" title="请选择学历"></u-select>
+    <u-select
+      v-model="showMoney"
+      mode="mutil-column"
+      :list="listMoney"
+      title="请选择月薪范围"
+    ></u-select>
+  </view>
+</template>
+<script>
+import navBar from "@/components/nav-bar/index.vue";
+export default {
+  data() {
+    return {
+      peopleList: ["社招全职", "应届生校园招聘", "实习生招聘", "兼职招聘"],
+      check: 0,
+      text: "",
+      showExper: false, //经验
+      listExper: [
+        {
+          label: "不限",
+          value: 1,
+        },
+        {
+          label: "1年以内",
+          value: 2,
+        },
+        {
+          label: "1-3年",
+          value: 3,
+        },
+        {
+          label: "3-5年",
+          value: 4,
+        },
+        {
+          label: "5-10年",
+          value: 5,
+        },
+        {
+          label: "10年以上",
+          value: 6,
+        },
+      ],
+      showLevel: false, //学历
+      listLevel: [
+        { label: "不限", value: 1 },
+        { label: "专科", value: 2 },
+        { label: "本科", value: 3 },
+        { label: "硕士", value: 4 },
+        { label: "博士", value: 5 },
+      ],
+      showMoney: false, //月薪范围
+      listMoney: [
+        [
+          {
+            value: "3",
+            label: "3k",
+          },
+          {
+            value: "4",
+            label: "4k",
+          },
+          {
+            value: "5",
+            label: "5k",
+          },
+          {
+            value: "6",
+            label: "6k",
+          },
+          {
+            value: "7",
+            label: "7k",
+          },
+          {
+            value: "8",
+            label: "8k",
+          },
+          {
+            value: "9",
+            label: "9k",
+          },
+          {
+            value: "10",
+            label: "10k",
+          },
+          {
+            value: "11",
+            label: "11k",
+          },
+          {
+            value: "12",
+            label: "12k",
+          },
+          {
+            value: "13",
+            label: "13k",
+          },
+          {
+            value: "14",
+            label: "14k",
+          },
+          {
+            value: "15",
+            label: "15k",
+          },
+          {
+            value: "16",
+            label: "16k",
+          },
+          {
+            value: "17",
+            label: "17k",
+          },
+          {
+            value: "18",
+            label: "18k",
+          },
+          {
+            value: "19",
+            label: "19k",
+          },
+          {
+            value: "20",
+            label: "20k",
+          },
+        ],
+        [
+          {
+            value: "104",
+            label: "4k",
+          },
+          {
+            value: "105",
+            label: "5k",
+          },
+          {
+            value: "106",
+            label: "6k",
+          },
+          {
+            value: "107",
+            label: "7k",
+          },
+          {
+            value: "108",
+            label: "8k",
+          },
+          {
+            value: "109",
+            label: "9k",
+          },
+          {
+            value: "100",
+            label: "10k",
+          },
+          {
+            value: "101",
+            label: "11k",
+          },
+          {
+            value: "102",
+            label: "12k",
+          },
+          {
+            value: "103",
+            label: "13k",
+          },
+          {
+            value: "104",
+            label: "14k",
+          },
+          {
+            value: "105",
+            label: "15k",
+          },
+          {
+            value: "106",
+            label: "16k",
+          },
+          {
+            value: "107",
+            label: "17k",
+          },
+          {
+            value: "108",
+            label: "18k",
+          },
+          {
+            value: "109",
+            label: "19k",
+          },
+          {
+            value: "200",
+            label: "20k",
+          },
+          {
+            value: "205",
+            label: "25k",
+          },
+          {
+            value: "300",
+            label: "30k",
+          },
+          {
+            value: "305",
+            label: "35k",
+          },
+          {
+            value: "400",
+            label: "40k",
+          },
+        ],
+        [
+          {
+            value: "12m",
+            label: "12月",
+          },
+          {
+            value: "13m",
+            label: "13月",
+          },
+          {
+            value: "14m",
+            label: "14月",
+          },
+          {
+            value: "15m",
+            label: "15月",
+          },
+          {
+            value: "16m",
+            label: "16月",
+          },
+          {
+            value: "17m",
+            label: "17月",
+          },
+        ],
+      ],
+      numList: [
+        {
+          name: "填写基本信息",
+        },
+        {
+          name: "选择职位要求",
+        },
+      ],
+    };
+  },
+  components: {
+    navBar,
+  },
+  onLoad(options) {
+    if (options.text) {
+      this.text = options.text;
+    }
+  },
+  methods: {
+    goBusinessLicense() {
+      uni.navigateTo({ url: "/pages/my/businessLicense" });
+    },
+    checkPeople(index) {
+      this.check = index;
+    },
+    goJob() {
+      uni.navigateTo({
+        url: "/package/jobIntention/jobList",
+      });
+    },
+    goJobSkill() {
+      uni.navigateTo({
+        url: "/package/jobIntention/jobSkills",
+      });
+    },
+    goJobContent() {
+      uni.navigateTo({
+        url: `/package/jobIntention/editJob?text=${this.text}`,
+      });
+    },
+    goAddAddress() {
+      uni.navigateTo({
+        url: "/package/jobIntention/addAddress",
+      });
+    },
+    goFund(){
+        uni.navigateTo({
+            url:'/package/jobIntention/fund'
+        })
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+.switch-roles {
+  background-color: #fff;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 0;
+  bottom: 0;
+  display: flex;
+  flex-direction: column;
+  .roles-content {
+    width: 100%;
+    flex: 1;
+    overflow: hidden;
+    overflow-y: auto;
+    .content {
+      padding: 40rpx;
+      box-sizing: border-box;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .title {
+        color: #333;
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 40rpx;
+        font-weight: 600;
+      }
+      .desc {
+        color: rgba(102, 102, 102, 1);
+        width: 100%;
+        font-family: DM Sans;
+        font-size: 24rpx;
+        font-weight: 400;
+        line-height: 32rpx;
+        letter-spacing: 0.5%;
+        text-align: left;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-title {
+        width: 100%;
+        color: rgba(31, 44, 55, 1);
+        font-family: DM Sans;
+        font-size: 28rpx;
+        font-weight: 500;
+        line-height: 44rpx;
+        margin-top: 20rpx;
+        margin-bottom: 16rpx;
+      }
+      .check-title-big {
+        color: rgba(58, 57, 67, 1);
+        font-family: DM Sans;
+        font-size: 36rpx;
+        font-weight: 500;
+        line-height: 48rpx;
+        width: 100%;
+        padding: 20rpx 0;
+        box-sizing: border-box;
+      }
+      .check-select {
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        border-radius: 12rpx;
+        box-shadow: 0px 16rpx 300rpx 0px rgba(0, 0, 0, 0.06);
+        background: rgba(255, 255, 255, 1);
+        padding: 32rpx 47rpx;
+        box-sizing: border-box;
+        .select-txt {
+          color: rgba(153, 153, 153, 1);
+        }
+      }
+      .check-box {
+        width: 100%;
+        display: grid;
+        grid-template-columns: repeat(2, 1fr);
+        gap: 24rpx;
+        .check-item {
+          border-radius: 16rpx;
+          background: rgba(245, 248, 254, 1);
+          color: rgba(153, 153, 153, 1);
+          font-family: DM Sans;
+          font-size: 28rpx;
+          font-weight: 400;
+          line-height: 44rpx;
+          text-align: center;
+          padding: 12rpx 48rpx;
+          box-sizing: border-box;
+        }
+        .is-check {
+          box-sizing: border-box;
+          border: 1rpx solid #016bf6;
+          border-radius: 16rpx;
+          background: rgba(252, 233, 220, 1);
+          color: #016bf6;
+        }
+      }
+    }
+  }
+  .step {
+    width: 100%;
+    padding: 32rpx 0;
+    box-sizing: border-box;
+  }
+  .submit-btn {
+    flex-shrink: 0;
+    border-radius: 999px;
+    box-shadow: 0px 2px 4px 0px rgba(9, 196, 116, 0.3);
+    background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
+    color: rgba(255, 255, 255, 1);
+    font-family: DM Sans;
+    font-size: 32rpx;
+    font-weight: 400;
+    line-height: 48rpx;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding: 16rpx 32rpx;
+    box-sizing: border-box;
+    margin: 60rpx 20rpx;
+  }
+  .txt-desc {
+    color: rgba(102, 102, 102, 1);
+    font-family: DM Sans;
+    font-size: 24rpx;
+    font-weight: 400;
+    line-height: 32rpx;
+    text-align: left;
+    width: 100%;
+    margin-top: 20rpx;
+  }
+}
+</style>

+ 354 - 0
pages/talentSearch/filter.vue

@@ -0,0 +1,354 @@
+<template>
+	<view class="filter-page">
+		<!-- 导航栏 -->
+		<view class="filter-header">
+			<view class="header-content">
+				<view class="header-left" @click="goBack">
+					<u-icon name="arrow-left" color="rgba(51, 51, 51, 1)" size="32"></u-icon>
+				</view>
+				<view class="header-title">筛选</view>
+				<view class="header-right"></view>
+			</view>
+		</view>
+		
+		<!-- 筛选内容 -->
+		<view class="filter-content">
+			<!-- 学历要求 -->
+			<view class="filter-section">
+				<view class="section-title">学历要求 (不限)</view>
+				<view class="range-slider">
+					<view class="range-labels">
+						<text class="range-label">初中及以下</text>
+						<text class="range-label">博士</text>
+					</view>
+					<view class="slider-container">
+						<view class="slider-track">
+							<view class="slider-fill"></view>
+							<view class="slider-thumb slider-thumb-left"></view>
+							<view class="slider-thumb slider-thumb-right"></view>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<!-- 工作经验 -->
+			<view class="filter-section">
+				<view class="section-title">工作经验 (不限)</view>
+				<view class="range-slider">
+					<view class="range-labels">
+						<text class="range-label">在校/应届生</text>
+						<text class="range-label">10年+</text>
+					</view>
+					<view class="slider-container">
+						<view class="slider-track">
+							<view class="slider-fill"></view>
+							<view class="slider-thumb slider-thumb-left"></view>
+							<view class="slider-thumb slider-thumb-right"></view>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<!-- 期望薪资 -->
+			<view class="filter-section">
+				<view class="section-title">期望薪资 (15K-150K)</view>
+				<view class="range-slider">
+					<view class="range-labels">
+						<text class="range-label">15K</text>
+						<text class="range-label">150K</text>
+					</view>
+					<view class="slider-container">
+						<view class="slider-track">
+							<view class="slider-fill"></view>
+							<view class="slider-thumb slider-thumb-left"></view>
+							<view class="slider-thumb slider-thumb-right"></view>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<!-- 求职状态 -->
+			<view class="filter-section">
+				<view class="section-title">求职状态 (不限)</view>
+				<view class="status-buttons">
+					<view class="status-button active">不限</view>
+					<view class="status-button">离职&随时到岗</view>
+					<view class="status-button">在职&暂不考虑</view>
+					<view class="status-button">在职&考虑机会</view>
+					<view class="status-button">在职&月内到岗</view>
+				</view>
+			</view>
+			
+			<!-- 年龄要求 -->
+			<view class="filter-section">
+				<view class="section-title">年龄要求 (不限)</view>
+				<view class="range-slider">
+					<view class="range-labels">
+						<text class="range-label">16岁</text>
+						<text class="range-label">46岁+</text>
+					</view>
+					<view class="slider-container">
+						<view class="slider-track">
+							<view class="slider-fill"></view>
+							<view class="slider-thumb slider-thumb-left"></view>
+							<view class="slider-thumb slider-thumb-right"></view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 免责声明 -->
+		<view class="disclaimer">
+			<text class="disclaimer-text">筛选功能仅供您分析招聘数据,请勿有招聘歧视行为,如因名族、种族、性别等行为不合理差别对待候选人</text>
+		</view>
+		
+		<!-- 底部按钮 -->
+		<view class="bottom-buttons">
+			<view class="clear-button" @click="clearFilters">清除</view>
+			<view class="confirm-button" @click="confirmFilters">确定</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			// 筛选数据
+			educationRange: [0, 100],
+			experienceRange: [0, 100],
+			salaryRange: [15, 150],
+			ageRange: [16, 46],
+			jobStatus: '不限'
+		}
+	},
+	methods: {
+		// 返回上一页
+		goBack() {
+			uni.navigateBack()
+		},
+		
+		// 清除筛选
+		clearFilters() {
+			this.educationRange = [0, 100]
+			this.experienceRange = [0, 100]
+			this.salaryRange = [15, 150]
+			this.ageRange = [16, 46]
+			this.jobStatus = '不限'
+			
+			uni.showToast({
+				title: '已清除筛选条件',
+				icon: 'success'
+			})
+		},
+		
+		// 确认筛选
+		confirmFilters() {
+			console.log('筛选条件:', {
+				education: this.educationRange,
+				experience: this.experienceRange,
+				salary: this.salaryRange,
+				age: this.ageRange,
+				jobStatus: this.jobStatus
+			})
+			
+			uni.showToast({
+				title: '筛选条件已应用',
+				icon: 'success'
+			})
+			
+			setTimeout(() => {
+				uni.navigateBack()
+			}, 1500)
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.filter-page {
+	min-height: 100vh;
+	// background-color: #f5f5f5;
+}
+
+// 导航栏
+.filter-header {
+	// background-color: #333333;
+	padding-top: 80rpx;
+	
+	.header-content {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		padding: 20rpx 30rpx;
+		
+		.header-left {
+			width: 60rpx;
+		}
+		
+		.header-title {
+			color:  rgba(51, 51, 51, 1);
+			font-size: 36rpx;
+			font-weight: 600;
+			text-align: center;
+		}
+		
+		.header-right {
+			width: 60rpx;
+		}
+	}
+}
+
+// 筛选内容
+.filter-content {
+	padding: 40rpx 30rpx;
+	background-color: #ffffff;
+	margin-bottom: 20rpx;
+}
+
+.filter-section {
+	margin-bottom: 60rpx;
+	
+	&:last-child {
+		margin-bottom: 0;
+	}
+}
+
+.section-title {
+	color: #333333;
+	font-size: 32rpx;
+	font-weight: 600;
+	margin-bottom: 30rpx;
+}
+
+// 范围滑块
+.range-slider {
+	.range-labels {
+		display: flex;
+		justify-content: space-between;
+		margin-bottom: 20rpx;
+		
+		.range-label {
+			color: #666666;
+			font-size: 24rpx;
+		}
+	}
+	
+	.slider-container {
+		padding: 20rpx 0;
+	}
+	
+	.slider-track {
+		position: relative;
+		height: 8rpx;
+		background-color: #e5e5e5;
+		border-radius: 4rpx;
+		
+		.slider-fill {
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			height: 100%;
+			background-color: #007AFF;
+			border-radius: 4rpx;
+		}
+		
+		.slider-thumb {
+			position: absolute;
+			top: 50%;
+			transform: translateY(-50%);
+			width: 32rpx;
+			height: 32rpx;
+			background-color: #ffffff;
+			border: 4rpx solid #007AFF;
+			border-radius: 50%;
+			box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.2);
+			
+			&.slider-thumb-left {
+				left: 0;
+			}
+			
+			&.slider-thumb-right {
+				right: 0;
+			}
+		}
+	}
+}
+
+// 状态按钮
+.status-buttons {
+	display: flex;
+	flex-wrap: wrap;
+	justify-content: space-between;
+	
+	.status-button {
+		width: 48%;
+		padding: 16rpx 32rpx;
+		background-color: rgba(245, 248, 254, 1);
+		border-radius: 16rpx;
+		color: rgba(153, 153, 153, 1);
+        font-family: DM Sans;
+        font-size: 28rpx;
+        font-weight: 400;
+        line-height: 44rpx;
+        letter-spacing: 0px;
+        text-align: center;
+		box-sizing: border-box;
+		margin-bottom: 20rpx;
+		
+		&.active {
+			background-color: rgba(1, 107, 246, 1);
+			color: #ffffff;
+		}
+	}
+}
+
+// 免责声明
+.disclaimer {
+	padding: 30rpx;
+	
+	.disclaimer-text {
+		color: #999999;
+		font-size: 24rpx;
+		line-height: 1.5;
+		text-align: center;
+	}
+}
+
+// 底部按钮
+.bottom-buttons {
+	position: fixed;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	display: flex;
+	background-color: #ffffff;
+	border-top: 1rpx solid #e5e5e5;
+	padding: 20rpx 30rpx;
+	gap: 20rpx;
+	
+	.clear-button {
+		flex: 1;
+		padding: 24rpx;
+		background-color: #f5f5f5;
+		color: #666666;
+		font-size: 32rpx;
+		font-weight: 500;
+		text-align: center;
+		border-radius: 50rpx;
+	}
+	
+	.confirm-button {
+		flex: 1;
+		padding: 24rpx;
+		background: linear-gradient(90deg, #007AFF, #00BFFF);
+		color: #ffffff;
+		font-size: 32rpx;
+		font-weight: 500;
+		text-align: center;
+		border-radius: 50rpx;
+	}
+}
+</style>

+ 842 - 0
pages/talentSearch/index.vue

@@ -0,0 +1,842 @@
+<template>
+	<view class="talent-search-page">
+		<!-- 搜索框 -->
+		<view class="search flex align-center justify-center">
+			<view class="search-box">
+				<view class="dropdown-btn" @click="showDropdown">
+					<text class="dropdown-text">{{ positionOptions[selectedPosition] }}</text>
+					<u-icon name="arrow-down" color="#016BF6" size="16"></u-icon>
+				</view>
+				<view class="separator"></view>
+				<input 
+					class="search-input"
+					v-model="searchKeyword"
+					placeholder="通过职位关键词查询"
+					@confirm="custom"
+				/>
+			</view>
+			<view class="search-btn" @click="custom">搜索</view>
+		</view>
+		
+		<!-- 筛选栏 -->
+		<view class="topbg-sx-box flex justify-start align-center">
+			<view class="topbg-sx-box-r flex align-center">
+				<!-- 城市 -->
+				<view class="topbg-sx-box-r-i flex align-center" style="">
+					<text style="margin-right: 10rpx;"
+					@click="goNavs('/pages/index/citySelect')">{{city?city:'选择城市'}}</text>
+					<u-icon name="arrow-down" color="#00B78F" size="16"
+						@click="goNavs('/pages/index/citySelect')"></u-icon>
+				</view>
+
+				<!-- 筛选 -->
+				<view class="topbg-sx-box-filter flex align-center">
+					<text style="margin-right: 10rpx;"
+						@click="goNavs('/pages/talentSearch/filter')">筛选</text>
+					<u-icon name="arrow-down" color="#999999" size="16"
+						@click="goNavs('/pages/talentSearch/filter')"></u-icon>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 人才列表 -->
+		<view class="talent-list">
+			<view 
+				class="talent-card" 
+				v-for="(talent, index) in talentList" 
+				:key="index"
+				@click="goToTalentDetail(talent)"
+			>
+				<view class="talent-content">
+					<!-- 头像和基本信息 -->
+					<view class="talent-header">
+						<image :src="talent.avatar" class="talent-avatar" mode="aspectFill"></image>
+						<view class="talent-info">
+							<view class="talent-name-section">
+								<view class="talent-name">{{ talent.name }}</view>
+								<view class="talent-tags">
+									<view class="status-tag online" v-if="talent.isOnline">在线</view>
+									<view class="status-tag hot" v-if="talent.isHot">热门搜索</view>
+									<view class="status-tag active" v-if="talent.lastActive">{{ talent.lastActive }}</view>
+								</view>
+							</view>
+							<!-- 经验和薪资 -->
+							<view class="talent-experience">
+								<text class="experience-text">{{ talent.experience }}</text>
+								<text class="education-salary">{{ talent.education }} {{ talent.salary }}</text>
+								<text class="status-text">{{ talent.jobStatus }}</text>
+							</view>
+						</view>
+					</view>
+					
+					<!-- 当前职位 -->
+					<view class="current-job" v-if="talent.currentJob">
+						<image src="../../static/images/aixin.svg" class="job-icon" mode="aspectFit"></image>
+						<text class="job-text">{{ talent.currentJob }}</text>
+					</view>
+					
+					<!-- 求职期望 -->
+					<view class="job-expectation">
+						<image src="../../static/images/xiangzi.svg" class="job-icon" mode="aspectFit"></image>
+						<text class="expectation-text">求职期望: {{ talent.jobExpectation }}</text>
+					</view>
+					
+					<!-- 技能标签 -->
+					<view class="skill-tags">
+						<view 
+							class="skill-tag" 
+							v-for="(skill, skillIndex) in talent.skills" 
+							:key="skillIndex"
+						>
+							{{ skill }}
+						</view>
+					</view>
+					
+					<!-- 工作描述 -->
+					<view class="job-description">
+						<text class="description-text">{{ talent.description }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 职位选择弹窗 -->
+		<view class="position-modal" v-if="showPositionModal" @click="hidePositionModal">
+			<view class="position-modal-content" @click.stop>
+				<!-- 拖拽条 -->
+				<view class="position-modal-handle"></view>
+				
+				<!-- 标题 -->
+				<view class="position-modal-title">选择职位</view>
+				
+				<!-- 职位选项 -->
+				<view class="position-options">
+					<view 
+						class="position-option" 
+						:class="selectedPosition === index ? 'active' : ''"
+						@click="selectPosition(index)"
+						v-for="(option, index) in positionOptions" 
+						:key="index"
+					>
+						<view class="position-option-icon">
+							<view class="check-icon" v-if="selectedPosition === index">✓</view>
+						</view>
+						<text class="position-option-text">{{ option }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			searchKeyword: '',
+			currentSx: 0,
+			sxTypeList: [
+				{
+					id: 1,
+					name: '推荐',
+				},
+				{
+					id: 2,
+					name: '最新',
+				}
+			],
+			city: '深圳',
+			county: '',
+			showSortModalFlag: false,
+			selectedSort: 0,
+			sortOptions: ['综合排序', '最新优先', '距离优先'],
+			showPositionModal: false,
+			selectedPosition: 0,
+			positionOptions: ['亚马逊运营', 'TikTok运营', '采购经理', '不限职位'],
+			city: '深圳',
+			talentList: [
+				{
+					id: 1,
+					name: '刘**',
+					avatar: '../../static/images/avator.png',
+					isOnline: true,
+					isHot: true,
+					experience: '8年',
+					education: '本科',
+					salary: '10-15K',
+					jobStatus: '在职&考虑机会',
+					currentJob: '通拓集团·店铺运营',
+					jobExpectation: '亚马逊运营',
+					skills: ['精品', '铺货', 'TikTok', '平台运营', '投放策略', '3C数码'],
+					description: '负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;做好数据的统计分析工作,收集、分析...',
+					workPeriod: '2021-2024'
+				},
+				{
+					id: 2,
+					name: '李**',
+					avatar: '../../static/images/avator.png',
+					lastActive: '5分钟前活跃',
+					experience: '25年应届生',
+					education: '本科',
+					salary: '8-12K',
+					jobStatus: '离职&随时到岗',
+					currentJob: '大连海事学院·法学',
+					jobExpectation: '亚马逊运营',
+					skills: ['精品', '铺货', 'TikTok', '平台运营', '投放策略', '3C数码'],
+					description: '负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;做好数据的统计分析工作,收集、分析...',
+					workPeriod: ''
+				},
+				{
+					id: 3,
+					name: '李**',
+					avatar: '../../static/images/avator.png',
+					lastActive: '刚刚活跃',
+					experience: '25年应届生',
+					education: '本科',
+					salary: '8-12K',
+					jobStatus: '离职&随时到岗',
+					currentJob: '臣美科技·小红书运营',
+					jobExpectation: '亚马逊运营',
+					skills: ['精品', '铺货', 'TikTok', '平台运营', '投放策略', '3C数码'],
+					description: '负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;做好数据的统计分析工作,收集、分析...',
+					workPeriod: '2021-2025'
+				},
+				{
+					id: 4,
+					name: '李**',
+					avatar: '../../static/images/avator.png',
+					lastActive: '刚刚活跃',
+					experience: '25年应届生',
+					education: '本科',
+					salary: '8-12K',
+					jobStatus: '离职&随时到岗',
+					currentJob: '臣美科技·小红书运营',
+					jobExpectation: '亚马逊运营',
+					skills: ['精品', '铺货', 'TikTok', '平台运营', '投放策略', '3C数码'],
+					description: '负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;做好数据的统计分析工作,收集、分析...',
+					workPeriod: ''
+				}
+			]
+		}
+	},
+	methods: {
+		// 返回上一页
+		goBack() {
+			uni.navigateBack()
+		},
+		
+		// 显示下拉菜单
+		showDropdown() {
+			this.showPositionModal = true
+		},
+		
+		// 隐藏职位选择弹窗
+		hidePositionModal() {
+			this.showPositionModal = false
+		},
+		
+		// 选择职位
+		selectPosition(index) {
+			this.selectedPosition = index
+			// 更新下拉按钮显示的文字
+			const selectedText = this.positionOptions[index]
+			// 这里可以更新下拉按钮的显示文字
+			uni.showToast({
+				title: `已选择: ${selectedText}`,
+				icon: 'none'
+			})
+			this.hidePositionModal()
+		},
+		
+		// 搜索
+		custom() {
+			console.log('搜索关键词:', this.searchKeyword)
+			// 这里可以添加搜索逻辑
+		},
+		
+		// 跳转页面
+		goNavs(url) {
+			uni.navigateTo({
+				url: url
+			})
+		},
+		
+		// 清空搜索
+		clear() {
+			this.searchKeyword = ''
+		},
+		
+		// 跳转页面
+		goNav(url) {
+			if (uni.getStorageSync('token')) {
+				uni.navigateTo({
+					url: url
+				})
+			} else {
+				this.noLogin()
+			}
+		},
+		
+		// 未登录提示
+		noLogin() {
+			uni.showModal({
+				title: '提示',
+				content: '您还未登录,请先登录',
+				confirmColor: '#00B88F',
+				success: function(res) {
+					if (res.confirm) {
+						uni.navigateTo({
+							url: '/pages/public/login'
+						})
+					}
+				}
+			})
+		},
+		
+		// 显示排序弹窗
+		showSortModal() {
+			this.showSortModalFlag = true
+		},
+		
+		// 隐藏排序弹窗
+		hideSortModal() {
+			this.showSortModalFlag = false
+		},
+		
+		// 选择排序选项
+		selectSort(index) {
+			this.selectedSort = index
+			uni.showToast({
+				title: `已选择: ${this.sortOptions[index]}`,
+				icon: 'none'
+			})
+			this.hideSortModal()
+		},
+		
+		// 跳转到人才详情
+		goToTalentDetail(talent) {
+			console.log('查看人才详情:', talent)
+			// 这里可以跳转到人才详情页面
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+// 激活状态样式
+.active3 {
+	flex-direction: row;
+	justify-content: center;
+	align-items: center;
+	padding: 12rpx;
+	border-radius: 12rpx;
+	background: #FFFFFF !important;
+	margin-right: 12rpx;
+	border: 0.5px solid rgba(1, 107, 246, 1);
+
+	color: rgba(1, 107, 246, 1) !important;
+	font-family: DM Sans;
+	font-size: 22rpx;
+	font-weight: 400;
+	line-height: 20rpx;
+	letter-spacing: 0px;
+	text-align: left;
+}
+
+.talent-search-page {
+	min-height: 100vh;
+	background-color: #f5f5f5;
+}
+
+
+// 搜索框
+.search {
+	position: fixed;
+	top: 0;
+	width: 100%;
+	padding: 80rpx 20rpx 20rpx 20rpx;
+	background: linear-gradient(180.00deg, rgba(255, 102, 0, 1),rgba(255, 89, 89, 1) 83%);
+	z-index: 99;
+
+	.search-box {
+		flex: 1;
+		box-sizing: border-box;
+		border: 1px solid rgba(227, 231, 236, 1);
+		border-radius: 24px;
+		background: rgba(241, 241, 241, 1);
+		overflow: hidden;
+		display: flex;
+		align-items: center;
+		padding: 0 32rpx;
+		height: 60rpx;
+	}
+
+	.dropdown-btn {
+		display: flex;
+		align-items: center;
+		padding: 8rpx 16rpx;
+		background-color: #F1F1F1;
+		border: 1rpx solid #016BF6;
+		border-radius: 8rpx;
+		margin-right: 12rpx;
+		
+		.dropdown-text {
+			color: rgba(1, 107, 246, 1);
+			font-family: DM Sans;
+			font-size: 20rpx;
+			font-weight: 400;
+			line-height: 20rpx;
+			letter-spacing: -0.5px;
+			text-align: left;
+			margin-right: 8rpx;
+		}
+	}
+
+	.separator {
+		width: 4rpx;
+		height: 30rpx;
+		background-color: rgba(153, 153, 153, 1);
+		margin-right: 12rpx;
+	}
+
+	.search-input {
+		flex: 1;
+		height: 100%;
+		background: transparent;
+		color: #333;
+		font-family: DM Sans;
+		font-size: 20rpx;
+		font-weight: 400;
+		line-height: 48rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+		
+		&::placeholder {
+			color: rgba(182, 182, 182, 1);
+			font-family: DM Sans;
+			font-size: 20rpx;
+			font-weight: 400;
+			line-height: 48rpx;
+			letter-spacing: 0.5%;
+			text-align: left;
+		}
+	}
+
+	.search-btn {
+		width: 80rpx;
+		color: rgba(255, 255, 255, 1);
+		font-family: DM Sans;
+		font-size: 20rpx;
+		font-weight: 500;
+		line-height: 48rpx;
+		letter-spacing: 0.5%;
+		text-align: center;
+	}
+}
+
+
+.search-bar {
+	display: flex;
+	align-items: center;
+	margin-bottom: 20rpx;
+	
+	.search-input {
+		flex: 1;
+		height: 80rpx;
+		background-color: #f8f8f8;
+		border-radius: 40rpx;
+		padding: 0 30rpx;
+		font-size: 28rpx;
+		color: #333;
+		margin-right: 20rpx;
+	}
+	
+	.search-btn {
+		width: 120rpx;
+		height: 80rpx;
+		background-color: #016BF6;
+		color: #ffffff;
+		border-radius: 40rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		font-size: 28rpx;
+	}
+}
+
+.filter-tags {
+	display: flex;
+	flex-wrap: wrap;
+	gap: 16rpx;
+	
+	.filter-tag {
+		padding: 12rpx 24rpx;
+		background-color: #ffffff;
+		border: 1rpx solid #e5e5e5;
+		border-radius: 20rpx;
+		font-size: 24rpx;
+		color: #666;
+	}
+}
+
+.active3 {
+	color: #1A1A1A !important;
+	font-size: 28rpx !important;
+	font-weight: 800 !important;
+}
+
+.topbg-sx-box {
+	position: fixed;
+	top: 160rpx;
+	left: 0;
+	right: 0;
+	width: 100%;
+	background-color: #ffffff;
+	z-index: 98;
+	padding: 20rpx;
+	box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
+
+	.topbg-sx-box-l-i {
+		color: rgba(153, 153, 153, 1);
+		font-family: DM Sans;
+		font-size: 24rpx;
+		font-weight: 400;
+		line-height: 18px;
+		letter-spacing: 0%;
+		text-align: center;
+		margin-right: 20rpx;
+		border-radius: 6px;
+		background: rgba(198, 198, 198, 0.1);
+		padding: 8rpx 12rpx;
+		display: inline-block;
+		min-width: 60rpx;
+		white-space: nowrap;
+
+		&.active3 {
+			font-family: DM Sans;
+			font-size: 24rpx !important;
+			font-weight: 400 !important;
+			line-height: 18px;
+			letter-spacing: 0%;
+			text-align: left;
+			padding: 8rpx 12rpx !important;
+			color: rgba(1, 107, 246, 1) !important;
+			background: rgba(252, 233, 220, 1) !important;
+			border: 1px solid rgba(1, 107, 246, 1);
+		}
+	}
+
+	.topbg-sx-box-r-i {
+		color: rgba(1, 107, 246, 1);
+		font-family: DM Sans;
+		font-size: 24rpx;
+		font-weight: 400;
+		line-height: 18px;
+		letter-spacing: 0%;
+		text-align: center;
+		margin-right: 20rpx;
+		border-radius: 6px;
+		background: rgba(252, 233, 220, 1);
+		padding: 8rpx 12rpx;
+		display: inline-block;
+		min-width: 60rpx;
+		white-space: nowrap;
+		cursor: pointer;
+		transition: all 0.3s ease;
+		border: 0.5px solid rgba(1, 107, 246, 1);
+	}
+
+	.topbg-sx-box-filter {
+		color: rgba(153, 153, 153, 1);
+		font-family: DM Sans;
+		font-size: 24rpx;
+		font-weight: 400;
+		line-height: 18px;
+		letter-spacing: 0%;
+		text-align: center;
+		border-radius: 6px;
+		background: rgba(198, 198, 198, 0.1);
+		padding: 8rpx 12rpx;
+		display: inline-block;
+		min-width: 60rpx;
+		white-space: nowrap;
+		cursor: pointer;
+		transition: all 0.3s ease;
+	}
+}
+
+.talent-list {
+	margin-top: 280rpx;
+	padding: 20rpx;
+}
+
+.talent-card {
+	background-color: #ffffff;
+	border-radius: 16rpx;
+	margin-bottom: 20rpx;
+	padding: 30rpx;
+	box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
+}
+
+.talent-content {
+	.talent-header {
+		display: flex;
+		align-items: flex-start;
+		
+		.talent-avatar {
+			width: 80rpx;
+			height: 80rpx;
+			border-radius: 50%;
+			margin-right: 20rpx;
+		}
+		
+		.talent-info {
+			flex: 1;
+			
+			.talent-name-section {
+				display: flex;
+				align-items: center;
+				justify-content: flex-start;
+				width: 100%;
+				margin-bottom: 6rpx;
+			}
+			
+			.talent-name {
+				color: rgba(51, 51, 51, 1);
+				font-family: DM Sans;
+				font-size: 28rpx;
+				font-weight: 500;
+				line-height: 36rx;
+				letter-spacing: 0.5%;
+				text-align: left;
+				margin-right: 16rpx;
+			}
+			
+			.talent-tags {
+				display: flex;
+				flex-wrap: wrap;
+				gap: 10rpx;
+				
+				.status-tag {
+					padding: 8rpx;
+					border-radius: 12rpx;
+					font-size: 18rpx;
+					font-family: DM Sans;
+					font-weight: 400;
+					line-height: 20rpx;
+					letter-spacing: -0.5px;
+					text-align: left;
+					
+					&.online {
+						background: rgba(213, 255, 231, 1);
+						color: rgba(29, 209, 104, 1);
+					}
+					
+					&.hot {
+						background: rgba(252, 233, 220, 1);
+						color: rgba(1, 107, 246, 1);
+					}
+					
+					&.active {
+						color: rgba(153, 153, 153, 1);
+					}
+				}
+			}
+		}
+	}
+	
+	.talent-experience {
+		display: flex;
+		align-items: center;
+		margin-bottom: 12rpx;
+		gap: 16rpx;
+		color: rgba(156, 164, 171, 1);
+		font-family: DM Sans;
+		font-size: 24rpx;
+		font-weight: 400;
+		line-height: 32rpx;
+		letter-spacing: 0.5%;
+		text-align: left;
+	}
+	
+	.current-job {
+		display: flex;
+		align-items: center;
+		margin-bottom: 12rpx;
+		
+		.job-icon {
+			width: 40rpx;
+			height: 40rpx;
+			margin-right: 8rpx;
+		}
+		
+		.job-text {
+			color: rgba(156, 164, 171, 1);
+			font-family: DM Sans;
+			font-size: 24rpx;
+			font-weight: 400;
+			line-height: 40rpx;
+			letter-spacing: 0.5%;
+			text-align: left;
+		}
+	}
+	
+	.job-expectation {
+		display: flex;
+		align-items: center;
+		margin-bottom: 16rpx;
+
+		.job-icon {
+			width: 40rpx;
+			height: 40rpx;
+			margin-right: 8rpx;
+		}
+		
+		.expectation-text {
+			color: rgba(156, 164, 171, 1);
+			font-family: DM Sans;
+			font-size: 24rpx;
+			font-weight: 400;
+			line-height: 40rpx;
+			letter-spacing: 0.5%;
+			text-align: left;
+		}
+	}
+	
+	.skill-tags {
+		display: flex;
+		flex-wrap: wrap;
+		gap: 10rpx;
+		margin-bottom: 16rpx;
+		
+		.skill-tag {
+			padding: 8rpx;
+			background: rgba(198, 198, 198, 0.1);
+			border-radius: 12rpx;
+			color: rgba(153, 153, 153, 1);
+			font-family: DM Sans;
+			font-size: 20rpx;
+			font-weight: 400;
+			line-height: 20rpx;
+			letter-spacing: -0.5px;
+			text-align: left;
+		}
+	}
+	
+	.job-description {
+		margin-bottom: 12rpx;
+		
+		.description-text {
+			color: rgba(97, 110, 124, 1);
+			font-family: DM Sans;
+			font-size: 24rpx;
+			font-weight: 400;
+			line-height: 32rpx;
+			letter-spacing: 0px;
+			text-align: left;
+		}
+	}
+	
+	.work-period {
+		text-align: right;
+		
+		.period-text {
+			font-size: 22rpx;
+			color: #999;
+		}
+		}
+	}
+
+	// 职位选择弹窗样式
+	.position-modal {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: rgba(0, 0, 0, 0.5);
+		z-index: 10001;
+		display: flex;
+		align-items: flex-end;
+		
+		.position-modal-content {
+			width: 100%;
+			background: #ffffff;
+			border-radius: 24rpx 24rpx 0 0;
+			padding: 20rpx 40rpx 40rpx 40rpx;
+			max-height: 60vh;
+			
+			.position-modal-handle {
+				width: 80rpx;
+				height: 8rpx;
+				background: #E5E5E5;
+				border-radius: 4rpx;
+				margin: 0 auto 30rpx auto;
+			}
+			
+			.position-modal-title {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+				text-align: center;
+				padding-bottom: 30rpx;
+				margin-bottom: 30rpx;
+				border-bottom: 1px solid rgba(153, 153, 153, 0.25);
+			}
+			
+			.position-options {
+				.position-option {
+					display: flex;
+					align-items: center;
+					padding: 24rpx 32rpx;
+					margin-bottom: 16rpx;
+					border-radius: 42rpx;
+					border: 2rpx solid rgba(227, 231, 236, 1);
+					
+					&.active {
+						background: #F0F8FF;
+						border-color: #007AFF;
+						
+						.position-option-icon {
+							background: #007AFF;
+							border-color: #007AFF;
+							
+							.check-icon {
+								color: #ffffff;
+							}
+						}
+						
+						.position-option-text {
+							color: #007AFF;
+							font-weight: 500;
+						}
+					}
+					
+					.position-option-icon {
+						width: 40rpx;
+						height: 40rpx;
+						border-radius: 50%;
+						border: 2rpx solid #E5E5E5;
+						background: #ffffff;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						margin-right: 24rpx;
+						
+						.check-icon {
+							font-size: 24rpx;
+							color: #ffffff;
+							font-weight: bold;
+						}
+					}
+					
+					.position-option-text {
+						font-size: 28rpx;
+						color: #333333;
+						flex: 1;
+					}
+				}
+			}
+		}
+	}
+</style>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2 - 0
static/images/aixin.svg


BIN
static/images/avator.png


BIN
static/images/default-avatar-female.png


BIN
static/images/default-avatar-male.png


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2 - 0
static/images/index/Hrempty.svg


+ 5 - 0
static/images/index/qiyeDelete.svg

@@ -0,0 +1,5 @@
+<svg viewBox="0 0 20.9375 20" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20.937500" height="20.000000" fill="none">
+	<rect id="svg 46" width="20.937500" height="20.000000" x="0.000000" y="0.000000" />
+	<path id="矢量 46" d="M12.7846 8.12285C12.7846 8.04568 12.7531 7.97315 12.6961 7.91861C12.6389 7.86404 12.563 7.83399 12.4822 7.83399C12.4014 7.83399 12.3255 7.86404 12.2684 7.91859L10.4926 9.61481L8.71692 7.91859C8.65797 7.86198 8.58669 7.83377 8.50309 7.83399C8.41949 7.83377 8.34821 7.86197 8.28926 7.91859C8.17134 8.03121 8.17134 8.21447 8.28926 8.32711L10.065 10.0233L8.28928 11.7196C8.23215 11.7741 8.20068 11.8467 8.20068 11.9238C8.20068 12.001 8.23215 12.0735 8.28922 12.128C8.34633 12.1826 8.42229 12.2127 8.50307 12.2127C8.58386 12.2127 8.65984 12.1826 8.7169 12.1281L10.4926 10.4319L12.2683 12.128C12.3254 12.1826 12.4014 12.2127 12.4822 12.2127C12.563 12.2127 12.639 12.1826 12.696 12.1281C12.7531 12.0736 12.7846 12.001 12.7846 11.9238C12.7846 11.8467 12.7531 11.7741 12.696 11.7196L10.9203 10.0234L12.696 8.32715C12.7553 8.27083 12.7848 8.20273 12.7846 8.12285L12.7846 8.12285Z" fill="rgb(0,0,0)" fill-rule="nonzero" />
+	<path id="矢量 47" d="M15.0678 5.57814C13.8363 4.40178 12.1989 3.75391 10.4573 3.75391C8.71567 3.75391 7.07829 4.40176 5.84676 5.57814C4.61525 6.75453 3.93701 8.31861 3.93701 9.98225C3.93701 11.6459 4.61523 13.21 5.84676 14.3863C7.07829 15.5627 8.71569 16.2106 10.4573 16.2106C12.1989 16.2106 13.8363 15.5627 15.0678 14.3863C16.2994 13.21 16.9776 11.6459 16.9776 9.98225C16.9776 8.31859 16.2994 6.75453 15.0678 5.57814ZM10.4573 15.6246C7.20024 15.6246 4.55042 13.0935 4.55042 9.98225C4.55042 6.87102 7.20024 4.33984 10.4573 4.33984C13.7144 4.33984 16.3642 6.87102 16.3642 9.98225C16.3642 13.0935 13.7144 15.6246 10.4573 15.6246Z" fill="rgb(0,0,0)" fill-rule="nonzero" />
+</svg>

+ 5 - 0
static/images/index/redGantan.svg

@@ -0,0 +1,5 @@
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20.000000" height="20.000000" fill="none">
+	<rect id="svg 56" width="20.000000" height="20.000000" x="0.000000" y="0.000000" />
+	<path id="矢量 56" d="M10.0004 1.12695C5.09974 1.12695 1.12695 5.09974 1.12695 10.0004C1.12695 14.9011 5.09974 18.8739 10.0004 18.8739C14.9011 18.8739 18.8739 14.9011 18.8739 10.0004C18.8739 5.09974 14.9011 1.12695 10.0004 1.12695Z" fill="rgb(255,55,0)" fill-rule="nonzero" />
+	<path id="矢量 57" d="M8.54297 8.05729C8.54297 5.7507 9.19531 3.88086 9.99981 3.88086C10.8045 3.88086 11.4568 5.7507 11.4568 8.05729C11.4568 10.364 10.8045 12.2339 9.99981 12.2339C9.19531 12.2339 8.54297 10.364 8.54297 8.05729ZM8.54297 14.662C8.54297 13.8575 9.19531 13.2051 9.99981 13.2051C10.8045 13.2051 11.4568 13.8575 11.4568 14.662C11.4568 15.4666 10.8045 16.119 9.99981 16.119C9.19531 16.119 8.54297 15.4666 8.54297 14.662Z" fill="rgb(255,255,255)" fill-rule="nonzero" />
+</svg>

+ 5 - 0
static/images/man.svg

@@ -0,0 +1,5 @@
+<svg viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11.000000" height="11.000000" fill="none">
+	<rect id="svg 49" width="11.000000" height="11.000000" x="0.000000" y="0.000000" />
+	<circle id="椭圆 10" cx="5.5" cy="5.5" r="5.5" fill="rgb(255,255,255)" />
+	<path id="矢量 48" d="M8.84505 4.47989L8.84505 3.02702C8.55674 3.30779 7.69086 4.15012 7.24238 4.58636C7.68332 5.12529 7.94808 5.80839 7.94808 6.55272C7.94808 8.28448 6.51783 9.69401 4.75969 9.69401C3.00155 9.69401 1.57129 8.28448 1.57129 6.55272C1.57129 4.82096 3.00154 3.41144 4.75969 3.41144C5.44749 3.41144 6.08347 3.62908 6.60545 3.9956C7.04828 3.57444 7.9396 2.72834 8.24299 2.43909L6.64973 2.43909L6.64973 1.57227L9.68832 1.57227L9.68832 4.47895L8.84506 4.47895L8.84505 4.47989ZM2.4513 6.55272C2.4513 7.80679 3.48678 8.82719 4.76063 8.82719C6.03448 8.82719 7.06995 7.80679 7.06995 6.55272C7.06995 5.29866 6.03259 4.27826 4.75969 4.27826C3.48678 4.27826 2.4513 5.29866 2.4513 6.55272L2.4513 6.55272Z" fill="rgb(16,0,255)" fill-rule="nonzero" />
+</svg>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2 - 0
static/images/wuman.svg


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2 - 0
static/images/xiangzi.svg


BIN
static/tabbar/ACjob.png


BIN
static/tabbar/ACsearch.png


BIN
static/tabbar/Hrsearch.png


BIN
static/tabbar/Rectangle7.png


BIN
static/tabbar/job.png


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio