338 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			338 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						||
	<view class="content">
 | 
						||
		<view class="container">
 | 
						||
 | 
						||
			<view class="form-sub">
 | 
						||
				<u-form :model="model1" ref="uForm" label-width="90px" class="demo-ruleForm" size="mini">
 | 
						||
					<view style="position: relative;">
 | 
						||
						<view style="position: absolute;left: -10px;color: #3d4b70;top: -3px;">*</view>
 | 
						||
					</view>
 | 
						||
 | 
						||
					<view style="font-size: 15px; font-weight: bold;color: #3d4b70;margin-bottom: 10px;">基本信息填写</view>
 | 
						||
					<u-form-item label="姓名" prop="userInfo.Name" borderBottom ref="item1">
 | 
						||
						<u--input v-model="model1.userInfo.Name" border="none" customStyle="margin:0px;display:flex;padding:3px 9px"></u--input>
 | 
						||
					</u-form-item>
 | 
						||
					<u-form-item label="性别" prop="userInfo.Sex" borderBottom @click="showSex = true;" ref="item1">
 | 
						||
						<u--input v-model="model1.userInfo.Sex" disabled disabledColor="#ffffff" placeholder="请选择性别" border="none" suffixIcon="arrow-right" fontSize="14px"
 | 
						||
							customStyle="margin:0px;display:flex;padding:3px 9px" suffixIconStyle="font-size:12px"></u--input>
 | 
						||
						<!-- <u-icon slot="right" name="arrow-right"></u-icon> -->
 | 
						||
					</u-form-item>
 | 
						||
					<u-form-item label="手机号码" prop="userInfo.Phone" borderBottom ref="item1">
 | 
						||
						<u--input v-model="model1.userInfo.Phone" border="none" customStyle="margin:0px;display:flex;padding:3px 9px"></u--input>
 | 
						||
					</u-form-item>
 | 
						||
					<u-form-item label="身份证号码" prop="userInfo.ID_CARD" borderBottom ref="item1">
 | 
						||
						<u--input v-model="model1.userInfo.ID_CARD" border="none" customStyle="margin:0px;display:flex;padding:3px 9px"></u--input>
 | 
						||
					</u-form-item>
 | 
						||
					<u-form-item label="入职时间" prop="userInfo.InTime" borderBottom ref="item1" @click="showCheckDate()">
 | 
						||
						<u--input disabledColor="#fff" v-model="model1.userInfo.InTime" disabled placeholder="请选择入职时间" suffixIcon="arrow-right" suffixIconStyle="font-size:12px" fontSize="14px"
 | 
						||
							customStyle="margin:0px;display:flex;padding:3px 9px" border="none">
 | 
						||
						</u--input>
 | 
						||
 | 
						||
						<!-- <u--input v-model="model1.userInfo.InTime" border="none"></u--input> -->
 | 
						||
					</u-form-item>
 | 
						||
					<u-form-item label="工龄" prop="userInfo.WORKINGYEAR" borderBottom ref="item1" @click="pickerShow = true">
 | 
						||
						<u--input disabledColor="#fff" disabled v-model="model1.userInfo.WORKINGYEAR" border="none" suffixIcon="arrow-right" suffixIconStyle="font-size:12px" fontSize="14px"
 | 
						||
							customStyle="margin:0px;display:flex;padding:3px 9px"></u--input>
 | 
						||
					</u-form-item>
 | 
						||
				</u-form>
 | 
						||
				<view style="display: flex;flex-direction: row;" class="bottom-button">
 | 
						||
					<u-button type="primary" @click="reset" color="#3d4b70" :plain="true" style="margin-right: 5px;">重置</u-button>
 | 
						||
					<u-button type="primary" @click="submit" color="#3d4b70" style="margin-left: 5px;" v-if="loading == false">提交</u-button>
 | 
						||
					<u-button type="primary" loading loadingText="加载中" color="#3d4b70" style="margin-left: 5px;" v-if="loading == true">提交</u-button>
 | 
						||
				</view>
 | 
						||
				<u-action-sheet :show="showSex" :actions="actions" title="请选择性别" @close="showSex = false" @select="sexSelect">
 | 
						||
				</u-action-sheet>
 | 
						||
				<u-datetime-picker :show="dateTimePickerInfo.showCheckDate" mode="date" v-model='dateTimePickerInfo.defaultDateTime' :formatter="formatter" @confirm="handleCheckDate"
 | 
						||
					@close="dateTimePickerInfo.showCheckDate = false;" @cancel="dateTimePickerInfo.showCheckDate = false;"></u-datetime-picker>
 | 
						||
				<u-picker :show="pickerShow" :columns="pickerColumns" @confirm="pickerConfirm" @cancel="pickerCancel"></u-picker>
 | 
						||
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
 | 
						||
 | 
						||
	</view>
 | 
						||
