From 4d4e8cd36377fa24cdda7a560dfc42fd2c9334b4 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期五, 23 五月 2025 15:33:49 +0800
Subject: [PATCH] 实验结果汇报
---
laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue | 171 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 142 insertions(+), 29 deletions(-)
diff --git a/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue b/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue
index 83a6c4b..c3acd40 100644
--- a/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue
+++ b/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue
@@ -1,27 +1,33 @@
<template>
<div>
- <el-dialog title="选择项目组" :visible.sync="show" width="80%">
- <TableCustom :queryForm="form" :tableData="tableData" :total="total" :height="null">
+ <el-dialog title="选择实验调度" :visible.sync="show" width="80%" @close="$emit('close', false)">
+ <TableCustom
+ :queryForm="form" :tableData="tableData"
+ :total="total" :height="null"
+ @handleCurrentChange="handleCurrentChange"
+ @selection-change="changeSelectedRows"
+ @handleSizeChange="handleSizeChange">
<template #search>
<el-form :model="form" label-width="140px" inline>
<el-form-item label="所属项目课题方案:">
- <el-input v-model="form.planName" placeholder="请输入"></el-input>
+ <el-input v-model="form.projectName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="实验编号:">
- <el-input v-model="form.planCode" placeholder="请输入"></el-input>
+ <el-input v-model="form.experimentCode" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="实验名称:">
- <el-input v-model="form.creator" placeholder="请输入"></el-input>
+ <el-input v-model="form.experimentName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="通知时间:">
<el-date-picker v-model="form.createTime" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期"
- value-format="yyyy-MM-dd"></el-date-picker>
+ 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="已确认"></el-option>
+ <el-option label="全部" value=""></el-option>
+ <el-option label="待确认" value="1"></el-option>
+ <el-option label="已确认" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="" class="search-btn-box">
@@ -32,50 +38,157 @@
</template>
<template #table>
- <el-table-column prop="planCode" label="所属项目课题方案"></el-table-column>
- <el-table-column prop="planName" label="实验编号"></el-table-column>
- <el-table-column prop="planName" label="实验名称"></el-table-column>
- <el-table-column prop="stage" label="通知时间"></el-table-column>
- <el-table-column prop="stage" label="实验开始时间"></el-table-column>
- <el-table-column prop="stage" label="试验结束时间"></el-table-column>
- <el-table-column prop="stage" label="参加人员"></el-table-column>
- <el-table-column prop="creator" label="状态"></el-table-column>
+ <el-table-column type="selection" width="55"></el-table-column>
+ <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="experimentDate" label="通知时间"></el-table-column>
+ <el-table-column prop="experimentStartTime" label="实验开始时间"></el-table-column>
+ <el-table-column prop="experimentEndTime" label="实验结束时间"></el-table-column>
+ <el-table-column prop="participantsName" label="参加人员"></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>
</template>
</TableCustom>
- <span slot="footer" class="dialog-footer">
- <el-button @click="show = false">取 消</el-button>
- <el-button type="primary" @click="show = false">确 定</el-button>
+ <span slot="footer" class="select-member-footer">
+ <el-button @click="$emit('close', false)">取 消</el-button>
+ <el-button type="primary" @click="handleConfirm">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
+import { getDispatchList } from "../service";
+
export default {
- props: ['show'],
+ props: {
+ show: {
+ type: Boolean,
+ default: false
+ }
+ },
data() {
return {
- form: {},
+ form: {
+ projectName: "",
+ experimentCode: "",
+ experimentName: "",
+ startTime: "",
+ endTime: "",
+ status: "",
+ pageNum: 1,
+ pageSize: 10
+ },
tableData: [],
- total: 0
+ total: 0,
+ selectedRows: []
+ }
+ },
+ watch: {
+ show(val) {
+ if (val) {
+ this.getTableData();
+ }
}
},
methods: {
+ handleDateChange(val) {
+ if (val) {
+ this.form.startTime = val[0];
+ this.form.endTime = val[1];
+ } else {
+ this.form.startTime = "";
+ this.form.endTime = "";
+ }
+ },
resetForm() {
-
+ this.form = {
+ projectName: "",
+ experimentCode: "",
+ experimentName: "",
+ startTime: "",
+ endTime: "",
+ status: "",
+ pageNum: 1,
+ pageSize: 10
+ };
+ this.getTableData();
},
handleSearch() {
-
+ this.form.pageNum = 1;
+ this.getTableData();
+ },
+ getStatusType(status) {
+ const statusMap = {
+ "-1": "info",
+ "1": "warning",
+ "2": "success",
+ "3": "info"
+ };
+ return statusMap[status] || "info";
+ },
+ getStatusText(status) {
+ const statusMap = {
+ "-1": "草稿箱",
+ "1": "待确认",
+ "2": "已确认",
+ "3": "已封存"
+ };
+ return statusMap[status] || "未知";
+ },
+ getTableData() {
+ const params = {
+ ...this.form
+ };
+ getDispatchList(params).then(res => {
+ console.log('222222222222',res)
+ if (res.code==200) {
+ this.tableData = res.data.records || [];
+ this.total = res.data.total || 0;
+ }
+ });
+ },
+ handleCurrentChange(val) {
+ this.form.pageNum = val;
+ this.getTableData();
+ },
+ handleSizeChange(val) {
+ this.form.pageSize = val;
+ this.form.pageNum = 1;
+ this.getTableData();
+ },
+ changeSelectedRows(val) {
+ console.log('val',val)
+ this.selectedRows = val;
+ },
+ handleCancel() {
+ this.$emit('update:show', false);
+ },
+ handleConfirm() {
+ if (!this.selectedRows || this.selectedRows.length === 0) {
+ this.$message.warning('请至少选择一条数据');
+ return;
+ }
+ if (this.selectedRows.length != 1) {
+ this.$message.warning('请选择一条数据');
+ return;
+ }
+ this.$emit('submit', this.selectedRows);
+ this.$emit('close', false);
}
}
}
</script>
<style lang="less" scoped>
-.dialog-footer {
- display: flex
-;
- justify-content: center;
- gap: 10px;
+.select-member-footer {
+ display: flex;
+ justify-content: flex-end;
}
</style>
\ No newline at end of file
--
Gitblit v1.7.1