使用moy快速开发后台管理系统(五)

moy是什么?

moy 是基于模型框架 keroUI 框架 neoui 实现的应用框架,是前端集成解决方案,为企业级应用开发而生。
github地址:https://github.com/iuap-design/tinper-moy

step 5. 实现grid数据编辑和删除

  1. 因为在上面已经在html中加入了field为operate的列加入到了表格中了,见step 3。所以我们现在针对该属性定义的rederType属性中的值optFun,在pages/cardtable/cardtable.js中的viewModel对象中加入对应的方法,就可以显示出修改和删除图标了:

    var viewModel = {
      ...
      
      //定义操作列的内容 begin
      optFun: function(obj) {
         var delfun = "data-bind=click:event.delClick.bind($data," + (obj.gridObj.getDataTableRowIdByRow(obj.row)) + ")";
         var editfun = "data-bind=click:event.editClick.bind($data," + (obj.gridObj.getDataTableRowIdByRow(obj.row)) + ")";
         obj.element.innerHTML = '<div><i class="op uf uf-pencil" title="修改"' + editfun + '></i>' + '<i class=" op icon uf uf-del title="删除" ' + delfun + '></i></div>';
         ko.applyBindings(viewModel, obj.element);
      },
      //定义操作列的内容 end
    
      ...
    }
    
  2. optFun方法中动态的加入了修改删除图标,并绑定了相应的点击事件delClickeditClick。所以最后我们再往pages/cardtable/cardtable.js中的viewModel.ev中加入对应的方法:

    var viewModel = {
         ...
         event: {
             ...
                //点击事件 begin
                 editClick: function(index) {
                     viewModel.index = index;
                     $('#editPage').find('.u-msg-title').html("编辑");
                     viewModel.event.clearDt(viewModel.dtnew);
                     var row = viewModel.dt1.getSelectedRows()[0];
               viewModel.dtnew.setSimpleData(viewModel.dt1.getRowByRowId(index).getSimpleData());
                     $('#code').attr("readonly", "readonly");
                     window.md = u.dialog({
                         id: 'editDialog',
                         content: '#editPage',
                         hasCloseMenu: true
                     });
                 },
                 delClick: function(index) {
                     var row = viewModel.dt1.getSelectedRows()[0];
                     var data = viewModel.dt1.getRowByRowId(index).getSimpleData()
                     u.confirmDialog({
                         msg: "是否删除" + data.name + "?",
                         title: "删除确认",
                         onOk: function() {
                             viewModel.dt1.removeRowByRowId(index);
                         },
                         onCancel: function() {}
                     });
                 }
           //点击事件 end
         }
    }
    
  3. 因为修改和新增是用的同一个弹出页面,所以现在,修改和删除功能也完成了


到这里,我们已经完成所有的之前提到的功能,但仅仅是完成,并不完善。

(全剧终)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • moy是什么? moy 是基于模型框架 kero 和 UI 框架 neoui 实现的应用框架,是前端集成解决方案,...
    古朋阅读 556评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,140评论 2 17
  • moy是什么? moy 是基于模型框架 kero 和 UI 框架 neoui 实现的应用框架,是前端集成解决方案,...
    古朋阅读 597评论 0 1
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,321评论 1 10
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,388评论 0 6

友情链接更多精彩内容