lsw 10 maanden geleden
bovenliggende
commit
574abbe994

+ 1 - 50
app/common/common.scss

@@ -346,56 +346,7 @@
 			line-height: 25px;
 		}
 		.item {
-			.title {
-				float: left;
-				font-size: 17px;
-				font-weight: bold;
-			}
-			.right {
-				float: right;
-			}
-		}
-		.con {
-			margin-bottom: 7px;
-			.tit {
-				font-weight: bold;
-				.left {
-					float: left;
-					width: 60%;
-					.salary {
-						padding-left: 10px;
-						color: orange;
-					}
-				}
-				.right {
-					float: right;
-					font-weight: normal;
-					.date {
-						font-size: 13px;
-					}
-					.icon {
-					}
-				}
-			}
-		}
-		.desc {
-			margin-top: 5px;
-			overflow: hidden;
-			.text {
-				padding-right: 3px;
-				float: left;
-			}
-			.bf {
-				padding-right: 7px;
-			}
-			.inf {
-				float: left;
-				text-align: left;
-				padding-right: 15px;
-				.icon {
-					padding-right: 5px;
-				}
-			}
+			padding-top:10px;
 		}
 	}
 }

+ 1 - 1
app/common/util.js

@@ -176,7 +176,7 @@ const getData = (obj = 'education') => {
 		return ["初中及以下", "中专/中技", "高中", "大专", "本科", "硕士", "博士"]
 	}
 	//求职类型
