feat(测试计划): 测试计划详情-生成报告

This commit is contained in:
teukkk 2024-05-17 15:56:17 +08:00 committed by Craftsman
parent 920252e952
commit 1174de79b9
13 changed files with 69 additions and 7 deletions

View File

@ -17,6 +17,7 @@ import {
DisassociateCaseUrl,
EditCaseLastExecResultUrl,
followPlanUrl,
GenerateReportUrl,
GetAssociatedBugUrl,
GetFeatureCaseModuleCountUrl,
GetFeatureCaseModuleUrl,
@ -58,6 +59,7 @@ import type {
PlanDetailFeatureCaseListQueryParams,
RunFeatureCaseParams,
SortFeatureCaseParams,
TestPlanBaseParams,
TestPlanDetail,
TestPlanItem,
UseCountType,
@ -148,6 +150,10 @@ export function batchArchivedPlan(data: TableQueryParams) {
export function planDetailBugPage(data: TableQueryParams) {
return MSR.post<CommonList<PlanDetailBugItem>>({ url: planDetailBugPageUrl, data });
}
// 生成报告
export function generateReport(data: TestPlanBaseParams) {
return MSR.post({ url: GenerateReportUrl, data });
}
// 关注
export function followPlanRequest(data: FollowPlanParams) {
return MSR.post({ url: followPlanUrl, data });

View File

@ -36,6 +36,8 @@ export const batchArchivedPlanUrl = '/test-plan/batch-archived';
export const planDetailBugPageUrl = '/test-plan/bug/page';
// 关注测试计划
export const followPlanUrl = '/test-plan/edit/follower';
// 生成报告
export const GenerateReportUrl = '/test-plan/report/gen';
// 复制测试计划
export const copyTestPlanUrl = '/test-plan/copy';
// 关联测试计划

View File

@ -1,7 +1,7 @@
@font-face {
font-family: iconfont; /* Project id 3462279 */
src: url('iconfont.woff2?t=1715742855393') format('woff2'), url('iconfont.woff?t=1715742855393') format('woff'),
url('iconfont.ttf?t=1715742855393') format('truetype'), url('iconfont.svg?t=1715742855393#iconfont') format('svg');
src: url('iconfont.woff2?t=1715932148897') format('woff2'), url('iconfont.woff?t=1715932148897') format('woff'),
url('iconfont.ttf?t=1715932148897') format('truetype'), url('iconfont.svg?t=1715932148897#iconfont') format('svg');
}
.iconfont {
font-size: 16px;
@ -10,6 +10,12 @@
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-icon_generate_report::before {
content: '\e7b6';
}
.icon-icon_project::before {
content: '\e7b5';
}
.icon-icon_api-test-filled2::before {
content: '\e7b4';
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,20 @@
"css_prefix_text": "icon-",
"description": "DE、MS项目icon管理",
"glyphs": [
{
"icon_id": "40376562",
"name": "icon_generate_report",
"font_class": "icon_generate_report",
"unicode": "e7b6",
"unicode_decimal": 59318
},
{
"icon_id": "40366122",
"name": "icon_project",
"font_class": "icon_project",
"unicode": "e7b5",
"unicode_decimal": 59317
},
{
"icon_id": "40342056",
"name": "icon_api-test-filled",

View File

@ -14,6 +14,10 @@
/>
<missing-glyph />
<glyph glyph-name="icon_generate_report" unicode="&#59318;" d="M810.666667 853.333333a85.333333 85.333333 0 0 0 85.333333-85.333333v-768a85.333333 85.333333 0 0 0-85.333333-85.333333H213.333333a85.333333 85.333333 0 0 0-85.333333 85.333333V768a85.333333 85.333333 0 0 0 85.333333 85.333333h597.333334z m0-85.333333H213.333333v-768h597.333334V768z m-298.666667-597.333333a42.666667 42.666667 0 0 0 0-85.333334H362.666667a42.666667 42.666667 0 0 0 0 85.333334H512z m149.333333 128a42.666667 42.666667 0 0 0 0-85.333334h-298.666666a42.666667 42.666667 0 0 0 0 85.333334h298.666666z m8.832 350.165333a42.666667 42.666667 0 0 0 0-60.330667l-170.666666-170.666666a42.666667 42.666667 0 0 0-60.330667 0l-85.333333 85.333333a42.666667 42.666667 0 0 0 60.330666 60.330667L469.333333 508.373333l140.501334 140.458667a42.666667 42.666667 0 0 0 60.330666 0z" horiz-adv-x="1024" />
<glyph glyph-name="icon_project" unicode="&#59317;" d="M510.72 768a42.666667 42.666667 0 0 0 41.344-32.128l14.421333-56.576h250.88c41.898667 0 75.306667-33.237333 78.421334-74.410667l0.213333-6.229333v-43.946667l39.509333-0.042666a42.666667 42.666667 0 0 0 42.666667-42.666667l-0.128-3.029333-36.565333-512a42.666667 42.666667 0 0 0-42.538667-39.637334H125.013333a42.666667 42.666667 0 0 0-42.538666 39.637334l-36.565334 512a42.666667 42.666667 0 0 0 39.509334 45.568L86.954667 554.666667 128 554.666667V687.402667C128 731.434667 162.645333 768 206.592 768h304.128z m378.965333-298.624L134.314667 469.333333l30.464-426.666666h694.4l30.506666 426.709333zM682.666667 384a42.666667 42.666667 0 0 0 0-85.333333H341.333333a42.666667 42.666667 0 0 0 0 85.333333h341.333334z m-205.141334 298.666667H213.333333v-128l597.333334 0.042666v39.253334h-277.333334a42.666667 42.666667 0 0 0-39.893333 27.477333l-1.450667 4.608L477.525333 682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="icon_api-test-filled2" unicode="&#59316;" d="M128 810.666667h768a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333H85.333333V768a42.666667 42.666667 0 0 0 42.666667 42.666667z m682.666667-554.666667a170.666667 170.666667 0 1 0 0-341.333333 170.666667 170.666667 0 0 0 0 341.333333z m85.333333 341.333333a42.666667 42.666667 0 0 0 42.666667-42.666666l0.042666-298.666667a213.333333 213.333333 0 0 1-298.666666-298.666667H128a42.666667 42.666667 0 0 0-42.666667 42.666667V554.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h768z m-80.256-384.085333c-4.693333 0.682667-8.96-3.157333-9.557333-8.533333l-25.002667-233.984c-0.554667-5.376 2.773333-10.24 7.466667-10.922667l16.981333-2.389333c4.693333-0.682667 8.96 3.157333 9.514667 8.533333l25.002666 233.984c0.554667 5.376-2.773333 10.24-7.466666 10.922667l-16.938667 2.389333z m75.136-63.573333l-13.994667-11.221334a10.794667 10.794667 0 0 1-2.133333-13.696l24.32-39.850666-24.746667-40.533334a10.794667 10.794667 0 0 1 2.133334-13.653333l13.994666-11.306667c3.84-3.114667 9.216-2.005333 11.946667 2.432l34.304 56.32 0.810667 1.664 0.512 1.749334a11.093333 11.093333 0 0 1-0.896 9.386666l-34.346667 56.32c-2.688 4.437333-8.021333 5.546667-11.904 2.432z m-171.946667-1.877334l-34.304-56.32-0.810666-1.706666-0.512-1.706667a11.050667 11.050667 0 0 1 0.896-9.386667l34.346666-56.32c2.688-4.48 8.021333-5.546667 11.904-2.432l13.994667 11.264a10.794667 10.794667 0 0 1 2.133333 13.653334l-24.32 39.850666 24.746667 40.533334a10.794667 10.794667 0 0 1-2.133333 13.696l-13.994667 11.264c-3.84 3.114667-9.216 2.048-11.946667-2.389334zM382.634667 512.426667H310.528L230.186667 298.666667h67.498666l10.368 35.285333h75.264L393.813333 298.666667h69.12L382.592 512.426667z m210.986666 0H483.84V298.666667h66.346667v79.36h36.138666c26.666667 0 46.506667 6.058667 59.434667 18.218666 12.970667 12.117333 19.498667 29.013333 19.498667 50.602667 0 20.992-5.973333 37.162667-17.92 48.554667-11.861333 11.349333-29.781333 17.066667-53.717334 17.066666z m175.018667 0h-66.218667V298.666667h66.218667V512.426667z m-422.784-55.466667l23.637333-76.8H322.346667l23.466666 76.8z m223.146667 11.989333c12.373333 0 20.736-2.346667 25.216-6.997333 4.48-4.693333 6.698667-10.368 6.698666-17.066667 0-6.912-2.56-12.544-7.68-16.981333-5.205333-4.437333-14.122667-6.613333-26.88-6.613333h-16.213333v47.658666h18.858667z" horiz-adv-x="1024" />
<glyph glyph-name="a-icon_test-tracking_filled1" unicode="&#59315;" d="M981.333333 85.333333a170.666667 170.666667 0 1 0-341.333333 0 170.666667 170.666667 0 0 0 341.333333 0z m-153.514666 102.4a17.066667 17.066667 0 0 1-34.133334 0v-102.485333a17.066667 17.066667 0 0 1 4.992-12.074667l72.32-72.32a17.066667 17.066667 0 0 1 24.149334 24.106667l-67.370667 67.370667V187.733333zM341.333333 853.333333a42.666667 42.666667 0 0 1-42.666666-42.666666v-170.666667a42.538667 42.538667 0 0 1 42.666666-42.666667 42.453333 42.453333 0 0 1 41.813334 34.048C383.701333 634.197333 384 637.056 384 640V810.666667a42.666667 42.666667 0 0 1-42.666667 42.666666z m341.333334 0a42.666667 42.666667 0 0 1-42.666667-42.666666v-170.666667a42.666667 42.666667 0 1 1 85.333333 0V810.666667a42.666667 42.666667 0 0 1-42.666666 42.666666zM128 725.333333h128v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V725.333333h170.666666v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V725.333333h128a42.666667 42.666667 0 0 0 42.666667-42.666666v-426.666667a213.333333 213.333333 0 0 1-298.666667-298.666667H128a42.666667 42.666667 0 0 0-42.666667 42.666667V682.666667a42.666667 42.666667 0 0 0 42.666667 42.666666z m85.333333-469.333333a42.666667 42.666667 0 0 1 0-85.333333h298.666667a42.666667 42.666667 0 0 1 0 85.333333H213.333333z m0 170.666667a42.666667 42.666667 0 0 1 0-85.333334h170.666667a42.666667 42.666667 0 0 1 0 85.333334H213.333333z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 455 KiB

After

Width:  |  Height:  |  Size: 457 KiB

View File

@ -131,6 +131,11 @@ export interface FollowPlanParams {
testPlanId: string;
}
export interface TestPlanBaseParams {
projectId: string;
testPlanId: string;
}
export interface PlanDetailFeatureCaseItem {
id: string;
num: string;
@ -149,10 +154,7 @@ export interface PlanDetailFeatureCaseItem {
testPlanId: string;
}
export interface PlanDetailFeatureCaseListQueryParams extends TableQueryParams {
testPlanId: string;
projectId: string;
}
export interface PlanDetailFeatureCaseListQueryParams extends TableQueryParams, TestPlanBaseParams {}
export interface DisassociateCaseParams {
testPlanId: string;
id: string;

View File

@ -31,6 +31,15 @@
<MsIcon type="icon-icon_edit_outlined" class="mr-[8px]" />
{{ t('common.edit') }}
</MsButton>
<MsButton
v-permission="['PROJECT_TEST_PLAN:READ+EXECUTE']"
type="button"
status="default"
@click="handleGenerateReport"
>
<MsIcon type="icon-icon_generate_report" class="mr-[8px]" />
{{ t('testPlan.testPlanDetail.generateReport') }}
</MsButton>
<MsButton
v-permission="['PROJECT_TEST_PLAN:READ+ADD']"
type="button"
@ -131,6 +140,7 @@
archivedPlan,
associationCaseToPlan,
followPlanRequest,
generateReport,
getPlanPassRate,
getTestPlanDetail,
getTestPlanModule,
@ -296,6 +306,20 @@
}
const showPlanDrawer = ref(false);
//
async function handleGenerateReport() {
try {
await generateReport({
projectId: appStore.currentProjectId,
testPlanId: detail.value.id as string,
});
Message.success(t('testPlan.testPlanDetail.successfullyGenerated'));
} catch (error) {
// eslint-disable-next-line no-console
console.log(error);
}
}
// |
const isCopy = ref<boolean>(false);
function editorCopyHandler(copyFlog: boolean) {

View File

@ -83,6 +83,8 @@ export default {
'testPlan.planForm.repeatCaseTip2': 'Close: Cannot be associated with the same case repeatedly',
'testPlan.planForm.pickCases': 'Select cases',
'testPlan.testPlanDetail.executed': 'Executed',
'testPlan.testPlanDetail.generateReport': 'Generate report',
'testPlan.testPlanDetail.successfullyGenerated': 'Successfully generated',
'testPlan.bugManagement.bug': 'Defect list',
'testPlan.bugManagement.bugName': 'name',
'testPlan.bugManagement.defectState': 'Defect state',

View File

@ -81,6 +81,8 @@ export default {
'testPlan.planForm.repeatCaseTip2': '关闭:不可重复关联同一用例',
'testPlan.planForm.pickCases': '选择用例',
'testPlan.testPlanDetail.executed': '已执行',
'testPlan.testPlanDetail.generateReport': '生成报告',
'testPlan.testPlanDetail.successfullyGenerated': '生成成功',
'testPlan.bugManagement.bug': '缺陷列表',
'testPlan.bugManagement.bugName': '名称',
'testPlan.bugManagement.defectState': '缺陷状态',