Giter Site home page Giter Site logo

Comments (16)

yanghuabei avatar yanghuabei commented on May 28, 2024

是要放在View里做这个事情吗?下午会上好像是说Form控件里面做

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

下午的结论是在View做,使用Form控件提供的数据

Form控件作为一个普通的控件,他肯定不应该知道你的业务是有这种需求的,不会特别去支持,不然随着不同的业务一个控件就会非常庞大了

from ub-ria.

yanghuabei avatar yanghuabei commented on May 28, 2024

有道理,可能我下午听岔了。

from ub-ria.

yanghuabei avatar yanghuabei commented on May 28, 2024

晚上跟@Exodia @srhb18 讨论了实现方案,大家帮忙看看有没有什么问题

  • FormActioninitBehavior中添加

        // 保存一份最初的form表单内容到model,用于判断表单内容是否被更改
        var initialFormData = this.view.getEntity();
        this.model.set('initialFormData', initialFormData, { silent: true });
    
  • FormActioncancelEdit中调用FormView新添加的方法isFormDataChanged判断表单数据是否发生变化

  • 移除FormModelisEntityChanged方法

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

方法OK,应该没问题

留一下记录,ADM2.0中有以下需要修改

src/channel/FormModel.js
src/channelGroup/FormModel.js
src/company/FormModel.js
src/contact/FormModel.js
src/delivery/FormModel.js
src/manager/FormModel.js
src/setting/BindUnionModel.js
src/setting/ModifyMailModel.js
src/setting/ModifyNameModel.js
src/setting/ModifyPasswordModel.js
src/slot/BatchChannelFormModel.js
src/slot/BatchOrderFormModel.js
src/slot/FormModel.js
src/tool/creative/FlashFormModel.js
src/tool/creative/ImageFormModel.js
src/tool/creative/RichFormModel.js
src/tool/creative/TextFormModel.js
src/tool/template/FormModel.js

BESC中现在没有

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

这里顺便提一个问题,类似initialFormData这种东西,放Model也行,挂Action下当属性也行的情况下,我们的判断标准和依据是啥?一概放Model吗?

from ub-ria.

Exodia avatar Exodia commented on May 28, 2024

如果按照在 view 中添加 isFormDataChange 的方法来看,放在 model 会更方便,可以直接从 mode取原始数据判断。

from ub-ria.

yanghuabei avatar yanghuabei commented on May 28, 2024

initialFormData是数据,虽然加入到model中的方式怪异,但感觉放在Action下不大合适,model应该是最适合的去处吧

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

我觉得既然一开始初始数据是Action拿了存起来的,判断相等还是交给Action来做比较合适吧?让ViewAction不用相互知道对方干了啥

from ub-ria.

yanghuabei avatar yanghuabei commented on May 28, 2024

isFormDataChanged是否需要这点我也纠结,就两行代码,直接写到Action里也没问题,应该没有要重写判等规则的需求吧

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

我觉得是需要的,从一个系统的角度看我们是一致的,但不保证有些系统永远要有提示,有些系统永远不想有提示,因此从通用的角度来说是要有这方法的

甚至,这方法应该保持向后的行为一致,默认是返回false的,由我们业务系统中重写,以免其它项目升级依赖库后行为不一样了

from ub-ria.

Exodia avatar Exodia commented on May 28, 2024

丢给 Action 做数据变化判断也好,我看来数据相等的判断逻辑也属于业务相关,被重写的需求应该是有的

from ub-ria.

yanghuabei avatar yanghuabei commented on May 28, 2024

ok,那就提供isFormDataChanged方法,默认返回false

现在有个新的问题,目前的保存initialFormData的方法,当FormView中有与表单内容有关的子Action时,initBehavior中获取的initialFormData不是最终值,子Action中的input类型控件值获取不到。

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

关系到这个:ecomfe/er#74

所以这个issue要提前来完成吗?现在的情况是,我希望基础库中这个isFormDataChanged是默认直接返回false的,保持向后一致性,我们的项目来重写

那么这个控制在项目范围内,就是相对好办的,前期我们也没有复杂的表单,可以先忍一忍

from ub-ria.

yanghuabei avatar yanghuabei commented on May 28, 2024

要么先把计划中的issue完成,子Action相关问题先不处理,等ecomfe/er#74 完成之后再更新这个issue的实现?

from ub-ria.

otakustay avatar otakustay commented on May 28, 2024

OK我觉得不错

from ub-ria.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.