puzhibing
6 天以前 0db8c9b94a9ac655549d5eba5c2a6c92ac386c06
culture/src/views/strain-library/validation/chief-cell/index.vue
@@ -5,6 +5,24 @@
      @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange">
      <template #search>
        <el-form :model="form" label-width="auto" inline>
          <el-form-item label="选择项目组:">
            <el-select
                v-model="form.projectIds"
                placeholder="请选择项目组"
                filterable
                clearable
                :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-input v-model="form.identifyingStrainCode" placeholder="请输入"></el-input>
          </el-form-item>
@@ -28,7 +46,7 @@
            <div class="title" :class="{ active: currentType === 'list' }" @click="handleTypeChange('list')">
              母代菌种库验证资料列表
            </div>
            <div class="drafts" v-if="roleType == 4|| roleType==3" :class="{ active: currentType === 'draft' }"
            <div class="drafts" v-if="roleType == 4 || roleType == 3" :class="{ active: currentType === 'draft' }"
              @click="handleTypeChange('draft')">
              草稿箱
            </div>
@@ -41,7 +59,14 @@
      </template>
      <template #table>
        <el-table-column prop="strainSource" label="菌种来源" />
        <el-table-column prop="projectName" label="项目组名称"/>
        <el-table-column prop="strainSource" label="菌种来源">
          <template #default="{ row }">
            <el-tooltip :content="row.strainSource" placement="top" effect="dark" >
              <div class="ellipsis-text">{{ row.strainSource }}</div>
            </el-tooltip>
          </template>
        </el-table-column>
        <el-table-column prop="identifyingStrainCode" label="鉴别菌株编号" />
        <el-table-column prop="identifyingStrainName" label="鉴别菌株名称">
          <template #default="{ row }">
@@ -61,13 +86,18 @@
        </el-table-column>
        <el-table-column label="操作" width="200">
          <template #default="{ row }">
            <el-button type="text" v-if="row.status == 1 && roleType == 3&&currentType != 'draft'"
             style="margin-right: 10px;"
              @click="$router.push('/strain/validation/confirm-detail?id=' + row.id)">确认</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') || (roleType == 1)" @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" v-if="(roleType == 4 && currentType == 'draft') || (roleType == 1)" @click="handleDelete(row)">删除</el-button>
            <el-button type="text" v-if="row.status == 1 && roleType == 3"
              style="margin-right: 10px;"
              @click="$router.push('/strain/validation/confirm-detail-chief?id=' + row.id)">确认</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') || (roleType == 1)"
              @click="handleEdit(row)">编辑</el-button>
            <el-button type="text" v-if="(roleType == 4 && currentType == 'draft') || (roleType == 1)"
              @click="handleDelete(row)">删除</el-button>
          </template>
        </el-table-column>
      </template>
@@ -85,6 +115,7 @@
import EditConditionDialog from "./EditConditionDialog.vue";
import moment from "moment";
import { getList, delOne } from "./service";
import {myTeamPageList} from "@/components/chooseProject/servce";
export default {
  name: "PrimitiveCell",
  components: {
@@ -104,7 +135,10 @@
      editDialogValue: {},
      currentDetail: {},
      roleType: JSON.parse(sessionStorage.getItem("userInfo")).roleType,
      teamList: [], // 项目组列表
      teamLoading: false, // 加载状态
      form: {
        projectIds: [],
        identifyingStrainCode: "",
        identifyingStrainName: "",
        validationExperimentCode: "",
@@ -122,6 +156,22 @@
    };
  },
  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
      }
    },
    handleDetail(row) {
      row.experimentTime = moment(row.experimentTime).format('YYYY-MM-DD')
      this.currentDetail = row;
@@ -174,6 +224,10 @@
      // Implement batch add logic
    },
    handleEdit(row) {
      if (Number(this.roleType) === 1) {
        this.$router.push({ path: "/strain/validation/confirm-detail-chief", query: { id: row.id, mode: 'edit' } });
        return;
      }
      this.$router.push({
        path: "/strain/validation/edit-chief-cell",
        query: {
@@ -211,7 +265,8 @@
      this.searchData();
    },
  },
  mounted() {
  activated() {
    this.searchData();
  },
};