el-plus 0.0.59 → 0.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +73 -37
  4. package/dist/index.full.min.js +2 -2
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +2 -2
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +73 -37
  9. package/es/components/form/src/form-item-vue.mjs +1 -1
  10. package/es/components/form/src/form-item-vue.mjs.map +1 -1
  11. package/es/components/header/src/use-header.mjs +1 -1
  12. package/es/components/header/src/use-header.mjs.map +1 -1
  13. package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
  14. package/es/components/select/src/select.vue2.mjs +1 -1
  15. package/es/components/select/src/select.vue2.mjs.map +1 -1
  16. package/es/components/select/src/use-select.d.ts +2 -2
  17. package/es/components/select/src/use-select.mjs +20 -18
  18. package/es/components/select/src/use-select.mjs.map +1 -1
  19. package/es/components/table/src/use-table.mjs +1 -0
  20. package/es/components/table/src/use-table.mjs.map +1 -1
  21. package/es/hooks/dialog/use-dialog.d.ts +2 -0
  22. package/es/hooks/dialog/use-dialog.mjs +9 -1
  23. package/es/hooks/dialog/use-dialog.mjs.map +1 -1
  24. package/es/hooks/dialog/use-form-dialog.d.ts +2 -0
  25. package/es/hooks/dialog/use-form-dialog.mjs +11 -10
  26. package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
  27. package/es/hooks/use-locale.mjs +11 -2
  28. package/es/hooks/use-locale.mjs.map +1 -1
  29. package/es/hooks/use-navigation.d.ts +5 -1
  30. package/es/hooks/use-navigation.mjs +17 -2
  31. package/es/hooks/use-navigation.mjs.map +1 -1
  32. package/es/package.json.mjs +1 -1
  33. package/lib/components/form/src/form-item-vue.js +1 -1
  34. package/lib/components/form/src/form-item-vue.js.map +1 -1
  35. package/lib/components/header/src/use-header.js +1 -1
  36. package/lib/components/header/src/use-header.js.map +1 -1
  37. package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
  38. package/lib/components/select/src/select.vue2.js +1 -1
  39. package/lib/components/select/src/select.vue2.js.map +1 -1
  40. package/lib/components/select/src/use-select.d.ts +2 -2
  41. package/lib/components/select/src/use-select.js +19 -17
  42. package/lib/components/select/src/use-select.js.map +1 -1
  43. package/lib/components/table/src/use-table.js +1 -0
  44. package/lib/components/table/src/use-table.js.map +1 -1
  45. package/lib/hooks/dialog/use-dialog.d.ts +2 -0
  46. package/lib/hooks/dialog/use-dialog.js +9 -1
  47. package/lib/hooks/dialog/use-dialog.js.map +1 -1
  48. package/lib/hooks/dialog/use-form-dialog.d.ts +2 -0
  49. package/lib/hooks/dialog/use-form-dialog.js +11 -10
  50. package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
  51. package/lib/hooks/use-locale.js +11 -2
  52. package/lib/hooks/use-locale.js.map +1 -1
  53. package/lib/hooks/use-navigation.d.ts +5 -1
  54. package/lib/hooks/use-navigation.js +17 -2
  55. package/lib/hooks/use-navigation.js.map +1 -1
  56. package/lib/package.json.js +1 -1
  57. package/package.json +1 -1
  58. package/theme-chalk/attachment.css +1 -1
  59. package/theme-chalk/buttons.css +1 -1
  60. package/theme-chalk/form.css +1 -1
  61. package/theme-chalk/index.css +1 -1
  62. package/theme-chalk/src/attachment.scss +1 -1
  63. package/theme-chalk/src/buttons.scss +1 -1
  64. package/theme-chalk/src/form.scss +6 -0
  65. package/theme-chalk/src/table.scss +8 -2
  66. package/theme-chalk/table.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue2.js","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <el-select\n v-model=\"value\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n v-bind=\"customAttrs\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-option\n v-for=\"item in customOptions\"\n :key=\"item[valueKey]\"\n :class=\"bem.e('option')\"\n :label=\"\n item.formatLabel\n ? item.formatLabel(item)\n : formatLabel\n ? formatLabel(item)\n : item[labelKey]\n \"\n :value=\"item[valueKey]\"\n :disabled=\"disabledOption(item)\"\n >\n <slot name=\"option\" :item=\"item\">\n <template v-if=\"codeInLabel || codeInLabel === ''\">\n <span style=\"float: left\">{{ item[labelKey] }}</span>\n <span\n style=\"\n float: right;\n color: var(--el-text-color-secondary);\n font-size: 13px;\n \"\n >\n {{\n item[\n typeof codeInLabel === 'string' && codeInLabel\n ? codeInLabel\n : valueKey\n ]\n }}\n </span>\n </template>\n </slot>\n </el-option>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-select>\n</template>\n<script setup lang=\"ts\">\nimport { computed, useSlots, watch } from 'vue'\nimport {\n selectProps,\n selectEmits,\n expandSelectPropsKeys,\n selectEmitsKeys,\n} from './select'\nimport type { SelectProps, SelectEmits } from './select'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { useSelect } from './use-select'\nimport { createNameSpace } from '@el-plus/utils/bem'\ndefineOptions({\n name: 'EpSelect',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('select')\nconst props = defineProps(selectProps)\nconst emit = defineEmits(selectEmits)\nconst slots = computed(() => {\n return Object.keys(useSlots())\n})\n\nconst { customOptions, loadOptions, expandAttrs } = useSelect(props, emit)\nconst value = defineModel<SelectProps['modelValue']>()\nconst desc = defineModel<string>('desc')\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', 'desc', ...expandSelectPropsKeys]),\n ...prepareEvents<SelectEmits>(emit, selectEmitsKeys),\n ...expandAttrs,\n }\n})\nloadOptions(value.value, desc.value)\nwatch(\n () => props.options,\n () => {\n loadOptions(value.value, desc.value)\n },\n {\n deep: true,\n },\n)\n</script>\n"],"names":["bem","createNameSpace","props","computed","useSlots","useSelect","_useModel","prepareProps","expandSelectPropsKeys","prepareEvents","selectEmitsKeys","watch","_openBlock","_createBlock","_mergeProps","_unref","prepareClassNames","prepareStyles","_createElementBlock","_Fragment","_renderList","valueKey","_normalizeClass","formatLabel","labelKey","disabledOption","_renderSlot","codeInLabel","_createElementVNode","_toDisplayString","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
1
+ {"version":3,"file":"select.vue2.js","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <el-select\n v-model=\"value\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n v-bind=\"customAttrs\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-option\n v-for=\"item in customOptions\"\n :key=\"item[valueKey]\"\n :class=\"bem.e('option')\"\n :label=\"\n item.formatLabel\n ? item.formatLabel(item)\n : formatLabel\n ? formatLabel(item)\n : item[labelKey]\n \"\n :value=\"item[valueKey]\"\n :disabled=\"disabledOption(item)\"\n >\n <slot name=\"option\" :item=\"item\">\n <template v-if=\"codeInLabel || codeInLabel === ''\">\n <span style=\"float: left\">{{ item[labelKey] }}</span>\n <span\n style=\"\n float: right;\n color: var(--el-text-color-secondary);\n font-size: 13px;\n \"\n >\n {{\n item[\n typeof codeInLabel === 'string' && codeInLabel\n ? codeInLabel\n : valueKey\n ]\n }}\n </span>\n </template>\n </slot>\n </el-option>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-select>\n</template>\n<script setup lang=\"ts\">\nimport { computed, useSlots, watch } from 'vue'\nimport {\n selectProps,\n selectEmits,\n expandSelectPropsKeys,\n selectEmitsKeys,\n} from './select'\nimport type { SelectProps, SelectEmits } from './select'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { useSelect } from './use-select'\nimport { createNameSpace } from '@el-plus/utils/bem'\ndefineOptions({\n name: 'EpSelect',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('select')\nconst props = defineProps(selectProps)\nconst emit = defineEmits(selectEmits)\nconst slots = computed(() => {\n return Object.keys(useSlots())\n})\n\nconst { customOptions, loadOptions, expandAttrs } = useSelect(props, emit)\nconst value = defineModel<SelectProps['modelValue']>()\nconst desc = defineModel<string>('desc')\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', 'desc', ...expandSelectPropsKeys]),\n ...prepareEvents<SelectEmits>(emit, selectEmitsKeys),\n ...expandAttrs.value,\n }\n})\nloadOptions(value.value, desc.value)\nwatch(\n () => props.options,\n () => {\n loadOptions(value.value, desc.value)\n },\n {\n deep: true,\n },\n)\n</script>\n"],"names":["bem","createNameSpace","props","computed","useSlots","useSelect","_useModel","prepareProps","expandSelectPropsKeys","prepareEvents","selectEmitsKeys","watch","_openBlock","_createBlock","_mergeProps","_unref","prepareClassNames","prepareStyles","_createElementBlock","_Fragment","_renderList","valueKey","_normalizeClass","formatLabel","labelKey","disabledOption","_renderSlot","codeInLabel","_createElementVNode","_toDisplayString","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
@@ -3,10 +3,10 @@ import type { SelectProps, SelectEmits } from './select';
3
3
  export declare function useSelect(props: SelectProps, emit: SetupContext<SelectEmits>['emit']): {
4
4
  customOptions: import("vue").Ref<Record<string, any>[], Record<string, any>[]>;
5
5
  loadOptions: (value: SelectProps["modelValue"], desc: string | undefined) => void;
6
- expandAttrs: {
6
+ expandAttrs: import("vue").ComputedRef<{
7
7
  loading: boolean | undefined;
8
8
  remoteMethod: (query: string) => void;
9
9
  onChange(value: SelectProps["modelValue"]): void;
10
10
  onVisibleChange(visible: boolean): void;
11
- };
11
+ }>;
12
12
  };
@@ -60,24 +60,26 @@ function useSelect(props, emit) {
60
60
  return item[props.valueKey] === value;
61
61
  }) || {};
62
62
  };
