键盘遮挡输入框问题
This commit is contained in:
@@ -1,15 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view v-if="show" class="filter-container">
|
<view v-if="show" class="filter-container">
|
||||||
<!-- 头部 -->
|
<!-- 左侧标签页 -->
|
||||||
<!-- <view class="filter-header">
|
|
||||||
<text class="back-btn" @click="handleClose">
|
|
||||||
<uni-icons type="left" size="24"></uni-icons>
|
|
||||||
</text>
|
|
||||||
<text class="filter-title">喀什智慧就业平台</text>
|
|
||||||
<view class="back-btn"></view>
|
|
||||||
</view> -->
|
|
||||||
|
|
||||||
<!-- 标签页 -->
|
|
||||||
<view class="filter-tabs">
|
<view class="filter-tabs">
|
||||||
<view
|
<view
|
||||||
v-for="(tab, index) in tabs"
|
v-for="(tab, index) in tabs"
|
||||||
@@ -22,103 +13,106 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 内容区域 -->
|
<!-- 右侧内容区域 -->
|
||||||
<view class="filter-content">
|
<view class="filter-right">
|
||||||
<!-- 学历要求 -->
|
<!-- 内容区域 -->
|
||||||
<view v-if="activeTab === 'education'" class="content-section">
|
<view class="filter-content">
|
||||||
<radio-group @change="(e) => handleSelect('education', e)">
|
<!-- 学历要求 -->
|
||||||
<label
|
<view v-if="activeTab === 'education'" class="content-section">
|
||||||
v-for="option in educationOptions"
|
<radio-group @change="(e) => handleSelect('education', e)">
|
||||||
:key="option.value"
|
<label
|
||||||
class="radio-item"
|
v-for="option in educationOptions"
|
||||||
:class="{ checked: selectedValues['education'] === String(option.value) }"
|
:key="option.value"
|
||||||
>
|
class="radio-item"
|
||||||
<radio
|
:class="{ checked: selectedValues['education'] === String(option.value) }"
|
||||||
:value="String(option.value)"
|
>
|
||||||
:checked="selectedValues['education'] === String(option.value)"
|
<radio
|
||||||
/>
|
:value="String(option.value)"
|
||||||
<text class="option-label">{{ option.label }}</text>
|
:checked="selectedValues['education'] === String(option.value)"
|
||||||
</label>
|
/>
|
||||||
</radio-group>
|
<text class="option-label">{{ option.label }}</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 工作经验 -->
|
||||||
|
<view v-if="activeTab === 'experience'" class="content-section">
|
||||||
|
<radio-group @change="(e) => handleSelect('experience', e)">
|
||||||
|
<label
|
||||||
|
v-for="option in experienceOptions"
|
||||||
|
:key="option.value"
|
||||||
|
class="radio-item"
|
||||||
|
:class="{ checked: selectedValues['experience'] === String(option.value) }"
|
||||||
|
>
|
||||||
|
<radio
|
||||||
|
:value="String(option.value)"
|
||||||
|
:checked="selectedValues['experience'] === String(option.value)"
|
||||||
|
/>
|
||||||
|
<text class="option-label">{{ option.label }}</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 公司规模 -->
|
||||||
|
<view v-if="activeTab === 'scale'" class="content-section">
|
||||||
|
<radio-group @change="(e) => handleSelect('scale', e)">
|
||||||
|
<label
|
||||||
|
v-for="option in scaleOptions"
|
||||||
|
:key="option.value"
|
||||||
|
class="radio-item"
|
||||||
|
:class="{ checked: selectedValues['scale'] === String(option.value) }"
|
||||||
|
>
|
||||||
|
<radio
|
||||||
|
:value="String(option.value)"
|
||||||
|
:checked="selectedValues['scale'] === String(option.value)"
|
||||||
|
/>
|
||||||
|
<text class="option-label">{{ option.label }}</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 地区 -->
|
||||||
|
<view v-if="activeTab === 'area'" class="content-section">
|
||||||
|
<radio-group @change="(e) => handleSelect('area', e)">
|
||||||
|
<label
|
||||||
|
v-for="option in areaOptions"
|
||||||
|
:key="option.value"
|
||||||
|
class="radio-item"
|
||||||
|
:class="{ checked: selectedValues['area'] === String(option.value) }"
|
||||||
|
>
|
||||||
|
<radio
|
||||||
|
:value="String(option.value)"
|
||||||
|
:checked="selectedValues['area'] === String(option.value)"
|
||||||
|
/>
|
||||||
|
<text class="option-label">{{ option.label }}</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 岗位类型 -->
|
||||||
|
<view v-if="activeTab === 'jobType'" class="content-section">
|
||||||
|
<radio-group @change="(e) => handleSelect('jobType', e)">
|
||||||
|
<label
|
||||||
|
v-for="option in jobTypeOptions"
|
||||||
|
:key="option.value"
|
||||||
|
class="radio-item"
|
||||||
|
:class="{ checked: selectedValues['jobType'] === String(option.value) }"
|
||||||
|
>
|
||||||
|
<radio
|
||||||
|
:value="String(option.value)"
|
||||||
|
:checked="selectedValues['jobType'] === String(option.value)"
|
||||||
|
/>
|
||||||
|
<text class="option-label">{{ option.label }}</text>
|
||||||
|
</label>
|
||||||
|
</radio-group>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 工作经验 -->
|
<!-- 底部按钮 -->
|
||||||
<view v-if="activeTab === 'experience'" class="content-section">
|
<view class="filter-footer">
|
||||||
<radio-group @change="(e) => handleSelect('experience', e)">
|
<button class="footer-btn clear-btn" @click="handleClear">清除</button>
|
||||||
<label
|
<button class="footer-btn confirm-btn" @click="handleConfirm">确认</button>
|
||||||
v-for="option in experienceOptions"
|
|
||||||
:key="option.value"
|
|
||||||
class="radio-item"
|
|
||||||
:class="{ checked: selectedValues['experience'] === String(option.value) }"
|
|
||||||
>
|
|
||||||
<radio
|
|
||||||
:value="String(option.value)"
|
|
||||||
:checked="selectedValues['experience'] === String(option.value)"
|
|
||||||
/>
|
|
||||||
<text class="option-label">{{ option.label }}</text>
|
|
||||||
</label>
|
|
||||||
</radio-group>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 公司规模 -->
|
|
||||||
<view v-if="activeTab === 'scale'" class="content-section">
|
|
||||||
<radio-group @change="(e) => handleSelect('scale', e)">
|
|
||||||
<label
|
|
||||||
v-for="option in scaleOptions"
|
|
||||||
:key="option.value"
|
|
||||||
class="radio-item"
|
|
||||||
:class="{ checked: selectedValues['scale'] === String(option.value) }"
|
|
||||||
>
|
|
||||||
<radio
|
|
||||||
:value="String(option.value)"
|
|
||||||
:checked="selectedValues['scale'] === String(option.value)"
|
|
||||||
/>
|
|
||||||
<text class="option-label">{{ option.label }}</text>
|
|
||||||
</label>
|
|
||||||
</radio-group>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 地区 -->
|
|
||||||
<view v-if="activeTab === 'area'" class="content-section">
|
|
||||||
<radio-group @change="(e) => handleSelect('area', e)">
|
|
||||||
<label
|
|
||||||
v-for="option in areaOptions"
|
|
||||||
:key="option.value"
|
|
||||||
class="radio-item"
|
|
||||||
:class="{ checked: selectedValues['area'] === String(option.value) }"
|
|
||||||
>
|
|
||||||
<radio
|
|
||||||
:value="String(option.value)"
|
|
||||||
:checked="selectedValues['area'] === String(option.value)"
|
|
||||||
/>
|
|
||||||
<text class="option-label">{{ option.label }}</text>
|
|
||||||
</label>
|
|
||||||
</radio-group>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 岗位类型 -->
|
|
||||||
<view v-if="activeTab === 'jobType'" class="content-section">
|
|
||||||
<radio-group @change="(e) => handleSelect('jobType', e)">
|
|
||||||
<label
|
|
||||||
v-for="option in jobTypeOptions"
|
|
||||||
:key="option.value"
|
|
||||||
class="radio-item"
|
|
||||||
:class="{ checked: selectedValues['jobType'] === String(option.value) }"
|
|
||||||
>
|
|
||||||
<radio
|
|
||||||
:value="String(option.value)"
|
|
||||||
:checked="selectedValues['jobType'] === String(option.value)"
|
|
||||||
/>
|
|
||||||
<text class="option-label">{{ option.label }}</text>
|
|
||||||
</label>
|
|
||||||
</radio-group>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<!-- 底部按钮 -->
|
|
||||||
<view class="filter-footer">
|
|
||||||
<button class="footer-btn clear-btn" @click="handleClear">清除</button>
|
|
||||||
<button class="footer-btn confirm-btn" @click="handleConfirm">确认</button>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -230,7 +224,7 @@ const handleClose = () => {
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-header {
|
.filter-header {
|
||||||
@@ -266,17 +260,17 @@ const handleClose = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.filter-tabs {
|
.filter-tabs {
|
||||||
|
width: 200rpx;
|
||||||
|
border-right: 1rpx solid #eee;
|
||||||
|
background-color: #f8f8f8;
|
||||||
display: flex;
|
display: flex;
|
||||||
border-bottom: 1rpx solid #eee;
|
flex-direction: column;
|
||||||
background-color: #fff;
|
|
||||||
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
|
|
||||||
|
|
||||||
.tab-item {
|
.tab-item {
|
||||||
flex: 1;
|
height: 100rpx;
|
||||||
height: 90rpx;
|
line-height: 100rpx;
|
||||||
line-height: 90rpx;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 30rpx;
|
font-size: 28rpx;
|
||||||
color: #666;
|
color: #666;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
@@ -284,14 +278,15 @@ const handleClose = () => {
|
|||||||
&.active {
|
&.active {
|
||||||
color: #256BFA;
|
color: #256BFA;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
left: 0;
|
||||||
left: 25%;
|
top: 25%;
|
||||||
width: 50%;
|
width: 4rpx;
|
||||||
height: 4rpx;
|
height: 50%;
|
||||||
background-color: #256BFA;
|
background-color: #256BFA;
|
||||||
border-radius: 2rpx;
|
border-radius: 2rpx;
|
||||||
}
|
}
|
||||||
@@ -303,6 +298,13 @@ const handleClose = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.filter-right {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
.filter-content {
|
.filter-content {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 40rpx 32rpx;
|
padding: 40rpx 32rpx;
|
||||||
|
|||||||
@@ -198,7 +198,7 @@
|
|||||||
class="input"
|
class="input"
|
||||||
@confirm="sendMessage"
|
@confirm="sendMessage"
|
||||||
:disabled="isTyping"
|
:disabled="isTyping"
|
||||||
:adjust-position="false"
|
:adjust-position="true"
|
||||||
placeholder="请输入您的职位名称、薪资要求、岗位地址"
|
placeholder="请输入您的职位名称、薪资要求、岗位地址"
|
||||||
v-show="!isVoice"
|
v-show="!isVoice"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user