fix #217; this time finally found the root cause.

If user didn't click any start-end radio button this time,
the start, end value might be null as their initial values are.
So we need to use the earliest value stored in pinia. (In ActRadio.vue created phase)
This commit is contained in:
Cindy Chang
2024-06-07 15:31:53 +08:00
parent 88082c3b8a
commit 7e362d8740
5 changed files with 86 additions and 20 deletions

View File

@@ -28,8 +28,9 @@
:maxlength="tUnits[unit].dsp === 'd' ? 3 : 2"
:value="tUnits[unit].val.toString().padStart(2, '0')"
@focus="onFocus"
@blur="onBlur"
@change="onChange"
@keyup="onKeyUp"
v-model="inputTimeFields[index]"
/>
<label class="duration">{{ tUnits[unit].dsp }}</label>
</div>
@@ -127,6 +128,16 @@ export default {
}
},
},
inputTimeFields: {
get() {
let paddedTimeFields = [];
this.inputTypes.map(inputTypeUnit => {
// Pad the dd/hh/mm/ss field string to 2 digits and add it to the list
paddedTimeFields.push(this.tUnits[inputTypeUnit].val.toString().padStart(2, '0'));
});
return paddedTimeFields;
},
}
},
watch: {
max: {
@@ -176,7 +187,7 @@ export default {
* when blur update input value and show number
* @param {event} event input 傳入的事件
*/
onBlur(event) {
onChange(event) {
let baseInputValue = event.target.value;
let decoratedInputValue;
// 讓前綴數字自動補 0
@@ -184,6 +195,7 @@ export default {
event.target.value = '00' :
// event.target.value = event.target.value.toString().padStart(2, '0'); // 前綴要補 0
event.target.value = event.target.value.toString();
decoratedInputValue = event.target.value.toString();
// 手 key 數值大於最大值時,要等於最大值
// 先將字串轉為數字才能比大小
@@ -283,7 +295,9 @@ export default {
this.seconds = input.value;
break;
};
if (selectIt) input.select();
if (selectIt) {
input.select();
}
this.calculateTotalSeconds();
},
/**