fix(测试用例): 修复功能用例抽屉增加快捷编辑用例等级

This commit is contained in:
xinxin.wu 2024-10-29 11:10:04 +08:00 committed by Craftsman
parent e7b54bc891
commit 0989b8ef37
2 changed files with 58 additions and 2 deletions

View File

@ -28,7 +28,7 @@ export interface FieldOptions {
value: any;
text: string;
internal?: boolean; // 是否是内置模板
pos: number; // 排序字段
pos?: number; // 排序字段
}
// 自定义字段

View File

@ -19,7 +19,25 @@
>
<template #titleName>
<div :class="`case-title flex items-center gap-[8px] ${isEditTitle ? 'w-full' : ''}`">
<div v-if="!isEditTitle" class="flex items-center"><caseLevel :case-level="caseLevels" /></div>
<a-select
v-if="!isEditTitle"
v-model:model-value="caseLevels"
:placeholder="t('common.pleaseSelect')"
class="param-input w-[65px] py-[2px]"
size="mini"
:disabled="!hasAnyPermission(['FUNCTIONAL_CASE:READ+UPDATE'])"
@click.stop
@change="(val)=>handleStatusChange(val as string)"
>
<template #label>
<span class="text-[var(--color-text-2)]">
<caseLevel :case-level="caseLevels" />
</span>
</template>
<a-option v-for="item of caseLevelList" :key="item.value" :value="item.value">
<caseLevel :case-level="item.text as CaseLevel" />
</a-option>
</a-select>
<a-input
v-if="isEditTitle"
v-model="titleName"
@ -237,6 +255,7 @@
import type { CustomAttributes, DetailCase, TabItemType } from '@/models/caseManagement/featureCase';
import { ModuleTreeNode } from '@/models/common';
import type { FieldOptions } from '@/models/setting/template';
import { CaseManagementRouteEnum } from '@/enums/routeEnum';
import { getCaseLevels, initFormCreate } from './utils';
@ -351,6 +370,13 @@
caseLevels.value = getCaseLevels(customFields.value) as CaseLevel;
}
const caseLevelList = computed<FieldOptions[]>(() => {
return (
customFields.value.find((item: any) => item.internal && item.internalFieldKey === 'functional_priority')
?.options || []
);
});
const editLoading = ref<boolean>(false);
async function updateSuccess() {
@ -675,6 +701,36 @@
});
return data;
}
//
async function handleStatusChange(value: string) {
try {
const customFieldsList = customFields.value.map((item: any) => {
if (item.internal && item.internalFieldKey === 'functional_priority') {
return {
fieldId: item.fieldId,
value,
};
}
return {
fieldId: item.fieldId,
value: Array.isArray(item.defaultValue) ? JSON.stringify(item.defaultValue) : item.defaultValue,
};
});
const params = {
request: {
...detailInfo.value,
customFields: customFieldsList,
},
fileList: [],
};
await updateCaseRequest(params);
Message.success(t('common.updateSuccess'));
updateSuccess();
} catch (error) {
// eslint-disable-next-line no-console
console.log(error);
}
}
</script>
<style scoped lang="less">