-
@@ -145,12 +148,13 @@ useScrollLock();
-
- {{ hour }}:{{ minute }}
{{ meridiem }}
+
+ {{ hour }}:{{ minute }}
+ {{ meridiem }}
-
{{ date }}
+
{{ date }}
diff --git a/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue b/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
index d3043b1e..3867b065 100644
--- a/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
+++ b/packages/effects/plugins/src/vxe-table/use-vxe-grid.vue
@@ -303,7 +303,7 @@ async function init() {
if (enableProxyConfig && autoLoad) {
// 第一次拿到的是readonly的数据 如果需要修改 需要cloneDeep
props.api.grid.commitProxy?.(
- '_init',
+ 'initial',
cloneDeep(formOptions.value)
? (cloneDeep(await formApi.getValues()) ?? {})
: {},
diff --git a/packages/locales/src/langs/en-US/ui.json b/packages/locales/src/langs/en-US/ui.json
index 4d2f08ce..645563d2 100644
--- a/packages/locales/src/langs/en-US/ui.json
+++ b/packages/locales/src/langs/en-US/ui.json
@@ -32,8 +32,11 @@
"sliderDefaultText": "Slider and drag",
"alt": "Supports img tag src attribute value",
"sliderRotateDefaultTip": "Click picture to refresh",
+ "sliderTranslateDefaultTip": "Click picture to refresh",
"sliderRotateFailTip": "Validation failed",
"sliderRotateSuccessTip": "Validation successful, time {0} seconds",
+ "sliderTranslateFailTip": "Validation failed",
+ "sliderTranslateSuccessTip": "Validation successful, time {0} seconds",
"refreshAriaLabel": "Refresh captcha",
"confirmAriaLabel": "Confirm selection",
"confirm": "Confirm",
diff --git a/packages/locales/src/langs/zh-CN/ui.json b/packages/locales/src/langs/zh-CN/ui.json
index ef2e507c..e4f855ca 100644
--- a/packages/locales/src/langs/zh-CN/ui.json
+++ b/packages/locales/src/langs/zh-CN/ui.json
@@ -31,8 +31,11 @@
"sliderSuccessText": "验证通过",
"sliderDefaultText": "请按住滑块拖动",
"sliderRotateDefaultTip": "点击图片可刷新",
+ "sliderTranslateDefaultTip": "点击图片可刷新",
"sliderRotateFailTip": "验证失败",
"sliderRotateSuccessTip": "验证成功,耗时{0}秒",
+ "sliderTranslateFailTip": "验证失败",
+ "sliderTranslateSuccessTip": "验证成功,耗时{0}秒",
"alt": "支持img标签src属性值",
"refreshAriaLabel": "刷新验证码",
"confirmAriaLabel": "确认选择",
diff --git a/playground/src/locales/langs/en-US/examples.json b/playground/src/locales/langs/en-US/examples.json
index 9335b28b..2b9c23db 100644
--- a/playground/src/locales/langs/en-US/examples.json
+++ b/playground/src/locales/langs/en-US/examples.json
@@ -19,6 +19,7 @@
"custom": "Custom Component",
"api": "Api",
"merge": "Merge Form",
+ "scrollToError": "Scroll to Error Field",
"upload-error": "Partial file upload failed",
"upload-urls": "Urls after file upload",
"file": "file",
@@ -41,6 +42,7 @@
"pointSelection": "Point Selection Captcha",
"sliderCaptcha": "Slider Captcha",
"sliderRotateCaptcha": "Rotate Captcha",
+ "sliderTranslateCaptcha": "Translate Captcha",
"captchaCardTitle": "Please complete the security verification",
"pageDescription": "Verify user identity by clicking on specific locations in the image.",
"pageTitle": "Captcha Component Example",
diff --git a/playground/src/locales/langs/zh-CN/examples.json b/playground/src/locales/langs/zh-CN/examples.json
index ff11d7fd..aa0b00f9 100644
--- a/playground/src/locales/langs/zh-CN/examples.json
+++ b/playground/src/locales/langs/zh-CN/examples.json
@@ -22,6 +22,7 @@
"custom": "自定义组件",
"api": "Api",
"merge": "合并表单",
+ "scrollToError": "滚动到错误字段",
"upload-error": "部分文件上传失败",
"upload-urls": "文件上传后的网址",
"file": "文件",
@@ -44,6 +45,7 @@
"pointSelection": "点选验证",
"sliderCaptcha": "滑块验证",
"sliderRotateCaptcha": "旋转验证",
+ "sliderTranslateCaptcha": "拼图滑块验证",
"captchaCardTitle": "请完成安全验证",
"pageDescription": "通过点击图片中的特定位置来验证用户身份。",
"pageTitle": "验证码组件示例",
diff --git a/playground/src/router/routes/modules/examples.ts b/playground/src/router/routes/modules/examples.ts
index c91303c7..2ca6b80d 100644
--- a/playground/src/router/routes/modules/examples.ts
+++ b/playground/src/router/routes/modules/examples.ts
@@ -85,6 +85,15 @@ const routes: RouteRecordRaw[] = [
title: $t('examples.form.merge'),
},
},
+ {
+ name: 'FormScrollToErrorExample',
+ path: '/examples/form/scroll-to-error-test',
+ component: () =>
+ import('#/views/examples/form/scroll-to-error-test.vue'),
+ meta: {
+ title: $t('examples.form.scrollToError'),
+ },
+ },
],
},
{
@@ -196,6 +205,15 @@ const routes: RouteRecordRaw[] = [
title: $t('examples.captcha.sliderRotateCaptcha'),
},
},
+ {
+ name: 'TranslateVerifyExample',
+ path: '/examples/captcha/slider-translate',
+ component: () =>
+ import('#/views/examples/captcha/slider-translate-captcha.vue'),
+ meta: {
+ title: $t('examples.captcha.sliderTranslateCaptcha'),
+ },
+ },
{
name: 'CaptchaPointSelectionExample',
path: '/examples/captcha/point-selection',
diff --git a/playground/src/views/examples/captcha/slider-translate-captcha.vue b/playground/src/views/examples/captcha/slider-translate-captcha.vue
new file mode 100644
index 00000000..78fbd86c
--- /dev/null
+++ b/playground/src/views/examples/captcha/slider-translate-captcha.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/playground/src/views/examples/form/scroll-to-error-test.vue b/playground/src/views/examples/form/scroll-to-error-test.vue
new file mode 100644
index 00000000..61e8815c
--- /dev/null
+++ b/playground/src/views/examples/form/scroll-to-error-test.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+ 启用滚动到错误字段
+
+
+
+
+
+
测试说明:
+
+ - 所有验证方法在验证失败时都会自动滚动到第一个错误字段
+ - 可以通过右上角的开关控制是否启用自动滚动功能
+
+
+
+
+
验证方法测试:
+
+
+
+
+
+
+
• validateAndSubmitForm(): 验证表单并提交
+
• validate(): 手动验证整个表单
+
• validateField(): 验证单个字段(这里测试用户名字段)
+
+
+
+
+
数据填充测试:
+
+
+
+
+
+
• 填充部分数据后验证,会滚动到第一个错误字段
+
+
+
+
+
+
+
+
diff --git a/playground/src/views/examples/vxe-table/remote.vue b/playground/src/views/examples/vxe-table/remote.vue
index 907c1e2c..7042019f 100644
--- a/playground/src/views/examples/vxe-table/remote.vue
+++ b/playground/src/views/examples/vxe-table/remote.vue
@@ -55,7 +55,7 @@ const gridOptions: VxeGridProps
= {
custom: true,
export: true,
// import: true,
- refresh: { code: 'query' },
+ refresh: true,
zoom: true,
},
};
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 73c34012..fb0ef90e 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -187,8 +187,8 @@ catalog:
vue-router: ^4.5.1
vue-tippy: ^6.7.1
vue-tsc: 2.2.10
- vxe-pc-ui: ^4.6.42
- vxe-table: 4.13.53
+ vxe-pc-ui: ^4.7.12
+ vxe-table: ^4.14.4
watermark-js-plus: ^1.6.2
zod: ^3.25.67
zod-defaults: ^0.1.3