From 8f51560a14ecda5114f8926f9cafa0aefac8763a Mon Sep 17 00:00:00 2001 From: BoBoooooo <17746714@qq.com> Date: Mon, 19 Oct 2020 15:22:31 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=90=8C=E6=AD=A5=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.js | 1 + examples/App.vue | 11 +- examples/{main.js => main.ts} | 0 package.json | 60 +- .../{test/index.js => CrudTable/index.ts} | 8 +- packages/CrudTable/src/CrudTable.vue | 1042 +++++++++++++++++ packages/CrudTable/src/GenerateFormDialog.vue | 286 +++++ packages/CrudTable/src/SearchForm.vue | 231 ++++ packages/CrudTable/src/SeniorSearchForm.vue | 200 ++++ packages/FormDesigner/{index.js => index.ts} | 0 packages/FormDesigner/src/CusDialog.vue | 151 +++ .../FormDesigner => }/FormConfig.vue | 48 +- packages/FormDesigner/src/FormDesigner.vue | 551 ++++++--- packages/FormDesigner/src/GenerateForm.vue | 381 ++++++ .../FormDesigner => }/GenerateFormItem.vue | 547 ++++++--- .../FormDesigner => }/WidgetConfig.vue | 111 +- .../FormDesigner => }/WidgetForm.vue | 10 +- .../FormDesigner => }/WidgetFormItem.vue | 29 +- .../src/components/FileUpload/FileUpload.vue | 360 ++++++ .../src/components/FormDesigner/CusDialog.vue | 132 --- .../components/FormDesigner/GenerateForm.vue | 354 ------ .../components/FormDesigner/generateCode.js | 107 -- .../Tinymce/components/editorImage.vue | 115 ++ .../src/components/Tinymce/index.vue | 222 ++++ .../src/components/Tinymce/plugins.js | 8 + .../src/components/Tinymce/toolbar.js | 7 + ...omponentsConfig.js => componentsConfig.ts} | 44 +- .../src/{element.js => element.ts} | 0 .../FormDesigner => }/form_empty.png | Bin packages/FormDesigner/src/logo.png | Bin 0 -> 6839 bytes .../FormDesigner => }/styles/cover.scss | 3 - .../FormDesigner => }/styles/index.scss | 21 +- .../FormDesigner => }/styles/table-form.scss | 8 +- packages/FormDesigner/src/utils/download.ts | 48 + packages/api/axios.ts | 92 ++ packages/api/public/crud.ts | 67 ++ packages/api/system/form.ts | 53 + packages/{index.js => index.ts} | 6 +- packages/shims-vue-expand.d.ts | 27 + packages/shims-vue.d.ts | 13 + packages/test/src/test.vue | 22 - packages/utils/confirm.ts | 46 + packages/utils/generator.ts | 16 + tsconfig.json | 41 + vue.config.js | 10 +- 45 files changed, 4359 insertions(+), 1130 deletions(-) rename examples/{main.js => main.ts} (100%) rename packages/{test/index.js => CrudTable/index.ts} (64%) create mode 100644 packages/CrudTable/src/CrudTable.vue create mode 100644 packages/CrudTable/src/GenerateFormDialog.vue create mode 100644 packages/CrudTable/src/SearchForm.vue create mode 100644 packages/CrudTable/src/SeniorSearchForm.vue rename packages/FormDesigner/{index.js => index.ts} (100%) create mode 100644 packages/FormDesigner/src/CusDialog.vue rename packages/FormDesigner/src/{components/FormDesigner => }/FormConfig.vue (52%) create mode 100644 packages/FormDesigner/src/GenerateForm.vue rename packages/FormDesigner/src/{components/FormDesigner => }/GenerateFormItem.vue (55%) rename packages/FormDesigner/src/{components/FormDesigner => }/WidgetConfig.vue (88%) rename packages/FormDesigner/src/{components/FormDesigner => }/WidgetForm.vue (95%) rename packages/FormDesigner/src/{components/FormDesigner => }/WidgetFormItem.vue (90%) create mode 100644 packages/FormDesigner/src/components/FileUpload/FileUpload.vue delete mode 100644 packages/FormDesigner/src/components/FormDesigner/CusDialog.vue delete mode 100644 packages/FormDesigner/src/components/FormDesigner/GenerateForm.vue delete mode 100644 packages/FormDesigner/src/components/FormDesigner/generateCode.js create mode 100644 packages/FormDesigner/src/components/Tinymce/components/editorImage.vue create mode 100644 packages/FormDesigner/src/components/Tinymce/index.vue create mode 100644 packages/FormDesigner/src/components/Tinymce/plugins.js create mode 100644 packages/FormDesigner/src/components/Tinymce/toolbar.js rename packages/FormDesigner/src/{components/FormDesigner/componentsConfig.js => componentsConfig.ts} (96%) rename packages/FormDesigner/src/{element.js => element.ts} (100%) rename packages/FormDesigner/src/{components/FormDesigner => }/form_empty.png (100%) create mode 100644 packages/FormDesigner/src/logo.png rename packages/FormDesigner/src/{components/FormDesigner => }/styles/cover.scss (81%) rename packages/FormDesigner/src/{components/FormDesigner => }/styles/index.scss (98%) rename packages/FormDesigner/src/{components/FormDesigner => }/styles/table-form.scss (92%) create mode 100644 packages/FormDesigner/src/utils/download.ts create mode 100644 packages/api/axios.ts create mode 100644 packages/api/public/crud.ts create mode 100644 packages/api/system/form.ts rename packages/{index.js => index.ts} (89%) create mode 100644 packages/shims-vue-expand.d.ts create mode 100644 packages/shims-vue.d.ts delete mode 100644 packages/test/src/test.vue create mode 100755 packages/utils/confirm.ts create mode 100644 packages/utils/generator.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js index 89c335b..394bd75 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -12,6 +12,7 @@ module.exports = { extends: [ 'plugin:vue/essential', '@vue/airbnb', + '@vue/typescript', ], // 修改airbnb部分变态规则 rules: { diff --git a/examples/App.vue b/examples/App.vue index 1a4a942..d249b09 100644 --- a/examples/App.vue +++ b/examples/App.vue @@ -1,23 +1,26 @@ diff --git a/examples/main.js b/examples/main.ts similarity index 100% rename from examples/main.js rename to examples/main.ts diff --git a/package.json b/package.json index 0245728..3efced4 100644 --- a/package.json +++ b/package.json @@ -15,15 +15,11 @@ }, "dependencies": { "@riophae/vue-treeselect": "^0.3.0", - "axios": "^0.19.0", - "clipboard": "^2.0.4", + "axios": "^0.19.2", "compressing": "^1.4.0", - "core-js": "2.6.5", + "core-js": "3.6.5", "dayjs": "1.8.20", - "driver.js": "0.9.5", - "echarts": "4.6.0", - "element-ui": "2.12.0", - "gojs": "2.0.4", + "element-ui": "^2.13.2", "inquirer": "^6.5.2", "jsoneditor": "8.5.3", "lodash": "^4.17.14", @@ -31,30 +27,19 @@ "pinyin-match": "^1.0.9", "svg-sprite-loader": "^4.1.6", "v-contextmenu": "^2.8.1", - "vue": "2.6.10", + "vue": "2.6.11", "vue-awesome": "^3.5.4", - "vue-router": "^3.0.7", - "vue-runtime-helpers": "^1.1.2", - "vue-waterfall2": "^1.9.6", - "vuedraggable": "^2.23.0", - "vuex": "^3.1.1", - "vuex-persistedstate": "^2.5.4" + "vue-router": "3.4.3", + "vuedraggable": "^2.23.2", + "vuex": "3.5.1", + "vuex-persistedstate": "3.1.0" }, "devDependencies": { - "@vue/cli-plugin-babel": "^3.9.2", - "@vue/cli-plugin-eslint": "^3.9.2", - "@vue/cli-plugin-unit-mocha": "^3.9.0", - "@vue/cli-service": "^3.9.2", - "@vue/eslint-config-airbnb": "^4.0.1", - "@vue/test-utils": "^1.0.0-beta.20", "babel-eslint": "^10.0.2", "chai": "^4.2.0", "husky": "^3.0.9", - "commitizen": "^4.0.3", - "commitlint": "^8.2.0", - "conventional-changelog-cli": "^2.0.28", - "compression-webpack-plugin": "^3.0.1", - "electron": "^5.0.6", + "vue-class-component": "^7.2.3", + "vue-property-decorator": "^8.5.0", "eslint": "^6.0.1", "eslint-plugin-import": "^2.18.0", "eslint-plugin-vue": "^5.2.3", @@ -64,12 +49,31 @@ "node-sass": "^4.12.0", "sass-loader": "^7.1.0", "vue-cli-plugin-axios": "0.0.4", - "vue-cli-plugin-electron-builder": "^1.3.5", "vue-cli-plugin-element": "^1.0.1", - "vue-template-compiler": "2.6.10", + "vue-template-compiler": "2.6.11", "webpack": "^4.35.3", + "typescript": "~3.8.3", "webpack-bundle-analyzer": "^3.3.2", - "svgo-loader": "2.2.1" + "@vue/cli-plugin-babel": "4.5.4", + "@vue/cli-plugin-eslint": "4.5.4", + "@vue/cli-plugin-typescript": "4.5.4", + "@vue/cli-plugin-unit-mocha": "4.5.4", + "@vue/cli-service": "^3.9.2", + "@vue/eslint-config-airbnb": "^4.0.1", + "@vue/eslint-config-typescript": "^5.0.2", + "@typescript-eslint/eslint-plugin": "^2.26.0", + "@typescript-eslint/parser": "^2.26.0" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "src/**/*.{js,vue,ts}": [ + "npm run lint", + "git add" + ] }, "postcss": { "plugins": { diff --git a/packages/test/index.js b/packages/CrudTable/index.ts similarity index 64% rename from packages/test/index.js rename to packages/CrudTable/index.ts index c3ee0a7..d7252e8 100644 --- a/packages/test/index.js +++ b/packages/CrudTable/index.ts @@ -6,12 +6,12 @@ */ // 导入组件,组件必须声明 name -import Test from './src/test.vue'; +import CrudTable from './src/CrudTable.vue'; // 为组件添加 install 方法,用于按需引入 // eslint-disable-next-line func-names -Test.install = function (Vue) { - Vue.component(Test.name, Test); +CrudTable.install = function (Vue) { + Vue.component(CrudTable.name, CrudTable); }; -export default Test; +export default CrudTable; diff --git a/packages/CrudTable/src/CrudTable.vue b/packages/CrudTable/src/CrudTable.vue new file mode 100644 index 0000000..fe670e3 --- /dev/null +++ b/packages/CrudTable/src/CrudTable.vue @@ -0,0 +1,1042 @@ + + + + + + + + + diff --git a/packages/CrudTable/src/GenerateFormDialog.vue b/packages/CrudTable/src/GenerateFormDialog.vue new file mode 100644 index 0000000..5c37434 --- /dev/null +++ b/packages/CrudTable/src/GenerateFormDialog.vue @@ -0,0 +1,286 @@ + + + + diff --git a/packages/CrudTable/src/SearchForm.vue b/packages/CrudTable/src/SearchForm.vue new file mode 100644 index 0000000..03d2f0b --- /dev/null +++ b/packages/CrudTable/src/SearchForm.vue @@ -0,0 +1,231 @@ + + + + + + + + diff --git a/packages/CrudTable/src/SeniorSearchForm.vue b/packages/CrudTable/src/SeniorSearchForm.vue new file mode 100644 index 0000000..6904bb2 --- /dev/null +++ b/packages/CrudTable/src/SeniorSearchForm.vue @@ -0,0 +1,200 @@ + + + + diff --git a/packages/FormDesigner/index.js b/packages/FormDesigner/index.ts similarity index 100% rename from packages/FormDesigner/index.js rename to packages/FormDesigner/index.ts diff --git a/packages/FormDesigner/src/CusDialog.vue b/packages/FormDesigner/src/CusDialog.vue new file mode 100644 index 0000000..419e8ec --- /dev/null +++ b/packages/FormDesigner/src/CusDialog.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/packages/FormDesigner/src/components/FormDesigner/FormConfig.vue b/packages/FormDesigner/src/FormConfig.vue similarity index 52% rename from packages/FormDesigner/src/components/FormDesigner/FormConfig.vue rename to packages/FormDesigner/src/FormConfig.vue index c85fd99..419db66 100644 --- a/packages/FormDesigner/src/components/FormDesigner/FormConfig.vue +++ b/packages/FormDesigner/src/FormConfig.vue @@ -1,3 +1,9 @@ + - diff --git a/packages/FormDesigner/src/FormDesigner.vue b/packages/FormDesigner/src/FormDesigner.vue index dca6abf..c4cf242 100644 --- a/packages/FormDesigner/src/FormDesigner.vue +++ b/packages/FormDesigner/src/FormDesigner.vue @@ -1,177 +1,226 @@ -