diff --git a/.env.development b/.env.development index 52e7560d..3267b8e4 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_USE_MOCK=true VITE_PUBLIC_PATH=/ # 跨域代理,您可以配置多个 ,请注意,没有换行符 -VITE_PROXY=[["/api","http://localhost:9898"]] +VITE_PROXY=[["/api","http://localhost:9000"]] # 控制台不输出console VITE_DROP_CONSOLE=false @@ -13,6 +13,9 @@ VITE_DROP_CONSOLE=false # 接口地址 VITE_GLOB_API_URL=/api +# 接口超时时间 +VITE_GLOB_API_TIMEOUT=30000 + # 文件上传地址 VITE_GLOB_UPLOAD_URL=/upload diff --git a/.env.production b/.env.production index b3378da3..f1bdfbcb 100644 --- a/.env.production +++ b/.env.production @@ -17,6 +17,9 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE=false # 接口地址 VITE_GLOB_API_URL=/api +# 接口超时时间 +VITE_GLOB_API_TIMEOUT=30000 + # 文件上传地址 VITE_GLOB_UPLOAD_URL=/upload diff --git a/package.json b/package.json index 44feb928..53ba9bd3 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "dax-pay-ui", - "version": "1.0.0", + "version": "2.0.0", "author": { - "name": "xxm" + "name": "bootx" }, "scripts": { "commit": "czg", @@ -69,7 +69,7 @@ "vue-json-pretty": "^2.0.6", "vue-router": "^4.0.16", "vue-types": "^4.1.1", - "vxe-table": "^4.4.2", + "vxe-table": "^4.5.14", "xe-utils": "^3.5.7", "xlsx": "^0.18.5" }, @@ -134,7 +134,7 @@ "stylelint-order": "^5.0.0", "ts-node": "^10.7.0", "typescript": "^4.6.3", - "vite": "^4.3.3", + "vite": "^4.3.9", "vite-plugin-compression": "^0.5.1", "vite-plugin-html": "^3.2.0", "vite-plugin-imagemin": "^0.6.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b34bc5c2..a62a1207 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,7 +99,7 @@ specifiers: ts-node: ^10.7.0 typescript: ^4.6.3 vditor: ^3.8.13 - vite: ^4.3.3 + vite: ^4.3.9 vite-plugin-compression: ^0.5.1 vite-plugin-html: ^3.2.0 vite-plugin-imagemin: ^0.6.1 @@ -118,7 +118,7 @@ specifiers: vue-router: ^4.0.16 vue-tsc: ^0.33.9 vue-types: ^4.1.1 - vxe-table: ^4.4.2 + vxe-table: ^4.5.14 xe-utils: ^3.5.7 xlsx: ^0.18.5 @@ -161,7 +161,7 @@ dependencies: vue-json-pretty: 2.2.4_vue@3.3.4 vue-router: 4.1.6_vue@3.3.4 vue-types: 4.2.1_vue@3.3.4 - vxe-table: 4.4.2_vue@3.3.4+xe-utils@3.5.7 + vxe-table: 4.5.14_vue@3.3.4+xe-utils@3.5.7 xe-utils: 3.5.7 xlsx: 0.18.5 @@ -170,7 +170,7 @@ devDependencies: '@commitlint/config-conventional': 16.2.4 '@iconify/json': 2.2.62 '@purge-icons/generated': 0.8.1 - '@rys-fe/vite-plugin-theme': 0.8.6_vite@4.3.5 + '@rys-fe/vite-plugin-theme': 0.8.6_vite@4.5.1 '@types/codemirror': 5.60.7 '@types/crypto-js': 4.1.1 '@types/fs-extra': 9.0.13 @@ -186,9 +186,9 @@ devDependencies: '@types/sortablejs': 1.15.1 '@typescript-eslint/eslint-plugin': 5.59.5_jdo46vuzdvtqioigt7za7mzwma '@typescript-eslint/parser': 5.59.5_jgkqkwom7vrxl4kyi454n2sy2i - '@vitejs/plugin-legacy': 2.3.1_vite@4.3.5 - '@vitejs/plugin-vue': 4.2.3_vite@4.3.5+vue@3.3.4 - '@vitejs/plugin-vue-jsx': 3.0.1_vite@4.3.5+vue@3.3.4 + '@vitejs/plugin-legacy': 2.3.1_vite@4.5.1 + '@vitejs/plugin-vue': 4.2.3_vite@4.5.1+vue@3.3.4 + '@vitejs/plugin-vue-jsx': 3.0.1_vite@4.5.1+vue@3.3.4 '@vue-macros/reactivity-transform': 0.3.6_rollup@2.79.1+vue@3.3.4 '@vue/compiler-sfc': 3.2.47 '@vue/test-utils': 2.3.2_vue@3.3.4 @@ -226,18 +226,18 @@ devDependencies: stylelint-order: 5.0.0_stylelint@14.16.1 ts-node: 10.9.1_cin3sed6ohfsopbmt6orxeb4o4 typescript: 4.9.5 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e - vite-plugin-compression: 0.5.1_vite@4.3.5 - vite-plugin-html: 3.2.0_vite@4.3.5 - vite-plugin-imagemin: 0.6.1_vite@4.3.5 - vite-plugin-mkcert: 1.15.0_vite@4.3.5 - vite-plugin-mock: 2.9.8_mockjs@1.1.0+vite@4.3.5 - vite-plugin-purge-icons: 0.8.2_vite@4.3.5 - vite-plugin-pwa: 0.12.8_vite@4.3.5 - vite-plugin-style-import: 2.0.0_vite@4.3.5 - vite-plugin-svg-icons: 2.0.1_vite@4.3.5 - vite-plugin-vue-setup-extend: 0.4.0_vite@4.3.5 - vite-plugin-windicss: 1.8.10_vite@4.3.5 + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e + vite-plugin-compression: 0.5.1_vite@4.5.1 + vite-plugin-html: 3.2.0_vite@4.5.1 + vite-plugin-imagemin: 0.6.1_vite@4.5.1 + vite-plugin-mkcert: 1.15.0_vite@4.5.1 + vite-plugin-mock: 2.9.8_mockjs@1.1.0+vite@4.5.1 + vite-plugin-purge-icons: 0.8.2_vite@4.5.1 + vite-plugin-pwa: 0.12.8_vite@4.5.1 + vite-plugin-style-import: 2.0.0_vite@4.5.1 + vite-plugin-svg-icons: 2.0.1_vite@4.5.1 + vite-plugin-vue-setup-extend: 0.4.0_vite@4.5.1 + vite-plugin-windicss: 1.8.10_vite@4.5.1 vue-eslint-parser: 8.3.0_eslint@8.40.0 vue-tsc: 0.33.9_typescript@4.9.5 @@ -1661,6 +1661,15 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64/0.17.18: resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} @@ -1670,6 +1679,15 @@ packages: dev: true optional: true + /@esbuild/android-arm64/0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-x64/0.17.18: resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} @@ -1679,6 +1697,15 @@ packages: dev: true optional: true + /@esbuild/android-x64/0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64/0.17.18: resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} @@ -1688,6 +1715,15 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64/0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64/0.17.18: resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} @@ -1697,6 +1733,15 @@ packages: dev: true optional: true + /@esbuild/darwin-x64/0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-arm64/0.17.18: resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} @@ -1706,6 +1751,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64/0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/freebsd-x64/0.17.18: resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} @@ -1715,6 +1769,15 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64/0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm/0.17.18: resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} @@ -1724,6 +1787,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm/0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64/0.17.18: resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} @@ -1733,6 +1805,15 @@ packages: dev: true optional: true + /@esbuild/linux-arm64/0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32/0.17.18: resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} @@ -1742,6 +1823,15 @@ packages: dev: true optional: true + /@esbuild/linux-ia32/0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} engines: {node: '>=12'} @@ -1760,6 +1850,15 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el/0.17.18: resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} @@ -1769,6 +1868,15 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el/0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64/0.17.18: resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} @@ -1778,6 +1886,15 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64/0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64/0.17.18: resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} @@ -1787,6 +1904,15 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64/0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x/0.17.18: resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} @@ -1796,6 +1922,15 @@ packages: dev: true optional: true + /@esbuild/linux-s390x/0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64/0.17.18: resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} @@ -1805,6 +1940,15 @@ packages: dev: true optional: true + /@esbuild/linux-x64/0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64/0.17.18: resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} @@ -1814,6 +1958,15 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64/0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64/0.17.18: resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} @@ -1823,6 +1976,15 @@ packages: dev: true optional: true + /@esbuild/openbsd-x64/0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/sunos-x64/0.17.18: resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} @@ -1832,6 +1994,15 @@ packages: dev: true optional: true + /@esbuild/sunos-x64/0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64/0.17.18: resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} @@ -1841,6 +2012,15 @@ packages: dev: true optional: true + /@esbuild/win32-arm64/0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32/0.17.18: resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} @@ -1850,6 +2030,15 @@ packages: dev: true optional: true + /@esbuild/win32-ia32/0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64/0.17.18: resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} @@ -1859,6 +2048,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64/0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint-community/eslint-utils/4.4.0_eslint@8.40.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2266,7 +2464,7 @@ packages: rollup: 2.79.1 dev: true - /@rys-fe/vite-plugin-theme/0.8.6_vite@4.3.5: + /@rys-fe/vite-plugin-theme/0.8.6_vite@4.5.1: resolution: {integrity: sha512-9j6yMhNRCDxv4Wpimo0EDZf/KU5FgJtjMPVYBaFv4SPClLOEx5kkpcRuDrVBaB4IzM1qizRlxUK4jd9Klxyqig==} peerDependencies: vite: '>=2.0.0-beta.49' @@ -2279,7 +2477,7 @@ packages: esbuild: 0.11.23 esbuild-plugin-alias: 0.1.2 tinycolor2: 1.6.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - supports-color dev: true @@ -2681,7 +2879,7 @@ packages: lodash.throttle: 4.1.1 mime-match: 1.0.2 namespace-emitter: 2.0.1 - nanoid: 3.3.6 + nanoid: 3.3.7 preact: 10.13.2 dev: false @@ -2703,10 +2901,10 @@ packages: '@uppy/companion-client': 2.2.2 '@uppy/core': 2.3.4 '@uppy/utils': 4.1.3 - nanoid: 3.3.6 + nanoid: 3.3.7 dev: false - /@vitejs/plugin-legacy/2.3.1_vite@4.3.5: + /@vitejs/plugin-legacy/2.3.1_vite@4.5.1: resolution: {integrity: sha512-J5KaGBlSt2tEYPVjM/C8dA6DkRzkFkbPe+Xb4IX5G+XOV5OGbVAfkMjKywdrkO3gGynO8S98i71Lmsff4cWkCQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2718,10 +2916,10 @@ packages: magic-string: 0.26.7 regenerator-runtime: 0.13.11 systemjs: 6.14.1 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e dev: true - /@vitejs/plugin-vue-jsx/3.0.1_vite@4.3.5+vue@3.3.4: + /@vitejs/plugin-vue-jsx/3.0.1_vite@4.5.1+vue@3.3.4: resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2731,20 +2929,20 @@ packages: '@babel/core': 7.21.8 '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.21.8 '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.21.8 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e vue: 3.3.4 transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue/4.2.3_vite@4.3.5+vue@3.3.4: + /@vitejs/plugin-vue/4.2.3_vite@4.5.1+vue@3.3.4: resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e vue: 3.3.4 dev: true @@ -2920,7 +3118,7 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.0 - postcss: 8.4.23 + postcss: 8.4.33 source-map-js: 1.0.2 /@vue/compiler-ssr/3.2.47: @@ -4859,6 +5057,10 @@ packages: entities: 4.5.0 dev: true + /dom-zindex/1.0.1: + resolution: {integrity: sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg==} + dev: false + /dom7/3.0.0: resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} dependencies: @@ -5305,7 +5507,7 @@ packages: /esbuild-node-loader/0.6.5: resolution: {integrity: sha512-uPP+dllWm38cFvDysdocutN3lfe5pTIbddAHp1ENyLzpHYqE2r+3Wo+pfg9X3p8DFWwzIisft5YkeBIthIcixw==} dependencies: - esbuild: 0.17.18 + esbuild: 0.18.20 dev: true /esbuild-openbsd-64/0.14.54: @@ -5433,6 +5635,36 @@ packages: '@esbuild/win32-x64': 0.17.18 dev: true + /esbuild/0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -8039,6 +8271,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid/3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + /nanomatch/1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -8790,6 +9027,15 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true + + /postcss/8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 /posthtml-parser/0.2.1: resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} @@ -10647,7 +10893,7 @@ packages: diff-match-patch: 1.0.5 dev: false - /vite-plugin-compression/0.5.1_vite@4.3.5: + /vite-plugin-compression/0.5.1_vite@4.5.1: resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} peerDependencies: vite: '>=2.0.0' @@ -10655,12 +10901,12 @@ packages: chalk: 4.1.2 debug: 4.3.4 fs-extra: 10.1.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - supports-color dev: true - /vite-plugin-html/3.2.0_vite@4.3.5: + /vite-plugin-html/3.2.0_vite@4.5.1: resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==} peerDependencies: vite: '>=2.0.0' @@ -10677,10 +10923,10 @@ packages: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e dev: true - /vite-plugin-imagemin/0.6.1_vite@4.3.5: + /vite-plugin-imagemin/0.6.1_vite@4.5.1: resolution: {integrity: sha512-cP7LDn8euPrji7WYtDoNQpJEB9nkMxJHm/A+QZnvMrrCSuyo/clpMy/T1v7suDXPBavsDiDdFdVQB5p7VGD2cg==} peerDependencies: vite: '>=2.0.0' @@ -10708,12 +10954,12 @@ packages: imagemin-webp: 6.1.0 jpegtran-bin: 6.0.1 pathe: 0.2.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - supports-color dev: true - /vite-plugin-mkcert/1.15.0_vite@4.3.5: + /vite-plugin-mkcert/1.15.0_vite@4.5.1: resolution: {integrity: sha512-0Pz7iExvo7pS2HsxMe6Y/HIrsFJidXN8Sju7tsL1XYQdbUKb/D0L5Wkj3UoGQmbbWZUFf8nHHa0XYbd4FH6ZrA==} engines: {node: '>=v16.7.0'} peerDependencies: @@ -10723,13 +10969,13 @@ packages: axios: 1.4.0_debug@4.3.4 debug: 4.3.4 picocolors: 1.0.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - encoding - supports-color dev: true - /vite-plugin-mock/2.9.8_mockjs@1.1.0+vite@4.3.5: + /vite-plugin-mock/2.9.8_mockjs@1.1.0+vite@4.5.1: resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} engines: {node: '>=12.0.0'} peerDependencies: @@ -10745,12 +10991,12 @@ packages: fast-glob: 3.2.12 mockjs: 1.1.0 path-to-regexp: 6.2.1 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - supports-color dev: true - /vite-plugin-purge-icons/0.8.2_vite@4.3.5: + /vite-plugin-purge-icons/0.8.2_vite@4.5.1: resolution: {integrity: sha512-rW3RcNKj7QY3M7wcnwYVc3Ig+WwSQQ/Z67v+xdtk/8MA+ON05A3zc3qGaPdi6+8BUKYDpqvviKYiuLgRjleUOQ==} engines: {node: '>= 12'} peerDependencies: @@ -10759,13 +11005,13 @@ packages: '@purge-icons/core': 0.8.0 '@purge-icons/generated': 0.8.1 rollup-plugin-purge-icons: 0.8.1 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - encoding - supports-color dev: true - /vite-plugin-pwa/0.12.8_vite@4.3.5: + /vite-plugin-pwa/0.12.8_vite@4.5.1: resolution: {integrity: sha512-pSiFHmnJGMQJJL8aJzQ8SaraZBSBPMGvGUkCNzheIq9UQCEk/eP3UmANNmS9eupuhIpTK8AdxTOHcaMcAqAbCA==} peerDependencies: vite: ^2.0.0 || ^3.0.0-0 @@ -10774,7 +11020,7 @@ packages: fast-glob: 3.2.12 pretty-bytes: 6.1.0 rollup: 2.79.1 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e workbox-build: 6.5.4 workbox-window: 6.5.4 transitivePeerDependencies: @@ -10782,7 +11028,7 @@ packages: - supports-color dev: true - /vite-plugin-style-import/2.0.0_vite@4.3.5: + /vite-plugin-style-import/2.0.0_vite@4.5.1: resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==} peerDependencies: vite: '>=2.0.0' @@ -10794,10 +11040,10 @@ packages: fs-extra: 10.1.0 magic-string: 0.25.9 pathe: 0.2.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e dev: true - /vite-plugin-svg-icons/2.0.1_vite@4.3.5: + /vite-plugin-svg-icons/2.0.1_vite@4.5.1: resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} peerDependencies: vite: '>=2.0.0' @@ -10810,22 +11056,22 @@ packages: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e transitivePeerDependencies: - supports-color dev: true - /vite-plugin-vue-setup-extend/0.4.0_vite@4.3.5: + /vite-plugin-vue-setup-extend/0.4.0_vite@4.5.1: resolution: {integrity: sha512-WMbjPCui75fboFoUTHhdbXzu4Y/bJMv5N9QT9a7do3wNMNHHqrk+Tn2jrSJU0LS5fGl/EG+FEDBYVUeWIkDqXQ==} peerDependencies: vite: '>=2.0.0' dependencies: '@vue/compiler-sfc': 3.2.47 magic-string: 0.25.9 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e dev: true - /vite-plugin-windicss/1.8.10_vite@4.3.5: + /vite-plugin-windicss/1.8.10_vite@4.5.1: resolution: {integrity: sha512-scywsuzo46lcTBohspmF0WiwhWEte6p+OUVrX4yr7VMRvLHMHVfLtJReyD5pppjijG7YOwVsZn7XBWWZtF658Q==} peerDependencies: vite: ^2.0.1 || ^3.0.0 || ^4.0.0 @@ -10833,19 +11079,20 @@ packages: '@windicss/plugin-utils': 1.8.10 debug: 4.3.4 kolorist: 1.8.0 - vite: 4.3.5_jmirrwlmbumocpj2mhzxorzq7e + vite: 4.5.1_jmirrwlmbumocpj2mhzxorzq7e windicss: 3.5.6 transitivePeerDependencies: - supports-color dev: true - /vite/4.3.5_jmirrwlmbumocpj2mhzxorzq7e: - resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==} + /vite/4.5.1_jmirrwlmbumocpj2mhzxorzq7e: + resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -10855,6 +11102,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -10865,9 +11114,9 @@ packages: optional: true dependencies: '@types/node': 17.0.45 - esbuild: 0.17.18 + esbuild: 0.18.20 less: 4.1.3 - postcss: 8.4.23 + postcss: 8.4.33 rollup: 2.79.1 sass: 1.62.1 optionalDependencies: @@ -11003,12 +11252,13 @@ packages: vue: 3.3.4 dev: false - /vxe-table/4.4.2_vue@3.3.4+xe-utils@3.5.7: - resolution: {integrity: sha512-3UdfSeMZ/D5nfTohcnZQQ2gkFZnhvf0v83usOCwx3B1nzBNKAJumg3QviMEox5SdikT8pq9z4vz3a0pesPPrJw==} + /vxe-table/4.5.14_vue@3.3.4+xe-utils@3.5.7: + resolution: {integrity: sha512-S+6pAYQsoY5DZj9qLXQLDKcA/+AO5CSrs9tGn+/By8WxYWJNLw3i5cjbXsriUaJeuj8Qi1aYfdhrNfeMCwE9Iw==} peerDependencies: vue: ^3.2.28 xe-utils: ^3.5.0 dependencies: + dom-zindex: 1.0.1 vue: 3.3.4 xe-utils: 3.5.7 dev: false diff --git a/src/api/common/FileUpload.ts b/src/api/common/FileUpload.ts index e596cbda..ecce2294 100644 --- a/src/api/common/FileUpload.ts +++ b/src/api/common/FileUpload.ts @@ -52,14 +52,50 @@ export function uploadFile(params: UploadFileParams, onUploadProgress: (progress * 上传文件信息 */ export interface UpdateFileInfo { - // 文件id - id: string + // id + id?: number + // 文件访问地址 + url?: string + // 文件大小,单位字节 + size?: string // 文件名称 - fileName: string - // 文件后缀 - fileSuffix: string - // 文件类型 - fileType: string - // 文件大小 - fileSize: number + filename?: string + // 原始文件名 + originalFilename?: string + // 基础存储路径 + basePath?: string + // 存储路径 + path?: string + // 文件扩展名 + ext?: string + // MIME类型 + contentType?: string + // 存储平台 + platform?: string + // 缩略图访问路径 + thUrl?: string + // 缩略图名称 + thFilename?: string + // 缩略图大小,单位字节 + thSize?: string + // 缩略图MIME类型 + thContentType?: string + // 文件所属对象id + objectId?: string + // 文件所属对象类型,例如用户头像,评价图片 + objectType?: string + // 文件元数据 + metadata?: string + // 文件用户元数据 + userMetadata?: string + // 缩略图元数据 + thMetadata?: string + // 缩略图用户元数据 + thUserMetadata?: string + // 附加属性 + attr?: string + // 文件ACL + fileAcl?: string + // 缩略图文件ACL + thFileAcl?: string } diff --git a/src/components/VxeTable/black.scss b/src/components/VxeTable/black.scss index 0da066c0..42f34cd6 100644 --- a/src/components/VxeTable/black.scss +++ b/src/components/VxeTable/black.scss @@ -164,9 +164,6 @@ html[data-theme='dark'] { /*textarea*/ --vxe-textarea-background-color: #{$vxe-textarea-background-color}; - --vxe-textarea-count-color: #{$vxe-textarea-count-color}; - --vxe-textarea-count-background-color: #{$vxe-textarea-count-background-color}; - --vxe-textarea-count-error-color: #{$vxe-textarea-count-error-color}; /*form*/ --vxe-form-background-color: #{$vxe-form-background-color}; diff --git a/src/hooks/web/useDesign.ts b/src/hooks/web/useDesign.ts index f32b1463..272ccaed 100644 --- a/src/hooks/web/useDesign.ts +++ b/src/hooks/web/useDesign.ts @@ -14,7 +14,7 @@ export function useDesign(scope: string) { // }); // } return { - // prefixCls: computed(() => `${values.prefixCls}-${scope}`), + // prefixCls: computed(() => `${values.prefixCls}-${data}`), prefixCls: `${values.prefixCls}-${scope}`, prefixVar: values.prefixCls, // style, diff --git a/src/locales/setupI18n.ts b/src/locales/setupI18n.ts index 889d36e2..c062bf1d 100644 --- a/src/locales/setupI18n.ts +++ b/src/locales/setupI18n.ts @@ -29,7 +29,7 @@ async function createI18nOptions(): Promise { [locale]: message, }, availableLocales: availableLocales, - sync: true, //If you don’t want to inherit locale from global scope, you need to set sync of i18n component option to false. + sync: true, //If you don’t want to inherit locale from global data, you need to set sync of i18n component option to false. silentTranslationWarn: true, // true - warning off missingWarn: false, silentFallbackWarn: true, diff --git a/src/router/guard/index.ts b/src/router/guard/index.ts index 1794ff40..19ae8da7 100644 --- a/src/router/guard/index.ts +++ b/src/router/guard/index.ts @@ -117,12 +117,9 @@ function createScrollGuard(router: Router) { export function createMessageGuard(router: Router) { const { closeMessageOnSwitch } = projectSetting - console.log(projectSetting) - console.log(closeMessageOnSwitch) router.beforeEach(async () => { try { if (closeMessageOnSwitch) { - console.log(666444) Modal.destroyAll() notification.destroy() } diff --git a/src/router/routes/basic.ts b/src/router/routes/basic.ts index 5b09aa71..7f88ceff 100644 --- a/src/router/routes/basic.ts +++ b/src/router/routes/basic.ts @@ -101,7 +101,7 @@ export const DASHBOARD: AppRouteModule = { component: () => import('/@/views/dashboard/analysis/index.vue'), meta: { // affix: true, - title: '分析页', + title: '主页', }, }, ], diff --git a/src/utils/dataUtil.ts b/src/utils/dataUtil.ts index 3da9ef54..1fc56e0f 100644 --- a/src/utils/dataUtil.ts +++ b/src/utils/dataUtil.ts @@ -11,6 +11,10 @@ import { LabeledValue } from 'ant-design-vue/lib/select' */ export function treeDataTranslate(data, value = 'value', title = 'title', children = 'children') { const temp = [] as Tree[] + if (!data) { + return [] + } + for (let i = 0; i < data.length; i++) { const p = { key: data[i][value], diff --git a/src/utils/http/axios/Axios.ts b/src/utils/http/axios/Axios.ts index c1eacda6..df442f30 100644 --- a/src/utils/http/axios/Axios.ts +++ b/src/utils/http/axios/Axios.ts @@ -142,7 +142,6 @@ export class VAxios { data: formData, headers: { 'Content-type': ContentTypeEnum.FORM_DATA, - // @ts-ignore ignoreCancelToken: true, }, }) diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 6fe25c44..414371b3 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -175,6 +175,7 @@ export function validateEmail(email) { /** * 判断手机号码是否正确 + * @return */ export function validateMobile(phone) { let result = false @@ -188,7 +189,7 @@ export function validateMobile(phone) { result = true } } else { - msg = '手机号码长度不为11位' + msg = '手机号码格式不正确' } } else { msg = '手机号码不能为空' diff --git a/src/views/dashboard/analysis/index.vue b/src/views/dashboard/analysis/index.vue index a2eecf8e..97831f86 100644 --- a/src/views/dashboard/analysis/index.vue +++ b/src/views/dashboard/analysis/index.vue @@ -1,21 +1,12 @@ - - diff --git a/src/views/demo/payment/cashier/CashierBarCode.vue b/src/views/demo/payment/cashier/CashierBarCode.vue deleted file mode 100644 index 6da55a9a..00000000 --- a/src/views/demo/payment/cashier/CashierBarCode.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - - - diff --git a/src/views/demo/payment/cashier/CashierQrCode.vue b/src/views/demo/payment/cashier/CashierQrCode.vue deleted file mode 100644 index 28964da2..00000000 --- a/src/views/demo/payment/cashier/CashierQrCode.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - - diff --git a/src/views/demo/payment/cashier/CombinationCashier.vue b/src/views/demo/payment/cashier/CombinationCashier.vue deleted file mode 100644 index 72a7a2d5..00000000 --- a/src/views/demo/payment/cashier/CombinationCashier.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - - - diff --git a/src/views/demo/payment/cashier/SimpleCashier.vue b/src/views/demo/payment/cashier/SimpleCashier.vue deleted file mode 100644 index 205990fb..00000000 --- a/src/views/demo/payment/cashier/SimpleCashier.vue +++ /dev/null @@ -1,251 +0,0 @@ - - - - - diff --git a/src/views/demo/payment/cashier/imgs/ali/ali_app.svg b/src/views/demo/payment/cashier/imgs/ali/ali_app.svg deleted file mode 100644 index ebf11883..00000000 --- a/src/views/demo/payment/cashier/imgs/ali/ali_app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/ali/ali_bar.svg b/src/views/demo/payment/cashier/imgs/ali/ali_bar.svg deleted file mode 100644 index f249f4ac..00000000 --- a/src/views/demo/payment/cashier/imgs/ali/ali_bar.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/ali/ali_jsapi.svg b/src/views/demo/payment/cashier/imgs/ali/ali_jsapi.svg deleted file mode 100644 index 27134954..00000000 --- a/src/views/demo/payment/cashier/imgs/ali/ali_jsapi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/ali/ali_pc.svg b/src/views/demo/payment/cashier/imgs/ali/ali_pc.svg deleted file mode 100644 index 2a752770..00000000 --- a/src/views/demo/payment/cashier/imgs/ali/ali_pc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/ali/ali_qr.svg b/src/views/demo/payment/cashier/imgs/ali/ali_qr.svg deleted file mode 100644 index 48337508..00000000 --- a/src/views/demo/payment/cashier/imgs/ali/ali_qr.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/ali/ali_wap.svg b/src/views/demo/payment/cashier/imgs/ali/ali_wap.svg deleted file mode 100644 index 87075dbb..00000000 --- a/src/views/demo/payment/cashier/imgs/ali/ali_wap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/qr/auto_bar.svg b/src/views/demo/payment/cashier/imgs/qr/auto_bar.svg deleted file mode 100644 index 19c9d87d..00000000 --- a/src/views/demo/payment/cashier/imgs/qr/auto_bar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/qr/qr_cashier.svg b/src/views/demo/payment/cashier/imgs/qr/qr_cashier.svg deleted file mode 100644 index 40cdcfbc..00000000 --- a/src/views/demo/payment/cashier/imgs/qr/qr_cashier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/wechat/w_pay.png b/src/views/demo/payment/cashier/imgs/wechat/w_pay.png deleted file mode 100644 index d6f8a107..00000000 Binary files a/src/views/demo/payment/cashier/imgs/wechat/w_pay.png and /dev/null differ diff --git a/src/views/demo/payment/cashier/imgs/wechat/wx_app.svg b/src/views/demo/payment/cashier/imgs/wechat/wx_app.svg deleted file mode 100644 index e142d623..00000000 --- a/src/views/demo/payment/cashier/imgs/wechat/wx_app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/wechat/wx_bar.svg b/src/views/demo/payment/cashier/imgs/wechat/wx_bar.svg deleted file mode 100644 index 2ef5534c..00000000 --- a/src/views/demo/payment/cashier/imgs/wechat/wx_bar.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/wechat/wx_h5.svg b/src/views/demo/payment/cashier/imgs/wechat/wx_h5.svg deleted file mode 100644 index b06ec58b..00000000 --- a/src/views/demo/payment/cashier/imgs/wechat/wx_h5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/wechat/wx_jsapi.svg b/src/views/demo/payment/cashier/imgs/wechat/wx_jsapi.svg deleted file mode 100644 index 3a6d15b7..00000000 --- a/src/views/demo/payment/cashier/imgs/wechat/wx_jsapi.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/imgs/wechat/wx_native.svg b/src/views/demo/payment/cashier/imgs/wechat/wx_native.svg deleted file mode 100644 index ad40b2a2..00000000 --- a/src/views/demo/payment/cashier/imgs/wechat/wx_native.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/src/views/demo/payment/cashier/style.less b/src/views/demo/payment/cashier/style.less deleted file mode 100644 index 423fa9b6..00000000 --- a/src/views/demo/payment/cashier/style.less +++ /dev/null @@ -1,255 +0,0 @@ -.page { - box-sizing: border-box; - min-height: 100%; - padding-bottom: 80px; - margin-top: 81px; -} - -.paydemo .content { - max-width: 1120px; - margin: 0 auto; -} -.paydemo .paydemo-type-content { - padding: 20px; - margin-bottom: 20px; - background-color: #FFFFFF; - border-radius: 6px; -} -.paydemo .colorChange { - color: #1953ff; - border: solid 1px #1953ff; - padding: 12px; - margin-right: 10px; - cursor: pointer; -} -.paydemo .paydemoType { - padding: 12px; - border: solid 1px #e2e2e2; - margin-right: 10px; - cursor: pointer; -} -.paydemo .paydemo-type-img { - width: 40px; - height: 40px; - vertical-align: center; - margin-right: 10px; -} -.paydemo .paydemo-type-content p { - margin-bottom: 10px; - text-align: left; -} -.paydemo .paydemo-type-name { - font-size: 16px; - margin-bottom: 12px; - display: flex; - align-items: center; -} -.paydemo .paydemo-type-body { - display: flex; - flex-direction: row; - align-items: center; - margin-bottom: 20px; -} - -.paydemo .layui-input { - width: 50%; - display: inline; - font-size: 14px; -} -.paydemo .paydemo-type-h5 { - padding: 12px; - border: solid 1px #e2e2e2; - margin-right: 10px; - cursor: pointer; - font-size: 12px -} -.paydemo .codeImg_wx_h5 { - position: absolute; - z-index: 1001; - display: flex; - flex-direction: column; - align-items: center; - background-color: #ffffff; - width: 160px; -} -.layui-input, .layui-textarea { - display: block; - width: 100%; - padding-left: 10px; -} -.layui-input, .layui-select, .layui-textarea { - height: 38px; - line-height: 1.3; - line-height: 38px\9; - border-width: 1px; - border-style: solid; - background-color: #fff; - border-radius: 2px; -} -.layui-badge-rim, - .layui-colla-content, - .layui-colla-item, - .layui-collapse, .layui-elem-field, .layui-form-pane .layui-form-item[pane], .layui-form-pane .layui-form-label, .layui-input, .layui-layedit, .layui-layedit-tool, .layui-quote-nm, .layui-select, .layui-tab-bar, .layui-tab-card, .layui-tab-title, .layui-tab-title .layui-this:after, .layui-textarea { - border-color: #e6e6e6; - } -.paydemo .paydemo-form-item { - height: 38px; - margin-bottom: 5px; - display: flex; - flex-direction: row; - align-items: center; -} -.paydemo .paydemo-btn { - border: 1px solid #e2e2e2; - background-color: #ffffff; - color: #000000; - margin-left: 8px; - display: inline-flex; - flex-direction: row; - align-items: center; -} -.paydemo .layui-btn-xs { - height: 22px; - line-height: 22px; - padding: 0 5px; - font-size: 12px; -} -.layui-btn { - display: inline-block; - height: 38px; - line-height: 38px; - padding: 0 18px; - background-color: #009688; - color: #fff; - white-space: nowrap; - text-align: center; - font-size: 14px; - border: none; - border-radius: 2px; - cursor: pointer; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; -} -.layui-btn, .layui-input, .layui-select, .layui-textarea, .layui-upload-button { - outline: 0; - -webkit-appearance: none; - transition: all .3s; - -webkit-transition: all .3s; - box-sizing: border-box; -} -.layui-btn, .layui-edge, .layui-inline, img { - vertical-align: middle; -} -img { - border: 0; - vertical-align: middle; -} -p { - margin-top: 0; - margin-bottom: 1em; - display: block; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; - line-height: 28px; -} -input { - padding-top: 0px; - padding-bottom: 0px; - font-family: SimSun, 宋体; -} -.layui-btn, .layui-edge, .layui-inline, img { - vertical-align: middle; -} -fieldset, img, input, button { - border: none; - padding: 0; - margin: 0; - outline-style: none; -} -button, input, optgroup, option, select, textarea { - font-family: inherit; - font-size: inherit; - font-style: inherit; - font-weight: inherit; - outline: 0; -} -blockquote, body, button, dd, div, dl, dt, form, h1, h2, h3, h4, h5, h6, input, li, ol, p, pre, td, textarea, th, ul { - margin: 0; - padding: 0; - -webkit-tap-highlight-color: rgba(0,0,0,0); -} -.layui-btn { - display: inline-block; - height: 38px; - line-height: 38px; - padding: 0 18px; - background-color: #009688; - color: #fff; - white-space: nowrap; - text-align: center; - font-size: 14px; - border: none; - border-radius: 2px; - cursor: pointer; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; -} -.layui-btn, .layui-input, .layui-select, .layui-textarea, .layui-upload-button { - outline: 0; - -webkit-appearance: none; - transition: all .3s; - -webkit-transition: all .3s; - box-sizing: border-box; -} -button { - appearance: auto; - -webkit-writing-mode: horizontal-tb !important; - text-rendering: auto; - color: -internal-light-dark(black, white); - letter-spacing: normal; - word-spacing: normal; - text-transform: none; - text-indent: 0px; - text-shadow: none; - display: inline-block; - text-align: center; - align-items: flex-start; - cursor: default; - background-color: -internal-light-dark(rgb(239, 239, 239), rgb(59, 59, 59)); - box-sizing: border-box; - margin: 0em; - font: 400 13.3333px Arial; - padding: 1px 6px; - border-width: 2px; - border-style: outset; - border-color: -internal-light-dark(rgb(118, 118, 118), rgb(133, 133, 133)); - border-image: initial; -} -.layui-layer-content { - position: relative; - overflow: auto; -} -.layui-input, .layui-textarea { - display: block; - width: 100%; - padding-left: 10px; -} -.layui-input, .layui-select, .layui-textarea { - height: 38px; - line-height: 1.3; - line-height: 38px\9; - border-width: 1px; - border-style: solid; - background-color: #fff; - border-radius: 2px; -} -.layui-badge-rim, .layui-colla-content, .layui-colla-item, .layui-collapse, .layui-elem-field, .layui-form-pane .layui-form-item[pane], .layui-form-pane .layui-form-label, .layui-input, .layui-layedit, .layui-layedit-tool, .layui-quote-nm, .layui-select, .layui-tab-bar, .layui-tab-card, .layui-tab-title, .layui-tab-title .layui-this:after, .layui-textarea { - border-color: #e6e6e6; -} -:deep(.ant-input-number-sm input) { - height: 38px; -} diff --git a/src/views/demo/payment/multipleVoucher/MultipleVoucherCashier.vue b/src/views/demo/payment/multipleVoucher/MultipleVoucherCashier.vue deleted file mode 100644 index 5ac27b06..00000000 --- a/src/views/demo/payment/multipleVoucher/MultipleVoucherCashier.vue +++ /dev/null @@ -1,240 +0,0 @@ - - - - diff --git a/src/views/login/Login.vue b/src/views/login/Login.vue index 8674c120..d5cf1ade 100644 --- a/src/views/login/Login.vue +++ b/src/views/login/Login.vue @@ -16,10 +16,10 @@
- 开源支付系统 + 开箱即用的中后台管理系统
基于Vite+Vue3打造,专注支付领域,支持微信、支付宝、聚合支付 + >基于Vite+Vue3打造,支持支付收单、工作流(Flowable)、三方对接等模块
diff --git a/src/views/login/LoginForm.vue b/src/views/login/LoginForm.vue index 703c963c..fdd21e0c 100644 --- a/src/views/login/LoginForm.vue +++ b/src/views/login/LoginForm.vue @@ -95,8 +95,8 @@ const form = reactive({ client: '', - account: 'bootx', - password: '123456', + account: '', + password: '', loginType: 'password', captchaKey: '', captcha: '', diff --git a/src/views/modules/develop/codegen/CodeGenForm.vue b/src/views/modules/develop/codegen/CodeGenForm.vue index 00d134f4..76ea8c0c 100644 --- a/src/views/modules/develop/codegen/CodeGenForm.vue +++ b/src/views/modules/develop/codegen/CodeGenForm.vue @@ -87,7 +87,7 @@ const { labelCol, wrapperCol, visible } = useFormEdit() const form = $ref({ - basePack: 'cn.bootx.platform.daxpay', + basePack: 'cn.bootx.platform', module: '', dataSourceCode: '', tableName: '', diff --git a/src/views/modules/develop/file/FileUpload.api.ts b/src/views/modules/develop/file/FileUpload.api.ts index c87f6df8..05a28b1b 100644 --- a/src/views/modules/develop/file/FileUpload.api.ts +++ b/src/views/modules/develop/file/FileUpload.api.ts @@ -1,12 +1,12 @@ import { defHttp } from '/@/utils/http/axios' import { PageResult, Result } from '/#/axios' -import { BaseEntity } from '/#/web' +import { UpdateFileInfo } from "/@/api/common/FileUpload"; /** * 分页 */ export const page = (params) => { - return defHttp.get>>({ + return defHttp.get>>({ url: '/file/page', params, }) @@ -16,7 +16,7 @@ export const page = (params) => { * 获取单条 */ export const get = (id) => { - return defHttp.get>({ + return defHttp.get>({ url: '/file/findById', params: { id }, }) @@ -25,7 +25,7 @@ export const get = (id) => { /** * 添加 */ -export const add = (obj: FileUpload) => { +export const add = (obj: UpdateFileInfo) => { return defHttp.post({ url: '/file/add', data: obj, @@ -35,7 +35,7 @@ export const add = (obj: FileUpload) => { /** * 更新 */ -export const update = (obj: FileUpload) => { +export const update = (obj: UpdateFileInfo) => { return defHttp.post({ url: '/file/update', data: obj, @@ -56,25 +56,7 @@ export const del = (id) => { * 查询全部 */ export const findAll = () => { - return defHttp.get>>({ + return defHttp.get>({ url: '/file/findAll', }) } - -/** - * 上传文件信息 - */ -export interface FileUpload extends BaseEntity { - // 存储位置 - filePath: string - // 文件名称 - fileName: string - // 文件类型 - fileType: string - // 文件后缀 - fileSuffix: string - // 文件大小 - fileSize: number - // 外部关联id - externalStorageId: string -} diff --git a/src/views/modules/develop/file/FileUploadInfo.vue b/src/views/modules/develop/file/FileUploadInfo.vue new file mode 100644 index 00000000..dbba966c --- /dev/null +++ b/src/views/modules/develop/file/FileUploadInfo.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/views/modules/develop/file/FileUploadList.vue b/src/views/modules/develop/file/FileUploadList.vue index d5874feb..ded5d0f1 100644 --- a/src/views/modules/develop/file/FileUploadList.vue +++ b/src/views/modules/develop/file/FileUploadList.vue @@ -1,7 +1,31 @@ - + @@ -115,7 +107,7 @@ import { nextTick, onMounted } from 'vue' import { Client, findAll } from '/@/views/modules/system/client/Client.api' import XEUtils from 'xe-utils' - import { menuTree, Menu, del, allTree } from './Menu.api' + import { menuTree, Menu, del, menuAndPermCodeTree } from './Menu.api' import { FormEditType } from '/@/enums/formTypeEnum' import MenuEdit from './MenuEdit.vue' import { VxeTableInstance, VxeToolbarInstance } from 'vxe-table' @@ -158,7 +150,7 @@ async function queryPage() { loading = true if (showPermCode) { - const { data } = await allTree(clientCode) + const { data } = await menuAndPermCodeTree(clientCode) remoteTableData = data } else { const { data } = await menuTree(clientCode) diff --git a/src/views/modules/system/path/PermPathEdit.vue b/src/views/modules/system/path/PermPathEdit.vue index 29a805d8..69fc1ff8 100644 --- a/src/views/modules/system/path/PermPathEdit.vue +++ b/src/views/modules/system/path/PermPathEdit.vue @@ -5,13 +5,16 @@ :loading="confirmLoading" :title="title" :visible="visible" - :mask-closable="showable" + :mask-closable="false" @cancel="handleCancel" > + + + @@ -98,6 +101,7 @@ function init(id, editType: FormEditType) { initFormEditType(editType) resetForm() + console.log(form.generate) getInfo(id, editType) } // 获取信息 diff --git a/src/views/modules/system/quartz/QuartzJob.api.ts b/src/views/modules/system/quartz/QuartzJob.api.ts deleted file mode 100644 index a2ae245d..00000000 --- a/src/views/modules/system/quartz/QuartzJob.api.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { defHttp } from '/@/utils/http/axios' -import { PageResult, Result } from '/#/axios' -import { BaseEntity } from '/#/web' - -/** - * 分页 - */ -export const page = (params) => { - return defHttp.get>>({ - url: '/quartz/page', - params, - }) -} - -/** - * 获取单条 - */ -export const get = (id) => { - return defHttp.get>({ - url: '/quartz/findById', - params: { id }, - }) -} - -/** - * 添加 - */ -export const add = (obj: QuartzJob) => { - return defHttp.post({ - url: '/quartz/add', - data: obj, - }) -} - -/** - * 更新 - */ -export const update = (obj: QuartzJob) => { - return defHttp.post({ - url: '/quartz/update', - data: obj, - }) -} - -/** - * 删除 - */ -export const del = (id) => { - return defHttp.delete({ - url: '/quartz/delete', - params: { id }, - }) -} - -/** - * 查询全部 - */ -export const findAll = () => { - return defHttp.get>>({ - url: '/quartz/findAll', - }) -} - -/** - * 开始 - * @param id - */ -export function start(id) { - return defHttp.post({ - url: '/quartz/start', - params: { id }, - }) -} - -/** - * 停止 - */ -export function stop(id) { - return defHttp.post({ - url: '/quartz/stop', - params: { id }, - }) -} - -/** - * 立即执行 - */ -export function execute(id) { - return defHttp.post({ - url: '/quartz/execute', - params: { id }, - }) -} - -/** - * 同步任务状态 - */ -export const syncJobStatus = () => { - return defHttp.post({ - url: '/quartz/syncJobStatus', - }) -} - -/** - * 判断是否是定时任务类 - */ -export function judgeJobClass(jobClassName) { - return defHttp.get>({ - url: '/quartz/judgeJobClass', - params: { jobClassName }, - }) -} - -/** - * 定时任务 - */ -export interface QuartzJob extends BaseEntity { - // 任务名称 - name: string - // 任务类名 - jobClassName: string - // cron表达式 - cron: string - // 参数 - parameter: string - // 状态 - state: number - // 备注 - remark: string -} diff --git a/src/views/modules/system/quartz/QuartzJobEdit.vue b/src/views/modules/system/quartz/QuartzJobEdit.vue deleted file mode 100644 index 237e1803..00000000 --- a/src/views/modules/system/quartz/QuartzJobEdit.vue +++ /dev/null @@ -1,163 +0,0 @@ - - - - - diff --git a/src/views/modules/system/quartz/QuartzJobList.vue b/src/views/modules/system/quartz/QuartzJobList.vue deleted file mode 100644 index 6296af12..00000000 --- a/src/views/modules/system/quartz/QuartzJobList.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - diff --git a/src/views/modules/system/quartz/QuartzJobLog.api.ts b/src/views/modules/system/quartz/QuartzJobLog.api.ts deleted file mode 100644 index 4f60b197..00000000 --- a/src/views/modules/system/quartz/QuartzJobLog.api.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { defHttp } from '/@/utils/http/axios' -import { PageResult, Result } from '/#/axios' -import { BaseEntity } from '/#/web' - -/** - * 分页 - */ -export const page = (params) => { - return defHttp.get>>({ - url: '/quartz/log/page', - params, - }) -} - -/** - * 获取单条 - */ -export const get = (id) => { - return defHttp.get>({ - url: '/quartz/log/findById', - params: { id }, - }) -} - -/** - * 添加 - */ -export const add = (obj: QuartzJobLog) => { - return defHttp.post({ - url: '/quartz/log/add', - data: obj, - }) -} - -/** - * 更新 - */ -export const update = (obj: QuartzJobLog) => { - return defHttp.post({ - url: '/quartz/log/update', - data: obj, - }) -} - -/** - * 删除 - */ -export const del = (id) => { - return defHttp.delete({ - url: '/quartz/log/delete', - params: { id }, - }) -} - -/** - * 查询全部 - */ -export const findAll = () => { - return defHttp.get>>({ - url: '/quartz/log/findAll', - }) -} - -/** - * 任务执行日志 - */ -export interface QuartzJobLog extends BaseEntity { - // 处理器名称 - handlerName: string - // 处理器全限定名 - className: string - // 是否执行成功 - success: boolean - // 错误信息 - errorMessage: string - // 开始时间 - startTime: string - // 结束时间 - endTime: string - // 执行时长 - duration: number -} diff --git a/src/views/modules/system/quartz/QuartzJobLogList.vue b/src/views/modules/system/quartz/QuartzJobLogList.vue deleted file mode 100644 index 6039485f..00000000 --- a/src/views/modules/system/quartz/QuartzJobLogList.vue +++ /dev/null @@ -1,110 +0,0 @@ - - - - - diff --git a/src/views/modules/system/role/Role.api.ts b/src/views/modules/system/role/Role.api.ts index 9a4ed931..72c54c97 100644 --- a/src/views/modules/system/role/Role.api.ts +++ b/src/views/modules/system/role/Role.api.ts @@ -1,6 +1,8 @@ import { defHttp } from '/@/utils/http/axios' import { PageResult, Result } from '/#/axios' import { BaseEntity } from '/#/web' +import { MenuTree } from '/@/views/modules/system/menu/Menu.api' +import { PermPath } from '/@/views/modules/system/path/PermPath.api' /** * 分页 @@ -11,6 +13,14 @@ export const page = (params) => { params, }) } +/** + * 分页 + */ +export const tree = () => { + return defHttp.get>({ + url: '/role/tree', + }) +} /** * 获取单条 @@ -105,7 +115,7 @@ export const existsByNameNotId = (name: string, id) => { } /** - * 查询全部 + * 查询全部角色 */ export const findAll = () => { return defHttp.get>>({ @@ -114,7 +124,7 @@ export const findAll = () => { } /** - * 根据用户获取拥有的权限 + * 根据角色获取拥有的权限 */ export function findPermissionIdsByRole(roleId, clientCode) { return defHttp.get>({ @@ -124,11 +134,12 @@ export function findPermissionIdsByRole(roleId, clientCode) { } /** - * 根据用户id获取角色授权(请求权限列表) + * 获取当前用户角色下可见的菜单树(分配时用) */ -export function findPathsByUser() { - return defHttp.get>({ - url: `/role/path/findPathsByUser`, +export function findTreeByRole(roleId, clientCode) { + return defHttp.get>({ + url: '/perm/menu/findTreeByRole', + params: { roleId, clientCode }, }) } @@ -136,22 +147,41 @@ export function findPathsByUser() { * 根据角色id获取关联请求权限id */ export function findPathIdsByRole(roleId) { - return defHttp.get({ + return defHttp.get>({ url: `/role/path/findIdsByRole`, params: { roleId }, }) } +/** + * 获取当前用户角色下可见的请求权限列表(分配时用) + */ +export function findPathsByRole(roleId) { + return defHttp.get>({ + url: `/role/path/findPathsByRole`, + params: { roleId }, + }) +} + /** * 角色 */ export interface Role extends BaseEntity { // 编码 - code: string + code?: string + // 父ID + pid?: number // 名称 - name: string + name?: string // 是否系统内置 internal?: boolean // 说明 - remark: string + remark?: string +} + +/** + * 角色树 + */ +export interface RoleTree extends Role { + children?: RoleTree[] } diff --git a/src/views/modules/system/role/RoleEdit.vue b/src/views/modules/system/role/RoleEdit.vue index 357093b0..e009171b 100644 --- a/src/views/modules/system/role/RoleEdit.vue +++ b/src/views/modules/system/role/RoleEdit.vue @@ -1,9 +1,26 @@ diff --git a/src/views/modules/system/role/RoleMenuModal.vue b/src/views/modules/system/role/RoleMenuModal.vue index 9ed7282c..3a36c684 100644 --- a/src/views/modules/system/role/RoleMenuModal.vue +++ b/src/views/modules/system/role/RoleMenuModal.vue @@ -53,15 +53,17 @@ import { $ref } from 'vue/macros' import { findAll as findClients, Client } from '/@/views/modules/system/client/Client.api' import { getAppEnvConfig } from '/@/utils/env' - import { findPermissionIdsByRole, saveRoleMenu } from '/@/views/modules/system/role/Role.api' + import { findPermissionIdsByRole, findTreeByRole, RoleTree, saveRoleMenu } from '/@/views/modules/system/role/Role.api' import { Tree, treeDataTranslate } from '/@/utils/dataUtil' import XEUtils from 'xe-utils' - import { allTree, MenuTree } from '/@/views/modules/system/menu/Menu.api' + import { MenuTree } from '/@/views/modules/system/menu/Menu.api' + import { useMessage } from '/@/hooks/web/useMessage' const { VITE_GLOB_APP_CLIENT } = getAppEnvConfig() + const { createMessage, createConfirm } = useMessage() let loading = $ref(false) - let roleId = $ref('') + let currentRole = $ref({}) let visible = $ref(false) // 终端列表 let clients = $ref([] as Client[]) @@ -80,31 +82,36 @@ let treeData = $ref([]) let treeList = $ref([]) - function init(id) { - roleId = id + function init(record: RoleTree) { + currentRole = record initData() initAssign() } + /** + * 初始化终端列表 + */ function initData() { findClients().then(({ data }) => { clients = data }) } - // 初始化菜单分配信息 + /** + * 初始化菜单分配信息 + */ async function initAssign() { visible = true loading = true searchName = '' expandedKeys = [] - // 权限树 - await allTree(clientCode).then((res) => { + // 当前角色的菜单和权限码树 + await findTreeByRole(currentRole.id, clientCode).then((res) => { treeData = treeDataTranslate(res.data, 'id', 'title') generateTreeList(res.data) }) // 当前角色已经选择的 - await findPermissionIdsByRole(roleId, clientCode).then((res) => { + await findPermissionIdsByRole(currentRole.id, clientCode).then((res) => { checkedKeys = res.data }) // 所有的key值 @@ -112,23 +119,52 @@ loading = false } - // 保存 + /** + * 保存 + */ function handleSubmit() { + // 是否级联更新子角色 + if (currentRole.children) { + createConfirm({ + iconType: 'warning', + title: '警告', + cancelText: '不应用', + okText: '应用', + content: '将新增的权限应用到下级子角色中,注意:删除权限时无论如何选择,都将会下级角色的权限被级联删除', + onOk: () => { + save(true) + }, + onCancel: () => { + save(false) + }, + }) + } else { + save(false) + } + } + + function save(updateChildren: boolean) { loading = true saveRoleMenu({ - roleId, + roleId: currentRole.id, clientCode, + updateChildren, permissionIds: checkedKeys, }).then(() => { + createMessage.success('保存成功') handleCancel() }) } + // 取消 function handleCancel() { visible = false } // 树数据铺平 function generateTreeList(treeData) { + if (!treeData) { + return + } for (let i = 0; i < treeData.length; i++) { const node = treeData[i] treeList.push(node) diff --git a/src/views/modules/system/role/RolePathModal.vue b/src/views/modules/system/role/RolePathModal.vue index 52b3968c..ec91d627 100644 --- a/src/views/modules/system/role/RolePathModal.vue +++ b/src/views/modules/system/role/RolePathModal.vue @@ -29,25 +29,38 @@ import BasicDrawer from '/@/components/Drawer/src/BasicDrawer.vue' import { $ref } from 'vue/macros' import { VxeTableInstance } from 'vxe-table' - import { findPathIdsByRole, findPathsByUser, saveRoleMenu, saveRolePath } from "./Role.api"; + import { findPathIdsByRole, findPathsByRole, RoleTree, saveRolePath } from './Role.api' import XEUtils from 'xe-utils' + import { useMessage } from '/@/hooks/web/useMessage' + + const { createMessage, createConfirm } = useMessage() const xTable = $ref() let loading = $ref(false) let roleId = $ref('') + let currentRole = $ref({}) let visible = $ref(false) let checkedKeys = $ref([]) let tableData = $ref([]) - async function init(id) { + async function init(record: RoleTree) { visible = true loading = true - roleId = id - await findPathIdsByRole(roleId).then(({ data }) => { + currentRole = record + initAssign() + } + + /** + * 初始化分配信息 + */ + async function initAssign() { + // 已经勾选的 + await findPathIdsByRole(currentRole.id).then(({ data }) => { checkedKeys = data }) - await findPathsByUser().then(({ data }) => { + // 可以被分配的 + await findPathsByRole(currentRole.id).then(({ data }) => { const result = [] as any[] // 对数据进行分组 XEUtils.each(XEUtils.groupBy(data, 'groupName'), (children, key) => { @@ -57,27 +70,58 @@ }) }) tableData = result - xTable.reloadData(tableData) + xTable?.reloadData(tableData) loading = false }) } - // 保存 + /** + * 保存 + */ function handleSubmit() { + loading = true + // 是否级联更新子角色 + if (currentRole.children) { + createConfirm({ + iconType: 'warning', + title: '警告', + cancelText: '不应用', + okText: '应用', + content: '将新增的权限应用到下级子角色中,注意:删除权限时无论如何选择,都将会下级角色的权限被级联删除', + onOk: () => { + save(true) + }, + onCancel: () => { + save(false) + }, + }) + } else { + save(false) + } + } + + /** + * 保存 + */ + function save(updateChildren: boolean) { loading = true const checkedKeys = xTable - .getCheckboxRecords() + ?.getCheckboxRecords() .map((res) => res.id) .filter((id) => id.indexOf('row_') === -1) saveRolePath({ - roleId, + roleId: currentRole.id, + updateChildren, permissionIds: checkedKeys, }).then(() => { + createMessage.success('保存成功') handleCancel() }) } - // 取消 + /** + * 取消 + */ function handleCancel() { visible = false } diff --git a/src/views/modules/system/scope/DataScope.api.ts b/src/views/modules/system/scope/DataRole.api.ts similarity index 70% rename from src/views/modules/system/scope/DataScope.api.ts rename to src/views/modules/system/scope/DataRole.api.ts index 40591243..8e4701d1 100644 --- a/src/views/modules/system/scope/DataScope.api.ts +++ b/src/views/modules/system/scope/DataRole.api.ts @@ -6,8 +6,8 @@ import { BaseEntity } from '/#/web' * 分页 */ export const page = (params) => { - return defHttp.get>>({ - url: '/data/scope/page', + return defHttp.get>>({ + url: '/data/role/page', params, }) } @@ -16,8 +16,8 @@ export const page = (params) => { * 获取单条 */ export const get = (id) => { - return defHttp.get>({ - url: '/data/scope/findById', + return defHttp.get>({ + url: '/data/role/findById', params: { id }, }) } @@ -25,9 +25,9 @@ export const get = (id) => { /** * 添加 */ -export const add = (obj: DataScope) => { +export const add = (obj: DataRole) => { return defHttp.post({ - url: '/data/scope/add', + url: '/data/role/add', data: obj, }) } @@ -35,9 +35,9 @@ export const add = (obj: DataScope) => { /** * 更新 */ -export const update = (obj: DataScope) => { +export const update = (obj: DataRole) => { return defHttp.post({ - url: '/data/scope/update', + url: '/data/role/update', data: obj, }) } @@ -47,7 +47,7 @@ export const update = (obj: DataScope) => { */ export const del = (id) => { return defHttp.delete({ - url: '/data/scope/delete', + url: '/data/role/delete', params: { id }, }) } @@ -56,8 +56,8 @@ export const del = (id) => { * 查询全部 */ export const findAll = () => { - return defHttp.get>>({ - url: '/data/scope/findAll', + return defHttp.get>>({ + url: '/data/role/findAll', }) } @@ -66,13 +66,13 @@ export const findAll = () => { */ export function existsByCode(code: string) { return defHttp.get>({ - url: '/data/scope/existsByCode', + url: '/data/role/existsByCode', params: { code }, }) } export function existsByCodeNotId(code, id) { return defHttp.get>({ - url: '/data/scope/existsByCodeNotId', + url: '/data/role/existsByCodeNotId', params: { code, id }, }) } @@ -82,13 +82,13 @@ export function existsByCodeNotId(code, id) { */ export function existsByName(name: string) { return defHttp.get>({ - url: '/data/scope/existsByName', + url: '/data/role/existsByName', params: { name }, }) } export function existsByNameNotId(name: string, id) { return defHttp.get>({ - url: '/data/scope/existsByNameNotId', + url: '/data/role/existsByNameNotId', params: { name, id }, }) } @@ -98,7 +98,7 @@ export function existsByNameNotId(name: string, id) { */ export function getDeptIds(id) { return defHttp.get>({ - url: '/data/scope/getDeptIds', + url: '/data/role/getDeptIds', params: { id }, }) } @@ -108,7 +108,7 @@ export function getDeptIds(id) { */ export function saveDeptAssign(obj) { return defHttp.post({ - url: '/data/scope/saveDeptAssign', + url: '/data/role/saveDeptAssign', data: obj, }) } @@ -116,9 +116,9 @@ export function saveDeptAssign(obj) { /** * 获取关联的用户列表 */ -export function findUsersByDataScopeId(id) { +export function findUsersByDataRoleId(id) { return defHttp.get>({ - url: '/data/scope/findUsersByDataScopeId', + url: '/data/role/findUsersByDataRoleId', params: { id }, }) } @@ -128,7 +128,7 @@ export function findUsersByDataScopeId(id) { */ export function saveUserAssign(obj) { return defHttp.post({ - url: '/data/scope/saveUserAssign', + url: '/data/role/saveUserAssign', data: obj, }) } @@ -138,7 +138,7 @@ export function saveUserAssign(obj) { */ export function deleteBatchUserAssign(obj) { return defHttp.delete({ - url: '/data/scope/deleteUserAssigns', + url: '/data/role/deleteUserAssigns', data: obj, }) } @@ -146,13 +146,13 @@ export function deleteBatchUserAssign(obj) { /** * 数据范围权限 */ -export interface DataScope extends BaseEntity { +export interface DataRole extends BaseEntity { // 编码 code?: string // 名称 name?: string // 类型 - type?: number + type?: string // 说明 remark?: string } diff --git a/src/views/modules/system/scope/DataScopeEdit.vue b/src/views/modules/system/scope/DataRoleEdit.vue similarity index 84% rename from src/views/modules/system/scope/DataScopeEdit.vue rename to src/views/modules/system/scope/DataRoleEdit.vue index e23ac4b3..0fb5694d 100644 --- a/src/views/modules/system/scope/DataScopeEdit.vue +++ b/src/views/modules/system/scope/DataRoleEdit.vue @@ -18,8 +18,14 @@ - - + + @@ -38,7 +44,7 @@ import { nextTick, reactive } from 'vue' import { $ref } from 'vue/macros' import useFormEdit from '/@/hooks/bootx/useFormEdit' - import { add, get, update, existsByCode, existsByCodeNotId, existsByName, existsByNameNotId, DataScope } from './DataScope.api' + import { add, get, update, existsByCode, existsByCodeNotId, existsByName, existsByNameNotId, DataRole } from './DataRole.api' import { FormInstance, Rule } from 'ant-design-vue/lib/form' import { FormEditType } from '/@/enums/formTypeEnum' import { BasicModal } from '/@/components/Modal' @@ -47,7 +53,7 @@ import { useDict } from '/@/hooks/bootx/useDict' const { existsByServer } = useValidate() - const { dictDropDownNumber } = useDict() + const { dictDropDown } = useDict() const { initFormEditType, handleCancel, @@ -67,12 +73,11 @@ // 表单 const formRef = $ref() let form = $ref({ - id: null, code: '', name: '', - type: 1, + type: undefined, remark: '', - } as DataScope) + } as DataRole) // 校验 const rules = reactive({ name: [ @@ -87,9 +92,12 @@ } as Record) // 事件 const emits = defineEmits(['ok']) - // 入口 - function init(id, editType: FormEditType) { - dataScopeTypes = dictDropDownNumber('DataScopePerm') + /** + * 入口 + */ + async function init(id, editType: FormEditType) { + dataScopeTypes = await dictDropDown('DataScopePerm') + console.log(dataScopeTypes) initFormEditType(editType) resetForm() getInfo(id, editType) @@ -130,11 +138,6 @@ async function validateCode() { const { code, id } = form return existsByServer(code, id, formEditType.value, existsByCode, existsByCodeNotId) - if (!code) { - return Promise.resolve() - } - const res = formEditType.value === FormEditType.Edit ? await existsByCodeNotId(code, id) : await existsByCode(code) - return res.data ? Promise.reject('该编码已存在!') : Promise.resolve() } async function validateName() { const { name, id } = form diff --git a/src/views/modules/system/scope/DataScopeList.vue b/src/views/modules/system/scope/DataRoleList.vue similarity index 78% rename from src/views/modules/system/scope/DataScopeList.vue rename to src/views/modules/system/scope/DataRoleList.vue index 96e412a0..fb0ec09f 100644 --- a/src/views/modules/system/scope/DataScopeList.vue +++ b/src/views/modules/system/scope/DataRoleList.vue @@ -35,17 +35,17 @@ 删除 -