</template>
 | 
						||
 | 
						||
<script>
 | 
						||
	import {
 | 
						||
		RegisterUser
 | 
						||
	} from '../../services/apply.js'
 | 
						||
	import config from '../../config/common.js'
 | 
						||
	import {
 | 
						||
		isChinaMobilePhone,
 | 
						||
		easyCheckID,
 | 
						||
		getNowFormatDate
 | 
						||
	} from '../../utils/common.js'
 | 
						||
	export default {
 | 
						||
		data() {
 | 
						||
			return {
 | 
						||
				showSex: false,
 | 
						||
				appurl: config.uni_app_url,
 | 
						||
				formatter: null,
 | 
						||
				pickerShow: false,
 | 
						||
				loading: false,
 | 
						||
				pickerColumns: [Array(60).fill(null).map((_, i) => i)],
 | 
						||
				model1: {
 | 
						||
					userInfo: {
 | 
						||
						Name: '',
 | 
						||
						Sex: '',
 | 
						||
						Phone: '',
 | 
						||
						ID_CARD: '',
 | 
						||
						InTime: getNowFormatDate(),
 | 
						||
						WORKINGYEAR: '',
 | 
						||
					},
 | 
						||
				},
 | 
						||
				dateTimePickerInfo: {
 | 
						||
					showCheckDate: false,
 | 
						||
					defaultDateTime: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd'),
 | 
						||
					value: '',
 | 
						||
				},
 | 
						||
				actions: [{
 | 
						||
						name: '男',
 | 
						||
					},
 | 
						||
					{
 | 
						||
						name: '女',
 | 
						||
					},
 | 
						||
				],
 | 
						||
				rules: {
 | 
						||
					'userInfo.Name': {
 | 
						||
						type: 'string',
 | 
						||
						required: true,
 | 
						||
						message: '请填写姓名',
 | 
						||
						trigger: ['blur', 'change']
 | 
						||
					},
 | 
						||
					'userInfo.Sex': {
 | 
						||
						type: 'string',
 | 
						||
						max: 1,
 | 
						||
						required: true,
 | 
						||
						message: '请选择男或女',
 | 
						||
						trigger: ['blur', 'change']
 | 
						||
					},
 | 
						||
					'userInfo.Phone': {
 | 
						||
						type: 'string',
 | 
						||
						required: true,
 | 
						||
						message: '请填写手机号',
 | 
						||
						trigger: ['blur', 'change']
 | 
						||
					},
 | 
						||
					'userInfo.ID_CARD': {
 | 
						||
						type: 'string',
 | 
						||
						required: true,
 | 
						||
						message: '请填写身份证号',
 | 
						||
						trigger: ['blur', 'change']
 | 
						||
					},
 | 
						||
					'userInfo.InTime': {
 | 
						||
						type: 'string',
 | 
						||
						required: true,
 | 
						||
						message: '请选择入职时间',
 | 
						||
						trigger: ['blur', 'change']
 | 
						||
					},
 | 
						||
				},
 | 
						||
				radio: '',
 | 
						||
				switchVal: false
 | 
						||
			}
 | 
						||
		},
 | 
						||
		onLoad() {},
 | 
						||
		onReady() {
 | 
						||
			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
 | 
						||
			this.$refs.uForm.setRules(this.rules)
 | 
						||
		},
 | 
						||
		methods: {
 | 
						||
			sexSelect(e) {
 | 
						||
				this.model1.userInfo.Sex = e.name
 | 
						||
				this.$refs.uForm.validateField('userInfo.Sex')
 | 
						||
			},
 | 
						||
			showCheckDate() {
 | 
						||
				if (this.model1.userInfo.InTime == null) {
 | 
						||
					this.model1.userInfo.InTime = uni.$u.timeFormat(new Date(),
 | 
						||
						'yyyy-mm-dd')
 | 
						||
				}
 | 
						||
				this.dateTimePickerInfo = {
 | 
						||
					showCheckDate: true,
 | 
						||
					defaultDateTime: this.model1.userInfo.InTime,
 | 
						||
				}
 | 
						||
			},
 | 
						||
			handleCheckDate(e) {
 | 
						||
				// let v = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
 | 
						||
				this.model1.userInfo.InTime = uni.$u.timeFormat(e.value,
 | 
						||
					'yyyy-mm-dd')
 | 
						||
				this.dateTimePickerInfo.showCheckDate = false
 | 
						||
			},
 | 
						||
			pickerConfirm(e) {
 | 
						||
				this.model1.userInfo.WORKINGYEAR = e.value.toString()
 | 
						||
				this.pickerShow = false
 | 
						||
			},
 | 
						||
			pickerCancel(e) {
 | 
						||
				this.pickerShow = false
 | 
						||
			},
 | 
						||
			reset() {
 | 
						||
				this.model1.userInfo = {
 | 
						||
					Name: '',
 | 
						||
					Sex: '',
 | 
						||
					Phone: '',
 | 
						||
					ID_CARD: '',
 | 
						||
					InTime: '',
 | 
						||
					WORKINGYEAR: '',
 | 
						||
				}
 | 
						||
			},
 | 
						||
			submit() {
 | 
						||
				if (this.model1.userInfo.Name == '' ||
 | 
						||
					this.model1.userInfo.Sex == '' ||
 | 
						||
					this.model1.userInfo.Phone == '' ||
 | 
						||
					this.model1.userInfo.ID_CARD == '' ||
 | 
						||
					this.model1.userInfo.InTime == '') {
 | 
						||
					uni.showToast({
 | 
						||
						icon: 'error',
 | 
						||
						title: '信息不能为空'
 | 
						||
					})
 | 
						||
					return
 | 
						||
				}
 | 
						||
				if (isChinaMobilePhone(this.model1.userInfo.Phone) == false) {
 | 
						||
					uni.showToast({
 | 
						||
						icon: 'error',
 | 
						||
						title: '手机号码格式不正确'
 | 
						||
					})
 | 
						||
					return
 | 
						||
				}
 | 
						||
				if (easyCheckID(this.model1.userInfo.ID_CARD) == false) {
 | 
						||
					uni.showToast({
 | 
						||
						icon: 'error',
 | 
						||
						title: '身份证号码格式不正确'
 | 
						||
					})
 | 
						||
					return
 | 
						||
				}
 | 
						||
				this.loading = true
 | 
						||
				const json = {
 | 
						||
					Name: this.model1.userInfo.Name,
 | 
						||
					Sex: this.model1.userInfo.Sex == '男' ? '1' : '0',
 | 
						||
					Phone: this.model1.userInfo.Phone,
 | 
						||
					ID_CARD: this.model1.userInfo.ID_CARD,
 | 
						||
					InTime: this.model1.userInfo.InTime,
 | 
						||
					WORKINGYEAR: this.model1.userInfo.WORKINGYEAR,
 | 
						||
				}
 | 
						||
				// const json = {
 | 
						||
				// 	Name: '云',
 | 
						||
				// 	Sex: '0',
 | 
						||
				// 	Phone: '18480141719',
 | 
						||
				// 	ID_CARD: '230182200000000000',
 | 
						||
				// 	InTime: '2024-07-25',
 | 
						||
				// 	WORKINGYEAR: '0',
 | 
						||
				// }
 | 
						||
				RegisterUser(json).then((res) => {
 | 
						||
					if (res.code == 200) {
 | 
						||
						this.loading = false
 | 
						||
						uni.showToast({
 | 
						||
							title: '注册成功!',
 | 
						||
							icon: 'none'
 | 
						||
						})
 | 
						||
						setTimeout(() => {
 | 
						||
							uni.hideToast();
 | 
						||
							location.href = this.appurl
 | 
						||
							// uni.redirectTo({
 | 
						||
							// 	url: '/pages/webview/webview?url=' + this.appurl
 | 
						||
							// })
 | 
						||
						},1500)
 | 
						||
 | 
						||
						// uni.navigateTo({
 | 
						||
						// 	url: '/pages/apply/complete?type=success'
 | 
						||
						// })
 | 
						||
					} else {
 | 
						||
						this.loading = false
 | 
						||
						uni.showToast({
 | 
						||
							title: res.msg,
 | 
						||
							icon: 'none'
 | 
						||
						})
 | 
						||
						// uni.navigateTo({
 | 
						||
						// 	url: `/pages/apply/complete?type=failed&title=${res.msg}`
 | 
						||
						// })
 | 
						||
					}
 | 
						||
 | 
						||
				}).catch((err) => {
 | 
						||
					this.loading = false
 | 
						||
					uni.navigateTo({
 | 
						||
						url: `/pages/apply/complete?type=failed&title=${err.msg}`
 | 
						||
					})
 | 
						||
				})
 | 
						||
			},
 | 
						||
 | 
						||
		}
 | 
						||
	}
 | 
						||
