> TplayPro已经做了部分数据的软删除及恢复,如果你想要扩展某类数据的软删除及恢复也很简单,因为系统已经为你打好了基础。 > 想要事项某类数据的软删除及恢复,首先要保证你的数据表里有一个用来表示软删除的字段,比如status,以及表示软删除的值,比如-1。 在你调用数据列表或者可用数据时要避开已经软删除的数据,比如status为-1的数据就不要调用了。 ### 如何在系统回收站里出现已经软删除的数据? 1.找到并打开views/recycling/index.html文件,在tab里增加一项 ~~~ <ul class="layui-tab-title"> <li class="layui-this">管理员</li> <li>权限组</li> <li>系统配置</li> <li>权限节点</li> <li>文章/商品</li> </ul> ~~~ 2.在tab的内容里增加一项 ~~~ <div class="layui-tab-item tplay-btn"> <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="content" data-events="restore_content">批量还原</button> <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="content" data-events="del_content">彻底删除</button> <table id="tplay-admin-content" lay-filter="tplay-admin-content"> </table> </div> ~~~ > 增加的table要有id和lay-filter > 3.在js里增加表格的数据调用 ~~~ table.render({ elem: '#tplay-admin-content' ,url: config.domain+'/admin/recycling/index'//系统内置的调用软删除数据的接口 ,where: {model: 'content'}//传入模型名称 ,page: true ,limit:15 ,cols: [[ {type: 'checkbox', fixed: 'left'} ,{field: 'id', title: 'ID'} ,{field: 'title', title: '标题'} ,{field: 'update_time', title: '删除时间'} ]] ,skin: 'line' }); ~~~ 4.在事件处理中加入 ~~~ ,restore_content: function(othis, type){ var thisTabs = tabs[type] ,checkStatus = table.checkStatus(thisTabs.id) ,data = checkStatus.data; //获得选中的数据 if(data.length === 0) return layer.msg('未选中行'); var array = []; for (var i = 0; i < data.length; i++) { array.push(data[i].id); } layer.confirm('还原选中的数据吗?', function(){ tplay.ajax({ url:config.domain+"/admin/recycling/restore",//系统内置的还原软删除数据的接口 type:'post', data:{id:array,model:'content'},//传入要恢复的数据的主键和模型 success:function(res){ layer.msg(res.msg); if(res.code == 1){ table.reload(thisTabs.id); //刷新表格 } } }) }); } ,del_content: function(othis, type){ var thisTabs = tabs[type] ,checkStatus = table.checkStatus(thisTabs.id) ,data = checkStatus.data; //获得选中的数据 if(data.length === 0) return layer.msg('未选中行'); var array = []; for (var i = 0; i < data.length; i++) { array.push(data[i].id); } layer.confirm('彻底删除选中的数据吗?', function(){ tplay.ajax({ url:config.domain+"/admin/recycling/del",//系统内置的软删除的数据彻底删除的接口 type:'post', data:{id:array,model:'content'},//传入模型和主键 success:function(res){ layer.msg(res.msg); if(res.code == 1){ table.reload(thisTabs.id); //刷新表格 } } }) }); } ~~~ 5.在js代码的组后找到以下代码,并加入你刚添加的表格 ~~~ //区分各选项卡中的表格 var tabs = { admin: { text: '管理员' ,id: 'tplay-admin-all' }, group: { text: '权限组' ,id: 'tplay-admin-group' }, system: { text: '系统配置' ,id: 'tplay-admin-system' }, rule: { text: '权限节点' ,id: 'tplay-admin-rule' }, content: { text: '文章/商品' ,id: 'tplay-admin-content' } }; ~~~ > 如果仍有疑问,可以直接查阅后端接口代码。