From 92606a1a818d2016d9f8ddab45cc084de580d0b2 Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期一, 23 六月 2025 20:10:50 +0800
Subject: [PATCH] 修改bug

---
 culture/src/views/strain-library/production-cell-library/index.vue                        |   91 +++---
 culture/src/views/strainReportLibrary/reportLibraryOneFour/components/approval/index.vue  |    2 
 culture/src/views/strainReportLibrary/reportLibraryOneTWO/index.vue                       |    8 
 culture/src/views/strain-library/strain-library-manage/record.vue                         |    9 
 culture/src/views/strainReportLibrary/reportLibraryOneTWO/service.js                      |    5 
 culture/src/views/strainReportLibrary/reportLibraryOneTWO/add.vue                         |   33 +
 culture/src/views/pedigree-chart/index.vue                                                |   20 
 culture/src/views/strainReportLibrary/reportLibraryOne/service.js                         |    4 
 culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue                       |   36 +
 culture/src/views/strain-library/breeding-record/add.vue                                  |   22 +
 culture/src/views/strainReportLibrary/reportLibraryOneFour/service.js                     |    4 
 culture/src/views/strainReportLibrary/reportLibraryOneThree/components/evaluate/index.vue |    8 
 culture/src/views/strainReportLibrary/reportLibraryOneFour/index.vue                      |    7 
 culture/src/views/projectList/addProject.vue                                              |   10 
 culture/src/views/strainReportLibrary/reportLibraryOneThree/index.vue                     |    6 
 culture/src/views/strainOperationAssessment/index.vue                                     |   10 
 culture/src/views/strain-library/breeding-record/SlantRecordDialog.vue                    |    7 
 culture/src/views/strain-library/validation/primitive-cell/DetailConditionDialog.vue      |   14 
 culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/approval/index.vue   |    2 
 culture/src/components/chooseProject/index.vue                                            |   12 
 culture/src/views/strainReportLibrary/reportLibraryOneFour/components/evaluate/index.vue  |    8 
 culture/src/utils/request.js                                                              |    9 
 culture/src/views/strainReportLibrary/reportLibraryOneThree/components/approval/index.vue |    2 
 culture/src/views/strain-library/validation/chief-cell/DetailConditionDialog.vue          |   11 
 culture/src/views/strain-library/validation/chief-cell/confirm-detail.vue                 |    9 
 culture/src/components/SelectMember/index.vue                                             |   12 
 culture/src/views/strain-library/strain-library-manage/index.vue                          |   91 +++---
 culture/src/views/strain-library/validation/primitive-cell/index.vue                      |   33 +
 culture/src/views/strainReportLibrary/reportLibraryOne/components/approval/index.vue      |    6 
 culture/src/views/strainReportLibrary/reportLibraryOne/components/evaluate/index.vue      |    4 
 culture/src/views/strain-library/main-cell-library/index.vue                              |  154 +++-------
 culture/src/views/strainReportLibrary/reportLibraryOne/index.vue                          |    6 
 culture/src/views/strainReportLibrary/reportLibraryOne/add.vue                            |   33 +
 culture/src/views/strain-library/validation/primitive-cell/confirm-detail.vue             |   20 +
 culture/src/views/strain-library/validation/chief-cell/index.vue                          |   30 +
 culture/src/views/strainReportLibrary/reportLibraryOneThree/service.js                    |    4 
 culture/src/views/strain-library/strain-library-manage/components/StrainDetail.vue        |    8 
 culture/src/views/strain-library/validation/chief-cell/add.vue                            |    2 
 culture/src/views/strainReportLibrary/reportLibraryOneFour/add.vue                        |   38 +
 culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/evaluate/index.vue   |    8 
 culture/src/views/strainOperationAssessment/components/evaluate/index.vue                 |    4 
 culture/src/views/strain-library/breeding-record/inoculation-slope-record-dialog.vue      |   12 
 42 files changed, 482 insertions(+), 332 deletions(-)

diff --git a/culture/src/components/SelectMember/index.vue b/culture/src/components/SelectMember/index.vue
index d738bb1..4ddc107 100644
--- a/culture/src/components/SelectMember/index.vue
+++ b/culture/src/components/SelectMember/index.vue
@@ -2,7 +2,7 @@
     <el-dialog @open="openDialog" class="select-member" :z-index="1000"  :visible.sync="visible" width="53.33%"
         :close-on-click-modal="false" :show-close="false">
         <template #title>
-            <div>选择参与人员</div>
+            <div>{{title}}</div>
         </template>
         <div class="select-member-content">
             <el-row :gutter="16">
@@ -70,7 +70,11 @@
         singleSelect: {
             type: Boolean,
             default: false
-        }
+        },
+        title:{
+            type:String,
+            default:'选择参与人员'
+        },
     },
     data() {
         return {
@@ -106,6 +110,10 @@
                 } else {
                     roles = res.filter(item => item.roleId !== 1); // 排除 roleId 为 1 的角色
                 }
+
+                if(this.title=='选择菌种实验员'){
+                    roles = res.filter(item => item.roleId == 5)
+                }
                 this.roleList = roles;
                 this.filterRoleList(); // 获取后先进行一次过滤
             });
diff --git a/culture/src/components/chooseProject/index.vue b/culture/src/components/chooseProject/index.vue
index 27b57fd..cb09c88 100644
--- a/culture/src/components/chooseProject/index.vue
+++ b/culture/src/components/chooseProject/index.vue
@@ -7,7 +7,7 @@
                         <el-form-item label="项目组名称:">
                             <el-input v-model="form.teamName" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item label="项目负责人:">
+                        <el-form-item label="菌种项目负责人:">
                             <el-input v-model="form.personCharge" placeholder="请输入"></el-input>
                         </el-form-item>
                         <el-form-item label="创建日期:">
@@ -27,8 +27,8 @@
                         highlight-current-row @current-change="handleCurrentChange">
                         <!-- <el-table-column type="selection" width="55" /> -->
                         <el-table-column prop="teamName" label="项目组名称"></el-table-column>
-                        <el-table-column prop="personCharge" label="项目负责人"></el-table-column>
-                        <el-table-column prop="staffName" label="项目组成员"></el-table-column>
+                        <el-table-column prop="personCharge" label="菌种项目负责人:"></el-table-column>
+                        <el-table-column prop="staffName" label="菌种实验员"></el-table-column>
                         <el-table-column prop="createTime" label="创建时间"></el-table-column>
                     </Table>
 
@@ -43,6 +43,7 @@
 </template>
 
 <script>
+import moment from 'moment';
 import { getDataList } from './servce'
 export default {
     props: {
@@ -97,11 +98,16 @@
                 startTime: '',
                 endTime: '',
                 teamName: '',
+                daterange:'',
             }
             this.handleSearch()
         },
         handleSearch() {
             console.log('shuju',this.form);
+            if(this.form.daterange&&this.form.daterange.length>0){
+                this.form.startTime = moment(this.form.daterange[0]).format('YYYY-MM-DD 00:00:00')
+                this.form.endTime = moment(this.form.daterange[1]).format('YYYY-MM-DD 23:59:59')
+            }
             
             this.open()
         },
diff --git a/culture/src/utils/request.js b/culture/src/utils/request.js
index 064b724..31320ed 100644
--- a/culture/src/utils/request.js
+++ b/culture/src/utils/request.js
@@ -63,20 +63,23 @@
       }
     }
 
