191 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | |
|   <el-card shadow="never">
 | |
|     <div slot="header" class="clearfix">
 | |
|       <span>{{ doctorName }} ' {{ listQuery.Status==5?"Pending":listQuery.Status==8?"Approved":"Reading" }} trials</span>
 | |
|     </div>
 | |
|     <el-table
 | |
|       ref="trialsList"
 | |
|       v-loading="listLoading"
 | |
|       :data="list"
 | |
|       stripe
 | |
|       class="table"
 | |
|       size="small"
 | |
|       :height="tableHeight"
 | |
|       @sort-change="handleSortChange"
 | |
|     >
 | |
|       <el-table-column type="index" width="50" />
 | |
| 
 | |
|       <el-table-column
 | |
|         prop="Code"
 | |
|         min-width="110"
 | |
|         label="Trial ID"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
| 
 | |
|       <el-table-column
 | |
|         prop="Expedited"
 | |
|         min-width="110"
 | |
|         label="Expedited"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       >
 | |
|         <template
 | |
|           slot-scope="scope"
 | |
|         >{{ scope.row.Expedited==0?'No':scope.row.Expedited==1?'24H':'48H' }}</template>
 | |
|       </el-table-column>
 | |
|       <el-table-column
 | |
|         prop="Indication"
 | |
|         label="Indication"
 | |
|         min-width="120"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="Phase"
 | |
|         min-width="100"
 | |
|         label="Phase"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="ReviewType"
 | |
|         label="Review Type"
 | |
|         min-width="120"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="Criterion"
 | |
|         label="Criteria"
 | |
|         min-width="120"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="Modalities"
 | |
|         label="Modalities"
 | |
|         min-width="120"
 | |
|         :formatter="ModalitiesFormatter"
 | |
|         show-overflow-tooltip
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="CRO"
 | |
|         label="CRO"
 | |
|         min-width="120"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="Sponsor"
 | |
|         label="Sponsor"
 | |
|         min-width="120"
 | |
|         show-overflow-tooltip
 | |
|         sortable="custom"
 | |
|       />
 | |
|       <el-table-column
 | |
|         prop="CreateTime"
 | |
|         label="Date Created"
 | |
|         min-width="120"
 | |
|         show-overflow-tooltip
 | |
|         :formatter="timeFormatter"
 | |
|         sortable="custom"
 | |
|       />
 | |
|     </el-table>
 | |
|     <div style="margin-top:5px;text-align:right">
 | |
|       <pagination
 | |
|         :total="total"
 | |
|         :page.sync="listQuery.PageIndex"
 | |
|         :limit.sync="listQuery.PageSize"
 | |
|         @pagination="getList"
 | |
|       />
 | |
|     </div>
 | |
| 
 | |
|   </el-card>
 | |
| </template>
 | |
| <script>
 | |
| import { formatUTCTime } from '@/utils/formatter'
 | |
| import Pagination from '@/components/Pagination'
 | |
| import { getDoctorTrialListByStatus } from '@/api/reviewers'
 | |
| import store from '@/store'
 | |
| import { changeURLStatic } from '@/utils/history.js'
 | |
| export default {
 | |
|   name: 'TrialStats',
 | |
|   components: { Pagination },
 | |
|   data() {
 | |
|     return {
 | |
|       list: [],
 | |
|       listQuery: {
 | |
|         DoctorId: '',
 | |
|         Status: 0,
 | |
|         PageIndex: 1,
 | |
|         PageSize: 20,
 | |
|         Asc: false,
 | |
|         SortField: ''
 | |
|       },
 | |
|       total: 0,
 | |
|       doctorName: '',
 | |
|       listLoading: false,
 | |
|       tableHeight: document.documentElement.clientHeight - 160
 | |
|     }
 | |
|   },
 | |
|   mounted() {
 | |
|     if (this.$router.currentRoute.query.TokenKey) {
 | |
|       store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
 | |
|       changeURLStatic('TokenKey', '')
 | |
|     }
 | |
|     this.listQuery.DoctorId = this.$router.currentRoute.query.doctorId
 | |
|     this.listQuery.Status = this.$router.currentRoute.query.status
 | |
|     this.doctorName = this.$router.currentRoute.query.name
 | |
| 
 | |
|     this.getList()
 | |
|   },
 | |
|   methods: {
 | |
|     getList() {
 | |
|       this.listLoading = true
 | |
|       getDoctorTrialListByStatus(this.listQuery).then(res => {
 | |
|         this.list = res.Result.CurrentPageData
 | |
|         this.total = res.Result.TotalCount
 | |
|         this.listLoading = false
 | |
|       }).catch(() => { this.listLoading = false })
 | |
|     },
 | |
|     handleSortChange(column) {
 | |
|       if (column.order === 'ascending') {
 | |
|         this.listQuery.Asc = true
 | |
|       } else {
 | |
|         this.listQuery.Asc = false
 | |
|       }
 | |
|       if (column.prop === 'ReviewType') {
 | |
|         column.prop = 'ReviewTypeId'
 | |
|       } else if (column.prop === 'Criterion') {
 | |
|         column.prop = 'CriterionId'
 | |
|       }
 | |
|       this.listQuery.SortField = column.prop
 | |
|       this.listQuery.PageIndex = 1
 | |
|       this.getList()
 | |
|     },
 | |
|     ModalitiesFormatter(row, column) {
 | |
|       if (row.ModalityList.length > 0) return row.ModalityList.join(', ')
 | |
|     },
 | |
|     timeFormatter(row) {
 | |
|       if (row.CreateTime) {
 | |
|         return formatUTCTime(row.CreateTime)
 | |
|       }
 | |
|     },
 | |
|     handleTrialstatus(row) {
 | |
|       if (row.TrialStatusStr === 'RFP') {
 | |
|         return 'Request for Proposal'
 | |
|       } else if (row.TrialStatusStr === 'Submitted') {
 | |
|         return 'CVs Submitted'
 | |
|       } else if (row.TrialStatusStr === 'Approved') {
 | |
|         return 'Readers Approved'
 | |
|       } else if (row.TrialStatusStr === 'Approved') {
 | |
|         return 'Readers Approved'
 | |
|       } else {
 | |
|         return row.TrialStatusStr
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 |