el-plus 0.0.114 → 0.0.116

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 (258) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +85 -85
  3. package/dist/index.full.js +41 -9
  4. package/dist/index.full.min.js +4 -4
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +4 -4
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +41 -10
  9. package/docs/CHANGELOG.md +5 -5
  10. package/docs/api-examples.md +49 -49
  11. package/docs/components/attachment.md +118 -111
  12. package/docs/components/buttons.md +179 -179
  13. package/docs/components/custom-column.md +70 -70
  14. package/docs/components/date-picker-range.md +61 -61
  15. package/docs/components/dialog.md +104 -104
  16. package/docs/components/footer-info.md +101 -101
  17. package/docs/components/form.md +211 -211
  18. package/docs/components/header.md +117 -117
  19. package/docs/components/input.md +111 -111
  20. package/docs/components/link.md +63 -63
  21. package/docs/components/search-list-page.md +91 -91
  22. package/docs/components/select.md +249 -249
  23. package/docs/components/table.md +145 -145
  24. package/docs/components/title.md +70 -70
  25. package/docs/components/use-choose-dialog.md +114 -114
  26. package/docs/components/use-confirm-dialog.md +86 -86
  27. package/docs/components/use-form-dialog.md +85 -85
  28. package/docs/guide/markdown-examples.md +85 -85
  29. package/docs/hooks/use-navigation.md +131 -131
  30. package/docs/hooks/use-utils.md +162 -162
  31. package/docs/index.md +25 -25
  32. package/docs/overview.md +99 -99
  33. package/docs/pages/detail.md +66 -66
  34. package/docs/pages/list.md +74 -74
  35. package/docs/pages/router.md +151 -151
  36. package/es/components/attachment/index.d.ts +12 -2
  37. package/es/components/attachment/index.mjs +1 -1
  38. package/es/components/attachment/index.mjs.map +1 -1
  39. package/es/components/attachment/src/attachment.d.ts +6 -0
  40. package/es/components/attachment/src/attachment.mjs +7 -1
  41. package/es/components/attachment/src/attachment.mjs.map +1 -1
  42. package/es/components/attachment/src/attachment.vue.d.ts +5 -1
  43. package/es/components/attachment/src/attachment.vue2.mjs +7 -4
  44. package/es/components/attachment/src/attachment.vue2.mjs.map +1 -1
  45. package/es/components/attachment/src/use-attachment.mjs.map +1 -1
  46. package/es/components/buttons/index.mjs.map +1 -1
  47. package/es/components/buttons/src/buttons-vue.mjs.map +1 -1
  48. package/es/components/buttons/src/buttons.mjs.map +1 -1
  49. package/es/components/custom-column/index.mjs.map +1 -1
  50. package/es/components/custom-column/src/custom-column.mjs.map +1 -1
  51. package/es/components/custom-column/src/custom-column.vue2.mjs.map +1 -1
  52. package/es/components/date-picker-range/index.mjs.map +1 -1
  53. package/es/components/date-picker-range/src/date-picker-range.mjs.map +1 -1
  54. package/es/components/date-picker-range/src/date-picker-range.vue2.mjs.map +1 -1
  55. package/es/components/footer-info/index.mjs.map +1 -1
  56. package/es/components/footer-info/src/footer-info.mjs.map +1 -1
  57. package/es/components/footer-info/src/footer-info.vue2.mjs.map +1 -1
  58. package/es/components/form/index.mjs.map +1 -1
  59. package/es/components/form/src/form-item-vue.mjs.map +1 -1
  60. package/es/components/form/src/form-item.mjs.map +1 -1
  61. package/es/components/form/src/form.mjs.map +1 -1
  62. package/es/components/form/src/form.vue2.mjs.map +1 -1
  63. package/es/components/form/src/hooks/use-form-item.mjs.map +1 -1
  64. package/es/components/form/src/hooks/use-form.mjs.map +1 -1
  65. package/es/components/header/index.mjs.map +1 -1
  66. package/es/components/header/src/header.mjs.map +1 -1
  67. package/es/components/header/src/header.vue2.mjs.map +1 -1
  68. package/es/components/header/src/use-header.mjs.map +1 -1
  69. package/es/components/index.mjs +1 -1
  70. package/es/components/input/index.mjs.map +1 -1
  71. package/es/components/input/src/input.mjs.map +1 -1
  72. package/es/components/input/src/input.vue2.mjs.map +1 -1
  73. package/es/components/link/index.mjs.map +1 -1
  74. package/es/components/link/src/link.mjs.map +1 -1
  75. package/es/components/link/src/link.vue2.mjs.map +1 -1
  76. package/es/components/search-list-page/index.mjs.map +1 -1
  77. package/es/components/search-list-page/src/search-list-page.mjs.map +1 -1
  78. package/es/components/search-list-page/src/search-list-page.vue2.mjs.map +1 -1
  79. package/es/components/search-list-page/src/use-search-list-page.mjs.map +1 -1
  80. package/es/components/select/index.mjs.map +1 -1
  81. package/es/components/select/src/select.mjs.map +1 -1
  82. package/es/components/select/src/select.vue2.mjs.map +1 -1
  83. package/es/components/select/src/use-select.mjs.map +1 -1
  84. package/es/components/table/index.mjs.map +1 -1
  85. package/es/components/table/src/table.mjs.map +1 -1
  86. package/es/components/table/src/table.vue2.mjs.map +1 -1
  87. package/es/components/table/src/use-table.mjs.map +1 -1
  88. package/es/components/title/index.mjs.map +1 -1
  89. package/es/components/title/src/title.mjs.map +1 -1
  90. package/es/components/title/src/title.vue2.mjs.map +1 -1
  91. package/es/components/title/src/use-title.mjs.map +1 -1
  92. package/es/components/uni-vue/index.mjs.map +1 -1
  93. package/es/components/uni-vue/src/uni-vue.mjs.map +1 -1
  94. package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
  95. package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
  96. package/es/components.mjs.map +1 -1
  97. package/es/directives/permission/index.mjs.map +1 -1
  98. package/es/directives/repeat-click/index.mjs.map +1 -1
  99. package/es/hooks/dialog/use-choose-dialog.mjs.map +1 -1
  100. package/es/hooks/dialog/use-confirm-dialog.mjs.map +1 -1
  101. package/es/hooks/dialog/use-dialog.mjs.map +1 -1
  102. package/es/hooks/dialog/use-form-dialog.mjs.map +1 -1
  103. package/es/hooks/use-locale.mjs.map +1 -1
  104. package/es/hooks/use-navigation.mjs.map +1 -1
  105. package/es/hooks/use-request.mjs.map +1 -1
  106. package/es/hooks/use-template-promise.mjs.map +1 -1
  107. package/es/hooks/use-utils.mjs.map +1 -1
  108. package/es/index.mjs +1 -1
  109. package/es/index.mjs.map +1 -1
  110. package/es/locale/lang/en.mjs.map +1 -1
  111. package/es/locale/lang/zh-cn.mjs.map +1 -1
  112. package/es/package.json.mjs +1 -1
  113. package/es/plugins/globalProperties.mjs.map +1 -1
  114. package/es/types/global.d.ts +30 -30
  115. package/es/types/index.d.ts +2 -2
  116. package/es/types/utils.d.ts +19 -19
  117. package/es/utils/bem.mjs.map +1 -1
  118. package/es/utils/cookie.mjs.map +1 -1
  119. package/es/utils/dom.mjs.map +1 -1
  120. package/es/utils/env.mjs.map +1 -1
  121. package/es/utils/file.mjs.map +1 -1
  122. package/es/utils/http/core/modules/interceptor.d.ts +4 -3
  123. package/es/utils/http/core/modules/interceptor.mjs +26 -4
  124. package/es/utils/http/core/modules/interceptor.mjs.map +1 -1
  125. package/es/utils/http/core/modules/loading.mjs.map +1 -1
  126. package/es/utils/http/core/preset-interceptors.mjs.map +1 -1
  127. package/es/utils/http/core/request-client.mjs.map +1 -1
  128. package/es/utils/http/core/types.d.ts +4 -1
  129. package/es/utils/http/index.mjs.map +1 -1
  130. package/es/utils/mitt.mjs.map +1 -1
  131. package/es/utils/navigation.mjs.map +1 -1
  132. package/es/utils/props.mjs.map +1 -1
  133. package/es/utils/time.mjs.map +1 -1
  134. package/es/utils/utils.mjs.map +1 -1
  135. package/es/utils/with-install.mjs.map +1 -1
  136. package/global.d.ts +21 -21
  137. package/lib/components/attachment/index.d.ts +12 -2
  138. package/lib/components/attachment/index.js +1 -0
  139. package/lib/components/attachment/index.js.map +1 -1
  140. package/lib/components/attachment/src/attachment.d.ts +6 -0
  141. package/lib/components/attachment/src/attachment.js +7 -0
  142. package/lib/components/attachment/src/attachment.js.map +1 -1
  143. package/lib/components/attachment/src/attachment.vue.d.ts +5 -1
  144. package/lib/components/attachment/src/attachment.vue2.js +6 -3
  145. package/lib/components/attachment/src/attachment.vue2.js.map +1 -1
  146. package/lib/components/attachment/src/use-attachment.js.map +1 -1
  147. package/lib/components/buttons/index.js.map +1 -1
  148. package/lib/components/buttons/src/buttons-vue.js.map +1 -1
  149. package/lib/components/buttons/src/buttons.js.map +1 -1
  150. package/lib/components/custom-column/index.js.map +1 -1
  151. package/lib/components/custom-column/src/custom-column.js.map +1 -1
  152. package/lib/components/custom-column/src/custom-column.vue2.js.map +1 -1
  153. package/lib/components/date-picker-range/index.js.map +1 -1
  154. package/lib/components/date-picker-range/src/date-picker-range.js.map +1 -1
  155. package/lib/components/date-picker-range/src/date-picker-range.vue2.js.map +1 -1
  156. package/lib/components/footer-info/index.js.map +1 -1
  157. package/lib/components/footer-info/src/footer-info.js.map +1 -1
  158. package/lib/components/footer-info/src/footer-info.vue2.js.map +1 -1
  159. package/lib/components/form/index.js.map +1 -1
  160. package/lib/components/form/src/form-item-vue.js.map +1 -1
  161. package/lib/components/form/src/form-item.js.map +1 -1
  162. package/lib/components/form/src/form.js.map +1 -1
  163. package/lib/components/form/src/form.vue2.js.map +1 -1
  164. package/lib/components/form/src/hooks/use-form-item.js.map +1 -1
  165. package/lib/components/form/src/hooks/use-form.js.map +1 -1
  166. package/lib/components/header/index.js.map +1 -1
  167. package/lib/components/header/src/header.js.map +1 -1
  168. package/lib/components/header/src/header.vue2.js.map +1 -1
  169. package/lib/components/header/src/use-header.js.map +1 -1
  170. package/lib/components/index.js +1 -0
  171. package/lib/components/index.js.map +1 -1
  172. package/lib/components/input/index.js.map +1 -1
  173. package/lib/components/input/src/input.js.map +1 -1
  174. package/lib/components/input/src/input.vue2.js.map +1 -1
  175. package/lib/components/link/index.js.map +1 -1
  176. package/lib/components/link/src/link.js.map +1 -1
  177. package/lib/components/link/src/link.vue2.js.map +1 -1
  178. package/lib/components/search-list-page/index.js.map +1 -1
  179. package/lib/components/search-list-page/src/search-list-page.js.map +1 -1
  180. package/lib/components/search-list-page/src/search-list-page.vue2.js.map +1 -1
  181. package/lib/components/search-list-page/src/use-search-list-page.js.map +1 -1
  182. package/lib/components/select/index.js.map +1 -1
  183. package/lib/components/select/src/select.js.map +1 -1
  184. package/lib/components/select/src/select.vue2.js.map +1 -1
  185. package/lib/components/select/src/use-select.js.map +1 -1
  186. package/lib/components/table/index.js.map +1 -1
  187. package/lib/components/table/src/table.js.map +1 -1
  188. package/lib/components/table/src/table.vue2.js.map +1 -1
  189. package/lib/components/table/src/use-table.js.map +1 -1
  190. package/lib/components/title/index.js.map +1 -1
  191. package/lib/components/title/src/title.js.map +1 -1
  192. package/lib/components/title/src/title.vue2.js.map +1 -1
  193. package/lib/components/title/src/use-title.js.map +1 -1
  194. package/lib/components/uni-vue/index.js.map +1 -1
  195. package/lib/components/uni-vue/src/uni-vue.js.map +1 -1
  196. package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
  197. package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
  198. package/lib/components.js.map +1 -1
  199. package/lib/directives/permission/index.js.map +1 -1
  200. package/lib/directives/repeat-click/index.js.map +1 -1
  201. package/lib/hooks/dialog/use-choose-dialog.js.map +1 -1
  202. package/lib/hooks/dialog/use-confirm-dialog.js.map +1 -1
  203. package/lib/hooks/dialog/use-dialog.js.map +1 -1
  204. package/lib/hooks/dialog/use-form-dialog.js.map +1 -1
  205. package/lib/hooks/use-locale.js.map +1 -1
  206. package/lib/hooks/use-navigation.js.map +1 -1
  207. package/lib/hooks/use-request.js.map +1 -1
  208. package/lib/hooks/use-template-promise.js.map +1 -1
  209. package/lib/hooks/use-utils.js.map +1 -1
  210. package/lib/index.js +1 -0
  211. package/lib/index.js.map +1 -1
  212. package/lib/locale/lang/en.js.map +1 -1
  213. package/lib/locale/lang/zh-cn.js.map +1 -1
  214. package/lib/package.json.js +1 -1
  215. package/lib/plugins/globalProperties.js.map +1 -1
  216. package/lib/types/global.d.ts +30 -30
  217. package/lib/types/index.d.ts +2 -2
  218. package/lib/types/utils.d.ts +19 -19
  219. package/lib/utils/bem.js.map +1 -1
  220. package/lib/utils/cookie.js.map +1 -1
  221. package/lib/utils/dom.js.map +1 -1
  222. package/lib/utils/env.js.map +1 -1
  223. package/lib/utils/file.js.map +1 -1
  224. package/lib/utils/http/core/modules/interceptor.d.ts +4 -3
  225. package/lib/utils/http/core/modules/interceptor.js +26 -4
  226. package/lib/utils/http/core/modules/interceptor.js.map +1 -1
  227. package/lib/utils/http/core/modules/loading.js.map +1 -1
  228. package/lib/utils/http/core/preset-interceptors.js.map +1 -1
  229. package/lib/utils/http/core/request-client.js.map +1 -1
  230. package/lib/utils/http/core/types.d.ts +4 -1
  231. package/lib/utils/http/index.js.map +1 -1
  232. package/lib/utils/mitt.js.map +1 -1
  233. package/lib/utils/navigation.js.map +1 -1
  234. package/lib/utils/props.js.map +1 -1
  235. package/lib/utils/time.js.map +1 -1
  236. package/lib/utils/utils.js.map +1 -1
  237. package/lib/utils/with-install.js.map +1 -1
  238. package/package.json +1 -1
  239. package/theme-chalk/src/attachment.scss +39 -39
  240. package/theme-chalk/src/base.scss +2 -2
  241. package/theme-chalk/src/buttons.scss +22 -22
  242. package/theme-chalk/src/common/common.scss +7 -7
  243. package/theme-chalk/src/common/transition.scss +9 -9
  244. package/theme-chalk/src/custom-column.scss +55 -55
  245. package/theme-chalk/src/dialog.scss +62 -62
  246. package/theme-chalk/src/footer-info.scss +18 -18
  247. package/theme-chalk/src/form.scss +80 -80
  248. package/theme-chalk/src/header.scss +19 -19
  249. package/theme-chalk/src/index.scss +15 -15
  250. package/theme-chalk/src/link.scss +5 -5
  251. package/theme-chalk/src/mixins/config.scss +3 -3
  252. package/theme-chalk/src/mixins/mixins.scss +37 -37
  253. package/theme-chalk/src/search-list-page.scss +22 -22
  254. package/theme-chalk/src/select.scss +10 -10
  255. package/theme-chalk/src/table.scss +91 -91
  256. package/theme-chalk/src/tabs.scss +55 -55
  257. package/theme-chalk/src/title.scss +52 -52
  258. package/theme-chalk/src/uni-vue.scss +10 -10
