feat(工作台): 待办/我的创建/我的关注页面无项目展示

This commit is contained in:
baiqi 2024-11-11 14:12:58 +08:00 committed by Craftsman
parent ad272627cb
commit 40b9fbdc6a
7 changed files with 177 additions and 167 deletions

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';

View File

@ -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';