修改ElTable组件的样式(element-plus)

效果展示

javascript 复制代码
 <div class="table_main">
        <ElTable
          :data="tableList"
          :header-cell-style="{
            color: '#ffffff',
            background: '#6f7f93',
          }"
          class="table_border"
          :highlight-current-row="false"
        >
          <ElTableColumn type="index" width="50" />
          <ElTableColumn prop="depict" label="事件描述" align="center" show-overflow-tooltip>
            <template #default="scope">
              <span class="content_style" :title="scope.row.depict">{{ `${scope.row.depict ?? '--'}` }}</span>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="lon" label="经度" align="center" show-overflow-tooltip>
            <template #default="scope">
              <span class="content_style" :title="scope.row.lon">{{ scope.row.lon }}</span>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="lat" label="纬度" align="center" show-overflow-tooltip>
            <template #default="scope">
              <span class="content_style" :title="scope.row.lat">{{ scope.row.lat }}</span>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="address" label="位置描述" align="center" show-overflow-tooltip>
            <template #default="scope">
              <span class="content_style" :title="scope.row.address">{{ `${scope.row.address ?? '--'}` }}</span>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="reportName" label="上报人名称" align="center" show-overflow-tooltip width="120">
            <template #default="scope">
              <span>{{ scope.row.reportName ?? '--' }}</span>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="shotPerson" label="联系方式" align="center" show-overflow-tooltip>
            <template #default="scope">
              <p>{{ `${scope.row.shotPerson ?? '--'}` }}</p>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="createTime" label="上报时间" align="center" show-overflow-tooltip>
            <template #default="scope">
              <span class="content_style" :title="scope.row.createTime">{{ `${scope.row.createTime ?? '--'}` }}</span>
            </template>
          </ElTableColumn>
          <ElTableColumn prop="status" label="处理状态" align="center" show-overflow-tooltip>
            <template #default="scope">
              <div class="cell">
                <span
                  :class="[
                    'dot',
                    scope.row.status == '1' ? 'orange-dot' : scope.row.status == '2' ? 'green-dot' : 'red-dot',
                  ]"
                />
                <span
                  :style="{
                    color: scope.row.status == '1' ? '#ff9f2d' : scope.row.status == '2' ? '#01ba62' : '#ba0101',
                  }"
                  >{{ scope.row.status == '1' ? '未处理' : scope.row.status == '2' ? '已处理' : '不予处理' }}</span
                >
              </div>
            </template>
          </ElTableColumn>

          <ElTableColumn label="操作" align="center" width="250">
            <template #default="scope">
              <div class="btn_box">
                <div class="edit_btn" @click="handleOpenModule('DETAIL', scope.row)">详情</div>
                <div
                  class="edit_btn"
                  :style="{
                    cursor: scope.row.status == '1' ? 'pointer' : 'not-allowed',
                    color: scope.row.status == '1' ? '#2871ff' : '#c0c4cc',
                  }"
                  @click="handleOpenModule('DISPOSE', scope.row)"
                >
                  处置
                </div>
                <div class="edit_btn" @click="handleOpenModule('DELETE', scope.row)">删除</div>
              </div>
            </template>
          </ElTableColumn>
        </ElTable>
      </div>
      <div class="pagination">
        <ElPagination
          v-model:currentPage="selectParams.current"
          v-model:page-size="selectParams.size"
          layout="total, prev, pager, next, jumper"
          :total="total"
          @current-change="handleCurrentChange"
        />
      </div>

修改样式

javascript 复制代码
 .table_main {
    margin-top: 40px;
    :deep(.el-table tr) {
      font-size: 16px;
    }

    .cell {
      padding-right: 10px;
      padding-left: 10px;
      overflow: hidden;
      line-height: 23px;
      white-space: normal;
      text-overflow: ellipsis;
      word-break: break-all;

      .dot {
        display: inline-block;
        width: 6px;
        height: 6px;
        margin-right: 5px;
        border-radius: 50%;
      }

      .orange-dot {
        background: #ff8a00;
      }

      .green-dot {
        background: #01ba62;
      }

      .red-dot {
        background: #ba0101;
      }
    }

    .btn_box {
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: Source Han Sans CN;
      .edit_btn {
        margin-right: 8px;
        color: #2871ff;
        cursor: pointer;
      }
    }

    :deep(.el-table thead) {
      color: #909399;
      font-weight: 500;
    }
    :deep(.el-table__body-wrapper) {
      background-color: #f6f9fc;
    }
    :deep(.el-table tr) {
      color: #333333;
    }
    :deep(.el-table th.el-table__cell.is-leaf) {
      border-bottom: 10px solid #f6f9fc;
    }
    :deep(.el-table th.el-table__cell) {
      color: #fff;
      background-color: #6f7f93;
    }
    :deep(.el-table .el-table__cell) {
      padding: 12px 0;
      // background-color: #fff !important;
      border-bottom: 10px solid #f6f9fc;
    }
  }

  .pagination {
    position: absolute;
    right: 30px;
    bottom: 0;
    margin-bottom: 19px;
    :deep(.el-icon) {
      font-size: 19px !important;
    }
    :deep(.el-input__inner) {
      color: #4a4a4a;
    }

    :deep(.el-pagination .el-pager li) {
      color: #4a4a4a;
      font-size: 16px;
      background: none;
    }

    :deep(.el-pagination button) {
      background: none;
    }

    :deep(.el-input__wrapper) {
      background: none;
      border: 1px solid #4a4a4a;
      box-shadow: none;
    }
    :deep(.el-pagination__total) {
      color: #2871ff;
    }
    :deep(.el-pagination__jump) {
      color: #4a4a4a;
    }
  }
相关推荐
寻找沙漠的人33 分钟前
前端知识补充—CSS
前端·css
GISer_Jing44 分钟前
2025前端面试热门题目——计算机网络篇
前端·计算机网络·面试
m0_748245521 小时前
吉利前端、AI面试
前端·面试·职场和发展
理想不理想v1 小时前
webpack最基础的配置
前端·webpack·node.js
pubuzhixing1 小时前
开源白板新方案:Plait 同时支持 Angular 和 React 啦!
前端·开源·github
2401_857600951 小时前
SSM 与 Vue 共筑电脑测评系统:精准洞察电脑世界
前端·javascript·vue.js
2401_857600951 小时前
数字时代的医疗挂号变革:SSM+Vue 系统设计与实现之道
前端·javascript·vue.js
GDAL1 小时前
vue入门教程:组件透传 Attributes
前端·javascript·vue.js
2402_857583491 小时前
基于 SSM 框架的 Vue 电脑测评系统:照亮电脑品质之路
前端·javascript·vue.js
web150850966412 小时前
在uniapp Vue3版本中如何解决webH5网页浏览器跨域的问题
前端·uni-app