郑州网站制作多少钱,scrm,c 网站开发项目,企业展厅设计网最初的需求
需求是处理一些数据#xff0c;数据例子#xff1a; 而界面要显示的样子#xff1a; 看起来不太难#xff0c;可以分解出需求#xff1a;
每一列的所有数据要都能参与选择#xff0c;或者输入当一个参数选中之后#xff0c;比如选中A选中1#xff0c;则…最初的需求
需求是处理一些数据数据例子 而界面要显示的样子 看起来不太难可以分解出需求
每一列的所有数据要都能参与选择或者输入当一个参数选中之后比如选中A选中1则B的选项范围只有3,4,5,6,7C则只能输入1~16中的一个数
需求很清楚需要行和列一一对应。简单的过滤就可以了。
需求开始变态
这是后业务说又有些新数据加入进来他们长这样 新加入的D参数有些类似C但是又有点不一样D依赖于A不再是单纯的行对应这里需要计算。 当然也可以解决D的初始值可以根据A的最大值求出来然后选择的时候再根据实时的值实时计算。
接着变态
业务又加了参数
新加的参数E是一个条件式的数据它依赖于B的值。 不过也可以搞变成表达式 0B5EC;5B16EC-2;B16EC-5 分号表示或者表示并且。计算初始值时根据B的值找到C的最大值然后得到E的最大值然后取并集得到所有可能范围这个范围可能是不连续的多个区间。实时选择时根据已选中的值再次计算仍然可以得到可选的范围。
进一步变态
业务又加了三个参数 F在选择是是不显示的G和H是要显示的但是G和H的和要满足GHF。 这个也可以搞这个比上面的依赖繁琐一点多个循环依赖要检测。 这里所有参数都有个默认规则就是肯定是大于等于0的。 检测的循环的时候就把其中一个当0处理然后求一个一元一次方程根据定义域得到值域。实时选择时仍然如此。
没有最变态只有更变态
业务遇到新的数据 一次添加了IJKLMNO。 以为只是复刻了前面的参数当然还有要求。 I的值是JKL
当I选择J的时候右侧参数只能有J和M当I选择K的时候右侧参数只能有K和N当I选择L的时候右侧参数只能有L和O
O还依赖G。
本来是想重新规划参数加一下互斥组什么的业务说我就不我就要在原有的数据格式上录入。 没办法最后折中 业务想录成这种 当然这这三条实际数据业务录入了1000条头皮发麻。 硬着头皮搞了支持参数值为无当只有无时不显示这参数。
实际的变态
有超级多的表格每个表格的参数名字不相同顺序也不同值的格式也不同依赖的参数是多个。 选择的时候要联动更新依赖这个参数的选框不仅更新值还要更新范围更新选项。
做了好久差不多做完了使用了math.js和algebra.js前端库 没错计算是在前端计算的。 https://mathjs.org/index.html http://algebra.js.org/
使用math.js来计算表达式的值使用algebra来求方程的解。