bob
2020-11-25 84326b11401f217cd483d13bc72cec4ffd5da7ce
src/views/list.vue
@@ -1,9 +1,9 @@
<template>
   <!-- 已完成的不修改需将 finish1 改成 finish -->
   <div>
      <div align="left">
         <div class="btn-line">
            <el-button type="primary" @click="addProject">新建项目</el-button>
            <!-- <el-button type="primary" @click="addProject">新建项目</el-button> -->
            <el-button type="primary" v-if="editShow" @click="editProject">编辑项目</el-button>
            <el-button type="primary" @click="showDetail">查看详情</el-button>
            <el-button type="primary" @click="download">导出timeline</el-button>
@@ -17,12 +17,14 @@
               <el-input v-model="formInline.name" placeholder="项目名称"></el-input>
            </el-form-item>
            
            <el-form-item label="研究目的">
               <el-select v-model="formInline.type" placeholder="研究目的">
                  <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-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-select>
            </el-form-item>
            
@@ -49,34 +51,35 @@
      <el-table  highlight-current-row
            ref="data_table"
            @current-change="tableChange"
            @sort-change="sortChange"
            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 prop="code" label="项目号" width="130" sortable="custom">
         </el-table-column>
         <el-table-column prop="status" label="当前状态" width="100" align="center" :formatter="status_">
         <el-table-column prop="name" label="项目名称" width="120" sortable="custom" show-overflow-tooltip>
         </el-table-column>
         <el-table-column prop="reseachType" label="研究类型" width="130">
         <el-table-column prop="status" label="当前状态" width="100" sortable="custom" align="center" :formatter="status_">
         </el-table-column>
         <el-table-column prop="totalCnt" label="服务项目数" width="100" align="center">
         <el-table-column prop="totalCnt" label="服务项目数" width="120"  align="center">
         </el-table-column>
         <el-table-column prop="finishCnt" label="已完成项目" width="100" align="center">
         <el-table-column prop="finishCnt" label="已完成项目" width="120"  align="center">
         </el-table-column>
         <el-table-column prop="delayCnt" label="延期项目" width="100" align="center">
         <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 prop="startTime" label="开始时间" width="100" sortable="custom" align="center" :formatter="dateFormat_">
         </el-table-column>
         <el-table-column prop="endTime" label="结束时间" width="100" align="center" :formatter="dateFormat_" >
         <el-table-column prop="endTime" label="结束时间" width="100" sortable="custom" align="center" :formatter="dateFormat_" >
         </el-table-column>
         <el-table-column prop="desp" label="项目描述" show-overflow-tooltip></el-table-column>
         <el-table-column prop="desc" label="项目描述" show-overflow-tooltip></el-table-column>
         <el-table-column label="操作" align="center" width="300">
           <template v-slot="{row}">
             <el-row>
               <el-tooltip class="item" effect="dark" content="预览" placement="top">
                 <el-button type="primary" icon=" el-icon-view" circle @click="viewHT(row)"></el-button>
                 <el-button :disabled="!row.attachment" type="primary" icon=" el-icon-view" circle @click="viewHT(row)"></el-button>
               </el-tooltip>
               <el-tooltip class="item" effect="dark" content="上传报价合同" placement="top">
                 <el-button type="success" icon="el-icon-upload2" circle @click="uploadHT(row)"></el-button>
@@ -181,20 +184,63 @@
            labelPosition: "left",
            tableData: [],
            userId:"",
            assign:undefined,
            formInline: {
               user: '',
               region: ''
            },
            assign:null,
            formInline: {},
            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"
            ],
            orderBy: "",
         }
      },
      mounted() { //组件配置后,页面显示前。用于加载数据
         //this.userId = localStorage.getItem('userId');
         //this.assign = localStorage.getItem('assign');
         this.userId = this.$cookies.get('userId');
         this.assign = this.$cookies.get('assign');
         this.getData();
         this.userId = localStorage.getItem('userId');
         this.assign = localStorage.getItem('assign');
      },
      methods: {
         sortChange(column, prop, order) {
            this.orderBy = "";
            if (column.prop && column.order) {
               this.orderBy = this.toLine(column.prop);
               if (column.order == "descending") {
                  this.orderBy += " desc";
               }
            }
            this.query_();
         },
         // 下划线转换驼峰
         toHump(name) {
             return name.replace(/\_(\w)/g, function(all, letter){
                 return letter.toUpperCase();
             });
         },
         // 驼峰转换下划线
         toLine(name) {
           return name.replace(/([A-Z])/g,"_$1").toLowerCase();
         },
         download() {
            if (!this.selected) {
               this.$message({message:'请选择下载条目', type: 'warning'});
               return;
            }
            if(!this.selected.id || this.selected.status == "edit"){
               this.$message({message:'【未开始】状态不能下载', type: 'warning'});
               return;
@@ -312,14 +358,24 @@
            let params =  {
               pageSize: this.pagesize
            };
            if(this.assign) {
            if(this.assign == "true") {
               params.userId = this.userId;
            }
            if(query){
            if (query && query.name) {
               params.name = query.name;
            }
            if (query && query.status) {
               params.status = query.status;
            }
            if (query && query.type) {
               params.type = query.type;
            }
            if(this.orderBy) {
               params.orderBy = this.orderBy;
            }
            this.$axios.get(url, {
                  params
               })
@@ -376,13 +432,14 @@
            this.rowData = {};
         },
         editProject() {
            if(!this.selected || this.selected.status == "finish"){
            //已完成的不修改需将 finish1 改成 finish
         //   if(!this.selected || this.selected.status == "finish"){
            if(!this.selected || this.selected.status == "finish1"){
               this.$message({message:'请选中一条未完成的项目', type: 'warning'});
            }else {
               this.rowData = {
                  id:this.selected.id,
                  desp:this.selected.desp,
                  desc:this.selected.desc,
                  name: this.selected.name,
                  beginDate: this.selected.beginDate,
                  endDate: this.selected.endDate,