63
- const expandAttrs = {
64
- loading: props.loading || loading?.value,
65
- remoteMethod: (query) => {
66
- if (!query) return;
67
- requestFn({
68
- $searchValue: query
69
- });
70
- },
71
- onChange(value) {
72
- emit("change", value, getSelectItem(value));
73
- },
74
- onVisibleChange(visible) {
75
- if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {
76
- requestFn();
63
+ const expandAttrs = vue.computed(() => {
64
+ return {
65
+ loading: props.loading || loading?.value,
66
+ remoteMethod: (query) => {
67
+ if (!query) return;
68
+ requestFn({
69
+ $searchValue: query
70
+ });
71
+ },
72
+ onChange(value) {
73
+ emit("change", value, getSelectItem(value));
74
+ },
75
+ onVisibleChange(visible) {
76
+ if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {
77
+ requestFn();
78
+ }
79
+ emit("visible-change", visible);
77
80
  }
78
- emit("visible-change", visible);
79
- }
80
- };
81
+ };
82
+ });
81
83
  return {
82
84
  customOptions,
83
85
  loadOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.js","sources":["../../../../../../packages/components/select/src/use-select.ts"],"sourcesContent":["import { ref } from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n customOptions.value = data as OptionArr\n } else if (data && typeof data === 'object') {\n const rawData = data as OptionObj\n customOptions.value = rawData?.list || rawData?.data || []\n } else {\n customOptions.value = []\n }\n hasLoaded = true\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 下拉列表\n const customOptions = ref<SelectOption[]>([]) // 下拉列表\n // 加载下拉列表\n const loadOptions = (\n value: SelectProps['modelValue'],\n desc: string | undefined,\n ) => {\n if ((value || value === 0) && desc) {\n customOptions.value = [\n {\n [props.labelKey]: desc,\n [props.valueKey]: value,\n },\n ]\n }\n if (props.api) {\n if (!props.lazy && !props.remote) {\n requestFn!()\n }\n } else if (props.options?.length) {\n customOptions.value = props.options\n }\n }\n // 获取选中项\n const getSelectItem = (value: SelectProps['modelValue']) => {\n if (Array.isArray(value)) {\n if (!customOptions.value) return []\n return customOptions.value.filter((item: SelectOption) => {\n return value.indexOf(item[props.valueKey]) > -1\n })\n }\n if (!customOptions.value) return {}\n return (\n customOptions.value.find((item: SelectOption) => {\n return item[props.valueKey] === value\n }) || {}\n )\n }\n const expandAttrs = {\n loading: props.loading || loading?.value,\n remoteMethod: (query: string) => {\n if (!query) return\n requestFn!({\n $searchValue: query,\n })\n },\n onChange(value: SelectProps['modelValue']) {\n emit('change', value, getSelectItem(value))\n },\n onVisibleChange(visible: boolean) {\n if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {\n requestFn!()\n }\n emit('visible-change', visible)\n },\n }\n return {\n customOptions,\n loadOptions,\n expandAttrs,\n }\n}\n"],"names":["useRequest","ref"],"mappings":"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"}
1
+ {"version":3,"file":"use-select.js","sources":["../../../../../../packages/components/select/src/use-select.ts"],"sourcesContent":["import { ref ,computed} from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n customOptions.value = data as OptionArr\n } else if (data && typeof data === 'object') {\n const rawData = data as OptionObj\n customOptions.value = rawData?.list || rawData?.data || []\n } else {\n customOptions.value = []\n }\n hasLoaded = true\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 下拉列表\n const customOptions = ref<SelectOption[]>([]) // 下拉列表\n // 加载下拉列表\n const loadOptions = (\n value: SelectProps['modelValue'],\n desc: string | undefined,\n ) => {\n if ((value || value === 0) && desc) {\n customOptions.value = [\n {\n [props.labelKey]: desc,\n [props.valueKey]: value,\n },\n ]\n }\n if (props.api) {\n if (!props.lazy && !props.remote) {\n requestFn!()\n }\n } else if (props.options?.length) {\n customOptions.value = props.options\n }\n }\n // 获取选中项\n const getSelectItem = (value: SelectProps['modelValue']) => {\n if (Array.isArray(value)) {\n if (!customOptions.value) return []\n return customOptions.value.filter((item: SelectOption) => {\n return value.indexOf(item[props.valueKey]) > -1\n })\n }\n if (!customOptions.value) return {}\n return (\n customOptions.value.find((item: SelectOption) => {\n return item[props.valueKey] === value\n }) || {}\n )\n }\n const expandAttrs = computed(() => {\n return {\n loading: props.loading || loading?.value,\n remoteMethod: (query: string) => {\n if (!query) return\n requestFn!({\n $searchValue: query,\n })\n },\n onChange(value: SelectProps['modelValue']) {\n emit('change', value, getSelectItem(value))\n },\n onVisibleChange(visible: boolean) {\n if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {\n requestFn!()\n }\n emit('visible-change', visible)\n },\n }\n })\n return {\n customOptions,\n loadOptions,\n expandAttrs,\n }\n}\n"],"names":["useRequest","ref","computed"],"mappings":"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"}
@@ -242,6 +242,7 @@ const useTableColumn = (props$1, tableData, customColumns) => {
242
242
  };
243
243
  }
244
244
  if (column.type === "EpLink") {
245
+ console.log(1);
245
246
  attrs.className = "table-column-link";
246
247
  }
