215 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
<template>
 | 
						|
  <el-table
 | 
						|
    v-adaptive="{bottomOffset:45}"
 | 
						|
    v-loading="listLoading"
 | 
						|
    stripe
 | 
						|
    height="100"
 | 
						|
    :data="list"
 | 
						|
    @sort-change="sortByColumn"
 | 
						|
    @selection-change="handleSelectChange"
 | 
						|
  >
 | 
						|
    <el-table-column type="selection" align="left" width="45" :selectable="hasResume" />
 | 
						|
    <el-table-column type="index" width="40" align="left" />
 | 
						|
    <el-table-column
 | 
						|
      align="left"
 | 
						|
      prop="LastName"
 | 
						|
      label="Name"
 | 
						|
      show-overflow-tooltip
 | 
						|
      width="130"
 | 
						|
      sortable="custom"
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        {{ scope.row.LastName + ' / ' + scope.row.FirstName }}
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column
 | 
						|
      prop="ChineseName"
 | 
						|
      label="Name CN"
 | 
						|
      show-overflow-tooltip
 | 
						|
      width="90"
 | 
						|
      align="left"
 | 
						|
    />
 | 
						|
    <el-table-column prop="ReviewerCode" label="ID" width="80" show-overflow-tooltip sortable="custom" />
 | 
						|
    <el-table-column
 | 
						|
      label="Reading"
 | 
						|
      width="100"
 | 
						|
      show-overflow-tooltip
 | 
						|
      sortable="custom"
 | 
						|
      align="left"
 | 
						|
      prop="Reading"
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <span v-if="scope.row.Reading" style="color:#428bca">
 | 
						|
          <router-link
 | 
						|
            tag="a"
 | 
						|
            :to="{ name: 'trialStats', query: { name:scope.row.FirstName+' '+scope.row.LastName,doctorId: scope.row.Id,status:10 }}"
 | 
						|
            target="_blank"
 | 
						|
          >{{ scope.row.Reading }}</router-link>
 | 
						|
        </span>
 | 
						|
        <span v-else>{{ scope.row.Reading }}</span>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column
 | 
						|
      label="Finished"
 | 
						|
      width="100"
 | 
						|
      show-overflow-tooltip
 | 
						|
      sortable="custom"
 | 
						|
      align="left"
 | 
						|
      prop="Finished"
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <span v-if=" scope.row.Finished" style="color:#428bca">
 | 
						|
          <router-link
 | 
						|
            tag="a"
 | 
						|
            :to="{ name: 'trialStats', query: { name:scope.row.FirstName+' '+scope.row.LastName,doctorId: scope.row.Id,status:14 }}"
 | 
						|
            target="_blank"
 | 
						|
          >{{ scope.row.Finished }}</router-link>
 | 
						|
        </span>
 | 
						|
        <span v-else>{{ scope.row.Finished }}</span>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column
 | 
						|
      align="left"
 | 
						|
      prop="SpecialityId"
 | 
						|
      label="Specialty"
 | 
						|
      sortable="custom"
 | 
						|
      show-overflow-tooltip
 | 
						|
      width="130"
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <span>
 | 
						|
          {{ scope.row.SpecialityId === otherId ? scope.row.SpecialityOther : isEnglish?scope.row.Speciality:scope.row.SpecialityCN }}
 | 
						|
        </span>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column
 | 
						|
      align="left"
 | 
						|
      prop="Subspeciality"
 | 
						|
      label="Subspecialty"
 | 
						|
      show-overflow-tooltip
 | 
						|
      min-width="150"
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <span v-if="isEnglish">
 | 
						|
          {{ scope.row.SubspecialityList.length>0?scope.row.SubspecialityList.join(', '):'' }}
 | 
						|
        </span>
 | 
						|
        <span v-else>
 | 
						|
          {{ scope.row.SubspecialityCNList.length>0?scope.row.SubspecialityCNList.join(', '):'' }}
 | 
						|
        </span>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column
 | 
						|
      prop="HospitalName"
 | 
						|
      label="Institution"
 | 
						|
      min-width="110"
 | 
						|
      align="left"
 | 
						|
      sortable="custom"
 | 
						|
      show-overflow-tooltip
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <span>
 | 
						|
          {{ isEnglish?scope.row.HospitalName:scope.row.HospitalNameCN }}
 | 
						|
        </span>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column
 | 
						|
      prop="City"
 | 
						|
      label="Location"
 | 
						|
      width="110"
 | 
						|
      align="left"
 | 
						|
      sortable="custom"
 | 
						|
      show-overflow-tooltip
 | 
						|
    >
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <span>
 | 
						|
          {{ isEnglish?scope.row.City:scope.row.CityCN }}
 | 
						|
        </span>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
    <el-table-column label="Action" min-width="100" align="left" fixed="right">
 | 
						|
      <template slot-scope="scope">
 | 
						|
        <el-button
 | 
						|
          type="text"
 | 
						|
          size="mini"
 | 
						|
          @click="handleDetail(scope.row)"
 | 
						|
        >
 | 
						|
          Detail
 | 
						|
        </el-button>
 | 
						|
        <el-button
 | 
						|
          type="text"
 | 
						|
          size="mini"
 | 
						|
          @click="handleEdit(scope.row)"
 | 
						|
        >
 | 
						|
          Edit
 | 
						|
        </el-button>
 | 
						|
      </template>
 | 
						|
    </el-table-column>
 | 
						|
  </el-table>
 | 
						|
