fix(工作台): 修复工作台接口场景覆盖率&卡片刷新bug
This commit is contained in:
parent
9735eb9f1c
commit
32414829ba
|
@ -239,9 +239,11 @@ export default defineComponent(
|
||||||
? [...filterOptions.value]
|
? [...filterOptions.value]
|
||||||
: filterOptions.value.map((e) => e[props.valueKey || 'value']);
|
: filterOptions.value.map((e) => e[props.valueKey || 'value']);
|
||||||
emit('update:modelValue', innerValue.value);
|
emit('update:modelValue', innerValue.value);
|
||||||
|
emit('change', innerValue.value);
|
||||||
} else {
|
} else {
|
||||||
innerValue.value = [];
|
innerValue.value = [];
|
||||||
emit('update:modelValue', []);
|
emit('update:modelValue', []);
|
||||||
|
emit('change', []);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
status?: boolean;
|
status?: boolean;
|
||||||
cover?: ApiCoverageData;
|
cover?: ApiCoverageData;
|
||||||
}>();
|
}>();
|
||||||
|
@ -211,7 +212,8 @@
|
||||||
const unCoverWithCase =
|
const unCoverWithCase =
|
||||||
props.item.key === WorkCardEnum.API_CASE_COUNT ? unCoverWithApiCase : unCoverWithApiScenario;
|
props.item.key === WorkCardEnum.API_CASE_COUNT ? unCoverWithApiCase : unCoverWithApiScenario;
|
||||||
|
|
||||||
const coverWithCase = WorkCardEnum.API_CASE_COUNT ? coverWithApiCase : coverWithApiScenario;
|
const coverWithCase = props.item.key === WorkCardEnum.API_CASE_COUNT ? coverWithApiCase : coverWithApiScenario;
|
||||||
|
|
||||||
coverData.value = cloneDeep(initCoverRate);
|
coverData.value = cloneDeep(initCoverRate);
|
||||||
coverData.value = [
|
coverData.value = [
|
||||||
{
|
{
|
||||||
|
@ -355,6 +357,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initApiOrScenarioCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -228,6 +229,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
@ -65,6 +65,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
projectIds: string[];
|
projectIds: string[];
|
||||||
status?: boolean;
|
status?: boolean;
|
||||||
cover?: ApiCoverageData;
|
cover?: ApiCoverageData;
|
||||||
|
@ -261,6 +262,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initApiCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
|
|
@ -64,6 +64,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -195,6 +196,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initCaseCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less"></style>
|
<style scoped lang="less"></style>
|
||||||
|
|
|
@ -61,6 +61,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -100,7 +101,7 @@
|
||||||
const caseReviewCountOptions = ref<Record<string, any>>({});
|
const caseReviewCountOptions = ref<Record<string, any>>({});
|
||||||
|
|
||||||
const hasPermission = ref<boolean>(false);
|
const hasPermission = ref<boolean>(false);
|
||||||
async function initApiCount() {
|
async function initReviewCount() {
|
||||||
const { startTime, endTime, dayNumber } = timeForm.value;
|
const { startTime, endTime, dayNumber } = timeForm.value;
|
||||||
const params = {
|
const params = {
|
||||||
current: 1,
|
current: 1,
|
||||||
|
@ -134,13 +135,13 @@
|
||||||
|
|
||||||
function changeProject() {
|
function changeProject() {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
initApiCount();
|
initReviewCount();
|
||||||
emit('change');
|
emit('change');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
initApiCount();
|
initReviewCount();
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
@ -166,13 +167,22 @@
|
||||||
() => timeForm.value,
|
() => timeForm.value,
|
||||||
(val) => {
|
(val) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
initApiCount();
|
initReviewCount();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initReviewCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less"></style>
|
<style scoped lang="less"></style>
|
||||||
|
|
|
@ -73,6 +73,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -208,6 +209,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less"></style>
|
<style scoped lang="less"></style>
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -232,6 +233,16 @@
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
getMemberOptions();
|
||||||
|
getDefectMemberDetail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getMemberOptions();
|
getMemberOptions();
|
||||||
getDefectMemberDetail();
|
getDefectMemberDetail();
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -141,16 +142,16 @@
|
||||||
enterable: true,
|
enterable: true,
|
||||||
formatter(params: any) {
|
formatter(params: any) {
|
||||||
const html = `
|
const html = `
|
||||||
<div class="w-[186px] h-[50px] p-[16px] flex items-center justify-between">
|
<div class="w-[186px] h-[50px] p-[16px] flex items-center justify-between">
|
||||||
<div class=" flex items-center">
|
<div class=" flex items-center">
|
||||||
<div class="mb-[2px] mr-[8px] h-[8px] w-[8px] rounded-sm bg-[${params.color}]" style="background:${
|
<div class="mb-[2px] mr-[8px] h-[8px] w-[8px] rounded-sm bg-[${params.color}]" style="background:${
|
||||||
params.color
|
params.color
|
||||||
}"></div>
|
}"></div>
|
||||||
<div class="one-line-text max-w-[100px]"" style="color:#959598">${params.name}</div>
|
<div class="one-line-text max-w-[100px]"" style="color:#959598">${params.name}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-[#323233] font-medium">${addCommasToNumber(params.value)}</div>
|
<div class="text-[#323233] font-medium">${addCommasToNumber(params.value)}</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
return html;
|
return html;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -170,6 +171,7 @@
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
borderRadius: [2, 2, 0, 0], // 上边圆角
|
borderRadius: [2, 2, 0, 0], // 上边圆角
|
||||||
},
|
},
|
||||||
|
z: 10,
|
||||||
data: countData,
|
data: countData,
|
||||||
barMinHeight: ((optionData: Record<string, any>[]) => {
|
barMinHeight: ((optionData: Record<string, any>[]) => {
|
||||||
optionData.forEach((itemValue: any, index: number) => {
|
optionData.forEach((itemValue: any, index: number) => {
|
||||||
|
@ -217,13 +219,15 @@
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const isInit = ref(true);
|
||||||
function changeProject() {
|
function changeProject() {
|
||||||
|
if (isInit.value) {
|
||||||
|
isInit.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
if (innerProjectIds.value.length && innerProjectIds.value.length !== appStore.projectList.length) {
|
initOverViewDetail();
|
||||||
initOverViewDetail();
|
emit('change');
|
||||||
emit('change');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,12 +238,6 @@
|
||||||
watch(
|
watch(
|
||||||
() => innerProjectIds.value,
|
() => innerProjectIds.value,
|
||||||
(val) => {
|
(val) => {
|
||||||
if (val.length === appStore.projectList.length || val.length === 0) {
|
|
||||||
nextTick(() => {
|
|
||||||
initOverViewDetail();
|
|
||||||
emit('change');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
innerSelectAll.value = val.length === appStore.projectList.length;
|
innerSelectAll.value = val.length === appStore.projectList.length;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -255,6 +253,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initOverViewDetail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
:prefix="t('workbench.homePage.staff')"
|
:prefix="t('workbench.homePage.staff')"
|
||||||
:multiple="true"
|
:multiple="true"
|
||||||
:has-all-select="true"
|
:has-all-select="true"
|
||||||
:default-all-select="!innerHandleUsers.length"
|
:default-all-select="innerSelectAll"
|
||||||
@change="changeMember"
|
@change="changeMember"
|
||||||
>
|
>
|
||||||
</MsSelect>
|
</MsSelect>
|
||||||
|
@ -65,6 +65,7 @@
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -170,6 +171,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const innerSelectAll = ref<boolean>(false);
|
||||||
async function getMemberOptions() {
|
async function getMemberOptions() {
|
||||||
const [newProjectId] = innerProjectIds.value;
|
const [newProjectId] = innerProjectIds.value;
|
||||||
const res = await workProjectMemberOptions(newProjectId);
|
const res = await workProjectMemberOptions(newProjectId);
|
||||||
|
@ -177,6 +179,7 @@
|
||||||
label: e.name,
|
label: e.name,
|
||||||
value: e.id,
|
value: e.id,
|
||||||
}));
|
}));
|
||||||
|
innerSelectAll.value = memberIds.value.length === memberOptions.value.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeProject() {
|
function changeProject() {
|
||||||
|
@ -242,6 +245,18 @@
|
||||||
getMemberOptions();
|
getMemberOptions();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initOverViewMemberDetail();
|
||||||
|
if (props.item.projectIds.length) {
|
||||||
|
getMemberOptions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less"></style>
|
<style scoped lang="less"></style>
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -166,6 +167,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
getRelatedCaseCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less"></style>
|
<style scoped lang="less"></style>
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -288,6 +289,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initTestPlanCount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
|
|
@ -114,6 +114,7 @@
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
item: SelectedCardItem;
|
item: SelectedCardItem;
|
||||||
|
refreshKey: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const emit = defineEmits<{
|
const emit = defineEmits<{
|
||||||
|
@ -254,6 +255,15 @@
|
||||||
deep: true,
|
deep: true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.refreshKey,
|
||||||
|
(val) => {
|
||||||
|
if (val) {
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
v-model:selectAll="item.selectAll"
|
v-model:selectAll="item.selectAll"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<OverviewMember
|
<OverviewMember
|
||||||
|
@ -66,30 +67,35 @@
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
v-model:handleUsers="item.handleUsers"
|
v-model:handleUsers="item.handleUsers"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<CaseCount
|
<CaseCount
|
||||||
v-else-if="item.key === WorkCardEnum.CASE_COUNT"
|
v-else-if="item.key === WorkCardEnum.CASE_COUNT"
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<RelatedCaseCount
|
<RelatedCaseCount
|
||||||
v-else-if="item.key === WorkCardEnum.ASSOCIATE_CASE_COUNT"
|
v-else-if="item.key === WorkCardEnum.ASSOCIATE_CASE_COUNT"
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<CaseReviewedCount
|
<CaseReviewedCount
|
||||||
v-else-if="item.key === WorkCardEnum.REVIEW_CASE_COUNT"
|
v-else-if="item.key === WorkCardEnum.REVIEW_CASE_COUNT"
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<WaitReviewList
|
<WaitReviewList
|
||||||
v-else-if="item.key === WorkCardEnum.REVIEWING_BY_ME"
|
v-else-if="item.key === WorkCardEnum.REVIEWING_BY_ME"
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<ApiAndScenarioCase
|
<ApiAndScenarioCase
|
||||||
|
@ -97,6 +103,7 @@
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:type="item.key"
|
:type="item.key"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
:status="projectLoadingStatus[item.projectIds[0]]"
|
:status="projectLoadingStatus[item.projectIds[0]]"
|
||||||
:cover="requestResults[item.projectIds[0]]"
|
:cover="requestResults[item.projectIds[0]]"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
|
@ -105,6 +112,7 @@
|
||||||
v-else-if="item.key === WorkCardEnum.API_CHANGE"
|
v-else-if="item.key === WorkCardEnum.API_CHANGE"
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<DefectMemberBar
|
<DefectMemberBar
|
||||||
|
@ -112,6 +120,7 @@
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
v-model:handleUsers="item.handleUsers"
|
v-model:handleUsers="item.handleUsers"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<DefectCount
|
<DefectCount
|
||||||
|
@ -119,6 +128,7 @@
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
:type="item.key"
|
:type="item.key"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
<ApiCount
|
<ApiCount
|
||||||
|
@ -126,6 +136,7 @@
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:status="projectLoadingStatus[item.projectIds[0]]"
|
:status="projectLoadingStatus[item.projectIds[0]]"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
:cover="requestResults[item.projectIds[0]]"
|
:cover="requestResults[item.projectIds[0]]"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
|
@ -133,6 +144,7 @@
|
||||||
v-else-if="item.key === WorkCardEnum.TEST_PLAN_COUNT"
|
v-else-if="item.key === WorkCardEnum.TEST_PLAN_COUNT"
|
||||||
v-model:projectIds="item.projectIds"
|
v-model:projectIds="item.projectIds"
|
||||||
:item="item"
|
:item="item"
|
||||||
|
:refresh-key="refreshKey"
|
||||||
@change="changeHandler"
|
@change="changeHandler"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -306,9 +318,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const refreshKey = ref<number>(0);
|
||||||
|
|
||||||
// 刷新
|
// 刷新
|
||||||
async function handleRefresh() {
|
async function handleRefresh() {
|
||||||
initDefaultList();
|
initDefaultList();
|
||||||
|
refreshKey.value = Date.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|
Loading…
Reference in New Issue