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