这是默认情况
麻烦根据我标的序号看下图,很重要
园区的count值也更新了,就是集团的没更新
=====
还有一个问题,就是当输入一个值的时候,所有变更过的地方都要显示一个红色的差值
需求是:输入框的值变动之后,所有值更新过的地方包括当前输入框都要与初始值计算差值,并且在下方显示+n或者-n,所以需要把初始化的数据存起来,因为每次都是跟初始化的数据对比,而不是上一次
然后我想就是初始化数据的时候把输入框的值都存起来,然后当输入的时候,计算之前输入框的差值,因为输入框+2的话其他地方也是+2,这个应该错不了
就是不知道怎么找到数据更新过的地方并且显示一个+n或者-n
======
这里是代码,麻烦帮忙修改一下
例子1
https://element-plus.run/#eyJ...
例子2
https://element-plus.run/#eyJ...
两个案例可以看看哪个好改一些,谢谢
calc
的逻辑混得比较多,我做了一个拆分,把不同的逻辑细节拆出去了。calcNode
专门用来计算某个节点内的计算数据(也就是几个 count)calcParent
专门用来找到父节点并进行计算calc
保留原来的接口,它会先计算当前节点再计算父节点另外,
getDiffVal
的本意应该是获取有变化的值。根据模板里的type="danger"
,而且没加条件,那说明这里是没有判断值是否存在变化的。只要动了 input 就一定会显示,这也是个 BUG。改过之后的getDiffVal
会判断值是否变化,如果变化返回原值,否则返回""
,这样danger
才不会渲染出来。最后是那个 map,这里我猜你是想保留原值,但是不知道为什么要在
change
里去计算它。原值保留着一直不变,只需要在getDiffVal
的时候取出来用于比较就行。所以我重写了生成 map 的逻辑,并且改名为originValues
其他细节不记得了,看 Demo 吧。