-	if (obj == 'types') {
+	if (obj == 'type') {
 		return ["全职", "兼职"]
 	}
 	//工作经验

+ 1 - 15
app/pages.json

@@ -124,26 +124,12 @@
 			}
 		},
 		{
-			"path": "pages/user/resume/base",
+			"path": "pages/user/resume/edit",
 			"style": {
 				"navigationBarTitleText": "个人信息"
 			}
 		},
 		{
-			"path" : "pages/user/resume/advantage",
-			"style" : 
-			{
-				"navigationBarTitleText" : "个人优势"
-			}
-		},
-		{
-			"path" : "pages/user/resume/desire",
-			"style" : 
-			{
-				"navigationBarTitleText" : "求职期望"
-			}
-		},
-		{
 			"path" : "pages/job/position/classification",
 			"style" : 
 			{

+ 23 - 24
app/pages/job/position/city.vue

@@ -3,7 +3,7 @@
 		<u-index-list :index-list="indexList" activeColor="#4581fb">
 			<view class="list">
 				<view class="search">
-					<u-search placeholder="搜索城市名/拼音" v-model="title" :actionStyle="{ color: 'white' }" :showAction="false" @clear="show = false"></u-search>
+					<u-search placeholder="搜索城市名/拼音" v-model="title" bgColor="white" :showAction="false" @clear="show = false"></u-search>
 				</view>
 				<!-- #ifdef APP-PLUS-->
 				<view class="bbv animated fadeInDown" v-if="item.title">
@@ -14,7 +14,6 @@
 								<view class="int">{{ item.title }}</view>
 							</view>
 						</view>
-						<view class="clear"></view>
 					</view>
 				</view>
 				<!-- #endif -->
@@ -26,10 +25,9 @@
 								<view class="int omit">{{ item.title }}</view>
 							</view>
 						</view>
-						<view class="clear"></view>
 					</view>
 				</view>
-				<view v-for="(item, index) in list" :key="index">
+				<view v-for="(item, index) in list" :key="index" class="item">
 					<u-index-item>
 						<u-index-anchor :text="indexList[index]"></u-index-anchor>
 						<view class="tags" v-for="(child, i) in item" :key="child.title" @click="select(child)">
@@ -37,7 +35,6 @@
 								<view class="int omit">{{ child.title }}</view>
 							</view>
 						</view>
-						<view class="clear"></view>
 					</u-index-item>
 				</view>
 			</view>
@@ -62,15 +59,7 @@ export default {
 			show: false,
 			title: '',
 			indexList: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z'],
-			hot_city: [
-				{title: '不限' },
-				{ id: '1002088', title: '南宁市' },
-				{ id: '1000000', title: '北京市' },
-				{ id: '1000008', title: '上海市' },
-				{ id: '1001969', title: '深圳市' },
-				{ id: '1000939', title: '杭州市' },
-				{ id: '1001946', title: '广州市' }
-			],
+			hot_city: [{ title: '不限' }, { id: '1002088', title: '南宁市' }, { id: '1000000', title: '北京市' }, { id: '1000008', title: '上海市' }, { id: '1001969', title: '深圳市' }, { id: '1000939', title: '杭州市' }, { id: '1001946', title: '广州市' }],
 			list: [],
 			all: []
 		};
@@ -79,7 +68,7 @@ export default {
 		title(val) {
 			if (val) {
 				this.show = true;
-				this.search_list = this.all.filter(item => item.level == 2 && (item.title.indexOf(val) != -1 || item.pinyin.indexOf(val) != -1));
+				this.search_list = this.all.filter((item) => item.level == 2 && (item.title.indexOf(val) != -1 || item.pinyin.indexOf(val) != -1));
 			} else {
 				this.show = false;
 				this.search_list = [];
@@ -92,16 +81,13 @@ export default {
 		}
 		setTimeout(() => {
 			this.getData();
-			// #ifdef APP-PLUS
-			this.getLocation();
-			// #endif
 		}, 500);
 	},
 	methods: {
 		getData() {
 			this.all = uni.getStorageSync('city_all');
-			this.indexList.forEach(i => {
-				this.list.push(this.all.filter(item => item.level == 2 && i == item.pin));
+			this.indexList.forEach((i) => {
+				this.list.push(this.all.filter((item) => item.level == 2 && i == item.pin));
 			});
 		},
 		//定位城市
@@ -109,20 +95,20 @@ export default {
 			uni.getLocation({
 				type: 'wgs84',
 				geocode: true,
-				success: res => {
+				success: (res) => {
 					// 创建地图坐标对象
 					let point = new plus.maps.Point(res.longitude, res.latitude);
 					//静态方法,反向地理编码
-					plus.maps.Map.reverseGeocode(point, {}, event => {
+					plus.maps.Map.reverseGeocode(point, {}, (event) => {
 						let reg = /.+?(省|市|自治区|自治州|县|区)/g;
 						let addressList = event.address.match(reg).toString().split(',');
 						//注意区分直辖市;
 						let city = addressList.length >= 3 ? addressList[1] : addressList[0];
-						this.item = this.all.filter(item => item.level == 2 && item.title == city)[0];
+						this.item = this.all.filter((item) => item.level == 2 && item.title == city)[0];
 						this.$forceUpdate();
 					});
 				},
-				fail: err => {
+				fail: (err) => {
 					uni.showModal({ content: '定位失败,请检查是否允许地位', showCancel: false });
 				}
 			});
@@ -150,8 +136,15 @@ export default {
 	.bbv {
 		margin-top: 15px;
 	}
+	.item {
+		overflow: hidden;
+		margin-top: 10px;
+	}
 	.tags {
 		width: 33.3333%;
+		.int {
+			background-color: white;
+		}
 	}
 }
 
@@ -168,4 +161,10 @@ export default {
 .u-index-item {
 	display: block !important;
 }
+.u-index-anchor {
+	margin-left: 5px;
+	margin-right: 5px;
+	border-radius: 3px;
+	margin-bottom: 10px;
+}
 </style>

+ 102 - 118
app/pages/user/index.vue

@@ -68,44 +68,28 @@
 			<view class="cd">
 				<view class="out">
 					<view class="int">
-						<view class="icon" style="background-color: #00BCD4">&#xe998;</view>
+						<view class="icon" style="background-color: #00bcd4">&#xe998;</view>
 						<view class="title">法务服务</view>
 					</view>
 				</view>
 			</view>
 		</view>
-		<view v-if="user.type==1">
+		<view v-if="user.type == 1">
 			<view class="mtt">企业服务</view>
 			<view class="menu">
 				<view class="cd">
 					<view class="out">
 						<view class="int">
-							<view class="icon" style="background-color: #03A9F4">&#xe627;</view>
-							<view class="title">任务列表</view>
+							<view class="icon" style="background-color: #03a9f4">&#xe627;</view>
+							<view class="title">职位管理</view>
 						</view>
 					</view>
 				</view>
 				<view class="cd">
 					<view class="out">
 						<view class="int">
-							<view class="icon" style="background-color: #3f51b5">&#xec5e;</view>
-							<view class="title">合同列表</view>
-						</view>
-					</view>
-				</view>
-				<view class="cd">
-					<view class="out">
-						<view class="int">
-							<view class="icon" style="background-color: #795548">&#xe61d;</view>
-							<view class="title">交付进度</view>
-						</view>
-					</view>
-				</view>
-				<view class="cd">
-					<view class="out">
-						<view class="int">
-							<view class="icon" style="background-color: #607d8b">&#xe60a;</view>
-							<view class="title">邀请列表</view>
+							<view class="icon" style="background-color: #03a9f4">&#xe627;</view>
+							<view class="title">企业信息</view>
 						</view>
 					</view>
 				</view>
@@ -159,7 +143,7 @@
 			<view class="cd">
 				<view class="out">
 					<view class="int">
-						<view class="icon" style="background-color: #FF5722">&#xe616;</view>
+						<view class="icon" style="background-color: #ff5722">&#xe616;</view>
 						<view class="title">分享有利</view>
 					</view>
 				</view>
@@ -168,116 +152,116 @@
 	</view>
 </template>
 <script>
-	export default {
-		data() {
-			return {
-				ip: this.http.ip,
-				user: {}
-			};
-		},
-		onShow() {
-			/* this.user = {
-				token: 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFlNTk3MjE5LTg3OTAtNDU1MC04ZTlkLWE5YjY2NDUwMDhjOCJ9.j9oyRK-cDoKSN1Elc6VmF8F99qOTdJei00bP35HkQdkuEvyL2xIhFCl2cihcBtQhIYDoUAl5yoYrTdxEI_lSrg'
+export default {
+	data() {
+		return {
+			ip: this.http.ip,
+			user: {}
+		};
+	},
+	onShow() {
+		/* this.user = {
+				token: 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImQyYThiZTk5LThjY2MtNGFkMi05ODJlLTMzYzE3NTdiNDllOSJ9.YFzfq1YEDy1FmZ-2bynRDgQai6qMdfGFsgQCDMiStba-m4AdoqKx6hmfd7F5n2t9l1bgcxE9VVpC7M6TdWN72Q'
 			};
 			uni.setStorageSync('user', this.user); */
+		if (this.hasLogin()) {
+			this.getUserInfo();
+		}
+	},
+	methods: {
+		getUserInfo() {
+			this.http.request({
+				url: '/app/user/info',
+				success: (res) => {
+					this.user = res.data.data;
+					if (res.data.data.type == null) {
+						uni.navigateTo({ url: '/pages/user/switch' });
+					}
+				}
+			});
+		},
+		go(url) {
 			if (this.hasLogin()) {
-				this.getUserInfo();
+				uni.navigateTo({ url: url });
+			} else {
+				uni.navigateTo({ url: '/pages/user/login' });
 			}
 		},
-		methods: {
-			getUserInfo() {
-				this.http.request({
-					url: '/app/user/info',
-					success: (res) => {
-						this.user = res.data.data;
-						if (res.data.data.type == null) {
-							uni.navigateTo({ url: '/pages/user/switch' });
-						}
+		//退出登录
+		exit(url) {
+			uni.showModal({
+				title: '提示',
+				content: '确定退出登录?',
+				success: (res) => {
+					if (res.confirm) {
+						this.http.request({
+							url: this.http.urls.logout,
+							success: (res) => {
+								uni.removeStorageSync('user');
+								uni.$emit('top');
+								uni.switchTab({
+									url: '/pages/index/index'
+								});
+							}
+						});
 					}
-				});
-			},
-			go(url) {
-				if (this.hasLogin()) {
-					uni.navigateTo({ url: url });
-				} else {
-					uni.navigateTo({ url: '/pages/user/login' });
 				}
-			},
-			//退出登录
-			exit(url) {
-				uni.showModal({
-					title: '提示',
-					content: '确定退出登录?',
-					success: (res) => {
-						if (res.confirm) {
-							this.http.request({
-								url: this.http.urls.logout,
-								success: (res) => {
-									uni.removeStorageSync('user');
-									uni.$emit('top');
-									uni.switchTab({
-										url: '/pages/index/index'
-									});
-								}
-							});
-						}
-					}
-				});
-			}
+			});
 		}
-	};
+	}
+};
 </script>
 <style lang="scss">
-	.main {
-		padding: 5px 15px 25px 15px;
-		.user {
-			overflow: hidden;
-			image {
-				float: left;
-				width: 60px;
-				height: 60px;
-				border-radius: 50%;
-			}
-			.con {
-				float: left;
-				padding-left: 15px;
-				.nickName {
-					padding-top: 5px;
-				}
-				.welcome {
-					font-size: 13px;
-					padding-top: 5px;
-					color: #989898;
-				}
+.main {
+	padding: 5px 15px 25px 15px;
+	.user {
+		overflow: hidden;
+		image {
+			float: left;
+			width: 60px;
+			height: 60px;
+			border-radius: 50%;
+		}
+		.con {
+			float: left;
+			padding-left: 15px;
+			.nickName {
+				padding-top: 5px;
 			}
-			.icon {
-				float: right;
-				margin-top: 14px;
+			.welcome {
+				font-size: 13px;
+				padding-top: 5px;
+				color: #989898;
 			}
 		}
-		.rows {
-			overflow: hidden;
-			margin-top: 10px;
-			.row {
-				float: left;
-				width: 33%;
-				text-align: center;
-				.out {
-					.int {
-						padding: 5px;
-						.num {
-							font-weight: bold;
-						}
-						.desc {
-							padding-top: 5px;
-							font-size: 14px;
-						}
+		.icon {
+			float: right;
+			margin-top: 14px;
+		}
+	}
+	.rows {
+		overflow: hidden;
+		margin-top: 10px;
+		.row {
+			float: left;
+			width: 33%;
+			text-align: center;
+			.out {
+				.int {
+					padding: 5px;
+					.num {
+						font-weight: bold;
+					}
+					.desc {
+						padding-top: 5px;
+						font-size: 14px;
 					}
 				}
 			}
 		}
-		.mtt {
-			margin-top: 10px;
-		}
 	}
-</style>
+	.mtt {
+		margin-top: 10px;
+	}
+}
+</style>

+ 0 - 58
app/pages/user/resume/advantage.vue

@@ -1,58 +0,0 @@
-<template>
-	<view class="main">
-		<view class="lav">
-			<view class="title">我的优势</view>
-			<view class="desc">一句话介绍自己,突出核心优势</view>
-		</view>
-		<textarea cols="30" maxlength="200" rows="10" v-model="item.advantage" placeholder="等待输入内容"></textarea>
-		<view class="f"><button class="btn" @click="save()">保存</button></view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			item: {}
-		};
-	},
-	onLoad(e) {
-		if (e.item && e.item != 'null') {
-			this.item.advantage = e.item;
-		}
-	},
-	methods: {
-		save() {
-			let rule = [{ name: 'advantage', checkType: 'notnull', errorMsg: '请输入内容' }];
-			if (!this.verify.check(this.item, rule)) {
-				uni.showModal({ content: this.verify.error, showCancel: false });
-				return false;
-			}
-			this.http.request({
-				url: '/app/resume/advantage',
-				data: this.item,
-				method: 'POST',
-				success: (res) => {
-					uni.showToast({ title: '操作成功' });
-					setTimeout(() => {
-						uni.$emit('resume');
-						uni.navigateBack();
-					}, 1500);
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-textarea {
-	padding: 10px;
-	height: 200px;
-	width: 94%;
-	border-radius: 5px;
-	background-color: white;
-	font-size: 14px;
-	line-height: 23px;
-}
-</style>

+ 0 - 112
app/pages/user/resume/base.vue

@@ -1,112 +0,0 @@
-<template>
-	<view>
-		<view class="main">
-			<view class="form_group">
-				<view class="lable re">头像</view>
-				<view class="bz">
-					<text class="icon">&#xe634;</text>
-					<text>使用真实头像更容易得到HR的青睐</text>
-				</view>
-				<avatar v-model="item.avatar" class="avatar"></avatar>
-			</view>
-			<view class="form_group">
-				<view class="lable re">姓名</view>
-				<input placeholder="请输入姓名" v-model="item.name" />
-			</view>
-			<view class="form_group">
-				<view class="lable re">性别</view>
-				<picker :range="dict.sex" @change="picker($event, 'sex')">
-					<input placeholder="请选择性别" v-model="item.sex" :disabled="true" />
-					<view class="icon more">&#xe62b;</view>
-				</picker>
-			</view>
-			<view class="form_group">
-				<view class="lable re">出生年月</view>
-				<multiSelector v-model="item.birthday" :range="dict.birthday" name="出生年月" placeholder="请选择出生年月"></multiSelector>
-			</view>
-			<view class="form_group">
-				<view class="lable">最高学历</view>
-				<picker :range="dict.qualification" @change="picker($event, 'qualification')">
-					<input placeholder="请选择学历" v-model="item.qualification" :disabled="true" />
-					<view class="icon more">&#xe62b;</view>
-				</picker>
-			</view>
-			<view class="form_group">
-				<view class="lable re">参加工作时间</view>
-				<picker mode="date" fields="month" :end="end" @change="picker($event, 'joinDate')">
-					<input placeholder="请选择参加工作时间" v-model="item.joinDate" :disabled="true" />
-					<view class="icon more">&#xe62b;</view>
-				</picker>
-			</view>
-			<view class="form_group">
-				<view class="lable re">手机号</view>
-				<input type="number" placeholder="请输入手机号" v-model="item.phone" />
-			</view>
-			<view class="form_group">
-				<view class="lable re">邮箱</view>
-				<input placeholder="请输入邮箱" v-model="item.email" />
-			</view>
-			<button class="btn" @click="save()">保存</button>
-		</view>
-	</view>
-</template>
-<script>
-export default {
-	data() {
-		return {
-			item: {},
-			end: this.util.getDate('day'),
-			dict: {
-				sex: this.util.getData('sex'),
-				qualification: this.util.getData('qualification'),
-				birthday: [[], []]
-			}
-		};
-	},
-	onLoad(e) {
-		if (e.item) {
-			this.item = JSON.parse(e.item);
-		}
-	},
-	methods: {
-		picker(e, tag) {
-			if (tag == 'joinDate' || tag == 'birthday') {
-				this.item[tag] = e.detail.value;
-			} else {
-				this.item[tag] = this.dict[tag][e.detail.value];
-			}
-			this.$forceUpdate();
-		},
-		save() {
-			let rule = [
-				{ name: 'avatar', checkType: 'notnull', errorMsg: '请上传头像' },
-				{ name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
-				{ name: 'sex', checkType: 'notnull', errorMsg: '请上选择性别' },
-				{ name: 'birthday', checkType: 'notnull', errorMsg: '请选择出生年月' },
-				{ name: 'qualification', checkType: 'notnull', errorMsg: '请选择最高学历' },
-				{ name: 'joinDate', checkType: 'notnull', errorMsg: '请选择参加工作时间' },
-				{ name: 'phone', checkType: 'phone', errorMsg: '请输入正确的手机号' },
-				{ name: 'email', checkType: 'email', errorMsg: '请输入正确的邮箱' }
-			];
-			if (!this.verify.check(this.item, rule)) {
-				uni.showModal({ content: this.verify.error, showCancel: false });
-				return false;
-			}
-			this.http.request({
-				url: '/app/resume/base',
-				data: this.item,
-				method: 'POST',
-				success: (res) => {
-					uni.showToast({ title: '操作成功' });
-					setTimeout(() => {
-						uni.$emit('resume');
-						uni.navigateBack();
-					}, 1500);
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss"></style>

+ 0 - 111
app/pages/user/resume/desire.vue

@@ -1,111 +0,0 @@
-<template>
-	<view class="main">
-		<view class="lav">
-			<view class="title">{{ item.id ? '编辑' : '添加' }}求职期望</view>
-			<view class="desc">求职期望的不同,推荐的职位也会不同</view>
-		</view>
-		<view class="form_group">
-			<view class="lable">求职类型</view>
-			<picker :range="dict.types" @change="picker($event, 'types')">
-				<input placeholder="请选择求职类型" v-model="item.types" :disabled="true" />
-				<view class="icon more">&#xe62b;</view>
-			</picker>
-		</view>
-		<view class="form_group">
-			<view class="lable">工作城市</view>
-			<picker :disabled="true" @click="go('/pages/job/position/city')">
-				<input placeholder="请选择工作城市" v-model="item.cityName" :disabled="true" />
-				<view class="icon more">&#xe62b;</view>
-			</picker>
-		</view>
-		<view class="form_group">
-			<view class="lable">期望职位</view>
-			<picker :disabled="true" @click="go('/pages/job/position/classification')">
-				<input placeholder="请选择期望职位" v-model="item.positionName" :disabled="true" />
-				<view class="icon more">&#xe62b;</view>
-			</picker>
-		</view>
-		<view class="form_group">
-			<view class="lable">薪资要求</view>
-			<multiSelector v-model="item.salary" :range="dict.salary" name="薪资" placeholder="请选择薪资要求"></multiSelector>
-		</view>
-		<button class="btn" @click="save()">保存</button>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			item: {},
-			dict: {
-				types: this.util.getData('types'),
-				salary: [['面议'], ['']]
-			}
-		};
-	},
-	onLoad(e) {
-		if (e.item) {
-			this.item = JSON.parse(e.item);
-		}
-		uni.$on('select_city', (res) => {
-			this.item.cityName = res.title;
-			this.item.cityId = res.id;
-			this.$forceUpdate();
-		});
-		uni.$on('select_position', (res) => {
-			this.item.positionName = res.title;
-			this.item.positionId = res.id;
-			this.$forceUpdate();
-		});
-	},
-	methods: {
-		go(url) {
-			uni.navigateTo({ url: url });
-		},
-		picker(e, tag) {
-			this.item[tag] = this.dict[tag][e.detail.value];
-			this.$forceUpdate();
-		},
-		save() {
-			let rule = [
-				{ name: 'types', checkType: 'notnull', errorMsg: '请选择求职类型' },
-				{ name: 'cityId', checkType: 'notnull', errorMsg: '请选择工作城市' },
-				{ name: 'positionId', checkType: 'notnull', errorMsg: '请选择期望职位' },
-				{ name: 'salary', checkType: 'notnull', errorMsg: '请选择薪资要求' }
-			];
-			if (!this.verify.check(this.item, rule)) {
-				uni.showModal({ content: this.verify.error, showCancel: false });
-				return false;
-			}
-			this.http.request({
-				url: '/app/resume/desire',
-				data: this.item,
-				method: 'POST',
-				success: (res) => {
-					uni.showToast({ title: '操作成功' });
-					setTimeout(() => {
-						uni.$emit('resume');
-						uni.navigateBack();
-					}, 1500);
-				}
-			});
-		},
-		del() {
-			this.http.request({
-				url: '/app/resume/desire/delete',
-				data: { id: this.item.id },
-				success: (res) => {
-					uni.showToast({ title: '删除成功' });
-					setTimeout(() => {
-						uni.$emit('resume');
-						uni.navigateBack();
-					}, 1500);
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss"></style>

+ 148 - 0
app/pages/user/resume/edit.vue

@@ -0,0 +1,148 @@
+<template>
+	<view class="main">
+		<view class="form_group">
+			<view class="lable re">头像</view>
+			<view class="bz">
+				<text class="icon">&#xe634;</text>
+				<text>使用真实头像更容易得到HR的青睐</text>
+			</view>
+			<avatar v-model="item.avatar" class="avatar"></avatar>
+		</view>
+		<view class="form_group">
+			<view class="lable re">姓名</view>
+			<input placeholder="请输入姓名" v-model="item.name" />
+		</view>
+		<view class="form_group">
+			<view class="lable re">性别</view>
+			<picker :range="dict.sex" @change="picker($event, 'sex')">
+				<input placeholder="请选择性别" v-model="item.sex" :disabled="true" />
+				<view class="icon more">&#xe62b;</view>
+			</picker>
+		</view>
+		<view class="form_group">
+			<view class="lable re">出生年月</view>
+			<multiSelector v-model="item.birthday" :range="dict.birthday" name="出生年月" placeholder="请选择出生年月"></multiSelector>
+		</view>
+		<view class="form_group">
+			<view class="lable re">参加工作时间</view>
+			<picker mode="date" fields="month" :end="end" @change="picker($event, 'joinDate')">
+				<input placeholder="请选择参加工作时间" v-model="item.joinDate" :disabled="true" />
+				<view class="icon more">&#xe62b;</view>
+			</picker>
+		</view>
+		<view class="form_group">
+			<view class="lable re">手机号</view>
+			<input type="number" placeholder="请输入手机号" v-model="item.phone" />
+		</view>
+		<view class="form_group">
+			<view class="lable re">邮箱</view>
+			<input placeholder="请输入邮箱" v-model="item.email" />
+		</view>
+		<view class="form_group">
+			<view class="lable re">工作城市</view>
+			<picker :disabled="true" @click="go('/pages/job/position/city')">
+				<input placeholder="请选择工作城市" v-model="item.cityName" :disabled="true" />
+				<view class="icon more">&#xe62b;</view>
+			</picker>
+		</view>
+		<view class="form_group">
+			<view class="lable re">意向职位</view>
+			<picker :disabled="true" @click="go('/pages/job/position/classification')">
+				<input placeholder="请选择意向职位" v-model="item.positionName" :disabled="true" />
+				<view class="icon more">&#xe62b;</view>
+			</picker>
+		</view>
+		<view class="form_group">
+			<view class="lable re">期望薪资</view>
+			<multiSelector v-model="item.salary" :range="dict.salary" name="薪资" placeholder="请选择薪资要求"></multiSelector>
+		</view>
+		<view class="form_group">
+			<view class="lable re">个人优势</view>
+			<textarea cols="30" maxlength="200" rows="10" v-model="item.advantage" placeholder="等待输入内容"></textarea>
+		</view>
+		<button class="btn" @click="save()">保存</button>
+	</view>
+</template>
+<script>
+export default {
+	data() {
+		return {
+			item: {},
+			end: this.util.getDate('day'),
+			dict: {
+				sex: this.util.getData('sex'),
+				qualification: this.util.getData('qualification'),
+				birthday: [[], []],
+				salary: [['面议'], ['']]
+			}
+		};
+	},
+	onLoad(e) {
+		if (e.item) {
+			this.item = JSON.parse(e.item);
+		}
+		uni.$on('select_city', (res) => {
+			this.item.cityName = res.title;
+			this.item.cityId = res.id;
+			this.$forceUpdate();
+		});
+		uni.$on('select_position', (res) => {
+			this.item.positionName = res.title;
+			this.item.positionId = res.id;
+			this.$forceUpdate();
+		});
+	},
+	methods: {
+		picker(e, tag) {
+			if (tag == 'joinDate' || tag == 'birthday') {
+				this.item[tag] = e.detail.value;
+			} else {
+				this.item[tag] = this.dict[tag][e.detail.value];
+			}
+			this.$forceUpdate();
+		},
+		go(url) {
+			uni.navigateTo({ url: url });
+		},
+		save() {
+			let rule = [
+				{ name: 'avatar', checkType: 'notnull', errorMsg: '请上传头像' },
+				{ name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
+				{ name: 'sex', checkType: 'notnull', errorMsg: '请上选择性别' },
+				{ name: 'birthday', checkType: 'notnull', errorMsg: '请选择出生年月' },
+				{ name: 'joinDate', checkType: 'notnull', errorMsg: '请选择参加工作时间' },
+				{ name: 'phone', checkType: 'phone', errorMsg: '请输入正确的手机号' },
+				{ name: 'email', checkType: 'email', errorMsg: '请输入正确的邮箱' }
+			];
+			if (!this.verify.check(this.item, rule)) {
+				uni.showModal({ content: this.verify.error, showCancel: false });
+				return false;
+			}
+			this.http.request({
+				url: '/app/resume/edit',
+				data: this.item,
+				method: 'POST',
+				success: (res) => {
+					uni.showToast({ title: '操作成功' });
+					setTimeout(() => {
+						uni.$emit('resume');
+						uni.navigateBack();
+					}, 1500);
+				}
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+textarea {
+	padding: 10px;
+	height: 150px;
+	width: 94%;
+	border-radius: 5px;
+	background-color: white;
+	font-size: 14px;
+	line-height: 23px;
+}
+</style>

+ 16 - 139
app/pages/user/resume/index.vue

@@ -1,137 +1,37 @@
 <template>
 	<view class="resume animated fadeInDownBig">
-		<view class="message">
-			<view class="title">需要完善简历100%才能投递哦</view>
-			<view class="progress">
-				<u-line-progress :percentage="(((16 - item.emptyCount) / 16) * 100).toFixed(0)" height="25" text="完善"></u-line-progress>
-			</view>
-		</view>
 		<view class="row">
 			<!--个人信息-->
-			<view class="top" @click="go('/pages/user/resume/base?item=' + JSON.stringify(item))">
+			<view class="top" @click="go('/pages/user/resume/edit?item=' + JSON.stringify(item))">
 				<view class="sm6">
 					<view class="name">
 						<text>{{ item.name ? item.name : '姓名' }}</text>
-						<text class="icon">&#xe6be;</text>
-					</view>
-					<view class="desc">
-						<text class="text" v-if="item.experience">{{ item.experience }}</text>
-						<text class="yd"></text>
-						<text class="text" v-if="item.age">{{ item.age }}岁</text>
-						<text class="yd"></text>
-						<text class="text" v-if="item.qualification">{{ item.qualification }}</text>
-					</view>
-					<view class="desc">
-						<view class="inf omit" v-if="item.phone">
-							<text class="icon">&#xe622;</text>
-							<text>{{ item.phone }}</text>
-						</view>
-						<view class="inf" v-if="item.email">
-							<text class="icon">&#xe908;</text>
-							<text>{{ item.email }}</text>
-						</view>
 					</view>
+					<view class="item">年龄:{{ item.age }},性别:{{ item.sex }}</view>
+					<view class="item">工作经验:{{ item.experience }}</view>
+					<view class="item">手机号码:{{ item.phone }}</view>
+					<view class="item">电子邮箱:{{ item.email }}</view>
 				</view>
 				<image :src="item.avatar ? ip + item.avatar : '../../../static/ls.jpg'" mode="widthFix" class="tx" v-if="item.avatar"></image>
 			</view>
 		</view>
 		<!--个人优势-->
-		<view class="row" @click="go('/pages/user/resume/advantage?item=' + item.advantage)">
+		<view class="row">
 			<view class="label">
 				<text class="title">个人优势</text>
-				<text class="icon">&#xe6be;</text>
 			</view>
 			<view class="ellip">{{ item.advantage }}</view>
 		</view>
-		<!--求职状态-->
-		<view class="row">
-			<view class="item">
-				<text class="title">求职状态</text>
-				<view class="right">
-					<picker :range="dict.state" @change="picker($event, 'state')">
-						<input placeholder="请选择求职状态" v-model="item.state" :disabled="true" style="text-align: right; padding-right: 20px" placeholder-class="pc" />
-						<view class="icon more" style="margin-top: -18px; float: right">&#xe62b;</view>
-					</picker>
-				</view>
-			</view>
-		</view>
 		<!--求职期望-->
 		<view class="row">
-			<view class="label" @click="go('/pages/user/resume/desire')">
+			<view class="label" @click="go('/pages/user/resume/desire?desire=' + JSON.stringify(item.desire))">
 				<text class="title">求职期望</text>
-				<text class="icon">&#xe7c4;</text>
-			</view>
-			<view class="con" v-for="(item, index) in item.desireList" :key="index" @click="go('/pages/resume/user/desire?item=' + JSON.stringify(item))">
-				<view class="tit">
-					<view class="left" style="width: 70%">
-						<text>{{ item.positionName }}</text>
-						<text class="salary">{{ item.salary }}</text>
-					</view>
-					<view class="right"><text class="icon">&#xe62b;</text></view>
-				</view>
-				<view class="desc">{{ item.cityName }}</view>
-			</view>
-		</view>
-		<!--工作经历-->
-		<view class="row">
-			<view class="label" @click="go('/pages/resume/user/work')">
-				<text class="title">工作经历</text>
-				<text class="icon">&#xe7c4;</text>
-			</view>
-			<view class="con" v-for="(item, index) in item.workList" :key="index" @click="go('/pages/resume/user/work?item=' + JSON.stringify(item))" style="margin-bottom: 15px">
-				<view class="tit">
-					<view class="left">{{ item.companyName }}</view>
-					<view class="right">
-						<text class="date">{{ item.startDate }}-{{ item.endDate }}</text>
-						<text class="icon">&#xe62b;</text>
-					</view>
-				</view>
-				<view class="desc">
-					<text class="bf">{{ item.positionName }}</text>
-				</view>
-				<view class="ellip">内容: {{ item.job }}</view>
-			</view>
-		</view>
-		<!--项目经历-->
-		<view class="row">
-			<view class="label" @click="go('/pages/resume/user/project')">
-				<text class="title">项目经历</text>
-				<text class="icon">&#xe7c4;</text>
-			</view>
-			<view class="con" v-for="(item, index) in item.projectList" :key="index" @click="go('/pages/resume/user/project?item=' + JSON.stringify(item))">
-				<view class="tit">
-					<view class="left">{{ item.projectName }}</view>
-					<view class="right">
-						<text class="date">{{ item.startDate }}-{{ item.endDate }}</text>
-						<text class="icon">&#xe62b;</text>
-					</view>
-				</view>
-				<view class="desc">
-					<text class="bf">{{ item.role }}</text>
-				</view>
-				<view class="ellip">内容: {{ item.projectDescribe }}</view>
-			</view>
-		</view>
-		<!--教育经历-->
-		<view class="row">
-			<view class="label" @click="go('/pages/resume/user/education')">
-				<text class="title">教育经历</text>
-				<text class="icon">&#xe7c4;</text>
-			</view>
-			<view class="con" v-for="(item, index) in item.educationList" :key="index" @click="go('/pages/resume/user/education?item=' + JSON.stringify(item))">
-				<view class="tit">
-					<view class="left">{{ item.schoolName }}</view>
-					<view class="right">
-						<text class="date">{{ item.time }}</text>
-						<text class="icon">&#xe62b;</text>
-					</view>
-				</view>
-				<view class="desc">
-					<text class="bf">{{ item.speciality }}</text>
-					<text class="bf">{{ item.education }}</text>
-				</view>
 			</view>
+			<view class="item">工作城市:{{ item.cityName }}</view>
+			<view class="item">意向工作:{{ item.positionName }}</view>
+			<view class="item">期望薪资:{{ item.salary }}</view>
 		</view>
+		<button class="btn" @click="go('/pages/user/resume/edit?item=' + JSON.stringify(item))">编辑</button>
 	</view>
 </template>
 
@@ -140,15 +40,14 @@ export default {
 	data() {
 		return {
 			ip: this.http.ip,
-			item: { desireList: [], workList: [], projectList: [], educationList: [] },
-			dict: {
-				state: this.util.getData('state')
-			}
+			item: {}
 		};
 	},
 	onLoad() {
 		uni.$on('resume', (res) => {
-			this.getData();
+			setTimeout(() => {
+				this.getData();
+			}, 500);
 		});
 		this.getData();
 	},
@@ -158,35 +57,13 @@ export default {
 				url: '/app/resume/index',
 				success: (res) => {
 					this.item = res.data.data;
-					console.log(this.item);
-				}
-			});
-		},
-		picker(e, tag) {
-			this.http.request({
-				url: '/app/resume/state',
-				data: { state: this.dict[tag][e.detail.value] },
-				method: 'POST',
-				success: (res) => {
-					uni.showToast({ title: '操作成功' });
-					this.item[tag] = this.dict[tag][e.detail.value];
 				}
 			});
 		},
 		go(url) {
 			uni.navigateTo({ url: url });
 		}
-	},
-	destroyed() {
-		uni.$off('resume');
 	}
 };
 </script>
-
-<style lang="scss">
-.message {
-	.progress {
-		margin-top: 7px;
-	}
-}
-</style>
+<style lang="scss"></style>

+ 4 - 16
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_ResumeController.java

@@ -2,9 +2,7 @@ package com.ruoyi.web.work.api;
 
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.web.work.api.config.BaseController;
-import com.ruoyi.web.work.domain.dto.ResumeAdvantageDto;
-import com.ruoyi.web.work.domain.dto.ResumeBaseDto;
-import com.ruoyi.web.work.domain.dto.ResumeStateDto;
+import com.ruoyi.web.work.domain.Resume;
 import com.ruoyi.web.work.service.IResumeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -27,19 +25,9 @@ public class Api_ResumeController extends BaseController {
         return resumeService.index();
     }
 
-    @PostMapping("/base")
-    public AjaxResult base(@Validated @RequestBody ResumeBaseDto dto) {
-        return resumeService.base(dto);
-    }
-
-    @PostMapping("/advantage")
-    public AjaxResult advantage(@Validated @RequestBody ResumeAdvantageDto dto) {
-        return resumeService.advantage(dto);
-    }
-
-    @PostMapping("/state")
-    public AjaxResult state(@Validated @RequestBody ResumeStateDto dto) {
-        return resumeService.state(dto);
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody Resume resume) {
+        return resumeService.edit(resume);
     }
 
 }

+ 2 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Column.java

@@ -20,7 +20,7 @@ import java.util.Date;
 public class Column{
     private static final long serialVersionUID = 1L;
 
-    private String id;
+    private Long id;
 
     @ApiModelProperty(value = "标题")
     private String title;
@@ -30,7 +30,7 @@ public class Column{
     private String type;
 
     @ApiModelProperty(value = "父id")
-    private String parentId;
+    private Long parentId;
 
     @ApiModelProperty(value = "祖级列表")
     private String ancestors;
@@ -53,6 +53,4 @@ public class Column{
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
-
-
 }

+ 23 - 18
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Resume.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotBlank;
 import java.util.Date;
 /**
  * @author lsw
@@ -20,56 +21,60 @@ public class Resume{
     @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
+    @NotBlank(message = "姓名不能为空")
     @ApiModelProperty(value = "姓名")
     private String name;
 
+    @NotBlank(message = "头像不能为空")
     @ApiModelProperty(value = "头像")
     private String avatar;
 
+    @NotBlank(message = "性别不能为空")
     @ApiModelProperty(value = "性别")
     private String sex;
 
     @ApiModelProperty(value = "年龄:根=据出生年月自动计算")
     private Integer age;
 
-    @ApiModelProperty(value = "学历:根=据教育经历自动计算")
-    private String qualification;
+    @NotBlank(message = "个人优势不能为空")
+    @ApiModelProperty(value = "个人优势")
+    private String advantage;
 
     @ApiModelProperty(value = "工作经验:根=据参与工作时间自动计算")
     private String experience;
 
+    @NotBlank(message = "参与工作时间不能为空")
     @ApiModelProperty(value = "参与工作时间")
     private String joinDate;
 
+    @NotBlank(message = "手机号不能为空")
     @ApiModelProperty(value = "手机号")
     private String phone;
 
+    @NotBlank(message = "出生年月不能为空")
     @ApiModelProperty(value = "出生年月")
     private String birthday;
 
+    @NotBlank(message = "邮箱不能为空")
     @ApiModelProperty(value = "邮箱")
     private String email;
 
-    @ApiModelProperty(value = "个人优势")
-    private String advantage;
-
-    @ApiModelProperty(value = "求职状态")
-    private String state;
-
-    @ApiModelProperty(value = "求职期望")
-    private String desire;
+    @NotBlank(message = "薪资要求不能为空")
+    @ApiModelProperty(value = "薪资要求")
+    private String salary;
 
-    @ApiModelProperty(value = "教育经历")
-    private String education;
+    @NotBlank(message = "工作城市不能为空")
+    @ApiModelProperty(value = "工作城市")
+    private String cityName;
 
-    @ApiModelProperty(value = "项目经验")
-    private String project;
+    @ApiModelProperty(value = "城市id")
+    private Long cityId;
 
-    @ApiModelProperty(value = "工作经验")
-    private String work;
+    @ApiModelProperty(value = "职位id")
+    private Long positionId;
 
-    @ApiModelProperty(value = "是否曝光简历")
-    private Integer isShow;
+    @ApiModelProperty(value = "职位名称")
+    private String positionName;
 
     @TableField(fill = FieldFill.INSERT)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 0 - 19
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/ResumeAdvantageDto.java

@@ -1,19 +0,0 @@
-package com.ruoyi.web.work.domain.dto;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotBlank;
-
-/**
- * @author lsw
- * @date 2024-06-04
- */
-@Data
-@Accessors(chain = true)
-public class ResumeAdvantageDto {
-
-    @NotBlank(message = "个人优势不能为空")
-    private String advantage;
-
-}

+ 0 - 49
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/ResumeBaseDto.java

@@ -1,49 +0,0 @@
-package com.ruoyi.web.work.domain.dto;
-
-import com.ruoyi.common.core.validate.Regexp;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Pattern;
-
-/**
- * @author lsw
- * @date 2024-06-04
- */
-@Data
-@Accessors(chain = true)
-public class ResumeBaseDto {
-
-    @NotBlank(message = "姓名不能为空")
-    private String name;
-
-    @NotBlank(message = "头像不能为空")
-    private String avatar;
-
-    @NotBlank(message = "性别不能为空")
-    private String sex;
-
-    private Integer age;
-
-    @NotBlank(message = "学历不能为空")
-    private String qualification;
-
-    private String experience;
-
-    @NotBlank(message = "参与工作时间不能为空")
-    private String joinDate;
-
-    @NotBlank(message = "手机号不能为空")
-    @Pattern(regexp = Regexp.PHONE, message = "手机号不合法")
-    private String phone;
-
-    @NotBlank(message = "出生年月不能为空")
-    private String birthday;
-
-    @NotBlank(message = "邮箱不能为空")
-    @Email(message = "邮箱格式不对")
-    private String email;
-
-}

+ 0 - 19
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/dto/ResumeStateDto.java

@@ -1,19 +0,0 @@
-package com.ruoyi.web.work.domain.dto;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotBlank;
-
-/**
- * @author lsw
- * @date 2024-06-04
- */
-@Data
-@Accessors(chain = true)
-public class ResumeStateDto {
-
-    @NotBlank(message = "求职状态不能为空")
-    private String state;
-
-}

+ 4 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/mapper/ColumnMapper.java

@@ -27,9 +27,12 @@ public interface ColumnMapper extends BaseMapper<Column> {
     List<Map<String, Object>> selectByTitle(Column column);
 
 
-    @Select("SELECT * FROM tb_column WHERE types='region' AND level=#{level}  AND title=#{title} LIMIT 1")
+    @Select("SELECT * FROM tb_column WHERE type='region' AND level=#{level}  AND title=#{title} LIMIT 1")
     Column selectRegion(Column column);
 
+    @Select("SELECT * FROM tb_region")
+    List<Map<String, Object>>region();
+
     @Select("SELECT id,title,pin,pinyin,level,parent_id AS parentId FROM tb_column WHERE type='region' AND state=0 ORDER BY order_num ASC")
     List<Map<String, Object>> selectCityAll();
 }

+ 2 - 21
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IResumeService.java

@@ -3,9 +3,6 @@ package com.ruoyi.web.work.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.web.work.domain.Resume;
-import com.ruoyi.web.work.domain.dto.ResumeAdvantageDto;
-import com.ruoyi.web.work.domain.dto.ResumeBaseDto;
-import com.ruoyi.web.work.domain.dto.ResumeStateDto;
 
 import java.util.List;
 
@@ -19,26 +16,10 @@ public interface IResumeService extends IService<Resume> {
     AjaxResult index();
 
     /**
-     * 编辑个人基本信息
+     * 编辑简历
      *
-     * @param dto
      * @return
      */
-    AjaxResult base(ResumeBaseDto dto);
+    AjaxResult edit(Resume resume);
 
-    /**
-     * 编辑个人优势
-     *
-     * @param dto
-     * @return
-     */
-    AjaxResult advantage(ResumeAdvantageDto dto);
-
-    /**
-     * 编辑求职状态
-     *
-     * @param dto
-     * @return
-     */
-    AjaxResult state(ResumeStateDto dto);
 }

+ 5 - 29
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/ResumeServiceImpl.java

@@ -4,17 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.web.work.api.util.AppUtil;
 import com.ruoyi.web.work.domain.Resume;
-import com.ruoyi.web.work.domain.dto.ResumeAdvantageDto;
-import com.ruoyi.web.work.domain.dto.ResumeBaseDto;
-import com.ruoyi.web.work.domain.dto.ResumeStateDto;
 import com.ruoyi.web.work.mapper.ResumeMapper;
 import com.ruoyi.web.work.service.IResumeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.validation.Validator;
 import java.util.List;
 
 /**
@@ -26,6 +23,9 @@ public class ResumeServiceImpl extends ServiceImpl<ResumeMapper, Resume> impleme
     @Autowired
     private ResumeMapper resumeMapper;
 
+    @Autowired
+    protected Validator validator;
+
     @Override
     public List<Resume> selectList(Resume resume) {
         return resumeMapper.selectList(resume);
@@ -45,9 +45,7 @@ public class ResumeServiceImpl extends ServiceImpl<ResumeMapper, Resume> impleme
     }
 
     @Override
-    public AjaxResult base(ResumeBaseDto dto) {
-        Resume resume = new Resume();
-        BeanUtils.copyProperties(dto, resume);
+    public AjaxResult edit(Resume resume) {
         resume.setId(AppUtil.getUser().getId());
         //计算年龄
         resume.setAge(Integer.parseInt(DateUtils.getYear()) - Integer.parseInt(resume.getBirthday().substring(0, 4)));
@@ -59,26 +57,4 @@ public class ResumeServiceImpl extends ServiceImpl<ResumeMapper, Resume> impleme
         }
         return AjaxResult.success();
     }
-
-    @Override
-    public AjaxResult advantage(ResumeAdvantageDto dto) {
-        Resume resume = new Resume();
-        resume.setId(AppUtil.getUser().getId());
-        resume.setAdvantage(dto.getAdvantage());
-        if (!updateById(resume)) {
-            throw new ServiceException("编辑简历失败");
-        }
-        return AjaxResult.success();
-    }
-
-    @Override
-    public AjaxResult state(ResumeStateDto dto) {
-        Resume resume = new Resume();
-        resume.setId(AppUtil.getUser().getId());
-        resume.setState(dto.getState());
-        if (!updateById(resume)) {
-            throw new ServiceException("编辑简历失败");
-        }
-        return AjaxResult.success();
-    }
 }