在element plus的<el-table>中显示本地图片

该代码段展示了一个使用Vue.js和ElementUI实现的数据表格,包含图片展示、名称、地址和日期列,以及编辑和删除操作。数据动态加载,图片源通过require和ES6模板语法拼接。

直接代码走起,一目了然

<template>

  <a-layout>
    <a-layout-content
        :style="{ background: '#fff', padding: '24px', margin: 0, minHeight: '280px' }"
    >

      <el-table :data="tableData" stripe style="width: 100%" :fit="true">
        <el-table-column label="封面" width="120" prop="cover">
          <template #default="scope">
            <div style="width: 110px;height: 110px;display: flex;align-items: center;">
              <el-image fit="fill" :src="require(`../../assets/image/${scope.row.cover}`)"></el-image>
            </div>
          </template>
        </el-table-column>
        <el-table-column prop="name" label="名称" width="200"/>
        <el-table-column prop="address" label="地址"/>
        <el-table-column prop="date" label="日期" width="100" />
        <el-table-column label="Action">
          <template #default="scope">
            <el-button size="small" type="primary" @click="handleEdit(scope.$index, scope.row)"
            >Edit</el-button
            >
            <el-button
                size="small"
                type="danger"
                @click="handleDelete(scope.$index, scope.row)"
            >Delete</el-button
            >
          </template>
        </el-table-column>
      </el-table>

    </a-layout-content>
  </a-layout>

</template>
<script>


