pyt
2025-05-12 6565eb74d006296fe67a386e1c48abdb0f2fe7c2
laboratory/src/views/dataManagement/confirmation-sheet/index.vue
@@ -4,22 +4,27 @@
            <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-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="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="已确认"></el-option>
                    <el-form-item label="状态:" v-if="!isDrafts">
                        <el-select v-model="form.auditStatus" placeholder="请选择">
                            <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-option label="已封存" :value="5"></el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="" class="search-btn-box">
@@ -30,9 +35,9 @@
            </template>
            <template #setting>
                <div class="tableTitle">
                    <div class="flex a-center">
                        <div class="title pointer">检验方法确认单列表</div>
                        <div class="drafts pointer">草稿箱</div>
                    <div class="flex a-center" style="gap: 16px;">
                        <div class="title pointer" :class="{ active: !isDrafts }" @click="switchToDrafts(false)">检验方法确认单列表</div>
                        <div class="drafts pointer" :class="{ active: isDrafts }" @click="switchToDrafts(true)">草稿箱</div>
                    </div>
                    <el-button @click="handleAddPlan" class="el-icon-plus" type="primary">
                        新增检测方法确认单</el-button>
@@ -68,6 +73,7 @@
<script>
import reviewDialog from './components/review-dialog.vue';
import { getList } from './service'
export default {
    name: "ConfirmationSheet",
    components: {
@@ -76,40 +82,76 @@
    data() {
        return {
            form: {
                planName: "",
                planCode: "",
                creator: "",
                createTime: [],
                approver: "",
                status: "",
                pageNum: 1,
                pageSize: 10,
                projectName: "",
                experimentCode: "",
                experimentName: "",
                startTime: "",
                endTime: "",
                auditStatus: "",
            },
            showRevoke:false,
            dateRange: [],
            isDrafts: false,
            showRevoke: false,
            tableData: [],
            total: 0,
            editorContent: '', // 编辑器内容
            reviewDialogVisible: true,
            editorContent: '',
            reviewDialogVisible: false,
            dialogType: 'review',
            currentRow: {},
            sampleData: [],
        };
    },
    mounted() {
        this.getTableData();
    },
    methods: {
        async getTableData() {
            try {
                const params = { ...this.form };
                if (this.isDrafts) {
                    params.auditStatus = -1;
                }
                const res = await getList(params);
                if (res.code === 200) {
                    this.tableData = res.data.list || [];
                    this.total = res.data.total || 0;
                }
            } catch (error) {
                console.error('获取列表数据失败:', error);
            }
        },
        handleDateChange(val) {
            if (val) {
                this.form.startTime = val[0];
                this.form.endTime = val[1];
            } else {
                this.form.startTime = '';
                this.form.endTime = '';
            }
        },
        resetForm() {
            this.form = {
                planName: "",
                planCode: "",
                creator: "",
                createTime: [],
                approver: "",
                status: "",
                pageNum: 1,
                pageSize: 10,
                projectName: "",
                experimentCode: "",
                experimentName: "",
                startTime: "",
                endTime: "",
                auditStatus: "",
            };
            this.dateRange = [];
            this.getTableData();
        },
        handleSearch() {
            // 实现查询逻辑
            console.log("查询条件:", this.form);
            this.form.pageNum = 1;
            this.getTableData();
        },
        switchToDrafts(isDrafts) {
            this.isDrafts = isDrafts;
            this.resetForm();
        },
        getStatusType(status) {
            const statusMap = {
@@ -182,27 +224,29 @@
    padding-bottom: 20px;
    justify-content: space-between;
    align-items: center;
    .title {
    .title, .drafts {
        background: #ffffff;
        border-radius: 8px 8px 0px 0px;
        border: 1px solid #049c9a;
        padding: 16px 29px;
        font-weight: bold;
        font-size: 18px;
        color: #049c9a;
        background: #fafafc;
        border: 1px solid #dcdfe6;
        color: #606266;
        width: unset;
        &.active {
            background: #ffffff;
            border: 1px solid #049c9a !important;
            color: #049c9a;
        }
    }
    .drafts {
        padding: 16px 65px;
        background: #fafafc;
        border-radius: 8px 8px 0px 0px;
        border: 1px solid #dcdfe6;
        font-weight: 400;
        font-size: 18px;
        color: #606266;
        margin-left: 16px;
        &:not(.active) {
        }
    }
}