Vue 列表页table点击跳转详情页后返回列表页table变色

需求:列表跳详情后,返回列表页,所有点击过的列表项变色;

实现:一、将跳转的列表信息存储在sessionStorage里

           二、返回列表的时候,取出sessionStorage信息,给table附样式

代码:

在详情页获取传递过来的行id,并存储在sessionStorage里,写在vue 的mounted里,注释已经很全了

mounted(){
    var idArray=[];
    var id = this.$route.query.id;
    var arr={id:id};
    //已经访问过的id不再存储
    if(sessionStorage.getItem('arr')){              //判断从sessionStorage获得的arr是否为空
      var arrget = sessionStorage.getItem('arr');    //获得已经存储的数据
      var arrayget = JSON.parse(arrget);            //转成JSON对象
      for(var i=0;i<arrayget.length;i++){
        if(arr.id ==arrayget[i].id){                     //判断新传来的id是否已在session内存储
          arrayget.splice(i,1); //删除下标为i的重复元素
        }
      }
      arrayget.push(arr);                   //继续赋值          
      idArray = arrayget;
    }else{
我现在有一个空项目,前端使用vite+vue3+vue-router+pinia+element-plus+axios开发,现在需要你帮忙生成几个页面。 首先第一个页面是一个项目的介绍页,要好看点,且能突出主题。我们是一个用户填报简历就可以和我们的岗位库进行对比然后生成分析的网站。首页要大气点,而且要突出主题,网站主题叫《职景Vision》,slogan为:一个为求职者提供岗位推荐及前景分析的可视化智能平台,拥有30W+岗位数据,只需几秒即可查看岗位前景。同时在该页面下部要加一个按钮,按钮文字为“立马开始”,点击就可以进入第二个页面。 第二个页面应该有一个进度条,在最顶端。进来后进度条为:填写您的简历。后面是“生成分析中”,最后是“分析报告“,进度条应该是这三部分。进入该页面直接是一个填报表单,让用户填报简历信息,具体字段参考建表语句。 表单应包含如下字段、岗位(下拉单选框,备选项你可以自己先定义几个)、城市(文本框)、学历(文本框)、技能专长(文本域控件)、工作经历(文本域)、项目经历(文本域)、工作经验(文本框)、期望薪资(下拉单选,备选项你根据经验先设置几个) CREATE TABLE resumes ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, full_name VARCHAR(100), contact VARCHAR(50), education TEXT, work_experience TEXT, skills TEXT, projects TEXT, file_path VARCHAR(255), embedding BLOB, created_at TIMESTAMP ); 点击填报完成按钮,进度条就会走向第二个生成分析中,此页面要加一个加载动画,最后加载完毕后再跳转到分析报告页面。
最新发布
03-10
<think>好的,我需要帮用户设计两个页面,首先是首页,然后是简历填写和分析页面。让我先仔细理解用户的需求。 用户的项目使用Vite+Vue3等技术栈,首页需要大气且突出主题。网站名称是《职景Vision》,slogan提到了30W+岗位数据和快速分析。需要有一个“立马开始”按钮跳转到第二个页面。首页设计方面,可能需要用大图背景或者渐变配色,加上动态效果,比如动画图标或滚动特效,来吸引眼球。字体和排版要简洁,重点突出标题和slogan,按钮要显眼。 第二个页面是表单填写,顶部有进度条,分三步:填写简历、生成分析、分析报告。进入页面时显示表单,提交后进度条更新,显示加载动画,然后跳转到报告页面。表单字段包括岗位、城市、学历等,其中岗位和期望薪资是下拉选项,其他有些是文本框或文本域。需要注意表单验证和用户体验,比如必填项提示、输入格式校验等。 首先处理首页的结构。用户可能想要现代感强的设计,可能需要使用Element Plus的布局组件,比如el-row和el-col来分栏。背景可以用渐变色,加上一些装饰性元素,比如波浪形状或抽象图形。标题部分用大字体,slogan字体稍小但突出数字“30W+”。按钮样式要醒目,可能用Element的el-button,设置primary类型和大尺寸。 然后是第二个页面的进度条,可以用Element的el-steps组件,分为三步,当前步骤根据页面状态变化。表单部分需要使用el-form,每个字段对应el-form-item,下拉框用el-select,文本域用el-input type="textarea"。提交按钮触发表单验证,通过后模拟加载,用el-progress或自定义动画,然后跳转。 需要注意的点:表单字段和建表语句可能不完全一致,比如建表语句里有user_id、contact等,但用户需求中的表单字段没有提到姓名和联系方式,可能需要确认是否要添加。不过根据用户给出的表单字段列表,可能建表语句中的部分字段如user_id由系统自动处理,full_name和contact可能需要用户输入,但用户的需求描述里没有明确说明。这里可能需要提醒用户补充,但根据当前信息,先按照用户给出的字段来设计表单,可能用户后续会调整。 加载动画部分,可以使用Element的加载指示器,或者自定义CSS动画,比如旋转的圆圈或进度条。提交表单后,进度条跳到第二步,显示加载状态,完成后进入第三步的分析报告页面。分析报告页面暂时不需要具体设计,但需要路由配置。 路由方面,需要配置两个路由,首页和简历填写页。按钮点击vue-router的push跳转。表单提交后,使用axios发送请求,模拟异步处理,然后跳转。 样式方面,确保整体配色一致,可能使用主题色,比如蓝色系,符合科技感。响应式设计,适配不同屏幕尺寸,利用Element的响应式工具类。 总结步骤:先构建首页,再处理表单页的进度条和表单结构,实现表单验证和提交逻辑,添加加载状态,最后配置路由跳转。可能需要检查Element Plus组件是否正确使用,比如el-steps的active属性绑定,el-form的rules验证规则等。</think>我为您设计以下两个页面方案,分为代码结构说明和视觉建议两部分: 一、 首页代码方案(`src/views/HomeView.vue`) ```html <template> <div class="home-container"> <!-- 首屏内容 --> <header class="hero-section"> <div class="content-wrapper"> <h1 class="title-gradient">职景Vision</h1> <p class="slogan">一个为求职者提供岗位推荐及前景分析的可视化智能平台</p> <div class="highlight-box"> <span class="data-tag">30W+</span> 实时岗位数据 • <span class="time-tag">5秒</span> 极速生成报告 </div> </div> <div class="deco-wave"></div> </header> <!-- 功能入口 --> <section class="cta-section"> <el-button type="primary" round size="large" @click="router.push('/analysis')" class="start-btn" > 立即体验岗位前景分析 → </el-button> </section> </div> </template> <script setup> import { useRouter } from 'vue-router' const router = useRouter() </script> <style scoped> .home-container { min-height: 100vh; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); } .hero-section { padding: 8rem 2rem 12rem; position: relative; } .content-wrapper { max-width: 1200px; margin: 0 auto; text-align: center; } .title-gradient { font-size: 4.5rem; background: linear-gradient(45deg, #2c3e50, #3498db); -webkit-background-clip: text; color: transparent; margin-bottom: 1.5rem; } .slogan { font-size: 1.8rem; color: #34495e; margin-bottom: 2rem; } .highlight-box { font-size: 1.4rem; padding: 1rem 2rem; background: rgba(255,255,255,0.9); border-radius: 50px; display: inline-block; } .data-tag { color: #e74c3c; font-weight: bold; } .time-tag { color: #2ecc71; font-weight: bold; } .deco-wave { /* 使用CSS绘制波浪图形 */ } .start-btn { font-size: 1.4rem; padding: 1.5rem 3rem; box-shadow: 0 8px 20px rgba(52, 152, 219, 0.3); } </style> ``` 二、 简历填写页(`src/views/AnalysisView.vue`) ```html <template> <div class="analysis-container"> <!-- 进度条 --> <el-steps :active="currentStep" align-center> <el-step title="填写简历" /> <el-step title="生成分析" /> <el-step title="分析报告" /> </el-steps> <!-- 表单区域 --> <el-form v-if="currentStep === 1" :model="formData" :rules="rules" ref="resumeForm" class="resume-form" > <el-form-item label="目标岗位" prop="position"> <el-select v-model="formData.position"> <el-option v-for="item in positionOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> <!-- 其他表单字段省略,结构类似 --> <el-button type="primary" @click="submitForm" :loading="isSubmitting" > 提交简历 </el-button> </el-form> <!-- 加载动画 --> <div v-if="currentStep === 2" class="loading-section"> <el-progress :percentage="progress" :indeterminate="true" status="success" /> <div class="loading-text">正在智能匹配岗位数据...</div> </div> </div> </template> <script setup> import { ref } from 'vue' // 表单数据 const formData = ref({ position: '', city: '', education: '', // 其他字段... }) // 表单验证规则 const rules = { position: [{ required: true, message: '请选择目标岗位', trigger: 'change' }], // 其他校验规则... } // 进度控制 const currentStep = ref(1) const progress = ref(0) const isSubmitting = ref(false) const submitForm = async () => { // 提交逻辑... } </script> ``` 三、视觉增强建议: 1. 首页动画方案: - 使用Lottie添加动态数据可视化图标 - 添加视差滚动的3D卡片效果 - 首屏文字添加渐现动画 2. 表单页交互优化: - 分步骤表单填写(基本信息/工作经历/项目经历) - 使用骨架屏加载动画 - 实时保存草稿功能 3. 数据可视化方案: - 分析报告页使用ECharts展示竞争力雷达图 - 岗位匹配度使用仪表盘可视化 - 职业发展路径时间轴 需要补充说明: 1. 岗位选项建议包含: ```javascript const positionOptions = [ { value: 'frontend', label: '前端开发工程师' }, { value: 'backend', label: '后端开发工程师' }, { value: 'data', label: '数据分析师' }, // 可扩展更多选项... ] ``` 2. 加载动画推荐方案: - 使用CSS绘制脉动圆环动画 - 添加SVG路径动画 - 骨架屏加载占位 需要我继续补充哪个部分的详细实现方案吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值