@@ -1,4 +1,4 @@
1
- /*! ElPlus v0.0.114 */
1
+ /*! ElPlus v0.0.116 */
2
2
 
3
3
  import { useAttrs, getCurrentInstance, inject, provide, ref, nextTick, defineComponent, computed, createVNode, Fragment, withDirectives, resolveComponent, mergeProps, resolveDirective, useTemplateRef, reactive, onBeforeUpdate, createTextVNode, h, mergeModels, useModel, createElementBlock, openBlock, normalizeStyle, normalizeClass, unref, createCommentVNode, withCtx, renderSlot, renderList, createBlock, vShow, toDisplayString, useSlots, watch, createSlots, normalizeProps, guardReactiveProps, markRaw, Transition, shallowReactive, isVNode, render, createElementVNode, toRaw, onMounted } 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';
@@ -455,14 +455,36 @@ class InterceptorManager {
455
455
  addRequestInterceptor({
456
456
  fulfilled,
457
457
  rejected
458
- } = defaultRequestInterceptorConfig) {
459
- this.axiosInstance.interceptors.request.use(fulfilled, rejected);
458
+ } = defaultRequestInterceptorConfig, options) {
459
+ if (options?.prepend) {
460
+ this.prependInterceptor("request", fulfilled, rejected);
461
+ } else {
462
+ this.axiosInstance.interceptors.request.use(fulfilled, rejected);
463
+ }
460
464
  }
