Map Attributes: API Format converter.
This commit is contained in:
@@ -65,12 +65,12 @@
|
||||
<div class="px-2 py-3">
|
||||
<Slider v-model="selectArea" :step="1" :min="0" :max="selectRange" range class="mx-2" @change="changeSelectArea($event)"/>
|
||||
</div>
|
||||
<!-- Calendar / InputNumber group -->
|
||||
<div>
|
||||
<!-- Calendar group -->
|
||||
<div v-if="selectedAttName.type === 'date'" class="flex justify-center items-center space-x-2 w-full">
|
||||
<div>
|
||||
<span class="block mb-2">Start time</span>
|
||||
<Calendar v-model="startTime" dateFormat="yy/mm/dd" :panelProps="panelProps" :minDate="startMinDate" :maxDate="startMaxDate" showTime showIcon hourFormat="24" @date-select="sliderTimeRange($event, 'start')" id="startCalendar" />
|
||||
<Calendar v-model="startTime" dateFormat="yy/mm/dd" :panelProps="panelProps" :minDate="startMinDate" :maxDate="startMaxDate" showTime showIcon hourFormat="24" @date-select="sliderValueRange($event, 'start')" id="startCalendar" />
|
||||
</div>
|
||||
<span class="block mt-4">~</span>
|
||||
<div>
|
||||
@@ -78,11 +78,11 @@
|
||||
<Calendar v-model="endTime" dateFormat="yy/mm/dd" :panelProps="panelProps" :minDate="endMinDate" :maxDate="endMaxDate" showTime showIcon hourFormat="24" @date-select="sliderValueRange($event, 'end')" id="endCalendar"/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- InputNumber group -->
|
||||
<div v-else class="flex justify-center items-center space-x-2 w-full w-">
|
||||
<InputNumber v-model="valueStart" :min="valueStartMin" :max="valueStartMax" :maxFractionDigits="2" inputClass="w-24 text-sm" @blur="sliderValueRange($event, 'start')"></InputNumber>
|
||||
<div v-else class="flex justify-center items-center space-x-2 w-full">
|
||||
<InputNumber v-model="valueStart" :min="valueStartMin" :max="valueStartMax" :maxFractionDigits="2" inputClass="w-24 text-sm text-right" @blur="sliderValueRange($event, 'start')"></InputNumber>
|
||||
<span class="block px-2">~</span>
|
||||
<InputNumber v-model="valueEnd" :min="valueEndMin" :max="valueEndMax" :maxFractionDigits="2" inputClass="w-24 text-sm" @blur="sliderValueRange($event, 'end')"></InputNumber>
|
||||
<InputNumber v-model="valueEnd" :min="valueEndMin" :max="valueEndMax" inputClass="w-24 text-sm text-right" :maxFractionDigits="2" @blur="sliderValueRange($event, 'end')"></InputNumber>
|
||||
<!-- :maxFractionDigits="2" -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -209,15 +209,17 @@ export default {
|
||||
sliderData: function() {
|
||||
let xAxisMin;
|
||||
let xAxisMax;
|
||||
let min = this.valueData.min;
|
||||
let max = this.valueData.max;
|
||||
const type = this.valueData.type;
|
||||
switch (type) {
|
||||
case 'date':
|
||||
xAxisMin = new Date(this.valueData.chart.x_axis.min).getTime();
|
||||
xAxisMax = new Date(this.valueData.chart.x_axis.max).getTime();
|
||||
xAxisMin = new Date(min).getTime();
|
||||
xAxisMax = new Date(max).getTime();
|
||||
break;
|
||||
default:
|
||||
xAxisMin = Math.round(this.valueData.chart.x_axis.min);
|
||||
xAxisMax = Math.round(this.valueData.chart.x_axis.max);
|
||||
xAxisMin = min;
|
||||
xAxisMax = max;
|
||||
break;
|
||||
}
|
||||
let range = xAxisMax - xAxisMin;
|
||||
@@ -232,7 +234,7 @@ export default {
|
||||
sliderData = sliderData.map(value => Math.round(value));
|
||||
break;
|
||||
case 'float':
|
||||
sliderData = sliderData.map(value => new Decimal(value.toFixed(2)));
|
||||
sliderData = sliderData.map(value => new Decimal(value.toFixed(2)).toNumber());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -245,8 +247,8 @@ export default {
|
||||
let end;
|
||||
switch (this.selectedAttName.type) {
|
||||
case 'date':
|
||||
start = getMoment(this.startTime).format('YYYY-MM-DDTHH:mm:ss');
|
||||
end = getMoment(this.endTime).format('YYYY-MM-DDTHH:mm:ss');
|
||||
start = getMoment(this.startTime).format('YYYY-MM-DDTHH:mm:00');
|
||||
end = getMoment(this.endTime).format('YYYY-MM-DDTHH:mm:00');
|
||||
break;
|
||||
default:
|
||||
start = this.valueStart;
|
||||
@@ -276,13 +278,13 @@ export default {
|
||||
this.valueStart = null;
|
||||
this.valueEnd = null;
|
||||
// 初始化: Calendar
|
||||
this.startMinDate = new Date(getMoment(min).format());
|
||||
this.startMaxDate = new Date(getMoment(max).format());
|
||||
this.endMinDate = new Date(getMoment(min).format());
|
||||
this.endMaxDate = new Date(getMoment(max).format());
|
||||
this.startMinDate = new Date(min);
|
||||
this.startMaxDate = new Date(max);
|
||||
this.endMinDate = new Date(min);
|
||||
this.endMaxDate = new Date(max);
|
||||
// 初始化: 讓日曆的範圍等於時間軸的範圍
|
||||
this.startTime = min;
|
||||
this.endTime = max;
|
||||
this.startTime = new Date(min);
|
||||
this.endTime = new Date(max);
|
||||
break;
|
||||
default:
|
||||
// date 雙向綁定為空
|
||||
@@ -488,6 +490,7 @@ export default {
|
||||
let sliderData = this.sliderData;
|
||||
let isDateType = this.selectedAttName.type === 'date';
|
||||
let targetTime = [];
|
||||
let inputValue;
|
||||
|
||||
if(isDateType) targetTime = [new Date(this.attValueTypeStartEnd[0]).getTime(), new Date(this.attValueTypeStartEnd[1]).getTime()];
|
||||
else targetTime = [this.attValueTypeStartEnd[0], this.attValueTypeStartEnd[1]]
|
||||
@@ -502,13 +505,9 @@ export default {
|
||||
// 改變滑塊
|
||||
this.selectArea = closestIndexes;
|
||||
// 重新設定 start end 日曆選取範圍
|
||||
let inputValue = Number(e.value.replace(/,/g, '')) ;
|
||||
if(direction === 'start') {
|
||||
isDateType ? this.endMinDate = e : this.valueEndMin = inputValue;
|
||||
}
|
||||
else if(direction === 'end') {
|
||||
isDateType ? this.endMinDate = e : this.valueStartMax = inputValue;
|
||||
}
|
||||
if(!isDateType) inputValue = Number(e.value.replace(/,/g, '')) ;
|
||||
if(direction === 'start') isDateType ? this.endMinDate = e : this.valueEndMin = inputValue;
|
||||
else if(direction === 'end') isDateType ? this.startMaxDate = e : this.valueStartMax = inputValue;
|
||||
// 重新算圖
|
||||
if(!isNaN(closestIndexes[0]) && !isNaN(closestIndexes[1])) this.resizeMask(this.chartComplete);
|
||||
else return;
|
||||
|
||||
Reference in New Issue
Block a user