el-plus 0.0.87 → 0.0.89

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 (38) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.full.js +61 -45
  3. package/dist/index.full.min.js +4 -4
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +4 -4
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +57 -43
  8. package/docs/components/buttons.md +66 -19
  9. package/docs/components/form.md +24 -5
  10. package/docs/components/header.md +23 -0
  11. package/docs/components/search-list-page.md +11 -1
  12. package/docs/components/table.md +2 -1
  13. package/docs/components/use-form-dialog.md +4 -5
  14. package/docs/hooks/use-navigation.md +131 -0
  15. package/docs/hooks/use-utils.md +144 -0
  16. package/docs/index.md +11 -11
  17. package/docs/overview.md +99 -0
  18. package/docs/pages/detail.md +1 -1
  19. package/docs/pages/list.md +1 -1
  20. package/docs/pages/router.md +151 -0
  21. package/es/components/uni-vue/index.d.ts +7 -17
  22. package/es/components/uni-vue/src/uni-vue.vue.d.ts +3 -7
  23. package/es/components/uni-vue/src/uni-vue.vue2.mjs +1 -3
  24. package/es/components/uni-vue/src/uni-vue.vue2.mjs.map +1 -1
  25. package/es/components/uni-vue/src/use-uni-vue.d.ts +1 -1
  26. package/es/components/uni-vue/src/use-uni-vue.mjs +54 -38
  27. package/es/components/uni-vue/src/use-uni-vue.mjs.map +1 -1
  28. package/es/package.json.mjs +1 -1
  29. package/lib/components/uni-vue/index.d.ts +7 -17
  30. package/lib/components/uni-vue/src/uni-vue.vue.d.ts +3 -7
  31. package/lib/components/uni-vue/src/uni-vue.vue2.js +1 -3
  32. package/lib/components/uni-vue/src/uni-vue.vue2.js.map +1 -1
  33. package/lib/components/uni-vue/src/use-uni-vue.d.ts +1 -1
  34. package/lib/components/uni-vue/src/use-uni-vue.js +54 -38
  35. package/lib/components/uni-vue/src/use-uni-vue.js.map +1 -1
  36. package/lib/package.json.js +1 -1
  37. package/package.json +4 -2
  38. package/docs/components/index.md +0 -23
@@ -1,12 +1,22 @@
1
1
  import { useTemplateRef, ref, useAttrs, watch, nextTick, onMounted } from 'vue';
2
2
  import { http } from '../../../utils/http/index.mjs';
3
- import Vue2 from 'vue2';
4
- import VueRouter3 from 'vue-router3';
5
3
  import { componentType } from './uni-vue.mjs';
6
4
  import axios from 'axios';
7
5
  import { ElLoading, ElMessage } from 'element-plus';
8
6
 
9
- const useUniVue = (props, emit) => {
7
+ let Vue2 = null;
8
+ let VueRouter3 = null;
9
+ const loadModules = async () => {
10
+ if (!Vue2) {
11
+ const vue2Module = await import('vue2');
12
+ Vue2 = vue2Module.default;
13
+ }
14
+ if (!VueRouter3) {
15
+ const routerModule = await import('vue-router3');
16
+ VueRouter3 = routerModule.default;
17
+ }
18
+ };
19
+ const useUniVue = (props, _emit) => {
10
20
  const uniVue = useTemplateRef("uniVue");
11
21
  const { type } = props;
12
22
  const loading = ref(true);
@@ -31,7 +41,6 @@ const useUniVue = (props, emit) => {
31
41
  }
32
42
  }
33
43
  };
