From cdfb83c3e0813ed897dcec4fa09ecafdd42e7a6e Mon Sep 17 00:00:00 2001 From: songchenxuan Date: Tue, 7 Jan 2025 11:08:25 +0800 Subject: [PATCH] * [task#135788,doing,0.5h]. --- module/testcase/js/browse.ui.js | 35 ++++++++++++++++++++++++++++++ module/testcase/ui/browse.html.php | 2 ++ 2 files changed, 37 insertions(+) diff --git a/module/testcase/js/browse.ui.js b/module/testcase/js/browse.ui.js index 73fa55f17b..8332ee6d85 100644 --- a/module/testcase/js/browse.ui.js +++ b/module/testcase/js/browse.ui.js @@ -295,3 +295,38 @@ $('#dragModal').on('click', '[data-dismiss=modal]', function() { loadCurrentPage({cache: false}); }); + +window.insertListToDoc = function() +{ + const dtable = zui.DTable.query($('#testcases')); + const checkedList = dtable.$.getChecks(); + if(!checkedList.length) return; + + let {cols, data} = dtable.options; + data = data.filter((item) => checkedList.includes(item.id + '')); + const docID = getDocApp()?.docID; + + const url = $.createLink('doc', 'buildZentaoList', `docID=${docID}&type=case&blockID=${blockID}`); + const formData = new FormData(); + formData.append('cols', JSON.stringify(cols)); + formData.append('data', JSON.stringify(data)); + formData.append('idList', checkedList.join(',')); + formData.append('url', insertListLink); + $.post(url, formData, function(resp) + { + resp = JSON.parse(resp); + if(resp.result == 'success') + { + const blockID = resp.blockID; + zui.Modal.hide(); + window.insertZentaoList && window.insertZentaoList('case', blockID, null, true); + } + }); +} + +window.toggleCheckRows = function(idList) +{ + if(!idList?.length) return; + const dtable = zui.DTable.query($('#testcases')); + dtable.$.toggleCheckRows(idList.split(','), true); +} diff --git a/module/testcase/ui/browse.html.php b/module/testcase/ui/browse.html.php index f59a3e06a4..021b1c03d1 100644 --- a/module/testcase/ui/browse.html.php +++ b/module/testcase/ui/browse.html.php @@ -17,6 +17,7 @@ include 'header.html.php'; jsVar('confirmBatchDeleteSceneCase', $lang->testcase->confirmBatchDeleteSceneCase); jsVar('caseChanged', $lang->testcase->changed); +jsVar('blockID', $blockID); $topSceneCount = count(array_filter(array_map(function($case){return $case->isScene && $case->grade == 1;}, $cases))); @@ -203,6 +204,7 @@ div( on::click('[data-col="actions"] .ztf-case', 'window.checkZtf'), dtable ( + set::id('testcases'), set::plugins(array('sortable')), set::sortable(strpos($orderBy, 'sort_asc') !== false), set::onSortEnd(strpos($orderBy, 'sort_asc') !== false ? jsRaw('window.onSortEnd') : null),