{"version":3,"file":"page-table.mjs","sources":["../../../../../../packages/components/page-table/src/page-table.vue"],"sourcesContent":["<template>\n  <hb-simple-table-list\n    ref=\"simpleTableListRef\"\n    padding=\"var(--xl)\"\n    :class=\"['fx-page-table']\"\n    :cols=\"newCols\"\n    :table-data=\"tableData\"\n    :searchbar=\"searchbar\"\n    :toolbar=\"toolbar\"\n    :table-props=\"tableProps\"\n    :scrollbar-props=\"scrollbarProps\"\n    :pagination=\"pagination\"\n    @searchbar-change=\"searchBarChanged\"\n    @size-change=\"pageSizeChange\"\n    @current-change=\"currentPageChange\"\n    @sort-change=\"(...args) => $emit('sort-change', ...args)\"\n  >\n    <!-- searchbar右边的高级搜索， 搜索条件超过4个会显示在右边 -->\n    <template v-if=\"searchPlacement ? searchPlacement === 'right' : searchItems.length > 4\" #searchbar-suffix>\n      <hb-data-filter\n        :items=\"searchItems\"\n        icon-position=\"left\"\n        gap=\"var(--xs)\"\n        max-height=\"500px\"\n        class=\"static\"\n        @search=\"searchChanged\"\n        @remove-selected-item=\"removeSelectedItem\"\n      >\n        <template #icon>\n          <hl-icon><two-filter /></hl-icon>\n        </template>\n        <template #default>\n          高级搜索\n        </template>\n      </hb-data-filter>\n    </template>\n\n    <!-- 行多选 -->\n    <template #selectionCol>\n      <hl-checkbox\n        v-model=\"isSelectedAll\"\n        :indeterminate=\"isIndeterminate\"\n        :show-label=\"false\"\n        @change=\"selectAll\"\n      />\n    </template>\n    <template #tableSelection=\"{ row }\">\n      <hl-checkbox\n        v-model=\"selectedRowKeys\"\n        :label=\"row.id\"\n        :show-label=\"false\"\n        @change=\"selectRow\"\n        @click.stop\n      />\n    </template>\n    <!-- 展开行插槽 -->\n    <template #customExpand=\"{ row }\">\n      <slot name=\"customExpand\" :row=\"row\"></slot>\n    </template>\n    <!-- 序号插槽 -->\n    <template #tableIndex=\"{ rowIndex }\">\n      <span>{{ rowIndex + 1 }}</span>\n    </template>\n\n    <!-- 行操作 -->\n    <template #action=\"{ row }\">\n      <hl-group gap=\"var(--xxs)\">\n        <slot name=\"action\" :row=\"row\"></slot>\n      </hl-group>\n    </template>\n    <!-- 无数据 -->\n    <template #empty>\n      <hb-empty description=\"暂无数据\" image-size=\"10vw\" :image=\"noDataImage\" />\n    </template>\n    <!-- 搜索框前面 -->\n    <template #searchbar-prefix>\n      <slot name=\"searchbar-prefix\"></slot>\n    </template>\n    <!-- 操作左 -->\n    <template #toolbar-extra-before>\n      <slot name=\"toolbar-extra-before\"></slot>\n    </template>\n    <!-- 操作右  -->\n    <template #toolbar-extra-after>\n      <slot name=\"toolbar-extra-after\"></slot>\n    </template>\n\n    <!-- 自定义搜索条件插槽 -->\n    <template v-for=\"search in searchSlotList\" #[search.slotName]=\"searchData\" :key=\"search.slotName\">\n      <slot :name=\"search.slotName\" v-bind=\"searchData\"></slot>\n    </template>\n\n    <!-- 完全自定义插槽，需要把保留用的去掉 -->\n    <template v-for=\"col in slotCols\" #[col.slotName]=\"colData\" :key=\"col.slotName\">\n      <slot :name=\"col.slotName\" v-bind=\"colData\"> </slot>\n    </template>\n  </hb-simple-table-list>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, reactive, watch, onMounted, PropType, toRef, computed } from 'vue'\nimport { HlGroup, HlCheckbox, HlIcon } from 'hongluan-ui'\nimport { HbSimpleTableList, HbDataFilter, HbEmpty } from 'hongluan-business-ui'\nimport { useTableSelection, usePagination } from 'hongluan-hooks'\nimport { TwoFilter } from '@hongluan-ui/icons'\n\nexport default defineComponent({\n  name: 'PageTable',\n  components: { HlGroup, HlCheckbox, HlIcon, HbSimpleTableList, HbDataFilter, TwoFilter, HbEmpty },\n  props: {\n    // 自定义表格属性穿透给hl-simple-table\n    tableProps: {\n      type: Object,\n      default: () => ({}),\n    },\n    scrollbarProps: {\n      type: Object,\n      default: () => ({}),\n    },\n    // 表头\n    cols: {\n      type: Array,\n      default: () => [],\n    },\n    // 表数据\n    tableData: {\n      type: Array as PropType<Record<string, unknown>[]>,\n      default: () => [],\n    },\n    // 列表查询回调\n    dataFetcher: {\n      type: Function as PropType<(...args: any) => Promise<any>>,\n      default: () => ({}),\n    },\n    // 搜索条件\n    searchItems: {\n      type: Array,\n      default: () => [],\n    },\n    //searchbar中的输入框属性\n    searcher: {\n      type: Object,\n      default: () => {\n        return {\n          show: true,\n          name: 'searchName',\n          placeholder: '请输入搜索条件',\n        }\n      },\n    },\n    // 搜索条件位置， top/right, 不传的话根据搜索条件searchItems个数，不超过4个在顶部，超过4个在右侧。\n    searchPlacement: {\n      type: String,\n      default: '',\n    },\n\n    // 多选操作\n    selectionActions: {\n      type: Array,\n      default: () => [],\n    },\n\n    // 默认分页数据\n    defaultPagination: {\n      type: Object,\n      default: () => {\n        return { pageSize: 10, currentPage: 1, total: 0 }\n      },\n    },\n\n    // 没有数据的默认图片\n    noDataImage: {\n      type: String,\n      default: '',\n    },\n\n    // toolbar->showColConfig\n    showColConfig: {\n      type: Boolean,\n      default: true,\n    },\n\n    // 配合searchPlacement: top 使用\n    selectorColCount: {\n      type: String,\n      default: 'count-xl-2 count-lg-2 count-md-1',\n    },\n\n    // 是否显示搜索\n    showSearchBar: {\n      type: Boolean,\n      default: true,\n    },\n  },\n  emits: ['selectedRowKeys', 'sort-change'],\n  setup (props, { emit }) {\n    const newCols = computed(() => {\n      return props.cols.map((col: any) => {\n        if (['tableIndex', 'tableSelection'].includes(col.slotName) && !col.width) {\n          col.width = '6em'\n        }\n        return col\n      })\n    })\n    const searchbar = reactive({\n      show: props.showSearchBar,\n      searcher: props.searcher,\n      selector: {\n        colCount: props.selectorColCount,\n        items: props.searchPlacement ? (props.searchPlacement === 'top' ? [...props.searchItems] : [])\n          : (props.searchItems.length > 4 ? [] : [...props.searchItems]),\n      },\n    })\n\n    // SearchBar自定义插槽搜索条件\n    const searchSlotList = ref([])\n    // 额外加入条件时\n    watch(() => props.searchItems.length, () => {\n      searchbar.selector.items = []\n      searchbar.selector.items.push(...props.searchItems)\n    })\n\n    // 处理搜索自定义插槽\n    props.searchItems.forEach((item: { type: string; [key: string]: any; }) => {\n      if(item.type === 'slot')searchSlotList.value.push(item)\n    })\n\n    const simpleTableListRef = ref()\n\n    // 列表操作工具-多选操作\n    const toolbar = reactive({\n      showSelectionText: true,\n      showColConfig: props.showColConfig,\n      selectionCount: 0,\n      action: {\n        show: false,\n        showCount: 2,\n        actions: props.selectionActions,\n      },\n    })\n\n    // 搜索总条件\n    const params = ref({})\n    // searchBar条件\n    const searchParams = ref({})\n    // 右侧高级搜索条件\n    const searchAdvanceParams = ref({})\n    // searchBar自定义插槽条件\n    const searchSlotParams = ref({})\n\n    const searchBarChanged = (urlParams: string, mapParams: any, originalParams: any) => {\n      searchParams.value = mapParams\n      params.value = { ...searchParams.value, ...searchAdvanceParams.value, ...searchSlotParams.value }\n      setCurrentPage(1)\n    }\n\n    const searchChanged = (urlParams: string, mapParams: any, originalParams: any) => {\n      searchAdvanceParams.value = mapParams\n      params.value = { ...searchParams.value, ...searchAdvanceParams.value, ...searchSlotParams.value }\n      setCurrentPage(1)\n    }\n\n    // 搜索条件自定义回调\n    const searchSlotChanged = (mapParams: any) => {\n      searchSlotParams.value = mapParams\n      params.value = { ...searchParams.value, ...searchAdvanceParams.value, ...searchSlotParams.value }\n      setCurrentPage(1)\n    }\n\n    // 清空条件\n    const resetFields = () => {\n      console.log('我要清空条件')\n      searchParams.value = {}\n      searchAdvanceParams.value = {}\n      searchSlotParams.value = {}\n      simpleTableListRef.value?.searchbarRef.resetFields()\n    }\n\n    // TODO\n    const removeSelectedItem = (item: any) => { console.log(item) }\n\n    const {\n      isSelectedAll,\n      isIndeterminate,\n      selectedRowKeys,\n      selectAll,\n      selectRow,\n    } = useTableSelection(toRef(props, 'tableData'))\n\n    // 表格多选\n    watch(() => selectedRowKeys.value.length, (len: number) => {\n      toolbar.action.show = len > 0\n      toolbar.selectionCount = len\n      emit('selectedRowKeys', selectedRowKeys.value)\n    })\n\n    const {\n      pageSize,\n      currentPage,\n      total,\n      setTotal,\n      setCurrentPage,\n      currentPageChange,\n      pageSizeChange,\n    } = usePagination(fetchData, { pageSize:props.defaultPagination.pageSize, currentPage:props.defaultPagination.currentPage, total: props.defaultPagination.total })\n    const pagination = reactive({\n      show: true,\n      currentPage: currentPage,\n      pageSize: pageSize,\n      total: total,\n    })\n\n    // 查询表格数据\n    async function fetchData () {\n      await props.dataFetcher({\n        pageSize: pagination.pageSize,\n        currentPage: pagination.currentPage,\n        params: params.value,\n        setTotal: setAllTotal,\n      })\n    }\n\n    // 设置总数\n    const setAllTotal = (newTotal: number) => {\n      setTotal(newTotal)\n      pagination.total = newTotal\n    }\n\n    // 初始化查询表格数据\n    onMounted( () => {\n      fetchData()\n    })\n\n    const getSlotNames = (cols: any, result: any[]) => {\n      cols.forEach(col => {\n        if (col.slotName && !reservedSlotName.includes(col.slotName)) {\n          result.push(col)\n        }\n        if (col.children && Array.isArray(col.children)) {\n          getSlotNames(col.children, result)\n        }\n      })\n    }\n    // 过滤几个已使用的保留插槽['sear,chbar-suffix', 'selectionCol', 'tableSelection', 'customExpand', 'tableIndex', 'action']\n    const reservedSlotName = ['searchbar-suffix','searchbar-prefix', 'toolbar-extra-before','toolbar-extra-after','selectionCol', 'tableSelection', 'customExpand', 'tableIndex', 'action']\n    const slotCols = computed(() => {\n      const result: any[] = []\n      getSlotNames(props.cols, result)\n      return result\n    })\n\n    /**\n     * 重新刷新接口数据,一般用于多选或其他操作\n     * @param auto 在当前页没有数据时，是否自动向前翻页。默认false\n     */\n    const refresh = async (auto = false) => {\n      await fetchData()\n      if (auto && props.tableData.length === 0 && pagination.total > 0 && pagination.currentPage > 1) {\n        pagination.currentPage -= 1\n        await fetchData()\n      }\n      selectedRowKeys.value = []\n      isSelectedAll.value = false\n    }\n\n    // 重置当前数据\n    const reset = () => {\n      pagination.currentPage = 1\n      fetchData()\n    }\n\n    return {\n      newCols,\n      slotCols,\n\n      searchbar,\n      searchBarChanged,\n      searchSlotList,\n\n      toolbar,\n      searchChanged,\n      removeSelectedItem,\n\n      searchSlotChanged,\n\n      isSelectedAll,\n      selectedRowKeys,\n      selectAll,\n      selectRow,\n      isIndeterminate,\n\n      pagination,\n      pageSize,\n      currentPage,\n      total,\n      setTotal,\n      currentPageChange,\n      pageSizeChange,\n\n      refresh,\n      reset,\n      resetFields,\n      simpleTableListRef,\n    }\n  },\n})\n</script>\n"],"names":["_createBlock","_normalizeClass","_createSlots","_withCtx","_createVNode","_withModifiers","_renderSlot","_createElementVNode","_createTextVNode","_renderList","_normalizeProps"],"mappings":"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"}