需求:
现在需要加一个功能,希望可以自由拖动列。受到【模块维护】拖动启发进行改造。
思路:
step1:每一行新增一列,加一个拖动按钮。
step2:前台拖动的时候,鼠标放开时发送请求到后台,执行数据库更新操作。
前提:
1、数据库用例表zt_case启用order列,且每条数据的order值不同。
2、目前查询是用id降序排列,需要修改为order降序。因为数据库已经存在数据,所以需要进行存量数据更新,把已有数据的order更新为随id升序进行升序。
即:
改为
前提修改好之后,我们来修改代码。(以下思路不再写了)
一、增加一列
1、\zentaopms\module\testcase\config.php 在最后增加代码:这是【移动】列的信息。其中 common::hasPriv('testcase', 'updateOrder') 后面解释。
$config->testcase->datatable->fieldList['move']['title'] = 'move';
$config->testcase->datatable->fieldList['move']['fixed'] = 'right';
$config->testcase->datatable->fieldList['move']['width'] = '80';
$config->testcase->datatable->fieldList['move']['required'] = 'yes';
$config->testcase->datatable->fieldList['move']['sort'] = 'no';
$config->testcase->datatable->fieldList['move']['canShow'] = common::hasPriv('testcase', 'updateOrder');//此方法的权限,此处用来控制是否展示【移动】列
修改 $config->testcase->datatable->defaultField 值,在最后增加‘move’参数:
$config->testcase->datatable->defaultField = array('id', 'pri', 'title', 'type', 'openedBy', 'lastRunner', 'lastRunDate', 'lastRunResult', 'status', 'bugs', 'results', 'stepNumber', 'actions','move');
2、\zentaopms\module\testcase\lang\zh-cn.php 增加对[move]列的命名:(\zentaopms\module\testcase\lang\下的其他语言文件同样修改)
$lang->testcase->move = '移动';
3、\zentaopms\module\datatable\model.php 的 getSetting($module) 方法修改:
将
$set->show = true;
改为:
$set->show &#