190 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			190 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | |
|   <div class="status-info">
 | |
|     <el-form :inline="true" :model="basicInfo" class="demo-form-inline" size="small">
 | |
|       <el-row>
 | |
|         <el-col :span="6">
 | |
|           <el-form-item label="Pending:">
 | |
|             <span v-if="statusList.Submitted" style="color:#428bca">
 | |
|               <router-link
 | |
|                 :to="{
 | |
|                   path: `/trialStats?name=${basicInfo.FirstName+' '+basicInfo.LastName}&doctorId=${basicInfo.Id}&status=5&TokenKey=${tokenKey}`
 | |
|                 }"
 | |
|                 target="_blank"
 | |
|                 title="Pending client approval"
 | |
|               >{{ statusList.Submitted }}</router-link>
 | |
|             </span>
 | |
|             <span v-else>{{ statusList.Submitted }}</span>
 | |
|           </el-form-item>
 | |
|         </el-col>
 | |
|         <el-col :span="6">
 | |
|           <el-form-item label="Approved:">
 | |
|             <span v-if="statusList.Approved" style="color:#428bca">
 | |
|               <router-link
 | |
|                 :to="{
 | |
|                   path: `/trialStats?name=${basicInfo.FirstName+' '+basicInfo.LastName}&doctorId=${basicInfo.Id}&status=8&TokenKey=${tokenKey}`
 | |
|                 }"
 | |
|                 target="_blank"
 | |
|                 title="Approved, waiting for training"
 | |
|               >{{ statusList.Approved }}</router-link>
 | |
|             </span>
 | |
|             <span v-else>{{ statusList.Approved }}</span>
 | |
|           </el-form-item>
 | |
|         </el-col>
 | |
|         <el-col :span="6">
 | |
|           <el-form-item label="Reading:">
 | |
|             <span v-if="statusList.Reading" style="color:#428bca">
 | |
|               <router-link
 | |
|                 :to="{
 | |
|                   path: `/trialStats?name=${basicInfo.FirstName+' '+basicInfo.LastName}&doctorId=${basicInfo.Id}&status=10&TokenKey=${tokenKey}`
 | |
|                 }"
 | |
|                 target="_blank"
 | |
|               >{{ statusList.Reading }}</router-link>
 | |
|             </span>
 | |
|             <span v-else>{{ statusList.Reading }}</span>
 | |
|           </el-form-item>
 | |
|         </el-col>
 | |
|         <el-col :span="6">
 | |
|           <el-form-item label="On Vacation:">
 | |
|             <span style="font-size:12px;margin-right:20px;">{{ holiday }}</span>
 | |
|             <el-button
 | |
|               type="text"
 | |
|               size="small"
 | |
|               @click="initHolidayList"
 | |
|             >Planned Vacation</el-button>
 | |
|           </el-form-item>
 | |
|         </el-col>
 | |
|       </el-row>
 | |
|     </el-form>
 | |
|     <el-dialog
 | |
|       title="Vacation"
 | |
|       :visible.sync="dialogVisible"
 | |
|       width="35%"
 | |
|       :close-on-click-modal="false"
 | |
|     >
 | |
|       <el-table v-loading="loading" :data="list" size="small">
 | |
|         <el-table-column type="index" />
 | |
|         <el-table-column
 | |
|           property="StartDate"
 | |
|           label="Beginning Date"
 | |
|           min-width="120"
 | |
|           :formatter="beginTimeFormatter"
 | |
|         />
 | |
|         <el-table-column
 | |
|           property="EndDate"
 | |
|           label="End Date"
 | |
|           min-width="120"
 | |
|           :formatter="endTimeFormatter"
 | |
|         />
 | |
|       </el-table>
 | |
|       <div class="pagination">
 | |
|         <el-pagination
 | |
|           background
 | |
|           layout="total,sizes,prev, pager, next"
 | |
|           :total="total"
 | |
|           :page-sizes="[5, 10, 20, 50]"
 | |
|           :page-size="pageSize"
 | |
|           :current-page.sync="pageIndex"
 | |
|           @current-change="handleCurrentChange"
 | |
|           @size-change="handleSizeChange"
 | |
|         />
 | |
|       </div>
 | |
|     </el-dialog>
 | |
|   </div>
 | |
| </template>
 | |
| <script>
 | |
| import { getVacationList } from '@/api/reviewers'
 | |
| import { fmtDate } from '@/utils/formatter'
 | |
| import { getToken } from '@/utils/auth'
 | |
| export default {
 | |
|   props: {
 | |
|     basicInfo: {
 | |
|       type: Object,
 | |
|       default() {
 | |
|         return {}
 | |
|       }
 | |
|     },
 | |
|     statusList: {
 | |
|       type: Object,
 | |
|       default() {
 | |
|         return {}
 | |
|       }
 | |
|     },
 | |
|     doctorId: {
 | |
|       type: String,
 | |
|       default: ''
 | |
|     },
 | |
|     holiday: {
 | |
|       type: String,
 | |
|       default: ''
 | |
|     }
 | |
|   },
 | |
|   data() {
 | |
|     return {
 | |
|       list: [],
 | |
|       total: 0,
 | |
|       dialogVisible: false,
 | |
|       loading: false,
 | |
|       pageIndex: 1,
 | |
|       pageSize: 10,
 | |
|       tokenKey: getToken()
 | |
|     }
 | |
|   },
 | |
|   methods: {
 | |
|     initHolidayList() {
 | |
|       this.dialogVisible = true
 | |
|       this.loading = true
 | |
|       getVacationList(this.doctorId, this.pageIndex, this.pageSize)
 | |
|         .then(res => {
 | |
|           if (res.IsSuccess) {
 | |
|             this.list = res.Result.CurrentPageData
 | |
|             this.total = res.Result.TotalCount
 | |
|           }
 | |
|           this.loading = false
 | |
|         })
 | |
|         .catch(() => {
 | |
|           this.loading = false
 | |
|         })
 | |
|     },
 | |
|     beginTimeFormatter(row) {
 | |
|       if (row.StartDate) {
 | |
|         return fmtDate(row.StartDate)
 | |
|       }
 | |
|     },
 | |
|     endTimeFormatter(row) {
 | |
|       if (row.EndDate) {
 | |
|         return fmtDate(row.EndDate)
 | |
|       }
 | |
|     },
 | |
|     handleCurrentChange(val) {
 | |
|       this.pageIndex = val
 | |
|       this.initHolidayList()
 | |
|     },
 | |
|     handleSizeChange(val) {
 | |
|       this.pageSize = val
 | |
|       this.initHolidayList()
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss">
 | |
| .status-info{
 | |
|   padding:5px 15px;
 | |
|   font-size:13px;
 | |
|   .el-form-item--mini.el-form-item{
 | |
|     margin-bottom: 0px;
 | |
|   }
 | |
|   .el-form-item--small.el-form-item{
 | |
|     margin-bottom: 0px;
 | |
|   }
 | |
|   .el-form-item__content{
 | |
|     font-size: 13px;
 | |
|   }
 | |
|   .el-form-item__label{
 | |
|     font-size: 13px;
 | |
|     color: #303133;
 | |
|     font-weight: bold;
 | |
|   }
 | |
| }
 | |
| </style>
 |