From f210f844289756fb60774b4b4c2c6e6b48af6ae1 Mon Sep 17 00:00:00 2001 From: jmal Date: Sun, 10 Jan 2021 16:53:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/role.js | 37 ++ src/api/user.js | 8 +- src/components/Icon/Icon.vue | 2 +- src/components/ShowFile/ShowFile.vue | 4 + .../SimpleUploader/globalUploader.vue | 2 +- src/components/table/TableList.vue | 178 +++++++++ src/layout/components/Navbar.vue | 6 +- src/store/getters.js | 1 + src/store/modules/user.js | 7 +- src/styles/setting.scss | 50 ++- .../{user/tabs => sys}/cusomerInfo.vue | 117 +++--- src/views/setting/sys/cusomerManager.vue | 366 ++++++++++++++++++ src/views/setting/user/index.vue | 4 +- .../setting/user/tabs/cusomerManager.vue | 263 ------------- 14 files changed, 712 insertions(+), 333 deletions(-) create mode 100644 src/api/role.js create mode 100644 src/components/table/TableList.vue rename src/views/setting/{user/tabs => sys}/cusomerInfo.vue (75%) create mode 100644 src/views/setting/sys/cusomerManager.vue delete mode 100644 src/views/setting/user/tabs/cusomerManager.vue diff --git a/src/api/role.js b/src/api/role.js new file mode 100644 index 0000000..9fbcb9b --- /dev/null +++ b/src/api/role.js @@ -0,0 +1,37 @@ +import request from '@/utils/request' +const qs = require('qs') + +export default { + roleList(params) { + return request({ + url: '/role/list', + method: 'get', + params + }) + }, + add(data) { + return request({ + url: '/role/add', + method: 'post', + data + }) + }, + update(data) { + return request({ + url: 'role/update', + method: 'put', + data + }) + }, + delete(params) { + return request({ + url: '/role/delete', + method: 'delete', + params, + paramsSerializer: function(params) { + return qs.stringify(params, { arrayFormat: 'repeat' }) + } + }) + } +} + diff --git a/src/api/user.js b/src/api/user.js index 82c3f59..ec59eca 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -1,4 +1,5 @@ import request from '@/utils/request' +const qs = require('qs') export function login(data) { return request({ @@ -71,11 +72,14 @@ export function resetPass(id) { }) } -export function delUser(id) { +export function delUser(params) { return request({ url: 'user/delete', method: 'delete', - params: {id} + params, + paramsSerializer: function(params) { + return qs.stringify(params, { arrayFormat: 'repeat' }) + } }) } diff --git a/src/components/Icon/Icon.vue b/src/components/Icon/Icon.vue index a32ca24..f7bb0e2 100644 --- a/src/components/Icon/Icon.vue +++ b/src/components/Icon/Icon.vue @@ -5,7 +5,7 @@ import { Icon } from 'ant-design-vue' const IconFont = Icon.createFromIconfontCN({ - scriptUrl: '//at.alicdn.com/t/font_2024484_m4qfejm9sve.js' + scriptUrl: '//at.alicdn.com/t/font_2024484_tbuvjy9a4bi.js' }) export default { diff --git a/src/components/ShowFile/ShowFile.vue b/src/components/ShowFile/ShowFile.vue index 718c033..f5b3fc8 100644 --- a/src/components/ShowFile/ShowFile.vue +++ b/src/components/ShowFile/ShowFile.vue @@ -909,6 +909,10 @@ export default { } }) } + let that = this + window.onresize = function (){ + that.clientHeight = document.documentElement.clientHeight - that.lessClientHeight + } // 画矩形选区 this.darwRectangle() diff --git a/src/components/SimpleUploader/globalUploader.vue b/src/components/SimpleUploader/globalUploader.vue index a3375ae..29e1784 100755 --- a/src/components/SimpleUploader/globalUploader.vue +++ b/src/components/SimpleUploader/globalUploader.vue @@ -574,12 +574,12 @@ this.$nextTick(() => { $(`

