From 0db8c9b94a9ac655549d5eba5c2a6c92ac386c06 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 08 十月 2026 11:20:56 +0800
Subject: [PATCH] 提交最新代码

---
 culture/src/views/strain-library/validation/chief-cell/index.vue |   84 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 70 insertions(+), 14 deletions(-)

diff --git a/culture/src/views/strain-library/validation/chief-cell/index.vue b/culture/src/views/strain-library/validation/chief-cell/index.vue
index db976dd..3bfe613 100644
--- a/culture/src/views/strain-library/validation/chief-cell/index.vue
+++ b/culture/src/views/strain-library/validation/chief-cell/index.vue
@@ -5,6 +5,24 @@
       @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange">
       <template #search>
         <el-form :model="form" label-width="auto" inline>
+          <el-form-item label="选择项目组:">
+            <el-select
+                v-model="form.projectIds"
+                placeholder="请选择项目组"
+                filterable
+                clearable
+                :loading="teamLoading"
+                @focus="fetchTeamList"
+                multiple
+            >
+              <el-option
+                  v-for="item in teamList"
+                  :key="item.id"
+                  :label="item.teamName"
+                  :value="item.id"
+              />
+            </el-select>
+          </el-form-item>
           <el-form-item label="鉴别菌株编号:">
             <el-input v-model="form.identifyingStrainCode" placeholder="请输入"></el-input>
           </el-form-item>
@@ -26,22 +44,29 @@
         <div class="tableTitle">
           <div class="flex a-center">
             <div class="title" :class="{ active: currentType === 'list' }" @click="handleTypeChange('list')">
-              主细胞库验证资料
+              母代菌种库验证资料列表
             </div>
-            <div class="drafts" v-if="roleType == 4|| roleType==3" :class="{ active: currentType === 'draft' }"
+            <div class="drafts" v-if="roleType == 4 || roleType == 3" :class="{ active: currentType === 'draft' }"
               @click="handleTypeChange('draft')">
               草稿箱
             </div>
           </div>
-          <div class="flex a-center" v-if="roleType == 4|| roleType==3">
+          <div class="flex a-center" v-if="roleType == 4">
             <el-button @click="handleNewStrain" class="el-icon-plus" type="primary"
-              style="margin-right: 12px">新增主细胞</el-button>
+              style="margin-right: 12px">新增母代菌种库验证资料</el-button>
           </div>
         </div>
       </template>
 
       <template #table>
-        <el-table-column prop="strainSource" label="菌种来源" />
+        <el-table-column prop="projectName" label="项目组名称"/>
+        <el-table-column prop="strainSource" label="菌种来源">
+          <template #default="{ row }">
+            <el-tooltip :content="row.strainSource" placement="top" effect="dark" >
+              <div class="ellipsis-text">{{ row.strainSource }}</div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
         <el-table-column prop="identifyingStrainCode" label="鉴别菌株编号" />
         <el-table-column prop="identifyingStrainName" label="鉴别菌株名称">
           <template #default="{ row }">
@@ -62,12 +87,17 @@
         <el-table-column label="操作" width="200">
           <template #default="{ row }">
             <el-button type="text" v-if="row.status == 1 && roleType == 3"
-             style="margin-right: 10px;"
-              @click="$router.push('/strain/validation/confirm-detail?id=' + row.id)">确认</el-button>
-            <el-button type="text"  style="margin-right: 10px;" v-if="roleType == 4" @click="handleDetail(row)">详情</el-button>
-            <el-button type="text"  style="margin-right: 10px;" v-if="roleType != 4" @click="handleDetail2(row)">详情</el-button>
-            <el-button type="text"  style="margin-right: 10px;" v-if="roleType == 4 && currentType == 'draft'" @click="handleEdit(row)">编辑</el-button>
-            <el-button type="text" v-if="roleType == 4 && currentType == 'draft'" @click="handleDelete(row)">删除</el-button>
+              style="margin-right: 10px;"
+              @click="$router.push('/strain/validation/confirm-detail-chief?id=' + row.id)">确认</el-button>
+            <el-button type="text" style="margin-right: 10px;" v-if="roleType == 4"
+              @click="handleDetail(row)">详情</el-button>
+            <el-button type="text" style="margin-right: 10px;" v-if="roleType != 4"
+              @click="handleDetail2(row)">详情</el-button>
+            <el-button type="text" style="margin-right: 10px;"
+              v-if="(roleType == 4 && currentType == 'draft') || (roleType == 1)"
+              @click="handleEdit(row)">编辑</el-button>
+            <el-button type="text" v-if="(roleType == 4 && currentType == 'draft') || (roleType == 1)"
+              @click="handleDelete(row)">删除</el-button>
           </template>
         </el-table-column>
       </template>
@@ -83,8 +113,9 @@
 import PrimitiveCellDetailDialog from "./primitive-cell-detail-dialog.vue";
 import DetailConditionDialog from "./DetailConditionDialog.vue";
 import EditConditionDialog from "./EditConditionDialog.vue";
-
+import moment from "moment";
 import { getList, delOne } from "./service";
+import {myTeamPageList} from "@/components/chooseProject/servce";
 export default {
   name: "PrimitiveCell",
   components: {
@@ -104,7 +135,10 @@
       editDialogValue: {},
       currentDetail: {},
       roleType: JSON.parse(sessionStorage.getItem("userInfo")).roleType,
+      teamList: [], // 项目组列表
+      teamLoading: false, // 加载状态
       form: {
+        projectIds: [],
         identifyingStrainCode: "",
         identifyingStrainName: "",
         validationExperimentCode: "",
@@ -122,7 +156,24 @@
     };
   },
   methods: {
+    // 获取项目组列表
+    async fetchTeamList() {
+      if (this.teamList.length > 0) return // 已有数据不再重复请求
+      this.teamLoading = true
+      try {
+        const res = await myTeamPageList()
+        console.log('res', res)
+        // 根据实际接口返回的数据结构调整
+        this.teamList = res.data || res || []
+      } catch (error) {
+        console.error('获取项目组列表失败:', error)
+        this.$message.error('获取项目组列表失败')
+      } finally {
+        this.teamLoading = false
+      }
+    },
     handleDetail(row) {
+      row.experimentTime = moment(row.experimentTime).format('YYYY-MM-DD')
       this.currentDetail = row;
       this.detailVisible = true;
     },
@@ -173,6 +224,10 @@
       // Implement batch add logic
     },
     handleEdit(row) {
+      if (Number(this.roleType) === 1) {
+        this.$router.push({ path: "/strain/validation/confirm-detail-chief", query: { id: row.id, mode: 'edit' } });
+        return;
+      }
       this.$router.push({
         path: "/strain/validation/edit-chief-cell",
         query: {
@@ -210,7 +265,8 @@
       this.searchData();
     },
   },
-  mounted() {
+
+  activated() {
     this.searchData();
   },
 };
@@ -334,7 +390,7 @@
     cursor: pointer;
     height: 50px;
     line-height: 50px;
-    width: 166px;
+    min-width: 166px;
     text-align: center;
   }
 

--
Gitblit v1.7.1