diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000000..40bd99ce6e
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,4 @@
+> 1%
+last 2 versions
+not dead
+not ie 11
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
index a95ef27a08..a77b3a4e3b 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -3,11 +3,11 @@ dist
*.d.ts
/src/assets
package.json
-.eslintrc.js
+eslint.config.js
.prettierrc.js
commitlint.config.js
postcss.config.js
-tailwind.config.js
+tailwind.config.ts
stylelint.config.js
src/components/ReSplitPane/iconfont
src/components/ReFlowChart/src/assets/iconfont
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 792595a13b..0000000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,120 +0,0 @@
-module.exports = {
- root: true,
- env: {
- node: true
- },
- globals: {
- // Ref sugar (take 2)
- $: "readonly",
- $$: "readonly",
- $ref: "readonly",
- $shallowRef: "readonly",
- $computed: "readonly",
-
- // index.d.ts
- // global.d.ts
- Fn: "readonly",
- PromiseFn: "readonly",
- RefType: "readonly",
- LabelValueOptions: "readonly",
- EmitType: "readonly",
- TargetContext: "readonly",
- ComponentElRef: "readonly",
- ComponentRef: "readonly",
- ElRef: "readonly",
- global: "readonly",
- ForDataType: "readonly",
- ComponentRoutes: "readonly",
-
- // script setup
- defineProps: "readonly",
- defineEmits: "readonly",
- defineExpose: "readonly",
- withDefaults: "readonly"
- },
- extends: [
- "plugin:vue/vue3-essential",
- "eslint:recommended",
- "@vue/typescript/recommended",
- "@vue/prettier",
- "@vue/eslint-config-typescript"
- ],
- parser: "vue-eslint-parser",
- parserOptions: {
- parser: "@typescript-eslint/parser",
- ecmaVersion: 2020,
- sourceType: "module",
- jsxPragma: "React",
- ecmaFeatures: {
- jsx: true
- }
- },
- overrides: [
- {
- files: ["*.ts", "*.vue"],
- rules: {
- "no-undef": "off"
- }
- },
- {
- files: ["*.vue"],
- parser: "vue-eslint-parser",
- parserOptions: {
- parser: "@typescript-eslint/parser",
- extraFileExtensions: [".vue"],
- ecmaVersion: "latest",
- ecmaFeatures: {
- jsx: true
- }
- },
- rules: {
- "no-undef": "off"
- }
- }
- ],
- rules: {
- "vue/no-v-html": "off",
- "vue/require-default-prop": "off",
- "vue/require-explicit-emits": "off",
- "vue/multi-word-component-names": "off",
- "@typescript-eslint/no-explicit-any": "off", // any
- "no-debugger": "off",
- "@typescript-eslint/explicit-module-boundary-types": "off", // setup()
- "@typescript-eslint/ban-types": "off",
- "@typescript-eslint/ban-ts-comment": "off",
- "@typescript-eslint/no-empty-function": "off",
- "@typescript-eslint/no-non-null-assertion": "off",
- "vue/html-self-closing": [
- "error",
- {
- html: {
- void: "always",
- normal: "always",
- component: "always"
- },
- svg: "always",
- math: "always"
- }
- ],
- "@typescript-eslint/no-unused-vars": [
- "error",
- {
- argsIgnorePattern: "^_",
- varsIgnorePattern: "^_"
- }
- ],
- "no-unused-vars": [
- "error",
- {
- argsIgnorePattern: "^_",
- varsIgnorePattern: "^_"
- }
- ],
- "prettier/prettier": [
- "error",
- {
- endOfLine: "auto"
- }
- ]
- }
-}
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..00ff609af7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+public/wasm/capture.worker.js linguist-language=Vue
+public/wasm/index.js linguist-language=Vue
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index dd84ea7824..0000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-**To Reproduce**
-Steps to reproduce the behavior:
-1. Go to '...'
-2. Click on '....'
-3. Scroll down to '....'
-4. See error
-
-**Expected behavior**
-A clear and concise description of what you expected to happen.
-
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
-
-**Desktop (please complete the following information):**
- - OS: [e.g. iOS]
- - Browser [e.g. chrome, safari]
- - Version [e.g. 22]
-
-**Smartphone (please complete the following information):**
- - Device: [e.g. iPhone6]
- - OS: [e.g. iOS8.1]
- - Browser [e.g. stock browser, safari]
- - Version [e.g. 22]
-
-**Additional context**
-Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000..93f0539032
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,38 @@
+name: "\U0001F41E Bug report"
+description: Report an issue with vue-pure-admin
+body:
+ - type: markdown
+ attributes:
+ value: |
+ 感谢您花时间填写此错误报告 (Thanks for taking the time to fill out this bug report)
+ - type: textarea
+ id: bug-description
+ attributes:
+ label: 描述问题 (Describe the problem)
+ placeholder: 请描述您的问题 (Please describe your problem)
+ validations:
+ required: true
+ - type: textarea
+ id: reproduction-steps
+ attributes:
+ label: 如何复现该问题 (How to reproduce the problem)
+ placeholder: 请提供复现问题的具体操作步骤,以便平台快速定位、高效地解决问题。当然如果问题的操作步骤较复杂,您可以fork平台,然后去改动代码复现问题,这样更高效 (Please provide specific steps to reproduce the problem, so that the platform can quickly locate and solve the problem efficiently. Of course, if the operation steps of the problem are more complicated, you can fork the platform, and then modify the code to reproduce the problem, which is more efficient)
+ validations:
+ required: true
+ - type: textarea
+ id: system-info
+ attributes:
+ label: 操作系统和浏览器信息 (Operating system and browser information)
+ placeholder: 如果您遇到操作系统或浏览器兼容性问题,可选填此项 (Optional if you encounter operating system or browser compatibility issues)
+ validations:
+ required: false
+ - type: checkboxes
+ id: checkboxes
+ attributes:
+ label: 验证 (Verify)
+ description: 在提交问题之前,请确保您执行以下操作 (Before submitting an issue, please ensure you do the following)
+ options:
+ - label: 是否仔细阅读过 [文档](https://yiming_chang.gitee.io/pure-admin-doc/) (Have you read [documentation](https://yiming_chang.gitee.io/pure-admin-doc/) carefully)
+ required: true
+ - label: 检查是否存在相同或类似的问题 [issues](https://github.com/pure-admin/vue-pure-admin/issues) (Check for the same or similar [issues](https://github.com/pure-admin/vue-pure-admin/issues))
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000..3ba13e0cec
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1 @@
+blank_issues_enabled: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index bbcbbe7d61..0000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
index 04794d2672..0014f4c518 100644
--- a/.github/workflows/linter.yml
+++ b/.github/workflows/linter.yml
@@ -1,19 +1,4 @@
----
-#################################
-#################################
-## Super Linter GitHub Actions ##
-#################################
-#################################
-name: Lint Code Base
-
-#
-# Documentation:
-# https://help.github.com/en/articles/workflow-syntax-for-github-actions
-#
-
-#############################
-# Start the job on all push #
-#############################
+name: Lint Code
on:
push:
branches:
@@ -22,41 +7,41 @@ on:
branches:
- main
-###############
-# Set the Job #
-###############
jobs:
build:
- # Name the Job
- name: Lint Code Base
- # Set the agent to run on
+ name: Lint Code
runs-on: ubuntu-latest
-
- ##################
- # Load all steps #
- ##################
steps:
- ##########################
- # Checkout the code base #
- ##########################
- - name: Checkout Code
- uses: actions/checkout@v2
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ - name: Install Node.js
+ uses: actions/setup-node@v3
with:
- # Full git history is needed to get a proper list of changed files within `super-linter`
- fetch-depth: 0
+ node-version: 18
- - name: Setup node
- uses: actions/setup-node@v2
+ - uses: pnpm/action-setup@v2
+ name: Install pnpm
+ id: pnpm-install
with:
- node-version: "16"
- registry-url: https://registry.npmjs.com/
+ version: 8.6.10
+ run_install: false
+
+ - name: Get pnpm store directory
+ id: pnpm-cache
+ shell: bash
+ run: |
+ echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- - name: Setup pnpm
- uses: pnpm/action-setup@v2
+ - uses: actions/cache@v3
+ name: Setup pnpm cache
with:
- version: latest
+ path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
- - name: Build
+ - name: Start Lint Code
run: |
pnpm install --no-frozen-lockfile
pnpm lint
diff --git a/.gitignore b/.gitignore
index f387679883..423ed2b892 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@ dist-ssr
*.local
.eslintcache
report.html
+vite.config.*.timestamp*
yarn.lock
npm-debug.log*
diff --git a/.husky/commit-msg b/.husky/commit-msg
index 567ff71f04..5ee2d16336 100755
--- a/.husky/commit-msg
+++ b/.husky/commit-msg
@@ -3,4 +3,6 @@
# shellcheck source=./_/husky.sh
. "$(dirname "$0")/_/husky.sh"
-npx --no-install commitlint --edit "$1"
+PATH="/usr/local/bin:$PATH"
+
+npx --no-install commitlint --edit "$1"
\ No newline at end of file
diff --git a/.husky/lintstagedrc.js b/.husky/lintstagedrc.js
deleted file mode 100644
index a9b439cc51..0000000000
--- a/.husky/lintstagedrc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = {
- "*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"],
- "{!(package)*.json}": ["prettier --write--parser json"],
- "package.json": ["prettier --write"],
- "*.vue": ["eslint --fix", "prettier --write", "stylelint --fix"],
- "*.{vue,css,scss,postcss,less}": ["stylelint --fix", "prettier --write"],
- "*.md": ["prettier --write"]
-};
diff --git a/.husky/pre-commit b/.husky/pre-commit
index c7d15f247a..6e229ea322 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -4,7 +4,7 @@
[ -n "$CI" ] && exit 0
-# Format and submit code according to lintstagedrc.js configuration
-npm run lint:lint-staged
+PATH="/usr/local/bin:$PATH"
-npm run lint:pretty
+# Perform lint check on files in the staging area through .lintstagedrc configuration
+pnpm exec lint-staged
\ No newline at end of file
diff --git a/.lintstagedrc b/.lintstagedrc
new file mode 100644
index 0000000000..eb34d5085e
--- /dev/null
+++ b/.lintstagedrc
@@ -0,0 +1,16 @@
+{
+ "*.{js,jsx,ts,tsx}": [
+ "prettier --cache --ignore-unknown --write",
+ "eslint --cache --fix"
+ ],
+ "{!(package)*.json,*.code-snippets,.!({browserslist,nvm})*rc}": [
+ "prettier --cache --write--parser json"
+ ],
+ "package.json": ["prettier --cache --write"],
+ "*.vue": ["prettier --write", "eslint --cache --fix", "stylelint --fix"],
+ "*.{css,scss,html}": [
+ "prettier --cache --ignore-unknown --write",
+ "stylelint --fix"
+ ],
+ "*.md": ["prettier --cache --ignore-unknown --write"]
+}
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000000..df9385826f
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+v20.11.0
\ No newline at end of file
diff --git a/.prettierrc.js b/.prettierrc.js
index 16bb32c307..775d970a22 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -1,4 +1,7 @@
-module.exports = {
+// @ts-check
+
+/** @type {import("prettier").Config} */
+export default {
bracketSpacing: true,
singleQuote: false,
arrowParens: "avoid",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index bb65d68612..b708aae971 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -25,7 +25,7 @@
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.codeActionsOnSave": {
- "source.fixAll.eslint": true
+ "source.fixAll.eslint": "explicit"
},
"i18n-ally.localesPaths": "locales",
"i18n-ally.keystyle": "nested",
diff --git a/CHANGELOG.en_US.md b/CHANGELOG.en_US.md
index 11502c451f..283cce1413 100644
--- a/CHANGELOG.en_US.md
+++ b/CHANGELOG.en_US.md
@@ -1,3 +1,50 @@
+# 4.5.0 (2023-06-26)
+
+### ✔️ refactor
+
+- Refactor image crop `ReCropper` component, add more useful functions
+
+### 🎫 Feat
+
+- The menu search function supports pinyin search, such as searching for image cropping, input `tp` or `tupian` and other corresponding pinyin
+- Add long press command and usage example, the long press command supports continuous callback of custom duration
+- Add an example of sensitive word filtering function
+- Add an example of Chinese Pinyin function
+
+### 🐞 Bug fixes
+
+- Fixed `V4.4.0` version, the problem that the page does not cache the page for the first time after the `keepAlive` cache is enabled
+- Fixed the issue that the column setting tick option was not correctly initialized according to the `hide` property when the `RePureTableBar` component was initialized
+
+### 🍏 Perf
+
+- Change `VITE_PUBLIC_PATH` to `./` by default to be compatible with more path scenarios,
+- Compatible with the `OSS` scene where `VITE_PUBLIC_PATH` is `url`, need to upgrade `@pureadin/theme` to the latest version
+
+# 4.4.0 (2023-06-14)
+
+### 🎫 Feat
+
+- Route `meta` adds `activePath` attribute, which can activate a menu (mainly used for routes that pass parameters through `query` or `params`, when they are not displayed in the menu after configuring `showLink: false`, they will be There will be no menu highlighting, but you can get highlighting by setting `activePath` to specify the active menu, `activePath` is the `path` of the specified active menu [View details](https://github.com/pure-admin/vue-pure-admin/commit/58cafbc73ffa27253446ee93077e1e382519ce8a#commitcomment-117834411))
+- Example of advanced usage of `pure-admin-table` to add adaptive content area height
+- Add anti-shake, throttling and text copy instructions and standardize the prompts when custom instructions are used incorrectly and add usage examples
+- Add `el-empty` component when the `notice` message prompts the component to have empty data
+- Example code of functional popup window adding subcomponent `prop` as `primitive` type example
+- Add `vscode-docker` plugin
+
+### 🐞 Bug fixes
+
+- Fix internationalization switch to English mode and refresh will return to Chinese mode
+- Fixed the problem that the pop-up mask of the search menu function did not cover the left menu
+
+### 🍏 Perf
+
+- Page switching performance optimization, regardless of the network, the speed of page switching logic is almost `3-4` times faster than before [View optimization details](https://github.com/pure-admin/vue-pure-admin/pull/600#issuecomment-1586094078)
+- Optimized tab page operation-routing parameter transfer mode usage
+- All tables in the system management are changed to adaptive content area height, need to upgrade `@pureadmin/table` to the latest version
+- Use the `useResizeObserver` function of `vueuse` to replace the `v-resize` custom directive, and the performance will be better from the performance after testing
+- For unbound public events, unbind when the page is destroyed
+
# 4.3.0 (2023-06-04)
### 🎫 Feat
@@ -160,7 +207,7 @@
### ✔️ refactor
- Completely removed `vxe-table`, after removal, the overall package size of the full version is reduced by `1.82MB`, and the initial startup time is basically the same as the lite version 🐮
- [Click here to see Why Removed? How to integrate it yourself?](https://pure-admin.github.io/pure-admin-doc/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
+ [Click here to see Why Removed? How to integrate it yourself?](https://yiming_chang.gitee.io/pure-admin-doc/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
@@ -275,7 +322,7 @@
- Add front-end single sign-on, test address https://yiming_chang.gitee.io/vue-pure-admin/#/pure-table/index?username=sso&roles=admin&accessToken=eyJhbGciOiJIUzUxMiJ9.admin
- Add more examples for [@pureadmin/table](https://github.com/pure-admin/pure-admin-table) and `element-plus` [table](https://element-plus.org /zh-CN/component/table.html) example remains the same
- Rich watermark function page (supports customizing various colors, shadows, text, additional attributes, setting undeletable watermarks and setting watermarks for specified elements)
-- Optimize the menu, add `MenuArrowIconNoTransition` global configuration, configure it in `public/serverConfig.json`, for the left menu mode, the menu expansion can be set `MenuArrowIconNoTransition: true` to solve
+- Optimize the menu, add `MenuArrowIconNoTransition` global configuration, configure it in `public/platform-config.json`, for the left menu mode, the menu expansion can be set `MenuArrowIconNoTransition: true` to solve
- Replacement form designer component demo
### 🐞 Bug fixes
@@ -373,7 +420,7 @@
### ✔️ refactor
-- Replace `unocss` with `tailwindcss`, add `tailwindcss` [documentation](https://pure-admin.github.io/pure-admin-doc/pages/39156f/)
+- Replace `unocss` with `tailwindcss`, add `tailwindcss` [documentation](https://yiming_chang.gitee.io/pure-admin-doc/pages/tailwindcss/)
### 🐞 Bug fixes
@@ -418,7 +465,7 @@
- Add full routing configuration table type declaration
- Add virtual listing page demo
- Add `PDF` preview page demo
-- Added export `execl` page demo
+- Added export `excel` page demo
- Added blank page demo without `Layout`
### ✔️ refactor
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 11502c451f..283cce1413 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,50 @@
+# 4.5.0 (2023-06-26)
+
+### ✔️ refactor
+
+- Refactor image crop `ReCropper` component, add more useful functions
+
+### 🎫 Feat
+
+- The menu search function supports pinyin search, such as searching for image cropping, input `tp` or `tupian` and other corresponding pinyin
+- Add long press command and usage example, the long press command supports continuous callback of custom duration
+- Add an example of sensitive word filtering function
+- Add an example of Chinese Pinyin function
+
+### 🐞 Bug fixes
+
+- Fixed `V4.4.0` version, the problem that the page does not cache the page for the first time after the `keepAlive` cache is enabled
+- Fixed the issue that the column setting tick option was not correctly initialized according to the `hide` property when the `RePureTableBar` component was initialized
+
+### 🍏 Perf
+
+- Change `VITE_PUBLIC_PATH` to `./` by default to be compatible with more path scenarios,
+- Compatible with the `OSS` scene where `VITE_PUBLIC_PATH` is `url`, need to upgrade `@pureadin/theme` to the latest version
+
+# 4.4.0 (2023-06-14)
+
+### 🎫 Feat
+
+- Route `meta` adds `activePath` attribute, which can activate a menu (mainly used for routes that pass parameters through `query` or `params`, when they are not displayed in the menu after configuring `showLink: false`, they will be There will be no menu highlighting, but you can get highlighting by setting `activePath` to specify the active menu, `activePath` is the `path` of the specified active menu [View details](https://github.com/pure-admin/vue-pure-admin/commit/58cafbc73ffa27253446ee93077e1e382519ce8a#commitcomment-117834411))
+- Example of advanced usage of `pure-admin-table` to add adaptive content area height
+- Add anti-shake, throttling and text copy instructions and standardize the prompts when custom instructions are used incorrectly and add usage examples
+- Add `el-empty` component when the `notice` message prompts the component to have empty data
+- Example code of functional popup window adding subcomponent `prop` as `primitive` type example
+- Add `vscode-docker` plugin
+
+### 🐞 Bug fixes
+
+- Fix internationalization switch to English mode and refresh will return to Chinese mode
+- Fixed the problem that the pop-up mask of the search menu function did not cover the left menu
+
+### 🍏 Perf
+
+- Page switching performance optimization, regardless of the network, the speed of page switching logic is almost `3-4` times faster than before [View optimization details](https://github.com/pure-admin/vue-pure-admin/pull/600#issuecomment-1586094078)
+- Optimized tab page operation-routing parameter transfer mode usage
+- All tables in the system management are changed to adaptive content area height, need to upgrade `@pureadmin/table` to the latest version
+- Use the `useResizeObserver` function of `vueuse` to replace the `v-resize` custom directive, and the performance will be better from the performance after testing
+- For unbound public events, unbind when the page is destroyed
+
# 4.3.0 (2023-06-04)
### 🎫 Feat
@@ -160,7 +207,7 @@
### ✔️ refactor
- Completely removed `vxe-table`, after removal, the overall package size of the full version is reduced by `1.82MB`, and the initial startup time is basically the same as the lite version 🐮
- [Click here to see Why Removed? How to integrate it yourself?](https://pure-admin.github.io/pure-admin-doc/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
+ [Click here to see Why Removed? How to integrate it yourself?](https://yiming_chang.gitee.io/pure-admin-doc/pages/FAQ/#%E5%B9%B3%E5%8F%B0%E5%9C%A8-v3-9-4-%E7%89%88%E6%9C%AC%E5%AE%8C%E5%85%A8%E7%A7%BB%E9%99%A4%E4%BA%86-vxe-table-%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A7%BB%E9%99%A4-%E5%A6%82%E4%BD%95%E8%87%AA%E8%A1%8C%E9%9B%86%E6%88%90)
### 🎫 Feat
@@ -275,7 +322,7 @@
- Add front-end single sign-on, test address https://yiming_chang.gitee.io/vue-pure-admin/#/pure-table/index?username=sso&roles=admin&accessToken=eyJhbGciOiJIUzUxMiJ9.admin
- Add more examples for [@pureadmin/table](https://github.com/pure-admin/pure-admin-table) and `element-plus` [table](https://element-plus.org /zh-CN/component/table.html) example remains the same
- Rich watermark function page (supports customizing various colors, shadows, text, additional attributes, setting undeletable watermarks and setting watermarks for specified elements)
-- Optimize the menu, add `MenuArrowIconNoTransition` global configuration, configure it in `public/serverConfig.json`, for the left menu mode, the menu expansion can be set `MenuArrowIconNoTransition: true` to solve
+- Optimize the menu, add `MenuArrowIconNoTransition` global configuration, configure it in `public/platform-config.json`, for the left menu mode, the menu expansion can be set `MenuArrowIconNoTransition: true` to solve
- Replacement form designer component demo
### 🐞 Bug fixes
@@ -373,7 +420,7 @@
### ✔️ refactor
-- Replace `unocss` with `tailwindcss`, add `tailwindcss` [documentation](https://pure-admin.github.io/pure-admin-doc/pages/39156f/)
+- Replace `unocss` with `tailwindcss`, add `tailwindcss` [documentation](https://yiming_chang.gitee.io/pure-admin-doc/pages/tailwindcss/)
### 🐞 Bug fixes
@@ -418,7 +465,7 @@
- Add full routing configuration table type declaration
- Add virtual listing page demo
- Add `PDF` preview page demo
-- Added export `execl` page demo
+- Added export `excel` page demo
- Added blank page demo without `Layout`
### ✔️ refactor
diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md
index 20ca9a96dc..fbf1c6b1e5 100644
--- a/CHANGELOG.zh_CN.md
+++ b/CHANGELOG.zh_CN.md
@@ -1,3 +1,50 @@
+# 4.5.0 (2023-06-26)
+
+### ✔️ refactor
+
+- 重构图片裁剪 `ReCropper` 组件,添加更多实用功能
+
+### 🎫 Feat
+
+- 菜单搜索功能支持拼音搜索,比如搜图片裁剪,输入 `tp` 或 `tupian` 等对应拼音即可
+- 添加长按指令及使用示例,该长按指令支持自定义时长的持续回调
+- 添加敏感词过滤功能示例
+- 添加汉语拼音功能示例
+
+### 🐞 Bug fixes
+
+- 修复 `V4.4.0` 版本,页面开启 `keepAlive` 缓存后第一次加载并未缓存页面的问题
+- 修复 `RePureTableBar` 组件初始化时列设置勾选项未根据 `hide` 属性正确初始化
+
+### 🍏 Perf
+
+- 将 `VITE_PUBLIC_PATH` 默认改为 `./` 兼容更多路径场景,
+- 兼容 `VITE_PUBLIC_PATH` 为 `url` 的 `OSS` 场景,需将 `@pureadmin/theme` 升级至最新版
+
+# 4.4.0 (2023-06-14)
+
+### 🎫 Feat
+
+- 路由 `meta` 添加 `activePath` 属性,可将某个菜单激活(主要用于通过 `query` 或 `params` 传参的路由,当它们通过配置 `showLink: false` 后不在菜单中显示,就不会有任何菜单高亮,而通过设置 `activePath` 指定激活菜单即可获得高亮,`activePath` 为指定激活菜单的 `path` [查看详情](https://github.com/pure-admin/vue-pure-admin/commit/58cafbc73ffa27253446ee93077e1e382519ce8a#commitcomment-117834411))
+- `pure-admin-table` 高级用法添加自适应内容区高度示例
+- 添加防抖、节流和文本复制指令并规范自定义指令用法错误时的提示以及添加使用示例
+- `notice` 消息提示组件空数据时添加 `el-empty` 组件
+- 函数式弹窗示例代码添加子组件 `prop` 为 `primitive` 类型的示例
+- 添加 `vscode-docker` 插件
+
+### 🐞 Bug fixes
+
+- 修复国际化切换到英文模式刷新会回到中文模式
+- 修复搜索菜单功能的弹框遮罩未覆盖左侧菜单的问题
+
+### 🍏 Perf
+
+- 页面切换性能优化,不考虑网络的情况下,页面切换逻辑的速度差不多比之前快 `3-4` 倍 [查看优化详情](https://github.com/pure-admin/vue-pure-admin/pull/600#issuecomment-1586094078)
+- 优化标签页操作-路由传参模式用法
+- 系统管理中表格均改为自适应内容区高度,需将 `@pureadmin/table` 升级到最新版
+- 使用 `vueuse` 的 `useResizeObserver` 函数替换 `v-resize` 自定义指令,从测试后的表现来看性能会更好
+- 对未解绑的公共事件,在页面销毁时解绑
+
# 4.3.0 (2023-06-04)
### 🎫 Feat
@@ -245,7 +292,7 @@
- 添加 `@pureadmin/table` 行、列拖拽示例
- 添加 `@pureadmin/table` 右键菜单示例
- 添加 `@pureadmin/table` 导出 `Excel` 示例
-- 添加 `@pureadmin/table` 编辑单元格示例
+- 添加 `@pureadmin/table` 修改单元格示例
- 添加 `@pureadmin/table` 水印示例
- 添加 `@pureadmin/table` 打印示例
- 添加 `@pureadmin/table` 内嵌 `echarts` 图表示例
@@ -274,7 +321,7 @@
- 添加前端单点登录,测试地址 https://yiming_chang.gitee.io/vue-pure-admin/#/pure-table/index?username=sso&roles=admin&accessToken=eyJhbGciOiJIUzUxMiJ9.admin
- 为 [@pureadmin/table](https://github.com/pure-admin/pure-admin-table) 添加更多的示例和 `element-plus` 的 [table](https://element-plus.org/zh-CN/component/table.html) 示例保持一致
- 丰富水印功能页面(支持自定义各种颜色、阴影、文字、额外属性、设置不可删除水印以及给指定元素设置水印)
-- 优化菜单,添加 `MenuArrowIconNoTransition` 全局配置,在 `public/serverConfig.json` 中配置即可,对于出现左侧菜单模式,菜单展开卡顿的可设置 `MenuArrowIconNoTransition: true` 即可解决
+- 优化菜单,添加 `MenuArrowIconNoTransition` 全局配置,在 `public/platform-config.json` 中配置即可,对于出现左侧菜单模式,菜单展开卡顿的可设置 `MenuArrowIconNoTransition: true` 即可解决
- 更换表单设计器组件演示
### 🐞 Bug fixes
@@ -417,7 +464,7 @@
- 添加完整路由配置表类型声明
- 添加虚拟列表页面 demo
- 添加 `PDF` 预览页面 demo
-- 添加导出 `execl` 页面 demo
+- 添加导出 `excel` 页面 demo
- 添加无 `Layout` 的空白页面 demo
### ✔️ refactor
diff --git a/Dockerfile b/Dockerfile
index 5163975dd0..8e1f235b02 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,8 @@
-FROM node:16-alpine as build-stage
+FROM node:18-alpine as build-stage
WORKDIR /app
RUN corepack enable
-RUN corepack prepare pnpm@7.32.1 --activate
+RUN corepack prepare pnpm@8.6.10 --activate
RUN npm config set registry https://registry.npmmirror.com
diff --git a/README.en-US.md b/README.en-US.md
index e9d63767a8..35c2c685f6 100644
--- a/README.en-US.md
+++ b/README.en-US.md
@@ -8,49 +8,57 @@
## Introduction
-`vue-pure-admin` is an open source free and out-of-the-box middle and background management system template. Developed using the latest mainstream technologies such as `Vue3`, `Vite`, `Element-Plus`, `TypeScript`, `Pinia`, `Tailwindcss`
+`vue-pure-admin` is an open source, free and out-of-the-box middle and backend management system template. Completely adopts `ECMAScript` module (`ESM`) specifications to write and organize code, using the latest `Vue3`, `Vite`, `Element-Plus`, `TypeScript`, `Pinia`, `Tailwindcss` and other mainstream technologies develop
## Thin version (offering non-internationalized and internationalized versions)
The simplified version is based on the shelf extracted from [vue-pure-admin](https://github.com/pure-admin/vue-pure-admin), which contains main functions and is more suitable for actual project development. The packaged size is introduced globally [element-plus](https://element-plus.org) is still below `2.3MB`, and the full version of the code will be permanently synchronized. After enabling `brotli` compression and `cdn` to replace the local library mode, the package size is less than `350kb`
-- [Click me to view the non-internationalized version](https://github.com/pure-admin/pure-admin-thin)
-- [Click me to view Internationalization version](https://github.com/pure-admin/pure-admin-thin/tree/i18n)
+[Click to view the non-internationalized version](https://github.com/pure-admin/pure-admin-thin)
+[Click to view Internationalization version](https://github.com/pure-admin/pure-admin-thin/tree/i18n)
## Supporting Video
-- [Click Watch Tutorial](https://www.bilibili.com/video/BV1kg411v7QT)
-- [Click Watch UI Design](https://www.bilibili.com/video/BV17g411T7rq)
+[Click Watch Tutorial](https://www.bilibili.com/video/BV1kg411v7QT)
+[Click Watch UI Design](https://www.bilibili.com/video/BV17g411T7rq)
## Docs
-- [documentation site](https://yiming_chang.gitee.io/pure-admin-doc)
+[View vue-pure-admin documentation](https://yiming_chang.gitee.io/pure-admin-doc)
+[View @pureadmin/utils documentation](https://pure-admin-utils.netlify.app)
## Tauri
-- [Click Watch Tauri](https://github.com/pure-admin/tauri-pure-admin)
+[Click Watch Tauri](https://github.com/pure-admin/tauri-pure-admin)
## Electron
-- [Click Watch Electron](https://github.com/pure-admin/electron-pure-admin)
+[Click Watch Electron](https://github.com/pure-admin/electron-pure-admin)
## Preview
-- [preview station](https://yiming_chang.gitee.io/vue-pure-admin)
+[preview station](https://yiming_chang.gitee.io/vue-pure-admin)
+
+`PC`
-- PC
-
+
+
+
-- DarkMode
+`DarkMode`
+
-
+
+
+
-- Mobile
+`Mobile`
+
-
+
### Use Gitpod
@@ -59,32 +67,56 @@ Open the project in Gitpod (free online dev environment for GitHub) and start co
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/pure-admin/vue-pure-admin)
-## Install and use
+## Install And Use
+
+### Pull code
+
+#### It is recommended to use `@pureadmin/cli` scaffolding
+
+
+
-- Get the project code
+1. Global installation
+
+```bash
+npm install -g @pureadmin/cli
+```
+
+2. Interactively select templates and create projects
+
+```bash
+pure create
+```
+
+[Click to view the detailed usage of @pureadmin/cli scaffolding](https://github.com/pure-admin/pure-admin-cli#pureadmincli)
+
+#### Pull from `GitHub`
```bash
git clone https://github.com/pure-admin/vue-pure-admin.git
-or
+```
+
+#### Pulled from `Gitee`
+
+```bash
git clone https://gitee.com/yiming_chang/vue-pure-admin.git
```
-- Installation dependencies
+### Install dependencies
```bash
cd vue-pure-admin
pnpm install
-
```
-- run
+### Run platform
```bash
-pnpm serve
+pnpm dev
```
-- build
+### Project packaging
```bash
pnpm build
@@ -109,7 +141,7 @@ After operating the above two commands, open `http://localhost:8080` in the brow
Of course, you can also operate the `docker` project through the [Docker Desktop](https://www.docker.com/products/docker-desktop/) visual interface, as shown below
{slots.default({
size: size.value,
diff --git a/src/components/RePureTableBar/src/svg/collapse.svg b/src/components/RePureTableBar/src/svg/collapse.svg
index d84f87078d..0823ae6367 100644
--- a/src/components/RePureTableBar/src/svg/collapse.svg
+++ b/src/components/RePureTableBar/src/svg/collapse.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/RePureTableBar/src/svg/drag.svg b/src/components/RePureTableBar/src/svg/drag.svg
index 8c373700fd..8ac32a7bca 100644
--- a/src/components/RePureTableBar/src/svg/drag.svg
+++ b/src/components/RePureTableBar/src/svg/drag.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/RePureTableBar/src/svg/expand.svg b/src/components/RePureTableBar/src/svg/expand.svg
index dbbd4ed7eb..bb41c350fd 100644
--- a/src/components/RePureTableBar/src/svg/expand.svg
+++ b/src/components/RePureTableBar/src/svg/expand.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/RePureTableBar/src/svg/settings.svg b/src/components/RePureTableBar/src/svg/settings.svg
index be23a0bb22..4ecd07797a 100644
--- a/src/components/RePureTableBar/src/svg/settings.svg
+++ b/src/components/RePureTableBar/src/svg/settings.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/ReQrcode/src/index.tsx b/src/components/ReQrcode/src/index.tsx
index 737440288a..8d517547ed 100644
--- a/src/components/ReQrcode/src/index.tsx
+++ b/src/components/ReQrcode/src/index.tsx
@@ -4,13 +4,13 @@ import {
watch,
nextTick,
computed,
- PropType,
+ type PropType,
defineComponent
} from "vue";
import "./index.scss";
import propTypes from "@/utils/propTypes";
import { isString, cloneDeep } from "@pureadmin/utils";
-import QRCode, { QRCodeRenderersOptions } from "qrcode";
+import QRCode, { type QRCodeRenderersOptions } from "qrcode";
import RefreshRight from "@iconify-icons/ep/refresh-right";
interface QrcodeLogo {
diff --git a/src/components/ReSeamlessScroll/src/index.vue b/src/components/ReSeamlessScroll/src/index.vue
index 78ac77b5aa..e0f90d2b99 100644
--- a/src/components/ReSeamlessScroll/src/index.vue
+++ b/src/components/ReSeamlessScroll/src/index.vue
@@ -498,16 +498,16 @@ defineExpose({