461
465
  addResponseInterceptor({
462
466
  fulfilled,
463
467
  rejected
464
- } = defaultResponseInterceptorConfig) {
465
- this.axiosInstance.interceptors.response.use(fulfilled, rejected);
468
+ } = defaultResponseInterceptorConfig, options) {
469
+ if (options?.prepend) {
470
+ this.prependInterceptor("response", fulfilled, rejected);
471
+ } else {
472
+ this.axiosInstance.interceptors.response.use(fulfilled, rejected);
473
+ }
474
+ }
475
+ /**
476
+ * 插入到拦截器链头部(先于已注册的拦截器执行)。
477
+ * axios 拦截器按注册顺序执行且未提供前插 API,
478
+ * 此处直接 unshift 到其内部 handlers 数组,结构与 use() 注册的一致(axios 1.x 稳定结构)
479
+ */
480
+ prependInterceptor(type, fulfilled, rejected) {
481
+ const manager = this.axiosInstance.interceptors[type];
482
+ manager.handlers.unshift({
483
+ fulfilled,
484
+ rejected,
485
+ synchronous: false,
486
+ runWhen: null
487
+ });
466
488
  }
467
489
  }
468
490
 
@@ -3544,6 +3566,12 @@ const attachmentProps = {
3544
3566
  type: String
3545
3567
  }
