Compare commits

...

19 Commits
main ... 3.x

Author SHA1 Message Date
tangjinzhou 35b33adb00 fix(index.html): correct script URL for Ant Design Vue documentation search 2025-09-19 15:30:02 +08:00
tangjinzhou 6962bac004 fix(menu): update value binding for antdVersion in Menu component 2025-09-19 15:26:02 +08:00
tangjinzhou e1d2133118 chore: update build scripts and add Cloudflare deployment workflow 2025-09-19 14:53:24 +08:00
tangjinzhou 646de93ed5 chore: update URLs to reflect the new domain for Surely Vue 2025-09-19 14:53:15 +08:00
gitplus 6fa34e715a
style: remove /* #__PURE__*/ comments (#7392) 2024-03-02 09:56:03 +08:00
huiliangShen 8f5a6aeaaa
fix(carousel):rendering error in jsx (#7101) 2023-12-18 10:23:44 +08:00
Northerner 672b9917f3
fix(form-item): initialValue issue in resetField (#7091) 2023-11-11 09:32:06 +08:00
Konv Suu eae2b5d412
fix(transfer): checkbox click evt run repeatedly (#6903)
* fix(transfer): checkbox click evt run repeatedly

* update
2023-09-09 09:22:05 +08:00
Cherry7 42982afa70
fix(tabs): dropdown show (#6758) 2023-08-06 11:51:01 +08:00
Konv Suu 8140f9ec02
fix(checkbox): change trigger form validation (#6800) 2023-08-06 10:53:37 +08:00
Konv Suu e204d69e74
docs: fix drawer-handler's background in dark mode (#6802) 2023-08-06 10:52:15 +08:00
tangjinzhou 19698b7407 Merge remote-tracking branch 'origin/main' into 3.x 2023-07-14 11:57:26 +08:00
KaygNas 3838c5da3f
fix(vc-trigger): enable align when status 'motion' to avoid animation of child restart when transition finished. #6656 (#6662) 2023-06-25 09:37:50 +08:00
Zhang Wei 0b73afffc4
fix(empty): Fix image slot failure issue (#6681) 2023-06-25 07:06:01 +08:00
wang junjia 6111883a5a
docs(replace-date): replace-date.en-US.md 替换 => replace (#6679) 2023-06-25 06:52:25 +08:00
xiangnan 5d8a59e9c3
feat: prop type of select should contain Boolean (#6691) 2023-06-25 06:45:07 +08:00
tangjinzhou 823b3ddd11 fix: operationNodeProps ts error 2023-06-16 14:09:35 +08:00
zepeng 7f96399009
fix(tabs): the dropdown menu opened automatically in Customized trigger of new tab (#6655)
* fix(tabs):  the dropdown menu opened automatically in Customized trigger of new tab

* fix(tabs): the dropdown menu opened automatically in Customized trigger of new tab
2023-06-16 14:08:29 +08:00
tangjinzhou c920923a72 docs: update 2023-06-15 16:19:43 +08:00
38 changed files with 156 additions and 129 deletions

63
.github/workflows/cloudflare.yml vendored Normal file
View File

@ -0,0 +1,63 @@
name: Build and Deploy to Cloudflare
on:
push:
branches: [ 3.x ]
jobs:
build:
runs-on: ubuntu-latest
name: Build Application
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install --force
- name: Build application
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-files
path: site/dist/
retention-days: 1
deploy:
runs-on: ubuntu-latest
name: Deploy to Cloudflare
needs: build
permissions:
contents: read
deployments: write
steps:
- name: Checkout (for config files)
uses: actions/checkout@v5
with:
sparse-checkout: |
wrangler.jsonc
sparse-checkout-cone-mode: false
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-files
path: site/dist/
- name: Deploy (Workers + Static Assets)
uses: cloudflare/wrangler-action@v3.14.1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: deploy --config wrangler.jsonc
gitHubToken: ${{ secrets.GITHUB_TOKEN }}

View File

@ -530,7 +530,7 @@
Publish Performant advanced table component Surely Vue
Official website [https://surely.cool/](https://surely.cool/)
Official website [https://surelyvue.com/](https://surelyvue.com/)
Github[https://github.com/surely-vue/table]

View File

@ -529,7 +529,7 @@
高级组件 Surely Vue 发布!!!
官方站点 [https://surely.cool/](https://surely.cool/)
官方站点 [https://surelyvue.com/](https://surelyvue.com/)
Github[https://github.com/surely-vue/table]

View File

@ -86,7 +86,7 @@ ant-design-vue 是 MIT 协议的开源项目。为了项目能够更好的持续
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/ant-design-vue#sponsor)]
<a href="http://www.jeecg.com/" target="_blank"><img src="https://aliyuncdn.antdv.com/jeecg-logo.png" height="64"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/3/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/4/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/5/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/6/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/7/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/8/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/9/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/10/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/10/avatar.svg"></a>
<a href="http://www.jeecg.com/" target="_blank"><img src="https://www.antdv.com/jeecg-logo.png" height="64"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/3/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/4/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/5/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/6/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/7/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/8/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/9/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/10/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/10/avatar.svg"></a>
## Backers

View File

@ -80,7 +80,7 @@ ant-design-vue is an MIT-licensed open source project. In order to achieve bette
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/ant-design-vue#sponsor)]
<a href="http://www.jeecg.com/" target="_blank"><img src="https://aliyuncdn.antdv.com/jeecg-logo.png" height="64"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/3/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/4/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/5/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/6/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/7/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/8/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/9/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/10/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/10/avatar.svg"></a>
<a href="http://www.jeecg.com/" target="_blank"><img src="https://www.antdv.com/jeecg-logo.png" height="64"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/3/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/4/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/5/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/6/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/7/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/8/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/9/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/ant-design-vue/sponsor/10/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/10/avatar.svg"></a>
## [More Sponsor (From Patreon、alipay、wechat、paypal...)](https://github.com/vueComponent/ant-design-vue/blob/master/BACKERS.md)

View File

@ -28,7 +28,7 @@ export interface ConfigurableLocation {
location?: Location;
}
export const defaultWindow = /* #__PURE__ */ isClient ? window : undefined;
export const defaultDocument = /* #__PURE__ */ isClient ? window.document : undefined;
export const defaultNavigator = /* #__PURE__ */ isClient ? window.navigator : undefined;
export const defaultLocation = /* #__PURE__ */ isClient ? window.location : undefined;
export const defaultWindow = isClient ? window : undefined;
export const defaultDocument = isClient ? window.document : undefined;
export const defaultNavigator = isClient ? window.navigator : undefined;
export const defaultLocation = isClient ? window.location : undefined;

View File

@ -21,7 +21,7 @@ export const rand = (min: number, max: number) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
export const isIOS =
/* #__PURE__ */ isClient &&
isClient &&
window?.navigator?.userAgent &&
/iP(ad|hone|od)/.test(window.navigator.userAgent);
export const hasOwn = <T extends object, K extends keyof T>(val: T, key: K): key is K =>

View File

@ -1,6 +1,6 @@
import { filterEmpty } from './props-util';
import type { VNode, VNodeProps } from 'vue';
import { cloneVNode } from 'vue';
import { cloneVNode, isVNode } from 'vue';
import warning from './warning';
import type { RefObject } from './createRef';
type NodeProps = Record<string, any> &
@ -40,6 +40,10 @@ export function deepCloneElement<T, U>(
if (Array.isArray(vnode)) {
return vnode.map(item => deepCloneElement(item, nodeProps, override, mergeRef));
} else {
// 需要判断是否为vnode方可进行clone操作
if (!isVNode(vnode)) {
return vnode;
}
const cloned = cloneElement(vnode, nodeProps, override, mergeRef);
if (Array.isArray(cloned.children)) {
cloned.children = deepCloneElement(cloned.children as VNode<T, U>[]);

View File

@ -46,6 +46,7 @@ export default defineComponent({
const targetChecked = event.target.checked;
emit('update:checked', targetChecked);
emit('change', event);
formItemContext.onFieldChange();
};
const checkboxRef = ref();
const focus = () => {

View File

@ -36,7 +36,7 @@ const Empty: EmptyType = (props, { slots = {}, attrs }) => {
const prefixCls = prefixClsRef.value;
const {
image = defaultEmptyImg,
image = slots.image?.() || defaultEmptyImg,
description = slots.description?.() || undefined,
imageStyle,
class: className = '',

View File

@ -308,7 +308,7 @@ export default defineComponent({
const value = fieldValue.value;
const prop = getPropByPath(model, namePath.value, true);
if (Array.isArray(value)) {
prop.o[prop.k] = [].concat(initialValue.value);
prop.o[prop.k] = [].concat(initialValue.value ?? []);
} else {
prop.o[prop.k] = initialValue.value;
}

View File

@ -58,13 +58,13 @@ exports[`renders ./components/image/demo/placeholder.vue correctly 1`] = `
`;
exports[`renders ./components/image/demo/preview-group.vue correctly 1`] = `
<div class="ant-image" style="width: 200px;"><img class="ant-image-img" src="https://aliyuncdn.antdv.com/vue.png">
<div class="ant-image" style="width: 200px;"><img class="ant-image-img" src="https://www.antdv.com/vue.png">
<!---->
<div class="ant-image-mask">
<div class="ant-image-mask-info"><span role="img" aria-label="eye" class="anticon anticon-eye"><svg focusable="false" class="" data-icon="eye" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"></path></svg></span>Preview</div>
</div>
</div>
<div class="ant-image" style="width: 200px;"><img class="ant-image-img" src="https://aliyuncdn.antdv.com/logo.png">
<div class="ant-image" style="width: 200px;"><img class="ant-image-img" src="https://www.antdv.com/logo.png">
<!---->
<div class="ant-image-mask">
<div class="ant-image-mask-info"><span role="img" aria-label="eye" class="anticon anticon-eye"><svg focusable="false" class="" data-icon="eye" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"></path></svg></span>Preview</div>
@ -106,7 +106,7 @@ exports[`renders ./components/image/demo/preview-group-visible.vue correctly 1`]
`;
exports[`renders ./components/image/demo/preview-src.vue correctly 1`] = `
<div class="ant-image" style="width: 200px;"><img class="ant-image-img" src="https://aliyuncdn.antdv.com/logo.png">
<div class="ant-image" style="width: 200px;"><img class="ant-image-img" src="https://www.antdv.com/logo.png">
<!---->
<div class="ant-image-mask">
<div class="ant-image-mask-info"><span role="img" aria-label="eye" class="anticon anticon-eye"><svg focusable="false" class="" data-icon="eye" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"></path></svg></span>Preview</div>

View File

@ -18,8 +18,8 @@ Click the left and right switch buttons to preview multiple images.
<template>
<a-image-preview-group>
<a-image :width="200" src="https://aliyuncdn.antdv.com/vue.png" />
<a-image :width="200" src="https://aliyuncdn.antdv.com/logo.png" />
<a-image :width="200" src="https://www.antdv.com/vue.png" />
<a-image :width="200" src="https://www.antdv.com/logo.png" />
</a-image-preview-group>
</template>
<script lang="ts">

View File

@ -19,7 +19,7 @@ You can set different preview image.
<template>
<a-image
:width="200"
src="https://aliyuncdn.antdv.com/logo.png"
src="https://www.antdv.com/logo.png"
:preview="{
src: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
}"

View File

@ -192,7 +192,7 @@ export default defineComponent({
const value16 = ref<string>('');
const value17 = ref<string>('Home');
const value18 = ref<string[]>([]);
const value19 = ref<string>('https://surely.cool');
const value19 = ref<string>('https://surelyvue.com');
const value20 = ref<string>('https://antdv.com');
return {

View File

@ -36,10 +36,10 @@ export const selectProps = () => ({
'backfill',
]),
value: {
type: [Array, Object, String, Number] as PropType<SelectValue>,
type: [Array, Object, String, Number, Boolean] as PropType<SelectValue>,
},
defaultValue: {
type: [Array, Object, String, Number] as PropType<SelectValue>,
type: [Array, Object, String, Number, Boolean] as PropType<SelectValue>,
},
notFoundContent: PropTypes.any,
suffixIcon: PropTypes.any,

View File

@ -126,7 +126,7 @@ exports[`renders ./components/table/demo/basic.vue correctly 1`] = `
`;
exports[`renders ./components/table/demo/big-data.vue correctly 1`] = `
<iframe src="https://www.surely.cool/for-ant-demo" height="400"></iframe>
<iframe src="https://www.surelyvue.com/for-ant-demo" height="400"></iframe>
<!--v-if-->
`;

View File

@ -8,21 +8,21 @@ title:
## zh-CN
该示例使用高级组件 [Surely Vue](https://www.surely.cool) Surely Vue Ant Design Vue
该示例使用高级组件 [Surely Vue](https://www.surelyvue.com) Surely Vue Ant Design Vue
该组件致力于解决大数据渲染图表集成等复杂高频问题 使用该组件可以流畅滚动 10 万行10 万列的数据你不必担心页面卡顿造成用户投诉进而影响业务进展
## en-US
This example uses advanced components [Surely Vue](https://www.surely.cool) for development.
This example uses advanced components [Surely Vue](https://www.surelyvue.com) for development.
This component is dedicated to solving complex high-frequency issues such as big data rendering and chart integration.
Using this component, you can smoothly scroll through 100,000 rows and 100,000 columns of data.
</docs>
<template>
<iframe src="https://www.surely.cool/for-ant-demo" height="400"></iframe>
<iframe src="https://www.surelyvue.com/for-ant-demo" height="400"></iframe>
<div v-if="false">
you can visit
<a href="https://www.surely.cool"></a>
<a href="https://www.surelyvue.com"></a>
get more info
</div>
</template>

View File

@ -14,7 +14,7 @@ import EllipsisOutlined from '@ant-design/icons-vue/EllipsisOutlined';
export const operationNodeProps = {
prefixCls: { type: String },
id: { type: String },
tabs: { type: Object as PropType<(Tab & { closeIcon?: () => any })[]> },
tabs: { type: Array as PropType<(Tab & { closeIcon?: () => any })[]> },
rtl: { type: Boolean },
tabBarGutter: { type: Number },
activeKey: { type: [String, Number] },
@ -121,6 +121,15 @@ export default defineComponent({
}
});
watch(
() => props.tabs.length,
val => {
if (!val) {
setOpen(false);
}
},
);
return () => {
const {
prefixCls,
@ -135,6 +144,7 @@ export default defineComponent({
rtl,
onTabClick,
} = props;
if (!tabs.length) return null;
const dropdownPrefix = `${prefixCls}-dropdown`;
const dropdownAriaLabel = locale?.dropdownAriaLabel;

View File

@ -189,6 +189,15 @@
&-footer {
border-top: @border-width-base @border-style-base @border-color-split;
}
&-checkbox {
line-height: 1;
align-items: center;
& > span {
top: 0;
}
}
}
&-operation {

View File

@ -127,7 +127,10 @@ export default defineComponent({
},
});
const alignDisabled = computed(() => {
if ((props.align as any)?.points && (status.value === 'align' || status.value === 'stable')) {
if (
(props.align as any)?.points &&
(status.value === 'align' || status.value === 'motion' || status.value === 'stable')
) {
return false;
}
return true;

View File

@ -33,7 +33,7 @@
"precompile": "npm run version",
"pretest": "npm run version",
"predist": "npm run version",
"presite": "npm run version",
"prebuild": "npm run version",
"dev": "npm run predev && npm run routes && vite serve site",
"test": "cross-env NODE_ENV=test jest --config .jest.js",
"compile": "node antd-tools/cli/run.js compile",
@ -56,8 +56,7 @@
"routes": "node site/scripts/genrateRoutes.js",
"tsc": "tsc --noEmit",
"vue-tsc": "vue-tsc --noEmit",
"site": "npm run routes && ./node_modules/vite/bin/vite.js build site --base=https://www.antdv.com/",
"pub:site": "npm run site && node site/scripts/pushToOSS.js",
"build": "npm run routes && ./node_modules/vite/bin/vite.js build site --base=/",
"prepare": "husky install",
"version": "node ./scripts/generate-version",
"sort-api": "node antd-tools/cli/run.js sort-api-table"

View File

@ -12,7 +12,7 @@
content="An enterprise-class UI components based on Ant Design and Vue"
/>
<title>Ant Design Vue</title>
<link rel="icon" type="image/x-icon" href="//aliyuncdn.antdv.com/favicon.ico" />
<link rel="icon" type="image/x-icon" href="//www.antdv.com/favicon.ico" />
<style id="nprogress-style">
#page-404 {
background-image: url('https://os.alipayobjects.com/rmsportal/NOAjOBbnYCrNzrW.jpg');

View File

@ -16,7 +16,7 @@
name="keywords"
content="ant design vue,ant-design-vue,ant-design-vue admin,ant design pro,vue ant design,vue ant design pro,vue ant design admin,ant design vue官网,ant design vue中文文档,ant design vue文档"
/>
<link rel="shortcut icon" type="image/x-icon" href="//aliyuncdn.antdv.com/favicon.ico" />
<link rel="shortcut icon" type="image/x-icon" href="//www.antdv.com/favicon.ico" />
<style id="nprogress-style">
#nprogress {
display: none;
@ -49,7 +49,7 @@
<body>
<div id="app"></div>
<script src="https://aliyuncdn.antdv.com/common/docsearch.min_2.6.3.js"></script>
<script src="https://www.antdv.com/docsearch.min_2.6.3.js"></script>
<script type="module" src="/src/main.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-151755889-1"></script>
@ -63,23 +63,5 @@
gtag('config', 'UA-151755889-1');
</script>
<script type="text/javascript" src="https://cdn.wwads.cn/js/makemoney.js" async></script>
<!-- <div
class="surveybyantdv"
data-sf-id="63ad5912f3e10066"
data-sf-mode="popover"
data-sf-button-color="#3a3939"
data-sf-text-color="#ffffff"
data-sf-button-radius="50"
data-sf-button-icon="form-outlined"
data-sf-default-open="false"
data-sf-allow-repeat-submit="true"
data-sf-close-after-submit="false"
data-sf-hide-after-submit="false"
data-sf-delay-visible="false"
data-sf-preload="true"
data-sf-width="368px"
data-sf-height="407px"
></div>
<script async src="https://aliyuncdn.antdv.com/form/static/embed/runtime.js"></script> -->
</body>
</html>

View File

@ -8,9 +8,9 @@ const accessKeyId = process.env.ALI_OSS_ACCESSKEY;
const accessKeySecret = process.env.ALI_OSS_SECRETKEY;
const client = new OSS({
bucket: 'next-antdv',
bucket: '3x-antdv',
cname: 'true',
endpoint: 'next-antdv.oss-cn-beijing.aliyuncs.com',
endpoint: '3x-antdv.oss-cn-beijing.aliyuncs.com',
region: 'oss-cn-beijing',
accessKeyId,
accessKeySecret,

View File

@ -9,12 +9,6 @@
</template>
</a-carousel>
</template>
<template v-else-if="showGoogleAd">
<!-- <template v-if="isCN">
<WWAds :key="`WWAds_${$route.path}`" />
</template> -->
<google-ads-top :key="`GoogleAdsTop_${$route.path}`" />
</template>
</div>
</template>
@ -22,14 +16,12 @@
import dayjs from 'dayjs';
import isBetween from 'dayjs/plugin/isBetween';
dayjs.extend(isBetween);
import GoogleAdsTop from './GoogleAdsTop.vue';
// import WWAds from './WWAds.vue';
const isEffective = (start, end) => {
return dayjs().isBetween(start, end);
};
export default {
components: {
GoogleAdsTop,
// WWAds,
},
props: ['isCN', 'isMobile'],

View File

@ -1,25 +1,10 @@
<template>
<div class="container">
<a-carousel autoplay>
<a style="display: inline-block" href="https://form.antdv.com/" target="_blank">
<a style="display: inline-block" href="https://www.surelyvue.com/" target="_blank">
<div :class="cls">
<div class="logo">
<img height="80" src="https://aliyuncdn.antdv.com/form/static/logo-blue.png" alt="" />
</div>
<div class="desc">
<!-- <div class="title">Surely Form</div> -->
<div class="sub-title">
<strong>雪梨表单为您定制</strong>
<br />
专属的调研投票NPS报名等系统
</div>
</div>
</div>
</a>
<a style="display: inline-block" href="https://www.surely.cool/" target="_blank">
<div :class="cls">
<div class="logo">
<img height="80" src="https://www.surely.cool/surely-vue-logo.png" alt="" />
<img height="80" src="https://www.surelyvue.com/surely-vue-logo.png" alt="" />
</div>
<div class="desc">
<div class="title">Surely Table</div>

View File

@ -13,7 +13,7 @@
<a-menu-item-group v-if="isZhCN" title="高级组件">
<a-menu-item key="surely-table">
<a
href="https://www.surely.cool"
href="https://www.surelyvue.com"
target="_blank"
rel="noopener noreferrer"
style="position: relative"
@ -21,17 +21,6 @@
Surely Table
</a>
</a-menu-item>
<a-menu-item key="surely-form">
<a
href="https://form.antdv.com"
target="_blank"
rel="noopener noreferrer"
style="position: relative"
>
Surely Form
<a-badge color="red" style="position: absolute; top: -18px; right: -15px" />
</a>
</a-menu-item>
</a-menu-item-group>
<template v-for="m in menus">
<template v-if="m.children">

View File

@ -9,10 +9,9 @@
class="version"
size="small"
:dropdown-match-select-width="false"
:default-value="antdVersion"
:value="antdVersion"
>
<a-select-option :value="antdVersion">{{ antdVersion }}</a-select-option>
<a-select-option value="next" @click="changeVersion('next')">4.x (Next)</a-select-option>
<a-select-option value="2.x" @click="changeVersion('2x')">
2.x (Not Recommended)
</a-select-option>

View File

@ -25,7 +25,7 @@
</template>
<a-menu-item key="surely-table">
<a
href="https://www.surely.cool"
href="https://www.surelyvue.com"
target="_blank"
rel="noopener noreferrer"
style="position: relative"
@ -33,17 +33,6 @@
Surely Table
</a>
</a-menu-item>
<a-menu-item key="surely-form">
<a
href="https://form.antdv.com"
target="_blank"
rel="noopener noreferrer"
style="position: relative"
>
Surely Form
<a-badge color="red" style="position: absolute; top: -18px; right: -15px" />
</a>
</a-menu-item>
</a-sub-menu>
<a-menu-item key="store">
<a

View File

@ -16,12 +16,6 @@
<CloseOutlined class="close-icon" @click="visibleAdblockBanner = false" />
</div> -->
<div v-if="visibleAlertBanner && isZhCN" class="alert-banner">
Surely Form 2.0 发布快速定制自己的问卷平台 &nbsp;&nbsp;
<a href="https://form.antdv.com">立即体验</a>
<CloseOutlined class="close-icon" @click="visibleAlertBanner = false" />
</div>
<a-popover
v-model:visible="menuVisible"
overlay-class-name="popover-menu"

View File

@ -176,25 +176,25 @@ export default defineComponent({
{
title: '大数据渲染',
enTitle: 'Virtualized Table',
href: 'https://surely.cool/doc/performance',
href: 'https://surelyvue.com/doc/performance',
target: '_blank',
},
{
title: '行拖拽排序',
enTitle: 'Row Drag Sort',
href: 'https://surely.cool/doc/dragable#drag-row',
href: 'https://surelyvue.com/doc/dragable#drag-row',
target: '_blank',
},
{
title: '列拖拽排序',
enTitle: 'Column Drag Sort',
href: 'https://surely.cool/doc/dragable#drag-column',
href: 'https://surelyvue.com/doc/dragable#drag-column',
target: '_blank',
},
{
title: '更多高性能示例',
enTitle: 'More high-performance examples ',
href: 'https://surely.cool',
href: 'https://surelyvue.com',
target: '_blank',
},
],

View File

@ -366,4 +366,8 @@
color: rgba(255, 255, 255, 0.65);
}
}
.drawer-handle {
background: #1d1d1d;
}
}

View File

@ -87,22 +87,12 @@ export default defineComponent({
category: 'Components',
cols: 1,
cover: 'https://gw.alipayobjects.com/zos/alicdn/f-SbcX2Lx/Table.svg',
path: 'https://surely.cool/',
path: 'https://surelyvue.com/',
subtitle: '更强大的表格',
title: 'Surely Table',
type: 'Advanced And Powerful',
target: '_blank',
},
{
category: 'Components',
cols: 1,
cover: 'https://aliyuncdn.antdv.com/form/static/assets/landing-config.4f9d5425.png',
path: 'https://form.antdv.com/',
subtitle: '在线表单',
title: 'Surely Form',
type: 'Advanced And Powerful',
target: '_blank',
},
],
enTitle: 'Advanced And Powerful',
title: '更强大',

View File

@ -2,7 +2,7 @@
Starting from the V3 version, the momentjs library is replaced by dayjs by default. If you need to use the momentjs or date-fns date library, you can replace it as follows:
### 替换 DatePicker
### replace DatePicker
```js
// moment or date-fns

View File

@ -33,7 +33,7 @@ You can consult me by email [antdv@foxmail.com](antdv@foxmail.com).
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/ant-design-vue#sponsor)]
<div>
<a href="http://www.jeecg.com/" target="_blank"><img src="https://aliyuncdn.antdv.com/jeecg-logo.png" height="64"></a>
<a href="http://www.jeecg.com/" target="_blank"><img src="https://www.antdv.com/jeecg-logo.png" height="64"></a>
<a href="https://opencollective.com/ant-design-vue/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/ant-design-vue/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/ant-design-vue/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/2/avatar.svg"></a>

View File

@ -37,7 +37,7 @@ ant-design-vue 是采用 MIT 许可的开源项目,使用完全免费。 但
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/ant-design-vue#sponsor)]
<div>
<a href="http://www.jeecg.com/" target="_blank"><img src="https://aliyuncdn.antdv.com/jeecg-logo.png" height="64"></a>
<a href="http://www.jeecg.com/" target="_blank"><img src="https://www.antdv.com/jeecg-logo.png" height="64"></a>
<a href="https://opencollective.com/ant-design-vue/sponsor/0/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/ant-design-vue/sponsor/1/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/ant-design-vue/sponsor/2/website" target="_blank"><img src="https://opencollective.com/ant-design-vue/sponsor/2/avatar.svg"></a>

14
wrangler.jsonc Normal file
View File

@ -0,0 +1,14 @@
{
"name": "antdv-v3",
"compatibility_date": "2025-09-19",
"assets": {
"directory": "./site/dist",
"not_found_handling": "single-page-application"
},
"routes": [
{
"pattern": "3x.antdv.com/*",
"zone_name": "antdv.com"
}
]
}