247
248
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"use-table.js","sources":["../../../../../../packages/components/table/src/use-table.tsx"],"sourcesContent":["import type { FormInstance, TableInstance, FormItemProp } from 'element-plus'\nimport {\n ref,\n computed,\n type Ref,\n reactive,\n useTemplateRef,\n getCurrentInstance,\n toRaw,\n useAttrs,\n nextTick,\n watch,\n} from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { TableColumn, TableProps, TableScope } from './table'\nimport type { ButtonProps } from '@el-plus/components/buttons'\nimport type { FormProps } from '@el-plus/components/form'\nimport { bus } from '@el-plus/utils'\nimport { merge } from 'lodash-unified'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { cloneDeep } from 'lodash-unified'\nimport { EditPen } from '@element-plus/icons-vue'\nimport { ElIcon } from 'element-plus'\nimport { useFormDialog } from '@el-plus/hooks/dialog/use-form-dialog'\n\nexport type ISearch = (init: boolean, isPagination?: boolean) => void\nexport const useTable = (props: TableProps) => {\n const elFormRef = useTemplateRef<FormInstance>('elFormRef')\n const elTableRef = useTemplateRef<TableInstance>('elTableRef')\n const customData = ref<Record<string, unknown>[]>([])\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: true,\n hooks: {\n success(data) {\n if (Array.isArray(data)) {\n customData.value = data\n } else if (data && typeof data === 'object') {\n const rawData = data as Record<string, any>\n customData.value = rawData?.list || rawData?.data || []\n } else {\n customData.value = []\n }\n if (props.showPagination) {\n pagination.total =\n (props.isFrontPage\n ? customData.value.length\n : (data as { total: number }).total) || 0\n }\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 自定义列\n const customColumns = ref<TableColumn[]>([])\n // 加载列表\n const attrs = useAttrs()\n const search: ISearch = async (init = false, isPagination = false) => {\n const beforeSearch = attrs['before-search']\n if (typeof beforeSearch === 'function') {\n await nextTick()\n await beforeSearch?.()\n }\n if (init) {\n pagination.pageNo = 1\n }\n // 前端分页\n if (isPagination && props.isFrontPage) {\n const { pageNo, pageSize } = pagination\n const data = customData.value.filter((item, index) => {\n return index < pageNo * pageSize && index >= (pageNo - 1) * pageSize\n })\n customData.value = data\n } else {\n if (props.api) {\n requestFn!({\n pageNo: pagination.pageNo,\n pageSize: pagination.pageSize,\n pageNum: pagination.pageNo,\n })\n } else if (props.data?.length) {\n customData.value = props.data\n }\n }\n }\n if (!props.api) {\n watch(\n () => props.data,\n (newValue) => {\n customData.value = newValue as Record<string, any>[]\n },\n {\n deep: true,\n },\n )\n }\n\n const { pagination, paginationProps } = usePagination(props, search)\n\n // 初始化加载\n ;(async () => {\n if (props.isInitSearch) {\n if (props.customColumnModule) {\n loading!.value = true\n const columns = await bus.once('loadedCustomColumn')\n loading!.value = false\n customColumns.value = columns\n bus.on('loadedCustomColumn', (columns: TableColumn[]) => {\n customColumns.value = columns\n })\n }\n search(true)\n }\n })()\n\n // 校验\n const validate = () => {\n return elFormRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return elFormRef.value!.resetFields(props)\n }\n // 清理选择,用于多选表格,清空用户的选择\n const clearSelection = () => {\n return elTableRef.value!.clearSelection()\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return elFormRef.value!.clearValidate(props)\n }\n // 格式化操作按钮\n const formatActionButtons = (list: ButtonProps[], scope: TableScope) => {\n return list.map((item) => {\n if (item.onClick) {\n return {\n ...item,\n onClick: item.onClick.bind(null, scope),\n }\n }\n return item\n })\n }\n\n return {\n loading,\n data: customData,\n search,\n pagination,\n paginationProps,\n validate,\n clearSelection,\n resetFields,\n clearValidate,\n elFormRef,\n elTableRef,\n formatActionButtons,\n customColumns: customColumns as unknown as Ref<TableColumn[]>,\n }\n}\nconst usePagination = function (props: TableProps, search: ISearch) {\n const pageSizes = [20, 50, 100, 200]\n const pagination = reactive({\n total: 0,\n pageNo: 1,\n pageSize: pageSizes[0],\n })\n const paginationProps = computed(() => {\n const defaultPaginationProps = props.paginationProps || {}\n const onSizeChange = defaultPaginationProps.onSizeChange\n const onCurrentChange = defaultPaginationProps.onCurrentChange\n return {\n ...defaultPaginationProps,\n pageSizes,\n layout: 'total, sizes, prev, pager, next, jumper',\n onSizeChange: (value: number) => {\n onSizeChange && onSizeChange(value)\n search(true, true)\n },\n onCurrentChange: (value: number) => {\n onCurrentChange && onCurrentChange(value)\n search(false, true)\n },\n }\n })\n return {\n pagination,\n paginationProps,\n }\n}\n\nexport const useTableColumn = (\n props: TableProps,\n tableData: Ref<TableProps['data']>,\n customColumns: Ref<TableColumn[]>,\n) => {\n const instance = getCurrentInstance()\n const columnProps = (column: TableColumn) => {\n column.props = column.props || {}\n const attrs = {\n 'show-overflow-tooltip': true,\n align: column.align || props.align,\n minWidth: column.minWidth || props.minWidth,\n // ...prepareEvents<TableEmits>(emit, tableEmits),\n } as TableColumn\n if (!column.renderHeader) {\n // 必填\n let required = column.required\n if (typeof column.required === 'function') {\n required = column.required()\n }\n // 批量编辑\n const editable = column.editable\n attrs['renderHeader'] = () => {\n return (\n <span>\n {required ? (\n <span style=\"color:var(--el-color-danger)\"> * </span>\n ) : (\n ''\n )}\n <span\n class={{ 'is-edit': editable }}\n onClick={\n editable\n ? async () => {\n const cloneColumn = { ...column }\n delete cloneColumn.editable\n const rawRender = cloneColumn.render\n const formData = reactive({})\n if (rawRender) {\n cloneColumn.render = () => {\n return rawRender({\n row: formData,\n })\n }\n }\n const formDialog = useFormDialog({\n title: cloneColumn.label,\n dialogProps: {\n destroyOnClose: true,\n instance,\n },\n formItemList: [\n cloneColumn,\n ] as FormProps['formItemList'],\n formData,\n // formData: reactive({}),\n })\n const data = (await formDialog.open()) as Record<\n string,\n any\n >\n ;(tableData.value || []).forEach((item) => {\n item[column.prop!] = data![column.prop!]\n })\n if (typeof editable === 'function') {\n editable(toRaw(data))\n }\n }\n : void 0\n }\n >\n {column.label}\n {editable ? (\n <ElIcon>\n <EditPen />\n </ElIcon>\n ) : (\n ''\n )}\n </span>\n </span>\n )\n }\n }\n if (column.filter) {\n const arr = tableData.value!.map((item) => item[column.prop!])\n attrs.filters = [...new Set(arr)].map((item) => {\n return {\n text: item,\n value: item,\n }\n })\n attrs.filterMethod = (value, row) => {\n return row[column.prop!] === value\n }\n }\n if (column.type === 'EpLink') {\n attrs.className = 'table-column-link'\n }\n\n return {\n ...attrs,\n ...prepareProps(column),\n }\n }\n const columnList = computed(() => {\n const columns = props.customColumnModule\n ? customColumns.value\n : props.columns\n return columns!\n .map((column: TableColumn) => {\n const newColumn = columnProps(column)\n if (props.formatColumns!.length) {\n const formatColumn = props.formatColumns!.find(\n (item) => item.prop === column.prop,\n )\n if (formatColumn) {\n // newColumn = { ...newColumn, ...formatColumn }\n merge(newColumn, formatColumn)\n }\n }\n return newColumn\n })\n .filter((column) => {\n if ('show' in column) {\n return typeof column.show === 'function'\n ? column.show(column)\n : column.show\n } else if ('hide' in column) {\n return typeof column.hide === 'function'\n ? !column.hide(column)\n : !column.hide\n }\n return true\n })\n })\n return {\n columnList,\n }\n}\n\nexport const useTableFormItem = (props: TableProps) => {\n const formItemProps = (scope: TableScope, rawItem: TableColumn) => {\n const item = cloneDeep(rawItem)\n let required = item.required\n if (typeof required === 'function') {\n required = required()\n }\n if (item.cellRequired) {\n required = item.cellRequired(scope)\n }\n let disabled = props.disabled\n if ('disabled' in item) {\n if (typeof item.disabled === 'function') {\n disabled = item.disabled(scope)\n } else {\n disabled = item.disabled || false\n }\n }\n if (item.type === 'EpSelect' && item.props) {\n if ('options' in item.props && typeof item.props.options === 'function') {\n item.props.options = item.props.options(scope)\n }\n if (\n 'disabledOption' in item.props &&\n typeof item.props.disabledOption === 'function'\n ) {\n const disabledOption = item.props.disabledOption\n item.props.disabledOption = (...args: unknown[]) =>\n disabledOption(...args, scope)\n }\n if ('desc' in item.props && typeof item.props.desc === 'function') {\n item.props.desc = item.props.desc(scope)\n }\n }\n\n if (item.type === 'EpButtons' && item.props) {\n item.props.list.forEach((btnItem: ButtonProps) => {\n if (btnItem.prop) {\n btnItem.name = scope.row[btnItem.prop] as string\n }\n if (btnItem.onClick) {\n btnItem.onClick = btnItem.onClick.bind(null, scope)\n }\n })\n }\n if (item.type === 'EpLink') {\n ;(item.props ? item.props : (item.props = {})).content =\n item.props.content || scope.row[item.prop!]\n }\n for (const key in item) {\n if (key.startsWith('on') && typeof item[key] === 'function') {\n const fn = item[key]\n item[key] = (...args: unknown[]) => {\n let event: Event | unknown\n if (args[0] instanceof Event) {\n // 删除 event\n event = args.shift()\n }\n return fn(...args, scope, event)\n }\n }\n }\n return {\n ...prepareProps(item),\n isShowLabel: false,\n required,\n hideRequiredAsterisk: 'cellRequired' in item ? false : required,\n prop: `table.${scope.$index}.${item.prop}`,\n tableProp: item.prop, // table里的表单需要绑定的prop\n props: {\n ...item.props,\n disabled,\n },\n }\n }\n return {\n formItemProps,\n }\n}\n"],"names":["useTable","props","elFormRef","useTemplateRef","elTableRef","customData","ref","loading","requestFn","useRequest","api","method","reqData","reqParams","reqBefore","reqAfter","cancelToken","hooks","success","data","Array","isArray","value","rawData","list","showPagination","pagination","total","isFrontPage","length","fail","error","console","customColumns","attrs","useAttrs","search","init","isPagination","beforeSearch","nextTick","pageNo","pageSize","filter","item","index","pageNum","watch","newValue","deep","paginationProps","usePagination","isInitSearch","customColumnModule","columns","bus","once","on","validate","resetFields","clearSelection","clearValidate","formatActionButtons","scope","map","onClick","bind","pageSizes","reactive","computed","defaultPaginationProps","onSizeChange","onCurrentChange","layout","useTableColumn","tableData","instance","getCurrentInstance","columnProps","column","align","minWidth","renderHeader","required","editable","_createVNode","_createTextVNode","cloneColumn","rawRender","render","formData","row","formDialog","useFormDialog","title","label","dialogProps","destroyOnClose","formItemList","open","forEach","prop","toRaw","ElIcon","default","EditPen","arr","filters","Set","text","filterMethod","type","className","prepareProps","columnList","newColumn","formatColumns","formatColumn","find","merge","show","hide","useTableFormItem","formItemProps","rawItem","cloneDeep","cellRequired","disabled","options","disabledOption","args","desc","btnItem","name","content","key","startsWith","fn","event","Event","shift","isShowLabel","hideRequiredAsterisk","$index","tableProp"],"mappings":"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"}
1
+ {"version":3,"file":"use-table.js","sources":["../../../../../../packages/components/table/src/use-table.tsx"],"sourcesContent":["import type { FormInstance, TableInstance, FormItemProp } from 'element-plus'\nimport {\n ref,\n computed,\n type Ref,\n reactive,\n useTemplateRef,\n getCurrentInstance,\n toRaw,\n useAttrs,\n nextTick,\n watch,\n} from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { TableColumn, TableProps, TableScope } from './table'\nimport type { ButtonProps } from '@el-plus/components/buttons'\nimport type { FormProps } from '@el-plus/components/form'\nimport { bus } from '@el-plus/utils'\nimport { merge } from 'lodash-unified'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { cloneDeep } from 'lodash-unified'\nimport { EditPen } from '@element-plus/icons-vue'\nimport { ElIcon } from 'element-plus'\nimport { useFormDialog } from '@el-plus/hooks/dialog/use-form-dialog'\n\nexport type ISearch = (init: boolean, isPagination?: boolean) => void\nexport const useTable = (props: TableProps) => {\n const elFormRef = useTemplateRef<FormInstance>('elFormRef')\n const elTableRef = useTemplateRef<TableInstance>('elTableRef')\n const customData = ref<Record<string, unknown>[]>([])\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: true,\n hooks: {\n success(data) {\n if (Array.isArray(data)) {\n customData.value = data\n } else if (data && typeof data === 'object') {\n const rawData = data as Record<string, any>\n customData.value = rawData?.list || rawData?.data || []\n } else {\n customData.value = []\n }\n if (props.showPagination) {\n pagination.total =\n (props.isFrontPage\n ? customData.value.length\n : (data as { total: number }).total) || 0\n }\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 自定义列\n const customColumns = ref<TableColumn[]>([])\n // 加载列表\n const attrs = useAttrs()\n const search: ISearch = async (init = false, isPagination = false) => {\n const beforeSearch = attrs['before-search']\n if (typeof beforeSearch === 'function') {\n await nextTick()\n await beforeSearch?.()\n }\n if (init) {\n pagination.pageNo = 1\n }\n // 前端分页\n if (isPagination && props.isFrontPage) {\n const { pageNo, pageSize } = pagination\n const data = customData.value.filter((item, index) => {\n return index < pageNo * pageSize && index >= (pageNo - 1) * pageSize\n })\n customData.value = data\n } else {\n if (props.api) {\n requestFn!({\n pageNo: pagination.pageNo,\n pageSize: pagination.pageSize,\n pageNum: pagination.pageNo,\n })\n } else if (props.data?.length) {\n customData.value = props.data\n }\n }\n }\n if (!props.api) {\n watch(\n () => props.data,\n (newValue) => {\n customData.value = newValue as Record<string, any>[]\n },\n {\n deep: true,\n },\n )\n }\n\n const { pagination, paginationProps } = usePagination(props, search)\n\n // 初始化加载\n ;(async () => {\n if (props.isInitSearch) {\n if (props.customColumnModule) {\n loading!.value = true\n const columns = await bus.once('loadedCustomColumn')\n loading!.value = false\n customColumns.value = columns\n bus.on('loadedCustomColumn', (columns: TableColumn[]) => {\n customColumns.value = columns\n })\n }\n search(true)\n }\n })()\n\n // 校验\n const validate = () => {\n return elFormRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return elFormRef.value!.resetFields(props)\n }\n // 清理选择,用于多选表格,清空用户的选择\n const clearSelection = () => {\n return elTableRef.value!.clearSelection()\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return elFormRef.value!.clearValidate(props)\n }\n // 格式化操作按钮\n const formatActionButtons = (list: ButtonProps[], scope: TableScope) => {\n return list.map((item) => {\n if (item.onClick) {\n return {\n ...item,\n onClick: item.onClick.bind(null, scope),\n }\n }\n return item\n })\n }\n\n return {\n loading,\n data: customData,\n search,\n pagination,\n paginationProps,\n validate,\n clearSelection,\n resetFields,\n clearValidate,\n elFormRef,\n elTableRef,\n formatActionButtons,\n customColumns: customColumns as unknown as Ref<TableColumn[]>,\n }\n}\nconst usePagination = function (props: TableProps, search: ISearch) {\n const pageSizes = [20, 50, 100, 200]\n const pagination = reactive({\n total: 0,\n pageNo: 1,\n pageSize: pageSizes[0],\n })\n const paginationProps = computed(() => {\n const defaultPaginationProps = props.paginationProps || {}\n const onSizeChange = defaultPaginationProps.onSizeChange\n const onCurrentChange = defaultPaginationProps.onCurrentChange\n return {\n ...defaultPaginationProps,\n pageSizes,\n layout: 'total, sizes, prev, pager, next, jumper',\n onSizeChange: (value: number) => {\n onSizeChange && onSizeChange(value)\n search(true, true)\n },\n onCurrentChange: (value: number) => {\n onCurrentChange && onCurrentChange(value)\n search(false, true)\n },\n }\n })\n return {\n pagination,\n paginationProps,\n }\n}\n\nexport const useTableColumn = (\n props: TableProps,\n tableData: Ref<TableProps['data']>,\n customColumns: Ref<TableColumn[]>,\n) => {\n const instance = getCurrentInstance()\n const columnProps = (column: TableColumn) => {\n column.props = column.props || {}\n const attrs = {\n 'show-overflow-tooltip': true,\n align: column.align || props.align,\n minWidth: column.minWidth || props.minWidth,\n // ...prepareEvents<TableEmits>(emit, tableEmits),\n } as TableColumn\n if (!column.renderHeader) {\n // 必填\n let required = column.required\n if (typeof column.required === 'function') {\n required = column.required()\n }\n // 批量编辑\n const editable = column.editable\n attrs['renderHeader'] = () => {\n return (\n <span>\n {required ? (\n <span style=\"color:var(--el-color-danger)\"> * </span>\n ) : (\n ''\n )}\n <span\n class={{ 'is-edit': editable }}\n onClick={\n editable\n ? async () => {\n const cloneColumn = { ...column }\n delete cloneColumn.editable\n const rawRender = cloneColumn.render\n const formData = reactive({})\n if (rawRender) {\n cloneColumn.render = () => {\n return rawRender({\n row: formData,\n })\n }\n }\n const formDialog = useFormDialog({\n title: cloneColumn.label,\n dialogProps: {\n destroyOnClose: true,\n instance,\n },\n formItemList: [\n cloneColumn,\n ] as FormProps['formItemList'],\n formData,\n // formData: reactive({}),\n })\n const data = (await formDialog.open()) as Record<\n string,\n any\n >\n ;(tableData.value || []).forEach((item) => {\n item[column.prop!] = data![column.prop!]\n })\n if (typeof editable === 'function') {\n editable(toRaw(data))\n }\n }\n : void 0\n }\n >\n {column.label}\n {editable ? (\n <ElIcon>\n <EditPen />\n </ElIcon>\n ) : (\n ''\n )}\n </span>\n </span>\n )\n }\n }\n if (column.filter) {\n const arr = tableData.value!.map((item) => item[column.prop!])\n attrs.filters = [...new Set(arr)].map((item) => {\n return {\n text: item,\n value: item,\n }\n })\n attrs.filterMethod = (value, row) => {\n return row[column.prop!] === value\n }\n }\n if (column.type === 'EpLink') {\n console.log(1)\n attrs.className = 'table-column-link'\n }\n\n return {\n ...attrs,\n ...prepareProps(column),\n }\n }\n const columnList = computed(() => {\n const columns = props.customColumnModule\n ? customColumns.value\n : props.columns\n return columns!\n .map((column: TableColumn) => {\n const newColumn = columnProps(column)\n if (props.formatColumns!.length) {\n const formatColumn = props.formatColumns!.find(\n (item) => item.prop === column.prop,\n )\n if (formatColumn) {\n // newColumn = { ...newColumn, ...formatColumn }\n merge(newColumn, formatColumn)\n }\n }\n return newColumn\n })\n .filter((column) => {\n if ('show' in column) {\n return typeof column.show === 'function'\n ? column.show(column)\n : column.show\n } else if ('hide' in column) {\n return typeof column.hide === 'function'\n ? !column.hide(column)\n : !column.hide\n }\n return true\n })\n })\n return {\n columnList,\n }\n}\n\nexport const useTableFormItem = (props: TableProps) => {\n const formItemProps = (scope: TableScope, rawItem: TableColumn) => {\n const item = cloneDeep(rawItem)\n let required = item.required\n if (typeof required === 'function') {\n required = required()\n }\n if (item.cellRequired) {\n required = item.cellRequired(scope)\n }\n let disabled = props.disabled\n if ('disabled' in item) {\n if (typeof item.disabled === 'function') {\n disabled = item.disabled(scope)\n } else {\n disabled = item.disabled || false\n }\n }\n if (item.type === 'EpSelect' && item.props) {\n if ('options' in item.props && typeof item.props.options === 'function') {\n item.props.options = item.props.options(scope)\n }\n if (\n 'disabledOption' in item.props &&\n typeof item.props.disabledOption === 'function'\n ) {\n const disabledOption = item.props.disabledOption\n item.props.disabledOption = (...args: unknown[]) =>\n disabledOption(...args, scope)\n }\n if ('desc' in item.props && typeof item.props.desc === 'function') {\n item.props.desc = item.props.desc(scope)\n }\n }\n\n if (item.type === 'EpButtons' && item.props) {\n item.props.list.forEach((btnItem: ButtonProps) => {\n if (btnItem.prop) {\n btnItem.name = scope.row[btnItem.prop] as string\n }\n if (btnItem.onClick) {\n btnItem.onClick = btnItem.onClick.bind(null, scope)\n }\n })\n }\n if (item.type === 'EpLink') {\n ;(item.props ? item.props : (item.props = {})).content =\n item.props.content || scope.row[item.prop!]\n }\n for (const key in item) {\n if (key.startsWith('on') && typeof item[key] === 'function') {\n const fn = item[key]\n item[key] = (...args: unknown[]) => {\n let event: Event | unknown\n if (args[0] instanceof Event) {\n // 删除 event\n event = args.shift()\n }\n return fn(...args, scope, event)\n }\n }\n }\n return {\n ...prepareProps(item),\n isShowLabel: false,\n required,\n hideRequiredAsterisk: 'cellRequired' in item ? false : required,\n prop: `table.${scope.$index}.${item.prop}`,\n tableProp: item.prop, // table里的表单需要绑定的prop\n props: {\n ...item.props,\n disabled,\n },\n }\n }\n return {\n formItemProps,\n }\n}\n"],"names":["useTable","props","elFormRef","useTemplateRef","elTableRef","customData","ref","loading","requestFn","useRequest","api","method","reqData","reqParams","reqBefore","reqAfter","cancelToken","hooks","success","data","Array","isArray","value","rawData","list","showPagination","pagination","total","isFrontPage","length","fail","error","console","customColumns","attrs","useAttrs","search","init","isPagination","beforeSearch","nextTick","pageNo","pageSize","filter","item","index","pageNum","watch","newValue","deep","paginationProps","usePagination","isInitSearch","customColumnModule","columns","bus","once","on","validate","resetFields","clearSelection","clearValidate","formatActionButtons","scope","map","onClick","bind","pageSizes","reactive","computed","defaultPaginationProps","onSizeChange","onCurrentChange","layout","useTableColumn","tableData","instance","getCurrentInstance","columnProps","column","align","minWidth","renderHeader","required","editable","_createVNode","_createTextVNode","cloneColumn","rawRender","render","formData","row","formDialog","useFormDialog","title","label","dialogProps","destroyOnClose","formItemList","open","forEach","prop","toRaw","ElIcon","default","EditPen","arr","filters","Set","text","filterMethod","type","log","className","prepareProps","columnList","newColumn","formatColumns","formatColumn","find","merge","show","hide","useTableFormItem","formItemProps","rawItem","cloneDeep","cellRequired","disabled","options","disabledOption","args","desc","btnItem","name","content","key","startsWith","fn","event","Event","shift","isShowLabel","hideRequiredAsterisk","$index","tableProp"],"mappings":"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"}
@@ -7,8 +7,10 @@ export type DialogOptions = Partial<DialogProps & {
7
7
  scopedSlots: Record<string, (props: any) => VNode>;
8
8
  class: string;
9
9
  onCancel: (reject: any) => void;
10
+ onBeforeCancel: (reject: any) => void;
10
11
  cancelText?: string;
11
12
  onConfirm: (resolve: any) => void;
13
+ onBeforeConfirm: (resolve: any) => void;
12
14
  confirmText?: string;
13
15
  showFooter: boolean;
14
16
  }>;
