123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="Cache" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache, must-revalidate">
- <meta http-equiv="expires" content="0">
- <meta name="viewport"
- content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <title>用户信息</title>
- <link rel="stylesheet" href="../css/index.css">
- <link rel="stylesheet" href="../css/style.css">
- <script src="../js/vue.min.js"></script>
- <script src="../js/jquery.min.js"></script>
- <script src="../js/index.js"></script>
- <script src="../js/yz/init.js"></script>
- <script>
- checkLogin();
- </script>
- <style type="text/css">
- * {
- padding: 0;
- margin: 0;
- box-sizing: border-box;
- }
- body {
- padding: 10px;
- background-color: #040d32;
- }
- .list-group-item {
- border-bottom: 1px solid #dcdfe6;
- border-top: 1px solid #dcdfe6;
- margin-bottom: -1px;
- padding: 11px 0px;
- font-size: 14px;
- list-style: none;
- }
- .list-group-item .pull-right {
- float: right;
- }
- </style>
- </head>
- <body>
- <div id="app">
- <el-row :gutter="10">
- <el-col :span="8" :xs="24">
- <el-card shadow="always">
- <div slot="header"><span>个人信息</span></div>
- <div class="text-center">
- <el-avatar :size="120" :src="'https://www.enstation.com'+User.avatar"></el-avatar>
- </div>
- <ul class="margin-top">
- <li class="list-group-item">
- <i class="el-icon-user-solid"></i>
- <span class="margin-left-xs">用户名称</span>
- <div class="pull-right">{{ User.userName }}</div>
- </li>
- <li class="list-group-item">
- <i class="el-icon-mobile-phone"></i>
- <span class="margin-left-xs">手机号码</span>
- <div class="pull-right">{{ User.phonenumber }}</div>
- </li>
- <li class="list-group-item">
- <img style="width: 14px;" src="../css/email.svg" alt="SVG图像">
- <span class="margin-left-xs">用户邮箱</span>
- <div class="pull-right">{{ User.email }}</div>
- </li>
- <li class="list-group-item">
- <img style="width: 14px;" src="../css/tree.svg" alt="SVG图像">
- <span class="margin-left-xs">所属部门</span>
- <div class="pull-right" v-if="User.dept">
- {{ User.dept.deptName }}
- </div>
- </li>
- <li class="list-group-item">
- <img style="width: 14px;" src="../css/peoples.svg" alt="SVG图像">
- <span class="margin-left-xs">所属角色</span>
- <div class="pull-right">{{ User.roleGroup }}</div>
- </li>
- <li class="list-group-item">
- <i class="el-icon-date"></i>
- <span class="margin-left-xs">创建日期</span>
- <div class="pull-right">{{ User.createTime }}</div>
- </li>
- </ul>
- </el-card>
- </el-col>
- <el-col :span="16" :xs="24">
- <el-card class="box-card">
- <div slot="header"><span>基本资料</span></div>
- <el-tabs v-model="activeTab">
- <el-tab-pane label="基本资料" name="userinfo">
- <el-form ref="userRef" :model="User" :rules="rules" label-width="80px">
- <el-form-item label="用户昵称" prop="nickName">
- <el-input v-model="User.nickName" maxlength="30" />
- </el-form-item>
- <el-form-item label="手机号码" prop="phonenumber">
- <el-input v-model="User.phonenumber" maxlength="11" />
- </el-form-item>
- <el-form-item label="邮箱" prop="email">
- <el-input v-model="User.email" maxlength="50" />
- </el-form-item>
- <el-form-item label="性别">
- <el-radio-group v-model="User.sex">
- <el-radio label="0">男</el-radio>
- <el-radio label="1">女</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submit">保存</el-button>
- <el-button type="danger" @click="close">取消</el-button>
- </el-form-item>
- </el-form>
- </el-tab-pane>
- <el-tab-pane label="修改密码" name="resetPwd">
- <el-form ref="pwdRef" :model="pwdForm" :rules="rules" label-width="80px">
- <el-form-item label="旧密码" prop="oldPassword">
- <el-input v-model="pwdForm.oldPassword" placeholder="请输入旧密码" type="password" show-password />
- </el-form-item>
- <el-form-item label="新密码" prop="newPassword">
- <el-input v-model="pwdForm.newPassword" placeholder="请输入新密码" type="password" show-password />
- </el-form-item>
- <el-form-item label="确认密码" prop="confirmPassword">
- <el-input v-model="pwdForm.confirmPassword" placeholder="请确认密码" type="password" show-password/>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submitPwd">保存</el-button>
- <el-button type="danger" @click="clancePwd">取消</el-button>
- </el-form-item>
- </el-form>
- </el-tab-pane>
- </el-tabs>
- </el-card>
- </el-col>
- </el-row>
- </div>
- <script>
- var _this, dataObj = [];
- new Vue({
- el: '#app',
- data: function() {
- var equalToPassword = (rule, value, callback) => {
- if (value === '') {
- callback(new Error('请再次输入密码'));
- } else if (value !== _this.pwdForm.newPassword) {
- callback(new Error('两次输入密码不一致!'));
- } else {
- callback();
- }
- };
- return {
- User: {},
- activeTab: 'userinfo',
- pwdForm: {
- oldPassword: undefined,
- newPassword: undefined,
- confirmPassword: undefined
- },
- rules: {
- nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
- email: [{ required: true, message: "邮箱地址不能为空", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
- phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
- oldPassword: [{ required: true, message: "旧密码不能为空", trigger: "blur" }],
- newPassword: [{ required: true, message: "新密码不能为空", trigger: "blur" }, { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" }],
- confirmPassword: [{ required: true, message: "确认密码不能为空", trigger: "blur" }, { required: true, validator: equalToPassword, trigger: "blur" }]
- }
- }
- },
- created() {
- _this = this;
- _this.getList();
- },
- methods: {
- getList() {
- _this.User = JSON.parse(localStorage.getItem("_yz_TU"));
- },
- submit() {
- let data1 = _this.User;
- let _opts = {
- url: "/system/user/profile",
- type: "PUT"
- };
- tokenPostAjax(_opts,data1)
- .then(respone => {
- _this.$message({
- type: 'success',
- message: '操作成功!'
- });
- localStorage.setItem("_yz_TU", JSON.stringify(_this.User))
- })
- },
- close() {
- _this.User = JSON.parse(localStorage.getItem("_yz_TU"));
- },
- submitPwd() {
- let data1 = {
- oldPassword: _this.pwdForm.oldPassword,
- newPassword: _this.pwdForm.newPassword,
- rawPassword: _this.pwdForm.newPassword
- };
- let _opts = {
- url: `/system/user/profile/updatePwd?oldPassword=${_this.pwdForm.oldPassword}&newPassword=${_this.pwdForm.newPassword}`,
- type: "PUT"
- };
- tokenPostAjax(_opts,data1)
- .then(respone => {
- _this.$message({
- type: 'success',
- message: '操作成功!'
- });
- _this.clancePwd();
- })
- },
- clancePwd() {
- _this.pwdForm = {
- oldPassword: undefined,
- newPassword: undefined,
- confirmPassword: undefined
- };
- }
- }
- })
- </script>
- </body>
- </html>
|