From 76484a81944b7e7c783d8703d1ba78c30b026424 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=AF=E8=BE=89?= <13935151924@163.com>
Date: Thu, 13 Nov 2025 11:49:08 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8A=80=E8=83=BD=E7=AD=89=E7=BA=A7=E7=BB=B4?=
=?UTF-8?q?=E6=8A=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/complete-info/complete-info.vue | 281 +++++++++++++++++++-------
1 file changed, 207 insertions(+), 74 deletions(-)
diff --git a/pages/complete-info/complete-info.vue b/pages/complete-info/complete-info.vue
index 2b8e0d0..6e540de 100644
--- a/pages/complete-info/complete-info.vue
+++ b/pages/complete-info/complete-info.vue
@@ -160,27 +160,7 @@
{{ item }}
-
- 技能等级
-
-
-
- 技能名称
-
-
- {{ item }}
-
-
+
期望薪资
+
+
+
+
+
+
+
+
+
+ 技能名称
+
+
+
+
+ 技能等级
+
+
+
+
+
+
+ 暂无技能信息,点击上方按钮添加
+
+
+
@@ -250,8 +279,8 @@ const state = reactive({
workExperience: '',
salayText: '',
jobsText: [],
- skillLevelText: '',
- skillsText: [],
+ skills: [], // 新的技能数据结构
+ currentEditingSkillIndex: -1 // 当前正在编辑的技能索引
});
const fromValue = reactive({
sex: null,
@@ -264,8 +293,6 @@ const fromValue = reactive({
idCard: '',
name: '',
age: '',
- skillLevel: '',
- skills: '',
ytjPassword: '',
});
@@ -320,16 +347,62 @@ function initEducationText() {
checkDictData();
}
+// 技能管理函数
+const addSkill = () => {
+ if (state.skills.length >= 3) {
+ $api.msg('最多只能添加3个技能');
+ return;
+ }
+ state.skills.push({ name: '', level: '' });
+};
+
+const removeSkill = (index) => {
+ state.skills.splice(index, 1);
+};
+
+const changeSkillName = (index) => {
+ state.currentEditingSkillIndex = index;
+ // 跳转到技能查询页面
+ uni.navigateTo({
+ url: `/pages/complete-info/skill-search?selected=${encodeURIComponent(JSON.stringify([]))}`
+ });
+};
+
+const changeSkillLevel = (index) => {
+ state.currentEditingSkillIndex = index;
+ const skillLevels = [
+ { label: '初级', value: '1' },
+ { label: '中级', value: '2' },
+ { label: '高级', value: '3' }
+ ];
+
+ openSelectPopup({
+ title: '技能等级',
+ maskClick: true,
+ data: [skillLevels],
+ success: (_, [value]) => {
+ if (state.currentEditingSkillIndex >= 0) {
+ state.skills[state.currentEditingSkillIndex].level = value.value;
+ state.currentEditingSkillIndex = -1;
+ }
+ },
+ });
+};
+
+const getSkillLevelText = (level) => {
+ const levelMap = {
+ '1': '初级',
+ '2': '中级',
+ '3': '高级'
+ };
+ return levelMap[level] || '';
+};
+
// 技能选择回调函数
-const handleSkillSelected = (skills) => {
- if (Array.isArray(skills) && skills.length > 0) {
- // 更新技能显示和值,技能字段值传name
- state.skillsText = skills;
- fromValue.skills = skills.join(',');
- } else {
- // 如果返回空数组,清空选择
- state.skillsText = [];
- fromValue.skills = '';
+const handleSkillSelected = (skillName) => {
+ if (state.currentEditingSkillIndex >= 0 && skillName) {
+ state.skills[state.currentEditingSkillIndex].name = skillName;
+ state.currentEditingSkillIndex = -1;
}
};
@@ -570,33 +643,6 @@ function changeJobs() {
});
}
-// 技能等级选择
-function changeSkillLevel() {
- const skillLevels = [
- { label: '初级', value: '1' },
- { label: '中级', value: '2' },
- { label: '高级', value: '3' }
- ];
-
- openSelectPopup({
- title: '技能等级',
- maskClick: true,
- data: [skillLevels],
- success: (_, [value]) => {
- fromValue.skillLevel = value.value;
- state.skillLevelText = value.label;
- },
- });
-}
-
-// 技能名称选择 - 跳转到模糊查询页面
-function changeSkills() {
- // 将当前已选中的技能名称传递给查询页面
- const selectedSkills = state.skillsText || [];
- uni.navigateTo({
- url: `/pages/complete-info/skill-search?selected=${encodeURIComponent(JSON.stringify(selectedSkills))}`
- });
-}
function nextStep() {
// 统一必填与格式校验
@@ -726,19 +772,16 @@ function complete() {
}
if (isValid) {
- // 构建 experiencesList 数组
+ // 构建 experiencesList 数组 - 使用新的技能数据结构
const experiencesList = [];
- if (fromValue.skills && fromValue.skillLevel) {
- const skillsArray = fromValue.skills.split(',');
- skillsArray.forEach(skill => {
- if (skill.trim()) {
- experiencesList.push({
- name: skill.trim(),
- levels: fromValue.skillLevel
- });
- }
- });
- }
+ state.skills.forEach(skill => {
+ if (skill.name && skill.level) {
+ experiencesList.push({
+ name: skill.name,
+ levels: skill.level
+ });
+ }
+ });
// 构建符合要求的请求数据(experiencesList 与 appUser 同级)
const requestData = {
@@ -1009,5 +1052,95 @@ function complete() {
line-height: 90rpx
position: relative
z-index: 100
-
+ /* 技能列表样式 */
+ .content-skills
+ margin-bottom: 52rpx
+ .skills-header
+ display: flex
+ justify-content: space-between
+ align-items: center
+ margin-bottom: 32rpx
+ .input-titile
+ font-weight: 400
+ font-size: 28rpx
+ color: #6A6A6A
+ .add-skill-btn
+ padding: 16rpx 24rpx
+ background: #256BFA
+ color: #FFFFFF
+ border-radius: 8rpx
+ font-size: 24rpx
+ font-weight: 500
+ &.disabled
+ background: #CCCCCC
+ color: #999999
+ .skills-list
+ .skill-item
+ background: #F8F9FA
+ border-radius: 12rpx
+ padding: 24rpx
+ margin-bottom: 24rpx
+ .skill-header
+ display: flex
+ justify-content: space-between
+ align-items: center
+ margin-bottom: 20rpx
+ .skill-number
+ font-size: 28rpx
+ font-weight: 500
+ color: #333333
+ .skill-actions
+ .action-btn
+ padding: 8rpx 16rpx
+ border-radius: 6rpx
+ font-size: 24rpx
+ &.delete-btn
+ background: #FF4757
+ color: #FFFFFF
+ .skill-fields
+ .skill-field
+ margin-bottom: 20rpx
+ &:last-child
+ margin-bottom: 0
+ .field-label
+ font-size: 24rpx
+ color: #6A6A6A
+ margin-bottom: 8rpx
+ .field-input
+ width: 100%
+ height: 72rpx
+ background: #FFFFFF
+ border: 2rpx solid #E8EAEE
+ border-radius: 8rpx
+ padding: 0 20rpx
+ font-size: 28rpx
+ color: #333333
+ position: relative
+ &.triangle::before
+ position: absolute
+ right: 20rpx
+ top: calc(50% - 2rpx)
+ content: ''
+ width: 4rpx
+ height: 14rpx
+ border-radius: 2rpx
+ background: #697279
+ transform: translate(0, -50%) rotate(-45deg)
+ &.triangle::after
+ position: absolute
+ right: 20rpx
+ top: 50%
+ content: ''
+ width: 4rpx
+ height: 14rpx
+ border-radius: 2rpx
+ background: #697279
+ transform: rotate(45deg)
+ .empty-skills
+ text-align: center
+ padding: 60rpx 0
+ .empty-text
+ font-size: 28rpx
+ color: #999999
+