• Vue中自定义实现类似el-table的表格效果实现行颜色根据数据去变化展示


      主要使用div布局实现表格效果,并使用渐变实现行背景渐变的效果

    页面布局 

    1. <div class="table-wrap">
    2. <div class="table-title">
    3. <div
    4. v-for="(item, index) in tableColumn"
    5. :key="index"
    6. :prop="item.prop"
    7. :style="{
    8. width: item.width + 'px'
    9. }"
    10. :align="item.align"
    11. >
    12. {{ item.label }}
    13. div>
    14. div>
    15. <div class="table-body">
    16. <div
    17. class="live-row"
    18. v-for="(item, index) in tableData"
    19. :class="{
    20. 'long-bg-color': item.flag == 0,
    21. 'short-bg-color': item.flag == 1
    22. }"
    23. :key="index"
    24. >
    25. <div class="prop1">
    26. <img :src="getExchangeIcon(item.pt)" />
    27. {{ item.pt }}
    28. div>
    29. <div class="prop2">
    30. {{ item.bz }}
    31. div>
    32. <div class="prop3">
    33. {{ item.bcjg }}
    34. div>
    35. <div class="prop4">
    36. {{ item.je }}
    37. div>
    38. <div class="prop5">
    39. {{ formatTime(item.sj, 'MM-DD HH:mm:ss') }}
    40. div>
    41. div>
    42. div>
    43. div>

    数据

    1. const tableColumn = ref([
    2. {
    3. label: '平台',
    4. prop: 'pt',
    5. width: 115,
    6. align: 'left'
    7. },
    8. {
    9. label: '币种',
    10. prop: 'bz',
    11. width: 105,
    12. align: 'left'
    13. },
    14. {
    15. label: '爆仓价格',
    16. prop: 'bcjg',
    17. width: 100,
    18. align: 'center'
    19. },
    20. {
    21. label: '金额',
    22. prop: 'je',
    23. width: 100,
    24. align: 'right'
    25. },
    26. {
    27. label: '时间',
    28. prop: '时间',
    29. width: 120,
    30. align: 'right'
    31. }
    32. ]);
    33. const tableData = [
    34. {
    35. pt: '123',
    36. bz: '123',
    37. bcjg: '$2342.1',
    38. je: '$2342.1万',
    39. sj: '1695106716182',
    40. flag: 1
    41. },
    42. {
    43. pt: '123',
    44. bz: '123',
    45. bcjg: '$2342.1',
    46. je: '$2342.1万',
    47. sj: '1695106716182',
    48. flag: 0
    49. },
    50. {
    51. pt: '123',
    52. bz: '123',
    53. bcjg: '$2342.1',
    54. je: '$2342.1万',
    55. sj: '1695106716182',
    56. flag: 0
    57. },
    58. {
    59. pt: '123',
    60. bz: '123',
    61. bcjg: '$2342.1',
    62. je: '$2342.1万',
    63. sj: '1695106716182',
    64. flag: 1
    65. }
    66. ];

    样式部分

    --table-bg-Short1: linear-gradient(
            to right,
            #ff000000,
            #d32f2f80 90%,
            #d32f2f80
          );
          --table-bg-Long1: linear-gradient(
            to right,
            #ff000000,
            #22ab942e 90%,
            #22ab9457
          );

    1. .table-wrap {
    2. .prop1 {
    3. width: 115px;
    4. text-align: left;
    5. }
    6. .prop2 {
    7. width: 105px;
    8. text-align: left;
    9. }
    10. .prop3 {
    11. width: 100px;
    12. text-align: center;
    13. }
    14. .prop4 {
    15. width: 100px;
    16. text-align: right;
    17. }
    18. .prop5 {
    19. width: 120px;
    20. text-align: right;
    21. }
    22. .table-title {
    23. display: flex;
    24. color: #868e9b;
    25. font-family: PingFang SC;
    26. font-size: 14px;
    27. font-weight: 400;
    28. border-bottom: 1px solid #252525;
    29. div {
    30. height: 50px;
    31. line-height: 50px;
    32. }
    33. }
    34. .table-body {
    35. height: 610px;
    36. overflow: auto;
    37. position: relative;
    38. .live-row {
    39. display: flex;
    40. height: 60px;
    41. line-height: 60px;
    42. color: #fff;
    43. font-family: DIN;
    44. font-size: 14px;
    45. border-bottom: 1px solid #252525;
    46. .prop1 {
    47. img {
    48. width: 16px;
    49. height: 16px;
    50. margin-right: 5px;
    51. vertical-align: middle;
    52. }
    53. }
    54. }
    55. --table-bg-Short1: linear-gradient(
    56. to right,
    57. #ff000000,
    58. #d32f2f80 90%,
    59. #d32f2f80
    60. );
    61. --table-bg-Long1: linear-gradient(
    62. to right,
    63. #ff000000,
    64. #22ab942e 90%,
    65. #22ab9457
    66. );
    67. .long-bg-color {
    68. background: var(--table-bg-Long1);
    69. }
    70. .short-bg-color {
    71. background: var(--table-bg-Short1);
    72. }
    73. }
    74. }
  • 相关阅读:
    大数据技术之 Kafka
    Android Stuido Gradle build编译报错原因排查
    y131.第七章 服务网格与治理-Istio从入门到精通 -- Istio Security基础(十七)
    HINet: Half Instance Normalization Network for Image Restoration
    多版本node的安装与切换详细操作
    Google Universal Image Embedding比赛丨北大第一名方案总结
    技术干货|昇思MindSpore NLP模型迁移之Roberta ——情感分析任务
    3分钟了解 egg.js
    如何将Python程序打包并保护源代码
    COLING 2022 | CSL-大规模中文科学文献数据集
  • 原文地址:https://blog.csdn.net/JackieDYH/article/details/133378339