2020/12/28

This commit is contained in:
裴浩宇 2020-12-28 18:08:13 +08:00
parent 42586d43b8
commit e35e381011
9 changed files with 381 additions and 12070 deletions

File diff suppressed because it is too large Load Diff

View File

@ -8,6 +8,12 @@ html {
body{ body{
height: 100%; height: 100%;
} }
.page{
margin: 1rem;
border-radius: 5px;
padding: 1rem;
background-color: #ffffff;
}
#app{ #app{
height: 100%; height: 100%;
} }

View File

@ -14,10 +14,7 @@
label-position="left"> label-position="left">
<el-form-item label="角色" prop="role"> <el-form-item label="角色" prop="role">
<el-select v-model="form.role" placeholder="请选择"> <el-select v-model="form.role" placeholder="请选择">
<el-option value="学生"></el-option> <el-option :value="item.dd_detail" v-for="(item,index) in userTypeList" :key="index"></el-option>
<el-option value="家长"></el-option>
<el-option value="教师"></el-option>
<el-option value="管理员"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账号" prop="username"> <el-form-item label="账号" prop="username">
@ -104,6 +101,8 @@
type = "login" type = "login"
} }
return{ return{
//
userTypeList: [],
isSelect: true, isSelect: true,
rememberList: JSON.parse(sessionStorage.getItem("rememberList")), rememberList: JSON.parse(sessionStorage.getItem("rememberList")),
rememberPassword: false, rememberPassword: false,
@ -162,6 +161,7 @@
} }
}, },
mounted() { mounted() {
this.getUserType();
}, },
methods:{ methods:{
/*deleteUser(username,index) { /*deleteUser(username,index) {
@ -192,6 +192,15 @@
this.isSelect = false this.isSelect = false
this.isSelect = true this.isSelect = true
},*/ },*/
/**
* 获取用户类型字典项
*/
getUserType() {
this.$ajax.post('/hs/getDictionariesData',{code: 'userType'},res => {
console.log('用户类型字典项', res);
this.userTypeList = res;
})
},
forget() { forget() {
this.$message("请联系管理员重置密码") this.$message("请联系管理员重置密码")
}, },
@ -202,6 +211,15 @@
this.$message.error('用户名和密码不匹配'); this.$message.error('用户名和密码不匹配');
this.loading = false; this.loading = false;
} else { } else {
if (this.form.role === '管理员') {
this.$router.push({
name: "admin"
})
} else {
this.$router.push({
name: "homepage"
})
}
this.$message({ this.$message({
message: "登录成功", message: "登录成功",
type: "success" type: "success"
@ -232,9 +250,6 @@
} }
}*/ }*/
this.loading = false; this.loading = false;
this.$router.push({
name: "homepage"
})
sessionStorage.setItem("userInfo",JSON.stringify(r)); sessionStorage.setItem("userInfo",JSON.stringify(r));
// location.reload(); // location.reload();
} }

View File

@ -26,10 +26,12 @@
<el-menu <el-menu
default-active="1" default-active="1"
class="el-menu-vertical-demo"> class="el-menu-vertical-demo">
<el-menu-item index="1" @click="goToArticleReview">文章审核</el-menu-item> <el-menu-item index="1" @click="goToHomepageManagement">首页管理</el-menu-item>
<el-menu-item index="2" @click="goToPersonnelManagement">人员管理</el-menu-item> <el-menu-item index="2" @click="goToArticleReview">文章审核</el-menu-item>
<el-menu-item index="3" @click="goToHomepageManagement">首页管理</el-menu-item> <el-menu-item index="3" @click="goToPersonnelManagement">人员管理</el-menu-item>
<el-menu-item index="4"disabled>更多···</el-menu-item> <el-menu-item index="4" @click="goToHomepageManagement">注册管理</el-menu-item>
<el-menu-item index="5" @click="goToHomepageManagement">帮助答复</el-menu-item>
<el-menu-item index="6" disabled>更多···</el-menu-item>
</el-menu> </el-menu>
</el-aside> </el-aside>
<el-main> <el-main>
@ -158,9 +160,6 @@
padding: 0.5rem 2rem; padding: 0.5rem 2rem;
border-radius: 0.5rem; border-radius: 0.5rem;
} }
.el-container{
/*height: 100%;*/
}
.el-menu{ .el-menu{
border-radius: 5px; border-radius: 5px;
} }

View File

