소스 검색

我的投递/投递详情

空白格 3 년 전
부모
커밋
b02bd77771

+ 13 - 2
h5_web/common/apiurl.js

@@ -66,7 +66,13 @@ const apiurl = {
 		// 公司详情
 		getCompanyDetailsUrl: '/company/getDetail/',
 		// 岗位列表
-		getCompanyPostListUrl: '/companypost/list/'
+		getCompanyPostListUrl: '/companypost/list/',
+		// 岗位详情
+		getPostDetailsUrl: '/companypost/getDetail/',
+		// 投递简历
+		deliveryResumeUrl: '/delivery/add',
+		// 判断是否已投递
+		judgeIsSubmitUrl: '/delivery/queryIsDelivered/'
 	},
   
   /**
@@ -77,7 +83,12 @@ const apiurl = {
     getPolicyInfoListUrl: '/policy/article/door/list',
     // 政策资讯详情
     getPolicyInfoDetailsUrl: '/policy/article/door/info'
-  }
+  },
+	
+	// 我的投递
+	delivery: {
+		deliveryListUrl: '/delivery/myDeliveredList'
+	}
 }
 
 export {

+ 13 - 2
h5_web/common/http.api.js

@@ -70,7 +70,13 @@ const install = (Vue, vm) => {
 		// 获取公司详情
 		getCompanyDetails: (params = {}) => vm.$u.get(apiurl.company.getCompanyDetailsUrl + params.id),
 		// 获取岗位列表
-		getCompanyPostList: (params = {}) => vm.$u.get(apiurl.company.getCompanyPostListUrl + params.id, params)
+		getCompanyPostList: (params = {}) => vm.$u.get(apiurl.company.getCompanyPostListUrl + params.id, params),
+		// 获取岗位详情
+		getPostDetails: (params = {}) => vm.$u.get(apiurl.company.getPostDetailsUrl + params.id),
+		// 投递简历
+		deliveryResume: (params = {}) => vm.$u.post(apiurl.company.deliveryResumeUrl, params),
+		// 判断是否已投递
+		judgeIsSubmit: (params = {}) => vm.$u.get(apiurl.company.judgeIsSubmitUrl + params.id)
 	};
   
   // 政策资讯模块
@@ -81,6 +87,10 @@ const install = (Vue, vm) => {
     getPolicyInfoDetails: (params = {}) => vm.$u.get(apiurl.policyInfo.getPolicyInfoDetailsUrl, params)
   };
 	
+	// 我的投递
+	let delivery = {
+		getDeliveryList: (params = {}) => vm.$u.get(apiurl.delivery.deliveryListUrl, params)
+	}
 	// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
 	vm.$u.api = {
 		test,
@@ -109,7 +119,8 @@ const install = (Vue, vm) => {
 		getSchoolList,
 		school,
 		company,
-    policyInfo
+    policyInfo,
+		delivery
 	};
 }
 

+ 11 - 7
h5_web/common/http.interceptor.js

@@ -8,13 +8,17 @@ import store from '../store/index.js'
 const install = (Vue, vm) => {
   Vue.prototype.$u.http.setConfig({
     baseUrl: config.baseUrl,
-    // 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data
-    // 设置为true后,就需要在this.$u.http.interceptor.response进行多一次的判断,请打印查看具体值
-    // originalData: true, 
-    // 设置自定义头部content-type
-    // header: {
-    // 	'content-type': 'xxx'
-    // }
+		// 设置为json,返回后会对数据进行一次JSON.parse()
+		dataType: 'json',
+		showLoading: true, // 是否显示请求中的loading
+		loadingText: '请求中...', // 请求loading中的文字提示
+		loadingTime: 800, // 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
+		originalData: false, // 是否在拦截器中返回服务端的原始数据
+		loadingMask: true, // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
+		// 配置请求头信息
+		header: {
+			'content-type': 'application/json;charset=UTF-8'
+		}
   });
   // 请求拦截,配置Token等参数
   Vue.prototype.$u.http.interceptor.request = (config) => {

+ 2 - 2
h5_web/pages/applyEducationCode/applyEducationCode.vue

@@ -220,7 +220,7 @@
 							}
 						};
 						if (res.data.veteEduc) {
-							this.form.veteSex = res.data.veteEduc.veteSex === 1 ? '男' : '女';
+							this.form.veteSex = res.data.veteEduc.veteSex === 0 ? '男' : '女';
 							// 文化程度
 							this.degrEducList.forEach((item, index) => {
 								if (item.text === res.data.veteEduc.degrEducId) {
@@ -410,7 +410,7 @@
 									params.veteEduc[key] = this.form[key];
 								}
 							};
-							params.veteEduc.veteSex = params.veteEduc.veteSex === '男' ? 1 : 0;
+							params.veteEduc.veteSex = params.veteEduc.veteSex === '男' ? 0 : 1;
 							this.$u.api.veteEduc(params).then(res => {
 								if (res.code === 200 ) {
 									uni.showToast({

+ 6 - 2
h5_web/pages/businessDetails/businessDetails.scss

@@ -210,10 +210,14 @@
 						.logo {
 							width: 112rpx;
 							height: 112rpx;
+							line-height: 112rpx;
+							text-align: center;
 							margin-right: 20rpx;
+							border: solid 1px #f2f2f2;
+							border-radius: 10rpx;
 							image {
-								width: 100%;
-								height: 100%;
+								width: 98%;
+								height: 98%;
 							}
 						}
 						.info {

+ 17 - 7
h5_web/pages/businessDetails/businessDetails.vue

@@ -83,17 +83,17 @@
 					>
 						<view class="left">
 							<view class="logo">
-								<image :src="item.icon" mode=""></image>
+								<image :src="item.companyLogoUrl" mode=""></image>
 							</view>
 							<view class="info">
-								<view>{{ item.position }}</view>
-								<view>{{ item.content }}</view>
-								<view>{{ item.address }}</view>
+								<view>{{ item.postName }}</view>
+								<view>{{ `${item.workPlace} | 经验${item.workYear ? item.workYear + '年' : '不限'} | ${item.educationBg}` }}</view>
+								<view>{{ item.workPlace }}</view>
 							</view>
 						</view>
 						<view class="right">
-							<view>{{ item.money }}</view>
-							<view>{{ item.date }}</view>
+							<view>{{ item.salary }}</view>
+							<view>{{ item.createTime ? item.createTime.split(' ')[0] : '-' }}</view>
 						</view>
 					</view>
 				</view>
@@ -208,8 +208,18 @@
 			getCompanyPost(id, pageNum, pageSize) {
 				this.$u.api.company.getCompanyPostList({ id, pageNum, pageSize}).then(res => {
 					if (res.code === 200) {
-						this.positionList = res.data.rows
+						this.positionList = res.rows
+					} else {
+						this.$refs.uToast.show({
+							title: res.msg,
+							type: 'error'
+						})
 					}
+				}).catch((err) => {
+					this.$refs.uToast.show({
+						title: '系统异常!',
+						type: 'error'
+					})
 				})
 			},
 			/**

+ 84 - 20
h5_web/pages/jobDetails/jobDetails.vue

@@ -11,10 +11,10 @@
           <view class="jobdetails-head-cardhead">
             <view class="content">
               <view class="left">
-                <view>保安员</view>
-                <view>经验1-3年 / 大专</view>
+                <view>{{ recruitmentData.postName }}</view>
+                <view>经验{{ recruitmentData.workYear }}年 / {{ recruitmentData.educationBg }}</view>
               </view>
-              <view class="right">4.0k-8.0k</view>
+              <view class="right">{{ recruitmentData.salary }}</view>
             </view>
           </view>
     		</view>
@@ -22,11 +22,11 @@
           <view class="jobdetails-head-cardbody">
             <view class="container" @tap="tapHeadCardBody(recruitmentData)">
               <view class="container-image">
-                <image :src="recruitmentData.img" mode="aspectFill" class="image"></image>
+                <image :src="recruitmentData.companyLogoUrl" mode="aspectFill" class="image"></image>
               </view>
               <view class="content">
                 <view class="content-left">
-                  <view >顺丰速运有限公司贵州分公司</view>
+                  <view >{{ recruitmentData.companyName }}</view>
                   <view >快递和运输 · 199-499人</view>
                 </view>
                 <view class="content-right">
@@ -40,7 +40,7 @@
           <view class="jobdetails-head-cardfoot">
             <view class="content">
               <view class="content-left">
-                <view >贵州省乌当区顺海中路88号(保利国际温泉酒店)</view>
+                <view >{{ recruitmentData.companyAddress }})</view>
               </view>
               <view class="content-right" @tap="tapHeadCardFoot(recruitmentData)">
                 <u-icon name="map-fill" color="#028DFE" size="30" class="content-right-icon"></u-icon>
@@ -59,12 +59,13 @@
             <view class="container">
               <view class="title">职位描述</view>
               <view class="content">
-                <u-input :disabled="true" v-model="detailsInfo.jobDesc" type="textarea" class="content-textarea" />
+                <!-- <u-input :disabled="true" v-model="detailsInfo.description" type="textarea" class="content-textarea" /> -->
+								<u-parse :html="recruitmentData.description"></u-parse>
               </view>
             </view>
           </view>
       	</view>
-      	<view slot="body">
+      	<!-- <view slot="body">
           <view class="jobdetails-content-cardbody">
             <view class="container">
               <view class="title">职位要求</view>
@@ -73,13 +74,14 @@
               </view>
             </view>
           </view>
-      	</view>
+      	</view> -->
       </u-card>
     </view>
     
-    <view class="jobdetails-bottom">
+    <view class="jobdetails-bottom" v-if="!isSubmit">
       <u-button type="primary" @click="handleResumeClick">提交简历</u-button>
     </view>
+		<u-toast ref="uToast" />
 	</view>
 </template>
 
@@ -91,16 +93,64 @@
         detailsInfo: {
           jobDesc: `1、规划产品发展方向,制定产品计划和竞争策略;\n2、编写产品需求文档,对产品需求进行评估及确认项目开发周期;\n3、跟踪项目进度,协调各方资源,产品培训和产品演示;\n4、对产品的设计、开发、包装、渠道、定价、上市、维护等过程进行全程监控;\n5、协助营销市场部门,参与各类市场活动等`,
           jobRequire: `1. 大专学历,2年以上蓝牙耳机产品经理岗位经验;\n2. 英语听说读写能力强,能熟练用英语与国外客户沟通交流;\n3、熟悉产品设计、研发流程,有完整的项目管理经验;\n4、有创造性、规划产品,有较强的市场敏锐性和超前意识。`
-        }
+        },
+				isSubmit: false
 			};
 		},
 		onLoad(param) {
-      console.log("jobDetails-onLoad: ",JSON.parse(param.item));
-      this.recruitmentData = JSON.parse(param.item);
+			if (param.id) {
+				this.getPostDetails(param.id)
+				this.judgeIsSubmit(param.id)
+			}
+			if (param.isSubmit) {
+				this.isSubmit = param.isSubmit
+			}
 		},
 		onShow() {
 		},
 		methods: {
+			/**
+			 * 通过职位id获取详情
+			 * @param { String } id 职位id 
+			 */
+			getPostDetails(id) {
+				this.$u.api.company.getPostDetails({ id }).then(res => {
+					if (res.code === 200) {
+						this.recruitmentData = res.data
+					} else {
+						this.$refs.uToast.show({
+							title: res.msg,
+							type: 'error'
+						})
+					}
+				}).catch(() => {
+					this.$refs.uToast.show({
+						title: '系统异常!',
+						type: 'error'
+					})
+				})
+			},
+			judgeIsSubmit(id) {
+				this.$u.api.company.judgeIsSubmit({ id }).then(res => {
+					if (res.code === 200) {
+						if (res.data === 0) {
+							this.isSubmit = false
+						} else {
+							this.isSubmit = true
+						}
+					} else {
+						this.$refs.uToast.show({
+							title: res.msg,
+							type: 'error'
+						})
+					}
+				}).catch(() => {
+					this.$refs.uToast.show({
+						title: '系统异常!',
+						type: 'error'
+					})
+				})
+			},
       /**
        * 企业信息事件
        */
