Bladeren bron

简历管理

xxdezh 8 maanden geleden
bovenliggende
commit
4860134c7b

+ 13 - 13
my/order/pay.vue

@@ -70,7 +70,7 @@
 					<view class="job-info-c">
 						<view class="job-info-c-header">
 							<view class="job-info-c-title">
-								{{info.stationName}}
+								{{info.ruleClassifyName}}
 							</view>
 							<view class="job-info-c-price">
 								{{info.salaryRange}}
@@ -128,7 +128,7 @@
 								{{item}}
 							</view>
 						</view>
-						
+		<!-- 				
 						<view class="job-description">
 							<view class="description-item">1.负责Amazon英国、欧洲站、制定推广与销售计划,达成团队要求的销售业绩;</view>
 							<view class="description-item">2.做好数据的统计分析工作,收集、分析市场信息,竞争对手状况,并根据产品销售与排名变化,及时制定和调整产品的销售策略;</view>
@@ -138,21 +138,21 @@
 							<view class="description-item">6.对产品销售进行跟踪,分析,及时汇报销售中存在的问题,并给出可行性意见;</view>
 							<view class="description-item">7.及时处理客户留言及回评,解答客户相关咨询与投诉,并进行问题整理统计分析,提高店铺的好评率,确保账号安全;</view>
 							<view class="description-item">8.每月定期整理分析运营各项数据,并提出相应的合理化建议。</view>
-						</view>
+						</view> -->
 						
-						<!-- <view class="jobRemarks-box-c-con" v-if="info.positionDetails">
+						<view class="jobRemarks-box-c-con" v-if="info.positionDetails">
 							<view class="jobRemarks-box-c-con-item" v-html="info.positionDetails">
 							</view>
-						</view> -->
+						</view>
 						
-						<!-- <view class="jobRemarks-box-c-line"></view> -->
+						<view class="jobRemarks-box-c-line"></view>
 						
 						<view class="jobRemarks-box-c-title flex align-center" style="margin-top: 25rpx;">
 							<image src="/static/images/index/welfare.png" class="title-icon"></image>
 							<text>岗位福利</text>
 						</view>
-						<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.positionWelfare">
-							<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.positionWelfare?info.positionWelfare.split(','):[]" :key="index">
+						<view class="jobRemarks-box-c-label flex align-center flex-wrap" v-if="info.welfareTag">
+							<view class="jobRemarks-box-c-label-item" v-for="(item,index) in info.welfareTag?info.welfareTag.split(';'):[]" :key="index">
 								{{item}}
 							</view>
 						</view>
@@ -162,14 +162,14 @@
 							</view>
 						</view>
 						
-						<view class="job-description">
+						<!-- <view class="job-description">
 							<view class="description-item">1.完整的晋升机制,每年2次调薪机会;</view>
 							<view class="description-item">2.满一年五天带薪年假;</view>
 							<view class="description-item">3.每月员工下午茶;</view>
 							<view class="description-item">4.各类大促活动有对应的激励方案;</view>
 							<view class="description-item">5.丰厚的提成和年终奖励;</view>
 							<view class="description-item">6.开设员工俱乐部:羽毛球、篮球、舞蹈、瑜伽等等。</view>
-						</view>
+						</view> -->
 					</view>
 				</view>
 			</view>
@@ -179,11 +179,11 @@
 				<!-- 公司介绍卡片 -->
 				<view class="company-intro-card" @click="goInfo(info.company.companyId)">
 					<view class="company-avatar">
-						<image :src="info.company?info.company.companyLogo:'../../../static/logo.png'"
+						<image :src="info.company.companyLogo?info.company.companyLogo:'../../../static/logo.png'"
 							style="width: 95rpx;height: 95rpx;border-radius: 50%;" mode="aspectFill"></image>
 					</view>
 					<view class="company-info">
-						<view class="company-name">{{info.company?info.company.companyName:''}}</view>
+						<view class="company-name">{{info.company?info.company.companyAllName:''}}</view>
 						<view class="company-details">{{info.company?info.company.companyPeople:''}} · {{info.company?info.company.companyScope:''}}</view>
 					</view>
 					<view class="company-arrow">
