Files
siji/pages/my/register.vue
MeSHard 0dbbf978d3 inti
2025-11-14 17:23:25 +08:00

204 lines
5.3 KiB
Vue

<template>
<view class="container">
<u--form labelPosition="top" :model="userInfo" :rules="rules" ref="uForm" labelWidth="120">
<u-form-item label="真实姓名" prop="userInfo.account" borderBottom ref="item1" required>
<u--input v-model="userInfo.account" border="none" maxlength="5" placeholder="请输入真实姓名"></u--input>
</u-form-item>
<!-- <u-form-item label="性别" prop="userInfo.sex" borderBottom @click="showSex = true;" ref="item1">
<u--input v-model="userInfo.sex" disabled disabledColor="#ffffff" placeholder="请选择性别"
border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> -->
<u-form-item label="手机号码" prop="userInfo.phone" borderBottom ref="item1" required>
<u--input v-model="userInfo.phone" border="none" maxlength="11" placeholder="请输入手机号码"></u--input>
</u-form-item>
<!-- <u-form-item label="电子邮箱" prop="userInfo.email" borderBottom ref="item1">
<u--input v-model="userInfo.email" border="none" maxlength="20" placeholder="请输入电子邮箱"></u--input>
</u-form-item> -->
<!-- <u-form-item label="用户类型" prop="userInfo.type" borderBottom @click="showType = true;" ref="item1">
<u--input v-model="userInfo.type" disabled disabledColor="#ffffff" placeholder="请选择类型"
border="none"></u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
<u-form-item label="企业名称" prop="userInfo.enterprise" borderBottom ref="item1" v-if="userInfo.type == '企业'">
<u--input v-model="userInfo.enterprise" border="none" maxlength="20" placeholder="请输入企业名称"></u--input>
</u-form-item>
<u-form-item label="职位" prop="userInfo.position" borderBottom ref="item1">
<u--input v-model="userInfo.position" border="none" maxlength="10" placeholder="请输入职位名称"></u--input>
</u-form-item>
<u-form-item label="常用发货地址" prop="userInfo.shipping_address" borderBottom ref="item1">
<u--input v-model="userInfo.shipping_address" border="none" maxlength="100"
placeholder="请输入常用发货地址"></u--input>
</u-form-item>
<u-form-item label="常用收货地址" prop="userInfo.receiving_address" borderBottom ref="item1">
<u--input v-model="userInfo.receiving_address" border="none" maxlength="100"
placeholder="请输入常用收货地址"></u--input>
</u-form-item> -->
</u--form>
<u-action-sheet :show="showSex" :actions="actions" title="请选择性别" description="" @close="showSex = false"
@select="sexSelect">
</u-action-sheet>
<u-action-sheet :show="showType" :actions="typeActions" title="请选择类型" description="" @close="showType = false"
@select="typeSelect">
</u-action-sheet>
<view class="agreement">
<view class="content">
<u-checkbox-group v-model="agreement1" placement="row">
<u-checkbox label=""></u-checkbox>
请阅读和勾选
<u--text type="primary" text="用户协议" @click="agreement(1)"></u--text>
<u--text type="primary" text="隐私政策" @click="agreement(2)"></u--text>
协议
</u-checkbox-group>
</view>
</view>
<u-button type="primary" class="btn" text="注册" shape="circle" @click="register"></u-button>
</view>
</template>
<script>
import {
get,
post
} from '@/common/request.js'
import {
config
} from '@/common/config.js'
export default {
data() {
return {
showSex: false,
showType: false,
userInfo: {
account: '',
sex: '男',
phone: '',
email: '',
type: '个人',
enterprise: '',
position: '',
shipping_address: '',
receiving_address: '',
},
actions: [{
name: '男',
},
{
name: '女',
},
],
typeActions: [{
name: '个人',
},
{
name: '企业',
},
],
rules: {
},
agreement1: [],
}
},
methods: {
sexSelect(e) {
this.userInfo.sex = e.name
this.$refs.uForm.validateField('userInfo.sex')
},
typeSelect(e) {
this.userInfo.type = e.name
this.$refs.uForm.validateField('userInfo.type')
},
agreement(id) {
uni.navigateTo({
url: '/pages/index/details?id=' + id
})
},
async register() {
console.log()
if (this.agreement1.length !== 1) {
uni.showToast({
title: '请阅读并勾选相关协议!',
icon: "none"
})
return false
}
uni.showLoading({
title: '注册中'
})
post('/myapi/api/yq_driver/register', {
...this.userInfo
}).then(res => {
setTimeout(() => {
uni.hideLoading()
uni.showToast({
title: '恭喜你,注册成功!',
icon: "none"
})
uni.setStorageSync('token', res.data.token)
setTimeout(() => {
uni.showToast({
title: '正在登录',
icon: "none"
})
setTimeout(() => {
uni.switchTab({
url: '/pages/my/index'
})
}, 500)
}, 1500)
}, 1500)
})
}
}
}
</script>
<style scoped lang="less">
.container {
padding: 10px 20px;
.btn {
margin-top: 10px;
font-size: 24px;
}
.agreement {
display: flex;
flex-direction: column;
margin: 10px 0 20px;
.content {
display: flex;
margin-top: 10px;
}
}
}
/deep/ .u-checkbox__icon-wrap--square {
border-radius: 15px !important;
}
</style>