mirror of
https://github.com/eyebluecn/tank-front
synced 2026-10-19 16:16:18 +00:00
change user to currentUser.
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
if (this.user.role === 'GUEST') {
|
||||
this.$router.push("/user/login");
|
||||
} else {
|
||||
this.$router.push("/user/profile/" + this.user.uuid);
|
||||
this.$router.push("/user/detail/" + this.user.uuid);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -317,7 +317,12 @@
|
||||
|
||||
},
|
||||
created () {
|
||||
|
||||
/*初始化inputSelection*/
|
||||
if (this.user.role === 'ADMINISTRATOR') {
|
||||
this.pager.getFilter('userUuid').visible = true
|
||||
} else {
|
||||
this.pager.setFilterValue('userUuid', this.user.uuid)
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
|
||||
@@ -331,11 +336,6 @@
|
||||
this.pager.setFilterValue('puuid', 'root')
|
||||
}
|
||||
|
||||
if (this.user.role === 'ADMINISTRATOR') {
|
||||
this.pager.getFilter('userUuid').visible = true
|
||||
} else {
|
||||
this.pager.setFilterValue('userUuid', this.user.uuid)
|
||||
}
|
||||
|
||||
//如果所有的排序都没有设置,那么默认以时间降序。
|
||||
if (!this.pager.getFilterValue('orderDir') && !this.pager.getFilterValue('orderCreateTime') && !this.pager.getFilterValue('orderSize') && !this.pager.getFilterValue('orderName')) {
|
||||
|
||||
@@ -83,6 +83,8 @@
|
||||
|
||||
<style lang="less" rel="stylesheet/less">
|
||||
.backyard-preference{
|
||||
|
||||
.tankImg{
|
||||
max-height: 100px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
+104
-94
@@ -1,103 +1,103 @@
|
||||
<template>
|
||||
<div class="animated fadeIn backyard-user-edit">
|
||||
<div class="animated fadeIn backyard-user-edit">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="pedia-navigation">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="pedia-navigation">
|
||||
<span class="item active">
|
||||
<span v-show="!user.editMode">创建用户</span>
|
||||
<span v-show="user.editMode">编辑用户</span>
|
||||
<span v-show="!currentUser.editMode">创建用户</span>
|
||||
<span v-show="currentUser.editMode">编辑用户</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="bg-white br4 border p10">
|
||||
<div>
|
||||
<div class="col-md-12">
|
||||
<div class="bg-white br4 border p10">
|
||||
<div>
|
||||
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5 compulsory">头像</label>
|
||||
<div class="col-md-10">
|
||||
<MatterImage v-model="user.avatarUrl"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5 compulsory">头像</label>
|
||||
<div class="col-md-10">
|
||||
<MatterImage v-model="currentUser.avatarUrl"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mt10" v-if="!user.editMode" v-validator="user.validatorSchema.email.error">
|
||||
<label class="col-md-2 control-label mt5 compulsory">邮箱</label>
|
||||
<div class="col-md-10 validate">
|
||||
<input type="text" class="form-control" v-model="user.email">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10" v-if="!currentUser.editMode" v-validator="currentUser.validatorSchema.email.error">
|
||||
<label class="col-md-2 control-label mt5 compulsory">邮箱</label>
|
||||
<div class="col-md-10 validate">
|
||||
<input type="text" class="form-control" v-model="currentUser.email">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt10" v-validator="user.validatorSchema.username.error">
|
||||
<label class="col-md-2 control-label mt5 compulsory">用户名</label>
|
||||
<div class="col-md-10 validate">
|
||||
<input type="text" class="form-control" v-model="user.username">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10" v-validator="currentUser.validatorSchema.username.error">
|
||||
<label class="col-md-2 control-label mt5 compulsory">用户名</label>
|
||||
<div class="col-md-10 validate">
|
||||
<input type="text" class="form-control" v-model="currentUser.username">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt10" v-if="!user.editMode" v-validator="user.validatorSchema.password.error">
|
||||
<label class="col-md-2 control-label mt5 compulsory">密码</label>
|
||||
<div class="col-md-10 validate">
|
||||
<input type="password" class="form-control" v-model="user.password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10" v-if="!currentUser.editMode" v-validator="currentUser.validatorSchema.password.error">
|
||||
<label class="col-md-2 control-label mt5 compulsory">密码</label>
|
||||
<div class="col-md-10 validate">
|
||||
<input type="password" class="form-control" v-model="currentUser.password">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt10" v-if="!user.editMode">
|
||||
<label class="col-md-2 control-label mt5 compulsory">确认密码</label>
|
||||
<div class="col-md-10">
|
||||
<input type="password" class="form-control" v-model="rePassword">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10" v-if="!currentUser.editMode">
|
||||
<label class="col-md-2 control-label mt5 compulsory">确认密码</label>
|
||||
<div class="col-md-10">
|
||||
<input type="password" class="form-control" v-model="rePassword">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5">手机号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" class="form-control" v-model="user.phone">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5">手机号</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" class="form-control" v-model="currentUser.phone">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5">性别</label>
|
||||
<div class="col-md-10">
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5">性别</label>
|
||||
<div class="col-md-10">
|
||||
|
||||
<span v-for="gender in user.getGenderList()" class="mr10">
|
||||
<NbRadio v-model="user.gender" :val="gender.value" name="gender"></NbRadio>
|
||||
<span v-for="gender in currentUser.getGenderList()" class="mr10">
|
||||
<NbRadio v-model="currentUser.gender" :val="gender.value" name="gender"></NbRadio>
|
||||
<label>{{gender.name}}</label>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5">城市</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" class="form-control" v-model="user.city">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt10">
|
||||
<label class="col-md-2 control-label mt5">城市</label>
|
||||
<div class="col-md-10">
|
||||
<input type="text" class="form-control" v-model="currentUser.city">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="mt10">
|
||||
<button class="btn btn-sm btn-primary" @click.stop.prevent="$router.go(-1)">
|
||||
<span class="fa fa-reply"></span>
|
||||
返回
|
||||
</button>
|
||||
<CreateSaveButton :entity="user" :callback="save"></CreateSaveButton>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="mt10">
|
||||
<button class="btn btn-sm btn-primary" @click.stop.prevent="$router.go(-1)">
|
||||
<span class="fa fa-reply"></span>
|
||||
返回
|
||||
</button>
|
||||
<CreateSaveButton :entity="currentUser" :callback="save"></CreateSaveButton>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {Notification} from 'element-ui'
|
||||
import {FeatureType} from '../../common/model/feature/FeatureType'
|
||||
import { Notification } from 'element-ui'
|
||||
import { FeatureType } from '../../common/model/feature/FeatureType'
|
||||
import NbRadio from '../../common/widget/NbRadio.vue'
|
||||
import MatterImage from '../matter/widget/MatterImage'
|
||||
import CreateSaveButton from '../widget/CreateSaveButton'
|
||||
@@ -105,12 +105,13 @@
|
||||
|
||||
export default {
|
||||
name: 'create',
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
FeatureType,
|
||||
rePassword: null,
|
||||
currentUser: this.$store.state.user,
|
||||
user: new User()
|
||||
user: this.$store.state.user,
|
||||
currentUser: new User(),
|
||||
breadcrumbs: this.$store.state.breadcrumbs
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -119,41 +120,50 @@
|
||||
CreateSaveButton
|
||||
},
|
||||
methods: {
|
||||
save() {
|
||||
save () {
|
||||
let that = this
|
||||
if (!this.user.editMode && this.user.password !== this.rePassword) {
|
||||
if (!this.currentUser.editMode && this.currentUser.password !== this.rePassword) {
|
||||
Notification.error('两次密码输入不一致')
|
||||
return
|
||||
}
|
||||
|
||||
this.user.httpSave(function (response) {
|
||||
this.currentUser.httpSave(function (response) {
|
||||
Notification.success({
|
||||
message: that.user.editMode ? '修改用户成功!' : '创建用户成功!'
|
||||
message: that.currentUser.editMode ? '修改用户成功!' : '创建用户成功!'
|
||||
})
|
||||
|
||||
|
||||
if (that.currentUser.uuid === that.user.uuid) {
|
||||
that.currentUser.innerLogin(response)
|
||||
if (that.user.uuid === that.currentUser.uuid) {
|
||||
that.user.innerLogin(response)
|
||||
}
|
||||
|
||||
|
||||
that.$router.go(-1)
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
created () {
|
||||
if(this.user.role !== 'ADMINISTRATOR'){
|
||||
this.breadcrumbs.splice(0, this.breadcrumbs.length)
|
||||
this.breadcrumbs.push({
|
||||
title: '个人详情',
|
||||
path: '/user/detail/' + this.user.uuid
|
||||
},{
|
||||
title: '编辑资料'
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
let that = this
|
||||
this.user.errorMessage = null
|
||||
this.user.uuid = this.$store.state.route.params.uuid
|
||||
if (this.user.uuid) {
|
||||
this.user.httpDetail()
|
||||
this.currentUser.errorMessage = null
|
||||
this.currentUser.uuid = this.$store.state.route.params.uuid
|
||||
if (this.currentUser.uuid) {
|
||||
this.currentUser.httpDetail()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" rel="stylesheet/less">
|
||||
.backyard-user-edit {
|
||||
.backyard-user-edit {
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
+117
-113
@@ -1,146 +1,142 @@
|
||||
<template>
|
||||
<div class="backyard-user-detail animated fadeIn ">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="pedia-navigation">
|
||||
<div class="backyard-user-detail animated fadeIn ">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="pedia-navigation">
|
||||
<span class="item active">
|
||||
<span>用户详情</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-10 col-md-offset-1">
|
||||
<div class="bg-white br4 p10">
|
||||
<div class="media">
|
||||
<div class="col-md-10 col-md-offset-1">
|
||||
<div class="bg-white br4 p10">
|
||||
<div class="media">
|
||||
|
||||
<div class="mr20" :class="{'pull-left':!$store.state.config.mobile}">
|
||||
<img class="img-container"
|
||||
:class="{'img-blg':!$store.state.config.mobile,'img-lg':$store.state.config.mobile}"
|
||||
:src="currentUser.getAvatarUrl()">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<div class="cell-title">
|
||||
<h1 class="mt10">{{currentUser.username}}</h1>
|
||||
</div>
|
||||
<div class="mr20" :class="{'pull-left':!$store.state.config.mobile}">
|
||||
<img class="img-container"
|
||||
:class="{'img-blg':!$store.state.config.mobile,'img-lg':$store.state.config.mobile}"
|
||||
:src="currentUser.getAvatarUrl()">
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<div class="cell-title">
|
||||
<h1 class="mt10">{{currentUser.username}}</h1>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<div>
|
||||
|
||||
<div class="row f14">
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">角色:</span>{{currentUser.getRoleName()}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">邮箱:</span>{{currentUser.email}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row f14">
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">角色:</span>{{currentUser.getRoleName()}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">邮箱:</span>{{currentUser.email}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt5 col-md-12">
|
||||
<NbExpanding>
|
||||
<div class="row" v-show="userDetailDown">
|
||||
<div class="col-md-12">
|
||||
<div>
|
||||
<span class="bold">手机号:</span>{{currentUser.phone}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">性别:</span>{{currentUser.getGenderName()}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12" v-if="currentUser.city">
|
||||
<div>
|
||||
<span class="bold">城市:</span>{{currentUser.city}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">状态:</span>{{currentUser.getStatusName()}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12" v-if="currentUser.lastIp">
|
||||
<div>
|
||||
<span class="bold">上次登录IP:</span>{{currentUser.lastIp}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12" v-if="currentUser.lastTime">
|
||||
<div>
|
||||
<span class="bold">上次登录时间:</span>{{currentUser.lastTime | simpleDateTime}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</NbExpanding>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<NbExpanding>
|
||||
<div class="row" v-show="userDetailDown">
|
||||
<div class="col-md-12">
|
||||
<div>
|
||||
<span class="bold">手机号:</span>{{currentUser.phone}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">性别:</span>{{currentUser.getGenderName()}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12" v-if="currentUser.city">
|
||||
<div>
|
||||
<span class="bold">城市:</span>{{currentUser.city}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12">
|
||||
<div>
|
||||
<span class="bold">状态:</span>{{currentUser.getStatusName()}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12" v-if="currentUser.lastIp">
|
||||
<div>
|
||||
<span class="bold">上次登录IP:</span>{{currentUser.lastIp}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt5 col-md-12" v-if="currentUser.lastTime">
|
||||
<div>
|
||||
<span class="bold">上次登录时间:</span>{{currentUser.lastTime | simpleDateTime}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</NbExpanding>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 f14" style="line-height: 36px;">
|
||||
<div class="row">
|
||||
<div class="col-md-6 f14" style="line-height: 36px;">
|
||||
<span class="cursor" @click.stop.prevent="userDetailDown = !userDetailDown">
|
||||
<span class="fa"
|
||||
:class="{'fa-angle-down': !userDetailDown, 'fa-angle-up': userDetailDown}"></span>
|
||||
:class="{'fa-angle-down': !userDetailDown, 'fa-angle-up': userDetailDown}"></span>
|
||||
<span>{{userDetailDown ? '收起详细资料' : '查看详细资料'}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-md-12 text-right">
|
||||
<button class="btn btn-sm btn-primary mb5" v-if="currentUser.uuid !== user.uuid"
|
||||
@click.stop.prevent="$router.push('/user/profile')">
|
||||
返回管理员账户
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5" v-if="user.role === 'ADMINISTRATOR'"
|
||||
@click.stop.prevent="resetPassword">
|
||||
重置密码
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5" v-if="currentUser.uuid === user.uuid"
|
||||
@click.stop.prevent="changePassword">
|
||||
修改密码
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5"
|
||||
@click.stop.prevent="$router.push('/matter/list/root?userUuid=' + currentUser.uuid)">
|
||||
{{currentUser.uuid === user.uuid ? '我的文件' : '他的文件'}}
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5"
|
||||
@click.stop.prevent="$router.push('/user/edit/' + currentUser.uuid)">
|
||||
{{currentUser.uuid === user.uuid ? '编辑个人资料' : '编辑他的资料'}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 text-right">
|
||||
<button class="btn btn-sm btn-primary mb5" v-if="user.role === 'ADMINISTRATOR'"
|
||||
@click.stop.prevent="resetPassword">
|
||||
重置密码
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5" v-if="currentUser.uuid === user.uuid"
|
||||
@click.stop.prevent="changePassword">
|
||||
修改密码
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5"
|
||||
@click.stop.prevent="$router.push('/?userUuid=' + currentUser.uuid)">
|
||||
{{currentUser.uuid === user.uuid ? '我的文件' : '他的文件'}}
|
||||
</button>
|
||||
<button class="btn btn-sm btn-primary mb5"
|
||||
@click.stop.prevent="$router.push('/user/edit/' + currentUser.uuid)">
|
||||
{{currentUser.uuid === user.uuid ? '编辑个人资料' : '编辑他的资料'}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NbExpanding from '../../common/widget/NbExpanding.vue'
|
||||
import User from '../../common/model/user/User'
|
||||
import {MessageBox, Notification} from 'element-ui'
|
||||
import { MessageBox, Notification } from 'element-ui'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
userDetailDown: false,
|
||||
user: this.$store.state.user,
|
||||
currentUser: new User()
|
||||
|
||||
currentUser: new User(),
|
||||
breadcrumbs: this.$store.state.breadcrumbs
|
||||
}
|
||||
},
|
||||
components: {
|
||||
NbExpanding
|
||||
},
|
||||
methods: {
|
||||
currentUserUpdate(uuid) {
|
||||
currentUserUpdate (uuid) {
|
||||
if (uuid) {
|
||||
this.currentUser.uuid = uuid
|
||||
this.currentUser.httpDetail()
|
||||
@@ -149,10 +145,10 @@
|
||||
this.currentUser.httpDetail()
|
||||
}
|
||||
},
|
||||
changePassword() {
|
||||
changePassword () {
|
||||
this.$router.push('/user/change/password')
|
||||
},
|
||||
resetPassword() {
|
||||
resetPassword () {
|
||||
let that = this
|
||||
MessageBox.prompt('输入新密码', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
@@ -170,11 +166,19 @@
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$store.state.route.params.uuid'(newVal, oldVal) {
|
||||
'$store.state.route.params.uuid' (newVal, oldVal) {
|
||||
this.currentUserUpdate(newVal)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
created () {
|
||||
if(this.user.role !== 'ADMINISTRATOR'){
|
||||
this.breadcrumbs.splice(0, this.breadcrumbs.length)
|
||||
this.breadcrumbs.push({
|
||||
title: '个人详情'
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
this.currentUserUpdate(this.$store.state.route.params.uuid)
|
||||
|
||||
}
|
||||
@@ -182,7 +186,7 @@
|
||||
|
||||
</script>
|
||||
<style lang="less" rel="stylesheet/less">
|
||||
.user-profile {
|
||||
.user-profile {
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
+17
-17
@@ -17,48 +17,48 @@
|
||||
</NbFilter>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12" v-for="(user,index) in pager.data">
|
||||
<div class="col-md-12" v-for="(userItem,index) in pager.data">
|
||||
<div class="bg-white border br4 p10 mb10">
|
||||
<div class="media">
|
||||
<div class="pull-left">
|
||||
<router-link :to="'/user/detail/'+user.uuid">
|
||||
<img class="img-circle img-md" :src="user.getAvatarUrl()">
|
||||
<router-link :to="'/user/detail/'+userItem.uuid">
|
||||
<img class="img-circle img-md" :src="userItem.getAvatarUrl()">
|
||||
</router-link>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<div>
|
||||
<span class="f16">
|
||||
<router-link class="black" :to="'/user/detail/'+user.uuid">
|
||||
{{user.username}}
|
||||
<span v-if="user.uuid === currentUser.uuid"
|
||||
<router-link class="black" :to="'/user/detail/'+userItem.uuid">
|
||||
{{userItem.username}}
|
||||
<span v-if="userItem.uuid === user.uuid"
|
||||
class="text-danger">(It's you)</span>
|
||||
</router-link>
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="mt5">
|
||||
{{user.getRoleName()}}
|
||||
{{userItem.getRoleName()}}
|
||||
</div>
|
||||
<div class="mt5">
|
||||
<i class="fa fa-envelope text-success" v-if="user.email"></i>
|
||||
{{user.email}}
|
||||
<i class="fa fa-envelope text-success" v-if="userItem.email"></i>
|
||||
{{userItem.email}}
|
||||
|
||||
<i class="fa fa-phone text-info" v-if="user.phone"></i>
|
||||
{{user.phone}}
|
||||
<i class="fa fa-phone text-info" v-if="userItem.phone"></i>
|
||||
{{userItem.phone}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mv5 text-muted one-line">
|
||||
{{user.description}}
|
||||
{{userItem.description}}
|
||||
</div>
|
||||
<div>
|
||||
<span class="mr10">上次登录: {{user.lastTime | humanTime}}</span>
|
||||
<span class="mr10">上次IP: {{user.lastIp}}</span>
|
||||
<span class="mr10">上次登录: {{userItem.lastTime | humanTime}}</span>
|
||||
<span class="mr10">上次IP: {{userItem.lastIp}}</span>
|
||||
|
||||
<span class="pull-right action-buttons">
|
||||
<router-link :to="'/user/edit/'+user.uuid">
|
||||
<router-link :to="'/user/edit/'+userItem.uuid">
|
||||
<i class="fa fa-pencil text-info f18"></i>
|
||||
</router-link>
|
||||
<a href="javascript:void(0)" title="删除" @click.stop.prevent="user.confirmDel(refresh)">
|
||||
<a href="javascript:void(0)" title="删除" @click.stop.prevent="userItem.confirmDel(refresh)">
|
||||
<i class="fa fa-trash text-danger f18"></i>
|
||||
</a>
|
||||
</span>
|
||||
@@ -88,7 +88,7 @@
|
||||
data () {
|
||||
return {
|
||||
pager: new Pager(User),
|
||||
currentUser: this.$store.state.user
|
||||
user: this.$store.state.user
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
||||
+46
-45
@@ -1,56 +1,57 @@
|
||||
<template>
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-4 col-lg-offset-4 col-md-6 col-md-offset-3 mt100">
|
||||
<div class="text-primary f25 text-center mb20">欢迎登录</div>
|
||||
<!--输入框开始-->
|
||||
<div class="input-group mb15">
|
||||
<span class="input-group-addon"><i class="fa fa-user w14"></i></span>
|
||||
<input type="email" class="form-control" placeholder="邮箱" v-model="user.email"
|
||||
@keyup.enter="login">
|
||||
</div>
|
||||
<div class="input-group mb15">
|
||||
<span class="input-group-addon"><i class="fa fa-unlock-alt w14"></i></span>
|
||||
<input type="password" class="form-control" placeholder="密码" v-model="user.localPassword"
|
||||
@keyup.enter="login">
|
||||
</div>
|
||||
<div class="col-lg-4 col-lg-offset-4 col-md-6 col-md-offset-3 mt100">
|
||||
<div class="text-primary f25 text-center mb20">欢迎登录</div>
|
||||
<!--输入框开始-->
|
||||
<div class="input-group mb15">
|
||||
<span class="input-group-addon"><i class="fa fa-user w14"></i></span>
|
||||
<input type="email" class="form-control" placeholder="邮箱" v-model="user.email"
|
||||
@keyup.enter="login">
|
||||
</div>
|
||||
<div class="input-group mb15">
|
||||
<span class="input-group-addon"><i class="fa fa-unlock-alt w14"></i></span>
|
||||
<input type="password" class="form-control" placeholder="密码" v-model="user.localPassword"
|
||||
@keyup.enter="login">
|
||||
</div>
|
||||
|
||||
<div class="mv10">
|
||||
体验账号: lish516@126.com 密码:123456
|
||||
</div>
|
||||
<div class="mv10">
|
||||
体验账号: lish516@126.com 密码:123456
|
||||
</div>
|
||||
|
||||
<div class="mb15">
|
||||
<button class="btn btn-primary button full-width" @click.prevent.stop="login" :disabled="user.loading">
|
||||
<div class="mb15">
|
||||
<button class="btn btn-primary button full-width" @click.prevent.stop="login" :disabled="user.loading">
|
||||
<span v-if="user.loading">
|
||||
<i class="fa fa-spinner fa-spin"></i>
|
||||
正在登录...
|
||||
</span>
|
||||
<span v-else>
|
||||
<span v-else>
|
||||
<i class="fa fa-user-circle-o"></i>
|
||||
登录
|
||||
</span>
|
||||
|
||||
</button>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb15" v-show="user.errorMessage">
|
||||
<div class="alert alert-danger">
|
||||
{{user.errorMessage}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb15" v-show="user.errorMessage">
|
||||
<div class="alert alert-danger">
|
||||
{{user.errorMessage}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {startWith} from "../../common/filter/str";
|
||||
import { startWith } from '../../common/filter/str'
|
||||
import { Notification } from 'element-ui'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
user: this.$store.state.user,
|
||||
captchaValue: null,
|
||||
@@ -62,7 +63,7 @@
|
||||
computed: {},
|
||||
components: {},
|
||||
methods: {
|
||||
login() {
|
||||
login () {
|
||||
let that = this
|
||||
this.user.httpLogin(function () {
|
||||
|
||||
@@ -70,44 +71,44 @@
|
||||
//自动跳转到之前的页面中去。
|
||||
if (that.redirect) {
|
||||
|
||||
if (startWith(that.redirect, "/")) {
|
||||
that.$router.push(that.redirect);
|
||||
if (startWith(that.redirect, '/')) {
|
||||
that.$router.push(that.redirect)
|
||||
} else {
|
||||
location.href = that.redirect;
|
||||
location.href = that.redirect
|
||||
}
|
||||
} else {
|
||||
//自动进入到首页。
|
||||
that.$router.push("/")
|
||||
that.$router.push('/')
|
||||
}
|
||||
|
||||
|
||||
//登录成功啦。
|
||||
}, function (err) {
|
||||
|
||||
console.log(err)
|
||||
Notification.error({
|
||||
title: '错误',
|
||||
message: err.data.msg
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
logout() {
|
||||
logout () {
|
||||
|
||||
if (this.user.role !== "GUEST") {
|
||||
if (this.user.role !== 'GUEST') {
|
||||
this.user.httpLogout(function () {
|
||||
console.info("退出成功!")
|
||||
|
||||
}, function () {
|
||||
console.error("退出失败!")
|
||||
console.error('退出失败!')
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
mounted () {
|
||||
//到登录页面了需要先做一次退出操作。因为退出就是直接跳转到登录页面的。
|
||||
this.logout()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
<template>
|
||||
<div class="animated fadeIn">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
<div class="pedia-navigation">
|
||||
<span class="item active">用户详情</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--编辑,权限设置-->
|
||||
<div class="text-right mb10">
|
||||
<router-link class="btn btn-primary btn-sm" :to="'/user/edit/'+ user.uuid">
|
||||
<i class="fa fa-pencil"></i>
|
||||
编辑用户
|
||||
</router-link>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<LoadingFrame :loading="user.detailLoading">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
用户名:{{user.username}}
|
||||
邮箱:{{user.email}}
|
||||
</div>
|
||||
</div>
|
||||
</LoadingFrame>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {MessageBox, Notification as NotificationBox} from 'element-ui'
|
||||
import User from '../../common/model/user/User'
|
||||
import NbSlidePanel from '../../common/widget/NbSlidePanel.vue'
|
||||
import NbExpanding from '../../common/widget/NbExpanding.vue'
|
||||
import NbBtnDropdown from "../../common/widget/NbBtnDropdown.vue";
|
||||
import LoadingFrame from "../widget/LoadingFrame";
|
||||
import CreateSaveButton from "../widget/CreateSaveButton.vue"
|
||||
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
user: new User()
|
||||
}
|
||||
},
|
||||
components: {},
|
||||
computed: {},
|
||||
methods: {
|
||||
fetchDetail() {
|
||||
let that = this;
|
||||
this.user.uuid = this.$store.state.route.params.uuid;
|
||||
if (this.user.uuid) {
|
||||
this.user.httpDetail();
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.fetchDetail();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,5 +1,6 @@
|
||||
import BaseEntity from '../base/BaseEntity'
|
||||
import Filter from '../base/Filter'
|
||||
import { Notification,Message } from 'element-ui'
|
||||
import {getMimeType, MimeUtil} from '../../util/MimeUtil'
|
||||
import {containStr, endWith, getExtension, startWith} from '../../filter/str'
|
||||
import User from '../user/User'
|
||||
@@ -134,9 +135,8 @@ export default class Matter extends BaseEntity {
|
||||
httpChangePrivacy(privacy, successCallback, errorCallback) {
|
||||
let that = this
|
||||
this.httpPost(Matter.URL_CHANGE_PRIVACY, {'uuid': this.uuid, 'privacy': privacy}, function (response) {
|
||||
|
||||
that.privacy = privacy
|
||||
|
||||
Message.success(response.data.msg)
|
||||
typeof successCallback === 'function' && successCallback(response)
|
||||
}, errorCallback)
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ const router = new Router({
|
||||
breadcrumbs: []
|
||||
}
|
||||
},
|
||||
{
|
||||
/*{
|
||||
path: 'user/profile/:uuid',
|
||||
name: 'UserProfile',
|
||||
component: UserDetail,
|
||||
@@ -64,7 +64,7 @@ const router = new Router({
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
},*/
|
||||
{
|
||||
path: 'user/list',
|
||||
name: 'UserList',
|
||||
@@ -154,7 +154,6 @@ const router = new Router({
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
path: 'preference',
|
||||
name: 'PreferenceIndex',
|
||||
|
||||
Reference in New Issue
Block a user