lsw 11 månader sedan
förälder
incheckning
cea1bd6ce2

+ 1 - 1
app/App.vue

@@ -30,7 +30,7 @@ button::after {
 /**挂载iconfont字体图标*/
 @font-face {
 	font-family: 'iconfont';
-	src: url('https://at.alicdn.com/t/c/font_4507607_rz00kkgy6um.ttf?t=1718478851186') format('truetype');
+	src: url('https://at.alicdn.com/t/c/font_4507607_rrzirqvsaxe.ttf?t=1718485758759') format('truetype');
 	/* src: url('~@/static/font/iconfont.ttf') format('truetype'); */
 }
 .icon {

+ 4 - 5
app/components/ocr/ocr.vue

@@ -131,11 +131,12 @@ export default {
 .msf {
 	padding: 0px 0px 15px 0px;
 	text-align: center;
+	color: $font-c;
 	.sfz {
 		text-align: center;
 		border-radius: 5px;
 		overflow: hidden;
-		background-color: $bg;
+		background-color: white;
 		height: 170px;
 		image {
 			width: 100%;
@@ -146,16 +147,14 @@ export default {
 			width: 100%;
 			text-align: center;
 			.icon {
-				font-size: 60px;
-				line-height: 130px;
-				color: $main-color;
+				font-size: 80px;
+				line-height: 160px;
 			}
 		}
 	}
 	.text {
 		font-size: 14px;
 		padding-top: 5px;
-		color: $main-color;
 	}
 }
 </style>

+ 12 - 22
app/pages.json

@@ -57,13 +57,6 @@
 			}
 		},
 		{
-			"path": "pages/statement/auth/index",
-			"style": {
-				"navigationBarTitleText": "实名认证",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
 			"path": "pages/statement/company/index",
 			"style": {
 				"navigationBarTitleText": "关联企业",
@@ -78,13 +71,6 @@
 			}
 		},
 		{
-			"path": "pages/user/info",
-			"style": {
-				"navigationBarTitleText": "个人信息",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
 			"path": "pages/serve/index",
 			"style": {
 				"navigationBarTitleText": "更多服务",
@@ -230,17 +216,21 @@
 			}
 		},
 		{
-			"path" : "pages/job/position/favorite",
-			"style" : 
-			{
-				"navigationBarTitleText" : "我的收藏"
+			"path": "pages/job/position/favorite",
+			"style": {
+				"navigationBarTitleText": "我的收藏"
 			}
 		},
 		{
-			"path" : "pages/user/auth",
-			"style" : 
-			{
-				"navigationBarTitleText" : "实名认证"
+			"path": "pages/user/auth",
+			"style": {
+				"navigationBarTitleText": "实名认证"
+			}
+		},
+		{
+			"path": "pages/statement/user/info",
+			"style": {
+				"navigationBarTitleText": "结算信息"
 			}
 		}
 	],

+ 24 - 7
app/pages/job/position/manage/push.vue

@@ -141,18 +141,35 @@ export default {
 			});
 		},
 		save() {
-			/* 			if (!this.verify.check(this.item, this.rule)) {
-				uni.showModal({
-					content: this.verify.error,
-					showCancel: false
-				});
-				return false;
-			} */
 			this.http.request({
 				url: this.item.id ? '/app/position/manage/edit' : '/app/position/manage/add',
 				data: this.item,
 				method: 'POST',
 				success: (res) => {
+					//实名认证跳转
+					if (res.data.code == 7878) {
+						uni.showModal({
+							title: '提示',
+							content: res.data.msg,
+							showCancel: false,
+							success: (res) => {
+								uni.navigateTo({ url: '/pages/user/auth' });
+							}
+						});
+						return;
+					}
+					//企业认证跳转
+					if (res.data.code == 7979) {
+						uni.showModal({
+							title: '提示',
+							content: res.data.msg,
+							showCancel: false,
+							success: (res) => {
+								uni.navigateTo({ url: '/pages/user/enterprise/index' });
+							}
+						});
+						return;
+					}
 					uni.showToast({ title: '操作成功' });
 					setTimeout(() => {
 						uni.$emit('position');

+ 2 - 2
app/pages/serve/index.vue

@@ -9,7 +9,7 @@
 			<view class="cd">
 				<view class="out">
 					<view class="int">
-						<view class="icon" style="background-color: #f44336">&#xe6be;</view>
+						<view class="icon" style="background-color: #f44336">&#xe648;</view>
 						<view class="title">失业登记</view>
 					</view>
 				</view>
@@ -38,7 +38,7 @@
 					</view>
 				</view>
 			</view>
-			<view class="cd" @click="go('/pages/index/index')">
+			<view class="cd" @click="go('/pages/statement/index/index')">
 				<view class="out">
 					<view class="int">
 						<view class="icon" style="background-color: #03a9f4">&#xe725;</view>

+ 0 - 149
app/pages/statement/auth/index.vue

@@ -1,149 +0,0 @@
-<template>
-	<view>
-		<view class="tips" v-if="item.isAuthentication === 1">
-			<text class="icon">&#xe600;</text>
-			<text>实名认证成功</text>
-		</view>
-		<view class="tips" v-else>
-			<text class="icon">&#xe634;</text>
-			<text>为保障资金安全,用户需进行实名认证,请务必认真填写</text>
-		</view>
-		<view class="main">
-			<view v-if="step === 1">
-				<u-divider text="本人二代身份证"></u-divider>
-				<view class="r">
-					<view class="r50">
-						<card v-model="item.p1" text="点击拍摄/上传人像面" icon="&#xe690;" :read="item.isAuthentication === 1" side="face" @success="success"></card>
-					</view>
-					<view class="r50">
-						<card v-model="item.p2" text="点击拍摄/上传国徽面" icon="&#xe61e;" :read="item.isAuthentication === 1" side="back" @success="success"></card>
-					</view>
-				</view>
-			</view>
-			<view v-else>
-				<view class="form">
-					<view class="form_group">
-						<view class="lable re">姓名</view>
-						<input type="text" placeholder="请输入姓名" v-model="item.name" :disabled="true" />
-					</view>
-					<view class="form_group">
-						<view class="lable re">身份证</view>
-						<input type="text" placeholder="请输入身份证" v-model="item.idCard" :disabled="true" />
-					</view>
-				</view>
-				<view class="form" style="margin-top: 15px">
-					<view class="form_group">
-						<view class="lable re">手机号</view>
-						<input type="text" placeholder="请输入手机号" v-model="item.phone" />
-					</view>
-					<view class="form_group">
-						<view class="lable re">支付宝</view>
-						<input type="text" placeholder="请输入支付宝账号" v-model="item.alipay" />
-					</view>
-				</view>
-			</view>
-			<view class="form" v-if="item.isAuthentication === 1" style="margin-top: 10px">
-				<view class="form_group">
-					<view class="lable">姓名</view>
-					<input type="text" v-model="item.name" :disabled="true" />
-				</view>
-				<view class="form_group">
-					<view class="lable">身份证</view>
-					<input type="text" v-model="item.idCard" :disabled="true" />
-				</view>
-				<view class="form_group">
-					<view class="lable">有效期</view>
-					<input type="text" v-model="item.endDate" :disabled="true" />
-				</view>
-			</view>
-			<button class="btn" @click="next()" v-if="step === 1 && item.isAuthentication != 1">下一步</button>
-			<button class="btn" @click="save()" v-if="step === 2 && item.isAuthentication != 1">确定</button>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			step: 1,
-			item: {}
-		};
-	},
-	onLoad() {
-		this.getData();
-	},
-	methods: {
-		getData() {
-			this.http.request({
-				url: '/app/user/info',
-				data: this.item,
-				success: (res) => {
-					this.item = res.data.data;
-					if (this.item.isAuthentication === 1) {
-						uni.setNavigationBarTitle({ title: '我的认证' });
-					}
-				}
-			});
-		},
-		success(res) {
-			if (res.side == 'face') {
-				this.item.name = res.data.name;
-				this.item.idCard = res.data.num;
-				this.item.sex = res.data.sex;
-				this.item.address = res.data.address;
-				this.item.nationality = res.data.nationality;
-				this.item.birth = res.data.birth;
-			} else {
-				this.item.endDate = res.data.end_date;
-			}
-		},
-		next() {
-			if (!this.item.name) {
-				uni.showModal({ content: '请上传身份证人像面', showCancel: false });
-				return;
-			}
-			if (!this.item.endDate) {
-				uni.showModal({ content: '请上传身份证国徽面', showCancel: false });
-				return;
-			}
-			this.step = 2;
-		},
-		save() {
-			let rule = [
-				{ name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
-				{ name: 'idCard', checkType: 'notnull', errorMsg: '请输入身份证' },
-				{ name: 'p1', checkType: 'notnull', errorMsg: '请上传身份证人面像' },
-				{ name: 'p2', checkType: 'notnull', errorMsg: '请上传身份证人徽面' },
-				{ name: 'phone', checkType: 'phone', errorMsg: '请请输入手机号' },
-				{ name: 'alipay', 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/user/auth',
-				data: this.item,
-				method: 'POST',
-				success: (res) => {
-					uni.showModal({
-						title: '提示',
-						content: '实名认证成功。',
-						showCancel: false,
-						success: (res) => {
-							uni.navigateBack();
-						}
-					});
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.btn {
-	margin-top: 30px;
-}
-</style>

+ 1 - 1
app/pages/statement/company/index.vue

@@ -63,7 +63,7 @@ export default {
 		},
 		selectClick(e) {
 			if (e.name == '搜索企业') {
-				uni.navigateTo({ url: '/pages/company/search' });
+				uni.navigateTo({ url: '/pages/statement/company/search' });
 			} else {
 				uni.scanCode({
 					success: (res) => {

+ 1 - 2
app/pages/statement/company/search.vue

@@ -1,6 +1,6 @@
 <template>
 	<view>
-		<view class="search"><u-search placeholder="企业名称" v-model="companyName" :showAction="false" @search="getData()" @clear="clear()"></u-search></view>
+		<view class="search"><u-search placeholder="企业名称" bgColor="white" v-model="companyName" :showAction="false" @search="getData()" @clear="clear()"></u-search></view>
 		<view class="list">
 			<view class="item" v-for="(item, index) in list" :key="index" @click="detail(item)">
 				<text>{{ item.companyName }}</text>
@@ -92,7 +92,6 @@ export default {
 <style lang="scss">
 .search {
 	padding: 12px 20px 12px 20px;
-	background-color: white;
 }
 .list {
 	.item {

+ 181 - 166
app/pages/statement/index/index.vue

@@ -5,7 +5,7 @@
 			<view class="item" @click="go('auth')">
 				<view class="out">
 					<view class="int">
-						<view class="icon tb" style="color: rgb(72, 154, 253)">&#xe600;</view>
+						<view class="icon tb" style="color: rgb(72, 154, 253)">&#xe64f;</view>
 						<view class="con">
 							<view class="bt">实名认证</view>
 							<view class="zt">{{ !user.isAuthentication || user.isAuthentication == 0 ? '尚未提交资料' : '已认证' }}</view>
@@ -61,193 +61,208 @@
 					</view>
 				</view>
 			</view>
+			<!--开始接包-->
+			<view class="item" @click="go('info')">
+				<view class="out">
+					<view class="int">
+						<view class="icon tb" style="color: #ff5722">&#xe60d;</view>
+						<view class="con">
+							<view class="bt">结算信息</view>
+							<view class="zt">{{ !user.phone ? '请完善结算信息' : '已完善' }}</view>
+						</view>
+					</view>
+				</view>
+			</view>
 		</view>
 		<u-action-sheet round="20" :actions="actions" @select="selectClick" cancelText="取消" :show="show" @close="show = false"></u-action-sheet>
 		<signature ref="sig" @sign="sign"></signature>
 	</view>
 </template>
 <script>
-	export default {
-		data() {
-			return {
-				ip: this.http.ip,
-				user: {},
-				bannerList: [],
-				noticeList: [],
-				contract: {},
-				show: false,
-				actions: [{ name: '查看合同' }, { name: '去签字' }]
-			};
+export default {
+	data() {
+		return {
+			ip: this.http.ip,
+			user: {},
+			contract: {},
+			show: false,
+			actions: [{ name: '查看合同' }, { name: '去签字' }]
+		};
+	},
+	onShow() {
+		if (this.hasLogin()) {
+			this.getUserInfo();
+		}
+	},
+	methods: {
+		getUserInfo() {
+			this.http.request({
+				url: '/app/user/info',
+				success: (res) => {
+					this.user = res.data.data;
+				}
+			});
 		},
-		onShow() {
-			if (this.hasLogin()) {
-				this.getUserInfo();
-			}
+		getData() {
+			this.http.request({
+				url: '/app/home/index',
+				success: (res) => {
+					this.contract = res.data.data.contract;
+					this.bannerList = res.data.data.bannerList;
+					res.data.data.noticeList.forEach((item) => {
+						this.noticeList.push(item.title);
+					});
+				}
+			});
 		},
-		methods: {
-			getUserInfo() {
-				this.http.request({
-					url: '/app/user/info',
-					success: (res) => {
-						this.user = res.data.data;
-					}
-				});
-			},
-			getData() {
-				this.http.request({
-					url: '/app/home/index',
-					success: (res) => {
-						this.contract = res.data.data.contract;
-						this.bannerList = res.data.data.bannerList;
-						res.data.data.noticeList.forEach((item) => {
-							this.noticeList.push(item.title);
-						});
-					}
-				});
-			},
-			go(url) {
-				if (this.hasLogin()) {
-					if (url == 'auth') {
-						uni.navigateTo({ url: '/pages/auth/index' });
-					}
-					if (url == 'company' && this.user.isAuthentication === 1) {
-						uni.navigateTo({ url: '/pages/company/index' });
-					}
-					if (url == 'packages' && this.user.isCompany > 0 && this.user.isContract == 1) {
-						uni.navigateTo({ url: '/pages/packages/index' });
-					}
-					if (url == 'contract' && this.user.isContract == 1) {
-						this.look();
-					}
-					if (url == 'contract' && this.user.isContract == 0) {
-						this.show = true;
-					}
-				} else {
-					uni.navigateTo({ url: '/pages/user/login' });
+		go(url) {
+			if (this.hasLogin()) {
+				if (url == 'auth') {
+					uni.navigateTo({ url: '/pages/user/auth' });
 				}
-			},
-			selectClick(e) {
-				if (e.name == '查看合同') {
+				if (url == 'company' && this.user.isAuthentication === 1) {
+					uni.navigateTo({ url: '/pages/statement/company/index' });
+				}
+				if (url == 'packages' && this.user.isCompany > 0 && this.user.isContract == 1) {
+					uni.navigateTo({ url: '/pages/statement/packages/index' });
+				}
+				if (url == 'contract' && this.user.isContract == 1) {
 					this.look();
-				} else {
-					this.$refs.sig.getSyncSignature();
 				}
-			},
-			//查看合同
-			look() {
-				uni.showLoading({ title: '正在打开合同...', mask: true });
-				uni.downloadFile({
-					url: this.user.isContract == 0 ? this.ip + this.contract.url : this.ip + '/app/contract/look',
-					header: { Authorization: this.getUser().token },
-					success: (res) => {
-						uni.openDocument({
-							filePath: res.tempFilePath,
-							showMenu: true,
-							success: (res) => {
-								uni.hideLoading();
-							},
-							fail: (res) => {
-								uni.hideLoading();
-								uni.showModal({ title: '提示', content: '打开合同失败', showCancel: false });
-							}
-						});
-					},
-					fail: (res) => {
-						uni.hideLoading();
-					}
-				});
-			},
-			//电子签名
-			sign(val) {
-				this.http.request({
-					url: '/app/contract/add',
-					data: { contractId: this.contract.id, url: val },
-					method: 'POST',
-					success: (res) => {
-						uni.showModal({
-							title: '提示',
-							content: '签约成功',
-							showCancel: false,
-							success: (res) => {
-								this.getUserInfo();
-							}
-						});
-					}
-				});
+				if (url == 'contract' && this.user.isContract == 0) {
+					this.show = true;
+				}
+				if (url == 'info') {
+					uni.navigateTo({ url: '/pages/statement/user/info' });
+				}
+			} else {
+				uni.navigateTo({ url: '/pages/user/login' });
 			}
+		},
+		selectClick(e) {
+			if (e.name == '查看合同') {
+				this.look();
+			} else {
+				this.$refs.sig.getSyncSignature();
+			}
+		},
+		//查看合同
+		look() {
+			uni.showLoading({ title: '正在打开合同...', mask: true });
+			uni.downloadFile({
+				url: this.user.isContract == 0 ? this.ip + this.contract.url : this.ip + '/app/contract/look',
+				header: { Authorization: this.getUser().token },
+				success: (res) => {
+					uni.openDocument({
+						filePath: res.tempFilePath,
+						showMenu: true,
+						success: (res) => {
+							uni.hideLoading();
+						},
+						fail: (res) => {
+							uni.hideLoading();
+							uni.showModal({ title: '提示', content: '打开合同失败', showCancel: false });
+						}
+					});
+				},
+				fail: (res) => {
+					uni.hideLoading();
+				}
+			});
+		},
+		//电子签名
+		sign(val) {
+			this.http.request({
+				url: '/app/contract/add',
+				data: { contractId: this.contract.id, url: val },
+				method: 'POST',
+				success: (res) => {
+					uni.showModal({
+						title: '提示',
+						content: '签约成功',
+						showCancel: false,
+						success: (res) => {
+							this.getUserInfo();
+						}
+					});
+				}
+			});
 		}
-	};
+	}
+};
 </script>
 
 <style lang="scss">
-	.main {
-		padding: 5px 15px 15px 15px;
+.main {
+	padding: 5px 15px 15px 15px;
+}
+.banner {
+}
+.notice {
+	margin-top: 10px;
+	margin-bottom: -10px;
+}
+.flow {
+	padding-top: 20px;
+	.title {
+		font-size: 15px;
+		margin-bottom: 10px;
 	}
-	.banner {}
-	.notice {
-		margin-top: 10px;
-		margin-bottom: -10px;
-	}
-	.flow {
-		padding-top: 20px;
-		.title {
-			font-size: 15px;
-			margin-bottom: 10px;
-		}
-		.item {
-			border-radius: 10px;
-			overflow: hidden;
-			float: left;
-			width: 50%;
-			.out {
-				padding: 5px;
-				.int {
-					padding: 15px;
-					background-color: white;
-					overflow: hidden;
-					border-radius: 9px;
-					text-align: center;
-					.tb {
-						margin: 0 auto;
-						width: 40px;
-						height: 40px;
-						padding: 10px;
-						line-height: 39px;
+	.item {
+		border-radius: 10px;
+		overflow: hidden;
+		float: left;
+		width: 50%;
+		.out {
+			padding: 5px;
+			.int {
+				padding: 15px;
+				background-color: white;
+				overflow: hidden;
+				border-radius: 9px;
+				text-align: center;
+				height: 150px;
+				.tb {
+					margin: 0 auto;
+					width: 40px;
+					height: 40px;
+					padding: 10px;
+					line-height: 39px;
+					color: $main-color;
+					box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+					border-radius: 50%;
+					font-size: 27px;
+				}
+				.con {
+					padding-top: 8px;
+					.bt {
+						font-size: 18px;
+					}
+					.zt {
+						font-size: 13px;
+						padding-top: 5px;
+						color: #909090;
+					}
+				}
+				.state {
+					padding-top: 11px;
+					.zt {
+						font-size: 13px;
 						color: $main-color;
-						box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-						border-radius: 50%;
-						font-size: 27px;
 					}
-					.con {
-						padding-top: 8px;
-						.bt {
-							font-size: 18px;
-						}
-						.zt {
-							font-size: 13px;
-							padding-top: 5px;
-							color: #909090;
-						}
+					.icon {
+						color: #909090;
 					}
-					.state {
-						padding-top: 11px;
-						.zt {
-							font-size: 13px;
-							color: $main-color;
-						}
-						.icon {
-							color: #909090;
-						}
-						.go {
-							padding: 5px 12px;
-							font-size: 14px;
-							background-color: #5a7afc;
-							color: white;
-							border-radius: 20px;
-						}
+					.go {
+						padding: 5px 12px;
+						font-size: 14px;
+						background-color: #5a7afc;
+						color: white;
+						border-radius: 20px;
 					}
 				}
 			}
 		}
 	}
-</style>
+}
+</style>

+ 19 - 8
app/pages/statement/packages/index.vue

@@ -83,14 +83,25 @@ export default {
 							data: { projectId: item.id, companyId: item.companyId },
 							method: 'POST',
 							success: (res) => {
-								uni.showModal({
-									title: '提示',
-									content: '接包成功',
-									showCancel: false,
-									success: (res) => {
-										this.refresh();
-									}
-								});
+								if (res.data.code == 7777) {
+									uni.showModal({
+										title: '提示',
+										content: res.data.msg,
+										showCancel: false,
+										success: (res) => {
+											uni.navigateTo({ url: '/pages/statement/user/info' });
+										}
+									});
+								} else {
+									uni.showModal({
+										title: '提示',
+										content: '接包成功',
+										showCancel: false,
+										success: (res) => {
+											this.refresh();
+										}
+									});
+								}
 							}
 						});
 					}

+ 20 - 18
app/pages/user/info.vue → app/pages/statement/user/info.vue

@@ -1,25 +1,25 @@
 <template>
 	<view>
 		<view class="main">
-			<view class="form">
-				<view class="form_group">
-					<view class="lable">手机号</view>
-					<input type="text" v-model="item.phone" placeholder="请输入手机号" />
-				</view>
-				<view class="form_group">
-					<view class="lable">支付宝</view>
-					<input type="text" v-model="item.alipay" placeholder="请输入支付宝账号" />
-				</view>
+			<view class="message _error" v-if="!item.phone">
+				<text class="icon">&#xec72;</text>
+				<text>需要完善结算信息才能接包。</text>
 			</view>
-			<view class="form" style="margin-top: 10px;">
-				<view class="form_group">
-					<view class="lable">开户行</view>
-					<input type="text" v-model="item.bankName" placeholder="请输入开户行" />
-				</view>
-				<view class="form_group">
-					<view class="lable">银行卡号</view>
-					<input type="text" v-model="item.bankAccount" placeholder="请输入银行卡号" />
-				</view>
+			<view class="form_group">
+				<view class="lable">手机号</view>
+				<input type="text" v-model="item.phone" placeholder="请输入手机号" />
+			</view>
+			<view class="form_group">
+				<view class="lable">支付宝</view>
+				<input type="text" v-model="item.alipay" placeholder="请输入支付宝账号" />
+			</view>
+			<view class="form_group">
+				<view class="lable">开户行</view>
+				<input type="text" v-model="item.bankName" placeholder="请输入开户行" />
+			</view>
+			<view class="form_group">
+				<view class="lable">银行卡号</view>
+				<input type="text" v-model="item.bankAccount" placeholder="请输入银行卡号" />
 			</view>
 			<button class="btn" @click="save()">确定</button>
 		</view>
@@ -49,6 +49,8 @@ export default {
 		save() {
 			let rule = [
 				{ name: 'phone', checkType: 'phone', errorMsg: '请请输入手机号' },
+				{ name: 'alipay', checkType: 'notnull', errorMsg: '请输入支付宝账号' },
+				{ name: 'phone', checkType: 'phone', errorMsg: '请请输入手机号' },
 				{ name: 'alipay', checkType: 'notnull', errorMsg: '请输入支付宝账号' }
 			];
 			if (!this.verify.check(this.item, rule)) {

+ 3 - 5
app/pages/user/auth.vue

@@ -9,10 +9,10 @@
 				<u-divider text="本人二代身份证"></u-divider>
 				<view class="r">
 					<view class="r50">
-						<ocr v-model="item.p1" text="点击拍摄/上传人像面" icon="&#xe690;" :read="item.isAuthentication === 1" side="face" @success="success"></ocr>
+						<ocr v-model="item.p1" text="点击上传人像面" icon="&#xe690;" :read="item.isAuthentication === 1" side="face" @success="success"></ocr>
 					</view>
 					<view class="r50">
-						<ocr v-model="item.p2" text="点击拍摄/上传国徽面" icon="&#xe61e;" :read="item.isAuthentication === 1" side="back" @success="success"></ocr>
+						<ocr v-model="item.p2" text="点击上传国徽面" icon="&#xe61e;" :read="item.isAuthentication === 1" side="back" @success="success"></ocr>
 					</view>
 				</view>
 			</view>
@@ -102,9 +102,7 @@ export default {
 				{ name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
 				{ name: 'idCard', checkType: 'notnull', errorMsg: '请输入身份证' },
 				{ name: 'p1', checkType: 'notnull', errorMsg: '请上传身份证人面像' },
-				{ name: 'p2', checkType: 'notnull', errorMsg: '请上传身份证人徽面' },
-				{ name: 'phone', checkType: 'phone', errorMsg: '请请输入手机号' },
-				{ name: 'alipay', checkType: 'notnull', errorMsg: '请输入支付宝账号' }
+				{ name: 'p2', checkType: 'notnull', errorMsg: '请上传身份证人徽面' }
 			];
 			if (!this.verify.check(this.item, rule)) {
 				uni.showModal({ content: this.verify.error, showCancel: false });

+ 42 - 24
app/pages/user/index.vue

@@ -4,7 +4,7 @@
 			<image :src="user.avatarUrl ? user.avatarUrl : '../../static/favicon.png'" class="head"></image>
 			<view class="con" v-if="user.id">
 				<view class="nickName">{{ user.type == 0 ? '个人用户' : '企业用户' }}</view>
-				<view class="welcome" v-if="user.type == 0">
+				<view class="welcome">
 					<text class="icon" v-if="user.isAuthentication == 0">&#xec72;</text>
 					<text class="icon" v-else>&#xe607;</text>
 					<text>{{ user.isAuthentication == 0 ? '未实名,点击去认证' : '已实名认证' }}</text>
@@ -136,44 +136,62 @@
 				</view>
 			</view>
 		</view>
-		<view class="mtt">求职服务</view>
-		<view class="menu">
-			<view class="cd" @click="go('/pages/user/resume/index')">
-				<view class="out">
-					<view class="int">
-						<view class="icon" style="background-color: #3f51b5">&#xe606;</view>
-						<view class="title">我的简历</view>
+		<view v-else>
+			<view class="mtt">求职服务</view>
+			<view class="menu">
+				<view class="cd" @click="go('/pages/user/resume/index')">
+					<view class="out">
+						<view class="int">
+							<view class="icon" style="background-color: #3f51b5">&#xe606;</view>
+							<view class="title">我的简历</view>
+						</view>
 					</view>
 				</view>
-			</view>
-			<view class="cd" @click="go('/pages/user/resume/deliver/invite')">
-				<view class="out">
-					<view class="int">
-						<view class="icon" style="background-color: #4caf50">&#xe605;</view>
-						<view class="title">面试邀约</view>
-						<view class="bage" v-if="user.accept > 0">{{ user.accept > 99 ? '99+' : user.accept }}</view>
+				<view class="cd" @click="go('/pages/user/resume/deliver/invite')">
+					<view class="out">
+						<view class="int">
+							<view class="icon" style="background-color: #4caf50">&#xe605;</view>
+							<view class="title">面试邀约</view>
+							<view class="bage" v-if="user.accept > 0">{{ user.accept > 99 ? '99+' : user.accept }}</view>
+						</view>
+					</view>
+				</view>
+				<view class="cd" @click="go('/pages/user/resume/deliver/list')">
+					<view class="out">
+						<view class="int">
+							<view class="icon" style="background-color: #607d8b">&#xe652;</view>
+							<view class="title">投递历史</view>
+						</view>
+					</view>
+				</view>
+				<view class="cd" @click="go('/pages/job/position/favorite')">
+					<view class="out">
+						<view class="int">
+							<view class="icon" style="background-color: #ff9800">&#xe626;</view>
+							<view class="title">我的收藏</view>
+						</view>
 					</view>
 				</view>
 			</view>
-			<view class="cd" @click="go('/pages/user/resume/deliver/list')">
+		</view>
+		<view class="mtt">更多功能</view>
+		<view class="menu">
+			<view class="cd" @click="go('/pages/statement/index/index')">
 				<view class="out">
 					<view class="int">
-						<view class="icon" style="background-color: #607d8b">&#xe6c8;</view>
-						<view class="title">投递历史</view>
+						<view class="icon" style="background-color: #03a9f4">&#xe63c;</view>
+						<view class="title">结算广场</view>
 					</view>
 				</view>
 			</view>
-			<view class="cd" @click="go('/pages/job/position/favorite')">
+			<view class="cd" @click="go('/pages/statement/index/index')">
 				<view class="out">
 					<view class="int">
-						<view class="icon" style="background-color: #ff9800">&#xe626;</view>
-						<view class="title">我的收藏</view>
+						<view class="icon" style="background-color: #03a9f4">&#xe6b0;</view>
+						<view class="title">通知公告</view>
 					</view>
 				</view>
 			</view>
-		</view>
-		<view class="mtt">更多功能</view>
-		<view class="menu">
 			<view class="cd">
 				<view class="out">
 					<button class="int share" open-type="feedback" hover-class="none">

+ 1 - 1
app/pages/user/login.vue

@@ -3,7 +3,7 @@
 		<view class="p">
 			<image src="../../static/favicon.png" class="pic" mode="widthFix"></image>
 		</view>
-		<view class="title">承揽时代:</view>
+		<view class="title">爱就业咨询服务平台:</view>
 		<view class="info">您的公开信息(昵称,头像等)</view>
 		<button class="btn" @click="getUserProfile()" :disabled="disabled">微信一键登录</button>
 	</view>

+ 7 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/EnterpriseController.java

@@ -16,6 +16,7 @@ import java.util.List;
 
 /**
  * 企业信息
+ *
  * @author lsw
  * @date 2024-06-05
  */
@@ -27,7 +28,7 @@ public class EnterpriseController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('work:enterprise:list')")
     @GetMapping("/list")
-    public TableDataInfo list(Enterprise enterprise){
+    public TableDataInfo list(Enterprise enterprise) {
         startPage();
         List<Enterprise> list = enterpriseService.selectList(enterprise);
         return getDataTable(list);
@@ -35,28 +36,28 @@ public class EnterpriseController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('work:enterprise:query')")
     @GetMapping(value = "/detail/{id}")
-    public AjaxResult detail(@PathVariable("id") Long id){
+    public AjaxResult detail(@PathVariable("id") Long id) {
         return AjaxResult.success(enterpriseService.getById(id));
     }
 
     @PreAuthorize("@ss.hasPermi('work:enterprise:add')")
     @Log(title = "企业信息", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody Enterprise enterprise){
+    public AjaxResult add(@RequestBody Enterprise enterprise) {
         return toAjax(enterpriseService.save(enterprise));
     }
 
     @PreAuthorize("@ss.hasPermi('work:enterprise:edit')")
     @Log(title = "企业信息", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody Enterprise enterprise){
-        return toAjax(enterpriseService.updateById(enterprise));
+    public AjaxResult edit(@RequestBody Enterprise enterprise) {
+        return enterpriseService.audit(enterprise);
     }
 
     @PreAuthorize("@ss.hasPermi('work:enterprise:remove')")
     @Log(title = "企业信息", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids){
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(enterpriseService.removeByIds(Arrays.asList(ids)));
     }
 }

+ 4 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/User.java

@@ -63,7 +63,7 @@ public class User{
     @ApiModelProperty(value = "身份证人徽面")
     private String p2;
 
-    @ApiModelProperty(value = "是否认证")
+    @ApiModelProperty(value = "是否实名认证")
     private Integer isAuthentication;
 
     @ApiModelProperty(value = "是否关联企业(关联企业数)")
@@ -72,6 +72,9 @@ public class User{
     @ApiModelProperty(value = "是否签署合同:0=未签,1=已签")
     private Integer isContract;
 
+    @ApiModelProperty(value = "是否企业认证:0=未认证,1=已认证")
+    private Integer isEnterprise;
+
     @ApiModelProperty(value = "用户类型")
     private Integer type;
 

+ 0 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IColumnService.java

@@ -15,8 +15,6 @@ public interface IColumnService extends IService<Column> {
 
     List<Map<String, Object>> treeJson(Column column);
 
-    List<Column> getList(String title);
-
     List<Map<String, Object>> selectByTitle(Column column);
 
     Column selectRegion(Column column);

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/IEnterpriseService.java

@@ -25,5 +25,7 @@ public interface IEnterpriseService extends IService<Enterprise>{
 
     AjaxResult edit(Enterprise enterprise);
 
+    AjaxResult audit(Enterprise enterprise);
+
     AjaxResult detail(Long id);
 }

+ 0 - 5
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/ColumnServiceImpl.java

@@ -30,11 +30,6 @@ public class ColumnServiceImpl extends ServiceImpl<ColumnMapper, Column> impleme
     }
 
     @Override
-    public List<Column> getList(String title) {
-        return columnMapper.getList(title);
-    }
-
-    @Override
     public List<Map<String, Object>> selectByTitle(Column column) {
         return columnMapper.selectByTitle(column);
     }

+ 21 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/EnterpriseServiceImpl.java

@@ -6,12 +6,15 @@ import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.web.work.api.util.AppUtil;
 import com.ruoyi.web.work.domain.Column;
 import com.ruoyi.web.work.domain.Enterprise;
+import com.ruoyi.web.work.domain.User;
 import com.ruoyi.web.work.domain.vo.EnterpriseListVo;
 import com.ruoyi.web.work.mapper.EnterpriseMapper;
 import com.ruoyi.web.work.service.IColumnService;
 import com.ruoyi.web.work.service.IEnterpriseService;
+import com.ruoyi.web.work.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -27,6 +30,9 @@ public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper, Enterpr
     @Autowired
     private IColumnService columnService;
 
+    @Autowired
+    private IUserService userService;
+
     @Override
     public List<Enterprise> selectList(Enterprise enterprise) {
         return enterpriseMapper.selectList(enterprise);
@@ -68,6 +74,21 @@ public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper, Enterpr
         return AjaxResult.success();
     }
 
+    @Transactional
+    @Override
+    public AjaxResult audit(Enterprise enterprise) {
+        if (!updateById(enterprise)) {
+            throw new ServiceException("审核企业信息失败");
+        }
+        User user = new User();
+        user.setId(enterprise.getId());
+        user.setIsEnterprise(enterprise.getState() == 1 ? 1 : 0);
+        if (!userService.updateById(user)) {
+            throw new ServiceException("更新用户信息失败");
+        }
+        return AjaxResult.success();
+    }
+
     @Override
     public AjaxResult detail(Long id) {
         Enterprise enterprise = getById(id);

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/PackagesServiceImpl.java

@@ -54,7 +54,7 @@ public class PackagesServiceImpl extends ServiceImpl<PackagesMapper, Packages> i
             return AjaxResult.error("请先签约");
         }
         if (StringUtils.isEmpty(user.getBankName()) || StringUtils.isEmpty(user.getBankAccount())) {
-            return AjaxResult.error("请先在我的->个人信息那里完善收款信息");
+            return AjaxResult.error(7777,"请先完善结算信息");
         }
         Project project = projectService.getById(packages.getProjectId());
         if (project == null || project.getState() == 1) {

+ 14 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/PositionServiceImpl.java

@@ -9,6 +9,7 @@ import com.ruoyi.web.work.api.util.AppUtil;
 import com.ruoyi.web.work.domain.Column;
 import com.ruoyi.web.work.domain.Enterprise;
 import com.ruoyi.web.work.domain.Position;
+import com.ruoyi.web.work.domain.User;
 import com.ruoyi.web.work.domain.dto.PositionDto;
 import com.ruoyi.web.work.domain.dto.PositionQueryDto;
 import com.ruoyi.web.work.domain.dto.PositionStateDto;
@@ -17,6 +18,7 @@ import com.ruoyi.web.work.mapper.PositionMapper;
 import com.ruoyi.web.work.service.IColumnService;
 import com.ruoyi.web.work.service.IEnterpriseService;
 import com.ruoyi.web.work.service.IPositionService;
+import com.ruoyi.web.work.service.IUserService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,6 +40,9 @@ public class PositionServiceImpl extends ServiceImpl<PositionMapper, Position> i
     @Autowired
     private IEnterpriseService enterpriseService;
 
+    @Autowired
+    IUserService userService;
+
     @Override
     public List<Position> selectList(Position position) {
         return positionMapper.selectList(position);
@@ -85,11 +90,17 @@ public class PositionServiceImpl extends ServiceImpl<PositionMapper, Position> i
 
     @Override
     public AjaxResult manageAdd(PositionDto dto) {
+        if (AppUtil.getUser().getIsAuthentication() != 1) {
+            return AjaxResult.error(7878, "发布全职或兼职需要实名认证");
+        }
         //如果发布全职需要审核企业信息通过才允许发布
         if (dto.getType() == 0) {
-            Enterprise enterprise = enterpriseService.getById(AppUtil.getUser().getId());
-            if (enterprise == null || enterprise.getState() != 1) {
-                return AjaxResult.error("未认证企业信息或审核不通过");
+            User user=userService.getById(AppUtil.getUser().getId());
+            if (user.getType() != 1) {
+                return AjaxResult.error("只有企业用户才能发布全职");
+            }
+            if (user.getIsEnterprise() != 1) {
+                return AjaxResult.error(7979, "请先完成企业认证");
             }
         }
         Position position = new Position();

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/UserServiceImpl.java

@@ -57,6 +57,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             user.setIsContract(0);
             user.setIsAuthentication(0);
             user.setState(0);
+            user.setIsEnterprise(0);
             save(user);
             return AjaxResult.success(new AjaxResult().put("token", tokenService.createToken(user)));
         }
@@ -102,6 +103,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         if (!updateById(user)) {
             throw new ServiceException("选择用户类型失败");
         }
+        tokenService.setLoginUser(getById(AppUtil.getUser().getId()).setToken(AppUtil.getUser().getToken()));
         return AjaxResult.success();
     }