提交 f193aa57 编写于 作者: VK1688's avatar VK1688

【修复】u-picker的时间选择器在ios下默认值无效的bug

上级 7593ac6e
<template>
<view class="app">
<u-picker mode="time" v-model="data.show" :default-time="data.time" :params="data.params" @confirm="confirm"></u-picker>
<button @click="data.show=true">显示</button>
{{ data.time }}
</view>
</template>
<script setup>
import { ref, reactive, onMounted, unref, computed, watch } from 'vue';
import { onLoad, onReady } from '@dcloudio/uni-app';
const data = reactive({
show: false,
time: "2022-05",
params: {
year: true,
month: true,
day: false,
hour: false,
minute: false,
second: false
},
});
const confirm = (e) => {
data.time = `${e.year}-${e.month}`;
}
</script>
\ No newline at end of file
<template>
<view class="app">
</view>
</template>
<script setup>
import { ref, reactive, onMounted, unref, computed, watch } from 'vue';
import { onLoad, onReady } from '@dcloudio/uni-app';
const data = reactive({
name: "",
intro: ""
});
</script>
\ No newline at end of file
<template>
<view class="app">
<u-form :model="data.formData" ref="form1" :errorType="data.errorType">
<u-form-item label="姓名" prop="name"><u-input v-model="data.formData.name" /></u-form-item>
<u-form-item label="简介" prop="intro"><u-input v-model="data.formData.intro" /></u-form-item>
</u-form>
<u-button @click="submit">提交</u-button>
</view>
</template>
<script setup>
import { ref, reactive, onMounted, unref, computed, watch } from 'vue';
import { onLoad, onReady } from '@dcloudio/uni-app';
const form1 = ref();
const data = reactive({
formData: {
name: "",
intro: ""
},
rules: {
name: [{
required: true,
message: '请输入姓名',
// 可以单个或者同时写两个触发验证方式
trigger: ['change', 'blur'],
}],
intro: [{
min: 5,
message: '简介不能少于5个字',
trigger: 'change'
}]
},
// 文字提示
// errorType: ['message'],
// 不提示
// errorType: ['none'],
// 文字和下划线提示
errorType: ['message', 'border-bottom'],
});
onReady(() => {
form1.value.setRules(data.rules);
});
const submit = (e) => {
form1.value.validate(valid => {
if (valid) {
uni.showToast({
title: "验证通过",
icon: 'none'
});
console.log('验证通过');
} else {
console.log('验证失败');
}
});
}
</script>
\ No newline at end of file
......@@ -439,6 +439,33 @@ export default {
// 格式化时间,在IE浏览器(uni不存在此情况),无法识别日期间的"-"间隔符号
let fdate = this.defaultTime.replace(/\-/g, "/");
fdate = fdate && fdate.indexOf("/") == -1 ? `2020/01/01 ${fdate}` : fdate;
// 时间字符串处理开始-----------------------------------------------------------
// ios对时间格式有严格要求,2020/01 这样的格式无法正常转时间,必须是2020/01/01 00:00:00 这样的格式
let arr1 = fdate.split(" ");
let arr1_1 = arr1[0] || "";
let arr1_2 = arr1[1] || "";
let arr2;
if (arr1_1.indexOf("-") > -1) {
arr2 = arr1_1.split("-");
} else {
arr2 = arr1_1.split("/");
}
let arr3 = arr1_2.split(":");
let dateObj = {
year: Number(arr2[0]),
month: Number(arr2[1]) || 1,
day: Number(arr2[2]) || 1,
hour: Number(arr3[0]) || 0,
minute: Number(arr3[1]) || 0,
second: Number(arr3[2]) || 0,
};
for (let key in dateObj) {
if (dateObj[key] >= 0 && dateObj[key] < 10) dateObj[key] = `0${dateObj[key]}`;
}
fdate = `${dateObj.year}/${dateObj.month}/${dateObj.day} ${dateObj.hour}:${dateObj.minute}:${dateObj.second}`;
// 时间字符串处理结束-----------------------------------------------------------
let time = null;
if (fdate) time = new Date(fdate);
else time = new Date();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册