From d5cec3467bc127fff1252945147a6a6635bf9131 Mon Sep 17 00:00:00 2001 From: chenxi-20 <2465950588@qq.com> Date: Tue, 8 Apr 2025 10:21:55 +0800 Subject: [PATCH 001/120] =?UTF-8?q?fix:=20[file-upload]=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=96=87=E4=BB=B6=E5=88=97=E8=A1=A8=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98=20(#3266)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/vue/src/upload-list/src/mobile-first.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/vue/src/upload-list/src/mobile-first.vue b/packages/vue/src/upload-list/src/mobile-first.vue index 75f74a6c00..e619fcf4e6 100644 --- a/packages/vue/src/upload-list/src/mobile-first.vue +++ b/packages/vue/src/upload-list/src/mobile-first.vue @@ -66,7 +66,7 @@ >
日历抛出的事件有以下这些:
\n' + + 'date-click:日期点击事件
\n' + 'new-schedule:新增日程按钮点击事件
\n' + 'selected-date-change:选中日期改变事件
\n' + 'prev-week-click:上一周按钮点击事件
\n' + @@ -177,6 +178,7 @@ export default { 'mode-change:模式切换事件
', 'en-US': 'Calendar throws the following events:
\n' + + 'date-click:日期点击事件: Date click event
\n' + 'new-schedule: Add a schedule button click event
\n' + 'selected-date-change: selected date change event
\n' + 'prev-week-click: button click event of the last week
\n' + @@ -371,11 +373,12 @@ export default { value: true }, description: - '日历抛出的事件包括:new-schedule、selected-date-change、prev-week-click、next-week-click、week-change、year-change、month-change、mode-change。', + '日历抛出的事件包括:date-click、new-schedule、selected-date-change、prev-week-click、next-week-click、week-change、year-change、month-change、mode-change。', cloud: { value: false }, apis: [ + 'date-click', 'new-schedule', 'selected-date-change', 'prev-week-click', diff --git a/packages/renderless/src/calendar-view/index.ts b/packages/renderless/src/calendar-view/index.ts index 874804616f..02580d41af 100644 --- a/packages/renderless/src/calendar-view/index.ts +++ b/packages/renderless/src/calendar-view/index.ts @@ -307,8 +307,19 @@ function splitEvent(props, event) { return result } +export const computedSelectDay = ({ state }) => +(day) => { + if (!day || !day.value || day.disabled) return false + + if (state.multiSelect) { + return state.selectedDates.includes(day.value) + } else{ + return state.selectedDate === day.value + } +} + export const selectDay = - ({ state, emit }) => + ({ props, state, emit, api }) => (day, i) => { if (!day || !day.value || day.disabled) return @@ -323,9 +334,11 @@ export const selectDay = state.selectedDates.push(date) } + const dateEvent = dealEvents(props, api, state.selectedDates) + emit('update:modelValue', state.selectedDates) emit('selected-date-change', state.selectedDates) - emit('date-click', date) + emit('date-click', state.selectedDates, dateEvent) } else { if (day.isNext) { const { year, month } = nextMonth(state.activeYear, state.activeMonth) @@ -342,12 +355,26 @@ export const selectDay = state.selectedDate = day.value.toString().length > 2 ? day.value : `${state.activeYear}-${state.activeMonth}-${day.value}` state.showSelectedDateEvents = true + + const dateEvent = dealEvents(props, api, [state.selectedDate]) emit('update:modelValue', state.selectedDate) - emit('date-click', state.selectedDate) + emit('date-click', state.selectedDate, dateEvent[0]) } } +const dealEvents = (props, api, date) => { + return date.map(item => { + let event = api.getEventByTime(item, props._constants.DAY_START_TIME, props._constants.DAY_END_TIME) + event.forEach(e => { + delete e.dayArr; + delete e.dayNumber; + }); + return event + }) + +} + export const getEventByMonth = ({ state }) => (year, month) => { diff --git a/packages/renderless/src/calendar-view/vue.ts b/packages/renderless/src/calendar-view/vue.ts index 61996066d2..2fea8735a0 100644 --- a/packages/renderless/src/calendar-view/vue.ts +++ b/packages/renderless/src/calendar-view/vue.ts @@ -1,6 +1,7 @@ import { computedCalendar, handleEvents, + computedSelectDay, selectDay, getEventByTime, isToday, @@ -47,6 +48,7 @@ export const api = [ 'isToday', 'dateIsToday', 'getEventByTime', + 'computedSelectDay', 'selectDay', 'toToday', 'getPrevWeek', @@ -270,7 +272,8 @@ const initApi = ({ vm, api, state, t, props, emit, nextTick }) => { computeCascaderOptions: computeCascaderOptions(t), isToday: isToday(state), dateIsToday: dateIsToday(), - selectDay: selectDay({ state, emit }), + selectDay: selectDay({ props, state, emit, api }), + computedSelectDay: computedSelectDay({ state }), getEventByTime: getEventByTime({ props, state }), toToday: toToday({ state, api, nextTick }), getAllWednesdaysInYear: getAllWednesdaysInYear({ state }), diff --git a/packages/theme-saas/src/calendar-view/index.less b/packages/theme-saas/src/calendar-view/index.less index 3a5872f5b8..5c31771956 100644 --- a/packages/theme-saas/src/calendar-view/index.less +++ b/packages/theme-saas/src/calendar-view/index.less @@ -62,6 +62,7 @@ >li{ @apply leading-10; + @apply cursor-pointer; >span{ @apply text-sm; @@ -351,6 +352,7 @@ >li{ @apply leading-10; + @apply cursor-pointer; .date{ @apply relative; @@ -358,7 +360,11 @@ @apply text-base; @apply text-color-text-primary; - &.is-today{ + &.is-today { + @apply text-color-brand; + } + + &.current { @apply text-color-brand; } } @@ -407,7 +413,11 @@ .week-day{ @apply text-sm; @apply text-color-text-placeholder; - &.is-today{ + &.is-today { + @apply text-color-brand; + } + + &.current { @apply text-color-brand; } } diff --git a/packages/theme/src/base/reset.less b/packages/theme/src/base/reset.less index e9ceebf2e0..5cd64b4f02 100644 --- a/packages/theme/src/base/reset.less +++ b/packages/theme/src/base/reset.less @@ -159,12 +159,12 @@ // x 和 y 滚动条交汇处 ::-webkit-scrollbar-corner { - background: var(--tv-color-bg-scrollbar-track); + background: transparent; } // 滚动条轨道 ::-webkit-scrollbar-track { - background: var(--tv-color-bg-scrollbar-track); + background: transparent; } // 滚动滑块 diff --git a/packages/theme/src/calendar-view/index.less b/packages/theme/src/calendar-view/index.less index 0607305eed..b5eadb7a61 100644 --- a/packages/theme/src/calendar-view/index.less +++ b/packages/theme/src/calendar-view/index.less @@ -360,6 +360,7 @@ > li { line-height: 40px; + cursor: pointer; .date { position: relative; @@ -370,6 +371,10 @@ &.is-today { color: var(--tv-CalendarView-week-date-today-text-color); } + + &.current { + color: var(--tv-CalendarView-week-date-today-text-color); + } } .mark { @@ -418,7 +423,11 @@ color: #8d959e; &.is-today { - color: #1890ff; + color: var(--tv-CalendarView-week-date-today-text-color); + } + + &.current { + color: var(--tv-CalendarView-week-date-today-text-color); } } } diff --git a/packages/theme/src/month-table/index.less b/packages/theme/src/month-table/index.less index 274214cddb..d7da847deb 100644 --- a/packages/theme/src/month-table/index.less +++ b/packages/theme/src/month-table/index.less @@ -24,6 +24,7 @@ } .month-table() { + width: 100%; font-size: var(--tv-MonthTable-font-size); margin: -1px; border-collapse: collapse; diff --git a/packages/vue/src/calendar-view/__tests__/calendar-view.test.tsx b/packages/vue/src/calendar-view/__tests__/calendar-view.test.tsx new file mode 100644 index 0000000000..b8a42ea29c --- /dev/null +++ b/packages/vue/src/calendar-view/__tests__/calendar-view.test.tsx @@ -0,0 +1,15 @@ +import { mountPcMode } from '@opentiny-internal/vue-test-utils' +import { describe, expect, test } from 'vitest' +import CalendarView from '@opentiny/vue-calendar-view' +import { nextTick } from 'vue' + +describe('PC Mode', () => { + const mount = mountPcMode + + test('value', async () => { + const wrapper = mount(() =>{{ customMessage }}
+ +{{ customMessage }}
+ +通过 message
插槽自定义消息内容。
Customize the message content through themessage
slot.