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