Skip to content

Commit 3483121

Browse files
authored
refactor(drawer): 重构drawer组件 (#235)
1 parent a865dc4 commit 3483121

18 files changed

+461
-636
lines changed
Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
const path = require('path')
2-
const fs = require('fs')
3-
const fsExtra = require('fs-extra')
4-
const { defineConfig, build } = require('vite')
5-
const vue = require('@vitejs/plugin-vue')
6-
const vueJsx = require('@vitejs/plugin-vue-jsx')
7-
const nuxtBuild = require('./build-nuxt-auto-import')
1+
const path = require('path');
2+
const fs = require('fs');
3+
const fsExtra = require('fs-extra');
4+
const { defineConfig, build } = require('vite');
5+
const vue = require('@vitejs/plugin-vue');
6+
const vueJsx = require('@vitejs/plugin-vue-jsx');
7+
const nuxtBuild = require('./build-nuxt-auto-import');
88

9-
const entryDir = path.resolve(__dirname, '../../devui')
10-
const outputDir = path.resolve(__dirname, '../../build')
9+
const entryDir = path.resolve(__dirname, '../../devui');
10+
const outputDir = path.resolve(__dirname, '../../build');
1111

1212
const baseConfig = defineConfig({
1313
configFile: false,
1414
publicDir: false,
15-
plugins: [vue(), vueJsx()]
16-
})
15+
plugins: [vue(), vueJsx()],
16+
});
1717

1818
const rollupOptions = {
19-
external: ['vue', 'vue-router'],
19+
external: ['vue', 'vue-router', '@vueuse/core'],
2020
output: {
2121
globals: {
22-
vue: 'Vue'
23-
}
24-
}
25-
}
22+
vue: 'Vue',
23+
},
24+
},
25+
};
2626

2727
const buildSingle = async (name) => {
2828
await build(
@@ -34,13 +34,13 @@ const buildSingle = async (name) => {
3434
entry: path.resolve(entryDir, name),
3535
name: 'index',
3636
fileName: 'index',
37-
formats: ['es', 'umd']
37+
formats: ['es', 'umd'],
3838
},
39-
outDir: path.resolve(outputDir, name)
40-
}
39+
outDir: path.resolve(outputDir, name),
40+
},
4141
})
42-
)
43-
}
42+
);
43+
};
4444

4545
const buildAll = async () => {
4646
await build(
@@ -52,13 +52,13 @@ const buildAll = async () => {
5252
entry: path.resolve(entryDir, 'vue-devui.ts'),
5353
name: 'VueDevui',
5454
fileName: 'vue-devui',
55-
formats: ['es', 'umd']
55+
formats: ['es', 'umd'],
5656
},
57-
outDir: outputDir
58-
}
57+
outDir: outputDir,
58+
},
5959
})
60-
)
61-
}
60+
);
61+
};
6262

6363
const createPackageJson = (name) => {
6464
const fileStr = `{
@@ -67,25 +67,25 @@ const createPackageJson = (name) => {
6767
"main": "index.umd.js",
6868
"module": "index.es.js",
6969
"style": "style.css"
70-
}`
70+
}`;
7171

72-
fsExtra.outputFile(path.resolve(outputDir, `${name}/package.json`), fileStr, 'utf-8')
73-
}
72+
fsExtra.outputFile(path.resolve(outputDir, `${name}/package.json`), fileStr, 'utf-8');
73+
};
7474

7575
exports.build = async () => {
76-
await buildAll()
76+
await buildAll();
7777

7878
const components = fs.readdirSync(entryDir).filter((name) => {
79-
const componentDir = path.resolve(entryDir, name)
80-
const isDir = fs.lstatSync(componentDir).isDirectory()
81-
return isDir && fs.readdirSync(componentDir).includes('index.ts')
82-
})
79+
const componentDir = path.resolve(entryDir, name);
80+
const isDir = fs.lstatSync(componentDir).isDirectory();
81+
return isDir && fs.readdirSync(componentDir).includes('index.ts');
82+
});
8383

8484
for (const name of components) {
85-
await buildSingle(name)
86-
createPackageJson(name)
87-
nuxtBuild.createAutoImportedComponent(name)
85+
await buildSingle(name);
86+
createPackageJson(name);
87+
nuxtBuild.createAutoImportedComponent(name);
8888
}
8989

90-
nuxtBuild.createNuxtPlugin()
91-
}
90+
nuxtBuild.createNuxtPlugin();
91+
};
Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
1-
import type { App } from 'vue'
2-
import Drawer from './src/drawer'
3-
import DrawerService from './src/drawer-service'
1+
import type { App } from 'vue';
2+
import Drawer from './src/drawer';
3+
import DrawerService from './src/drawer-service';
44

5-
Drawer.install = function(app: App): void {
6-
app.component(Drawer.name, Drawer)
7-
}
8-
9-
export { Drawer, DrawerService }
5+
export { Drawer, DrawerService };
106

117
// TODO: no-service model exists memory leak
128
// rest tasks
13-
// 1. draggable width
14-
// 2. function of the 1st icon in header-component
15-
// 3. rest service-model api
9+
// 1. draggable width
10+
// 2. function of the 1st icon in header-component
11+
// 3. rest service-model api
1612
// 4. typescript type of props
1713
export default {
1814
title: 'Drawer 抽屉板',
1915
category: '反馈',
2016
status: '75%',
2117
install(app: App): void {
22-
app.use(Drawer as any)
23-
app.config.globalProperties.$drawerService = DrawerService
24-
}
25-
}
18+
app.component(Drawer.name, Drawer);
19+
app.config.globalProperties.$drawerService = new DrawerService();
20+
},
21+
};

packages/devui-vue/devui/drawer/src/components/drawer-body.scss

Lines changed: 0 additions & 43 deletions
This file was deleted.

packages/devui-vue/devui/drawer/src/components/drawer-body.tsx

Lines changed: 0 additions & 72 deletions
This file was deleted.

packages/devui-vue/devui/drawer/src/components/drawer-container.tsx

Lines changed: 0 additions & 18 deletions
This file was deleted.

packages/devui-vue/devui/drawer/src/components/drawer-header.scss

Lines changed: 0 additions & 11 deletions
This file was deleted.

packages/devui-vue/devui/drawer/src/components/drawer-header.tsx

Lines changed: 0 additions & 52 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
@import '../../../styles-var/devui-var.scss';
2+
3+
.devui-drawer-overlay {
4+
position: fixed;
5+
top: 0;
6+
right: 0;
7+
bottom: 0;
8+
left: 0;
9+
background-color: $devui-shadow;
10+
}
11+
12+
.drawer-overlay-fade-enter-active,
13+
.drawer-overlay-fade-leave-active {
14+
transition: opacity 0.1s linear;
15+
}
16+
17+
.drawer-overlay-fade-enter-from,
18+
.drawer-overlay-fade-leave-to {
19+
opacity: 0;
20+
}

0 commit comments

Comments
 (0)