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/technicianJobEvaluation/index.vue |  379 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 259 insertions(+), 120 deletions(-)

diff --git a/laboratory/src/views/deliveryAssessment/technicianJobEvaluation/index.vue b/laboratory/src/views/deliveryAssessment/technicianJobEvaluation/index.vue
index f894848..b2b9bcd 100644
--- a/laboratory/src/views/deliveryAssessment/technicianJobEvaluation/index.vue
+++ b/laboratory/src/views/deliveryAssessment/technicianJobEvaluation/index.vue
@@ -1,135 +1,274 @@
 <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>
-            </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>
-            </template>
-        </TableCustom>
+  <div class="list">
+    <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>
 
-    </div>
+        <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>
+        </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>
+        </el-table-column>
+      </template>
+    </TableCustom>
+    
+  </div>
 </template>
-
+  
 <script>
+import { getList} from "./service";
 
 export default {
-    name: 'TechnicianJobEvaluation',
-    components: {
+  name: "TestResultReport",
+  data() {
+    return {
+      form: {
+        projectName: "",
+        experimentCode: "",
+        experimentName: "",
+        startTime: "",
+        endTime: "",
+        status: "",
+        pageNum: 1,
+        pageSize: 10,
+      },
+      dateRange: [],
+      tableData: [],
+      total: 0,
+    };
+  },
+  created() {
+    this.getTableData();
+  },
+  methods: {
+    resetForm() {
+      this.form = {
+        projectName: "",
+        experimentCode: "",
+        experimentName: "",
+        startTime: "",
+        endTime: "",
+        status: "",
+        pageNum: 1,
+        pageSize: 10,
+      };
+      this.dateRange = [];
+      this.getTableData();
     },
-    data() {
-        return {
-            form: {
-            },
-            tableData: [],
-            queryForm: {
-                pageSize: 10,
-                pageNum: 1
-            },
-            total: 0,
-        }
+    handleSearch() {
+      this.getTableData();
     },
-    methods: {
-        handleCurrentChange(page) {
-            this.queryForm.pageNum = page
-            this.getList()
+    handleDetail(id) {
+      this.$router.push({
+        path: "/dataManagement/testResultReport/detail",
+        query: {
+          id: id,
+          type: "view",
         },
-        handleSizeChange(size) {
-            this.queryForm.pageSize = size
-            this.getList()
-        },
-        getList() {
-
-        },
-        handleDetail(row) {
-            // 处理详情
-        },
-        handleAssessment(row) {
-            this.currentReport = row;
-            this.assessmentVisible = true;
-        },
-    }
-}
+      });
+    },
+    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%;
+  height: 100%;
 }
-
-.top-box-integral {
-    display: flex;
-    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;
-        }
-    }
+.flex {
+  display: flex;
+  align-items: center;
 }
-
-.tip-warring {
-    margin-top: 20px;
-    color: rgba(255, 73, 85, 1);
+.tableTitle {
+  display: flex;
+  padding-bottom: 20px;
+  justify-content: space-between;
+  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;
+  }
+  .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
+</style> 
\ No newline at end of file

--
Gitblit v1.7.1