当我的应用程序是 RTL 时,如何解决 Extjs 中的问题?

How to fix issue in Extjs when my app is RTL?

当我将面板放在非放置区时,Extjs 以错误的方向将拖动元素动画回源元素,如何解决此问题?

这是我的 Dragzone 和 DropZone 代码,当我将我的应用程序更改为 LTR 时它很好,当我将其切换回 RTL 时问题再次出现。

function calEventPnlSourceDD(sender){
  sender.mX=sender.getX();
  sender.dragZone = new Ext.dd.DragZone(sender.getEl(), {
        ddGroup: 'dgCal',
        getDragData: function(e) {
            var sourceEl = e.getTarget(sender.itemSelector, 10);
            if (sourceEl) {
                /*sourceEl=sourceEl.parentElement;*/                             
                d = sourceEl.cloneNode(true);
                d.id = Ext.id();
                return {
                    ddel: d,
                    sourceEl: sourceEl,
                    repairXY: Ext.fly(sourceEl).getXY()
                }
            }
        },
        getRepairXY: function() {
                return this.dragData.repairXY;
          },
        onDrag: function(e) {
        
        }
  });
}
function calEventPnlTargetDD(sender){
 sender.dropZone = new Ext.dd.DropZone(sender.el, {
        ddGroup: 'dgCal',
        isDropAllowed: false,
        getTargetFromEvent: function(e) {
            return e.getTarget(sender.rowSelector);
        },              
        getAllowed: function(e) {
            var proto = Ext.dd.DropZone.prototype;
            var tg=e.target;           
            this.isDropAllowed=true;  
            return proto.dropAllowed;
        },
        notifyOver: function(source,e,data) {           
            return this.getAllowed(e);
        },
        onNodeDrop: function(target, dd, e, data) {            
         return this.isDropAllowed;
        }
  });

9 天后我找到了问题的原因,在我的本地文件 local-he.js 我删除了这一行:

Ext.define('Ext.locale.container.Viewport',{override:'Ext.container.Viewport',requires:['Ext.rtl.*'],rtl:!0});

因为我已经在 UniMainModule 中将我的应用程序定义为 RTL。

我使用 Unigui 框架 Delphi :-)