@@ -18,8 +18,10 @@ const useDialog = (options = {}) => {
18
18
  render,
19
19
  destroyOnClose,
20
20
  onConfirm,
21
+ onBeforeConfirm,
21
22
  confirmText,
22
23
  onCancel,
24
+ onBeforeCancel,
23
25
  cancelText,
24
26
  showFooter = true,
25
27
  ...dialogProps
@@ -44,7 +46,10 @@ const useDialog = (options = {}) => {
44
46
  "class": bem.e("footer")
45
47
  }, [scopedSlots.footerPrepend?.(promiseOptions), vue.createVNode(elementPlus.ElButton, {
46
48
  "size": "default",
47
- "onClick": () => {
49
+ "onClick": async () => {
50
+ if (onBeforeCancel) {
51
+ await onBeforeCancel(reject);
52
+ }
48
53
  if (onCancel) {
49
54
  onCancel(reject);
50
55
  } else {
@@ -56,6 +61,9 @@ const useDialog = (options = {}) => {
56
61
  }), scopedSlots.footerInner?.(promiseOptions), vue.createVNode(elementPlus.ElButton, {
57
62
  "type": "primary",
58
63
  "onClick": async () => {
64
+ if (onBeforeConfirm) {
65
+ await onBeforeConfirm(resolve);
66
+ }
59
67
  if (onConfirm) {
60
68
  onConfirm(resolve);
61
69
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"use-dialog.js","sources":["../../../../../packages/hooks/dialog/use-dialog.tsx"],"sourcesContent":["import { useTemplatePromise } from '../use-template-promise'\nimport { h, getCurrentInstance, render as vRender, inject, nextTick } from 'vue'\nimport type { ComponentInternalInstance } from 'vue'\nimport {\n ElDialog,\n ElButton,\n configProviderContextKey,\n ElConfigProvider,\n} from 'element-plus'\nimport type { VNode } from 'vue'\nimport type { DialogProps } from 'element-plus'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { prepareProps } from '@el-plus/utils/props'\nimport { useLocale } from '../use-locale'\n\nexport type DialogOptions = Partial<\n DialogProps & {\n instance: ComponentInternalInstance | null\n render: (props) => VNode\n scopedSlots: Record<string, (props) => VNode>\n class: string\n onCancel: (reject) => void\n cancelText?: string\n onConfirm: (resolve) => void\n confirmText?: string\n showFooter: boolean\n }\n>\nexport type ExpandDialogOptions = {\n title?: string\n dialogProps?: DialogOptions\n}\nconst bem = createNameSpace('dialog')\n\nexport const useDialog = (options: DialogOptions = {}) => {\n const { t } = useLocale()\n const {\n scopedSlots = {},\n instance,\n render,\n destroyOnClose,\n onConfirm,\n confirmText,\n onCancel,\n cancelText,\n showFooter = true,\n ...dialogProps\n } = options\n\n const Dialog = useTemplatePromise<any>({\n destroy: destroyOnClose,\n render: (promiseOptions, ctx) => {\n // 插槽参数增加promiseOptions\n for (const key in scopedSlots) {\n scopedSlots[key] = scopedSlots[key].bind(null, promiseOptions)\n }\n const { resolve, reject, isResolving } = promiseOptions\n const renderFunc = () => {\n return render\n ? render(promiseOptions)\n : ctx.slots.default?.(promiseOptions)\n }\n const slots: DialogOptions['scopedSlots'] = {}\n if (showFooter) {\n slots.footer = () => (\n <div class={bem.e('footer')}>\n {scopedSlots.footerPrepend?.(promiseOptions)}\n <ElButton\n size=\"default\"\n onClick={() => {\n if (onCancel) {\n onCancel(reject)\n } else {\n reject('cancel')\n }\n }}\n >\n {cancelText || t('ep.dialog.cancel')}\n </ElButton>\n {scopedSlots.footerInner?.(promiseOptions)}\n <ElButton\n type=\"primary\"\n onClick={async () => {\n if (onConfirm) {\n onConfirm(resolve)\n } else {\n resolve('confirm')\n }\n }}\n loading={isResolving}\n >\n {confirmText || t('ep.dialog.confirm')}\n </ElButton>\n {scopedSlots.footerAppend?.(promiseOptions)}\n </div>\n )\n }\n return (\n <ElDialog\n class={bem.b()}\n modelValue={true}\n {...{\n closeOnClickModal: false,\n closeOnPressEscape: false,\n title: t('ep.dialog.title'),\n center: false,\n // 'append-to-body': true,\n beforeClose: () => {\n reject('cancel')\n },\n ...prepareProps(dialogProps, ['modelValue']),\n }}\n v-slots={{\n ...slots,\n ...scopedSlots,\n }}\n >\n {renderFunc()}\n </ElDialog>\n )\n },\n })\n if (render) {\n // const app = createApp(component)\n // Object.assign(app._context, parentInstance.appContext)\n // app.mount(container)\n const container = document.createElement('div')\n // container.setAttribute('id', 'ep-dialog-container')\n const newInstance = instance || getCurrentInstance()\n const config = inject(configProviderContextKey) as any\n // const parentConfig =\n // newInstance?.provides[configProviderContextKey] ||\n // newInstance?.appContext?.provides[configProviderContextKey]\n // const vnode = h(Dialog)\n const vnode = h(\n ElConfigProvider,\n { locale: config?.locale },\n { default: () => h(Dialog) },\n )\n if (newInstance && newInstance.appContext) {\n // 强制继承父应用的全局组件、指令和插件\n vnode.appContext = newInstance.appContext\n }\n nextTick(() => {\n vRender(vnode, container)\n document.body.appendChild(container)\n })\n }\n\n return Dialog\n}\n"],"names":["bem","createNameSpace","useDialog","options","t","useLocale","scopedSlots","instance","render","destroyOnClose","onConfirm","confirmText","onCancel","cancelText","showFooter","dialogProps","Dialog","useTemplatePromise","destroy","promiseOptions","ctx","key","bind","resolve","reject","isResolving","renderFunc","slots","default","footer","_createVNode","e","footerPrepend","ElButton","onClick","footerInner","footerAppend","ElDialog","_mergeProps","b","closeOnClickModal","closeOnPressEscape","title","center","beforeClose","prepareProps","container","document","createElement","newInstance","getCurrentInstance","config","inject","configProviderContextKey","vnode","h","ElConfigProvider","locale","appContext","nextTick","vRender","body","appendChild"],"mappings":"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"}
1
+ {"version":3,"file":"use-dialog.js","sources":["../../../../../packages/hooks/dialog/use-dialog.tsx"],"sourcesContent":["import { useTemplatePromise } from '../use-template-promise'\nimport { h, getCurrentInstance, render as vRender, inject, nextTick } from 'vue'\nimport type { ComponentInternalInstance } from 'vue'\nimport {\n ElDialog,\n ElButton,\n configProviderContextKey,\n ElConfigProvider,\n} from 'element-plus'\nimport type { VNode } from 'vue'\nimport type { DialogProps } from 'element-plus'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { prepareProps } from '@el-plus/utils/props'\nimport { useLocale } from '../use-locale'\n\nexport type DialogOptions = Partial<\n DialogProps & {\n instance: ComponentInternalInstance | null\n render: (props) => VNode\n scopedSlots: Record<string, (props) => VNode>\n class: string\n onCancel: (reject) => void\n onBeforeCancel: (reject) => void\n cancelText?: string\n onConfirm: (resolve) => void\n onBeforeConfirm: (resolve) => void\n confirmText?: string\n showFooter: boolean\n }\n>\nexport type ExpandDialogOptions = {\n title?: string\n dialogProps?: DialogOptions\n}\nconst bem = createNameSpace('dialog')\n\nexport const useDialog = (options: DialogOptions = {}) => {\n const { t } = useLocale()\n const {\n scopedSlots = {},\n instance,\n render,\n destroyOnClose,\n onConfirm,\n onBeforeConfirm,\n confirmText,\n onCancel,\n onBeforeCancel,\n cancelText,\n showFooter = true,\n ...dialogProps\n } = options\n\n const Dialog = useTemplatePromise<any>({\n destroy: destroyOnClose,\n render: (promiseOptions, ctx) => {\n // 插槽参数增加promiseOptions\n for (const key in scopedSlots) {\n scopedSlots[key] = scopedSlots[key].bind(null, promiseOptions)\n }\n const { resolve, reject, isResolving } = promiseOptions\n const renderFunc = () => {\n return render\n ? render(promiseOptions)\n : ctx.slots.default?.(promiseOptions)\n }\n const slots: DialogOptions['scopedSlots'] = {}\n if (showFooter) {\n slots.footer = () => (\n <div class={bem.e('footer')}>\n {scopedSlots.footerPrepend?.(promiseOptions)}\n <ElButton\n size=\"default\"\n onClick={async () => {\n if (onBeforeCancel) {\n await onBeforeCancel(reject)\n }\n if (onCancel) {\n onCancel(reject)\n } else {\n reject('cancel')\n }\n }}\n >\n {cancelText || t('ep.dialog.cancel')}\n </ElButton>\n {scopedSlots.footerInner?.(promiseOptions)}\n <ElButton\n type=\"primary\"\n onClick={async () => {\n if (onBeforeConfirm) {\n await onBeforeConfirm(resolve)\n }\n if (onConfirm) {\n onConfirm(resolve)\n } else {\n resolve('confirm')\n }\n }}\n loading={isResolving}\n >\n {confirmText || t('ep.dialog.confirm')}\n </ElButton>\n {scopedSlots.footerAppend?.(promiseOptions)}\n </div>\n )\n }\n return (\n <ElDialog\n class={bem.b()}\n modelValue={true}\n {...{\n closeOnClickModal: false,\n closeOnPressEscape: false,\n title: t('ep.dialog.title'),\n center: false,\n // 'append-to-body': true,\n beforeClose: () => {\n reject('cancel')\n },\n ...prepareProps(dialogProps, ['modelValue']),\n }}\n v-slots={{\n ...slots,\n ...scopedSlots,\n }}\n >\n {renderFunc()}\n </ElDialog>\n )\n },\n })\n if (render) {\n // const app = createApp(component)\n // Object.assign(app._context, parentInstance.appContext)\n // app.mount(container)\n const container = document.createElement('div')\n // container.setAttribute('id', 'ep-dialog-container')\n const newInstance = instance || getCurrentInstance()\n const config = inject(configProviderContextKey) as any\n // const parentConfig =\n // newInstance?.provides[configProviderContextKey] ||\n // newInstance?.appContext?.provides[configProviderContextKey]\n // const vnode = h(Dialog)\n const vnode = h(\n ElConfigProvider,\n { locale: config?.locale },\n { default: () => h(Dialog) },\n )\n if (newInstance && newInstance.appContext) {\n // 强制继承父应用的全局组件、指令和插件\n vnode.appContext = newInstance.appContext\n }\n nextTick(() => {\n vRender(vnode, container)\n document.body.appendChild(container)\n })\n }\n\n return Dialog\n}\n"],"names":["bem","createNameSpace","useDialog","options","t","useLocale","scopedSlots","instance","render","destroyOnClose","onConfirm","onBeforeConfirm","confirmText","onCancel","onBeforeCancel","cancelText","showFooter","dialogProps","Dialog","useTemplatePromise","destroy","promiseOptions","ctx","key","bind","resolve","reject","isResolving","renderFunc","slots","default","footer","_createVNode","e","footerPrepend","ElButton","footerInner","footerAppend","ElDialog","_mergeProps","b","closeOnClickModal","closeOnPressEscape","title","center","beforeClose","prepareProps","container","document","createElement","newInstance","getCurrentInstance","config","inject","configProviderContextKey","vnode","h","ElConfigProvider","locale","appContext","nextTick","vRender","body","appendChild"],"mappings":"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"}
@@ -5,6 +5,8 @@ type Options = {
5
5
  width?: string;
6
6
  dialogProps?: DialogOptions;
7
7
  formData?: FormProps['model'];
8
+ onBeforeConfirm?: (formData: FormProps['model'], resolve: (value: FormProps['model']) => void) => Promise<void>;
9
+ onBeforeCancel?: (formData: FormProps['model'], resolve: (value: string) => void) => Promise<void>;
8
10
  } & FormProps;
9
11
  export declare const useFormDialog: (options?: Options) => import("el-plus/es").TemplatePromise<any, []>;
10
12
  export {};
@@ -11,22 +11,19 @@ const useFormDialog = (options = {}) => {
11
11
  dialogProps,
12
12
  title,
13
13
  width = "80%",
14
+ onBeforeConfirm,
15
+ onBeforeCancel,
14
16
  ...formProps
15
17
  } = options;
16
18
  const formRef = vue.ref();
17
19
  const isUseComFormData = !formProps.formData;
18
- let formData = isUseComFormData ? vue.reactive({}) : formProps.formData;
19
- const isDestroy = dialogProps?.destroyOnClose;
20
- const resetForm = async () => {
21
- if (isDestroy) {
22
- await formRef.value?.resetFields();
23
- }
24
- };
20
+ let formData;
25
21
  return useDialog.useDialog({
26
22
  class: bem.b(),
27
23
  width,
28
24
  title,
29
25
  render: () => {
26
+ formData = isUseComFormData ? vue.reactive({}) : formProps.formData;
30
27
  return vue.createVNode(index.EpForm, vue.mergeProps({
31
28
  "ref": formRef,
32
29
  "modelValue": formData,
@@ -39,11 +36,15 @@ const useFormDialog = (options = {}) => {
39
36
  },
40
37
  onConfirm: async (resolve) => {
41
38
  await formRef.value.validate();
42
- resolve(isUseComFormData ? JSON.parse(JSON.stringify(formData)) : formData);
43
- resetForm();
39
+ if (onBeforeConfirm) {
40
+ await onBeforeConfirm(formData, resolve);
41
+ }
42
+ return resolve(formData);
44
43
  },
45
44
  onCancel: async (resolve) => {
46
- await resetForm();
45
+ if (onBeforeCancel) {
46
+ await onBeforeCancel(formData, resolve);
47
+ }
47
48
  resolve("cancel");
48
49
  },
49
50
  ...dialogProps
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-dialog.js","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const { dialogProps, title, width = '80%', ...formProps } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData = isUseComFormData ? reactive({}) : formProps.formData // eslint-disable-line\n const isDestroy = dialogProps?.destroyOnClose\n const resetForm = async () => {\n if (isDestroy) {\n await formRef.value?.resetFields()\n }\n }\n return useDialog({\n class: bem.b(),\n width,\n title,\n render: () => {\n return (\n <EpForm\n ref={formRef}\n v-model={formData}\n {...{\n col: 1,\n 'label-width': 'auto',\n ...formProps,\n }}\n />\n )\n },\n onConfirm: async (resolve) => {\n await formRef.value.validate()\n resolve(\n isUseComFormData ? JSON.parse(JSON.stringify(formData)) : formData,\n )\n resetForm()\n },\n onCancel: async (resolve) => {\n await resetForm()\n resolve('cancel')\n },\n ...dialogProps,\n })\n}\n"],"names":["bem","createNameSpace","useFormDialog","options","dialogProps","title","width","formProps","formRef","ref","isUseComFormData","formData","reactive","isDestroy","destroyOnClose","resetForm","value","resetFields","useDialog","class","b","render","_createVNode","EpForm","_mergeProps","$event","col","onConfirm","resolve","validate","JSON","parse","stringify","onCancel"],"mappings":";;;;;;;AAMA,MAAMA,GAAAA,GAAMC,sBAAgB,aAAa,CAAA;AAQlC,MAAMC,aAAAA,GAAgBA,CAACC,OAAAA,GAAmB,EAAC,KAAM;AACtD,EAAA,MAAM;AAAA,IAAEC,WAAAA;AAAAA,IAAaC,KAAAA;AAAAA,IAAOC,KAAAA,GAAQ,KAAA;AAAA,IAAO,GAAGC;AAAAA,GAAU,GAAIJ,OAAAA;AAC5D,EAAA,MAAMK,UAAUC,OAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,WAAWD,gBAAAA,GAAmBE,YAAAA,CAAS,EAAE,IAAIL,SAAAA,CAAUI,QAAAA;AAC3D,EAAA,MAAME,YAAYT,WAAAA,EAAaU,cAAAA;AAC/B,EAAA,MAAMC,YAAY,YAAY;AAC5B,IAAA,IAAIF,SAAAA,EAAW;AACb,MAAA,MAAML,OAAAA,CAAQQ,OAAOC,WAAAA,EAAY;AAAA,IACnC;AAAA,EACF,CAAA;AACA,EAAA,OAAOC,mBAAAA,CAAU;AAAA,IACfC,KAAAA,EAAOnB,IAAIoB,CAAAA,EAAE;AAAA,IACbd,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAgB,QAAQA,MAAM;AACZ,MAAA,OAAAC,eAAAA,CAAAC,cAAAC,cAAAA,CAAA;AAAA,QAAA,KAAA,EAEShB,OAAAA;AAAAA,QAAO,YAAA,EACHG,QAAAA;AAAAA,QAAQ,qBAAA,EAAAc,YAARd,QAAAA,GAAQc;AAAAA,OAAA,EAAA;AAAA,QAEfC,GAAAA,EAAK,CAAA;AAAA,QACL,aAAA,EAAe,MAAA;AAAA,QACf,GAAGnB;AAAAA,OAAS,GAAA,IAAA,CAAA;AAAA,IAIpB,CAAA;AAAA,IACAoB,SAAAA,EAAW,OAAOC,OAAAA,KAAY;AAC5B,MAAA,MAAMpB,OAAAA,CAAQQ,MAAMa,QAAAA,EAAS;AAC7BD,MAAAA,OAAAA,CACElB,gBAAAA,GAAmBoB,KAAKC,KAAAA,CAAMD,IAAAA,CAAKE,UAAUrB,QAAQ,CAAC,IAAIA,QAC5D,CAAA;AACAI,MAAAA,SAAAA,EAAU;AAAA,IACZ,CAAA;AAAA,IACAkB,QAAAA,EAAU,OAAOL,OAAAA,KAAY;AAC3B,MAAA,MAAMb,SAAAA,EAAU;AAChBa,MAAAA,OAAAA,CAAQ,QAAQ,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,GAAGxB;AAAAA,GACJ,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"use-form-dialog.js","sources":["../../../../../packages/hooks/dialog/use-form-dialog.tsx"],"sourcesContent":["import type { DialogOptions } from './use-dialog'\nimport type { FormProps } from '@el-plus/components/form'\nimport EpForm from '@el-plus/components/form'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useDialog } from './use-dialog'\nimport { reactive, ref, toRaw } from 'vue'\nconst bem = createNameSpace('form-dialog')\n\ntype Options = {\n title?: string\n width?: string\n dialogProps?: DialogOptions\n formData?: FormProps['model']\n onBeforeConfirm?: (\n formData: FormProps['model'],\n resolve: (value: FormProps['model']) => void,\n ) => Promise<void>\n onBeforeCancel?: (\n formData: FormProps['model'],\n resolve: (value: string) => void,\n ) => Promise<void>\n} & FormProps\nexport const useFormDialog = (options: Options = {}) => {\n const {\n dialogProps,\n title,\n width = '80%',\n onBeforeConfirm,\n onBeforeCancel,\n ...formProps\n } = options\n const formRef = ref()\n const isUseComFormData = !formProps.formData\n let formData\n return useDialog({\n class: bem.b(),\n width,\n title,\n render: () => {\n formData = isUseComFormData ? reactive({}) : formProps.formData // eslint-disable-line\n return (\n <EpForm\n ref={formRef}\n v-model={formData}\n {...{\n col: 1,\n 'label-width': 'auto',\n ...formProps,\n }}\n />\n )\n },\n onConfirm: async (resolve) => {\n await formRef.value.validate()\n if (onBeforeConfirm) {\n await onBeforeConfirm(formData, resolve)\n }\n return resolve(formData)\n },\n onCancel: async (resolve) => {\n if (onBeforeCancel) {\n await onBeforeCancel(formData, resolve)\n }\n resolve('cancel')\n },\n ...dialogProps,\n })\n}\n"],"names":["bem","createNameSpace","useFormDialog","options","dialogProps","title","width","onBeforeConfirm","onBeforeCancel","formProps","formRef","ref","isUseComFormData","formData","useDialog","class","b","render","reactive","_createVNode","EpForm","_mergeProps","$event","col","onConfirm","resolve","value","validate","onCancel"],"mappings":";;;;;;;AAMA,MAAMA,GAAAA,GAAMC,sBAAgB,aAAa,CAAA;AAgBlC,MAAMC,aAAAA,GAAgBA,CAACC,OAAAA,GAAmB,EAAC,KAAM;AACtD,EAAA,MAAM;AAAA,IACJC,WAAAA;AAAAA,IACAC,KAAAA;AAAAA,IACAC,KAAAA,GAAQ,KAAA;AAAA,IACRC,eAAAA;AAAAA,IACAC,cAAAA;AAAAA,IACA,GAAGC;AAAAA,GACL,GAAIN,OAAAA;AACJ,EAAA,MAAMO,UAAUC,OAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,QAAAA;AACJ,EAAA,OAAOC,mBAAAA,CAAU;AAAA,IACfC,KAAAA,EAAOf,IAAIgB,CAAAA,EAAE;AAAA,IACbV,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAY,QAAQA,MAAM;AACZJ,MAAAA,QAAAA,GAAWD,gBAAAA,GAAmBM,YAAAA,CAAS,EAAE,IAAIT,SAAAA,CAAUI,QAAAA;AACvD,MAAA,OAAAM,eAAAA,CAAAC,cAAAC,cAAAA,CAAA;AAAA,QAAA,KAAA,EAESX,OAAAA;AAAAA,QAAO,YAAA,EACHG,QAAAA;AAAAA,QAAQ,qBAAA,EAAAS,YAART,QAAAA,GAAQS;AAAAA,OAAA,EAAA;AAAA,QAEfC,GAAAA,EAAK,CAAA;AAAA,QACL,aAAA,EAAe,MAAA;AAAA,QACf,GAAGd;AAAAA,OAAS,GAAA,IAAA,CAAA;AAAA,IAIpB,CAAA;AAAA,IACAe,SAAAA,EAAW,OAAOC,OAAAA,KAAY;AAC5B,MAAA,MAAMf,OAAAA,CAAQgB,MAAMC,QAAAA,EAAS;AAC7B,MAAA,IAAIpB,eAAAA,EAAiB;AACnB,QAAA,MAAMA,eAAAA,CAAgBM,UAAUY,OAAO,CAAA;AAAA,MACzC;AACA,MAAA,OAAOA,QAAQZ,QAAQ,CAAA;AAAA,IACzB,CAAA;AAAA,IACAe,QAAAA,EAAU,OAAOH,OAAAA,KAAY;AAC3B,MAAA,IAAIjB,cAAAA,EAAgB;AAClB,QAAA,MAAMA,cAAAA,CAAeK,UAAUY,OAAO,CAAA;AAAA,MACxC;AACAA,MAAAA,OAAAA,CAAQ,QAAQ,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,GAAGrB;AAAAA,GACJ,CAAA;AACH;;;;"}
@@ -6,7 +6,13 @@ var elementPlus = require('element-plus');
6
6
  const elLocaleModules = undefined(
7
7
  "/node_modules/element-plus/es/locale/lang/*.mjs"
8
8
  );
9
- const localeModules = undefined("../locale/lang/*.{mjs,ts}");
9
+ let localeModules = undefined("../locale/lang/*.{mjs,ts}");
10
+ {
11
+ localeModules = undefined(
12
+ "/node_modules/el-plus/es/locale/lang/*.{mjs,ts}"
13
+ // 打包后到vite项目,因为有optimizeDeps,会找不到, 所以要在生产环境下重新判断
14
+ );
15
+ }
10
16
  const TRANSLATER_KEY = /* @__PURE__ */ Symbol("TRANSLATER_KEY");
11
17
  let cachedTranslater = null;
12
18
  const useLocale = () => {
@@ -34,7 +40,10 @@ const useLocale = () => {
34
40
  const provideFn = inSetup2 ? vue.provide : app.provide;
35
41
  return new Promise(async (resolve) => {
36
42
  try {
37
- const basePath = "../locale/lang/";
43
+ let basePath = "../locale/lang/";
44
+ if ("production" === "production") {
45
+ basePath = "/node_modules/el-plus/es/locale/lang/";
46
+ }
38
47
  const ext = "production" === "production" ? ".mjs" : ".ts";
39
48
  const modulePath = basePath + localeLang + ext;
40
49
  let loader = localeModules[modulePath];
@@ -1 +1 @@
1
- {"version":3,"file":"use-locale.js","sources":["../../../../packages/hooks/use-locale.ts"],"sourcesContent":["import {\n ref,\n inject,\n provide,\n getCurrentInstance,\n type App,\n nextTick,\n} from 'vue'\nimport { useLocale as useElLocale } from 'element-plus'\nimport type { Language } from 'element-plus/es/locale'\nconst elLocaleModules = import.meta.glob(\n '/node_modules/element-plus/es/locale/lang/*.mjs',\n)\nconst localeModules = import.meta.glob('../locale/lang/*.{mjs,ts}')\n\nconst TRANSLATER_KEY = Symbol('TRANSLATER_KEY')\nexport type Translater = (key: string) => string\nlet cachedTranslater: Translater | null = null\nexport const useLocale = () => {\n const localeLang = window.hxlang?.toLocaleLowerCase().split('_').join('-')\n const addLangClass = async (lang: string) => {\n await nextTick()\n const el = document.querySelector('html')\n const langclass = 'no-cn'\n if (el && lang !== 'ZH_CN') {\n el.classList.add(langclass)\n }\n }\n const inSetup = !!getCurrentInstance()\n const translater = inSetup ? inject<Translater>(TRANSLATER_KEY) : null\n if (translater) {\n cachedTranslater = translater\n }\n const loadLocale = (app?: App) => {\n const inSetup = !!getCurrentInstance()\n if (!inSetup && !app) {\n return console.error(\n 'app is required when useLocale is called outside of setup',\n )\n }\n const provideFn = inSetup ? provide : app!.provide\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<void>(async (resolve) => {\n try {\n const basePath = '../locale/lang/'\n const ext = process.env.NODE_ENV === 'production' ? '.mjs' : '.ts'\n const modulePath = basePath + localeLang + ext\n let loader = localeModules[modulePath]\n if (!loader) {\n loader = localeModules[basePath + 'en' + ext]\n }\n const module = (await loader()) as { default: Language }\n const { t } = useElLocale(ref(module.default as unknown as Language))\n provideFn(TRANSLATER_KEY, t)\n resolve()\n addLangClass(window.hxlang!)\n } catch (error) {\n console.error(error)\n }\n })\n }\n const loadElLocale = async () => {\n const basePath = '/node_modules/element-plus/es/locale/lang/'\n const ext = '.mjs'\n const modulePath = basePath + localeLang + ext\n let loader = elLocaleModules[modulePath]\n if (!loader) {\n loader = elLocaleModules[basePath + 'en' + ext]\n }\n const module = (await loader()) as { default: Language }\n return module.default\n }\n return {\n loadLocale,\n loadElLocale,\n t: (key) => {\n // // 如果已经有缓存的 translater,直接使用\n if (cachedTranslater) {\n return cachedTranslater(key)\n }\n // const translater = inject<Translater>(TRANSLATER_KEY)\n if (translater) {\n // cachedTranslater = translater // 缓存起来\n return translater(key)\n }\n return key\n },\n }\n}\n"],"names":["nextTick","getCurrentInstance","inject","inSetup","provide","useElLocale","ref"],"mappings":"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"}
1
+ {"version":3,"file":"use-locale.js","sources":["../../../../packages/hooks/use-locale.ts"],"sourcesContent":["import {\n ref,\n inject,\n provide,\n getCurrentInstance,\n type App,\n nextTick,\n} from 'vue'\nimport { useLocale as useElLocale } from 'element-plus'\nimport type { Language } from 'element-plus/es/locale'\nconst elLocaleModules = import.meta.glob(\n '/node_modules/element-plus/es/locale/lang/*.mjs',\n)\nlet localeModules = import.meta.glob('../locale/lang/*.{mjs,ts}')\nif (process.env.NODE_ENV === 'production') {\n localeModules = import.meta.glob(\n '/node_modules/el-plus/es/locale/lang/*.{mjs,ts}', // 打包后到vite项目,因为有optimizeDeps,会找不到, 所以要在生产环境下重新判断\n )\n}\nconst TRANSLATER_KEY = Symbol('TRANSLATER_KEY')\nexport type Translater = (key: string) => string\nlet cachedTranslater: Translater | null = null\nexport const useLocale = () => {\n const localeLang = window.hxlang?.toLocaleLowerCase().split('_').join('-')\n const addLangClass = async (lang: string) => {\n await nextTick()\n const el = document.querySelector('html')\n const langclass = 'no-cn'\n if (el && lang !== 'ZH_CN') {\n el.classList.add(langclass)\n }\n }\n const inSetup = !!getCurrentInstance()\n const translater = inSetup ? inject<Translater>(TRANSLATER_KEY) : null\n if (translater) {\n cachedTranslater = translater\n }\n const loadLocale = (app?: App) => {\n const inSetup = !!getCurrentInstance()\n if (!inSetup && !app) {\n return console.error(\n 'app is required when useLocale is called outside of setup',\n )\n }\n const provideFn = inSetup ? provide : app!.provide\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<void>(async (resolve) => {\n try {\n let basePath = '../locale/lang/'\n if (process.env.NODE_ENV === 'production') {\n basePath = '/node_modules/el-plus/es/locale/lang/'\n }\n const ext = process.env.NODE_ENV === 'production' ? '.mjs' : '.ts'\n const modulePath = basePath + localeLang + ext\n let loader = localeModules[modulePath]\n if (!loader) {\n loader = localeModules[basePath + 'en' + ext]\n }\n const module = (await loader()) as { default: Language }\n const { t } = useElLocale(ref(module.default as unknown as Language))\n provideFn(TRANSLATER_KEY, t)\n resolve()\n addLangClass(window.hxlang!)\n } catch (error) {\n console.error(error)\n }\n })\n }\n const loadElLocale = async () => {\n const basePath = '/node_modules/element-plus/es/locale/lang/'\n const ext = '.mjs'\n const modulePath = basePath + localeLang + ext\n let loader = elLocaleModules[modulePath]\n if (!loader) {\n loader = elLocaleModules[basePath + 'en' + ext]\n }\n const module = (await loader()) as { default: Language }\n return module.default\n }\n return {\n loadLocale,\n loadElLocale,\n t: (key) => {\n // // 如果已经有缓存的 translater,直接使用\n if (cachedTranslater) {\n return cachedTranslater(key)\n }\n // const translater = inject<Translater>(TRANSLATER_KEY)\n if (translater) {\n // cachedTranslater = translater // 缓存起来\n return translater(key)\n }\n return key\n },\n }\n}\n"],"names":["nextTick","getCurrentInstance","inject","inSetup","provide","useElLocale","ref"],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import type { NavigationConfig } from 'el-plus/es/utils';
2
2
  export type PageMode = 'add' | 'edit' | 'browse';
3
- export declare const useNavigation: () => {
3
+ export interface Config {
4
+ onModeChange?: (mode: PageMode) => void;
5
+ }
6
+ export declare const useNavigation: (config?: Config) => {
4
7
  $goto: (r: NavigationConfig) => void;
5
8
  $closeTag: () => void;
6
9
  mode: import("vue").ComputedRef<PageMode>;
7
10
  isBrowse: import("vue").ComputedRef<boolean>;
8
11
  isEdit: import("vue").ComputedRef<boolean>;
9
12
  isAdd: import("vue").ComputedRef<boolean>;
13
+ setMode: (newMode: PageMode, callBack?: (mode: PageMode) => void) => void;
10
14
  };
@@ -23,7 +23,8 @@ function _interopNamespaceDefault(e) {
23
23
 
24
24
  var qs__namespace = /*#__PURE__*/_interopNamespaceDefault(qs);
25
25
 
26
- const useNavigation = () => {
26
+ const useNavigation = (config = {}) => {
27
+ const { onModeChange } = config;
27
28
  const router = vueRouter.useRouter();
28
29
  const route = vueRouter.useRoute();
29
30
  const $goto = (r) => {
@@ -88,13 +89,27 @@ const useNavigation = () => {
88
89
  const isBrowse = vue.computed(() => mode.value === "browse");
89
90
  const isEdit = vue.computed(() => mode.value === "edit");
90
91
  const isAdd = vue.computed(() => mode.value === "add");
92
+ const setMode = (newMode, callBack) => {
93
+ router.replace({
94
+ query: {
95
+ ...route.query,
96
+ mode: newMode
97
+ }
98
+ });
99
+ if (callBack) {
100
+ callBack(newMode);
101
+ } else {
102
+ onModeChange?.(newMode);
103
+ }
104
+ };
91
105
  return {
92
106
  $goto,
93
107
  $closeTag,
94
108
  mode,
95
109
  isBrowse,
96
110
  isEdit,
97
- isAdd
111
+ isAdd,
112
+ setMode
98
113
  };
99
114
  };
100
115
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-navigation.js","sources":["../../../../packages/hooks/use-navigation.ts"],"sourcesContent":["import { useRouter, useRoute } from 'vue-router'\nimport { computed } from 'vue'\nimport type { NavigationConfig } from '@el-plus/utils'\nimport * as qs from 'qs'\nexport type PageMode = 'add' | 'edit' | 'browse'\n\nexport const useNavigation = () => {\n const router = useRouter()\n const route = useRoute()\n /**\n * 打开saas窗口\n * @param id 菜单id\n * @param name 路由模块name, 适用于内部跳转\n * @param title 菜单名称,适用于传外部url跳转\n * @param url 菜单url\n * @param query url参数\n */\n const $goto = (r: NavigationConfig) => {\n const item: NavigationConfig = {\n id: Date.now(),\n name: '',\n url: '',\n }\n const openTab = window.parent.openMenuSelect\n\n if (r.url) {\n item.url = r.url\n item.name = r.name\n if (openTab) {\n openTab(item)\n } else {\n window.open(item.url)\n }\n return\n }\n const routes = router.getRoutes() || []\n\n const projectRootPath = window.location.pathname\n\n const findRoute = (routes, distRoute) => {\n let queen = [...routes]\n\n while (queen.length) {\n const first = queen.shift()\n if (first.children) {\n queen = queen.concat(first.children)\n }\n\n if (first.name == distRoute.name) {\n return first\n }\n }\n }\n const route = findRoute(routes, r)\n\n if (route) {\n item.id = r.id || item.id\n\n item.name =\n r.title ||\n (window.$hxt ? window.$hxt(route.meta.title) : route.meta.title)\n\n item.url = `${projectRootPath}#${route.path}${qs.stringify(r.query, { encode: false })}`\n\n if (openTab) {\n openTab(item)\n } else {\n router.push(r)\n }\n } else {\n console.error('没有找到对应的路由')\n }\n }\n\n const $closeTag = () => {\n if (!window.parent.selectedRouterTags) {\n return\n }\n const currentRouterTagIndex = window.parent.currentRouterTagIndex!\n const preIndex = window.parent.currentRouterTagIndex! - 1\n const currentTag = window.parent.selectedRouterTags[currentRouterTagIndex]\n const preTag = window.parent.selectedRouterTags[preIndex]\n window.parent?.closeTag?.(currentTag)\n window.parent?.openMenuSelect?.(preTag)\n }\n const mode = computed(() => {\n return route.query.mode as PageMode\n })\n const isBrowse = computed(() => mode.value === 'browse')\n const isEdit = computed(() => mode.value === 'edit')\n const isAdd = computed(() => mode.value === 'add')\n return {\n $goto,\n $closeTag,\n mode,\n isBrowse,\n isEdit,\n isAdd,\n }\n}\n"],"names":["useRouter","useRoute","routes","route","qs","computed"],"mappings":"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"}
1
+ {"version":3,"file":"use-navigation.js","sources":["../../../../packages/hooks/use-navigation.ts"],"sourcesContent":["import { useRouter, useRoute } from 'vue-router'\nimport { computed } from 'vue'\nimport type { NavigationConfig } from '@el-plus/utils'\nimport * as qs from 'qs'\nexport type PageMode = 'add' | 'edit' | 'browse'\n\nexport interface Config {\n // mode变化时调用\n onModeChange?: (mode: PageMode) => void\n}\n\nexport const useNavigation = (config: Config = {}) => {\n const { onModeChange } = config\n const router = useRouter()\n const route = useRoute()\n /**\n * 打开saas窗口\n * @param id 菜单id\n * @param name 路由模块name, 适用于内部跳转\n * @param title 菜单名称,适用于传外部url跳转\n * @param url 菜单url\n * @param query url参数\n */\n const $goto = (r: NavigationConfig) => {\n const item: NavigationConfig = {\n id: Date.now(),\n name: '',\n url: '',\n }\n const openTab = window.parent.openMenuSelect\n\n if (r.url) {\n item.url = r.url\n item.name = r.name\n if (openTab) {\n openTab(item)\n } else {\n window.open(item.url)\n }\n return\n }\n const routes = router.getRoutes() || []\n\n const projectRootPath = window.location.pathname\n\n const findRoute = (routes, distRoute) => {\n let queen = [...routes]\n\n while (queen.length) {\n const first = queen.shift()\n if (first.children) {\n queen = queen.concat(first.children)\n }\n\n if (first.name == distRoute.name) {\n return first\n }\n }\n }\n const route = findRoute(routes, r)\n\n if (route) {\n item.id = r.id || item.id\n\n item.name =\n r.title ||\n (window.$hxt ? window.$hxt(route.meta.title) : route.meta.title)\n\n item.url = `${projectRootPath}#${route.path}${qs.stringify(r.query, { encode: false })}`\n\n if (openTab) {\n openTab(item)\n } else {\n router.push(r)\n }\n } else {\n console.error('没有找到对应的路由')\n }\n }\n\n const $closeTag = () => {\n if (!window.parent.selectedRouterTags) {\n return\n }\n const currentRouterTagIndex = window.parent.currentRouterTagIndex!\n const preIndex = window.parent.currentRouterTagIndex! - 1\n const currentTag = window.parent.selectedRouterTags[currentRouterTagIndex]\n const preTag = window.parent.selectedRouterTags[preIndex]\n window.parent?.closeTag?.(currentTag)\n window.parent?.openMenuSelect?.(preTag)\n }\n const mode = computed(() => {\n return route.query.mode as PageMode\n })\n const isBrowse = computed(() => mode.value === 'browse')\n const isEdit = computed(() => mode.value === 'edit')\n const isAdd = computed(() => mode.value === 'add')\n // 修改mode\n const setMode = (newMode: PageMode, callBack?: (mode: PageMode) => void) => {\n router.replace({\n query: {\n ...route.query,\n mode: newMode,\n },\n })\n if (callBack) {\n callBack(newMode)\n } else {\n onModeChange?.(newMode)\n }\n }\n return {\n $goto,\n $closeTag,\n mode,\n isBrowse,\n isEdit,\n isAdd,\n setMode,\n }\n}\n"],"names":["useRouter","useRoute","routes","route","qs","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAM,aAAA,GAAgB,CAAC,MAAA,GAAiB,EAAC,KAAM;AACpD,EAAA,MAAM,EAAE,cAAa,GAAI,MAAA;AACzB,EAAA,MAAM,SAASA,mBAAA,EAAU;AACzB,EAAA,MAAM,QAAQC,kBAAA,EAAS;AASvB,EAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAwB;AACrC,IAAA,MAAM,IAAA,GAAyB;AAAA,MAC7B,EAAA,EAAI,KAAK,GAAA,EAAI;AAAA,MACb,IAAA,EAAM,EAAA;AAAA,MACN,GAAA,EAAK;AAAA,KACP;AACA,IAAA,MAAM,OAAA,GAAU,OAAO,MAAA,CAAO,cAAA;AAE9B,IAAA,IAAI,EAAE,GAAA,EAAK;AACT,MAAA,IAAA,CAAK,MAAM,CAAA,CAAE,GAAA;AACb,MAAA,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA;AACd,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MACd,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,MACtB;AACA,MAAA;AAAA,IACF;AACA,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,SAAA,EAAU,IAAK,EAAC;AAEtC,IAAA,MAAM,eAAA,GAAkB,OAAO,QAAA,CAAS,QAAA;AAExC,IAAA,MAAM,SAAA,GAAY,CAACC,OAAAA,EAAQ,SAAA,KAAc;AACvC,MAAA,IAAI,KAAA,GAAQ,CAAC,GAAGA,OAAM,CAAA;AAEtB,MAAA,OAAO,MAAM,MAAA,EAAQ;AACnB,QAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,EAAM;AAC1B,QAAA,IAAI,MAAM,QAAA,EAAU;AAClB,UAAA,KAAA,GAAQ,KAAA,CAAM,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,QACrC;AAEA,QAAA,IAAI,KAAA,CAAM,IAAA,IAAQ,SAAA,CAAU,IAAA,EAAM;AAChC,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAA;AACA,IAAA,MAAMC,MAAAA,GAAQ,SAAA,CAAU,MAAA,EAAQ,CAAC,CAAA;AAEjC,IAAA,IAAIA,MAAAA,EAAO;AACT,MAAA,IAAA,CAAK,EAAA,GAAK,CAAA,CAAE,EAAA,IAAM,IAAA,CAAK,EAAA;AAEvB,MAAA,IAAA,CAAK,IAAA,GACH,CAAA,CAAE,KAAA,KACD,MAAA,CAAO,IAAA,GAAO,MAAA,CAAO,IAAA,CAAKA,MAAAA,CAAM,IAAA,CAAK,KAAK,CAAA,GAAIA,MAAAA,CAAM,IAAA,CAAK,KAAA,CAAA;AAE5D,MAAA,IAAA,CAAK,GAAA,GAAM,CAAA,EAAG,eAAe,CAAA,CAAA,EAAIA,OAAM,IAAI,CAAA,EAAGC,aAAA,CAAG,SAAA,CAAU,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,KAAA,EAAO,CAAC,CAAA,CAAA;AAEtF,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MACd,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MACf;AAAA,IACF,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,MAAM,wDAAW,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,YAAY,MAAM;AACtB,IAAA,IAAI,CAAC,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB;AACrC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,qBAAA,GAAwB,OAAO,MAAA,CAAO,qBAAA;AAC5C,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,qBAAA,GAAyB,CAAA;AACxD,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,kBAAA,CAAmB,qBAAqB,CAAA;AACzE,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,kBAAA,CAAmB,QAAQ,CAAA;AACxD,IAAA,MAAA,CAAO,MAAA,EAAQ,WAAW,UAAU,CAAA;AACpC,IAAA,MAAA,CAAO,MAAA,EAAQ,iBAAiB,MAAM,CAAA;AAAA,EACxC,CAAA;AACA,EAAA,MAAM,IAAA,GAAOC,aAAS,MAAM;AAC1B,IAAA,OAAO,MAAM,KAAA,CAAM,IAAA;AAAA,EACrB,CAAC,CAAA;AACD,EAAA,MAAM,QAAA,GAAWA,YAAA,CAAS,MAAM,IAAA,CAAK,UAAU,QAAQ,CAAA;AACvD,EAAA,MAAM,MAAA,GAASA,YAAA,CAAS,MAAM,IAAA,CAAK,UAAU,MAAM,CAAA;AACnD,EAAA,MAAM,KAAA,GAAQA,YAAA,CAAS,MAAM,IAAA,CAAK,UAAU,KAAK,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAU,CAAC,OAAA,EAAmB,QAAA,KAAwC;AAC1E,IAAA,MAAA,CAAO,OAAA,CAAQ;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAG,KAAA,CAAM,KAAA;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACD,CAAA;AACD,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,QAAA,CAAS,OAAO,CAAA;AAAA,IAClB,CAAA,MAAO;AACL,MAAA,YAAA,GAAe,OAAO,CAAA;AAAA,IACxB;AAAA,EACF,CAAA;AACA,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version = "0.0.59";
3
+ var version = "0.0.61";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=package.json.js.map