+    console.log('rewdsada',res);
+    
+
     if (res.data.code == 200) {
       if (!res.data) {
         return Promise.resolve({})
       }
 
-      if (res.data.data.code == 200) {
+      if (res.data&&res.data.data&&res.data.data.code == 200) {
         return Promise.resolve(res.data.data || res.data)
-      } else if (res.data.data.code == 103 || res.data.data.code == 401) {
+      } else if ((res.data&&res.data.data&&(res.data.data.code == 103 || res.data.data.code == 401))) {
         Message({
           message: res.data.data.msg || '登录已过期,请重新登录',
           type: 'warning',
           duration: 2000
         })
-      } else if (res.data.data.code == 500) {
+      } else if ((res.data&&res.data.data&&(res.data.data.code == 500))) {
         Message({
           message: res.data.data.msg || '服务器错误',
           type: 'error',
diff --git a/culture/src/views/pedigree-chart/index.vue b/culture/src/views/pedigree-chart/index.vue
index 19d98ca..9464d37 100644
--- a/culture/src/views/pedigree-chart/index.vue
+++ b/culture/src/views/pedigree-chart/index.vue
@@ -1,6 +1,7 @@
 <template>
   <div class="list">
-    <TableCustom :queryForm="form" :tableData="tableData" :total="total" @handleSizeChange="handleSizeChange" @handleCurrentChange="handleCurrentChange">
+    <TableCustom :queryForm="form" :tableData="tableData" :total="total" @handleSizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange">
       <template #search>
         <el-form :model="form" labelWidth="auto" inline>
           <el-form-item label="菌种编号:">
@@ -9,12 +10,12 @@
           <el-form-item label="菌种名称:">
             <el-input v-model="form.strainName" placeholder="请输入"></el-input>
           </el-form-item>
-          <el-form-item v-if="roleType != 1" label="起传类型">
+          <!-- <el-form-item v-if="roleType != 1" label="起传类型">
             <el-select v-model="form.generationType" placeholder="请选择">
               <el-option label="母代" :value="1"></el-option>
               <el-option label="祖代" :value="2"></el-option>
             </el-select>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item label="">
             <el-button type="default" @click="resetForm">重置</el-button>
             <el-button style="margin-left: 10px;" type="primary" @click="handleSearch">查询</el-button>
@@ -56,8 +57,9 @@
         <el-table-column label="操作" width="250">
           <template slot-scope="scope">
             <el-button type="text" @click="handleDetail(scope.row)">详情</el-button>
+            <el-button type="text" v-if="Number(roleType) == 1" @click="handleDetail(scope.row)">编辑</el-button>
             <!-- 菌种超级管理员 -->
-            <el-button type="text" @click="handleDelete(scope.row)">删除</el-button>
+            <el-button type="text" v-if="Number(roleType) == 1" @click="handleDelete(scope.row)">删除</el-button>
           </template>
         </el-table-column>
       </template>
@@ -66,7 +68,7 @@
 </template>
 
 <script>
-import { getList,deleteProgenitor } from "./service";
+import { getList, deleteProgenitor } from "./service";
 export default {
   name: "PedigreeChart",
   components: {},
@@ -116,7 +118,7 @@
         pageNum: 1,
         pageSize: 10
       };
-    this.getTableData();
+      this.getTableData();
 
     },
     handleNewStrain() {
@@ -198,12 +200,12 @@
     handleDetail(row) {
       if (row.generationType == 1) {
         //母代详情
-        this.$router.push('/strain/add-pedigree?id='+row.id)
+        this.$router.push('/strain/add-pedigree?id=' + row.id)
       } else {
         //祖代详情
-        this.$router.push('/strain/add-progenitor?id='+row.id)
+        this.$router.push('/strain/add-progenitor?id=' + row.id)
       }
-      
+
     },
     handleTypeChange(type) {
       this.currentType = type;
diff --git a/culture/src/views/projectList/addProject.vue b/culture/src/views/projectList/addProject.vue
index 48f76b4..4d10357 100644
--- a/culture/src/views/projectList/addProject.vue
+++ b/culture/src/views/projectList/addProject.vue
@@ -124,7 +124,15 @@
                     return
                 }
             }
-            this.selectMemberData = data;
+            // 合并去重:保留原有成员,新增新成员,重复的不添加
+            const oldList = this.selectMemberData || [];
+            const newList = [...oldList];
+            data.forEach(newMember => {
+                if (!oldList.some(oldMember => oldMember.userId === newMember.userId)) {
+                    newList.push(newMember);
+                }
+            });
+            this.selectMemberData = newList;
             this.$refs.selectMember.close();
         },
         editUserList() {
diff --git a/culture/src/views/strain-library/breeding-record/SlantRecordDialog.vue b/culture/src/views/strain-library/breeding-record/SlantRecordDialog.vue
index b16869e..117e8ba 100644
--- a/culture/src/views/strain-library/breeding-record/SlantRecordDialog.vue
+++ b/culture/src/views/strain-library/breeding-record/SlantRecordDialog.vue
@@ -26,7 +26,7 @@
             @blur="handleDescBlur(row)" />
         </template>
       </el-table-column>
-      <el-table-column prop="images" label="拍照上传" width="120">
+      <el-table-column prop="images" label="拍照上传" width="180">
         <template #default="{ row }">
           <el-upload :file-list="row.images" :disabled="roleType!=4" list-type="picture-card" :on-preview="file => handlePreview(row, file)"
             :on-remove="(file, fileList) => handleRemove(row, file, fileList)"
@@ -222,6 +222,11 @@
   width: 100% !important;
 }
 
+::v-deep(.mini-upload){
+  display: flex;
+  flex-wrap: wrap;
+}
+
 ::v-deep(.el-upload--picture-card) {
   width: 40px !important;
   height: 40px !important;
diff --git a/culture/src/views/strain-library/breeding-record/add.vue b/culture/src/views/strain-library/breeding-record/add.vue
index 76eb6de..44640db 100644
--- a/culture/src/views/strain-library/breeding-record/add.vue
+++ b/culture/src/views/strain-library/breeding-record/add.vue
@@ -10,10 +10,10 @@
         </div>
         <div class="flex" style="margin-bottom: 20px">
           <div class="tabs">
-            <div :class="{ active: activeTab === 'strain' }" @click="activeTab = 'strain'">
+            <div :class="{ active: activeTab === 'strain' }" @click="ChangeTab('strain')">
               来源菌株
             </div>
-            <div :class="{ active: activeTab === 'material' }" @click="activeTab = 'material'">
+            <div :class="{ active: activeTab === 'material' }" @click="ChangeTab('material')">
               来源物资
             </div>
           </div>
@@ -116,7 +116,7 @@
             </template>
           </el-table-column>
           <el-table-column prop="createTime" label="操作时间" />
-          <el-table-column prop="address" label="操作" v-if="!$route.query.isDetail">
+          <el-table-column prop="address" label="操作">
             <template slot-scope="scope" v-if="[1, 4].includes(roleType)">
               <el-button type="text" @click="handleEditSeparation(scope.row, scope.$index)"
                 v-if="!$route.query.isDetail">编辑</el-button>
@@ -196,7 +196,7 @@
               <el-button type="text" @click="handleConfirmStorageClick(scope.row, scope.$index)"
                 v-if="$route.query.isDetail && [3].includes(roleType) && !scope.row.preserveSignature">确认入库</el-button>
               <el-button type="text" @click="handleDeleteInoculation(scope.$index)"
-                v-if="!$route.query.isDetail && !scope.row.preserveSignature && [1, 4].includes(roleType)">删除</el-button>
+                v-if="!scope.row.preserveSignature && [4].includes(roleType)">删除</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -238,7 +238,7 @@
               <el-button type="text" @click="handleConfirmPreserve(scope.row, scope.$index)"
                 v-if="$route.query.isDetail && [3].includes(roleType) && !scope.row.preserveSignature">确认入库</el-button>
               <el-button type="text" @click="handleDeletePreserve(scope.$index)"
-                v-if="!$route.query.isDetail && !scope.row.preserveSignature && [1, 4].includes(roleType)">删除</el-button>
+                v-if="!scope.row.preserveSignature && [4].includes(roleType)">删除</el-button>
             </template>
           </el-table-column>
         </Table>
@@ -255,10 +255,11 @@
           @confirm="handleConfirmStorage" />
         <ConfirmPreserveDialog :visible.sync="showConfirmPreserveDialog" :editData="editPreserveData"
           @confirm="handleConfirmPreserveSubmit" />
-        <div class="end-btn" style="margin-top: 20px;" v-if="!$route.query.isDetail && [3, 4].includes(roleType)">
+        <div class="end-btn" style="margin-top: 20px;"
+          v-if="($route.query.isDetail && [3].includes(roleType)) || !$route.query.isDetail && [3, 4].includes(roleType)">
           <el-button type="primary" @click="handleSubmit(1)">提交</el-button>
-          <el-button type="primary" @click="handleSubmit(3)">同步给保藏人</el-button>
-          <el-button type="default" @click="handleSubmit(2)">存草稿</el-button>
+          <el-button v-if="!$route.query.isDetail" type="primary" @click="handleSubmit(3)">同步给保藏人</el-button>
+          <el-button v-if="!$route.query.isDetail" type="default" @click="handleSubmit(2)">存草稿</el-button>
         </div>
       </el-form>
     </Card>
@@ -378,6 +379,11 @@
     }
   },
   methods: {
+    ChangeTab(tab) {
+      if (!this.$route.query.id) {
+        this.activeTab = tab
+      }
+    },
     async getDetail() {
       const res = await detail({ id: this.$route.query.id })
       if (res.preserveSource == 1) {
diff --git a/culture/src/views/strain-library/breeding-record/inoculation-slope-record-dialog.vue b/culture/src/views/strain-library/breeding-record/inoculation-slope-record-dialog.vue
index 2041cf1..4d106ef 100644
--- a/culture/src/views/strain-library/breeding-record/inoculation-slope-record-dialog.vue
+++ b/culture/src/views/strain-library/breeding-record/inoculation-slope-record-dialog.vue
@@ -73,11 +73,11 @@
             </div>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <!-- <el-col :span="12">
           <el-form-item label="接种操作人" prop="handleName">
             <el-input v-model="form.handleName" disabled placeholder="自动填入" />
           </el-form-item>
-        </el-col>
+        </el-col> -->
       </el-row>
     </el-form>
     <div style="text-align: center; margin-top: 20px">
@@ -106,7 +106,7 @@
         separateColonyCode: "",
         vaccinationSlopeCode: "",
         handleType: "保存",
-        preserveTime: this.getNowTime(),
+        preserveTime: '',
         handleTime: this.getNowTime(),
         handleSignature: "",
         handleName: JSON.parse(sessionStorage.getItem('userInfo'))?.nickName || '',
@@ -156,6 +156,10 @@
     handleSave() {
       console.log(this.form)
       this.$refs.form.validate((valid) => {
+        if(!this.form.handleSignature){
+          this.$message.error('请接种操作人签字')
+          return
+        }
         if (valid) {
           this.$emit("save", { ...this.form });
           
@@ -170,7 +174,7 @@
         separateColonyCode: "",
         vaccinationSlopeCode: "",
         handleType: "保存",
-        preserveTime: this.getNowTime(),
+        preserveTime: '',
         handleTime: this.getNowTime(),
         handleSignature: "",
         handleName: JSON.parse(sessionStorage.getItem('userInfo'))?.nickName || '',
diff --git a/culture/src/views/strain-library/main-cell-library/index.vue b/culture/src/views/strain-library/main-cell-library/index.vue
index 4346e86..b3a657a 100644
--- a/culture/src/views/strain-library/main-cell-library/index.vue
+++ b/culture/src/views/strain-library/main-cell-library/index.vue
@@ -4,78 +4,61 @@
       <div class="box-title">
         <img src="@/assets/public/notice.png" class="header-icon" />
         <span>菌种源保藏出/入细胞库登记表说明</span>
-        <el-button type="text" class="view-more" @click="handleViewMore"
-          >查看全部 >></el-button
-        >
+        <el-button type="text" class="view-more" @click="handleViewMore">查看全部 >></el-button>
       </div>
       <div class="header-content" :class="{ collapsed: true }">
-        <p>
-          1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3
-          条路径。1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。1.2
-          是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)1.3
-          是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。
-          2.
-          菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。2.1
-          原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、2.3
-          生产细胞库(子代-S)、(孙代-G)3. 细胞库编码规则3.1
-          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在
-          24 年 9 月 19
-          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号3.1.1
-          传代编码方式演例:祖代:DD-O-240919-01
-          传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2
-          编码规则实现了编码唯一,编码可溯源,编码直观、方便。3.2
-          细胞库说明:3.2.1
-          直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。3.2.2
-          从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。3.2.3
-          主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。4.
-          菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02
-          等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。4.2
-          接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。
-        </p>
+        <p> 1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3条路径。</p>
+        <p> 1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。</p>
+        <p> 1.2 是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)</p>
+        <p> 1.3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。</p>
+        <p> 2.菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。</p>
+        <p> 2.1 原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、 </p>
+        <p> 2.3 生产细胞库(子代-S)、(孙代-G)</p>
+        <p> 3. 细胞库编码规则 </p>
+        <p>3.1
+          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在24 年
+          9 月 19
+          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号</p>
+        <p>3.1.1
+        传代编码方式演例:祖代:DD-O-240919-01传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2编码规则实现了编码唯一,编码可溯源,编码直观、方便。</p>
+       <p> 3.2 细胞库说明:</p>
+       <p> 3.2.1 直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。</p>
+       <p> 3.2.2 从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。</p>
+       <p> 3.2.3 主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。</p>
+       <p> 4.菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。</p>
+       <p> 4.2 接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。</p>
       </div>
 
       <!-- 查看全部弹窗 -->
-      <el-dialog
-        title="菌种源保藏出/入细胞库登记表说明"
-        :visible.sync="dialogVisible"
-        width="50%"
-        class="view-all-dialog"
-      >
+      <el-dialog title="菌种源保藏出/入细胞库登记表说明" :visible.sync="dialogVisible" width="50%" class="view-all-dialog">
         <div class="dialog-content">
-          <p>
-            1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3
-            条路径。1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。1.2
-            是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)1.3
-            是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。2.
-            菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。2.1
-            原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、2.3
-            生产细胞库(子代-S)、(孙代-G)3. 细胞库编码规则3.1
-            细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在
-            24 年 9 月 19
-            接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号3.1.1
-            传代编码方式演例:祖代:DD-O-240919-01
-            传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2
-            编码规则实现了编码唯一,编码可溯源,编码直观、方便。3.2
-            细胞库说明:3.2.1
-            直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。3.2.2
-            从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。3.2.3
-            主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。4.
-            菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用
-            a-01、a-02 等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。4.2
-            接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。
-          </p>
+          <p> 1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3条路径。</p>
+        <p> 1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。</p>
+        <p> 1.2 是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)</p>
+        <p> 1.3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。</p>
+        <p> 2.菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。</p>
+        <p> 2.1 原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、 </p>
+        <p> 2.3 生产细胞库(子代-S)、(孙代-G)</p>
+        <p> 3. 细胞库编码规则 </p>
+        <p>3.1
+          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在24 年
+          9 月 19
+          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号</p>
+        <p>3.1.1
+        传代编码方式演例:祖代:DD-O-240919-01传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2编码规则实现了编码唯一,编码可溯源,编码直观、方便。</p>
+       <p> 3.2 细胞库说明:</p>
+       <p> 3.2.1 直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。</p>
+       <p> 3.2.2 从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。</p>
+       <p> 3.2.3 主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。</p>
+       <p> 4.菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。</p>
+       <p> 4.2 接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。</p>
         </div>
       </el-dialog>
     </el-card>
 
     <!-- Table -->
-    <TableCustom
-      :queryForm="queryForm"
-      :tableData="tableData"
-      :total="total"
-      @currentChange="handleCurrentChange"
-      @sizeChange="handleSizeChange"
-    >
+    <TableCustom :queryForm="queryForm" :tableData="tableData" :total="total" @handleCurrentChange="handleCurrentChange"
+      @handleSizeChange="handleSizeChange">
       <template #search>
         <el-form :model="form" label-width="auto" inline>
           <el-form-item label="菌种编号:">
@@ -103,35 +86,17 @@
       <template #setting>
         <div class="tableTitle">
           <div class="flex a-center">
-            <div
-              class="title"
-              :class="{ active: currentType === 'list' }"
-              @click="handleTypeChange('list')"
-            >
+            <div class="title" :class="{ active: currentType === 'list' }" @click="handleTypeChange('list')">
               主细胞列表
             </div>
-            <div
-              class="drafts"
-              :class="{ active: currentType === 'draft' }"
-              @click="handleTypeChange('draft')"
-            >
+            <div class="drafts" :class="{ active: currentType === 'draft' }" @click="handleTypeChange('draft')">
               草稿箱
             </div>
           </div>
           <div v-if="roleType == 4" class="flex a-center">
-            <el-button
-              @click="handleNewStrain"
-              class="el-icon-plus"
-              type="primary"
-              style="margin-right: 12px"
-              >新增主细胞</el-button
-            >
-            <el-button
-              @click="handleNewStrain"
-              class="el-icon-plus"
-              type="primary"
-              >批量新增</el-button
-            >
+            <el-button @click="handleNewStrain" class="el-icon-plus" type="primary"
+              style="margin-right: 12px">新增主细胞</el-button>
+            <el-button @click="handleNewStrain" class="el-icon-plus" type="primary">批量新增</el-button>
           </div>
         </div>
       </template>
@@ -146,11 +111,7 @@
         <el-table-column prop="saveLocation" label="保藏位置" />
         <el-table-column prop="stock" label="库存余量" />
         <el-table-column prop="remark" label="备注" />
-        <el-table-column
-          v-if="currentType === 'list'"
-          prop="status"
-          label="当前状态"
-        >
+        <el-table-column v-if="currentType === 'list'" prop="status" label="当前状态">
           <template #default="{ row }">
             <el-tag :type="getStatusType(row.status)">{{
               getStatusText(row.status)
@@ -161,12 +122,7 @@
           <template #default="{ row }">
             <el-button type="text" @click="handleDetail(row)">详情</el-button>
             <el-button v-if="row.status == 2 || row.status == 4" type="text" @click="handleEdit(row)">编辑</el-button>
-            <el-button
-              v-if="currentType === 'list'"
-              type="text"
-              @click="handleRecord(row)"
-              >出入库记录</el-button
-            >
+            <el-button v-if="currentType === 'list'" type="text" @click="handleRecord(row)">出入库记录</el-button>
             <el-button v-if="roleType == 1" type="text" @click="handleDelete(row)">删除</el-button>
           </template>
         </el-table-column>
@@ -218,14 +174,14 @@
         type: "warning",
       }).then(() => {
         deleteStrainLibrary({ id: row.id }).then((res) => {
-            this.$message.success("删除成功");
-            this.searchData();
+          this.$message.success("删除成功");
+          this.searchData();
         });
       });
     },
     handleRecord(row) {
       this.$router.push({
-        path: `/strain-library/strain-library-manage/record?id=${row.id}`,
+        path: `/strain-library/strain-library-manage/record?id=${row.id}&type=2`,
       });
     },
     handleNewStrain() {
@@ -262,7 +218,7 @@
         type: 2,
       };
       console.log(params);
-      
+
       getList(params)
         .then((res) => {
           if (res.code === 200) {
diff --git a/culture/src/views/strain-library/production-cell-library/index.vue b/culture/src/views/strain-library/production-cell-library/index.vue
index 31cfb28..d69ab4a 100644
--- a/culture/src/views/strain-library/production-cell-library/index.vue
+++ b/culture/src/views/strain-library/production-cell-library/index.vue
@@ -9,29 +9,26 @@
         >
       </div>
       <div class="header-content" :class="{ collapsed: true }">
-        <p>
-          1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3
-          条路径。1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。1.2
-          是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)1.3
-          是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。
-          2.
-          菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。2.1
-          原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、2.3
-          生产细胞库(子代-S)、(孙代-G)3. 细胞库编码规则3.1
-          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在
-          24 年 9 月 19
-          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号3.1.1
-          传代编码方式演例:祖代:DD-O-240919-01
-          传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2
-          编码规则实现了编码唯一,编码可溯源,编码直观、方便。3.2
-          细胞库说明:3.2.1
-          直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。3.2.2
-          从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。3.2.3
-          主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。4.
-          菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02
-          等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。4.2
-          接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。
-        </p>
+        <p> 1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3条路径。</p>
+        <p> 1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。</p>
+        <p> 1.2 是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)</p>
+        <p> 1.3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。</p>
+        <p> 2.菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。</p>
+        <p> 2.1 原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、 </p>
+        <p> 2.3 生产细胞库(子代-S)、(孙代-G)</p>
+        <p> 3. 细胞库编码规则 </p>
+        <p>3.1
+          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在24 年
+          9 月 19
+          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号</p>
+        <p>3.1.1
+        传代编码方式演例:祖代:DD-O-240919-01传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2编码规则实现了编码唯一,编码可溯源,编码直观、方便。</p>
+       <p> 3.2 细胞库说明:</p>
+       <p> 3.2.1 直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。</p>
+       <p> 3.2.2 从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。</p>
+       <p> 3.2.3 主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。</p>
+       <p> 4.菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。</p>
+       <p> 4.2 接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。</p>
       </div>
 
       <!-- 查看全部弹窗 -->
@@ -42,28 +39,26 @@
         class="view-all-dialog"
       >
         <div class="dialog-content">
-          <p>
-            1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3
-            条路径。1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。1.2
-            是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)1.3
-            是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。2.
-            菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。2.1
-            原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、2.3
-            生产细胞库(子代-S)、(孙代-G)3. 细胞库编码规则3.1
-            细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在
-            24 年 9 月 19
-            接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号3.1.1
-            传代编码方式演例:祖代:DD-O-240919-01
-            传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2
-            编码规则实现了编码唯一,编码可溯源,编码直观、方便。3.2
-            细胞库说明:3.2.1
-            直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。3.2.2
-            从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。3.2.3
-            主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。4.
-            菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用
-            a-01、a-02 等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。4.2
-            接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。
-          </p>
+          <p> 1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3条路径。</p>
+        <p> 1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。</p>
+        <p> 1.2 是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)</p>
+        <p> 1.3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。</p>
+        <p> 2.菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。</p>
+        <p> 2.1 原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、 </p>
+        <p> 2.3 生产细胞库(子代-S)、(孙代-G)</p>
+        <p> 3. 细胞库编码规则 </p>
+        <p>3.1
+          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在24 年
+          9 月 19
+          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号</p>
+        <p>3.1.1
+        传代编码方式演例:祖代:DD-O-240919-01传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2编码规则实现了编码唯一,编码可溯源,编码直观、方便。</p>
+       <p> 3.2 细胞库说明:</p>
+       <p> 3.2.1 直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。</p>
+       <p> 3.2.2 从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。</p>
+       <p> 3.2.3 主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。</p>
+       <p> 4.菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。</p>
+       <p> 4.2 接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。</p>
         </div>
       </el-dialog>
     </el-card>
@@ -73,8 +68,8 @@
       :queryForm="queryForm"
       :tableData="tableData"
       :total="total"
-      @currentChange="handleCurrentChange"
-      @sizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+      @handleSizeChange="handleSizeChange"
     >
       <template #search>
         <el-form :model="form" label-width="auto" inline>
@@ -225,7 +220,7 @@
     },
     handleRecord(row) {
       this.$router.push({
-        path: `/strain-library/strain-library-manage/record?id=${row.id}`,
+        path: `/strain-library/strain-library-manage/record?id=${row.id}&type=3`,
       });
     },
     handleNewStrain() {
diff --git a/culture/src/views/strain-library/strain-library-manage/components/StrainDetail.vue b/culture/src/views/strain-library/strain-library-manage/components/StrainDetail.vue
index 3c281eb..054a7f1 100644
--- a/culture/src/views/strain-library/strain-library-manage/components/StrainDetail.vue
+++ b/culture/src/views/strain-library/strain-library-manage/components/StrainDetail.vue
@@ -72,7 +72,11 @@
           </el-table-column>
           <el-table-column prop="boundTime" label="操作时间" />
           <el-table-column prop="handleName" label="操作人姓名" />
-          <el-table-column prop="preserveName" label="菌种保藏人签字" />
+          <el-table-column prop="preserveSignature" label="菌种保藏人签字" >
+            <template #default="{row}">
+              <img :src="row.preserveSignature" alt="签字图片" style="max-width: 100px; max-height: 50px;">
+            </template>
+          </el-table-column>
           <el-table-column label="状态">
             <template #default="{ row }">
               <el-tag :type="row.confirmTime ? 'success' : 'warning'">
@@ -156,6 +160,8 @@
     this.roleType = JSON.parse(sessionStorage.getItem("userInfo")).roleType;
       this.query.id = this.detail.id;
       getDetailById(this.query).then((res) => {
+        console.log('qweqweqwe',res);
+        
         this.detail.records = res.warehousingList?.records || [];
         this.total = res.warehousingList?.total || 0;
         this.currentPage = res.warehousingList?.current || 1;
diff --git a/culture/src/views/strain-library/strain-library-manage/index.vue b/culture/src/views/strain-library/strain-library-manage/index.vue
index 9917b97..00aba63 100644
--- a/culture/src/views/strain-library/strain-library-manage/index.vue
+++ b/culture/src/views/strain-library/strain-library-manage/index.vue
@@ -9,29 +9,26 @@
         >
       </div>
       <div class="header-content" :class="{ collapsed: true }">
-        <p>
-          1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3
-          条路径。1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。1.2
-          是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)1.3
-          是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。
-          2.
-          菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。2.1
-          原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、2.3
-          生产细胞库(子代-S)、(孙代-G)3. 细胞库编码规则3.1
-          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在
-          24 年 9 月 19
-          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号3.1.1
-          传代编码方式演例:祖代:DD-O-240919-01
-          传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2
-          编码规则实现了编码唯一,编码可溯源,编码直观、方便。3.2
-          细胞库说明:3.2.1
-          直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。3.2.2
-          从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。3.2.3
-          主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。4.
-          菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02
-          等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。4.2
-          接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。
-        </p>
+        <p> 1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3条路径。</p>
+        <p> 1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。</p>
+        <p> 1.2 是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)</p>
+        <p> 1.3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。</p>
+        <p> 2.菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。</p>
+        <p> 2.1 原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、 </p>
+        <p> 2.3 生产细胞库(子代-S)、(孙代-G)</p>
+        <p> 3. 细胞库编码规则 </p>
+        <p>3.1
+          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在24 年
+          9 月 19
+          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号</p>
+        <p>3.1.1
+        传代编码方式演例:祖代:DD-O-240919-01传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2编码规则实现了编码唯一,编码可溯源,编码直观、方便。</p>
+       <p> 3.2 细胞库说明:</p>
+       <p> 3.2.1 直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。</p>
+       <p> 3.2.2 从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。</p>
+       <p> 3.2.3 主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。</p>
+       <p> 4.菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。</p>
+       <p> 4.2 接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。</p>
       </div>
 
       <!-- 查看全部弹窗 -->
@@ -42,28 +39,26 @@
         class="view-all-dialog"
       >
         <div class="dialog-content">
-          <p>
-            1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3
-            条路径。1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。1.2
-            是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)1.3
-            是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。2.
-            菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。2.1
-            原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、2.3
-            生产细胞库(子代-S)、(孙代-G)3. 细胞库编码规则3.1
-            细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在
-            24 年 9 月 19
-            接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号3.1.1
-            传代编码方式演例:祖代:DD-O-240919-01
-            传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2
-            编码规则实现了编码唯一,编码可溯源,编码直观、方便。3.2
-            细胞库说明:3.2.1
-            直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。3.2.2
-            从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。3.2.3
-            主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。4.
-            菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用
-            a-01、a-02 等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。4.2
-            接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。
-          </p>
+          <p> 1. 菌种全部集中登记在【菌种源保藏出/入细胞库登记表】,菌种来源有 3条路径。</p>
+        <p> 1.1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-O)。</p>
+        <p> 1.2 是斜面的源头菌种;接种入主细胞库(祖代-O)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)</p>
+        <p> 1.3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)。</p>
+        <p> 2.菌种细胞库,分类入三库,进行传代运行管理。三类库存空间进行区分,保藏菌种。</p>
+        <p> 2.1 原始细胞库(祖代-O)、2.2 主细胞库(母代-M)、 </p>
+        <p> 2.3 生产细胞库(子代-S)、(孙代-G)</p>
+        <p> 3. 细胞库编码规则 </p>
+        <p>3.1
+          细胞库编码规则:DD-M-240919-01-(O-0109-01)DD:代表项目组。M:“O”代表祖代原始细胞库,”M“代表母代主细胞库,”S“代表子代生产细胞库,“G”代表孙代生产细胞库。240919:代表在24 年
+          9 月 19
+          接种批次的菌种;或收到外来菌种时间的入库批次。01:代表两位序列号。(O-0109-01):代表传代菌种的编号</p>
+        <p>3.1.1
+        传代编码方式演例:祖代:DD-O-240919-01传母代:DD-M-241017-01-(O-091901)DD-M-241017-02-(O-091901)DD-M-241017-03-(O-091901)子代:DD-S-241019-01-(M-1017-02)版权归奥利元生物所有,禁止外传。DD-S-241019-02-(M-1017-03)孙代:DD-G-241109-01-(S-1019-02)3.1.2编码规则实现了编码唯一,编码可溯源,编码直观、方便。</p>
+       <p> 3.2 细胞库说明:</p>
+       <p> 3.2.1 直接购买、自行从(土壤、相关物料、商品)等分离出来菌株进入原始细胞库。</p>
+       <p> 3.2.2 从原始细胞库中选取出来再次纯化、改造、提高性能的菌株进入主细胞库。</p>
+       <p> 3.2.3 主细胞库中选取出稳定,生产性能良好的菌株扩培后保种进入生产细胞库。</p>
+       <p> 4.菌种选育-保藏过程编号说明4.1 菌种选育时,培养皿的编号可使用 a-01、a-02等用于清晰形态观察记录;菌落编号使用序号 1/2/3等。</p>
+       <p> 4.2 接种斜面菌种编码(-O)使用原始细胞库编码;斜面转菌种保藏使用与斜面一致的编码(-O);斜面传代入主细胞库的传代菌种,按编码器规则编码(-M)。</p>
         </div>
       </el-dialog>
     </el-card>