@ -3,70 +3,191 @@
<div class="top"> <div class="top">
</div> </div>
<div class="table"> <no-date v-if="noDate"></no-date>
<el-table <div class="table" v-if="!noDate">
:data="tableData" <div class="table-header">
style="width: 100%"> <div class="index box">序号</div>
<el-table-column <div class="article-name box">文章名称</div>
type="index" <div class="article-type box">文章类型</div>
width="50"> <div class="article-label box">文章标签</div>
</el-table-column> <div class="author box">发表人</div>
<el-table-column <div class="time box">发表时间</div>
prop="date" <div class="function box">操作</div>
label="日期" </div>
width="180"> <div class="table-content">
</el-table-column> <div class="one-data" v-for="(article, index) in articleList" :key="index">
<el-table-column label="操作"> <div class="index box">{{index+1}}</div>
<template slot-scope="scope"> <div class="article-name box theme-font-blue special-text" @click="getContent(article.articleId)">{{article.title}}</div>
<el-button <div class="article-type box theme-font-blue special-text" @click="searchLabel(article.type)">{{article.type}}</div>
size="mini" <div class="article-label box theme-font-blue special-text" @click="searchLabel(article.label)">{{article.label}}</div>
@click="handleEdit(scope.$index, scope.row)">编辑</el-button> <div class="author box theme-font-blue special-text" @click="goPersonalInfo(article.releaseId)">{{article.releaseName}}</div>
<el-button <div class="time box">{{article.releaseTime}}</div>
size="mini" <div class="function box">
type="danger" <el-button type="success" size='mini' @click="verifyArticle(article, '1')">通过</el-button>
@click="handleDelete(scope.$index, scope.row)">删除</el-button> <el-button type="danger" size='mini' @click="verifyArticle(article, '2')">驳回</el-button>
</template> </div>
</el-table-column> </div>
</el-table> <div class="number">{{articleList.length}}条数据</div>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import noDate from '@/components/components/NoData'
export default { export default {
components: {
noDate
},
data() { data() {
return { return {
tableData: [{ //
date: '2016-05-02', articleList: [],
name: '王小虎', //
address: '上海市普陀区金沙江路 1518 弄' noDate: true
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
} }
}, },
methods: { mounted() {
handleEdit(index, row) { this.getVerifyList();
console.log(index, row);
}, },
handleDelete(index, row) { methods: {
console.log(index, row); /**
* 审核通过/驳回
* @param {Object} item
*/
verifyArticle(item, operating) {
const OPERATING = {
"1": "通过",
"2": "驳回"
};
let _this = this;
_this.$confirm(`确认${OPERATING[operating]}?`, '审核', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(() => {
this.$ajax.post('/admin/verifyArticle', {
articleId: item.articleId,
operating: operating
}, res => {
console.log("审核结果", res);
if (res > 0) {
this.$message({
type: 'success',
message: `${OPERATING[operating]}成功`
});
setTimeout(() => {
_this.getVerifyList();
}, 1000)
} else {
this.$message({
type: 'error',
message: '服务器出小差了,请稍后再试'
});
}
})
})
},
/**
* 获取待审核文章列表
*/
getVerifyList() {
this.$ajax.post('/admin/getVerifyList', {}, res => {
console.log('待审核文章列表', res);
if (res.length > 0) {
this.noDate = false;
this.articleList = res;
} else {
this.noDate = true;
}
})
},
/**
* 获取文章详情
*/
getContent(id) {
this.$router.push({name: 'content'});
sessionStorage.setItem("noticeId",id);
},
/**
* 按条件查询文章
*/
searchLabel(label) {
sessionStorage.setItem("condition",label);
this.$router.push({name: "search"})
},
/**
* 查看个人主页
*/
goPersonalInfo(userId) {
this.$router.push({name: 'personalinfo'});
sessionStorage.setItem("userId",userId);
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.el-button+.el-button{
margin-left: 0;
}
.table-content{
padding-bottom: 2rem;
}
.number{
font-size: 0.9rem;
color: #999;
float: right;
margin: 1rem;
}
.special-text{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
}
.special-text:hover{
text-decoration: underline;
}
.index{
width: 3rem;
}
.article-name{
width: 15rem;
}
.article-type{
width: 6rem;
}
.article-label{
width: 6rem;
}
.author{
width: 6rem;
}
.time{
width: 10rem;
color: #999;
text-decoration: none!important;
cursor: default!important;
}
.function{
width: 10rem;
}
.box{
text-align: center;
}
.table-header{
color: #999;
}
.one-data{
font-size: 0.9rem;
}
.table-header, .one-data{
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #ADDFFA;
padding: 0.5rem 0;
}
.page{ .page{
margin: 1rem; margin: 1rem;
border-radius: 5px; border-radius: 5px;

View File

@ -1,5 +1,7 @@
<template> <template>
<h1>1111</h1> <div class="page">
<h1>完善中···</h1>
</div>
</template> </template>
<script> <script>

View File

@ -1,34 +1,37 @@
<template> <template>
<div id="demo"></div> <div class="page">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="用户管理" name="1">
<person></person>
</el-tab-pane>
<el-tab-pane label="注册管理" name="2">
<registration></registration>
</el-tab-pane>
</el-tabs>
</div>
</template> </template>
<script> <script>
import layui from 'layui'; import noDate from '@/components/components/NoData'
layui.use('table', function(){ import person from '@/view/admin/personnelManagement/personnelManagement/PersonnelManagement'
var table = layui.table; import registration from '@/view/admin/personnelManagement/registrationManagement/RegistrationManagement'
//
table.render({
elem: '#demo'
,height: 312
,url: '192.168.10.29:8048/hs/test' //
,page: true //
,cols: [[ //
{field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'}
,{field: 'username', title: '用户名', width:80}
,{field: 'sex', title: '性别', width:80, sort: true}
,{field: 'city', title: '城市', width:80}
,{field: 'sign', title: '签名', width: 177}
,{field: 'experience', title: '积分', width: 80, sort: true}
,{field: 'score', title: '评分', width: 80, sort: true}
,{field: 'classify', title: '职业', width: 80}
,{field: 'wealth', title: '财富', width: 135, sort: true}
]]
});
});
export default { export default {
name: "PersonnelManagement" components: {
noDate,
person,
registration
},
name: "PersonnelManagement",
data() {
return{
activeName: '1'
}
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
}
} }
</script> </script>

View File

@ -0,0 +1,134 @@
<template>
<div class="page">
<div class="top">
</div>
<no-date v-if="noDate"></no-date>
<div class="table" v-if="!noDate">
<div class="table-header">
<div class="index box">序号</div>
<div class="article-name box">人员名称</div>
<div class="article-type box">人员类型</div>
<div class="time box">注册时间</div>
<div class="article-type box">是否冻结</div>
<div class="function box">操作</div>
</div>
<div class="table-content">
<div class="one-data" v-for="(person, index) in personList" :key="index">
<div class="index box">{{index+1}}</div>
<div class="article-name box theme-font-blue special-text">{{person.real_name}}</div>
<div class="article-type box theme-font-blue special-text">{{person.user_type}}</div>
<div class="article-label box theme-font-blue special-text">{{person.create_time}}</div>
<div class="article-type box theme-font-blue special-text">{{person.frozen_state === '0' ? '未冻结' : '已冻结'}}</div>
<div class="function box">
<el-button type="success" size='mini' @click="" v-if="person.frozen_state === '0'">冻结</el-button>
<el-button type="danger" size='mini' @click="" v-if="person.frozen_state === '1'">解冻</el-button>
</div>
</div>
<div class="number">{{personList.length}}条数据</div>
</div>
</div>
</div>
</template>
<script>
import noDate from '@/components/components/NoData'
export default {
components: {
noDate
},
name: "PersonnelManagement",
data() {
return{
//
noDate: true,
//
personList: []
}
},
mounted() {
this.getFollowPeopleList()
},
methods: {
/**
* 获取人员列表
*/
getFollowPeopleList() {
this.$ajax.post('/admin/getPersonnelManagement', {}, res => {
console.log('人员列表', res);
if (res.length > 0) {
this.personList = res;
this.noDate = false;
} else {
this.noDate = true
}
})
}
}
}
</script>
<style scoped>
.el-button+.el-button{
margin-left: 0;
}
.table-content{
padding-bottom: 2rem;
}
.number{
font-size: 0.9rem;
color: #999;
float: right;
margin: 1rem;
}
.special-text{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
}
.special-text:hover{
text-decoration: underline;
}
.index{
width: 3rem;
}
.article-name{
width: 6rem;
}
.article-type{
width: 6rem;
}
.article-label{
width: 6rem;
}
.author{
width: 6rem;
}
.time{
width: 10rem;
color: #999;
text-decoration: none!important;
cursor: default!important;
}
.function{
width: 10rem;
}
.box{
text-align: center;
}
.table-header{
color: #999;
}
.one-data{
font-size: 0.9rem;
}
.table-header, .one-data{
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #ADDFFA;
padding: 0.5rem 0;
}
</style>

View File

@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: "RegistrationManagement"
}
</script>
<style scoped>
</style>