element-plus 省市区+时间线 联动效果
<template>
<div class="main">
<div class="main-main">
<div class="main-title">
<p>2023年全国成人高考报名系统</p>
</div>
</div>
<div class="main-center">
<el-form :model="createReqVO" class="center-list" target="nm_iframe" :rules=rules ref="createReqVO" hide-required-asterisk>
<div class="center-item">
<p class="item-p">姓名</p>
<el-form-item prop="name">
<el-input class="item-input" :class="createReqVO.name ? 'font-color' : ''"
type="text" placeholder="请输入姓名" v-model="createReqVO.name"></el-input>
</el-form-item>
</div>
<div class="center-item">
<p class="item-p">手机号</p>
<el-form-item prop="phone">
<el-input class="item-input" :class="createReqVO.phone ? 'font-color' : ''" type="text" placeholder="请输入手机号" v-model.number="createReqVO.phone">
</el-input>
</el-form-item>
</div>
<!-- <div class="center-item">
<p class="item-p">性别</p>
<div class="item-radio">
<el-form-item prop="gender">
<p>男</p>
<input type="radio" name="radio" value="男" v-model="createReqVO.gender">
<p style="margin-left: 36px;" >女</p>
<input type="radio" name="radio" value="女" v-model="createReqVO.gender">
</el-form-item>
</div>
</div> -->
<div class="center-item">
<p class="item-p">政治面貌</p>
<el-form-item prop="politicsStatus">
<div class="item-educationBackground" :class="createReqVO.politicsStatus ? 'font-color' : ''" @click="drawerPoliticsStatus = true" >{
{createReqVO.politicsStatus == '' ? '请选择政治面貌' : createReqVO.politicsStatus}}
<img src="../assets/icon-fanhui.png" alt="">
</div>
</el-form-item>
</div>
<el-drawer
v-model="drawerPoliticsStatus"
direction="btt"
:show-close="false"
size="50%">
<template #header style="position: relative;">
<div class="drawer-title-politicsStatus">请选择政治面貌</div>
</template>
<template #default>
<div class="drawer-lists">
<div class="drawer-items">
<div class="drawer-items" :class="{
'selected-color':PoliticsStatusIndex == index}" @click="selectedPoliticsStatus(index)" v-for="(item,index) of selectedPoliticsStatusData" :key="index">
<p>{
{item}}</p>
</div>
</div>
</div>
</template>
</el-drawer>
<div class="center-item">
<p class="item-p">身份证</p>
<el-form-item prop="idNo">
<el-input class="item-input" :class="createReqVO.idNo ? 'font-color' : ''" type="text" placeholder="请输入身份证" v-model="createReqVO.idNo">
</el-input>
</el-form-item>
</div>
<div class="center-item">
<p class="item-p">户籍所在地</p>
<el-form-item prop="place">
<div class="item-educationBackground" :class="createReqVO.place ? 'font-color' : ''" @click="drawerPlace = true" >
{
{createReqVO.place == '' ? '请选择户籍所在地' : createReqVO.place}}
<img src="../assets/icon-fanhui.png" alt="">
</div>
</el-form-item>
<el-drawer
v-model="drawerPlace"
direction="btt"
:show-close="false"
size="65%">
<template #header style="position: relative;">
<div class="drawer-title-place">请选择户籍所在地</div>
<!-- 时间线 -->
<el-timeline>
<el-timeline-item
v-for="(placeLine, index) in placeLineData"
:key="index"
:hollow="placeLine.hollow"
:color="placeLine.color"
@click="selectPlaceLine(index)">
{
{placeLine.value}}
</el-timeline-item>
</el-timeline>
</template>
<template #default>
<div class="drawer-lists">
<div class="drawer-items" v-if="showProvinceData">
<p >选择省份/地区</p>
<div class="drawer-items" @click="selectedProvince(index)" v-for="(item,index) of regionData" :key="index">
<p :class="{
'selected-color':ProvinceDataIndex == index}" >{
{item.label}}</p>
</div>
</div>
<div class="drawer-items" v-else-if="showCityData">
<p>选择城市</p>
<div class="drawer-items"
@click="selectedCity(index)" v-for="(item,index) of selectedCityData" :key="index">
<p :class="{
'selected-color':CityDataIndex == index}">{
{item.label}}</p>
</div>
</div>
<div class="drawer-items" v-else>
<p>选择区/县</p>
<div class="drawer-items"
@click="selectedArea(index)" v-for="(item,index) of selectedAreaData" :key="index">
<p :class="{
'selected-color':AreaDataIndex == index}">{
{item.label}}</p>
</div>
</div>
</div>
</template>
</el-drawer>
</div>
<div class="center-item">
<p class="item-p">考试省份</p>
<el-form-item prop="examinationProvince">
<div class="item-educationBackground" :class="createReqVO.examinationProvince ? 'font-color' : ''" @click="drawerExaminationProvince = true" >{
{createReqVO.examinationProvince == '' ? '请选择考试省份' : createReqVO.examinationProvince}}
<img src="../assets/icon-fanhui.png" alt="">
</div>
</el-form-item>
<el-drawer
v-model="drawerExaminationProvince"
direction="btt"
:show-close="false"
size="65%">
<template #header style="position: relative;">
<div class="drawer-title-politicsStatus">请选择考试省份</div>
</template>
<template #default>
<div class="drawer-lists">
<div class="drawer-items">
<div class="drawer-items" @click="selectedExaminationProvince(index)" v-for="(item,index) of regionData" :key="index">
<p :class="{
'selected-color':ExaminationProvinceIndex == index}">{
{item.label}}</p>
</div>
</div>
</div>
</template>
</el-drawer>
</div>
<div class="center-item">
<p>报考学校</p>
<el-form-item prop="applySchool">
<el-input class="item-input" :class="createReqVO.applySchool ? 'font-color' : ''" type="text" placeholder="此项可不填" v-model="createReqVO.applySchool">