@@ -73,8 +68,8 @@
       :queryForm="queryForm"
       :tableData="tableData"
       :total="total"
-      @currentChange="handleCurrentChange"
-      @sizeChange="handleSizeChange"
+      @handleCurrentChange="handleCurrentChange"
+      @handleSizeChange="handleSizeChange"
     >
       <template #search>
         <el-form :model="form" label-width="auto" inline>
@@ -225,7 +220,7 @@
     },
     handleRecord(row) {
       this.$router.push({
-        path: `/strain-library/strain-library-manage/record?id=${row.id}`,
+        path: `/strain-library/strain-library-manage/record?id=${row.id}&type=1`,
       });
     },
     handleNewStrain() {
diff --git a/culture/src/views/strain-library/strain-library-manage/record.vue b/culture/src/views/strain-library/strain-library-manage/record.vue
index 03eab17..91c7d51 100644
--- a/culture/src/views/strain-library/strain-library-manage/record.vue
+++ b/culture/src/views/strain-library/strain-library-manage/record.vue
@@ -60,14 +60,14 @@
               :class="{ active: currentType === 'table' }"
               @click="handleTypeChange('table')"
             >
-              原始细胞保藏出/入库登记表
+             {{type==1?'原始细胞保藏出/入库登记表':type==2?'主细胞保藏出/入库登记表':'生产细胞保藏出/入库登记表'}}
             </div>
             <div
               class="drafts"
               :class="{ active: currentType === 'timeline' }"
               @click="handleTypeChange('timeline')"
             >
-              原始细胞保藏出/入库时间轴
+              {{type==1?'原始细胞保藏出/入库时间轴':type==2?'主细胞保藏出/入库时间轴':'生产细胞保藏出/入库时间轴'}}
             </div>
           </div>
           <div class="flex a-center">
@@ -197,11 +197,12 @@
       addDialogVisible: false,
       dialogType: "detail",
       roleType: "",
-    };
+      type: 1,
+      };
   },
   created() {
     this.roleType = JSON.parse(sessionStorage.getItem("userInfo")).roleType;
-
+    this.type = this.$route.query.type;
     // 获取路由参数中的菌种信息
     const strainId = this.$route.query.id;
     this.queryForm.id = strainId;
diff --git a/culture/src/views/strain-library/validation/chief-cell/DetailConditionDialog.vue b/culture/src/views/strain-library/validation/chief-cell/DetailConditionDialog.vue
index 661e170..7347d98 100644
--- a/culture/src/views/strain-library/validation/chief-cell/DetailConditionDialog.vue
+++ b/culture/src/views/strain-library/validation/chief-cell/DetailConditionDialog.vue
@@ -2,7 +2,7 @@
   <el-dialog :visible.sync="visible" width="80%" @open="handleOpen" @close="handleClose">
     <el-card class="top-card">
       <el-row :gutter="24" class="top-info-row">
-        <el-col :span="8" class="info-col">
+        <el-col :span="6" class="info-col">
           <div class="info-item">
             <span class="label">菌种来源:</span>{{ detail.strainSource }}
           </div>
@@ -13,7 +13,7 @@
             <span class="label">鉴别菌株名称:</span>{{ detail.identifyingStrainName }}
           </div>
         </el-col>
-        <el-col :span="8" class="info-col">
+        <el-col :span="6" class="info-col">
           <div class="info-item">
             <span class="label">验证实验编号:</span>{{ detail.validationExperimentCode }}
           </div>
@@ -22,7 +22,7 @@
           </div>
           <div class="info-item"></div>
         </el-col>
-        <el-col :span="8" class="info-col">
+        <el-col :span="6" class="info-col">
           <div class="info-item sign-label">
             <span class="label">菌种实验员签字</span>
           </div>
@@ -33,6 +33,11 @@
             </div>
           </div>
         </el-col>
+        <el-col :span="6" class="info-col">
+          <div class="info-item">
+            <span class="label">签字时间:</span>{{ detail.preserveTime }}
+          </div>
+        </el-col>
       </el-row>
     </el-card>
     <div class="section-card" style="margin-top: 24px">
diff --git a/culture/src/views/strain-library/validation/chief-cell/add.vue b/culture/src/views/strain-library/validation/chief-cell/add.vue
index d82d657..dbfbc51 100644
--- a/culture/src/views/strain-library/validation/chief-cell/add.vue
+++ b/culture/src/views/strain-library/validation/chief-cell/add.vue
@@ -39,7 +39,7 @@
 
         <!-- 签字确认组件 -->
         <ConfirmStorageDialog :visible.sync="signatureVisible" :handleSignature="form.handleSignature"
-            @confirm="handleSignatureConfirm" name="操作人签字" text="是否确认提交该项原始细胞库资料信息?" />
+            @confirm="handleSignatureConfirm" name="操作人签字" text="是否确认提交该项主细胞库资料信息?" />
     </Card>
 </template>
 
diff --git a/culture/src/views/strain-library/validation/chief-cell/confirm-detail.vue b/culture/src/views/strain-library/validation/chief-cell/confirm-detail.vue
index 755def6..538f3a8 100644
--- a/culture/src/views/strain-library/validation/chief-cell/confirm-detail.vue
+++ b/culture/src/views/strain-library/validation/chief-cell/confirm-detail.vue
@@ -37,7 +37,7 @@
         </el-form-item>
       </el-form>
     </div>
-    <el-button type="primary" @click="handleSave" class="el-icon-plus"> 新增</el-button>
+    <el-button type="primary" @click="handleAdd" class="el-icon-plus"> 新增</el-button>
     <EditConditionDialog
       :visible.sync="dialogVisible"
       :isEdit="dialogIsEdit"
@@ -140,6 +140,13 @@
         }
       })
     },
