123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- Ext.define('erp.view.common.CateTreepanelDbfind.CateStrTree',{
- extend: 'Ext.tab.Panel',
- alias: 'widget.cateStrDbfindTree',
- id: 'tree-panel',
- defaults: {
- bodyStyle:'background-color:#f1f1f1;',
- xtype: 'container'
- },
- border : false,
- enableDD : false,
- split: true,
- width : '100%',
- height: '100%',
- expandedNodes: [],
- bodyStyle: 'background-color:#f1f1f1;',
- mode: 'SINGLE',
- initComponent : function(){
- this.getTreeRootNode(0, key, caller);
- this.callParent(arguments);
- if (trigger.mode) {
- this.mode = trigger.mode;
- }
- },
- getTreeRootNode: function(parentid, key, caller){
- var me = this;
- Ext.Ajax.request({//拿到tree数据
- url : basePath + 'common/getAllCateTree.action',
- params: {
- key: key,
- caller: caller1
- },
- callback : function(options, success, response){
- var res = new Ext.decode(response.responseText);
- if(res.success){
- var data = res.data, keys = Ext.Object.getKeys(data), title = '', d = {};
- for(var i in keys) {
- title = keys[i];
- d = data[title];
- if(d) {
- me.add({
- title: title,
- items: [{
- xtype: 'treepanel',
- height: '100%',
- singleExpand: true,
- rootVisible: false,
- containerScroll : true,
- autoScroll: false,
- useArrows: true,
- cls: 'custom',
- store: Ext.create('Ext.data.TreeStore', {
- fields: me.treefields,
- root : {
- text: 'root',
- expanded: true,
- children: d
- }
- }),
- columns: me.treecolumns,
- listeners: {
- checkchange: function(record, b) {
- var ts = me.query('treepanel');
- if(me.mode == 'SINGLE' && b) {
- Ext.each(ts, function(t){
- var ch = t.getChecked();
- Ext.each(ch, function(c){
- if(c.id != record.id) {
- c.set('checked', false);
- }
- });
- });
- }
- }
- }
- }]
- });
- }
- }
- if(res.findToUi){
- me.dbfinds = res.findToUi;
- }
- } else if(res.exceptionInfo){
- showError(res.exceptionInfo);
- }
- }
- });
- },
- listenerNode: function(node){
- var me = this;
- var Node = node || Ext.getCmp('tree-panel').store.tree.root;
- Ext.each(Node,function(e){
- e.on('beforecollapse',function(p,o){
- });
- if(e.data['leaf'] == false){
- me.listenerNode(e);
- }
- });
-
- },
- openCloseFun: function(){
- var o = Ext.getCmp("open");
- var c = Ext.getCmp("close");
- var tree = Ext.getCmp('tree-panel');
- if(o.hidden==false&&c.hidden==true){
- tree.expandAll();
- o.hide();
- c.show();
- }else{
- tree.collapseAll();
- o.show();
- c.hide();
- }
- },
- listeners: {//滚动条有时候没反应,添加此监听器
- scrollershow: function(scroller) {
- if (scroller && scroller.scrollEl) {
- scroller.clearManagedListeners();
- scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
- }
- },
- //单选
- checkchange: function(node, checked){
- var tree = Ext.getCmp('tree-panel');
- var checkedList = tree.getChecked();
- Ext.each(checkedList,function(tr,index){
- tr.set('checked', false);
- });
- node.set('checked', true);
- }
- },
- /**
- * 找到所有已展开的节点,包括当前被选中的节点
- * @param record 当前被选中的节点
- */
- getExpandedItems: function(record){
- var me = this;
- me.getRecordParents(record);
- if(record.isLeaf()){
- me.expandedNodes.push(record);
- }
- },
- getRecordParents: function(record, parent){
- var me = this;
- if(!parent){
- parent = me.store.tree.root;
- me.expandedNodes = [];
- }
- if(parent.childNodes.length > 0){
- Ext.each(parent.childNodes, function(){
- if(this.isExpanded()){
- me.expandedNodes.push(this);
- if(this.childNodes.length > 0){
- me.getRecordParents(record, this);
- }
- }
- });
- }
- },
- getExpandItem: function(root){
- var me = this;
- if(!root){
- root = this.store.tree.root;
- }
- var node = null;
- if(root.childNodes.length > 0){
- Ext.each(root.childNodes, function(){
- if(this.isExpanded()){
- node = this;
- if(this.childNodes.length > 0){
- var n = me.getExpandItem(this);
- node = n == null ? node : n;
- }
- }
- });
- }
- return node;
- },
- getChecked: function() {
- var trees = this.query('treepanel'), records = new Array();
- Ext.each(trees, function(t){
- var c = t.getChecked();
- if(c.length > 0) {
- records = c;
- }
- });
- return records;
- },
- treefields: [{
- name: 'ca_id',
- type: 'int'
- },'ca_code','ca_pcode','ca_name','ca_description','ca_class','currency','ca_asstype','ca_assname'],
- treecolumns: [{
- dataIndex : 'ca_code',
- xtype: 'treecolumn',
- header: '科目',
- flex: 1,
- renderer: function(val, meta, record) {
- return record.raw.data.ca_code;
- }
- },{
- dataIndex : 'ca_description',
- header: '描述',
- flex: 2,
- renderer: function(val, meta, record) {
- return record.raw.data.ca_description;
- }
- },{
- dataIndex : 'ca_currency',
- header: '外币',
- flex: 0.5,
- renderer: function(val, meta, record) {
- return record.raw.data.ca_currency;
- }
- },{
- dataIndex : 'ca_assname',
- header: '辅助核算',
- flex: 2,
- renderer: function(val, meta, record) {
- return record.raw.data.ca_assname;
- }
- }]
- });
|