js复制控件值深拷贝问题

1、需求:在填报的时候,我希望获取到修改前的所有控件值,和修改后的控件值,后期需要做对比之类的。

2、现状,修改前我希望通过按钮点击先复制整个控件所有值,然后修改后通过另一个按钮获取控件的所有新的值,然后最后进行对比。

3、我通过网上查的js深拷贝方式,都没有用,当控件值改变了之后,新老的数据都会同步变化。

4、问下各位大佬,有没有办法将控件和值完全的拷贝一份,并且不会根据控件值的变化在去变化。

image.png

image.png

image.png

image.png

FineReport qxl2 发布于 2023-8-7 11:11 (编辑于 2023-8-7 11:13)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2023-8-7 11:33

一个折中方案

新增加一列辅助列

然后显示一列,辅助一列都是放数据库查询出的数据

填报时候只要判断两列是不是一样,一样填报辅助列,不一样就是展示列

  • qxl2 qxl2(提问者) 这个我也做过,但是这个只针对填报数量少的报表,其实我的目的是要做一个通用的日志功能。如果现在我们填报的报表有几十个,这样就需要我在原来的报表上去修改了,这个会更麻烦,因为每个报表的功能还都不一样
    2023-08-07 11:35 
  • snrtuemc snrtuemc 回复 qxl2(提问者) 额, 这个看你舍取把,js估计比这个辅助列还麻烦。。
    2023-08-07 11:39 
  • qxl2 qxl2(提问者) 回复 snrtuemc 不会的,这个我都测试过,现在问题不在于能不能实现,在于我js实现了,但是有没有更简洁的js方案,我现在就是多了一次循环,我希望把两次循环简化成一次。因为我也查到网上有这种类似深拷贝的概念,只不过控件这个对象可能更复杂一点,就是希望哪个js大佬有没有什么建议。
    2023-08-07 11:43 
  • qxl2 qxl2(提问者) 回复 snrtuemc 而且你这种方式,如果是删除多行的话,你还不一定很好处理,还要去数据库做对比,前提,你数据库中还不能物理删除。还是需要js去做处理
    2023-08-07 11:46 
  • snrtuemc snrtuemc 回复 qxl2(提问者) 这个看你自己需求了,我只是一个方案~_~
    2023-08-07 11:51 
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-8-7 11:13(编辑于 2023-8-7 11:30)

编辑前事件,先把值赋值到其他控件上

编辑结束 在去取回来

image.png

  • qxl2 qxl2(提问者) 有没有其他办法,我不希望去修改原先填报的东西,目的就是想在加载结束和填报成功后两个事件中通过js去获取和处理数据,因为填报的报表,也不只是一两个控件,不想在去加一些控件。
    2023-08-07 11:17 
  • 用户k6280494 用户k6280494 回复 qxl2(提问者) 不行
    2023-08-07 11:18 
  • 用户k6280494 用户k6280494 回复 qxl2(提问者) 你可以这样操作,建一个零时表,每次进来先提交当前数据,修改后再去取出来做对比
    2023-08-07 11:20 
  • qxl2 qxl2(提问者) 回复 用户k6280494 就单单实现这个功能,我自己是实现了,我直接先把修改前的控件值直接取出来拼接成字符串,然后在和填报后的去对比,但是这个就想对麻烦一点,我是先如果直接可以把修改前的整个对象复制过来保持不变,不是省了去循环取数了。
    2023-08-07 11:23 
  • 用户k6280494 用户k6280494 回复 qxl2(提问者) 直接写到零时表,在修改前事件里
    2023-08-07 11:26 
  • 2关注人数
  • 360浏览人数
  • 最后回答于:2023-8-7 13:42
    请选择关闭问题的原因
    确定 取消
    返回顶部