@@ -197,7 +197,7 @@
 						<view class="enterprise-box-c-bto flex align-center justify-between" @click.stop="gotoMap()">
 							<view class="enterprise-box-c-bto-l flex align-center">
 								<u-icon name="map" color="#016BF6" style="margin-left: 20rpx;margin-right: 10rpx;" size="28"></u-icon>
-								{{info.province}}{{info.city}}{{info.county}}{{info.address}}
+							<!-- 	{{info.province}}{{info.city}}{{info.county}} -->{{info.address}}
 							</view>
 							<view class="enterprise-box-c-bto-r">
 								<u-icon name="arrow-right" color="#016BF6" style="margin-right: 20rpx;" size="28"></u-icon>

+ 18 - 1
package/jobIntention/addAddress.vue

@@ -250,9 +250,26 @@ export default {
     }
   }
 }
+.custom-input {
+  box-sizing: border-box;
+  border: 2rpx solid #9ea1a8;
+  border-radius: 100rpx;
+  /* 增加左右内边距,让内容更舒展 */
+  padding: 8rpx 36rpx; 
+  height: 96rpx;
+}
+
+/* 调整图标与输入文字的间距 */
+::v-deep .u-input__prefix {
+  margin-right: 24rpx !important; /* 增加图标右侧间距 */
+}
 
+/* 输入框文字区域增加左侧间距(配合图标) */
+::v-deep .u-input input {
+  padding-left: 32rpx; /* 避免文字紧贴图标 */
+}
 .form-item {
-  margin-bottom: 32rpx;
+  margin-bottom: 26rpx;
   width: 100%;
 }
 

+ 3 - 2
pages/index/index.vue

@@ -380,7 +380,7 @@
 									<image src="../../static/images/index/Attachment.svg" class="attachment-icon" />
 								</view> -->
 								
-								<view class="qySx-box-r flex align-center" @click="goNavss('/pages/my/jobPosting?companyId='+uni.getStorageSync('companyId')+'&status='+companyStatus+'&companyName='+companyName)">
+								<view class="qySx-box-r flex align-center" @click="goNavss('/pages/my/jobPosting?companyId='+companyId+'&status='+companyStatus+'&companyName='+companyName)">
 									<image src="../../static/images/index/Attachment.svg" class="attachment-icon" />
 								</view>
 								
@@ -519,6 +519,7 @@
 				goback: false,
 				city: '',
 				companyName:"",
+				companyId:"",
 				datasList: [],
 				isfixeds: false,
 				userType: 1,
@@ -683,7 +684,7 @@
 			// 获取状态栏高度
 			let systemInfo = uni.getSystemInfoSync();
 			this.statusBarHeight = systemInfo.statusBarHeight || 0;
-
+			this.companyId=uni.getStorageSync('companyId');
 			// #ifdef APP
 			this.getAudioPermision()
 			// #endif

+ 113 - 131
pages/jobManagement/jobManagement.vue

@@ -35,19 +35,25 @@
 		<!-- 职位列表 -->
 		<view class="job-list">
 			<!-- 有数据时显示列表 -->
-			<scroll-view scroll-y="true" style="width: 100%;height: 70vh;" v-if="jobList.length > 0">
-				<view 
-					class="job-card" 
-					:class="getJobStatusClass(job)"
-					v-for="(job, index) in jobList" 
-					:key="index"
-					@click="goNav('/my/order/pay?postPushId='+job.postPushId)"
-				>
+			<scroll-view 
+			  scroll-y="true" 
+			  style="width: 100%;height: 70vh;" 
+			  v-if="jobList.length > 0"
+			  @scrolltolower="loadMore"
+			  lower-threshold="50"
+			>
+				 <view 
+				    class="job-card" 
+				    :class="getJobStatusClass(job)"
+				    v-for="(job, index) in jobList" 
+				    :key="index"
+				    @click="goNav('/my/order/pay?postPushId='+job.postPushId)"
+				  >
 					<view class="job-card-content">
 						<view class="job-header">
 							<view class="job-title-section">
