<template>
|
<div>
|
<div align="left">
|
<!-- 实际支付费用 -->
|
<div class="btn-line">
|
<el-button type="primary" @click="showDetail">确认费用</el-button>
|
</div>
|
<el-form label-width="80px" :inline="true" :label-position="labelPosition" :model="formInline" class="form-inline">
|
<el-form-item label="项目名称">
|
<el-input v-model="formInline.name" placeholder="项目名称"></el-input>
|
</el-form-item>
|
|
<el-form-item label="研究类型分类" label-width="100px">
|
<el-select v-model="formInline.type" placeholder="研究类型分类">
|
<el-option
|
v-for="(item,k) in options_type"
|
:key="k"
|
:label="item"
|
:value="item"
|
></el-option>
|
<!-- <el-option label="干预性系统评价" value="干预性系统评价"></el-option>
|
<el-option label="诊断性系统评价" value="诊断性系统评价"></el-option>
|
<el-option label="预后性系统评价" value="预后性系统评价"></el-option>
|
<el-option label="相关性系统评价" value="相关性系统评价"></el-option> -->
|
</el-select>
|
</el-form-item>
|
|
|
<el-form-item label="项目状态">
|
<el-select v-model="formInline.status" placeholder="项目状态">
|
<el-option label="未开始" value="edit"></el-option>
|
<el-option label="进行中" value="working"></el-option>
|
<el-option label="已延期" value="delay"></el-option>
|
<el-option label="已结束" value="finish"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item >
|
<el-button type="primary" @click="query_">查询</el-button>
|
<el-button type="info" @click="empty_">重置</el-button>
|
</el-form-item>
|
</el-form>
|
<div class="btn-line">
|
</div>
|
</div>
|
|
<el-table highlight-current-row
|
ref="data_table"
|
@current-change="tableChange"
|
v-loading="loading_table"
|
size="small"
|
:data="tableData"
|
:header-cell-style="{'width': '100%', 'text-align': 'center'}"
|
:row-class-name="tableRowClassName">
|
<el-table-column type="index" width="50"> </el-table-column>
|
<el-table-column prop="name" label="项目名称" width="120" show-overflow-tooltip>
|
</el-table-column>
|
<el-table-column prop="status" label="当前状态" width="100" align="center" :formatter="status_">
|
</el-table-column>
|
<el-table-column prop="type" label="研究类型分类" show-overflow-tooltip width="130">
|
</el-table-column>
|
<el-table-column prop="totalCnt" label="服务项目数" width="100" align="center">
|
</el-table-column>
|
<el-table-column prop="finishCnt" label="已完成项目" width="100" align="center">
|
</el-table-column>
|
<el-table-column prop="delayCnt" label="延期项目" width="100" align="center">
|
</el-table-column>
|
<el-table-column prop="startTime" label="开始时间" width="100" align="center" :formatter="dateFormat_">
|
</el-table-column>
|
<el-table-column prop="endTime" label="结束时间" width="100" align="center" :formatter="dateFormat_" >
|
</el-table-column>
|
<el-table-column prop="desc" label="项目描述" show-overflow-tooltip></el-table-column>
|
</el-table>
|
<div style="text-align: right; background-color: #fff;">
|
<el-pagination
|
@current-change="handleCurrentChange"
|
background :current-page="pagenum"
|
:page-sizes="[15]"
|
:page-size="pagesize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="total">
|
</el-pagination>
|
</div>
|
|
<el-dialog title="项目详情确认" v-if="dialog_2" @close="Cancel2" width="70%" top="50px" :visible.sync="dialog_2" append-to-body>
|
<substepReadOnly @closeProject="closeDetail" v-bind:xmId="detailData.id" ref="newProject2_"></substepReadOnly>
|
</el-dialog>
|
|
</div>
|
</template>
|
|
<script>
|
import substepReadOnly from './popup/substepReadOnly.vue';
|
export default {
|
|
components: {
|
substepReadOnly,
|
},
|
data() {
|
return {
|
editShow: true,
|
upload_url: "",
|
upload_type: "",
|
upload_headers: {},
|
upload_data: {},
|
|
pdfUrl: "",
|
currentPage: 1,
|
pageCount: 0,
|
options_type:[
|
"Health technology assessment (HTA)",
|
"Clinical practice guideline (CPG)",
|
"Evidence mapping",
|
"Overview of review",
|
"Scoping review",
|
"Rapid review",
|
"Systematic review",
|
"Rapid review",
|
"Randomised controlled trial (RCT)",
|
"Other"
|
],
|
|
loading_table: false,
|
query: "",
|
rowData:undefined,
|
detailData:undefined,
|
dialog_1: false,
|
dialog_2: false,
|
dialog_upload: false,
|
dialog_pdf: false,
|
pagenum: 1,
|
pagesize: 15,
|
total: 0,
|
selected: undefined,
|
labelPosition: "left",
|
tableData: [],
|
userId:"",
|
assign:undefined,
|
formInline: {
|
user: '',
|
region: ''
|
},
|
}
|
},
|
mounted() { //组件配置后,页面显示前。用于加载数据
|
this.getData();
|
//this.userId = localStorage.getItem('userId');
|
//this.assign = localStorage.getItem('assign');
|
|
this.userId = this.$cookies.get('userId');
|
this.assign = this.$cookies.get('assign');
|
},
|
methods: {
|
Cancel2() {
|
this.dialog_2 = false;
|
//this.closeDetail();
|
},
|
closeDetail() {
|
this.dialog_2 = false;
|
//this.detailData = undefined;
|
},
|
showDetail() {
|
if(!this.selected || !this.selected.id){
|
this.$message({message:'请选中一个项目', type: 'warning'});
|
return;
|
}
|
this.dialog_2 = true;
|
},
|
tableChange(val) {
|
if (!val) {
|
val = {};
|
}
|
this.selected = val;
|
this.detailData = val;
|
// this.editShow = true;
|
if (this.selected.userId == this.userId) {
|
this.editShow = true;
|
}else {
|
this.editShow = false;
|
}
|
|
},
|
handleCurrentChange(pageno) {
|
this.pagenum = pageno;
|
this.query_();
|
},
|
empty_() {
|
this.formInline = {};
|
this.query_();
|
},
|
query_() {
|
this.getData(this.formInline);
|
},
|
getData(query) {
|
this.loading_table = true;
|
let pageno = this.pagenum;
|
let url = "/api/scheme/page/" + pageno;
|
|
let params = {
|
pageSize: this.pagesize,
|
isRun: true
|
};
|
if(this.assign == "true") {
|
params.userId = this.userId;
|
}
|
if(query){
|
params.name = query.name;
|
params.status = query.status;
|
params.type = query.type;
|
}
|
this.$axios.get(url, {
|
params
|
})
|
.then(data_ => {
|
window.console.log(data_);
|
let clientHeight = document.documentElement.clientHeight;
|
let tableHeight_ = clientHeight - 60 - 20 - 60 - 62 - 48 - 48 - 20;
|
this.$refs.data_table.$el.getElementsByClassName('el-table__body-wrapper')[0].style['height'] = tableHeight_ - 10 + "px";// - header_height
|
this.$refs.data_table.$el.getElementsByClassName('el-table__body-wrapper')[0].style['min-height'] = tableHeight_ - 10 + "px";
|
this.$refs.data_table.$el.getElementsByClassName('el-table__body-wrapper')[0].style['overflow'] = "overlay";
|
|
this.tableData = data_.data.data.datas.records; //给tableData赋值
|
this.total = data_.data.data.datas.total;
|
this.loading_table = false;
|
}).catch(error => {
|
// console.log(error);
|
})
|
},
|
tableRowClassName(row, rowIndex) {
|
if (row.finish) {
|
return 'success-row';
|
} else if(row.delay){
|
return 'warning-row';
|
}
|
return '';
|
},
|
onSubmit() {
|
query_();
|
},
|
dateFormat_(row, colum, val ,index) {
|
return this.$moment(val).format('YYYY-MM-DD');
|
|
},
|
status_(row, colum, val ,index) {
|
if(val == "working") {
|
return "进行中";
|
}else if(val == "edit") {
|
return "未开始";
|
}else if(val == "delay") {
|
return "已延期";
|
}else if(val == "finish") {
|
return "已结束";
|
}
|
},
|
finishFotmat(row, colum, val ,index) {
|
if(val) {
|
return "已结束";
|
}else {
|
return "进行中";
|
}
|
},
|
addProject() {
|
this.dialog_1 = true;
|
this.rowData = {};
|
},
|
editProject() {
|
if(!this.selected || this.selected.status == "finish"){
|
|
this.$message({message:'请选中一条未完成的项目', type: 'warning'});
|
}else {
|
this.rowData = {
|
id:this.selected.id,
|
desp:this.selected.desp,
|
name: this.selected.name,
|
beginDate: this.selected.beginDate,
|
endDate: this.selected.endDate,
|
objective:this.selected.reseachType,
|
items:[this.$moment(this.selected.startTime).format('YYYY-MM-DD'),this.$moment(this.selected.endTime).format('YYYY-MM-DD')]
|
}
|
this.dialog_1 = true;
|
}
|
|
|
},closeNewProject() {
|
this.dialog_1 = false;
|
query_();
|
},
|
|
}
|
}
|
</script>
|
|
<style>
|
.btn-line {
|
margin-bottom: 20px;
|
}
|
.el-table .warning-row {
|
background: oldlace;
|
}
|
|
.el-table .success-row {
|
background: #f0f9eb;
|
}
|
</style>
|