SOURCE

console 命令行工具 X clear

                    
>
console
//引入moment.js
import moment from 'moment';
//获取一年中有多少周、每一周开始和结束时间
const mapWeeksOfyear = ({ year} = {}) => {
    const nowYear = year ? year : moment().year();
    const timestamp = (new Date()).valueOf()
        // 设置正在处理的年份
    let handleYear = moment(new Date(String(nowYear)));
      // 这一年有多少个周
    const totalWeeks = handleYear.endOf('year').isoWeek();
    const arryWeek  = [];
    let currentWeek = null; //当前日期是第几周
    for(let i = 1;i <= totalWeeks;i++){
        let startOf = handleYear.week(i).startOf('week').format('MM-DD');
        let endOf = handleYear.week(i).endOf('week').format('MM-DD');
        let ednyear = handleYear.week(i).endOf('week').format('YYYY');
        let  startValue= handleYear.week(i).startOf('week').valueOf();
        let  endValue= handleYear.week(i).endOf('week').valueOf();
        if(startValue<=timestamp&&endValue>=timestamp){
            currentWeek = i
        }
        arryWeek.push({
            value: i,
            name: `第${i}${ednyear>nowYear?nowYear + "-" +startOf :startOf}${ednyear>nowYear?ednyear + "-" +endOf:endOf}`,
            startTime: handleYear.week(i).startOf('week').format('YYYY-MM-DD'),// 这周的开始时间
            endTime: handleYear.week(i).endOf('week').format('YYYY-MM-DD'), // 这周的结束时间
        })
    } 
    return {arryWeek,currentWeek}
}

var Main = {
    data() {
        return {
            tableData: [
                {
                    date: "2016-05-02",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1518 弄",
                },
                {
                    date: "2016-05-04",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1517 弄",
                },
                {
                    date: "2016-05-01",
                    name: "王小虎",
                    address: "上海市普陀区金沙江路 1519 弄",
                }
            ],
            tableColumns: [
                {
                    prop: "date",
                    label: "日期",

                },
                {
                    prop: "name",
                    label: "姓名",

                },
                {
                    prop: "address",
                    label: "地址",

                },
            ],
        };
    },
    computed: {
        bindTableColumns() {
            return this.tableColumns.filter((column) => column.show);
        },
        /* 这里使用了getter和setter,这样写的好处不用自己手动监听复选框的选中事件 */
        checkedTableColumns: {
            get() {
                // 返回选中的列名
                console.log("数据。。", this.bindTableColumns)
                return this.bindTableColumns.map(column => column.prop);
            },
            set(checked) {
                // 设置表格列的显示与隐藏
                this.tableColumns.forEach((column, index) => {
                    // 如果选中,则设置列显示
                    if (checked.includes(column.prop)) {
                        this.$set(column, "show", true);
                    } else {
                        // 如果未选中,则设置列隐藏
                        this.$set(column, "show", false);
                    }
                })
            }
        }
    }
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.15.0/lib/index.js"></script>
<div id="app">
<template>
  <div>
  </div>
</template>
</div>
@import url("//unpkg.com/element-ui@2.15.0/lib/theme-chalk/index.css");

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}

/* .el-table {
  border: 1px solid red;
} */