3546
3568
  };
3569
+ const attachmentEmits = {
3570
+ // 确认
3571
+ confirm: (data) => true,
3572
+ // 取消
3573
+ cancel: () => true
3574
+ };
3547
3575
 
3548
3576
  const getFullUrl = (filePath) => {
3549
3577
  return filePath.indexOf("hongxinshop.com") > -1 ? filePath : `${window.location.protocol}//${getEnv() === "local" ? `${getLocationEnv()}-hxjf.hongxinshop.com` : window.location.host}/image/${filePath}`;
@@ -3823,11 +3851,12 @@ var _sfc_main$5 = /* @__PURE__ */ defineComponent({
3823
3851
  "modelValue": {},
3824
3852
  "modelModifiers": {}
3825
3853
  }),
3826
- emits: ["update:modelValue"],
3827
- setup(__props, { expose: __expose }) {
3854
+ emits: /* @__PURE__ */ mergeModels(attachmentEmits, ["update:modelValue"]),
3855
+ setup(__props, { expose: __expose, emit: __emit }) {
3828
3856
  const { t } = useLocale();
3829
3857
  const bem = createNameSpace("attachment");
3830
3858
  const props = __props;
3859
+ const emit = __emit;
3831
3860
  const modelValue = useModel(__props, "modelValue");
3832
3861
  const {
3833
3862
  columns,
@@ -3855,10 +3884,12 @@ var _sfc_main$5 = /* @__PURE__ */ defineComponent({
3855
3884
  ),
3856
3885
  templatePromiseClass: bem.e("promise"),
3857
3886
  onConfirm: async (resolve) => {
3858
- onConfirm(resolve);
3887
+ await onConfirm(resolve);
3888
+ emit("confirm", modelValue.value);
3859
3889
  },
3860
3890
  onCancel: (resolve) => {
3861
3891
  onCancel(resolve);
3892
+ emit("cancel");
3862
3893
  }
3863
3894
  });
3864
3895
  const open = AttachmentDialog.open;
@@ -4555,7 +4586,7 @@ var components = [
4555
4586
  EpFooterInfo
4556
4587
  ];
4557
4588
 
4558
- var version = "0.0.114";
4589
+ var version = "0.0.116";
4559
4590
 
4560
4591
  var globalProperties = {
4561
4592
  install(app) {
@@ -4708,4 +4739,4 @@ const plugin = {
4708
4739
  version
4709
4740
  };
4710
4741
 
4711
- export { EpAttachment, EpButtons, EpCustomColumn, EpDatePickerRange, EpFooterInfo, EpForm, EpFormItem, EpHeader, EpInput, EpLink, EpSearchListPage, EpSelect, EpTable, EpTitle, EpUniVue, attachmentProps, buttonsProps, componentType, customColumnEmits, customColumnProps, datePickerRangeEmits, datePickerRangeProps, plugin as default, defaultFields, expandFormItemPropsKeys, expandFormPropsKeys, expandSelectPropsKeys, expandTablePropsKeys, footerInfoProps, formEmits, formEmitsKeys, formItemProps, formProps, headerEmits, headerProps, inheritSelectProps, inputEmits, inputEmitsKeys, inputProps, install, linkProps, searchListPageEmits, searchListPageProps, selectEmits, selectEmitsKeys, selectProps, tableEmits, tableEmitsKeys, tableProps, titleEmits, titleProps, uniVueProps, useChooseDialog, useConfirmDialog, useDialog, useFormDialog, useLocale, useNavigation, useRequest, useTemplatePromise, useUtils, vPermisson as vPermission, vRepeatClick };
4742
+ export { EpAttachment, EpButtons, EpCustomColumn, EpDatePickerRange, EpFooterInfo, EpForm, EpFormItem, EpHeader, EpInput, EpLink, EpSearchListPage, EpSelect, EpTable, EpTitle, EpUniVue, attachmentEmits, attachmentProps, buttonsProps, componentType, customColumnEmits, customColumnProps, datePickerRangeEmits, datePickerRangeProps, plugin as default, defaultFields, expandFormItemPropsKeys, expandFormPropsKeys, expandSelectPropsKeys, expandTablePropsKeys, footerInfoProps, formEmits, formEmitsKeys, formItemProps, formProps, headerEmits, headerProps, inheritSelectProps, inputEmits, inputEmitsKeys, inputProps, install, linkProps, searchListPageEmits, searchListPageProps, selectEmits, selectEmitsKeys, selectProps, tableEmits, tableEmitsKeys, tableProps, titleEmits, titleProps, uniVueProps, useChooseDialog, useConfirmDialog, useDialog, useFormDialog, useLocale, useNavigation, useRequest, useTemplatePromise, useUtils, vPermisson as vPermission, vRepeatClick };
package/docs/CHANGELOG.md CHANGED
@@ -1,5 +1,5 @@
1
- # docs
2
-
3
- ## 1.0.2
4
-
5
- ## 1.0.1
1
+ # docs
2
+
3
+ ## 1.0.2
4
+
5
+ ## 1.0.1
@@ -1,49 +1,49 @@
1
- ---
2
- outline: deep
3
- ---
4
-
5
- # Runtime API Examples
6
-
7
- This page demonstrates usage of some of the runtime APIs provided by VitePress.
8
-
9
- The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
10
-
11
- ```md
12
- <script setup>
13
- import { useData } from 'vitepress'
14
-
15
- const { theme, page, frontmatter } = useData()
16
- </script>
17
-
18
- ## Results
19
-
20
- ### Theme Data
21
- <pre>{{ theme }}</pre>
22
-
23
- ### Page Data
24
- <pre>{{ page }}</pre>
25
-
26
- ### Page Frontmatter
27
- <pre>{{ frontmatter }}</pre>
28
- ```
29
-
30
- <script setup>
31
- import { useData } from 'vitepress'
32
-
33
- const { site, theme, page, frontmatter } = useData()
34
- </script>
35
-
36
- ## Results
37
-
38
- ### Theme Data
39
- <pre>{{ theme }}</pre>
40
-
41
- ### Page Data
42
- <pre>{{ page }}</pre>
43
-
44
- ### Page Frontmatter
45
- <pre>{{ frontmatter }}</pre>
46
-
47
- ## More
48
-
49
- Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).
1
+ ---
2
+ outline: deep
3
+ ---
4
+
5
+ # Runtime API Examples
6
+
7
+ This page demonstrates usage of some of the runtime APIs provided by VitePress.
8
+
9
+ The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
10
+
11
+ ```md
12
+ <script setup>
13
+ import { useData } from 'vitepress'
14
+
15
+ const { theme, page, frontmatter } = useData()
16
+ </script>
17
+
18
+ ## Results
19
+
20
+ ### Theme Data
21
+ <pre>{{ theme }}</pre>
22
+
23
+ ### Page Data
24
+ <pre>{{ page }}</pre>
25
+
26
+ ### Page Frontmatter
27
+ <pre>{{ frontmatter }}</pre>
28
+ ```
29
+
30
+ <script setup>
31
+ import { useData } from 'vitepress'
32
+
33
+ const { site, theme, page, frontmatter } = useData()
34
+ </script>
35
+
36
+ ## Results
37
+
38
+ ### Theme Data
39
+ <pre>{{ theme }}</pre>
40
+
41
+ ### Page Data
42
+ <pre>{{ page }}</pre>
43
+
44
+ ### Page Frontmatter
45
+ <pre>{{ frontmatter }}</pre>
46
+
47
+ ## More
48
+
49
+ Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).
@@ -1,111 +1,118 @@
1
- # EpAttachment 附件管理
2
-
3
- 附件上传和管理组件,支持对话框和内嵌两种模式。
4
-
5
- ## 基本用法
6
-
7
- ```vue
8
- <template>
9
- <EpAttachment v-model="fileList" />
10
- </template>
11
-
12
- <script setup>
13
- import { ref } from 'vue'
14
-
15
- const fileList = ref([])
16
- </script>
17
- ```
18
-
19
- ## Props
20
-
21
- | 属性 | 说明 | 类型 | 默认值 |
22
- |------|------|------|--------|
23
- | v-model | 附件列表 | `array` | `[]` |
24
- | mode | 页面模式 | `'add' \| 'edit' \| 'view'` | - |
25
- | openType | 展示模式 | `'dialog' \| 'normal'` | `'dialog'` |
26
- | isType | 是否需要类型 | `boolean` | `true` |
27
- | isNote | 是否需要备注 | `boolean` | `false` |
28
- | isShowOpenDialogButton | 显示打开弹窗按钮 | `boolean` | `false` |
29
- | formatColumns | 格式化列配置 | [`TableColumn[]`](./table.md#tablecolumn-配置) | `[]` |
30
- | beforeAdd | 添加前校验 | `(fileItem) => boolean` | - |
31
- | permission | 权限标识 | `string` | - |
32
-
33
- ## 在 Form 中使用
34
-
35
- ```tsx
36
- const formItemList = [
37
- {
38
- col: 24,
39
- type: 'EpAttachment',
40
- props: {
41
- modelValue: formData.fileList,
42
- openType: 'normal',
43
- formatColumns: [
44
- {
45
- prop: 'type',
46
- props: {
47
- options: [
48
- { label: '图片', value: 0 },
49
- { label: '普通附件', value: 2 },
50
- ],
51
- },
52
- },
53
- ],
54
- },
55
- },
56
- ]
57
- ```
58
-
59
- ## 配合 EpHeader 使用
60
-
61
- ```vue
62
- <template>
63
- <EpHeader
64
- :buttons="headerButtons"
65
- is-show-attachment-button
66
- :file-list="formData.fileList"
67
- :attachment-props="attachmentProps"
68
- />
69
- </template>
70
-
71
- <script setup>
72
- const attachmentProps = {
73
- formatColumns: [
74
- {
75
- prop: 'type',
76
- props: {
77
- options: [
78
- { label: '图片', value: 0 },
79
- { label: '附件', value: 2 },
80
- ],
81
- },
82
- },
83
- ],
84
- }
85
- </script>
86
- ```
87
-
88
- ## 内嵌模式
89
-
90
- ```tsx
91
- {
92
- type: 'EpAttachment',
93
- props: {
94
- openType: 'normal', // 内嵌模式,直接显示附件表格
95
- modelValue: formData.fileList,
96
- },
97
- }
98
- ```
99
-
100
- ## 对话框模式
101
-
102
- ```tsx
103
- {
104
- type: 'EpAttachment',
105
- props: {
106
- openType: 'dialog', // 对话框模式,点击按钮打开
107
- isShowOpenDialogButton: true,
108
- modelValue: formData.fileList,
109
- },
110
- }
111
- ```
1
+ # EpAttachment 附件管理
2
+
3
+ 附件上传和管理组件,支持对话框和内嵌两种模式。
4
+
5
+ ## 基本用法
6
+
7
+ ```vue
8
+ <template>
9
+ <EpAttachment v-model="fileList" />
10
+ </template>
11
+
12
+ <script setup>
13
+ import { ref } from 'vue'
14
+
15
+ const fileList = ref([])
16
+ </script>
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 说明 | 类型 | 默认值 |
22
+ |------|------|------|--------|
23
+ | v-model | 附件列表 | `array` | `[]` |
24
+ | mode | 页面模式 | `'add' \| 'edit' \| 'view'` | - |
25
+ | openType | 展示模式 | `'dialog' \| 'normal'` | `'dialog'` |
26
+ | isType | 是否需要类型 | `boolean` | `true` |
27
+ | isNote | 是否需要备注 | `boolean` | `false` |
28
+ | isShowOpenDialogButton | 显示打开弹窗按钮 | `boolean` | `false` |
29
+ | formatColumns | 格式化列配置 | [`TableColumn[]`](./table.md#tablecolumn-配置) | `[]` |
30
+ | beforeAdd | 添加前校验 | `(fileItem) => boolean` | - |
31
+ | permission | 权限标识 | `string` | - |
32
+
33
+ ## Events
34
+
35
+ | 事件名 | 说明 | 回调参数 |
36
+ |------|------|------|
37
+ | confirm | 对话框确认时触发(校验通过后) | `(data: Record<string, any>[])` 当前附件列表 |
38
+ | cancel | 对话框取消时触发 | - |
39
+
40
+ ## 在 Form 中使用
41
+
42
+ ```tsx
43
+ const formItemList = [
44
+ {
45
+ col: 24,
46
+ type: 'EpAttachment',
47
+ props: {
48
+ modelValue: formData.fileList,
49
+ openType: 'normal',
50
+ formatColumns: [
51
+ {
52
+ prop: 'type',
53
+ props: {
54
+ options: [
55
+ { label: '图片', value: 0 },
56
+ { label: '普通附件', value: 2 },
57
+ ],
58
+ },
59
+ },
60
+ ],
61
+ },
62
+ },
63
+ ]
64
+ ```
65
+
66
+ ## 配合 EpHeader 使用
67
+
68
+ ```vue
69
+ <template>
70
+ <EpHeader
71
+ :buttons="headerButtons"
72
+ is-show-attachment-button
73
+ :file-list="formData.fileList"
74
+ :attachment-props="attachmentProps"
75
+ />
76
+ </template>
77
+
78
+ <script setup>
79
+ const attachmentProps = {
80
+ formatColumns: [
81
+ {
82
+ prop: 'type',
83
+ props: {
84
+ options: [
85
+ { label: '图片', value: 0 },
86
+ { label: '附件', value: 2 },
87
+ ],
88
+ },
89
+ },
90
+ ],
91
+ }
92
+ </script>
93
+ ```
94
+
95
+ ## 内嵌模式
96
+
97
+ ```tsx
98
+ {
99
+ type: 'EpAttachment',
100
+ props: {
101
+ openType: 'normal', // 内嵌模式,直接显示附件表格
102
+ modelValue: formData.fileList,
103
+ },
104
+ }
105
+ ```
106
+
107
+ ## 对话框模式
108
+
109
+ ```tsx
110
+ {
111
+ type: 'EpAttachment',
112
+ props: {
113
+ openType: 'dialog', // 对话框模式,点击按钮打开
114
+ isShowOpenDialogButton: true,
115
+ modelValue: formData.fileList,
116
+ },
117
+ }
118
+ ```