diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md
index f67b6c48486..60ac152ac31 100644
--- a/CHANGELOG.en-US.md
+++ b/CHANGELOG.en-US.md
@@ -7,6 +7,7 @@
- Fix seemly dependency version range allows incompatible versions.
- Fix `n-progress` style is incorrect after using the dashboard mode exceeding 100%, closes [#6627](https://github.com/tusen-ai/naive-ui/issues/6627)
- Fix `n-modal`'s outside content can't be interacted with `show-mask` is set to `false`.
+- Fix `n-date-picker` month panel handles quarter quick jump and disabled state incorrectly.
### Feats
diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md
index 2d9976d2a57..dae9964115a 100644
--- a/CHANGELOG.zh-CN.md
+++ b/CHANGELOG.zh-CN.md
@@ -7,6 +7,7 @@
- 修复 seemly 依赖的版本未更新到最新
- 修复 `n-progress` 使用仪表盘模式超过 100% 之后样式不正确,关闭 [#6627](https://github.com/tusen-ai/naive-ui/issues/6627)
- 修复 `n-modal` 在 `show-mask` 为 `false` 的情况下,外部内容不能被操作
+- 修复 `n-date-picker` 月份面板在季度快速跳转和禁用状态下的处理不正确
### Feats
diff --git a/src/date-picker/src/panel/month.tsx b/src/date-picker/src/panel/month.tsx
index 3f906ad6a81..af01dfc37bc 100644
--- a/src/date-picker/src/panel/month.tsx
+++ b/src/date-picker/src/panel/month.tsx
@@ -147,65 +147,133 @@ export default defineComponent({
onKeydown={this.handlePanelKeyDown}
>
-
- {{
- default: () => (
-
+
+ {{
+ default: () => [
+ (type === 'month'
+ ? this.monthArray
+ : this.quarterArray
+ ).map((item, i) =>
+ renderItem(item, i, mergedClsPrefix)
+ ),
+
+ ]
+ }}
+
+
+ ) : null,
+
{{
- default: ({
- item,
- index
- }: {
- item: YearItem
- index: number
- }) => {
- return renderItem(item, index, mergedClsPrefix)
- }
+ default: () => (
+
+ {{
+ default: ({
+ item,
+ index
+ }: {
+ item: YearItem
+ index: number
+ }) => {
+ return renderItem(item, index, mergedClsPrefix)
+ }
+ }}
+
+ )
}}
-
- )
- }}
-
- {type === 'month' || type === 'quarter' ? (
-
-
- {{
- default: () => [
- (type === 'month'
- ? this.monthArray
- : this.quarterArray
- ).map((item, i) => renderItem(item, i, mergedClsPrefix)),
-
- ]
- }}
-
-
- ) : null}
+
+ ]
+ : [
+
+ {{
+ default: () => (
+
+ {{
+ default: ({
+ item,
+ index
+ }: {
+ item: YearItem
+ index: number
+ }) => {
+ return renderItem(item, index, mergedClsPrefix)
+ }
+ }}
+
+ )
+ }}
+ ,
+ type === 'month' || type === 'quarter' ? (
+
+
+ {{
+ default: () => [
+ (type === 'month'
+ ? this.monthArray
+ : this.quarterArray
+ ).map((item, i) =>
+ renderItem(item, i, mergedClsPrefix)
+ ),
+
+ ]
+ }}
+
+
+ ) : null
+ ]}
{resolveWrappedSlot(this.datePickerSlots.footer, (children) => {
return children ? (