@@ -108,7 +158,7 @@
         this.$u.route({
         	url: 'pages/businessDetails/businessDetails',
         	params: {
-        	  flag: 'jobdetails'
+        	  id: param.companyId
         	}
         });
       },
@@ -122,12 +172,26 @@
        * 提交简历按钮事件
        */
       handleResumeClick(){
-        this.$u.route({
-        	url: 'pages/resumeDeliveryResults/resumeDeliveryResults',
-        	params: {
-        	  // item: JSON.stringify(param)
-        	}
-        });
+				this.$u.api.company.deliveryResume({ postId: this.recruitmentData.id }).then(res => {
+					if (res.code === 200) {
+						this.$u.route({
+							url: 'pages/resumeDeliveryResults/resumeDeliveryResults',
+							params: {
+							  // item: JSON.stringify(param)
+							}
+						});
+					} else {
+						this.$refs.uToast.show({
+							title: res.msg,
+							type: 'error'
+						})
+					}
+				}).catch(() => {
+					this.$refs.uToast.show({
+						title: '系统异常!',
+						type: 'error'
+					})
+				})
       }
 		}
 	}

+ 33 - 34
h5_web/pages/myDelivery/myDelivery.vue

@@ -11,27 +11,29 @@
 					class="delivery-list-item"
 					v-for="(item, index) in deliveryList"
 					:key="index"
