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 @@