董国庆
2025-06-24 0e4f2f1e441e3423bd77a9357e2f3cae9893b5f9
Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory
42个文件已修改
784 ■■■■■ 已修改文件
culture/src/components/SelectMember/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/components/chooseProject/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/utils/request.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/pedigree-chart/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/projectList/addProject.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/breeding-record/SlantRecordDialog.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/breeding-record/add.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/breeding-record/inoculation-slope-record-dialog.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/main-cell-library/index.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/production-cell-library/index.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/strain-library-manage/components/StrainDetail.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/strain-library-manage/index.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/strain-library-manage/record.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/chief-cell/DetailConditionDialog.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/chief-cell/add.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/chief-cell/confirm-detail.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/chief-cell/index.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/primitive-cell/DetailConditionDialog.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/primitive-cell/confirm-detail.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strain-library/validation/primitive-cell/index.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainOperationAssessment/components/evaluate/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainOperationAssessment/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOne/add.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOne/components/approval/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOne/components/evaluate/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOne/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOne/service.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneFour/add.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneFour/components/approval/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneFour/components/evaluate/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneFour/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneFour/service.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneTWO/add.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/approval/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneTWO/components/evaluate/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneTWO/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneTWO/service.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneThree/components/approval/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneThree/components/evaluate/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneThree/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
culture/src/views/strainReportLibrary/reportLibraryOneThree/service.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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(); // 获取后先进行一次过滤
            });
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()
        },
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',
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>
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() {
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;
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) {
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 || '',
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>
@@ -225,7 +181,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=2`,
      });
    },
    handleNewStrain() {
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() {
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;
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() {
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;
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">
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>
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
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>
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 {
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)
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>
@@ -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>
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);
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="至"
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,
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' }
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);
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,8 +244,10 @@
                    this.$message.success('审核成功')
                    this.showApproval = false
                    this.getLists()
                    if(params.statuss=='2'){
                    this.showEvaluate = true
                }
                }
            })
        },
        handleEvaluateRow(params) {
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}})
}
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,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,18 @@
                    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) {
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' }
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: {
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,9 +265,10 @@
                    this.$message.success('审核成功')
                    this.showApproval = false
                    this.getLists()
                    // this.showEvaluate = true
                    if(params.statuss==2){
                    this.showChoiceMethod = true
                }
                }
            })
        },
        handleEvaluateRow(params) {
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}})
}
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,
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' }
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: {
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,9 +264,11 @@
                    this.$message.success('审核成功')
                    this.showApproval = false
                    this.getLists()
                    // this.showEvaluate = true
                    if(params.statuss=='2'){
                    this.showChoiceMethod = true
                }
                }
            })
        },
        handleEvaluateRow(params) {
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}})
}
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,
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' }
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: {
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,8 +266,10 @@
                    this.showApproval = false
                    this.getLists()
                    // this.showEvaluate = true
                    if(params.statuss==2){
                    this.showChoiceMethod = true
                }
                }
            })
        },
        handleEvaluateRow(params) {
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}})
}