{"version":3,"file":"table-dialog.mjs","sources":["../../../../../../packages/components/table-dialog/src/table-dialog.vue"],"sourcesContent":["<template>\n  <div :class=\"ns.b()\">\n    <div :class=\"ns.e('trigger')\" @click=\"openDialog\">\n      <slot name=\"trigger\" />\n    </div>\n    <el-dialog\n      v-model=\"visible\"\n      :title=\"title\"\n      :width=\"width\"\n      append-to-body\n      :modal-class=\"ns.e('class')\"\n      v-bind=\"passDialogProps\"\n    >\n      <div>\n        <slot name=\"top\" />\n        <div\n          ref=\"tableWrapperRef\"\n          :class=\"ns.e('body')\"\n          :style=\"{ height: wrapperHeight }\"\n        >\n          <slot name=\"left\" />\n          <ep-table-page\n            ref=\"tableRef\"\n            v-bind=\"$attrs\"\n            :row-key=\"rowKey\"\n            :columns=\"columns\"\n            :pagination=\"pagination\"\n            :class=\"ns.e('body-left')\"\n            :header-cell-style=\"headerCellStyle\"\n            :boundary-value=\"boundaryValue\"\n            @radio-selection-change=\"handlelection\"\n            @select=\"handleSelect\"\n            @select-all=\"handleSelectAll\"\n            @data-change=\"updateSelectionState\"\n          >\n            <template #header>\n              <slot name=\"header\" />\n            </template>\n          </ep-table-page>\n          <div v-show=\"!hiddenRight\" :class=\"ns.e('body-right')\">\n            <div class=\"title\">\n              <slot name=\"title\" v-bind=\"{ selectList, closeDialog }\">\n                {{ selectedFieldTitle }}\n              </slot>\n            </div>\n            <dynamic-size-list v-bind=\"calcDynamicSizeListProps\">\n              <template #default=\"{ index, style, data }\">\n                <div :key=\"index\" class=\"select-item\" :style=\"style\">\n                  <slot\n                    name=\"label\"\n                    v-bind=\"{\n                      item: data[index],\n                      index,\n                      close: () => handleDelete(data[index]),\n                    }\"\n                  >\n                    <div class=\"text\">\n                      {{ data[index][labelKey] }}\n                    </div>\n                    <div\n                      class=\"cursor-pointer\"\n                      @click=\"handleDelete(data[index])\"\n                    >\n                      <el-icon>\n                        <Close />\n                      </el-icon>\n                    </div>\n                  </slot>\n                </div>\n              </template>\n            </dynamic-size-list>\n          </div>\n          <slot name=\"right\" />\n        </div>\n        <slot name=\"footer\">\n          <div :class=\"ns.e('footer')\">\n            <div>\n              <el-button @click=\"handleCancel\">\n                {{ cancelText ?? t('epx.common.cancel') }}\n              </el-button>\n              <el-button :loading=\"loading\" type=\"primary\" @click=\"handleSure\">\n                {{ sureText ?? t('epx.common.sure') }}\n              </el-button>\n            </div>\n          </div>\n        </slot>\n      </div>\n    </el-dialog>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, ref, useAttrs, watch } from 'vue'\nimport {\n  DynamicSizeList,\n  ElButton,\n  ElDialog,\n  ElIcon,\n  useLocale,\n  useNamespace,\n} from 'element-plus'\nimport EpTablePage from '@element-plus/components/table-page'\nimport { CANCEL_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { Close } from '@element-plus/icons-vue'\nimport { tableDialogEmits, tableDialogProps } from './table-dialog'\n\ndefineOptions({\n  name: 'ElTableDialog',\n  inheritAttrs: false,\n})\n\nconst props = defineProps(tableDialogProps)\nconst emit = defineEmits(tableDialogEmits)\n\nconst { t } = useLocale()\nconst ns = useNamespace('table-dialog')\n\nconst visible = ref(false)\nconst selectList: any = ref([])\nconst tableRef = ref()\nconst tableWrapperRef = ref()\nconst loading = ref(false)\n\nconst passDialogProps = computed(() => {\n  const attrs: Record<string, any> = { ...useAttrs() }\n  delete attrs['http-request']\n  delete attrs['httpRequest']\n  return attrs\n})\n\nconst selectedFieldTitle = computed(\n  () => props.selectedFieldTitle || t('epx.tableDialog.selectedField')\n)\nconst columns = computed(() => {\n  let columns: any = props.columns ?? []\n  const column =\n    props.type === 'checkbox'\n      ? {\n          type: 'selection',\n          reserveSelection: false,\n          width: 50,\n          selectable: props.selectable,\n        }\n      : props.type === 'radio'\n      ? {\n          type: 'radio',\n          reserveRadioSelection: false,\n          width: 50,\n          selectable: props.selectable,\n        }\n      : null\n  if (column) {\n    columns = [column, ...columns]\n  }\n  return columns\n})\nconst rowKey = computed(() => {\n  return props.rowKey || (props.config as any).id\n})\nconst labelKey = computed(() => (props.config as any).label)\nconst isCheckbox = computed(() => props.type === 'checkbox')\nconst pagination = computed(() => {\n  const pagination = props.pagination\n  return {\n    showRecord: false,\n    showTotal: true,\n    background: false,\n    layout: 'sizes, prev, pager, next',\n    // size: 'small',\n    ...(pagination as any),\n  }\n})\nconst wrapperHeight = computed(() => {\n  const height = Number.parseInt(String(props.height))\n  return typeof height === 'number' ? `${height}px` : props.height\n})\nconst boundaryValue = computed(() => props.boundaryValue ?? 50)\nconst calcDynamicSizeListProps = computed(() => {\n  return {\n    width: 295,\n    height: Number.parseInt(String(props.height)) - 40,\n    estimatedItemSize: 32,\n    data: selectList.value,\n    total: selectList.value.length,\n    cache: 3,\n    className: 'select-list',\n    itemSize: () => 32,\n    ...props.dynamicSizeListProps,\n  }\n})\n\nconst updateStatus = () => {\n  nextTick(() => {\n    selectList.value = [...props.modelValue]\n    updateSelectionState()\n  })\n}\nconst openDialog = () => {\n  visible.value = true\n  updateStatus()\n}\n// 处理modelValue异步绑定\nwatch(\n  () => props.modelValue,\n  () => updateStatus()\n)\n\nconst closeDialog = () => {\n  visible.value = false\n}\nconst has = (row: any) => {\n  const key = rowKey.value\n  return !!selectList.value?.find((_: any) => _?.[key] === row[key])\n}\nconst del = (row: any) => {\n  const key = rowKey.value\n  const index = selectList.value.findIndex((_: any) => _?.[key] === row[key])\n  if (index > -1) {\n    selectList.value.splice(index, 1)\n  }\n}\nconst clear = () => {\n  selectList.value = []\n}\nconst add = (rows: any) => {\n  rows.forEach((row: any) => {\n    if (!has(row)) {\n      props.unshift ? selectList.value.unshift(row) : selectList.value.push(row)\n    }\n  })\n}\nconst handleSelect = (selection: any[], row: any) => {\n  const key = rowKey.value\n  const isAdd = !!selection?.find((_) => _[key] === row[key])\n  isAdd ? add([row]) : del(row)\n}\nconst handleSelectAll = (rows: any[]) => {\n  if (rows.length === 0) {\n    const table = tableRef.value.getTable()\n    table.data.forEach((row: any) => del(row))\n  } else {\n    add(rows)\n  }\n}\nconst handlelection = (selection: any) => {\n  if (!isCheckbox.value) {\n    const list = Array.isArray(selection) ? selection : [selection]\n    clear()\n    add(list)\n    return\n  }\n}\nconst handleDelete = (item: any) => {\n  const key = rowKey.value\n  const value = item[key]\n  const table = tableRef.value.getTable()\n  const row = table.data.find((_: any) => _[key] === value)\n  if (row) {\n    isCheckbox.value\n      ? table.toggleRowSelection(row, false)\n      : table.toggleRadioRowSelection(row, false)\n  }\n  del(item)\n}\nconst updateSelectionState = () => {\n  nextTick(() => {\n    const key = rowKey.value\n    const table = tableRef.value?.getTable?.()\n    const tableData = table?.data ?? []\n    tableData.forEach((row: any) => {\n      const index = selectList.value.findIndex((_: any) => _[key] === row[key])\n      if (index !== -1) {\n        isCheckbox.value\n          ? table.toggleRowSelection(row, true)\n          : table.toggleRadioRowSelection(row, true)\n      } else {\n        isCheckbox.value\n          ? table.toggleRowSelection(row, false)\n          : table.toggleRadioRowSelection(row, false)\n      }\n    })\n  })\n}\nconst handleSure = async () => {\n  let error = false\n  const values = [...selectList.value]\n  try {\n    loading.value = true\n    await props.onSure?.(values, {\n      loading,\n      closeDialog,\n    })\n  } catch {\n    error = true\n  }\n  loading.value = false\n  if (!error) {\n    emit(UPDATE_MODEL_EVENT, values)\n    closeDialog()\n  }\n}\nconst handleCancel = () => {\n  emit(CANCEL_EVENT)\n  closeDialog()\n}\n\nconst getTable = (...args: any) => tableRef.value?.getTable?.apply(null, args)\nconst request = (...args: any) => tableRef.value?.request?.apply(null, args)\n\ndefineExpose({\n  openDialog,\n  closeDialog,\n  getTable,\n  request,\n  updateStatus,\n})\n</script>\n"],"names":["columns","pagination"],"mappings":"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"}