87,910
社区成员
发帖
与我相关
我的任务
分享
<template>
<div>
<el-table style="width: 50%;margin: 0 auto"
:data="userList.slice((currentPage-1)*pagesize,currentPage*pagesize)" >
<el-table-column type="index" width="50"></el-table-column>
<el-table-column label="用户名" prop="fields.username" width="180"></el-table-column>
<el-table-column label="邮箱" prop="fields.email" width="180"></el-table-column>
<el-table-column label="加入时间" prop="fields.date_joined" width="180"></el-table-column>
<el-table-column>
<template v-slot="scope">
<el-button icon="el-icon-edit" @click="view(scope.row)" type="text" size="small">编辑</el-button>
<el-button icon="el-icon-delete" @click="deleteUser(scope.row.pk)" type="text" size="small">删除</el-button>
<el-dialog title="详细信息" :visible.sync = "centerDialogVisible" width="30%" center>
<el-form v-model="form" label-width="80px" label-position="left" :rules="rules" ref="form">
<el-form-item label="用户ID:" >
<el-input v-model="form.pk" style="width: 50%" size="mini" disabled></el-input>
</el-form-item>
<el-form-item label="用户名:" prop="username">
<el-input v-model="form.username" style="width: 50%" size="mini"></el-input>
</el-form-item>
<el-form-item label="邮箱:" prop="email">
<el-input v-model="form.email" style="width: 50%" size="mini"></el-input>
</el-form-item>
<el-form-item label="管理员:">
<el-input v-model="form.is_superuser" style="width: 50%" size="mini" disabled></el-input>
</el-form-item>
<el-form-item label="注册日期:">
<el-input v-model="form.date_joined" style="width: 50%" size="mini" disabled></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="centerDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="updateUser(form)">提 交</el-button>
</span>
</el-dialog>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
:page-size="pagesize" layout="total, prev, pager, next, jumper" :total="userList.length">
</el-pagination>
</div>
</template>
<script>
import Axios from 'axios'
import QS from 'qs'
export default {
name: 'admin',
data () {
const cn = new RegExp(/[\u4e00-\u9fa5]/)
const reg2 = new RegExp(/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/)
const emailCheck = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入邮箱'))
} else {
if (!reg2.test(value)||cn.test(value)) {
callback(new Error('错误的邮箱格式'))
}
callback()
}
}
const reg1 = new RegExp(/^[0-9A-Za-z]+$/)
const checkUsername = (rule, value, callback) => {
if (!value) {
callback(new Error('用户名不能为空'))
}
setTimeout(() => {
if (!reg1.test(value)) {
callback(new Error('必须包含字母和数字'))
} else {
callback()
}
}, 1000)
}
return {
userList: [],
currentPage: 1,
pagesize: 10,
centerDialogVisible: false,
form: {
pk: 0,
username: '',
email: '',
is_superuser: false,
date_joined: ''
},
rules:{
username: [
{ validator: checkUsername, trigger: 'blur' }
],
email: [
{ validator: emailCheck, trigger:'blur'}
]
}
}
},
mounted () {
this.showUser()
},
methods: {
view (row) {
this.form.pk = row.pk
this.form.username = row.fields.username
this.form.email = row.fields.email
this.form.date_joined = row.fields.date_joined
this.form.is_superuser = row.fields.is_superuser
this.centerDialogVisible = true
},
updateUser(form){
console.log(form)
Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
const _this = this
this.$confirm('此操作将修改用户信息, 是否继续提交?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'info'
}).then(() => {
Axios.post('http://127.0.0.1:8000/api/updateUser', QS.stringify({id:form.pk,email:form.email,username:form.username}))
.then((response) => {
const res = response.data
console.log(res)
if (res.status === 0) {
_this.$message({
type: 'success',
message: '修改成功!'
});
_this.centerDialogVisible = false
_this.showUser()
} else {
this.$message.error('编辑用户信息失败')
console.log(res.msg)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消提交'
});
});
}
}
}
</script>
<style scoped>
</style>