+    handleAdd() {
+      this.dialogVisible = true
+      this.dialogIsEdit = false
+      this.dialogIsFixed = false
+      this.dialogValue = {}
+      this.dialogIndex = null
+    },
     handleEdit(row) {
       const idx = this.tableData.indexOf(row)
       this.dialogVisible = true
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 93a910a..db976dd 100644
--- a/culture/src/views/strain-library/validation/chief-cell/index.vue
+++ b/culture/src/views/strain-library/validation/chief-cell/index.vue
@@ -26,14 +26,14 @@
         <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" :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">
+          <div class="flex a-center" v-if="roleType == 4|| roleType==3">
             <el-button @click="handleNewStrain" class="el-icon-plus" type="primary"
               style="margin-right: 12px">新增主细胞</el-button>
           </div>
@@ -43,7 +43,13 @@
       <template #table>
         <el-table-column prop="strainSource" label="菌种来源" />
         <el-table-column prop="identifyingStrainCode" label="鉴别菌株编号" />
-        <el-table-column prop="identifyingStrainName" label="鉴别菌株名称" />
+        <el-table-column prop="identifyingStrainName" label="鉴别菌株名称">
+          <template #default="{ row }">
+            <el-tooltip :content="row.identifyingStrainName" placement="top" effect="dark">
+              <div class="ellipsis-text">{{ row.identifyingStrainName }}</div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
         <el-table-column prop="validationExperimentCode" label="验证实验编号" />
         <el-table-column prop="createBy" label="创建人" />
         <el-table-column prop="createTime" label="创建时间" />
@@ -56,10 +62,11 @@
         <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" v-if="roleType == 4" @click="handleDetail(row)">详情</el-button>
-            <el-button type="text" v-if="roleType != 4" @click="handleDetail2(row)">详情</el-button>
-            <el-button type="text" v-if="roleType == 4 && currentType == 'draft'" @click="handleEdit(row)">编辑</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>
           </template>
         </el-table-column>
@@ -389,4 +396,13 @@
     }
   }
 }
