KindController.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /**
  2. * Created by zhouy on 2018/10/18.
  3. */
  4. Ext.define('saas.view.document.kind.KindController', {
  5. extend: 'Ext.app.ViewController',
  6. alias: 'controller.document-kind',
  7. //工具类
  8. FormUtil: Ext.create('saas.util.FormUtil'),
  9. BaseUtil: Ext.create('saas.util.BaseUtil'),
  10. loadDefualt:function(grid){
  11. var me=this,
  12. view = me.getView(),
  13. vm = me.getViewModel(),
  14. defaultKind=vm.getData()['dataKind'].value,
  15. etc = view.etc[defaultKind];
  16. grid.reconfigure(vm.getStore(defaultKind), me.insertActionColumn(etc.columns));
  17. },
  18. onKindToggle:function(container, button, pressed){
  19. var me = this,
  20. name = button.value,
  21. view = me.getView(),
  22. grid = me.lookup('document-kind-Grid'),
  23. vm = me.getViewModel(),
  24. etc = view.etc[name],
  25. store=vm.getStore(name);
  26. var columns=me.insertActionColumn(etc.columns);
  27. grid.reconfigure(store, columns);
  28. if(store) store.reload();
  29. vm.set('title', button.text);
  30. },
  31. onAdd:function(){
  32. var me=this,
  33. dataKind=me.getViewModel().getData()['dataKind'].value;
  34. me.createDialog(dataKind);
  35. },
  36. onRefresh:function(){
  37. },
  38. insertActionColumn:function(columns){
  39. var me=this;
  40. if(columns.length>0 && columns[0].xtype!='actioncolumn'){
  41. return Ext.Array.insert(columns,0,[{
  42. xtype:'actioncolumn',
  43. items: [{
  44. tooltip: '编辑',
  45. iconCls: 'x-fa fa-pencil fa-fw',
  46. handler: me.onEdit,
  47. scope:this
  48. },{
  49. text:'删除',
  50. iconCls:'x-fa fa-trash-o fa-fw',
  51. tooltip: '删除',
  52. handler: me.onDelete,
  53. scope:this
  54. }]
  55. }]);
  56. }
  57. return columns;
  58. },
  59. onEdit:function(grid,row,col){
  60. var me=this,
  61. view=me.getView(),
  62. dataKind=me.getViewModel().getData()['dataKind'].value;
  63. rec = grid.getStore().getAt(row);
  64. var keyField=rec.get(view.etc[dataKind].keyField);
  65. this.createDialog(dataKind,rec);
  66. },
  67. onDelete:function(grid,row,col){
  68. var me=this,
  69. view=me.getView(),
  70. dataKind=me.getViewModel().getData()['dataKind'].value;
  71. rec = grid.getStore().getAt(row);
  72. var keyV=rec.get(view.etc[dataKind].keyField);
  73. //删除接口
  74. this.BaseUtil.request({
  75. url: view.etc[dataKind].delUrl,
  76. params: {id:keyV},
  77. method: 'POST'
  78. })
  79. .then(function(res) {
  80. var localJson = new Ext.decode(res.responseText);
  81. if(localJson.success){
  82. Ext.Msg.alert('提示','删除成功');
  83. grid.store.load();
  84. }
  85. })
  86. .catch(function() {
  87. Ext.Msg.alert('提示','删除失败');
  88. });
  89. },
  90. createDialog: function(dataKind,record) {
  91. var view = this.getView();var me=this;
  92. this.isEdit = !!record;
  93. this.dialog = view.add({
  94. xtype: 'document-kind-childwin',
  95. bind: {
  96. title: record ? '修改{title}类型' : '新增{title}类型'
  97. },
  98. dataKind:dataKind,
  99. belong:this.getView().etc[dataKind],
  100. _parent:this.getView(),
  101. record:record,
  102. session: true
  103. });
  104. this.dialog.show();
  105. }
  106. });