From e820e2f7fc0ba644f61c940422bb4d816e6ca7ec Mon Sep 17 00:00:00 2001 From: "luoweijian@timbercld.com" Date: Fri, 15 Nov 2024 16:20:03 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix=EF=BC=9A=E8=B0=83=E8=AF=95=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/Aside/aside.vue | 4 ++- packages/Aside/interface.ts | 3 -- packages/Button/button.vue | 12 +++++++- packages/Button/interface.ts | 11 ------- packages/Cascader/cascader.vue | 40 +++++++++++++++++++++----- packages/Cascader/interface.ts | 26 ----------------- packages/Checkbox/checkbox.vue | 9 +++++- packages/Checkbox/interface.ts | 8 ------ packages/ColorPicker/colorPicker.vue | 14 +++++++-- packages/ColorPicker/interface.ts | 12 -------- packages/Container/container.vue | 5 +++- packages/Container/interface.ts | 3 -- packages/Dialog/dialog.vue | 17 ++++++++++- packages/Dialog/interface.ts | 15 ---------- packages/Drawer/drawer.vue | 11 ++++++- packages/Drawer/interface.ts | 9 ------ packages/Dropdown/dropdown.vue | 6 +++- packages/Dropdown/interface.ts | 5 ---- packages/Icon/icon.vue | 1 + packages/Input-number/inputNumber.vue | 14 ++++++++- packages/Input-number/interface.ts | 13 --------- packages/Input/input.vue | 14 ++++++++- packages/Input/interface.ts | 13 --------- packages/Popper/interface.ts | 25 ---------------- packages/Popper/popper.vue | 26 ++++++++++++++++- packages/Radio/interface.ts | 12 -------- packages/Radio/radio.vue | 13 ++++++++- packages/Search/interface.ts | 15 ---------- packages/Search/search.vue | 17 ++++++++++- packages/Selector/interface.ts | 17 ----------- packages/Selector/selector.vue | 19 +++++++++++- packages/Slider/interface.ts | 0 packages/Switch/interface.ts | 13 --------- packages/Switch/switch.vue | 14 ++++++++- packages/Table/interface.ts | 6 ---- packages/Table/table.vue | 8 +++++- packages/Tabs/interface.ts | 7 ----- packages/Tabs/tabs.vue | 9 +++++- packages/Tag/interface.ts | 8 ------ packages/Tag/tag.vue | 9 +++++- packages/Toolbar/interface.ts | 6 ---- packages/Toolbar/toolbar.vue | 8 +++++- packages/Tree/interface.ts | 13 --------- packages/Tree/tree.vue | 14 ++++++++- packages/TreeChildren/interface.ts | 13 --------- packages/TreeChildren/treeChildren.vue | 15 +++++++++- packages/Window/interface.ts | 8 ------ packages/Window/window.vue | 11 ++++++- utils/util.ts | 16 ----------- 49 files changed, 280 insertions(+), 307 deletions(-) delete mode 100644 packages/Aside/interface.ts delete mode 100644 packages/Button/interface.ts delete mode 100644 packages/Cascader/interface.ts delete mode 100644 packages/Checkbox/interface.ts delete mode 100644 packages/ColorPicker/interface.ts delete mode 100644 packages/Container/interface.ts delete mode 100644 packages/Dialog/interface.ts delete mode 100644 packages/Drawer/interface.ts delete mode 100644 packages/Dropdown/interface.ts delete mode 100644 packages/Input-number/interface.ts delete mode 100644 packages/Input/interface.ts delete mode 100644 packages/Popper/interface.ts delete mode 100644 packages/Radio/interface.ts delete mode 100644 packages/Search/interface.ts delete mode 100644 packages/Selector/interface.ts delete mode 100644 packages/Slider/interface.ts delete mode 100644 packages/Switch/interface.ts delete mode 100644 packages/Table/interface.ts delete mode 100644 packages/Tabs/interface.ts delete mode 100644 packages/Tag/interface.ts delete mode 100644 packages/Toolbar/interface.ts delete mode 100644 packages/Tree/interface.ts delete mode 100644 packages/TreeChildren/interface.ts delete mode 100644 packages/Window/interface.ts delete mode 100644 utils/util.ts diff --git a/packages/Aside/aside.vue b/packages/Aside/aside.vue index 4b2a40b..51b4aac 100644 --- a/packages/Aside/aside.vue +++ b/packages/Aside/aside.vue @@ -12,7 +12,9 @@ export default defineComponent({ - diff --git a/packages/ColorPicker/colorPicker.vue b/packages/ColorPicker/colorPicker.vue index e4005e4..9ac80b6 100644 --- a/packages/ColorPicker/colorPicker.vue +++ b/packages/ColorPicker/colorPicker.vue @@ -67,417 +67,441 @@ - - diff --git a/packages/ColorPicker/interface.ts b/packages/ColorPicker/interface.ts new file mode 100644 index 0000000..1b919b5 --- /dev/null +++ b/packages/ColorPicker/interface.ts @@ -0,0 +1,6 @@ +export interface Color { + r: number; + g: number; + b: number; + a: number; +} diff --git a/packages/Container/container.vue b/packages/Container/container.vue index b35961a..8d3c00a 100644 --- a/packages/Container/container.vue +++ b/packages/Container/container.vue @@ -5,44 +5,45 @@ - - diff --git a/packages/Dialog/dialog.vue b/packages/Dialog/dialog.vue index 7241e6f..0dd47a8 100644 --- a/packages/Dialog/dialog.vue +++ b/packages/Dialog/dialog.vue @@ -29,66 +29,84 @@ - - diff --git a/packages/Drawer/drawer.vue b/packages/Drawer/drawer.vue index 594abb5..9f47d26 100644 --- a/packages/Drawer/drawer.vue +++ b/packages/Drawer/drawer.vue @@ -23,53 +23,64 @@ + name: 'puiDrawer', + props: { + position: { + type: String, + default: 'left', + }, + title: { + type: String, + default: 'Drawer', + }, + header: { + type: Boolean, + default: false, + }, + width: { + type: [Number, String, Boolean], + }, + height: { + type: [Number, String, Boolean], + }, + zIndex: { + type: [Number, String], + default: 1, + }, + show: { + type: Boolean, + default: false, + }, + }, + setup(props) { + const componentRef = reactive({ + show: props.show, + }); - diff --git a/packages/Dropdown/dropdown.vue b/packages/Dropdown/dropdown.vue index 9e2b6ad..035be2b 100644 --- a/packages/Dropdown/dropdown.vue +++ b/packages/Dropdown/dropdown.vue @@ -3,63 +3,67 @@ -
+
- - diff --git a/packages/Footer/footer.vue b/packages/Footer/footer.vue index f089862..d34c7d3 100644 --- a/packages/Footer/footer.vue +++ b/packages/Footer/footer.vue @@ -8,11 +8,11 @@ import { defineComponent } from 'vue'; export default defineComponent({ name: 'PuiFooter', + props: { + height: { + type: String, + default: '60px', + }, + }, }); - - diff --git a/packages/Header/header.vue b/packages/Header/header.vue index def5787..adafe9a 100644 --- a/packages/Header/header.vue +++ b/packages/Header/header.vue @@ -8,11 +8,11 @@ import { defineComponent } from 'vue'; export default defineComponent({ name: 'PuiHeader', + props: { + height: { + type: String, + default: '60px', + }, + }, }); - - diff --git a/packages/Icon/icon.vue b/packages/Icon/icon.vue index 3bdb960..89adf4f 100644 --- a/packages/Icon/icon.vue +++ b/packages/Icon/icon.vue @@ -5,17 +5,30 @@ - - diff --git a/packages/Input-number/inputNumber.vue b/packages/Input-number/inputNumber.vue index e36ce06..7b8051f 100644 --- a/packages/Input-number/inputNumber.vue +++ b/packages/Input-number/inputNumber.vue @@ -7,75 +7,100 @@ :placeholder="placeholder" :disabled="disabled" :readonly="readonly" - :step="props.step" + :step="step" /> - - diff --git a/packages/Input/input.vue b/packages/Input/input.vue index 625f6e0..869b842 100644 --- a/packages/Input/input.vue +++ b/packages/Input/input.vue @@ -5,7 +5,7 @@ import { defineComponent } from 'vue'; export default defineComponent({ - name: 'pui-input', -}); - - - diff --git a/packages/Popper/index.ts b/packages/Popper/index.ts new file mode 100644 index 0000000..a8caf3a --- /dev/null +++ b/packages/Popper/index.ts @@ -0,0 +1,9 @@ +import { App } from 'vue'; +import PuiPopper from './popper.vue'; + +// 定义 install 方法, App 作为参数 +PuiPopper.install = (app: App): void => { + app.component(PuiPopper.name as string, PuiPopper); +}; + +export default PuiPopper; diff --git a/packages/Popper/popper.vue b/packages/Popper/popper.vue index 9a6580d..3bf95f0 100644 --- a/packages/Popper/popper.vue +++ b/packages/Popper/popper.vue @@ -1,6 +1,6 @@ - - diff --git a/packages/Radio/radio.vue b/packages/Radio/radio.vue index 37620d8..b9684ec 100644 --- a/packages/Radio/radio.vue +++ b/packages/Radio/radio.vue @@ -12,37 +12,48 @@ - - diff --git a/packages/RadioGroup/interface.ts b/packages/RadioGroup/interface.ts new file mode 100644 index 0000000..5c2c2d6 --- /dev/null +++ b/packages/RadioGroup/interface.ts @@ -0,0 +1,5 @@ +export interface Data { + label: string; + value: string; + disabled: boolean; +} diff --git a/packages/RadioGroup/radioGroup.vue b/packages/RadioGroup/radioGroup.vue index 665c86b..943254e 100644 --- a/packages/RadioGroup/radioGroup.vue +++ b/packages/RadioGroup/radioGroup.vue @@ -13,9 +13,11 @@ +import { defineComponent, PropType, reactive, watch, computed } from 'vue'; +import type { Data } from './interface'; - diff --git a/packages/Selector/interface.ts b/packages/Selector/interface.ts new file mode 100644 index 0000000..4c228c7 --- /dev/null +++ b/packages/Selector/interface.ts @@ -0,0 +1,4 @@ +export interface Data { + label: string; + value: string; +} diff --git a/packages/Selector/selector.vue b/packages/Selector/selector.vue index eeb6fdf..c18f8e1 100644 --- a/packages/Selector/selector.vue +++ b/packages/Selector/selector.vue @@ -1,5 +1,5 @@ - - diff --git a/packages/Slider/slider.vue b/packages/Slider/slider.vue index d3d6258..e7e4ac6 100644 --- a/packages/Slider/slider.vue +++ b/packages/Slider/slider.vue @@ -12,45 +12,45 @@ - - diff --git a/packages/Svg/svg.vue b/packages/Svg/svg.vue index d7816c7..7704c72 100644 --- a/packages/Svg/svg.vue +++ b/packages/Svg/svg.vue @@ -7,23 +7,30 @@ import { defineComponent } from 'vue'; export default defineComponent({ name: 'puiSvg', -}); - - - diff --git a/packages/Switch/switch.vue b/packages/Switch/switch.vue index 65d0330..6f30541 100644 --- a/packages/Switch/switch.vue +++ b/packages/Switch/switch.vue @@ -6,9 +6,8 @@ > {{ inactiveLabel }}
@@ -16,7 +15,7 @@
{{ activeLabel }} - + @@ -24,43 +23,70 @@ - - diff --git a/packages/Table/table.vue b/packages/Table/table.vue index edede97..8f2e8e4 100644 --- a/packages/Table/table.vue +++ b/packages/Table/table.vue @@ -18,29 +18,26 @@ - - diff --git a/packages/Tabs/tabs.vue b/packages/Tabs/tabs.vue index c0e40bf..c515291 100644 --- a/packages/Tabs/tabs.vue +++ b/packages/Tabs/tabs.vue @@ -6,9 +6,9 @@
- - diff --git a/packages/Tag/tag.vue b/packages/Tag/tag.vue index 2c5b4e6..317a0ab 100644 --- a/packages/Tag/tag.vue +++ b/packages/Tag/tag.vue @@ -21,26 +21,40 @@ - - diff --git a/packages/Toolbar/toolbar.vue b/packages/Toolbar/toolbar.vue index 2c6b8f4..2e6342d 100644 --- a/packages/Toolbar/toolbar.vue +++ b/packages/Toolbar/toolbar.vue @@ -48,8 +48,8 @@ />
@@ -184,109 +184,116 @@ - - diff --git a/packages/Tree/tree.vue b/packages/Tree/tree.vue index 40630cc..9935997 100644 --- a/packages/Tree/tree.vue +++ b/packages/Tree/tree.vue @@ -20,84 +20,98 @@ - - diff --git a/packages/TreeChildren/interface.ts b/packages/TreeChildren/interface.ts new file mode 100644 index 0000000..01d2536 --- /dev/null +++ b/packages/TreeChildren/interface.ts @@ -0,0 +1,8 @@ +export interface BaseOptions { + label: string, + value: string | number, + bg: boolean | undefined, + tip: string | undefined, + fn: () => {}, + children?: BaseOptions[] +} \ No newline at end of file diff --git a/packages/TreeChildren/treeChildren.vue b/packages/TreeChildren/treeChildren.vue index 1394cb7..4e3580b 100644 --- a/packages/TreeChildren/treeChildren.vue +++ b/packages/TreeChildren/treeChildren.vue @@ -34,84 +34,84 @@ + name: 'puiTreeChildren', + props: { + dataList: { + type: Array as PropType, + required: true, + default: [], + }, + // 已选中的id集合 + selectIds: { + type: Array, + default: [], + }, + show: { + type: Boolean, + default: false, + }, + }, + emits: { + 'update:selectIds': (val: any) => [], + 'onNodeClick': (val: any) => {}, + }, + setup(props, ctx) { + const componentRef = reactive({ + activeItem: {}, + currentIndex: null as null | number, + }); - diff --git a/packages/Window/window.vue b/packages/Window/window.vue index 3b31f1f..8f103ad 100644 --- a/packages/Window/window.vue +++ b/packages/Window/window.vue @@ -26,7 +26,7 @@
-
+

{{ title }}

@@ -39,148 +39,160 @@ - - diff --git a/packages/index.ts b/packages/index.ts index 363b7a1..6c16ace 100644 --- a/packages/index.ts +++ b/packages/index.ts @@ -6,7 +6,7 @@ import PuiSvg from './Svg/svg.vue'; import PuiSwitch from './Switch/switch.vue'; import PuiSelector from './Selector/selector.vue'; import PuiSearch from './Search/search.vue'; -import PuiPopper from './Popper/popper.vue'; +import PuiPopper from './Popper/index'; import PuiInput from './Input/input.vue'; import PuiCheckbox from './Checkbox/checkbox.vue'; import PuiRadio from './Radio/radio.vue'; diff --git a/tsconfig.json b/tsconfig.json index d5818f7..90bb355 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "declaration": false, "target": "esnext", "module": "esnext", "strict": true, @@ -50,4 +51,4 @@ "exclude": [ "node_modules" ] -} +} \ No newline at end of file -- Gitee From 7bd2676fbdbfd1e4244a345a25bf97e03124d7f1 Mon Sep 17 00:00:00 2001 From: "luoweijian@timbercld.com" Date: Wed, 20 Nov 2024 11:39:39 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix=EF=BC=9A=E4=BD=BF=E7=94=A8vite=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .browserslistrc | 4 - .npmignore => .npmrc | 0 babel.config.js | 5 - build/rollup.config.js | 51 - docs/README.md | 0 docs/guide | 0 env.d.ts | 15 + examples/common/index.ts | 47 - examples/main.ts | 16 +- examples/{ => src}/App.vue | 1104 +++++++++-------- index.html | 13 + package.json | 49 +- packages/Collapse/collapse.vue | 69 -- packages/ColorPicker/colorPicker.vue | 507 -------- packages/Container/container.vue | 49 - packages/Dropdown/dropdown.vue | 69 -- packages/Input-number/inputNumber.vue | 106 -- packages/Popper/index.ts | 9 - packages/Selector/interface.ts | 4 - packages/Tabs/tabs.vue | 170 --- packages/TreeChildren/interface.ts | 8 - packages/Window/window.vue | 198 --- public/favicon.ico | Bin 4286 -> 0 bytes public/index.html | 17 - {packages => src/components}/Aside/aside.vue | 22 +- src/components/Aside/interface.ts | 3 + .../components}/Button/button.vue | 60 +- src/components/Button/interface.ts | 11 + .../components}/Cascader/cascader.vue | 193 ++- .../components}/Cascader/interface.ts | 13 +- .../components}/Checkbox/checkbox.vue | 59 +- src/components/Checkbox/interface.ts | 8 + src/components/Collapse/collapse.vue | 68 + src/components/ColorPicker/colorPicker.vue | 473 +++++++ .../components}/ColorPicker/interface.ts | 6 + src/components/Container/container.vue | 45 + src/components/Container/interface.ts | 3 + .../components}/Dialog/dialog.vue | 125 +- src/components/Dialog/interface.ts | 15 + .../components}/Drawer/drawer.vue | 90 +- src/components/Drawer/interface.ts | 9 + src/components/Dropdown/dropdown.vue | 61 + src/components/Dropdown/interface.ts | 5 + .../components}/Footer/footer.vue | 12 +- .../components}/Header/header.vue | 12 +- {packages => src/components}/Icon/icon.vue | 36 +- src/components/Input-number/inputNumber.vue | 69 ++ src/components/Input-number/interface.ts | 13 + {packages => src/components}/Input/input.vue | 109 +- src/components/Input/interface.ts | 13 + {packages => src/components}/Main/main.vue | 0 src/components/Popper/interface.ts | 25 + .../components}/Popper/popper.vue | 104 +- .../components/Radio}/interface.ts | 7 + {packages => src/components}/Radio/radio.vue | 64 +- .../components/RadioGroup}/interface.ts | 9 + .../components}/RadioGroup/radioGroup.vue | 54 +- src/components/Search/interface.ts | 15 + .../components}/Search/search.vue | 171 ++- src/components/Selector/interface.ts | 17 + .../components}/Selector/selector.vue | 196 ++- .../components/Slider/interface.ts | 0 .../components}/Slider/slider.vue | 76 +- {packages => src/components}/Svg/svg.vue | 43 +- src/components/Switch/interface.ts | 13 + .../components}/Switch/switch.vue | 96 +- {packages => src/components}/Tab/tab.vue | 0 src/components/Table/interface.ts | 6 + {packages => src/components}/Table/table.vue | 33 +- src/components/Tabs/interface.ts | 7 + src/components/Tabs/tabs.vue | 145 +++ src/components/Tag/interface.ts | 8 + {packages => src/components}/Tag/tag.vue | 49 +- src/components/Toolbar/interface.ts | 6 + .../components}/Toolbar/toolbar.vue | 191 ++- src/components/Tree/interface.ts | 13 + {packages => src/components}/Tree/tree.vue | 150 +-- src/components/TreeChildren/interface.ts | 13 + .../components}/TreeChildren/treeChildren.vue | 135 +- src/components/Window/interface.ts | 8 + src/components/Window/window.vue | 177 +++ {packages => src/components}/index.ts | 52 +- src/index.ts | 16 + stores/index.ts | 6 - stores/modules/global.ts | 10 + tsconfig.json | 103 +- typings/shims-vue.d.ts | 12 - vite.config.ts | 42 + vue.config.js | 31 - 89 files changed, 2879 insertions(+), 3267 deletions(-) delete mode 100644 .browserslistrc rename .npmignore => .npmrc (100%) delete mode 100644 babel.config.js delete mode 100644 build/rollup.config.js delete mode 100644 docs/README.md delete mode 100644 docs/guide create mode 100644 env.d.ts delete mode 100644 examples/common/index.ts rename examples/{ => src}/App.vue (45%) create mode 100644 index.html delete mode 100644 packages/Collapse/collapse.vue delete mode 100644 packages/ColorPicker/colorPicker.vue delete mode 100644 packages/Container/container.vue delete mode 100644 packages/Dropdown/dropdown.vue delete mode 100644 packages/Input-number/inputNumber.vue delete mode 100644 packages/Popper/index.ts delete mode 100644 packages/Selector/interface.ts delete mode 100644 packages/Tabs/tabs.vue delete mode 100644 packages/TreeChildren/interface.ts delete mode 100644 packages/Window/window.vue delete mode 100644 public/favicon.ico delete mode 100644 public/index.html rename {packages => src/components}/Aside/aside.vue (47%) create mode 100644 src/components/Aside/interface.ts rename {packages => src/components}/Button/button.vue (57%) create mode 100644 src/components/Button/interface.ts rename {packages => src/components}/Cascader/cascader.vue (45%) rename {packages => src/components}/Cascader/interface.ts (58%) rename {packages => src/components}/Checkbox/checkbox.vue (47%) create mode 100644 src/components/Checkbox/interface.ts create mode 100644 src/components/Collapse/collapse.vue create mode 100644 src/components/ColorPicker/colorPicker.vue rename {packages => src/components}/ColorPicker/interface.ts (40%) create mode 100644 src/components/Container/container.vue create mode 100644 src/components/Container/interface.ts rename {packages => src/components}/Dialog/dialog.vue (46%) create mode 100644 src/components/Dialog/interface.ts rename {packages => src/components}/Drawer/drawer.vue (46%) create mode 100644 src/components/Drawer/interface.ts create mode 100644 src/components/Dropdown/dropdown.vue create mode 100644 src/components/Dropdown/interface.ts rename {packages => src/components}/Footer/footer.vue (74%) rename {packages => src/components}/Header/header.vue (74%) rename {packages => src/components}/Icon/icon.vue (39%) create mode 100644 src/components/Input-number/inputNumber.vue create mode 100644 src/components/Input-number/interface.ts rename {packages => src/components}/Input/input.vue (41%) create mode 100644 src/components/Input/interface.ts rename {packages => src/components}/Main/main.vue (100%) create mode 100644 src/components/Popper/interface.ts rename {packages => src/components}/Popper/popper.vue (33%) rename {packages/RadioGroup => src/components/Radio}/interface.ts (41%) rename {packages => src/components}/Radio/radio.vue (41%) rename {packages/Search => src/components/RadioGroup}/interface.ts (30%) rename {packages => src/components}/RadioGroup/radioGroup.vue (36%) create mode 100644 src/components/Search/interface.ts rename {packages => src/components}/Search/search.vue (30%) create mode 100644 src/components/Selector/interface.ts rename {packages => src/components}/Selector/selector.vue (31%) rename docs/.vuepress => src/components/Slider/interface.ts (100%) rename {packages => src/components}/Slider/slider.vue (31%) rename {packages => src/components}/Svg/svg.vue (42%) create mode 100644 src/components/Switch/interface.ts rename {packages => src/components}/Switch/switch.vue (45%) rename {packages => src/components}/Tab/tab.vue (100%) create mode 100644 src/components/Table/interface.ts rename {packages => src/components}/Table/table.vue (63%) create mode 100644 src/components/Tabs/interface.ts create mode 100644 src/components/Tabs/tabs.vue create mode 100644 src/components/Tag/interface.ts rename {packages => src/components}/Tag/tag.vue (50%) create mode 100644 src/components/Toolbar/interface.ts rename {packages => src/components}/Toolbar/toolbar.vue (77%) create mode 100644 src/components/Tree/interface.ts rename {packages => src/components}/Tree/tree.vue (32%) create mode 100644 src/components/TreeChildren/interface.ts rename {packages => src/components}/TreeChildren/treeChildren.vue (41%) create mode 100644 src/components/Window/interface.ts create mode 100644 src/components/Window/window.vue rename {packages => src/components}/index.ts (68%) create mode 100644 src/index.ts delete mode 100644 stores/index.ts create mode 100644 stores/modules/global.ts delete mode 100644 typings/shims-vue.d.ts create mode 100644 vite.config.ts delete mode 100644 vue.config.js diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index dc3bc09..0000000 --- a/.browserslistrc +++ /dev/null @@ -1,4 +0,0 @@ -> 1% -last 2 versions -not dead -not ie 11 diff --git a/.npmignore b/.npmrc similarity index 100% rename from .npmignore rename to .npmrc diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e955840..0000000 --- a/babel.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} diff --git a/build/rollup.config.js b/build/rollup.config.js deleted file mode 100644 index ffa2219..0000000 --- a/build/rollup.config.js +++ /dev/null @@ -1,51 +0,0 @@ -// import vue from 'rollup-plugin-vue' -import { nodeResolve } from '@rollup/plugin-node-resolve' -// import commonjs from '@rollup/plugin-commonjs' -import { terser } from 'rollup-plugin-terser' -import typescript from 'rollup-plugin-typescript2' -import pkg from '../package.json' -const deps = Object.keys(pkg.dependencies) -// eslint-disable-next-line @typescript-eslint/no-var-requires -const vue = require('rollup-plugin-vue') - -export default [ - { - input: 'packages/index.ts', - output: [ - { - format: 'es', - file: pkg.module - } - ], - plugins: [ - terser(), - nodeResolve(), - // commonjs(), - vue({ - target: 'browser', - css: false, - exposeFilename: false - }), - typescript({ - tsconfigOverride: { - compilerOptions: { - declaration: true - }, - 'include': [ - 'packages/**/*', - 'typings/*' - ], - 'exclude': [ - 'node_modules', - 'packages/**/__tests__/*' - ] - }, - abortOnError: false - }) - ], - external(id) { - return /^vue/.test(id) - || deps.some(k => new RegExp('^' + k).test(id)) - } - } -] \ No newline at end of file diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/guide b/docs/guide deleted file mode 100644 index e69de29..0000000 diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..1d5e70d --- /dev/null +++ b/env.d.ts @@ -0,0 +1,15 @@ +/// +interface ImportMetaEnv { + readonly VITE_SCHOOL_TYPE: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} + +declare module '*.vue' { + import { DefineComponent } from 'vue' + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/examples/common/index.ts b/examples/common/index.ts deleted file mode 100644 index 73ed647..0000000 --- a/examples/common/index.ts +++ /dev/null @@ -1,47 +0,0 @@ -export default function DeepCopy(source: any) { - if(null == source || {} == source || [] == source) - { - return source; - } - - let newObject : any; - let isArray = false; - if((source as any).length) - { - newObject = []; - isArray = true; - } - else - { - newObject = {}; - isArray = false; - } - - for (let key of Object.keys(source)) - { - if(null == source[key]) - { - if (isArray) - { - newObject.push(null); - } - else - { - newObject[key] = null; - } - } - else - { - let sub = (typeof source[key] == 'object') ? DeepCopy(source[key]) : source[key]; - if(isArray) - { - newObject.push(sub); - } - else - { - newObject[key] = sub; - } - } - } - return newObject; -} \ No newline at end of file diff --git a/examples/main.ts b/examples/main.ts index bb83940..24a1727 100644 --- a/examples/main.ts +++ b/examples/main.ts @@ -1,12 +1,20 @@ import { createApp } from 'vue' -import App from './App.vue' +import App from './src/App.vue' +import { createPinia } from 'pinia'; +import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'; + + // @ts-ignore -import PhotUI from '~/index' -import store from '../stores' +import PhotUI from '../src/index' + + import '@photlab/phot-icon/iconfont.css' import '@photlab/phot-icon/iconfont.js' +const pinia = createPinia(); +pinia.use(piniaPluginPersistedstate); const app = createApp(App) + app.use(PhotUI) -app.use(store) +app.use(pinia) app.mount('#app') \ No newline at end of file diff --git a/examples/App.vue b/examples/src/App.vue similarity index 45% rename from examples/App.vue rename to examples/src/App.vue index 35fafef..4e70a4b 100644 --- a/examples/App.vue +++ b/examples/src/App.vue @@ -6,7 +6,7 @@
主题
- 开关
- +
@@ -38,7 +43,13 @@
- +
@@ -53,7 +64,14 @@
自动补全
- +
@@ -122,8 +140,16 @@
标签栏
- - + +
@@ -137,18 +163,18 @@ bounce + + diff --git a/src/components/Drawer/interface.ts b/src/components/Drawer/interface.ts new file mode 100644 index 0000000..4e042ab --- /dev/null +++ b/src/components/Drawer/interface.ts @@ -0,0 +1,9 @@ +export interface Props { + position: string; + title: string; + width: string; + height: string; + show: boolean; + header: boolean; + zIndex: number; +} diff --git a/src/components/Dropdown/dropdown.vue b/src/components/Dropdown/dropdown.vue new file mode 100644 index 0000000..f1131a5 --- /dev/null +++ b/src/components/Dropdown/dropdown.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/Dropdown/interface.ts b/src/components/Dropdown/interface.ts new file mode 100644 index 0000000..b71d40d --- /dev/null +++ b/src/components/Dropdown/interface.ts @@ -0,0 +1,5 @@ +export interface Props { + placement: string; + disabled: boolean; + popper: any; +} diff --git a/packages/Footer/footer.vue b/src/components/Footer/footer.vue similarity index 74% rename from packages/Footer/footer.vue rename to src/components/Footer/footer.vue index d34c7d3..f089862 100644 --- a/packages/Footer/footer.vue +++ b/src/components/Footer/footer.vue @@ -8,11 +8,11 @@ import { defineComponent } from 'vue'; export default defineComponent({ name: 'PuiFooter', - props: { - height: { - type: String, - default: '60px', - }, - }, }); + + diff --git a/packages/Header/header.vue b/src/components/Header/header.vue similarity index 74% rename from packages/Header/header.vue rename to src/components/Header/header.vue index adafe9a..def5787 100644 --- a/packages/Header/header.vue +++ b/src/components/Header/header.vue @@ -8,11 +8,11 @@ import { defineComponent } from 'vue'; export default defineComponent({ name: 'PuiHeader', - props: { - height: { - type: String, - default: '60px', - }, - }, }); + + diff --git a/packages/Icon/icon.vue b/src/components/Icon/icon.vue similarity index 39% rename from packages/Icon/icon.vue rename to src/components/Icon/icon.vue index 89adf4f..fded965 100644 --- a/packages/Icon/icon.vue +++ b/src/components/Icon/icon.vue @@ -5,30 +5,16 @@ + + diff --git a/src/components/Input-number/inputNumber.vue b/src/components/Input-number/inputNumber.vue new file mode 100644 index 0000000..e72cf28 --- /dev/null +++ b/src/components/Input-number/inputNumber.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/components/Input-number/interface.ts b/src/components/Input-number/interface.ts new file mode 100644 index 0000000..04e0f17 --- /dev/null +++ b/src/components/Input-number/interface.ts @@ -0,0 +1,13 @@ +export interface Props { + modelValue: number | string; + size: string; + width: string; + placeholder: string; + full: boolean; + readonly: boolean; + disabled: boolean; + step: number; + max: number; + min: number; + precision: number; +} diff --git a/packages/Input/input.vue b/src/components/Input/input.vue similarity index 41% rename from packages/Input/input.vue rename to src/components/Input/input.vue index 869b842..7de4331 100644 --- a/packages/Input/input.vue +++ b/src/components/Input/input.vue @@ -5,7 +5,7 @@ import { defineComponent } from 'vue'; export default defineComponent({ - name: 'puiInput', - props: { - modelValue: { - default: null, - }, - disabled: { - type: Boolean, - default: false, - }, - readonly: { - type: Boolean, - default: false, - }, - size: { - type: String, - default: 'normal', - }, - full: { - type: Boolean, - default: false, - }, - width: { - type: String, - }, - type: { - type: String, - default: 'input', - }, - icon: { - type: String, - default: '', - }, - iconPosition: { - type: String, - default: 'left', - }, - clearAble: { - type: Boolean, - default: false, - }, - placeholder: { - type: String, - default: '请输入', - }, - }, - emits: { - 'update:modelValue': (value: String | Number) => '', - 'update:showPopper': (val?: Boolean) => true, - 'onClear': (val: Boolean) => true, - 'onInput': (val: Boolean) => true, - 'onIconClick': (val: Boolean) => true, - }, - setup(props, ctx) { - const clearModelValue = () => { - ctx.emit('onClear', true); - ctx.emit('update:modelValue', ''); - }; + name: 'pui-input', +}); + + + diff --git a/src/components/Input/interface.ts b/src/components/Input/interface.ts new file mode 100644 index 0000000..aa5ca7a --- /dev/null +++ b/src/components/Input/interface.ts @@ -0,0 +1,13 @@ +export interface Props { + modelValue: string; + size: string; + width: string; + type: string; + icon: string; + iconPosition: string; + placeholder: string; + disabled: boolean; + readonly: boolean; + full: boolean; + clearAble: boolean; +} diff --git a/packages/Main/main.vue b/src/components/Main/main.vue similarity index 100% rename from packages/Main/main.vue rename to src/components/Main/main.vue diff --git a/src/components/Popper/interface.ts b/src/components/Popper/interface.ts new file mode 100644 index 0000000..89f93b4 --- /dev/null +++ b/src/components/Popper/interface.ts @@ -0,0 +1,25 @@ +export interface Props { + content: string; + placement: + | 'right' + | 'auto' + | 'auto-start' + | 'auto-end' + | 'top' + | 'top-start' + | 'top-end' + | 'bottom' + | 'bottom-start' + | 'bottom-end' + | 'right-start' + | 'right-end' + | 'left' + | 'left-start' + | 'left-end' + | undefined; + theme: string; + arrow: boolean; + disabled: boolean; + popperControl: boolean; + showPopper: boolean; +} diff --git a/packages/Popper/popper.vue b/src/components/Popper/popper.vue similarity index 33% rename from packages/Popper/popper.vue rename to src/components/Popper/popper.vue index 3bf95f0..31be182 100644 --- a/packages/Popper/popper.vue +++ b/src/components/Popper/popper.vue @@ -1,6 +1,6 @@ + + diff --git a/packages/RadioGroup/interface.ts b/src/components/Radio/interface.ts similarity index 41% rename from packages/RadioGroup/interface.ts rename to src/components/Radio/interface.ts index 5c2c2d6..d5d52c8 100644 --- a/packages/RadioGroup/interface.ts +++ b/src/components/Radio/interface.ts @@ -1,5 +1,12 @@ export interface Data { label: string; value: string; +} +export interface Props { + data: Data; disabled: boolean; + border: boolean; + block: boolean; + checked: boolean; + size: string; } diff --git a/packages/Radio/radio.vue b/src/components/Radio/radio.vue similarity index 41% rename from packages/Radio/radio.vue rename to src/components/Radio/radio.vue index b9684ec..172fbc5 100644 --- a/packages/Radio/radio.vue +++ b/src/components/Radio/radio.vue @@ -12,48 +12,26 @@ + + diff --git a/packages/Search/interface.ts b/src/components/RadioGroup/interface.ts similarity index 30% rename from packages/Search/interface.ts rename to src/components/RadioGroup/interface.ts index 4c228c7..ef2e4b9 100644 --- a/packages/Search/interface.ts +++ b/src/components/RadioGroup/interface.ts @@ -1,4 +1,13 @@ export interface Data { label: string; value: string; + disabled: boolean; +} + +export interface Props { + modelValue: string | number; + list: Data[]; + disabled:boolean; + column:boolean; + } diff --git a/packages/RadioGroup/radioGroup.vue b/src/components/RadioGroup/radioGroup.vue similarity index 36% rename from packages/RadioGroup/radioGroup.vue rename to src/components/RadioGroup/radioGroup.vue index 943254e..10cd133 100644 --- a/packages/RadioGroup/radioGroup.vue +++ b/src/components/RadioGroup/radioGroup.vue @@ -13,43 +13,29 @@ + + diff --git a/src/components/Search/interface.ts b/src/components/Search/interface.ts new file mode 100644 index 0000000..565eebd --- /dev/null +++ b/src/components/Search/interface.ts @@ -0,0 +1,15 @@ +export interface Data { + label: string; + value: string; +} +export interface Props { + modelValue: Data | string; + size: string; + display: string; + placement: string; + type: string; + iconPosition: string; + disabled: boolean; + clearAble: boolean; + dataList: Data[]; +} diff --git a/packages/Search/search.vue b/src/components/Search/search.vue similarity index 30% rename from packages/Search/search.vue rename to src/components/Search/search.vue index 720af2c..8848964 100644 --- a/packages/Search/search.vue +++ b/src/components/Search/search.vue @@ -2,7 +2,7 @@
@@ -23,70 +24,31 @@ + + diff --git a/packages/Tab/tab.vue b/src/components/Tab/tab.vue similarity index 100% rename from packages/Tab/tab.vue rename to src/components/Tab/tab.vue diff --git a/src/components/Table/interface.ts b/src/components/Table/interface.ts new file mode 100644 index 0000000..d34dd70 --- /dev/null +++ b/src/components/Table/interface.ts @@ -0,0 +1,6 @@ +export interface Props { + columns: any[]; + data: any[]; + stripe: boolean; + autoWidth: boolean; +} diff --git a/packages/Table/table.vue b/src/components/Table/table.vue similarity index 63% rename from packages/Table/table.vue rename to src/components/Table/table.vue index 8f2e8e4..e773c5e 100644 --- a/packages/Table/table.vue +++ b/src/components/Table/table.vue @@ -18,26 +18,23 @@ + + diff --git a/src/components/Tabs/interface.ts b/src/components/Tabs/interface.ts new file mode 100644 index 0000000..7ecbc21 --- /dev/null +++ b/src/components/Tabs/interface.ts @@ -0,0 +1,7 @@ +export interface Props { + type: string; + add: boolean; + remove: boolean; + round: boolean; + tabList: any[]; +} diff --git a/src/components/Tabs/tabs.vue b/src/components/Tabs/tabs.vue new file mode 100644 index 0000000..d2a628a --- /dev/null +++ b/src/components/Tabs/tabs.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/components/Tag/interface.ts b/src/components/Tag/interface.ts new file mode 100644 index 0000000..daecef4 --- /dev/null +++ b/src/components/Tag/interface.ts @@ -0,0 +1,8 @@ +export interface Props { + type: string; + size: string; + display: string; + plain: boolean; + round: boolean; + circle: boolean; +} diff --git a/packages/Tag/tag.vue b/src/components/Tag/tag.vue similarity index 50% rename from packages/Tag/tag.vue rename to src/components/Tag/tag.vue index 317a0ab..6c8c6cd 100644 --- a/packages/Tag/tag.vue +++ b/src/components/Tag/tag.vue @@ -21,40 +21,19 @@ + + diff --git a/src/components/Toolbar/interface.ts b/src/components/Toolbar/interface.ts new file mode 100644 index 0000000..c2baffd --- /dev/null +++ b/src/components/Toolbar/interface.ts @@ -0,0 +1,6 @@ +export interface Props { + placement: string; + disabled: boolean; + toolbarList?: any; + dataList?: any; +} diff --git a/packages/Toolbar/toolbar.vue b/src/components/Toolbar/toolbar.vue similarity index 77% rename from packages/Toolbar/toolbar.vue rename to src/components/Toolbar/toolbar.vue index 2e6342d..a15ae71 100644 --- a/packages/Toolbar/toolbar.vue +++ b/src/components/Toolbar/toolbar.vue @@ -48,8 +48,8 @@ />
@@ -184,116 +184,103 @@ + + diff --git a/src/components/Tree/interface.ts b/src/components/Tree/interface.ts new file mode 100644 index 0000000..1d8a4d5 --- /dev/null +++ b/src/components/Tree/interface.ts @@ -0,0 +1,13 @@ +export interface Props { + modelValue: any; + size: string; + display: string; + placement: string; + type: string; + disabled: boolean; + clearAble: boolean; + isPopper: boolean; + show: boolean; + border: boolean; + dataList: any[]; +} diff --git a/packages/Tree/tree.vue b/src/components/Tree/tree.vue similarity index 32% rename from packages/Tree/tree.vue rename to src/components/Tree/tree.vue index 9935997..0edd300 100644 --- a/packages/Tree/tree.vue +++ b/src/components/Tree/tree.vue @@ -20,98 +20,72 @@ - const toggleOpen = () => { - console.log(props.show); - ctx.emit('update:show', !props.show); - }; + diff --git a/src/components/TreeChildren/interface.ts b/src/components/TreeChildren/interface.ts new file mode 100644 index 0000000..a7ebb3f --- /dev/null +++ b/src/components/TreeChildren/interface.ts @@ -0,0 +1,13 @@ +export interface BaseOptions { + label: string; + value: string | number; + bg: boolean | undefined; + tip: string | undefined; + fn: () => {}; + children?: BaseOptions[]; +} +export interface Props { + show: boolean; + selectIds?: string[]; + dataList?: BaseOptions[]; +} diff --git a/packages/TreeChildren/treeChildren.vue b/src/components/TreeChildren/treeChildren.vue similarity index 41% rename from packages/TreeChildren/treeChildren.vue rename to src/components/TreeChildren/treeChildren.vue index 4e3580b..0196e44 100644 --- a/packages/TreeChildren/treeChildren.vue +++ b/src/components/TreeChildren/treeChildren.vue @@ -34,84 +34,71 @@ - if (props.show && props.dataList) { - props.dataList.map((item: any) => { - props.selectIds?.push(item.value); - ctx.emit('update:selectIds', props.selectIds as string[]); - }); - } - // 展开收起方法 - const toggleItem = (item: BaseOptions) => { - const { value, children = [] } = item; - if (children.length) { - const findIndex = props.selectIds?.findIndex((id) => value === id); - if (typeof findIndex === 'number' && findIndex > -1) { - props.selectIds?.splice(findIndex, 1); - } else { - props.selectIds?.push(value as string); - } - ctx.emit('update:selectIds', props.selectIds as string[]); - } - }; + diff --git a/src/components/Window/interface.ts b/src/components/Window/interface.ts new file mode 100644 index 0000000..e92cba4 --- /dev/null +++ b/src/components/Window/interface.ts @@ -0,0 +1,8 @@ +export interface Props { + title: string; + defaultWidth: number; + defaultHeight: number; + type: string; + backgroundColor: string; + rightItemList: any[]; +} diff --git a/src/components/Window/window.vue b/src/components/Window/window.vue new file mode 100644 index 0000000..44a617a --- /dev/null +++ b/src/components/Window/window.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/packages/index.ts b/src/components/index.ts similarity index 68% rename from packages/index.ts rename to src/components/index.ts index 6c16ace..7b76b01 100644 --- a/packages/index.ts +++ b/src/components/index.ts @@ -1,4 +1,3 @@ -import { App } from 'vue'; import PuiButton from './Button/button.vue'; import PuiTag from './Tag/tag.vue'; import PuiIcon from './Icon/icon.vue'; @@ -6,7 +5,7 @@ import PuiSvg from './Svg/svg.vue'; import PuiSwitch from './Switch/switch.vue'; import PuiSelector from './Selector/selector.vue'; import PuiSearch from './Search/search.vue'; -import PuiPopper from './Popper/index'; +import PuiPopper from './Popper/popper.vue'; import PuiInput from './Input/input.vue'; import PuiCheckbox from './Checkbox/checkbox.vue'; import PuiRadio from './Radio/radio.vue'; @@ -31,51 +30,6 @@ import PuiWindow from './Window/window.vue'; import PuiTable from './Table/table.vue'; import PuiDropdown from './Dropdown/dropdown.vue'; import PuiInputNumber from './Input-number/inputNumber.vue'; -// 所有组件列表 -const components: any[] = [ - PuiButton, - PuiIcon, - PuiSvg, - PuiSwitch, - PuiSelector, - PuiPopper, - PuiInput, - PuiSearch, - PuiCheckbox, - PuiRadio, - PuiRadioGroup, - PuiTag, - PuiTabs, - PuiTab, - PuiDialog, - PuiTree, - PuiCascader, - PuiTreeChildren, - PuiCollapse, - PuiDrawer, - PuiSlider, - PuiToolbar, - PuiAside, - PuiContainer, - PuiHeader, - PuiFooter, - PuiMain, - PuiColorPicker, - PuiWindow, - PuiTable, - PuiDropdown, - PuiInputNumber, -]; - -// 定义 install 方法, App 作为参数 -const install = (app: App): void => { - // 遍历注册所有组件 - components.map((component) => { - app.component(component.name as string, component); - }); - - // components.map((component) => app.component(component, component)) -}; export { PuiButton, @@ -111,7 +65,3 @@ export { PuiDropdown, PuiInputNumber, }; - -export default { - install, -}; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..d6f1909 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,16 @@ +import * as coms from './components'; +import '../examples/common/style.scss'; + +//自动化导入组件 +let components = []; +for (let name in coms) { + components.push(coms[name]); +} + +const install = (app: any) => { + components.map((item) => { + app.component(item.name, item); + }); +}; + +export default { install }; diff --git a/stores/index.ts b/stores/index.ts deleted file mode 100644 index 64cf8fe..0000000 --- a/stores/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createStore } from 'vuex'; -export default createStore({ - state: { - theme: 'light', - }, -}); diff --git a/stores/modules/global.ts b/stores/modules/global.ts new file mode 100644 index 0000000..217df0c --- /dev/null +++ b/stores/modules/global.ts @@ -0,0 +1,10 @@ +import { defineStore } from 'pinia'; + +const globalState = defineStore('globalState', { + state: () => ({ + theme: 'light', + }), + getters: {}, +}); + +export default globalState; diff --git a/tsconfig.json b/tsconfig.json index 90bb355..a0c90b7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,54 +1,73 @@ { + /* 根选项 */ + /* 项目选项 */ "compilerOptions": { - "declaration": false, - "target": "esnext", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "moduleResolution": "node", - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "forceConsistentCasingInFileNames": true, - "useDefineForClassFields": true, - "sourceMap": true, - "baseUrl": ".", "types": [ - "webpack-env" + "vitest/globals" ], + "target": "ES6", // 目标语言的版本 + "module": "ES2020", // 生成代码的模板标准 + "lib": [ + "DOM", + "ES5", + "ES6", + "ES7", + "ScriptHost" + ], // TS需要引用的库 + "outDir": "./dist", // 指定输出目录 + "rootDir": "./", // 指定输出文件目录(用于输出),用于控制输出目录结构 + "allowJs": true, // 允许编译器编译JS,JSX文件 + "checkJs": true, // 允许在JS文件中报错,通常与allowJS一起使用 + "removeComments": true, // 删除注释 + "esModuleInterop": true, // 允许export=导出,由import from 导入 + "useDefineForClassFields": true, + "moduleResolution": "Node", + "jsx": "preserve", + "sourceMap": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "baseUrl": "./", "paths": { - "~/*": [ - "packages/*" - ], "@/*": [ - "examples/*" + "src/*" ] }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ], - "allowJs": true, - "checkJs": true + /* 严格检查选项 */ + "strict": false, // 开启所有严格的类型检查 + "alwaysStrict": true, // 在代码中注入'use strict' + "noImplicitAny": true, // 不允许隐式的any类型 + "noImplicitThis": true, // 不允许this有隐式的any类型 + "strictNullChecks": true, // 不允许把null、undefined赋值给其他类型的变量 + "strictBindCallApply": true, // 严格的bind/call/apply检查 + "strictFunctionTypes": true, // 不允许函数参数双向协变 + "strictPropertyInitialization": true, // 类的实例属性必须初始化 + /* 额外检查 */ + "noUnusedLocals": true, //是否检查未使用的局部变量 + "noUnusedParameters": false, //是否检查未使用的参数 + "noImplicitReturns": true, //检查函数是否不含有隐式返回值 + "noImplicitOverride": true, //是否检查子类继承自基类时,其重载的函数命名与基类的函数不同步问题 + "noFallthroughCasesInSwitch": true, //检查switch中是否含有case没有使用break跳出 + "noUncheckedIndexedAccess": true, //是否通过索引签名来描述对象上有未知键但已知值的对象 + "noPropertyAccessFromIndexSignature": true, //是否通过" . “(obj.key) 语法访问字段和"索引”( obj[“key”]), 以及在类型中声明属性的方式之间的一致性 + /* 实验选项 */ + "experimentalDecorators": true, //是否启用对装饰器的实验性支持,装饰器是一种语言特性,还没有完全被 JavaScript 规范批准 + "emitDecoratorMetadata": true, //为装饰器启用对发出类型元数据的实验性支持 + /* 高级选项 */ + "forceConsistentCasingInFileNames": true, //是否区分文件系统大小写规则 + "extendedDiagnostics": false, //是否查看 TS 在编译时花费的时间 + "noEmitOnError": true, //有错误时不进行编译 + "resolveJsonModule": true //是否解析 JSON 模块 }, "include": [ - "examples/**/*.scss", - "examples/iconfont", - "examples/**/*.css", - "examples/**/*.ts", - "examples/**/*.tsx", - "examples/**/*.vue", - "packages/**/*.ts", - "packages/**/*.tsx", - "packages/**/*.vue", - "typings/**/*.ts", - "tests/**/*.ts", - "tests/**/*.tsx", - "README.md" - ], - "exclude": [ - "node_modules" + "src/**/*.ts", + "src/**/*.js", + "src/**/*.d.ts", + "src/**/*.d.js", + "src/**/*.tsx", + "src/**/*.vue", + "**/*.ts", + "**/*.js", + "**/*.tsx" ] } \ No newline at end of file diff --git a/typings/shims-vue.d.ts b/typings/shims-vue.d.ts deleted file mode 100644 index 7093a1e..0000000 --- a/typings/shims-vue.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* eslint-disable */ -declare module '*.vue' { - import type { DefineComponent } from 'vue' - const component: DefineComponent<{}, {}, any> - export default component -} - -interface BaseOptions { - label: string, - value: string | number, - children?: BaseOptions[] -} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..1bf6a5f --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,42 @@ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import path, { resolve } from 'path'; + +export default defineConfig({ + server: { + port: 3001, + host: '0.0.0.0', + }, + build: { + emptyOutDir: true, + target: 'modules', + outDir: 'lib', + minify: false, + sourcemap: true, + cssCodeSplit: false, + lib: { + entry: path.resolve(__dirname, './src/index.ts'), + name: 'PhotUi', + fileName: 'index', + formats: ['es', 'cjs'], + }, + rollupOptions: { + external: ['vue'], + output: { + globals: { + vue: 'Vue', + }, + }, + }, + }, + plugins: [vue()], + resolve: { + alias: [ + // 配置 @ 指代 src + { + find: '@', + replacement: resolve(__dirname, './src'), + }, + ], + }, +}); diff --git a/vue.config.js b/vue.config.js deleted file mode 100644 index 0ab6658..0000000 --- a/vue.config.js +++ /dev/null @@ -1,31 +0,0 @@ -const path = require('path'); -module.exports = { - // 修改 pages 入口 - pages: { - index: { - entry: 'examples/main.ts', //入口 - template: 'public/index.html', //模板 - filename: 'index.html', //输出文件 - }, - }, - // 扩展 webpack 配置 - chainWebpack: (config) => { - // 新增一个 ~ 指向 packages 目录, 方便示例代码中使用 - config.resolve.alias.set('~', path.resolve('packages')); - config.resolve.alias.set('@', path.resolve('examples')); - globalSass(config); - }, -}; - -const globalSass = (config) => { - const oneOfsMap = config.module.rule('scss').oneOfs.store; - oneOfsMap.forEach((item) => { - item - .use('sass-resources-loader') - .loader('sass-resources-loader') - .options({ - resources: './examples/common/style.scss', //相对路径 - }) - .end(); - }); -}; -- Gitee