</template>
 | 
						|
<script>
 | 
						|
export default {
 | 
						|
  name: 'ReviewerList',
 | 
						|
  props: {
 | 
						|
    list: {
 | 
						|
      type: Array,
 | 
						|
      default() {
 | 
						|
        return []
 | 
						|
      }
 | 
						|
    },
 | 
						|
    listLoading: {
 | 
						|
      type: Boolean,
 | 
						|
      default() {
 | 
						|
        return false
 | 
						|
      }
 | 
						|
    },
 | 
						|
    isEnglish: {
 | 
						|
      type: Boolean
 | 
						|
    }
 | 
						|
  },
 | 
						|
  data() {
 | 
						|
    return {
 | 
						|
      selectArr: [],
 | 
						|
      otherId: 'ef84e9cb-f1a6-49d7-b6da-34be2c12abd5'
 | 
						|
    }
 | 
						|
  },
 | 
						|
  methods: {
 | 
						|
    handleDetail(row) {
 | 
						|
      // this.$router.push({ name: 'ReviewerDetail', query: {
 | 
						|
      //   Id: row.Id,
 | 
						|
      //   isEnglish: this.isEnglish
 | 
						|
      // }})
 | 
						|
      this.$router.push({ path: `/reviewers/reviewers-detail?Id=${row.Id}&isEnglish=${this.isEnglish}` })
 | 
						|
    },
 | 
						|
    handleEdit(row) {
 | 
						|
      this.$router.push({ path: `/reviewers/reviewers-edit?Id=${row.Id}` })
 | 
						|
    },
 | 
						|
    handleSelectChange(val) {
 | 
						|
      const arr = []
 | 
						|
      for (let index = 0; index < val.length; index++) {
 | 
						|
        arr.push(val[index].Id)
 | 
						|
      }
 | 
						|
      this.selectArr = arr
 | 
						|
      this.$emit('getSelectArr', arr)
 | 
						|
    },
 | 
						|
    hasResume(row) {
 | 
						|
      if (row.HasResume) {
 | 
						|
        return true
 | 
						|
      } else {
 | 
						|
        return false
 | 
						|
      }
 | 
						|
    },
 | 
						|
    sortByColumn(column) {
 | 
						|
      let asc = false
 | 
						|
      let sortField = ''
 | 
						|
      if (column.order === 'ascending') {
 | 
						|
        asc = true
 | 
						|
      } else {
 | 
						|
        asc = false
 | 
						|
      }
 | 
						|
      sortField = column.prop
 | 
						|
      this.$emit('getListBySort', { asc: asc, sortField: sortField })
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
</script>
 |