From 391eec3114a17e68652434c6eae610799d80290e Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期四, 16 一月 2025 11:13:43 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Bin/PLTWEB/server/plt-web.jar | 0 Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue | 187 +++++++++++++------ Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue | 17 + Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue | 52 ++++- Bin/PLTWEB/server/lib/plt-web-base-2024.1-SNAPSHOT.jar | 0 Bin/PLTWEB/server/lib/plt-web-permission-2024.1-SNAPSHOT.jar | 0 Source/plt-web/plt-web-ui/src/views/system/department/index.vue | 2 Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue | 134 ++++++++++++-- Source/plt-web/plt-web-ui/src/styles/ui.scss | 14 + Bin/PLTWEB/server/lib/plt-starter-2024.1-SNAPSHOT.jar | 0 Source/plt-web/plt-web-ui/src/store/modules/user.js | 27 ++ Bin/PLTWEB/server/lib/plt-slice-1.0.RELEASE.jar | 0 Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue | 2 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue | 14 Source/plt-web/plt-web-ui/src/page/index/top/index.vue | 5 /dev/null | 8 Source/plt-web/plt-web-ui/src/components/flow-design/main.vue | 8 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue | 9 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 3 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue | 2 Bin/PLTWEB/server/lib/plt-web-api-2024.1-SNAPSHOT.jar | 0 Source/plt-web/plt-web-ui/src/api/user.js | 17 + 22 files changed, 360 insertions(+), 141 deletions(-) diff --git a/Bin/PLTWEB/server/lib/desktop.ini b/Bin/PLTWEB/server/lib/desktop.ini deleted file mode 100644 index 4287f4c..0000000 --- a/Bin/PLTWEB/server/lib/desktop.ini +++ /dev/null @@ -1,8 +0,0 @@ -[LocalizedFileNames] -plt-clientbase-1.0.RELEASE.jar=@plt-clientbase-1.0.RELEASE.jar,0 -plt-common-1.0.RELEASE.jar=@plt-common-1.0.RELEASE.jar,0 -plt-slice-1.0.RELEASE.jar=@plt-slice-1.0.RELEASE.jar,0 -plt-starter-2024.1-SNAPSHOT.jar=@plt-starter-2024.1-SNAPSHOT.jar,0 -plt-web-api-2024.1-SNAPSHOT.jar=@plt-web-api-2024.1-SNAPSHOT.jar,0 -plt-web-base-2024.1-SNAPSHOT.jar=@plt-web-base-2024.1-SNAPSHOT.jar,0 -plt-web-permission-2024.1-SNAPSHOT.jar=@plt-web-permission-2024.1-SNAPSHOT.jar,0 diff --git a/Bin/PLTWEB/server/lib/plt-slice-1.0.RELEASE.jar b/Bin/PLTWEB/server/lib/plt-slice-1.0.RELEASE.jar index c3a4211..434beaa 100644 --- a/Bin/PLTWEB/server/lib/plt-slice-1.0.RELEASE.jar +++ b/Bin/PLTWEB/server/lib/plt-slice-1.0.RELEASE.jar Binary files differ diff --git a/Bin/PLTWEB/server/lib/plt-starter-2024.1-SNAPSHOT.jar b/Bin/PLTWEB/server/lib/plt-starter-2024.1-SNAPSHOT.jar index feda85f..4617f42 100644 --- a/Bin/PLTWEB/server/lib/plt-starter-2024.1-SNAPSHOT.jar +++ b/Bin/PLTWEB/server/lib/plt-starter-2024.1-SNAPSHOT.jar Binary files differ diff --git a/Bin/PLTWEB/server/lib/plt-web-api-2024.1-SNAPSHOT.jar b/Bin/PLTWEB/server/lib/plt-web-api-2024.1-SNAPSHOT.jar index 8f427bf..1dd55a0 100644 --- a/Bin/PLTWEB/server/lib/plt-web-api-2024.1-SNAPSHOT.jar +++ b/Bin/PLTWEB/server/lib/plt-web-api-2024.1-SNAPSHOT.jar Binary files differ diff --git a/Bin/PLTWEB/server/lib/plt-web-base-2024.1-SNAPSHOT.jar b/Bin/PLTWEB/server/lib/plt-web-base-2024.1-SNAPSHOT.jar index c3a7249..ce81c52 100644 --- a/Bin/PLTWEB/server/lib/plt-web-base-2024.1-SNAPSHOT.jar +++ b/Bin/PLTWEB/server/lib/plt-web-base-2024.1-SNAPSHOT.jar Binary files differ diff --git a/Bin/PLTWEB/server/lib/plt-web-permission-2024.1-SNAPSHOT.jar b/Bin/PLTWEB/server/lib/plt-web-permission-2024.1-SNAPSHOT.jar index 449ad79..fc93b98 100644 --- a/Bin/PLTWEB/server/lib/plt-web-permission-2024.1-SNAPSHOT.jar +++ b/Bin/PLTWEB/server/lib/plt-web-permission-2024.1-SNAPSHOT.jar Binary files differ diff --git a/Bin/PLTWEB/server/plt-web.jar b/Bin/PLTWEB/server/plt-web.jar index c177707..1983208 100644 --- a/Bin/PLTWEB/server/plt-web.jar +++ b/Bin/PLTWEB/server/plt-web.jar Binary files differ diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java index dcaa1bb..df39636 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java @@ -34,6 +34,7 @@ import com.vci.web.service.OsQuereyTemplateServiceI; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.UITools; +import com.vci.web.util.WebUtil; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -828,7 +829,7 @@ @Override public PortalVI portalVIDTOO2VI(PortalVIDTO portalVIDTO) { PortalVI portalVI = new PortalVI(); - portalVI.id = portalVIDTO.getId(); + portalVI.id = StringUtils.isNotBlank(portalVIDTO.getId()) ? portalVIDTO.getId() : WebUtil.getPk(); portalVI.typeFlag = portalVIDTO.getTypeFlag(); portalVI.typeName = portalVIDTO.getTypeName(); portalVI.viName = portalVIDTO.getViName(); diff --git a/Source/plt-web/plt-web-ui/src/api/user.js b/Source/plt-web/plt-web-ui/src/api/user.js index f66c597..279286c 100644 --- a/Source/plt-web/plt-web-ui/src/api/user.js +++ b/Source/plt-web/plt-web-ui/src/api/user.js @@ -53,3 +53,20 @@ params }); } +// 鑾峰彇澶村儚 +export function getUserPhoto(params) { + return request({ + url: "/api/userQueryController/getUserPhoto", + method: "get", + responseType:'blob', + params + }); +} +// 涓婁紶澶村儚 +export function updateUserPhoto(formData) { + return request({ + url: "/api/userQueryController/updateUserPhoto", + method: "post", + data:formData + }); +} diff --git a/Source/plt-web/plt-web-ui/src/components/flow-design/main.vue b/Source/plt-web/plt-web-ui/src/components/flow-design/main.vue index 34560f8..6cfa604 100644 --- a/Source/plt-web/plt-web-ui/src/components/flow-design/main.vue +++ b/Source/plt-web/plt-web-ui/src/components/flow-design/main.vue @@ -8,13 +8,13 @@ width="70%" custom-class="flow-design-dialog"> <wf-design-base ref="bpmn" - style="height: 60vh;" + :style="'height: '+height+';'" :options="option"></wf-design-base> </el-dialog> <div v-else> <wf-design-base v-if="visible" ref="bpmn" - style="height: 60vh;" + :style="'height: '+height+';'" :options="option"></wf-design-base> </div> </div> @@ -36,6 +36,10 @@ }, processInstanceId: String, processDefinitionId: String, + height: { + type: String, + default: '60vh' + }, }, data() { return { diff --git a/Source/plt-web/plt-web-ui/src/page/index/top/index.vue b/Source/plt-web/plt-web-ui/src/page/index/top/index.vue index f11d053..ad400a3 100644 --- a/Source/plt-web/plt-web-ui/src/page/index/top/index.vue +++ b/Source/plt-web/plt-web-ui/src/page/index/top/index.vue @@ -77,7 +77,7 @@ </el-tooltip> <el-tooltip content="涓汉淇℃伅"> <div> - <img :src="userInfo.avatar" + <img :src="avatar" class="top-bar__img" @click="gotoInfo"> </div> @@ -184,6 +184,9 @@ listenfullscreen(this.setScreen); }, computed: { + avatar(){ + return this.userInfo.avatar + }, ...mapState({ showDebug: state => state.common.showDebug, showTheme: state => state.common.showTheme, diff --git a/Source/plt-web/plt-web-ui/src/store/modules/user.js b/Source/plt-web/plt-web-ui/src/store/modules/user.js index fc95d95..5f3aab8 100644 --- a/Source/plt-web/plt-web-ui/src/store/modules/user.js +++ b/Source/plt-web/plt-web-ui/src/store/modules/user.js @@ -4,7 +4,7 @@ import {isURL, validatenull} from '@/util/validate' import {deepClone, queryStringToObject} from '@/util/util' import website from '@/config/website' -import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons} from '@/api/user' +import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons,getUserPhoto} from '@/api/user' import {getTopMenu, getRoutes} from '@/api/system/menu' import md5 from 'js-md5' import func from "@/util/func"; @@ -286,12 +286,27 @@ state.tenantId = tenantId; setStore({name: 'tenantId', content: state.tenantId}) }, + // SET_USER_INFO: (state, userInfo) => { + // getUserPhoto().then(res => { + // userInfo.avatar = URL.createObjectURL(res.data); + // console.log('userInfo',userInfo) + // }) + // state.userInfo = userInfo; + // setStore({name: 'userInfo', content: state.userInfo}) + // }, SET_USER_INFO: (state, userInfo) => { - if (validatenull(userInfo.avatar)) { - userInfo.avatar = "/img/bg/img-logo.png"; - } - state.userInfo = userInfo; - setStore({name: 'userInfo', content: state.userInfo}) + getUserPhoto().then(res => { + // 灏� Blob 杞崲涓� Base64 + const reader = new FileReader(); + reader.onloadend = (result) => { + userInfo.avatar = reader.result; // 瀛樺偍 Base64 瀛楃涓� + + // 鏇存柊鐘舵�佸苟瀛樺偍鍒� localStorage + state.userInfo = userInfo; + setStore({ name: 'userInfo', content: state.userInfo }); + }; + reader.readAsDataURL(res.data); // 璋冪敤reader鏂规硶 + }); }, SET_ROLES: (state, roles) => { state.roles = roles; diff --git a/Source/plt-web/plt-web-ui/src/styles/ui.scss b/Source/plt-web/plt-web-ui/src/styles/ui.scss index de021e8..7336bb7 100644 --- a/Source/plt-web/plt-web-ui/src/styles/ui.scss +++ b/Source/plt-web/plt-web-ui/src/styles/ui.scss @@ -371,17 +371,18 @@ } .avue-dialog .el-dialog{ top:50%; - max-height: calc(100% - 80px); + max-height: calc(100% - 50px); + max-width: calc(100% - 50px); -webkit-transform: translate(-50%, 0); transform: translate(-50%, -50%); margin-top: 0 !important; } .avue-dialog .el-dialog__body{ padding: 15px 15px 0px 15px; // 涓婂彸涓嬪乏 鍙栨秷琛ㄦ牸涓嬭竟璺濓紙浼氬嚭鐜版粴鍔ㄦ潯锛� - margin-bottom: 10px !important; + margin-bottom: 5px !important; } .avue-dialog .el-dialog__body .avue-form{ - margin: 0px auto 40px; // 鍗曠嫭缁欏璇濇閲岀殑avue琛ㄥ崟鍔犱笂涓嬭竟璺� + margin: 0px auto 45px; // 鍗曠嫭缁欏璇濇閲岀殑avue琛ㄥ崟鍔犱笂涓嬭竟璺� } .dialog-footer{ background-color: #ffffff; @@ -408,15 +409,18 @@ .avue-crud table td{ line-height: 22px; } +.avue-crud__header{ + min-height: 35px; +} /**宸︿晶鎿嶄綔鏍�**/ .avue-crud__left{ display: flex; - align-items: center; + align-items: start; } /**鍙充晶渚ф搷浣滄爮**/ .avue-crud__right{ display: flex; - align-items: center; + align-items: start; } /**琛ㄥ唴鎿嶄綔鏍�**/ .avue-crud .avue-crud__menu{ diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue index 3f57118..ec607dd 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue @@ -675,7 +675,7 @@ editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false), importBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false), - downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOADFILE, false), + downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOAD, false), viewTheScopeBtn: this.vaildData(this.permission[this.$route.query.id].VIRTUALVIEW, false), }; }, diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue index 3e14dae..7be280b 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/Aciton/index.vue @@ -253,13 +253,13 @@ editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false), importBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false), - actionTopAddBtn: this.vaildData(this.permission[this.$route.query.id].USE, false), - actionTopDelBtn: this.vaildData(this.permission[this.$route.query.id].RESET, false), - actionTopEditBtn: this.vaildData(this.permission[this.$route.query.id].RECYCLE, false), - actionTopExportBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOADFILE, false), - actionBottomAddBtn: this.vaildData(this.permission[this.$route.query.id].FREEZE, false), - actionBottomDelBtn: this.vaildData(this.permission[this.$route.query.id].BATCHAPPLY, false), - actionBottomEditBtn: this.vaildData(this.permission[this.$route.query.id].CODEAPPLY, false), + actionTopAddBtn: this.vaildData(this.permission[this.$route.query.id].ADD2, false), + actionTopDelBtn: this.vaildData(this.permission[this.$route.query.id].DELETE2, false), + actionTopEditBtn: this.vaildData(this.permission[this.$route.query.id].EDIT2, false), + actionTopExportBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOAD, false), + actionBottomAddBtn: this.vaildData(this.permission[this.$route.query.id].ADD3, false), + actionBottomDelBtn: this.vaildData(this.permission[this.$route.query.id].DELETE3, false), + actionBottomEditBtn: this.vaildData(this.permission[this.$route.query.id].EDIT3, false), }; }, treeCrudOption(){ diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue index 00fc35a..5e14d9b 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue @@ -165,7 +165,8 @@ <span slot-scope="{ node, data }" class="el-tree-node__label"> <span style="display: flex"> <i v-if="data.oId=='parentNode'" class="iconShow el-icon-s-home"></i> - <icon-show v-else :name="data.iconPath"></icon-show> + <icon-show v-if="data.oId!='parentNode' && data.iconPath && data.iconPath!='undefined'" + :name="data.iconPath"></icon-show> {{ (node || {}).label }} </span> </span> @@ -226,7 +227,9 @@ </el-radio> </el-form-item> </el-col> - <el-col :span="24" v-show="basicForm.show=='0' && (basicForm.displayMode=='image'||basicForm.displayMode=='textandimage')"> + <el-col + v-show="basicForm.show=='0' && (basicForm.displayMode=='image'||basicForm.displayMode=='textandimage')" + :span="24"> <el-form-item :class="basicForm.displayMode==='image'?'is-required':''" label="鍥炬爣锛�" prop="iconPath"> <input-icon v-model="basicForm.iconPath" :disabled="disabledBtn"></input-icon> </el-form-item> @@ -476,9 +479,10 @@ ] }, { - label: '缂栧彿', + label: '搴忓彿', prop: 'seq', width: 100, + type: 'number', labelWidth: 110, hide: false, rules: [ @@ -889,9 +893,9 @@ ...mapGetters(["permission"]), permissionChildrenList() { return { - UiPageLayoutAddBtn: this.vaildData(this.permission[this.$route.query.id].CLSRIGHT, false), - UiPageLayoutEditBtn: this.vaildData(this.permission[this.$route.query.id].DATARIGHT, false), - UiPageLayoutDelBtn: this.vaildData(this.permission[this.$route.query.id].ATTRRIGHT, false), + UiPageLayoutAddBtn: this.vaildData(this.permission[this.$route.query.id].ADD3, false), + UiPageLayoutEditBtn: this.vaildData(this.permission[this.$route.query.id].EDIT3, false), + UiPageLayoutDelBtn: this.vaildData(this.permission[this.$route.query.id].DELETE3, false), UiPageLayoutCloneBtn: this.vaildData(this.permission[this.$route.query.id].CLONE, false), UiPageLayoutDesignBtn: this.vaildData(this.permission[this.$route.query.id].UPLOAD, false), } @@ -1324,7 +1328,6 @@ } else { return false; } - done(); }); }, diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue index d8a1f23..0a87d9b 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/plShow.vue @@ -185,7 +185,8 @@ prop: 'plExtAttr' }, { label: '鎻忚堪', - prop: 'plDesc' + prop: 'plDesc', + overHidden: true }] }, data: [], @@ -226,9 +227,9 @@ ...mapGetters(["permission"]), permissionChildrenList() { return { - UiTabAddBtn: this.vaildData(this.permission[this.$route.query.id].BATCHAPPLY, false), - UiTabEditBtn: this.vaildData(this.permission[this.$route.query.id].BATCHUPDATE, false), - UiTabDelBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOADFILE, false), + UiTabAddBtn: this.vaildData(this.permission[this.$route.query.id].ADD2, false), + UiTabEditBtn: this.vaildData(this.permission[this.$route.query.id].EDIT2, false), + UiTabDelBtn: this.vaildData(this.permission[this.$route.query.id].DELETE2, false), UiTabCloneBtn: this.vaildData(this.permission[this.$route.query.id].CLONE, false), } } diff --git a/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue index c0ed872..35701d4 100644 --- a/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue @@ -1,7 +1,7 @@ <template> <!--娴佺▼妯℃澘瀹氫箟--> <basic-container style="height: calc(100vh - 123px)"> - <div style="margin-bottom: 5px;"> + <div style="margin-bottom: 10px;"> 娴佺▼鍒嗙被锛� <el-select v-model="tempType" :clearable="true" placeholder="璇烽�夋嫨" size="small" style="width: 300px;margin-right: 20px;" @@ -77,31 +77,58 @@ </span> </el-button> </template> - </avue-crud> <!-- 鍒涘缓缂栬緫鑷畾涔夊璇濇 --> <el-dialog v-dialogDrag v-loading="dialogLoading" - :title="dialogType === 'add' ? ' 鍒涘缓' : '缂栬緫'" + title="娴佺▼鑷畾涔�" :visible.sync="dialogVisible" append-to-body="true" class="avue-dialog" - width="1000px" - @close="dialogClose" + :close-on-press-escape="false" + :fullscreen="true" + :before-close="handleNutflowClose" + custom-class="wf-dialog" > + <wf-design-base v-if="nutflowOption.step === 1" + class="animated fadeIn" + style="height: calc(100vh - 178px);" + ref="wf-design" + :options="nutflowOption.step1"></wf-design-base> + <wf-design-base v-if="nutflowOption.step === 2" + class="animated fadeIn" + style="height: calc(100vh - 178px);" + ref="wf-design-view" + :options="nutflowOption.step2"></wf-design-base> <span slot="footer" class="dialog-footer"> - <el-button size="small" type="primary" @click="saveHandler">纭� 瀹�</el-button> - <el-button size="small" @click="dialogClose">鍙� 娑�</el-button> + <el-button v-if="nutflowOption.step === 1" + size="small" + type="success" + @click="handleStep(1)">涓� 涓� 姝�</el-button> + <el-button v-if="nutflowOption.step === 2" + size="small" + type="success" + @click="handleStep(-1)">涓� 涓� 姝�</el-button> + <el-button v-if="nutflowOption.step === 2" + size="small" + type="primary" + @click="handleSubmitModel">纭� 瀹�</el-button> + <el-button size="small" + @click="handleNutflowClose(() => {}, true)">鍙� 娑�</el-button> </span> </el-dialog> <!-- 瀵煎叆 --> <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="瀵煎叆娴佺▼妯℃澘" @updata="getTableList"></upload-file> + </el-aside> <el-main width="60%"> - <div style="height: 100%;background-color: #eeeeea">璁捐鍣�</div> + <div style="height: 100%;position: relative;"> + <flow-design style="padding-top: 5px" :is-display.sync="flowBox" :process-definition-id="processDefinitionId" height="calc(100vh - 195px)"></flow-design> + <div style="position: absolute;top:0;left: 0;height: 100%;width: 100%"></div> + </div> </el-main> </el-container> </basic-container> @@ -131,7 +158,21 @@ tipList:[], dialogLoading:false, dialogVisible:false, - dialogType:'add' + dialogType:'add', + processDefinitionId: '', + flowBox: false, + nutflowOption: { + process: {}, + step: 1, + step1: { + toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'], + }, + step2: { + mode: 'view', + simulation: true, + minimap: true, + } + } } }, computed: { @@ -219,29 +260,75 @@ this.dialogVisible = true; this.dialogType = 'edit' }, - // 缂栬緫淇濆瓨 - saveHandler() { + //淇濆瓨娴佺▼閰嶇疆 + handleSubmitModel() { + const registry = this.$refs['wf-design-view'].getElementRegistry().getAll() + const {businessObject} = registry[0] + const {id, name, documentation} = businessObject + const description = (documentation && documentation.length > 0) ? documentation[0].text : null + const params = { + ...this.nutflowOption.process, + modelKey: id, + name, + description, + modelEditorXml: this.nutflowOption.process.xml + } if(this.dialogType=='add'){ - saveProcessTemp(this.form).then(res => { + saveProcessTemp(params).then(res => { if (res.data.code === 200) { this.$message.success(res.data.obj); this.getTableList(); + this.handleNutflowClose() } }); }else{ - updateProcessTemp(this.form).then(res => { + updateProcessTemp(params).then(res => { if (res.data.code === 200) { this.$message.success(res.data.obj); this.getTableList(); + this.handleNutflowClose() } }) } - }, - dialogClose(){ - this.form={}; - this.dialogLoading=false; - this.dialogVisible=false; + handleStep(step) { + if (step === 1) { // 涓嬩竴姝� + this.$refs['wf-design'].getData('xml').then(data => { + this.$set(this.nutflowOption.step1, 'xml', data) + this.$set(this.nutflowOption.step2, 'xml', data) + this.$set(this.nutflowOption.process, 'xml', data) + this.$set(this.nutflowOption, 'step', 2) + }) + } else { + this.$set(this.nutflowOption, 'step', 1) + } + }, + handleNutflowClose(done, flag) { + const initOption = { + process: {}, + step: 1, + step1: { + toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'], + }, + step2: { + mode: 'view', + simulation: true, + minimap: true, + } + } + if (done || flag) { + this.$confirm('纭畾瑕佸叧闂悧锛熷叧闂湭淇濆瓨鐨勪慨鏀归兘浼氫涪澶便��', '璀﹀憡', { + type: 'warning' + }).then(() => { + this.$set(this, 'nutflowOption', initOption) + if (typeof done == 'function') done() + this.dialogVisible = false + }).catch(() => { + }) + } else { + this.$set(this, 'nutflowOption', initOption) + this.dialogVisible = false + } }, // 鍒犻櫎 handleDel(row,index) { @@ -286,6 +373,9 @@ this.selectionList = [row]; } ); + //鏄剧ず娴佺▼鍥� + this.processDefinitionId = row.id; + this.flowBox = true; }, // 瀵煎嚭 @@ -331,6 +421,10 @@ } </script> -<style scoped> - +<style lang="scss" scoped> +::v-deep { + .avue-dialog .el-dialog__body{ + margin-bottom: 0 !important; + } +} </style> diff --git a/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue b/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue index 8c4b080..f13558c 100644 --- a/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue @@ -88,7 +88,7 @@ addBtn:false, editBtn:false, delBtn:false, - calcHeight: -60, + calcHeight: -55, align:'left', headerAlign:'center', menuWidth:160, diff --git a/Source/plt-web/plt-web-ui/src/views/system/department/index.vue b/Source/plt-web/plt-web-ui/src/views/system/department/index.vue index 8f6cebd..19a7468 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/department/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/department/index.vue @@ -186,7 +186,7 @@ editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), assignMembersBtn: this.vaildData(this.permission[this.$route.query.id].FREEZE, false), departmentAddChildrenBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false), - downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOADFILE, false), + downloadImportTemplateBtn: this.vaildData(this.permission[this.$route.query.id].DOWNLOAD, false), importDepartmentBtn: this.vaildData(this.permission[this.$route.query.id].MGR, false), statisticsBtn: this.vaildData(this.permission[this.$route.query.id].DISCARD, false), }; diff --git a/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue b/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue index f8250e3..75d83c8 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue @@ -1,25 +1,55 @@ <template> <div> <basic-container> - <avue-form - ref="form" - v-model="form" - :option="option" - @submit="handleSubmit" - @tab-click="handleTabClick"> - <template slot="avatar" slot-scope="{disabled,size}"> - <div> - <userAvatar :avatar="form.avatar"/> - </div> - </template> - </avue-form> + <el-tabs v-model="index" @tab-click="handleTabClick"> + <el-tab-pane label="涓汉淇℃伅" name="0"> + <el-form ref="userForm" :model="userForm" :rules="userRules" label-width="90px" size="small"> + <el-form-item label="澶村儚锛�"> + <userAvatar :avatar="userForm.avatar"/> + </el-form-item> + <el-form-item label="鐢ㄦ埛鍚嶏細"> + <el-input v-model="userForm.userId" :disabled="true"></el-input> + </el-form-item> + <el-form-item label="濮撳悕锛�" prop="userName"> + <el-input v-model="userForm.userName"></el-input> + </el-form-item> + <el-form-item label="褰撳墠瑙掕壊锛�"> + <el-input v-model="userForm.personName" :disabled="true"></el-input> + </el-form-item> + <el-form-item label="閭锛�"> + <el-input v-model="userForm.email"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="userSubmit">鎻愪氦</el-button> + <el-button @click="handleWitch">娓呯┖</el-button> + </el-form-item> + </el-form> + </el-tab-pane> + <el-tab-pane label="淇敼瀵嗙爜" name="1"> + <el-form ref="passWordForm" :model="passWordForm" :rules="rules" label-width="145px" size="small"> + <el-form-item label="鐧婚檰瀵嗙爜锛�" prop="oldPassword"> + <el-input v-model="passWordForm.oldPassword"></el-input> + </el-form-item> + <el-form-item label="鏂扮櫥闄嗗瘑鐮侊細" prop="password"> + <el-input v-model="passWordForm.password"></el-input> + </el-form-item> + <el-form-item label="鏂板瘑鐮佺櫥闄嗙‘璁わ細" prop="confirmPassword"> + <el-input v-model="passWordForm.confirmPassword"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="passWordSubmit">鎻愪氦</el-button> + <el-button @click="handleWitch">娓呯┖</el-button> + </el-form-item> + </el-form> + </el-tab-pane> + </el-tabs> </basic-container> </div> </template> <script> import option from "@/option/user/info"; -import {getUserInfo, updateInfo, updatePassword} from "@/api/system/user"; +import {updateUser} from "@/api/system/user/api"; import func from "../../../util/func"; import {changePassword} from "../../../api/user" import userAvatar from "./userAvatar"; @@ -30,9 +60,26 @@ components: {userAvatar,}, data() { return { - index: 0, + index: '0', option: option, - form: {} + userForm: {}, + passWordForm: {}, + userRules: { + userName: [ + {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'}, + ], + }, + rules: { + oldPassword: [ + {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'}, + ], + password: [ + {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'}, + ], + confirmPassword: [ + {required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur'}, + ], + } }; }, computed: { @@ -42,58 +89,74 @@ this.handleWitch(); }, methods: { - handleSubmit(form, done) { - if (this.index === 0) { - updateInfo(form).then(res => { - if (res.data.success) { - this.$message({ - type: "success", - message: "淇敼淇℃伅鎴愬姛!" - }); - } else { - this.$message({ - type: "error", - message: res.data.msg - }); - } - done(); - }, error => { - window.console.log(error); - done(); - }) - } else { - let userInfo = JSON.parse(localStorage.getItem('saber-userInfo')); - let params = { - userName: userInfo.content.userId, - oldPassword: func.encryptData(form.oldPassword, 'daliantan0v0vcip'), - password: func.encryptData(form.password, 'daliantan0v0vcip'), - confirmPassword: func.encryptData(form.confirmPassword, 'daliantan0v0vcip'), - - } - changePassword(params).then(res => { - if (res.data.code === 200) { - this.$message.success(res.data.msg); - this.passwordVisible = false; - this.$store.dispatch("LogOut").then(() => { - resetRouter(); - this.$router.push({path: "/login"}); - }); - } - }).catch(err => { - console.log(err); - }) - } - }, handleWitch() { - if (this.index === 0) { - this.form = {...this.userInfo}; - console.log(this.form); + if (this.index === '0') { + const {avatar, userId, userName, email, personName} = this.userInfo; + this.userForm = {avatar, userId, userName, email, personName}; + } else { + this.passWordForm = {}; + this.$refs.passWordForm.clearValidate(); } }, handleTabClick(tabs) { - this.index = func.toInt(tabs.index); + this.index = tabs.index this.handleWitch(); - this.$refs.form.resetFields(); + }, + + userSubmit() { + console.log('123') + this.$refs.userForm.validate((valid) => { + if (valid) { + const params = { + id: this.userInfo.userId, + name: this.userForm.userName, + email: this.userForm.email + } + updateUser(params).then(res => { + if (res.data.success) { + this.$message({ + type: "success", + message: "淇敼淇℃伅鎴愬姛!" + }); + } else { + this.$message({ + type: "error", + message: res.data.msg + }); + } + done(); + }) + } else { + return false; + } + }); + }, + passWordSubmit() { + this.$refs.passWordForm.validate((valid) => { + if (valid) { + let userInfo = JSON.parse(localStorage.getItem('saber-userInfo')); + let params = { + userName: userInfo.content.userId, + oldPassword: func.encryptData(this.passWordForm.oldPassword, 'daliantan0v0vcip'), + password: func.encryptData(this.passWordForm.password, 'daliantan0v0vcip'), + confirmPassword: func.encryptData(this.passWordForm.confirmPassword, 'daliantan0v0vcip'), + + } + changePassword(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.msg); + this.$store.dispatch("LogOut").then(() => { + resetRouter(); + this.$router.push({path: "/login"}); + }); + } + }).catch(err => { + console.log(err); + }) + } else { + return false; + } + }); } } }; diff --git a/Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue b/Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue index 37864cc..ce25b08 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue @@ -61,7 +61,9 @@ <script> import store from "@/store"; import { VueCropper } from "vue-cropper"; -import { uploadAvatar } from "@/api/system/user"; +import {getUserPhoto, updateUserPhoto} from "@/api/user"; +import {mapGetters} from "vuex"; +import {setStore} from '@/util/store' export default { components: { VueCropper }, @@ -74,18 +76,23 @@ visible: false, // 寮瑰嚭灞傛爣棰� title: "淇敼澶村儚", - options: { - img: this.avatar, //瑁佸壀鍥剧墖鐨勫湴鍧� + previews: {}, + resizeHandler: null + }; + }, + computed: { + ...mapGetters(["userInfo"]), + options() { + return { + img: this.userInfo.avatar, //瑁佸壀鍥剧墖鐨勫湴鍧� autoCrop: true, // 鏄惁榛樿鐢熸垚鎴浘妗� autoCropWidth: 200, // 榛樿鐢熸垚鎴浘妗嗗搴� autoCropHeight: 200, // 榛樿鐢熸垚鎴浘妗嗛珮搴� fixedBox: true, // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙� outputType:"png", // 榛樿鐢熸垚鎴浘涓篜NG鏍煎紡 filename: 'avatar' // 鏂囦欢鍚嶇О - }, - previews: {}, - resizeHandler: null - }; + } + } }, methods: { // 缂栬緫澶村儚 @@ -125,7 +132,7 @@ // 涓婁紶棰勫鐞� beforeUpload(file) { if (file.type.indexOf("image/") == -1) { - this.$modal.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); + this.$message.error("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); } else { const reader = new FileReader(); reader.readAsDataURL(file); @@ -133,19 +140,21 @@ this.options.img = reader.result; this.options.filename = file.name; }; + this.$refs.cropper.refresh(); } }, // 涓婁紶鍥剧墖 uploadImg() { this.$refs.cropper.getCropBlob(data => { - console.log(data); + let formData = new FormData(); - formData.append("avatarfile", data, this.options.filename); - uploadAvatar(formData).then(response => { + formData.append("file", data, this.options.filename); + formData.append("username",this.userInfo.userId); + + updateUserPhoto(formData).then(response => { this.open = false; - this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl; - store.commit('SET_AVATAR', this.options.img); - this.$modal.msgSuccess("淇敼鎴愬姛"); + this.$message.success('淇敼鎴愬姛锛�'); + this.getUserInfo(); this.visible = false; }); }); @@ -156,9 +165,22 @@ }, // 鍏抽棴绐楀彛 closeDialog() { - this.options.img = store.getters.avatar + this.options.img = this.userInfo.avatar; // 鍏抽棴绐楀彛鏇存柊涓虹紦瀛樹腑鐨勫ご鍍忓湴鍧� 濡備慨鏀规垚鍔熸洿鏂颁负鏈�鏂扮殑 濡備慨鏀瑰悗鏈繚瀛樻洿鏂颁负缂撳瓨涓殑 this.visible = false; window.removeEventListener("resize", this.resizeHandler) + }, + // 鏇存柊缂撳瓨鍐呭 + getUserInfo(){ + getUserPhoto().then(res => { + // 灏� Blob 杞崲涓� Base64 + const reader = new FileReader(); + reader.onloadend = (result) => { + this.userInfo.avatar = reader.result; // 瀛樺偍 Base64 瀛楃涓� + + setStore({ name: 'userInfo', content: this.userInfo }); + }; + reader.readAsDataURL(res.data); // 璋冪敤reader鏂规硶 + }); } } }; -- Gitblit v1.9.3