* [task#150827] Add the function of update order for stage.

This commit is contained in:
xieqiyu
2025-10-17 01:10:01 +00:00
parent ddf333b56d
commit 8bd81bb2a4
11 changed files with 65 additions and 1 deletions
+1
View File
@@ -118,6 +118,7 @@ CREATE TABLE IF NOT EXISTS `zt_decision` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `zt_stage` ADD `workflowGroup` mediumint(8) unsigned NOT NULL DEFAULT '0' AFTER `id`;
ALTER TABLE `zt_stage` ADD `order` mediumint(8) unsigned NOT NULL DEFAULT '0' AFTER `editedDate`;
ALTER TABLE `zt_object` ADD `execution` mediumint(8) unsigned NOT NULL DEFAULT '0' AFTER `project`;
ALTER TABLE `zt_object` ADD `categoryTitle` varchar(255) NOT NULL DEFAULT '' AFTER `category`;
+1
View File
@@ -1973,6 +1973,7 @@ CREATE TABLE IF NOT EXISTS `zt_stage` (
`createdDate` datetime NULL,
`editedBy` varchar(30) NOT NULL DEFAULT '',
`editedDate` datetime NULL,
`order` mediumint(8) unsigned NOT NULL DEFAULT '0',
`deleted` enum('0','1') NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+5
View File
@@ -3,6 +3,11 @@ global $lang;
$config->stage->dtable = new stdclass();
$config->stage->dtable->fieldList['id']['type'] = 'id';
$config->stage->dtable->fieldList['sort']['title'] = $lang->stage->order;
$config->stage->dtable->fieldList['sort']['fixed'] = 'left';
$config->stage->dtable->fieldList['sort']['align'] = 'center';
$config->stage->dtable->fieldList['sort']['group'] = 1;
$config->stage->dtable->fieldList['name']['type'] = 'title';
$config->stage->dtable->fieldList['type']['type'] = 'status';
+13
View File
@@ -250,4 +250,17 @@ class stage extends control
$this->view->stagePoints = $this->stage->getStagePoints($type, $stageID);
$this->display();
}
/**
* 更新排序。
* Update order.
*
* @access public
* @return void
*/
public function updateOrder()
{
$sortedIdList = json_decode($this->post->sortedIdList, true);
$this->stage->updateOrder($sortedIdList);
}
}
+20
View File
@@ -0,0 +1,20 @@
window.renderCell = function(result, info)
{
if(info.col.name == 'sort')
{
result[0] = {html: "<i class='icon-move'></i>", className: 'text-gray cursor-move move-stage'};
}
return result;
}
window.onSortEnd = function(from, to, type)
{
if(!from || !to) return false;
const url = $.createLink('stage', 'updateOrder');
const form = new FormData();
form.append('sortedIdList', JSON.stringify(this.state.rowOrders));
$.ajaxSubmit({url, data: form});
return true;
}
+1
View File
@@ -31,6 +31,7 @@ $lang->stage->DCPpoint = 'DCP Point';
$lang->stage->TRname = 'TR Point Name';
$lang->stage->DCPname = 'DCP Point Name';
$lang->stage->pointFlow = 'Approval Flow';
$lang->stage->order = 'Order';
$lang->stage->typeList['mix'] = 'Mix';
$lang->stage->typeList['request'] = 'Story';
+1
View File
@@ -31,6 +31,7 @@ $lang->stage->DCPpoint = 'DCP Point';
$lang->stage->TRname = 'TR Point Name';
$lang->stage->DCPname = 'DCP Point Name';
$lang->stage->pointFlow = 'Approval Flow';
$lang->stage->order = 'Order';
$lang->stage->typeList['mix'] = 'Mix';
$lang->stage->typeList['request'] = 'Story';
+1
View File
@@ -31,6 +31,7 @@ $lang->stage->DCPpoint = 'DCP Point';
$lang->stage->TRname = 'TR Point Name';
$lang->stage->DCPname = 'DCP Point Name';
$lang->stage->pointFlow = 'Approval Flow';
$lang->stage->order = 'Order';
$lang->stage->typeList['mix'] = 'Mix';
$lang->stage->typeList['request'] = 'Story';
+1
View File
@@ -31,6 +31,7 @@ $lang->stage->DCPpoint = 'DCP评审点';
$lang->stage->TRname = 'TR评审点名称';
$lang->stage->DCPname = 'DCP评审点名称';
$lang->stage->pointFlow = '审批流';
$lang->stage->order = '排序';
$lang->stage->typeList['mix'] = '综合';
$lang->stage->typeList['request'] = '需求';
+16
View File
@@ -384,4 +384,20 @@ class stageModel extends model
}
return true;
}
/**
* 更新排序。
* Update order.
*
* @param array $sortedIdList
* @access public
* @return void
*/
public function updateOrder(array $sortedIdList)
{
foreach($sortedIdList as $stageID => $order)
{
$this->dao->update(TABLE_STAGE)->set('order')->eq($order + 1)->where('id')->eq($stageID)->exec();
}
}
}
+5 -1
View File
@@ -28,5 +28,9 @@ dtable
set::cols($config->stage->dtable->fieldList),
set::data($tableData),
set::orderBy($orderBy),
set::sortLink(createLink('stage', 'browse', "groupID={$groupID}&orderBy={name}_{sortType}"))
set::sortLink(createLink('stage', 'browse', "groupID={$groupID}&orderBy={name}_{sortType}")),
set::plugins(array('sortable')),
set::sortHandler('.move-stage'),
set::onSortEnd(jsRaw('window.onSortEnd')),
set::onRenderCell(jsRaw('window.renderCell'))
);