暖心人
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

508 lines
13 KiB

<template>
<view class="body-background"></view>
<u-navbar
:title="title"
:auto-back="true"
left-icon-size="40rpx"
:safe-area-inset-top="true"
:placeholder="true"
bgColor="transparent"
></u-navbar>
<view class="fxx-container row">
<view class="fxx-logo">
<u-image
mode="widthFix"
width="400"
height="161.37"
:src="staticImage.fxxLogo"
></u-image>
</view>
<view class="fxx-content">
<u-form
errorType="toast"
labelPosition="left"
:model="model"
:rules="rules"
ref="authForm"
labelWidth="200rpx"
>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="姓名"
prop="userInfo.name"
borderBottom
>
<u-input
fontSize="28"
placeholder="请填写您的真实姓名"
v-model="model.userInfo.name"
border="none"
></u-input>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="姓别"
prop="userInfo.sex"
borderBottom
>
<u-radio-group
v-model="model.userInfo.sex"
placement="row"
@change="sexChange"
>
<u-radio
size="32"
labelSize="32"
activeColor="#FF9545"
:customStyle="{marginRight: '40px'}"
v-for="(item, index) in sexList"
:key="index"
:label="item.name"
:name="item.id"
@change="radioChange"
>
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="政治面貌"
prop="userInfo.political_outlook "
borderBottom
>
<u-text
@click="openPolPicker"
:text="political_outlook_name||'请选择'"
size="28"
:color="political_outlook_name?'#020B18':'#AFB5BE'"
suffixIcon="arrow-right"
:icon-style="{color:(political_outlook_name?'#020B18':'#AFB5BE')}"
></u-text>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="手机号码"
prop="userInfo.phone"
borderBottom
>
<u-input
fontSize="28"
placeholder="请输入"
v-model="model.userInfo.phone"
border="none"
></u-input>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="所属街道"
prop="userInfo.street"
borderBottom
>
<u-text
@click="openStreetPicker"
:text="model.userInfo.street||'请选择'"
size="28"
:color="model.userInfo.street?'#020B18':'#AFB5BE'"
suffixIcon="arrow-right"
:icon-style="{color:(model.userInfo.street?'#020B18':'#AFB5BE')}"
></u-text>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="所属社区"
prop="userInfo.community"
borderBottom
>
<u-text
@click="openCommunityPicker"
:text="model.userInfo.community||'请选择'"
size="28"
:color="model.userInfo.community?'#020B18':'#AFB5BE'"
suffixIcon="arrow-right"
:icon-style="{color:(model.userInfo.community?'#020B18':'#AFB5BE')}"
></u-text>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="公司全称"
prop="userInfo.company"
borderBottom
>
<u-input
fontSize="28"
placeholder="请输入"
v-model="model.userInfo.company"
border="none"
></u-input>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="职业分类"
prop="userInfo.position_type"
borderBottom
>
<u-text
@click="openPositionPicker"
:text="model.userInfo.position_type||'请选择'"
size="28"
:color="model.userInfo.position_type?'#020B18':'#AFB5BE'"
suffixIcon="arrow-right"
:icon-style="{color:(model.userInfo.position_type?'#020B18':'#AFB5BE')}"
></u-text>
</u-form-item>
<u-form-item
:custom-style="{
padding:'36rpx 0'
}"
label="身份证号码"
prop="userInfo.id_card"
borderBottom
>
<u-input
fontSize="28"
placeholder="请输入"
v-model="model.userInfo.id_card"
border="none"
></u-input>
</u-form-item>
</u-form>
<u-button
type="primary"
text="立即认证"
shape="circle"
:custom-style="{
color:'#020B18',
backgroundColor:'#FF9545',
border:'none',
fontSize:'36',
fontWeight:'400',
marginTop:'48rpx'
}"
@click="submit"
></u-button>
</view>
</view>
<uv-picker
ref="pol"
:columns="[polList]"
keyName="name"
@confirm="selectPol"></uv-picker>
<uv-picker
ref="street"
:columns="[streetList]"
keyName="name"
@confirm="selectStreet"></uv-picker>
<uv-picker
ref="community"
:columns="[communityList]"
keyName="name"
@confirm="selectCommunity"></uv-picker>
<uv-picker
ref="position"
:columns="[positionList]"
keyName="name"
@confirm="selectPosition"></uv-picker>
</template>
<script>
import {
imghost
} from '@/config/host.js'
import MzSubsection from '@/components/MzSubsection/Index.vue';
import api from '@/utils/functions.js';
import {getCommonStreet, systemConfig, webConfig} from "@/api/other";
import {fxxApply} from "@/api/user";
export default {
components: {
MzSubsection
},
data() {
return {
polShow:false,
model: {
userInfo: {
name: '',
sex: 1,
phone: '',
company: '',
political_outlook: '',
street: '',
community: '',
id_card: '',
position_type: '',
},
},
rules: {
'userInfo.name': {
type: 'string',
required: true,
message: '请填写姓名',
trigger: ['blur', 'change']
},
'userInfo.sex': {
type: 'string',
max: 1,
required: true,
message: '请选择男或女',
trigger: ['blur', 'change']
},
'userInfo.political_outlook ': {
type: 'string',
required: true,
message: '请选择政治面貌',
trigger: ['blur', 'change']
},
'userInfo.phone': {
type: 'string',
required: true,
message: '请输入手机号码',
trigger: ['blur', 'change']
},
'userInfo.street': {
type: 'string',
required: true,
message: '请选择街道',
trigger: ['blur', 'change']
},
'userInfo.community': {
type: 'string',
required: true,
message: '请选择社区',
trigger: ['blur', 'change']
},
'userInfo.id_card': {
type: 'string',
required: true,
message: '请输入身份证号',
trigger: ['blur', 'change']
},
'userInfo.position_type ': {
type: 'string',
required: true,
message: '请选择职业分类',
trigger: ['blur', 'change']
},
},
sexList:[
{
id:1,
name: '男',
disabled: false,
},
{
id:2,
name: '女',
disabled: false,
},
],
political_outlook_name:'',
polList:[
{
id:0,
name: '群众',
},
{
id:1,
name: '共青团员',
},
{
id:2,
name: '预备党员',
},
{
id:3,
name: '党员',
},
],
list: [{
name: '最新资讯'
}, {
name: '表彰评优'
}, {
name: '活动回顾'
}],
// 或者如下,也可以配置keyName参数修改对象键名
// list: [{name: '未付款'}, {name: '待评价'}, {name: '已付款'}],
current: 1,
title: '丰行侠认证',
loading: true,
staticImage: {
bg: imghost + '/BG.png',
newIcon: imghost + '/new-icon.png',
fxxLogo: imghost + '/fxx-logo.png',
fxx1: imghost + '/fxx-1.png',
},
user: {
avatar: imghost + '/banner.png',
nickname: '清晨的风',
coupons: 221,
id: 88685,
},
isTop: false,
lists: [
{
id: 1,
thumb: imghost + '/new-1.png',
title: '全市公安机关夏季治安打击整治“彭安行动”新闻发布会召开',
desc: '需要您带一点猫砂上门,谢谢',
time: '2023/06/16',
is_new: true
}, {
id: 2,
thumb: imghost + '/new-2.png',
title: '全市公安机关夏季治安打击整治“彭安行动”新闻发布会召开',
desc: '需要您带一点猫砂上门,谢谢',
time: '2023/06/16',
is_new: true
}, {
id: 3,
thumb: imghost + '/new-3.png',
title: '全市公安机关夏季治安打击整治“彭安行动”111开',
desc: '需要您带一点猫砂上门,谢谢',
time: '2023/06/16',
is_new: false
},
],
size: {
height: 500,
},
streetList:[],
communityList:[],
positionList:[],
}
},
onLoad() {
},
computed: {
api() {
return api
},
sectionStyle() {
const style = {};
style.padding = '0 26rpx';
style.position = 'sticky';
style.zIndex = '9999';
style.top = api.navHeight().systemBarHeight + 'px'
return style;
},
listHeight() {
let that = this;
let height;
let info = uni.createSelectorQuery().in(this).select('.subsection');
info.boundingClientRect(function (data) {
that.size.height = data.height;
}).exec(function (res) {
});
// that.size.height = (api.navHeight().windowHeight - height);
}
},
methods: {
openPolPicker(){
this.$refs.pol.open();
},
openStreetPicker(){
this.$refs.street.open();
},
openCommunityPicker(){
this.$refs.community.open();
},
openPositionPicker(){
this.$refs.position.open();
},
chatDetail(item) {
wx.navigateTo({
url: '/pages/ChatDetail/index?id=' + item.id
});
},
checkSection(index) {
this.current = index;
},
scrollToLower() {
},
sexChange(e){
console.log(e)
this.model.userInfo.sex = e;
},
navTo(url) {
wx.navigateTo({
url: url
})
},
getPickerData(){
systemConfig({
type:'job_type'
}).then(res => {
this.positionList = res.data;
console.log(this.positionList)
})
getCommonStreet({}).then(res => {
this.streetList = res.data
});
},
selectPol(e){
this.political_outlook_name = e.value[0].name;
this.model.userInfo.political_outlook = e.value[0].id;
this.polShow = false;
},
selectStreet(e){
this.model.userInfo.street = e.value[0].name;
this.communityList = e.value[0].children;
},
selectCommunity(e){
this.model.userInfo.community = e.value[0].name;
},
selectPosition(e){
this.model.userInfo.position_type = e.value[0].name;
},
submit(){
fxxApply(this.model.userInfo).then(res => {
if(res.code === 200){
this.navTo('/pages/Authentication/done?id='+res.data.fxx_id+'&name='+this.model.userInfo.name)
}else{
uni.$u.toast(res.msg);
}
})
}
},
onPageScroll(res) {
if (res.scrollTop <= 20) {
uni.$emit('isTop', true);
} else {
uni.$emit('isTop', false);
}
},
created() {
// this.listHeight();
this.getPickerData()
// this.pagePadding = (api.navHeight().navPaddingTop +
// api.navHeight().navHeight + (api.navHeight().headerPadding * 2))
}
}
</script>
<style lang="scss">
@import './components/form.scss';
</style>