From 3457bf08eae9d9453c88dd62991c3e286eb1df4b Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 26 十二月 2024 10:53:52 +0800 Subject: [PATCH] 个人信息页面&&管理功能模块图标更改 --- Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue | 103 +++++++ /dev/null | 94 ------- Source/plt-web/plt-web-ui/src/views/system/user/index.vue | 3 Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue | 228 +++++++++++++++++ Source/plt-web/plt-web-ui/package.json | 1 Source/plt-web/plt-web-ui/src/styles/ui.scss | 3 Source/plt-web/plt-web-ui/src/router/views/index.js | 2 Source/plt-web/plt-web-ui/src/views/system/user/option.js | 11 Source/plt-web/plt-web-ui/src/option/user/info.js | 137 ++++++---- Source/plt-web/plt-web-ui/src/page/index/top/index.vue | 129 +-------- Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue | 10 11 files changed, 456 insertions(+), 265 deletions(-) diff --git a/Source/plt-web/plt-web-ui/package.json b/Source/plt-web/plt-web-ui/package.json index 6dc84a0..df7f0b8 100644 --- a/Source/plt-web/plt-web-ui/package.json +++ b/Source/plt-web/plt-web-ui/package.json @@ -30,6 +30,7 @@ "v-charts": "^1.19.0", "vue": "^2.6.10", "vue-axios": "^2.1.2", + "vue-cropper": "^0.6.5", "vue-echarts": "5.0.0-beta.0", "vue-flowchart-editor": "1.0.2", "vue-i18n": "^8.7.0", diff --git a/Source/plt-web/plt-web-ui/src/option/user/info.js b/Source/plt-web/plt-web-ui/src/option/user/info.js index d2fcbe0..84c5dff 100644 --- a/Source/plt-web/plt-web-ui/src/option/user/info.js +++ b/Source/plt-web/plt-web-ui/src/option/user/info.js @@ -5,67 +5,94 @@ { label: '涓汉淇℃伅', prop: 'info', - column: [{ - label: '澶村儚', - type: 'upload', - listType: 'picture-img', - propsHttp: { - res: 'data', - url: 'link', + column: [ + { + label: '澶村儚', + prop: 'avatar', + formslot: true, + span: 24, }, - canvasOption: { - text: ' ', - ratio: 0.1 + { + label: '鐢ㄦ埛鍚�', + span: 12, + row: true, + prop: 'userId', + readonly:true }, - action: '/api/blade-resource/oss/endpoint/put-file', - tip: '鍙兘涓婁紶jpg/png鐢ㄦ埛澶村儚锛屼笖涓嶈秴杩�500kb', - span: 12, - row: true, - prop: 'avatar' - }, { - label: '濮撳悕', - span: 12, - row: true, - prop: 'realName' - }, { - label: '鐢ㄦ埛鍚�', - span: 12, - row: true, - prop: 'name' - }, { - label: '鎵嬫満鍙�', - span: 12, - row: true, - prop: 'phone' - }, { - label: '閭', - prop: 'email', - span: 12, - row: true, - }] + { + label: '濮撳悕', + span: 12, + row: true, + prop: 'userName' + }, + { + label: '褰撳墠瑙掕壊', + span: 12, + row: true, + prop: 'personName', + readonly:true, + }, + { + label: '褰撳墠瀵嗙骇', + span: 12, + row: true, + prop: 'userSecretText', + readonly:true, + }, + { + label: '閭', + prop: 'email', + span: 12, + row: true, + }] }, { label: '淇敼瀵嗙爜', prop: 'password', - column: [{ - label: '鍘熷瘑鐮�', - span: 12, - row: true, - type: 'password', - prop: 'oldPassword' - }, { - label: '鏂板瘑鐮�', - span: 12, - row: true, - type: 'password', - prop: 'newPassword' - }, { - label: '纭瀵嗙爜', - span: 12, - row: true, - type: 'password', - prop: 'newPassword1' - }] + column: [ + { + label: '鐧婚檰瀵嗙爜', + prop: 'oldPassword', + span: 24, + labelWidth: "7%", + type: 'password', + rules: [ + { + required: true, + message: '璇疯緭鍏ョ櫥闄嗗瘑鐮�', + trigger: 'blur' + } + ] + }, + { + label: '鏂扮櫥闄嗗瘑鐮�', + prop: 'password', + span: 24, + labelWidth: "7%", + type: 'password', + rules: [ + { + required: true, + message: '璇疯緭鍏ユ柊鐧婚檰瀵嗙爜', + trigger: 'blur' + } + ] + }, + { + label: '鏂板瘑鐮佺櫥闄嗙‘璁�', + prop: 'confirmPassword', + span: 24, + labelWidth: "7%", + type: 'password', + rules: [ + { + required: true, + message: '璇风‘璁ょ櫥闄嗗瘑鐮�', + trigger: 'blur' + } + ] + } + ] } ], } 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 4f38b79..7d9e532 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 @@ -78,27 +78,30 @@ </el-tooltip> <img :src="userInfo.avatar" class="top-bar__img"> - <el-dropdown> + <div> + <el-dropdown style="height: 40px"> <span class="el-dropdown-link"> {{ userInfo.userName }} <i class="el-icon-arrow-down el-icon--right"></i> </span> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item> - <router-link to="/">{{ $t('navbar.dashboard') }}</router-link> - </el-dropdown-item> - <el-dropdown-item @click.native="changePasswordHandler"> - <!-- <router-link to="/info/index">{{ $t('navbar.userinfo') }}</router-link>--> - 淇敼瀵嗙爜 - </el-dropdown-item> - <el-dropdown-item v-if="this.website.switchMode" @click.native="switchDept" - >{{ $t('navbar.switchDept') }} - </el-dropdown-item> - <el-dropdown-item divided - @click.native="logout">{{ $t('navbar.logOut') }} - </el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item> + <router-link to="/">{{ $t('navbar.dashboard') }}</router-link> + </el-dropdown-item> + <el-dropdown-item> + <router-link to="/info/index">{{ $t('navbar.userinfo') }}</router-link> + <!-- 淇敼瀵嗙爜--> + </el-dropdown-item> + <el-dropdown-item v-if="this.website.switchMode" @click.native="switchDept" + >{{ $t('navbar.switchDept') }} + </el-dropdown-item> + <el-dropdown-item divided + @click.native="logout">{{ $t('navbar.logOut') }} + </el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + </div> + <el-dialog :visible.sync="userBox" append-to-body title="鐢ㄦ埛淇℃伅閫夋嫨" @@ -106,23 +109,11 @@ <avue-form ref="form" v-model="userForm" :option="userOption" @submit="submitSwitch"/> </el-dialog> - <!-- 淇敼瀵嗙爜瀵硅瘽妗� --> - <el-dialog - v-dialogDrag - :visible.sync="passwordVisible" - append-to-body="true" - class="avue-dialog" - style="margin-top: -15vh" - title="淇敼瀵嗙爜" - width="50%" - @close="passwordClose"> - <avue-form ref="form" v-model="passwordForm" :option="passwordOption" @submit="submitSwitch"/> - </el-dialog> </div> </div> </template> <script> -import {resetRouter} from '@/router/router' +import {resetRouter} from '../../../router/router' import {mapGetters, mapState} from "vuex"; import {fullscreenToggel, listenfullscreen} from "@/util/util"; import topLock from "./top-lock"; @@ -133,8 +124,6 @@ import topColor from "./top-color"; import topNotice from './top-notice' import topLang from "./top-lang"; -import {changePassword} from "@/api/user" -import func from "@/util/func"; export default { components: { @@ -150,55 +139,6 @@ name: "top", data() { return { - passwordVisible: false, - passwordForm: {}, - passwordOption: { - submitText: '淇濆瓨', - column: [ - { - label: '鐧婚檰瀵嗙爜', - prop: 'oldPassword', - span: 24, - labelWidth: "15%", - type: 'password', - rules: [ - { - required: true, - message: '璇疯緭鍏ョ櫥闄嗗瘑鐮�', - trigger: 'blur' - } - ] - }, - { - label: '鏂扮櫥闄嗗瘑鐮�', - prop: 'password', - span: 24, - labelWidth: "15%", - type: 'password', - rules: [ - { - required: true, - message: '璇疯緭鍏ユ柊鐧婚檰瀵嗙爜', - trigger: 'blur' - } - ] - }, - { - label: '鏂板瘑鐮佺櫥闄嗙‘璁�', - prop: 'confirmPassword', - span: 24, - labelWidth: "15%", - type: 'password', - rules: [ - { - required: true, - message: '璇风‘璁ょ櫥闄嗗瘑鐮�', - trigger: 'blur' - } - ] - } - ] - }, userBox: false, userForm: { deptId: '', @@ -277,10 +217,6 @@ ]) }, methods: { - // 淇敼瀵嗙爜 - changePasswordHandler() { - this.passwordVisible = true; - }, handleScreen() { fullscreenToggel(); }, @@ -299,29 +235,6 @@ roleColumn.dicUrl = `/api/blade-system/role/select?userId=${userId}`; roleColumn.display = true; this.userBox = true; - }, - submitSwitch(form, done) { - 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); - }) - done(); }, // 鍏抽棴淇敼瀵嗙爜瀵硅瘽妗� diff --git a/Source/plt-web/plt-web-ui/src/router/views/index.js b/Source/plt-web/plt-web-ui/src/router/views/index.js index 385dd98..1b41673 100644 --- a/Source/plt-web/plt-web-ui/src/router/views/index.js +++ b/Source/plt-web/plt-web-ui/src/router/views/index.js @@ -80,7 +80,7 @@ i18n: 'info' }, component: () => - import( /* webpackChunkName: "views" */ '@/views/system/userinfo') + import( /* webpackChunkName: "views" */ '@/views/system/userInfo/index') }] }, { path: '/work/process/leave', 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 3e7bc10..ab4ac8f 100644 --- a/Source/plt-web/plt-web-ui/src/styles/ui.scss +++ b/Source/plt-web/plt-web-ui/src/styles/ui.scss @@ -536,6 +536,9 @@ height: 20px; line-height: 20px; } +.el-menu--popup-right-start{ + margin-left: 1px; +} .font14{font-size: 14px;width: 12px;height: 12px;display: inline-block;} .font16{font-size: 16px;width: 14px;height: 14px;display: inline-block;} diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue index 619be75..cd3253f 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/user/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/user/index.vue @@ -238,9 +238,10 @@ this.tableLoading = true; getDataUsers(this.page.currentPage, this.page.pageSize, this.searchParams).then(res => { const data = res.data.data; + data.map(item => {item.secretGrade = item.secretGrade.toString()}) this.tableData = data; this.page.total = res.data.total; - this.tableLoading = false; + this.tableLoading = false;s }) this.departmentQueryOnLoad() }, diff --git a/Source/plt-web/plt-web-ui/src/views/system/user/option.js b/Source/plt-web/plt-web-ui/src/views/system/user/option.js index 32672fc..a673315 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/user/option.js +++ b/Source/plt-web/plt-web-ui/src/views/system/user/option.js @@ -84,6 +84,7 @@ align:'center', type:'tree', dicData: [], + hide:true, props: { label: 'name', value: 'oid' @@ -94,6 +95,16 @@ width:200, }, { + label: '鎵�灞為儴闂�', + prop: 'pkDepartmentName', + align:'center', + display: false, + search:true, + sortable:true, + overHidden: true, + width:200, + }, + { label: '涓撲笟', prop: 'specialties', sortable:true, 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 new file mode 100644 index 0000000..f8250e3 --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/system/userInfo/index.vue @@ -0,0 +1,103 @@ +<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> + </basic-container> + </div> +</template> + +<script> +import option from "@/option/user/info"; +import {getUserInfo, updateInfo, updatePassword} from "@/api/system/user"; +import func from "../../../util/func"; +import {changePassword} from "../../../api/user" +import userAvatar from "./userAvatar"; +import {resetRouter} from '../../../router/router' +import {mapGetters} from "vuex"; + +export default { + components: {userAvatar,}, + data() { + return { + index: 0, + option: option, + form: {} + }; + }, + computed: { + ...mapGetters(["userInfo"]), + }, + created() { + 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); + } + }, + handleTabClick(tabs) { + this.index = func.toInt(tabs.index); + this.handleWitch(); + this.$refs.form.resetFields(); + } + } +}; +</script> + +<style> +</style> 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 new file mode 100644 index 0000000..1ee2aea --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/system/userInfo/userAvatar.vue @@ -0,0 +1,228 @@ +<template> + <div> + <div class="user-info-head" @click="editCropper()"> + <div class="circular-upload-box" v-if="!options.img"> + <i class="el-icon-plus" style="font-size: 16px"></i> + </div> + <img v-else v-bind:src="options.img" class="img-circle img-lg" /> + </div> + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog"> + <el-row> + <el-col :xs="24" :md="12" :style="{height: '350px'}"> + <vue-cropper + ref="cropper" + :img="options.img" + :info="true" + :autoCrop="options.autoCrop" + :autoCropWidth="options.autoCropWidth" + :autoCropHeight="options.autoCropHeight" + :fixedBox="options.fixedBox" + :outputType="options.outputType" + @realTime="realTime" + v-if="visible" + /> + </el-col> + <el-col :xs="24" :md="12" :style="{height: '350px'}"> + <div class="avatar-upload-preview"> + <img :src="previews.url" :style="previews.img" /> + </div> + </el-col> + </el-row> + <br /> + <el-row> + <el-col :lg="2" :sm="3" :xs="3"> + <el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUpload"> + <el-button size="small"> + 閫夋嫨 + <i class="el-icon-upload el-icon--right"></i> + </el-button> + </el-upload> + </el-col> + <el-col :lg="{span: 1, offset: 2}" :sm="2" :xs="2"> + <el-button icon="el-icon-plus" size="small" @click="changeScale(1)"></el-button> + </el-col> + <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2"> + <el-button icon="el-icon-minus" size="small" @click="changeScale(-1)"></el-button> + </el-col> + <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2"> + <el-button icon="el-icon-refresh-left" size="small" @click="rotateLeft()"></el-button> + </el-col> + <el-col :lg="{span: 1, offset: 1}" :sm="2" :xs="2"> + <el-button icon="el-icon-refresh-right" size="small" @click="rotateRight()"></el-button> + </el-col> + <el-col :lg="{span: 2, offset: 6}" :sm="2" :xs="2"> + <el-button type="primary" size="small" @click="uploadImg()">鎻� 浜�</el-button> + </el-col> + </el-row> + </el-dialog> + </div> +</template> + +<script> +import store from "@/store"; +import { VueCropper } from "vue-cropper"; +import { uploadAvatar } from "@/api/system/user"; + +export default { + components: { VueCropper }, + props:['avatar'], + data() { + return { + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏄惁鏄剧ずcropper + visible: false, + // 寮瑰嚭灞傛爣棰� + title: "淇敼澶村儚", + options: { + img: this.avatar, //瑁佸壀鍥剧墖鐨勫湴鍧� + autoCrop: true, // 鏄惁榛樿鐢熸垚鎴浘妗� + autoCropWidth: 200, // 榛樿鐢熸垚鎴浘妗嗗搴� + autoCropHeight: 200, // 榛樿鐢熸垚鎴浘妗嗛珮搴� + fixedBox: true, // 鍥哄畾鎴浘妗嗗ぇ灏� 涓嶅厑璁告敼鍙� + outputType:"png", // 榛樿鐢熸垚鎴浘涓篜NG鏍煎紡 + filename: 'avatar' // 鏂囦欢鍚嶇О + }, + previews: {}, + resizeHandler: null + }; + }, + methods: { + // 缂栬緫澶村儚 + editCropper() { + this.open = true; + }, + // 鎵撳紑寮瑰嚭灞傜粨鏉熸椂鐨勫洖璋� + modalOpened() { + this.visible = true; + if (!this.resizeHandler) { + this.resizeHandler = debounce(() => { + this.refresh() + }, 100) + } + window.addEventListener("resize", this.resizeHandler) + }, + // 鍒锋柊缁勪欢 + refresh() { + this.$refs.cropper.refresh(); + }, + // 瑕嗙洊榛樿鐨勪笂浼犺涓� + requestUpload() { + }, + // 鍚戝乏鏃嬭浆 + rotateLeft() { + this.$refs.cropper.rotateLeft(); + }, + // 鍚戝彸鏃嬭浆 + rotateRight() { + this.$refs.cropper.rotateRight(); + }, + // 鍥剧墖缂╂斁 + changeScale(num) { + num = num || 1; + this.$refs.cropper.changeScale(num); + }, + // 涓婁紶棰勫鐞� + beforeUpload(file) { + if (file.type.indexOf("image/") == -1) { + this.$modal.msgError("鏂囦欢鏍煎紡閿欒锛岃涓婁紶鍥剧墖绫诲瀷,濡傦細JPG锛孭NG鍚庣紑鐨勬枃浠躲��"); + } else { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = () => { + this.options.img = reader.result; + this.options.filename = file.name; + }; + } + }, + // 涓婁紶鍥剧墖 + uploadImg() { + this.$refs.cropper.getCropBlob(data => { + let formData = new FormData(); + formData.append("avatarfile", data, this.options.filename); + uploadAvatar(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.visible = false; + }); + }); + }, + // 瀹炴椂棰勮 + realTime(data) { + this.previews = data; + }, + // 鍏抽棴绐楀彛 + closeDialog() { + this.options.img = store.getters.avatar + this.visible = false; + window.removeEventListener("resize", this.resizeHandler) + } + } +}; +</script> +<style scoped lang="scss"> +.user-info-head { + position: relative; + display: inline-block; + height: 120px; +} + +.user-info-head:hover:after { + content: '+'; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); /* 浣垮姞鍙峰湪涓績鐐� */ + color: #eee; + background: rgba(0, 0, 0, 0.5); + font-size: 24px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + cursor: pointer; + width: 120px; /* 璁剧疆瀹藉害 */ + height: 120px; /* 璁剧疆楂樺害 */ + border-radius: 50%; /* 淇濇寔鍦嗗舰 */ + display: flex; /* 浣跨敤flexbox鏉ュ眳涓� */ + align-items: center; /* 鍨傜洿灞呬腑 */ + justify-content: center; /* 姘村钩灞呬腑 */ +} +.avatar-upload-preview { + position: relative; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 200px; + height: 200px; + border-radius: 50%; + box-shadow: 0 0 4px #ccc; + overflow: hidden; +} +.img-circle { + border-radius: 50%; +} +.img-lg { + width: 120px; + height: 120px; +} + +.circular-upload-box { + width: 120px; + height: 120px; + border-radius: 50%; + background-color: #f3f4f6; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + cursor: pointer; + transition: background-color 0.3s ease; +} + +.circular-upload-box:hover { + background-color: #e5e7eb; +} + +</style> diff --git a/Source/plt-web/plt-web-ui/src/views/system/userinfo.vue b/Source/plt-web/plt-web-ui/src/views/system/userinfo.vue deleted file mode 100644 index 6c985b5..0000000 --- a/Source/plt-web/plt-web-ui/src/views/system/userinfo.vue +++ /dev/null @@ -1,94 +0,0 @@ -<template> - <div> - <basic-container> - <avue-form :option="option" - v-model="form" - @tab-click="handleTabClick" - @submit="handleSubmit"></avue-form> - </basic-container> - </div> -</template> - -<script> - import option from "@/option/user/info"; - import {getUserInfo, updateInfo, updatePassword} from "@/api/system/user"; - import md5 from 'js-md5'; - import func from "@/util/func"; - - - export default { - data() { - return { - index: 0, - option: option, - form: {} - }; - }, - created() { - 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 { - updatePassword(md5(form.oldPassword), md5(form.newPassword), md5(form.newPassword1)).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(); - }) - } - }, - handleWitch() { - if (this.index === 0) { - getUserInfo().then(res => { - const user = res.data.data; - this.form = { - id: user.id, - avatar: user.avatar, - name: user.name, - realName: user.realName, - phone: user.phone, - email: user.email, - } - }); - } - }, - handleTabClick(tabs) { - this.index = func.toInt(tabs.index); - this.handleWitch(); - } - } - }; -</script> - -<style> -</style> diff --git a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue index b8a67d3..ce496d7 100644 --- a/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/systemModel/mangeModel/index.vue @@ -7,7 +7,8 @@ @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> <span> - <i :class="data.icon"></i> +<!-- <i :class="data.icon"></i>--> + <icon-show :name="data.icon"></icon-show> {{ (node || {}).label }} </span> </span> @@ -94,9 +95,8 @@ placeholder="鏁板瓧锛屾弿杩拌妯″潡鍦ㄥ叾鐖舵ā鍧椾笅鐨勬樉绀洪『搴�"></el-input> </el-form-item> <el-form-item label="鍥炬爣锛�"> - <avue-input-icon v-model="form.source" :disabled="!editStatus && !addStatus" :icon-list="iconList" - placeholder="璇烽�夋嫨鍥炬爣"> - </avue-input-icon> + <input-icon v-model="form.source" :disabled="!editStatus && !addStatus" placeholder="璇烽�夋嫨鍥炬爣"> + </input-icon> </el-form-item> <el-form-item label="鎻忚堪锛�"> <el-input v-model="form.remark" :disabled="!editStatus && !addStatus" :rows="3" placeholder="璇疯緭鍏ユ弿杩�" @@ -192,13 +192,11 @@ } from "@/api/systemModel/mangeModel/api" import func from "@/util/func"; import basicOption from "@/util/basic-option"; -import iconList from "@/config/iconList"; export default { name: "index", data() { return { - iconList: iconList, tipList: [], upFileType: ['xls', 'xlsx'], fileUrl: 'api/hmSysModConfigController/importModule', -- Gitblit v1.9.3