import _ from 'lodash' import initMainTab from './controls/MainTab' import initGrid from './controls/grid' import initTextfield from './controls/input/textfield' import initToolbar from './controls/toolbar/toolbar' import initSplitter from './controls/splitter' import initCombo from './controls/input/combo' import initSearch from './controls/input/search' import initRows from './controls/rows' import initCols from './controls/cols' import initButton from './controls/button' import initStores from './controls/stores' export function init() { // 引入 filters 过滤插件 Ext.require([ 'Ext.grid.filters.Filters' ]) // 启用 tooltip 快捷提示 Ext.QuickTips.init(); // 定义日期格式化方法 if (Ext.util && Ext.util.Format) { Ext.apply(Ext.util.Format, { dateFormat: 'Y-m-d' }); } Ext.define("Ext.locale.zh_CN.picker.Date", { override: "Ext.picker.Date", format: "Y-m-d", }); Ext.define("Ext.locale.zh_CN.form.field.Date", { override: "Ext.form.field.Date", format: "Y-m-d", }); Ext.define("Ext.locale.zh_CN.grid.PropertyColumnModel", { override: "Ext.grid.PropertyColumnModel", format: "Y-m-d", }); Ext.define("Ext.locale.zh_CN.view.AbstractView", { override: "Ext.view.AbstractView", loadingText: "读取中..." }); Ext.define("Ext.locale.zh_CN.grid.header.Container", { override: "Ext.grid.header.Container", sortAscText: "正序", sortDescText: "倒序", lockText: "锁定列", unlockText: "解除锁定", columnsText: "列" }); /** * 改变事件的获取方式. * 具体见: ext-all-debug.js:23216 addListener * https://docs.sencha.com/extjs/6.6.0/classic/Ext.util.Observable.html#method-addListener * https://docs.sencha.com/extjs/6.6.0/classic/src/Observable.js.html#Ext.mixin.Observable-method-addListener */ const _doAddListener = Ext.mixin.Observable.prototype.doAddListener Ext.mixin.Observable.prototype.doAddListener = function (ename, fn, scope, options, order, caller, manager) { if (typeof fn === 'string' && _.startsWith(fn, 'scope.')) { // console.log('doAddListener', ename, fn, scope, options, order, caller, manager) const vm = this.lookupViewModel() if (vm && vm.yvanScope) { scope = vm.yvanScope fn = scope[fn.substr('scope.'.length)] } } _doAddListener.call(this, ename, fn, scope, options, order, caller, manager) } initGrid() initMainTab() initTextfield() initCombo() initRows() initCols() initToolbar() initSplitter() initButton() initStores() initSearch() }