From 3599f2891044c8c17a46a15c3c00605a33c5b083 Mon Sep 17 00:00:00 2001 From: Jerry <707344974@qq.com> Date: Thu, 15 Aug 2024 14:55:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9=E5=A4=B4?= =?UTF-8?q?=E5=83=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OrangeFormsOpen-VUE3/components.d.ts | 1 + .../src/api/system/LoginController.ts | 6 +- .../src/common/staticDict/combined.ts | 1 + .../components/formModifyHeadImage/index.vue | 83 +++++++++++++++++++ .../src/components/layout/index.vue | 6 +- .../online/components/OnlineCustomUpload.vue | 7 +- .../online/components/OnlineCustomWidget.vue | 7 +- .../OnlinePageRender/OnlineEditForm/index.vue | 6 +- .../online/OnlinePageRender/hooks/useForm.ts | 5 +- OrangeFormsOpen-VUE3/src/store/login.ts | 4 + 10 files changed, 112 insertions(+), 14 deletions(-) create mode 100644 OrangeFormsOpen-VUE3/src/components/layout/components/formModifyHeadImage/index.vue diff --git a/OrangeFormsOpen-VUE3/components.d.ts b/OrangeFormsOpen-VUE3/components.d.ts index 511ccc44..da3cfcc6 100644 --- a/OrangeFormsOpen-VUE3/components.d.ts +++ b/OrangeFormsOpen-VUE3/components.d.ts @@ -77,6 +77,7 @@ declare module 'vue' { InputNumberRange: typeof import('./src/components/InputNumberRange/index.vue')['default'] Layout: typeof import('./src/components/layout/index.vue')['default'] LayoutComponentsBreadCrumb: typeof import('./src/components/layout/components/BreadCrumb.vue')['default'] + LayoutComponentsFormModifyHeadImage: typeof import('./src/components/layout/components/formModifyHeadImage/index.vue')['default'] LayoutComponentsFormModifyPassword: typeof import('./src/components/layout/components/formModifyPassword/index.vue')['default'] LayoutComponentsMultiColumn: typeof import('./src/components/layout/components/multi-column.vue')['default'] LayoutComponentsMultiColumnMenu: typeof import('./src/components/layout/components/multi-column-menu.vue')['default'] diff --git a/OrangeFormsOpen-VUE3/src/api/system/LoginController.ts b/OrangeFormsOpen-VUE3/src/api/system/LoginController.ts index 67611667..29593af1 100644 --- a/OrangeFormsOpen-VUE3/src/api/system/LoginController.ts +++ b/OrangeFormsOpen-VUE3/src/api/system/LoginController.ts @@ -1,9 +1,9 @@ -import { API_CONTEXT } from '../config'; import { loginParam, LoginUserInfo } from '@/types/upms/login'; import { UserInfo } from '@/types/upms/user'; import { BaseController } from '@/api/BaseController'; import { RequestOption, TableData } from '@/common/http/types'; import { ANY_OBJECT } from '@/types/generic'; +import { API_CONTEXT } from '../config'; export default class LoginController extends BaseController { static login(params: loginParam) { @@ -17,4 +17,8 @@ export default class LoginController extends BaseController { static changePassword(params: ANY_OBJECT, httpOptions?: RequestOption) { return super.post(API_CONTEXT + '/upms/login/changePassword', params, httpOptions); } + + static changeHeadImageUrl() { + return API_CONTEXT + '/upms/login/changeHeadImage'; + } } diff --git a/OrangeFormsOpen-VUE3/src/common/staticDict/combined.ts b/OrangeFormsOpen-VUE3/src/common/staticDict/combined.ts index 6f36a004..92eb0d82 100644 --- a/OrangeFormsOpen-VUE3/src/common/staticDict/combined.ts +++ b/OrangeFormsOpen-VUE3/src/common/staticDict/combined.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/namespace import * as generatedDict from './generated'; import * as baseDict from './index'; diff --git a/OrangeFormsOpen-VUE3/src/components/layout/components/formModifyHeadImage/index.vue b/OrangeFormsOpen-VUE3/src/components/layout/components/formModifyHeadImage/index.vue new file mode 100644 index 00000000..e116a74f --- /dev/null +++ b/OrangeFormsOpen-VUE3/src/components/layout/components/formModifyHeadImage/index.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/OrangeFormsOpen-VUE3/src/components/layout/index.vue b/OrangeFormsOpen-VUE3/src/components/layout/index.vue index d0cd63d6..4f38d681 100644 --- a/OrangeFormsOpen-VUE3/src/components/layout/index.vue +++ b/OrangeFormsOpen-VUE3/src/components/layout/index.vue @@ -135,11 +135,12 @@ import { SysMenuBindType, SysOnlineFormType } from '@/common/staticDict'; import LoginController from '@/api/system/LoginController'; import { MenuItem } from '@/types/upms/menu'; import { useUpload } from '@/common/hooks/useUpload'; +import { useCommon } from '@/common/hooks/useCommon'; import Sidebar from './components/Sidebar.vue'; import BreadCrumb from './components/BreadCrumb.vue'; import TagPanel from './components/TagPanel.vue'; -import { useCommon } from '@/common/hooks/useCommon'; import FormModifyPassword from './components/formModifyPassword/index.vue'; +import FormModifyHeadImage from './components/formModifyHeadImage/index.vue'; const { Dialog } = useCommon(); const router = useRouter(); @@ -340,6 +341,9 @@ const handleCommand = (command: string) => { case 'modifyPassword': Dialog.show('修改密码', FormModifyPassword, { area: '500px' }, {}); break; + case 'modifyHeadImage': + Dialog.show('修改头像', FormModifyHeadImage, { area: '500px' }, {}); + break; default: ElMessage.warning(`click on item ${command}`); break; diff --git a/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomUpload.vue b/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomUpload.vue index 8bd1a93d..716078f6 100644 --- a/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomUpload.vue +++ b/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomUpload.vue @@ -170,9 +170,10 @@ const uploadWidgetImpl = reactive( const getDisabledStatus = () => { if (form().isEdit) return true; - const formWidgetAuth: ANY_OBJECT | null = form().formAuth && form().formAuth() && form().formAuth().pc - ? form().formAuth().pc[pps.widget.variableName] - : null; + const formWidgetAuth: ANY_OBJECT | null = + form().formAuth && form().formAuth() && form().formAuth().pc + ? form().formAuth().pc[props.widget.variableName] + : null; if (formWidgetAuth && formWidgetAuth.disabled) return true; return props.widget.props.disabled; }; diff --git a/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue b/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue index ccde1c7c..d227eb15 100644 --- a/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue +++ b/OrangeFormsOpen-VUE3/src/online/components/OnlineCustomWidget.vue @@ -355,9 +355,10 @@ const getWidgetProps = computed(() => { }); const getDisabledStatus = () => { - const formWidgetAuth: ANY_OBJECT | null = form().formAuth && form().formAuth() && form().formAuth().pc - ? form().formAuth().pc[pps.widget.variableName] - : null; + const formWidgetAuth: ANY_OBJECT | null = + form().formAuth && form().formAuth() && form().formAuth().pc + ? form().formAuth().pc[pps.widget.variableName] + : null; if (formWidgetAuth && formWidgetAuth.disabled) return true; return pps.widget.props.disabled; }; diff --git a/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/OnlineEditForm/index.vue b/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/OnlineEditForm/index.vue index bb8b4382..c6c9984e 100644 --- a/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/OnlineEditForm/index.vue +++ b/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/OnlineEditForm/index.vue @@ -482,9 +482,9 @@ const initFormData = () => { // 如果是复制,清空主键以及自动编码字段 let clearColumnList: string[] = []; if (isRelation.value) { - formData[masterTable.value.relation.variableName] = { - ...dialogParams.value.rowData, - }; + Object.keys(dialogParams.value.rowData).forEach(key => { + formData[masterTable.value.relation.variableName][key] = dialogParams.value.rowData[key]; + }); clearFormData(formData[masterTable.value.relation.variableName], clearColumnList); resolve(); } else { diff --git a/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/hooks/useForm.ts b/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/hooks/useForm.ts index 2a0e48f4..24e86642 100644 --- a/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/hooks/useForm.ts +++ b/OrangeFormsOpen-VUE3/src/pages/online/OnlinePageRender/hooks/useForm.ts @@ -144,9 +144,8 @@ export const useForm = (props: ANY_OBJECT, formRef: Ref | null = n } }; const getWidgetVisible = widget => { - const formWidgetAuth: ANY_OBJECT | null = formAuth.value && formAuth.value.pc - ? formAuth.value.pc[widget.variableName] - : null; + const formWidgetAuth: ANY_OBJECT | null = + formAuth.value && formAuth.value.pc ? formAuth.value.pc[widget.variableName] : null; if (formWidgetAuth && formWidgetAuth.hide) return false; return true; }; diff --git a/OrangeFormsOpen-VUE3/src/store/login.ts b/OrangeFormsOpen-VUE3/src/store/login.ts index 97d6b637..94a20843 100644 --- a/OrangeFormsOpen-VUE3/src/store/login.ts +++ b/OrangeFormsOpen-VUE3/src/store/login.ts @@ -19,6 +19,10 @@ export default defineStore('login', { setUserInfo(info: UserInfo) { this.userInfo = initUserInfo(info); }, + setHeadImage(headImage: (string & { downloadUri: string; filename: string }) | null) { + if (this.userInfo == null) return; + this.userInfo.headImageUrl = headImage; + }, }, persist: { // 开启持久存储