KindController.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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,view = me.getView(),vm = me.getViewModel(),defaultKind;
  12. if(view.defaultType!=''){
  13. defaultKind = view.defaultType //其他单表界面
  14. vm.setData({'dataKind':{'value':defaultKind}});
  15. }else{
  16. defaultKind=vm.getData()['dataKind'].value //类别合并界面
  17. }
  18. if(grid.ownerCt._config){
  19. defaultKind = grid.ownerCt._config;
  20. vm.setData({'dataKind':{'value':grid.ownerCt._config}});
  21. }
  22. var etc = view.etc[defaultKind];
  23. var store = vm.getStore(defaultKind);
  24. store.load();
  25. grid.reconfigure(store, me.insertActionColumn(etc.columns));
  26. },
  27. onKindToggle:function(container, button, pressed){
  28. var me = this,
  29. name = button.value,
  30. view = me.getView(),
  31. grid = me.lookup('document-kind-Grid'),
  32. vm = me.getViewModel(),
  33. etc = view.etc[name],
  34. store=vm.getStore(name);
  35. var columns=me.insertActionColumn(etc.columns);
  36. grid.reconfigure(store, columns);
  37. if(store) store.reload();
  38. vm.set('title', button.typeText);
  39. },
  40. onAdd:function(){
  41. var me=this,
  42. dataKind=me.getViewModel().getData()['dataKind'].value;
  43. me.createDialog(dataKind);
  44. },
  45. onRefresh:function(){
  46. var me = this;
  47. me.view.items.items[0].store.load();
  48. },
  49. insertActionColumn:function(columns){
  50. var me=this;
  51. if(columns.length>0 && columns[0].xtype!='actioncolumn'){
  52. return Ext.Array.insert(columns,0,[{
  53. xtype:'actioncolumn',
  54. text:'操作',
  55. items: [{
  56. tooltip: '编辑',
  57. iconCls: 'x-fa fa-pencil fa-fw',
  58. handler: me.onEdit,
  59. scope:this
  60. },{
  61. text:'删除',
  62. iconCls:'x-fa fa-trash-o fa-fw',
  63. tooltip: '删除',
  64. handler: me.onDelete,
  65. scope:this
  66. }]
  67. }]);
  68. }
  69. return columns;
  70. },
  71. onEdit:function(grid,row,col){
  72. var me=this,
  73. dataKind=me.getViewModel().getData()['dataKind'].value;
  74. rec = grid.getStore().getAt(row);
  75. this.createDialog(dataKind,rec);
  76. },
  77. onDelete:function(grid,row,col){
  78. var me=this,
  79. view=me.getView(),
  80. dataKind=me.getViewModel().getData()['dataKind'].value;
  81. rec = grid.getStore().getAt(row);
  82. var keyV=rec.get(view.etc[dataKind].keyField);
  83. //删除接口
  84. this.BaseUtil.request({
  85. url: view.etc[dataKind].delUrl+'/'+keyV,
  86. method: 'POST'
  87. })
  88. .then(function(localJson) {
  89. if(localJson.success){
  90. showToast('删除成功');
  91. grid.store.load();
  92. }
  93. })
  94. .catch(function(res) {
  95. console.error(res);
  96. showToast('删除失败: ' + res.message);
  97. });
  98. },
  99. createDialog: function(dataKind,record) {
  100. var view = this.getView();var me=this;
  101. this.isEdit = !!record;
  102. this.dialog = view.add({
  103. autoScroll:true,
  104. xtype: 'document-kind-childwin',
  105. bind: {
  106. title: record ? '修改{title}' : '新增{title}'
  107. },
  108. dataKind:dataKind,
  109. belong:this.getView().etc[dataKind],
  110. _parent:this.getView(),
  111. record:record,
  112. session: true
  113. });
  114. this.dialog.show();
  115. }
  116. });