From f91448ebb98e43a4e75d51a4cc76e7e76372073e Mon Sep 17 00:00:00 2001
From: pyt <626651354@qq.com>
Date: 星期四, 08 五月 2025 18:02:30 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory

---
 laboratory/src/views/projectList/addProject.vue |   58 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/laboratory/src/views/projectList/addProject.vue b/laboratory/src/views/projectList/addProject.vue
index 02d7479..d7001ed 100644
--- a/laboratory/src/views/projectList/addProject.vue
+++ b/laboratory/src/views/projectList/addProject.vue
@@ -2,11 +2,11 @@
     <Card>
         <template>
             <el-form ref="form" :model="form" :rules="rules" inline label-position="top">
-                <el-form-item prop="name" label="项目组名称">
-                    <el-input v-model="form.name" placeholder="请输入" />
+                <el-form-item prop="teamName" label="项目组名称">
+                    <el-input v-model="form.teamName" placeholder="请输入" />
                 </el-form-item>
-                <el-form-item prop="description" label="项目组描述">
-                    <el-input v-model="form.description" placeholder="请输入" />
+                <el-form-item prop="personCharge" label="项目组负责人">
+                    <el-input v-model="form.personCharge" placeholder="请输入" />
                 </el-form-item>
             </el-form>
             <div class="header-title">
@@ -21,9 +21,12 @@
                     <div class="member-item">
                         <div class="member-title">{{ ['审批人', '工艺工程师', '实验员', '化验师'][item - 1] }}</div>
                         <div :class="item == 1 || item == 2 ? 'member-name-box' : 'member-name-box-2'">
-                            <div v-for="i in memberList(item)" :key="i" class="member-name">张三</div>
+                            <el-tooltip v-for="i in memberList(item)" :key="i.userId" class="member-name" effect="dark"
+                                :content="i.nickName" placement="top">
+                                <span>{{ i.nickName }}</span>
+                            </el-tooltip>
                         </div>
-                        <div class="member-edit">修改</div>
+                        <div class="member-edit" v-if="memberList(item).length != 0" @click="editUserList">修改</div>
                     </div>
                 </div>
             </div>
@@ -31,7 +34,7 @@
                 <el-button type="primary">保存</el-button>
             </div>
         </template>
-        <SelectMember ref="selectMember" />
+        <SelectMember ref="selectMember" @submit="selectUser" />
     </Card>
 </template>
 
@@ -42,9 +45,15 @@
         return {
             form: {},
             rules: {
-                name: [{ required: true, message: '请输入项目组名称', trigger: 'blur' }],
-                description: [{ required: true, message: '请输入项目组描述', trigger: 'blur' }]
-            }
+                teamName: [{ required: true, message: '请输入项目组名称', trigger: 'blur' }],
+                personCharge: [{ required: true, message: '请输入项目组描述', trigger: 'blur' }]
+            },
+            selectMemberData: [],
+            // 角色配置常量
+            ROLE_CONFIG: {
+                1: { key: 'approver', limit: 1, label: '审批人' },
+                2: { key: 'engineer', limit: 1, label: '工艺工程师' },
+            },
         }
     },
     methods: {
@@ -61,16 +70,33 @@
         memberList(i) {
             switch (i) {
                 case 1:
-                    return [1]
+                    return this.selectMemberData.filter(item => item.roleName == '审批人')
                 case 2:
-                    return [1]
+                    return this.selectMemberData.filter(item => item.roleName == '工艺工程师')
                 case 3:
-                    return [1, 2, 3, 4, 5, 6, 7, 8]
+                    return this.selectMemberData.filter(item => item.roleName == '实验员')
                 case 4:
-                    return [1, 2, 3, 4, 5, 6, 7, 8]
+                    return this.selectMemberData.filter(item => item.roleName == '化验师')
                 default:
                     break;
             }
+        },
+        selectUser(data) {
+            for (const [roleId, config] of Object.entries(this.ROLE_CONFIG)) {
+                const members = data.filter(item => item.roleName === config.label);
+                if (members.length > config.limit) {
+                    this.$message.error(`${config.label}最多只能选择${config.limit}个`);
+                    return
+                }
+            }
+            this.selectMemberData = data;
+            this.$refs.selectMember.close();
+        },
+        editUserList() {
+            this.$refs.selectMember.open();
+            this.$nextTick(() => {
+                this.$refs.selectMember.setSelection(this.selectMemberData);
+            });
         }
     }
 }
@@ -188,6 +214,10 @@
                 font-weight: 500;
                 font-size: 16px;
                 color: #FFFFFF;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                white-space: nowrap;
+                box-sizing: border-box;
             }
 
             .member-edit {

--
Gitblit v1.7.1