|
|
|
@ -1,37 +1,49 @@ |
|
|
|
<template> |
|
|
|
<div> |
|
|
|
<div class="handle-box"> |
|
|
|
<el-input placeholder="请输入机构名称" class="handle-input mr10"></el-input> |
|
|
|
<el-input placeholder="请输入登录账号" class="handle-input mr10"></el-input> |
|
|
|
<el-select placeholder="部门名称" class="handle-select mr10"> |
|
|
|
<el-option key="1" label="广东省" value="广东省"></el-option> |
|
|
|
<el-option key="2" label="湖南省" value="湖南省"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-select placeholder="职位名称" class="handle-select mr10"> |
|
|
|
<el-option key="1" label="广东省" value="广东省"></el-option> |
|
|
|
<el-option key="2" label="湖南省" value="湖南省"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-select placeholder="账号角色" class="handle-select mr10"> |
|
|
|
<el-option key="1" label="广东省" value="广东省"></el-option> |
|
|
|
<el-option key="2" label="湖南省" value="湖南省"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-select placeholder="账号状态" class="handle-select mr10"> |
|
|
|
<el-option key="1" label="广东省" value="广东省"></el-option> |
|
|
|
<el-option key="2" label="湖南省" value="湖南省"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-date-picker |
|
|
|
class="mr10" |
|
|
|
v-model="query.time" |
|
|
|
type="datetimerange" |
|
|
|
:picker-options="pickerOptions" |
|
|
|
range-separator="至" |
|
|
|
value-format="yyyy-MM-dd h:m:s" |
|
|
|
start-placeholder="开始日期" |
|
|
|
end-placeholder="结束日期" |
|
|
|
align="right" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button> |
|
|
|
<el-input placeholder="请输入账号名称" class="handle-input mr10" v-model="query.username"></el-input> |
|
|
|
<el-input placeholder="请输入登录账号" class="handle-input mr10" v-model="query.uname"></el-input> |
|
|
|
<el-select placeholder="部门名称" class="handle-select mr10" v-model="query.department_id" @change="positionList(0)"> |
|
|
|
<el-option |
|
|
|
v-for="item in tableData3" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select placeholder="职位名称" class="handle-select mr10" v-model="query.position_id"> |
|
|
|
<el-option |
|
|
|
v-for="item in tableData2" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select placeholder="账号角色" class="handle-select mr10" v-model="query.role_id"> |
|
|
|
<el-option |
|
|
|
v-for="item in tableData1" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select placeholder="账号状态" class="handle-select mr10" v-model="query.status"> |
|
|
|
<el-option key="1" label="启用" :value="0"></el-option> |
|
|
|
<el-option key="2" label="禁用" :value="1"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-date-picker |
|
|
|
class="mr10" |
|
|
|
v-model="query.date" |
|
|
|
type="datetimerange" |
|
|
|
:picker-options="pickerOptions" |
|
|
|
range-separator="至" |
|
|
|
value-format="timestamp" |
|
|
|
start-placeholder="开始日期" |
|
|
|
end-placeholder="结束日期" |
|
|
|
align="right" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button> |
|
|
|
</div> |
|
|
|
<el-table |
|
|
|
:data="tableData" |
|
|
|
@ -41,20 +53,17 @@ |
|
|
|
header-cell-class-name="table-header" |
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
> |
|
|
|
<el-table-column prop="id" label="序号" width="55" align="center"></el-table-column> |
|
|
|
<el-table-column prop="name" label="创建时间"></el-table-column> |
|
|
|
<el-table-column label="账户名称" prop="name"></el-table-column> |
|
|
|
<el-table-column prop="address" label="登录账号"></el-table-column> |
|
|
|
<el-table-column label="部门名称" prop="name"></el-table-column> |
|
|
|
<el-table-column label="职位名称" prop="name"></el-table-column> |
|
|
|
<el-table-column label="账号角色" prop="name"></el-table-column> |
|
|
|
<el-table-column label="账号状态" prop="name"> |
|
|
|
<template> |
|
|
|
<el-switch |
|
|
|
v-model="value1" |
|
|
|
> |
|
|
|
</el-switch> |
|
|
|
</template> |
|
|
|
<el-table-column prop="uid" label="序号" width="55" align="center"></el-table-column> |
|
|
|
<el-table-column prop="create_time" label="创建时间" :formatter="formatDate"></el-table-column> |
|
|
|
<el-table-column label="账户名称" prop="username"></el-table-column> |
|
|
|
<el-table-column prop="uname" label="登录账号"></el-table-column> |
|
|
|
<el-table-column label="部门名称" prop="department_name"></el-table-column> |
|
|
|
<el-table-column label="职位名称" prop="position_name"></el-table-column> |
|
|
|
<el-table-column label="账号角色" prop="role_name"></el-table-column> |
|
|
|
<el-table-column label="账号状态" prop="status"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1" @change="editAdminChange(scope.row.uid)"></el-switch> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" width="280" align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
@ -64,7 +73,7 @@ |
|
|
|
>信息变更</el-button> |
|
|
|
<el-button |
|
|
|
type="text" |
|
|
|
@click="handleDelete(scope.$index, scope.row)" |
|
|
|
@click="handleEdit1(scope.$index, scope.row)" |
|
|
|
>重置密码</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
@ -73,21 +82,57 @@ |
|
|
|
<el-pagination |
|
|
|
background |
|
|
|
layout="total, prev, pager, next" |
|
|
|
:current-page="query.pageIndex" |
|
|
|
:page-size="query.pageSize" |
|
|
|
:current-page="query.page" |
|
|
|
:page-size="query.limit" |
|
|
|
:total="pageTotal" |
|
|
|
@current-change="handlePageChange" |
|
|
|
></el-pagination> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 编辑弹出框 --> |
|
|
|
<el-dialog title="编辑" :visible.sync="editVisible" width="30%"> |
|
|
|
<el-form ref="form" :model="form" label-width="70px"> |
|
|
|
<el-form-item label="用户名"> |
|
|
|
<el-input v-model="form.name"></el-input> |
|
|
|
<el-dialog title="信息变更" :visible.sync="editVisible" width="30%" center> |
|
|
|
<el-form ref="form" :model="query1" label-width="90px" :rules="queryRules"> |
|
|
|
<el-form-item label="部门名称:" prop="department_id"> |
|
|
|
<el-select v-model="query1.department_id" placeholder="请选择" @change="positionList(1)"> |
|
|
|
<el-option |
|
|
|
v-for="item in tableData3" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="职位名称:" prop="position_id"> |
|
|
|
<el-select v-model="query1.position_id" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in tableData4" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="账号角色:" prop="role_id"> |
|
|
|
<el-select v-model="query1.role_id" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in tableData1" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="账号名称:" prop="username"> |
|
|
|
<el-input v-model="query1.username" class="form_input" placeholder="请输入"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="地址"> |
|
|
|
<el-input v-model="form.address"></el-input> |
|
|
|
<el-form-item label="登录账号:" > |
|
|
|
<span>{{query1.uname}}</span> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="账号状态:" prop="status"> |
|
|
|
<el-select placeholder="请选择" v-model="query1.status"> |
|
|
|
<el-option key="1" label="启用" :value="0"></el-option> |
|
|
|
<el-option key="2" label="禁用" :value="1"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
@ -95,78 +140,161 @@ |
|
|
|
<el-button type="primary" @click="saveEdit">确 定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
<!-- 编辑弹出框 --> |
|
|
|
<el-dialog title="修改密码" :visible.sync="editVisible1" width="30%" center> |
|
|
|
<el-form ref="form1" :model="query2" label-width="90px" :rules="queryRules"> |
|
|
|
<el-form-item label="旧密码" prop="before_pass"> |
|
|
|
<el-input v-model="query2.before_pass" class="form_input" placeholder="请输入"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="新密码" prop="after_pass"> |
|
|
|
<el-input v-model="query2.after_pass" type="password" class="form_input" placeholder="请输入"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="确认密码" prop="confirmPwd"> |
|
|
|
<el-input v-model="query2.confirmPwd " type="password" class="form_input" placeholder="请输入"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="editVisible = false">取 消</el-button> |
|
|
|
<el-button type="primary" @click="saveEdit1">确 定</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { fetchData } from '../../../../api/index'; |
|
|
|
import { getAdminlist ,editAdminChange,departmentList,positionList,grouplist,editAdmin ,editAdminPass} from '../../../../api/index'; |
|
|
|
import moment from 'moment' |
|
|
|
export default { |
|
|
|
name:'operationList', |
|
|
|
data() { |
|
|
|
return { |
|
|
|
query: { |
|
|
|
address: '', |
|
|
|
name: '', |
|
|
|
pageIndex: 1, |
|
|
|
pageSize: 10 |
|
|
|
id: '', |
|
|
|
page: 1, |
|
|
|
limit: 10, |
|
|
|
date:[], |
|
|
|
role_id: '', |
|
|
|
position_id:'', |
|
|
|
department_id:'', |
|
|
|
uname: '', |
|
|
|
username:'' |
|
|
|
}, |
|
|
|
query2:{ |
|
|
|
id:'', |
|
|
|
confirmPwd:'', |
|
|
|
after_pass:'', |
|
|
|
before_pass:'' |
|
|
|
|
|
|
|
}, |
|
|
|
value1:true, |
|
|
|
tableData: [], |
|
|
|
multipleSelection: [], |
|
|
|
delList: [], |
|
|
|
tableData1: [], |
|
|
|
tableData2: [], |
|
|
|
tableData3: [], |
|
|
|
tableData4:[], |
|
|
|
editVisible: false, |
|
|
|
editVisible1: false, |
|
|
|
pageTotal: 0, |
|
|
|
form: {}, |
|
|
|
idx: -1, |
|
|
|
id: -1, |
|
|
|
query1: {}, |
|
|
|
queryRules:{ |
|
|
|
uname: [{ required: true, message: '请输入登录账号', trigger: 'blur' }], |
|
|
|
after_pass: [{ required: true, message: '请输入新密码', trigger: 'blur' }], |
|
|
|
before_pass: [{ required: true, message: '请输入旧密码', trigger: 'blur' }], |
|
|
|
confirmPwd: [{ required: true, message: '请输入确认密码', trigger: 'blur' }], |
|
|
|
username: [{ required: true, message: '请输入账号名称', trigger: 'blur' }], |
|
|
|
position_id: [{ required: true, message: '请选择职位名称', trigger: 'blur' }], |
|
|
|
department_id: [{ required: true, message: '请选择部门名称', trigger: 'blur' }], |
|
|
|
role_id: [{ required: true, message: '请输选择账号角色', trigger: 'blur' }], |
|
|
|
status: [{ required: true, message: '请输选择账号状态', trigger: 'blur' }], |
|
|
|
}, |
|
|
|
pickerOptions: { |
|
|
|
shortcuts: [ |
|
|
|
{ |
|
|
|
text: "最近一周", |
|
|
|
onClick(picker) { |
|
|
|
const end = new Date(); |
|
|
|
const start = new Date(); |
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
|
|
|
picker.$emit("pick", [start, end]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
text: "最近一个月", |
|
|
|
onClick(picker) { |
|
|
|
const end = new Date(); |
|
|
|
const start = new Date(); |
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
|
|
|
picker.$emit("pick", [start, end]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
text: "最近三个月", |
|
|
|
onClick(picker) { |
|
|
|
const end = new Date(); |
|
|
|
const start = new Date(); |
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
|
|
|
picker.$emit("pick", [start, end]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
shortcuts: [ |
|
|
|
{ |
|
|
|
text: "最近一周", |
|
|
|
onClick(picker) { |
|
|
|
const end = new Date(); |
|
|
|
const start = new Date(); |
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
|
|
|
picker.$emit("pick", [start, end]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
text: "最近一个月", |
|
|
|
onClick(picker) { |
|
|
|
const end = new Date(); |
|
|
|
const start = new Date(); |
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
|
|
|
picker.$emit("pick", [start, end]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
text: "最近三个月", |
|
|
|
onClick(picker) { |
|
|
|
const end = new Date(); |
|
|
|
const start = new Date(); |
|
|
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
|
|
|
picker.$emit("pick", [start, end]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
}; |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.getData(); |
|
|
|
this.departmentList(); |
|
|
|
this.grouplist() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
departmentList() { |
|
|
|
departmentList().then(res => { |
|
|
|
if (res.code==100) { |
|
|
|
this.tableData3 = res.data; |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
grouplist(){ |
|
|
|
grouplist().then(res => { |
|
|
|
if (res.code==100) { |
|
|
|
this.tableData1 = res.data; |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
positionList(type){ |
|
|
|
let data={id:this.query.department_id} |
|
|
|
positionList(data).then(res => { |
|
|
|
if (res.code==100) { |
|
|
|
if (type==1) { |
|
|
|
this.tableData4 = res.data; |
|
|
|
}else{ |
|
|
|
this.tableData2 = res.data; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
editAdminChange(id){ |
|
|
|
let data={id:id} |
|
|
|
editAdminChange(data).then(res => { |
|
|
|
console.log(res); |
|
|
|
if (res.code=100) { |
|
|
|
this.$message.success('修改状态成功~') |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
//时间戳转换时间 |
|
|
|
formatDate(row,colnum){ |
|
|
|
return moment(row[colnum.create_time]).format('YYYY-MM-DD HH:mm:ss') |
|
|
|
}, |
|
|
|
// 获取 easy-mock 的模拟数据 |
|
|
|
getData() { |
|
|
|
fetchData(this.query).then(res => { |
|
|
|
// console.log(res); |
|
|
|
getAdminlist(this.query).then(res => { |
|
|
|
console.log(res); |
|
|
|
this.tableData = res.list; |
|
|
|
this.pageTotal = res.pageTotal || 50; |
|
|
|
this.pageTotal = res.count ; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 触发搜索按钮 |
|
|
|
handleSearch() { |
|
|
|
this.$set(this.query, 'pageIndex', 1); |
|
|
|
this.$set(this.query, 'page', 1); |
|
|
|
this.getData(); |
|
|
|
}, |
|
|
|
// 删除操作 |
|
|
|
@ -187,19 +315,66 @@ export default { |
|
|
|
}, |
|
|
|
// 编辑操作 |
|
|
|
handleEdit(index, row) { |
|
|
|
this.idx = index; |
|
|
|
this.form = row; |
|
|
|
this.editVisible = true; |
|
|
|
let data={id:row.uid} |
|
|
|
getAdminlist(data).then(res => { |
|
|
|
console.log(res); |
|
|
|
if (res.code==100) { |
|
|
|
this.query1 = res.list; |
|
|
|
let data1={id:this.query1.department_id} |
|
|
|
positionList(data1).then(res => { |
|
|
|
console.info(res) |
|
|
|
if (res.code==100) { |
|
|
|
this.tableData4 = res.data; |
|
|
|
this.editVisible = true; |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
handleEdit1(index, row){ |
|
|
|
this.query2.id=row.uid |
|
|
|
this.editVisible1 = true; |
|
|
|
}, |
|
|
|
saveEdit1(){ |
|
|
|
this.$refs.form1.validate(valid => { |
|
|
|
if (valid) { |
|
|
|
if (this.query.confirmPwd==this.query.upass) { |
|
|
|
editAdminPass(this.query2).then(res => { |
|
|
|
console.log(res); |
|
|
|
if (res.code==100) { |
|
|
|
this.editVisible1 = false; |
|
|
|
this.$message.success(`修改密码成功~`); |
|
|
|
Object.keys(this.query2).forEach(key=>{this.query2[key]=''}) |
|
|
|
}else{ |
|
|
|
this.$message.error(res.msg); |
|
|
|
} |
|
|
|
}); |
|
|
|
}else{ |
|
|
|
this.$message.error('新密码与确认密码不一致~'); |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 保存编辑 |
|
|
|
saveEdit() { |
|
|
|
this.editVisible = false; |
|
|
|
this.$message.success(`修改第 ${this.idx + 1} 行成功`); |
|
|
|
this.$set(this.tableData, this.idx, this.form); |
|
|
|
this.$refs.form.validate(valid => { |
|
|
|
if (valid) { |
|
|
|
editAdmin(this.query1).then(res => { |
|
|
|
console.log(res); |
|
|
|
if (res.code==100) { |
|
|
|
this.editVisible = false; |
|
|
|
this.$message.success(`修改成功~`); |
|
|
|
this.getData() |
|
|
|
}else{ |
|
|
|
this.$message.error(res.msg); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 分页导航 |
|
|
|
handlePageChange(val) { |
|
|
|
this.$set(this.query, 'pageIndex', val); |
|
|
|
this.$set(this.query, 'page', val); |
|
|
|
this.getData(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -235,4 +410,7 @@ export default { |
|
|
|
width: 40px; |
|
|
|
height: 40px; |
|
|
|
} |
|
|
|
.form_input{ |
|
|
|
width: 215px; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|