From d8d68a0aee93073b5ec3195368ca0ed1076f66a2 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期三, 25 六月 2025 17:58:08 +0800
Subject: [PATCH] 对接评定接口和中台待办事项

---
 laboratory/src/views/deliveryAssessment/experimenterJobEvaluation/index.vue |  386 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 263 insertions(+), 123 deletions(-)

diff --git a/laboratory/src/views/deliveryAssessment/experimenterJobEvaluation/index.vue b/laboratory/src/views/deliveryAssessment/experimenterJobEvaluation/index.vue
index f06d022..e9136c4 100644
--- a/laboratory/src/views/deliveryAssessment/experimenterJobEvaluation/index.vue
+++ b/laboratory/src/views/deliveryAssessment/experimenterJobEvaluation/index.vue
@@ -1,135 +1,275 @@
 <template>
     <div class="list">
-        <TableCustom :queryForm="queryForm" :tableData="tableData" :total="total" @currentChange="handleCurrentChange"
-            @sizeChange="handleSizeChange">
-            <template #search>
-                <el-form :model="form" label-width="140px" inline>
-                    <el-form-item label="所属项目课题方案:">
-                        <el-input v-model="form.name" placeholder="请输入" />
-                    </el-form-item>
-                    <el-form-item label="实验编号:">
-                        <el-input v-model="form.name" placeholder="请输入" />
-                    </el-form-item>
-                    <el-form-item label="创建时间:">
-                        <el-date-picker v-model="value1" type="daterange" range-separator="至" start-placeholder="开始日期"
-                            end-placeholder="结束日期">
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item label="状态:">
-                        <el-select v-model="form.status" placeholder="请选择">
-                            <el-option label="是" value="1"></el-option>
-                            <el-option label="否" value="0"></el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item class="search-btn-box">
-                        <el-button>重置</el-button>
-                        <el-button type="primary">查询</el-button>
-                    </el-form-item>
-                </el-form>
+      <TableCustom
+        :queryForm="form"
+        :tableData="tableData"
+        :total="total"
+        :height="null"
+        @handlePageChange="handlePageChange"
+        @handleSizeChange="handleSizeChange"
+      >
+        <template #search>
+          <el-form :model="form" labelWidth="auto" inline>
+            <el-form-item label="所属项目课题方案:">
+              <el-input
+                v-model="form.projectName"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="实验编号:">
+              <el-input
+                v-model="form.experimentCode"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="实验名称:">
+              <el-input
+                v-model="form.experimentName"
+                placeholder="请输入"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="创建日期:">
+              <el-date-picker
+                v-model="dateRange"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                @change="handleDateChange"
+              ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="状态:">
+              <el-select v-model="form.status" placeholder="请选择">
+                <el-option label="全部" value=""></el-option>
+                <el-option label="待提交" :value="1"></el-option>
+                <el-option label="待评定" :value="2"></el-option>
+                <el-option label="已评定" :value="3"></el-option>
+                <el-option label="已封存" :value="4"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="">
+              <el-button type="default" @click="resetForm">重置</el-button>
+              <el-button
+                type="primary"
+                style="margin-left: 10px"
+                @click="handleSearch"
+                >查询</el-button
+              >
+            </el-form-item>
+          </el-form>
+        </template>
+        <template #setting>
+          <div class="tableTitle">
+            <div class="flex a-center">
+              <div
+                class="title active"
+              >
+                实验结果汇报列表
+              </div>
+            </div>
+          </div>
+        </template>
+        <template #table>
+          <el-table-column
+            prop="projectName"
+            label="所属项目课题方案"
+          ></el-table-column>
+          <el-table-column
+            prop="experimentCode"
+            label="实验编号"
+          ></el-table-column>
+          <el-table-column
+            prop="experimentName"
+            label="实验名称"
+          ></el-table-column>
+          <el-table-column
+            prop="processEngineerName"
+            label="工艺工程师"
+          ></el-table-column>
+  
+          <el-table-column
+            prop="laboratoryChemistName"
+            label="化验师"
+          ></el-table-column>
+          <el-table-column
+            prop="experimenterName"
+            label="实验员"
+          ></el-table-column>
+          <el-table-column
+            prop="createTime"
+            label="创建日期"
+            width="180"
+          ></el-table-column>
+          <el-table-column prop="status" label="状态">
+            <template slot-scope="scope">
+              <el-tag :type="getStatusType(scope.row.status)">
+                {{ getStatusText(scope.row.status) }}
+              </el-tag>
             </template>
