{"version":3,"file":"pro-table.vue2.mjs","sources":["../../../../../packages/components/pro-table/src/pro-table.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as __MACROS_defineComponent } from \"vue\";\nexport default /*#__PURE__*/ __MACROS_defineComponent({\n  name: 'ElProTable',\n  inheritAttrs: false\n});\n</script>\n<template>\n  <div :class=\"[ns.b(), $attrs.class]\" :style=\"{ height }\">\n    <!-- 表格工具栏 -->\n    <ProTableTools v-if=\"toolsVisible\" @key-enter=\"fetchData()\">\n      <template #searcher>\n        <slot name=\"searcher\" />\n      </template>\n      <template #tools>\n        <slot name=\"tools\" />\n      </template>\n      <template #extra-bar>\n        <slot name=\"extra-bar\" />\n      </template>\n    </ProTableTools>\n    <!-- 数据表格 -->\n    <el-data-table\n      v-if=\"columns && columns.length\"\n      ref=\"tableRef\"\n      :stripe=\"configStore.proTableStripe\"\n      v-loading=\"loading\"\n      :default-expand-all=\"defaultExpandAll\"\n      :height=\"tableHeight\"\n      :data=\"computedData\"\n      :columns=\"columns\"\n      :show-summary=\"summaryVisible\"\n      :summary-method=\"summaryMethod\"\n      :show-index=\"showIndex\"\n      :checkable=\"checkable\"\n      :selectable=\"selectable\"\n      :checked=\"state.checked\"\n      :selected=\"selected\"\n      :tree=\"tree\"\n      :cell-class=\"cellClass\"\n      :merge-cell=\"mergeCell\"\n      :item-reactive=\"itemReactive\"\n      @check=\"handleCheck\"\n      @select=\"emit('select', $event)\"\n      @row-click=\"handleRowClick\"\n      @sort=\"handleSort\"\n      :lazy-load=\"lazyLoad\"\n    >\n      <template v-slot:[column.slot!]=\"ctx\" v-for=\"column of columnSlots\">\n        <slot :name=\"column.slot!\" v-bind=\"ctx\" />\n      </template>\n\n      <template #column-conf=\"scoped\">\n        <slot name=\"column-conf\" v-bind=\"scoped\" />\n      </template>\n    </el-data-table>\n\n    <!-- 分页 -->\n    <el-pagination\n      v-if=\"pagination\"\n      :class=\"ns.e('pagination')\"\n      style=\"justify-content: flex-end\"\n      v-model:current-page=\"pageQuery.page\"\n      v-model:page-size=\"pageQuery.size\"\n      @change=\"fetchData(false)\"\n      small\n      layout=\"total, prev, pager, next,  sizes, jumper\"\n      :total=\"total || state.total\"\n      :page-sizes=\"pageSizeOptions || configStore.proTableDefaultSizeOptions\"\n    />\n  </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElDataTable, type DataTableInstance } from '@element-ultra/components/data-table'\nimport { ElLoadingDirective as vLoading } from '@element-ultra/components/loading'\nimport ElPagination from '@element-ultra/components/pagination'\nimport { useNamespace, useConfig } from '@element-ultra/hooks'\nimport { computed, shallowRef, useSlots, provide, shallowReadonly } from 'vue'\n\nimport { proTableProps, proTableEmits, ProTableColumn } from './pro-table'\nimport ProTableTools from './pro-table-tools'\nimport { proTableContextKey, proTableKey } from './token'\nimport { useApi } from './use-api'\nimport { useColumnsConfig } from './use-columns-config'\nimport useTableHeight from './use-table-height'\n\n\n\nconst props = defineProps(proTableProps)\nconst emit = defineEmits(proTableEmits)\n\nconst slots = useSlots()\nconst ns = useNamespace('pro-table')\n\n/** 列插槽 */\nconst columnSlots = computed(() => {\n  let slots: ProTableColumn[] = []\n\n  const recursive = (columns?: ProTableColumn[]) => {\n    columns?.forEach((column) => {\n      if (column.children?.length) return recursive(column.children)\n      if (!column.slot) return\n      slots.push(column)\n    })\n  }\n  recursive(props.columns)\n\n  return slots\n})\n\nconst tableRef = shallowRef<DataTableInstance>()\n\nconst toolsVisible = computed(() => {\n  return (slots.tools || slots.searcher) && props.showTools\n})\n\nconst canAutoQuery = { value: true }\n\nconst setAutoQuery = (autoQuery: boolean) => {\n  canAutoQuery.value = autoQuery\n}\n\nconst { columns } = useColumnsConfig(props)\n\nconst [configStore] = useConfig()\n\nconst {\n  state,\n  pageQuery,\n  defaultQuery,\n  loading,\n  currentQueryStr,\n  fetchData,\n  handleSort,\n  getParams,\n  handleCheck\n} = useApi({\n  props,\n  emit,\n  canAutoQuery\n})\n\nconst computedData = computed(() => {\n  return props.data || state.data\n})\n\nconst tableHeight = useTableHeight({ props })\n\n/** 显示合计 */\nconst summaryVisible = computed(() => {\n  return props.showSummary\n})\n\n/** 合计方法 */\n// const computedSummaryMethod = computed(() => {\n//   let s = state.statistics\n\n//   const formatter = new Intl.NumberFormat('zh-CN', {\n//     currency: 'RMB',\n//     maximumFractionDigits: 2,\n//     minimumFractionDigits: 2\n//   })\n\n//   return (props.summaryMethod ||\n//     (s\n//       ? ({ columns }: { columns: ProTableColumn[] }) => {\n//           return ['合计'].concat(\n//             columns.slice(slots['row-expand'] ? 0 : 1).map(column => {\n//               let number = s![column.key]\n//               if (number) {\n//                 return column.preset === 'money'\n//                   ? formatter.format(number)\n//                   : String(number)\n//               }\n//               return ''\n//             })\n//           )\n//         }\n//       : undefined)) as any\n// })\n\nconst handleRowClick = (row: any, index: number) => {\n  emit('row-click', row, index)\n}\n\nconst find = () => {\n  return computedData.value\n}\n\nconst deleteRow = (index: number) => {\n  state.data = [...state.data.slice(0, index), ...state.data.slice(index + 1)]\n}\n\nprovide(proTableKey, {\n  proTableSlots: slots,\n  rootProps: props,\n  ns,\n  loading,\n  defaultQuery,\n  currentQueryStr,\n  setAutoQuery,\n  fetchData\n})\n\nconst exposed = {\n  state: shallowReadonly(state),\n  fetchData,\n  props,\n  /** 获取查询参数 */\n  getQueryParams: getParams,\n  find,\n  deleteRow,\n  getColumns: () => tableRef.value?.getColumns() || []\n}\n\nprovide(proTableContextKey, exposed)\n\ndefineExpose(exposed)\n</script>\n"],"names":["__MACROS_defineComponent","slots","columns"],"mappings":"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"}