const tableData = [
  {
    cover:'js.jpg',
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    cover:'java.jpg',
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    cover:'vue.jpg',
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    cover:'js.jpg',
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
];

export default {
  data(){
    return {tableData};
  },
  methods:{
    handleEdit( index, row) {
      console.log(index, row);
    },
    handleDelete (index, row){
      console.log(index, row)
    }
  }
};
</script>

 最核心的两个点:

1 src属性中,require里面的内容必须拼接,使用了ES6的快捷拼接`${ }`语法

2 scope.row和scope.$index

<el-table v-loading="loading" :data="LowYieldCaseList" @selection-change="handleSelectionChange"> <!-- <el-table-column type="selection" width="55" align="center" />--> <el-table-column v-if="true" label="主键" align="center" prop="id" /> <el-table-column label="Prod" align="center" prop="prodId" /> <el-table-column label="Lot" align="center" prop="lotId" /> <el-table-column label="Wafer" align="center" prop="waferId" /> <el-table-column label="Yield" align="center" prop="waferYield" /> <el-table-column label="AlarmType" align="center" prop="alarmType" /> <el-table-column label="Item1" align="center" prop="item1" /> <el-table-column label="Item2" align="center" prop="item2" /> <el-table-column label="Item3" align="center" prop="item3" /> <el-table-column label="PDE Comment" align="center" prop="pdeHistoryCommentId" /> <el-table-column label="PIE comment" align="center" prop="pieHistoryCommentId" /> <el-table-column label="Process" align="center" prop="value" /> <el-table-column label="CreateDate" align="center" prop="createTime" /> <el-table-column label="UpdateDate" align="center" prop="updateTime" /> <el-table-column label="UpdateUser" align="center" prop="updateBy" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <template #default="scope"> <el-tooltip content="修改" placement="top"> <el-button v-hasPermi="[&#39;demo:demo:edit&#39;]" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button> </el-tooltip> </template> </el-table-column> </el-table> 我需要将表头设计为图片中的格式,这段vue代码该怎么修改
10-22
<template> <div> <h1 class="title">考勤记录汇总</h1> <el-tabs v-model="activeName" type="card"> <el-tab-pane label="table" name="table"> <el-form :inline="true" :model="form" ref="topform"> <el-form-item prop="Month" label="Month:"> <el-select v-model="form.Month" placeholder="请选择" style="width:170px" clearable > <el-option v-for="item in monthOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-form-item prop="Department" label="部门:"> <el-select v-model="form.Department" multiple placeholder="请选择" style="width:170px" collapse-tags collapse-tags-tooltip allow-create filterable > <el-option v-for="item in DepartmentOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-form-item prop="Division" label="科室"> <el-select v-model="form.Division" multiple placeholder="请选择" style="width:170px" collapse-tags collapse-tags-tooltip allow-create filterable > <el-option v-for="item in DivisionOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-form-item prop="Group" label="组别:"> <el-select v-model="form.Group" multiple placeholder="请选择" style="width:170px" collapse-tags collapse-tags-tooltip allow-create filterable > <el-option v-for="item in GroupOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-button type="primary" @click="getHistory(&#39;topform&#39;)"> 查询 </el-button> <el-button type="primary" @click="exportToExcel">导出</el-button> <el-button type="primary" @click="importHrResults">导入</el-button> </el-form> <div class="alarm-data-table"> <el-table :data="DataTable" style="width: 100%;" border stripe :header-cell-style="{ background: &#39;#004c99&#39;, color: &#39;#ffffff&#39; }" ref="ymstable" :height="tableHeight" @sort-change="handleSortChange" > </el-table> </div> </el-tab-pane> </el-tabs>运行后,未显示表格的表头
最新发布
11-20
<template> <div> <el-form :model="projectInfo" label-width="120px" class="project-form flex-form" > <div class="form-row"> <el-form-item label="项目名称:"> <el-input v-model="projectInfo.name" /> </el-form-item> <el-form-item label="项目编码:"> <el-input v-model="projectInfo.code" /> </el-form-item> <el-form-item label="采集目的:"> <el-input v-model="projectInfo.purpose" /> </el-form-item> <el-form-item label="参与者姓名:"> <el-input v-model="projectInfo.participantName" /> </el-form-item> <el-form-item label="参与者手机:"> <el-input v-model="projectInfo.participantPhone" /> </el-form-item> </div> <!-- 第二行 --> <div class="form-row"> <el-form-item label="设备名称:"> <el-input v-model="projectInfo.deviceName" /> </el-form-item> <el-form-item label="设备类型:"> <el-input v-model="projectInfo.deviceType" /> </el-form-item> <el-form-item label="采集次号:"> <el-input v-model="projectInfo.collectionFileNumber" /> </el-form-item> <el-form-item label="设备映射:"> <el-input v-model="projectInfo.deviceCategory" /> </el-form-item> <el-form-item label="开始时间:"> <el-input v-model="projectInfo.startTime" /> </el-form-item> </div> <!-- 第三行 --> <div class="form-row"> <el-form-item label="业务与场景:"> <el-input v-model="projectInfo.businessScene" /> </el-form-item> <el-form-item label="采集地域:"> <el-input v-model="projectInfo.collectionRegion" /> </el-form-item> <el-form-item label="数据文件名:"> <el-input v-model="projectInfo.dataFileName" /> </el-form-item> <el-form-item label="上传来源:"> <el-input v-model="projectInfo.uploadSource" /> </el-form-item> </div> <div class="form-footer"> <el-button type="primary">搜索</el-button> <el-button>重置</el-button> </div> </el-form> <el-divider /> <el-table :data="filteredData" stripe border style="width: 100%" v-loading="loading" :header-cell-style="{ background: &#39;#f5f7fa&#39; }" > <!-- 使用 header 插槽插入按钮 --> <template #header> <div style="text-align: left"> <el-button type="primary">单个参与者数据</el-button> <el-button type="success">多个参与者csv文件</el-button> <el-button type="warning">视频扫描</el-button> </div> </template> <el-table-column label="序号" width="80"></el-table-column> <el-table-column prop="source" label="来源" width="80" /> <el-table-column prop="filename" label="文件名" width="100"> <template #default="{ row }"> {{ row.filename }}... </template> </el-table-column> <el-table-column prop="status" label="采集状态" width="100"> <template #default="{ row }"> <el-tag :type="row.status === &#39;已覆盖&#39; ? &#39;success&#39; : &#39;warning&#39;" size="small" > {{ row.status }} </el-tag> </template> </el-table-column> <el-table-column prop="projectName" label="项目名称" min-width="120" /> <el-table-column prop="projectCode" label="项目编码" width="110" /> <el-table-column prop="purpose" label="采集目的" min-width="120" /> <el-table-column prop="participantId" label="参与者身份" width="100" /> <el-table-column prop="content" label="内容" width="80" /> <el-table-column prop="deviceCategory" label="设备类别" width="100" /> <el-table-column prop="deviceName" label="设备名" min-width="120" /> <el-table-column prop="deviceType" label="设备类型" min-width="120" /> <el-table-column prop="business" label="业务" width="100" /> <el-table-column prop="scene" label="场景" width="100" /> <el-table-column prop="region" label="地域" width="80" /> <el-table-column prop="startTime" label="采集开始时间" width="150" /> <el-table-column prop="endTime" label="采集结束时间" width="150" /> <el-table-column prop="other" label="其他" width="80" /> </el-table> <div class="pagination-container"> <el-pagination :page-size="10" :current-page="currentPage" layout="total, prev, pager, next" :total="filteredData.length" /> </div> </div> </template>这样插槽不生效
09-18
<template> <el-container class="layout-container-demo" style="height: 500px"> <el-aside width="200px"> <el-scrollbar> <el-menu :default-openeds="[&#39;1&#39;, &#39;3&#39;]"> <el-sub-menu index="1"> <template #title> <el-icon><message /></el-icon>Navigator One </template> <el-menu-item-group> <template #title>Group 1</template> <el-menu-item index="1-1">Option 1</el-menu-item> <el-menu-item index="1-2">Option 2</el-menu-item> </el-menu-item-group> <el-menu-item-group title="Group 2"> <el-menu-item index="1-3">Option 3</el-menu-item> </el-menu-item-group> <el-sub-menu index="1-4"> <template #title>Option4</template> <el-menu-item index="1-4-1">Option 4-1</el-menu-item> </el-sub-menu> </el-sub-menu> <el-sub-menu index="2"> <template #title> <el-icon><icon-menu /></el-icon>Navigator Two </template> <el-menu-item-group> <template #title>Group 1</template> <el-menu-item index="2-1">Option 1</el-menu-item> <el-menu-item index="2-2">Option 2</el-menu-item> </el-menu-item-group> <el-menu-item-group title="Group 2"> <el-menu-item index="2-3">Option 3</el-menu-item> </el-menu-item-group> <el-sub-menu index="2-4"> <template #title>Option 4</template> <el-menu-item index="2-4-1">Option 4-1</el-menu-item> </el-sub-menu> </el-sub-menu> <el-sub-menu index="3"> <template #title> <el-icon><setting /></el-icon>Navigator Three </template> <el-menu-item-group> <template #title>Group 1</template> <el-menu-item index="3-1">Option 1</el-menu-item> <el-menu-item index="3-2">Option 2</el-menu-item> </el-menu-item-group> <el-menu-item-group title="Group 2"> <el-menu-item index="3-3">Option 3</el-menu-item> </el-menu-item-group> <el-sub-menu index="3-4"> <template #title>Option 4</template> <el-menu-item index="3-4-1">Option 4-1</el-menu-item> </el-sub-menu> </el-sub-menu> </el-menu> </el-scrollbar> </el-aside> <el-container> <el-header style="text-align: right; font-size: 12px"> <div class="toolbar"> <el-dropdown> <el-icon style="margin-right: 8px; margin-top: 1px"> <setting /> </el-icon> <template #dropdown> <el-dropdown-menu> <el-dropdown-item>View</el-dropdown-item> <el-dropdown-item>Add</el-dropdown-item> <el-dropdown-item>Delete</el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> <span>Tom</span> </div> </el-header> <el-main> <el-scrollbar> <el-table :data="tableData"> <el-table-column prop="date" label="Date" width="140" /> <el-table-column prop="name" label="Name" width="120" /> <el-table-column prop="address" label="Address" /> </el-table> </el-scrollbar> </el-main> </el-container> </el-container> </template> <!----> <script lang="ts" setup> import { ref } from &#39;vue&#39; import { Menu as IconMenu, Message, Setting } from &#39;@element-plus/icons-vue&#39; const item = { date: &#39;2016-05-02&#39;, name: &#39;Tom&#39;, address: &#39;No. 189, Grove St, Los Angeles&#39;, } const tableData = ref(Array.from({ length: 20 }).fill(item)) </script> <style scoped> .layout-container-demo .el-header { position: relative; background-color: var(--el-color-primary-light-7); color: var(--el-text-color-primary); } .layout-container-demo .el-aside { color: var(--el-text-color-primary); background: var(--el-color-primary-light-8); } .layout-container-demo .el-menu { border-right: none; } .layout-container-demo .el-main { padding: 0; } .layout-container-demo .toolbar { display: inline-flex; align-items: center; justify-content: center; height: 100%; right: 20px; } </style> idea运行以上代码报错了该如何解决
07-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值