| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- Ext.define('saas.view.sys.power.TreePanel', {
- extend: 'Ext.tree.Panel',
- xtype: 'sys-power-treepanel',
- dataUrl:'/api/account/role/list',
- deleteUrl:'/api/account/role/delete/',
- focusable:false,
- initComponent: function () {
- var me = this;
- me.store = Ext.create('Ext.data.TreeStore', {
- fields : ['name', 'id', 'description','code','type'],
- autoLoad:false,
- root : {
- text : 'Root',
- id : 0,
- expanded : true
- }
- }),
- me.columns =[{
- xtype: 'treecolumn',
- dataIndex: 'text',
- flex: 1
- }, {
- xtype: 'actioncolumn',
- width: 28,
- iconCls: 'x-hidden icon x-fa fa-plus',
- getClass: function(v, meta, rec) {
- if(rec.get('type')==0){
- return 'x-hidden icon x-fa fa-key';
- }else if(rec.get('leaf')){
- return 'x-hidden icon x-fa fa-pencil';
- }else{
- return 'x-hidden icon x-fa fa-plus';
- }
- },
- handler: function(treeview, rowIdx, colIdx, e) {
- var record = treeview.store.data.getAt(rowIdx);
- me.addItem(record);
- }
- }, {
- xtype: 'actioncolumn',
- width: 36,
- iconCls: 'x-hidden icon x-fa fa-trash-o',
- getClass: function(v, meta, rec) {
- if(rec.get('type')==0){
- return '';
- }else if(rec.get('leaf')){
- return 'x-hidden icon x-fa fa-trash-o';
- }else {
- return '';
- }
- },
- handler: function(treeview, rowIdx, colIdx, e) {
- var record = treeview.store.data.getAt(rowIdx);
- me.deleteItem(record);
- }
- }];
- me.setTree();
- me.callParent(arguments);
- },
- listeners: {
- itemmouseenter: function(th, record, item, index, e, eOpts) {
- var imgs = item.getElementsByClassName('icon x-fa');
- Ext.Array.each(imgs, function(img) {
- img.classList.remove('x-hidden');
- });
- },
- itemmouseleave: function(th, record, item, index, e, eOpts) {
- var imgs = item.getElementsByClassName('icon x-fa');
- Ext.Array.each(imgs, function(img) {
- img.classList.add('x-hidden');
- });
- },
- itemclick:function(view,record,index,d,e){
- if(!record.get('leaf')){
- return;
- }
- var classList = e.target.classList;
- var clickIcon = false;
- Ext.Array.each(classList, function(item) {
- if(item.indexOf('x-action-col')>-1){
- clickIcon = true;
- }
- });
- if(clickIcon){return;}
- //加载右边的grid
- var id = record.get('id');
- if(id&&id!=0){
- var grid = view.ownerCt.ownerCt.query('power-grid')[0];
- grid.initId = id;
- grid.store.load();
- if(record.get('type')==0){
- grid.dockedItems.items[1].down('[name=savepower]').setDisabled(true)
- }
- if(record.get('type')==1){
- grid.dockedItems.items[1].down('[name=savepower]').setDisabled(false)
- }
- }
- }
- },
- getData:function(){
- var me = this;
- var data = [];
- Ext.Ajax.request({
- url: me.dataUrl,
- params: '',
- method: 'GET',
- async:false,
- success: function(response, opts) {
- var _data = Ext.decode(response.responseText);
- if(_data&&_data.data){
- _data = _data.data;
- for (let index = 0; index < _data.length; index++) {
- var o = {
- code:_data[index].code,
- type:_data[index].type,
- id: _data[index].id,
- text: _data[index].name,
- name:_data[index].name,
- description:_data[index].description,
- leaf:true,
- iconCls: 'x-fa fa-user',
- }
- data.push(o);
- }
- }
- },
- failure: function(response, opts) {}
- });
- return data;
- },
- setTree:function(){
- var me = this;
- var data = me.getData();
- me.getStore().setRootNode({
- text: '角色列表',
- id: '0',
- iconCls: 'x-fa fa-list',
- expanded: true,
- children: data
- });
- },
- addItem:function(rec){
- var me=this;
- var isleaf = rec.get('leaf');
- var record = isleaf?rec:null;
- var view = this.ownerCt.getController().getView();
- this.dialog = view.add({
- xtype: 'sys-power-window',
- bind: {
- title: (record?'修改':'新增')+'角色'
- },
- _parent:this,
- record:record,
- session: true,
- });
- this.dialog.show();
- },
- deleteItem:function(rec){
- if(rec&&(rec.get('type')==0||!rec.get('leaf'))){
- return;
- }
- var me = this;
- saas.util.BaseUtil.deleteWarn('确定要删除该角色?',function(btn){
- if(btn == 'yes'){
- me.setLoading(true);
- saas.util.BaseUtil.request({
- url: me.deleteUrl + rec.get('id'),
- params: '',
- method: 'POST'
- })
- .then(function(localJson) {
- me.setLoading(false);
- if(localJson.success){
- saas.util.BaseUtil.showSuccessToast('删除成功');
- me.setTree();
- }
- })
- .catch(function(res) {
- me.setLoading(false);
- console.error(res);
- saas.util.BaseUtil.showErrorToast('删除失败: ' + res.message);
- });
- }
- });
- }
- });
|