Vue компонент чрезмерного усложнения - PullRequest
0 голосов
/ 24 октября 2018

Я создаю селектор диапазона дат, и хотя это работает, я чувствую, что делаю его более сложным, чем нужно.Есть ли более элегантный способ написать это?

Возможно, использовать вычисленные значения или часы?

<template>
	<form>
		<select  @change="rangeSelection">	         
	            <option 
	                v-for="(option, key) in rangeOptions"
	                :key="key"
	                :value="key">
	                {{option.display}}
	            </option>
	    </select>
        </form>
</template>

<script>
import moment from 'moment';

export default {
  name: 'DateRangeChooser',
  data: () => {
    return {
    	selectedRange: "last7Days",
		startDate: moment().subtract(8, 'days'),
		endDate: moment().subtract(1, 'days'),
    	rangeOptions: {
	    	last7Days: {
	    		display: 'Last 7 Days',
	    		startDate: moment().subtract(8, 'days'),
	    		endDate: moment().subtract(1, 'days')
	    	},
	    	lastWeek: {
	    		display: 'Last Week',
	    		startDate: moment().startOf('week').subtract(1, 'week'),
	    		endDate: moment().endOf('week').subtract(1, 'week')
	    	},
	    	last30days: {
	    		display: 'Last 30 days',
	    		startDate: moment().subtract(31, 'days'),
	    		endDate: moment().subtract(1, 'days')
	    	}
    	}
    }
  },  
  methods: {
  	rangeSelection: function(e){
  		this.endDate = this.rangeOptions[e.currentTarget.value].endDate;
  		this.startDate = this.rangeOptions[e.currentTarget.value].startDate;
  	}
  }
};
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...