| | |
| | | <template> |
| | | <div class="list"> |
| | | <TableCustom :queryForm="form" :tableData="tableData" :height="null" :total="total"> |
| | | <TableCustom :queryForm="form" :tableData="tableData" :height="null" :total="total" @handleCurrentChange="handleCurrentChange" |
| | | @handleSizeChange="handleSizeChange"> |
| | | <template #search> |
| | | <el-form ref="searchForm" :model="form" :rules="rules" labelWidth="auto" inline> |
| | | <el-form-item label="选择项目组:"> |
| | | <el-select |
| | | v-model="form.projectIds" |
| | | placeholder="请选择项目组" |
| | | filterable |
| | | clearable |
| | | :key="teamList.length" |
| | | :loading="teamLoading" |
| | | @focus="fetchTeamList" |
| | | multiple |
| | | > |
| | | <el-option |
| | | v-for="item in teamList" |
| | | :key="item.id" |
| | | :label="item.teamName" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="来源类型"> |
| | | <el-select v-model="form.preserveSource" placeholder="请选择"> |
| | | <el-option label="来源菌株" :value="1" /> |
| | |
| | | <div class="title" :class="{ active: currentType === 'list' }" @click="handleTypeChange('list')"> |
| | | 菌种选育保藏记录 |
| | | </div> |
| | | <div class="drafts" :class="{ active: currentType === 'draft' }" @click="handleTypeChange('draft')"> |
| | | <div class="drafts" v-if="roleType==4" :class="{ active: currentType === 'draft' }" @click="handleTypeChange('draft')"> |
| | | 草稿箱 |
| | | </div> |
| | | </div> |
| | | <div class="flex a-center"> |
| | | <div class="flex a-center" v-if="roleType==4"> |
| | | <el-button @click="handleNewStrain" class="el-icon-plus" type="primary" |
| | | style="margin-right: 12px">新增保藏记录</el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template #table> |
| | | <el-table-column prop="projectName" label="项目组名称"/> |
| | | <el-table-column prop="preserveSource" label="来源类型"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.preserveSource === 1 ? '来源菌株' : '来源物资'}}</span> |
| | | <span>{{ scope.row.preserveSource === 1 ? '来源菌株' : '来源物资' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="strainName" label="来源信息"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.preserveSource === 1 ? scope.row.strainName : scope.row.sourceMaterialTimeBatchNumber }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="sourceMaterialTimeBatchNumber" label="来源物资、时间及批号"> |
| | | </el-table-column> --> |
| | | <el-table-column prop="cultureMedium" label="培养基"></el-table-column> |
| | | <el-table-column prop="temperature" label="培养温度"></el-table-column> |
| | | <el-table-column prop="aerobicType" label="需氧类型"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.aerobicType == 1 ? '专性需氧' :scope.row.aerobicType == 2? '专性厌氧' :scope.row.aerobicType == 3? '兼性需氧' : '耐氧厌氧'}}</span> |
| | | <span>{{ scope.row.aerobicType == 1 ? '专性需氧' : scope.row.aerobicType == 2 ? '专性厌氧' : scope.row.aerobicType |
| | | == |
| | | 3 ? '兼性需氧' : '耐氧厌氧'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createBy" label="创建人"></el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间"></el-table-column> |
| | | <el-table-column prop="status" label="状态"> |
| | | <template slot-scope="scope"> |
| | | {{ scope.row.status === 1 ? '已提交' : scope.row.status === 2 ? '已同步/未提交' :'草稿' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="250"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="handleDetail(scope.row)">详情</el-button> |
| | | <el-button type="text" @click="handleEdit(scope.row)">编辑</el-button> |
| | | <el-button type="text" @click="handleDelete(scope.row)">删除</el-button> |
| | | <el-button style="margin-right: 10px" type="text" @click="handleDetail(scope.row)">详情</el-button> |
| | | <el-button style="margin-right: 10px" type="text" @click="handleEdit(scope.row)" |
| | | v-if="[1, 4].includes(roleType) && scope.row.status != 1">编辑</el-button> |
| | | <el-button type="text" @click="handleDelete(scope.row)" |
| | | v-if="[1].includes(roleType) || ([1, 4].includes(roleType) && currentType != 'list')">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getList,del } from './service' |
| | | import { getList, del } from './service' |
| | | import ShowDelConfirm from '@/components/showDelConfirm' |
| | | import {myTeamPageList} from "@/components/chooseProject/servce"; |
| | | |
| | | export default { |
| | | name: "BreedingRecord", |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | teamList: [], // 项目组列表 |
| | | teamLoading: false, // 加载状态 |
| | | currentType: "list", // 当前显示类型:list-列表,draft-草稿箱 |
| | | form: { |
| | | aerobicType: '', |
| | | cultureMedium: '', |
| | | preserveSource: '', |
| | | projectIds: [], |
| | | strainCode: '', |
| | | strainName: '', |
| | | pageNum: 1, |
| | |
| | | tableData: [], |
| | | delData: null, |
| | | total: 0, |
| | | roleType: Number(JSON.parse(sessionStorage.getItem('userInfo')).roleType), |
| | | }; |
| | | }, |
| | | created() { |
| | | activated() { |
| | | this.getTableData(); |
| | | this.fetchTeamList(); |
| | | }, |
| | | methods: { |
| | | // 获取项目组列表 |
| | | async fetchTeamList() { |
| | | if (this.teamList.length > 0) return // 已有数据不再重复请求 |
| | | this.teamLoading = true |
| | | try { |
| | | const res = await myTeamPageList() |
| | | console.log('res', res) |
| | | // 根据实际接口返回的数据结构调整 |
| | | this.teamList = res.data || res || [] |
| | | } catch (error) { |
| | | console.error('获取项目组列表失败:', error) |
| | | this.$message.error('获取项目组列表失败') |
| | | } finally { |
| | | this.teamLoading = false |
| | | } |
| | | }, |
| | | handleCurrentChange(page) { |
| | | this.form.pageNum = page; |
| | | this.getTableData(); |
| | | }, |
| | | handleSizeChange(size) { |
| | | this.form.pageSize = size; |
| | | this.getTableData(); |
| | | }, |
| | | resetForm() { |
| | | this.form = { |
| | | aerobicType: '', |
| | | cultureMedium: '', |
| | | preserveSource: '', |
| | | projectIds: '', |
| | | strainCode: '', |
| | | strainName: '', |
| | | pageNum: 1, |
| | |
| | | this.delData = row |
| | | }, |
| | | handleDelConfirm() { |
| | | del({id: this.delData.id}).then(res => { |
| | | this.$message.success('删除成功'); |
| | | this.showDelConfirm = false |
| | | this.getTableData(); |
| | | del({ id: this.delData.id }).then(res => { |
| | | this.$message.success('删除成功'); |
| | | this.showDelConfirm = false |
| | | this.getTableData(); |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | | this.$router.push({ |
| | | path: "/strain/add-breeding-record", |
| | | path: "/strain/detail-breeding-record", |
| | | query: { |
| | | id: row.id, |
| | | isDetail: true |
| | |
| | | }, |
| | | handleEdit(row) { |
| | | this.$router.push({ |
| | | path: "/strain/add-breeding-record", |
| | | path: "/strain/edit-breeding-record", |
| | | query: { |
| | | id: row.id, |
| | | isEdit: true |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | handleTypeChange(type) { |
| | | this.currentType = type; |
| | | this.form.isDraft = type === 'draft' ? 1 : 0; |