//表参照的Combox Ext.define('DsExt.ux.RefTableCombox', { extend: 'Ext.form.field.ComboBox', constructor: function (config) { config = Ext.apply({ queryMode: 'local', selectOnTab: true, typeAhead: true, triggerAction: 'all', selectOnFocus: true, editable: true }, config); this.callParent([config]); } }); //枚举参照的Combox Ext.define('DsExt.ux.RefEnumCombox', { extend: 'Ext.form.field.ComboBox', constructor: function (config) { config = Ext.apply({ queryMode: 'local', triggerAction: 'all', selectOnTab: true, typeAhead: true, selectOnFocus: true, editable: true, valueField: 'EnumValueId', displayField: 'EnumValueName' }, config); this.callParent([config]); } }); //枚举参照的Combox Ext.define('DsExt.ux.RefEnumComboxList', { extend: 'Ext.form.field.ComboBox', constructor: function (config) { config = Ext.apply({ queryMode: 'local', triggerAction: 'all', selectOnTab: true, typeAhead: true, selectOnFocus: true, editable: true, valueField: 'EnumValueName', displayField: 'EnumValueName' }, config); this.callParent([config]); } }); Ext.define('DsExtEnumModel', { extend: 'Ext.data.Model', fields: [{ name: 'EnumValueId', type: 'string' }, { name: 'EnumValueName', type: 'string' }, { name: 'EnumValueAndName', type: 'string' }, { name: 'EnumValueName_2', type: 'string' }] }); //枚举参照的Store Ext.define('DsExt.ux.RefEnumStore', { extend: 'Ext.data.Store', model: 'DsExtEnumModel', constructor: function (config) { /* config = Ext.apply( { proxy: { type: 'ajax', url: '/CommMng/PubSys/GetEnumValueList', reader: { root: 'data' } } }, config);*/ var proxy = { type: 'ajax', url: '/CommMng/PubSys/GetEnumValueList', reader: { root: 'data' } }; config.proxy = proxy; this.callParent([config]); } }); Ext.define('DsExtEnum_AllModel', { extend: 'Ext.data.Model', fields: [{ name: 'EnumValueId', type: 'string' }, { name: 'EnumValueName', type: 'string' }, { name: 'EnumValueName_2', type: 'string' }, { name: 'VerNo', type: 'string' }] }); Ext.define('DsExt.ux.RefEnum_AllStore', { extend: 'Ext.data.Store', model: 'DsExtEnum_AllModel', constructor: function (config) { /* config = Ext.apply( { proxy: { type: 'ajax', url: '/CommMng/PubSys/GetEnumValueList', reader: { root: 'data' } } }, config);*/ var proxy = { type: 'ajax', url: '/CommMng/PubSys/GetEnumValueList', reader: { root: 'data' } }; config.proxy = proxy; this.callParent([config]); } }); //表参照的Store Ext.define('DsExt.ux.RefTableStore', { extend: 'Ext.data.Store', constructor: function (config) { var proxy = { type: 'ajax', timeout: 120000, url: config.proxy.url, reader: { root: 'data' } }; config.proxy = proxy; this.callParent([config]); } }); Ext.define('MsFeeOP', { extend: 'Ext.data.Model', idProperty: 'OPID', fields: [{ name: 'OPID', type: 'string' }] }); //Array.prototype.contains = function (obj) { // var i = this.length; // while (i--) { // if (this[i] === obj) { // return true; // } // } // return false; //}; ///封装对模糊查询的支持、按tab/enter、未选择时按tab的默认操作 Ext.define('DsExt.ux.DCombox', { extend: 'Ext.form.field.ComboBox', constructor: function (config) { config = Ext.apply({ queryMode: 'local', triggerAction: 'all', selectOnTab: true, typeAhead: true, selectOnFocus: true, editable: true, forceSelection: true, listeners: { beforequery: function (e) { return FilterCombox(e); }, specialkey: function (field, e) { //将回车转义成tab var combo = e.combo; if (e.getKey() == e.ENTER) { e.keyCode = 9; } if (e.keyCode == 9) { //将combo //alert(field.value); if (field.value == null) { _name = this.store.data.keys[0]; this.setValue(_name); } else { if (field.value.replace(/\s*/g, "") == "") { _name = this.store.data.keys[0]; this.setValue(_name); } } } } } }, config); this.callParent([config]); } }); //用于关联枚举类型combox的加载 function getEnumcombox(param) { //调用方法 //this.getEnumcombox = getEnumCombox({ LABEL: '合同状态',NAME:'Mainstate', FLEX:5, enumTypeId: 3 }); BLANKVALUE = ""; TOOLTIP = ""; allowBlank = true; if (!isNullorEmpty(param.ALLOWBLANK)) { if (param.ALLOWBLANK == false) allowBlank = false; } readOnly = false; if (!isNullorEmpty(param.readOnly)) { if (param.readOnly == true) readOnly = true; } TOOLTIP = ""; if (!isNullorEmpty(param.TOOLTIP)) { TOOLTIP = param.TOOLTIP; } var combox = Ext.create('DsExt.ux.RefEnumCombox', { fieldLabel: param.LABEL, flex: param.FLEX, labelAlign: 'right', //labelWidth: labelWidth, //blankText: BLANKVALUE, //value: param.DEFAULTVALUE, forceSelection: true, store: Ext.create('DsExt.ux.RefTableStore', { model: 'DsExtEnumModel', proxy: { url: '/CommMng/PubSys/GetEnumValueList' }, autoLoad: true, listeners: { 'beforeload': function (store, op, options) { Ext.apply(store.proxy.extraParams, { enumTypeId: param.enumTypeId }); } } }), name: param.NAME, valueField: 'EnumValueId', displayField: 'EnumValueName', id: param.id, allowBlank: allowBlank, listeners: param.listeners, tooltip: TOOLTIP, value: param.VALUE, readOnly: readOnly }); return combox; } function EnumcomboxAddRecord(combox, vf, df) { combox.store.add({ EnumValueId: vf, EnumValueName: df }); return combox; } function comboxAddRecord(combox, Valuefield, displayfield) { v = combox.valueField + ""; d = combox.displayField + ""; var record = { v: Valuefield, d: displayfield }; combox.store.add(record); //alert(combox.displayField); } ///参数说明:URLINFO保存文件url的表的主键值; //UrlType:一个字串 程序内固化其内容,一个字串会对应一组数据 包括TableName表名 KeyName表主键字段名 UrlName表中保存文件路径的字段名 //ResultAction:调用此方法的js实体需实现这个函数,以便执行保存操作后操作。 //该函数需要两个参数,参数1为一个传回的str,参数2为this作用域,函数体内容为【在这个函数内用str对this作用域的元素做xxx操作】 //_this:调用此方法的js实体的this作用域 function UpLoadFile(URLINFO, UrlType, ResultAction, _this) { me = this; var imgform = new Ext.FormPanel({ region: 'center', labelWidth: 40, frame: true, //bodyStyle: 'padding:5px 5px 0', //autoScroll: true, border: false, fileUpload: true, items: [{ xtype: 'fileuploadfield', id: 'LoadFile', name: 'LoadFile', emptyText: '请选择文件', fieldLabel: '文件', buttonText: '选择文件', //20191008 对上传的文件扩展名暂时不做限制 //regex: /^.+\.(jpg|jpeg|png|pdf|gif|bmp|tiff)$/, //regexText: "只能选择jpg|jpeg|png|pdf|gif|bmp|tiff格式的文件", allowBlank: false, buttonCfg: { iconCls: 'uploaddialog' }, anchor: '99%' }], buttons: [{ text: '上传', type: 'submit', handler: function (record) { var UserFilePath = Ext.getCmp('LoadFile').getValue(); //if (!CheckFileExt(UserFilePath, /.frx/i)) { // Ext.Msg.show({ title: '错误', msg: '请确认你上传的文件为frx文件!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); // return; //} if (!imgform.form.isValid()) { return; } imgform.form.submit({ url: '/CommMng/BasicDataRef/FileUpload', waitMsg: '正在上传', method: 'POST', submitEmptyText: false, async: false, params: { URLINFO: Ext.JSON.encode(URLINFO), UrlType: UrlType }, success: function (form, action) { win.close(this); Ext.Msg.show({ title: '提示', msg: '上传成功!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); if (typeof ResultAction == 'function') { ResultAction(action, _this); } }, failure: function (form, action) { form.reset(); win.close(this); if (action.failureType == Ext.form.Action.SERVER_INVALID) { Ext.MessageBox.alert('警告', action.result.errors.msg); } } }); } }, { text: '关闭', type: 'submit', handler: function () { win.close(this); } }] }); var win = new Ext.Window({ title: "上传文件", width: 360, height: 100, modal: true, resizable: false, border: false, items: imgform }); win.show(); } //枚举参照的Combox Ext.define('DsExt.ux.TaskStateCombox', { extend: 'Ext.form.field.ComboBox', constructor: function (config) { config = Ext.apply({ queryMode: 'local', triggerAction: 'all', selectOnTab: true, typeAhead: true, selectOnFocus: true, editable: true, valueField: 'STATEKEY', displayField: 'NAME' }, config); this.callParent([config]); } }); //用于关联枚举类型combox的加载 function getTaskStateCombox(param) { //调用方法 //this.TaskStateCombox = getTaskStateCombox({ LABEL: '押箱状态',NAME:'YXSTATE', FLEX:1, PROP5: 'MsOp_YAXIANG' }); BLANKVALUE = ""; TOOLTIP = ""; allowBlank = true; if (!isNullorEmpty(param.ALLOWBLANK)) { if (param.ALLOWBLANK == false) allowBlank = false; } readOnly = false; if (!isNullorEmpty(param.readOnly)) { if (param.readOnly == true) readOnly = true; } TOOLTIP = ""; if (!isNullorEmpty(param.TOOLTIP)) { TOOLTIP = param.TOOLTIP; } var combox = Ext.create('DsExt.ux.RefEnumCombox', { fieldLabel: param.LABEL, flex: param.FLEX, labelAlign: 'right', //labelWidth: labelWidth, //blankText: BLANKVALUE, //value: param.DEFAULTVALUE, forceSelection: true, store: Ext.create('DsExt.ux.RefTableStore', { model: 'SysTaskStatemb', proxy: { url: '/SysMng/SysTask/GetTaskState_Combox' }, autoLoad: true, listeners: { 'beforeload': function (store, op, options) { Ext.apply(store.proxy.extraParams, { PROP5: param.PROP5 }); } } }), name: param.NAME, valueField: 'STATEKEY', displayField: 'NAME', id: param.id, allowBlank: allowBlank, listeners: param.listeners, tooltip: TOOLTIP, value: param.VALUE, readOnly: readOnly }); return combox; } //将一个tab的id=itemname的tab设为active function setTabActive(tab, itemname) { var children = tab.items; if (children) { for (var i = 0, len = children.length; i < len; i++) { if (children.items[i].id) { if (children.items[i].id == itemname) { tab.setActiveTab(i); finded = true; return finded; } } } } return false; } Ext.define('XiaLaKuangModel', { extend: 'Ext.data.Model', idProperty: 'VALUE', fields: [ { name: 'VALUE', type: 'string' }, { name: 'NAME', type: 'string' }, { name: 'CodeAndName', type: 'string' } ] }); function CheckAuthority(modname) { var obj; var value; if (window.ActiveXObject) { obj = new ActiveXObject('Microsoft.XMLHTTP'); } else if (window.XMLHttpRequest) { obj = new XMLHttpRequest(); } obj.open('POST', '/CommMng/BasicDataRef/CheckAuthority', false); obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); obj.send('modname=' + modname); var result = Ext.JSON.decode(obj.responseText); return result.Success; }