diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java index 05e4f0b11..28fd9b9d6 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java @@ -168,12 +168,6 @@ public class GlobalExceptionHandler { */ @ExceptionHandler(NoHandlerFoundException.class) public CommonResult noHandlerFoundExceptionHandler(HttpServletRequest req, NoHandlerFoundException ex) { - // 情况一:部分功能未开启 - if (req.getRequestURI().contains("/bpm/")) { - return CommonResult.error(NOT_IMPLEMENTED.getCode(), "[工作流模块 yudao-module-bpm - 已禁用][参考 https://doc.iocoder.cn/bpm/ 开启]"); - } - - // 情况二:正常情况下的 404 log.warn("[noHandlerFoundExceptionHandler]", ex); return CommonResult.error(NOT_FOUND.getCode(), String.format("请求地址不存在:%s", ex.getRequestURL())); } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm index 37c436246..ed2775102 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/data.ts.vm @@ -21,71 +21,78 @@ const crudSchemas = reactive({ action: true, actionWidth: '200', // 3个按钮默认200,如有删减对应增减即可 columns: [ -#foreach($column in $columns) - #if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation) - #set ($dictType = $column.dictType) - #if(!$column.primaryKey) - { - title: '${column.columnComment}', - field: '${column.javaField}', - #if ("" != $dictType)## 有数据字典 - dictType: DICT_TYPE.$dictType.toUpperCase(), - #end - #if (!$column.createOperation && !$column.updateOperation) - isForm: false - #elseif(!("" != $column.dictType)) - #if ($column.htmlType == "datetime")## 时间框 - form: { - show: true, - component: 'DatePicker', - componentProps: { - type: 'datetime', - valueFormat: 'YYYY-MM-DD HH:mm:ss' - } - } - #elseif($column.htmlType == "editor")## 文本编辑器 - form: { - show: true, - component: 'Editor', - colProps: { - span: 24 + #foreach($column in $columns) + #if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation) + #set ($dictType = $column.dictType) + #if(!$column.primaryKey) + { + title: '${column.columnComment}', + field: '${column.javaField}', + #if ("" != $dictType)## 有数据字典 + dictType: DICT_TYPE.$dictType.toUpperCase(), + #if (${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer") + dictData: 'number', + #else + dictData: 'string', + #end + #end + #if (!$column.createOperation && !$column.updateOperation) + isForm: false, + #elseif(!("" != $column.dictType)) + #if ($column.htmlType == "datetime")## 时间框 + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'YYYY-MM-DD HH:mm:ss' + } }, - componentProps: { - valueHtml: '' - } - } - #elseif($column.htmlType == "textarea")## 文本框 - form: { - show: true, - component: 'Input', - componentProps: { - type: 'textarea', - rows: 4 + #elseif($column.htmlType == "editor")## 文本编辑器 + form: { + component: 'Editor', + colProps: { + span: 24 + }, + componentProps: { + valueHtml: '' + } }, - colProps: { - span: 24 - } - } + #elseif($column.htmlType == "textarea")## 文本框 + form: { + component: 'Input', + componentProps: { + type: 'textarea', + rows: 4 + }, + colProps: { + span: 24 + } + }, + #elseif(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")## 数字类型 + form: { + component: 'InputNumber', + value: 0 + }, + #end + #end + #if ($column.listOperationResult) + #if($column.htmlType == "input") + isSearch: true, + #elseif("" != $dictType) + isSearch: true, + #elseif($column.htmlType == "datetime") + search: { + show: true, + itemRender: { + name: 'XDataTimePicker' + } + }, + #end + #end + #end + }, #end - #end - #if ($column.listOperationResult) - #if($column.htmlType == "input") - isSearch: true - #elseif("" != $dictType) - isSearch: true - #elseif($column.htmlType == "datetime") - search: { - show: true, - itemRender: { - name: 'XDataTimePicker' - } - } - #end - #end - #end - }, #end -#end ] }) export const { allSchemas } = useVxeCrudSchemas(crudSchemas) \ No newline at end of file diff --git a/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java b/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java new file mode 100644 index 000000000..14946218a --- /dev/null +++ b/yudao-server/src/main/java/cn/iocoder/yudao/server/controller/DefaultController.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.server.controller; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.NOT_IMPLEMENTED; + +/** + * 默认 Controller,解决部分 module 未开启时的 404 提示。 + * 例如说,/bpm/** 路径,工作流 + * + * @author 芋道源码 + */ +@RestController +public class DefaultController { + + @RequestMapping("/admin-api/bpm/**") + public CommonResult bpm404() { + return CommonResult.error(NOT_IMPLEMENTED.getCode(), + "[工作流模块 yudao-module-bpm - 已禁用][参考 https://doc.iocoder.cn/bpm/ 开启]"); + } + +} diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 87f781091..7918d443c 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -17,8 +17,8 @@ spring: mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类 - throw-exception-if-no-handler-found: true # 404 错误时抛出异常,方便统一处理 - static-path-pattern: /static/** # 静态资源路径; 注意:如果不配置,则 throw-exception-if-no-handler-found 不生效!!! +# throw-exception-if-no-handler-found: true # 404 错误时抛出异常,方便统一处理 +# static-path-pattern: /static/** # 静态资源路径; 注意:如果不配置,则 throw-exception-if-no-handler-found 不生效!!! TODO 芋艿:不能配置,会导致 swagger 不生效 # Jackson 配置项 jackson: diff --git a/yudao-ui-admin-vue3/package.json b/yudao-ui-admin-vue3/package.json index ed940fcdb..ad95b164d 100644 --- a/yudao-ui-admin-vue3/package.json +++ b/yudao-ui-admin-vue3/package.json @@ -1,6 +1,6 @@ { "name": "ruoyi-vue-pro-vue3", - "version": "1.6.4.1841", + "version": "1.6.4.1851", "description": "基于vue3、vite3、element-plus、typesScript", "author": "xingyu", "private": false, @@ -43,7 +43,7 @@ "lodash-es": "^4.17.21", "mitt": "^3.0.0", "nprogress": "^0.2.0", - "pinia": "^2.0.23", + "pinia": "^2.0.24", "qrcode": "^1.5.1", "qs": "^6.11.0", "url": "^0.11.0", @@ -59,7 +59,7 @@ "devDependencies": { "@commitlint/cli": "^17.2.0", "@commitlint/config-conventional": "^17.2.0", - "@iconify/json": "^2.1.138", + "@iconify/json": "^2.1.139", "@intlify/vite-plugin-vue-i18n": "^6.0.3", "@purge-icons/generated": "^0.9.0", "@types/intro.js": "^5.1.0", @@ -95,7 +95,7 @@ "stylelint-order": "^5.0.0", "typescript": "4.8.4", "unplugin-vue-macros": "^0.16.3", - "vite": "3.2.3", + "vite": "3.2.4", "vite-plugin-compression": "^0.5.1", "vite-plugin-eslint": "^1.8.1", "vite-plugin-html": "^3.2.0", diff --git a/yudao-ui-admin-vue3/pnpm-lock.yaml b/yudao-ui-admin-vue3/pnpm-lock.yaml index 544f6e394..d422aa95e 100644 --- a/yudao-ui-admin-vue3/pnpm-lock.yaml +++ b/yudao-ui-admin-vue3/pnpm-lock.yaml @@ -4,7 +4,7 @@ specifiers: '@commitlint/cli': ^17.2.0 '@commitlint/config-conventional': ^17.2.0 '@iconify/iconify': ^3.0.0 - '@iconify/json': ^2.1.138 + '@iconify/json': ^2.1.139 '@intlify/vite-plugin-vue-i18n': ^6.0.3 '@purge-icons/generated': ^0.9.0 '@types/intro.js': ^5.1.0 @@ -42,7 +42,7 @@ specifiers: lodash-es: ^4.17.21 mitt: ^3.0.0 nprogress: ^0.2.0 - pinia: ^2.0.23 + pinia: ^2.0.24 plop: ^3.1.1 postcss: ^8.4.19 postcss-html: ^1.5.0 @@ -61,7 +61,7 @@ specifiers: typescript: 4.8.4 unplugin-vue-macros: ^0.16.3 url: ^0.11.0 - vite: 3.2.3 + vite: 3.2.4 vite-plugin-compression: ^0.5.1 vite-plugin-eslint: ^1.8.1 vite-plugin-html: ^3.2.0 @@ -99,7 +99,7 @@ dependencies: lodash-es: 4.17.21 mitt: 3.0.0 nprogress: 0.2.0 - pinia: 2.0.23_zwu2zepfy3m6u2gunxlolp35gi + pinia: 2.0.24_zwu2zepfy3m6u2gunxlolp35gi qrcode: 1.5.1 qs: 6.11.0 url: 0.11.0 @@ -115,8 +115,8 @@ dependencies: devDependencies: '@commitlint/cli': 17.2.0 '@commitlint/config-conventional': 17.2.0 - '@iconify/json': 2.1.138 - '@intlify/vite-plugin-vue-i18n': 6.0.3_vite@3.2.3+vue-i18n@9.2.2 + '@iconify/json': 2.1.139 + '@intlify/vite-plugin-vue-i18n': 6.0.3_vite@3.2.4+vue-i18n@9.2.2 '@purge-icons/generated': 0.9.0 '@types/intro.js': 5.1.0 '@types/lodash-es': 4.17.6 @@ -126,8 +126,8 @@ devDependencies: '@types/qs': 6.9.7 '@typescript-eslint/eslint-plugin': 5.43.0_yy4vf4gcvxiubmg7fqa55dqe2i '@typescript-eslint/parser': 5.43.0_rmayb2veg2btbq6mbmnyivgasy - '@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.45 - '@vitejs/plugin-vue-jsx': 2.1.1_vite@3.2.3+vue@3.2.45 + '@vitejs/plugin-vue': 3.2.0_vite@3.2.4+vue@3.2.45 + '@vitejs/plugin-vue-jsx': 2.1.1_vite@3.2.4+vue@3.2.45 autoprefixer: 10.4.13_postcss@8.4.19 eslint: 8.27.0 eslint-config-prettier: 8.5.0_eslint@8.27.0 @@ -150,15 +150,15 @@ devDependencies: stylelint-config-standard: 29.0.0_stylelint@14.15.0 stylelint-order: 5.0.0_stylelint@14.15.0 typescript: 4.8.4 - unplugin-vue-macros: 0.16.3_mghlipbkxnxld5kp6aysmuv2fa - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi - vite-plugin-compression: 0.5.1_vite@3.2.3 - vite-plugin-eslint: 1.8.1_eslint@8.27.0+vite@3.2.3 - vite-plugin-html: 3.2.0_vite@3.2.3 - vite-plugin-purge-icons: 0.9.1_vite@3.2.3 - vite-plugin-style-import: 2.0.0_vite@3.2.3 - vite-plugin-svg-icons: 2.0.1_vite@3.2.3 - vite-plugin-windicss: 1.8.8_vite@3.2.3 + unplugin-vue-macros: 0.16.3_drqowttw7xgwfzqyhu6wuedde4 + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi + vite-plugin-compression: 0.5.1_vite@3.2.4 + vite-plugin-eslint: 1.8.1_eslint@8.27.0+vite@3.2.4 + vite-plugin-html: 3.2.0_vite@3.2.4 + vite-plugin-purge-icons: 0.9.1_vite@3.2.4 + vite-plugin-style-import: 2.0.0_vite@3.2.4 + vite-plugin-svg-icons: 2.0.1_vite@3.2.4 + vite-plugin-windicss: 1.8.8_vite@3.2.4 vue-tsc: 1.0.9_typescript@4.8.4 windicss: 3.5.6 @@ -574,11 +574,11 @@ packages: '@types/node': 14.18.31 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 4.1.1_gpl3msxjb2n3qdkii2jvdrcxxe + cosmiconfig-typescript-loader: 4.1.1_kjtesrzmdzjxgbmvhf7rq2qmfi lodash: 4.17.21 resolve-from: 5.0.0 - ts-node: 10.9.1_fk6arlf3j7tudlucddpzvj2plq - typescript: 4.8.4 + ts-node: 10.9.1_zdwmxzc3s32eishk7hircltqdy + typescript: 4.9.3 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -760,8 +760,8 @@ packages: dependencies: '@iconify/types': 2.0.0 - /@iconify/json/2.1.138: - resolution: {integrity: sha512-migiXo9NKjkc3ob3qRzjdfecyFo39eziD9IY+LbNooQwyU8CS+WoeNtoI34Sf2+3DrV69H0kxeLf3bFQ+nKvew==} + /@iconify/json/2.1.139: + resolution: {integrity: sha512-H/DQ/yVgdUk4x4hU696fy0mZOkvLQaR6REQU/okFLgaiIFOS+EWw6GV5JDSKbbkh0YVaxUrAUaqB8XTSFVrFeA==} dependencies: '@iconify/types': 2.0.0 pathe: 0.3.9 @@ -829,7 +829,7 @@ packages: engines: {node: '>= 14'} dev: true - /@intlify/vite-plugin-vue-i18n/6.0.3_vite@3.2.3+vue-i18n@9.2.2: + /@intlify/vite-plugin-vue-i18n/6.0.3_vite@3.2.4+vue-i18n@9.2.2: resolution: {integrity: sha512-6SgNzPAOCR90wvt368lKzi7f/5ZEWJn22UCGvhFsP3XvKqlF3cVzojahgQ6o+LTdCkExeM6wPgd+haFf28E9VQ==} engines: {node: '>= 14.6'} peerDependencies: @@ -850,7 +850,7 @@ packages: debug: 4.3.4 fast-glob: 3.2.12 source-map: 0.6.1 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi vue-i18n: 9.2.2_vue@3.2.45 transitivePeerDependencies: - supports-color @@ -1263,7 +1263,7 @@ packages: nanoid: 3.3.4 dev: false - /@vitejs/plugin-vue-jsx/2.1.1_vite@3.2.3+vue@3.2.45: + /@vitejs/plugin-vue-jsx/2.1.1_vite@3.2.4+vue@3.2.45: resolution: {integrity: sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1273,20 +1273,20 @@ packages: '@babel/core': 7.19.6 '@babel/plugin-transform-typescript': 7.20.2_@babel+core@7.19.6 '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.19.6 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi vue: 3.2.45 transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue/3.2.0_vite@3.2.3+vue@3.2.45: + /@vitejs/plugin-vue/3.2.0_vite@3.2.4+vue@3.2.45: resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^3.0.0 vue: ^3.2.25 dependencies: - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi vue: 3.2.45 dev: true @@ -1418,16 +1418,16 @@ packages: unplugin: 0.10.2 dev: true - /@vue-macros/named-template/0.0.5_poefzxy2vtculed3kqru6isufm: + /@vue-macros/named-template/0.0.5_ygspmtsr7jejaf6wke2f4dns5a: resolution: {integrity: sha512-bZRUljNyvOOqeE9dyqXvKPQCLUCcPt1EkThmXqSbxagV29ohyviF8+CCs/8OdmNygLTBIChjP8DexQ3nUIFzUg==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 - '@vitejs/plugin-vue': 3.2.0_vite@3.2.3+vue@3.2.45 + '@vitejs/plugin-vue': 3.2.0_vite@3.2.4+vue@3.2.45 '@vue-macros/common': 0.13.3 '@vue/compiler-dom': 3.2.45 unplugin: 0.10.2 - unplugin-combine: 0.2.8_rollup@3.3.0+vite@3.2.3 + unplugin-combine: 0.2.8_rollup@3.3.0+vite@3.2.4 transitivePeerDependencies: - esbuild - rollup @@ -1436,14 +1436,14 @@ packages: - webpack dev: true - /@vue-macros/setup-component/0.12.7_rollup@3.3.0+vite@3.2.3: + /@vue-macros/setup-component/0.12.7_rollup@3.3.0+vite@3.2.4: resolution: {integrity: sha512-L0WkJgw0QDwZh4tOjjKIDR0DMIybiOunsaxVqkJjicTb2YaiRUSLq4Wadl8Ttrsd0IEfI51CSlg7Sx0/dKLrlQ==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.13.3 unplugin: 0.10.2 - unplugin-combine: 0.2.8_rollup@3.3.0+vite@3.2.3 + unplugin-combine: 0.2.8_rollup@3.3.0+vite@3.2.4 transitivePeerDependencies: - esbuild - rollup @@ -1565,10 +1565,6 @@ packages: /@vue/devtools-api/6.4.3: resolution: {integrity: sha512-9WCRwdROJvWcHAdyrR7SZMM/qUvllDZnpndHXokThkUsjnJ2xe4/pvsH9FZrxFe22L+JmDKczL79HjLJ7DK9rg==} - /@vue/devtools-api/6.4.4: - resolution: {integrity: sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==} - dev: false - /@vue/devtools-api/6.4.5: resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} dev: false @@ -2615,7 +2611,7 @@ packages: vary: 1.1.2 dev: true - /cosmiconfig-typescript-loader/4.1.1_gpl3msxjb2n3qdkii2jvdrcxxe: + /cosmiconfig-typescript-loader/4.1.1_kjtesrzmdzjxgbmvhf7rq2qmfi: resolution: {integrity: sha512-9DHpa379Gp0o0Zefii35fcmuuin6q92FnLDffzdZ0l9tVd3nEobG3O+MZ06+kuBvFTSVScvNb/oHA13Nd4iipg==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -2626,8 +2622,8 @@ packages: dependencies: '@types/node': 14.18.31 cosmiconfig: 7.0.1 - ts-node: 10.9.1_fk6arlf3j7tudlucddpzvj2plq - typescript: 4.8.4 + ts-node: 10.9.1_zdwmxzc3s32eishk7hircltqdy + typescript: 4.9.3 dev: true /cosmiconfig/7.0.1: @@ -5564,8 +5560,8 @@ packages: dev: true optional: true - /pinia/2.0.23_zwu2zepfy3m6u2gunxlolp35gi: - resolution: {integrity: sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==} + /pinia/2.0.24_zwu2zepfy3m6u2gunxlolp35gi: + resolution: {integrity: sha512-DDLd4Iphyc+6PYYYbx7jkb6WP9gecgu9bz9huyB5rb7CdJI3DhzYiZI+/Ih8MLewRrP9DSpslF/BgSNrJtZU7A==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' @@ -5576,7 +5572,7 @@ packages: typescript: optional: true dependencies: - '@vue/devtools-api': 6.4.4 + '@vue/devtools-api': 6.4.5 typescript: 4.8.4 vue: 3.2.45 vue-demi: 0.13.11_vue@3.2.45 @@ -6673,7 +6669,7 @@ packages: engines: {node: '>=8'} dev: true - /ts-node/10.9.1_fk6arlf3j7tudlucddpzvj2plq: + /ts-node/10.9.1_zdwmxzc3s32eishk7hircltqdy: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6699,7 +6695,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.8.4 + typescript: 4.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -6771,6 +6767,12 @@ packages: engines: {node: '>=4.2.0'} hasBin: true + /typescript/4.9.3: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /uglify-js/3.17.3: resolution: {integrity: sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==} engines: {node: '>=0.8.0'} @@ -6799,7 +6801,7 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin-combine/0.2.8_rollup@3.3.0+vite@3.2.3: + /unplugin-combine/0.2.8_rollup@3.3.0+vite@3.2.4: resolution: {integrity: sha512-Z38AC/TEjXbVyZ5HjVqo+lADj0/dcfwWC0Z4y0LNhybJzJQwmcMxm+ZsqHY3faauj4YigmlRMdptR5JEW9RuLg==} engines: {node: '>=14.19.0'} peerDependencies: @@ -6820,7 +6822,7 @@ packages: '@antfu/utils': 0.6.0 rollup: 3.3.0 unplugin: 0.10.2 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi dev: true /unplugin-vue-define-options/0.12.7: @@ -6833,7 +6835,7 @@ packages: unplugin: 0.10.2 dev: true - /unplugin-vue-macros/0.16.3_mghlipbkxnxld5kp6aysmuv2fa: + /unplugin-vue-macros/0.16.3_drqowttw7xgwfzqyhu6wuedde4: resolution: {integrity: sha512-ADdDS5EjHRZ2esEHSNBw7CS7QLWpqvNJIW0H5EqKgSvtQ+2Hnb8IeRVT0f4mR+wyQvl/ZrlpTs1GvZdsh8eSlw==} engines: {node: '>=14.19.0'} peerDependencies: @@ -6846,12 +6848,12 @@ packages: '@vue-macros/define-render': 0.13.8_vue@3.2.45 '@vue-macros/define-slots': 0.0.5_vue@3.2.45 '@vue-macros/hoist-static': 0.12.7 - '@vue-macros/named-template': 0.0.5_poefzxy2vtculed3kqru6isufm - '@vue-macros/setup-component': 0.12.7_rollup@3.3.0+vite@3.2.3 + '@vue-macros/named-template': 0.0.5_ygspmtsr7jejaf6wke2f4dns5a + '@vue-macros/setup-component': 0.12.7_rollup@3.3.0+vite@3.2.4 '@vue-macros/setup-sfc': 0.12.7 '@vue-macros/short-emits': 0.12.8 local-pkg: 0.4.2 - unplugin-combine: 0.2.8_rollup@3.3.0+vite@3.2.3 + unplugin-combine: 0.2.8_rollup@3.3.0+vite@3.2.4 unplugin-vue-define-options: 0.12.7 vue: 3.2.45 transitivePeerDependencies: @@ -6954,7 +6956,7 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-plugin-compression/0.5.1_vite@3.2.3: + /vite-plugin-compression/0.5.1_vite@3.2.4: resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} peerDependencies: vite: '>=2.0.0' @@ -6962,12 +6964,12 @@ packages: chalk: 4.1.2 debug: 4.3.4 fs-extra: 10.1.0 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi transitivePeerDependencies: - supports-color dev: true - /vite-plugin-eslint/1.8.1_eslint@8.27.0+vite@3.2.3: + /vite-plugin-eslint/1.8.1_eslint@8.27.0+vite@3.2.4: resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} peerDependencies: eslint: '>=7' @@ -6977,10 +6979,10 @@ packages: '@types/eslint': 8.4.6 eslint: 8.27.0 rollup: 2.79.1 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi dev: true - /vite-plugin-html/3.2.0_vite@3.2.3: + /vite-plugin-html/3.2.0_vite@3.2.4: resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==} peerDependencies: vite: '>=2.0.0' @@ -6997,10 +6999,10 @@ packages: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi dev: true - /vite-plugin-purge-icons/0.9.1_vite@3.2.3: + /vite-plugin-purge-icons/0.9.1_vite@3.2.4: resolution: {integrity: sha512-oS0Y9Iq6vGnTDVRzB8xJNhA/gGlyR0lfCICU6+9FRKdrO5PnT34fRjvd8YWEsegCrk91+w3GVZc0HJDj/dPp5Q==} engines: {node: '>= 12'} peerDependencies: @@ -7009,13 +7011,13 @@ packages: '@purge-icons/core': 0.9.1 '@purge-icons/generated': 0.9.0 rollup-plugin-purge-icons: 0.9.1 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi transitivePeerDependencies: - encoding - supports-color dev: true - /vite-plugin-style-import/2.0.0_vite@3.2.3: + /vite-plugin-style-import/2.0.0_vite@3.2.4: resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==} peerDependencies: vite: '>=2.0.0' @@ -7027,10 +7029,10 @@ packages: fs-extra: 10.1.0 magic-string: 0.25.9 pathe: 0.2.0 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi dev: true - /vite-plugin-svg-icons/2.0.1_vite@3.2.3: + /vite-plugin-svg-icons/2.0.1_vite@3.2.4: resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} peerDependencies: vite: '>=2.0.0' @@ -7043,12 +7045,12 @@ packages: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi transitivePeerDependencies: - supports-color dev: true - /vite-plugin-windicss/1.8.8_vite@3.2.3: + /vite-plugin-windicss/1.8.8_vite@3.2.4: resolution: {integrity: sha512-iyu+ZX0NmhNEUaLPv7xtC+EFRBpWMmw0nhd9a9upayfuNG/thwslKiQKmRB7U/dG0k/2oWLvPDvN/B9i7oRgSA==} peerDependencies: vite: ^2.0.1 || ^3.0.0 @@ -7056,14 +7058,14 @@ packages: '@windicss/plugin-utils': 1.8.8 debug: 4.3.4 kolorist: 1.6.0 - vite: 3.2.3_mp5lu76ee5qtwstsyca37sdhqi + vite: 3.2.4_mp5lu76ee5qtwstsyca37sdhqi windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true - /vite/3.2.3_mp5lu76ee5qtwstsyca37sdhqi: - resolution: {integrity: sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==} + /vite/3.2.4_mp5lu76ee5qtwstsyca37sdhqi: + resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: diff --git a/yudao-ui-admin-vue3/src/api/login/index.ts b/yudao-ui-admin-vue3/src/api/login/index.ts index 3f9c9a93f..36b7d01c4 100644 --- a/yudao-ui-admin-vue3/src/api/login/index.ts +++ b/yudao-ui-admin-vue3/src/api/login/index.ts @@ -62,3 +62,12 @@ export const socialAuthRedirectApi = (type: string, redirectUri: string) => { url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri }) } +// 获取验证图片 以及token +export const getCodeApi = (data) => { + return request.postOriginal({ url: 'system/captcha/get', data }) +} + +// 滑动或者点选验证 +export const reqCheckApi = (data) => { + return request.postOriginal({ url: 'system/captcha/check', data }) +} diff --git a/yudao-ui-admin-vue3/src/api/system/dept/index.ts b/yudao-ui-admin-vue3/src/api/system/dept/index.ts index 5e602d067..30785c269 100644 --- a/yudao-ui-admin-vue3/src/api/system/dept/index.ts +++ b/yudao-ui-admin-vue3/src/api/system/dept/index.ts @@ -1,32 +1,46 @@ import request from '@/config/axios' -import type { DeptVO, DeptListReqVO } from './types' +export type DeptVO = { + id: number + name: string + parentId: number + status: number + sort: number + leaderUserId: number + phone: string + email: string +} + +export interface DeptPageReqVO { + name?: string + status?: number +} // 查询部门(精简)列表 -export const listSimpleDeptApi = () => { - return request.get({ url: '/system/dept/list-all-simple' }) +export const listSimpleDeptApi = async () => { + return await request.get({ url: '/system/dept/list-all-simple' }) } // 查询部门列表 -export const getDeptPageApi = (params: DeptListReqVO) => { - return request.get({ url: '/system/dept/list', params }) +export const getDeptPageApi = async (params: DeptPageReqVO) => { + return await request.get({ url: '/system/dept/list', params }) } // 查询部门详情 -export const getDeptApi = (id: number) => { - return request.get({ url: '/system/dept/get?id=' + id }) +export const getDeptApi = async (id: number) => { + return await request.get({ url: '/system/dept/get?id=' + id }) } // 新增部门 -export const createDeptApi = (data: DeptVO) => { - return request.post({ url: '/system/dept/create', data: data }) +export const createDeptApi = async (data: DeptVO) => { + return await request.post({ url: '/system/dept/create', data: data }) } // 修改部门 -export const updateDeptApi = (params: DeptVO) => { - return request.put({ url: '/system/dept/update', data: params }) +export const updateDeptApi = async (params: DeptVO) => { + return await request.put({ url: '/system/dept/update', data: params }) } // 删除部门 -export const deleteDeptApi = (id: number) => { - return request.delete({ url: '/system/dept/delete?id=' + id }) +export const deleteDeptApi = async (id: number) => { + return await request.delete({ url: '/system/dept/delete?id=' + id }) } diff --git a/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue b/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue index 96ae7cad5..8446ed212 100644 --- a/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue +++ b/yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue @@ -1,11 +1,3 @@ - - - diff --git a/yudao-ui-admin-vue3/src/views/Error/404.vue b/yudao-ui-admin-vue3/src/views/Error/404.vue index fffedd89f..cd10cb9bb 100644 --- a/yudao-ui-admin-vue3/src/views/Error/404.vue +++ b/yudao-ui-admin-vue3/src/views/Error/404.vue @@ -1,3 +1,7 @@ + + - - diff --git a/yudao-ui-admin-vue3/src/views/Error/500.vue b/yudao-ui-admin-vue3/src/views/Error/500.vue index 2898cfe7b..79a64b8ee 100644 --- a/yudao-ui-admin-vue3/src/views/Error/500.vue +++ b/yudao-ui-admin-vue3/src/views/Error/500.vue @@ -1,3 +1,7 @@ + + - - diff --git a/yudao-ui-admin-vue3/src/views/Home/Index.vue b/yudao-ui-admin-vue3/src/views/Home/Index.vue index db371fb03..5b4487b09 100644 --- a/yudao-ui-admin-vue3/src/views/Home/Index.vue +++ b/yudao-ui-admin-vue3/src/views/Home/Index.vue @@ -1,3 +1,165 @@ + - - diff --git a/yudao-ui-admin-vue3/src/views/Home/Index2.vue b/yudao-ui-admin-vue3/src/views/Home/Index2.vue index fb5db7dcd..c35582a12 100644 --- a/yudao-ui-admin-vue3/src/views/Home/Index2.vue +++ b/yudao-ui-admin-vue3/src/views/Home/Index2.vue @@ -1,133 +1,3 @@ - - + + diff --git a/yudao-ui-admin-vue3/src/views/system/dict/index.vue b/yudao-ui-admin-vue3/src/views/system/dict/index.vue index 361cb100a..998ca581e 100644 --- a/yudao-ui-admin-vue3/src/views/system/dict/index.vue +++ b/yudao-ui-admin-vue3/src/views/system/dict/index.vue @@ -119,7 +119,14 @@ :schema="DictTypeSchemas.allSchemas.formSchema" :rules="DictTypeSchemas.dictTypeRules" ref="typeFormRef" - /> + > + +
{ + dictTypeValue.value = '' setDialogTile('typeCreate') } const handleTypeUpdate = async (row: DictTypeVO) => { setDialogTile('typeUpdate') // 设置数据 const res = await DictTypeApi.getDictTypeApi(row.id) + dictTypeValue.value = res.type unref(typeFormRef)?.setValues(res) } @@ -229,6 +239,7 @@ const actionLoading = ref(false) // 遮罩层 const typeFormRef = ref() // 分类表单 Ref const dataFormRef = ref() // 数据表单 Ref const actionType = ref('') // 操作按钮的类型 + // 设置标题 const setDialogTile = (type: string) => { dialogTitle.value = t('action.' + type) @@ -246,6 +257,7 @@ const submitTypeForm = async () => { try { const data = unref(typeFormRef)?.formModel as DictTypeVO if (actionType.value === 'typeCreate') { + data.type = dictTypeValue.value await DictTypeApi.createDictTypeApi(data) ElMessage.success(t('common.createSuccess')) } else if (actionType.value === 'typeUpdate') { diff --git a/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts b/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts index 19a2e530c..bf7951c35 100644 --- a/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts +++ b/yudao-ui-admin-vue3/src/views/system/tenant/tenant.data.ts @@ -82,8 +82,7 @@ const crudSchemas = reactive([ label: '账号额度', field: 'accountCount', form: { - component: 'InputNumber', - value: 0 + component: 'InputNumber' } }, { diff --git a/yudao-ui-admin-vue3/src/views/system/user/user.data.ts b/yudao-ui-admin-vue3/src/views/system/user/user.data.ts index 4938dd852..fd32aab38 100644 --- a/yudao-ui-admin-vue3/src/views/system/user/user.data.ts +++ b/yudao-ui-admin-vue3/src/views/system/user/user.data.ts @@ -74,6 +74,7 @@ const crudSchemas = reactive({ { title: '最后登录时间', field: 'loginDate', + formatter: 'formatDate', isForm: false }, { diff --git a/yudao-ui-admin-vue3/vite.config.ts b/yudao-ui-admin-vue3/vite.config.ts index 12d958c83..c33a46208 100644 --- a/yudao-ui-admin-vue3/vite.config.ts +++ b/yudao-ui-admin-vue3/vite.config.ts @@ -13,7 +13,7 @@ import { createHtmlPlugin } from 'vite-plugin-html' import viteCompression from 'vite-plugin-compression' import VueMarcos from 'unplugin-vue-macros/vite' -// 当前执行node命令时文件夹的地址(工作目录) +// 当前执行node命令时文件夹的地址(工作目录) const root = process.cwd() // 路径查找 @@ -144,6 +144,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { 'vue-router', 'vue-types', 'vue-i18n', + 'vxe-table', + 'xe-utils', 'element-plus/es', 'element-plus/es/locale/lang/zh-cn', 'element-plus/es/locale/lang/en', diff --git a/yudao-ui-admin/src/api/login.js b/yudao-ui-admin/src/api/login.js index b34d98d29..614a11fcb 100644 --- a/yudao-ui-admin/src/api/login.js +++ b/yudao-ui-admin/src/api/login.js @@ -126,5 +126,23 @@ export function authorize(responseType, clientId, redirectUri, state, }) } +// 获取验证图片 以及token +export function reqGet(data) { + return request({ + url: 'system/captcha/get', + method: 'post', + data + }) +} + +// 滑动或者点选验证 +export function reqCheck(data) { + return request({ + url: '/system/captcha/check', + method: 'post', + data + }) +} + export class socialBindLogin { } diff --git a/yudao-ui-admin/src/components/RightToolbar/index.vue b/yudao-ui-admin/src/components/RightToolbar/index.vue index e3a95f05c..12562917b 100644 --- a/yudao-ui-admin/src/components/RightToolbar/index.vue +++ b/yudao-ui-admin/src/components/RightToolbar/index.vue @@ -92,13 +92,13 @@ export default { }; diff --git a/yudao-ui-admin/src/components/Verifition/Verify/VerifyPoints.vue b/yudao-ui-admin/src/components/Verifition/Verify/VerifyPoints.vue index 72a71d9aa..4927ccacd 100644 --- a/yudao-ui-admin/src/components/Verifition/Verify/VerifyPoints.vue +++ b/yudao-ui-admin/src/components/Verifition/Verify/VerifyPoints.vue @@ -60,7 +60,7 @@ * */ import { resetSize } from './../utils/util' import { aesEncrypt } from '@/utils/ase' -import { reqGet, reqCheck } from './../api/index' +import { reqGet, reqCheck } from '@/api/login' export default { name: 'VerifyPoints', diff --git a/yudao-ui-admin/src/components/Verifition/Verify/VerifySlide.vue b/yudao-ui-admin/src/components/Verifition/Verify/VerifySlide.vue index 90d538e3f..a1cac7d7d 100644 --- a/yudao-ui-admin/src/components/Verifition/Verify/VerifySlide.vue +++ b/yudao-ui-admin/src/components/Verifition/Verify/VerifySlide.vue @@ -64,7 +64,7 @@ * */ import { aesEncrypt } from '@/utils/ase' import { resetSize } from './../utils/util' -import { reqGet, reqCheck } from './../api/index' +import { reqGet, reqCheck } from '@/api/login' // "captchaType":"blockPuzzle", export default { diff --git a/yudao-ui-admin/src/components/Verifition/api/index.js b/yudao-ui-admin/src/components/Verifition/api/index.js deleted file mode 100644 index 7c5a94094..000000000 --- a/yudao-ui-admin/src/components/Verifition/api/index.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 此处可直接引用自己项目封装好的 axios 配合后端联调 - */ - -import request from './../utils/axios' // 组件内部封装的axios -// import request from "@/api/axios.js" //调用项目封装的axios - -// 获取验证图片 以及token -export function reqGet(data) { - return request({ - // url: '/captcha/get', - url: '/admin-api/system/captcha/get', // 使用项目自定义的 /admin-api/ 前缀 - method: 'post', - data - }) -} - -// 滑动或者点选验证 -export function reqCheck(data) { - return request({ - // url: '/captcha/check', - url: '/admin-api/system/captcha/check', // 使用项目自定义的 /admin-api/ 前缀 - method: 'post', - data - }) -} - diff --git a/yudao-ui-admin/src/components/Verifition/utils/axios.js b/yudao-ui-admin/src/components/Verifition/utils/axios.js deleted file mode 100644 index 2f960bb54..000000000 --- a/yudao-ui-admin/src/components/Verifition/utils/axios.js +++ /dev/null @@ -1,29 +0,0 @@ -import axios from 'axios' - -axios.defaults.baseURL = process.env.VUE_APP_BASE_API - -const service = axios.create({ - timeout: 40000, - headers: { - 'X-Requested-With': 'XMLHttpRequest', - 'Content-Type': 'application/json; charset=UTF-8' - }, -}) -service.interceptors.request.use( - config => { - return config - }, - error => { - Promise.reject(error) - } -) - -// response interceptor -service.interceptors.response.use( - response => { - return response.data - }, - error => { - } -) -export default service diff --git a/yudao-ui-admin/src/views/mall/trade/order/detail.vue b/yudao-ui-admin/src/views/mall/trade/order/detail.vue index 4e50d8f41..7581f4148 100644 --- a/yudao-ui-admin/src/views/mall/trade/order/detail.vue +++ b/yudao-ui-admin/src/views/mall/trade/order/detail.vue @@ -244,7 +244,7 @@ export default {