Skip to content

Commit

Permalink
refactor: 调整目录结构,加入types声明文件
Browse files Browse the repository at this point in the history
  • Loading branch information
BoBoooooo committed Nov 2, 2020
1 parent cbb3488 commit ab896f3
Show file tree
Hide file tree
Showing 30 changed files with 145 additions and 37 deletions.
22 changes: 16 additions & 6 deletions examples/App.vue
Original file line number Diff line number Diff line change
@@ -1,25 +1,35 @@
<!--
* @file: 本地运行debug (umd打包后调试请允许demo.html)
* @copyright: NanJing Anshare Tech .Com
* @author: BoBo
* @Date: 2020年10月30 15:58:48
-->
<template>
<div id="app">
<el-button @click="showDialog" type="primary">打开表单设计器</el-button>
<FormDesignerDialog ref="dialog"></FormDesignerDialog>

<TableDesignerDialog ref="table"></TableDesignerDialog>
<FormDesignerDialog ref="form"></FormDesignerDialog>
<CrudTable tableName='dept'
:visibleList='{
tableTitle:false,
}'
fullHeight>
</CrudTable>
<el-button @click="showDialog('form')"
type="primary">打开表单设计器</el-button>
<el-button @click="showDialog('table')"
type="danger">打开表格设计器</el-button>
</div>
</template>

