feat(feedback): 增加反馈搜索状态筛选功能

- 在反馈搜索组件中引入状态字典选项
- 为反馈搜索区域增加状态选择器字段
- 设置反馈页面初始搜索参数中的状态值为1

fix(personal-center): 限制已完成项目的编辑操作
- 根据项目完成状态动态控制编辑按钮的显示
- 从个人中心我的项目详情对话框中移除已完成项目的操作权限

refactor(project): 优化任务操作权限控制逻辑
- 移除原有的任务权限钩子函数依赖
- 使用当前用户身份直接判断任务操作权限
- 只有任务负责人才能进行编辑和删除操作
- 已完成任务不可编辑
- 重构成更清晰的任务操作按钮显示逻辑

fix(project): 完成任务禁用工时记录删除功能
- 添加计算属性控制完成状态下的工时记录删除权限
- 在工时记录面板中根据任务状态控制删除操作的显示
This commit is contained in:
dk
2026-07-02 16:34:08 +08:00
parent a8e2bac65a
commit 9d147ee263
6 changed files with 74 additions and 111 deletions

View File

@@ -1,6 +1,8 @@
<script setup lang="ts">
import { computed, onMounted, ref } from 'vue';
import { FEEDBACK_STATUS_DICT_CODE } from '@/constants/dict';
import { fetchGetUserSimpleList } from '@/service/api';
import { useDict } from '@/hooks/business/dict';
import TableSearchFields, { type SearchField } from '@/components/custom/table-search-fields.vue';
defineOptions({ name: 'FeedbackSearch' });
@@ -14,8 +16,9 @@ const model = defineModel<Api.Feedback.FeedbackSearchParams>('model', { required
// 提交人下拉选项全员简易列表value 取用户 idID 铁律 string
const userOptions = ref<{ label: string; value: string }[]>([]);
const { dictOptions: statusOptions } = useDict(FEEDBACK_STATUS_DICT_CODE);
// 分类 / 状态筛选已迁移至左侧分面面板,搜索区保留标题关键词 + 提交人
// 分类保留在左侧分面搜索区补充标题关键词、提交人、状态
const fields = computed<SearchField[]>(() => [
{ key: 'title', label: '标题', type: 'input', placeholder: '请输入标题关键词' },
{
@@ -25,6 +28,13 @@ const fields = computed<SearchField[]>(() => [
placeholder: '请选择提交人',
filterable: true,
options: userOptions.value
},
{
key: 'status',
label: '状态',
type: 'select',
placeholder: '请选择状态',
options: statusOptions.value
}
]);