fix(接口测试): 增加场景详情中执行历史的执行结果抽屉&修改新建子模块样式

--bug=1038771 --user=吕梦园 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001038771
--bug=1038703 --user=吕梦园 https://www.tapd.cn/55049933/bugtrace/bugs/view/1155049933001038703
This commit is contained in:
teukkk 2024-04-09 19:11:25 +08:00 committed by Craftsman
parent 0527c0177a
commit 5d6d392768
4 changed files with 48 additions and 79 deletions

View File

@ -13,38 +13,38 @@ export default mergeConfig(
},
proxy: {
'/ws': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front\/ws/, ''),
ws: true,
},
'/front': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front/, ''),
},
'/file': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front\/file/, ''),
},
'/attachment': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front\/attachment/, ''),
},
'/bug/attachment': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front\/bug\/attachment/, ''),
},
'/plugin/image': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front\/plugin\/image/, ''),
},
'/base-display': {
target: 'https://qadevtest.fit2cloud.com/',
target: 'http://172.16.200.18:8081/',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/front\/base-display/, ''),
},

View File

@ -69,34 +69,22 @@
<MsIcon :type="isExpandAll ? 'icon-icon_folder_collapse1' : 'icon-icon_folder_expansion1'" />
</MsButton>
</a-tooltip>
<template v-if="!props.readOnly && !props.trash">
<a-dropdown @select="handleSelect">
<MsButton v-permission="['PROJECT_API_DEFINITION:READ+ADD']" type="icon" class="!mr-0 p-[2px]">
<MsIcon
type="icon-icon_create_planarity"
size="18"
class="text-[rgb(var(--primary-5))] hover:text-[rgb(var(--primary-4))]"
/>
</MsButton>
<template #content>
<a-doption v-permission="['PROJECT_API_DEFINITION:READ+ADD']" value="newApi">{{
t('apiTestManagement.newApi')
}}</a-doption>
<a-doption v-permission="['PROJECT_API_DEFINITION:READ+ADD']" value="addModule">{{
t('apiTestManagement.addSubModule')
}}</a-doption>
</template>
</a-dropdown>
<popConfirm
mode="add"
:all-names="rootModulesName"
parent-id="NONE"
:add-module-api="addModule"
@add-finish="handleAddFinish"
>
<span id="addModulePopSpan"></span>
</popConfirm>
</template>
<popConfirm
v-if="hasAnyPermission(['PROJECT_API_DEFINITION:READ+ADD']) && !props.readOnly && !props.trash"
mode="add"
:all-names="rootModulesName"
parent-id="NONE"
:add-module-api="addModule"
@add-finish="handleAddFinish"
>
<MsButton type="icon" class="!mr-0 p-[2px]">
<MsIcon
type="icon-icon_create_planarity"
size="18"
class="text-[rgb(var(--primary-5))] hover:text-[rgb(var(--primary-4))]"
/>
</MsButton>
</popConfirm>
</div>
</div>
<a-divider class="my-[8px]" />
@ -283,9 +271,6 @@
case 'import':
emit('import');
break;
case 'addModule':
document.querySelector('#addModulePopSpan')?.dispatchEvent(new Event('click'));
break;
default:
break;
}

View File

@ -97,6 +97,8 @@
</MsButton>
</template>
</ms-base-table>
<!-- 场景报告抽屉 -->
<caseAndScenarioReportDrawer v-model:visible="showScenarioReportVisible" is-scenario :report-id="reportId" />
</div>
</template>
@ -108,6 +110,7 @@
import MsBaseTable from '@/components/pure/ms-table/base-table.vue';
import { MsTableColumn } from '@/components/pure/ms-table/type';
import useTable from '@/components/pure/ms-table/useTable';
import caseAndScenarioReportDrawer from '@/views/api-test/components/caseAndScenarioReportDrawer.vue';
import ExecuteStatus from '@/views/api-test/scenario/components/executeStatus.vue';
import { getExecuteHistory } from '@/api/modules/api-test/scenario';
@ -241,7 +244,12 @@
loadExecuteHistoryList();
}
function showResult(record: ExecuteHistoryItem) {}
const showScenarioReportVisible = ref(false);
const reportId = ref('');
function showResult(record: ExecuteHistoryItem) {
reportId.value = record.id;
showScenarioReportVisible.value = true;
}
onBeforeMount(() => {
loadExecuteHistoryList();

View File

@ -30,30 +30,22 @@
<MsIcon :type="isExpandAll ? 'icon-icon_folder_collapse1' : 'icon-icon_folder_expansion1'" />
</MsButton>
</a-tooltip>
<template v-if="!props.readOnly">
<a-dropdown @select="handleSelect">
<MsButton v-permission="['PROJECT_API_SCENARIO:READ+ADD']" type="icon" class="!mr-0 p-[2px]">
<MsIcon
type="icon-icon_create_planarity"
size="18"
class="text-[rgb(var(--primary-5))] hover:text-[rgb(var(--primary-4))]"
/>
</MsButton>
<template #content>
<a-doption value="newScenario">{{ t('apiScenario.createScenario') }}</a-doption>
<a-doption value="addModule">{{ t('apiScenario.createSubModule') }}</a-doption>
</template>
</a-dropdown>
<popConfirm
mode="add"
:all-names="rootModulesName"
parent-id="NONE"
:add-module-api="addModule"
@add-finish="initModules"
>
<span id="addModulePopSpan"></span>
</popConfirm>
</template>
<popConfirm
v-if="hasAnyPermission(['PROJECT_API_SCENARIO:READ+ADD']) && !props.readOnly"
mode="add"
:all-names="rootModulesName"
parent-id="NONE"
:add-module-api="addModule"
@add-finish="initModules"
>
<MsButton type="icon" class="!mr-0 p-[2px]">
<MsIcon
type="icon-icon_create_planarity"
size="18"
class="text-[rgb(var(--primary-5))] hover:text-[rgb(var(--primary-4))]"
/>
</MsButton>
</popConfirm>
</div>
</div>
<a-divider class="my-[8px]" />
@ -184,22 +176,6 @@
const { t } = useI18n();
const { openModal } = useModal();
function handleSelect(value: string | number | Record<string, any> | undefined) {
switch (value) {
case 'newScenario':
emit('newScenario');
break;
case 'import':
emit('import');
break;
case 'addModule':
document.querySelector('#addModulePopSpan')?.dispatchEvent(new Event('click'));
break;
default:
break;
}
}
const virtualListProps = computed(() => {
if (props.readOnly) {
return {