修复前后端显示异常问题(受试者、中心、负责人、日期等)
This commit is contained in:
@@ -13,7 +13,9 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="assignee_id">
|
||||
<UserSelect v-model="form.assignee_id" placeholder="选择负责人" />
|
||||
<el-select v-model="form.assignee_id" placeholder="选择负责人" filterable clearable>
|
||||
<el-option v-for="m in assigneeOptions" :key="m.value" :label="m.label" :value="m.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级" prop="priority">
|
||||
<el-select v-model="form.priority" placeholder="请选择">
|
||||
@@ -42,12 +44,12 @@ import type { FormInstance, FormRules } from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { createTask, updateTask } from "../api/tasks";
|
||||
import { useStudyStore } from "../store/study";
|
||||
import UserSelect from "./selectors/UserSelect.vue";
|
||||
|
||||
interface Props {
|
||||
modelValue: boolean;
|
||||
task?: Record<string, any>;
|
||||
milestones: any[];
|
||||
members?: any[];
|
||||
}
|
||||
|
||||
const props = defineProps<Props>();
|
||||
@@ -89,6 +91,20 @@ const rules: FormRules = {
|
||||
|
||||
const submitting = ref(false);
|
||||
const isEdit = computed(() => !!props.task);
|
||||
const assigneeOptions = computed(() => {
|
||||
const seen = new Set<string>();
|
||||
return (props.members || [])
|
||||
.filter((m: any) => m.is_active !== false)
|
||||
.map((m: any) => {
|
||||
const user = m.user || {};
|
||||
return { value: m.user_id, label: user.display_name || user.username || m.username || "—" };
|
||||
})
|
||||
.filter((opt) => {
|
||||
if (seen.has(opt.value)) return false;
|
||||
seen.add(opt.value);
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.task,
|
||||
|
||||
Reference in New Issue
Block a user