|
@@ -1,59 +1,83 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <div class="setting_title">个人信息</div>
|
|
|
- <el-divider></el-divider>
|
|
|
- <div class="userInfo">
|
|
|
- <el-form label-position="left" label-width="50px">
|
|
|
- <el-form-item label="账号">
|
|
|
- <div>{{userInfo.userName}}</div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="姓名">
|
|
|
- <div>{{userInfo.nickName}}</div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="角色">
|
|
|
- <div>{{userInfo.roleName}}</div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="密码">
|
|
|
- <div>{{userInfo.password | passwordFilter}} <el-button type="text" @click="dialogFormVisible = true">修改密码</el-button></div>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
-
|
|
|
- <!-- 修改密码 -->
|
|
|
- <el-dialog title="修改密码" :visible.sync="dialogFormVisible" :show-close="false" width="40%" :close-on-click-modal="false">
|
|
|
- <el-form ref="dialogForm" :model="dialogForm" :rules="dialogFormRules" label-position="left" label-width="80px">
|
|
|
- <el-form-item label="原密码" prop="oldPassword">
|
|
|
- <el-input v-model="dialogForm.oldPassword" ref="password1" autocomplete="off" placeholder="请输入原密码" :type="passwordType1"></el-input>
|
|
|
- <span class="show-pwd" @click="showPwd(1)">
|
|
|
- <svg-icon :icon-class="passwordType1 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
- </span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="新密码" prop="newPassword">
|
|
|
- <el-input v-model="dialogForm.newPassword" ref="password2" autocomplete="off" placeholder="请输入新密码" :type="passwordType2"></el-input>
|
|
|
- <span class="show-pwd" @click="showPwd(2)">
|
|
|
- <svg-icon :icon-class="passwordType2 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
- </span>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="确认密码" prop="confirmPassword">
|
|
|
- <el-input v-model="dialogForm.confirmPassword" ref="password3" autocomplete="off" placeholder="请再次输入新密码" :type="passwordType3"></el-input>
|
|
|
- <span class="show-pwd" @click="showPwd(3)">
|
|
|
- <svg-icon :icon-class="passwordType3 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
- </span>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="cancelDialogForm">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitDialogForm">确定</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
+ <!-- <div class="setting_title">个人信息</div>
|
|
|
+ <el-divider></el-divider> -->
|
|
|
+ <div v-if="!isRenew">
|
|
|
+ <div class="userInfo">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="4">
|
|
|
+ <div class="avatar">
|
|
|
+ <fileUpload :multiple="true" :fileList="[{url: userInfo.minLogo3}]" :download="false" :viewOnline="false" :limit="1" @getFiles="getFiles" />
|
|
|
+ <!-- <el-image style="width: 100px;height: 100px;border-radius: 50%;" :src="userInfo.minLogo3"></el-image> -->
|
|
|
+ <!-- <div class="img">
|
|
|
+ <i class="el-icon-camera"></i>
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <div style="height: 100px;display: flex;flex-direction: column;justify-content: space-around;">
|
|
|
+ <div>用户名: {{userInfo.nickName}}</div>
|
|
|
+ <div>负责人: {{userInfo.linkName}}</div>
|
|
|
+ <div>开通时间: {{userInfo.companyOpenTime}}</div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <div style="height: 100px;display: flex;flex-direction: column;justify-content: space-around;">
|
|
|
+ <div>账号: {{userInfo.userName}}</div>
|
|
|
+ <div>手机号码: {{userInfo.linkPhone}}</div>
|
|
|
+ <div class="flex">
|
|
|
+ <span style="color: #169dff;margin-right: 10px;">到期时间: {{userInfo.companyExpireTime}}</span>
|
|
|
+ <el-tooltip effect="dark" content="账号到期后将自动停用系统功能,续费后功能恢复使用!" placement="top">
|
|
|
+ <i class="el-icon-question icon-question"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-button style="margin: 0 20px;" size="small" type="primary" @click="renew">续费</el-button>
|
|
|
+ <!-- <el-button size="small" plain type="primary" @click="payRecords">购买记录</el-button> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div style="margin-top: 60px;">
|
|
|
+ <el-form ref="dialogForm" :model="dialogForm" :rules="dialogFormRules" label-position="left" label-width="80px">
|
|
|
+ <el-form-item label="原密码" prop="oldPassword">
|
|
|
+ <el-input v-model="dialogForm.oldPassword" ref="password1" autocomplete="off" placeholder="请输入原密码" :type="passwordType1"></el-input>
|
|
|
+ <span class="show-pwd" @click="showPwd(1)">
|
|
|
+ <svg-icon :icon-class="passwordType1 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
+ </span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="新密码" prop="newPassword">
|
|
|
+ <el-input v-model="dialogForm.newPassword" ref="password2" autocomplete="off" placeholder="请输入新密码" :type="passwordType2"></el-input>
|
|
|
+ <span class="show-pwd" @click="showPwd(2)">
|
|
|
+ <svg-icon :icon-class="passwordType2 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
+ </span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="确认密码" prop="confirmPassword">
|
|
|
+ <el-input v-model="dialogForm.confirmPassword" ref="password3" autocomplete="off" placeholder="请再次输入新密码" :type="passwordType3"></el-input>
|
|
|
+ <span class="show-pwd" @click="showPwd(3)">
|
|
|
+ <svg-icon :icon-class="passwordType3 === 'password' ? 'eye' : 'eye-open'" />
|
|
|
+ </span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer" style="padding-left: 100px;">
|
|
|
+ <el-button type="primary" @click="submitDialogForm">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <renew :userInfo="userInfo" @back="getUserInfo" v-if="isRenew"></renew>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { mapGetters } from 'vuex'
|
|
|
import { getUserInfo, changePassword } from '@/api/setting'
|
|
|
+import uploadFile from '@/utils/upload-file'
|
|
|
+import fileUpload from '@/components/file-upload'
|
|
|
+import renew from './renew.vue'
|
|
|
+import request from '@/utils/request'
|
|
|
|
|
|
export default {
|
|
|
+ components: { fileUpload, renew },
|
|
|
data() {
|
|
|
var validatePass = (rule, value, callback) => {
|
|
|
if (value === '') {
|
|
@@ -99,6 +123,8 @@ export default {
|
|
|
passwordType1: 'password',
|
|
|
passwordType2: 'password',
|
|
|
passwordType3: 'password',
|
|
|
+
|
|
|
+ isRenew: false
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -112,6 +138,7 @@ export default {
|
|
|
methods: {
|
|
|
// 获取用户信息
|
|
|
getUserInfo() {
|
|
|
+ this.isRenew = false
|
|
|
getUserInfo({adminUserId: this.userid}).then(res => {
|
|
|
this.userInfo = res.data;
|
|
|
})
|
|
@@ -177,6 +204,26 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
+ getFiles(e){
|
|
|
+ if(e[0].name){
|
|
|
+ request({
|
|
|
+ url: '/admin/user/user/updateCompanyWechat',
|
|
|
+ method: 'post',
|
|
|
+ data: {
|
|
|
+ minLogo3: e[0].url,
|
|
|
+ companyWechatId: this.userInfo.companyWechatId
|
|
|
+ }
|
|
|
+ }).then(res =>{
|
|
|
+ if(res.code == 200){
|
|
|
+ this.getUserInfo()
|
|
|
+ this.$message.success('上传成功!');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ renew(){
|
|
|
+ this.isRenew = true
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -188,6 +235,10 @@ export default {
|
|
|
.userInfo .el-form-item {
|
|
|
margin-bottom: 10px;
|
|
|
}
|
|
|
+ .flex{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
.show-pwd {
|
|
|
position: absolute;
|
|
|
right: 15px;
|
|
@@ -196,4 +247,30 @@ export default {
|
|
|
cursor: pointer;
|
|
|
user-select: none;
|
|
|
}
|
|
|
+ .userInfo{
|
|
|
+ padding-top: 30px;
|
|
|
+ color: #555555;
|
|
|
+ }
|
|
|
+ .avatar{
|
|
|
+ position: relative;
|
|
|
+ cursor: pointer;
|
|
|
+ .img{
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ border-radius: 14px;
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ z-index: 9;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 28px;
|
|
|
+ background-color: #eeeeee;
|
|
|
+ border: 2px solid #ffffff;
|
|
|
+ color: #168dff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ::v-deep .images .item .img{
|
|
|
+ border-radius: 50% !important;
|
|
|
+ }
|
|
|
</style>
|