zu-table.vue 3.29 KB
<template>
  <div class="mt20"></div>
  <el-table :data="list" border style="width: 100%">
    <el-table-column :label="language==0?'序号':'Index'" type="index" width="70" align="center"/>
    <el-table-column :label="language==0?'组别代码':'EVENT code'" width="120px" align="center" prop="project.code"/>
    <el-table-column :label="language==0?'组别':'EVENT'" min-width="150px" header-align="center" prop="project.name">
      <template #default="scope">
        <el-tooltip effect="dark" :content="scope.row.project.name">
          <div class="esp">{{scope.row.project.name}}</div>
        </el-tooltip>
      </template>
    </el-table-column>
    <el-table-column :label="language==0?'舞种':'DISCIPLINE'" align="center" width="120px" prop="project.danceType"/>
    <el-table-column :label="language==0?'参赛说明':'Participation Instructions'" header-align="center" min-width="160px">
      <template #default="scope">
        <el-tooltip effect="dark" :content="scope.row.project.remarks">
          <div class="esp" v-html="scope.row.project.remarks"></div>
        </el-tooltip>
      </template>
    </el-table-column>
    <el-table-column :label="language==0?'参赛运动员':'PARTICIPATING ATHLETES'" header-align="center" min-width="140px">
      <template #default="scope">
        <el-tooltip effect="dark">
          <template #content>
            <span v-for="s in scope.row.athletes">{{ s.name }},</span>
          </template>
        <div class="esp">
          <span v-for="s in scope.row.athletes">{{ s.name }},</span>
        </div>
        </el-tooltip>
      </template>
    </el-table-column>
    <el-table-column :label="language==0?'参赛服务费':'REGISTRATION FEE'" align="center" width="150px" prop="">
      <template #default="scope">
        <div class="text-primary">
          {{ language==0?'¥':'$' }}{{ scope.row.project.serviceFee }}
        </div>
      </template>
    </el-table-column>
    <el-table-column  v-if="hasAction" :label="language==0?'操作':'Actions'" fixed="right" width="150" align="center">
      <template #default="scope">
        <el-button  type="primary" link  @click="remove(scope.row.signId)">
          {{language == 0 ? '删除' : 'Delete' }}
        </el-button>

      </template>
    </el-table-column>
  </el-table>
  <div v-if="showSummary" class="rowSummary">
    <div>
      {{  language==0?'总报项数':'Count' }}:  <span class="mr20">{{ list.length }}</span>

      {{ language==0?'金额小计':'Amount' }}:  <span>{{ language==0?'¥':'$' }}{{ total }}</span>
    </div>
  </div>
</template>

<script setup>
import {useStorage} from "@vueuse/core/index";

const emit = defineEmits(['delete'])
const props = defineProps({
  list: {
    type: Array,
    required: true
  },
  hasAction:{
    type: Boolean,
    required: false,
    default: true
  },
  showSummary:{
    type: Boolean,
    required: false,
    default: false
  },
  total:{
    type: Number,
    required: false,
    default: 0
  }
})
const language= useStorage('language',0)
const remove = (id) => {
  emit('delete', id)
}
</script>

<style scoped lang="scss">
.rowSummary{text-align: right;padding: 0 20px;
  height: 40px;line-height: 40px;
  background: #FAFBFD;font-size: 16px;
  color: #95A1A6;
  border: 1px solid #EEEFF0;
  span{font-size: 18px;font-family: DIN Alternate;color: #000;}
}

</style>