12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import {string} from "@/uni_modules/uv-ui-tools/libs/function/test";
- export const fnPlaceholder = () => {
- }
- export const confirmAsync = async (msgOrOptions) => {
- return new Promise((resolve, reject) => {
- const inputOptions = string(msgOrOptions) ? {content: msgOrOptions} : msgOrOptions
- const defaultOptions = {
- success: res => {
- if (res.confirm) resolve()
- else reject('user cancelled')
- }
- }
- const options = Object.assign({}, defaultOptions, inputOptions)
- uni.showModal(options)
- })
- }
- export const alertAsync = async (msgOrOptions) => {
- const options = string(msgOrOptions) ? {content: msgOrOptions} : msgOrOptions
- options.showCancel = false
- return confirmAsync(options)
- }
- export const autoFormValidate = function (instance, event) {
- // $uv.formValidate 在vue3并不能正常运行,setup与options不通用。
- const formItem = findAncestorComponentByName(instance, 'uv-form-item')
- const form = findAncestorComponentByName(formItem, 'uv-form')
- if (formItem && form) {
- // TODO: 现在只让它支持error-change,其它保持原逻辑。
- // 原change逻辑触发过余频繁,可以将trigger: ['change', 'error-change'] 保持原样
- if (event == 'change' && formItem.message) event = 'error-' + event
- form.validateField(formItem.prop, fnPlaceholder, event)
- }
- }
- export const findAncestorComponentByName = function (instance, name) {
- let parent = instance?.parent; // 获取父组件实例
- while (parent) {
- // 判断父组件的名称是否匹配
- if (parent.type?.name === name) return parent.proxy; // 找到匹配的祖先组件
- parent = parent.parent; // 向上查找父组件
- }
- return null; // 如果未找到匹配的祖先组件,返回 null
- }
|