fix(功能用例): 修改缺陷管理&用例管理评论列表回复对象错误&筛选提示错误

This commit is contained in:
xinxin.wu 2024-04-22 19:11:52 +08:00 committed by Craftsman
parent ab359ae179
commit 2c486bafaf
12 changed files with 33 additions and 25 deletions

View File

@ -14,6 +14,7 @@
v-model:model-value="caseType"
class="ml-2 max-w-[100px]"
:placeholder="t('caseManagement.featureCase.PleaseSelect')"
@change="changeCaseTypeHandler"
>
<a-option v-for="item of props?.moduleOptions" :key="item.value" :value="item.value">
{{ t(item.label) }}
@ -672,17 +673,14 @@
}
);
//
watch(
() => caseType.value,
(val) => {
if (val) {
emit('update:currentSelectCase', val);
initModules();
searchCase();
}
}
);
function changeCaseTypeHandler(
value: string | number | boolean | Record<string, any> | (string | number | boolean | Record<string, any>)[]
) {
caseType.value = value as keyof typeof CaseLinkEnum;
emit('update:currentSelectCase', caseType.value);
initModules();
searchCase();
}
watch(
() => innerProject.value,

View File

@ -36,11 +36,12 @@ export default defineComponent({
},
setup(props, { emit }) {
const { commentList, disabled, uploadImage, previewUrl } = toRefs(props);
const currentItem = reactive<{ id: string; commentType: CommentType; commentStatus: string }>({
const currentItem = reactive<{ id: string; commentType: CommentType; commentStatus: string; replyId: string }>({
id: '',
commentType: 'ADD',
// 控制回复编辑删除按钮的状态
commentStatus: 'normal',
replyId: '', // 回复人
});
const expendedIds = ref<string[]>([]); // 展开的评论id
// 被@的用户id
@ -75,7 +76,7 @@ export default defineComponent({
commentType: currentItem.commentType,
fetchType: currentItem.commentType === 'EDIT' ? 'UPDATE' : 'ADD',
notifier: noticeUserIds.value.join(';'),
replyUser: item.createUser,
replyUser: currentItem.replyId || item.createUser,
parentId,
};
if (currentItem.commentType === 'EDIT') {
@ -106,12 +107,14 @@ export default defineComponent({
};
const handleReply = (item: CommentItem) => {
currentItem.replyId = '';
if (item.childComments && Array.isArray(item.childComments)) {
// 点击的是父级评论的回复
currentItem.id = item.id;
} else {
// 子级评论
currentItem.id = item.parentId || '';
currentItem.replyId = item.createUser;
}
currentItem.commentType = 'REPLY';
};

View File

@ -135,6 +135,7 @@
v-model:status-filters="createUserFilters"
:title="(columnConfig.title as string)"
:list="memberOptions"
label-key="label"
@search="loadApiList(false)"
>
<template #item="{ item }">

View File

@ -150,6 +150,7 @@
v-model:status-filters="createUserFilters"
:title="(columnConfig.title as string)"
:list="memberOptions"
label-key="label"
@search="loadCaseList"
>
<template #item="{ item }">

View File

@ -58,7 +58,7 @@
:extra-text="getExecuteStatusExtraText(step)"
size="small"
class="ml-[4px]"
/>
/>-{{ props.finalExecuteStatus }}
</template>
<script lang="ts" setup>

View File

@ -52,7 +52,7 @@
<span type="text" class="one-line-text cursor-pointer px-0 text-[rgb(var(--primary-5))]">{{ record.num }}</span>
</template>
<template #name="{ record }">
<div type="text">{{ characterLimit(record.name) }}</div>
<div class="one-line-text">{{ characterLimit(record.name) }}</div>
</template>
<template #caseLevel="{ record }">
<a-select
@ -136,6 +136,7 @@
v-model:status-filters="updateUserFilters"
:title="(columnConfig.title as string)"
:list="memberOptions"
label-key="label"
@search="initData()"
>
<template #item="{ item }">
@ -149,6 +150,7 @@
v-model:status-filters="createUserFilters"
:title="(columnConfig.title as string)"
:list="memberOptions"
label-key="label"
@search="initData()"
>
<template #item="{ item }">
@ -241,7 +243,7 @@
>
<template #tree-slot-title="node">
<a-tooltip :content="`${node.name}`" position="tl">
<div class="one-line-text w-[300px] text-[var(--color-text-1)]">{{ node.name }}</div>
<div class="one-line-text text-[var(--color-text-1)]">{{ node.name }}</div>
</a-tooltip>
</template>
</a-tree-select>
@ -567,7 +569,7 @@
'title': 'caseManagement.featureCase.tableColumnID',
'slotName': 'num',
'dataIndex': 'num',
'width': 200,
'width': 130,
'showInTable': true,
'sortable': {
sortDirections: ['ascend', 'descend'],
@ -585,7 +587,7 @@
dataIndex: 'name',
showInTable: true,
showTooltip: true,
width: 300,
width: 180,
editType: hasAnyPermission(['FUNCTIONAL_CASE:READ+UPDATE']) ? ColumnEditTypeEnum.INPUT : undefined,
sortable: {
sortDirections: ['ascend', 'descend'],
@ -601,7 +603,7 @@
dataIndex: 'caseLevel',
titleSlotName: 'caseLevelFilter',
showInTable: true,
width: 200,
width: 150,
showDrag: true,
},
{
@ -610,7 +612,7 @@
slotName: 'reviewStatus',
titleSlotName: 'reviewStatusFilter',
showInTable: true,
width: 200,
width: 150,
showDrag: true,
},
{
@ -619,7 +621,7 @@
slotName: 'lastExecuteResult',
titleSlotName: 'executeResultFilter',
showInTable: true,
width: 200,
width: 150,
showDrag: true,
},
// {
@ -636,7 +638,7 @@
slotName: 'moduleId',
dataIndex: 'moduleId',
showInTable: true,
width: 300,
width: 200,
showDrag: true,
},
{

View File

@ -384,7 +384,7 @@
caseTree.value = mapTree<ModuleTreeNode>(caseTree.value, (node) => {
return {
...node,
hideMoreAction: props.isModal,
hideMoreAction: node.id === 'root' || props.isModal,
count: obj?.[node.id] || 0,
};
});

View File

@ -83,7 +83,7 @@
<span class="text-[var(--color-text-4)]"> ({{ recycleModulesCount[activeFolder] || 0 }})</span>
</div>
<template #content>
<div class="text-[14px] font-medium text-[var(--color-text-1)]">
<div class="max-w-[400px] text-[14px] font-medium text-[var(--color-text-1)]">
{{ moduleNamePath }}
<span class="text-[var(--color-text-4)]">({{ recycleModulesCount[activeFolder] || 0 }})</span>
</div>

View File

@ -26,7 +26,7 @@
:mouse-enter-delay="300"
:disabled="!item[props.labelKey || 'text']"
>
<div class="one-line-text">
<div class="one-line-text max-w-[120px]">
<slot name="item" :item="item" :index="index"></slot>
</div>
</a-tooltip>

View File

@ -155,6 +155,7 @@
async function okHandler() {
if (validateKeyWord.value.trim() !== '' && validateKeyWord.value !== orgName.value) {
Message.success(t('system.orgTemplate.orgNameTip'));
return false;
}
try {

View File

@ -211,4 +211,5 @@ export default {
'system.orgTemplate.pleaseEnterAPITip': 'Please enter the field API',
'system.orgTemplate.apiFieldNotEmpty': 'The field API cannot be empty',
'system.orgTemplate.selectThirdPlatType': 'Please select the third party platform',
'system.orgTemplate.orgNameTip': 'The organization name is incorrect',
};

View File

@ -200,4 +200,5 @@ export default {
'system.orgTemplate.pleaseEnterAPITip': '请输入字段API',
'system.orgTemplate.apiFieldNotEmpty': '字段 API 不能为空',
'system.orgTemplate.selectThirdPlatType': '请选择三方平台',
'system.orgTemplate.orgNameTip': '组织名称不正确',
};