-								<text class="job-title">{{job.stationName || job.title}}</text>
-								<view class="urgent-tag" v-if="job.isUrgent">
+								<text class="job-title">{{job.stationName || job.ruleClassifyName}}</text>
+								<view class="urgent-tag" v-if="job.isDue">
 									<text class="urgent-text">急聘</text>
 								</view>
 							</view>
@@ -83,127 +89,103 @@
 import empty from '@/components/empty.vue'
 
 export default {
-	components: {
-		empty
-	},
-	data() {
-		return {
-			tabIndex: 0,
-			tabs: [
-				{ name: '全部', status: 0 },
-				{ name: '待审核', status: 1 },
-				{ name: '招聘中', status: 2 },
-				{ name: '已拒绝', status: 3 },
-				{ name: '已取消', status: 4 },
-				{ name: '已关闭', status: 5 }
-			],
-			jobList: [],
-			page: 1,
-			limit: 10,
-			count: 0,
-			companyId: ''
-		}
-	},
-	onLoad() {
-		this.companyId = uni.getStorageSync('companyId');
-		this.getJobList();
-		// 动态设置body和html高度
-		this.setBodyHeight();
-	},
-	onShow() {
-		this.getJobList();
-	},
-	onReachBottom() {
-		if (this.jobList.length < this.count) {
-			this.page = this.page + 1;
-			this.getJobList();
-		}
-	},
-	onPullDownRefresh() {
-		this.page = 1;
-		this.getJobList();
-	},
-	methods: {
-		goBack() {
-			uni.navigateBack();
-		},
-		// 切换菜单
-		tabChange(e) {
-			const index = typeof e === 'number' ? e : e.index
-			this.tabIndex = index
-			this.jobList = [];
-			this.page = 1;
-			this.getJobList();
-		},
-		// 获取职位列表
-		getJobList() {
-			let data = {
-				status: this.tabIndex == 0 ? '' : this.tabIndex,
-				page: this.page,
-				limit: this.limit,
-				companyId: this.companyId
-			}
-			this.$Request.getT('/app/postPush/getPostPushList', data).then(res => {
-				if (res.code == 0) {
-					if (this.page == 1) this.jobList = []; //如果是第一页需手动制空列表
-					res.data.records.forEach(ret => {
-						ret.showpeop = false
-						if (ret.status == 1) {
-							ret.statusName = '待审核'
-						} else if (ret.status == 2) {
-							ret.statusName = '招聘中'
-						} else if (ret.status == 3) {
-							ret.statusName = '已拒绝'
-						} else if (ret.status == 4) {
-							ret.statusName = '已取消'
-						} else if (ret.status == 5) {
-							ret.statusName = '已关闭'
-						}
-						this.jobList.push(ret)
-					})
-					this.count = res.data.total
-				}
-				uni.hideLoading()
-				uni.stopPullDownRefresh()
-			}).catch(err => {
-				uni.hideLoading()
-				uni.stopPullDownRefresh()
-			})
-		},
-		goNav(url) {
-			uni.navigateTo({
-				url
-			})
-		},
-		publishNewJob() {
-			// 跳转到发布新职位页面
-			uni.navigateTo({
-				url: '/package/addJob/addJob'
-			})
-		},
-		// 获取职位状态样式类
-		getJobStatusClass(job) {
-			if (job.status === 2) {
-				return 'status-trial';
-			} else if (job.status === 1) {
-				return 'status-review';
-			} else if (job.status === 3 || job.status === 4) {
-				return 'status-failed';
-			} else if (job.status === 5) {
-				return 'status-closed';
-			}
-			return '';
-		},
-		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'
-			}
-		}
-	}
+  data() {
+    return {
+      tabIndex: 0,
+      tabs: [
+        { name: '全部', status: 0 },
+        { name: '待审核', status: 1 },
+        { name: '招聘中', status: 2 },
+        { name: '已拒绝', status: 3 },
+        { name: '已取消', status: 4 },
+        { name: '已关闭', status: 5 },
+        { name: '已拒绝', status: 6 }
+      ],
+      jobList: [],
+      page: 1,        // 当前页码
+      limit: 10,      // 每页条数
+      count: 0,       // 总条数
+      companyId: '',
+      isLoading: false, // 防止重复请求标记
+    }
+  },
+  onLoad() {
+    this.companyId = uni.getStorageSync('companyId');
+    this.getJobList();
+    this.setBodyHeight();
+  },
+  methods: {
+    // 获取职位列表(新增分页逻辑)
+    getJobList() {
+      if (this.isLoading) return; // 正在加载时,阻止重复请求
+      this.isLoading = true;
+      
+      let data = {
+        status: this.tabIndex == 0 ? '' : this.tabIndex,
+        page: this.page,
+        limit: this.limit,
+        companyId: this.companyId
+      }
+      this.$Request.getT('/app/postPush/getMyPostPush', data).then(res => {
+        if (res.code == 0) {
+          if (this.page == 1) {
+            this.jobList = []; // 第一页清空原有列表
+          }
+          // 拼接新数据
+          res.data.records.forEach(ret => {
+            ret.showpeop = false
+            if (ret.status == 1) {
+              ret.statusName = '待审核'
+            } else if (ret.status == 2) {
+              ret.statusName = '招聘中'
+            } else if (ret.status == 3) {
+              ret.statusName = '已拒绝'
+            } else if (ret.status == 4) {
+              ret.statusName = '已取消'
+            } else if (ret.status == 5) {
+              ret.statusName = '已关闭'
+            }
+            this.jobList.push(ret)
+          })
+          this.count = res.data.total; // 更新总条数
+        }
+        this.isLoading = false;
+        uni.stopPullDownRefresh();
+      }).catch(err => {
+        this.isLoading = false;
+        uni.hideLoading();
+        uni.stopPullDownRefresh();
+      })
+    },
+    // 触底加载下一页
+    loadMore() {
+      if (this.jobList.length >= this.count) {
+        uni.showToast({ title: '已加载全部数据', icon: 'none' });
+        return;
+      }
+      this.page++; // 页码+1
+      this.getJobList(); // 请求下一页
+    },
+    // 切换标签页(重置分页)
+    tabChange(e) {
+      const index = typeof e === 'number' ? e : e.index
+      this.tabIndex = index
+      this.page = 1; // 切换标签时重置为第1页
+      this.jobList = [];
+      this.getJobList();
+    },
+    // 下拉刷新(可选,若需要下拉刷新可添加)
+    onPullDownRefresh() {
+      this.page = 1;
+      this.getJobList();
+    },
+    // 原有方法保持不变...
+    goBack() { uni.navigateBack(); },
+    goNav(url) { uni.navigateTo({ url }); },
+    publishNewJob() { uni.navigateTo({ url: '/package/addJob/addJob' }); },
+    getJobStatusClass(job) { /* 原有逻辑不变 */ },
+    setBodyHeight() { /* 原有逻辑不变 */ },
+  }
 }
 </script>
 

