el-plus 0.0.60 → 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 (48) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +54 -34
  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 +54 -34
  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/select/src/select.vue2.mjs +1 -1
  12. package/es/components/select/src/select.vue2.mjs.map +1 -1
  13. package/es/components/select/src/use-select.d.ts +2 -2
  14. package/es/components/select/src/use-select.mjs +20 -18
  15. package/es/components/select/src/use-select.mjs.map +1 -1
  16. package/es/hooks/dialog/use-dialog.d.ts +2 -0
  17. package/es/hooks/dialog/use-dialog.mjs +9 -1
  18. package/es/hooks/dialog/use-dialog.mjs.map +1 -1
  19. package/es/hooks/dialog/use-form-dialog.d.ts +2 -0
  20. package/es/hooks/dialog/use-form-dialog.mjs +11 -10
  21. package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
  22. package/es/hooks/use-locale.mjs +11 -2
  23. package/es/hooks/use-locale.mjs.map +1 -1
  24. package/es/package.json.mjs +1 -1
  25. package/lib/components/form/src/form-item-vue.js +1 -1
  26. package/lib/components/form/src/form-item-vue.js.map +1 -1
  27. package/lib/components/select/src/select.vue2.js +1 -1
  28. package/lib/components/select/src/select.vue2.js.map +1 -1
  29. package/lib/components/select/src/use-select.d.ts +2 -2
  30. package/lib/components/select/src/use-select.js +19 -17
  31. package/lib/components/select/src/use-select.js.map +1 -1
  32. package/lib/hooks/dialog/use-dialog.d.ts +2 -0
  33. package/lib/hooks/dialog/use-dialog.js +9 -1
  34. package/lib/hooks/dialog/use-dialog.js.map +1 -1
  35. package/lib/hooks/dialog/use-form-dialog.d.ts +2 -0
  36. package/lib/hooks/dialog/use-form-dialog.js +11 -10
  37. package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
  38. package/lib/hooks/use-locale.js +11 -2
  39. package/lib/hooks/use-locale.js.map +1 -1
  40. package/lib/package.json.js +1 -1
  41. package/package.json +1 -1
  42. package/theme-chalk/attachment.css +1 -1
  43. package/theme-chalk/buttons.css +1 -1
  44. package/theme-chalk/form.css +1 -1
  45. package/theme-chalk/index.css +1 -1
  46. package/theme-chalk/src/attachment.scss +1 -1
  47. package/theme-chalk/src/buttons.scss +1 -1
  48. package/theme-chalk/src/form.scss +6 -0
@@ -1,4 +1,4 @@
1
- /*! ElPlus v0.0.60 */
1
+ /*! ElPlus v0.0.61 */
2
2
 
3
3
  import { useAttrs, getCurrentInstance, inject, provide, ref, nextTick, defineComponent, computed, createVNode, Fragment, withDirectives, resolveComponent, mergeProps, resolveDirective, useTemplateRef, createTextVNode, h, mergeModels, useModel, createElementBlock, openBlock, normalizeStyle, normalizeClass, unref, createCommentVNode, withCtx, renderSlot, renderList, createBlock, vShow, toDisplayString, reactive, useSlots, watch, onMounted, createSlots, normalizeProps, guardReactiveProps, markRaw, Transition, shallowReactive, isVNode, render, createElementVNode, toRaw } from 'vue';
4
4
  import { buttonProps, useLocale as useLocale$1, ElLoading, ElMessage, ElMessageBox, formProps as formProps$1, formEmits as formEmits$1, ElTooltip, formItemProps as formItemProps$1, ElFormItem, ElForm, ElRow, ElCol, inputProps as inputProps$1, inputEmits as inputEmits$1, configProviderContextKey, ElConfigProvider, ElDialog, ElButton, ElTable, ElIcon, selectProps as selectProps$1, selectEmits as selectEmits$1, ElPageHeader, datePickerProps, linkProps as linkProps$1, ElSkeleton } from 'element-plus';
