| | |
| | | <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> 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> 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="菌种编号:"> |
| | |
| | | <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> |
| | |
| | | <el-table-column prop="strainCode" label="菌种编号" /> |
| | | <el-table-column prop="strainName" label="菌种名称" /> |
| | | <el-table-column prop="strainSource" label="菌种来源" /> |
| | | <el-table-column prop="appraisalMethod" label="鉴定方法" /> |
| | | <el-table-column prop="features" label="特征描述" /> |
| | | <el-table-column prop="appraisalMethod" label="鉴定方法"> |
| | | <template #default="{ row }"> |
| | | <el-tooltip popper-class="custom-tooltip" :content="row.appraisalMethod" style="width: 200px;" placement="top" effect="dark"> |
| | | <div class="ellipsis-text">{{ row.appraisalMethod }}</div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="features" label="特征描述"> |
| | | <template #default="{ row }"> |
| | | <el-tooltip popper-class="custom-tooltip" :content="row.features" style="width: 200px;" placement="top" effect="dark"> |
| | | <div class="ellipsis-text">{{ row.features }}</div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="saveMethod" label="菌种保存方法" /> |
| | | <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 prop="remark" label="备注" > |
| | | <template #default="{ row }"> |
| | | <el-tooltip popper-class="custom-tooltip" :content="row.remark" style="width: 200px;" placement="top" effect="dark"> |
| | | <div class="ellipsis-text">{{ row.remark }}</div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="currentType === 'list'" prop="status" label="当前状态"> |
| | | <template #default="{ row }"> |
| | | <el-tag :type="getStatusType(row.status)">{{ |
| | | getStatusText(row.status) |
| | | }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="200"> |
| | | <el-table-column label="操作" width="250"> |
| | | <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 type="text" style="margin-right: 10px;" @click="handleDetail(row)">详情</el-button> |
| | | <el-button style="margin-right: 10px;" v-if="row.status == 2 || row.status == 4" type="text" |
| | | @click="handleEdit(row)">编辑</el-button> |
| | | <el-button v-if="currentType === 'list'" type="text" style="margin-right: 10px;" |
| | | @click="handleRecord(row)">出入库记录</el-button> |
| | | <el-button v-if="roleType == 1" type="text" @click="handleDelete(row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | roleType: "", |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.searchData(); |
| | | // 角色类型 1=超级管理员 2=审批人 3=工程师 4=实验员 |
| | | this.roleType = JSON.parse(sessionStorage.getItem("userInfo")).roleType; |
| | | }, |
| | | |
| | | activated() { |
| | | this.searchData(); |
| | | // 角色类型 1=超级管理员 2=审批人 3=工程师 4=实验员 |
| | |
| | | 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=1`, |
| | | }); |
| | | }, |
| | | handleNewStrain() { |
| | |
| | | }, |
| | | handleEdit(row) { |
| | | this.$router.push({ |
| | | path: `/strain-library/strain-library-manage/add?id=${row.id}`, |
| | | path: `/strain-library/strain-library-manage/detail?id=${row.id}`, |
| | | }); |
| | | }, |
| | | handleDetail(row) { |
| | |
| | | }, |
| | | getStatusType(status) { |
| | | const types = { |
| | | 1: "warning", |
| | | 2: "warning", |
| | | 3: "success", |
| | | 4: "success", |
| | | 1: "info", |
| | | 2: "success", |
| | | 3: "info", |
| | | 4: "warning", |
| | | }; |
| | | return types[status] || "info"; |
| | | }, |
| | |
| | | <style scoped lang="less"> |
| | | .list { |
| | | padding: 20px; |
| | | } |
| | | |
| | | .custom-tooltip{ |
| | | width: 200px; |
| | | } |
| | | |
| | | .header-box { |
| | |
| | | overflow: hidden; |
| | | |
| | | &.collapsed { |
| | | max-height: 48px; |
| | | max-height: 130px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | .ellipsis-text { |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 3; |
| | | -webkit-box-orient: vertical; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | word-break: break-all; |
| | | } |
| | | </style> |
| | | |
| | | <style lang="less"> |
| | | .custom-tooltip { |
| | | width: 200px !important; |
| | | max-width: 200px !important; |
| | | white-space: normal; |
| | | word-break: break-all; |
| | | } |
| | | </style> |