{"version":3,"file":"custom-column.vue2.mjs","sources":["../../../../../../packages/components/custom-column/src/custom-column.vue"],"sourcesContent":["<template>\n  <el-button\n    v-if=\"showHandler\"\n    type=\"primary\"\n    :class=\"[bem.b(), 'ep-button']\"\n    size=\"small\"\n    @click=\"open\"\n    >{{ t('ep.customColumn.columnSettings') }}</el-button\n  >\n  <CustomColumnDialog>\n    <el-transfer\n      v-model=\"showData\"\n      :class=\"bem.e('transfer')\"\n      filterable\n      :titles=\"[\n        t('ep.customColumn.hiddenField'),\n        t('ep.customColumn.visibleField'),\n      ]\"\n      :button-texts=\"[\n        t('ep.customColumn.moveLeft'),\n        t('ep.customColumn.moveRight'),\n      ]\"\n      :data=\"allData\"\n      target-order=\"push\"\n      @right-check-change=\"rightCheckChange\"\n      @change=\"change\"\n    >\n      <template #left-footer>\n        <div :class=\"bem.e('operate')\">\n          <el-button\n            type=\"primary\"\n            class=\"up\"\n            :disabled=\"isDiabledMoveUpDown\"\n            @click=\"moveUp\"\n          >\n            <el-icon><arrow-up /></el-icon>\n            {{ t('ep.customColumn.moveUp') }}\n          </el-button>\n          <el-button\n            type=\"primary\"\n            class=\"down\"\n            :disabled=\"isDiabledMoveUpDown\"\n            @click=\"moveDown\"\n          >\n            {{ t('ep.customColumn.moveDown') }}\n            <el-icon><arrow-down /></el-icon>\n          </el-button>\n        </div>\n      </template>\n    </el-transfer>\n  </CustomColumnDialog>\n</template>\n\n<script setup lang=\"tsx\">\nimport { ref, computed, watch, provide } from 'vue'\nimport { useDialog } from '@el-plus/hooks/dialog/use-dialog'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useLocale } from '@el-plus/hooks/use-locale'\nimport { ArrowUp, ArrowDown } from '@element-plus/icons-vue'\nimport { customColumnEmits, customColumnProps } from './custom-column'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { TransferDataItem } from 'element-plus'\nimport { bus } from '@el-plus/utils'\n\nconst { t } = useLocale()\nconst bem = createNameSpace('custom-column')\ndefineOptions({ name: 'EpCustomColumn', inheritAttrs: false })\nconst props = defineProps(customColumnProps)\nconst emit = defineEmits(customColumnEmits)\nconst CustomColumnDialog = useDialog({\n  class: bem.e('dialog'),\n  width: 850,\n  center: true,\n  title: t('ep.customColumn.columnSettings'),\n  onConfirm: async (resolve) => {\n    resolve(\n      saveColumnsFn!({\n        module: props.module,\n        userModuleColumnsReqs: showData.value.map((item, index) => {\n          return {\n            columnId: item,\n            seq: index,\n          }\n        }),\n      }).then(() => {\n        const columns = showTableColumns()\n        emit('confirm', columns)\n        bus.emit('loadedCustomColumn', columns)\n      }),\n    )\n  },\n})\nconst allData = ref<TransferDataItem[]>([])\nconst showData = ref<TransferDataItem[]>([])\nif (typeof props.api === 'function') {\n  console.warn(\n    `请按照默认自定义列的格式返回数据，\n    格式为{\n        hiddenColumns: [{id: '', showName: '', showField: ''}], \n        showColumns: [{id: '', showName: '', showField: ''}]\n      }\n    `,\n  )\n}\nconst { requestFn: getColumnsFn } = useRequest({\n  api: props.api,\n  method: 'post',\n  hooks: {\n    success(data) {\n      const { hiddenColumns, showColumns } = data as {\n        hiddenColumns: TransferDataItem[]\n        showColumns: TransferDataItem[]\n      }\n      allData.value = [...hiddenColumns, ...showColumns].map((item) => ({\n        label: item.showName,\n        key: item.id,\n        prop: item.showField,\n      }))\n      showData.value = showColumns.map((item) => item.id)\n      const columns = showTableColumns()\n      emit('loaded', columns)\n      bus.emit('loadedCustomColumn', columns)\n    },\n  },\n})\nif (typeof props.saveApi === 'function') {\n  console.warn(\n    `请按照默认自定义列的格式提交数据，\n    格式为{\n          module: xx,\n          userModuleColumnsReqs: [{columnId: xx, seq: 序号index}]\n      }\n    `,\n  )\n}\nconst { requestFn: saveColumnsFn } = useRequest({\n  api: props.saveApi,\n  method: 'post',\n  hooks: {\n    success() {\n      emit('confirm', showTableColumns())\n    },\n  },\n})\nconst showTableColumns = () => {\n  return showData.value.map((id) => {\n    const item = allData.value.find((item) => item.key === id)\n    return {\n      prop: item!.prop,\n      label: item!.label,\n      key: item!.key,\n    }\n  })\n}\nif (props.module) {\n  getColumnsFn!({\n    module: props.module,\n  })\n}\nconst rightChecked = ref([])\n\nconst moveUp = () => {\n  const index = showData.value.indexOf(rightChecked.value[0])\n  const temp = showData.value[index]\n  if (index === 0) {\n    showData.value[index] = showData.value[showData.value.length - 1]\n    showData.value[showData.value.length - 1] = temp\n  } else {\n    showData.value[index] = showData.value[index - 1]\n    showData.value[index - 1] = temp\n  }\n  scrollIntoView()\n}\nconst moveDown = () => {\n  const index = showData.value.indexOf(rightChecked.value[0])\n  const temp = showData.value[index]\n  if (index === showData.value.length - 1) {\n    showData.value[index] = showData.value[0]\n    showData.value[0] = temp\n  } else {\n    showData.value[index] = showData.value[index + 1]\n    showData.value[index + 1] = temp\n  }\n  scrollIntoView()\n}\nconst scrollIntoView = () => {\n  // 选中项要在可视范围\n  const checkedEl = document.querySelectorAll(\n    '.ep-custom-column__transfer .el-transfer-panel',\n  )\n  const rightEl = checkedEl[1].querySelector(\n    '.el-transfer-panel__item.is-checked',\n  )\n  if (rightEl) {\n    requestAnimationFrame(() => {\n      rightEl.scrollIntoView({\n        behavior: 'smooth',\n        block: 'center',\n      })\n    })\n  }\n}\n\nconst rightCheckChange = (val) => {\n  rightChecked.value = val\n}\nconst change = () => {\n  if (!showData.value.some((item) => item === rightChecked.value[0])) {\n    rightChecked.value = []\n  }\n}\n\nconst isDiabledMoveUpDown = computed(() => {\n  return rightChecked.value.length !== 1\n})\n\nconst open = async () => {\n  try {\n    await CustomColumnDialog.open()\n  } catch (error) {}\n}\ndefineExpose({ open })\n</script>\n"],"names":["t","useLocale","bem","createNameSpace","props","__props","emit","__emit","CustomColumnDialog","useDialog","class","e","width","center","title","onConfirm","resolve","saveColumnsFn","module","userModuleColumnsReqs","showData","value","map","item","index","columnId","seq","then","columns","showTableColumns","bus","allData","ref","api","console","warn","requestFn","getColumnsFn","useRequest","method","hooks","success","data","hiddenColumns","showColumns","label","showName","key","id","prop","showField","saveApi","find","rightChecked","moveUp","indexOf","temp","length","scrollIntoView","moveDown","checkedEl","document","querySelectorAll","rightEl","querySelector","requestAnimationFrame","behavior","block","rightCheckChange","val","change","some","isDiabledMoveUpDown","computed","open","error","__expose","showHandler","_createBlock","_component_el_button","type","_normalizeClass","_unref","b","size","onClick","_createVNode","_component_el_transfer","$event","filterable","titles","onRightCheckChange","onChange","_createElementVNode","disabled","_component_el_icon","ArrowUp","_createTextVNode","_toDisplayString","ArrowDown"],"mappings":"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"}