{{template "header" .}} <title>我的资料 - 码农随笔</title> <style> .avatar-uploader .el-upload { border: 1px dashed #d9d9d9; border-radius: 6px; cursor: pointer; position: relative; overflow: hidden; } .avatar-uploader .el-upload:hover { border-color: #409EFF; } .avatar-uploader-icon { font-size: 28px; color: #8c939d; width: 178px; height: 178px; line-height: 178px; text-align: center; } .avatar { width: 178px; height: 178px; display: block; } </style> </head> <body style="background-color: #f9f9f9"> <div class="root-container"> {{template "nav" .}} {{template "memenu" .}} <div class="me-blog-root"> <div class="me-blog-list"> <div class="breadcrumb-container"> <span class="layui-breadcrumb"> <a href="/">首页</a> <a href="">个人中心</a> <a href="/me/info">我的资料</a> <a><cite>个人信息</cite></a> </span> </div> <div style="display: flex"> <div style="width: 200px;margin-top: 10px"> <el-upload class="avatar-uploader" action="/himg/upload" :show-file-list="false" :on-success="handleAvatarSuccess"> <img v-if="imageUrl" :src="imageUrl" class="avatar"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> </div> <div class="info-header"> <div style="display: flex"> <p style="flex: 1;color: #888">ID: {{.User.UserName}}</p> <p><a href="/u/{{.User.Id}}" style="text-decoration: none">个人主页 ></a></p> </div> <div> <span>博客 {{.User.BlogCount}}</span> <span>浏览量 {{.User.BlogBrowes}}</span> </div> <hr style="height:1px;border:none;border-top:1px solid #EEE;margin: 10px 0 5px 0;"/> <div> <div style="display: flex"> <p style="flex: 1">昵称 :${form.nickName}</p> <p><a href="javascript:void(0)" style="text-decoration: none" @click="dialogFormVisible = true">修改资料</a></p> </div> <p>邮箱 :${form.email}</p> <p>手机 :${form.mobile}</p> </div> </div> </div> </div> </div> <el-dialog title="编辑个人信息" :visible.sync="dialogFormVisible" width="500px"> <div> <el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="昵称" prop="nickName"> <el-input v-model="form.nickName"></el-input> </el-form-item> <el-form-item label="邮箱" prop="email"> <el-input v-model="form.email"></el-input> </el-form-item> <el-form-item label="手机号" prop="mobile"> <el-input v-model="form.mobile"></el-input> </el-form-item> </el-form> </div> <div slot="footer" class="dialog-footer"> <el-button @click="dialogFormVisible = false">取 消</el-button> <el-button type="primary" @click="saveHandler">确 定</el-button> </div> </el-dialog> </div> </body> <script> var app = new Vue({ el: ".root-container", delimiters: ['${', '}'], data: { dialogFormVisible: false, imageUrl: '', form: { nickName: '', email: '', mobile: '' }, rules: { nickName: [ {required: true, message: '请输入昵称', trigger: 'blur'}, {min: 3, max: 50, message: '长度在 3 到 50 个字符', trigger: 'blur'} ], email: [ {required: true, message: '请输入邮箱', trigger: 'blur'}, ], mobile: [ {required: true, message: '请输入手机号码', trigger: 'blur'}, ] } }, created() { console.log({{.User}}) this.imageUrl = {{.HeadImg}} this.form.nickName = {{.User.NickName}} this.form.email = {{.User.Email}} this.form.mobile = {{.User.Mobile}} }, methods: { saveHandler(){ const _this = this this.$refs['ruleForm'].validate((valid) => { if (valid) { $.post('/api/user/edit', _this.form, function (data) { if (data.Status == 0) { _this.$message.success('修改成功') _this.dialogFormVisible = false } else if (data.Status == 401) { window.location.href = "/login" } else { _this.$message.error('服务器异常') } }, 'json') } }) }, handleAvatarSuccess(res, file){ if(res.Status === 0){ this.imageUrl = res.Data this.$message.success('上传成功') } else if(res.Status === 401){ window.location.href = "/login" } else { this.$message.error('上传成功') } } } }) function refresh() { window.location.href = window.location.href } </script> </html>