UNPKG

ideaz-element

Version:

<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>

1 lines 8.49 kB
{"version":3,"file":"useDialogConfig.cjs","sources":["../../../../../../packages/element/crud/src/hooks/useDialogConfig.ts"],"sourcesContent":["import type { ComponentInternalInstance, Ref } from 'vue'\nimport { ElMessage } from 'element-plus'\nimport { get } from 'lodash-unified'\n\nimport { isFunction, isObject, isString } from '@ideaz/utils'\nimport type ZTable from '../../../table/src/Table'\nimport type { CrudProps } from '../props'\nimport type { EditRequestApiParams, ValidateField } from '../../../types'\n\nexport function useDialogConfig(props: CrudProps, emit: any, currentMode: Ref<'edit' | 'add' | 'view'>, isShowDialog: Ref<boolean>, rowData: Ref<any>) {\n const instance = getCurrentInstance() as ComponentInternalInstance\n const ctx = instance.proxy\n const dialogForm = ref()\n const dialogFormData = ref({})\n const confirmButtonLoading = ref(false)\n const isOperateFormLoading = ref(false)\n\n const { t } = useLocale()\n\n const dialogProps = computed(() => {\n const { add, edit, dialog } = props\n const dialogProps = (isObject(add) && isObject(add.dialog) && currentMode.value === 'add')\n ? add?.dialog\n : (isObject(edit) && isObject(edit.dialog) && currentMode.value === 'edit') ? edit?.dialog : dialog\n return {\n title: dialog.title ? dialog.title : currentMode.value === 'add' ? t('crud.add') : currentMode.value === 'edit' ? t('common.edit') : t('common.view'),\n width: '680px',\n confirmButtonLoading: confirmButtonLoading.value,\n ...dialogProps,\n }\n })\n\n const done = () => {\n isShowDialog.value = false\n }\n\n const handleCancel = () => {\n if (!props.onOperateCancel)\n done()\n\n emit('operate-cancel', {\n done,\n formRef: dialogForm.value,\n formData: dialogFormData.value,\n type: currentMode.value,\n row: currentMode.value === 'edit' ? rowData.value : {},\n confirmButtonLoading,\n })\n }\n\n const handleConfirm = () => {\n dialogForm.value.validate(async (isValid: boolean, invalidFields: ValidateField) => {\n const submitApi = props.request?.submitApi\n const addApi = props.request?.addApi\n const editApi = props.request?.editApi\n\n if (!submitApi && !addApi && !editApi) {\n emit('operate-submit', {\n done,\n isValid,\n invalidFields,\n formRef: dialogForm.value,\n formData: dialogFormData.value,\n type: currentMode.value,\n row: currentMode.value === 'edit' ? rowData.value : {},\n confirmButtonLoading,\n })\n }\n else {\n if (isValid) {\n confirmButtonLoading.value = true\n try {\n const params = getParams()\n if (currentMode.value === 'edit') {\n if (isFunction(submitApi))\n await submitApi(params)\n\n if (isFunction(editApi))\n await editApi(params as EditRequestApiParams)\n }\n if (currentMode.value === 'add') {\n if (isFunction(submitApi))\n await submitApi(params)\n\n if (isFunction(addApi))\n await addApi(params)\n }\n ElMessage.success(t('common.success'))\n done();\n (ctx?.$refs?.zTableRef as typeof ZTable).getTableData()\n }\n catch (error) {\n\n }\n confirmButtonLoading.value = false\n }\n }\n })\n }\n\n function getParams() {\n const params = { type: currentMode.value, formData: dialogFormData.value }\n if (currentMode.value === 'edit')\n return { ...params, row: rowData.value, [props.dataKey]: rowData.value[props.dataKey] }\n\n return params\n }\n\n const handleDialogClosed = () => {\n dialogForm.value.resetFields()\n if (isFunction(props.dialog?.onClosed))\n props.dialog.onClosed({ formRef: dialogForm.value, type: currentMode.value, row: currentMode.value === 'edit' ? rowData.value : {} })\n }\n\n const handleDialogOpen = async () => {\n const detailApi = props.request?.detailApi\n const detail = props.request?.alias?.detail\n if (currentMode.value === 'edit') {\n if (detailApi) {\n isOperateFormLoading.value = true\n try {\n const res = await detailApi({ [props.dataKey]: rowData.value[props.dataKey], row: rowData.value })\n dialogFormData.value = isFunction(detail) ? detail(res) : isString(detail) ? get(res, detail) : res?.data\n }\n catch (error) { }\n isOperateFormLoading.value = false\n }\n else {\n dialogFormData.value = isFunction(detail) ? detail({ ...rowData.value }) : { ...rowData.value }\n }\n }\n if (isFunction(props.dialog?.onOpen)) {\n props.dialog.onOpen({\n formRef: dialogForm.value,\n type: currentMode.value,\n row: currentMode.value === 'edit' ? rowData.value : {},\n })\n }\n }\n\n return { dialogProps, dialogFormData, dialogForm, isOperateFormLoading, handleCancel, handleConfirm, handleDialogClosed, handleDialogOpen }\n}\n"],"names":["useDialogConfig","props","emit","currentMode","isShowDialog","rowData","ctx","vue","dialogForm","dialogFormData","confirmButtonLoading","isOperateFormLoading","t","useLocale","dialogProps","add","edit","dialog","dialogProps2","is","done","handleCancel","handleConfirm","isValid","invalidFields","submitApi","_a","addApi","_b","editApi","_c","params","getParams","elementPlus","_d","detailApi","detail","res","get"],"mappings":"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"}