Merge branch 'sprint/sunhao/bug20927' into 'master'

* bug #20927, limit affixed header in kanban container.

See merge request easycorp/zentaopms!2585
This commit is contained in:
朱金勇
2022-03-28 09:00:40 +00:00
3 changed files with 42 additions and 7 deletions
+16 -7
View File
@@ -33,7 +33,10 @@
#kanbanList .no-flex .kanban-lane > .kanban-sub-lanes[data-sub-lanes-count="2"] > .kanban-sub-lane {min-height: 45px;}
.kanban-affixed {padding-top: 72px;}
.kanban-affixed > .kanban-header {position: fixed!important; top: 0; background: rgba(80,80,80,.9); color: #fff; z-index: 100;}
.kanban-affixed > .kanban-header {position: fixed!important; top: 0; color: #fff; z-index: 100; overflow: hidden; min-width: 0; background: none;}
.kanban-affixed > .kanban-header > .kanban-header-cols {position: absolute; height: 100%; top: 0; background: rgba(80,80,80,.9);}
.kanban-affixed > .kanban-header > .kanban-group-header {display: none;}
.kanban-affixed > .kanban-header > .kanban-header-cols:before {display: block; content: ' '; position: absolute; left: -20px; top: 0; bottom: 0; background-color: inherit; width: 20px;}
#kanbanList .kanban-col[data-type="unclosedProduct"] .kanban-item {padding: 0;}
#kanbanList .kanban-col[data-type="unclosedProduct"] .kanban-lane-items {height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 0; overflow: hidden;}
@@ -380,16 +383,22 @@ function renderKanbanItem(item, $item, col, lane, kanban)
function affixKanbanHeader($kanbanBoard, affixed)
{
var $header = $kanbanBoard.children('.kanban-header');
var headerStyle = {width: '', left: ''};
var $headerCols = $header.children('.kanban-header-cols');
var headerStyle = {width: '', left: 0};
var headerColsStyle = {width: '', marginLeft: ''};
if(affixed)
{
headerStyle.width = $kanbanBoard.width();
if($kanbanBoard[0].getBoundingClientRect)
{
headerStyle.left = $kanbanBoard[0].getBoundingClientRect().left;
}
var $kanban = $kanbanBoard.closest('.kanban');
var kanbanBounding = $kanban[0].getBoundingClientRect();
var kanbanBoardBounding = $kanbanBoard[0].getBoundingClientRect();
var laneNameWidth = +$headerCols.css('left').replace('px', '');
headerStyle.width = kanbanBounding.width;
headerStyle.left = kanbanBounding.left;
headerColsStyle.width = kanbanBoardBounding.width - laneNameWidth;
headerColsStyle.marginLeft = kanbanBoardBounding.left - kanbanBounding.left;
}
$header.css(headerStyle);
$headerCols.css(headerColsStyle);
$kanbanBoard.toggleClass('kanban-affixed', !!affixed);
$kanbanBoard.css('padding-top', affixed ? $header.outerHeight() : '');
}
+24
View File
@@ -988,6 +988,30 @@ function changeKanbanScaleSize(newScaleSize)
return newScaleSize;
}
/** Affix kanban board header */
window.affixKanbanHeader = function($kanbanBoard, affixed)
{
var $header = $kanbanBoard.children('.kanban-header');
var $headerCols = $header.children('.kanban-header-cols');
var headerStyle = {width: '', left: 0};
var headerColsStyle = {width: '', marginLeft: ''};
if(affixed)
{
var $kanban = $('#kanbanContainer');
var kanbanBounding = $kanban[0].getBoundingClientRect();
var kanbanBoardBounding = $kanbanBoard[0].getBoundingClientRect();
var laneNameWidth = +$headerCols.css('left').replace('px', '');
headerStyle.width = kanbanBounding.width;
headerStyle.left = kanbanBounding.left;
headerColsStyle.width = kanbanBoardBounding.width - laneNameWidth;
headerColsStyle.marginLeft = kanbanBoardBounding.left - kanbanBounding.left;
}
$header.css(headerStyle);
$headerCols.css(headerColsStyle);
$kanbanBoard.toggleClass('kanban-affixed', !!affixed);
$kanbanBoard.css('padding-top', affixed ? $header.outerHeight() : '');
}
/* Example code: */
$(function()
{
+2
View File
@@ -1450,6 +1450,8 @@ function initSortable()
},
finish: function(e)
{
if(!e.changed) return;
var url = '';
var orders = [];
var regionID = '';