董国庆
2025-05-09 1c2436a807ca914e591be4cdb63ead262a6deeb0
项目课题方案
1个文件已修改
112 ■■■■■ 已修改文件
laboratory/src/views/dataManagement/approvalPlan/list.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory/src/views/dataManagement/approvalPlan/list.vue
@@ -4,13 +4,13 @@
      <template #search>
        <el-form :model="form" labelWidth="auto" 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.projectCode" placeholder="请输入"></el-input>
          </el-form-item>
          <el-form-item label="创建人:">
            <el-input v-model="form.creator" placeholder="请输入"></el-input>
            <el-input v-model="form.createBy" placeholder="请输入"></el-input>
          </el-form-item>
          <el-form-item label="创建时间:">
            <el-date-picker
@@ -23,7 +23,7 @@
            ></el-date-picker>
          </el-form-item>
          <el-form-item label="审批人:">
            <el-input v-model="form.approver" placeholder="请输入"></el-input>
            <el-input v-model="form.auditPersonName" placeholder="请输入"></el-input>
          </el-form-item>
          <el-form-item label="">
            <el-button type="default" @click="resetForm">重置</el-button>
@@ -52,47 +52,47 @@
      </template>
      <template #table>
        <el-table-column
          prop="planCode"
          prop="projectCode"
          label="项目课题方案编号"
        ></el-table-column>
        <el-table-column
          prop="planName"
          prop="projectName"
          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 prop="createBy" label="创建人"></el-table-column>
        <el-table-column prop="createTime" label="创建日期"></el-table-column>
        <el-table-column prop="status" label="审批状态">
        <el-table-column prop="auditStatus" label="审批状态">
          <template slot-scope="scope">
            <el-tag :type="getStatusType(scope.row.status)">
              {{ getStatusText(scope.row.status) }}
            <el-tag :type="getStatusType(scope.row.auditStatus)">
              {{ getStatusText(scope.row.auditStatus) }}
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="approver" label="审批人"></el-table-column>
        <el-table-column prop="approveTime" label="审批时间"></el-table-column>
        <el-table-column prop="auditPersonName" label="审批人"></el-table-column>
        <el-table-column prop="auditTime" label="审批时间"></el-table-column>
        <el-table-column label="操作" width="250">
          <template slot-scope="scope">
            <el-button
              v-if="scope.row.status === 'pending'"
              v-if="scope.row.auditStatus === 1"
              type="text"
              @click="handleApprove(scope.row)"
              >审批</el-button
            >
            <el-button
              v-if="scope.row.status === 'approved'"
              v-if="scope.row.auditStatus === 2"
              type="text"
              @click="handleRevokeApprove(scope.row)"
              >撤销审批</el-button
            >
            <el-button
              v-if="scope.row.status === 'rejected'"
              v-if="scope.row.auditStatus === 3"
              type="text"
              @click="handleEdit(scope.row)"
              >编辑</el-button
            >
            <el-button
              v-if="scope.row.status === 'rejected'"
              v-if="scope.row.auditStatus === 3"
              type="text"
              @click="handleDelete(scope.row)"
              >删除</el-button
@@ -128,14 +128,16 @@
    return {
      currentType: 'list', // 当前显示类型:list-列表,draft-草稿箱
      form: {
        planName: "",
        planCode: "",
        creator: "",
        projectName: "",
        projectCode: "",
        createBy: "",
        createTime: [],
        approver: "",
        status: "",
        auditPersonName: "",
        auditStatus: 1,
        pageNum: 1,
        pageSize: 10,
        startTime: "",
        endTime: ""
      },
      tableData: [],
      total: 0,
@@ -205,37 +207,47 @@
  methods: {
    resetForm() {
      this.form = {
        planName: "",
        planCode: "",
        creator: "",
        projectName: "",
        projectCode: "",
        createBy: "",
        createTime: [],
        approver: "",
        status: "",
        auditPersonName: "",
        auditStatus: this.currentType === 'draft' ? -1 : 1,
        pageNum: 1,
        pageSize: 10,
        startTime: "",
        endTime: ""
      };
    },
    handleSearch() {
      // 实现查询逻辑
      console.log("查询条件:", this.form);
      if (this.form.createTime && this.form.createTime.length === 2) {
        this.form.startTime = this.form.createTime[0];
        this.form.endTime = this.form.createTime[1];
      } else {
        this.form.startTime = "";
        this.form.endTime = "";
      }
      this.getTableData();
    },
    getStatusType(status) {
      const statusMap = {
        pending: "warning",
        rejected: "danger",
        approved: "success",
        archived: "info",
        draft: "info"
        1: "warning",   // 审批中
        2: "success",   // 已通过
        3: "danger",    // 已驳回
        4: "info",      // 已撤销
        5: "info",      // 已封存
        "-1": "info",   // 草稿
      };
      return statusMap[status] || "info";
    },
    getStatusText(status) {
      const statusMap = {
        pending: "待审批",
        rejected: "已驳回",
        approved: "已通过",
        archived: "已封存",
        draft: "草稿"
        1: "审批中",
        2: "已通过",
        3: "已驳回",
        4: "已撤销",
        5: "已封存",
        "-1": "草稿",
      };
      return statusMap[status] || "未知";
    },
@@ -282,20 +294,26 @@
    },
    handleTypeChange(type) {
      this.currentType = type;
      this.form.auditStatus = type === 'draft' ? -1 : '';
      this.getTableData();
    },
    getTableData() {
      // 根据currentType请求不同的数据
      if (this.currentType === 'list') {
        getProposalList(this.form).then(res => {
          console.log(res,'1111111111111111111111111')
        })
        this.tableData = this.mockListData;
        this.total = this.mockListData.length;
      if (this.form.createTime && this.form.createTime.length === 2) {
        this.form.startTime = this.form.createTime[0];
        this.form.endTime = this.form.createTime[1];
      } else {
        this.tableData = this.mockDraftData;
        this.total = this.mockDraftData.length;
        this.form.startTime = "";
        this.form.endTime = "";
      }
      // 创建新的请求参数对象,排除createTime
      const { createTime, ...requestParams } = this.form;
      console.log(requestParams,'requestParams')
      getProposalList(requestParams).then(res => {
        this.tableData = res.data.records;
        this.total = res.data.total;
      });
    },
  },
};