| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- 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/',
- initComponent: function () {
- var me = this;
- me.store = Ext.create('Ext.data.TreeStore', {
- fields : ['name', 'id', 'description','code'],
- 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('code')=='ROLE_ADMIN'){
- 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('code')=='ROLE_ADMIN'){
- 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();
- }
- }
- },
- 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,
- 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();
- var document = Ext.create('saas.view.document.kind.Kind',{});
- this.dialog = view.add({
- xtype: 'document-kind-childwin',
- bind: {
- title: (record?'修改':'新增')+'角色'
- },
- dataKind:'personpower',
- belong:document.etc['personpower'],
- _parent:this,
- record:record,
- session: true,
- onSave:function(){
- var me = this;
- var belong = this.belong;
- me.setLoading(true);
- var form=this.down('form');
- var params = {};
- var names = belong.columns.map(column => column.dataIndex);
- Ext.Array.each(names,function(name) {
- if(name){
- var dataField = form.down('[name='+name+']');
- if(dataField&&dataField.value){
- params[name] = dataField.value;
- params._value = dataField.value;
- }
- }
- });
- var idField = form.down('[name='+belong.keyField+']');
- params[belong.keyField] = idField.value || 0;
- //保存接口
- saas.util.BaseUtil.request({
- url: idField.value?belong.updateUrl:belong.reqUrl,
- params: JSON.stringify(params),
- method: 'POST'
- })
- .then(function(localJson) {
- me.setLoading(false);
- if(localJson.success){
- saas.util.BaseUtil.showSuccessToast('保存成功');
- me._parent.setTree();
- form.ownerCt.close();
- }
- })
- .catch(function(res) {
- me.setLoading(false);
- console.error(res);
- saas.util.BaseUtil.showErrorToast('保存失败: ' + res.message);
- });
- }
- });
- this.dialog.show();
- },
- deleteItem:function(rec){
- if(rec&&(rec.get('code')=='ROLE_ADMIN'||!rec.get('leaf'))){
- return;
- }
- var me = this;
- 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);
- });
- }
- });
|