【Vue3.0实战逐步深入系列】保存问卷记录到localStorage并基于elementui的table组件实现历史记录的展示功能

该博客介绍了如何在Vue3.0项目中使用localStorage保存问卷提交记录,并通过elementui的Table组件展示历史记录。内容包括保存记录的逻辑、提交记录展示的实现、路由配置、数据分离和管理优化。
摘要由CSDN通过智能技术生成

【千字长文,熬夜更新,原创不易,多多支持,感谢大家】

前言

小伙伴们大家好。今天我们继续来完善我们的问卷调查功能。昨天我们已经为问卷添加了数据有效性校验功能。从问卷主题配置到问卷数据有效性校验再到问卷的保存和提交,整个问卷系统已经初具雏形逐步完善了,但仍然还欠缺许多功能比如按角色登录,后台管理,提交记录展示等等。别急,既然是逐步深入系列我们就一步步慢慢来。今天就将实现问卷提交记录保存及展示功能。

保存提交记录

为了操作方便我们就不借助后台数据库了,依然使用本地存储localStorage进行历史记录的保存,拢共分为三大步:

  • 首先来分析一下我们要保存的信息:
    • 提交记录的唯一标识字段id,提交记录的标题title,填写问卷的用户user,提交时间time,以及问卷的具体信息question
    • 其中id作为唯一标识,为了方便我们就把它做成自增类型,并且将每次自增后的最大值也保存到localStorage中
    • 最后将所有字段封装成一个对象保存在localStorage中
  • 这里已经多次用到了localStorage,那么必然就会涉及到多个不同的key值,为了方便维护,我们把这些key单独存到一个文件constants.js中
    • Question:值为“QUESTION”,用于保存每次填写问卷的临时记录
    • MaxId: 值为“MAXID”,用于保存自增后的最大ID值
    • History:值为“HISTORY”,用于保存每次提交的记录
  • 在submit方法中添加保存提交记录的逻辑
    • 首先根据maxid在localStorage中拿到当前的最大id值,拿到id后先进行自增操作,然后再重新存回到localStorage中
    • 组装提交记录对象,如:{ id: newId, title:QUESTION:第${newId}次提交记录, user:‘Yannis’, time: new Date().toLocaleString(), question: JSON.stringify(result) },(注意在保存问卷结果时需要进行JSON转换一下)
    • 根据key History从localStorage中拿到已经保存的提交记录histories。这里从localStorage中拿到的保存结果进行JSON转换后应该是一个数组类型。
    • 将上面组装好的提交记录对象push到数组histories中
    • 将数组histories进行JSON转换后重新存回到localStorage中
//constants.js
export default{
   
	MaxId:"MAXID",
	Question:"QUESTION",
	History:"HISTORY"
}
const submit = () => {
   
	// ...省略
	let maxId = localStorage.getItem(constants.MaxId);
	let newId = maxId ? ++maxId: 1;
	localStorage.setItem(constants.MaxId, newId);
	const records ={
   
		id: newId,
		title:`QUESTION:第${
     newId}次提交记录`,
		user:'Yannis',
		time: new Date().toLocaleString(),
		question: JSON.stringify(result)</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值