From 17db2b95ccffda253cd045cca67bfeddb20e301f Mon Sep 17 00:00:00 2001 From: sunguangming Date: Tue, 11 Jul 2023 09:41:02 +0800 Subject: [PATCH] * Code for multi-task. --- module/task/css/create.ui.css | 4 ++-- module/task/js/create.ui.js | 39 +++++++++++++++++++++++++++++++++- module/task/ui/create.html.php | 8 +++++-- 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/module/task/css/create.ui.css b/module/task/css/create.ui.css index 8e37d01250..215f6d52b8 100644 --- a/module/task/css/create.ui.css +++ b/module/task/css/create.ui.css @@ -10,5 +10,5 @@ .assignedToBox {align-items: center !important} .assignedToBox .add-team {margin-bottom: 5px} -.assignedToList {display: flex; align-items: center; flex-wrap: wrap} -.assignedToList .label, .assignedToList .icon{margin-right: 5px; margin-bottom: 5px} +.assignedToList {display: flex; align-items: center; flex-wrap: wrap;} +.assignedToList .picker-multi-selection, .assignedToList .icon{margin-right: 5px; margin-bottom: 5px} diff --git a/module/task/js/create.ui.js b/module/task/js/create.ui.js index 23a73c9a97..5309dca73c 100644 --- a/module/task/js/create.ui.js +++ b/module/task/js/create.ui.js @@ -397,6 +397,7 @@ $('#teamTable .team-saveBtn').on('click.team', '.btn', function() let selectObj = $(this)[0]; let realname = selectObj.options[selectObj.selectedIndex].text; + let account = selectObj.options[selectObj.selectedIndex].value; if(!team.includes(realname)) team.push(realname); let estimate = parseFloat($(this).closest('tr').find('[name^=teamEstimate]').val()); @@ -409,7 +410,7 @@ $('#teamTable .team-saveBtn').on('click.team', '.btn', function() return false; } - assignedToList += "" + realname + ''; + assignedToList += `
${realname}
`; assignedToList += ''; }) @@ -433,3 +434,39 @@ $('#teamTable .team-saveBtn').on('click.team', '.btn', function() zui.Modal.hide(); return false; }) + +$('#taskCreateForm').on('click', '.assignedToList .picker-multi-selection', function() +{ + /* 团队成员必须大于1人. */ + if($(this).closest('.assignedToList').find('.picker-multi-selection').length == 2) + { + zui.Modal.alert(teamMemberError); + return false; + } + + /* 删除人员前后的箭头. */ + if($(this).next('.icon').length) + { + $(this).next('.icon').remove(); + } + else if($(this).prev('.icon').length) + { + $(this).prev('.icon').remove(); + } + + $(this).remove(); + + /* 删除团队中,已经选中的人. */ + let index = $(this).data('index') + 1; + $('#teamTable').find('tr').eq(index).remove(); + + let totalEstimate = 0; + + $('#teamTable').find('select[name^="team"]').each(function(index) + { + let estimate = parseFloat($(this).closest('tr').find('[name^=teamEstimate]').val()); + if(!isNaN(estimate) && estimate > 0) totalEstimate += estimate; + }) + + $('#estimate').val(totalEstimate); +}) diff --git a/module/task/ui/create.html.php b/module/task/ui/create.html.php index 75466f56a1..ed495b8567 100644 --- a/module/task/ui/create.html.php +++ b/module/task/ui/create.html.php @@ -440,8 +440,12 @@ formPanel formGroup ( set::label($lang->product->mailto), - set::name('mailto[]'), - set::items($users), + picker + ( + set::multiple(true), + set::name('mailto[]'), + set::items($users), + ) ), $afterRow, modalTrigger