`).appendTo(`.file_${id} .uploader-file-status`).css({ 'position': 'absolute', - 'top': '-14px', 'font-size': '13px', 'left': '0', 'right': '0', 'bottom': '0', 'zIndex': '1', + 'marginBottom': '0', 'backgroundColor': statusMap[status].bgc }).text(statusMap[status].text) }) diff --git a/src/components/table/TableList.vue b/src/components/table/TableList.vue new file mode 100644 index 0000000..c5f5796 --- /dev/null +++ b/src/components/table/TableList.vue @@ -0,0 +1,178 @@ + + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 86fe1af..9f2d6b9 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -14,7 +14,7 @@ 网站 -
{{username}}
+
{{showName}}
@@ -55,7 +55,6 @@ export default { return { activeIndex: '1', imageUrl: process.env.VUE_APP_BASE_API + '/view/thumbnail?jmal-token=' + this.$store.state.user.token + '&id=', - username: this.$store.state.user.name, defaultAvatar: require('../../assets/img/default-avatar.png') } }, @@ -67,7 +66,8 @@ export default { computed: { ...mapGetters([ 'sidebar', - 'avatar' + 'avatar', + 'showName' ]) }, methods: { diff --git a/src/store/getters.js b/src/store/getters.js index 4677315..0551790 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -4,6 +4,7 @@ const getters = { token: state => state.user.token, avatar: state => state.user.avatar, name: state => state.user.name, + showName: state => state.user.showName, userId: state => state.user.userId } export default getters diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 5573bcd..6bcbd94 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -6,6 +6,7 @@ const getDefaultState = () => { return { token: getToken(), name: '', + showName: '', avatar: '', userId: getConsumerId(), } @@ -23,6 +24,9 @@ const mutations = { SET_NAME: (state, name) => { state.name = name }, + SET_SHOW_NAME: (state, showName) => { + state.showName = showName + }, SET_AVATAR: (state, avatar) => { state.avatar = avatar }, @@ -66,9 +70,10 @@ const actions = { // reject('Verification failed, please Login again.') } - const { id, username, avatar } = data + const { id, username, showName, avatar } = data commit('SET_NAME', username) + commit('SET_SHOW_NAME', showName) commit('SET_AVATAR', avatar) commit('SET_USERID', id) sessionStorage.setItem('store', JSON.stringify(state)) diff --git a/src/styles/setting.scss b/src/styles/setting.scss index 61b938c..2a393ae 100644 --- a/src/styles/setting.scss +++ b/src/styles/setting.scss @@ -23,7 +23,18 @@ a:hover { font-weight: 600; } } - +.el-card { + .search-form { + .el-form-actions { + margin-bottom: 15px; + } + } +} +.table-search-header{ + /deep/.el-card__header { + padding: 18px 20px 0; + } +} .clearfix { display: flex; } @@ -33,6 +44,11 @@ a:hover { margin-left: 25px; } +.card-btn-icon { + padding-left: 12px; + padding-right: 12px; +} + .card-header { line-height: 32px; } @@ -93,9 +109,23 @@ a:hover { margin-top: 5vh!important; } } -.dialog-cm { - /deep/.el-dialog { - max-width: 500px; +.dialog-form { + /deep/ .el-dialog__body { + padding-bottom: 0; + padding-top: 22px; + } +} +/deep/ .el-dialog { + border-radius: 4px; + max-width: calc(100vw - 30px); + .el-dialog__header { + padding-top: 14px; + padding-bottom: 11px; + border-bottom: 1px solid #ededed; + } + .el-dialog__footer { + padding-bottom: 12px; + border-top: 1px solid #f4f4f4; } } /deep/.el-input { @@ -133,3 +163,15 @@ a:hover { margin-top: -28px; } } +.search-form .el-form-actions { + .el-button+.el-button { + margin-left: 0; + } +} + +@media screen and (max-width: 768px) { + .search-form .el-form-actions { + text-align: right; + } +} + diff --git a/src/views/setting/user/tabs/cusomerInfo.vue b/src/views/setting/sys/cusomerInfo.vue similarity index 75% rename from src/views/setting/user/tabs/cusomerInfo.vue rename to src/views/setting/sys/cusomerInfo.vue index fded6e4..fa0f749 100644 --- a/src/views/setting/user/tabs/cusomerInfo.vue +++ b/src/views/setting/sys/cusomerInfo.vue @@ -11,22 +11,23 @@ @croppedCanvas="saveAvatar"> - - - - + + + + - - + + - - - - - 确定 - 忘记密码? + + + @@ -38,15 +39,11 @@
- 修改密码 - - - @@ -59,7 +56,7 @@ - 保存 + 保 存
@@ -125,11 +122,11 @@ { min: 6, message: '密码不能小于6个字符', trigger: 'blur' } ], checkPass: [ - { validator: validatePass, trigger: 'blur' } + { required: true, validator: validatePass, trigger: 'blur' } ], }, validOldPass: false, - passwordFormTitle: '旧密码', + passwordFormTitle: '', dialogSelectFile: false, } }, @@ -184,13 +181,14 @@ } await this.$nextTick() this.cusomerInfoForm = this.userInfo - this.srcImage = this.userInfo.avatar ? this.imageUrl + this.userInfo.avatar : require('../../../../assets/img/default-avatar.png') + this.srcImage = this.userInfo.avatar ? this.imageUrl + this.userInfo.avatar : require('../../../assets/img/default-avatar.png') }) }, async changePassword() { this.validOldPass = false this.dialogChangePassword = true await this.$nextTick() + this.passwordFormTitle = '旧密码' this.$refs.passwordForm.resetFields() }, onSubmit() { @@ -204,39 +202,46 @@ }, // 确认密码 onSavePassword() { - this.$refs.passwordForm.validate((valid) => { - this.valid = valid - if (valid) { - if(this.validOldPass){ - // 修改密码 - this.userUpdateLoading = true - let data = new FormData() - data.append("id",this.$store.state.user.userId) - data.append("password",this.passwordForm.password) - updatePass(data).then(() => { - this.userUpdateLoading = false - this.dialogChangePassword = false - }).catch(()=>{ - this.userUpdateLoading = false - }) - }else{ - // 验证旧密码 - this.userUpdateLoading = true - validOldPass({ - id: this.$store.state.user.userId, - password: this.passwordForm.oldPassword - }).then(() => { - this.userUpdateLoading = false - this.validOldPass = true - this.passwordFormTitle = '新密码' - }).catch(()=>{ - this.userUpdateLoading = false - }) + console.log('this.validOldPass', this.validOldPass) + if(this.validOldPass){ + this.$refs.passwordForm.validate((valid) => { + this.valid = valid + if (valid) { + if(this.validOldPass){ + // 修改密码 + this.userUpdateLoading = true + let data = new FormData() + data.append("id",this.$store.state.user.userId) + data.append("password",this.passwordForm.password) + updatePass(data).then(() => { + this.userUpdateLoading = false + this.dialogChangePassword = false + }).catch(()=>{ + this.userUpdateLoading = false + }) + } + return true } - } else { - return false; - } - }); + return false + }); + } else { + // 验证旧密码 + this.userUpdateLoading = true + validOldPass({ + id: this.$store.state.user.userId, + password: this.passwordForm.oldPassword + }).then(() => { + this.userUpdateLoading = false + this.validOldPass = true + this.passwordFormTitle = '新密码' + let that = this + setTimeout(function (){ + that.$refs.newPasswordInput.focus() + }) + }).catch(()=>{ + this.userUpdateLoading = false + }) + } }, progressFormat() { const space = this.userInfo.takeUpSpace/1024/1024/1024 @@ -291,11 +296,11 @@ this.srcImage = this.imageUrl + res.data this.$store.state.user.avatar = res.data } + if(data.get('showName') != null){ + this.$store.state.user.showName = data.get('showName') + } }).catch(() => { - this.$message({ - message: '保存失败!', - type: 'error' - }) + this.userUpdateLoading = false }) } } diff --git a/src/views/setting/sys/cusomerManager.vue b/src/views/setting/sys/cusomerManager.vue new file mode 100644 index 0000000..5d38e2f --- /dev/null +++ b/src/views/setting/sys/cusomerManager.vue @@ -0,0 +1,366 @@ + + + + + diff --git a/src/views/setting/user/index.vue b/src/views/setting/user/index.vue index 2895271..3012c9a 100644 --- a/src/views/setting/user/index.vue +++ b/src/views/setting/user/index.vue @@ -21,8 +21,8 @@ - -