跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. web js extend

web js extend

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
11 帖子 4 发布者 5.6k 浏览 4 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • G 离线
    G 离线
    guwenfengvip163.com
    发表于 最后由 编辑
    #2

    @hui 在 web js extend 中说:

    extend

    继承重写用 include,
    继承复制用 extend

    把extend 换成include试试

    H 1 条回复 最后回复
    0
    • G guwenfengvip163.com

      @hui 在 web js extend 中说:

      extend

      继承重写用 include,
      继承复制用 extend

      把extend 换成include试试

      H 离线
      H 离线
      hui
      发表于 最后由 编辑
      #3

      @guwenfengvip163-com
      换成include页不行的,感觉inlude里面的没有进去啊,都没有alert的

      1 条回复 最后回复
      0
      • G 离线
        G 离线
        guwenfengvip163.com
        发表于 最后由 编辑
        #4

        你的JS 进去了么? alert('core o2m', o2m);  这一句能弹出来不

        H 1 条回复 最后回复
        0
        • G guwenfengvip163.com

          你的JS 进去了么? alert('core o2m', o2m);  这一句能弹出来不

          H 离线
          H 离线
          hui
          发表于 最后由 hui 编辑
          #5

          @guwenfengvip163-com
          alert('core o2m', o2m);这一句alert出来了,是include里面的没有alert出来

          1 条回复 最后回复
          0
          • G 离线
            G 离线
            guwenfengvip163.com
            发表于 最后由 digitalsatori 编辑
            #6

            @hui

            var FormView = require('web.FormView');
            
            FormView.include({
                defaults: _.extend({}, FormView.prototype.defaults, {
                    disable_autofocus: config.device.touch,
                }),
                init: function () {
                    this._super.apply(this, arguments);
                    if (config.device.size_class <= config.device.SIZES.XS) {
                        this.rendering_engine = new FormRenderingEngineMobile(this);
                    }
                },
            });
            
            H 1 条回复 最后回复
            0
            • 鲍 离线
              鲍 离线
              鲍永道
              发表于 最后由 鲍永道 编辑
              #7

              可以远程帮你看下,这方面的js扩展和自定义我写过很多了。
              qq:601939654

              1 条回复 最后回复
              0
              • G guwenfengvip163.com

                @hui

                var FormView = require('web.FormView');
                
                FormView.include({
                    defaults: _.extend({}, FormView.prototype.defaults, {
                        disable_autofocus: config.device.touch,
                    }),
                    init: function () {
                        this._super.apply(this, arguments);
                        if (config.device.size_class <= config.device.SIZES.XS) {
                            this.rendering_engine = new FormRenderingEngineMobile(this);
                        }
                    },
                });
                
                H 离线
                H 离线
                hui
                发表于 最后由 编辑
                #8

                @guwenfengvip163-com
                没反应的

                H W 2 条回复 最后回复
                0
                • H hui

                  @guwenfengvip163-com
                  没反应的

                  H 离线
                  H 离线
                  hui
                  发表于 最后由 hui 编辑
                  #9

                  @guwenfengvip163-com @鲍永道

                  这是@鲍永道 帮忙写的,目前可以达到的效果是在form视图中可以显示出跟list视图一样的search视图。

                  其他问题:在form视图中输入需要搜索的字段的值后也可以像在list视图中出现下拉式的选择搜索哪个字段,但是搜索后不会出现结果,需要点击面包屑导航的返回去才能看见结果。(也就是搜索后返回的还是等同于在list视图搜索的结果)

                  可改进:我觉得效果应该是搜索后直接跳转到对应的form视图。具体修改涉及到哪里的方法我就不清楚了。

                  /**
                   * @author taony
                   * @deprecated 用于odoo form可以search搜索
                   * @since 
                   */
                  odoo.define('web.taony_form_search', function (require) {
                      'use strict';
                  
                      var ControlPanel = require('web.ControlPanel');
                      var Bus = require('web.Bus');
                      var data = require('web.data');
                      var Widget = require('web.Widget');
                  
                      ControlPanel.include({
                          _update_search_view: function (searchview, is_hidden) {
                              var self = this;
                              if (searchview) {
                                  searchview.$buttons = this.nodes.$searchview_buttons;
                                  searchview.toggle_visibility(true);
                                  self.nodes.$breadcrumbs.width('50%');
                              }
                  
                              this.nodes.$searchview.toggle(true);
                              this.$el.toggleClass('o_breadcrumb_full', !!is_hidden);
                          }
                      });
                  });
                  
                  
                  H 1 条回复 最后回复
                  0
                  • H hui

                    @guwenfengvip163-com @鲍永道

                    这是@鲍永道 帮忙写的,目前可以达到的效果是在form视图中可以显示出跟list视图一样的search视图。

                    其他问题:在form视图中输入需要搜索的字段的值后也可以像在list视图中出现下拉式的选择搜索哪个字段,但是搜索后不会出现结果,需要点击面包屑导航的返回去才能看见结果。(也就是搜索后返回的还是等同于在list视图搜索的结果)

                    可改进:我觉得效果应该是搜索后直接跳转到对应的form视图。具体修改涉及到哪里的方法我就不清楚了。

                    /**
                     * @author taony
                     * @deprecated 用于odoo form可以search搜索
                     * @since 
                     */
                    odoo.define('web.taony_form_search', function (require) {
                        'use strict';
                    
                        var ControlPanel = require('web.ControlPanel');
                        var Bus = require('web.Bus');
                        var data = require('web.data');
                        var Widget = require('web.Widget');
                    
                        ControlPanel.include({
                            _update_search_view: function (searchview, is_hidden) {
                                var self = this;
                                if (searchview) {
                                    searchview.$buttons = this.nodes.$searchview_buttons;
                                    searchview.toggle_visibility(true);
                                    self.nodes.$breadcrumbs.width('50%');
                                }
                    
                                this.nodes.$searchview.toggle(true);
                                this.$el.toggleClass('o_breadcrumb_full', !!is_hidden);
                            }
                        });
                    });
                    
                    
                    H 离线
                    H 离线
                    hui
                    发表于 最后由 编辑
                    #10

                    @hui
                    我根据我的需要修改了一点点,让这个form视图中的search框只在我需要的model中显示出来,其他的model就不显示了。

                    有个疑问:在浏览器中查看控制台日志的时候会发现,进入list视图的时候,searchview是有值的,也就可以找到正在操作的model,但是当点击某一个product进入对应的form视图的时候,会先出现searchview的值为undefined的,然后出现searchview的值又回来的现象。我觉得应该跟update的方法有关,但是关键点在哪个,这个就没看懂了。

                    高手在哪里,出来指点指点。

                    代码如下:

                    /**
                     * @author taony
                     * @deprecated 用于odoo form可以search搜索
                     * @since 
                     */
                    odoo.define('web.taony_form_search', function (require) {
                        'use strict';
                    
                        var ControlPanel = require('web.ControlPanel');
                        var Bus = require('web.Bus');
                        var data = require('web.data');
                        var Widget = require('web.Widget');
                    
                        ControlPanel.include({
                    
                            _update_search_view: function (searchview, is_hidden) {
                                var self = this;
                                if (searchview) {
                                    var model = searchview.model
                                    if ('product.template' == model){
                                        searchview.$buttons = this.nodes.$searchview_buttons;
                                        searchview.toggle_visibility(true);
                                        self.nodes.$breadcrumbs.width('50%');
                                        }
                                }
                                this.nodes.$searchview.toggle(true);
                                this.$el.toggleClass('o_breadcrumb_full', !!is_hidden);
                            }
                        });
                    });
                    
                    1 条回复 最后回复
                    0
                    • H hui

                      @guwenfengvip163-com
                      没反应的

                      W 离线
                      W 离线
                      Wangliun
                      发表于 最后由 编辑
                      #11

                      @hui 请问在formView.extend中alert('append after---');不执行的原因是什么?

                      1 条回复 最后回复
                      0

                      你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                      厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                      有了你的建议,这篇帖子会更精彩哦 💗

                      注册 登录
                      回复
                      • 在新帖中回复
                      登录后回复
                      • 从旧到新
                      • 从新到旧
                      • 最多赞同


                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组