Skip to content

Commit 2a9c3a7

Browse files
daviForevelkagol
authored andcommitted
feat(date-picker-pro): 完善size属性
1 parent 77cfa75 commit 2a9c3a7

File tree

5 files changed

+53
-7
lines changed

5 files changed

+53
-7
lines changed

packages/devui-vue/devui/date-picker-pro/__tests__/date-picker-pro.spec.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ const tableMonthClass = ns.e('table-month');
1515
const noDotNs = useNamespace('date-picker-pro', false);
1616
const noDotYearActiveClass = noDotNs.e('year-title-active');
1717

18+
const inputNs = useNamespace('input', true);
19+
1820
describe('date-picker-pro test', () => {
1921
it('date-picker-pro init render', async () => {
2022
const datePickerProValue = ref('');
@@ -269,4 +271,18 @@ describe('date-picker-pro test', () => {
269271

270272
wrapper.unmount();
271273
});
274+
275+
it('date-picker-pro size test', async () => {
276+
const datePickerProValue = ref<Date | string>('');
277+
const wrapper = mount({
278+
setup() {
279+
return () => <DDatePickerPro v-model={datePickerProValue.value} size="lg"></DDatePickerPro>;
280+
},
281+
});
282+
const container = wrapper.find(baseClass);
283+
const input = container.find(inputNs.m('lg'));
284+
expect(input.exists()).toBeTruthy();
285+
286+
wrapper.unmount();
287+
});
272288
});

packages/devui-vue/devui/date-picker-pro/__tests__/range-date-picker-pro.spec.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ const tableMonthClass = datePickerNs.e('table-month');
1414
const noDotDatePickerNs = useNamespace('date-picker-pro', false);
1515
const noDotYearActiveClass = noDotDatePickerNs.e('year-title-active');
1616

17+
const inputNs = useNamespace('input', true);
18+
1719
describe('range-date-picker-pro test', () => {
1820
it('range-date-picker-pro init render', async () => {
1921
const datePickerProValue = ref(['', '']);
@@ -206,7 +208,7 @@ describe('range-date-picker-pro test', () => {
206208
);
207209
expect(inputs[1].value).toBe('');
208210

209-
const rangePicker = container.find(rangeDatePickerNs.e('ranger-picker'));
211+
const rangePicker = container.find(rangeDatePickerNs.e('range-picker'));
210212
await rangePicker.trigger('mouseover');
211213
const icon = rangePicker.find(rangeDatePickerNs.m('icon-visible'));
212214
expect(icon.exists()).toBeTruthy();
@@ -217,4 +219,20 @@ describe('range-date-picker-pro test', () => {
217219

218220
wrapper.unmount();
219221
});
222+
223+
it('range-date-picker-pro size test', async () => {
224+
const datePickerProValue = ref<(Date | string)[]>(['', '']);
225+
const wrapper = mount({
226+
setup() {
227+
return () => <DRangeDatePickerPro v-model={datePickerProValue.value} size="lg"></DRangeDatePickerPro>;
228+
},
229+
});
230+
const container = wrapper.find(baseClass);
231+
const inputs = container.findAll(inputNs.m('lg'));
232+
expect(inputs.length).toBe(2);
233+
expect(inputs[0].exists()).toBeTruthy();
234+
expect(inputs[1].exists()).toBeTruthy();
235+
236+
wrapper.unmount();
237+
});
220238
});

packages/devui-vue/devui/date-picker-pro/src/components/range-date-picker-pro.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ export default defineComponent({
3838

3939
return () => {
4040
return (
41-
<div class={[ns.b(), props.showTime ? ns.e('range-time-width') : ns.e('range-width')]} ref={containerRef}>
41+
<div
42+
class={[ns.b(), props.showTime ? ns.e('range-time-width') : ns.e('range-width'), isPanelShow.value && ns.m('open')]}
43+
ref={containerRef}>
4244
<div
43-
class={ns.e('ranger-picker')}
45+
class={ns.e('range-picker')}
4446
ref={originRef}
4547
onmouseover={() => (isMouseEnter.value = true)}
4648
onmouseout={() => (isMouseEnter.value = false)}>
@@ -81,7 +83,7 @@ export default defineComponent({
8183
</span>
8284
</div>
8385
<Transition name="fade">
84-
<FlexibleOverlay v-model={isPanelShow.value} ref={overlayRef} origin={originRef.value} position={position.value}>
86+
<FlexibleOverlay v-model={isPanelShow.value} ref={overlayRef} origin={originRef.value} align="start" position={position.value}>
8587
<DatePickerProPanel
8688
dateValue={dateValue.value}
8789
visible={isPanelShow.value}

packages/devui-vue/devui/date-picker-pro/src/composables/use-calendar-panel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ export default function useCalendarPanel(props: DatePickerProPanelProps, ctx: Se
182182
}
183183
};
184184

185-
const handlerSetRangerDate = (day: CalendarDateItem) => {
185+
const handlerSetRangeDate = (day: CalendarDateItem) => {
186186
if (props.focusType === 'start') {
187187
rangeSelectDate.value[0] = dayjs(new Date(day.date.setHours(0, 0, 0))).locale('zh-cn');
188188
} else if (props.focusType === 'end') {
@@ -197,7 +197,7 @@ export default function useCalendarPanel(props: DatePickerProPanelProps, ctx: Se
197197
}
198198
selectDate.value = dayjs(new Date(day.date.setHours(0, 0, 0))).locale('zh-cn');
199199
if (props.isRangeType) {
200-
handlerSetRangerDate(day);
200+
handlerSetRangeDate(day);
201201
}
202202
if (props.isRangeType && !props.showTime) {
203203
if (props.focusType === 'start') {

packages/devui-vue/devui/date-picker-pro/src/date-picker-pro.scss

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ $input-height-lg: 46px;
285285
width: 400px;
286286
}
287287

288-
.#{$devui-prefix}-range-date-picker-pro__ranger-picker {
288+
.#{$devui-prefix}-range-date-picker-pro__range-picker {
289289
display: flex;
290290
justify-content: center;
291291
align-items: center;
@@ -350,4 +350,14 @@ $input-height-lg: 46px;
350350
visibility: hidden;
351351
}
352352
}
353+
354+
&--open {
355+
.#{$devui-prefix}-range-date-picker-pro__range-picker {
356+
border-color: $devui-form-control-line-active;
357+
358+
&:hover {
359+
border-color: $devui-form-control-line-active;
360+
}
361+
}
362+
}
353363
}

0 commit comments

Comments
 (0)