<script>
export default {
name: 'app',
name: "app",
methods: {
showDialog() {
this.$refs.dialog.showDialog();
showDialog(name) {
this.$refs[name].showDialog();
},
},
};
</script>

Expand Down
6 changes: 6 additions & 0 deletions public/demo.html → examples/demo.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
* @file: umd打包后本地调试
* @copyright: NanJing Anshare Tech .Com
* @author: BoBo
* @Date: 2020年10月30 15:58:49
-->
<!DOCTYPE html>
<html>
<head>
Expand Down
File renamed without changes.
11 changes: 5 additions & 6 deletions examples/main.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import Vue from 'vue';
import Vue from 'vue';
import App from './App.vue';
// 直接引入lib进行npm install 模拟测试
// import plugin from '../lib/plugin.umd.js';
// import '../lib/plugin.css';
import plugin from '../packages/index';

// 导入ElementProCrud
import plugin from '../src/index';
// 引入ElementUI
import './element';
Vue.use(plugin);
Vue.config.productionTip = false;

Expand Down
27 changes: 22 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,25 +1,42 @@
{
"name": "element-pro-crud",
"version": "0.1.1",
"description": "二次封装Table,Form组件,配套表单,表格设计器,一键Crud",
"version": "0.1.2",
"main": "lib/ProCrud.umd.min.js",
"files": [
"lib",
"src",
"packages",
"types"
],
"typings": "types/index.d.ts",
"description": "二次封装Table,Form组件,配套表单,表格设计器,一键Crud",
"private": false,
"license": "MIT",
"keyword": "ElementUI,CRUD,el-table,el-form,表单设计器",
"keywords": ["CRUD","ElementUI","el-table","el-form","表单设计器","表格设计器"],
"keywords": [
"CRUD",
"ElementUI",
"el-table",
"el-form",
"表单设计器",
"表格设计器"
],
"author": "BoBo<BoBoooooo159@gmail.com>",
"repository": {
"type": "git",
"url": "https://github.com/BoBoooooo/Element-Pro-Crud"
},
"homepage": "https://github.com/BoBoooooo/Element-Pro-Crud/blob/master/README.md",
"homepage": "https://github.com/BoBoooooo/Element-Pro-Crud#readme",
"bugs": {
"url": "https://github.com/BoBoooooo/Element-Pro-Crud/issues"
},
"scripts": {
"start": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"fix": "eslint --ext .ts,.vue packages --fix",
"report": "cross-env IS_REPORT=true vue-cli-service build",
"lib": "vue-cli-service build --target lib --name ProCrud --dest lib packages/index.ts",
"lib": "vue-cli-service build --target lib --name ProCrud --dest lib src/index.ts",
"deploy": "npm run lib && npm publish"
},
"dependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/crud-table/src/CrudTable.vue
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ import {
import { DML, crud } from '@/api/public/crud';
import { getTableDetail, getFormDetail } from '@/api/system/form';
import { confirm } from '@/utils/confirm';
import SvgIcon from '@/common/icons/SvgIcon.vue';
import SvgIcon from '@/icons/SvgIcon.vue';
import GenerateFormDialog from './GenerateFormDialog.vue';
import SearchForm from './SearchForm.vue';
Expand Down
2 changes: 1 addition & 1 deletion packages/crud-table/src/GenerateFormDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<script lang="ts">
import { DML, crud } from '@/api/public/crud';
import { getFormDetail } from '@/api/system/form';
import GenerateForm from '@/form-designer/src/GenerateForm.vue';
import GenerateForm from 'packages/form-designer/src/GenerateForm.vue';
import guid from '@/utils/generator';
import {
Component, Vue, Emit, Watch, Prop,
Expand Down
2 changes: 1 addition & 1 deletion packages/crud-table/src/SeniorSearchForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
</template>

<script lang="ts">
import GenerateForm from '@/form-designer/src/GenerateForm.vue';
import GenerateForm from 'packages/form-designer/src/GenerateForm.vue';
import { DML, crud } from '@/api/public/crud';
import { getFormDetail } from '@/api/system/form';
Expand Down
4 changes: 1 addition & 3 deletions packages/form-designer/src/FormDesignerDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -210,9 +210,7 @@
</template>

<script>
// import './element';
import SvgIcon from '@/common/icons/SvgIcon.vue';
import SvgIcon from '@/icons/SvgIcon.vue';
import Draggable from 'vuedraggable';
import Icon from 'vue-awesome/components/Icon.vue';
import { DML, crud } from '@/api/public/crud';
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
16 changes: 10 additions & 6 deletions packages/index.ts → src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

// packages / index.js
import './element-variables.scss';// 按需导入element-ui css
import '@/common/icons/autoImportSvg'; // 自动导入src/icon目录下的svg图标
import '@/icons/autoImportSvg'; // 自动导入src/icon目录下的svg图标
// 导入单个组件
import FormDesignerDialog from './form-designer';
import CrudTable from './crud-table';
import GenerateForm from './form-designer/src/GenerateForm.vue';
import TableDesignerDialog from './table-designer';
import FormDesignerDialog from 'packages/form-designer';
import CrudTable from 'packages/crud-table';
import GenerateForm from 'packages/form-designer/src/GenerateForm.vue';
import TableDesignerDialog from 'packages/table-designer';

// 以数组的结构保存组件,便于遍历
const components = [
Expand All @@ -26,6 +26,7 @@ const components = [
component: CrudTable,
},
{
// 此处深坑,vue-class-component export的组件没有name属性!!!
name: 'GenerateForm',
component: GenerateForm,
},
Expand All @@ -51,6 +52,9 @@ if (typeof window !== 'undefined' && window.Vue) {
}

export default {
// 导出的对象必须具备一个 install 方法
install,
FormDesignerDialog,
CrudTable,
GenerateForm,
TableDesignerDialog,
};
File renamed without changes.
File renamed without changes.
File renamed without changes.
11 changes: 8 additions & 3 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
"baseUrl": ".",
"types": [
"webpack-env",
"./../element-ui/types",
"./../element-ui/types"
],
"paths": {
"@/*": [
"examples/*",
"packages/*"
"packages/*",
"src/*"
]
},
"lib": [
Expand All @@ -33,7 +34,11 @@
"examples/**/*.ts",
"examples/**/*.vue",
"packages/**/*.ts",
"packages/**/*.tsx"
"packages/**/*.vue",
"packages/**/*.tsx",
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue"
],
"exclude": [
"node_modules"
Expand Down
7 changes: 7 additions & 0 deletions types/crud-table.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { BaseComponent } from './main'


/** CrudTable Component */
export declare class ElCrudTable extends BaseComponent {

}
30 changes: 30 additions & 0 deletions types/element-pro-crud.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import Vue from 'vue'
import { BaseComponent } from './main'
import { ElCrudTable } from './crud-table'
import { ElFormDesignerDialog } from './form-designer-dialog'
import { ElTableDesignerDialog } from './table-designer-dialog'
import { ElGenerateForm } from './generate-form'

export interface InstallationOptions {}

/**
* Install all ElementProCrud components into Vue.
* Please do not invoke this method directly.
* Call `Vue.use(ElementProCrud)` to install.
*/
export function install (vue: typeof Vue, options: InstallationOptions): void

/** ElementUI component common definition */
export type Component = BaseComponent

/** FormDesignerDialog Component */
export class FormDesignerDialog extends ElFormDesignerDialog {}

/** TableDesignerDialog Component */
export class TableDesignerDialog extends ElTableDesignerDialog {}

/** GenerateForm Component */
export class GenerateForm extends ElGenerateForm {}

/** CrudTable Component */
export class CrudTable extends ElCrudTable {}
7 changes: 7 additions & 0 deletions types/form-designer-dialog.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { BaseComponent } from './main'


/** FormDesignerDialog Component */
export declare class ElFormDesignerDialog extends BaseComponent {

}
7 changes: 7 additions & 0 deletions types/generate-form.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { BaseComponent } from './main'


/** GenerateForm Component */
export declare class ElGenerateForm extends BaseComponent {

}
4 changes: 4 additions & 0 deletions types/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export * from './element-pro-crud'

import * as ElementProCrud from './element-pro-crud'
export default ElementProCrud
7 changes: 7 additions & 0 deletions types/main.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Vue from 'vue'

/** ElementProCrud component common definition */
export declare class BaseComponent extends Vue {
/** Install component into Vue */
static install (vue: typeof Vue): void
}
7 changes: 7 additions & 0 deletions types/table-designer-dialog.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { BaseComponent } from './main'


/** TableDesignerDialog Component */
export declare class ElTableDesignerDialog extends BaseComponent {

}
10 changes: 5 additions & 5 deletions vue.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,9 @@ module.exports = {
},
]);
}
// vue inspect --rules 列出所有规则,可以看到svg是第三个
// vue inspect module.rules.2 可以列出默认svg规则配置
// 从默认svg规则中排除src/icons路径,因为会当做图标自动加载
config.module.rule('svg').exclude.add(resolve('packages/common/icons'));
config.module
.rule('svg')
.exclude.add(resolve('packages/common/icons'));
// 添加svg-sprite-loader加载器
config.module
.rule('svg-sprite-loader')
Expand All @@ -53,7 +52,8 @@ module.exports = {
configureWebpack: {
resolve: {
alias: {
'@': resolve('packages'),
'@': resolve('src'),
packages: resolve('packages'),
},
},
},
Expand Down

0 comments on commit ab896f3

Please sign in to comment.