puzhibing
6 天以前 0db8c9b94a9ac655549d5eba5c2a6c92ac386c06
culture/src/views/strain-library/breeding-record/index.vue
@@ -4,6 +4,25 @@
    @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" />
@@ -44,11 +63,19 @@
        </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>
          </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="需氧类型">
@@ -60,11 +87,16 @@
        </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)"
              v-if="([1].includes(roleType) || ([1, 4].includes(roleType) && currentType != 'list'))">编辑</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>
@@ -78,6 +110,7 @@
<script>
import { getList, del } from './service'
import ShowDelConfirm from '@/components/showDelConfirm'
import {myTeamPageList} from "@/components/chooseProject/servce";
export default {
  name: "BreedingRecord",
@@ -86,11 +119,14 @@
  },
  data() {
    return {
      teamList: [], // 项目组列表
      teamLoading: false, // 加载状态
      currentType: "list", // 当前显示类型:list-列表,draft-草稿箱
      form: {
        aerobicType: '',
        cultureMedium: '',
        preserveSource: '',
        projectIds: [],
        strainCode: '',
        strainName: '',
        pageNum: 1,
@@ -118,13 +154,30 @@
      tableData: [],
      delData: null,
      total: 0,
      roleType: JSON.parse(sessionStorage.getItem('userInfo')).roleType,
      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();
@@ -138,6 +191,7 @@
        aerobicType: '',
        cultureMedium: '',
        preserveSource: '',
        projectIds: '',
        strainCode: '',
        strainName: '',
        pageNum: 1,