-					@click="jumpPage('/pages/jobDetails/jobDetails')"
+					@click="jumpPage('/pages/jobDetails/jobDetails', { id: item.id, isSubmit: true })"
 				>
 					<view class="delivery-list-item-left">
 						<view class="delivery-list-item-left-image">
 							<image
-								:src="item.img"
+								:src="item.companyLogoUrl"
 							/>
 						</view>
 						<view class="delivery-list-item-left-info">
-							<view>{{ item.position }}</view>
-							<view>{{ item.content }}</view>
-							<view>{{ item.company }}</view>
+							<view>{{ item.postName }}</view>
+							<!-- <view>{{ `${} | ${item.workYear}年 | ${}` }}</view> -->
+							<view>{{ `${item.workPlace} | 经验${item.workYear ? item.workYear + '年' : '不限'} | ${item.educationBg}` }}</view>
+							<view>{{ item.companyName }}</view>
 						</view>
 					</view>
 					<view class="delivery-list-item-right">
-						<view>{{ item.area }}</view>
-						<view>{{ item.date }}</view>
+						<view>{{ item.salary }}</view>
+						<view>{{ item.createTime.split(' ')[0] }}</view>
 					</view>
 				</view>
 			</view>
 		</z-paging>
+		<u-toast ref="uToast" />
 	</view>
 </template>
 
