diff --git a/frontend/src/components/business/ms-case-associate/index.vue b/frontend/src/components/business/ms-case-associate/index.vue index a454416ca3..d82f0b2453 100644 --- a/frontend/src/components/business/ms-case-associate/index.vue +++ b/frontend/src/components/business/ms-case-associate/index.vue @@ -134,6 +134,7 @@ no-disable class="mt-[16px]" v-on="propsEvent" + @filter-change="filterChange" > @@ -149,6 +150,10 @@ - + + + + - + @@ -91,6 +91,11 @@ return result; }); + // 判断是否有所有权限 + const isHasAllPermission = computed(() => { + return props.list.some((item: ActionsItem) => hasAnyPermission(item.permission || [])); + }); + function selectHandler(value: SelectedValue) { const item = props.list.find((e: ActionsItem) => e.eventTag === value); emit('select', item); diff --git a/frontend/src/router/routes/modules/testPlan.ts b/frontend/src/router/routes/modules/testPlan.ts index 74815e6c3a..bd5338cee9 100644 --- a/frontend/src/router/routes/modules/testPlan.ts +++ b/frontend/src/router/routes/modules/testPlan.ts @@ -52,7 +52,7 @@ const TestPlan: AppRouteRecordRaw = { }, { name: TestPlanRouteEnum.TEST_PLAN_REPORT_DETAIL, - locale: 'menu.testPlan.testPlanDetail', + locale: 'menu.apiTest.reportDetail', }, ], }, diff --git a/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue b/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue index 5a3679eae1..c5d4359074 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue @@ -52,6 +52,7 @@ @change="changeHandler" @module-change="initData" @cell-click="handleCellClick" + @filter-change="filterChange" > @@ -885,6 +886,7 @@ ...tableParams, current: propsRes.value.msPagination?.current, pageSize: propsRes.value.msPagination?.pageSize, + filter: propsRes.value.filter, }); } @@ -1466,6 +1468,10 @@ } }); + function filterChange() { + emitTableParams(); + } + onMounted(async () => { if (route.query.id) { showCaseDetail(route.query.id as string, 0); diff --git a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/addDefectDrawer.vue b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/addDefectDrawer.vue index 923b13fabf..f2a1502b27 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/addDefectDrawer.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/addDefectDrawer.vue @@ -16,6 +16,7 @@ {{ record.num }} - {{ characterLimit(record.name) }} - - {{ t('caseManagement.featureCase.preview') }} - - - - + + {{ characterLimit(record.name) }} + + {{ t('caseManagement.featureCase.preview') }} + + + + + {{ record.statusName || '-' }} @@ -149,4 +151,12 @@ }); - + diff --git a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/linkDefectDrawer.vue b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/linkDefectDrawer.vue index c53014bb61..f82fe50b03 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/linkDefectDrawer.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/linkDefectDrawer.vue @@ -38,13 +38,17 @@ v-on="propsEvent" > - {{ record.name }} - - {{ t('caseManagement.featureCase.preview') }} - - - - + + {{ characterLimit(record.name) }} + + {{ + t('caseManagement.featureCase.preview') + }} + + + + + @@ -62,6 +66,7 @@ import { getDrawerDebugPage } from '@/api/modules/case-management/featureCase'; import { useI18n } from '@/hooks/useI18n'; import { useAppStore } from '@/store'; + import { characterLimit } from '@/utils'; import { TableKeyEnum } from '@/enums/tableEnum'; @@ -77,7 +82,7 @@ visible: boolean; caseId: string; drawerLoading: boolean; - showSelectorAll: boolean; + showSelectorAll?: boolean; }>(), { showSelectorAll: true, @@ -101,7 +106,7 @@ dataIndex: 'name', showInTable: true, showTooltip: true, - width: 200, + width: 300, ellipsis: true, showDrag: false, }, @@ -157,6 +162,7 @@ const { propsRes, propsEvent, loadList, setLoadListParams, resetSelector } = useTable( getDrawerDebugPage, { + scroll: { x: 'auto' }, columns, tableKey: TableKeyEnum.CASE_MANAGEMENT_TAB_DEFECT, selectable: true, @@ -229,4 +235,12 @@ ); - + diff --git a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/tabDefect.vue b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/tabDefect.vue index ed1b5f1be1..074f4985d0 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/tabDefect.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabBug/tabDefect.vue @@ -205,7 +205,7 @@ dataIndex: 'name', showInTable: true, showTooltip: false, - width: 250, + width: 300, ellipsis: true, showDrag: false, }, diff --git a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/demand.vue b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/demand.vue index 31dacbef81..416df8ad2c 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/demand.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/demand.vue @@ -65,7 +65,7 @@ > {{ getPlatName() }}{{ platName }}({{ propsRes?.msPagination?.total || 0 }}) appStore.currentProjectId); @@ -207,7 +209,7 @@ scroll: { x: '100%' }, heightUsed: 290, selectable: true, - showSelectorAll: true, + showSelectorAll: false, showSetting: false, }); @@ -411,32 +413,9 @@ initPlatform(); }); - // watch( - // () => activeTab.value, - // async (val) => { - // if (val === 'requirement') { - // try { - // const result = await getCaseRelatedInfo(currentProjectId.value); - // if (result && result.platform_key) { - // platformInfo.value = { ...result }; - // } - // } catch (error) { - // console.log(error); - // } - // } - // } - // ); - - function getPlatName() { - switch (platformInfo.value.platform_key) { - case 'zentao': - return t('caseManagement.featureCase.zentao'); - case 'jira': - return t('caseManagement.featureCase.jira'); - default: - break; - } - } + const platName = computed(() => { + return getPlatName(platformInfo.value.platform_key); + }); diff --git a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/thirdDemandDrawer.vue b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/thirdDemandDrawer.vue index 2a8f252e97..e3d88f7367 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/thirdDemandDrawer.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDemand/thirdDemandDrawer.vue @@ -14,7 +14,7 @@ > {{ getPlatName() }}{{ platName }}({{ propsRes?.msPagination?.total || 0 }}) appStore.currentProjectId); @@ -138,16 +140,9 @@ return filteredData; }); - function getPlatName() { - switch (props.platformInfo.platform_key) { - case 'zentao': - return t('caseManagement.featureCase.zentao'); - case 'jira': - return t('caseManagement.featureCase.jira'); - default: - break; - } - } + const platName = computed(() => { + return getPlatName(props.platformInfo.value.platform_key); + }); async function handleDrawerConfirm() { const demandList = tableSelected.value.map((item) => { diff --git a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDetail.vue b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDetail.vue index 2b178fcdb7..fde995cdf3 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDetail.vue +++ b/frontend/src/views/case-management/caseManagementFeature/components/tabContent/tabDetail.vue @@ -449,6 +449,7 @@ function getParams() { const steps = stepData.value.map((item, index) => { return { + id: item.id, num: index, desc: item.step, result: item.expected, diff --git a/frontend/src/views/case-management/caseManagementFeature/components/utils.ts b/frontend/src/views/case-management/caseManagementFeature/components/utils.ts index 2c3d687161..690250dd3e 100644 --- a/frontend/src/views/case-management/caseManagementFeature/components/utils.ts +++ b/frontend/src/views/case-management/caseManagementFeature/components/utils.ts @@ -280,10 +280,6 @@ export function initFormCreate(customFields: CustomAttributes[], permission: str } export function makeColumns(optionsMap: Record, columnData: MsTableColumn) { - // const optionsMap: Record = { - // status: statusFilterOptions.value, - // handleUser: handleUserFilterOptions.value, - // }; return columnData.map((e) => { if (Object.prototype.hasOwnProperty.call(optionsMap, e.dataIndex as string)) { return { @@ -297,3 +293,14 @@ export function makeColumns(optionsMap: Record, columnData: MsTable return { ...e }; }); } + +export function getPlatName(platformKey: string) { + switch (platformKey) { + case 'zentao': + return t('caseManagement.featureCase.zentao'); + case 'jira': + return t('caseManagement.featureCase.jira'); + default: + break; + } +} diff --git a/frontend/src/views/case-management/caseManagementFeature/locale/en-US.ts b/frontend/src/views/case-management/caseManagementFeature/locale/en-US.ts index 7029e6eb49..f11adf6787 100644 --- a/frontend/src/views/case-management/caseManagementFeature/locale/en-US.ts +++ b/frontend/src/views/case-management/caseManagementFeature/locale/en-US.ts @@ -264,6 +264,7 @@ export default { 'caseManagement.featureCase.sortSuccess': 'Sort successfully', 'caseManagement.featureCase.zentao': 'ZenTao', 'caseManagement.featureCase.jira': 'JIRA', + 'caseManagement.featureCase.tapd': 'TAPD', 'caseManagement.featureCase.searchPlaceholder': 'Search by ID, name, or tag', 'caseManagement.featureCase.ModuleOwned': 'Module owned', 'caseManagement.featureCase.excelImportTip': 'Only xls/xlsx files are supported', diff --git a/frontend/src/views/case-management/caseManagementFeature/locale/zh-CN.ts b/frontend/src/views/case-management/caseManagementFeature/locale/zh-CN.ts index f055479c52..f0b349d3c2 100644 --- a/frontend/src/views/case-management/caseManagementFeature/locale/zh-CN.ts +++ b/frontend/src/views/case-management/caseManagementFeature/locale/zh-CN.ts @@ -260,6 +260,7 @@ export default { 'caseManagement.featureCase.sortSuccess': '排序成功', 'caseManagement.featureCase.zentao': '禅道', 'caseManagement.featureCase.jira': 'JIRA', + 'caseManagement.featureCase.tapd': 'TAPD', 'caseManagement.featureCase.searchPlaceholder': '通过ID、名称或标签搜索', 'caseManagement.featureCase.ModuleOwned': '所属模块', 'caseManagement.featureCase.excelImportTip': '仅支持 xls/xlsx 格式的文件', diff --git a/frontend/src/views/project-management/projectAndPermission/menuManagement/components/relatedCase.vue b/frontend/src/views/project-management/projectAndPermission/menuManagement/components/relatedCase.vue index 03de6e4538..031ca53fb2 100644 --- a/frontend/src/views/project-management/projectAndPermission/menuManagement/components/relatedCase.vue +++ b/frontend/src/views/project-management/projectAndPermission/menuManagement/components/relatedCase.vue @@ -72,7 +72,7 @@