+ 12 - 6
pages/my/jobPosting.vue

@@ -85,7 +85,6 @@
 				console.log('接收的公司状态:', this.status);
 			}
 
-
 		},
 		onUnload() {
 			// 页面卸载时移除监听,避免内存泄漏
@@ -144,7 +143,7 @@
       return false;
     }
     // 校验是否包含违规内容(简单示例,可根据实际需求扩展)
-    const illegalChars = /QQ|微信|电话|手机号|\/|\\|\*|\?/g;
+    const illegalChars = /QQ|微信|电话|手机号|\?/g;
     if (illegalChars.test(this.text)) {
       uni.hideLoading();
       uni.showToast({
@@ -165,7 +164,7 @@
       });
       return false;
     }
-    if (!this.jobInfo?.ruleClassifyName) {
+    if (!this.jobInfo?.ruleClassifyName || this.jobInfo?.ruleClassifyName=='请选择要招聘的职位') {
       uni.hideLoading();
       uni.showToast({
         title: '岗位分类名称异常,请重新选择',
@@ -206,19 +205,26 @@
 				this.$Request.postJson("/app/postPush/savePostPush", data)
 					.then((res) => {
 						uni.hideLoading();
-
+							
 						if (res.code === 0) {
 							uni.showToast({
 								title: '提交成功',
 								icon: 'success'
 							});
 							console.log("sssssss",this.companyId)
+							var pid=res.data || ""
+							if(!pid){
+								uni.showToast({
+									title: '系统错误,请重新提交',
+									icon: 'none'
+								});
+								return
+							}
 							// 提交成功后跳转到职位发布页面
 							setTimeout(() => {
 								uni.navigateTo({
-									url: "/pages/my/jobPostingSecond?status="+this.status+"companyName="+this.companyName+'&companyId='+this.companyId
+									url: "/pages/my/jobPostingSecond?pid="+pid+"&status="+this.status+"&companyName="+this.companyName+'&companyId='+this.companyId
 								});
-
 							}, 1500);
 						} else {
 							uni.showToast({

+ 80 - 6
pages/my/jobPostingSecond.vue

@@ -89,6 +89,7 @@
 				companyName: "",
 				companyId: "",
 				status: 1,
+				pid: "",
 
 				// 选择器显示控制
 				showExper: false,
@@ -163,27 +164,75 @@
 							value: "6k",
 							label: "6k"
 						},
+						{
+							value: "8k",
+							label: "8k"
+						},
 						{
 							value: "10k",
 							label: "10k"
 						},
+						{
+							value: "12k",
+							label: "12k"
+						},
 						{
 							value: "15k",
 							label: "15k"
 						},
+						{
+							value: "18k",
+							label: "18k"
+						},
 						{
 							value: "20k",
 							label: "20k"
 						},
+						{
+							value: "30k",
+							label: "30k"
+						},
+						{
+							value: "50k",
+							label: "50k"
+						},
 					],
 					[{
+							value: "3k",
+							label: "3k"
+						},
+						{
+							value: "4k",
+							label: "4k"
+						},
+						{
+							value: "5k",
+							label: "5k"
+						},
+						{
+							value: "6k",
+							label: "6k"
+						},
+						{
+							value: "8k",
+							label: "8k"
+						},
+						{
 							value: "10k",
 							label: "10k"
 						},
+						{
+							value: "12k",
+							label: "12k"
+						},
 						{
 							value: "15k",
 							label: "15k"
 						},
+						{
+							value: "18k",
+							label: "18k"
+						},
 						{
 							value: "20k",
 							label: "20k"
@@ -196,10 +245,6 @@
 							value: "50k",
 							label: "50k"
 						},
-						{
-							value: "100k",
-							label: "100k"
-						},
 					],
 				],
 
@@ -221,6 +266,7 @@
 				this.companyName = decodeURIComponent(options.companyName);
 				console.log('接收的公司名称:', this.companyName);
 			}
+
 			if (options.status) {
 				this.status = decodeURIComponent(options.status);
 				console.log('接收的公司状态:', this.status);
@@ -240,10 +286,22 @@
 			if (options.companyId) {
 				this.companyId = options.companyId;
 				console.log('接收的公司ID:', this.companyId);
-			}else{
+			} else {
 				this.companyId = uni.getStorageSync('companyId') || ""
 			}
 
+
+
+			if (options.pid) {
+				this.pid = options.pid;
+				console.log('接收PID:', this.pid);
+			} else {
+				uni.navigateTo({
+					url: '/pages/my/jobPosting?companyId=' + this.companyId + '&status=' + this.status +
+						'&companyName=' + this.companyName
+				})
+			}
+
 		},
 		onUnload() {
 			// 页面关闭时移除监听,避免内存泄漏
@@ -348,10 +406,25 @@
 						icon: "none"
 					});
 				}
+				if (!this.stationName.longitude) {
+					return uni.showToast({
+						title: "请选择位置",
+						icon: "none"
+					});
+				}
+				if (!this.positionTag) {
+					return uni.showToast({
+						title: "请选择职位标签",
+						icon: "none"
+					});
+				}
+
 				var positionTag = this.positionTag
 				const str = positionTag.join(',');
 				// 构造提交数据
 				const data = {
+					orderid: 1,
+					postPushId: this.pid,
 					experience: this.selectedExper, //工作经验
 					education: this.selectedLevel, //学历
 					salaryRange: this.selectedSalary, //薪资范围
@@ -362,7 +435,8 @@
 					lng: this.stationName.longitude,
 					province: this.stationName.province,
 					city: this.stationName.city,
-					county: this.stationName.district
+					county: this.stationName.district,
+
 				};
 
 				// 调用接口提交