diff --git a/CHANGELOG.md b/CHANGELOG.md index bbc70741..308e393d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,18 @@ # 1.1.2 +**Features** + +- Options转Enum工具函数 + **OTHERS** - 菜单管理 改为虚拟滚动 +- 移除requestClient的一些冗余参数 +- 主动退出登录(右上角个人选项)不需要带跳转地址 + +**BUG FIXES** + +- 语言 漏加Content-Language请求头 # 1.1.1 diff --git a/apps/web-antd/src/api/helper.ts b/apps/web-antd/src/api/helper.ts index 00f2dcbb..88360d9f 100644 --- a/apps/web-antd/src/api/helper.ts +++ b/apps/web-antd/src/api/helper.ts @@ -1,75 +1,5 @@ -import { isObject, isString } from '@vben/utils'; - import { requestClient } from './request'; -const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss'; - -export function joinTimestamp( - join: boolean, - restful: T, -): T extends true ? string : object; - -export function joinTimestamp(join: boolean, restful = false): object | string { - if (!join) { - return restful ? '' : {}; - } - const now = Date.now(); - if (restful) { - return `?_t=${now}`; - } - return { _t: now }; -} - -/** - * @description: Format request parameter time - */ -export function formatRequestDate(params: Record) { - if (Object.prototype.toString.call(params) !== '[object Object]') { - return; - } - - for (const key in params) { - const format = params[key]?.format ?? null; - if (format && typeof format === 'function') { - params[key] = params[key].format(DATE_TIME_FORMAT); - } - if (isString(key)) { - const value = params[key]; - if (value) { - try { - params[key] = isString(value) ? value.trim() : value; - } catch (error: any) { - throw new Error(error); - } - } - } - if (isObject(params[key])) { - formatRequestDate(params[key]); - } - } -} - -/** - * Add the object as a parameter to the URL - * @param baseUrl url - * @param obj - * @returns {string} - * eg: - * let obj = {a: '3', b: '4'} - * setObjToUrlParams('www.baidu.com', obj) - * ==>www.baidu.com?a=3&b=4 - */ -export function setObjToUrlParams(baseUrl: string, obj: any): string { - let parameters = ''; - for (const key in obj) { - parameters += `${key}=${encodeURIComponent(obj[key])}&`; - } - parameters = parameters.replace(/&$/, ''); - return /\?$/.test(baseUrl) - ? baseUrl + parameters - : baseUrl.replace(/\/?$/, '?') + parameters; -} - /** * @description: contentType */ diff --git a/apps/web-antd/src/api/request.ts b/apps/web-antd/src/api/request.ts index e266d3db..7d540963 100644 --- a/apps/web-antd/src/api/request.ts +++ b/apps/web-antd/src/api/request.ts @@ -12,7 +12,6 @@ import { RequestClient, } from '@vben/request'; import { useAccessStore } from '@vben/stores'; -import { isString } from '@vben/utils'; import { message, Modal } from 'ant-design-vue'; import { isEmpty, isNull } from 'lodash-es'; @@ -27,8 +26,6 @@ import { } from '#/utils/encryption/crypto'; import * as encryptUtil from '#/utils/encryption/jsencrypt'; -import { formatRequestDate, joinTimestamp, setObjToUrlParams } from './helper'; - const { apiURL, clientId, enableEncrypt } = useAppConfig( import.meta.env, import.meta.env.PROD, @@ -46,16 +43,10 @@ function createRequestClient(baseURL: string) { baseURL, // 消息提示类型 errorMessageMode: 'message', - // 格式化提交参数时间 - formatDate: true, // 是否返回原生响应 比如:需要获取响应头时使用该属性 isReturnNativeResponse: false, // 需要对返回数据进行处理 isTransformResponse: true, - // post请求的时候添加参数到url - joinParamsToUrl: false, - // 是否加入时间戳 - joinTime: false, }); /** @@ -99,54 +90,11 @@ function createRequestClient(baseURL: string) { */ const language = preferences.app.locale.replace('-', '_'); config.headers['Accept-Language'] = language; + config.headers['Content-Language'] = language; // 添加全局clientId config.headers.clientId = clientId; - const { encrypt, formatDate, joinParamsToUrl, joinTime = true } = config; - const params = config.params || {}; - const data = config.data || false; - // TODO: 这块要重构 复杂度太高了 - formatDate && data && !isString(data) && formatRequestDate(data); - if (config.method?.toUpperCase() === 'GET') { - if (isString(params)) { - // 兼容restful风格 - config.url = `${config.url + params}${joinTimestamp(joinTime, true)}`; - config.params = undefined; - } else { - // 给 get 请求加上时间戳参数,避免从缓存中拿数据。 - config.params = Object.assign( - params || {}, - joinTimestamp(joinTime, false), - ); - } - } else { - if (isString(params)) { - // 兼容restful风格 - config.url = config.url + params; - config.params = undefined; - } else { - formatDate && formatRequestDate(params); - if ( - Reflect.has(config, 'data') && - config.data && - (Object.keys(config.data).length > 0 || - config.data instanceof FormData) - ) { - config.data = data; - config.params = params; - } else { - // 非GET请求如果没有提供data,则将params视为data - config.data = params; - config.params = undefined; - } - if (joinParamsToUrl) { - config.url = setObjToUrlParams( - config.url as string, - Object.assign({}, config.params, config.data), - ); - } - } - } + const { encrypt } = config; // 全局开启请求加密功能 && 该请求开启 && 是post/put请求 if ( enableEncrypt && diff --git a/apps/web-antd/src/components/tinymce/src/img-upload.vue b/apps/web-antd/src/components/tinymce/src/img-upload.vue index 441b9fee..0d7a2be6 100644 --- a/apps/web-antd/src/components/tinymce/src/img-upload.vue +++ b/apps/web-antd/src/components/tinymce/src/img-upload.vue @@ -48,14 +48,6 @@ function handleChange(info: Record) { const name = file?.name; switch (status) { - case 'uploading': { - if (!uploading) { - emit('uploading', name); - uploading = true; - } - - break; - } case 'done': { // http 200会走到这里 需要再次判断 const { response } = file; @@ -77,6 +69,14 @@ function handleChange(info: Record) { break; } + case 'uploading': { + if (!uploading) { + emit('uploading', name); + uploading = true; + } + + break; + } // No default } } diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue index c7aba31c..b574fff0 100644 --- a/apps/web-antd/src/layouts/basic.vue +++ b/apps/web-antd/src/layouts/basic.vue @@ -88,7 +88,10 @@ const avatar = computed(() => { }); async function handleLogout() { - await authStore.logout(); + /** + * 主动登出不需要带跳转地址 + */ + await authStore.logout(false); resetRoutes(); } diff --git a/apps/web-ele/package.json b/apps/web-ele/package.json index 750d7010..43015695 100644 --- a/apps/web-ele/package.json +++ b/apps/web-ele/package.json @@ -1,6 +1,6 @@ { "name": "@vben/web-ele", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://vben.pro", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/apps/web-ele/src/adapter/component/index.ts b/apps/web-ele/src/adapter/component/index.ts index a819535a..468c57f2 100644 --- a/apps/web-ele/src/adapter/component/index.ts +++ b/apps/web-ele/src/adapter/component/index.ts @@ -15,6 +15,7 @@ import { ElButton, ElCheckbox, ElCheckboxGroup, + ElDatePicker, ElDivider, ElInput, ElInputNumber, @@ -79,6 +80,7 @@ async function initComponentAdapter() { Space: ElSpace, Switch: ElSwitch, TimePicker: ElTimePicker, + DatePicker: ElDatePicker, TreeSelect: withDefaultPlaceholder(ElTreeSelect, 'select'), Upload: ElUpload, }; diff --git a/apps/web-naive/package.json b/apps/web-naive/package.json index 7a223bc7..0710c341 100644 --- a/apps/web-naive/package.json +++ b/apps/web-naive/package.json @@ -1,6 +1,6 @@ { "name": "@vben/web-naive", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://vben.pro", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/docs/.vitepress/config/zh.mts b/docs/.vitepress/config/zh.mts index fea3a3dd..6b31658e 100644 --- a/docs/.vitepress/config/zh.mts +++ b/docs/.vitepress/config/zh.mts @@ -124,7 +124,7 @@ function sidebarCommercial(): DefaultTheme.SidebarItem[] { return [ { link: 'community', - text: '社区', + text: '交流群', }, { link: 'technical-support', @@ -266,7 +266,7 @@ function nav(): DefaultTheme.NavItem[] { }, { link: '/commercial/community', - text: '👨‍👦‍👦 社区', + text: '👨‍👦‍👦 交流群', // items: [ // { // link: 'https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&appChannel=share&inviteCode=22ySzj7pKiw&businessType=9&from=246610&biz=ka&mainSourceId=share&subSourceId=others&jumpsource=shorturl#/pc', diff --git a/docs/package.json b/docs/package.json index edf71519..15a87bb9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@vben/docs", - "version": "5.4.7", + "version": "5.4.8", "private": true, "scripts": { "build": "vitepress build", diff --git a/docs/src/commercial/community.md b/docs/src/commercial/community.md index 899d030d..c5b7b7db 100644 --- a/docs/src/commercial/community.md +++ b/docs/src/commercial/community.md @@ -20,7 +20,10 @@ ::: tip -因为微信群人数有限制,加微信群前,你可以通过[赞助](../sponsor/personal.md)任意金额,主动发送截图给作者,备注`加入微信群`即可。 +因为微信群人数有限制,加微信群要求: + +- 通过[赞助](../sponsor/personal.md)任意金额。 +- 发送赞助`截图`,备注`加入微信群`即可。 ::: diff --git a/internal/lint-configs/commitlint-config/package.json b/internal/lint-configs/commitlint-config/package.json index 4bc45269..6679a662 100644 --- a/internal/lint-configs/commitlint-config/package.json +++ b/internal/lint-configs/commitlint-config/package.json @@ -1,6 +1,6 @@ { "name": "@vben/commitlint-config", - "version": "5.4.7", + "version": "5.4.8", "private": true, "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", diff --git a/internal/lint-configs/stylelint-config/package.json b/internal/lint-configs/stylelint-config/package.json index e9b9b00e..c9e8cf53 100644 --- a/internal/lint-configs/stylelint-config/package.json +++ b/internal/lint-configs/stylelint-config/package.json @@ -1,6 +1,6 @@ { "name": "@vben/stylelint-config", - "version": "5.4.7", + "version": "5.4.8", "private": true, "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", diff --git a/internal/node-utils/package.json b/internal/node-utils/package.json index 73282472..0cd1eaa3 100644 --- a/internal/node-utils/package.json +++ b/internal/node-utils/package.json @@ -1,6 +1,6 @@ { "name": "@vben/node-utils", - "version": "5.4.7", + "version": "5.4.8", "private": true, "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", diff --git a/internal/tailwind-config/package.json b/internal/tailwind-config/package.json index 872a9dc4..004ae0bc 100644 --- a/internal/tailwind-config/package.json +++ b/internal/tailwind-config/package.json @@ -1,6 +1,6 @@ { "name": "@vben/tailwind-config", - "version": "5.4.7", + "version": "5.4.8", "private": true, "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", diff --git a/internal/tsconfig/package.json b/internal/tsconfig/package.json index 8389872a..d6bae623 100644 --- a/internal/tsconfig/package.json +++ b/internal/tsconfig/package.json @@ -1,6 +1,6 @@ { "name": "@vben/tsconfig", - "version": "5.4.7", + "version": "5.4.8", "private": true, "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index a247e6ec..2d68b95b 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -1,6 +1,6 @@ { "name": "@vben/vite-config", - "version": "5.4.7", + "version": "5.4.8", "private": true, "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", diff --git a/package.json b/package.json index f35abe72..220ac0c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vben-admin-monorepo", - "version": "5.4.7", + "version": "5.4.8", "private": true, "keywords": [ "monorepo", @@ -99,7 +99,7 @@ "node": ">=20.10.0", "pnpm": ">=9.12.0" }, - "packageManager": "pnpm@9.13.2", + "packageManager": "pnpm@9.14.2", "pnpm": { "peerDependencyRules": { "allowedVersions": { diff --git a/packages/@core/base/design/package.json b/packages/@core/base/design/package.json index cb39f1e6..cbe5159c 100644 --- a/packages/@core/base/design/package.json +++ b/packages/@core/base/design/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/design", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index c3cdb2d2..bc13a58e 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/icons", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index 736b08c2..15ba9010 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/shared", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { @@ -81,13 +81,11 @@ "dependencies": { "@ctrl/tinycolor": "catalog:", "@tanstack/vue-store": "catalog:", - "@types/lodash.get": "catalog:", "@vue/shared": "catalog:", "clsx": "catalog:", "dayjs": "catalog:", "defu": "catalog:", "lodash.clonedeep": "catalog:", - "lodash.get": "catalog:", "nprogress": "catalog:", "tailwind-merge": "catalog:", "theme-colors": "catalog:" diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index 148a2a3f..d7b940a5 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/typings", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index 56f97cd7..bac20580 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/composables", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/preferences/package.json b/packages/@core/preferences/package.json index 644c341a..1fc76048 100644 --- a/packages/@core/preferences/package.json +++ b/packages/@core/preferences/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/preferences", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/ui-kit/form-ui/package.json b/packages/@core/ui-kit/form-ui/package.json index cd51fca5..ed5eb535 100644 --- a/packages/@core/ui-kit/form-ui/package.json +++ b/packages/@core/ui-kit/form-ui/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/form-ui", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/ui-kit/layout-ui/package.json b/packages/@core/ui-kit/layout-ui/package.json index 9390444d..d0ab245e 100644 --- a/packages/@core/ui-kit/layout-ui/package.json +++ b/packages/@core/ui-kit/layout-ui/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/layout-ui", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/ui-kit/menu-ui/package.json b/packages/@core/ui-kit/menu-ui/package.json index c7632166..4ee5a850 100644 --- a/packages/@core/ui-kit/menu-ui/package.json +++ b/packages/@core/ui-kit/menu-ui/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/menu-ui", - "version": "5.4.7", + "version": "5.4.8", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { diff --git a/packages/@core/ui-kit/shadcn-ui/package.json b/packages/@core/ui-kit/shadcn-ui/package.json index 330378c6..2510e210 100644 --- a/packages/@core/ui-kit/shadcn-ui/package.json +++ b/packages/@core/ui-kit/shadcn-ui/package.json @@ -1,6 +1,6 @@ { "name": "@vben-core/shadcn-ui", - "version": "5.4.7", + "version": "5.4.8", "#main": "./dist/index.mjs", "#module": "./dist/index.mjs", "homepage": "https://github.com/vbenjs/vue-vben-admin", diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue b/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue index 400d3ab6..607c38b9 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/components/input-captcha/input-captcha.vue @@ -23,8 +23,8 @@ defineEmits<{ captchaClick: [] }>(); const modelValue = defineModel({ default: '', type: String }); +