import { unref } from 'vue' import type { MaybeRef, Ref } from 'vue' import { useTable } from '@/components/Table' import { deleteModelAttribute, getModelAttributeList } from '@/api/product/model' import { useModal } from '@/components/Modal' import type { ModelAttribute } from '@/api/product/types' import { useMessage } from '@/hooks/web/useMessage' export function useModelAttribute(productId: MaybeRef, modelId: Ref) { const [registerModelAttributeTable, { reload, setPagination }] = useTable({ async api(params) { if (!unref(modelId)) return [] return getModelAttributeList({ ...params, productId: unref(productId), modelId: unref(modelId), }) }, columns: [ { title: '功能类型', dataIndex: 'itemType', customRender: ({ value }) => ({ 1: '属性', 2: '命令' }[value]), }, { title: '功能名称', dataIndex: 'name', }, { title: '标识符', dataIndex: 'identifier', }, { title: '数据类型', dataIndex: 'dataType', }, ], bordered: true, inset: true, canResize: false, actionColumn: { width: 150, title: '操作', dataIndex: 'action', fixed: 'right', auth: ['product_model_attr_delete', 'product_model_attr_edit'], }, }) const [registerModelAttributeModal, { openModal: openModelAttributeModal }] = useModal() async function handleDeleteModelAttribute(id: string) { try { await deleteModelAttribute(id) useMessage().createMessage.success('删除成功') reload() } catch {} } return { registerModelAttributeTable, registerModelAttributeModal, openModelAttributeModal, /** * @param resetPageCurrent 是否重置分页 */ reloadModalAttribute(resetPageCurrent = false) { if (resetPageCurrent) setPagination({ current: 1 }) reload() }, handleDeleteModelAttribute, } }