@ditari/bsui 1.1.47 → 1.1.49
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.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/menu/Menu.cjs +6 -1
- package/dist/cjs/menu/Menu.cjs.map +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/menu/Menu.mjs +6 -1
- package/dist/esm/menu/Menu.mjs.map +1 -1
- package/package.json +7 -3
- package/example/index.html +0 -13
- package/example/node_modules/.vite/deps/@ant-design_icons-vue.js +0 -29406
- package/example/node_modules/.vite/deps/@ant-design_icons-vue.js.map +0 -7
- package/example/node_modules/.vite/deps/@vueuse_core.js +0 -8255
- package/example/node_modules/.vite/deps/@vueuse_core.js.map +0 -7
- package/example/node_modules/.vite/deps/_metadata.json +0 -80
- package/example/node_modules/.vite/deps/ant-design-vue.js +0 -62756
- package/example/node_modules/.vite/deps/ant-design-vue.js.map +0 -7
- package/example/node_modules/.vite/deps/axios.js +0 -2126
- package/example/node_modules/.vite/deps/axios.js.map +0 -7
- package/example/node_modules/.vite/deps/chunk-5WWUZCGV.js +0 -36
- package/example/node_modules/.vite/deps/chunk-5WWUZCGV.js.map +0 -7
- package/example/node_modules/.vite/deps/chunk-D36HXFYL.js +0 -25
- package/example/node_modules/.vite/deps/chunk-D36HXFYL.js.map +0 -7
- package/example/node_modules/.vite/deps/chunk-EBDM3ESC.js +0 -161
- package/example/node_modules/.vite/deps/chunk-EBDM3ESC.js.map +0 -7
- package/example/node_modules/.vite/deps/chunk-EKNPBJBG.js +0 -3600
- package/example/node_modules/.vite/deps/chunk-EKNPBJBG.js.map +0 -7
- package/example/node_modules/.vite/deps/chunk-GK7Q6YQN.js +0 -10796
- package/example/node_modules/.vite/deps/chunk-GK7Q6YQN.js.map +0 -7
- package/example/node_modules/.vite/deps/chunk-TDI2FIXO.js +0 -19
- package/example/node_modules/.vite/deps/chunk-TDI2FIXO.js.map +0 -7
- package/example/node_modules/.vite/deps/package.json +0 -3
- package/example/node_modules/.vite/deps/pinia-plugin-persistedstate.js +0 -125
- package/example/node_modules/.vite/deps/pinia-plugin-persistedstate.js.map +0 -7
- package/example/node_modules/.vite/deps/pinia.js +0 -1519
- package/example/node_modules/.vite/deps/pinia.js.map +0 -7
- package/example/node_modules/.vite/deps/vue-request.js +0 -1191
- package/example/node_modules/.vite/deps/vue-request.js.map +0 -7
- package/example/node_modules/.vite/deps/vue-router.js +0 -2667
- package/example/node_modules/.vite/deps/vue-router.js.map +0 -7
- package/example/node_modules/.vite/deps/vue.js +0 -314
- package/example/node_modules/.vite/deps/vue.js.map +0 -7
- package/example/package.json +0 -17
- package/example/src/App.vue +0 -7
- package/example/src/api/list.ts +0 -22
- package/example/src/api/user.ts +0 -13
- package/example/src/components/AppMain.vue +0 -113
- package/example/src/hooks.ts +0 -103
- package/example/src/main.ts +0 -22
- package/example/src/router/form/index.route.ts +0 -23
- package/example/src/router/index.ts +0 -61
- package/example/src/router/table/index.route.ts +0 -39
- package/example/src/views/Demo.vue +0 -49
- package/example/src/views/DemoBk.vue +0 -34
- package/example/src/views/Login.vue +0 -79
- package/example/src/views/form/List.vue +0 -16
- package/example/src/views/form/List2.vue +0 -74
- package/example/src/views/form/QueryFormDemo.vue +0 -49
- package/example/src/views/form/dyn/List.vue +0 -121
- package/example/src/views/table/Add.vue +0 -377
- package/example/src/views/table/Demo.vue +0 -15
- package/example/src/views/table/Demo2.vue +0 -12
- package/example/src/views/table/Edit.vue +0 -10
- package/example/src/views/table/List.vue +0 -415
- package/example/src/views/table/Test.tsx +0 -42
- package/example/src/views/table/TestModal.vue +0 -64
- package/example/src/views/table/WorkStatusRound.vue +0 -31
- package/example/src/views/table/components/AddForm.vue +0 -44
- package/example/src/views/table/hooks.ts +0 -106
- package/example/src/views/task/Todo.vue +0 -6
- package/example/tsconfig.json +0 -16
- package/example/utils/http.ts +0 -107
- package/example/vite-env.d.ts +0 -8
- package/example/vite.config.ts +0 -10
- package/src/_utils/html.ts +0 -17
- package/src/_utils/install.ts +0 -12
- package/src/components.ts +0 -10
- package/src/config/Config.vue +0 -8
- package/src/date/RangePicker.tsx +0 -93
- package/src/date/index.ts +0 -9
- package/src/desensitize/Desensitize.tsx +0 -97
- package/src/desensitize/index.ts +0 -9
- package/src/desensitize/style/index.scss +0 -8
- package/src/dic/DicReplace.tsx +0 -63
- package/src/dic/index.ts +0 -8
- package/src/dic/replace.worker.ts +0 -25
- package/src/form/DQueryForm.tsx +0 -258
- package/src/form/index.ts +0 -9
- package/src/form/style/index.less +0 -0
- package/src/grid/Grid.tsx +0 -83
- package/src/grid/GridItem.tsx +0 -15
- package/src/grid/index.md +0 -4
- package/src/grid/index.ts +0 -16
- package/src/grid/style/index.scss +0 -70
- package/src/index.scss +0 -19
- package/src/index.ts +0 -50
- package/src/json-scheme-render/JsonSchemeRender.tsx +0 -101
- package/src/json-scheme-render/index.ts +0 -9
- package/src/layout/Breadcrumb.vue +0 -39
- package/src/layout/FuckMain.vue +0 -90
- package/src/layout/List.vue +0 -145
- package/src/layout/Main.vue +0 -97
- package/src/layout/NavTabs.vue +0 -129
- package/src/layout/Show.vue +0 -135
- package/src/layout/index.ts +0 -24
- package/src/layout/style/breadcrumb.scss +0 -61
- package/src/layout/style/fuckmain.scss +0 -21
- package/src/layout/style/index.scss +0 -35
- package/src/layout/style/list.scss +0 -26
- package/src/layout/style/main.scss +0 -74
- package/src/layout/style/navtab.scss +0 -146
- package/src/layout/style/show.scss +0 -50
- package/src/menu/Menu.tsx +0 -181
- package/src/menu/style/index.scss +0 -26
- package/src/modal/Modal.tsx +0 -83
- package/src/modal/index.ts +0 -9
- package/src/modal/style/index.scss +0 -74
- package/src/select/Select.vue +0 -177
- package/src/select/dic.worker.ts +0 -32
- package/src/select/index.ts +0 -9
- package/src/table/Field.vue +0 -44
- package/src/table/Table.tsx +0 -515
- package/src/table/index.md +0 -1
- package/src/table/index.ts +0 -9
- package/src/table/interface/table.ts +0 -64
- package/src/table/style/index.scss +0 -10
- package/src/theme/index.ts +0 -1
- package/src/theme/theme.scss +0 -1
- package/src/theme/variable.scss +0 -67
package/CHANGELOG.md
CHANGED
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { createPinia } from \"pinia\";\nimport { createPersistedState } from \"pinia-plugin-persistedstate\";\n\nimport * as components from \"./components\";\nexport * from \"./components\";\n\
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { createPinia } from \"pinia\";\nimport { createPersistedState } from \"pinia-plugin-persistedstate\";\n\nimport * as components from \"./components\";\nexport * from \"./components\";\n\nexport interface MenuIcon {\n componentName: string | \"nativeHtml\";\n type: string;\n}\nexport interface Options {\n menuIcon: MenuIcon;\n prop?: string;\n}\nconst c: any = components;\nexport const install = function (app: App, opts: Options) {\n Object.keys(c).forEach((key) => {\n const component = c[key];\n if (component.install) {\n app.use(component);\n }\n });\n //注册pinia\n const pinia = createPinia();\n //pinia启用持久化\n pinia.use(\n createPersistedState({\n storage: sessionStorage\n })\n );\n app.use(pinia);\n app.provide(\"menuIcon\", opts.menuIcon || {});\n\n // // 创建 Web Worker 连接池实例\n // const workerPool = new WorkerPool(DicWorker, 2); // 这里设置连接池的大小为 5\n // workerPool.initialize();\n // // 注入连接池实例\n // app.provide(\"dicWorkerPool\", workerPool);\n // // 创建 Web Worker 连接池实例\n // const repWorkerPool = new WorkerPool(ReplaceWorker, 2); // 这里设置连接池的大小为 5\n // repWorkerPool.initialize();\n // // 注入连接池实例\n // app.provide(\"repWorkerPool\", repWorkerPool);\n};\n\nexport default {\n install\n};\n"],"names":["pinia","createPinia","createPersistedState"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,CAAS,GAAA,UAAA,CAAA;AACF,MAAA,OAAA,GAAU,SAAU,GAAA,EAAU,IAAe,EAAA;AACxD,EAAA,MAAA,CAAO,IAAK,CAAA,CAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC9B,IAAM,MAAA,SAAA,GAAY,EAAE,GAAG,CAAA,CAAA;AACvB,IAAA,IAAI,UAAU,OAAS,EAAA;AACrB,MAAA,GAAA,CAAI,IAAI,SAAS,CAAA,CAAA;AAAA,KACnB;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAMA,UAAQC,iBAAY,EAAA,CAAA;AAE1B,EAAMD,OAAA,CAAA,GAAA;AAAA,IACJE,8CAAqB,CAAA;AAAA,MACnB,OAAS,EAAA,cAAA;AAAA,KACV,CAAA;AAAA,GACH,CAAA;AACA,EAAA,GAAA,CAAI,IAAIF,OAAK,CAAA,CAAA;AACb,EAAA,GAAA,CAAI,OAAQ,CAAA,UAAA,EAAY,IAAK,CAAA,QAAA,IAAY,EAAE,CAAA,CAAA;AAY7C,EAAA;AAEA,YAAe;AAAA,EACb,OAAA;AACF,CAAA;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/menu/Menu.cjs
CHANGED
|
@@ -56,9 +56,14 @@ var Menu = /* @__PURE__ */ vue.defineComponent({
|
|
|
56
56
|
key,
|
|
57
57
|
keyPath
|
|
58
58
|
}) => {
|
|
59
|
+
var _a;
|
|
59
60
|
openMenusKeys.value = keyPath;
|
|
60
61
|
selectedMenuKeys.value = [key];
|
|
61
|
-
route.
|
|
62
|
+
if (((_a = route.meta) == null ? void 0 : _a.open) === "_blank") {
|
|
63
|
+
window.open(window.location.origin + route.path, "_blank");
|
|
64
|
+
} else {
|
|
65
|
+
route.path !== key ? router.push(key).then((r) => r ? console.warn(r) : null) : null;
|
|
66
|
+
}
|
|
62
67
|
};
|
|
63
68
|
const renderMenu = (menu) => {
|
|
64
69
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode(vue.resolveComponent("a-menu-item"), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.cjs","sources":["../../../src/menu/Menu.tsx"],"sourcesContent":["import { defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\n\nimport { storeToRefs } from \"pinia\";\n\nimport { useMenuStore, useSettingsStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DMenu\",\n setup() {\n const router = useRouter();\n const route = useRoute();\n const { componentName, prop: menuProp } = inject(\"menuIcon\") as any;\n // 菜单store\n const menuStore = useMenuStore();\n const { list, openMenusKeys, selectedMenuKeys } = storeToRefs(menuStore);\n // 设置store\n const settingsStore = useSettingsStore();\n const { getCollapsed } = storeToRefs(settingsStore) as any;\n\n // watchEffect(() => {\n // if (getCollapsed.value) {\n // // 如果菜单是收缩的状态,则不匹配激活的菜单\n // // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n // return;\n // }\n // // 会被触发两次\n // // 当前激活的url\n // const activatedUrl =\n // selectedMenuKeys.value.length > 0 ? selectedMenuKeys.value[0] : \"\";\n // const parentUrls = getParentUrls(list.value, activatedUrl);\n // openMenusKeys.value = parentUrls || [];\n // });\n\n watch(\n () => selectedMenuKeys.value,\n (newValue: any) => {\n if (getCollapsed.value) {\n // 如果菜单是收缩的状态,则不匹配激活的菜单\n // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n return;\n }\n const activatedUrl = newValue.length > 0 ? newValue[0] : \"\";\n const parentUrls = getParentUrls(list.value, activatedUrl);\n openMenusKeys.value = parentUrls || [];\n },\n {\n deep: true\n }\n );\n\n function getParentUrls(menus: any, url: any) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].url === url || url.startsWith(menus[i].url)) {\n // 如果当前菜单项的url与传入的url相等,说明找到了当前菜单项\n return [menus[i].url];\n } else if (menus[i].children && menus[i].children.length > 0) {\n // 如果当前菜单项有子菜单,则递归查找子菜单\n const parentUrls: any = getParentUrls(menus[i].children, url);\n if (parentUrls) {\n // 如果子菜单中存在当前url,则将当前菜单项的url添加到返回结果中\n return [menus[i].url, ...parentUrls];\n }\n }\n }\n return null;\n }\n\n /**\n * 监听菜单点击事件\n * @param item\n * @param key\n * @param keyPath\n */\n const onClick = ({ key, keyPath }: any) => {\n openMenusKeys.value = keyPath;\n selectedMenuKeys.value = [key];\n // 判断目标路由和当前路由是否相等\n // 不相等的时候再跳转\n route.path !== key\n ? router.push(key).then((r) => (r ? console.warn(r) : null))\n : null;\n };\n\n // 渲染菜单\n const renderMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n icon: () => renderIcon(menu),\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n const iconClass = [\"anticon\", \"anticon-menu\", \"ant-menu-item-icon\"];\n // 渲染图标\n const renderIcon = (menu: any) => {\n return (\n <>\n {!menu.icon ? (\n <div v-show={getCollapsed.value} class={iconClass}>\n {menu.title.substring(0, 1)}\n </div>\n ) : (\n renderIconSwitch(menu.icon)\n )}\n </>\n );\n };\n\n const renderIconSwitch = (icon: any) => {\n if (componentName === \"nativeHtml\") {\n return <span v-html={icon}></span>;\n } else {\n return h(resolveComponent(componentName), {\n [`${menuProp}`]: icon\n });\n }\n };\n\n // 递归渲染子菜单\n const renderSub = (menu: any) => {\n return (\n <>\n <a-sub-menu key={menu.url}>\n {{\n title: () => menu.title,\n icon: () => renderIcon(menu),\n default: () => {\n return menu.children.map(\n (item: any) =>\n !item.children || item.children.length === 0\n ? renderSubMenu(item)\n : renderSub(item) // 递归调用\n );\n }\n }}\n </a-sub-menu>\n </>\n );\n };\n\n // 递归下的子菜单\n const renderSubMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n return () => (\n <>\n <a-menu\n mode=\"inline\"\n theme=\"dark\"\n v-model:openKeys={openMenusKeys.value}\n v-model:selectedKeys={selectedMenuKeys.value}\n onClick={onClick}\n >\n {list.value.map((menu: any) => {\n if (!menu.children || menu.children?.length === 0) {\n // 没有children属性或者children的长度等于0\n return renderMenu(menu);\n } else {\n return renderSub(menu);\n }\n })}\n </a-menu>\n </>\n );\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","setup","router","useRouter","route","useRoute","componentName","prop","menuProp","inject","menuStore","useMenuStore","list","openMenusKeys","selectedMenuKeys","storeToRefs","settingsStore","useSettingsStore","getCollapsed","watch","value","newValue","activatedUrl","length","parentUrls","getParentUrls","deep","menus","url","i","startsWith","children","onClick","key","keyPath","path","push","then","r","console","warn","renderMenu","menu","_createVNode","_Fragment","_resolveComponent","icon","renderIcon","default","title","iconClass","_withDirectives","substring","_vShow","renderIconSwitch","h","resolveComponent","renderSub","map","item","renderSubMenu","_slot","$event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.cjs","sources":["../../../src/menu/Menu.tsx"],"sourcesContent":["import { defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\n\nimport { storeToRefs } from \"pinia\";\n\nimport { useMenuStore, useSettingsStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DMenu\",\n setup() {\n const router = useRouter();\n const route = useRoute();\n const { componentName, prop: menuProp } = inject(\"menuIcon\") as any;\n // 菜单store\n const menuStore = useMenuStore();\n const { list, openMenusKeys, selectedMenuKeys } = storeToRefs(menuStore);\n // 设置store\n const settingsStore = useSettingsStore();\n const { getCollapsed } = storeToRefs(settingsStore) as any;\n\n // watchEffect(() => {\n // if (getCollapsed.value) {\n // // 如果菜单是收缩的状态,则不匹配激活的菜单\n // // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n // return;\n // }\n // // 会被触发两次\n // // 当前激活的url\n // const activatedUrl =\n // selectedMenuKeys.value.length > 0 ? selectedMenuKeys.value[0] : \"\";\n // const parentUrls = getParentUrls(list.value, activatedUrl);\n // openMenusKeys.value = parentUrls || [];\n // });\n\n watch(\n () => selectedMenuKeys.value,\n (newValue: any) => {\n if (getCollapsed.value) {\n // 如果菜单是收缩的状态,则不匹配激活的菜单\n // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n return;\n }\n const activatedUrl = newValue.length > 0 ? newValue[0] : \"\";\n const parentUrls = getParentUrls(list.value, activatedUrl);\n openMenusKeys.value = parentUrls || [];\n },\n {\n deep: true\n }\n );\n\n function getParentUrls(menus: any, url: any) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].url === url || url.startsWith(menus[i].url)) {\n // 如果当前菜单项的url与传入的url相等,说明找到了当前菜单项\n return [menus[i].url];\n } else if (menus[i].children && menus[i].children.length > 0) {\n // 如果当前菜单项有子菜单,则递归查找子菜单\n const parentUrls: any = getParentUrls(menus[i].children, url);\n if (parentUrls) {\n // 如果子菜单中存在当前url,则将当前菜单项的url添加到返回结果中\n return [menus[i].url, ...parentUrls];\n }\n }\n }\n return null;\n }\n\n /**\n * 监听菜单点击事件\n * @param item\n * @param key\n * @param keyPath\n */\n const onClick = ({ key, keyPath }: any) => {\n openMenusKeys.value = keyPath;\n selectedMenuKeys.value = [key];\n // 判断目标路由和当前路由是否相等\n // 不相等的时候再跳转\n if (route.meta?.open === \"_blank\") {\n window.open(window.location.origin + route.path, \"_blank\");\n } else {\n route.path !== key\n ? router.push(key).then((r) => (r ? console.warn(r) : null))\n : null;\n }\n };\n\n // 渲染菜单\n const renderMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n icon: () => renderIcon(menu),\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n const iconClass = [\"anticon\", \"anticon-menu\", \"ant-menu-item-icon\"];\n // 渲染图标\n const renderIcon = (menu: any) => {\n return (\n <>\n {!menu.icon ? (\n <div v-show={getCollapsed.value} class={iconClass}>\n {menu.title.substring(0, 1)}\n </div>\n ) : (\n renderIconSwitch(menu.icon)\n )}\n </>\n );\n };\n\n const renderIconSwitch = (icon: any) => {\n if (componentName === \"nativeHtml\") {\n return <span v-html={icon}></span>;\n } else {\n return h(resolveComponent(componentName), {\n [`${menuProp}`]: icon\n });\n }\n };\n\n // 递归渲染子菜单\n const renderSub = (menu: any) => {\n return (\n <>\n <a-sub-menu key={menu.url}>\n {{\n title: () => menu.title,\n icon: () => renderIcon(menu),\n default: () => {\n return menu.children.map(\n (item: any) =>\n !item.children || item.children.length === 0\n ? renderSubMenu(item)\n : renderSub(item) // 递归调用\n );\n }\n }}\n </a-sub-menu>\n </>\n );\n };\n\n // 递归下的子菜单\n const renderSubMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n return () => (\n <>\n <a-menu\n mode=\"inline\"\n theme=\"dark\"\n v-model:openKeys={openMenusKeys.value}\n v-model:selectedKeys={selectedMenuKeys.value}\n onClick={onClick}\n >\n {list.value.map((menu: any) => {\n if (!menu.children || menu.children?.length === 0) {\n // 没有children属性或者children的长度等于0\n return renderMenu(menu);\n } else {\n return renderSub(menu);\n }\n })}\n </a-menu>\n </>\n );\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","setup","router","useRouter","route","useRoute","componentName","prop","menuProp","inject","menuStore","useMenuStore","list","openMenusKeys","selectedMenuKeys","storeToRefs","settingsStore","useSettingsStore","getCollapsed","watch","value","newValue","activatedUrl","length","parentUrls","getParentUrls","deep","menus","url","i","startsWith","children","onClick","key","keyPath","meta","open","window","location","origin","path","push","then","r","console","warn","renderMenu","menu","_createVNode","_Fragment","_resolveComponent","icon","renderIcon","default","title","iconClass","_withDirectives","substring","_vShow","renderIconSwitch","h","resolveComponent","renderSub","map","item","renderSubMenu","_slot","$event"],"mappings":"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"}
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { createPinia } from \"pinia\";\nimport { createPersistedState } from \"pinia-plugin-persistedstate\";\n\nimport * as components from \"./components\";\nexport * from \"./components\";\n\
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import type { App } from \"vue\";\nimport { createPinia } from \"pinia\";\nimport { createPersistedState } from \"pinia-plugin-persistedstate\";\n\nimport * as components from \"./components\";\nexport * from \"./components\";\n\nexport interface MenuIcon {\n componentName: string | \"nativeHtml\";\n type: string;\n}\nexport interface Options {\n menuIcon: MenuIcon;\n prop?: string;\n}\nconst c: any = components;\nexport const install = function (app: App, opts: Options) {\n Object.keys(c).forEach((key) => {\n const component = c[key];\n if (component.install) {\n app.use(component);\n }\n });\n //注册pinia\n const pinia = createPinia();\n //pinia启用持久化\n pinia.use(\n createPersistedState({\n storage: sessionStorage\n })\n );\n app.use(pinia);\n app.provide(\"menuIcon\", opts.menuIcon || {});\n\n // // 创建 Web Worker 连接池实例\n // const workerPool = new WorkerPool(DicWorker, 2); // 这里设置连接池的大小为 5\n // workerPool.initialize();\n // // 注入连接池实例\n // app.provide(\"dicWorkerPool\", workerPool);\n // // 创建 Web Worker 连接池实例\n // const repWorkerPool = new WorkerPool(ReplaceWorker, 2); // 这里设置连接池的大小为 5\n // repWorkerPool.initialize();\n // // 注入连接池实例\n // app.provide(\"repWorkerPool\", repWorkerPool);\n};\n\nexport default {\n install\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAeA,MAAM,CAAS,GAAA,UAAA,CAAA;AACF,MAAA,OAAA,GAAU,SAAU,GAAA,EAAU,IAAe,EAAA;AACxD,EAAA,MAAA,CAAO,IAAK,CAAA,CAAC,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC9B,IAAM,MAAA,SAAA,GAAY,EAAE,GAAG,CAAA,CAAA;AACvB,IAAA,IAAI,UAAU,OAAS,EAAA;AACrB,MAAA,GAAA,CAAI,IAAI,SAAS,CAAA,CAAA;AAAA,KACnB;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,QAAQ,WAAY,EAAA,CAAA;AAE1B,EAAM,KAAA,CAAA,GAAA;AAAA,IACJ,oBAAqB,CAAA;AAAA,MACnB,OAAS,EAAA,cAAA;AAAA,KACV,CAAA;AAAA,GACH,CAAA;AACA,EAAA,GAAA,CAAI,IAAI,KAAK,CAAA,CAAA;AACb,EAAA,GAAA,CAAI,OAAQ,CAAA,UAAA,EAAY,IAAK,CAAA,QAAA,IAAY,EAAE,CAAA,CAAA;AAY7C,EAAA;AAEA,YAAe;AAAA,EACb,OAAA;AACF,CAAA;;;;"}
|
package/dist/esm/menu/Menu.mjs
CHANGED
|
@@ -52,9 +52,14 @@ var Menu = /* @__PURE__ */ defineComponent({
|
|
|
52
52
|
key,
|
|
53
53
|
keyPath
|
|
54
54
|
}) => {
|
|
55
|
+
var _a;
|
|
55
56
|
openMenusKeys.value = keyPath;
|
|
56
57
|
selectedMenuKeys.value = [key];
|
|
57
|
-
route.
|
|
58
|
+
if (((_a = route.meta) == null ? void 0 : _a.open) === "_blank") {
|
|
59
|
+
window.open(window.location.origin + route.path, "_blank");
|
|
60
|
+
} else {
|
|
61
|
+
route.path !== key ? router.push(key).then((r) => r ? console.warn(r) : null) : null;
|
|
62
|
+
}
|
|
58
63
|
};
|
|
59
64
|
const renderMenu = (menu) => {
|
|
60
65
|
return createVNode(Fragment, null, [createVNode(resolveComponent("a-menu-item"), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.mjs","sources":["../../../src/menu/Menu.tsx"],"sourcesContent":["import { defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\n\nimport { storeToRefs } from \"pinia\";\n\nimport { useMenuStore, useSettingsStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DMenu\",\n setup() {\n const router = useRouter();\n const route = useRoute();\n const { componentName, prop: menuProp } = inject(\"menuIcon\") as any;\n // 菜单store\n const menuStore = useMenuStore();\n const { list, openMenusKeys, selectedMenuKeys } = storeToRefs(menuStore);\n // 设置store\n const settingsStore = useSettingsStore();\n const { getCollapsed } = storeToRefs(settingsStore) as any;\n\n // watchEffect(() => {\n // if (getCollapsed.value) {\n // // 如果菜单是收缩的状态,则不匹配激活的菜单\n // // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n // return;\n // }\n // // 会被触发两次\n // // 当前激活的url\n // const activatedUrl =\n // selectedMenuKeys.value.length > 0 ? selectedMenuKeys.value[0] : \"\";\n // const parentUrls = getParentUrls(list.value, activatedUrl);\n // openMenusKeys.value = parentUrls || [];\n // });\n\n watch(\n () => selectedMenuKeys.value,\n (newValue: any) => {\n if (getCollapsed.value) {\n // 如果菜单是收缩的状态,则不匹配激活的菜单\n // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n return;\n }\n const activatedUrl = newValue.length > 0 ? newValue[0] : \"\";\n const parentUrls = getParentUrls(list.value, activatedUrl);\n openMenusKeys.value = parentUrls || [];\n },\n {\n deep: true\n }\n );\n\n function getParentUrls(menus: any, url: any) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].url === url || url.startsWith(menus[i].url)) {\n // 如果当前菜单项的url与传入的url相等,说明找到了当前菜单项\n return [menus[i].url];\n } else if (menus[i].children && menus[i].children.length > 0) {\n // 如果当前菜单项有子菜单,则递归查找子菜单\n const parentUrls: any = getParentUrls(menus[i].children, url);\n if (parentUrls) {\n // 如果子菜单中存在当前url,则将当前菜单项的url添加到返回结果中\n return [menus[i].url, ...parentUrls];\n }\n }\n }\n return null;\n }\n\n /**\n * 监听菜单点击事件\n * @param item\n * @param key\n * @param keyPath\n */\n const onClick = ({ key, keyPath }: any) => {\n openMenusKeys.value = keyPath;\n selectedMenuKeys.value = [key];\n // 判断目标路由和当前路由是否相等\n // 不相等的时候再跳转\n route.path !== key\n ? router.push(key).then((r) => (r ? console.warn(r) : null))\n : null;\n };\n\n // 渲染菜单\n const renderMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n icon: () => renderIcon(menu),\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n const iconClass = [\"anticon\", \"anticon-menu\", \"ant-menu-item-icon\"];\n // 渲染图标\n const renderIcon = (menu: any) => {\n return (\n <>\n {!menu.icon ? (\n <div v-show={getCollapsed.value} class={iconClass}>\n {menu.title.substring(0, 1)}\n </div>\n ) : (\n renderIconSwitch(menu.icon)\n )}\n </>\n );\n };\n\n const renderIconSwitch = (icon: any) => {\n if (componentName === \"nativeHtml\") {\n return <span v-html={icon}></span>;\n } else {\n return h(resolveComponent(componentName), {\n [`${menuProp}`]: icon\n });\n }\n };\n\n // 递归渲染子菜单\n const renderSub = (menu: any) => {\n return (\n <>\n <a-sub-menu key={menu.url}>\n {{\n title: () => menu.title,\n icon: () => renderIcon(menu),\n default: () => {\n return menu.children.map(\n (item: any) =>\n !item.children || item.children.length === 0\n ? renderSubMenu(item)\n : renderSub(item) // 递归调用\n );\n }\n }}\n </a-sub-menu>\n </>\n );\n };\n\n // 递归下的子菜单\n const renderSubMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n return () => (\n <>\n <a-menu\n mode=\"inline\"\n theme=\"dark\"\n v-model:openKeys={openMenusKeys.value}\n v-model:selectedKeys={selectedMenuKeys.value}\n onClick={onClick}\n >\n {list.value.map((menu: any) => {\n if (!menu.children || menu.children?.length === 0) {\n // 没有children属性或者children的长度等于0\n return renderMenu(menu);\n } else {\n return renderSub(menu);\n }\n })}\n </a-menu>\n </>\n );\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","name","setup","router","useRouter","route","useRoute","componentName","prop","menuProp","inject","menuStore","useMenuStore","list","openMenusKeys","selectedMenuKeys","storeToRefs","settingsStore","useSettingsStore","getCollapsed","watch","value","newValue","activatedUrl","length","parentUrls","getParentUrls","deep","menus","url","i","startsWith","children","onClick","key","keyPath","path","push","then","r","console","warn","renderMenu","menu","_createVNode","_Fragment","_resolveComponent","icon","renderIcon","default","title","iconClass","_withDirectives","substring","_vShow","renderIconSwitch","h","resolveComponent","renderSub","map","item","renderSubMenu","_slot","$event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.mjs","sources":["../../../src/menu/Menu.tsx"],"sourcesContent":["import { defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\n\nimport { storeToRefs } from \"pinia\";\n\nimport { useMenuStore, useSettingsStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DMenu\",\n setup() {\n const router = useRouter();\n const route = useRoute();\n const { componentName, prop: menuProp } = inject(\"menuIcon\") as any;\n // 菜单store\n const menuStore = useMenuStore();\n const { list, openMenusKeys, selectedMenuKeys } = storeToRefs(menuStore);\n // 设置store\n const settingsStore = useSettingsStore();\n const { getCollapsed } = storeToRefs(settingsStore) as any;\n\n // watchEffect(() => {\n // if (getCollapsed.value) {\n // // 如果菜单是收缩的状态,则不匹配激活的菜单\n // // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n // return;\n // }\n // // 会被触发两次\n // // 当前激活的url\n // const activatedUrl =\n // selectedMenuKeys.value.length > 0 ? selectedMenuKeys.value[0] : \"\";\n // const parentUrls = getParentUrls(list.value, activatedUrl);\n // openMenusKeys.value = parentUrls || [];\n // });\n\n watch(\n () => selectedMenuKeys.value,\n (newValue: any) => {\n if (getCollapsed.value) {\n // 如果菜单是收缩的状态,则不匹配激活的菜单\n // 否则 在切换标签的时候,收缩菜单会自动激活悬浮的动作\n return;\n }\n const activatedUrl = newValue.length > 0 ? newValue[0] : \"\";\n const parentUrls = getParentUrls(list.value, activatedUrl);\n openMenusKeys.value = parentUrls || [];\n },\n {\n deep: true\n }\n );\n\n function getParentUrls(menus: any, url: any) {\n for (let i = 0; i < menus.length; i++) {\n if (menus[i].url === url || url.startsWith(menus[i].url)) {\n // 如果当前菜单项的url与传入的url相等,说明找到了当前菜单项\n return [menus[i].url];\n } else if (menus[i].children && menus[i].children.length > 0) {\n // 如果当前菜单项有子菜单,则递归查找子菜单\n const parentUrls: any = getParentUrls(menus[i].children, url);\n if (parentUrls) {\n // 如果子菜单中存在当前url,则将当前菜单项的url添加到返回结果中\n return [menus[i].url, ...parentUrls];\n }\n }\n }\n return null;\n }\n\n /**\n * 监听菜单点击事件\n * @param item\n * @param key\n * @param keyPath\n */\n const onClick = ({ key, keyPath }: any) => {\n openMenusKeys.value = keyPath;\n selectedMenuKeys.value = [key];\n // 判断目标路由和当前路由是否相等\n // 不相等的时候再跳转\n if (route.meta?.open === \"_blank\") {\n window.open(window.location.origin + route.path, \"_blank\");\n } else {\n route.path !== key\n ? router.push(key).then((r) => (r ? console.warn(r) : null))\n : null;\n }\n };\n\n // 渲染菜单\n const renderMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n icon: () => renderIcon(menu),\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n const iconClass = [\"anticon\", \"anticon-menu\", \"ant-menu-item-icon\"];\n // 渲染图标\n const renderIcon = (menu: any) => {\n return (\n <>\n {!menu.icon ? (\n <div v-show={getCollapsed.value} class={iconClass}>\n {menu.title.substring(0, 1)}\n </div>\n ) : (\n renderIconSwitch(menu.icon)\n )}\n </>\n );\n };\n\n const renderIconSwitch = (icon: any) => {\n if (componentName === \"nativeHtml\") {\n return <span v-html={icon}></span>;\n } else {\n return h(resolveComponent(componentName), {\n [`${menuProp}`]: icon\n });\n }\n };\n\n // 递归渲染子菜单\n const renderSub = (menu: any) => {\n return (\n <>\n <a-sub-menu key={menu.url}>\n {{\n title: () => menu.title,\n icon: () => renderIcon(menu),\n default: () => {\n return menu.children.map(\n (item: any) =>\n !item.children || item.children.length === 0\n ? renderSubMenu(item)\n : renderSub(item) // 递归调用\n );\n }\n }}\n </a-sub-menu>\n </>\n );\n };\n\n // 递归下的子菜单\n const renderSubMenu = (menu: any) => {\n return (\n <>\n <a-menu-item key={menu.url}>\n {{\n default: () => menu.title\n }}\n </a-menu-item>\n </>\n );\n };\n\n return () => (\n <>\n <a-menu\n mode=\"inline\"\n theme=\"dark\"\n v-model:openKeys={openMenusKeys.value}\n v-model:selectedKeys={selectedMenuKeys.value}\n onClick={onClick}\n >\n {list.value.map((menu: any) => {\n if (!menu.children || menu.children?.length === 0) {\n // 没有children属性或者children的长度等于0\n return renderMenu(menu);\n } else {\n return renderSub(menu);\n }\n })}\n </a-menu>\n </>\n );\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","name","setup","router","useRouter","route","useRoute","componentName","prop","menuProp","inject","menuStore","useMenuStore","list","openMenusKeys","selectedMenuKeys","storeToRefs","settingsStore","useSettingsStore","getCollapsed","watch","value","newValue","activatedUrl","length","parentUrls","getParentUrls","deep","menus","url","i","startsWith","children","onClick","key","keyPath","meta","open","window","location","origin","path","push","then","r","console","warn","renderMenu","menu","_createVNode","_Fragment","_resolveComponent","icon","renderIcon","default","title","iconClass","_withDirectives","substring","_vShow","renderIconSwitch","h","resolveComponent","renderSub","map","item","renderSubMenu","_slot","$event"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ditari/bsui",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.49",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "",
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
10
10
|
},
|
|
11
|
+
"files": [
|
|
12
|
+
"CHANGELOG.md",
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
11
15
|
"main": "dist/cjs/index.cjs",
|
|
12
16
|
"module": "dist/esm/index.mjs",
|
|
13
17
|
"types": "dist/esm/index.d.ts",
|
|
@@ -29,8 +33,8 @@
|
|
|
29
33
|
"./theme/*": "./dist/style/*"
|
|
30
34
|
},
|
|
31
35
|
"dependencies": {
|
|
32
|
-
"@ditari/
|
|
33
|
-
"@ditari/
|
|
36
|
+
"@ditari/store": "^1.0.8",
|
|
37
|
+
"@ditari/hooks": "^1.0.10"
|
|
34
38
|
},
|
|
35
39
|
"peerDependencies": {
|
|
36
40
|
"vue": "^3.3.4",
|
package/example/index.html
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>Document</title>
|
|
8
|
-
</head>
|
|
9
|
-
<body>
|
|
10
|
-
<div id="app"></div>
|
|
11
|
-
<script src="./src/main.ts" type="module"></script>
|
|
12
|
-
</body>
|
|
13
|
-
</html>
|