Files
jsowell-charger-web/jsowell-ui/src/views/system/user/profile/index.vue
2024-07-05 14:16:26 +08:00

137 lines
4.2 KiB
Vue

<template>
<div class="app-container">
<el-row :gutter="20">
<el-col :span="6" :xs="24">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>个人信息</span>
</div>
<div>
<div class="text-center">
<userAvatar :user="user" />
</div>
<ul class="list-group list-group-striped">
<li class="list-group-item">
<svg-icon icon-class="user" />用户名称
<div class="pull-right">{{ user.userName }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="phone" />手机号码
<div class="pull-right">{{ user.phonenumber }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="email" />用户邮箱
<div class="pull-right">{{ user.email }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="tree" />所属运营商
<div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="peoples" />所属角色
<div class="pull-right">{{ roleGroup }}</div>
</li>
<li class="list-group-item">
<svg-icon icon-class="date" />创建日期
<div class="pull-right">{{ user.createTime }}</div>
</li>
</ul>
</div>
</el-card>
</el-col>
<el-col :span="18" :xs="24">
<el-card>
<div slot="header" class="clearfix">
<span>基本资料</span>
</div>
<el-tabs v-model="activeTab">
<el-tab-pane label="基本资料" name="userinfo">
<userInfo :user="user" />
</el-tab-pane>
<el-tab-pane label="修改密码" name="resetPwd">
<resetPwd />
</el-tab-pane>
</el-tabs>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20" v-hasRole="['admin', 'common']" style="margin-top: 20px;">
<el-col :span="6" :xs="24">
<el-card class="box-card">
<div slot="header" class="password">
<p>桩动态密码</p>
<el-button type="primary" @click="generatePileSecret" plain>点击生成动态密码</el-button>
</div>
<div>
<div>
<ul class="list-group list-group-striped">
<li class="list-group-item">
<el-icon name="date" /> 当前日期
<div class="pull-right">{{ nowDate }}</div>
</li>
</ul>
<ul class="list-group list-group-striped">
<li class="list-group-item">
<el-icon name="key" /> 动态密码
<div class="pull-right">{{ pileSecret }}</div>
</li>
</ul>
</div>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import userAvatar from "./userAvatar";
import userInfo from "./userInfo";
import resetPwd from "./resetPwd";
import { getUserProfile } from "@/api/system/user";
import { generatePileSecret } from "@/api/pile/basic";
export default {
name: "Profile",
components: { userAvatar, userInfo, resetPwd },
data() {
return {
user: {},
nowDate: '',
pileSecret: '',
roleGroup: {},
postGroup: {},
activeTab: "userinfo"
};
},
created() {
this.getUser();
this.nowDate = new Date().toLocaleDateString();
},
methods: {
getUser() {
getUserProfile().then(response => {
this.user = response.data;
this.roleGroup = response.roleGroup;
this.postGroup = response.postGroup;
});
},
generatePileSecret() {
generatePileSecret().then(response => {
console.log("response", response);
this.pileSecret = response.obj;
});
}
}
};
</script>
<style>
.password {
display: flex;
align-items: center;
justify-content: space-between;
}
</style>