<template>
|
<div class="list">
|
<TableCustom :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.name" placeholder="请输入"></el-input>
|
</el-form-item>
|
<el-form-item label="报告标题">
|
<el-input v-model="form.name" placeholder="请输入"></el-input>
|
</el-form-item>
|
<el-form-item label="报告编号">
|
<el-input v-model="form.name" placeholder="请输入"></el-input>
|
</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="0"></el-option>
|
<el-option label="已驳回" value="2"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="" style="margin-left: 63px;">
|
<el-button type="default" style="margin-right: 10px;">重置</el-button>
|
<el-button type="primary">查询</el-button>
|
</el-form-item>
|
</el-form>
|
</template>
|
<template #setting>
|
<div class="table-setting">
|
<div class="flex a-center">
|
<div class="table-title" :class="{ active: currentType === 'list' }" @click="handleTypeChange('list')">
|
中试、生产验证试验检验分析报告
|
</div>
|
<div class="table-tit" :class="{ active: currentType === 'draft' }" @click="handleTypeChange('draft')">
|
草稿箱
|
</div>
|
</div>
|
<el-button @click="handleAddProject" class="el-icon-plus" type="primary">
|
新增</el-button>
|
</div>
|
</template>
|
<template #table>
|
<el-table-column prop="name" label="所属项目组" />
|
<el-table-column prop="age" label="报告标题" />
|
<el-table-column prop="age" label="报告编号" />
|
<el-table-column prop="age" label="制定人" />
|
<el-table-column prop="age" label="制定日期" />
|
<el-table-column prop="age" label="操作">
|
<template #default="{ row }">
|
<el-button type="text" @click="showApproval = true">详情</el-button>
|
</template>
|
</el-table-column>
|
</template>
|
</TableCustom>
|
|
<Approval :visible="showApproval" @close="showApproval = 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'
|
|
export default {
|
name: 'ProjectList',
|
components: {
|
Approval
|
},
|
data() {
|
return {
|
currentType: 'list', // 当前显示类型:list-列表,draft-草稿箱
|
form: {
|
name: '',
|
status: '',
|
pageNum: 1,
|
pageSize: 10
|
},
|
showDelConfirm: false,
|
rowId: '',
|
changeStatus: false,
|
showApproval: false,
|
changeStatusTitle: '',
|
changeStatusTip: '',
|
queryForm: {
|
pageSize: 10,
|
pageNum: 1
|
},
|
total: 0
|
}
|
},
|
methods: {
|
handleAddProject() {
|
this.$router.push('/chemistQa/addPilot')
|
},
|
handleDel(row) {
|
this.rowId = row.id
|
this.showDelConfirm = true
|
},
|
handleDelConfirm() {
|
this.showDelConfirm = false
|
this.msgsuccess('删除成功')
|
this.rowId = ''
|
this.getList()
|
},
|
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.getList()
|
},
|
handleCurrentChange(page) {
|
this.queryForm.pageNum = page
|
this.getList()
|
},
|
handleSizeChange(size) {
|
this.queryForm.pageSize = size
|
this.getList()
|
},
|
getList() {
|
|
},
|
handleTypeChange(type) {
|
this.currentType = type;
|
this.form.status = type === 'draft' ? -1 : '';
|
this.getList();
|
}
|
}
|
}
|
</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;
|
padding-bottom: 20px;
|
justify-content: space-between;
|
align-items: center;
|
}
|
|
.flex {
|
display: flex;
|
align-items: center;
|
}
|
|
.table-title {
|
// width: 220px;
|
padding: 0 29px;
|
height: 50px;
|
background: #fafafc;
|
border-radius: 8px 8px 0px 0px;
|
border: 1px solid #dcdfe6;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
font-weight: bold;
|
font-size: 18px;
|
color: #606266;
|
line-height: 27px;
|
cursor: pointer;
|
transition: all 0.3s ease;
|
|
&.active {
|
color: #049c9a;
|
background: #ffffff;
|
border: 1px solid #049c9a;
|
}
|
}
|
|
.table-tit {
|
width: 166px;
|
height: 50px;
|
background: #fafafc;
|
border-radius: 8px 8px 0px 0px;
|
border: 1px solid #dcdfe6;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
font-weight: bold;
|
font-size: 18px;
|
color: #606266;
|
line-height: 27px;
|
margin-left: 16px;
|
cursor: pointer;
|
transition: all 0.3s ease;
|
|
&.active {
|
color: #049c9a;
|
background: #ffffff;
|
border: 1px solid #049c9a;
|
}
|
}
|
|
.list {
|
height: 100%;
|
}
|
</style>
|