diff --git a/package.json b/package.json index dcf8bafa..d21c8c33 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,8 @@ "vue-i18n": "9.13.1", "vue-router": "4.4.0", "wangeditor": "4.7.15", - "xgplayer": "3.0.17" + "xgplayer": "3.0.17", + "xlsx": "0.18.5" }, "devDependencies": { "@amap/amap-jsapi-types": "0.0.8", diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index d77365f2..371bc99d 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -196,7 +196,8 @@ const local: App.I18n.Schema = { plugin_swiper: 'Swiper', plugin_video: 'Video', plugin_barcode: 'Barcode', - plugin_pinyin: 'pinyin' + plugin_pinyin: 'pinyin', + plugin_excel: 'Excel' }, page: { login: { diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 4f4a0d31..b1849cdd 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -196,7 +196,8 @@ const local: App.I18n.Schema = { plugin_swiper: 'Swiper', plugin_video: '视频', plugin_barcode: '条形码', - plugin_pinyin: '拼音' + plugin_pinyin: '拼音', + plugin_excel: 'Excel' }, page: { login: { diff --git a/src/router/elegant/imports.ts b/src/router/elegant/imports.ts index 0a24ec21..0bf314e1 100644 --- a/src/router/elegant/imports.ts +++ b/src/router/elegant/imports.ts @@ -41,6 +41,7 @@ export const views: Record Promise import("@/views/plugin/copy/index.vue"), plugin_editor_markdown: () => import("@/views/plugin/editor/markdown/index.vue"), plugin_editor_quill: () => import("@/views/plugin/editor/quill/index.vue"), + plugin_excel: () => import("@/views/plugin/excel/index.vue"), plugin_icon: () => import("@/views/plugin/icon/index.vue"), plugin_map: () => import("@/views/plugin/map/index.vue"), plugin_pinyin: () => import("@/views/plugin/pinyin/index.vue"), diff --git a/src/router/elegant/routes.ts b/src/router/elegant/routes.ts index f94603e5..5981a03a 100644 --- a/src/router/elegant/routes.ts +++ b/src/router/elegant/routes.ts @@ -413,6 +413,17 @@ export const generatedRoutes: GeneratedRoute[] = [ } ] }, + { + name: 'plugin_excel', + path: '/plugin/excel', + component: 'view.plugin_excel', + meta: { + title: 'plugin_excel', + i18nKey: 'route.plugin_excel', + icon: 'ri:file-excel-2-line', + keepAlive: true + } + }, { name: 'plugin_icon', path: '/plugin/icon', diff --git a/src/router/elegant/transform.ts b/src/router/elegant/transform.ts index 392170cc..a569bec4 100644 --- a/src/router/elegant/transform.ts +++ b/src/router/elegant/transform.ts @@ -209,6 +209,7 @@ const routeMap: RouteMap = { "plugin_editor": "/plugin/editor", "plugin_editor_markdown": "/plugin/editor/markdown", "plugin_editor_quill": "/plugin/editor/quill", + "plugin_excel": "/plugin/excel", "plugin_icon": "/plugin/icon", "plugin_map": "/plugin/map", "plugin_pinyin": "/plugin/pinyin", diff --git a/src/typings/elegant-router.d.ts b/src/typings/elegant-router.d.ts index f2b04660..485cec11 100644 --- a/src/typings/elegant-router.d.ts +++ b/src/typings/elegant-router.d.ts @@ -65,6 +65,7 @@ declare module "@elegant-router/types" { "plugin_editor": "/plugin/editor"; "plugin_editor_markdown": "/plugin/editor/markdown"; "plugin_editor_quill": "/plugin/editor/quill"; + "plugin_excel": "/plugin/excel"; "plugin_icon": "/plugin/icon"; "plugin_map": "/plugin/map"; "plugin_pinyin": "/plugin/pinyin"; @@ -171,6 +172,7 @@ declare module "@elegant-router/types" { | "plugin_copy" | "plugin_editor_markdown" | "plugin_editor_quill" + | "plugin_excel" | "plugin_icon" | "plugin_map" | "plugin_pinyin" diff --git a/src/views/plugin/excel/index.vue b/src/views/plugin/excel/index.vue new file mode 100644 index 00000000..862603ca --- /dev/null +++ b/src/views/plugin/excel/index.vue @@ -0,0 +1,201 @@ + + + + +