feat(工作台): 待办/我的创建/我的关注页面无项目展示
This commit is contained in:
parent
ad272627cb
commit
40b9fbdc6a
|
@ -30,8 +30,6 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue';
|
|
||||||
|
|
||||||
import MsButton from '@/components/pure/ms-button/index.vue';
|
import MsButton from '@/components/pure/ms-button/index.vue';
|
||||||
import MsCard from '@/components/pure/ms-card/index.vue';
|
import MsCard from '@/components/pure/ms-card/index.vue';
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
import { VueDraggable } from 'vue-draggable-plus';
|
import { VueDraggable } from 'vue-draggable-plus';
|
||||||
|
|
||||||
import MsDrawer from '@/components/pure/ms-drawer/index.vue';
|
import MsDrawer from '@/components/pure/ms-drawer/index.vue';
|
||||||
import NotData from './notData.vue';
|
import NotData from '../../components/notData.vue';
|
||||||
import CardSettingList from '@/views/workbench/homePage/components/cardSettingList.vue';
|
import CardSettingList from '@/views/workbench/homePage/components/cardSettingList.vue';
|
||||||
|
|
||||||
import { useI18n } from '@/hooks/useI18n';
|
import { useI18n } from '@/hooks/useI18n';
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { debounce } from 'lodash-es';
|
import { debounce } from 'lodash-es';
|
||||||
|
|
||||||
import NoData from './notData.vue';
|
import NoData from '../../components/notData.vue';
|
||||||
|
|
||||||
import { addCommasToNumber } from '@/utils';
|
import { addCommasToNumber } from '@/utils';
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,7 @@
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
|
|
||||||
import MsBackButton from '@/components/pure/ms-back-button/index.vue';
|
import MsBackButton from '@/components/pure/ms-back-button/index.vue';
|
||||||
|
import NoData from '../components/notData.vue';
|
||||||
import ApiAndScenarioCase from './components/apiAndScenarioCase.vue';
|
import ApiAndScenarioCase from './components/apiAndScenarioCase.vue';
|
||||||
import ApiChangeList from './components/apiChangeList.vue';
|
import ApiChangeList from './components/apiChangeList.vue';
|
||||||
import ApiCount from './components/apiCount.vue';
|
import ApiCount from './components/apiCount.vue';
|
||||||
|
@ -79,7 +80,6 @@
|
||||||
import CaseCount from './components/caseCount.vue';
|
import CaseCount from './components/caseCount.vue';
|
||||||
import CaseReviewedCount from './components/caseReviewedCount.vue';
|
import CaseReviewedCount from './components/caseReviewedCount.vue';
|
||||||
import DefectCount from './components/defectCount.vue';
|
import DefectCount from './components/defectCount.vue';
|
||||||
import NoData from './components/notData.vue';
|
|
||||||
import Overview from './components/overview.vue';
|
import Overview from './components/overview.vue';
|
||||||
import RelatedCaseCount from './components/relatedCaseCount.vue';
|
import RelatedCaseCount from './components/relatedCaseCount.vue';
|
||||||
import TestPlanCount from './components/testPlanCount.vue';
|
import TestPlanCount from './components/testPlanCount.vue';
|
||||||
|
|
|
@ -1,68 +1,71 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col gap-[16px]">
|
<div class="flex flex-col gap-[16px]">
|
||||||
<div class="flex items-center justify-end gap-[12px]">
|
<template v-if="appStore.projectList.length > 0">
|
||||||
<MsProjectSelect
|
<div class="flex items-center justify-end gap-[12px]">
|
||||||
v-model:project="currentProject"
|
<MsProjectSelect
|
||||||
class="w-[240px]"
|
v-model:project="currentProject"
|
||||||
use-default-arrow-icon
|
class="w-[240px]"
|
||||||
@change="handleRefresh"
|
use-default-arrow-icon
|
||||||
>
|
@change="handleRefresh"
|
||||||
<template #prefix>
|
>
|
||||||
{{ t('menu.projectManagementShort') }}
|
<template #prefix>
|
||||||
</template>
|
{{ t('menu.projectManagementShort') }}
|
||||||
</MsProjectSelect>
|
</template>
|
||||||
<MsSelect
|
</MsProjectSelect>
|
||||||
v-model:model-value="features"
|
<MsSelect
|
||||||
:options="featureOptions"
|
v-model:model-value="features"
|
||||||
:allow-search="false"
|
:options="featureOptions"
|
||||||
allow-clear
|
:allow-search="false"
|
||||||
class="!w-[240px]"
|
allow-clear
|
||||||
:prefix="t('project.messageManagement.function')"
|
class="!w-[240px]"
|
||||||
:multiple="true"
|
:prefix="t('project.messageManagement.function')"
|
||||||
:has-all-select="true"
|
:multiple="true"
|
||||||
:default-all-select="true"
|
:has-all-select="true"
|
||||||
/>
|
:default-all-select="true"
|
||||||
<a-button type="outline" class="arco-btn-outline--secondary p-[10px]" @click="handleRefresh">
|
/>
|
||||||
<MsIcon type="icon-icon_reset_outlined" size="14" />
|
<a-button type="outline" class="arco-btn-outline--secondary p-[10px]" @click="handleRefresh">
|
||||||
</a-button>
|
<MsIcon type="icon-icon_reset_outlined" size="14" />
|
||||||
</div>
|
</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<testPlanTable
|
<testPlanTable
|
||||||
v-if="features.includes(FeatureEnum.TEST_PLAN)"
|
v-if="features.includes(FeatureEnum.TEST_PLAN)"
|
||||||
:project="currentProject"
|
:project="currentProject"
|
||||||
:refresh-id="refreshId"
|
:refresh-id="refreshId"
|
||||||
type="my_create"
|
type="my_create"
|
||||||
/>
|
/>
|
||||||
<testCaseTable
|
<testCaseTable
|
||||||
v-if="features.includes(FeatureEnum.TEST_CASE)"
|
v-if="features.includes(FeatureEnum.TEST_CASE)"
|
||||||
:project="currentProject"
|
:project="currentProject"
|
||||||
:refresh-id="refreshId"
|
:refresh-id="refreshId"
|
||||||
type="my_create"
|
type="my_create"
|
||||||
/>
|
/>
|
||||||
<caseReviewTable
|
<caseReviewTable
|
||||||
v-if="features.includes(FeatureEnum.CASE_REVIEW)"
|
v-if="features.includes(FeatureEnum.CASE_REVIEW)"
|
||||||
:project="currentProject"
|
:project="currentProject"
|
||||||
:refresh-id="refreshId"
|
:refresh-id="refreshId"
|
||||||
type="my_create"
|
type="my_create"
|
||||||
/>
|
/>
|
||||||
<apiCaseTable
|
<apiCaseTable
|
||||||
v-if="features.includes(FeatureEnum.API_CASE)"
|
v-if="features.includes(FeatureEnum.API_CASE)"
|
||||||
:project="currentProject"
|
:project="currentProject"
|
||||||
:refresh-id="refreshId"
|
:refresh-id="refreshId"
|
||||||
type="my_create"
|
type="my_create"
|
||||||
/>
|
/>
|
||||||
<scenarioCaseTable
|
<scenarioCaseTable
|
||||||
v-if="features.includes(FeatureEnum.API_SCENARIO)"
|
v-if="features.includes(FeatureEnum.API_SCENARIO)"
|
||||||
:project="currentProject"
|
:project="currentProject"
|
||||||
:refresh-id="refreshId"
|
:refresh-id="refreshId"
|
||||||
type="my_create"
|
type="my_create"
|
||||||
/>
|
/>
|
||||||
<bugTable
|
<bugTable
|
||||||
v-if="features.includes(FeatureEnum.BUG)"
|
v-if="features.includes(FeatureEnum.BUG)"
|
||||||
:project="currentProject"
|
:project="currentProject"
|
||||||
:refresh-id="refreshId"
|
:refresh-id="refreshId"
|
||||||
type="my_create"
|
type="my_create"
|
||||||
/>
|
/>
|
||||||
|
</template>
|
||||||
|
<NoData v-else all-screen />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -73,6 +76,7 @@
|
||||||
import apiCaseTable from '../components/apiCaseTable.vue';
|
import apiCaseTable from '../components/apiCaseTable.vue';
|
||||||
import bugTable from '../components/bugTable.vue';
|
import bugTable from '../components/bugTable.vue';
|
||||||
import caseReviewTable from '../components/caseReviewTable.vue';
|
import caseReviewTable from '../components/caseReviewTable.vue';
|
||||||
|
import NoData from '../components/notData.vue';
|
||||||
import scenarioCaseTable from '../components/scenarioCaseTable.vue';
|
import scenarioCaseTable from '../components/scenarioCaseTable.vue';
|
||||||
import testCaseTable from '../components/testCaseTable.vue';
|
import testCaseTable from '../components/testCaseTable.vue';
|
||||||
import testPlanTable from '../components/testPlanTable.vue';
|
import testPlanTable from '../components/testPlanTable.vue';
|
||||||
|
|
|
@ -1,67 +1,70 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col gap-[16px]">
|
<div class="flex flex-col gap-[16px]">
|
||||||
<div class="flex items-center justify-end gap-[12px]">
|
<template v-if="appStore.projectList.length > 0">
|
||||||
<MsProjectSelect
|
<div class="flex items-center justify-end gap-[12px]">
|
||||||
v-model:project="currentProject"
|
<MsProjectSelect
|
||||||
class="w-[240px]"
|
v-model:project="currentProject"
|
||||||
use-default-arrow-icon
|
class="w-[240px]"
|
||||||
@change="handleRefresh"
|
use-default-arrow-icon
|
||||||
>
|
@change="handleRefresh"
|
||||||
<template #prefix>
|
>
|
||||||
{{ t('menu.projectManagementShort') }}
|
<template #prefix>
|
||||||
</template>
|
{{ t('menu.projectManagementShort') }}
|
||||||
</MsProjectSelect>
|
</template>
|
||||||
<MsSelect
|
</MsProjectSelect>
|
||||||
v-model:model-value="features"
|
<MsSelect
|
||||||
:options="featureOptions"
|
v-model:model-value="features"
|
||||||
:allow-search="false"
|
:options="featureOptions"
|
||||||
allow-clear
|
:allow-search="false"
|
||||||
class="!w-[240px]"
|
allow-clear
|
||||||
:prefix="t('project.messageManagement.function')"
|
class="!w-[240px]"
|
||||||
:multiple="true"
|
:prefix="t('project.messageManagement.function')"
|
||||||
:has-all-select="true"
|
:multiple="true"
|
||||||
:default-all-select="true"
|
:has-all-select="true"
|
||||||
|
:default-all-select="true"
|
||||||
|
/>
|
||||||
|
<a-button type="outline" class="arco-btn-outline--secondary p-[10px]" @click="handleRefresh">
|
||||||
|
<MsIcon type="icon-icon_reset_outlined" size="14" />
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
<testPlanTable
|
||||||
|
v-if="features.includes(FeatureEnum.TEST_PLAN)"
|
||||||
|
:project="currentProject"
|
||||||
|
:refresh-id="refreshId"
|
||||||
|
type="my_follow"
|
||||||
/>
|
/>
|
||||||
<a-button type="outline" class="arco-btn-outline--secondary p-[10px]" @click="handleRefresh">
|
<testCaseTable
|
||||||
<MsIcon type="icon-icon_reset_outlined" size="14" />
|
v-if="features.includes(FeatureEnum.TEST_CASE)"
|
||||||
</a-button>
|
:project="currentProject"
|
||||||
</div>
|
:refresh-id="refreshId"
|
||||||
<testPlanTable
|
type="my_follow"
|
||||||
v-if="features.includes(FeatureEnum.TEST_PLAN)"
|
/>
|
||||||
:project="currentProject"
|
<caseReviewTable
|
||||||
:refresh-id="refreshId"
|
v-if="features.includes(FeatureEnum.CASE_REVIEW)"
|
||||||
type="my_follow"
|
:project="currentProject"
|
||||||
/>
|
:refresh-id="refreshId"
|
||||||
<testCaseTable
|
type="my_follow"
|
||||||
v-if="features.includes(FeatureEnum.TEST_CASE)"
|
/>
|
||||||
:project="currentProject"
|
<apiCaseTable
|
||||||
:refresh-id="refreshId"
|
v-if="features.includes(FeatureEnum.API_CASE)"
|
||||||
type="my_follow"
|
:project="currentProject"
|
||||||
/>
|
:refresh-id="refreshId"
|
||||||
<caseReviewTable
|
type="my_follow"
|
||||||
v-if="features.includes(FeatureEnum.CASE_REVIEW)"
|
/>
|
||||||
:project="currentProject"
|
<scenarioCaseTable
|
||||||
:refresh-id="refreshId"
|
v-if="features.includes(FeatureEnum.API_SCENARIO)"
|
||||||
type="my_follow"
|
:project="currentProject"
|
||||||
/>
|
:refresh-id="refreshId"
|
||||||
<apiCaseTable
|
type="my_follow"
|
||||||
v-if="features.includes(FeatureEnum.API_CASE)"
|
/>
|
||||||
:project="currentProject"
|
<bugTable
|
||||||
:refresh-id="refreshId"
|
v-if="features.includes(FeatureEnum.BUG)"
|
||||||
type="my_follow"
|
:project="currentProject"
|
||||||
/>
|
:refresh-id="refreshId"
|
||||||
<scenarioCaseTable
|
type="my_follow"
|
||||||
v-if="features.includes(FeatureEnum.API_SCENARIO)"
|
/>
|
||||||
:project="currentProject"
|
</template>
|
||||||
:refresh-id="refreshId"
|
<NoData v-else all-screen />
|
||||||
type="my_follow"
|
|
||||||
/>
|
|
||||||
<bugTable
|
|
||||||
v-if="features.includes(FeatureEnum.BUG)"
|
|
||||||
:project="currentProject"
|
|
||||||
:refresh-id="refreshId"
|
|
||||||
type="my_follow"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -72,6 +75,7 @@
|
||||||
import apiCaseTable from '../components/apiCaseTable.vue';
|
import apiCaseTable from '../components/apiCaseTable.vue';
|
||||||
import bugTable from '../components/bugTable.vue';
|
import bugTable from '../components/bugTable.vue';
|
||||||
import caseReviewTable from '../components/caseReviewTable.vue';
|
import caseReviewTable from '../components/caseReviewTable.vue';
|
||||||
|
import NoData from '../components/notData.vue';
|
||||||
import scenarioCaseTable from '../components/scenarioCaseTable.vue';
|
import scenarioCaseTable from '../components/scenarioCaseTable.vue';
|
||||||
import testCaseTable from '../components/testCaseTable.vue';
|
import testCaseTable from '../components/testCaseTable.vue';
|
||||||
import testPlanTable from '../components/testPlanTable.vue';
|
import testPlanTable from '../components/testPlanTable.vue';
|
||||||
|
|
|
@ -1,45 +1,48 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col gap-[16px]">
|
<div class="flex flex-col gap-[16px]">
|
||||||
<div class="flex items-center justify-end gap-[12px]">
|
<template v-if="appStore.projectList.length > 0">
|
||||||
<MsProjectSelect v-model:project="currentProject" class="w-[240px]" use-default-arrow-icon>
|
<div class="flex items-center justify-end gap-[12px]">
|
||||||
<template #prefix>
|
<MsProjectSelect v-model:project="currentProject" class="w-[240px]" use-default-arrow-icon>
|
||||||
{{ t('menu.projectManagementShort') }}
|
<template #prefix>
|
||||||
</template>
|
{{ t('menu.projectManagementShort') }}
|
||||||
</MsProjectSelect>
|
</template>
|
||||||
<MsSelect
|
</MsProjectSelect>
|
||||||
v-model:model-value="features"
|
<MsSelect
|
||||||
:options="featureOptions"
|
v-model:model-value="features"
|
||||||
:allow-search="false"
|
:options="featureOptions"
|
||||||
allow-clear
|
:allow-search="false"
|
||||||
class="!w-[240px]"
|
allow-clear
|
||||||
:prefix="t('project.messageManagement.function')"
|
class="!w-[240px]"
|
||||||
:multiple="true"
|
:prefix="t('project.messageManagement.function')"
|
||||||
:has-all-select="true"
|
:multiple="true"
|
||||||
:default-all-select="true"
|
:has-all-select="true"
|
||||||
|
:default-all-select="true"
|
||||||
|
/>
|
||||||
|
<a-button type="outline" class="arco-btn-outline--secondary p-[10px]" @click="handleRefresh">
|
||||||
|
<MsIcon type="icon-icon_reset_outlined" size="14" />
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
<testPlanTable
|
||||||
|
v-if="features.includes(FeatureEnum.TEST_PLAN)"
|
||||||
|
:project="currentProject"
|
||||||
|
:refresh-id="refreshId"
|
||||||
|
type="my_follow"
|
||||||
|
hide-show-type
|
||||||
/>
|
/>
|
||||||
<a-button type="outline" class="arco-btn-outline--secondary p-[10px]" @click="handleRefresh">
|
<caseReviewTable
|
||||||
<MsIcon type="icon-icon_reset_outlined" size="14" />
|
v-if="features.includes(FeatureEnum.CASE_REVIEW)"
|
||||||
</a-button>
|
:project="currentProject"
|
||||||
</div>
|
:refresh-id="refreshId"
|
||||||
<testPlanTable
|
type="my_follow"
|
||||||
v-if="features.includes(FeatureEnum.TEST_PLAN)"
|
/>
|
||||||
:project="currentProject"
|
<bugTable
|
||||||
:refresh-id="refreshId"
|
v-if="features.includes(FeatureEnum.BUG)"
|
||||||
type="my_follow"
|
:project="currentProject"
|
||||||
hide-show-type
|
:refresh-id="refreshId"
|
||||||
/>
|
type="my_follow"
|
||||||
<caseReviewTable
|
/>
|
||||||
v-if="features.includes(FeatureEnum.CASE_REVIEW)"
|
</template>
|
||||||
:project="currentProject"
|
<NoData v-else all-screen />
|
||||||
:refresh-id="refreshId"
|
|
||||||
type="my_follow"
|
|
||||||
/>
|
|
||||||
<bugTable
|
|
||||||
v-if="features.includes(FeatureEnum.BUG)"
|
|
||||||
:project="currentProject"
|
|
||||||
:refresh-id="refreshId"
|
|
||||||
type="my_follow"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -49,6 +52,7 @@
|
||||||
import MsSelect from '@/components/business/ms-select';
|
import MsSelect from '@/components/business/ms-select';
|
||||||
import bugTable from '../components/bugTable.vue';
|
import bugTable from '../components/bugTable.vue';
|
||||||
import caseReviewTable from '../components/caseReviewTable.vue';
|
import caseReviewTable from '../components/caseReviewTable.vue';
|
||||||
|
import NoData from '../components/notData.vue';
|
||||||
import testPlanTable from '../components/testPlanTable.vue';
|
import testPlanTable from '../components/testPlanTable.vue';
|
||||||
|
|
||||||
import { useI18n } from '@/hooks/useI18n';
|
import { useI18n } from '@/hooks/useI18n';
|
||||||
|
|
Loading…
Reference in New Issue