feat(表格): 支持记住手动调整的字段列宽& 关联用例增加创建人筛选
This commit is contained in:
parent
4c0bd68163
commit
91321faa07
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<MsBaseTable
|
<MsBaseTable
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
class="mt-[16px]"
|
|
||||||
v-bind="propsRes"
|
v-bind="propsRes"
|
||||||
|
class="mt-[16px]"
|
||||||
:action-config="{
|
:action-config="{
|
||||||
baseAction: [],
|
baseAction: [],
|
||||||
moreAction: [],
|
moreAction: [],
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
import { ReportEnum } from '@/enums/reportEnum';
|
import { ReportEnum } from '@/enums/reportEnum';
|
||||||
import { ApiTestRouteEnum } from '@/enums/routeEnum';
|
import { ApiTestRouteEnum } from '@/enums/routeEnum';
|
||||||
import { SpecialColumnEnum, TableKeyEnum } from '@/enums/tableEnum';
|
import { SpecialColumnEnum, TableKeyEnum } from '@/enums/tableEnum';
|
||||||
import { FilterSlotNameEnum } from '@/enums/tableFilterEnum';
|
import { FilterRemoteMethodsEnum, FilterSlotNameEnum } from '@/enums/tableFilterEnum';
|
||||||
|
|
||||||
import type { moduleKeysType } from './types';
|
import type { moduleKeysType } from './types';
|
||||||
import useModuleSelection from './useModuleSelection';
|
import useModuleSelection from './useModuleSelection';
|
||||||
|
@ -127,97 +127,105 @@
|
||||||
|
|
||||||
const tableStore = useTableStore();
|
const tableStore = useTableStore();
|
||||||
|
|
||||||
const columns: MsTableColumn = [
|
const columns = computed<MsTableColumn>(() => {
|
||||||
{
|
return [
|
||||||
title: 'ID',
|
{
|
||||||
dataIndex: 'num',
|
title: 'ID',
|
||||||
slotName: 'num',
|
dataIndex: 'num',
|
||||||
sortIndex: 1,
|
slotName: 'num',
|
||||||
sortable: {
|
sortIndex: 1,
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortable: {
|
||||||
sorter: true,
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
fixed: 'left',
|
||||||
|
width: 100,
|
||||||
|
showTooltip: true,
|
||||||
|
columnSelectorDisabled: true,
|
||||||
},
|
},
|
||||||
fixed: 'left',
|
{
|
||||||
width: 100,
|
title: 'case.caseName',
|
||||||
showTooltip: true,
|
dataIndex: 'name',
|
||||||
columnSelectorDisabled: true,
|
showTooltip: true,
|
||||||
},
|
sortable: {
|
||||||
{
|
sortDirections: ['ascend', 'descend'],
|
||||||
title: 'case.caseName',
|
sorter: true,
|
||||||
dataIndex: 'name',
|
},
|
||||||
showTooltip: true,
|
width: 180,
|
||||||
sortable: {
|
columnSelectorDisabled: true,
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
},
|
||||||
width: 180,
|
{
|
||||||
columnSelectorDisabled: true,
|
title: 'case.caseLevel',
|
||||||
},
|
dataIndex: 'priority',
|
||||||
{
|
slotName: 'caseLevel',
|
||||||
title: 'case.caseLevel',
|
filterConfig: {
|
||||||
dataIndex: 'priority',
|
options: casePriorityOptions,
|
||||||
slotName: 'caseLevel',
|
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_CASE_LEVEL,
|
||||||
filterConfig: {
|
},
|
||||||
options: casePriorityOptions,
|
width: 150,
|
||||||
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_CASE_LEVEL,
|
showDrag: true,
|
||||||
},
|
},
|
||||||
width: 150,
|
{
|
||||||
showDrag: true,
|
title: 'case.lastReportStatus',
|
||||||
},
|
dataIndex: 'lastReportStatus',
|
||||||
{
|
slotName: 'lastReportStatus',
|
||||||
title: 'case.lastReportStatus',
|
filterConfig: {
|
||||||
dataIndex: 'lastReportStatus',
|
options: lastReportStatusListOptions.value,
|
||||||
slotName: 'lastReportStatus',
|
filterSlotName: FilterSlotNameEnum.API_TEST_CASE_API_LAST_EXECUTE_STATUS,
|
||||||
filterConfig: {
|
},
|
||||||
options: lastReportStatusListOptions.value,
|
showInTable: false,
|
||||||
filterSlotName: FilterSlotNameEnum.API_TEST_CASE_API_LAST_EXECUTE_STATUS,
|
width: 150,
|
||||||
|
showDrag: true,
|
||||||
},
|
},
|
||||||
showInTable: false,
|
{
|
||||||
width: 150,
|
title: 'apiTestManagement.path',
|
||||||
showDrag: true,
|
dataIndex: 'path',
|
||||||
},
|
showTooltip: true,
|
||||||
{
|
width: 200,
|
||||||
title: 'apiTestManagement.path',
|
showDrag: true,
|
||||||
dataIndex: 'path',
|
|
||||||
showTooltip: true,
|
|
||||||
width: 200,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'common.tag',
|
|
||||||
slotName: 'tags',
|
|
||||||
dataIndex: 'tags',
|
|
||||||
isTag: true,
|
|
||||||
width: 300,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
|
||||||
slotName: 'createName',
|
|
||||||
dataIndex: 'createName',
|
|
||||||
showTooltip: true,
|
|
||||||
width: 200,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateTime',
|
|
||||||
slotName: 'createTime',
|
|
||||||
dataIndex: 'createTime',
|
|
||||||
sortable: {
|
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
},
|
||||||
width: 200,
|
{
|
||||||
showDrag: true,
|
title: 'common.tag',
|
||||||
},
|
slotName: 'tags',
|
||||||
{
|
dataIndex: 'tags',
|
||||||
title: '',
|
isTag: true,
|
||||||
dataIndex: 'action',
|
width: 300,
|
||||||
width: 24,
|
},
|
||||||
slotName: SpecialColumnEnum.ACTION,
|
{
|
||||||
fixed: 'right',
|
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
||||||
cellClass: 'operator-class',
|
slotName: 'createName',
|
||||||
},
|
dataIndex: 'createUser',
|
||||||
];
|
filterConfig: {
|
||||||
|
mode: 'remote',
|
||||||
|
loadOptionParams: {
|
||||||
|
projectId: props.currentProject,
|
||||||
|
},
|
||||||
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
|
},
|
||||||
|
width: 200,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'caseManagement.featureCase.tableColumnCreateTime',
|
||||||
|
slotName: 'createTime',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
sortable: {
|
||||||
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
width: 200,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '',
|
||||||
|
dataIndex: 'action',
|
||||||
|
width: 24,
|
||||||
|
slotName: SpecialColumnEnum.ACTION,
|
||||||
|
fixed: 'right',
|
||||||
|
cellClass: 'operator-class',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
const getPageList = computed(() => {
|
const getPageList = computed(() => {
|
||||||
return props.activeSourceType !== 'API'
|
return props.activeSourceType !== 'API'
|
||||||
|
@ -443,6 +451,7 @@
|
||||||
setPagination({
|
setPagination({
|
||||||
current: 1,
|
current: 1,
|
||||||
});
|
});
|
||||||
|
tableRef.value?.initColumn(columns.value);
|
||||||
resetFilterParams();
|
resetFilterParams();
|
||||||
loadCaseList();
|
loadCaseList();
|
||||||
},
|
},
|
||||||
|
@ -537,7 +546,7 @@
|
||||||
setCaseAdvanceFilter,
|
setCaseAdvanceFilter,
|
||||||
});
|
});
|
||||||
|
|
||||||
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE_API_CASE, columns, 'drawer');
|
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE_API_CASE, columns.value, 'drawer');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -112,89 +112,90 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const columns: MsTableColumn = [
|
const columns = computed<MsTableColumn>(() => {
|
||||||
{
|
return [
|
||||||
title: 'ID',
|
{
|
||||||
dataIndex: 'num',
|
title: 'ID',
|
||||||
slotName: 'num',
|
dataIndex: 'num',
|
||||||
sortIndex: 1,
|
slotName: 'num',
|
||||||
sortable: {
|
sortIndex: 1,
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortable: {
|
||||||
sorter: true,
|
sortDirections: ['ascend', 'descend'],
|
||||||
},
|
sorter: true,
|
||||||
fixed: 'left',
|
|
||||||
width: 100,
|
|
||||||
columnSelectorDisabled: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiTestManagement.apiName',
|
|
||||||
dataIndex: 'name',
|
|
||||||
showTooltip: true,
|
|
||||||
sortable: {
|
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
|
||||||
width: 200,
|
|
||||||
columnSelectorDisabled: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiTestManagement.apiType',
|
|
||||||
dataIndex: 'method',
|
|
||||||
slotName: 'method',
|
|
||||||
width: 140,
|
|
||||||
showDrag: true,
|
|
||||||
filterConfig: {
|
|
||||||
options: requestMethodsOptions.value,
|
|
||||||
filterSlotName: FilterSlotNameEnum.API_TEST_API_REQUEST_METHODS,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiTestManagement.path',
|
|
||||||
dataIndex: 'path',
|
|
||||||
showTooltip: true,
|
|
||||||
width: 200,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'common.tag',
|
|
||||||
dataIndex: 'tags',
|
|
||||||
isTag: true,
|
|
||||||
isStringTag: true,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiTestManagement.caseTotal',
|
|
||||||
dataIndex: 'caseTotal',
|
|
||||||
showTooltip: true,
|
|
||||||
width: 100,
|
|
||||||
showDrag: true,
|
|
||||||
slotName: 'caseTotal',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'common.creator',
|
|
||||||
slotName: 'createUserName',
|
|
||||||
dataIndex: 'createUser',
|
|
||||||
filterConfig: {
|
|
||||||
mode: 'remote',
|
|
||||||
loadOptionParams: {
|
|
||||||
projectId: appStore.currentProjectId,
|
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
fixed: 'left',
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
width: 100,
|
||||||
|
columnSelectorDisabled: true,
|
||||||
},
|
},
|
||||||
showInTable: true,
|
{
|
||||||
width: 200,
|
title: 'apiTestManagement.apiName',
|
||||||
showDrag: true,
|
dataIndex: 'name',
|
||||||
},
|
showTooltip: true,
|
||||||
{
|
sortable: {
|
||||||
title: '',
|
sortDirections: ['ascend', 'descend'],
|
||||||
dataIndex: 'action',
|
sorter: true,
|
||||||
width: 24,
|
},
|
||||||
slotName: SpecialColumnEnum.ACTION,
|
width: 200,
|
||||||
fixed: 'right',
|
columnSelectorDisabled: true,
|
||||||
cellClass: 'operator-class',
|
},
|
||||||
},
|
{
|
||||||
];
|
title: 'apiTestManagement.apiType',
|
||||||
|
dataIndex: 'method',
|
||||||
|
slotName: 'method',
|
||||||
|
width: 140,
|
||||||
|
showDrag: true,
|
||||||
|
filterConfig: {
|
||||||
|
options: requestMethodsOptions.value,
|
||||||
|
filterSlotName: FilterSlotNameEnum.API_TEST_API_REQUEST_METHODS,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiTestManagement.path',
|
||||||
|
dataIndex: 'path',
|
||||||
|
showTooltip: true,
|
||||||
|
width: 200,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'common.tag',
|
||||||
|
dataIndex: 'tags',
|
||||||
|
isTag: true,
|
||||||
|
isStringTag: true,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiTestManagement.caseTotal',
|
||||||
|
dataIndex: 'caseTotal',
|
||||||
|
showTooltip: true,
|
||||||
|
width: 100,
|
||||||
|
showDrag: true,
|
||||||
|
slotName: 'caseTotal',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'common.creator',
|
||||||
|
slotName: 'createUserName',
|
||||||
|
dataIndex: 'createUser',
|
||||||
|
filterConfig: {
|
||||||
|
mode: 'remote',
|
||||||
|
loadOptionParams: {
|
||||||
|
projectId: appStore.currentProjectId,
|
||||||
|
},
|
||||||
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
|
},
|
||||||
|
showInTable: true,
|
||||||
|
width: 200,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '',
|
||||||
|
dataIndex: 'action',
|
||||||
|
width: 24,
|
||||||
|
slotName: SpecialColumnEnum.ACTION,
|
||||||
|
fixed: 'right',
|
||||||
|
cellClass: 'operator-class',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
const {
|
const {
|
||||||
propsRes,
|
propsRes,
|
||||||
|
@ -363,6 +364,7 @@
|
||||||
function setCaseAdvanceFilter(filter: FilterResult, id: string) {
|
function setCaseAdvanceFilter(filter: FilterResult, id: string) {
|
||||||
setAdvanceFilter(filter, id);
|
setAdvanceFilter(filter, id);
|
||||||
}
|
}
|
||||||
|
const apiTableRef = ref<InstanceType<typeof MsBaseTable>>();
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
[() => props.currentProject, () => props.protocols],
|
[() => props.currentProject, () => props.protocols],
|
||||||
|
@ -370,6 +372,7 @@
|
||||||
setPagination({
|
setPagination({
|
||||||
current: 1,
|
current: 1,
|
||||||
});
|
});
|
||||||
|
apiTableRef.value?.initColumn(columns.value);
|
||||||
resetFilterParams();
|
resetFilterParams();
|
||||||
loadApiList();
|
loadApiList();
|
||||||
},
|
},
|
||||||
|
@ -466,7 +469,7 @@
|
||||||
setCaseAdvanceFilter,
|
setCaseAdvanceFilter,
|
||||||
});
|
});
|
||||||
|
|
||||||
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE_API, columns, 'drawer');
|
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE_API, columns.value, 'drawer');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -42,6 +42,11 @@
|
||||||
<template #lastExecResult="{ record }">
|
<template #lastExecResult="{ record }">
|
||||||
<ExecuteResult :execute-result="record.lastExecResult" />
|
<ExecuteResult :execute-result="record.lastExecResult" />
|
||||||
</template>
|
</template>
|
||||||
|
<template #createUserName="{ record }">
|
||||||
|
<a-tooltip :content="`${record.createUserName}`" position="tl">
|
||||||
|
<div class="one-line-text">{{ record.createUserName }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
<template #count>
|
<template #count>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</template>
|
</template>
|
||||||
|
@ -72,7 +77,7 @@
|
||||||
import { CaseLinkEnum } from '@/enums/caseEnum';
|
import { CaseLinkEnum } from '@/enums/caseEnum';
|
||||||
import { CaseManagementRouteEnum } from '@/enums/routeEnum';
|
import { CaseManagementRouteEnum } from '@/enums/routeEnum';
|
||||||
import { SpecialColumnEnum, TableKeyEnum } from '@/enums/tableEnum';
|
import { SpecialColumnEnum, TableKeyEnum } from '@/enums/tableEnum';
|
||||||
import { FilterSlotNameEnum } from '@/enums/tableFilterEnum';
|
import { FilterRemoteMethodsEnum, FilterSlotNameEnum } from '@/enums/tableFilterEnum';
|
||||||
|
|
||||||
import type { moduleKeysType } from './types';
|
import type { moduleKeysType } from './types';
|
||||||
import useModuleSelection from './useModuleSelection';
|
import useModuleSelection from './useModuleSelection';
|
||||||
|
@ -134,102 +139,110 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const columns: MsTableColumn = [
|
const columns = computed<MsTableColumn>(() => {
|
||||||
{
|
return [
|
||||||
title: 'ID',
|
{
|
||||||
dataIndex: 'num',
|
title: 'ID',
|
||||||
slotName: 'num',
|
dataIndex: 'num',
|
||||||
sortIndex: 1,
|
slotName: 'num',
|
||||||
sortable: {
|
sortIndex: 1,
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortable: {
|
||||||
sorter: true,
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
fixed: 'left',
|
||||||
|
width: 150,
|
||||||
|
showTooltip: true,
|
||||||
},
|
},
|
||||||
fixed: 'left',
|
{
|
||||||
width: 150,
|
title: 'case.caseName',
|
||||||
showTooltip: true,
|
dataIndex: 'name',
|
||||||
},
|
showTooltip: true,
|
||||||
{
|
sortable: {
|
||||||
title: 'case.caseName',
|
sortDirections: ['ascend', 'descend'],
|
||||||
dataIndex: 'name',
|
sorter: true,
|
||||||
showTooltip: true,
|
},
|
||||||
sortable: {
|
width: 180,
|
||||||
sortDirections: ['ascend', 'descend'],
|
columnSelectorDisabled: true,
|
||||||
sorter: true,
|
|
||||||
},
|
},
|
||||||
width: 180,
|
{
|
||||||
columnSelectorDisabled: true,
|
title: 'case.caseLevel',
|
||||||
},
|
dataIndex: 'caseLevel',
|
||||||
{
|
slotName: 'caseLevel',
|
||||||
title: 'case.caseLevel',
|
filterConfig: {
|
||||||
dataIndex: 'caseLevel',
|
options: casePriorityOptions,
|
||||||
slotName: 'caseLevel',
|
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_CASE_LEVEL,
|
||||||
filterConfig: {
|
},
|
||||||
options: casePriorityOptions,
|
width: 150,
|
||||||
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_CASE_LEVEL,
|
showDrag: true,
|
||||||
},
|
},
|
||||||
width: 150,
|
{
|
||||||
showDrag: true,
|
title: 'caseManagement.featureCase.tableColumnReviewResult',
|
||||||
},
|
dataIndex: 'reviewStatus',
|
||||||
{
|
slotName: 'reviewStatus',
|
||||||
title: 'caseManagement.featureCase.tableColumnReviewResult',
|
filterConfig: {
|
||||||
dataIndex: 'reviewStatus',
|
options: reviewResultOptions.value,
|
||||||
slotName: 'reviewStatus',
|
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_REVIEW_RESULT,
|
||||||
filterConfig: {
|
},
|
||||||
options: reviewResultOptions.value,
|
showInTable: true,
|
||||||
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_REVIEW_RESULT,
|
width: 150,
|
||||||
|
showDrag: true,
|
||||||
},
|
},
|
||||||
showInTable: true,
|
{
|
||||||
width: 150,
|
title: 'caseManagement.featureCase.tableColumnExecutionResult',
|
||||||
showDrag: true,
|
dataIndex: 'lastExecuteResult',
|
||||||
},
|
slotName: 'lastExecuteResult',
|
||||||
{
|
filterConfig: {
|
||||||
title: 'caseManagement.featureCase.tableColumnExecutionResult',
|
options: executeResultOptions.value,
|
||||||
dataIndex: 'lastExecuteResult',
|
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_EXECUTE_RESULT,
|
||||||
slotName: 'lastExecuteResult',
|
},
|
||||||
filterConfig: {
|
showInTable: true,
|
||||||
options: executeResultOptions.value,
|
width: 150,
|
||||||
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_EXECUTE_RESULT,
|
showDrag: true,
|
||||||
},
|
},
|
||||||
showInTable: true,
|
{
|
||||||
width: 150,
|
title: 'common.tag',
|
||||||
showDrag: true,
|
dataIndex: 'tags',
|
||||||
},
|
isTag: true,
|
||||||
{
|
isStringTag: true,
|
||||||
title: 'common.tag',
|
width: 400,
|
||||||
dataIndex: 'tags',
|
showDrag: true,
|
||||||
isTag: true,
|
|
||||||
isStringTag: true,
|
|
||||||
width: 400,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
|
||||||
slotName: 'createUserName',
|
|
||||||
dataIndex: 'createUserName',
|
|
||||||
showTooltip: true,
|
|
||||||
width: 150,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateTime',
|
|
||||||
slotName: 'createTime',
|
|
||||||
dataIndex: 'createTime',
|
|
||||||
sortable: {
|
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
},
|
||||||
width: 200,
|
{
|
||||||
showDrag: true,
|
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
||||||
},
|
slotName: 'createUserName',
|
||||||
{
|
dataIndex: 'createUserName',
|
||||||
title: '',
|
width: 150,
|
||||||
dataIndex: 'action',
|
filterConfig: {
|
||||||
width: 24,
|
mode: 'remote',
|
||||||
slotName: SpecialColumnEnum.ACTION,
|
loadOptionParams: {
|
||||||
fixed: 'right',
|
projectId: props.currentProject,
|
||||||
cellClass: 'operator-class',
|
},
|
||||||
},
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
];
|
},
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'caseManagement.featureCase.tableColumnCreateTime',
|
||||||
|
slotName: 'createTime',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
sortable: {
|
||||||
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
width: 200,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '',
|
||||||
|
dataIndex: 'action',
|
||||||
|
width: 24,
|
||||||
|
slotName: SpecialColumnEnum.ACTION,
|
||||||
|
fixed: 'right',
|
||||||
|
cellClass: 'operator-class',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
const getPageList = computed(() => {
|
const getPageList = computed(() => {
|
||||||
return getPublicLinkCaseListMap[props.getPageApiType][props.activeSourceType];
|
return getPublicLinkCaseListMap[props.getPageApiType][props.activeSourceType];
|
||||||
|
@ -478,6 +491,7 @@
|
||||||
watch(
|
watch(
|
||||||
() => props.currentProject,
|
() => props.currentProject,
|
||||||
() => {
|
() => {
|
||||||
|
tableRef.value?.initColumn(columns.value);
|
||||||
resetFilterParams();
|
resetFilterParams();
|
||||||
loadCaseList();
|
loadCaseList();
|
||||||
initFilter();
|
initFilter();
|
||||||
|
@ -508,7 +522,7 @@
|
||||||
setCaseAdvanceFilter,
|
setCaseAdvanceFilter,
|
||||||
});
|
});
|
||||||
|
|
||||||
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE, columns, 'drawer');
|
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE, columns.value, 'drawer');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -119,96 +119,98 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const columns: MsTableColumn = [
|
const columns = computed<MsTableColumn>(() => {
|
||||||
{
|
return [
|
||||||
title: 'ID',
|
{
|
||||||
dataIndex: 'num',
|
title: 'ID',
|
||||||
slotName: 'num',
|
dataIndex: 'num',
|
||||||
sortIndex: 1,
|
slotName: 'num',
|
||||||
sortable: {
|
sortIndex: 1,
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortable: {
|
||||||
sorter: true,
|
sortDirections: ['ascend', 'descend'],
|
||||||
},
|
sorter: true,
|
||||||
fixed: 'left',
|
|
||||||
width: 160,
|
|
||||||
showTooltip: false,
|
|
||||||
columnSelectorDisabled: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiScenario.table.columns.name',
|
|
||||||
dataIndex: 'name',
|
|
||||||
slotName: 'name',
|
|
||||||
sortable: {
|
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
|
||||||
width: 134,
|
|
||||||
showTooltip: true,
|
|
||||||
columnSelectorDisabled: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiScenario.table.columns.level',
|
|
||||||
dataIndex: 'priority',
|
|
||||||
slotName: 'priority',
|
|
||||||
showDrag: true,
|
|
||||||
sortable: {
|
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
|
||||||
filterConfig: {
|
|
||||||
options: casePriorityOptions,
|
|
||||||
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_CASE_LEVEL,
|
|
||||||
},
|
|
||||||
width: 140,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiScenario.table.columns.runResult',
|
|
||||||
dataIndex: 'lastReportStatus',
|
|
||||||
slotName: 'lastReportStatus',
|
|
||||||
showTooltip: false,
|
|
||||||
showDrag: true,
|
|
||||||
filterConfig: {
|
|
||||||
options: statusList.value,
|
|
||||||
filterSlotName: FilterSlotNameEnum.API_TEST_CASE_API_REPORT_EXECUTE_RESULT,
|
|
||||||
},
|
|
||||||
width: 200,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiScenario.table.columns.passRate',
|
|
||||||
dataIndex: 'requestPassRate',
|
|
||||||
showDrag: true,
|
|
||||||
width: 100,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiScenario.table.columns.tags',
|
|
||||||
dataIndex: 'tags',
|
|
||||||
isTag: true,
|
|
||||||
isStringTag: true,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'apiScenario.table.columns.createUser',
|
|
||||||
dataIndex: 'createUser',
|
|
||||||
slotName: 'createUserName',
|
|
||||||
width: 109,
|
|
||||||
filterConfig: {
|
|
||||||
mode: 'remote',
|
|
||||||
loadOptionParams: {
|
|
||||||
projectId: appStore.currentProjectId,
|
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
fixed: 'left',
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
width: 160,
|
||||||
|
showTooltip: false,
|
||||||
|
columnSelectorDisabled: true,
|
||||||
},
|
},
|
||||||
},
|
{
|
||||||
{
|
title: 'apiScenario.table.columns.name',
|
||||||
title: '',
|
dataIndex: 'name',
|
||||||
dataIndex: 'action',
|
slotName: 'name',
|
||||||
width: 24,
|
sortable: {
|
||||||
slotName: SpecialColumnEnum.ACTION,
|
sortDirections: ['ascend', 'descend'],
|
||||||
fixed: 'right',
|
sorter: true,
|
||||||
cellClass: 'operator-class',
|
},
|
||||||
},
|
width: 134,
|
||||||
];
|
showTooltip: true,
|
||||||
|
columnSelectorDisabled: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiScenario.table.columns.level',
|
||||||
|
dataIndex: 'priority',
|
||||||
|
slotName: 'priority',
|
||||||
|
showDrag: true,
|
||||||
|
sortable: {
|
||||||
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
filterConfig: {
|
||||||
|
options: casePriorityOptions,
|
||||||
|
filterSlotName: FilterSlotNameEnum.CASE_MANAGEMENT_CASE_LEVEL,
|
||||||
|
},
|
||||||
|
width: 140,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiScenario.table.columns.runResult',
|
||||||
|
dataIndex: 'lastReportStatus',
|
||||||
|
slotName: 'lastReportStatus',
|
||||||
|
showTooltip: false,
|
||||||
|
showDrag: true,
|
||||||
|
filterConfig: {
|
||||||
|
options: statusList.value,
|
||||||
|
filterSlotName: FilterSlotNameEnum.API_TEST_CASE_API_REPORT_EXECUTE_RESULT,
|
||||||
|
},
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiScenario.table.columns.passRate',
|
||||||
|
dataIndex: 'requestPassRate',
|
||||||
|
showDrag: true,
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiScenario.table.columns.tags',
|
||||||
|
dataIndex: 'tags',
|
||||||
|
isTag: true,
|
||||||
|
isStringTag: true,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'apiScenario.table.columns.createUser',
|
||||||
|
dataIndex: 'createUser',
|
||||||
|
slotName: 'createUserName',
|
||||||
|
width: 109,
|
||||||
|
filterConfig: {
|
||||||
|
mode: 'remote',
|
||||||
|
loadOptionParams: {
|
||||||
|
projectId: props.currentProject,
|
||||||
|
},
|
||||||
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '',
|
||||||
|
dataIndex: 'action',
|
||||||
|
width: 24,
|
||||||
|
slotName: SpecialColumnEnum.ACTION,
|
||||||
|
fixed: 'right',
|
||||||
|
cellClass: 'operator-class',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
const getPageList = computed(() => {
|
const getPageList = computed(() => {
|
||||||
return getPublicLinkCaseListMap[props.getPageApiType][props.activeSourceType];
|
return getPublicLinkCaseListMap[props.getPageApiType][props.activeSourceType];
|
||||||
});
|
});
|
||||||
|
@ -457,6 +459,7 @@
|
||||||
watch(
|
watch(
|
||||||
() => props.currentProject,
|
() => props.currentProject,
|
||||||
() => {
|
() => {
|
||||||
|
tableRef.value?.initColumn(columns.value);
|
||||||
resetFilterParams();
|
resetFilterParams();
|
||||||
loadScenarioList();
|
loadScenarioList();
|
||||||
}
|
}
|
||||||
|
@ -483,7 +486,7 @@
|
||||||
loadScenarioList,
|
loadScenarioList,
|
||||||
});
|
});
|
||||||
|
|
||||||
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE_API_SCENARIO, columns, 'drawer');
|
await tableStore.initColumn(TableKeyEnum.ASSOCIATE_CASE_API_SCENARIO, columns.value, 'drawer');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -117,6 +117,7 @@
|
||||||
/>
|
/>
|
||||||
<ms-base-table
|
<ms-base-table
|
||||||
v-bind="propsRes"
|
v-bind="propsRes"
|
||||||
|
:columns="columns"
|
||||||
:action-config="{
|
:action-config="{
|
||||||
baseAction: [],
|
baseAction: [],
|
||||||
moreAction: [],
|
moreAction: [],
|
||||||
|
@ -154,6 +155,11 @@
|
||||||
<template #[FilterSlotNameEnum.CASE_MANAGEMENT_EXECUTE_RESULT]="{ filterContent }">
|
<template #[FilterSlotNameEnum.CASE_MANAGEMENT_EXECUTE_RESULT]="{ filterContent }">
|
||||||
<ExecuteStatusTag :execute-result="filterContent.value" />
|
<ExecuteStatusTag :execute-result="filterContent.value" />
|
||||||
</template>
|
</template>
|
||||||
|
<template #createUserName="{ record }">
|
||||||
|
<a-tooltip :content="`${record.createUserName}`" position="tl">
|
||||||
|
<div class="one-line-text">{{ record.createUserName }}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
</ms-base-table>
|
</ms-base-table>
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<div class="flex flex-1 items-center">
|
<div class="flex flex-1 items-center">
|
||||||
|
@ -211,7 +217,7 @@
|
||||||
import { CaseLinkEnum } from '@/enums/caseEnum';
|
import { CaseLinkEnum } from '@/enums/caseEnum';
|
||||||
import { CaseManagementRouteEnum } from '@/enums/routeEnum';
|
import { CaseManagementRouteEnum } from '@/enums/routeEnum';
|
||||||
import { TableKeyEnum } from '@/enums/tableEnum';
|
import { TableKeyEnum } from '@/enums/tableEnum';
|
||||||
import { FilterSlotNameEnum } from '@/enums/tableFilterEnum';
|
import { FilterRemoteMethodsEnum, FilterSlotNameEnum } from '@/enums/tableFilterEnum';
|
||||||
|
|
||||||
import { initGetModuleCountFunc, type RequestModuleEnum } from './utils';
|
import { initGetModuleCountFunc, type RequestModuleEnum } from './utils';
|
||||||
import { casePriorityOptions } from '@/views/api-test/components/config';
|
import { casePriorityOptions } from '@/views/api-test/components/config';
|
||||||
|
@ -425,57 +431,66 @@
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
const columns: MsTableColumn = [
|
const columns = computed<MsTableColumn>(() => {
|
||||||
{
|
return [
|
||||||
title: 'ID',
|
{
|
||||||
dataIndex: 'num',
|
title: 'ID',
|
||||||
slotName: 'num',
|
dataIndex: 'num',
|
||||||
sortIndex: 1,
|
slotName: 'num',
|
||||||
showTooltip: true,
|
sortIndex: 1,
|
||||||
sortable: {
|
showTooltip: true,
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortable: {
|
||||||
sorter: true,
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
width: 120,
|
||||||
|
fixed: 'left',
|
||||||
},
|
},
|
||||||
width: 120,
|
{
|
||||||
fixed: 'left',
|
title: 'ms.case.associate.caseName',
|
||||||
},
|
dataIndex: 'name',
|
||||||
{
|
sortable: {
|
||||||
title: 'ms.case.associate.caseName',
|
sortDirections: ['ascend', 'descend'],
|
||||||
dataIndex: 'name',
|
sorter: true,
|
||||||
sortable: {
|
},
|
||||||
sortDirections: ['ascend', 'descend'],
|
showTooltip: true,
|
||||||
sorter: true,
|
width: 250,
|
||||||
},
|
},
|
||||||
showTooltip: true,
|
...getCaseLevelColumn(),
|
||||||
width: 250,
|
...getReviewStatus(),
|
||||||
},
|
{
|
||||||
...getCaseLevelColumn(),
|
title: 'ms.case.associate.tags',
|
||||||
...getReviewStatus(),
|
dataIndex: 'tags',
|
||||||
{
|
isTag: true,
|
||||||
title: 'ms.case.associate.tags',
|
|
||||||
dataIndex: 'tags',
|
|
||||||
isTag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
|
||||||
slotName: 'createUserName',
|
|
||||||
dataIndex: 'createUserName',
|
|
||||||
showTooltip: true,
|
|
||||||
width: 200,
|
|
||||||
showDrag: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateTime',
|
|
||||||
slotName: 'createTime',
|
|
||||||
dataIndex: 'createTime',
|
|
||||||
sortable: {
|
|
||||||
sortDirections: ['ascend', 'descend'],
|
|
||||||
sorter: true,
|
|
||||||
},
|
},
|
||||||
width: 200,
|
{
|
||||||
showDrag: true,
|
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
||||||
},
|
slotName: 'createUserName',
|
||||||
];
|
dataIndex: 'createUser',
|
||||||
|
showTooltip: true,
|
||||||
|
width: 200,
|
||||||
|
filterConfig: {
|
||||||
|
mode: 'remote',
|
||||||
|
loadOptionParams: {
|
||||||
|
projectId: innerProject.value,
|
||||||
|
},
|
||||||
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
|
},
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'caseManagement.featureCase.tableColumnCreateTime',
|
||||||
|
slotName: 'createTime',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
sortable: {
|
||||||
|
sortDirections: ['ascend', 'descend'],
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
width: 200,
|
||||||
|
showDrag: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
getCaseLevelColumn();
|
getCaseLevelColumn();
|
||||||
|
@ -495,7 +510,7 @@
|
||||||
} = useTable(
|
} = useTable(
|
||||||
props.getTableFunc,
|
props.getTableFunc,
|
||||||
{
|
{
|
||||||
columns,
|
columns: columns.value,
|
||||||
tableKey: TableKeyEnum.CASE_MANAGEMENT_ASSOCIATED_TABLE,
|
tableKey: TableKeyEnum.CASE_MANAGEMENT_ASSOCIATED_TABLE,
|
||||||
scroll: { x: '100%' },
|
scroll: { x: '100%' },
|
||||||
showSetting: false,
|
showSetting: false,
|
||||||
|
@ -820,6 +835,7 @@
|
||||||
value: string | number | boolean | Record<string, any> | (string | number | boolean | Record<string, any>)[]
|
value: string | number | boolean | Record<string, any> | (string | number | boolean | Record<string, any>)[]
|
||||||
) {
|
) {
|
||||||
innerProject.value = value as string;
|
innerProject.value = value as string;
|
||||||
|
resetFilterParams();
|
||||||
await initModules();
|
await initModules();
|
||||||
setAllSelectModule();
|
setAllSelectModule();
|
||||||
initFilter();
|
initFilter();
|
||||||
|
|
|
@ -310,7 +310,7 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { Message } from '@arco-design/web-vue';
|
import { Message } from '@arco-design/web-vue';
|
||||||
import { debounce } from 'lodash-es';
|
import { debounce, throttle } from 'lodash-es';
|
||||||
|
|
||||||
import MsIcon from '@/components/pure/ms-icon-font/index.vue';
|
import MsIcon from '@/components/pure/ms-icon-font/index.vue';
|
||||||
import MsPagination from '@/components/pure/ms-pagination/index';
|
import MsPagination from '@/components/pure/ms-pagination/index';
|
||||||
|
@ -964,8 +964,18 @@
|
||||||
batchLeft.value = getBatchLeft();
|
batchLeft.value = getBatchLeft();
|
||||||
});
|
});
|
||||||
|
|
||||||
function columnResize(dataIndex: string) {
|
const updateColumnWidth = throttle(async (dataIndex: string, width: number) => {
|
||||||
if (dataIndex) {
|
if (dataIndex) {
|
||||||
|
const [index] = dataIndex.split('_').slice(-1);
|
||||||
|
const lastIndex = attrs.selectable ? Number(index) - 1 : Number(index);
|
||||||
|
currentColumns.value[lastIndex].width = width;
|
||||||
|
await tableStore.updateColumnWidth(attrs.tableKey as TableKeyEnum, currentColumns.value);
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
|
||||||
|
function columnResize(dataIndex: string, width: number) {
|
||||||
|
if (dataIndex) {
|
||||||
|
updateColumnWidth(dataIndex, width);
|
||||||
updateAllTagVisibility();
|
updateAllTagVisibility();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,25 +34,54 @@
|
||||||
</a-checkbox>
|
</a-checkbox>
|
||||||
</a-checkbox-group>
|
</a-checkbox-group>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="w-[200px] p-[12px] pb-[8px]">
|
<div v-if="props.mode === 'remote'" class="w-[190px] p-[12px] py-[8px]">
|
||||||
<MsSelect
|
<a-input
|
||||||
v-model:model-value="checkedList"
|
v-model:model-value="filterKeyword"
|
||||||
mode="remote"
|
class="mb-[8px]"
|
||||||
:options="[]"
|
:placeholder="t('common.pleaseInput')"
|
||||||
:placeholder="props.placeholderText"
|
|
||||||
multiple
|
|
||||||
:value-key="props.valueKey || 'id'"
|
|
||||||
:label-key="props.labelKey || 'name'"
|
|
||||||
:filter-option="false"
|
|
||||||
allow-clear
|
allow-clear
|
||||||
:search-keys="['name']"
|
|
||||||
:loading="loading"
|
|
||||||
:remote-func="loadList"
|
|
||||||
:remote-extra-params="{ ...props.loadOptionParams }"
|
|
||||||
:option-label-render="optionLabelRender"
|
|
||||||
:should-calculate-max-tag="false"
|
|
||||||
>
|
>
|
||||||
</MsSelect>
|
<template #prefix>
|
||||||
|
<MsIcon
|
||||||
|
type="icon-icon_search-outline_outlined"
|
||||||
|
class="text-[var(--color-text-input-border)]"
|
||||||
|
size="16"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</a-input>
|
||||||
|
<a-spin class="w-full" :loading="loading">
|
||||||
|
<MsList
|
||||||
|
v-model:data="filterListOptions"
|
||||||
|
mode="remote"
|
||||||
|
item-key-field="id"
|
||||||
|
:item-border="false"
|
||||||
|
class="w-full rounded-[var(--border-radius-small)]"
|
||||||
|
:no-more-data="false"
|
||||||
|
:virtual-list-props="{
|
||||||
|
height: '160px',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template #title="{ item }">
|
||||||
|
<div class="w-full" @click.stop="checkItem(item.value)">
|
||||||
|
<a-checkbox
|
||||||
|
:model-value="checkedList.includes(item.value)"
|
||||||
|
:value="item.value"
|
||||||
|
@click.stop="checkItem(item.value)"
|
||||||
|
>
|
||||||
|
<a-tooltip
|
||||||
|
:content="item[props.labelKey || 'label']"
|
||||||
|
:mouse-enter-delay="300"
|
||||||
|
:disabled="!item[props.labelKey || 'label']"
|
||||||
|
>
|
||||||
|
<div class="one-line-text max-w-[120px]" @click.stop="checkItem(item.value)">
|
||||||
|
<div class="one-line-text max-w-[120px]">{{ item.label }}</div>
|
||||||
|
</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</a-checkbox>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</MsList>
|
||||||
|
</a-spin>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
:class="`${
|
:class="`${
|
||||||
|
@ -74,8 +103,9 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { SelectOptionData } from '@arco-design/web-vue';
|
import { SelectOptionData } from '@arco-design/web-vue';
|
||||||
|
import { debounce } from 'lodash-es';
|
||||||
|
|
||||||
import MsSelect from '@/components/business/ms-select/index';
|
import MsList from '@/components/pure/ms-list/index.vue';
|
||||||
|
|
||||||
import { useI18n } from '@/hooks/useI18n';
|
import { useI18n } from '@/hooks/useI18n';
|
||||||
|
|
||||||
|
@ -96,7 +126,6 @@
|
||||||
mode?: 'static' | 'remote';
|
mode?: 'static' | 'remote';
|
||||||
remoteMethod?: FilterRemoteMethodsEnum; // 加载选项方法
|
remoteMethod?: FilterRemoteMethodsEnum; // 加载选项方法
|
||||||
loadOptionParams?: Record<string, any>; // 请求下拉的参数
|
loadOptionParams?: Record<string, any>; // 请求下拉的参数
|
||||||
placeholderText?: string;
|
|
||||||
dataIndex?: string | undefined;
|
dataIndex?: string | undefined;
|
||||||
filter: Record<string, any>;
|
filter: Record<string, any>;
|
||||||
emptyFilter?: boolean; // 增加-空选项查询
|
emptyFilter?: boolean; // 增加-空选项查询
|
||||||
|
@ -129,36 +158,6 @@
|
||||||
|
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
|
|
||||||
const optionLabelRender = (option: SelectOptionData) => {
|
|
||||||
return `<span class='text-[var(--color-text-1)]'>${option.name}</span>`;
|
|
||||||
};
|
|
||||||
|
|
||||||
const loadList = async (params: Record<string, any>) => {
|
|
||||||
try {
|
|
||||||
loading.value = true;
|
|
||||||
const { keyword, ...rest } = params;
|
|
||||||
if (props.remoteMethod) {
|
|
||||||
const list = (await initRemoteOptionsFunc(props.remoteMethod, { keyword, ...rest })) || [];
|
|
||||||
list.forEach((item: any) => {
|
|
||||||
if (props.valueKey) {
|
|
||||||
item.id = item[props.valueKey || 'id'] as string;
|
|
||||||
}
|
|
||||||
if (props.labelKey) {
|
|
||||||
item.name = (item[props.labelKey] as string) || '';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
return [];
|
|
||||||
} catch (error) {
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.log(error);
|
|
||||||
return [];
|
|
||||||
} finally {
|
|
||||||
loading.value = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const isHighlight = computed(() => {
|
const isHighlight = computed(() => {
|
||||||
if (props.filter && props.dataIndex) {
|
if (props.filter && props.dataIndex) {
|
||||||
return (props.filter[props.dataIndex] || []).length > 0;
|
return (props.filter[props.dataIndex] || []).length > 0;
|
||||||
|
@ -175,6 +174,43 @@
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const originFilterList = ref<SelectOptionData[]>([]);
|
||||||
|
const filterListOptions = ref<SelectOptionData[]>([]);
|
||||||
|
|
||||||
|
const filterKeyword = ref('');
|
||||||
|
|
||||||
|
async function initOptions() {
|
||||||
|
try {
|
||||||
|
loading.value = true;
|
||||||
|
if (props.remoteMethod) {
|
||||||
|
const list =
|
||||||
|
(await initRemoteOptionsFunc(props.remoteMethod, {
|
||||||
|
keyword: filterKeyword.value,
|
||||||
|
...props.loadOptionParams,
|
||||||
|
})) || [];
|
||||||
|
list.forEach((item: any) => {
|
||||||
|
item.value = item[props.valueKey || 'id'] as string;
|
||||||
|
item.label = (item[props.labelKey || 'name'] as string) || '';
|
||||||
|
});
|
||||||
|
filterListOptions.value = list;
|
||||||
|
originFilterList.value = list;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log(error);
|
||||||
|
} finally {
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkItem(value: string) {
|
||||||
|
if (checkedList.value.includes(value)) {
|
||||||
|
checkedList.value = checkedList.value.filter((e) => e !== value);
|
||||||
|
} else {
|
||||||
|
checkedList.value.push(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 用于切换的时候重置清空上一次的选择
|
// 用于切换的时候重置清空上一次的选择
|
||||||
watch(
|
watch(
|
||||||
() => isNoFilter.value,
|
() => isNoFilter.value,
|
||||||
|
@ -188,11 +224,44 @@
|
||||||
watch(
|
watch(
|
||||||
() => props.filter,
|
() => props.filter,
|
||||||
(val) => {
|
(val) => {
|
||||||
if (val[props.dataIndex as string] && val[props.dataIndex as string]?.length) {
|
if (!val[props.dataIndex as string] || val[props.dataIndex as string]?.length === 0) {
|
||||||
|
checkedList.value = []; // 清空选择
|
||||||
|
} else {
|
||||||
|
// 如果有过滤条件,更新 checkedList
|
||||||
checkedList.value = val[props.dataIndex as string];
|
checkedList.value = val[props.dataIndex as string];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const searchItem = debounce(() => {
|
||||||
|
filterListOptions.value = originFilterList.value.filter((item: SelectOptionData) =>
|
||||||
|
item.label?.includes(filterKeyword.value)
|
||||||
|
);
|
||||||
|
}, 300);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => visible.value,
|
||||||
|
(val) => {
|
||||||
|
if (val && props.mode === 'remote') {
|
||||||
|
filterKeyword.value = '';
|
||||||
|
initOptions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => filterKeyword.value,
|
||||||
|
() => {
|
||||||
|
if (filterKeyword.value === '') {
|
||||||
|
filterListOptions.value = [...originFilterList.value];
|
||||||
|
}
|
||||||
|
searchItem();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
checkedList.value = [];
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
|
|
@ -33,7 +33,6 @@ export interface MsTableColumnFilterConfig {
|
||||||
emptyFilter?: boolean; // 是否空选项查询(包含未执行和排队中无状态)
|
emptyFilter?: boolean; // 是否空选项查询(包含未执行和排队中无状态)
|
||||||
remoteMethod?: FilterRemoteMethodsEnum; // 加载选项的类型
|
remoteMethod?: FilterRemoteMethodsEnum; // 加载选项的类型
|
||||||
loadOptionParams?: Record<string, any>; // 请求下拉的参数
|
loadOptionParams?: Record<string, any>; // 请求下拉的参数
|
||||||
placeholderText?: string;
|
|
||||||
firstLabelKey?: string;
|
firstLabelKey?: string;
|
||||||
secondLabelKey?: string;
|
secondLabelKey?: string;
|
||||||
disabledTooltip?: boolean;
|
disabledTooltip?: boolean;
|
||||||
|
|
|
@ -76,7 +76,14 @@ export default function useTableStore() {
|
||||||
const { columnBackup: oldColumn, pageSize } = tableColumnsMap;
|
const { columnBackup: oldColumn, pageSize } = tableColumnsMap;
|
||||||
// 比较页面上定义的 column 和 浏览器备份的column 是否相同
|
// 比较页面上定义的 column 和 浏览器备份的column 是否相同
|
||||||
const isEqual = isArraysEqualWithOrder(oldColumn, column);
|
const isEqual = isArraysEqualWithOrder(oldColumn, column);
|
||||||
|
|
||||||
if (!isEqual) {
|
if (!isEqual) {
|
||||||
|
column.forEach((col) => {
|
||||||
|
const storedCol = oldColumn.find((sc) => sc.dataIndex === col.dataIndex);
|
||||||
|
if (storedCol) {
|
||||||
|
col.width = storedCol.width; // 使用上一次拖拽存储的宽度,避免组件里边使用时候初始化到最初的列宽
|
||||||
|
}
|
||||||
|
});
|
||||||
// 如果不相等,说明有变动将新的column存入indexDB
|
// 如果不相等,说明有变动将新的column存入indexDB
|
||||||
setItem(
|
setItem(
|
||||||
tableKey,
|
tableKey,
|
||||||
|
@ -274,6 +281,31 @@ export default function useTableStore() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function updateColumnWidth(tableKey: TableKeyEnum, column: MsTableColumn) {
|
||||||
|
try {
|
||||||
|
// 从 IndexedDB 获取当前存储的列配置
|
||||||
|
const tableColumnsMap = await getItem<MsTableSelectorItem>(
|
||||||
|
tableKey,
|
||||||
|
tableKey.startsWith('SYSTEM') || tableKey.startsWith('ORGANIZATION')
|
||||||
|
);
|
||||||
|
|
||||||
|
if (tableColumnsMap) {
|
||||||
|
// 存储更新后的列配置到 IndexedDB
|
||||||
|
await setItem(
|
||||||
|
tableKey,
|
||||||
|
{
|
||||||
|
...tableColumnsMap,
|
||||||
|
column,
|
||||||
|
},
|
||||||
|
tableKey.startsWith('SYSTEM') || tableKey.startsWith('ORGANIZATION')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error('Error updating column width:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
initColumn,
|
initColumn,
|
||||||
setMode,
|
setMode,
|
||||||
|
@ -286,5 +318,6 @@ export default function useTableStore() {
|
||||||
getShowInTableColumns,
|
getShowInTableColumns,
|
||||||
getPageSize,
|
getPageSize,
|
||||||
getStoreColumns,
|
getStoreColumns,
|
||||||
|
updateColumnWidth,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -512,7 +512,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 200,
|
width: 200,
|
||||||
|
|
|
@ -161,7 +161,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('common.pleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -548,7 +548,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 180,
|
width: 180,
|
||||||
|
|
|
@ -317,7 +317,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -185,7 +185,6 @@
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortDirections: ['ascend', 'descend'],
|
||||||
sorter: true,
|
sorter: true,
|
||||||
},
|
},
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
columnSelectorDisabled: true,
|
columnSelectorDisabled: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -295,7 +295,6 @@
|
||||||
},
|
},
|
||||||
fixed: 'left',
|
fixed: 'left',
|
||||||
width: 130,
|
width: 130,
|
||||||
ellipsis: true,
|
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -789,7 +789,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -804,7 +803,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -250,6 +250,7 @@
|
||||||
dataIndex: 'modulePath',
|
dataIndex: 'modulePath',
|
||||||
width: 176,
|
width: 176,
|
||||||
showDrag: true,
|
showDrag: true,
|
||||||
|
showTooltip: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'apiScenario.table.columns.createTime',
|
title: 'apiScenario.table.columns.createTime',
|
||||||
|
@ -297,7 +298,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -145,7 +145,6 @@
|
||||||
width: 200,
|
width: 200,
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -154,7 +153,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -164,7 +162,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -173,7 +170,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -591,7 +591,6 @@
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortDirections: ['ascend', 'descend'],
|
||||||
sorter: true,
|
sorter: true,
|
||||||
},
|
},
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
columnSelectorDisabled: true,
|
columnSelectorDisabled: true,
|
||||||
},
|
},
|
||||||
|
@ -685,7 +684,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 200,
|
width: 200,
|
||||||
|
@ -713,7 +711,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
|
|
|
@ -280,7 +280,6 @@
|
||||||
sortDirections: ['ascend', 'descend'],
|
sortDirections: ['ascend', 'descend'],
|
||||||
sorter: true,
|
sorter: true,
|
||||||
},
|
},
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
columnSelectorDisabled: true,
|
columnSelectorDisabled: true,
|
||||||
},
|
},
|
||||||
|
@ -356,7 +355,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
|
@ -386,7 +384,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 200,
|
width: 200,
|
||||||
|
@ -413,7 +410,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
|
|
|
@ -236,7 +236,6 @@
|
||||||
width: 100,
|
width: 100,
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -128,7 +128,6 @@
|
||||||
width: 200,
|
width: 200,
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnName',
|
title: 'caseManagement.featureCase.tableColumnName',
|
||||||
|
@ -153,7 +152,6 @@
|
||||||
// showInTable: true,
|
// showInTable: true,
|
||||||
// showTooltip: true,
|
// showTooltip: true,
|
||||||
// width: 300,
|
// width: 300,
|
||||||
// ellipsis: true,
|
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.changeType',
|
title: 'caseManagement.featureCase.changeType',
|
||||||
|
@ -162,7 +160,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnActions',
|
title: 'caseManagement.featureCase.tableColumnActions',
|
||||||
|
|
|
@ -99,14 +99,12 @@
|
||||||
// width: 300,
|
// width: 300,
|
||||||
// dataIndex: 'status',
|
// dataIndex: 'status',
|
||||||
// showTooltip: true,
|
// showTooltip: true,
|
||||||
// ellipsis: true,
|
|
||||||
// },
|
// },
|
||||||
// {
|
// {
|
||||||
// title: 'caseManagement.featureCase.platformDemandHandler',
|
// title: 'caseManagement.featureCase.platformDemandHandler',
|
||||||
// width: 300,
|
// width: 300,
|
||||||
// dataIndex: 'handler',
|
// dataIndex: 'handler',
|
||||||
// showTooltip: true,
|
// showTooltip: true,
|
||||||
// ellipsis: true,
|
|
||||||
// },
|
// },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,6 @@
|
||||||
width: 200,
|
width: 200,
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnName',
|
title: 'caseManagement.featureCase.tableColumnName',
|
||||||
|
@ -125,7 +124,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// title: 'caseManagement.featureCase.tableColumnVersion',
|
// title: 'caseManagement.featureCase.tableColumnVersion',
|
||||||
|
@ -134,7 +132,6 @@
|
||||||
// showInTable: true,
|
// showInTable: true,
|
||||||
// showTooltip: true,
|
// showTooltip: true,
|
||||||
// width: 300,
|
// width: 300,
|
||||||
// ellipsis: true,
|
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
title: 'caseManagement.featureCase.tableColumnCreateUser',
|
||||||
|
@ -143,7 +140,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnActions',
|
title: 'caseManagement.featureCase.tableColumnActions',
|
||||||
|
|
|
@ -526,7 +526,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -443,7 +443,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
remoteMethod: FilterRemoteMethodsEnum.PROJECT_PERMISSION_MEMBER,
|
||||||
placeholderText: t('caseManagement.caseReview.reviewerPlaceholder'),
|
|
||||||
},
|
},
|
||||||
showDrag: true,
|
showDrag: true,
|
||||||
width: 150,
|
width: 150,
|
||||||
|
|
|
@ -97,7 +97,6 @@
|
||||||
showDrag: true,
|
showDrag: true,
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'URL',
|
title: 'URL',
|
||||||
|
@ -105,7 +104,6 @@
|
||||||
showDrag: true,
|
showDrag: true,
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'project.environmental.database.username',
|
title: 'project.environmental.database.username',
|
||||||
|
|
|
@ -167,7 +167,6 @@
|
||||||
return {
|
return {
|
||||||
mode: 'remote',
|
mode: 'remote',
|
||||||
remoteMethod: FilterRemoteMethodsEnum.SYSTEM_ORGANIZATION_LIST,
|
remoteMethod: FilterRemoteMethodsEnum.SYSTEM_ORGANIZATION_LIST,
|
||||||
placeholderText: t('common.pleaseSelect'),
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -449,7 +449,6 @@
|
||||||
title: 'ID',
|
title: 'ID',
|
||||||
dataIndex: 'num',
|
dataIndex: 'num',
|
||||||
width: 80,
|
width: 80,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'case.caseName',
|
title: 'case.caseName',
|
||||||
|
@ -466,7 +465,6 @@
|
||||||
{
|
{
|
||||||
title: 'common.belongModule',
|
title: 'common.belongModule',
|
||||||
dataIndex: 'moduleName',
|
dataIndex: 'moduleName',
|
||||||
ellipsis: true,
|
|
||||||
width: 200,
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -385,7 +385,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.EXECUTE_USER,
|
remoteMethod: FilterRemoteMethodsEnum.EXECUTE_USER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -364,7 +364,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.EXECUTE_USER,
|
remoteMethod: FilterRemoteMethodsEnum.EXECUTE_USER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -108,7 +108,6 @@
|
||||||
dataIndex: 'title',
|
dataIndex: 'title',
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -120,7 +119,6 @@
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 150,
|
width: 150,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -129,7 +127,6 @@
|
||||||
dataIndex: 'linkCase',
|
dataIndex: 'linkCase',
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 150,
|
width: 150,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.updateUser',
|
title: 'caseManagement.featureCase.updateUser',
|
||||||
|
@ -139,7 +136,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'common.createTime',
|
title: 'common.createTime',
|
||||||
|
|
|
@ -436,7 +436,6 @@
|
||||||
projectId: appStore.currentProjectId,
|
projectId: appStore.currentProjectId,
|
||||||
},
|
},
|
||||||
remoteMethod: FilterRemoteMethodsEnum.EXECUTE_USER,
|
remoteMethod: FilterRemoteMethodsEnum.EXECUTE_USER,
|
||||||
placeholderText: t('caseManagement.featureCase.PleaseSelect'),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -135,7 +135,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: false,
|
showTooltip: false,
|
||||||
width: 300,
|
width: 300,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -148,7 +147,6 @@
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 150,
|
width: 150,
|
||||||
ellipsis: true,
|
|
||||||
showDrag: false,
|
showDrag: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -158,7 +156,6 @@
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
width: 200,
|
width: 200,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.updateUser',
|
title: 'caseManagement.featureCase.updateUser',
|
||||||
|
@ -170,7 +167,6 @@
|
||||||
},
|
},
|
||||||
showInTable: true,
|
showInTable: true,
|
||||||
width: 200,
|
width: 200,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnActions',
|
title: 'caseManagement.featureCase.tableColumnActions',
|
||||||
|
|
|
@ -117,7 +117,6 @@
|
||||||
showTooltip: true,
|
showTooltip: true,
|
||||||
fixed: 'left',
|
fixed: 'left',
|
||||||
width: 180,
|
width: 180,
|
||||||
ellipsis: true,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'caseManagement.featureCase.tableColumnLevel',
|
title: 'caseManagement.featureCase.tableColumnLevel',
|
||||||
|
|
Loading…
Reference in New Issue