| | |
| | | <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 |
| | |
| | | ></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> |
| | |
| | | </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 |
| | |
| | | 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, |
| | |
| | | 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] || "未知"; |
| | | }, |
| | |
| | | }, |
| | | 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; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |