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.98 kB
{"version":3,"file":"useTableColumns.mjs","sources":["../../../../../../packages/element/crud/src/hooks/useTableColumns.ts"],"sourcesContent":["import { isFunction, isObject } from '@ideaz/utils'\nimport type { ElTable } from 'element-plus'\nimport { ElMessage } from 'element-plus'\nimport { Delete, EditPen, View } from '@element-plus/icons-vue'\nimport type { ComponentInternalInstance } from 'vue'\nimport DialogTip from '../../../dialog/src/dialog'\nimport { COLUMN_TYPE_FIELDS } from '../props'\nimport type { CrudCol, TableColumnScopeData } from '../../../types'\nimport type { CrudDeleteDialogTipProps, CrudOperation, CrudProps } from '../props'\nimport type ZTable from '../../../table/src/Table'\n\nexport function useTableColumns(props: CrudProps, emit: any, getTableData: () => void) {\n const { t } = useLocale()\n const rowData = ref({})\n const isShowDialog = ref(false)\n const isShowDrawer = ref(false)\n const { proxy: ctx } = getCurrentInstance() as ComponentInternalInstance\n const currentMode = ref<'add' | 'view' | 'edit'>('add')\n\n const refreshAfterRequest = () => {\n const tableRef = ctx!.$refs.zTableRef as typeof ElTable\n tableRef.clearSelection()\n tableRef.clearSort()\n tableRef.clearFilter()\n getTableData()\n }\n\n const renderEdit = () => {\n return {\n label: (props.edit as CrudOperation)?.referenceLabel || t('common.edit'),\n type: 'primary',\n link: true,\n icon: markRaw(EditPen),\n disabled: (props.edit as CrudOperation)?.referenceDisabled,\n hide: (props.edit as CrudOperation)?.referenceHide,\n onClick: ({ row }: TableColumnScopeData) => {\n rowData.value = row\n currentMode.value = 'edit'\n isShowDialog.value = true\n },\n }\n }\n\n const renderDelete = () => {\n return {\n label: (props.delete as CrudOperation)?.referenceLabel || t('common.delete'),\n type: 'danger',\n link: true,\n icon: markRaw(Delete),\n disabled: (props.delete as CrudOperation)?.referenceDisabled,\n hide: (props.delete as CrudOperation)?.referenceHide,\n onClick: ({ row }: TableColumnScopeData) => {\n rowData.value = row\n if (isFunction(props.delete))\n props.delete({ row, tableRef: ctx!.$refs.zTableRef as typeof ZTable, getTableData })\n\n if (props.request?.deleteApi) {\n const dialogTipProps: CrudDeleteDialogTipProps = isObject(props.delete) ? props.delete as CrudDeleteDialogTipProps : {} as CrudDeleteDialogTipProps\n DialogTip({\n type: 'danger',\n ...dialogTipProps as Omit<CrudDeleteDialogTipProps, 'type'>,\n message: isFunction(dialogTipProps.message) ? dialogTipProps.message({ row }) : t('crud.deleteTip'),\n onConfirm: isFunction(dialogTipProps.onConfirm)\n ? ({ done, confirmButtonLoading }) => dialogTipProps.onConfirm?.({ done, confirmButtonLoading, row, tableRef: ctx!.$refs.zTableRef as typeof ZTable, getTableData })\n : async ({ done, confirmButtonLoading }: { done: () => void, confirmButtonLoading: Ref<boolean> }) => {\n const dataKey = props.dataKey\n confirmButtonLoading.value = true\n try {\n await props.request?.deleteApi?.({ [dataKey]: row[dataKey], row })\n confirmButtonLoading.value = false\n done()\n ElMessage.success(t('common.success'))\n refreshAfterRequest()\n }\n catch (error) { }\n confirmButtonLoading.value = false\n },\n })\n }\n emit('operate-delete', { row, tableRef: ctx!.$refs.zTableRef as typeof ZTable, getTableData })\n },\n }\n }\n\n const renderView = () => {\n return {\n label: (props.detail as CrudOperation)?.referenceLabel || t('common.view'),\n type: 'primary',\n link: true,\n icon: markRaw(View),\n disabled: (props.detail as CrudOperation)?.referenceDisabled,\n hide: (props.detail as CrudOperation)?.referenceHide,\n onClick: ({ row }: TableColumnScopeData) => {\n if (isFunction(props.detail)) {\n props.detail({ row, tableRef: ctx!.$refs.zTableRef as typeof ZTable })\n }\n if (props.onOperateView) {\n emit('operate-view', { row, tableRef: ctx!.$refs.zTableRef as typeof ZTable })\n return\n }\n rowData.value = row\n isShowDrawer.value = true\n },\n }\n }\n\n const tableColumns = computed(() => {\n const columns = props.columns?.filter((column: CrudCol) => COLUMN_TYPE_FIELDS.some(key => column[key])) || []\n if (props.action && (props.detail !== false || props.edit !== false || props.delete !== false)) {\n const buttons = [props.detail !== false && renderView(), props.edit !== false && renderEdit(), props.delete !== false && renderDelete()].filter(item => item)\n return columns.concat([\n {\n type: 'button',\n label: t('table.action'),\n fixed: 'right',\n width: buttons.length * 60,\n buttons,\n },\n ])\n }\n return columns\n })\n\n return { tableColumns, isShowDialog, rowData, currentMode, isShowDrawer, refreshAfterRequest }\n}\n"],"names":["useTableColumns","props","emit","getTableData","t","useLocale","rowData","ref","isShowDialog","isShowDrawer","ctx","getCurrentInstance","currentMode","refreshAfterRequest","tableRef","renderEdit","_a","markRaw","EditPen","_b","_c","row","renderDelete","Delete","isFunction","dialogTipProps","isObject","DialogTip","done","confirmButtonLoading","dataKey","ElMessage","renderView","View","computed","columns","column","COLUMN_TYPE_FIELDS","key","buttons","item"],"mappings":"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"}