From 361e4faddac146fef9824286510f5781c46a8fa8 Mon Sep 17 00:00:00 2001 From: shizhong <124974919@qq.com> Date: Mon, 25 Sep 2023 15:25:33 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=A1=B6=E7=BA=A7=E9=9D=9E=E7=9B=AE=E5=BD=95=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E7=9A=84=E7=BB=84=E4=BB=B6=E5=90=8D=E7=A7=B0=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E7=BC=BA=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/routerHelper.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/utils/routerHelper.ts b/src/utils/routerHelper.ts index a6825653..d9fe42aa 100644 --- a/src/utils/routerHelper.ts +++ b/src/utils/routerHelper.ts @@ -93,7 +93,10 @@ export const generateRoute = (routes: AppCustomRouteRecordRaw[]): AppRouteRecord meta.alwaysShow = true const childrenData: AppRouteRecordRaw = { path: '', - name: toCamelCase(route.path, true), + name: + route.componentName && route.componentName.length > 0 + ? route.componentName + : toCamelCase(route.path, true), redirect: route.redirect, meta: meta } From fff4cfd0126bd52b317e52c9dad6ee888f61b307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E7=97=95?= <614891294@qq.com> Date: Sat, 7 Oct 2023 10:51:56 +0000 Subject: [PATCH 02/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=8C=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E8=8F=9C=E5=8D=95=E7=BC=93=E5=AD=98=E5=A4=B1=E6=95=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 天痕 <614891294@qq.com> --- src/views/system/menu/index.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index c75c091d..2f564dd9 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -188,6 +188,7 @@ const refreshMenu = async () => { try { await message.confirm('即将更新缓存刷新浏览器!', '刷新菜单缓存') // 清空,从而触发刷新 + wsCache.delete(CACHE_KEY.USER) wsCache.delete(CACHE_KEY.ROLE_ROUTERS) // 刷新浏览器 location.reload() From aa5f27bec73a5c36a9f5baf612ed8a3ed177bcc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E7=8B=97?= <909275705@qq.com> Date: Sun, 8 Oct 2023 08:26:07 +0000 Subject: [PATCH 03/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20floatToFixed2=20?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E6=9F=90=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E7=BB=93=E6=9E=9C=E4=B8=BA=E9=9B=B6=20=20Clo?= =?UTF-8?q?ses=20#I8671C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 风狗 <909275705@qq.com> --- src/utils/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/utils/index.ts b/src/utils/index.ts index c73b8d2f..b37883f3 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -205,6 +205,9 @@ export const floatToFixed2 = (num: number | string | undefined): string => { case 1: str = f.toString() + '0' break + case 2: + str = f.toString() + break } return str } From 683e319c723645887487b565567b72acc727e8a3 Mon Sep 17 00:00:00 2001 From: kehaiyou Date: Sun, 8 Oct 2023 22:35:50 +0800 Subject: [PATCH 04/18] =?UTF-8?q?fix:=20=E3=80=90=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E3=80=91--=E5=8A=A0=E7=AD=BE=E5=87=8F=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/task/index.ts | 21 ++++ .../package/designer/ProcessViewer.vue | 8 +- src/utils/is.ts | 3 + .../ProcessInstanceChildrenTaskList.vue | 86 ++++++++++++++++ .../detail/ProcessInstanceTaskList.vue | 30 +++++- .../detail/TaskAddSignDialogForm.vue | 97 +++++++++++++++++++ .../detail/TaskSubSignDialogForm.vue | 85 ++++++++++++++++ .../bpm/processInstance/detail/index.vue | 54 ++++++++--- 8 files changed, 367 insertions(+), 17 deletions(-) create mode 100644 src/views/bpm/processInstance/detail/ProcessInstanceChildrenTaskList.vue create mode 100644 src/views/bpm/processInstance/detail/TaskAddSignDialogForm.vue create mode 100644 src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue diff --git a/src/api/bpm/task/index.ts b/src/api/bpm/task/index.ts index ccd5c4ee..a18ba998 100644 --- a/src/api/bpm/task/index.ts +++ b/src/api/bpm/task/index.ts @@ -58,3 +58,24 @@ export const returnTask = async (data) => { export const delegateTask = async (data) => { return await request.put({ url: '/bpm/task/delegate', data }) } + +/** + * 加签 + */ +export const taskAddSign = async (data) => { + return await request.put({ url: '/bpm/task/add-sign', data }) +} + +/** + * 获取减签任务列表 + */ +export const getSubSignTaskList = async (id: string) => { + return await request.get({ url: '/bpm/task/get-sub-sign?taskId=' + id }) +} + +/** + * 减签 + */ +export const taskSubSign = async (data) => { + return await request.put({ url: '/bpm/task/sub-sign', data }) +} diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue index e2cd4679..ed4fde9d 100644 --- a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue +++ b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue @@ -250,6 +250,12 @@ const getResultCss = (result) => { } else if (result === 5) { // 退回 return 'highlight-return' + } else if (result === 6) { + // 委派 + return 'highlight-return' + } else if (result === 7 || result === 8 || result === 9) { + // 待后加签任务完成/待前加签任务完成/待前置任务完成 + return 'highlight-return' } return '' } @@ -362,7 +368,7 @@ const elementHover = (element) => { } } console.log(html, 'html111111111111111') - elementOverlayIds.value[element.value.id] = toRaw(overlays.value).add(element.value, { + elementOverlayIds.value[element.value.id] = toRaw(overlays.value)?.add(element.value, { position: { left: 0, bottom: 0 }, html: `
${html}
` }) diff --git a/src/utils/is.ts b/src/utils/is.ts index 37529859..cb8f1a0e 100644 --- a/src/utils/is.ts +++ b/src/utils/is.ts @@ -19,6 +19,9 @@ export const isObject = (val: any): val is Record => { } export const isEmpty = (val: T): val is T => { + if (val === null) { + return true + } if (isArray(val) || isString(val)) { return val.length === 0 } diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceChildrenTaskList.vue b/src/views/bpm/processInstance/detail/ProcessInstanceChildrenTaskList.vue new file mode 100644 index 00000000..962d0a00 --- /dev/null +++ b/src/views/bpm/processInstance/detail/ProcessInstanceChildrenTaskList.vue @@ -0,0 +1,86 @@ + + diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue b/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue index 6f4557ae..97287e99 100644 --- a/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue +++ b/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue @@ -12,7 +12,18 @@ :icon="getTimelineItemIcon(item)" :type="getTimelineItemType(item)" > -

任务:{{ item.name }}

+

+ 任务:{{ item.name }} + + + + 子任务 + +

diff --git a/src/views/bpm/processInstance/detail/TaskAddSignDialogForm.vue b/src/views/bpm/processInstance/detail/TaskAddSignDialogForm.vue new file mode 100644 index 00000000..4b91c9b9 --- /dev/null +++ b/src/views/bpm/processInstance/detail/TaskAddSignDialogForm.vue @@ -0,0 +1,97 @@ + + diff --git a/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue b/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue new file mode 100644 index 00000000..f776ef86 --- /dev/null +++ b/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue @@ -0,0 +1,85 @@ + + diff --git a/src/views/bpm/processInstance/detail/index.vue b/src/views/bpm/processInstance/detail/index.vue index 585c60db..f9c5452b 100644 --- a/src/views/bpm/processInstance/detail/index.vue +++ b/src/views/bpm/processInstance/detail/index.vue @@ -49,6 +49,10 @@ 委派 + + + 加签 + 回退 @@ -95,6 +99,8 @@ + + diff --git a/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue b/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue index f776ef86..61f7d68c 100644 --- a/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue +++ b/src/views/bpm/processInstance/detail/TaskSubSignDialogForm.vue @@ -44,7 +44,7 @@ const formRef = ref() // 表单 Ref const subTaskList = ref([]) /** 打开弹窗 */ const open = async (id: string) => { - subTaskList.value = await TaskApi.getSubSignTaskList(id) + subTaskList.value = await TaskApi.getChildrenTaskList(id) if (isEmpty(subTaskList.value)) { message.warning('当前没有可减签的任务') return false From 73b2030c7f9ab8785fe35275ae734a966114cb62 Mon Sep 17 00:00:00 2001 From: xingyu Date: Fri, 13 Oct 2023 10:31:36 +0800 Subject: [PATCH 06/18] chore: update deps --- package.json | 60 ++++++++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 22334907..923ad741 100644 --- a/package.json +++ b/package.json @@ -31,24 +31,24 @@ "@form-create/element-ui": "^3.1.24", "@iconify/iconify": "^3.1.1", "@videojs-player/vue": "^1.0.0", - "@vueuse/core": "^10.4.1", + "@vueuse/core": "^10.5.0", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.10", "@zxcvbn-ts/core": "^3.0.4", "animate.css": "^4.1.1", - "axios": "^1.5.0", + "axios": "^1.5.1", "benz-amr-recorder": "^1.1.5", "bpmn-js-token-simulation": "^0.10.0", "camunda-bpmn-moddle": "^7.0.1", "cropperjs": "^1.6.1", "crypto-js": "^4.1.1", "dayjs": "^1.11.10", - "diagram-js": "^12.3.0", + "diagram-js": "^12.4.0", "echarts": "^5.4.3", "echarts-wordcloud": "^2.1.0", "element-plus": "2.3.14", - "fast-xml-parser": "^4.3.0", - "highlight.js": "^11.8.0", + "fast-xml-parser": "^4.3.2", + "highlight.js": "^11.9.0", "intro.js": "^7.2.0", "jsencrypt": "^3.3.2", "lodash-es": "^4.17.21", @@ -63,7 +63,7 @@ "video.js": "^7.21.5", "vue": "^3.3.4", "vue-dompurify-html": "^4.1.4", - "vue-i18n": "^9.4.1", + "vue-i18n": "^9.5.0", "vue-router": "^4.2.5", "vue-types": "^5.1.1", "vuedraggable": "^4.1.0", @@ -71,54 +71,54 @@ "xml-js": "^1.6.11" }, "devDependencies": { - "@commitlint/cli": "^17.7.1", + "@commitlint/cli": "^17.7.2", "@commitlint/config-conventional": "^17.7.0", - "@iconify/json": "^2.2.119", - "@intlify/unplugin-vue-i18n": "^1.2.0", + "@iconify/json": "^2.2.128", + "@intlify/unplugin-vue-i18n": "^1.4.0", "@purge-icons/generated": "^0.9.0", - "@types/intro.js": "^5.1.1", + "@types/intro.js": "^5.1.2", "@types/lodash-es": "^4.17.9", - "@types/node": "^20.6.0", - "@types/nprogress": "^0.2.0", + "@types/node": "^20.8.5", + "@types/nprogress": "^0.2.1", "@types/qrcode": "^1.5.2", "@types/qs": "^6.9.8", - "@typescript-eslint/eslint-plugin": "^6.7.2", - "@typescript-eslint/parser": "^6.7.2", - "@unocss/transformer-variant-group": "^0.56.1", - "@unocss/eslint-config": "^0.56.1", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "@unocss/transformer-variant-group": "^0.56.5", + "@unocss/eslint-config": "^0.56.5", "@vitejs/plugin-legacy": "^4.1.1", - "@vitejs/plugin-vue": "^4.3.4", + "@vitejs/plugin-vue": "^4.4.0", "@vitejs/plugin-vue-jsx": "^3.0.2", - "@vue-macros/volar": "^0.14.3", + "@vue-macros/volar": "^0.17.0", "autoprefixer": "^10.4.16", "bpmn-js": "8.9.0", "bpmn-js-properties-panel": "0.46.0", "consola": "^3.2.3", - "eslint": "^8.49.0", + "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", - "eslint-define-config": "^1.23.0", - "eslint-plugin-prettier": "^5.0.0", + "eslint-define-config": "^1.24.1", + "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-vue": "^9.17.0", "lint-staged": "^14.0.1", - "postcss": "^8.4.30", + "postcss": "^8.4.31", "postcss-html": "^1.5.0", - "postcss-scss": "^4.0.8", + "postcss-scss": "^4.0.9", "prettier": "^3.0.3", - "rimraf": "^5.0.1", + "rimraf": "^5.0.5", "rollup": "^3.29.2", - "sass": "^1.68.0", + "sass": "^1.69.3", "stylelint": "^15.10.3", "stylelint-config-html": "^1.1.0", "stylelint-config-recommended": "^13.0.0", "stylelint-config-standard": "^34.0.0", "stylelint-order": "^6.0.3", - "terser": "^5.20.0", + "terser": "^5.21.0", "typescript": "5.2.2", - "unocss": "^0.56.1", + "unocss": "^0.56.5", "unplugin-auto-import": "^0.16.6", "unplugin-element-plus": "^0.8.0", "unplugin-vue-components": "^0.25.2", - "vite": "4.4.9", + "vite": "4.4.11", "vite-plugin-compression": "^0.5.1", "vite-plugin-ejs": "^1.6.4", "vite-plugin-eslint": "^1.8.1", @@ -126,8 +126,8 @@ "vite-plugin-purge-icons": "^0.9.2", "vite-plugin-svg-icons": "^2.0.1", "vite-plugin-top-level-await": "^1.3.1", - "vue-eslint-parser": "^9.3.1", - "vue-tsc": "^1.8.13" + "vue-eslint-parser": "^9.3.2", + "vue-tsc": "^1.8.19" }, "license": "MIT", "repository": { From e04ca7aac7a651d444753ed3f44e22faae408332 Mon Sep 17 00:00:00 2001 From: xingyu Date: Fri, 13 Oct 2023 10:34:01 +0800 Subject: [PATCH 07/18] fix: unocss eslint --- src/views/mall/trade/brokerage/withdraw/index.vue | 2 +- src/views/mall/trade/config/index.vue | 2 +- src/views/member/user/detail/UserOrderList.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/mall/trade/brokerage/withdraw/index.vue b/src/views/mall/trade/brokerage/withdraw/index.vue index ce4f8768..b14a7767 100644 --- a/src/views/mall/trade/brokerage/withdraw/index.vue +++ b/src/views/mall/trade/brokerage/withdraw/index.vue @@ -122,7 +122,7 @@ diff --git a/src/views/mall/trade/config/index.vue b/src/views/mall/trade/config/index.vue index 7905871b..48d04e08 100644 --- a/src/views/mall/trade/config/index.vue +++ b/src/views/mall/trade/config/index.vue @@ -16,9 +16,9 @@ {{ row.spuName }} From 9b09304c50d6cbc56a6f4e76f01bb7e7ae6f4771 Mon Sep 17 00:00:00 2001 From: xingyu Date: Fri, 13 Oct 2023 10:41:10 +0800 Subject: [PATCH 08/18] docs: update deps --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8466bbc3..b186484c 100644 --- a/README.md +++ b/README.md @@ -39,14 +39,14 @@ | 框架 | 说明 | 版本 | |----------------------------------------------------------------------|------------------|--------| | [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.4 | -| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.4.9 | +| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.4.11 | | [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.3.14 | | [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 5.2.2 | | [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.6 | -| [vueuse](https://vueuse.org/) | 常用工具集 | 10.4.1 | -| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.4.1 | +| [vueuse](https://vueuse.org/) | 常用工具集 | 10.5.0 | +| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.5.1 | | [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.2.5 | -| [unocss](https://uno.antfu.me/) | 原子 css | 0.56.1 | +| [unocss](https://uno.antfu.me/) | 原子 css | 0.56.5 | | [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.1.1 | | [wangeditor](https://www.wangeditor.com/) | 富文本编辑器 | 5.1.23 | From 4d77d7e1366215930bd4661bc3f94b6e6a306bc8 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sun, 15 Oct 2023 14:26:20 +0800 Subject: [PATCH 09/18] =?UTF-8?q?feat:=20=E7=A4=BE=E4=BA=A4=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login/index.ts | 12 + src/api/login/types.ts | 3 + src/locales/zh-CN.ts | 1 + src/router/modules/remaining.ts | 8 +- src/views/Login/SocialLogin.vue | 343 +++++++++++++++++++++++ src/views/Login/components/LoginForm.vue | 7 +- 6 files changed, 369 insertions(+), 5 deletions(-) create mode 100644 src/views/Login/SocialLogin.vue diff --git a/src/api/login/index.ts b/src/api/login/index.ts index b65a90cf..1ffb38d6 100644 --- a/src/api/login/index.ts +++ b/src/api/login/index.ts @@ -47,6 +47,18 @@ export const smsLogin = (data: SmsLoginVO) => { return request.post({ url: '/system/auth/sms-login', data }) } +// 社交快捷登录,使用 code 授权码 +export function socialLogin(type: string, code: string, state: string) { + return request.post({ + url: '/system/auth/social-login', + data: { + type, + code, + state + } + }) +} + // 社交授权的跳转 export const socialAuthRedirect = (type: number, redirectUri: string) => { return request.get({ diff --git a/src/api/login/types.ts b/src/api/login/types.ts index b2173f72..fff81225 100644 --- a/src/api/login/types.ts +++ b/src/api/login/types.ts @@ -2,6 +2,9 @@ export type UserLoginVO = { username: string password: string captchaVerification: string + socialType?: string + socialCode?: string + socialState?: string } export type TokenType = { diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index cc4bb47e..4f95852f 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -141,6 +141,7 @@ export default { }, router: { login: '登录', + socialLogin: '社交登录', home: '首页', analysis: '分析页', workplace: '工作台' diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index d8172d27..3c4898e4 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -186,12 +186,12 @@ const remainingRouter: AppRouteRecordRaw[] = [ } }, { - path: '/sso', - component: () => import('@/views/Login/Login.vue'), - name: 'SSOLogin', + path: '/social-login', + component: () => import('@/views/Login/SocialLogin.vue'), + name: 'SocialLogin', meta: { hidden: true, - title: t('router.login'), + title: t('router.socialLogin'), noTagsView: true } }, diff --git a/src/views/Login/SocialLogin.vue b/src/views/Login/SocialLogin.vue new file mode 100644 index 00000000..6bbfc1df --- /dev/null +++ b/src/views/Login/SocialLogin.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue index a4eb0b92..9bee2523 100644 --- a/src/views/Login/components/LoginForm.vue +++ b/src/views/Login/components/LoginForm.vue @@ -284,8 +284,13 @@ const doSocialLogin = async (type: number) => { }) } // 计算 redirectUri + // tricky: type、redirect需要先encode一次,否则钉钉回调会丢失。 + // 配合 Login/SocialLogin.vue#getUrlValue() 使用 const redirectUri = - location.origin + '/social-login?type=' + type + '&redirect=' + (redirect.value || '/') + location.origin + + '/social-login?' + + encodeURIComponent(`type=${type}&redirect=${redirect.value || '/'}`) + // 进行跳转 const res = await LoginApi.socialAuthRedirect(type, encodeURIComponent(redirectUri)) window.location.href = res From 3587d1ef971fae3d05e55fa83b3f72c632558408 Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sun, 15 Oct 2023 14:29:16 +0800 Subject: [PATCH 10/18] =?UTF-8?q?fix:=20=E8=B7=AF=E7=94=B1=E7=BC=BA?= =?UTF-8?q?=E5=B0=91name=E5=AD=97=E6=AE=B5=EF=BC=8Cts=E4=B8=8D=E9=AB=98?= =?UTF-8?q?=E5=85=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/modules/remaining.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 3c4898e4..f955b36b 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -333,6 +333,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ { path: '/mall/product', // 商品中心 component: Layout, + name: 'Product', meta: { hidden: true }, @@ -394,6 +395,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ { path: '/mall/trade', // 交易中心 component: Layout, + name: 'Trade', meta: { hidden: true }, From 89417ac393886684305b5f0a88a7f26e2618da3c Mon Sep 17 00:00:00 2001 From: dhb52 Date: Sun, 15 Oct 2023 14:58:13 +0800 Subject: [PATCH 11/18] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4SSOLogin.vue?= =?UTF-8?q?=E7=BB=84=E5=BB=BA=EF=BC=8C=E8=A7=A3=E5=86=B3=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=B8=8D=E5=81=9C=E9=87=8D=E5=AE=9A=E5=90=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Login/Login.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue index 19ffe2d7..d1a5e7f5 100644 --- a/src/views/Login/Login.vue +++ b/src/views/Login/Login.vue @@ -55,7 +55,7 @@ - + @@ -70,7 +70,7 @@ import { useAppStore } from '@/store/modules/app' import { ThemeSwitch } from '@/layout/components/ThemeSwitch' import { LocaleDropdown } from '@/layout/components/LocaleDropdown' -import { LoginForm, MobileForm, QrCodeForm, RegisterForm, SSOLoginVue } from './components' +import { LoginForm, MobileForm, QrCodeForm, RegisterForm } from './components' defineOptions({ name: 'Login' }) From e2a08ddbac69a06b346a3f624bf0b0db2242bb8c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 15 Oct 2023 21:58:19 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E6=81=A2=E5=A4=8D=20SSO=20=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/modules/remaining.ts | 16 +++++++++++++--- src/views/Login/Login.vue | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index f955b36b..aa260cf1 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -185,6 +185,16 @@ const remainingRouter: AppRouteRecordRaw[] = [ noTagsView: true } }, + { + path: '/sso', + component: () => import('@/views/Login/Login.vue'), + name: 'SSOLogin', + meta: { + hidden: true, + title: t('router.login'), + noTagsView: true + } + }, { path: '/social-login', component: () => import('@/views/Login/SocialLogin.vue'), @@ -333,7 +343,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ { path: '/mall/product', // 商品中心 component: Layout, - name: 'Product', + name: 'ProductCenter', meta: { hidden: true }, @@ -395,7 +405,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ { path: '/mall/trade', // 交易中心 component: Layout, - name: 'Trade', + name: 'TradeCenter', meta: { hidden: true }, @@ -417,7 +427,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ { path: '/member', component: Layout, - name: 'member', + name: 'MemberCenter', meta: { hidden: true }, children: [ { diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue index d1a5e7f5..19ffe2d7 100644 --- a/src/views/Login/Login.vue +++ b/src/views/Login/Login.vue @@ -55,7 +55,7 @@ - + @@ -70,7 +70,7 @@ import { useAppStore } from '@/store/modules/app' import { ThemeSwitch } from '@/layout/components/ThemeSwitch' import { LocaleDropdown } from '@/layout/components/LocaleDropdown' -import { LoginForm, MobileForm, QrCodeForm, RegisterForm } from './components' +import { LoginForm, MobileForm, QrCodeForm, RegisterForm, SSOLoginVue } from './components' defineOptions({ name: 'Login' }) From de3fa7a765f7ea2f40927c41ea08053b824528ea Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Oct 2023 10:24:35 +0800 Subject: [PATCH 13/18] chore: update deps --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 923ad741..b0e62499 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "diagram-js": "^12.4.0", "echarts": "^5.4.3", "echarts-wordcloud": "^2.1.0", - "element-plus": "2.3.14", + "element-plus": "2.4.0", "fast-xml-parser": "^4.3.2", "highlight.js": "^11.9.0", "intro.js": "^7.2.0", @@ -55,7 +55,7 @@ "min-dash": "^4.1.1", "mitt": "^3.0.1", "nprogress": "^0.2.0", - "pinia": "^2.1.6", + "pinia": "^2.1.7", "qrcode": "^1.5.3", "qs": "^6.11.2", "steady-xml": "^0.1.0", @@ -71,14 +71,14 @@ "xml-js": "^1.6.11" }, "devDependencies": { - "@commitlint/cli": "^17.7.2", - "@commitlint/config-conventional": "^17.7.0", + "@commitlint/cli": "^17.8.0", + "@commitlint/config-conventional": "^17.8.0", "@iconify/json": "^2.2.128", "@intlify/unplugin-vue-i18n": "^1.4.0", "@purge-icons/generated": "^0.9.0", "@types/intro.js": "^5.1.2", "@types/lodash-es": "^4.17.9", - "@types/node": "^20.8.5", + "@types/node": "^20.8.6", "@types/nprogress": "^0.2.1", "@types/qrcode": "^1.5.2", "@types/qs": "^6.9.8", @@ -99,13 +99,13 @@ "eslint-define-config": "^1.24.1", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-vue": "^9.17.0", - "lint-staged": "^14.0.1", + "lint-staged": "^15.0.1", "postcss": "^8.4.31", "postcss-html": "^1.5.0", "postcss-scss": "^4.0.9", "prettier": "^3.0.3", "rimraf": "^5.0.5", - "rollup": "^3.29.2", + "rollup": "^4.1.3", "sass": "^1.69.3", "stylelint": "^15.10.3", "stylelint-config-html": "^1.1.0", From a2ded16718a1c84626ae423b83d19d7d1a733de9 Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Oct 2023 10:25:24 +0800 Subject: [PATCH 14/18] docs: element plus 2.4.0 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c1fe4693..aa498ce2 100644 --- a/README.md +++ b/README.md @@ -40,11 +40,11 @@ |----------------------------------------------------------------------|------------------|--------| | [Vue](https://staging-cn.vuejs.org/) | Vue 框架 | 3.3.4 | | [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 4.4.11 | -| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.3.14 | +| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.4.0 | | [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 5.2.2 | -| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.6 | +| [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.1.7 | | [vueuse](https://vueuse.org/) | 常用工具集 | 10.5.0 | -| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.5.1 | +| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.5.0 | | [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.2.5 | | [unocss](https://uno.antfu.me/) | 原子 css | 0.56.5 | | [iconify](https://icon-sets.iconify.design/) | 在线图标库 | 3.1.1 | From 42c8db4f342a6436e5d8e1f5602f775e2d7c7a1a Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Oct 2023 15:03:55 +0800 Subject: [PATCH 15/18] chore: update deps --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b0e62499..1fb585f3 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "devDependencies": { "@commitlint/cli": "^17.8.0", "@commitlint/config-conventional": "^17.8.0", - "@iconify/json": "^2.2.128", + "@iconify/json": "^2.2.129", "@intlify/unplugin-vue-i18n": "^1.4.0", "@purge-icons/generated": "^0.9.0", "@types/intro.js": "^5.1.2", @@ -105,7 +105,7 @@ "postcss-scss": "^4.0.9", "prettier": "^3.0.3", "rimraf": "^5.0.5", - "rollup": "^4.1.3", + "rollup": "^4.1.4", "sass": "^1.69.3", "stylelint": "^15.10.3", "stylelint-config-html": "^1.1.0", From 1a1b70a350722cf25a00e5b659a71ead5be62114 Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Oct 2023 15:04:05 +0800 Subject: [PATCH 16/18] style: stylelint --- .../package/designer/ProcessViewer.vue | 6 ++++++ .../components/Breadcrumb/src/Breadcrumb.vue | 1 + .../promotion/combination/record/index.vue | 6 +++--- src/views/mall/statistics/member/index.vue | 3 +++ .../mall/trade/afterSale/detail/index.vue | 18 +++++++++--------- src/views/mall/trade/order/detail/index.vue | 16 ++++++++-------- 6 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue index e2cd4679..efb57503 100644 --- a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue +++ b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue @@ -591,14 +591,17 @@ watch( stroke: #e6a23c !important; fill-opacity: 0.2 !important; } + .highlight-return.djs-shape .djs-visual > :nth-child(2) { fill: #e6a23c !important; } + .highlight-return.djs-shape .djs-visual > path { fill: #e6a23c !important; fill-opacity: 0.2 !important; stroke: #e6a23c !important; } + .highlight-return.djs-connection > .djs-visual > path { stroke: #e6a23c !important; } @@ -612,14 +615,17 @@ watch( stroke: #e6a23c !important; fill-opacity: 0.2 !important; } + :deep(.highlight-return.djs-shape .djs-visual > :nth-child(2)) { fill: #e6a23c !important; } + :deep(.highlight-return.djs-shape .djs-visual > path) { fill: #e6a23c !important; fill-opacity: 0.2 !important; stroke: #e6a23c !important; } + :deep(.highlight-return.djs-connection > .djs-visual > path) { stroke: #e6a23c !important; } diff --git a/src/layout/components/Breadcrumb/src/Breadcrumb.vue b/src/layout/components/Breadcrumb/src/Breadcrumb.vue index 1852a59b..4079a066 100644 --- a/src/layout/components/Breadcrumb/src/Breadcrumb.vue +++ b/src/layout/components/Breadcrumb/src/Breadcrumb.vue @@ -114,6 +114,7 @@ $prefix-cls: #{$elNamespace}-breadcrumb; } } } + :deep(&__item):last-child { .#{$prefix-cls}__inner { display: flex; diff --git a/src/views/mall/promotion/combination/record/index.vue b/src/views/mall/promotion/combination/record/index.vue index cc7a3b26..ec06a0b7 100644 --- a/src/views/mall/promotion/combination/record/index.vue +++ b/src/views/mall/promotion/combination/record/index.vue @@ -6,7 +6,7 @@
@@ -27,7 +27,7 @@
@@ -48,7 +48,7 @@
diff --git a/src/views/mall/statistics/member/index.vue b/src/views/mall/statistics/member/index.vue index e76e861c..8dd7c593 100644 --- a/src/views/mall/statistics/member/index.vue +++ b/src/views/mall/statistics/member/index.vue @@ -472,12 +472,15 @@ onMounted(async () => { margin-bottom: 1rem; } } + .trapezoid1 { transform: perspective(5em) rotateX(-11deg); } + .trapezoid2 { transform: perspective(7em) rotateX(-20deg); } + .trapezoid3 { transform: perspective(3em) rotateX(-13deg); } diff --git a/src/views/mall/trade/afterSale/detail/index.vue b/src/views/mall/trade/afterSale/detail/index.vue index 50c759d5..26df0d34 100644 --- a/src/views/mall/trade/afterSale/detail/index.vue +++ b/src/views/mall/trade/afterSale/detail/index.vue @@ -307,7 +307,7 @@ onMounted(async () => { // 时间线样式调整 :deep(.el-timeline) { - margin: 10px 0px 0px 160px; + margin: 10px 0 0 160px; .el-timeline-item__wrapper { position: relative; @@ -328,27 +328,27 @@ onMounted(async () => { background-color: #f7f8fa; &::before { - content: ''; position: absolute; top: 10px; left: 13px; - border-width: 8px; /* 调整尖角大小 */ - border-style: solid; border-color: transparent #f7f8fa transparent transparent; /* 尖角颜色,左侧朝向 */ + border-style: solid; + border-width: 8px; /* 调整尖角大小 */ + content: ''; } } .dot-node-style { - width: 20px; - height: 20px; position: absolute; left: -5px; display: flex; + width: 20px; + height: 20px; + font-size: 10px; + color: #fff; + border-radius: 50%; justify-content: center; align-items: center; - border-radius: 50%; - color: #fff; - font-size: 10px; } } diff --git a/src/views/mall/trade/order/detail/index.vue b/src/views/mall/trade/order/detail/index.vue index 58939dbc..7d0a88ac 100644 --- a/src/views/mall/trade/order/detail/index.vue +++ b/src/views/mall/trade/order/detail/index.vue @@ -395,27 +395,27 @@ onMounted(async () => { background-color: #f7f8fa; &::before { - content: ''; /* 必须设置 content 属性 */ position: absolute; top: 10px; left: 13px; /* 将伪元素水平居中 */ - border-width: 8px; /* 调整尖角大小 */ - border-style: solid; border-color: transparent #f7f8fa transparent transparent; /* 尖角颜色,左侧朝向 */ + border-style: solid; + border-width: 8px; /* 调整尖角大小 */ + content: ''; /* 必须设置 content 属性 */ } } .dot-node-style { - width: 20px; - height: 20px; position: absolute; left: -5px; display: flex; + width: 20px; + height: 20px; + font-size: 10px; + color: #fff; + border-radius: 50%; justify-content: center; align-items: center; - border-radius: 50%; - color: #fff; - font-size: 10px; } } From 5da9b660bdfebf1d6e59f651952b59ff7f28602c Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Oct 2023 15:09:13 +0800 Subject: [PATCH 17/18] perf: propTypes --- src/utils/propTypes.ts | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/utils/propTypes.ts b/src/utils/propTypes.ts index fb8f84e7..863f55cc 100644 --- a/src/utils/propTypes.ts +++ b/src/utils/propTypes.ts @@ -1,12 +1,10 @@ -import { createTypes, VueTypesInterface, VueTypeValidableDef } from 'vue-types' +import { VueTypeValidableDef, VueTypesInterface, createTypes, toValidableType } from 'vue-types' import { CSSProperties } from 'vue' -// 自定义扩展vue-types type PropTypes = VueTypesInterface & { readonly style: VueTypeValidableDef } - -const propTypes = createTypes({ +const newPropTypes = createTypes({ func: undefined, bool: undefined, string: undefined, @@ -15,14 +13,12 @@ const propTypes = createTypes({ integer: undefined }) as PropTypes -// 需要自定义扩展的类型 -// see: https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method -// propTypes.extend([ -// { -// name: 'style', -// getter: true, -// type: [String, Object], -// default: undefined -// } -// ]) +class propTypes extends newPropTypes { + static get style() { + return toValidableType('style', { + type: [String, Object] + }) + } +} + export { propTypes } From 8c18ad941e5cd308cffa16cb55a634f5d53ffa0d Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Oct 2023 15:09:47 +0800 Subject: [PATCH 18/18] perf: is utils --- src/utils/is.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/utils/is.ts b/src/utils/is.ts index 37529859..8ac2e50d 100644 --- a/src/utils/is.ts +++ b/src/utils/is.ts @@ -103,3 +103,12 @@ export const isUrl = (path: string): boolean => { export const isDark = (): boolean => { return window.matchMedia('(prefers-color-scheme: dark)').matches } + +// 是否是图片链接 +export const isImgPath = (path: string): boolean => { + return /(https?:\/\/|data:image\/).*?\.(png|jpg|jpeg|gif|svg|webp|ico)/gi.test(path) +} + +export const isEmptyVal = (val: any): boolean => { + return val === '' || val === null || val === undefined +}