| | |
| | | <!-- |
| | | * @Description: 自定义弹出框,可以自定义多个表单 |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-05 15:46:07 |
| | | * @LastEditors: your name |
| | | * @LastEditTime: 2024-06-10 23:48:05 |
| | | --> |
| | | <template> |
| | | <BasicModal |
| | | v-bind="$attrs" |
| | |
| | | const title = ref(''); |
| | | const width = ref(''); |
| | | const FnName = ref({}); |
| | | const mValues = ref<Recordable>({}); |
| | | const initFnName = ref({}); |
| | | const dtlSlots = ref([] as any[]); |
| | | const formSchema = ref([] as FormSchema[]); |
| | |
| | | formElName.value = data?.formElName; //弹框中表单名字数组 |
| | | useFormData.value = data?.formEl; //弹框中表单实例数组 |
| | | FnName.value = data?.fnName; //保存数据方法 |
| | | mValues.value = data?.values; //主表单传过来的数据 |
| | | //循环表单名数组,操作各表单字段 |
| | | formElName.value.forEach((name) => { |
| | | if (!isNullOrUnDef(useFormData.value[name])) { |
| | | useFormData.value[name][1].resetFields(); |
| | | if (unref(isUpdate)) { |
| | | useFormData.value[name][1].setFieldsValue({ |
| | | ...data, |
| | | ...mValues.value, |
| | | }); |
| | | } |
| | | } |
| | |
| | | //初始化方法自定义 |
| | | if (!isNullOrEmpty(data?.initFnName)) { |
| | | initFnName.value = data?.initFnName; |
| | | custFunction(unref(isUpdate.value), initFnName.value[cType.value], cType.value); |
| | | custFunction( |
| | | unref(isUpdate.value), |
| | | initFnName.value[cType.value], |
| | | cType.value, |
| | | mValues.value, |
| | | data?.others, |
| | | ); |
| | | } |
| | | }); |
| | | |
| | |
| | | // { deep: true }, |
| | | // ); |
| | | |
| | | /* 弹框确定按钮方法 */ |
| | | /** |
| | | * @description: 弹框确定按钮方法 |
| | | * @return {*} |
| | | */ |
| | | async function handleSuccess() { |
| | | try { |
| | | var values = {} as any; |
| | |
| | | } |
| | | setModalProps({ confirmLoading: true }); |
| | | //调用自定义保存方法保存数据 |
| | | values['mValues'] = mValues.value; |
| | | const action = await custFunction(values, FnName.value[cType.value], cType.value); |
| | | if (action as boolean) { |
| | | closeModal(); |