vue_elementui_formatter的使用方法_elementui提取table表格使用formatter方法

后台管理系统中用到了非常多的表格,一般为了方便都会讲表格进行提取,形成公共组件。
提取表格时会遇到返回的json数据中要对单个字段进行处理,如时间戳转换,状态转换等

封装的表格组件代码

<template>
  <div>
    <!-- 中部列表表格 -->
    <el-table
      :data="tableData"
      highlight-current-row
      border
      @selection-change="handleSelectionChange"
      @current-change="handtable"
    >
      <el-table-column type="selection" width="50" align="center" v-if="gg?true:false"></el-table-column>
      <el-table-column label="序号" type="index" width="50" align="center" :index="indexMethod"></el-table-column>
      <el-table-column
        v-for="(itemtest, index) in title"
        :key="index"
        v-if="!itemtest.operate"
        :prop="itemtest.prop"
        align="center"
        :label="itemtest.label"
        :formatter="itemtest.formatter"
      ></el-table-column>
      <el-table-column v-else :label="itemtest.label" :prop="itemtest.prop" align="center">
        <template slot-scope="scope">
          <slot :name="itemtest.prop" :$index="scope.$index" :row="scope.row"></slot>
          <!-- 对应slot name -->
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>
<script>
export default {
  name: "tabletable",
  props: {
    title: {
      type: Array,
      default: []
    },
    tableData: {
      type: Array,
      default: []
    },
    gg:Boolean,
    formatter: { default: {} },  //此处写上formatter函数
    handleSelectionChange: { default: {} },
    handtable: { default: {} },
    indexMethod: { default: {} },
   
  },
  methods: {
  }
};
</script>

调用封装的表格代码

<template>
  <div>

    <!-- 中部列表表格 -->
    <v-Table
      :tableData="tableData"
      :title="title"
      :gg="false"
      :indexMethod="indexMethod"
      :handleClick="handleClick"
      :handtable="handtable"
    >
          <template slot="dealScreenshot" slot-scope="scope">  // slot="dealScreenshot" 要与下列的表格一致
        <el-button size="small" type="text" @click="handleRowEdit(scope.$index,scope.row)">查看</el-button>
      </template>
    </v-Table>
  </div>
</template>
<script>
import vTable from "@/components/comiview/table.vue";
import { formDatetime } from "@/utils/formdata.js";  //封装的js方法
import { orderState } from "@/utils/orderState.js";//封装的js方法
export default {
  components: {
    vTable
  },
  name: "account",
  data() {
    return {
      tableData: [
        {
          orderCode: "1",
          payStatus: "1",
          createTime: "",
        }
      ],
      title: [
        { label: "用户名", prop: "orderCode",  operate: false },
        {
          label: "账户状态",
          prop: "payStatus",
            operate: false,
          //状态格式转换
          formatter: (value, column) => {     //写上formatter函数
            let payStatus = orderState(value, column);  //这里可以调用写好的函数也可以直接处理数据
            return payStatus;
          }
        },
        {
          label: "注册时间",
          prop: "createTime",
            operate: false,
          //时间格式转换
          formatter: (value, column) => {
            let time = formDatetime(value, column);
            return time;
          },
        },
         {
          prop: "dealScreenshot",   //要与上面预留的slot位置一致
          label: "收款凭证",
          operate: true,
        }
      ]
    };
  },
  watch: {},
  created() {
   
  },
  methods: {
    indexMethod(index) {
      //设置序列号
      return (
        (Number(this.formInline.startNo) - 1) *
          Number(this.formInline.pageSize) +
        index +
        1
      );
    },
    handleClick(val) {},


  }
};
</script>

封装的js方法

// 13位时间戳转字符串

import moment from "moment";

function formDatetime(row, column) {
  let date = row[column.property];
  if (date == undefined) {
    return "";
  }
  return moment(date).format("YYYY-MM-DD HH:mm:ss");
}

function formDa(row, column) {
  let date = row[column.property];
  if (date == undefined) {
    return "";
  }
  return moment(date).format("YYYY-MM-DD");
}



export {
  formDatetime,
  formDa
  
}

elementui提取table表格使用formatter方法,展示效果
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

管火火火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值