Newer
Older
gdtMimiProgram / pages / register / register.vue
MrTan on 18 Nov 2022 6 KB 获取员工类型
/**
* 注册页面
*/
<template>
	<view class="register">
		<view class="register-content">
			<u--form labelPosition="left" :model="form" :rules="rules" ref="form1">
				<u-form-item label="员工号" prop="number" borderBottom labelWidth="80" class="form-item">
					<u--input v-model="form.number" border="none" placeholder="请输入员工号"></u--input>
				</u-form-item>
				<u-form-item label="姓名" prop="name" borderBottom labelWidth="80" class="form-item">
					<u--input v-model="form.name" border="none" placeholder="请输入员姓名"></u--input>
				</u-form-item>
				<u-form-item label="员工类型" prop="type"  class="form-item" labelWidth="80">
					<u-button @click="typeLx" v-model="form.type" >{{form.type || '点击选择'}}
					<u-icon name="arrow-right" ></u-icon>
					</u-button>
				</u-form-item>
				<u-form-item label="手机号码" prop="phone"  labelWidth="80" class="form-item">
					<u-button v-model="form.phone" 
					@click="getUserInfo"
					open-type="getPhoneNumber" 
					@getphonenumber="getPhoneNumber"
						border="none">
						{{form.phone || '获取手机号'}}
					</u-button>
				</u-form-item>
			</u--form>
			<view style="margin-top: 152rpx;">
				<u-button type="error" text="注册" @click="registerGo" ></u-button>
			</view>
			<u-action-sheet :show="show" :actions="list" title="请选择员工类型" description="只能单选" @close="show = false"
				@select="sexSelect">
			</u-action-sheet>
			<u-popup :show="sqShow" mode="center" :round="10" :closeOnClickOverlay="false" @close="close" @open="open">
				<view class="popup">
					<view class="popup-title"> 微信授权</view>
					<view class="popup-content">
						申请获取你微信绑定的手机号{{form.phone}}?
					</view>
					<view class="popup-buttom">
						<view class="popup-jujue" @click="reject">
							拒绝
						</view>
						<view class="popup-yunxu" @click="permit">
							允许
						</view>
					</view>
				</view>
			</u-popup>
			<u-popup :show="jujueShow" mode="center" :round="10" :closeOnClickOverlay="false" @close="close" @open="open">
				<view class="popup">
					<view class="popup-all-title">
						拒绝将无法进行注册!
					</view>
					<view class="popup-buttom">
						<view class="popup-jujue" @click="rejectAll">
							仍要拒绝
						</view>
						<view class="popup-yunxu" @click="permit">
							允许授权
						</view>
					</view>
				</view>
			</u-popup>
			<u-popup :show="successShow" mode="center" :round="10" :closeOnClickOverlay="false" @close="close" @open="open">
				<view class="popup">
					<view class="popup-all-title">
						注册成功!
					</view>
					<view class="popup-login" @click="goRegister">
						返回登录
					</view>
				</view>
			</u-popup>
			<u-popup :show="errorShow" mode="center" :round="10" :closeOnClickOverlay="false" @close="close" @open="open">
				<view class="popup">
					<view class="popup-error-title">
						注册失败!请重新填写信息或联系管理人员
					</view>
					<view class="popup-buttom">
						<view class="popup-jujue popup-jujue-fanhui" @click="errorFh">
							返回
						</view>
						<view class="popup-yunxu popup-jujue-queren" @click="errorQr">
							确认
						</view>
					</view>
				</view>
			</u-popup>
		</view>
	</view>
</template>

<script>
	import {getUserType} from '@/api/user.js';
	export default {
		data() {
			return {
				rules: {
					name: [{
						required: true,
						message: '请填写姓名',
						trigger: ['blur', 'change'],
					}],
					number: [{
						required: true,
						message: '请填写员工号',
						trigger: ['blur', 'change'],
					}]
				},
				form: {
					number: '', //员工号
					name: '', //姓名
					type: '', //员工类型
					phone: '', //电话
				},
				tips: {
					text: '请选择员工类型',
					color: '#909399',
					fontSize: 24
				},
				list: [{
						name: '广播电视台员工'
					},
					{
						name: '广播电视台员工'
					},
					{
						name: '网络有限公司员工'
					},
				],
				show: false,
				sqShow: false,
				jujueShow: false,
				successShow: false,
				errorShow: false,
				code: ""
			}
		},
		methods: {
			//注册失败确认
			errorQr() {
				this.errorShow = false
			},
			//注册失败返回
			errorFh() {
				this.errorShow = false
			},
			//点击注册
			registerGo() {
				console.log(this.form)
				this.errorShow = true
			},
			//允许获取
			permit() {
				this.sqShow = false
				this.jujueShow = false
			},
			//拒绝获取
			reject() {
				this.sqShow = false
				this.jujueShow = true
			},
			//任然要拒绝
			rejectAll() {
				this.jujueShow = false
			},
			open() {

			},
			typeLx() {
				this.show = true
			    getUserType()
			},
			getPhoneNumber(e) {
				console.log(e, '666')
			},
			//获取用户手机号
			getUserInfo() {
				this.sqShow = true
				uni.getUserInfo({
					provider: 'weixin',
					success: (res) => {
						console.log('getUserInfo', res);
					},
				});
			},
			//关闭授权获取手机号弹窗
			close() {
				this.sqShow = false
			},
			//选中员工类型
			sexSelect(e) {
				setTimeout(() => {
					this.form.type = e.name
				}, 30)
				// this.$refs.form1.validateField('userInfo.sex')
			},
		}
	}
</script>

<style lang="scss" scoped>
	.register {
		height: 100%;
		padding: 18rpx;
       .register-content{
		   height: 100%;
		   border-radius: 10rpx;
		   padding-left:32rpx;
		   padding-right: 32rpx;
		   background-color: #fff;
	   }
		.form-item {
			// white-space: nowrap;
			width: 390rpx;
			color: red;
		}

		.popup {
			width: 700rpx;
			height: 450rpx;

			.popup-title {
				text-align: center;
				font-size: 36rpx;
				margin: 35rpx;
			}

			.popup-content {
				width: 70%;
				margin-left: 135rpx;
				line-height: 54rpx;
			}

			.popup-error-title {
				margin-left: 36rpx;
				margin-right: 36rpx;
				margin-top: 80rpx;
				font-size: 38rpx
			}

			.popup-login {
				margin-left: 240rpx;
				margin-top: 120rpx;
				width: 180rpx;
				height: 52rpx;
				background-color: skyblue;
				border-radius: 8rpx;
				line-height: 52rpx;
				border: #000 1px solid;
				text-align: center;
				color: #fff;

			}

			.popup-buttom {
				padding: 70rpx;
				margin-top: 72rpx;
				display: flex;
				justify-content: space-between;
			}

			.popup-jujue-fanhui {
				border: none;
				border-radius: 8rpx;
				background-color: gray;
				color: #fff;
			}

			.popup-jujue-queren {
				border: none;
				border-radius: 8rpx;
				background-color: skyblue;
				color: #fff;
			}

			.popup-buttom view {
				width: 180rpx;
				height: 56rpx;
				text-align: center;
				line-height: 56rpx;
				border-radius: 6rpx;
				border: 1px #000 solid;
			}

			.popup-all-title {
				text-align: center;
				font-size: 42rpx;
				margin-top: 142rpx;
			}
		}
	}
	/deep/.uicon-arrow-right{
		position: absolute !important;
		right: 10rpx;
		bottom: 0;
	}
</style>