-
-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: ✨ datetime-picker新增right-icon插槽 #633
base: master
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -33,6 +33,15 @@ | |||||||||||||||||||||||||||||||||
<demo-block title="范围tab展示格式" transparent> | ||||||||||||||||||||||||||||||||||
<wd-datetime-picker label="日期选择" v-model="value15" @confirm="handleConfirm15" :display-format-tab-label="displayFormatTabLabel" /> | ||||||||||||||||||||||||||||||||||
</demo-block> | ||||||||||||||||||||||||||||||||||
<demo-block title="自定义icon" transparent> | ||||||||||||||||||||||||||||||||||
<wd-datetime-picker label="自定义icon" v-model="value18" ref="dateTimePickerRef"> | ||||||||||||||||||||||||||||||||||
<template #right-icon="{ disabled, readonly }"> | ||||||||||||||||||||||||||||||||||
<view @click.stop="rightIconClick" v-if="!disabled && !readonly"> | ||||||||||||||||||||||||||||||||||
<wd-icon custom-class="wd-picker__arrow" :name="isEmpty ? 'arrow-right' : 'close'" /> | ||||||||||||||||||||||||||||||||||
</view> | ||||||||||||||||||||||||||||||||||
</template> | ||||||||||||||||||||||||||||||||||
</wd-datetime-picker> | ||||||||||||||||||||||||||||||||||
</demo-block> | ||||||||||||||||||||||||||||||||||
</page-wraper> | ||||||||||||||||||||||||||||||||||
</template> | ||||||||||||||||||||||||||||||||||
<script lang="ts" setup> | ||||||||||||||||||||||||||||||||||
|
@@ -41,9 +50,10 @@ import type { DatetimePickerViewFilter, DatetimePickerViewFormatter } from '@/un | |||||||||||||||||||||||||||||||||
import type { | ||||||||||||||||||||||||||||||||||
DatetimePickerDisplayFormat, | ||||||||||||||||||||||||||||||||||
DatetimePickerDisplayFormatTabLabel, | ||||||||||||||||||||||||||||||||||
DatetimePickerInstance | ||||||||||||||||||||||||||||||||||
DatetimePickerInstance, | ||||||||||||||||||||||||||||||||||
DatetimePickerExpose | ||||||||||||||||||||||||||||||||||
} from '@/uni_modules/wot-design-uni/components/wd-datetime-picker/types' | ||||||||||||||||||||||||||||||||||
import { ref } from 'vue' | ||||||||||||||||||||||||||||||||||
import { ref, computed } from 'vue' | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
const value1 = ref<string>('') | ||||||||||||||||||||||||||||||||||
const value2 = ref<number>(Date.now()) | ||||||||||||||||||||||||||||||||||
|
@@ -62,10 +72,13 @@ const value14 = ref<any[]>(['', '']) | |||||||||||||||||||||||||||||||||
const value15 = ref<any[]>(['', Date.now()]) | ||||||||||||||||||||||||||||||||||
const value16 = ref(Date.now()) | ||||||||||||||||||||||||||||||||||
const value17 = ref(Date.now()) | ||||||||||||||||||||||||||||||||||
const value18 = ref<any[]>(['', Date.now()]) | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
const minDate = ref<number>(Date.now()) | ||||||||||||||||||||||||||||||||||
const maxDate = ref<number>(new Date(new Date().getFullYear() + 1, new Date().getMonth(), new Date().getDate()).getTime()) | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
const dateTimePickerRef = ref<DatetimePickerExpose>() | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
const formatter: DatetimePickerViewFormatter = (type, value) => { | ||||||||||||||||||||||||||||||||||
switch (type) { | ||||||||||||||||||||||||||||||||||
case 'year': | ||||||||||||||||||||||||||||||||||
|
@@ -160,5 +173,18 @@ function handleConfirm16({ value }: any) { | |||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||
/** picker触发cancel事件,同步触发cancel事件 */ | ||||||||||||||||||||||||||||||||||
function onCancel() {} | ||||||||||||||||||||||||||||||||||
/* 自定义icon */ | ||||||||||||||||||||||||||||||||||
const isEmpty = computed(() => { | ||||||||||||||||||||||||||||||||||
return value18.value.every((item) => item == '') | ||||||||||||||||||||||||||||||||||
}) | ||||||||||||||||||||||||||||||||||
/* right-icon点击事件 */ | ||||||||||||||||||||||||||||||||||
function rightIconClick() { | ||||||||||||||||||||||||||||||||||
if (isEmpty.value) { | ||||||||||||||||||||||||||||||||||
dateTimePickerRef.value!.open() | ||||||||||||||||||||||||||||||||||
return | ||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||
value18.value = [] | ||||||||||||||||||||||||||||||||||
toast.success('清空成功') | ||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||
Comment on lines
+181
to
+188
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 建议改进 rightIconClick 函数中的空值处理。
建议使用可选链操作符 (?.) 来安全地访问和调用 function rightIconClick() {
if (isEmpty.value) {
- dateTimePickerRef.value!.open()
+ dateTimePickerRef.value?.open()
return
}
value18.value = []
toast.success('清空成功')
} 这样可以避免在 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||
</script> | ||||||||||||||||||||||||||||||||||
<style lang="scss" scoped></style> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slot 表格更新正确,但版本号需要确定:
$LOWEST_VERSION$
需要替换为实际的版本号。right-icon
插槽添加更多详细信息,例如可用的作用域参数。建议进行如下修改:
$LOWEST_VERSION$
替换为此功能首次引入的实际版本号。right-icon
插槽的说明,例如:x.x.x
为实际版本号。这些修改将使文档更加准确和有用。