| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/user/info.vue?vue&type=style&index=0&id=5d917ec8&scoped=true&lang=css&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/src/views/user/info.vue","mtime":1655256221000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/css-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/postcss-loader/src/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/NN2024071001/NN2024071001/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgouZWxlLWJvZHkgewogIHBhZGRpbmctYm90dG9tOiAwOwp9CgouZWwtY2FyZCB7CiAgbWFyZ2luLWJvdHRvbTogMTVweDsKfQoKLyog55So5oi36LWE5paZ5Y2h54mHICovCi51c2VyLWluZm8tY2FyZCB7CiAgcGFkZGluZy10b3A6IDhweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi51c2VyLWluZm8tY2FyZCAudXNlci1pbmZvLWF2YXRhci1ncm91cCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGN1cnNvcjogcG9pbnRlcjsKICBtYXJnaW46IDAgYXV0bzsKICB3aWR0aDogMTEwcHg7CiAgaGVpZ2h0OiAxMTBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLnVzZXItaW5mby1jYXJkIC51c2VyLWluZm8tYXZhdGFyIHsKICB3aWR0aDogMTEwcHg7CiAgaGVpZ2h0OiAxMTBweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgb2JqZWN0LWZpdDogY292ZXI7Cn0KCi51c2VyLWluZm8tY2FyZCAudXNlci1pbmZvLWF2YXRhci1ncm91cCA+IGkgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDUwJTsKICBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgY29sb3I6ICNGRkY7CiAgZm9udC1zaXplOiAzMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgei1pbmRleDogMjsKfQoKLnVzZXItaW5mby1jYXJkIC51c2VyLWluZm8tYXZhdGFyLWdyb3VwOmhvdmVyID4gaSB7CiAgZGlzcGxheTogYmxvY2s7Cn0KCi51c2VyLWluZm8tY2FyZCAudXNlci1pbmZvLWF2YXRhci1ncm91cDpob3ZlcjphZnRlciB7CiAgY29udGVudDogIiI7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogMDsKICBsZWZ0OiAwOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4zKTsKfQoKLnVzZXItaW5mby1jYXJkIC51c2VyLWluZm8tbmFtZSB7CiAgZm9udC1zaXplOiAyNHB4OwogIG1hcmdpbi10b3A6IDIwcHg7Cn0KCi51c2VyLWluZm8tY2FyZCAudXNlci1pbmZvLWRlc2MgewogIG1hcmdpbi10b3A6IDhweDsKfQoKLyog55So5oi35L+h5oGv5YiX6KGoICovCi51c2VyLWluZm8tbGlzdCB7CiAgbWFyZ2luLXRvcDogMzBweDsKfQoKLnVzZXItaW5mby1saXN0IC51c2VyLWluZm8taXRlbSB7CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsKfQoKLnVzZXItaW5mby1pdGVtID4gaSB7CiAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogIGZvbnQtc2l6ZTogMTZweDsKfQoKLnVzZXItaW5mby1pdGVtID4gc3BhbiB7CiAgZmxleDogMTsKICBkaXNwbGF5OiBibG9jazsKfQoKLyog55So5oi35qCH562+ICovCi51c2VyLWluZm8tdGFncyAuZWwtdGFnIHsKICBtYXJnaW46IDEwcHggMTBweCAwIDA7Cn0KCi8qIOeUqOaIt+i0puWPt+e7keWumuWIl+ihqCAqLwoudXNlci1hY2NvdW50LWxpc3QgewogIG1hcmdpbi10b3A6IDEwcHg7Cn0KCi51c2VyLWFjY291bnQtbGlzdCAudXNlci1hY2NvdW50LWl0ZW0gewogIHBhZGRpbmc6IDE1cHg7Cn0KCi51c2VyLWFjY291bnQtbGlzdCAudXNlci1hY2NvdW50LWl0ZW0gLmVsZS10ZXh0LXNlY29uZGFyeSB7CiAgbWFyZ2luLXRvcDogNnB4Owp9CgoudXNlci1hY2NvdW50LWxpc3QgLnVzZXItYWNjb3VudC1pdGVtIC51c2VyLWFjY291bnQtaWNvbiB7CiAgd2lkdGg6IDQycHg7CiAgaGVpZ2h0OiA0MnB4OwogIGxpbmUtaGVpZ2h0OiA0MnB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBjb2xvcjogI0ZGRjsKICBmb250LXNpemU6IDI2cHg7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGJhY2tncm91bmQtY29sb3I6ICMzNDkyRUQ7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKLnVzZXItYWNjb3VudC1saXN0IC51c2VyLWFjY291bnQtaXRlbSAudXNlci1hY2NvdW50LWljb24uZWwtaWNvbi1fd2VjaGF0IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNERBRjI5OwogIGZvbnQtc2l6ZTogMjhweDsKfQoKLnVzZXItYWNjb3VudC1saXN0IC51c2VyLWFjY291bnQtaXRlbSAudXNlci1hY2NvdW50LWljb24uZWwtaWNvbi1fYWxpcGF5IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3NkZFOwogIHBhZGRpbmctbGVmdDogNXB4OwogIGZvbnQtc2l6ZTogMzJweDsKfQoKLyogdGFi6aG1562+ICovCi51c2VyLWluZm8tdGFicyA+Pj4gLmVsLXRhYnNfX25hdi13cmFwIHsKICBwYWRkaW5nLWxlZnQ6IDIwcHg7Cn0K"},{"version":3,"sources":["info.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmOA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA","file":"info.vue","sourceRoot":"src/views/user","sourcesContent":["<template>\n <div class=\"ele-body\">\n <el-row :gutter=\"15\">\n <el-col :md=\"6\" :sm=\"8\">\n <el-card shadow=\"never\" body-style=\"padding: 25px;\">\n <div class=\"user-info-card\">\n <div class=\"user-info-avatar-group\" @click=\"showCropper=true\">\n <img class=\"user-info-avatar\" :src=\"form.avatar\" alt=\"\"/>\n <i class=\"el-icon-upload2\"></i>\n </div>\n <h2 class=\"user-info-name\">相约在冬季</h2>\n <div class=\"user-info-desc\">为梦想而创作,海纳百川,有容乃大!</div>\n </div>\n <div class=\"user-info-list\">\n <div class=\"user-info-item\">\n <i class=\"el-icon-user\"></i><span>资深PHP架构师</span>\n </div>\n <div class=\"user-info-item\">\n <i class=\"el-icon-office-building\"></i><span>RXThinkCMF研发中心 - 架构设计部 - 资深架构师</span>\n </div>\n <div class=\"user-info-item\">\n <i class=\"el-icon-location-information\"></i><span>中国 • 江苏省 • 南京市</span>\n </div>\n <div class=\"user-info-item\">\n <i class=\"el-icon-_school\"></i><span>Laravel8、JWT、Vue、ElementUI</span>\n </div>\n </div>\n <div style=\"margin: 30px 0 20px 0;\">\n <el-divider class=\"ele-divider-dashed ele-divider-base\"/>\n </div>\n <h6 class=\"ele-text\" style=\"margin-bottom: 8px;\">标签</h6>\n <div class=\"user-info-tags\">\n <el-tag size=\"mini\" type=\"info\">中国硅谷</el-tag>\n <el-tag size=\"mini\" type=\"info\">创业者</el-tag>\n <el-tag size=\"mini\" type=\"info\">厚德载物</el-tag>\n <el-tag size=\"mini\" type=\"info\">坚持</el-tag>\n <el-tag size=\"mini\" type=\"info\">毅力</el-tag>\n <el-tag size=\"mini\" type=\"info\">王者归来</el-tag>\n </div>\n </el-card>\n </el-col>\n <el-col :md=\"18\" :sm=\"16\">\n <el-card shadow=\"never\" body-style=\"padding-top: 5px;\">\n <el-tabs v-model=\"active\" class=\"user-info-tabs\">\n <el-tab-pane label=\"基本信息\" name=\"info\">\n <el-form ref=\"infoForm\" :model=\"form\" :rules=\"rules\" label-width=\"90px\"\n style=\"max-width: 450px;padding-top: 40px;\" @keyup.enter.native=\"save\"\n @submit.native.prevent>\n <el-form-item label=\"真实姓名:\" prop=\"realname\">\n <el-input v-model=\"form.realname\" placeholder=\"请输入真实姓名\" clearable/>\n </el-form-item>\n <el-form-item label=\"昵称:\" prop=\"nickname\">\n <el-input v-model=\"form.nickname\" placeholder=\"请输入昵称\" clearable/>\n </el-form-item>\n <el-form-item label=\"性别:\" prop=\"gender\">\n <el-select v-model=\"form.gender\" placeholder=\"请选择性别\" class=\"ele-fluid\" clearable>\n <el-option label=\"男\" :value=\"1\"/>\n <el-option label=\"女\" :value=\"2\"/>\n <el-option label=\"保密\" :value=\"3\"/>\n </el-select>\n </el-form-item>\n <el-form-item label=\"联系方式:\" prop=\"mobile\">\n <el-input v-model=\"form.mobile\" placeholder=\"请输入联系方式\" clearable/>\n </el-form-item>\n <el-form-item label=\"电子邮箱:\" prop=\"email\">\n <el-input v-model=\"form.email\" placeholder=\"请输入电子邮箱\" clearable/>\n </el-form-item>\n <el-form-item label=\"个人简介:\">\n <el-input v-model=\"form.intro\" placeholder=\"请输入个人简介\" :rows=\"4\" type=\"textarea\"/>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"save\" :loading=\"loading\">保存更改</el-button>\n </el-form-item>\n </el-form>\n </el-tab-pane>\n <el-tab-pane label=\"账号绑定\" name=\"account\">\n <div class=\"user-account-list\">\n <div class=\"user-account-item ele-cell\">\n <div class=\"ele-cell-content\">\n <div>密保手机</div>\n <div class=\"ele-text-secondary\">已绑定手机:152****4151</div>\n </div>\n <el-link type=\"primary\" :underline=\"false\">去修改</el-link>\n </div>\n <el-divider/>\n <div class=\"user-account-item ele-cell\">\n <div class=\"ele-cell-content\">\n <div>密保邮箱</div>\n <div class=\"ele-text-secondary\">已绑定邮箱:laravel.qq.com</div>\n </div>\n <el-link type=\"primary\" :underline=\"false\">去修改</el-link>\n </div>\n <el-divider/>\n <div class=\"user-account-item ele-cell\">\n <div class=\"ele-cell-content\">\n <div>密保问题</div>\n <div class=\"ele-text-secondary\">未设置密保问题</div>\n </div>\n <el-link type=\"primary\" :underline=\"false\">去设置</el-link>\n </div>\n <el-divider/>\n <div class=\"user-account-item ele-cell\">\n <i class=\"user-account-icon el-icon-_qq\"></i>\n <div class=\"ele-cell-content\">\n <div>绑定QQ</div>\n <div class=\"ele-text-secondary\">当前未绑定QQ账号</div>\n </div>\n <el-link type=\"primary\" :underline=\"false\">去绑定</el-link>\n </div>\n <el-divider/>\n <div class=\"user-account-item ele-cell\">\n <i class=\"user-account-icon el-icon-_wechat\"></i>\n <div class=\"ele-cell-content\">\n <div>绑定微信</div>\n <div class=\"ele-text-secondary\">当前未绑定绑定微信账号</div>\n </div>\n <el-link type=\"primary\" :underline=\"false\">去绑定</el-link>\n </div>\n <el-divider/>\n <div class=\"user-account-item ele-cell\">\n <i class=\"user-account-icon el-icon-_alipay\"></i>\n <div class=\"ele-cell-content\">\n <div>绑定支付宝</div>\n <div class=\"ele-text-secondary\">当前未绑定绑定支付宝账号</div>\n </div>\n <el-link type=\"primary\" :underline=\"false\">去绑定</el-link>\n </div>\n </div>\n </el-tab-pane>\n </el-tabs>\n </el-card>\n </el-col>\n </el-row>\n <!-- 头像裁剪弹窗 -->\n <ele-cropper-dialog :show.sync=\"showCropper\" @crop=\"onCrop\" :src=\"form.avatar\" :lock-scroll=\"false\"/>\n </div>\n</template>\n\n<script>\nimport EleCropperDialog from '@/components/EleCropperDialog' // 图片裁剪\n\nexport default {\n name: \"UserInfo\",\n components: {EleCropperDialog},\n data() {\n return {\n active: 'info', // tab页选中\n form: {}, // 表单数据\n rules: { // 表单验证规则\n realname: [\n {required: true, message: '请输入真实姓名', trigger: 'blur'}\n ],\n nickname: [\n {required: true, message: '请输入昵称', trigger: 'blur'}\n ],\n gender: [\n {required: true, message: '请选择性别', trigger: 'blur'}\n ],\n mobile: [\n {required: true, message: '请输入联系方式', trigger: 'blur'}\n ],\n email: [\n {required: true, message: '请输入电子邮箱', trigger: 'blur'}\n ]\n },\n loading: false, // 保存按钮loading\n showCropper: false // 是否显示裁剪弹窗\n }\n },\n mounted() {\n this.getUserInfo();\n },\n methods: {\n /**\n * 获取用户信息\n */\n getUserInfo() {\n if (this.$setting.userUrl) {\n this.$http.get(this.$setting.userUrl).then(res => {\n if (res.data.code === 0) {\n if (this.$setting.parseUser) {\n res.data = this.$setting.parseUser(res.data);\n }\n this.form = JSON.parse(JSON.stringify(res.data.data))\n let user = res.data.data;\n this.$store.dispatch('user/setUser', user);\n this.$store.dispatch('user/setRoles', user ? user.roles : null);\n this.$store.dispatch('user/setAuthorities', user ? user.authorities : null);\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n this.$message.error(e.message);\n });\n }\n },\n /* 保存更改 */\n save() {\n this.$refs['infoForm'].validate((valid) => {\n if (valid) {\n this.loading = true;\n this.$http.post('/index/updateUserInfo', this.form).then(res => {\n this.loading = false;\n if (res.data.code === 0) {\n this.$message({type: 'success', message: '保存成功'});\n } else {\n this.$message.error(res.data.msg);\n }\n }).catch(e => {\n this.loading = false;\n this.$message.error(e.message);\n });\n } else {\n return false;\n }\n });\n },\n /* 头像裁剪完成回调 */\n onCrop(res) {\n this.form.avatar = res;\n this.showCropper = false;\n }\n }\n}\n</script>\n\n<style scoped>\n.ele-body {\n padding-bottom: 0;\n}\n\n.el-card {\n margin-bottom: 15px;\n}\n\n/* 用户资料卡片 */\n.user-info-card {\n padding-top: 8px;\n text-align: center;\n}\n\n.user-info-card .user-info-avatar-group {\n position: relative;\n cursor: pointer;\n margin: 0 auto;\n width: 110px;\n height: 110px;\n border-radius: 50%;\n overflow: hidden;\n}\n\n.user-info-card .user-info-avatar {\n width: 110px;\n height: 110px;\n border-radius: 50%;\n object-fit: cover;\n}\n\n.user-info-card .user-info-avatar-group > i {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: #FFF;\n font-size: 30px;\n display: none;\n z-index: 2;\n}\n\n.user-info-card .user-info-avatar-group:hover > i {\n display: block;\n}\n\n.user-info-card .user-info-avatar-group:hover:after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, .3);\n}\n\n.user-info-card .user-info-name {\n font-size: 24px;\n margin-top: 20px;\n}\n\n.user-info-card .user-info-desc {\n margin-top: 8px;\n}\n\n/* 用户信息列表 */\n.user-info-list {\n margin-top: 30px;\n}\n\n.user-info-list .user-info-item {\n margin-bottom: 10px;\n display: flex;\n align-items: baseline;\n}\n\n.user-info-item > i {\n margin-right: 10px;\n font-size: 16px;\n}\n\n.user-info-item > span {\n flex: 1;\n display: block;\n}\n\n/* 用户标签 */\n.user-info-tags .el-tag {\n margin: 10px 10px 0 0;\n}\n\n/* 用户账号绑定列表 */\n.user-account-list {\n margin-top: 10px;\n}\n\n.user-account-list .user-account-item {\n padding: 15px;\n}\n\n.user-account-list .user-account-item .ele-text-secondary {\n margin-top: 6px;\n}\n\n.user-account-list .user-account-item .user-account-icon {\n width: 42px;\n height: 42px;\n line-height: 42px;\n text-align: center;\n color: #FFF;\n font-size: 26px;\n border-radius: 50%;\n background-color: #3492ED;\n box-sizing: border-box;\n}\n\n.user-account-list .user-account-item .user-account-icon.el-icon-_wechat {\n background-color: #4DAF29;\n font-size: 28px;\n}\n\n.user-account-list .user-account-item .user-account-icon.el-icon-_alipay {\n background-color: #1476FE;\n padding-left: 5px;\n font-size: 32px;\n}\n\n/* tab页签 */\n.user-info-tabs >>> .el-tabs__nav-wrap {\n padding-left: 20px;\n}\n</style>\n"]}]}
|