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 | 187 ++++++++++++++++++++++++++++++++--------------
1 files changed, 131 insertions(+), 56 deletions(-)
diff --git a/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue b/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue
index f173a8c..c3acd40 100644
--- a/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue
+++ b/laboratory/src/views/dataManagement/sampleManage/components/experimental-scheduling.vue
@@ -1,7 +1,12 @@
<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="所属项目课题方案:">
@@ -10,22 +15,19 @@
<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="form.createTime"
- type="daterange"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- value-format="yyyy-MM-dd">
- </el-date-picker>
+ <el-date-picker v-model="form.createTime" 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="-1"></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=""></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">
@@ -36,84 +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';
+import { getDispatchList } from "../service";
export default {
- props: ['show'],
+ props: {
+ show: {
+ type: Boolean,
+ default: false
+ }
+ },
data() {
return {
form: {
projectName: "",
experimentCode: "",
- createTime: [],
- status: null,
+ 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: "",
- createTime: [],
- status: null,
+ experimentName: "",
+ startTime: "",
+ endTime: "",
+ status: "",
pageNum: 1,
pageSize: 10
};
- this.handleSearch();
+ this.getTableData();
},
- async handleSearch() {
- const params = {
- projectName: this.form.projectName,
- experimentCode: this.form.experimentCode,
- startTime: this.form.createTime[0] || null,
- endTime: this.form.createTime[1] || null,
- status: this.form.status,
- pageNum: this.form.pageNum,
- pageSize: this.form.pageSize
+ handleSearch() {
+ this.form.pageNum = 1;
+ this.getTableData();
+ },
+ getStatusType(status) {
+ const statusMap = {
+ "-1": "info",
+ "1": "warning",
+ "2": "success",
+ "3": "info"
};
- try {
- const res = await getDispatchList(params);
- this.tableData = res.records || [];
- this.total = res.total || 0;
- } catch (error) {
- console.error("查询失败:", error);
+ 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 {
+.select-member-footer {
display: flex;
- justify-content: center;
- gap: 10px;
-}
-::v-deep .el-range-editor--small {
- line-height: 30px !important;
+ justify-content: flex-end;
}
</style>
\ No newline at end of file
--
Gitblit v1.7.1