123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- Ext.define('erp.view.common.EmpDbfind.EmpTreegrid',{
- extend: 'Ext.tree.Panel',
- alias: 'widget.emptreegrid',
- id: 'emptreegrid',
- singleExpand: true,
- rootVisible: false,
- containerScroll : true,
- autoScroll: false,
- useArrows: true,
- cls: 'custom',
- bodyStyle:'background-color:#f1f1f1;',
- initComponent : function(){
- this.getEmployeeTree();
- this.callParent(arguments);
- },
- getEmployeeTree: function(parentid, key, caller){
- var me = this;
- me.setLoading(true);
- Ext.Ajax.request({
- url : basePath + 'hr/employee/tree.action',
- callback : function(options, success, response){
- if(success) {
- var res = new Ext.decode(response.responseText);
- if(res.success){
- me.getRootNode().appendChild(res.data);
- me.setLoading(false);
- } else if(res.exceptionInfo){
- showError(res.exceptionInfo);
- }
- } else {
- me.setLoading(false);
- }
- }
- });
- },
- store: Ext.create('Ext.data.TreeStore', {
- fields: [{
- name: 'em_id',
- type: 'int'
- },{
- name: 'em_defaultorid',
- type: 'int'
- },{
- name: 'em_defaulthsid',
- type: 'int'
- },'em_code','em_name','em_depart','em_defaultorname','em_position','em_mobile','em_uu'],
- root : {
- text: 'root',
- expanded: true
- }
- }),
- columns: [{
- text: '组织机构',
- xtype: 'treecolumn',
- flex: 1,
- dataIndex: 'em_defaultorname',
- renderer: function(val, meta, record) {
- var d = record.data.data || record.raw.data;
- return d.or_name;
- },
- filter: {
- xtype: 'textfield'
- }
- }, {
- text: '岗位名称',
- flex: 1.5,
- dataIndex: 'em_position',
- renderer: function(val, meta, record) {
- var d = record.data.data || record.raw.data;
- return d.em_position;
- },
- filter: {
- xtype: 'textfield'
- }
- }, {
- text: '员工编号',
- flex: 1,
- dataIndex: 'em_code',
- renderer: function(val, meta, record) {
- var d = record.data.data || record.raw.data;
- return d.em_code;
- },
- filter: {
- xtype: 'textfield'
- }
- }, {
- text: '员工姓名',
- flex: 1,
- dataIndex: 'em_name',
- renderer: function(val, meta, record) {
- var d = record.data.data || record.raw.data;
- return d.em_name;
- },
- filter: {
- xtype: 'textfield'
- }
- }, {
- text: '手机号',
- flex: 1.5,
- dataIndex: 'em_mobile',
- renderer: function(val, meta, record) {
- var d = record.data.data || record.raw.data;
- return d.em_mobile;
- },
- filter: {
- xtype: 'textfield'
- }
- }, {
- text: 'UU号',
- flex: 1,
- dataIndex: 'em_uu',
- renderer: function(val, meta, record) {
- var d = record.data.data || record.raw.data;
- return d.em_uu;
- },
- filter: {
- xtype: 'textfield'
- }
- }],
- listeners: {
- afterrender: function() {
- this.applyFilter();
- },
- checkchange: function(record, b) {
-
- },
- scrollershow: function(scroller) {
- if (scroller && scroller.scrollEl) {
- scroller.clearManagedListeners();
- scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
- }
- }
- },
- mixins: {
- treeFilter: 'erp.view.common.EmpDbfind.TreeFilter'
- },
- applyFilter: function() {
- var columns = this.view.headerCt.getGridColumns(true);
- this.filterContainers = new Array();
- for(var c=0; c < columns.length; c++) {
- var column = columns[c];
- if(column.filter){
- var filterContainerConfig = {
- id: column.id + '-filtersContainer',
- cls: this.filterContainerCls,
- layout: 'anchor',
- bodyStyle: {'background-color': 'transparent', 'height': 'auto'},
- border: false,
- width: 500,
- listeners: {
- scope: this,
- element: 'el',
- mousedown: function(e){
- e.stopPropagation();
- },
- click: function(e){
- e.stopPropagation();
- },
- keydown: function(e){
- e.stopPropagation();
- },
- keypress: function(e){
- e.stopPropagation();
- if(e.getKey() == Ext.EventObject.ENTER)
- {
- this.onFilterContainerEnter();
- }
- },
- keyup: function(e){
- e.stopPropagation();
- }
- },
- items: []
- };
- var fca = [].concat(column.filter);
- for(var ci = 0; ci < fca.length; ci++){
- var fc = fca[ci];
- Ext.applyIf(fc, {
- filterName: column.dataIndex,
- fieldLabel: column.text || column.header,
- hideLabel: fca.length == 1
- });
- Ext.apply(fc, {
- cls: this.filterFieldCls,
- fieldStyle: 'background: #eee;',
- itemId: fc.filterName,
- focusCls: 'x-form-field-cir',
- anchor: '-1'
- });
- var filterField = Ext.ComponentManager.create(fc);
- filterField.column = column;
- filterContainerConfig.items.push(filterField);
- }
- var filterContainer = Ext.create('Ext.container.Container', filterContainerConfig);
- filterContainer.render(column.el);
- column.setPadding = Ext.Function.createInterceptor(column.setPadding, function(h){return false;});
- this.filterContainers = Ext.Array.merge(this.filterContainers, filterContainer.items.items);
- }
- }
- },
- onFilterContainerEnter: function() {
- this.clearFilter();
- var me = this;
- Ext.each(this.filterContainers, function(f){
- if(!Ext.isEmpty(f.value)) {
- me.filterBy(f.value, f.filterName);
- }
- });
- }
- });
|