董国庆
2025-06-16 c67b37d706daedbc7c4efc74ddadc8f591524b46
culture/src/views/projectList/addProject.vue
@@ -44,12 +44,15 @@
    name: 'AddProject',
    data() {
        return {
            form: {},
            form: {
                teamName: '',
                personCharge: ''
            },
            rules: {
                teamName: [{ required: true, message: '请输入项目组名称', trigger: 'blur' }],
                personCharge: [{ required: true, message: '请输入项目组描述', trigger: 'blur' }]
            },
            selectMemberData: [],
            selectMemberData: [], // 初始化为空数组
            // 角色配置常量
            ROLE_CONFIG: {
                1: { key: 'approver', limit: 1, label: '菌种审批人' },
@@ -61,9 +64,17 @@
        submitForm() {
            this.$refs.form.validate((valid) => {
                if (valid) {
                    const requiredRoles = ['菌种审批人', '菌种工程师', '菌种实验员'];
                    const selectedRoleNames = this.selectMemberData.map(member => member.roleName);
                    for (const role of requiredRoles) {
                        if (!selectedRoleNames.includes(role)) {
                            this.$message.error(`请选择${role}`);
                            return;
                        }
                    }
                    if (this.selectMemberData.length == 0) {
                        this.$message.error('请选择项目组成员')
                        return
                        this.$message.error('请选择项目组成员');
                        return;
                    }
                    const ROLE_NAME_TO_TYPE = {
                        '菌种审批人': 1,
@@ -80,8 +91,11 @@
                    }
                    addProject(data).then(res => {
                        if (res.code == 200) {
                            this.$message.success('添加成功')
                            this.$router.push({ name: 'ProjectList' })
                            this.$message.success('添加成功');
                            this.resetForm(); // 添加成功后重置表单
                            this.$router.back(); // 跳转到上一个页面
                            // Optionally, navigate away or give other feedback
                            // this.$router.push({ name: 'ProjectList' });
                        }
                    })
                }
@@ -118,6 +132,16 @@
            this.$nextTick(() => {
                this.$refs.selectMember.setSelection(this.selectMemberData);
            });
        },
        resetForm() {
            this.form = {
                teamName: '',
                personCharge: ''
            };
            this.selectMemberData = [];
            this.$nextTick(() => {
                this.$refs.form.resetFields();
            });
        }
    }
}