From a72dcdf0ec0f3cf4e61f11e983c3979d883adf54 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Fri, 29 Dec 2023 21:24:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Button/src/PopConfirmButton.vue | 19 +++++++++- .../Form/src/components/FormItem.vue | 21 ++++++++++- src/components/Form/src/helper.ts | 12 +++++++ .../Form/src/hooks/useFormEvents.ts | 5 ++- .../components/modal/DeptSelectModal.vue | 8 ++++- .../jeecg/components/userSelect/UserList.vue | 9 +++-- .../userSelect/UserListAndDepart.vue | 6 +++- .../components/userSelect/UserListAndRole.vue | 6 +++- .../components/userSelect/UserSelectModal.vue | 2 +- .../Form/src/jeecg/hooks/useSelectBiz.ts | 2 +- src/components/Markdown/src/Markdown.vue | 1 + src/components/Modal/src/components/Modal.tsx | 7 ++-- .../Modal/src/components/ModalWrapper.vue | 35 ++++++++++++++++--- src/components/Table/src/BasicTable.vue | 16 +++++---- .../jeecg/JVxeTable/src/vxe.data.ts | 3 +- .../jeecg/OnLine/hooks/usePopBiz.ts | 16 ++++++--- .../header/components/user-dropdown/index.vue | 3 ++ src/utils/common/compUtils.ts | 10 ++++-- 18 files changed, 149 insertions(+), 32 deletions(-) diff --git a/src/components/Button/src/PopConfirmButton.vue b/src/components/Button/src/PopConfirmButton.vue index 05d0f9a..10c8cd5 100644 --- a/src/components/Button/src/PopConfirmButton.vue +++ b/src/components/Button/src/PopConfirmButton.vue @@ -30,13 +30,30 @@ // get inherit binding value const getBindValues = computed(() => { - return Object.assign( + // update-begin--author:liaozhiyang---date:20231228---for:【issues/936】表格操作栏删除当接口失败时,气泡确认框不会消失 + const result: any = Object.assign( { okText: t('common.okText'), cancelText: t('common.cancelText'), }, { ...props, ...unref(attrs) } ); + if (result.onConfirm) { + const confirm = result.confirm; + result.onConfirm = () => { + return new Promise((resolve) => { + confirm() + ?.finally(() => { + resolve(); + }) + .catch((err) => { + console.log(err); + }); + }); + }; + } + return result; + // update-end--author:liaozhiyang---date:20231228---for:【issues/936】表格操作栏删除当接口失败时,气泡确认框不会消失 }); return () => { diff --git a/src/components/Form/src/components/FormItem.vue b/src/components/Form/src/components/FormItem.vue index 1118784..646caa0 100644 --- a/src/components/Form/src/components/FormItem.vue +++ b/src/components/Form/src/components/FormItem.vue @@ -202,6 +202,22 @@ if (characterInx !== -1 && !rules[characterInx].validator) { rules[characterInx].message = rules[characterInx].message || t('component.form.maxTip', [rules[characterInx].max] as Recordable); } + // update-begin--author:liaozhiyang---date:20241226---for:【QQYUN-7495】pattern由字符串改成正则传递给antd(因使用InputNumber时发现正则无效) + rules.forEach((item) => { + if (typeof item.pattern === 'string') { + try { + const reg = new Function('item', `return ${item.pattern}`)(item); + if (Object.prototype.toString.call(reg) === '[object RegExp]') { + item.pattern = reg; + } else { + item.pattern = new RegExp(item.pattern); + } + } catch (error) { + item.pattern = new RegExp(item.pattern); + } + } + }); + // update-end--author:liaozhiyang---date:20231226---for:【QQYUN-7495】pattern由字符串改成正则传递给antd(因使用InputNumber时发现正则无效) return rules; } @@ -249,7 +265,10 @@ const { autoSetPlaceHolder, size } = props.formProps; const propsData: Recordable = { allowClear: true, - getPopupContainer: (trigger: Element) => trigger.parentNode, + getPopupContainer: (trigger: Element) => { + + return trigger?.parentNode; + }, size, ...unref(getComponentsProps), disabled: unref(getDisable), diff --git a/src/components/Form/src/helper.ts b/src/components/Form/src/helper.ts index ac76f26..f65ea49 100644 --- a/src/components/Form/src/helper.ts +++ b/src/components/Form/src/helper.ts @@ -61,6 +61,18 @@ export function handleInputNumberValue(component?: ComponentType, val?: any) { } return val; } +/** +*liaozhiyang +*2023-12-26 +*某些组件的传值需要把字符串类型转成数值类型 +*/ +export function handleInputStringValue(component?: ComponentType, val?: any) { + if (!component) return val; + if (['InputNumber'].includes(component) && typeof val === 'string') { + return Number(val); + } + return val; +} /** * 时间字段 diff --git a/src/components/Form/src/hooks/useFormEvents.ts b/src/components/Form/src/hooks/useFormEvents.ts index ed4f1db..ee92de8 100644 --- a/src/components/Form/src/hooks/useFormEvents.ts +++ b/src/components/Form/src/hooks/useFormEvents.ts @@ -4,7 +4,7 @@ import type { NamePath, ValidateOptions } from 'ant-design-vue/lib/form/interfac import { unref, toRaw } from 'vue'; import { isArray, isFunction, isObject, isString } from '/@/utils/is'; import { deepMerge, getValueType } from '/@/utils'; -import { dateItemType, handleInputNumberValue } from '../helper'; +import { dateItemType, handleInputNumberValue, handleInputStringValue } from '../helper'; import { dateUtil } from '/@/utils/dateUtil'; import { cloneDeep, uniqBy } from 'lodash-es'; import { error } from '/@/utils/log'; @@ -65,6 +65,9 @@ export function useFormEvents({ const hasKey = Reflect.has(values, key); value = handleInputNumberValue(schema?.component, value); + // update-begin--author:liaozhiyang---date:20231226---for:【QQYUN-7535】popup回填字段inputNumber组件验证错误 + value = handleInputStringValue(schema?.component, value); + // update-end--author:liaozhiyang---date:20231226---for:【QQYUN-7535】popup回填字段inputNumber组件验证错误 // 0| '' is allow if (hasKey && fields.includes(key)) { // time type diff --git a/src/components/Form/src/jeecg/components/modal/DeptSelectModal.vue b/src/components/Form/src/jeecg/components/modal/DeptSelectModal.vue index 4c726a2..6a1ad9c 100644 --- a/src/components/Form/src/jeecg/components/modal/DeptSelectModal.vue +++ b/src/components/Form/src/jeecg/components/modal/DeptSelectModal.vue @@ -1,7 +1,7 @@