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