@@ -43,37 +45,34 @@
 			}
 		},
 		methods: {
+			getList(pageNum, pageSize) {
+				this.$u.api.delivery.getDeliveryList({
+					pageNum,
+					pageSize
+				}).then(res => {
+					if (res.code === 200) {
+						this.$refs.paging.complete(res.rows)
+					} else {
+						this.$refs.uToast.show({
+							title: res.msg,
+							type: 'error'
+						})
+						this.$refs.paging.complete([])
+					}
+				}).catch(() => {
+					this.$refs.uToast.show({
+						title: '系统异常!',
+						type: 'error'
+					})
+					this.$refs.paging.complete([])
+				})
+			},
 			/**
 			 * 下拉上滑触发
 			 */
 			queryList(pageNo, pageSize) {
-				//组件加载时会自动触发此方法,因此默认页面加载时会自动触发,无需手动调用
-				//这里的pageNo和pageSize会自动计算好,直接传给服务器即可
-				//模拟请求服务器获取分页数据,请替换成自己的网络请求
-				// this.$request.queryList(pageNo, pageSize, this.tabIndex + 1, (data) => {
-				// 	//将请求的结果数组传递给z-paging
-				// 	this.$refs.paging.complete(data);
-				// 	//如果请求失败写 this.$refs.paging.complete(false);
-				// })
-				this.$refs.paging.complete(
-				[
-					{
-						img: require('@/static/img/avatar.jpg'),
-						position: '保安员',
-						company: '保利贵州酒店管理有限公司',
-						content: '贵州省 | 经验不限 | 中等专科',
-						area: '4.0 ~ 8.0k',
-						date: '2020-12.25'
-					},
-					{
-						img: require('@/static/img/avatar.jpg'),
-						position: '保安员',
-						company: '保利贵州酒店管理有限公司',
-						content: '贵州省 | 经验不限 | 中等专科',
-						area: '4.0 ~ 8.0k',
-						date: '2020-12.25'
-					}
-				])
+				// 组件加载时会自动触发此方法,因此默认页面加载时会自动触发,无需手动调用
+				this.getList(pageNo, pageSize);
 			},
 			/**
 			 * 跳转到指定页面