+
+.ellipsis-text {
+  display: -webkit-box;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  word-break: break-all;
+}
 </style>
diff --git a/culture/src/views/strain-library/validation/primitive-cell/DetailConditionDialog.vue b/culture/src/views/strain-library/validation/primitive-cell/DetailConditionDialog.vue
index 661e170..75ebe94 100644
--- a/culture/src/views/strain-library/validation/primitive-cell/DetailConditionDialog.vue
+++ b/culture/src/views/strain-library/validation/primitive-cell/DetailConditionDialog.vue
@@ -2,7 +2,7 @@
   <el-dialog :visible.sync="visible" width="80%" @open="handleOpen" @close="handleClose">
     <el-card class="top-card">
       <el-row :gutter="24" class="top-info-row">
-        <el-col :span="8" class="info-col">
+        <el-col :span="6" class="info-col">
           <div class="info-item">
             <span class="label">菌种来源:</span>{{ detail.strainSource }}
           </div>
@@ -13,7 +13,7 @@
             <span class="label">鉴别菌株名称:</span>{{ detail.identifyingStrainName }}
           </div>
         </el-col>
-        <el-col :span="8" class="info-col">
+        <el-col :span="6" class="info-col">
           <div class="info-item">
             <span class="label">验证实验编号:</span>{{ detail.validationExperimentCode }}
           </div>
@@ -22,7 +22,7 @@
           </div>
           <div class="info-item"></div>
         </el-col>
-        <el-col :span="8" class="info-col">
+        <el-col :span="6" class="info-col">
           <div class="info-item sign-label">
             <span class="label">菌种实验员签字</span>
           </div>
@@ -31,6 +31,11 @@
               <img v-if="detail.handleSignature" :src="detail.handleSignature" alt="签字" />
               <span v-else class="waiting-text">暂无签名</span>
             </div>
+          </div>
+        </el-col>
+        <el-col :span="6" class="info-col">
+          <div class="info-item">
+            <span class="label">签字时间:</span>{{ detail.preserveTime }}
           </div>
         </el-col>
       </el-row>
@@ -174,6 +179,8 @@
 
 .top-card {
   margin-bottom: 0;
+  min-height: 160px;
+  overflow-y: auto;
   background: rgba(239, 239, 239, 1);
   border-radius: 16px;
 }
