<template>
|
<div class="list">
|
<el-card class="header-box">
|
<div class="box-title">
|
<img src="@/assets/public/notice.png" class="header-icon"> <span>设立课题规则</span>
|
</div>
|
<div class="header-content">
|
<p>1、根据可研报告、产品构思设计的工艺研究路线,一条工艺路线设立一个课题。如果一个课题中有多个化合物需要开发研究,则每个化合物作为一个分题;分题归集到该课题中,最终形成课题报告。不同课题报告中的分题不能重复使用。
|
</p>
|
<p>2、在可行研究阶段,工艺开发升级,重新规划工艺研究路线,则以新规划的工艺路线方案来设定课题。</p>
|
</div>
|
</el-card>
|
<TableCustom :tableData="tableData" :queryForm="queryForm" :total="total" @currentChange="handleCurrentChange"
|
@sizeChange="handleSizeChange">
|
<template #search>
|
<el-form :model="form" label-width="auto" inline>
|
<el-form-item label="所属项目组:">
|
<el-input v-model="form.teamName" placeholder="请输入"></el-input>
|
</el-form-item>
|
<el-form-item label="报告名称:">
|
<el-input v-model="form.reportName" placeholder="请输入"></el-input>
|
</el-form-item>
|
<el-form-item label="创建日期:">
|
<el-date-picker v-model="form.date" type="daterange" range-separator="至"
|
start-placeholder="开始日期" end-placeholder="结束日期"></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="2"></el-option>
|
<el-option label="已评定" value="3"></el-option>
|
<el-option label="已驳回" value="4"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="菌种实验员:">
|
<el-select v-model="form.experimentName" placeholder="请选择" @change="handleExperimentChange">
|
<el-option
|
v-for="item in experimentList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="" style="margin-left: 63px;">
|
<el-button type="default" style="margin-right: 10px;" @click="resetForm">重置</el-button>
|
<el-button type="primary">查询</el-button>
|
</el-form-item>
|
</el-form>
|
</template>
|
<template #setting>
|
<el-button @click="handleAddProject" class="el-icon-plus" type="primary">
|
新增报告</el-button>
|
<div class="table-setting">
|
<div class="table-tit" :class="!isDraft&&'table-title'" @click="handleTabChange(false)">
|
报告列表
|
</div>
|
<div class="table-tit" :class="isDraft&&'table-title'" @click="handleTabChange(true)">
|
草稿箱
|
</div>
|
</div>
|
|
</template>
|
<template #table>
|
<el-table-column prop="teamName" label="所属项目组" />
|
<el-table-column prop="reportCode" label="报告编号" />
|
<el-table-column prop="reportName" label="报告名称" />
|
<el-table-column prop="experimentName" label="菌种实验员">
|
</el-table-column>
|
<el-table-column prop="createBy" label="创建人" />
|
<el-table-column prop="createTime" label="创建时间" />
|
<el-table-column prop="status" label="状态">
|
<template #default="{ row }">
|
<el-tag v-if="row.status == 1" type="warning">待审核</el-tag>
|
<el-tag v-else-if="row.status == 2" type="info">待评定</el-tag>
|
<el-tag v-else-if="row.status == 3" type="success">已评定</el-tag>
|
<el-tag v-else-if="row.status == 4" type="danger">已驳回</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作">
|
<template #default="{ row }">
|
<el-button type="text" @click="handleAudit(row)">审核</el-button>
|
<el-button type="text" @click="handleDetail(row)">详情</el-button>
|
</template>
|
</el-table-column>
|
</template>
|
</TableCustom>
|
|
<Approval :visible="showApproval" @close="showApproval = false" />
|
<Evaluate :visible="showEvaluate" @close="showEvaluate = false" />
|
<ShowDelConfirm :show="showDelConfirm" @close="showDelConfirm = false" @confirm="handleDelConfirm" />
|
<ShowDelConfirm :title="changeStatusTitle" :tip="changeStatusTip" :show="changeStatus"
|
@close="changeStatus = false" @confirm="handleChangeStatusConfirm" />
|
</div>
|
</template>
|
|
<script>
|
import Approval from './components/approval'
|
import Evaluate from './components/evaluate'
|
import { getList } from './service'
|
|
export default {
|
name: 'ProjectList',
|
components: {
|
Approval,
|
Evaluate
|
},
|
data() {
|
return {
|
form: {
|
teamName: '',
|
reportName: '',
|
date: [],
|
status: '',
|
experimentName: ''
|
},
|
tableData: [],
|
showDelConfirm: false,
|
rowId: '',
|
changeStatus: false,
|
showApproval: false,
|
showEvaluate: false,
|
changeStatusTitle: '',
|
changeStatusTip: '',
|
queryForm: {
|
pageSize: 10,
|
pageNum: 1,
|
|
},
|
total: 0,
|
isDraft: false,
|
experimentList: []
|
}
|
},
|
mounted() {
|
this.getLists()
|
this.getExperimentList()
|
},
|
methods: {
|
handleAddProject() {
|
this.$router.push('/strainReportLibrary/add')
|
},
|
handleDel(row) {
|
this.rowId = row.id
|
this.showDelConfirm = true
|
},
|
handleDelConfirm() {
|
this.showDelConfirm = false
|
this.msgsuccess('删除成功')
|
this.rowId = ''
|
this.getLists()
|
},
|
handleChangeStatus(row, status) {
|
this.rowId = row.id
|
this.changeStatusTitle = status == 1 ? '确认要封存这个项目组吗?' : '确认要解封该项目组吗?'
|
this.changeStatusTip = status == 1 ? '封存后项目组内人员看不到数据,审批人仍然可见数据。' : '解封后项目组内人员数据恢复。'
|
this.changeStatus = true
|
},
|
handleChangeStatusConfirm() {
|
this.changeStatus = false
|
this.msgsuccess('操作成功')
|
this.rowId = ''
|
this.changeStatusTitle = ''
|
this.changeStatusTip = ''
|
this.getLists()
|
},
|
handleCurrentChange(page) {
|
this.queryForm.pageNum = page
|
this.getLists()
|
},
|
handleSizeChange(size) {
|
this.queryForm.pageSize = size
|
this.getLists()
|
},
|
handleTabChange(isDraft) {
|
this.isDraft = isDraft
|
this.form.status = ''
|
this.getLists()
|
},
|
getLists() {
|
const params = {
|
pageNum: this.queryForm.pageNum,
|
pageSize: this.queryForm.pageSize,
|
teamName: this.form.teamName,
|
reportName: this.form.reportName,
|
startTime: this.form.date && this.form.date[0] ? this.form.date[0] : '',
|
endTime: this.form.date && this.form.date[1] ? this.form.date[1] : '',
|
status: this.form.status,
|
isDraft: this.isDraft ? 1 : 0,
|
reportType: 1
|
}
|
getList(params).then(res => {
|
if (res.code === 200) {
|
this.total = res.data.total
|
this.tableData = res.data.records
|
}
|
})
|
},
|
resetForm() {
|
this.form = {
|
teamName: '',
|
reportName: '',
|
date: [],
|
status: '',
|
experimentName: ''
|
}
|
this.getLists()
|
},
|
handleAudit(row) {
|
this.showApproval = true
|
},
|
handleDetail(row) {
|
// 这里可以添加查看详情的逻辑
|
},
|
handleExperimentChange(val) {
|
this.getLists()
|
},
|
handleExperimentEdit(row, val) {
|
// 这里可以添加编辑实验员的接口调用
|
console.log('编辑实验员', row, val)
|
},
|
// 获取实验员列表
|
getExperimentList() {
|
// 这里调用获取实验员列表的接口
|
this.experimentList = [
|
{ id: 1, name: '实验员1' },
|
{ id: 2, name: '实验员2' },
|
{ id: 3, name: '实验员3' }
|
]
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="less">
|
.el-icon-plus{
|
margin-bottom: 20px;
|
}
|
.header-content {
|
font-family: PingFangSC, PingFang SC;
|
font-weight: 400;
|
font-size: 14px;
|
color: rgba(0, 0, 0, 0.88);
|
margin-left: 30px;
|
}
|
|
.box-title {
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
font-weight: bold;
|
font-size: 18px;
|
color: #222222;
|
line-height: 27px;
|
display: flex;
|
align-items: center;
|
}
|
|
.header-icon {
|
width: 20px;
|
height: 20px;
|
margin-right: 10px;
|
|
}
|
|
.header-box {
|
border-radius: 16px;
|
margin-bottom: 30px;
|
}
|
|
.table-setting {
|
display: flex;
|
gap: 14px;
|
}
|
|
.table-tit {
|
background: #FAFAFC;
|
border-radius: 8px 8px 0px 0px;
|
border: 1px solid #DCDFE6;
|
width: 166px;
|
height: 50px;
|
border-radius: 8px 8px 0px 0px;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
// margin-bottom: 21px;
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
font-weight: bold;
|
font-size: 18px;
|
color: rgba(96, 98, 102, 1);
|
line-height: 27px;
|
}
|
|
.list {
|
height: 100%;
|
}
|
|
.table-title {
|
width: 166px;
|
height: 50px;
|
background: #FFFFFF;
|
border-radius: 8px 8px 0px 0px;
|
border: 1px solid #049C9A;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
// margin-bottom: 21px;
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
font-weight: bold;
|
font-size: 18px;
|
color: #049C9A;
|
line-height: 27px;
|
}
|
</style>
|