** element的这个周选择器format支持WW,但是value-format不支持,就是可以给你看当前是第几周,但是数据就是不给你,给你的是啥呢,是Mon May 04 2020 00:00:00 GMT+0800 (中国标准时间)**
现在记录以下我的解决方案
<template>
<div class="data_week" ref="data_week" :style="'width:'+width">
<el-date-picker
class="picker"
type="week"
:editable="false"
placeholder="请选择周"
:picker-options="{'firstDayOfWeek': 1}"
v-model="seletWeekValue"
format="yyyy年第WW周"
:clearable="false"
:default-time="['00:00:00', '23:59:59']"
@change="changeweek"
></el-date-picker>
<div class="week-picker">
<span class="spanTitle">{{title}}</span>
<el-input
class="weekDataInput"
v-model="weekTime"
prefix-icon="el-icon-date"
placeholder="请选择日期"
:clearable="true"
></el-input>
</div>
</div>
</template>
<script>
export default {
props: {
title: {
type: String,
default: () => {
return "日期:";
},
},
width: {
type: String,
default: () => {
return "340px";
},
},
},
data() {
return {
seletWeekValue: "",
weekTime: "",
startTimeNum: "",
endTimeNum: "",
};
},
mounted() {
this.changeweek();
},
methods: {
timestampToTime(timestamp) {
var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
let Y = date.getFullYear() + '-';
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
let D = date.getDate() + ' ';
return Y + M + D;
},
changeweek(val) {
if (val) {
var todayDay = new Date(val);
} else {
var todayDay = new Date();
}
let todayOfWeek = todayDay.getDay();
let todayOfmonth = todayDay.getMonth();
let todayOfDate = todayDay.getDate();
let spendDay = 1;
if (todayOfWeek != 0) {
spendDay = 7 - todayOfWeek;
}
this.startTimeNum = todayDay.valueOf() - (6 - spendDay) * 86400000;
this.endTimeNum = todayDay.valueOf() + spendDay * 86400000;
let startTimeStr = this.timestampToTime(this.startTimeNum); // 时间戳转字符串
let endTimeStr = this.timestampToTime(this.endTimeNum);
this.weekTime = startTimeStr + " - " + endTimeStr; // 2020-09-21~2020-09-27
},
},
};
</script>
<style lang="scss" scoped>
.data_week {
position: relative;
.picker {
position: absolute;
width: 80%;
opacity: 0;
z-index: 100;
}
.week-picker {
display: flex;
align-items: center;
width: 100%;
font-size: 0.875rem;
.spanTitle {
min-width: 40px;
}
}
}
</style>
有方法望告知,谢谢