@@ -199,7 +199,13 @@ const vRepeatClick = {
199
199
  const elLocaleModules = import.meta.glob(
200
200
  "/node_modules/element-plus/es/locale/lang/*.mjs"
201
201
  );
202
- const localeModules = import.meta.glob("../locale/lang/*.{mjs,ts}");
202
+ let localeModules = import.meta.glob("../locale/lang/*.{mjs,ts}");
203
+ if (process.env.NODE_ENV === "production") {
204
+ localeModules = import.meta.glob(
205
+ "/node_modules/el-plus/es/locale/lang/*.{mjs,ts}"
206
+ // 打包后到vite项目,因为有optimizeDeps,会找不到, 所以要在生产环境下重新判断
207
+ );
208
+ }
203
209
  const TRANSLATER_KEY = /* @__PURE__ */ Symbol("TRANSLATER_KEY");
204
210
  let cachedTranslater = null;
205
211
  const useLocale = () => {
@@ -227,7 +233,10 @@ const useLocale = () => {
227
233
  const provideFn = inSetup2 ? provide : app.provide;
228
234
  return new Promise(async (resolve) => {
229
235
  try {
230
- const basePath = "../locale/lang/";
236
+ let basePath = "../locale/lang/";
237
+ if (process.env.NODE_ENV === "production") {
238
+ basePath = "/node_modules/el-plus/es/locale/lang/";
239
+ }
231
240
  const ext = process.env.NODE_ENV === "production" ? ".mjs" : ".ts";
232
241
  const modulePath = basePath + localeLang + ext;
233
242
  let loader = localeModules[modulePath];
@@ -955,7 +964,7 @@ var EpFormItem = /* @__PURE__ */ defineComponent({
955
964
  } = props;
956
965
  return () => {
957
966
  return createVNode(ElFormItem, mergeProps({
958
- "class": [bem$4.b(), prepareClassNames()],
967
+ "class": [bem$4.b(), bem$4.is("hide-label", !props.isShowLabel), prepareClassNames()],
959
968
  "style": prepareStyles()
960
969
  }, {
961
970
  ...prepareProps(formItemProps2, [...expandFormItemPropsKeys]),
@@ -1324,8 +1333,10 @@ const useDialog = (options = {}) => {
1324
1333
  render: render$1,
1325
1334
  destroyOnClose,
1326
1335
  onConfirm,
1336
+ onBeforeConfirm,
1327
1337
  confirmText,
1328
1338
  onCancel,
1339
+ onBeforeCancel,
1329
1340
  cancelText,
1330
1341
  showFooter = true,
1331
1342
  ...dialogProps
@@ -1350,7 +1361,10 @@ const useDialog = (options = {}) => {
1350
1361
  "class": bem$3.e("footer")
1351
1362
  }, [scopedSlots.footerPrepend?.(promiseOptions), createVNode(ElButton, {
1352
1363
  "size": "default",
1353
- "onClick": () => {
1364
+ "onClick": async () => {
1365
+ if (onBeforeCancel) {
1366
+ await onBeforeCancel(reject);
1367
+ }
1354
1368
  if (onCancel) {
1355
1369
  onCancel(reject);
1356
1370
  } else {
@@ -1362,6 +1376,9 @@ const useDialog = (options = {}) => {
1362
1376
  }), scopedSlots.footerInner?.(promiseOptions), createVNode(ElButton, {
1363
1377
  "type": "primary",
1364
1378
  "onClick": async () => {
1379
+ if (onBeforeConfirm) {
1380
+ await onBeforeConfirm(resolve);
1381
+ }
1365
1382
  if (onConfirm) {
1366
1383
  onConfirm(resolve);
1367
1384
  } else {
@@ -1873,22 +1890,19 @@ const useFormDialog = (options = {}) => {
1873
1890
  dialogProps,
1874
1891
  title,
1875
1892
  width = "80%",
1893
+ onBeforeConfirm,
1894
+ onBeforeCancel,
1876
1895
  ...formProps
1877
1896
  } = options;
1878
1897
  const formRef = ref();
1879
1898
  const isUseComFormData = !formProps.formData;
1880
- let formData = isUseComFormData ? reactive({}) : formProps.formData;
1881
- const isDestroy = dialogProps?.destroyOnClose;
1882
- const resetForm = async () => {
1883
- if (isDestroy) {
1884
- await formRef.value?.resetFields();
1885
- }
1886
- };
1899
+ let formData;
1887
1900
  return useDialog({
1888
1901
  class: bem$2.b(),
1889
1902
  width,
1890
1903
  title,
1891
1904
  render: () => {
1905
+ formData = isUseComFormData ? reactive({}) : formProps.formData;
1892
1906
  return createVNode(EpForm, mergeProps({
1893
1907
  "ref": formRef,
1894
1908
  "modelValue": formData,
@@ -1901,11 +1915,15 @@ const useFormDialog = (options = {}) => {
1901
1915
  },
1902
1916
  onConfirm: async (resolve) => {
1903
1917
  await formRef.value.validate();
1904
- resolve(isUseComFormData ? JSON.parse(JSON.stringify(formData)) : formData);
1905
- resetForm();
1918
+ if (onBeforeConfirm) {
1919
+ await onBeforeConfirm(formData, resolve);
1920
+ }
1921
+ return resolve(formData);
1906
1922
  },
1907
1923
  onCancel: async (resolve) => {
1908
- await resetForm();
1924
+ if (onBeforeCancel) {
1925
+ await onBeforeCancel(formData, resolve);
1926
+ }
1909
1927
  resolve("cancel");
1910
1928
  },
1911
1929
  ...dialogProps
@@ -2848,24 +2866,26 @@ function useSelect(props, emit) {
2848
2866
  return item[props.valueKey] === value;
2849
2867
  }) || {};
2850
2868
  };
2851
- const expandAttrs = {
2852
- loading: props.loading || loading?.value,
2853
- remoteMethod: (query) => {
2854
- if (!query) return;
2855
- requestFn({
2856
- $searchValue: query
2857
- });
2858
- },
2859
- onChange(value) {
2860
- emit("change", value, getSelectItem(value));
2861
- },
2862
- onVisibleChange(visible) {
2863
- if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {
2864
- requestFn();
2869
+ const expandAttrs = computed(() => {
2870
+ return {
2871
+ loading: props.loading || loading?.value,
2872
+ remoteMethod: (query) => {
2873
+ if (!query) return;
2874
+ requestFn({
2875
+ $searchValue: query
2876
+ });
2877
+ },
2878
+ onChange(value) {
2879
+ emit("change", value, getSelectItem(value));
2880
+ },
2881
+ onVisibleChange(visible) {
2882
+ if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {
2883
+ requestFn();
2884
+ }
2885
+ emit("visible-change", visible);
2865
2886
  }
2866
- emit("visible-change", visible);
2867
- }
2868
- };
2887
+ };
2888
+ });
2869
2889
  return {
2870
2890
  customOptions,
2871
2891
  loadOptions,
@@ -2900,7 +2920,7 @@ var _sfc_main$6 = /* @__PURE__ */ defineComponent({
2900
2920
  return {
2901
2921
  ...prepareProps(props, ["modelValue", "desc", ...expandSelectPropsKeys]),
2902
2922
  ...prepareEvents(emit, selectEmitsKeys),
2903
- ...expandAttrs
2923
+ ...expandAttrs.value
2904
2924
  };
2905
2925
  });
2906
2926
  loadOptions(value.value, desc.value);
@@ -4145,7 +4165,7 @@ var components = [
4145
4165
  EpUniVue
4146
4166
  ];
4147
4167
 
4148
- var version = "0.0.60";
4168
+ var version = "0.0.61";
4149
4169
 
4150
4170
  var globalProperties = {
4151
4171
  install(app) {
@@ -27,7 +27,7 @@ var EpFormItem = /* @__PURE__ */ defineComponent({
27
27
  } = props;
28
28
  return () => {
29
29
  return createVNode(ElFormItem, mergeProps({
30
- "class": [bem.b(), prepareClassNames()],
30
+ "class": [bem.b(), bem.is("hide-label", !props.isShowLabel), prepareClassNames()],
31
31
  "style": prepareStyles()
32
32
  }, {
33
33
  ...prepareProps(formItemProps2, [...expandFormItemPropsKeys]),
@@ -1 +1 @@
1
- {"version":3,"file":"form-item-vue.mjs","sources":["../../../../../../packages/components/form/src/form-item-vue.tsx"],"sourcesContent":["import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { ElFormItem } from 'element-plus'\n\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, disabled, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <ElFormItem\n class={[bem.b(), prepareClassNames()]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n"],"names":["bem","createNameSpace","name","inheritAttrs","props","formItemProps","setup","emit","attrs","useAttrs","scopedSlots","useFormItemSlots","rules","useFormItemRules","childProps","disabled","_createVNode","ElFormItem","_mergeProps","b","prepareClassNames","prepareStyles","prepareProps","expandFormItemPropsKeys"],"mappings":";;;;;;;AAYA,MAAMA,GAAAA,GAAMC,gBAAgB,WAAW,CAAA;AACvC,iDAA+B;AAAA,EAC7BC,IAAAA,EAAM,YAAA;AAAA,EACNC,YAAAA,EAAc,KAAA;AAAA,EACdC,KAAAA,EAAOC,aAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAO;AAAA,IAAEG;AAAAA,GAAK,EAAG;AAErB,IAAA,MAAMC,QAAQC,QAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAY,GAAIC,iBAAiBP,KAAK,CAAA;AAC9C,IAAA,MAAM;AAAA,MAAEQ;AAAAA,KAAM,GAAIC,iBAAiBT,KAAK,CAAA;AACxC,IAAA,MAAM;AAAA,MAAEA,KAAAA,EAAOU,UAAAA;AAAAA,MAAYC,QAAAA;AAAAA,MAAU,GAAGV;AAAAA,KAAc,GAAID,KAAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAA,OAAAY,WAAAA,CAAAC,YAAAC,UAAAA,CAAA;AAAA,QAAA,SAEW,CAAClB,GAAAA,CAAImB,CAAAA,EAAE,EAAGC,mBAAmB,CAAA;AAAA,QAAC,SAC9BC,aAAAA;AAAc,OAAC,EAAA;AAAA,QAGpB,GAAGC,YAAAA,CAAajB,cAAAA,EAAe,CAAC,GAAGkB,uBAAuB,CAAC,CAAA;AAAA,QAC3DX,KAAAA;AAAAA,QACA,aAAA,EAAeJ,MAAM,kBAAkB;AAAA,OAAC,GAJjCE,WAAW,CAAA;AAAA,IAa1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"form-item-vue.mjs","sources":["../../../../../../packages/components/form/src/form-item-vue.tsx"],"sourcesContent":["import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { ElFormItem } from 'element-plus'\n\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, disabled, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <ElFormItem\n class={[\n bem.b(),\n bem.is('hide-label', !props.isShowLabel),\n prepareClassNames(),\n ]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n"],"names":["bem","createNameSpace","name","inheritAttrs","props","formItemProps","setup","emit","attrs","useAttrs","scopedSlots","useFormItemSlots","rules","useFormItemRules","childProps","disabled","_createVNode","ElFormItem","_mergeProps","b","is","isShowLabel","prepareClassNames","prepareStyles","prepareProps","expandFormItemPropsKeys"],"mappings":";;;;;;;AAYA,MAAMA,GAAAA,GAAMC,gBAAgB,WAAW,CAAA;AACvC,iDAA+B;AAAA,EAC7BC,IAAAA,EAAM,YAAA;AAAA,EACNC,YAAAA,EAAc,KAAA;AAAA,EACdC,KAAAA,EAAOC,aAAAA;AAAAA,EACPC,MAAMF,KAAAA,EAAO;AAAA,IAAEG;AAAAA,GAAK,EAAG;AAErB,IAAA,MAAMC,QAAQC,QAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAY,GAAIC,iBAAiBP,KAAK,CAAA;AAC9C,IAAA,MAAM;AAAA,MAAEQ;AAAAA,KAAM,GAAIC,iBAAiBT,KAAK,CAAA;AACxC,IAAA,MAAM;AAAA,MAAEA,KAAAA,EAAOU,UAAAA;AAAAA,MAAYC,QAAAA;AAAAA,MAAU,GAAGV;AAAAA,KAAc,GAAID,KAAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAA,OAAAY,WAAAA,CAAAC,YAAAC,UAAAA,CAAA;AAAA,QAAA,OAAA,EAEW,CACLlB,GAAAA,CAAImB,CAAAA,EAAE,EACNnB,GAAAA,CAAIoB,EAAAA,CAAG,YAAA,EAAc,CAAChB,KAAAA,CAAMiB,WAAW,CAAA,EACvCC,mBAAmB,CAAA;AAAA,QACpB,SACMC,aAAAA;AAAc,OAAC,EAAA;AAAA,QAGpB,GAAGC,YAAAA,CAAanB,cAAAA,EAAe,CAAC,GAAGoB,uBAAuB,CAAC,CAAA;AAAA,QAC3Db,KAAAA;AAAAA,QACA,aAAA,EAAeJ,MAAM,kBAAkB;AAAA,OAAC,GAJjCE,WAAW,CAAA;AAAA,IAa1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
@@ -31,7 +31,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
31
31
  return {
32
32
  ...prepareProps(props, ["modelValue", "desc", ...expandSelectPropsKeys]),
33
33
  ...prepareEvents(emit, selectEmitsKeys),
34
- ...expandAttrs
34
+ ...expandAttrs.value
35
35
  };
36
36
  });
37
37
  loadOptions(value.value, desc.value);
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue2.mjs","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":["_useModel","_openBlock","_createBlock","_mergeProps","_unref","_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.mjs","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":["_useModel","_openBlock","_createBlock","_mergeProps","_unref","_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
  };
@@ -1,4 +1,4 @@
1
- import { ref } from 'vue';
1
+ import { ref, computed } from 'vue';
2
2
  import { useRequest } from '../../../hooks/use-request.mjs';
3
3
 
4
4
  function useSelect(props, emit) {
@@ -58,24 +58,26 @@ function useSelect(props, emit) {
58
58
  return item[props.valueKey] === value;
59
59
  }) || {};
60
60
  };
61
- const expandAttrs = {
62
- loading: props.loading || loading?.value,
63
- remoteMethod: (query) => {
64
- if (!query) return;
65
- requestFn({
66
- $searchValue: query
67
- });
68
- },
69
- onChange(value) {
70
- emit("change", value, getSelectItem(value));
71
- },
72
- onVisibleChange(visible) {
73
- if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {
74
- requestFn();
61
+ const expandAttrs = computed(() => {
62
+ return {
63
+ loading: props.loading || loading?.value,
64
+ remoteMethod: (query) => {
65
+ if (!query) return;
66
+ requestFn({
67
+ $searchValue: query
68
+ });
69
+ },
70
+ onChange(value) {
71
+ emit("change", value, getSelectItem(value));
72
+ },
73
+ onVisibleChange(visible) {
74
+ if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {
75
+ requestFn();
76
+ }
77
+ emit("visible-change", visible);
75
78
  }
76
- emit("visible-change", visible);
77
- }
78
- };
79
+ };
80
+ });
79
81
  return {
80
82
  customOptions,
81
83
  loadOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.mjs","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":[],"mappings":";;;AAIO,SAAS,SAAA,CACd,OACA,IAAA,EACA;AACA,EAAA,IAAI,SAAA,GAAY,KAAA;AAChB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,UAAA,CAAW;AAAA,IACxC,KAAK,KAAA,CAAM,GAAA;AAAA,IACX,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,aAAa,KAAA,CAAM,MAAA;AAAA,IACnB,KAAA,EAAO;AAAA,MACL,QAAQ,IAAA,EAAM;AAMZ,QAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,UAAA,aAAA,CAAc,KAAA,GAAQ,IAAA;AAAA,QACxB,CAAA,MAAA,IAAW,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AAC3C,UAAA,MAAM,OAAA,GAAU,IAAA;AAChB,UAAA,aAAA,CAAc,KAAA,GAAQ,OAAA,EAAS,IAAA,IAAQ,OAAA,EAAS,QAAQ,EAAC;AAAA,QAC3D,CAAA,MAAO;AACL,UAAA,aAAA,CAAc,QAAQ,EAAC;AAAA,QACzB;AACA,QAAA,SAAA,GAAY,IAAA;AAAA,MACd,CAAA;AAAA,MACA,KAAK,KAAA,EAAO;AACV,QAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,MACrB;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,GAAA,CAAoB,EAAE,CAAA;AAE5C,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,EACA,IAAA,KACG;AACH,IAAA,IAAA,CAAK,KAAA,IAAS,KAAA,KAAU,CAAA,KAAM,IAAA,EAAM;AAClC,MAAA,aAAA,CAAc,KAAA,GAAQ;AAAA,QACpB;AAAA,UACE,CAAC,KAAA,CAAM,QAAQ,GAAG,IAAA;AAAA,UAClB,CAAC,KAAA,CAAM,QAAQ,GAAG;AAAA;AACpB,OACF;AAAA,IACF;AACA,IAAA,IAAI,MAAM,GAAA,EAAK;AACb,MAAA,IAAI,CAAC,KAAA,CAAM,IAAA,IAAQ,CAAC,MAAM,MAAA,EAAQ;AAChC,QAAA,SAAA,EAAW;AAAA,MACb;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,EAAS,MAAA,EAAQ;AAChC,MAAA,aAAA,CAAc,QAAQ,KAAA,CAAM,OAAA;AAAA,IAC9B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAqC;AAC1D,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,MAAA,IAAI,CAAC,aAAA,CAAc,KAAA,EAAO,OAAO,EAAC;AAClC,MAAA,OAAO,aAAA,CAAc,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAuB;AACxD,QAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAC,CAAA,GAAI,EAAA;AAAA,MAC/C,CAAC,CAAA;AAAA,IACH;AACA,IAAA,IAAI,CAAC,aAAA,CAAc,KAAA,EAAO,OAAO,EAAC;AAClC,IAAA,OACE,aAAA,CAAc,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAuB;AAC/C,MAAA,OAAO,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA,KAAM,KAAA;AAAA,IAClC,CAAC,KAAK,EAAC;AAAA,EAEX,CAAA;AACA,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,OAAA,EAAS,KAAA,CAAM,OAAA,IAAW,OAAA,EAAS,KAAA;AAAA,IACnC,YAAA,EAAc,CAAC,KAAA,KAAkB;AAC/B,MAAA,IAAI,CAAC,KAAA,EAAO;AACZ,MAAA,SAAA,CAAW;AAAA,QACT,YAAA,EAAc;AAAA,OACf,CAAA;AAAA,IACH,CAAA;AAAA,IACA,SAAS,KAAA,EAAkC;AACzC,MAAA,IAAA,CAAK,QAAA,EAAU,KAAA,EAAO,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,IAC5C,CAAA;AAAA,IACA,gBAAgB,OAAA,EAAkB;AAChC,MAAA,IAAI,KAAA,CAAM,OAAO,KAAA,CAAM,IAAA,IAAQ,WAAW,CAAC,SAAA,IAAa,CAAC,KAAA,CAAM,MAAA,EAAQ;AACrE,QAAA,SAAA,EAAW;AAAA,MACb;AACA,MAAA,IAAA,CAAK,kBAAkB,OAAO,CAAA;AAAA,IAChC;AAAA,GACF;AACA,EAAA,OAAO;AAAA,IACL,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"use-select.mjs","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":[],"mappings":";;;AAIO,SAAS,SAAA,CACd,OACA,IAAA,EACA;AACA,EAAA,IAAI,SAAA,GAAY,KAAA;AAChB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,UAAA,CAAW;AAAA,IACxC,KAAK,KAAA,CAAM,GAAA;AAAA,IACX,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,aAAa,KAAA,CAAM,MAAA;AAAA,IACnB,KAAA,EAAO;AAAA,MACL,QAAQ,IAAA,EAAM;AAMZ,QAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,UAAA,aAAA,CAAc,KAAA,GAAQ,IAAA;AAAA,QACxB,CAAA,MAAA,IAAW,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AAC3C,UAAA,MAAM,OAAA,GAAU,IAAA;AAChB,UAAA,aAAA,CAAc,KAAA,GAAQ,OAAA,EAAS,IAAA,IAAQ,OAAA,EAAS,QAAQ,EAAC;AAAA,QAC3D,CAAA,MAAO;AACL,UAAA,aAAA,CAAc,QAAQ,EAAC;AAAA,QACzB;AACA,QAAA,SAAA,GAAY,IAAA;AAAA,MACd,CAAA;AAAA,MACA,KAAK,KAAA,EAAO;AACV,QAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,MACrB;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,GAAA,CAAoB,EAAE,CAAA;AAE5C,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,EACA,IAAA,KACG;AACH,IAAA,IAAA,CAAK,KAAA,IAAS,KAAA,KAAU,CAAA,KAAM,IAAA,EAAM;AAClC,MAAA,aAAA,CAAc,KAAA,GAAQ;AAAA,QACpB;AAAA,UACE,CAAC,KAAA,CAAM,QAAQ,GAAG,IAAA;AAAA,UAClB,CAAC,KAAA,CAAM,QAAQ,GAAG;AAAA;AACpB,OACF;AAAA,IACF;AACA,IAAA,IAAI,MAAM,GAAA,EAAK;AACb,MAAA,IAAI,CAAC,KAAA,CAAM,IAAA,IAAQ,CAAC,MAAM,MAAA,EAAQ;AAChC,QAAA,SAAA,EAAW;AAAA,MACb;AAAA,IACF,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,EAAS,MAAA,EAAQ;AAChC,MAAA,aAAA,CAAc,QAAQ,KAAA,CAAM,OAAA;AAAA,IAC9B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAqC;AAC1D,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,MAAA,IAAI,CAAC,aAAA,CAAc,KAAA,EAAO,OAAO,EAAC;AAClC,MAAA,OAAO,aAAA,CAAc,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAuB;AACxD,QAAA,OAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAC,CAAA,GAAI,EAAA;AAAA,MAC/C,CAAC,CAAA;AAAA,IACH;AACA,IAAA,IAAI,CAAC,aAAA,CAAc,KAAA,EAAO,OAAO,EAAC;AAClC,IAAA,OACE,aAAA,CAAc,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAuB;AAC/C,MAAA,OAAO,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA,KAAM,KAAA;AAAA,IAClC,CAAC,KAAK,EAAC;AAAA,EAEX,CAAA;AACA,EAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AACjC,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,KAAA,CAAM,OAAA,IAAW,OAAA,EAAS,KAAA;AAAA,MACnC,YAAA,EAAc,CAAC,KAAA,KAAkB;AAC/B,QAAA,IAAI,CAAC,KAAA,EAAO;AACZ,QAAA,SAAA,CAAW;AAAA,UACT,YAAA,EAAc;AAAA,SACf,CAAA;AAAA,MACH,CAAA;AAAA,MACA,SAAS,KAAA,EAAkC;AACzC,QAAA,IAAA,CAAK,QAAA,EAAU,KAAA,EAAO,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,MAC5C,CAAA;AAAA,MACA,gBAAgB,OAAA,EAAkB;AAChC,QAAA,IAAI,KAAA,CAAM,OAAO,KAAA,CAAM,IAAA,IAAQ,WAAW,CAAC,SAAA,IAAa,CAAC,KAAA,CAAM,MAAA,EAAQ;AACrE,UAAA,SAAA,EAAW;AAAA,QACb;AACA,QAAA,IAAA,CAAK,kBAAkB,OAAO,CAAA;AAAA,MAChC;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AACD,EAAA,OAAO;AAAA,IACL,aAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -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
  }>;
@@ -16,8 +16,10 @@ const useDialog = (options = {}) => {
16
16
  render: render$1,
17
17
  destroyOnClose,
18
18
  onConfirm,
19
+ onBeforeConfirm,
19
20
  confirmText,
20
21
  onCancel,
22
+ onBeforeCancel,
21
23
  cancelText,
22
24
  showFooter = true,
23
25
  ...dialogProps
@@ -42,7 +44,10 @@ const useDialog = (options = {}) => {
42
44
  "class": bem.e("footer")
43
45
  }, [scopedSlots.footerPrepend?.(promiseOptions), createVNode(ElButton, {
44
46
  "size": "default",
45
- "onClick": () => {
47
+ "onClick": async () => {
48
+ if (onBeforeCancel) {
49
+ await onBeforeCancel(reject);
50
+ }
46
51
  if (onCancel) {
47
52
  onCancel(reject);
48
53
  } else {
@@ -54,6 +59,9 @@ const useDialog = (options = {}) => {
54
59
  }), scopedSlots.footerInner?.(promiseOptions), createVNode(ElButton, {
55
60
  "type": "primary",
56
61
  "onClick": async () => {
62
+ if (onBeforeConfirm) {
63
+ await onBeforeConfirm(resolve);
64
+ }
57
65
  if (onConfirm) {
58
66
  onConfirm(resolve);
59
67
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"use-dialog.mjs","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.mjs","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 {};
@@ -9,22 +9,19 @@ const useFormDialog = (options = {}) => {
9
9
  dialogProps,
10
10
  title,
11
11
  width = "80%",
12
+ onBeforeConfirm,
13
+ onBeforeCancel,
12
14
  ...formProps
13
15
  } = options;
14
16
  const formRef = ref();
15
17
  const isUseComFormData = !formProps.formData;
16
- let formData = isUseComFormData ? reactive({}) : formProps.formData;
17
- const isDestroy = dialogProps?.destroyOnClose;
18
- const resetForm = async () => {
19
- if (isDestroy) {
20
- await formRef.value?.resetFields();
21
- }
22
- };
18
+ let formData;
23
19
  return useDialog({
24
20
  class: bem.b(),
25
21
  width,
26
22
  title,
27
23
  render: () => {
24
+ formData = isUseComFormData ? reactive({}) : formProps.formData;
28
25
  return createVNode(EpForm, mergeProps({
29
26
  "ref": formRef,
30
27
  "modelValue": formData,
@@ -37,11 +34,15 @@ const useFormDialog = (options = {}) => {
37
34
  },
38
35
  onConfirm: async (resolve) => {
39
36
  await formRef.value.validate();
40
- resolve(isUseComFormData ? JSON.parse(JSON.stringify(formData)) : formData);
41
- resetForm();
37
+ if (onBeforeConfirm) {
38
+ await onBeforeConfirm(formData, resolve);
39
+ }
40
+ return resolve(formData);
42
41
  },
43
42
  onCancel: async (resolve) => {
44
- await resetForm();
43
+ if (onBeforeCancel) {
44
+ await onBeforeCancel(formData, resolve);
45
+ }
45
46
  resolve("cancel");
46
47
  },
47
48
  ...dialogProps
@@ -1 +1 @@
1
- {"version":3,"file":"use-form-dialog.mjs","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,gBAAgB,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,GAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,WAAWD,gBAAAA,GAAmBE,QAAAA,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,SAAAA,CAAU;AAAA,IACfC,KAAAA,EAAOnB,IAAIoB,CAAAA,EAAE;AAAA,IACbd,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAgB,QAAQA,MAAM;AACZ,MAAA,OAAAC,WAAAA,CAAAC,QAAAC,UAAAA,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.mjs","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,gBAAgB,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,GAAAA,EAAI;AACpB,EAAA,MAAMC,gBAAAA,GAAmB,CAACH,SAAAA,CAAUI,QAAAA;AACpC,EAAA,IAAIA,QAAAA;AACJ,EAAA,OAAOC,SAAAA,CAAU;AAAA,IACfC,KAAAA,EAAOf,IAAIgB,CAAAA,EAAE;AAAA,IACbV,KAAAA;AAAAA,IACAD,KAAAA;AAAAA,IACAY,QAAQA,MAAM;AACZJ,MAAAA,QAAAA,GAAWD,gBAAAA,GAAmBM,QAAAA,CAAS,EAAE,IAAIT,SAAAA,CAAUI,QAAAA;AACvD,MAAA,OAAAM,WAAAA,CAAAC,QAAAC,UAAAA,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;;;;"}
@@ -4,7 +4,13 @@ import { useLocale as useLocale$1 } from 'element-plus';
4
4
  const elLocaleModules = import.meta.glob(
5
5
  "/node_modules/element-plus/es/locale/lang/*.mjs"
6
6
  );
7
- const localeModules = import.meta.glob("../locale/lang/*.{mjs,ts}");
7
+ let localeModules = import.meta.glob("../locale/lang/*.{mjs,ts}");
8
+ {
9
+ localeModules = import.meta.glob(
10
+ "/node_modules/el-plus/es/locale/lang/*.{mjs,ts}"
11
+ // 打包后到vite项目,因为有optimizeDeps,会找不到, 所以要在生产环境下重新判断
12
+ );
13
+ }
8
14
  const TRANSLATER_KEY = /* @__PURE__ */ Symbol("TRANSLATER_KEY");
9
15
  let cachedTranslater = null;
10
16
  const useLocale = () => {
@@ -32,7 +38,10 @@ const useLocale = () => {
32
38
  const provideFn = inSetup2 ? provide : app.provide;
33
39
  return new Promise(async (resolve) => {
34
40
  try {
35
- const basePath = "../locale/lang/";
41
+ let basePath = "../locale/lang/";
42
+ if ("production" === "production") {
43
+ basePath = "/node_modules/el-plus/es/locale/lang/";
44
+ }
36
45
  const ext = "production" === "production" ? ".mjs" : ".ts";
37
46
  const modulePath = basePath + localeLang + ext;
38
47
  let loader = localeModules[modulePath];
@@ -1 +1 @@
1
- {"version":3,"file":"use-locale.mjs","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":["inSetup","useElLocale"],"mappings":"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"}
1
+ {"version":3,"file":"use-locale.mjs","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":["inSetup","useElLocale"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var version = "0.0.60";
1
+ var version = "0.0.61";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=package.json.mjs.map
@@ -31,7 +31,7 @@ var EpFormItem = /* @__PURE__ */ vue.defineComponent({
31
31
  } = props$1;
32
32
  return () => {
33
33
  return vue.createVNode(elementPlus.ElFormItem, vue.mergeProps({
34
- "class": [bem.b(), props.prepareClassNames()],
34
+ "class": [bem.b(), bem.is("hide-label", !props$1.isShowLabel), props.prepareClassNames()],
35
35
  "style": props.prepareStyles()
36
36
  }, {
37
37
  ...props.prepareProps(formItemProps2, [...formItem.expandFormItemPropsKeys]),
@@ -1 +1 @@
1
- {"version":3,"file":"form-item-vue.js","sources":["../../../../../../packages/components/form/src/form-item-vue.tsx"],"sourcesContent":["import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { ElFormItem } from 'element-plus'\n\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, disabled, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <ElFormItem\n class={[bem.b(), prepareClassNames()]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n"],"names":["bem","createNameSpace","name","inheritAttrs","props","formItemProps","setup","emit","attrs","useAttrs","scopedSlots","useFormItemSlots","rules","useFormItemRules","childProps","disabled","_createVNode","ElFormItem","_mergeProps","b","prepareClassNames","prepareStyles","prepareProps","expandFormItemPropsKeys"],"mappings":";;;;;;;;;;;AAYA,MAAMA,GAAAA,GAAMC,sBAAgB,WAAW,CAAA;AACvC,qDAA+B;AAAA,EAC7BC,IAAAA,EAAM,YAAA;AAAA,EACNC,YAAAA,EAAc,KAAA;AAAA,EACdC,KAAAA,EAAOC,sBAAAA;AAAAA,EACPC,MAAMF,OAAAA,EAAO;AAAA,IAAEG;AAAAA,GAAK,EAAG;AAErB,IAAA,MAAMC,QAAQC,YAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAY,GAAIC,6BAAiBP,OAAK,CAAA;AAC9C,IAAA,MAAM;AAAA,MAAEQ;AAAAA,KAAM,GAAIC,6BAAiBT,OAAK,CAAA;AACxC,IAAA,MAAM;AAAA,MAAEA,KAAAA,EAAOU,UAAAA;AAAAA,MAAYC,QAAAA;AAAAA,MAAU,GAAGV;AAAAA,KAAc,GAAID,OAAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAA,OAAAY,eAAAA,CAAAC,wBAAAC,cAAAA,CAAA;AAAA,QAAA,SAEW,CAAClB,GAAAA,CAAImB,CAAAA,EAAE,EAAGC,yBAAmB,CAAA;AAAA,QAAC,SAC9BC,mBAAAA;AAAc,OAAC,EAAA;AAAA,QAGpB,GAAGC,kBAAAA,CAAajB,cAAAA,EAAe,CAAC,GAAGkB,gCAAuB,CAAC,CAAA;AAAA,QAC3DX,KAAAA;AAAAA,QACA,aAAA,EAAeJ,MAAM,kBAAkB;AAAA,OAAC,GAJjCE,WAAW,CAAA;AAAA,IAa1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"form-item-vue.js","sources":["../../../../../../packages/components/form/src/form-item-vue.tsx"],"sourcesContent":["import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { ElFormItem } from 'element-plus'\n\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, disabled, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <ElFormItem\n class={[\n bem.b(),\n bem.is('hide-label', !props.isShowLabel),\n prepareClassNames(),\n ]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n"],"names":["bem","createNameSpace","name","inheritAttrs","props","formItemProps","setup","emit","attrs","useAttrs","scopedSlots","useFormItemSlots","rules","useFormItemRules","childProps","disabled","_createVNode","ElFormItem","_mergeProps","b","is","isShowLabel","prepareClassNames","prepareStyles","prepareProps","expandFormItemPropsKeys"],"mappings":";;;;;;;;;;;AAYA,MAAMA,GAAAA,GAAMC,sBAAgB,WAAW,CAAA;AACvC,qDAA+B;AAAA,EAC7BC,IAAAA,EAAM,YAAA;AAAA,EACNC,YAAAA,EAAc,KAAA;AAAA,EACdC,KAAAA,EAAOC,sBAAAA;AAAAA,EACPC,MAAMF,OAAAA,EAAO;AAAA,IAAEG;AAAAA,GAAK,EAAG;AAErB,IAAA,MAAMC,QAAQC,YAAAA,EAAS;AACvB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAY,GAAIC,6BAAiBP,OAAK,CAAA;AAC9C,IAAA,MAAM;AAAA,MAAEQ;AAAAA,KAAM,GAAIC,6BAAiBT,OAAK,CAAA;AACxC,IAAA,MAAM;AAAA,MAAEA,KAAAA,EAAOU,UAAAA;AAAAA,MAAYC,QAAAA;AAAAA,MAAU,GAAGV;AAAAA,KAAc,GAAID,OAAAA;AAC1D,IAAA,OAAO,MAAM;AACX,MAAA,OAAAY,eAAAA,CAAAC,wBAAAC,cAAAA,CAAA;AAAA,QAAA,OAAA,EAEW,CACLlB,GAAAA,CAAImB,CAAAA,EAAE,EACNnB,GAAAA,CAAIoB,EAAAA,CAAG,YAAA,EAAc,CAAChB,OAAAA,CAAMiB,WAAW,CAAA,EACvCC,yBAAmB,CAAA;AAAA,QACpB,SACMC,mBAAAA;AAAc,OAAC,EAAA;AAAA,QAGpB,GAAGC,kBAAAA,CAAanB,cAAAA,EAAe,CAAC,GAAGoB,gCAAuB,CAAC,CAAA;AAAA,QAC3Db,KAAAA;AAAAA,QACA,aAAA,EAAeJ,MAAM,kBAAkB;AAAA,OAAC,GAJjCE,WAAW,CAAA;AAAA,IAa1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;;;;"}