vue - 使用vue实现自定义多选与单选的答题功能

4月底立得flag,五月底插上小旗,结果拖到六月底才来执行。说什么工作忙都是借口,就是谁的比猪早,起的比猪晚。

本来实现多选单选这个功能,vue组件中在表单方面提供了一个v-model指令,非常的善解“猿”意,

能把我们的多选单选功能很完美的且很强大得双向绑定起来,实现多选单选任意选根本不在话下。

但是,凡事都有一个但是!

但是奈何这个项目设计稿的缘故,使用原生的表单组件是不可能使用了,请看ui图:  

vue - 使用vue实现自定义多选与单选的答题功能

可悲的是,这个项目两个月后,我才来做项目复盘,

话说也就在此时,我才发现有一种更简单的方式来实现并且应用上v-model,

为什么要为了样式放弃功能然后自己吭哧吭哧傻-滴-呼呼的用js来实现了类似双向绑定的感觉!!!

flag:今天先专注把我费劲巴拉手动搬得砖总结一下,明天(07-05)我再把所谓的最简单的方法做出来贴这里~

这个需求的难点在于以下几点:

1.单选点击后选中状态,需满足如下:X

  a) 每次点击只能选中其中一个

  b) 当选中时再次点击其他选项需要切换选择对应点击项

  c) 选中时点击自身无显示上的反应(同样的逻辑再做一遍也无妨,即再加一遍类名也看不出来)

2.多选样式展示,需满足如下:

  a) 同时可以选中多个X

  b) 多选已选中状态再次点击取消选中X

3.多选选中项的记录,需满足如下:

  a) 选择几个记录几个

  b) 选中再取消时需要将本条记录的数据通时消除(依据点击事件,事件点击触发判断哪个被选中了)

4.单选选中项的记录,方便提交数据

5.未点击选项不可提交,并给提示

6.可提交状态,需满足如下:

  a) 单选选中任意一个,即可提交。再次修改对提交没有影响

  b) 多选至少选中一个可提交,再次修改需判断是不是没选东西

7.第十四题点下一题切换提交按钮

8.快速点击下一题,多次提交

9.点击下一题提交数据后,拿响应结果调取弹层提示用户选择是否正确

=============接下来一 一解决====================

 

首先先说结构

看似十道题,其实是一道题不停的换数据,所以我的外部结构就是一个form加一个空的div

别问我为什么多余一个空的,我也很无措。

form.question(v-if="state.ExamInfo")  div

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjsdy.html