zoukankan      html  css  js  c++  java
  • Vue国际化二 【在表格中的使用】

    基础使用

    
     <el-button type="primary" size="small" plain @click="addClick()">{{$t("common.Add")}}</el-button>
    
      <el-table-column
            prop="sex"
            :label="$t('usersManager.Gender')"
            width="120"
            align="center"
            :formatter="formatterSex"
          />
    
    
    

    活动表头的使用

    computed:{
      tableHeader() {
          return [
            {
              label: this.$t("usersManager.Username"),
              prop: 'userName',
            },
            {
              label: this.$t("usersManager.Nickname"),
              prop: 'userNick'
            },
            {
              label: this.$t("usersManager.phonenumber"),
              prop: 'userMobile'
            },
            {
              label: this.$t("usersManager.mailbox"),
              prop: 'userEmail'
            }
          ]
        },
    

    动态表格

    <template>
      <div class="hlt-custom-table">
        <el-table
          ref="multipleTable"
          v-loading="loading"
          stripe
          highlight-current-row
          min-height="600px"
          :data="tableData"
          tooltip-effect="dark"
          style=" 100%"
          :row-class-name="tableRowClassName"
          element-loading-text="正在加载中..."
          :header-cell-style="{
            background: 'rgb(248,248,249)',
            color: 'rgb(31,45,61)',
            'text-align': 'center',
          }"
          border
          :cell-style="changeColor"
          @selection-change="changeFun"
        >
          <el-table-column
            v-if="selection"
            type="selection"
            width="40"
            align="center"
            fixed="left"
          />
          <el-table-column
            type="index"
            width="45"
            align="center"
            label="ID"
            fixed="left"
          />
          <el-table-column
            v-for="(item, index) in tableHeader"
            :key="index"
            :prop="item.prop"
            :label="item.label"
            :show-overflow-tooltip="true"
            min-width="50px"
            sortable
            align="center"
          />
          <slot />
        </el-table>
        <el-pagination
          :page-sizes="[10, 30, 50, 100]"
          :page-size="pagers.limit"
          layout="sizes, prev, pager, next"
          :total="pagers.total"
          style="float: right"
          class="pagination"
          background
          :current-page="pagers.page"
          @size-change="handleLimitChange"
          @current-change="handlePageChange"
        />
      </div>
    </template>
    
    <script>
    export default {
      name: 'CustomTable',
      props: {
        tableData: {
          type: Array,
          default: () => {
            return []
          }
        },
        tableHeader: {
          type: Array,
          default: () => {
            return []
          }
        },
        pagers: {
          type: Object,
          default: () => ({})
        },
        selection: {
          type: Boolean,
          default: false
        }
      },
    
      data() {
        return {
          loading: false
        }
      },
      watch: {
        // 监控tableData数据是否为空,展示loading
        tableData(newValue, oldValue) {
          // 如果非数组
          if (!Array.isArray(newValue)) {
            throw new Error('tableData=>传入的值为非数组,请联系管理员')
            return
          }
          if (newValue.length === 0) {
            this.loading = true
            setTimeout(() => {
              this.loading = false
            }, 500)
          } else {
            this.loading = false
          }
        },
        tableHeader(newValue, oldValue) {
          this.tableHeader = newValue
        }
      },
    
      methods: {
        // 复选框
        changeFun(val) {
          this.$store.commit('customTable/GET_CHECKBOX_DATA', val)
        },
        // 表格隔行变色
        tableRowClassName({ row, rowIndex }) {
          if (rowIndex % 2 === 0) {
            return 'warning-row'
          } else {
            return 'success-row'
          }
        },
        // 改变颜色
        changeColor(row) {
          if (row.column.label === '用户状态' && row.row.status === 0) {
            return 'color:#F56C6C' // 红色
          } else if (
            row.column.label === '用户身份' &&
            row.row.userIdentity === 1
          ) {
            return 'color:#9400D3'
          } else if (row.column.label === '状态' && row.row.rulesStatus === 0) {
            return 'color:#F56C6C'
          }
    
          //   if (identity
          //     (row.column.label == "证照状态" && row.row.certificateStatus == "3") ||
          //     (row.column.label == "证照状态" && row.row.certificateStatus == "1")
        },
        // 每页多少条
        handleLimitChange(val) {
          this.$emit('handleLimitChange', val)
        },
        // 当前页数
        handlePageChange(val) {
          this.$emit('handlePageChange', val)
        },
        //清空被选中的checkebox复选框
        clearCheked() {
          this.$refs.multipleTable.clearSelection()
        }
      }
    }
    </script>
    
    <style>
    .pagination {
      margin-top: 10px;
    }
    .el-table .warning-row {
      background: #ffff;
    }
    
    .el-table .success-row {
      background: #f0f9eb;
    }
    .hlt-custom-table {
      min-height: 700px;
      color: rgba(0, 0, 0, 0.85);
      padding: 20px 24px 0;
      background: #fff;
      box-sizing: border-box;
      border-radius: 4px;
      font-feature-settings: "tnum", "tnum";
      font-variant: tabular-nums;
      font-family: -apple-system, BlinkMacSystemFont, segoe ui, Roboto,
        helvetica neue, Arial, noto sans, sans-serif, apple color emoji,
        segoe ui emoji, segoe ui symbol, noto color emoji;
    }
    </style>
    
    
  • 相关阅读:
    第九篇:网络编程
    第十篇:并发编程
    Python-GIL 进程池 线程池
    Python-生产者消费模型 线程
    Python-互斥锁 进程间通讯
    第八篇:异常处理
    第六篇:面向对象
    第四篇:模块与包
    【转】英语中的并列连词,只知道 and 和 but?11组并列连词,一篇搞定!
    【转】英语中的从属连词,28个,一篇搞定(句子结构2)
  • 原文地址:https://www.cnblogs.com/0520euv/p/14859995.html
Copyright © 2011-2022 走看看