From 0db8c9b94a9ac655549d5eba5c2a6c92ac386c06 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 08 十月 2026 11:20:56 +0800
Subject: [PATCH] 提交最新代码

---
 culture/src/views/strain-library/breeding-record/index.vue |  102 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 85 insertions(+), 17 deletions(-)

diff --git a/culture/src/views/strain-library/breeding-record/index.vue b/culture/src/views/strain-library/breeding-record/index.vue
index 16e1bd1..280fd38 100644
--- a/culture/src/views/strain-library/breeding-record/index.vue
+++ b/culture/src/views/strain-library/breeding-record/index.vue
@@ -1,8 +1,28 @@
 <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" />
@@ -32,36 +52,53 @@
             <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>
@@ -71,8 +108,9 @@
 </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",
@@ -81,11 +119,14 @@
   },
   data() {
     return {
+      teamList: [], // 项目组列表
+      teamLoading: false, // 加载状态
       currentType: "list", // 当前显示类型:list-列表,draft-草稿箱
       form: {
         aerobicType: '',
         cultureMedium: '',
         preserveSource: '',
+        projectIds: [],
         strainCode: '',
         strainName: '',
         pageNum: 1,
@@ -113,17 +154,44 @@
       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,
@@ -184,15 +252,15 @@
       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
@@ -201,14 +269,14 @@
     },
     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;

--
Gitblit v1.7.1