在Odoo8.0中,所有弹窗位置都是固定的,不可以移动,因实际业务需求,用户在操作弹窗时,需要看到底下的原来浏览出来的数据,如果弹窗不能移动,就会挡住这些数据。
经过分析odoo的弹窗处理代码,并参考bootstrap处理机制,我在弹窗的js处理中增加一个指令来实现可移动功能。
此功能主要是使用js来实现,主要代码如下:
instance.web.Dialog.include({
open: function () {
var self = this;
this._super.apply(this, arguments);
$(".modal.in").draggable({
handle: ".modal-header"
});
return this;
}
}
);
实现原理就是重载instance.web.Dialog的open方法,在执行完原来的业务以后,新增加draggable方法处理可移动功能。