From 1675a5de87e84ad83963d1301c427aa072b7eca1 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Thu, 13 Jul 2023 18:59:35 +0800 Subject: [PATCH] * Adjust groupcase page group js. --- module/testcase/css/groupcase.ui.css | 2 + module/testcase/js/groupcase.ui.js | 55 ++++++++++++++++++++++++++- module/testcase/ui/groupcase.html.php | 2 + 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 module/testcase/css/groupcase.ui.css diff --git a/module/testcase/css/groupcase.ui.css b/module/testcase/css/groupcase.ui.css new file mode 100644 index 0000000000..ab88b822a1 --- /dev/null +++ b/module/testcase/css/groupcase.ui.css @@ -0,0 +1,2 @@ +.toggle-icon.is-collapsed:before,.toggle-icon.is-expanded:before,.toggle-icon.is-collapsed:after {background-color: var(--color-current); content: " "; display: block; height: 1px; left: 2px; position: absolute; right: 2px; top: calc((var(--toggle-icon-size) - 3px)/2);} +.toggle-icon.is-collapsed:after {--tw-rotate: 90deg; transform: translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));} diff --git a/module/testcase/js/groupcase.ui.js b/module/testcase/js/groupcase.ui.js index d4ae73fe55..f1ad6029cd 100644 --- a/module/testcase/js/groupcase.ui.js +++ b/module/testcase/js/groupcase.ui.js @@ -1,12 +1,36 @@ +$(function() +{ + const options = zui.DTable.query().options; + initialOptions = $.extend(true, {}, options); +}); + /** - * 标题列显示额外的内容。 - * Display extra content in the title column. + * 需求列显示展开收起的图标。 + * Display show icon in the story column. * * @param object result * @param object info * @access public * @return object */ +window.onRenderCell = function(result, {row, col}) +{ + if(result && col.name == 'storyTitle') + { + result.unshift({html: ''}); + } + + return result; +} + +/** + * 需求列合并单元格。 + * cell span in the story column. + * + * @param object cell + * @access public + * @return object + */ window.getCellSpan = function(cell) { if(cell.col.name == 'storyTitle') @@ -18,3 +42,30 @@ window.getCellSpan = function(cell) } } +window.deformation = function(event) +{ + const options = zui.DTable.query().options; + const story = $(event.target).parent().data('story'); + let newOptions; + + if($(event.target).hasClass('is-collapsed')) + { + newOptions = $.extend(true, {}, initialOptions); + $(event.target).removeClass('is-collapsed').addClass('is-expanded'); + } + else + { + options.data = options.data.filter(function(option){return option.story != story || option.rowspan != 0;}); + $.each(options.data, function(index) + { + if(options.data[index] && options.data[index].story == story) + { + options.data[index].rowspan = 1; + } + }); + $(event.target).removeClass('is-expanded').addClass('is-collapsed'); + newOptions = options; + } + console.log(newOptions); + $('#groupCaseTable').zui('dtable').render(newOptions); +} diff --git a/module/testcase/ui/groupcase.html.php b/module/testcase/ui/groupcase.html.php index 0352d90560..84af5997e0 100644 --- a/module/testcase/ui/groupcase.html.php +++ b/module/testcase/ui/groupcase.html.php @@ -16,10 +16,12 @@ $cases = initTableData(array_values($cases), $config->testcase->group->dtable->f dtable ( + set::id('groupCaseTable'), set::userMap($users), set::cols($config->testcase->group->dtable->fieldList), set::data($cases), set::plugins(array('cellspan')), + set::onRenderCell(jsRaw('window.onRenderCell')), set::getCellSpan(jsRaw('window.getCellSpan')), );