@@ -198,6 +205,7 @@
 .label {
   color: #666;
   font-weight: 500;
+  flex-shrink: 0;
 }
 
 .sign-col {
diff --git a/culture/src/views/strain-library/validation/primitive-cell/confirm-detail.vue b/culture/src/views/strain-library/validation/primitive-cell/confirm-detail.vue
index 7a9b3d4..23d3ded 100644
--- a/culture/src/views/strain-library/validation/primitive-cell/confirm-detail.vue
+++ b/culture/src/views/strain-library/validation/primitive-cell/confirm-detail.vue
@@ -9,7 +9,7 @@
         </el-col>
         <el-col :span="8" class="info-col">
           <div class="info-item"><span class="label">验证实验编号:</span>{{ detail.validationExperimentCode }}</div>
-          <div class="info-item"><span class="label">实验时间:</span>{{ detail.experimentTime }}</div>
+          <div class="info-item"><span class="label">实验时间:</span>{{ detail.experimentTime | formatDate  }}</div>
           <div class="info-item"></div>
         </el-col>
         <el-col :span="8" class="info-col ">
@@ -37,7 +37,7 @@
         </el-form-item>
       </el-form>
     </div>
-    <el-button type="primary" @click="handleSave" class="el-icon-plus"> 新增</el-button>
+    <el-button type="primary" @click="handleAdd" class="el-icon-plus"> 新增</el-button>
     <EditConditionDialog
       :visible.sync="dialogVisible"
       :isEdit="dialogIsEdit"
@@ -74,6 +74,7 @@
 import EditConditionDialog from './EditConditionDialog.vue'
 import DetailConditionDialog from './DetailConditionDialog.vue'
 import { detail,confirm } from './service'
+import moment from 'moment'
 export default {
   name: 'ConfirmDetail',
   components: { EditConditionDialog, DetailConditionDialog },
@@ -125,6 +126,14 @@
       dialogIndex: null,
       detailDialogVisible: false,
       detailDialogValue: {}
+    }
+  },
+  filters: {
+    formatDate(date) {
+      if (date) {
+        return moment(date).format('YYYY-MM-DD')
+      }
+      return ''
     }
   },
   mounted() {
@@ -182,6 +191,13 @@
     handleDraft() {
       // 存稿逻辑
     },
+    handleAdd() {
+      this.dialogVisible = true
+      this.dialogIsEdit = false
+      this.dialogIsFixed = false
+      this.dialogValue = {}
+      this.dialogIndex = null
+    },
     handleDialogOk(val) {
       if (this.dialogIsEdit && this.dialogIndex !== null) {
         this.$set(this.tableData, this.dialogIndex, val)
diff --git a/culture/src/views/strain-library/validation/primitive-cell/index.vue b/culture/src/views/strain-library/validation/primitive-cell/index.vue
index 755909d..2e2d5ae 100644
--- a/culture/src/views/strain-library/validation/primitive-cell/index.vue
+++ b/culture/src/views/strain-library/validation/primitive-cell/index.vue
@@ -1,8 +1,8 @@
 <template>
   <div class="list">
     <!-- Table -->
-    <TableCustom :queryForm="queryForm" :height="null" :tableData="tableData" :total="total" @handleCurrentChange="handleCurrentChange"
-      @handleSizeChange="handleSizeChange">
+    <TableCustom :queryForm="queryForm" :height="null" :tableData="tableData" :total="total"
+      @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange">
       <template #search>
         <el-form :model="form" label-width="auto" inline>
           <el-form-item label="鉴别菌株编号:">
@@ -28,11 +28,12 @@
             <div class="title" :class="{ active: currentType === 'list' }" @click="handleTypeChange('list')">
               原始细胞库验证资料
             </div>
-            <div class="drafts" v-if="roleType==4" :class="{ active: currentType === 'draft' }" @click="handleTypeChange('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">
+          <div class="flex a-center" v-if="roleType == 4 || roleType == 3">
             <el-button @click="handleNewStrain" class="el-icon-plus" type="primary"
               style="margin-right: 12px">新增原始细胞库资料</el-button>
           </div>
@@ -42,7 +43,13 @@
       <template #table>
         <el-table-column prop="strainSource" label="菌种来源" />
         <el-table-column prop="identifyingStrainCode" label="鉴别菌株编号" />
-        <el-table-column prop="identifyingStrainName" label="鉴别菌株名称" />
+        <el-table-column prop="identifyingStrainName" label="鉴别菌株名称" >
+          <template #default="{ row }">
+            <el-tooltip :content="row.identifyingStrainName" placement="top" effect="dark">
+              <div class="ellipsis-text">{{ row.identifyingStrainName }}</div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
         <el-table-column prop="validationExperimentCode" label="验证实验编号" />
         <el-table-column prop="createBy" label="创建人" />
         <el-table-column prop="createTime" label="创建时间" />
@@ -58,8 +65,10 @@
               @click="$router.push('/strain/validation/confirm-detail?id=' + row.id)">确认</el-button>
             <el-button type="text" v-if="roleType == 4" @click="handleDetail(row)">详情</el-button>
             <el-button type="text" v-if="roleType != 4" @click="handleDetail2(row)">详情</el-button>
-            <el-button type="text" v-if="(roleType == 1)||(roleType == 4 && currentType == 'draft')" @click="handleEdit(row)">编辑</el-button>
-            <el-button type="text" v-if="(roleType == 1)||(roleType == 4 && currentType == 'draft')" @click="handleDelete(row)">删除</el-button>
+            <el-button type="text" v-if="(roleType == 1) || (roleType == 4 && currentType == 'draft')"
+              @click="handleEdit(row)">编辑</el-button>
+            <el-button type="text" v-if="(roleType == 1) || (roleType == 4 && currentType == 'draft')"
+              @click="handleDelete(row)">删除</el-button>
           </template>
         </el-table-column>
       </template>
@@ -95,7 +104,7 @@
       showDelConfirm: false,
       editDialogValue: {},
       currentDetail: {},
-      roleType:Number(JSON.parse(sessionStorage.getItem("userInfo")).roleType),
+      roleType: Number(JSON.parse(sessionStorage.getItem("userInfo")).roleType),
       form: {
         identifyingStrainCode: "",
         identifyingStrainName: "",
@@ -388,4 +397,12 @@
     }
   }
 }
+.ellipsis-text {
+  display: -webkit-box;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  word-break: break-all;
+}
 </style>
diff --git a/culture/src/views/strainOperationAssessment/components/evaluate/index.vue b/culture/src/views/strainOperationAssessment/components/evaluate/index.vue
index 203566c..b602235 100644
--- a/culture/src/views/strainOperationAssessment/components/evaluate/index.vue
+++ b/culture/src/views/strainOperationAssessment/components/evaluate/index.vue
@@ -6,7 +6,7 @@
             <div class="approval-content">
                 <template>
                     <el-form ref="form" :model="form" :rules="rules" inline label-position="top">
-                        <div style="display: flex;">
+                        <div style="display: flex;" v-if="type=='approve'">
                             <div>
                                 <div class="header-title" style="width: 100%;">
                                     <div class="header-title-left">
@@ -180,7 +180,7 @@
     },
     computed: {
         dialogTitle() {
-            return this.type === "approve" ? "菌种工程师操作评定" : "菌种工程师操作评定详情";
+            return this.type === "approve" ? "菌种实验员操作评定" : "菌种实验员操作评定详情";
         },
         totalScore() {
             return this.assessmentTable.reduce((sum, item) => sum + (item.selectedScore || 0), 0);
diff --git a/culture/src/views/strainOperationAssessment/index.vue b/culture/src/views/strainOperationAssessment/index.vue
index 4ff1e8d..9214b47 100644
--- a/culture/src/views/strainOperationAssessment/index.vue
+++ b/culture/src/views/strainOperationAssessment/index.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="list">
-        <el-card class="header-box">
+        <!-- <el-card class="header-box">
             <div class="box-title">
                 <img src="@/assets/public/notice.png" class="header-icon"> <span>设立课题规则</span>
             </div>
@@ -9,16 +9,16 @@
                 </p>
                 <p>2、在可行研究阶段,工艺开发升级,重新规划工艺研究路线,则以新规划的工艺路线方案来设定课题。</p>
             </div>
-        </el-card>
+        </el-card> -->
         <TableCustom :tableData="tableData" :queryForm="queryForm" :height="null" :total="total"
-            @currentChange="handleCurrentChange" @sizeChange="handleSizeChange">
+            @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange">
             <template #search>
                 <el-form :model="form" label-width="auto" inline>
                     <el-form-item label="所属项目组:">
                         <el-input v-model="form.teamName" placeholder="请输入"></el-input>
                     </el-form-item>
-                    <el-form-item label="报告名称:">
-                        <el-input v-model="form.reportName" placeholder="请输入"></el-input>
+                    <el-form-item label="评定人:">
+                        <el-input v-model="form.evaluateName" placeholder="请输入"></el-input>
                     </el-form-item>
                     <el-form-item label="评定时间">
                         <el-date-picker v-model="form.time" type="daterange" range-separator="至"
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOne/add.vue b/culture/src/views/strainReportLibrary/reportLibraryOne/add.vue
index 66c83ae..bafad93 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOne/add.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOne/add.vue
@@ -28,7 +28,7 @@
                     </div>
                 </div>
                 <el-form-item prop="reportCode" style="margin-top: 38px">
-                    <el-input v-model="form.reportCode" style="width: 100%;" placeholder="请输入报告编号" />
+                    <el-input :disabled="true" v-model="form.reportCode" style="width: 100%;" placeholder="报告编号自动生成" />
                 </el-form-item>
 
                 <div class="header-title" style="width: 100%;">
@@ -54,7 +54,7 @@
                 <div class="header-title" style="width: 100%;">
                     <div class="header-title-left">
                         <img src="@/assets/public/headercard.png" />
-                        <div>附件</div>
+                        <span>附件</span>
                     </div>
                 </div>
                 <el-form-item prop="name" style="margin-top: 38px">
@@ -149,7 +149,8 @@
             </el-form>
         </Card>
         <chooseProject @submit="getProjectData" :show="showChoose" @close="showChoose = false"></chooseProject>
-        <SelectMember ref="selectMember" @submit="selectUser" :singleSelect="true" />
+        <SelectMember title="选择菌种实验员" ref="selectMember" @submit="selectUser" :singleSelect="true" />
+
 
     </div>
 
@@ -159,7 +160,7 @@
 import AiEditor from '@/components/AiEditor'
 import ChooseProject from '@/components/chooseProject/index.vue'
 import SelectMember from '@/components/SelectMember'
-import { add,getDetail } from './service'
+import { add,getDetail,update } from './service'
 
 export default {
     components: { AiEditor, ChooseProject, SelectMember },
@@ -181,9 +182,7 @@
             showChoose: false,
             radio1: 1,
             rules: {
-                reportCode: [
-                    { required: true, message: '请输入报告编号', trigger: 'blur' }
-                ],
+               
                 reportName: [
                     { required: true, message: '请输入报告名称', trigger: 'blur' }
                 ]
@@ -239,6 +238,11 @@
         }
     },
     mounted() {
+        // 滚动到页面顶部
+        this.$nextTick(() => {
+            window.scrollTo(0, 0);
+        });
+        
         if (this.$route.query.id) {
             getDetail(this.$route.query.id).then(res => {
                 const data = res.data || res;
@@ -292,7 +296,7 @@
                     isDraft: 0,
                     projectId: this.projectData[0].id,
                     experimentId: this.selectedMember[0].userId,
-                    reportCode: this.form.reportCode,
+                    // reportCode: this.form.reportCode,
                     reportContent: this.$refs.materialEditor.getContent(),
                     reportName: this.form.reportName,
                     evaluateTotal: this.totalScore,
@@ -300,6 +304,17 @@
                     reportType: 1
                 };
                 console.log('params', params);
+
+                if (this.$route.query.id) {
+                    params.id = this.$route.query.id
+                    update(params).then(res => {
+                        if (res.code == 200) {
+                            this.$message.success('编辑成功');
+                            this.$router.back()
+                        }
+                    })
+                    return
+                }
 
                 add(params).then(res => {
                     if (res.code == 200) {
@@ -322,7 +337,7 @@
                         isDraft: 1,
                         projectId: this.projectData[0].id,
                         experimentId: this.selectedMember[0].userId,
-                        reportCode: this.form.reportCode,
+                        // reportCode: this.form.reportCode,
                         reportContent: this.$refs.materialEditor.getContent(),
                         reportName: this.form.reportName,
                         evaluateTotal: this.totalScore,
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOne/components/approval/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOne/components/approval/index.vue
index fff5e1b..ce561c7 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOne/components/approval/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOne/components/approval/index.vue
@@ -194,7 +194,7 @@
                 {
                     category: '1.该分题的菌种专业知识',
                     selectedScore: 0,
-                    criteria: '1.1 能讲生物学基础,掌握各类微生物形态特性、生化特性及鉴定方法。1.2 菌种选育技术,了解掌握自然选育、诱变选育、基因工程育种。',
+                    criteria: '1.1 微生物基础,掌握各类微生物形态特性、生化特性及鉴定方法。1.2 菌种选育技术,了解掌握自然选育、诱变选育、基因工程育种。',
                     desc: '',
                     rule: ''
                 },
@@ -273,7 +273,7 @@
                     type: "primary",
                     mode: "list",
                     fields: [
-                        { label: "提交人:", value: data.updateBy || "" },
+                        { label: "提交人:", value: data.createBy || "" },
                         { label: "提交时间:", value: data.createTime || "" },
                     ]
                 });
@@ -313,7 +313,7 @@
                         type: "primary",
                         mode: "list",
                         fields: [
-                            { label: "已评定" },
+                            { label: "评定状态:已评定" },
                             { label: "评定人:", value: data.evaluateName || "" },
                             { label: "评定时间:", value: data.evaluateTime || "" },
                             { label: '查看评定详情', type: 'view' }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOne/components/evaluate/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOne/components/evaluate/index.vue
index 203566c..79f924f 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOne/components/evaluate/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOne/components/evaluate/index.vue
@@ -139,7 +139,7 @@
                 {
                     category: '1.该分题的菌种专业知识',
                     selectedScore: 0,
-                    criteria: '1.1 能讲生物学基础,掌握各类微生物形态特性、生化特性及鉴定方法。1.2 菌种选育技术,了解掌握自然选育、诱变选育、基因工程育种。',
+                    criteria: '1.1 微生物基础,掌握各类微生物形态特性、生化特性及鉴定方法。1.2 菌种选育技术,了解掌握自然选育、诱变选育、基因工程育种。',
                     desc: '',
                     rule: ''
                 },
@@ -180,7 +180,7 @@
     },
     computed: {
         dialogTitle() {
-            return this.type === "approve" ? "菌种工程师操作评定" : "菌种工程师操作评定详情";
+            return this.type === "approve" ? "菌种实验员操作评定" : "菌种实验员操作评定详情";
         },
         totalScore() {
             return this.assessmentTable.reduce((sum, item) => sum + (item.selectedScore || 0), 0);
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOne/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOne/index.vue
index 5d34f3e..04e81e2 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOne/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOne/index.vue
@@ -80,7 +80,7 @@
                         <el-button type="text" v-if="roleType == 3 && (row.status == 4 || isDraft)"
                             @click="handleDetail(row)">编辑</el-button>
                         <el-button type="text" v-if="roleType == 3 && isDraft" @click="handleDelete(row)">删除</el-button>
-                        <el-button type="text" v-if="row.status == 1 && roleType == 3"
+                        <el-button type="text" v-if="row.status == 1 && roleType == 3&&!isDraft"
                             @click="handleRevoke(row)">撤销审批</el-button>
                     </template>
                 </el-table-column>
@@ -244,7 +244,9 @@
                     this.$message.success('审核成功')
                     this.showApproval = false
                     this.getLists()
-                    this.showEvaluate = true
+                    if(params.statuss=='2'){
+                        this.showEvaluate = true
+                    }
                 }
             })
         },
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOne/service.js b/culture/src/views/strainReportLibrary/reportLibraryOne/service.js
index a812317..c0143ae 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOne/service.js
+++ b/culture/src/views/strainReportLibrary/reportLibraryOne/service.js
@@ -10,6 +10,10 @@
   return axios.post('/api/t-strain-report/add', { ...data })
 }
 
+export const update = (data) => {
+  return axios.post('/api/t-strain-report/update', { ...data })
+}
+
 export const getDetail = (data) => {
   return axios.get('/open/t-strain-report/detail', {params: {id: data}})
 }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneFour/add.vue b/culture/src/views/strainReportLibrary/reportLibraryOneFour/add.vue
index 22ee4df..a303f45 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneFour/add.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneFour/add.vue
@@ -28,7 +28,7 @@
                     </div>
                 </div>
                 <el-form-item prop="reportCode" style="margin-top: 38px">
-                    <el-input v-model="form.reportCode" style="width: 100%;" placeholder="请输入报告编号" />
+                    <el-input :disabled="true" v-model="form.reportCode" style="width: 100%;" placeholder="报告编号自动生成" />
                 </el-form-item>
 
                 <div class="header-title" style="width: 100%;">
@@ -54,7 +54,7 @@
                 <div class="header-title" style="width: 100%;">
                     <div class="header-title-left">
                         <img src="@/assets/public/headercard.png" />
-                        <div>附件</div>
+                        <span>附件</span>
                     </div>
                 </div>
                 <el-form-item prop="name" style="margin-top: 38px">
@@ -149,7 +149,7 @@
             </el-form>
         </Card>
         <chooseProject @submit="getProjectData" :show="showChoose" @close="showChoose = false"></chooseProject>
-        <SelectMember ref="selectMember" @submit="selectUser" :singleSelect="true" />
+        <SelectMember title="选择菌种实验员" ref="selectMember" @submit="selectUser" :singleSelect="true" />
 
     </div>
 
@@ -159,7 +159,7 @@
 import AiEditor from '@/components/AiEditor'
 import ChooseProject from '@/components/chooseProject/index.vue'
 import SelectMember from '@/components/SelectMember'
-import { add,getDetail } from './service'
+import { add,getDetail,update } from './service'
 
 export default {
     components: { AiEditor, ChooseProject, SelectMember },
@@ -181,9 +181,9 @@
             showChoose: false,
             radio1: 1,
             rules: {
-                reportCode: [
-                    { required: true, message: '请输入报告编号', trigger: 'blur' }
-                ],
+                // reportCode: [
+                //     { required: true, message: '请输入报告编号', trigger: 'blur' }
+                // ],
                 reportName: [
                     { required: true, message: '请输入报告名称', trigger: 'blur' }
                 ]
@@ -239,6 +239,10 @@
         }
     },
     mounted() {
+          // 滚动到页面顶部
+          this.$nextTick(() => {
+            window.scrollTo(0, 0);
+        });
         if (this.$route.query.id) {
             getDetail(this.$route.query.id).then(res => {
                 const data = res.data || res;
@@ -292,14 +296,26 @@
                     isDraft: 0,
                     projectId: this.projectData[0].id,
                     experimentId: this.selectedMember[0].userId,
-                    reportCode: this.form.reportCode,
+                    // reportCode: this.form.reportCode,
                     reportContent: this.$refs.materialEditor.getContent(),
                     reportName: this.form.reportName,
                     evaluateTotal: this.totalScore,
-                    evaluate: str.join(','),
+                    evaluate: str.join(','),    
                     reportType: 4
                 };
                 console.log('params', params);
+
+                if (this.$route.query.id) {
+
+                    params.id = this.$route.query.id
+                    update(params).then(res => {
+                        if (res.code == 200) {
+                            this.$message.success('编辑成功');
+                            this.$router.back()
+                        }
+                    })
+                    return
+                }
 
                 add(params).then(res => {
                     if (res.code == 200) {
@@ -322,7 +338,7 @@
                         isDraft: 1,
                         projectId: this.projectData[0].id,
                         experimentId: this.selectedMember[0].userId,
-                        reportCode: this.form.reportCode,
+                        // reportCode: this.form.reportCode,
                         reportContent: this.$refs.materialEditor.getContent(),
                         reportName: this.form.reportName,
                         evaluateTotal: this.totalScore,
@@ -332,7 +348,7 @@
                     add(params).then(res => {
                         if (res.code == 200) {
                             this.$message.success('保存成功');
-                            this.$router.push('/strainReportLibrary/reportLibraryOne');
+                            this.$router.push('/strainReportLibrary/reportLibraryOneFour');
                         }
                     })
                 } catch (e) {
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/approval/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/approval/index.vue
index fff5e1b..b1fdcd4 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/approval/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/approval/index.vue
@@ -313,7 +313,7 @@
                         type: "primary",
                         mode: "list",
                         fields: [
-                            { label: "已评定" },
+                            { label: "评定状态:已评定" },
                             { label: "评定人:", value: data.evaluateName || "" },
                             { label: "评定时间:", value: data.evaluateTime || "" },
                             { label: '查看评定详情', type: 'view' }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/evaluate/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/evaluate/index.vue
index 6a4163d..a914b6b 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/evaluate/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneFour/components/evaluate/index.vue
@@ -3,7 +3,7 @@
         @close="handleClose">
         <div class="evaluate-dialog-layout">
             <!-- 左侧评分规则说明 -->
-            <div class="evaluate-rule-panel">
+            <!-- <div class="evaluate-rule-panel">
                 <div class="rule-title">设立课题规则</div>
                 <div class="rule-content">
                     <ol>
@@ -12,7 +12,7 @@
                         <li>在可行研究阶段,工艺开发升级,重新规划工艺研究路线,则以新规划的工艺路线方案来设定课题。</li>
                     </ol>
                 </div>
-            </div>
+            </div> -->
             <!-- 右侧评定表及表单 -->
             <div class="evaluate-main-panel">
                 <el-form ref="form" :model="form" :rules="rules" label-position="top" class="evaluate-form">
@@ -195,7 +195,7 @@
     },
     computed: {
         currentAssessmentTable() {
-            return this.type == 1 || this.type == '1' ? this.assessmentTable1 : this.assessmentTable2;
+            return this.type == 1 || this.type == '1' ? this.assessmentTable2 : this.assessmentTable1;
         },
         fullScore() {
             return this.type == 1 || this.type == '1'
@@ -206,7 +206,7 @@
             return this.currentAssessmentTable.reduce((sum, item) => sum + (item.selectedScore || 0), 0);
         },
         dialogTitle() {
-            return this.type === "approve" ? "检测项评定" : "检测项评定详情";
+            return this.type === "1" ? "创新型课题评定" : "规程型课题评定标准";
         }
     },
     methods: {
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneFour/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneFour/index.vue
index ff03e04..d170a47 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneFour/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneFour/index.vue
@@ -79,7 +79,7 @@
                         <el-button type="text" v-if="roleType == 3 && row.status == 4 || isDraft"
                             @click="handleDetail(row)">编辑</el-button>
                         <el-button type="text" v-if="roleType == 3 && isDraft" @click="handleDelete(row)">删除</el-button>
-                        <el-button type="text" v-if="row.status == 1 && roleType == 3"
+                        <el-button type="text" v-if="row.status == 1 && roleType == 3&&!isDraft"
                             @click="handleRevoke(row)">撤销审批</el-button>
                     </template>
                 </el-table-column>
@@ -265,8 +265,9 @@
                     this.$message.success('审核成功')
                     this.showApproval = false
                     this.getLists()
-                    // this.showEvaluate = true
-                    this.showChoiceMethod = true
+                    if(params.statuss==2){
+                        this.showChoiceMethod = true
+                    }
                 }
             })
         },
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneFour/service.js b/culture/src/views/strainReportLibrary/reportLibraryOneFour/service.js
index 94071f6..2974c59 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneFour/service.js
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneFour/service.js
@@ -10,6 +10,10 @@
   return axios.post('/api/t-strain-report/add', { ...data })
 }
 
+export const update = (data) => {
+  return axios.post('/api/t-strain-report/update', { ...data })
+}
+
 export const getDetail = (data) => {
   return axios.get('/open/t-strain-report/detail', {params: {id: data}})
 }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/add.vue b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/add.vue
index afa6aff..387e131 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/add.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/add.vue
@@ -28,7 +28,7 @@
                     </div>
                 </div>
                 <el-form-item prop="reportCode" style="margin-top: 38px">
-                    <el-input v-model="form.reportCode" style="width: 100%;" placeholder="请输入报告编号" />
+                    <el-input :disabled="true" v-model="form.reportCode" style="width: 100%;" placeholder="报告编号自动生成" />
                 </el-form-item>
 
                 <div class="header-title" style="width: 100%;">
@@ -54,7 +54,7 @@
                 <div class="header-title" style="width: 100%;">
                     <div class="header-title-left">
                         <img src="@/assets/public/headercard.png" />
-                        <div>附件</div>
+                        <span>附件</span>
                     </div>
                 </div>
                 <el-form-item prop="name" style="margin-top: 38px">
@@ -149,7 +149,7 @@
             </el-form>
         </Card>
         <chooseProject @submit="getProjectData" :show="showChoose" @close="showChoose = false"></chooseProject>
-        <SelectMember ref="selectMember" @submit="selectUser" :singleSelect="true" />
+        <SelectMember title="选择菌种实验员" ref="selectMember" @submit="selectUser" :singleSelect="true" />
 
     </div>
 
@@ -159,7 +159,7 @@
 import AiEditor from '@/components/AiEditor'
 import ChooseProject from '@/components/chooseProject/index.vue'
 import SelectMember from '@/components/SelectMember'
-import { add, getDetail } from './service'
+import { add, getDetail,update } from './service'
 
 export default {
     components: { AiEditor, ChooseProject, SelectMember },
@@ -181,9 +181,9 @@
             showChoose: false,
             radio1: 1,
             rules: {
-                reportCode: [
-                    { required: true, message: '请输入报告编号', trigger: 'blur' }
-                ],
+                // reportCode: [
+                //     { required: true, message: '请输入报告编号', trigger: 'blur' }
+                // ],
                 reportName: [
                     { required: true, message: '请输入报告名称', trigger: 'blur' }
                 ]
@@ -239,6 +239,10 @@
         }
     },
     mounted() {
+          // 滚动到页面顶部
+          this.$nextTick(() => {
+            window.scrollTo(0, 0);
+        });
         if (this.$route.query.id) {
             getDetail(this.$route.query.id).then(res => {
                 const data = res.data || res;
@@ -292,13 +296,24 @@
                     isDraft: 0,
                     projectId: this.projectData[0].id,
                     experimentId: this.selectedMember[0].userId,
-                    reportCode: this.form.reportCode,
+                    // reportCode: this.form.reportCode,
                     reportContent: this.$refs.materialEditor.getContent(),
                     reportName: this.form.reportName,
                     evaluateTotal: this.totalScore,
                     evaluate: str.join(','),
                     reportType: 2
                 };
+
+                if (this.$route.query.id) {
+                    params.id = this.$route.query.id
+                    update(params).then(res => {
+                        if (res.code == 200) {
+                            this.$message.success('编辑成功');
+                            this.$router.back()
+                        }
+                    })
+                    return
+                }
 
                 add(params).then(res => {
                     if (res.code == 200) {
@@ -321,7 +336,7 @@
                         isDraft: 1,
                         projectId: this.projectData[0].id,
                         experimentId: this.selectedMember[0].userId,
-                        reportCode: this.form.reportCode,
+                        // reportCode: this.form.reportCode,
                         reportContent: this.$refs.materialEditor.getContent(),
                         reportName: this.form.reportName,
                         evaluateTotal: this.totalScore,
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/approval/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/approval/index.vue
index fff5e1b..b1fdcd4 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/approval/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/approval/index.vue
@@ -313,7 +313,7 @@
                         type: "primary",
                         mode: "list",
                         fields: [
-                            { label: "已评定" },
+                            { label: "评定状态:已评定" },
                             { label: "评定人:", value: data.evaluateName || "" },
                             { label: "评定时间:", value: data.evaluateTime || "" },
                             { label: '查看评定详情', type: 'view' }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/evaluate/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/evaluate/index.vue
index 6a4163d..a914b6b 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/evaluate/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/evaluate/index.vue
@@ -3,7 +3,7 @@
         @close="handleClose">
         <div class="evaluate-dialog-layout">
             <!-- 左侧评分规则说明 -->
-            <div class="evaluate-rule-panel">
+            <!-- <div class="evaluate-rule-panel">
                 <div class="rule-title">设立课题规则</div>
                 <div class="rule-content">
                     <ol>
@@ -12,7 +12,7 @@
                         <li>在可行研究阶段,工艺开发升级,重新规划工艺研究路线,则以新规划的工艺路线方案来设定课题。</li>
                     </ol>
                 </div>
-            </div>
+            </div> -->
             <!-- 右侧评定表及表单 -->
             <div class="evaluate-main-panel">
                 <el-form ref="form" :model="form" :rules="rules" label-position="top" class="evaluate-form">
@@ -195,7 +195,7 @@
     },
     computed: {
         currentAssessmentTable() {
-            return this.type == 1 || this.type == '1' ? this.assessmentTable1 : this.assessmentTable2;
+            return this.type == 1 || this.type == '1' ? this.assessmentTable2 : this.assessmentTable1;
         },
         fullScore() {
             return this.type == 1 || this.type == '1'
@@ -206,7 +206,7 @@
             return this.currentAssessmentTable.reduce((sum, item) => sum + (item.selectedScore || 0), 0);
         },
         dialogTitle() {
-            return this.type === "approve" ? "检测项评定" : "检测项评定详情";
+            return this.type === "1" ? "创新型课题评定" : "规程型课题评定标准";
         }
     },
     methods: {
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/index.vue
index aeb711c..062a9c0 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/index.vue
@@ -79,7 +79,7 @@
                         <el-button type="text" v-if="roleType == 3 && row.status == 4  || isDraft"
                             @click="handleDetail(row)">编辑</el-button>
                         <el-button type="text" v-if="roleType == 3 && isDraft" @click="handleDelete(row)">删除</el-button>
-                        <el-button type="text" v-if="row.status == 1 && roleType == 3"
+                        <el-button type="text" v-if="row.status == 1 && roleType == 3&&!isDraft"
                             @click="handleRevoke(row)">撤销审批</el-button>
                     </template>
                 </el-table-column>
@@ -264,8 +264,10 @@
                     this.$message.success('审核成功')
                     this.showApproval = false
                     this.getLists()
-                    // this.showEvaluate = true
-                    this.showChoiceMethod = true
+                    if(params.statuss=='2'){
+                        this.showChoiceMethod = true
+                    }
+                  
                 }
             })
         },
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/service.js b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/service.js
index 94071f6..f3b1e58 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneTWO/service.js
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneTWO/service.js
@@ -10,6 +10,11 @@
   return axios.post('/api/t-strain-report/add', { ...data })
 }
 
+export const update = (data) => {
+  console.log('qweqwe',data);
+  return axios.post('/api/t-strain-report/update', { ...data })
+}
+
 export const getDetail = (data) => {
   return axios.get('/open/t-strain-report/detail', {params: {id: data}})
 }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue b/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue
index 5275fc8..28bb05a 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue
@@ -28,7 +28,7 @@
                     </div>
                 </div>
                 <el-form-item prop="reportCode" style="margin-top: 38px">
-                    <el-input v-model="form.reportCode" style="width: 100%;" placeholder="请输入报告编号" />
+                    <el-input :disabled="true" v-model="form.reportCode" style="width: 100%;" placeholder="报告编号自动生成" />
                 </el-form-item>
 
                 <div class="header-title" style="width: 100%;">
@@ -54,7 +54,7 @@
                 <div class="header-title" style="width: 100%;">
                     <div class="header-title-left">
                         <img src="@/assets/public/headercard.png" />
-                        <div>附件</div>
+                        <span>附件</span>
                     </div>
                 </div>
                 <el-form-item prop="name" style="margin-top: 38px">
@@ -149,7 +149,7 @@
             </el-form>
         </Card>
         <chooseProject @submit="getProjectData" :show="showChoose" @close="showChoose = false"></chooseProject>
-        <SelectMember ref="selectMember" @submit="selectUser" :singleSelect="true" />
+        <SelectMember title="选择菌种实验员" ref="selectMember" @submit="selectUser" :singleSelect="true" />
 
     </div>
 
@@ -159,7 +159,7 @@
 import AiEditor from '@/components/AiEditor'
 import ChooseProject from '@/components/chooseProject/index.vue'
 import SelectMember from '@/components/SelectMember'
-import { add,getDetail } from './service'
+import { add,getDetail,update } from './service'
 
 export default {
     components: { AiEditor, ChooseProject, SelectMember },
@@ -181,9 +181,9 @@
             showChoose: false,
             radio1: 1,
             rules: {
-                reportCode: [
-                    { required: true, message: '请输入报告编号', trigger: 'blur' }
-                ],
+                // reportCode: [
+                //     { required: true, message: '请输入报告编号', trigger: 'blur' }
+                // ],
                 reportName: [
                     { required: true, message: '请输入报告名称', trigger: 'blur' }
                 ]
@@ -239,6 +239,10 @@
         }
     },
     mounted() {
+          // 滚动到页面顶部
+          this.$nextTick(() => {
+            window.scrollTo(0, 0);
+        });
         if (this.$route.query.id) {
             getDetail(this.$route.query.id).then(res => {
                 const data = res.data || res;
@@ -292,7 +296,7 @@
                     isDraft: 0,
                     projectId: this.projectData[0].id,
                     experimentId: this.selectedMember[0].userId,
-                    reportCode: this.form.reportCode,
+                    // reportCode: this.form.reportCode,
                     reportContent: this.$refs.materialEditor.getContent(),
                     reportName: this.form.reportName,
                     evaluateTotal: this.totalScore,
@@ -301,10 +305,22 @@
                 };
                 console.log('params', params);
 
+                if (this.$route.query.id) {
+
+                    params.id = this.$route.query.id
+                    update(params).then(res => {
+                        if (res.code == 200) {
+                            this.$message.success('编辑成功');
+                            this.$router.back()
+                        }
+                    })
+                    return
+                }
+
                 add(params).then(res => {
                     if (res.code == 200) {
                         this.$message.success('发送成功');
-                        this.$router.push('/strainReportLibrary/reportLibraryOne');
+                        this.$router.push('/strainReportLibrary/reportLibraryOneThree');
                     }
                 })
             });
@@ -322,7 +338,7 @@
                         isDraft: 1,
                         projectId: this.projectData[0].id,
                         experimentId: this.selectedMember[0].userId,
-                        reportCode: this.form.reportCode,
+                        // reportCode: this.form.reportCode,
                         reportContent: this.$refs.materialEditor.getContent(),
                         reportName: this.form.reportName,
                         evaluateTotal: this.totalScore,
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/approval/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/approval/index.vue
index fff5e1b..b1fdcd4 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/approval/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/approval/index.vue
@@ -313,7 +313,7 @@
                         type: "primary",
                         mode: "list",
                         fields: [
-                            { label: "已评定" },
+                            { label: "评定状态:已评定" },
                             { label: "评定人:", value: data.evaluateName || "" },
                             { label: "评定时间:", value: data.evaluateTime || "" },
                             { label: '查看评定详情', type: 'view' }
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/evaluate/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/evaluate/index.vue
index 6a4163d..a914b6b 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/evaluate/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneThree/components/evaluate/index.vue
@@ -3,7 +3,7 @@
         @close="handleClose">
         <div class="evaluate-dialog-layout">
             <!-- 左侧评分规则说明 -->
-            <div class="evaluate-rule-panel">
+            <!-- <div class="evaluate-rule-panel">
                 <div class="rule-title">设立课题规则</div>
                 <div class="rule-content">
                     <ol>
@@ -12,7 +12,7 @@
                         <li>在可行研究阶段,工艺开发升级,重新规划工艺研究路线,则以新规划的工艺路线方案来设定课题。</li>
                     </ol>
                 </div>
-            </div>
+            </div> -->
             <!-- 右侧评定表及表单 -->
             <div class="evaluate-main-panel">
                 <el-form ref="form" :model="form" :rules="rules" label-position="top" class="evaluate-form">
@@ -195,7 +195,7 @@
     },
     computed: {
         currentAssessmentTable() {
-            return this.type == 1 || this.type == '1' ? this.assessmentTable1 : this.assessmentTable2;
+            return this.type == 1 || this.type == '1' ? this.assessmentTable2 : this.assessmentTable1;
         },
         fullScore() {
             return this.type == 1 || this.type == '1'
@@ -206,7 +206,7 @@
             return this.currentAssessmentTable.reduce((sum, item) => sum + (item.selectedScore || 0), 0);
         },
         dialogTitle() {
-            return this.type === "approve" ? "检测项评定" : "检测项评定详情";
+            return this.type === "1" ? "创新型课题评定" : "规程型课题评定标准";
         }
     },
     methods: {
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneThree/index.vue b/culture/src/views/strainReportLibrary/reportLibraryOneThree/index.vue
index 322c012..bba4f13 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneThree/index.vue
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneThree/index.vue
@@ -79,7 +79,7 @@
                         <el-button type="text" v-if="roleType == 3 && row.status == 4  || isDraft"
                             @click="handleDetail(row)">编辑</el-button>
                         <el-button type="text" v-if="roleType == 3 && isDraft" @click="handleDelete(row)">删除</el-button>
-                        <el-button type="text" v-if="row.status == 1 && roleType == 3"
+                        <el-button type="text" v-if="row.status == 1 && roleType == 3&&!isDraft"
                             @click="handleRevoke(row)">撤销审批</el-button>
                     </template>
                 </el-table-column>
@@ -266,7 +266,9 @@
                     this.showApproval = false
                     this.getLists()
                     // this.showEvaluate = true
-                    this.showChoiceMethod = true
+                    if(params.statuss==2){
+                        this.showChoiceMethod = true
+                    }
                 }
             })
         },
diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneThree/service.js b/culture/src/views/strainReportLibrary/reportLibraryOneThree/service.js
index 94071f6..2974c59 100644
--- a/culture/src/views/strainReportLibrary/reportLibraryOneThree/service.js
+++ b/culture/src/views/strainReportLibrary/reportLibraryOneThree/service.js
@@ -10,6 +10,10 @@
   return axios.post('/api/t-strain-report/add', { ...data })
 }
 
+export const update = (data) => {
+  return axios.post('/api/t-strain-report/update', { ...data })
+}
+
 export const getDetail = (data) => {
   return axios.get('/open/t-strain-report/detail', {params: {id: data}})
 }

--
Gitblit v1.7.1