-            <template #table>
-                <el-table-column prop="name" label="所属项目课题方案" />
-                <el-table-column prop="age" label="实验编号" />
-                <el-table-column prop="age" label="工艺工程师" />
-                <el-table-column prop="age" label="化验师" />
-                <el-table-column prop="age" label="实验员" />
-                <el-table-column prop="age" label="创建日期" />
-                <el-table-column prop="age" label="状态">
-                    <template #default="{ row }">
-                        <span :style="{ color: ['green', 'red'][row.status - 1] }">{{ ['是', '否'][row.status - 1]
-                            }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="age" label="操作">
-                    <template #default="{ row }">
-                        <el-button type="text">详情</el-button>
-                        <el-button type="text">评定</el-button>
-                    </template>
-                </el-table-column>
+          </el-table-column>
+          <el-table-column label="操作" width="180">
+            <template slot-scope="scope">
+              <el-button type="text" @click="handleDetail(scope.row.id)"
+                >详情</el-button
+              >
             </template>
-        </TableCustom>
-
+          </el-table-column>
+        </template>
+      </TableCustom>
+      
     </div>
-</template>
-
-<script>
-
-export default {
-    name: 'ExperimenterJobEvaluation',
-    components: {
-    },
+  </template>
+    
+  <script>
+  import { getList} from "./service";
+  
+  export default {
+    name: "TestResultReport",
     data() {
-        return {
-            form: {
-            },
-            tableData: [],
-            queryForm: {
-                pageSize: 10,
-                pageNum: 1
-            },
-            total: 0,
-        }
+      return {
+        form: {
+          projectName: "",
+          experimentCode: "",
+          experimentName: "",
+          startTime: "",
+          endTime: "",
+          status: "",
+          pageNum: 1,
+          pageSize: 10,
+        },
+        dateRange: [],
+        tableData: [],
+        total: 0,
+      };
+    },
+    created() {
+      this.getTableData();
     },
     methods: {
-        handleCurrentChange(page) {
-            this.queryForm.pageNum = page
-            this.getList()
-        },
-        handleSizeChange(size) {
-            this.queryForm.pageSize = size
-            this.getList()
-        },
-        getList() {
-
-        },
-        handleDetail(row) {
-            // 处理详情
-        },
-        handleAssessment(row) {
-            this.currentReport = row;
-            this.assessmentVisible = true;
-        },
-    }
-}
-</script>
-
-<style scoped lang="less">
-.list {
+      resetForm() {
+        this.form = {
+          projectName: "",
+          experimentCode: "",
+          experimentName: "",
+          startTime: "",
+          endTime: "",
+          status: "",
+          pageNum: 1,
+          pageSize: 10,
+        };
+        this.dateRange = [];
+        this.getTableData();
+      },
+      handleSearch() {
+        this.getTableData();
+      },
+      handleDetail(id) {
+        this.$router.push({
+          path: "/dataManagement/testResultReport/detail",
+          query: {
+            id: id,
+            type: "view",
+          },
+        });
+      },
+      getTableData() {
+        const params = {
+          ...this.form,
+        };
+        getList(params)
+          .then((res) => {
+            if (res.code === 200) {
+              this.tableData = res.data.records || [];
+              this.total = res.data.total || 0;
+            } else {
+              this.$message.error(res.msg || "获取数据失败");
+            }
+          })
+          .catch(() => {
+            this.$message.error("获取数据失败");
+          });
+      },
+      handleDateChange(val) {
+        if (val) {
+          this.form.startTime = val[0];
+          this.form.endTime = val[1];
+        } else {
+          this.form.startTime = "";
+          this.form.endTime = "";
+        }
+      },
+      getStatusType(status) {
+        const statusMap = {
+          "-1": "info",
+          1: "warning",
+          2: "warning",
+          3: "success",
+          4: "info",
+          5: "warning",
+        };
+        return statusMap[status] || "info";
+      },
+      getStatusText(status) {
+        const statusMap = {
+          "-1": "草稿箱",
+          1: "待提交",
+          2: "待评定",
+          3: "已评定",
+          4: "已封存",
+          5: "已解封",
+        };
+        return statusMap[status] || "未知";
+      },
+      handlePageChange(pageNum) {
+        this.form.pageNum = pageNum;
+        this.getTableData();
+      },
+      handleSizeChange(pageSize) {
+        this.form.pageSize = pageSize;
+        this.getTableData();
+      },
+    },
+  };
+  </script>
+    
+  <style scoped lang="less">
+  .list {
     height: 100%;
-}
-
-.top-box-integral {
+  }
+  .flex {
     display: flex;
+    align-items: center;
+  }
+  .tableTitle {
+    display: flex;
+    padding-bottom: 20px;
     justify-content: space-between;
-    flex-wrap: wrap;
-    gap: 28px;
-
-    &-card {
-        flex: 1;
-        background: #E8FAF6;
-        box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.06);
-        border-radius: 10px;
-        padding: 21px 20px;
-
-        &-title {
-            font-family: 'SourceHanSansCN-Medium';
-            font-size: 14px;
-            color: rgba(0, 0, 0, 0.8);
-        }
-
-        &-num {
-            font-family: 'SF Compact Display Black';
-            text-align: center;
-            font-weight: 900;
-            font-size: 50px;
-            color: #049C9A;
-            line-height: 60px;
-        }
+    align-items: center;
+    .title,
+    .drafts {
+      background: #fafafc;
+      border-radius: 8px 8px 0px 0px;
+      border: 1px solid #dcdfe6;
+      padding: 16px 29px;
+      font-size: 18px;
+      color: #606266;
+      cursor: pointer;
+      font-weight: 400;
     }
-}
-
-.tip-warring {
-    margin-top: 20px;
-    color: rgba(255, 73, 85, 1);
-}
-</style>
\ No newline at end of file
+    .title {
+      padding: 16px 29px;
+    }
+    .drafts {
+      padding: 16px 65px;
+      margin-left: 16px;
+    }
+    .active {
+      color: #049c9a;
+      background: #ffffff;
+      border-radius: 8px 8px 0px 0px;
+      border: 1px solid #049c9a;
+      font-weight: bold;
+    }
+  }
+  </style> 
\ No newline at end of file

--
Gitblit v1.7.1