个人信息页面需求更改
This commit is contained in:
@@ -58,13 +58,25 @@
|
|||||||
<view class="input-titile">手机号码</view>
|
<view class="input-titile">手机号码</view>
|
||||||
<input class="input-con" v-model="fromValue.phone" placeholder="请输入您的手机号码" />
|
<input class="input-con" v-model="fromValue.phone" placeholder="请输入您的手机号码" />
|
||||||
</view>
|
</view>
|
||||||
|
<view class="content-input" @click="changeSkills">
|
||||||
|
<view class="input-titile">技能名称</view>
|
||||||
|
<input
|
||||||
|
class="input-con triangle"
|
||||||
|
disabled
|
||||||
|
v-if="!state.skillsText.length"
|
||||||
|
placeholder="请选择您的技能名称"
|
||||||
|
/>
|
||||||
|
<view class="input-nx" @click="changeSkills" v-else>
|
||||||
|
<view class="nx-item" v-for="(item, index) in state.skillsText" :key="index">{{ item }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<SelectPopup ref="selectPopupRef"></SelectPopup>
|
<SelectPopup ref="selectPopupRef"></SelectPopup>
|
||||||
</AppLayout>
|
</AppLayout>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, inject, watch, ref, onMounted } from 'vue';
|
import { reactive, inject, watch, ref, onMounted, onUnmounted } from 'vue';
|
||||||
import { onLoad, onShow } from '@dcloudio/uni-app';
|
import { onLoad, onShow } from '@dcloudio/uni-app';
|
||||||
const { $api, navTo, navBack, checkingPhoneRegExp } = inject('globalFunction');
|
const { $api, navTo, navBack, checkingPhoneRegExp } = inject('globalFunction');
|
||||||
import { storeToRefs } from 'pinia';
|
import { storeToRefs } from 'pinia';
|
||||||
@@ -104,6 +116,7 @@ const percent = ref('0%');
|
|||||||
const state = reactive({
|
const state = reactive({
|
||||||
educationText: '',
|
educationText: '',
|
||||||
politicalAffiliationText: '',
|
politicalAffiliationText: '',
|
||||||
|
skillsText: [],
|
||||||
});
|
});
|
||||||
const fromValue = reactive({
|
const fromValue = reactive({
|
||||||
name: '',
|
name: '',
|
||||||
@@ -112,11 +125,23 @@ const fromValue = reactive({
|
|||||||
education: '',
|
education: '',
|
||||||
politicalAffiliation: '',
|
politicalAffiliation: '',
|
||||||
idCard: '',
|
idCard: '',
|
||||||
|
skills: '',
|
||||||
});
|
});
|
||||||
onLoad(() => {
|
onLoad(() => {
|
||||||
initLoad();
|
initLoad();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 监听页面显示,接收从技能查询页面返回的数据
|
||||||
|
onShow(() => {
|
||||||
|
// 通过事件总线接收技能选择结果
|
||||||
|
uni.$on('skillSelected', handleSkillSelected);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 页面卸载时移除事件监听
|
||||||
|
onUnmounted(() => {
|
||||||
|
uni.$off('skillSelected', handleSkillSelected);
|
||||||
|
});
|
||||||
|
|
||||||
// 监听 userInfo 变化,确保数据及时更新
|
// 监听 userInfo 变化,确保数据及时更新
|
||||||
watch(() => userInfo.value, (newVal) => {
|
watch(() => userInfo.value, (newVal) => {
|
||||||
if (newVal && Object.keys(newVal).length > 0) {
|
if (newVal && Object.keys(newVal).length > 0) {
|
||||||
@@ -177,6 +202,16 @@ function initLoad() {
|
|||||||
fromValue.politicalAffiliation = currentUserInfo.politicalAffiliation || '';
|
fromValue.politicalAffiliation = currentUserInfo.politicalAffiliation || '';
|
||||||
fromValue.idCard = currentUserInfo.idCard || '';
|
fromValue.idCard = currentUserInfo.idCard || '';
|
||||||
|
|
||||||
|
// 初始化技能数据
|
||||||
|
if (currentUserInfo.skills) {
|
||||||
|
fromValue.skills = currentUserInfo.skills;
|
||||||
|
// 将技能字符串分割成数组用于显示
|
||||||
|
state.skillsText = currentUserInfo.skills.split(',');
|
||||||
|
} else {
|
||||||
|
fromValue.skills = '';
|
||||||
|
state.skillsText = [];
|
||||||
|
}
|
||||||
|
|
||||||
// 初始化学历显示文本(需要等待字典数据加载完成)
|
// 初始化学历显示文本(需要等待字典数据加载完成)
|
||||||
initEducationText();
|
initEducationText();
|
||||||
|
|
||||||
@@ -271,13 +306,37 @@ const confirm = () => {
|
|||||||
};
|
};
|
||||||
$api.createRequest('/app/user/resume', params, 'post').then((resData) => {
|
$api.createRequest('/app/user/resume', params, 'post').then((resData) => {
|
||||||
$api.msg('完成');
|
$api.msg('完成');
|
||||||
state.disbleDate = true;
|
|
||||||
getUserResume().then(() => {
|
getUserResume().then(() => {
|
||||||
navBack();
|
navBack();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 技能选择回调函数
|
||||||
|
const handleSkillSelected = (skills) => {
|
||||||
|
if (Array.isArray(skills) && skills.length > 0) {
|
||||||
|
// 更新技能显示和值,技能字段值传name
|
||||||
|
state.skillsText = skills;
|
||||||
|
fromValue.skills = skills.join(',');
|
||||||
|
// 更新完成度
|
||||||
|
const result = getFormCompletionPercent(fromValue);
|
||||||
|
percent.value = result;
|
||||||
|
} else {
|
||||||
|
// 如果返回空数组,清空选择
|
||||||
|
state.skillsText = [];
|
||||||
|
fromValue.skills = '';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 技能名称选择 - 跳转到模糊查询页面
|
||||||
|
function changeSkills() {
|
||||||
|
// 将当前已选中的技能名称传递给查询页面
|
||||||
|
const selectedSkills = state.skillsText || [];
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/complete-info/skill-search?selected=${encodeURIComponent(JSON.stringify(selectedSkills))}`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const changeDateBirt = () => {
|
const changeDateBirt = () => {
|
||||||
const datearray = generateDatePickerArrays();
|
const datearray = generateDatePickerArrays();
|
||||||
const defaultIndex = getDatePickerIndexes(fromValue.birthDate);
|
const defaultIndex = getDatePickerIndexes(fromValue.birthDate);
|
||||||
@@ -568,6 +627,28 @@ function getDatePickerIndexes(dateStr) {
|
|||||||
border-radius: 2rpx
|
border-radius: 2rpx
|
||||||
background: #697279;
|
background: #697279;
|
||||||
transform: rotate(45deg)
|
transform: rotate(45deg)
|
||||||
|
.input-nx
|
||||||
|
position: relative
|
||||||
|
border-bottom: 2rpx solid #EBEBEB
|
||||||
|
padding-bottom: 30rpx
|
||||||
|
display: flex
|
||||||
|
flex-wrap: wrap
|
||||||
|
.nx-item
|
||||||
|
padding: 16rpx 24rpx
|
||||||
|
width: fit-content
|
||||||
|
border-radius: 20rpx
|
||||||
|
border: 2rpx solid #E8EAEE
|
||||||
|
background-color: #f8f9fa
|
||||||
|
margin-right: 16rpx
|
||||||
|
margin-top: 16rpx
|
||||||
|
font-size: 28rpx
|
||||||
|
color: #333333
|
||||||
|
transition: all 0.2s ease
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
background-color: #e9ecef
|
||||||
|
border-color: #256bfa
|
||||||
|
color: #256bfa
|
||||||
.content-sex
|
.content-sex
|
||||||
height: 110rpx;
|
height: 110rpx;
|
||||||
display: flex
|
display: flex
|
||||||
|
|||||||
Reference in New Issue
Block a user