34
- setupWindow();
35
44
  const prepareVueAttributes = () => {
36
45
  const events = {};
37
46
  const _props = {};
@@ -117,7 +126,7 @@ const useUniVue = (props, emit) => {
117
126
  const cssPromises = [];
118
127
  if (!isBpm) {
119
128
  cssPromises.push(
120
- http.request("/element-ui.css", {
129
+ http.request("/index.css", {
121
130
  responseReturn: "raw",
122
131
  baseURL: ""
123
132
  }).then((res) => res.data)
@@ -139,6 +148,8 @@ const useUniVue = (props, emit) => {
139
148
  if (instance) {
140
149
  return;
141
150
  }
151
+ await loadModules();
152
+ setupWindow();
142
153
  const el = uniVue.value;
143
154
  const shadowRoot = el.attachShadow({ mode: "open" });
144
155
  const container = document.createElement("div");
@@ -152,6 +163,12 @@ const useUniVue = (props, emit) => {
152
163
  const style = document.createElement("style");
153
164
  style.textContent = css;
154
165
  shadowRoot.appendChild(style);
166
+ if (isAddress && !document.querySelector("style[data-hx-address-style]")) {
167
+ const headStyle = document.createElement("style");
168
+ headStyle.textContent = css;
169
+ headStyle.setAttribute("data-hx-address-style", "true");
170
+ document.head.appendChild(headStyle);
171
+ }
155
172
  } catch (error) {
156
173
  console.log(error);
157
174
  } finally {
@@ -159,55 +176,54 @@ const useUniVue = (props, emit) => {
159
176
  }
160
177
  }
161
178
  shadowRoot.appendChild(container);
162
- console.log(prepareVueAttributes());
163
- const baseEvents = {
164
- ...prepareVueAttributes().on,
165
- "input": (newVal) => {
166
- console.log(newVal, "input", props.name);
167
- emit("update:modelValue", newVal);
168
- },
169
- "update:dialogFormData": (newVal) => {
170
- console.log(newVal, "update:dialogFormData");
171
- emit("update:dialogFormData", newVal);
172
- },
173
- "update:visible": (newVal) => {
174
- console.log(newVal, "update:visible");
175
- emit("update:visible", newVal);
176
- }
177
- };
178
179
  instance = new Vue2({
179
180
  el: container,
180
- // @ts-expect-error 缺少类型定义
181
181
  router: new VueRouter3(),
182
- render: (h) => h(props.name, {
183
- props: {
184
- ...prepareVueAttributes().props
185
- },
186
- on: baseEvents
187
- })
182
+ render: (h) => {
183
+ const { on: vue2Events, props: vue2Props } = prepareVueAttributes();
184
+ return h(props.name, {
185
+ props: vue2Props,
186
+ on: vue2Events
187
+ });
188
+ }
188
189
  });
189
190
  };
191
+ const updateVue2Instance = () => {
192
+ if (!instance) return;
193
+ const child = instance.$children[0];
194
+ if (child) {
195
+ const { props: vue2Props } = prepareVueAttributes();
196
+ Object.assign(child.$options.propsData, vue2Props);
197
+ if (child._props) {
198
+ Object.keys(vue2Props).forEach((key) => {
199
+ const newValue = vue2Props[key];
200
+ const oldValue = child._props[key];
201
+ if (newValue === oldValue && typeof newValue === "object" && newValue !== null) {
202
+ const temp = {};
203
+ child._props[key] = temp;
204
+ }
205
+ child._props[key] = newValue;
206
+ });
207
+ }
208
+ child.$forceUpdate();
209
+ }
210
+ instance.$forceUpdate();
211
+ };
190
212
  Object.keys(attrs).forEach((key) => {
191
- console.log(key, 8);
192
213
  if (!key.startsWith("on")) {
193
214
  watch(
194
215
  () => attrs[key],
195
- (newVal) => {
216
+ () => {
217
+ console.log(key, "key");
196
218
  nextTick(() => {
197
219
  try {
198
- console.log(props.name, newVal, "watch", key, instance);
199
- let vue2Prop = key;
200
- if (key === "modelValue") {
201
- vue2Prop = "value";
202
- }
203
- instance.$children[0][vue2Prop] = newVal;
220
+ updateVue2Instance();
204
221
  } catch (e) {
205
222
  }
206
223
  });
207
224
  },
208
225
  {
209
- deep: true,
210
- immediate: true
226
+ deep: true
211
227
  }
212
228
  );
213
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-uni-vue.mjs","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs,nextTick, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport Vue2 from 'vue2'\nimport VueRouter3 from 'vue-router3'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\n\nexport const useUniVue = (props, emit) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n setupWindow()\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {} as Record<string, any>\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue、onUpdate:dialogFormData -> update:dialogFormData\n eventName = 'update:' + eventName.slice(7)\n\n // 如果是v-model, 转换为vue2对应的input\n if (eventName === 'update:modelValue') {\n eventName = 'input'\n }\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如: onInitComplete-> init-complete (因为测试发现用initComplete不生效)\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n if (key === 'modelValue') {\n // 处理 v-model转换为vue2的value\n _props.value = attrs[key] // eslint-disable-line\n } else {\n _props[key] = attrs[key]\n\n }\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `http://localhost:8001/dist/hx-address.js`\n return `./hx-address.js`\n return `${cdn}address/static/hx-address.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/element-ui.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n // if (import.meta.hot) return // 每次热更新都会执行,在这里阻止,防止每次热更新页面都会重复插入组件\n const el = uniVue.value // 选择一个宿主元素\n const shadowRoot = el!.attachShadow({ mode: 'open' }) // 创建一个开放模式的 shadow root\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n console.log(prepareVueAttributes());\n\n // 准备基础事件处理\n const baseEvents = {\n ...prepareVueAttributes().on,\n 'input': (newVal) => {\n console.log(newVal, 'input', props.name);\n emit('update:modelValue', newVal)\n },\n 'update:dialogFormData': (newVal) => {\n console.log(newVal, 'update:dialogFormData');\n emit('update:dialogFormData', newVal)\n },\n 'update:visible': (newVal) => {\n console.log(newVal, 'update:visible');\n emit('update:visible', newVal)\n },\n }\n\n // 创建Vue2实例\n instance = new Vue2({\n el: container,\n // @ts-expect-error 缺少类型定义\n router: new VueRouter3(),\n render: (h) => h(props.name, {\n props: {\n ...prepareVueAttributes().props,\n },\n on: baseEvents\n }),\n })\n\n // // 监听所有可能的update:事件\n // instance.$on(/^update:/, (eventName, newVal) => {\n // console.log(eventName, newVal, 'dynamic update event');\n // emit(eventName, newVal)\n // })\n }\n\n // 监听 attrs中非事件属性的变化,更新 Vue 2 组件\n Object.keys(attrs).forEach((key) => {\n console.log(key, 8);\n if (!key.startsWith('on')) {\n watch(\n () => attrs[key],\n (newVal) => {\n // if (instance) {\n nextTick(() => {\n try {\n console.log(props.name, newVal, 'watch', key, instance);\n // v-model转换为vue2的value\n let vue2Prop = key\n if (key === 'modelValue') {\n vue2Prop = 'value'\n }\n instance.$children[0][vue2Prop] = newVal\n } catch (e) {\n // 忽略更新异常\n }\n })\n // }\n },\n {\n deep: true,\n immediate: true,\n },\n )\n }\n })\n\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-uni-vue.mjs","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs, nextTick, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\n\nlet Vue2: any = null\nlet VueRouter3: any = null\n\nconst loadModules = async () => {\n if (!Vue2) {\n const vue2Module = await import('vue2')\n Vue2 = vue2Module.default\n }\n if (!VueRouter3) {\n const routerModule = await import('vue-router3')\n VueRouter3 = routerModule.default\n }\n}\n\nexport const useUniVue = (props, _emit) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {} as Record<string, any>\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue、onUpdate:dialogFormData -> update:dialogFormData\n eventName = 'update:' + eventName.slice(7)\n\n // 如果是v-model, 转换为vue2对应的input\n if (eventName === 'update:modelValue') {\n eventName = 'input'\n }\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如: onInitComplete-> init-complete (因为测试发现用initComplete不生效)\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n if (key === 'modelValue') {\n // 处理 v-model转换为vue2的value\n _props.value = attrs[key] // eslint-disable-line\n } else {\n _props[key] = attrs[key]\n }\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `http://localhost:8001/dist/hx-address.js`\n return `./hx-address.js`\n return `${cdn}address/static/hx-address.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/index.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n await loadModules()\n setupWindow()\n const el = uniVue.value\n const shadowRoot = el!.attachShadow({ mode: 'open' })\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n if (isAddress && !document.querySelector('style[data-hx-address-style]')) {\n const headStyle = document.createElement('style')\n headStyle.textContent = css\n headStyle.setAttribute('data-hx-address-style', 'true')\n document.head.appendChild(headStyle)\n }\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n\n instance = new Vue2({\n el: container,\n router: new VueRouter3(),\n render: (h) => {\n const { on: vue2Events, props: vue2Props } = prepareVueAttributes()\n return h(props.name, {\n props: vue2Props,\n on: vue2Events,\n })\n },\n })\n }\n\n const updateVue2Instance = () => {\n if (!instance) return\n const child = instance.$children[0]\n if (child) {\n const { props: vue2Props } = prepareVueAttributes()\n Object.assign(child.$options.propsData, vue2Props)\n if (child._props) {\n Object.keys(vue2Props).forEach((key) => {\n const newValue = vue2Props[key]\n const oldValue = child._props[key]\n if (newValue === oldValue && typeof newValue === 'object' && newValue !== null) {\n const temp = {}\n child._props[key] = temp\n }\n child._props[key] = newValue\n })\n }\n child.$forceUpdate()\n }\n instance.$forceUpdate()\n }\n\n Object.keys(attrs).forEach((key) => {\n if (!key.startsWith('on')) {\n \n watch(\n () => attrs[key],\n () => {\n console.log(key,'key');\n nextTick(() => {\n try {\n updateVue2Instance()\n } catch (e) {\n // 忽略更新异常\n }\n })\n },\n {\n deep: true,\n },\n )\n }\n })\n\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":[],"mappings":";;;;;;AAMA,IAAI,IAAA,GAAY,IAAA;AAChB,IAAI,UAAA,GAAkB,IAAA;AAEtB,MAAM,cAAc,YAAY;AAC9B,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,UAAA,GAAa,MAAM,OAAO,MAAM,CAAA;AACtC,IAAA,IAAA,GAAO,UAAA,CAAW,OAAA;AAAA,EACpB;AACA,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,YAAA,GAAe,MAAM,OAAO,aAAa,CAAA;AAC/C,IAAA,UAAA,GAAa,YAAA,CAAa,OAAA;AAAA,EAC5B;AACF,CAAA;AAEO,MAAM,SAAA,GAAY,CAAC,KAAA,EAAO,KAAA,KAAU;AACzC,EAAA,MAAM,MAAA,GAAS,eAA4B,QAAQ,CAAA;AACnD,EAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,EAAA,MAAM,OAAA,GAAU,IAAI,IAAI,CAAA;AACxB,EAAA,MAAM,YAAY,IAAA,KAAS,SAAA;AAC3B,EAAA,MAAM,QAAQ,IAAA,KAAS,KAAA;AAEvB,EAAA,MAAM,YAAA,GAAe,aAAA,CAAc,OAAA,CAAQ,IAAI,CAAA,GAAI,EAAA;AACnD,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAA,CAAK,IAAI,UAAU,CAAA;AACnB,IAAA,IAAI,CAAC,OAAO,GAAA,EAAK;AACf,MAAA,MAAA,CAAO,GAAA,GAAM,IAAA;AAAA,IACf;AAEA,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,IAAI,CAAC,OAAO,KAAA,EAAO;AACjB,QAAA,MAAA,CAAO,KAAA,GAAQ,KAAA;AAAA,MACjB;AACA,MAAA,IAAI,CAAC,OAAO,SAAA,EAAW;AACrB,QAAA,MAAA,CAAO,SAAA,GAAY;AAAA,UACjB,OAAA,EAAS,SAAA;AAAA,UACT,OAAA,EAAS;AAAA,SACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AACA,EAAA,MAAM,uBAAuB,MAAM;AACjC,IAAA,MAAM,SAAS,EAAC;AAChB,IAAA,MAAM,SAAS,EAAC;AAChB,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AAClC,MAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACxB,QAAA,IAAI,SAAA,GAAY,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA;AAC3B,QAAA,IAAI,SAAA,CAAU,UAAA,CAAW,SAAS,CAAA,EAAG;AAGnC,UAAA,SAAA,GAAY,SAAA,GAAY,SAAA,CAAU,KAAA,CAAM,CAAC,CAAA;AAGzC,UAAA,IAAI,cAAc,mBAAA,EAAqB;AACrC,YAAA,SAAA,GAAY,OAAA;AAAA,UACd;AAAA,QACF,CAAA,MAAO;AAGL,UAAA,SAAA,GAAY,SAAA,CAAU,OAAA,CAAQ,UAAA,EAAY,KAAK,EAAE,WAAA,EAAY;AAE7D,UAAA,SAAA,GAAY,SAAA,CAAU,MAAM,CAAC,CAAA;AAAA,QAC/B;AACA,QAAA,MAAA,CAAO,SAAS,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,MAC/B,CAAA,MAAO;AACL,QAAA,IAAI,QAAQ,YAAA,EAAc;AAExB,UAAA,MAAA,CAAO,KAAA,GAAQ,MAAM,GAAG,CAAA;AAAA,QAC1B,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,GAAG,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,QACzB;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO;AAAA,MACL,EAAA,EAAI,MAAA;AAAA,MACJ,KAAA,EAAO;AAAA,KACT;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,GAAA,GAAM,wBAAA;AACZ,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,KAAA;AACH,QAAA,OAAO,GAAG,GAAG,CAAA,kCAAA,CAAA;AAAA,MACf,KAAK,SAAA;AACH,QAAA,OAAO,CAAA,wCAAA,CAAA;AAEM,MACf;AACE,QAAA,OAAO,EAAA;AAAA;AACX,EACF,CAAA;AACA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAK,KAAA;AACH,QAAA,OAAO,CAAA,4BAAA,CAAA;AAAA,MACT,KAAK,SAAA;AACH,QAAA,OAAO,CAAA,8BAAA,CAAA;AAAA,MACT;AACE,QAAA,OAAO,EAAA;AAAA;AACX,EACF,CAAA;AACA,EAAA,MAAM,uBAAuB,YAAY;AACvC,IAAA,MAAM,WAA4B,EAAC;AAGnC,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,MAAA,CAAO,mBAAA,EAAqB;AACzC,MAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACrC,QAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,QAAA,MAAA,CAAO,GAAA,GAAM,gBAAA;AACb,QAAA,MAAA,CAAO,MAAA,GAAS,OAAA;AAChB,QAAA,MAAA,CAAO,OAAA,GAAU,MAAA;AACjB,QAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,MAClC,CAAC,CAAA;AAAA,IACH;AAGA,IAAA,IAAI,UAAA;AACJ,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,UAAA,GAAa,WAAA;AAAA,IACf;AACA,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,UAAA,GAAa,OAAA;AAAA,IACf;AAEA,IAAA,IAAI,UAAA,IAAc,CAAC,MAAA,CAAO,UAAU,CAAA,EAAG;AACrC,MAAA,QAAA,CAAS,IAAA;AAAA,QACP,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AAC/B,UAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,UAAA,MAAA,CAAO,MAAM,cAAA,EAAe;AAC5B,UAAA,MAAA,CAAO,MAAA,GAAS,MAAM,OAAA,EAAQ;AAC9B,UAAA,MAAA,CAAO,OAAA,GAAU,MAAA;AACjB,UAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,QAClC,CAAC;AAAA,OACH;AAAA,IACF;AAEA,IAAA,OAAO,OAAA,CAAQ,IAAI,QAAQ,CAAA;AAAA,EAC7B,CAAA;AACA,EAAA,MAAM,wBAAwB,YAAY;AACxC,IAAA,MAAM,cAAiC,EAAC;AAGxC,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,WAAA,CAAY,IAAA;AAAA,QACV,IAAA,CACG,QAAgB,YAAA,EAAc;AAAA,UAC7B,cAAA,EAAgB,KAAA;AAAA,UAChB,OAAA,EAAS;AAAA,SACV,CAAA,CACA,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,IAAI;AAAA,OAC3B;AAAA,IACF;AAGA,IAAA,MAAM,eAAe,eAAA,EAAgB;AACrC,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,WAAA,CAAY,IAAA;AAAA,QACV,IAAA,CACG,QAAgB,YAAA,EAAc;AAAA,UAC7B,cAAA,EAAgB;AAAA,SACjB,CAAA,CACA,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,IAAI;AAAA,OAC3B;AAAA,IACF;AAEA,IAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,GAAA,CAAI,WAAW,CAAA;AACjD,IAAA,OAAO,WAAA,CAAY,KAAK,IAAI,CAAA;AAAA,EAC9B,CAAA;AACA,EAAA,IAAI,QAAA;AACJ,EAAA,MAAM,gBAAgB,YAAY;AAChC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA;AAAA,IACF;AACA,IAAA,MAAM,WAAA,EAAY;AAClB,IAAA,WAAA,EAAY;AACZ,IAAA,MAAM,KAAK,MAAA,CAAO,KAAA;AAClB,IAAA,MAAM,aAAa,EAAA,CAAI,YAAA,CAAa,EAAE,IAAA,EAAM,QAAQ,CAAA;AACpD,IAAA,MAAM,SAAA,GAAY,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC9C,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,IAAI;AACF,QAAA,OAAA,CAAQ,KAAA,GAAQ,IAAA;AAChB,QAAA,MAAM,CAAC,KAAA,EAAO,GAAG,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,UACrC,oBAAA,EAAqB;AAAA,UACrB,qBAAA;AAAsB,SACvB,CAAA;AACD,QAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,QAAA,KAAA,CAAM,WAAA,GAAc,GAAA;AACpB,QAAA,UAAA,CAAW,YAAY,KAAK,CAAA;AAC5B,QAAA,IAAI,SAAA,IAAa,CAAC,QAAA,CAAS,aAAA,CAAc,8BAA8B,CAAA,EAAG;AACxE,UAAA,MAAM,SAAA,GAAY,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAChD,UAAA,SAAA,CAAU,WAAA,GAAc,GAAA;AACxB,UAAA,SAAA,CAAU,YAAA,CAAa,yBAAyB,MAAM,CAAA;AACtD,UAAA,QAAA,CAAS,IAAA,CAAK,YAAY,SAAS,CAAA;AAAA,QACrC;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA,MACnB,CAAA,SAAE;AACA,QAAA,OAAA,CAAQ,KAAA,GAAQ,KAAA;AAAA,MAClB;AAAA,IACF;AACA,IAAA,UAAA,CAAW,YAAY,SAAS,CAAA;AAEhC,IAAA,QAAA,GAAW,IAAI,IAAA,CAAK;AAAA,MAClB,EAAA,EAAI,SAAA;AAAA,MACJ,MAAA,EAAQ,IAAI,UAAA,EAAW;AAAA,MACvB,MAAA,EAAQ,CAAC,CAAA,KAAM;AACb,QAAA,MAAM,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,SAAA,KAAc,oBAAA,EAAqB;AAClE,QAAA,OAAO,CAAA,CAAE,MAAM,IAAA,EAAM;AAAA,UACnB,KAAA,EAAO,SAAA;AAAA,UACP,EAAA,EAAI;AAAA,SACL,CAAA;AAAA,MACH;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,qBAAqB,MAAM;AAC/B,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,SAAA,CAAU,CAAC,CAAA;AAClC,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAU,GAAI,oBAAA,EAAqB;AAClD,MAAA,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,QAAA,CAAS,SAAA,EAAW,SAAS,CAAA;AACjD,MAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,QAAA,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACtC,UAAA,MAAM,QAAA,GAAW,UAAU,GAAG,CAAA;AAC9B,UAAA,MAAM,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,GAAG,CAAA;AACjC,UAAA,IAAI,aAAa,QAAA,IAAY,OAAO,QAAA,KAAa,QAAA,IAAY,aAAa,IAAA,EAAM;AAC9E,YAAA,MAAM,OAAO,EAAC;AACd,YAAA,KAAA,CAAM,MAAA,CAAO,GAAG,CAAA,GAAI,IAAA;AAAA,UACtB;AACA,UAAA,KAAA,CAAM,MAAA,CAAO,GAAG,CAAA,GAAI,QAAA;AAAA,QACtB,CAAC,CAAA;AAAA,MACH;AACA,MAAA,KAAA,CAAM,YAAA,EAAa;AAAA,IACrB;AACA,IAAA,QAAA,CAAS,YAAA,EAAa;AAAA,EACxB,CAAA;AAEA,EAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,GAAA,KAAQ;AAClC,IAAA,IAAI,CAAC,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AAEzB,MAAA,KAAA;AAAA,QACE,MAAM,MAAM,GAAG,CAAA;AAAA,QACf,MAAM;AACJ,UAAA,OAAA,CAAQ,GAAA,CAAI,KAAI,KAAK,CAAA;AACrB,UAAA,QAAA,CAAS,MAAM;AACb,YAAA,IAAI;AACF,cAAA,kBAAA,EAAmB;AAAA,YACrB,SAAS,CAAA,EAAG;AAAA,YAEZ;AAAA,UACF,CAAC,CAAA;AAAA,QACH,CAAA;AAAA,QACA;AAAA,UACE,IAAA,EAAM;AAAA;AACR,OACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,aAAA,EAAc;AAAA,EAChB,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL;AAAA,GACF;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- var version = "0.0.87";
1
+ var version = "0.0.89";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=package.json.mjs.map
@@ -3,13 +3,9 @@ export declare const EpUniVue: {
3
3
  readonly name: StringConstructor;
4
4
  readonly type: import("vue").PropType<typeof import("./src/uni-vue").componentType[number]>;
5
5
  }>> & Readonly<{
6
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
7
- "onUpdate:dialogFormData"?: ((...args: any[]) => any) | undefined;
8
- "onUpdate:visible"?: ((...args: any[]) => any) | undefined;
9
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
- "update:modelValue": (...args: any[]) => void;
11
- "update:dialogFormData": (...args: any[]) => void;
12
- "update:visible": (...args: any[]) => void;
6
+ [x: `onUpdate:${string}`]: ((value: any) => any) | undefined;
7
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
8
+ [x: `update:${string}`]: (value: any) => any;
13
9
  }, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
14
10
  P: {};
15
11
  B: {};
@@ -21,9 +17,7 @@ export declare const EpUniVue: {
21
17
  readonly name: StringConstructor;
22
18
  readonly type: import("vue").PropType<typeof import("./src/uni-vue").componentType[number]>;
23
19
  }>> & Readonly<{
24
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
25
- "onUpdate:dialogFormData"?: ((...args: any[]) => any) | undefined;
26
- "onUpdate:visible"?: ((...args: any[]) => any) | undefined;
20
+ [x: `onUpdate:${string}`]: ((value: any) => any) | undefined;
27
21
  }>, {}, {}, {}, {}, {}>;
28
22
  __isFragment?: never;
29
23
  __isTeleport?: never;
@@ -32,13 +26,9 @@ export declare const EpUniVue: {
32
26
  readonly name: StringConstructor;
33
27
  readonly type: import("vue").PropType<typeof import("./src/uni-vue").componentType[number]>;
34
28
  }>> & Readonly<{
35
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
36
- "onUpdate:dialogFormData"?: ((...args: any[]) => any) | undefined;
37
- "onUpdate:visible"?: ((...args: any[]) => any) | undefined;
38
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
39
- "update:modelValue": (...args: any[]) => void;
40
- "update:dialogFormData": (...args: any[]) => void;
41
- "update:visible": (...args: any[]) => void;
29
+ [x: `onUpdate:${string}`]: ((value: any) => any) | undefined;
30
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
31
+ [x: `update:${string}`]: (value: any) => any;
42
32
  }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin;
43
33
  export default EpUniVue;
44
34
  export * from './src/uni-vue';
@@ -1,17 +1,13 @@
1
1
  declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
2
  readonly name: StringConstructor;
3
3
  readonly type: import("vue").PropType<typeof import("./uni-vue").componentType[number]>;
4
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
- "update:modelValue": (...args: any[]) => void;
6
- "update:dialogFormData": (...args: any[]) => void;
7
- "update:visible": (...args: any[]) => void;
4
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
+ [x: `update:${string}`]: (value: any) => any;
8
6
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
9
7
  readonly name: StringConstructor;
10
8
  readonly type: import("vue").PropType<typeof import("./uni-vue").componentType[number]>;
11
9
  }>> & Readonly<{
12
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
13
- "onUpdate:dialogFormData"?: ((...args: any[]) => any) | undefined;
14
- "onUpdate:visible"?: ((...args: any[]) => any) | undefined;
10
+ [x: `onUpdate:${string}`]: ((value: any) => any) | undefined;
15
11
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
16
12
  declare const _default: typeof __VLS_export;
17
13
  export default _default;
@@ -16,12 +16,10 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
16
  },
17
17
  __name: "uni-vue",
18
18
  props: uniVue.uniVueProps,
19
- emits: ["update:modelValue", "update:dialogFormData", "update:visible"],
20
19
  setup(__props, { emit: __emit }) {
21
20
  const bem$1 = bem.createNameSpace("uni-vue");
22
21
  const props$1 = __props;
23
- const emit = __emit;
24
- const { loading } = useUniVue.useUniVue(props$1, emit);
22
+ const { loading } = useUniVue.useUniVue(props$1);
25
23
  return (_ctx, _cache) => {
26
24
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
27
25
  vue.createVNode(vue.unref(elementPlus.ElSkeleton), {
@@ -1 +1 @@
1
- {"version":3,"file":"uni-vue.vue2.js","sources":["../../../../../../packages/components/uni-vue/src/uni-vue.vue"],"sourcesContent":["<template>\n <el-skeleton\n :class=\"bem.e('skeleton')\"\n :loading=\"loading\"\n style=\"background: #fff; padding: 5px 15px\"\n :rows=\"1\"\n />\n <div\n ref=\"uniVue\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n :style=\"{\n ...prepareStyles(),\n }\"\n />\n</template>\n<script setup lang=\"ts\">\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { uniVueProps } from './uni-vue'\nimport { prepareClassNames, prepareStyles } from '@el-plus/utils/props'\nimport { ElSkeleton } from 'element-plus'\nimport { useUniVue } from './use-uni-vue'\ndefineOptions({\n name: 'EpUniVue',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('uni-vue')\nconst props = defineProps(uniVueProps)\n// const emit = defineEmits<{\n// (e: `update:${string}`, value: any): void\n// }>()\nconst emit = defineEmits(['update:modelValue', 'update:dialogFormData', 'update:visible'])\nconst { loading } = useUniVue(props, emit)\n\n</script>\n"],"names":["bem","createNameSpace","props","useUniVue","_createVNode","_unref","ElSkeleton","_normalizeClass","_createElementVNode","prepareClassNames","_normalizeStyle","prepareStyles"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAMA,KAAA,GAAMC,oBAAgB,SAAS,CAAA;AACrC,IAAA,MAAMC,OAAA,GAAQ,OAAA;AAId,IAAA,MAAM,IAAA,GAAO,MAAA;AACb,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAIC,mBAAA,CAAUD,SAAO,IAAI,CAAA;;;QA9BvCE,eAAA,CAKEC,SAAA,CAAAC,sBAAA,CAAA,EAAA;AAAA,UAJC,OAAKC,kBAAA,CAAEF,SAAA,CAAAL,KAAA,CAAA,CAAI,CAAA,CAAC,UAAA,CAAA,CAAA;AAAA,UACZ,OAAA,EAASK,UAAA,OAAA,CAAA;AAAA,UACV,KAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,UAAA,EAAA;AAAA,UACC,IAAA,EAAM;AAAA;QAETG,uBAME,KAAA,EAAA;AAAA,UALA,GAAA,EAAI,QAAA;AAAA,UACH,KAAA,EAAKD,kBAAA,CAAA,CAAA,EAAKF,SAAA,CAAAL,KAAA,CAAA,CAAI,CAAA,MAAOK,SAAA,CAAAI,uBAAA,CAAA,EAAiB,CAAA,CAAA,CAAA;AAAA,UACtC,OAAKC,kBAAA,CAAA;AAAA,eAAaL,SAAA,CAAAM,mBAAA,CAAA;AAAa;;;;;;;;;"}
1
+ {"version":3,"file":"uni-vue.vue2.js","sources":["../../../../../../packages/components/uni-vue/src/uni-vue.vue"],"sourcesContent":["<template>\n <el-skeleton\n :class=\"bem.e('skeleton')\"\n :loading=\"loading\"\n style=\"background: #fff; padding: 5px 15px\"\n :rows=\"1\"\n />\n <div\n ref=\"uniVue\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n :style=\"{\n ...prepareStyles(),\n }\"\n />\n</template>\n<script setup lang=\"ts\">\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { uniVueProps } from './uni-vue'\nimport { prepareClassNames, prepareStyles } from '@el-plus/utils/props'\nimport { ElSkeleton } from 'element-plus'\nimport { useUniVue } from './use-uni-vue'\ndefineOptions({\n name: 'EpUniVue',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('uni-vue')\nconst props = defineProps(uniVueProps)\nconst emit = defineEmits<{\n (e: `update:${string}`, value: any): void\n}>()\nconst { loading } = useUniVue(props, emit)\n</script>\n"],"names":["bem","createNameSpace","props","useUniVue","_createVNode","_unref","ElSkeleton","_normalizeClass","_createElementVNode","prepareClassNames","_normalizeStyle","prepareStyles"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,IAAA,MAAMA,KAAA,GAAMC,oBAAgB,SAAS,CAAA;AACrC,IAAA,MAAMC,OAAA,GAAQ,OAAA;AAId,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAIC,mBAAA,CAAUD,OAAW,CAAA;;;QA7BvCE,eAAA,CAKEC,SAAA,CAAAC,sBAAA,CAAA,EAAA;AAAA,UAJC,OAAKC,kBAAA,CAAEF,SAAA,CAAAL,KAAA,CAAA,CAAI,CAAA,CAAC,UAAA,CAAA,CAAA;AAAA,UACZ,OAAA,EAASK,UAAA,OAAA,CAAA;AAAA,UACV,KAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,UAAA,EAAA;AAAA,UACC,IAAA,EAAM;AAAA;QAETG,uBAME,KAAA,EAAA;AAAA,UALA,GAAA,EAAI,QAAA;AAAA,UACH,KAAA,EAAKD,kBAAA,CAAA,CAAA,EAAKF,SAAA,CAAAL,KAAA,CAAA,CAAI,CAAA,MAAOK,SAAA,CAAAI,uBAAA,CAAA,EAAiB,CAAA,CAAA,CAAA;AAAA,UACtC,OAAKC,kBAAA,CAAA;AAAA,eAAaL,SAAA,CAAAM,mBAAA,CAAA;AAAa;;;;;;;;;"}
@@ -1,3 +1,3 @@
1
- export declare const useUniVue: (props: any, emit: any) => {
1
+ export declare const useUniVue: (props: any, _emit: any) => {
2
2
  loading: import("vue").Ref<boolean, boolean>;
3
3
  };
@@ -2,13 +2,23 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var index = require('../../../utils/http/index.js');
5
- var Vue2 = require('vue2');
6
- var VueRouter3 = require('vue-router3');
7
5
  var uniVue = require('./uni-vue.js');
8
6
  var axios = require('axios');
9
7
  var elementPlus = require('element-plus');
10
8
 
11
- const useUniVue = (props, emit) => {
9
+ let Vue2 = null;
10
+ let VueRouter3 = null;
11
+ const loadModules = async () => {
12
+ if (!Vue2) {
13
+ const vue2Module = await import('vue2');
14
+ Vue2 = vue2Module.default;
15
+ }
16
+ if (!VueRouter3) {
17
+ const routerModule = await import('vue-router3');
18
+ VueRouter3 = routerModule.default;
19
+ }
20
+ };
21
+ const useUniVue = (props, _emit) => {
12
22
  const uniVue$1 = vue.useTemplateRef("uniVue");
13
23
  const { type } = props;
14
24
  const loading = vue.ref(true);
@@ -33,7 +43,6 @@ const useUniVue = (props, emit) => {
33
43
  }
34
44
  }
35
45
  };
36
- setupWindow();
37
46
  const prepareVueAttributes = () => {
38
47
  const events = {};
39
48
  const _props = {};
@@ -119,7 +128,7 @@ const useUniVue = (props, emit) => {
119
128
  const cssPromises = [];
120
129
  if (!isBpm) {
121
130
  cssPromises.push(
122
- index.http.request("/element-ui.css", {
131
+ index.http.request("/index.css", {
123
132
  responseReturn: "raw",
124
133
  baseURL: ""
125
134
  }).then((res) => res.data)
@@ -141,6 +150,8 @@ const useUniVue = (props, emit) => {
141
150
  if (instance) {
142
151
  return;
143
152
  }
153
+ await loadModules();
154
+ setupWindow();
144
155
  const el = uniVue$1.value;
145
156
  const shadowRoot = el.attachShadow({ mode: "open" });
146
157
  const container = document.createElement("div");
@@ -154,6 +165,12 @@ const useUniVue = (props, emit) => {
154
165
  const style = document.createElement("style");
155
166
  style.textContent = css;
156
167
  shadowRoot.appendChild(style);
168
+ if (isAddress && !document.querySelector("style[data-hx-address-style]")) {
169
+ const headStyle = document.createElement("style");
170
+ headStyle.textContent = css;
171
+ headStyle.setAttribute("data-hx-address-style", "true");
172
+ document.head.appendChild(headStyle);
173
+ }
157
174
  } catch (error) {
158
175
  console.log(error);
159
176
  } finally {
@@ -161,55 +178,54 @@ const useUniVue = (props, emit) => {
161
178
  }
162
179
  }
163
180
  shadowRoot.appendChild(container);
164
- console.log(prepareVueAttributes());
165
- const baseEvents = {
166
- ...prepareVueAttributes().on,
167
- "input": (newVal) => {
168
- console.log(newVal, "input", props.name);
169
- emit("update:modelValue", newVal);
170
- },
171
- "update:dialogFormData": (newVal) => {
172
- console.log(newVal, "update:dialogFormData");
173
- emit("update:dialogFormData", newVal);
174
- },
175
- "update:visible": (newVal) => {
176
- console.log(newVal, "update:visible");
177
- emit("update:visible", newVal);
178
- }
179
- };
180
181
  instance = new Vue2({
181
182
  el: container,
182
- // @ts-expect-error 缺少类型定义
183
183
  router: new VueRouter3(),
184
- render: (h) => h(props.name, {
185
- props: {
186
- ...prepareVueAttributes().props
187
- },
188
- on: baseEvents
189
- })
184
+ render: (h) => {
185
+ const { on: vue2Events, props: vue2Props } = prepareVueAttributes();
186
+ return h(props.name, {
187
+ props: vue2Props,
188
+ on: vue2Events
189
+ });
190
+ }
190
191
  });
191
192
  };
193
+ const updateVue2Instance = () => {
194
+ if (!instance) return;
195
+ const child = instance.$children[0];
196
+ if (child) {
197
+ const { props: vue2Props } = prepareVueAttributes();
198
+ Object.assign(child.$options.propsData, vue2Props);
199
+ if (child._props) {
200
+ Object.keys(vue2Props).forEach((key) => {
201
+ const newValue = vue2Props[key];
202
+ const oldValue = child._props[key];
203
+ if (newValue === oldValue && typeof newValue === "object" && newValue !== null) {
204
+ const temp = {};
205
+ child._props[key] = temp;
206
+ }
207
+ child._props[key] = newValue;
208
+ });
209
+ }
210
+ child.$forceUpdate();
211
+ }
212
+ instance.$forceUpdate();
213
+ };
192
214
  Object.keys(attrs).forEach((key) => {
193
- console.log(key, 8);
194
215
  if (!key.startsWith("on")) {
195
216
  vue.watch(
196
217
  () => attrs[key],
197
- (newVal) => {
218
+ () => {
219
+ console.log(key, "key");
198
220
  vue.nextTick(() => {
199
221
  try {
200
- console.log(props.name, newVal, "watch", key, instance);
201
- let vue2Prop = key;
202
- if (key === "modelValue") {
203
- vue2Prop = "value";
204
- }
205
- instance.$children[0][vue2Prop] = newVal;
222
+ updateVue2Instance();
206
223
  } catch (e) {
207
224
  }
208
225
  });
209
226
  },
210
227
  {
211
- deep: true,
212
- immediate: true
228
+ deep: true
213
229
  }
214
230
  );
215
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-uni-vue.js","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs,nextTick, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport Vue2 from 'vue2'\nimport VueRouter3 from 'vue-router3'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\n\nexport const useUniVue = (props, emit) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n setupWindow()\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {} as Record<string, any>\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue、onUpdate:dialogFormData -> update:dialogFormData\n eventName = 'update:' + eventName.slice(7)\n\n // 如果是v-model, 转换为vue2对应的input\n if (eventName === 'update:modelValue') {\n eventName = 'input'\n }\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如: onInitComplete-> init-complete (因为测试发现用initComplete不生效)\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n if (key === 'modelValue') {\n // 处理 v-model转换为vue2的value\n _props.value = attrs[key] // eslint-disable-line\n } else {\n _props[key] = attrs[key]\n\n }\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `http://localhost:8001/dist/hx-address.js`\n return `./hx-address.js`\n return `${cdn}address/static/hx-address.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/element-ui.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n // if (import.meta.hot) return // 每次热更新都会执行,在这里阻止,防止每次热更新页面都会重复插入组件\n const el = uniVue.value // 选择一个宿主元素\n const shadowRoot = el!.attachShadow({ mode: 'open' }) // 创建一个开放模式的 shadow root\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n console.log(prepareVueAttributes());\n\n // 准备基础事件处理\n const baseEvents = {\n ...prepareVueAttributes().on,\n 'input': (newVal) => {\n console.log(newVal, 'input', props.name);\n emit('update:modelValue', newVal)\n },\n 'update:dialogFormData': (newVal) => {\n console.log(newVal, 'update:dialogFormData');\n emit('update:dialogFormData', newVal)\n },\n 'update:visible': (newVal) => {\n console.log(newVal, 'update:visible');\n emit('update:visible', newVal)\n },\n }\n\n // 创建Vue2实例\n instance = new Vue2({\n el: container,\n // @ts-expect-error 缺少类型定义\n router: new VueRouter3(),\n render: (h) => h(props.name, {\n props: {\n ...prepareVueAttributes().props,\n },\n on: baseEvents\n }),\n })\n\n // // 监听所有可能的update:事件\n // instance.$on(/^update:/, (eventName, newVal) => {\n // console.log(eventName, newVal, 'dynamic update event');\n // emit(eventName, newVal)\n // })\n }\n\n // 监听 attrs中非事件属性的变化,更新 Vue 2 组件\n Object.keys(attrs).forEach((key) => {\n console.log(key, 8);\n if (!key.startsWith('on')) {\n watch(\n () => attrs[key],\n (newVal) => {\n // if (instance) {\n nextTick(() => {\n try {\n console.log(props.name, newVal, 'watch', key, instance);\n // v-model转换为vue2的value\n let vue2Prop = key\n if (key === 'modelValue') {\n vue2Prop = 'value'\n }\n instance.$children[0][vue2Prop] = newVal\n } catch (e) {\n // 忽略更新异常\n }\n })\n // }\n },\n {\n deep: true,\n immediate: true,\n },\n )\n }\n })\n\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":["uniVue","useTemplateRef","ref","componentType","useAttrs","ElMessage","ElLoading","http","watch","nextTick","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"use-uni-vue.js","sources":["../../../../../../packages/components/uni-vue/src/use-uni-vue.ts"],"sourcesContent":["import { onMounted, ref, useAttrs, nextTick, useTemplateRef, watch } from 'vue'\nimport { http } from '@el-plus/utils/http'\nimport { componentType } from './uni-vue'\nimport axios from 'axios'\nimport { ElMessage, ElLoading } from 'element-plus'\n\nlet Vue2: any = null\nlet VueRouter3: any = null\n\nconst loadModules = async () => {\n if (!Vue2) {\n const vue2Module = await import('vue2')\n Vue2 = vue2Module.default\n }\n if (!VueRouter3) {\n const routerModule = await import('vue-router3')\n VueRouter3 = routerModule.default\n }\n}\n\nexport const useUniVue = (props, _emit) => {\n const uniVue = useTemplateRef<HTMLElement>('uniVue')\n const { type } = props\n const loading = ref(true)\n const isAddress = type === 'address'\n const isBpm = type === 'bpm'\n // 是否需要加载静态资源\n const isLoadStatic = componentType.indexOf(type) > -1\n const attrs = useAttrs()\n const setupWindow = () => {\n Vue2.use(VueRouter3)\n if (!window.Vue) {\n window.Vue = Vue2\n }\n // 地址\n if (isAddress) {\n if (!window.axios) {\n window.axios = axios\n }\n if (!window.ElementUI) {\n window.ElementUI = {\n Message: ElMessage,\n Loading: ElLoading,\n }\n }\n }\n }\n const prepareVueAttributes = () => {\n const events = {}\n const _props = {} as Record<string, any>\n Object.keys(attrs).forEach((key) => {\n if (key.startsWith('on')) {\n let eventName = key.slice(2) // 去掉 'on' 前缀\n if (eventName.startsWith('Update:')) {\n // 处理 v-model:xxx 事件,转换为 update:xxx\n // 例如:onUpdate:modelValue -> update:modelValue、onUpdate:dialogFormData -> update:dialogFormData\n eventName = 'update:' + eventName.slice(7)\n\n // 如果是v-model, 转换为vue2对应的input\n if (eventName === 'update:modelValue') {\n eventName = 'input'\n }\n } else {\n // 将驼峰命名转换为短横线命名\n // 例如: onInitComplete-> init-complete (因为测试发现用initComplete不生效)\n eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase()\n // 删除第一位的-\n eventName = eventName.slice(1)\n }\n events[eventName] = attrs[key]\n } else {\n if (key === 'modelValue') {\n // 处理 v-model转换为vue2的value\n _props.value = attrs[key] // eslint-disable-line\n } else {\n _props[key] = attrs[key]\n }\n }\n })\n return {\n on: events,\n props: _props,\n }\n }\n\n const cdn = '//j01.hongxinshop.com/'\n const getStaticJsUrl = () => {\n switch (type) {\n case 'bpm':\n return `${cdn}bpm-common/common/index.umd.min.js`\n case 'address':\n return `http://localhost:8001/dist/hx-address.js`\n return `./hx-address.js`\n return `${cdn}address/static/hx-address.js`\n default:\n return ''\n }\n }\n const getStaticCssUrl = () => {\n switch (type) {\n case 'bpm':\n return `/bpm-common/common/index.css`\n case 'address':\n return `/address/static/hx-address.css`\n default:\n return ''\n }\n }\n const loadStaticJsResource = async () => {\n const promises: Promise<void>[] = []\n\n // 检查并加载element-ui.js(非bpm类型)\n if (!isBpm && !window.ElementUIComponents) {\n await new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = '/element-ui.js'\n script.onload = resolve\n script.onerror = reject\n document.body.appendChild(script)\n })\n }\n\n // 检查并加载原有的JS资源\n let globalName\n if (isAddress) {\n globalName = 'hxAddress'\n }\n if (isBpm) {\n globalName = 'index'\n }\n\n if (globalName && !window[globalName]) {\n promises.push(\n new Promise((resolve, reject) => {\n const script = document.createElement('script')\n script.src = getStaticJsUrl()\n script.onload = () => resolve()\n script.onerror = reject\n document.body.appendChild(script)\n }),\n )\n }\n\n return Promise.all(promises)\n }\n const loadStaticCssResource = async () => {\n const cssPromises: Promise<string>[] = []\n\n // 为非bpm类型加载element-ui.css\n if (!isBpm) {\n cssPromises.push(\n http\n .request<string>('/index.css', {\n responseReturn: 'raw',\n baseURL: '',\n })\n .then((res) => res.data),\n )\n }\n\n // 加载原有的CSS资源\n const staticCssUrl = getStaticCssUrl()\n if (staticCssUrl) {\n cssPromises.push(\n http\n .request<string>(staticCssUrl, {\n responseReturn: 'raw',\n })\n .then((res) => res.data),\n )\n }\n\n const cssContents = await Promise.all(cssPromises)\n return cssContents.join('\\n')\n }\n let instance\n const setupInstance = async () => {\n if (instance) {\n return\n }\n await loadModules()\n setupWindow()\n const el = uniVue.value\n const shadowRoot = el!.attachShadow({ mode: 'open' })\n const container = document.createElement('div')\n if (isLoadStatic) {\n try {\n loading.value = true\n const [_res1, css] = await Promise.all([\n loadStaticJsResource(),\n loadStaticCssResource(),\n ])\n const style = document.createElement('style')\n style.textContent = css\n shadowRoot.appendChild(style)\n if (isAddress && !document.querySelector('style[data-hx-address-style]')) {\n const headStyle = document.createElement('style')\n headStyle.textContent = css\n headStyle.setAttribute('data-hx-address-style', 'true')\n document.head.appendChild(headStyle)\n }\n } catch (error) {\n console.log(error)\n } finally {\n loading.value = false\n }\n }\n shadowRoot.appendChild(container)\n\n instance = new Vue2({\n el: container,\n router: new VueRouter3(),\n render: (h) => {\n const { on: vue2Events, props: vue2Props } = prepareVueAttributes()\n return h(props.name, {\n props: vue2Props,\n on: vue2Events,\n })\n },\n })\n }\n\n const updateVue2Instance = () => {\n if (!instance) return\n const child = instance.$children[0]\n if (child) {\n const { props: vue2Props } = prepareVueAttributes()\n Object.assign(child.$options.propsData, vue2Props)\n if (child._props) {\n Object.keys(vue2Props).forEach((key) => {\n const newValue = vue2Props[key]\n const oldValue = child._props[key]\n if (newValue === oldValue && typeof newValue === 'object' && newValue !== null) {\n const temp = {}\n child._props[key] = temp\n }\n child._props[key] = newValue\n })\n }\n child.$forceUpdate()\n }\n instance.$forceUpdate()\n }\n\n Object.keys(attrs).forEach((key) => {\n if (!key.startsWith('on')) {\n \n watch(\n () => attrs[key],\n () => {\n console.log(key,'key');\n nextTick(() => {\n try {\n updateVue2Instance()\n } catch (e) {\n // 忽略更新异常\n }\n })\n },\n {\n deep: true,\n },\n )\n }\n })\n\n onMounted(() => {\n setupInstance()\n })\n\n return {\n loading,\n }\n}\n"],"names":["uniVue","useTemplateRef","ref","componentType","useAttrs","ElMessage","ElLoading","http","watch","nextTick","onMounted"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version = "0.0.87";
3
+ var version = "0.0.89";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=package.json.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "el-plus",
3
- "version": "0.0.87",
3
+ "version": "0.0.89",
4
4
  "description": "pro base on element-plus",
5
5
  "module": "./es/index.mjs",
6
6
  "keywords": [
@@ -22,7 +22,9 @@
22
22
  "axios": "^1.13.2",
23
23
  "element-plus": "^2.13.0",
24
24
  "vue": "^3.5.26",
25
- "vue-router": "^4.6.4"
25
+ "vue-router": "^4.6.4",
26
+ "vue-router3": "npm:vue-router@^3.6.5",
27
+ "vue2": "npm:vue@^2.7.16"
26
28
  },
27
29
  "dependencies": {
28
30
  "@vueuse/core": "^14.1.0",
@@ -1,23 +0,0 @@
1
- # 组件文档索引
2
-
3
- 所有组件可自由组合到 Form 中,配置时请参考各组件文档:
4
-
5
- | 组件 | 文档 | 说明 |
6
- |------|------|------|
7
- | EpSearchListPage | [search-list-page.md](./search-list-page.md) | 搜索列表页容器 |
8
- | EpForm | [form.md](./form.md) | 表单容器 |
9
- | EpHeader | [header.md](./header.md) | 顶部操作栏 |
10
- | EpTitle | [title.md](./title.md) | 标题分组 |
11
- | EpDialog | [dialog.md](./dialog.md) | 对话框 |
12
- | useFormDialog | [use-form-dialog.md](./use-form-dialog.md) | 表单对话框 Hook |
13
- | useConfirmDialog | [use-confirm-dialog.md](./use-confirm-dialog.md) | 确认对话框 Hook |
14
- | useChooseDialog | [use-choose-dialog.md](./use-choose-dialog.md) | 选择对话框 Hook |
15
- | EpInput | [input.md](./input.md) | 输入框 |
16
- | EpSelect | [select.md](./select.md) | 下拉选择 |
17
- | EpDatePickerRange | [date-picker-range.md](./date-picker-range.md) | 日期范围选择 |
18
- | EpTable | [table.md](./table.md) | 数据表格 |
19
- | EpCustomColumn | [custom-column.md](./custom-column.md) | 自定义列配置 |
20
- | EpLink | [link.md](./link.md) | 链接 |
21
- | EpButtons | [buttons.md](./buttons.md) | 按钮组 |
22
- | EpAttachment | [attachment.md](./attachment.md) | 附件管理 |
23
- | EpFooterInfo | [footer-info.md](./footer-info.md) | 底部信息 |