feat(测试计划): 测试计划详情-生成报告
This commit is contained in:
parent
920252e952
commit
1174de79b9
|
@ -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 });
|
||||
|
|
|
@ -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';
|
||||
// 关联测试计划
|
||||
|
|
|
@ -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
|
@ -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",
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
/>
|
||||
<missing-glyph />
|
||||
|
||||
<glyph glyph-name="icon_generate_report" unicode="" 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="" 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="" 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="" 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 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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': '缺陷状态',
|
||||
|
|
Loading…
Reference in New Issue