<template>
|
<div class="list">
|
<TableCustom
|
:queryForm="queryForm"
|
:tableData="tableData"
|
:total="total"
|
@currentChange="handleCurrentChange"
|
@sizeChange="handleSizeChange"
|
>
|
<template #search>
|
<el-form label-width="140px" inline>
|
<el-form-item label="项目组名称:">
|
<el-input
|
v-model="queryForm.teamName"
|
placeholder="请输入"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="项目负责人:">
|
<el-input
|
v-model="queryForm.personCharge"
|
placeholder="请输入"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="创建日期:">
|
<el-date-picker
|
v-model="queryForm.createdDate"
|
type="daterange"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item class="search-btn-box">
|
<el-button @click="reset">重置</el-button>
|
<el-button type="primary" @click="search">查询</el-button>
|
</el-form-item>
|
</el-form>
|
</template>
|
<template #setting>
|
<el-button
|
@click="handleProject('add')"
|
class="el-icon-plus"
|
type="primary"
|
>
|
新增菌种库项目组</el-button
|
>
|
</template>
|
<template #table>
|
<el-table-column prop="teamName" label="菌种库项目组名称" />
|
<el-table-column prop="personCharge" label="菌种库项目负责人" />
|
<el-table-column prop="staffName" label="项目组成员" />
|
<el-table-column prop="createTime" label="项目创建时间" />
|
<el-table-column prop="status" label="状态">
|
<template #default="{ row }">
|
<el-tag v-if="row.status == 1" type="success">正常运作</el-tag>
|
<el-tag v-else type="danger">已封存</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作">
|
<template #default="{ row }">
|
<el-button
|
v-if="row.status == 1"
|
type="text"
|
@click="handleChangeStatus(row, 2)"
|
>封存</el-button
|
>
|
<el-button
|
v-if="row.status == 2"
|
type="text"
|
@click="handleChangeStatus(row, 1)"
|
>解封</el-button
|
>
|
<el-button type="text" @click="handleProject('edit', row.id)"
|
>编辑</el-button
|
>
|
<el-button type="text" @click="handleProject('detail', row.id)"
|
>详情</el-button
|
>
|
<el-button type="text" @click="handleDel(row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</template>
|
</TableCustom>
|
<ShowDelConfirm
|
:show="showDelConfirm"
|
@close="showDelConfirm = false"
|
@confirm="handleDelConfirm"
|
/>
|
<ShowDelConfirm
|
:title="changeStatusTitle"
|
:tip="changeStatusTip"
|
:show="changeStatus"
|
@close="changeStatus = false"
|
@confirm="handleChangeStatusConfirm"
|
/>
|
</div>
|
</template>
|
|
<script>
|
import { getProjectList, changeStatus, deleteProject } from "./service";
|
export default {
|
name: "ProjectList",
|
data() {
|
return {
|
showDelConfirm: false,
|
rowId: "",
|
changeStatus: false,
|
changeStatusTitle: "",
|
changeStatusTip: "",
|
tableData: [],
|
queryForm: {
|
pageSize: 10,
|
pageNum: 1,
|
},
|
total: 0,
|
};
|
},
|
created() {
|
this.getList();
|
},
|
methods: {
|
handleProject(type, id) {
|
if (type == "add") {
|
this.$router.push({
|
path: "/projectList/addProject",
|
});
|
return;
|
}
|
if (type == "edit") {
|
this.$router.push({
|
path: "/projectList/editProject",
|
query: {
|
id,
|
},
|
});
|
return;
|
}
|
if (type == "detail") {
|
this.$router.push({
|
path: "/projectList/detailProject",
|
query: {
|
id,
|
},
|
});
|
return;
|
}
|
},
|
handleDel(row) {
|
this.rowId = row.id;
|
this.showDelConfirm = true;
|
},
|
handleDelConfirm() {
|
deleteProject({ id: this.rowId }).then((res) => {
|
this.showDelConfirm = false;
|
this.$message.success("删除成功");
|
this.rowId = "";
|
this.getList();
|
});
|
},
|
handleChangeStatus(row, status) {
|
this.rowId = row.id;
|
this.changeStatusTitle =
|
status == 2 ? "确认要封存这个项目组吗?" : "确认要解封该项目组吗?";
|
this.changeStatusTip =
|
status == 2
|
? "封存后项目组内人员看不到数据,审批人仍然可见数据。"
|
: "解封后项目组内人员数据恢复。";
|
this.changeStatus = true;
|
},
|
handleChangeStatusConfirm() {
|
changeStatus({ id: this.rowId, status: this.status }).then((res) => {
|
this.changeStatus = false;
|
this.$message.success("操作成功");
|
this.rowId = "";
|
this.changeStatusTitle = "";
|
this.changeStatusTip = "";
|
this.getList();
|
});
|
},
|
handleCurrentChange(page) {
|
this.queryForm.pageNum = page;
|
this.getList();
|
},
|
handleSizeChange(size) {
|
this.queryForm.pageSize = size;
|
this.getList();
|
},
|
getList() {
|
let obj = {
|
...this.queryForm,
|
};
|
if (obj.createdDate) {
|
obj.startTime = moment(obj.createdDate[0]).format("YYYY-MM-DD");
|
obj.endTime = moment(obj.createdDate[1]).format("YYYY-MM-DD");
|
delete obj.createdDate;
|
}
|
getProjectList(obj).then((res) => {
|
this.tableData = res.data.records;
|
this.total = res.data.total;
|
});
|
},
|
reset() {
|
this.queryForm = {
|
pageSize: 10,
|
pageNum: 1,
|
};
|
this.getList();
|
},
|
search() {
|
this.getList();
|
},
|
},
|
};
|
</script>
|
|
<style scoped lang="less">
|
|
.list {
|
height: 100%;
|
}
|
</style>
|