</script>
 | 
						||
 | 
						||
<style>
 | 
						||
	.content {
 | 
						||
		background-color: #f4f7ff;
 | 
						||
		width: 100%;
 | 
						||
		/* #ifndef APP-PLUS */
 | 
						||
		height: calc(100vh - 44px - 50px); // 非APP平台下生效
 | 
						||
		/* #endif */
 | 
						||
		/* #ifdef APP-PLUS */
 | 
						||
		height: calc(100vh); // APP平台下生效
 | 
						||
		/* #endif */
 | 
						||
	}
 | 
						||
 | 
						||
	.container {
 | 
						||
		padding: 20px 16px 10px 16px;
 | 
						||
	}
 | 
						||
 | 
						||
	.form-sub {
 | 
						||
		/* margin: 20px 16px 10px 16px; */
 | 
						||
		/* border: 1px solid #EBEEF5; */
 | 
						||
		padding: 20px 30px 10px 30px;
 | 
						||
		/* box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 3px 1px; */
 | 
						||
		background-color: #ffffff;
 | 
						||
		border-radius: 10px;
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm>>>.u-form-item__body__left__content__label {
 | 
						||
		font-size: 14px;
 | 
						||
		color: #8e8b9c;
 | 
						||
		/* justify-content: flex-start; */
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm>>>.u-form-item__body__left__content__ {
 | 
						||
		left: -11px;
 | 
						||
		top: 0px
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm>>>.u-textarea__field {
 | 
						||
		font-size: 14px;
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm>>>.u-cell__title-text {
 | 
						||
		font-size: 14px;
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm-thr>>>.u-textarea {
 | 
						||
		padding: 9px 9px 25px 9px;
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm-thr>>>.u-form-item__body__left__content__label {
 | 
						||
		font-size: 14px;
 | 
						||
		color: #8e8b9c;
 | 
						||
		/* justify-content: flex-start; */
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm-thr>>>.u-form-item__body__left__content__ {
 | 
						||
		left: -11px;
 | 
						||
		top: 0px
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm-thr>>>.u-textarea__field {
 | 
						||
		font-size: 14px;
 | 
						||
	}
 | 
						||
 | 
						||
	.demo-ruleForm-thr>>>.u-cell__title-text {
 | 
						||
		font-size: 14px;
 | 
						||
	}
 | 
						||
 | 
						||
	.bottom-button {
 | 
						||
		position: fixed;
 | 
						||
		bottom: 0;
 | 
						||
		left: 0;
 | 
						||
		width: 100%;
 | 
						||
		padding: 10px 16px;
 | 
						||
		box-sizing: border-box;
 | 
						||
		background: #f4f7ff;
 | 
						||
		z-index: 999;
 | 
						||
	}
 | 
						||
</style> |