Commit 3f0ad157 authored by xulili's avatar xulili

Merge branch 'dev_xll' into 'master'

用户

See merge request !12
parents 7a02758b 06006856
......@@ -9,13 +9,12 @@ let getRoles = function(){
if(res.status != 200){
resolve([])
}else{
resolve(res.data)
// if(res.data.resultCode == 200){
// let list = res.data.data
// resolve(list)
// }else{
// resolve([])
// }
if(res.data.resultCode == 200){
let list = res.data.data
resolve(list)
}else{
resolve([])
}
}
}).catch(err=>{
......
......@@ -31,7 +31,7 @@
<el-tooltip content="禁用" placement="top">
<el-button
circle
:disabled="scope.row.status == 2"
:disabled="scope.row.status == 2 || scope.row.statusName == '待审核' "
@click="handleOperate(scope.row,'disable')">
<i class="icon-table icon-disable"></i>
</el-button>
......
<template>
<div class="party-table">
<el-table
border
:data="list"
style="width: 100%; height: 100%"
height="100%"
>
<el-table-column label="序号" align="center" width="100">
<template slot-scope="scope">
<span>{{ (currentPage - 1) * 10 + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
align="center"
v-for="(item, index) in feildList"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width"
>
<template slot-scope="scope">
<div v-if="item.isEdit" class="table-btn-group">
<el-tooltip content="修改" placement="top" v-if="userId === scope.row.id">
<el-button circle @click="handleOperate(scope.row, 'edit')" >
<i class="icon-table icon-edit"></i>
</el-button>
</el-tooltip>
<el-tooltip content="查看" placement="top" v-else>
<el-button circle @click="handleOperate(scope.row, 'detail')">
<i class="icon-table icon-detail"></i>
</el-button>
</el-tooltip>
</div>
<div v-else>
<span v-if="item.prop === 'type'">
{{ scope.row[item.prop] | accoutType }}
</span>
<span v-else>{{ scope.row[item.prop] }}</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
userId:localStorage.getItem('userId') || "1375705092221669378"
};
},
props: {
currentPage: {
type: Number,
default: 1,
},
list: {
type: Array,
default: () => {
return [];
},
},
feildList: {
type: Array,
default: () => {
return [];
},
},
},
methods: {
handleOperate(row, type) {
this.handlEmitMsg(row, type);
},
handlEmitMsg(row, type) {
this.$emit("action", {
row: row,
type: type,
});
},
},
};
</script>
<style lang="less">
@import "../../../style/table.less";
</style>
\ No newline at end of file
<template>
<!-- 单位用户单位管理员账号管理 -->
<div class="dbUnit-wrapper height100">
<div class="search-container">
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips"
>可查看本单位其他管理员信息,可以修改自己的管理员信息,修改后的信息同步到平台管理员信息列表中</span
>
</div>
</div>
<div class="table-content">
<db-unit-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination :page="page" @changePage="handleChangeCurrent" />
</div>
<edit-dialog ref="editDialog" @success="getFirstPageList()" />
</div>
</template>
<script>
import { partyPagination } from "@/components/index";
import dbUnitTable from "./components/dbUnitTable";
import { editDialog } from "./dbUnitDialog";
export default {
data() {
return {
form: {
type: 2, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
feildList: [
{ prop: "userName", label: "管理员姓名" },
{ prop: "phone", label: "手机号码" },
{ prop: "telephone", label: "固定电话" },
{ prop: "weChat", label: "微信号" },
{ prop: "email", label: "邮箱" },
{ prop: "", label: "操作", isEdit: true, width: 120 },
],
list: [],
page: {
_index: 1,
_size: 10,
total: 0,
},
activeRow: {}
};
},
components: {
partyPagination,
dbUnitTable,
editDialog
},
mounted() {
this.getFirstPageList();
},
methods: {
// 获取第一页数据列表
getFirstPageList() {
this.page._index = 1;
this.getPageList();
},
getPageList() {
let requestParams = {};
requestParams._index = this.page._index;
requestParams._size = this.page._size;
requestParams.type = this.form.type;
this.$https(
{
method: "get",
url: "tUser/getPageList",
authType: this.backToken,
},
requestParams
)
.then((res) => {
if (res.status != 200) {
this.getResWithOutData();
} else {
if (res.data.resultCode == 200) {
this.list = res.data.data.records;
this.page._size = res.data.data.size;
this.page.total = res.data.data.total;
} else {
this.getResWithOutData();
}
}
})
.catch((err) => {
console.log(err);
});
},
// 编辑
handleEdit() {
this.$refs.editDialog.id = this.activeRow.id;
this.$refs.editDialog.getDetailById();
this.$refs.editDialog.dialogVisible = true;
this.$refs.editDialog.isEdit = true
},
// 查看详情
handleDetail() {
this.$refs.editDialog.id = this.activeRow.id;
this.$refs.editDialog.getDetailById();
this.$refs.editDialog.dialogVisible = true;
this.$refs.editDialog.isEdit = false
},
handleAction(params) {
this.activeRow = params.row;
switch (params.type) {
case "detail":
this.handleDetail();
break;
case "edit":
this.handleEdit();
break;
default:
break;
}
},
// 翻页
handleChangeCurrent() {
this.page._index = val;
this.getPageList();
},
},
};
</script>
<style lang="less" scoped>
.dbUnit-wrapper{
.page-tips{
white-space: nowrap;
}
}
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
:title="`管理员${isEdit?'修改':'查看'}`"
:visible.sync="dialogVisible"
width="468px"
:before-close="handleClose"
>
<div class="dialog-content">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
label-position="top"
class="party-form"
>
<el-form-item label="管理员姓名" prop="userName">
<el-input
v-model="form.userName"
placeholder="请填写管理员姓名"
:readonly="!isEdit"
></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="form.phone"
placeholder="请填写手机号码"
:readonly="!isEdit"
></el-input>
</el-form-item>
<el-form-item label="固定电话" prop="telephone">
<el-input
v-model="form.telephone"
placeholder="请填写固定电话"
:readonly="!isEdit"
></el-input>
</el-form-item>
<el-form-item label="微信" prop="wechat">
<el-input
v-model="form.weChat"
placeholder="请填写微信号"
:readonly="!isEdit"
></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请填写邮箱地址"
:readonly="!isEdit"
></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<div v-if="isEdit">
<el-button @click="handleClose()">取 消</el-button>
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
<div v-else>
<el-button type="primary">确 定</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
var validateMobilePhone = (rule, value, callback) => {
if (value === "") {
callback(new Error("手机号不可为空"));
} else {
if (value !== "") {
var reg = /^1[3456789]\d{9}$/;
if (!reg.test(value)) {
callback(new Error("请输入有效的手机号码"));
}
}
callback();
}
};
return {
dialogVisible: false,
isEdit: true,
id: "",
form: {
id: "",
userName: "",
telephone: "",
phone: "",
weChat: "",
email: "",
type: 2, //1.用户账号 2.平台单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
{ required: true, message: "请选择系统用户名", trigger: "change" },
],
phone: [
{ required: true, validator: validateMobilePhone, trigger: "change" },
],
},
};
},
mounted() {},
methods: {
// 根据id获取获取详情内容
getDetailById() {
let _this = this;
this.$https(
{
method: "get",
url: "tUser/getById",
authType: this.backToken,
},
{ id: _this.id }
)
.then((res) => {
if (res.status == 200) {
if (res.data.resultCode == 200) {
let resData = res.data.data;
for (let key in _this.form) {
_this.form[key] = resData[key];
}
} else {
_this.$message.error(res.data.message);
}
} else {
_this.$message.error(res.data);
}
})
.catch((err) => {
console.log(err);
});
},
// 弹窗关闭
handleClose() {
if (this.isEdit) {
this.$confirm("确认关闭?")
.then((_) => {
this.handleReset();
})
.catch((_) => {});
} else {
this.handleReset();
}
},
handleReset() {
this.dialogVisible = false;
this.$refs.form.resetFields();
this.form = {
id: "",
userName: "",
telephone: "",
phone: "",
weChat: "",
email: "",
type: 2, //1.用户账号 2.平台单位管理员账号 3.机顶盒账号 4.运维账号
}
},
// 提交
handleSubmit() {
// 校验用户输入值
let _this = this;
_this.$refs.form.validate((valid) => {
if (valid) {
let user = {};
user.userName = _this.form.userName;
user.telephone = _this.form.telephone;
user.phone = _this.form.phone;
user.weChat = _this.form.weChat;
user.email = _this.form.email;
user.id = _this.id;
user.type = this.form.type;
this.$https(
{
method: "put",
url: "tUser/update",
authType: _this.backToken,
},
user
)
.then((res) => {
if (res.status == 200) {
if (res.data.resultCode == 200) {
this.$message({
type: "success",
message: res.data.message,
});
_this.dialogVisible = false;
this.$emit("success", true);
} else {
this.$message.error(res.data.message);
this.$emit("success", false);
}
} else {
this.$message.error(res.data);
this.$emit("success", false);
}
})
.catch((err) => {
console.log(res);
});
} else {
console.log("error submit!!");
return false;
}
});
},
}
};
</script>
<style lang="less" scoped>
.form-row {
display: flex;
justify-content: space-between;
}
</style>
\ No newline at end of file
import editDialog from './edit'
export {
editDialog
}
\ No newline at end of file
......@@ -5,7 +5,7 @@
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
v-model="form.name"
placeholder="请输入账号名称、提交人"
suffix-icon="el-icon-search"
clearable
......@@ -60,38 +60,22 @@ export default {
form:{
user:'',
status:''
},
addForm:{
},
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
{label:'待初审',value:1},
{label:'驳回',value:2},
{label:'待复审',value:3},
{label:'通过',value:4}
],
feildList:[
{prop:'username',label:'账号名称'},
{prop:'org',label:'所在机构'},
{prop:'orgName',label:'所在机构'},
{prop:'endTime',label:'提交人'},
{prop:'endTime',label:'提交日期'},
{prop:'endTime',label:'审核状态'},
{prop:'',label:'操作',isEdit:true, width:240},
],
list: [
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
list: []
}
},
components:{ partyPagination, checkTable, addDialog, editDialog},
......
<template>
<!-- 机顶盒运维账号 -->
<div class="stb-amin-wrapper height100">
<!-- 机顶盒运维账号管理 -->
<div class="stb=admin-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
v-model="form.userName"
placeholder="请输入运维人员姓名"
suffix-icon="el-icon-search"
clearable
>
</el-input>
></el-input>
</el-form-item>
<el-form-item>
<el-select
v-model="form.status"
placeholder="请选择账号状态"
clearable
>
<el-select v-model="form.status" placeholder="请选择账号状态">
<el-option
v-for="item in options"
:key="item.value"
v-for="(item, index) in statusOption"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
......@@ -35,92 +30,239 @@
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按按照用户名及账号状态进行信息筛选。可新增机顶盒运维账号,“*”为必填项。</span>
<span class="page-tips"
>可按按照用户名及账号状态进行信息筛选。可新增机顶盒运维账号,“*”为必填项。</span
>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary">新建运维账号</el-button>
<el-button type="primary" @click="handleAdd()">新建运维账户</el-button>
</div>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
<party-pagination :page="page" @changePage="handleChangeCurrent" />
</div>
<!-- <user-dialog/> -->
<add-dialog ref="addDialog" @success="getFirstPageList()" />
<edit-dialog ref="editDialog" @success="getFirstPageList()" />
<msg-dialog ref="msgDilaog" :msgInfo="msgInfo" />
</div>
</template>
<script>
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
// import userDialog from './userDialog/index'
import { partyPagination } from "@/components/index";
import accountTable from "./components/accountTable";
import { addDialog, editDialog } from "./stbDialog/index";
import msgDialog from "./msgDialog.vue";
export default {
data(){
return{
form:{
user:'',
status:''
},
addForm:{
},
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
data() {
return {
form: {
userName: "",
status: "",
type: 4, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
statusOption: [
{ label: "活跃", value: 1 },
{ label: "禁用", value: 2 },
{ label: "待审核", value: 3 },
],
feildList:[
{prop:'username',label:'运维人员姓名'},
{prop:'org',label:'运维区域'},
{prop:'endTime',label:'到期时间'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
feildList: [
{ prop: "userName", label: "运维人员姓名" },
{ prop: "orgName", label: "运维区域" },
{ prop: "exiredDate", label: "到期时间" },
{ prop: "type", label: "账号类型" },
{ prop: "", label: "操作", isEdit: true, width: 280 },
],
list: [
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
list: [],
page: {
_index: 1,
_size: 10,
total: 0,
},
activeRow: {},
msgInfo: {},
};
},
components: {
partyPagination,
accountTable,
addDialog,
editDialog,
msgDialog,
},
mounted() {
this.getFirstPageList();
},
methods: {
getFirstPageList() {
this.page._index = 1;
this.getPageList();
},
handleSubmit() {
this.getPageList();
},
handleReset() {
this.form.userName = "";
this.getFirstPageList();
},
getPageList() {
let requestParams = {};
requestParams._index = this.page._index;
requestParams._size = this.page._size;
requestParams.type = this.form.type;
if (this.form.userName) {
requestParams.userName = this.form.userName;
}
if (this.form.status) {
requestParams.status = this.form.status;
}
this.$https(
{
method: "get",
url: "tUser/getPageList",
authType: this.backToken,
},
components:{ partyPagination, accountTable},
mounted(){
requestParams
)
.then((res) => {
if (res.status != 200) {
this.getResWithOutData();
} else {
if (res.data.resultCode == 200) {
this.list = res.data.data.records;
this.page._size = res.data.data.size;
this.page.total = res.data.data.total;
} else {
this.getResWithOutData();
}
}
})
.catch((err) => {
console.log(err);
});
},
methods:{
handleSubmit(){
// 新增账号
handleAdd() {
this.$refs.addDialog.dialogVisible = true;
},
handleReset(){
this.form.user = ''
// 编辑
handleEdit() {
this.$refs.editDialog.id = this.activeRow.id;
this.$refs.editDialog.getDetailById();
this.$refs.editDialog.dialogVisible = true;
},
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
// 重置密码
handleResetPwd() {
let _this = this;
this.$https({
method: "put",
url: `tUser/resetPassword?userId=${this.activeRow.id}`,
authType: this.backToken,
})
.catch(_ => {});
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "success",
des: `用户${this.activeRow.userName}密码已重置!`,
};
_this.$refs.msgDilaog.dialogVisible = true;
} else {
_this.$message.error(res.data.message);
}
}
})
.catch((err) => {
console.log(err);
});
},
handleAction(params){
console.log(params.type)
// 禁用
handleDisable() {
let _this = this;
this.$https({
method: "put",
url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken,
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "wait",
des: `${this.activeRow.userName}账号禁用申请已提交,待审核…`,
};
_this.$refs.msgDilaog.dialogVisible = true;
_this.getPageList();
} else {
_this.$message.error(res.data.message);
}
}
}
})
.catch((err) => {
console.log(err);
});
},
// 激活
handleActive() {
let _this = this;
this.$https({
method: "put",
url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken,
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "success",
des: `用户${this.activeRow.userName}账号激活成功!`,
};
_this.$refs.msgDilaog.dialogVisible = true;
_this.getPageList();
} else {
this.$message.error(res.data.message);
}
}
})
.catch((err) => {
console.log(err);
});
},
handleAction(params) {
this.activeRow = params.row;
switch (params.type) {
case "enable":
this.handleActive();
break;
case "disable":
this.handleDisable();
break;
case "reset":
this.handleResetPwd();
break;
case "edit":
this.handleEdit();
break;
default:
break;
}
},
// 翻页
handleChangeCurrent() {
this.page._index = val;
this.getPageList();
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
title="新建运维账号"
:visible.sync="dialogVisible"
width="468px"
:before-close="handleClose"
>
<div class="dialog-content">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
label-position="top"
class="party-form"
>
<el-form-item label="运维人员姓名" prop="userName">
<el-input v-model="form.userName" placeholder="请填写"></el-input>
</el-form-item>
<el-form-item label="运维区域" prop="areaId">
<el-cascader
v-model="form.areaId"
change-on-select
:props="cascaderProps"
:options="areaOptions"
placeholder="请选择区域"
clearable
>
</el-cascader>
</el-form-item>
<el-form-item label="账号有效期" prop="permanent">
<el-radio-group v-model="form.permanent">
<el-radio :label="true">永久有效</el-radio>
<el-radio :label="false">设置有效期</el-radio>
</el-radio-group>
<div v-if="!form.permanent">
<el-date-picker
class="mt16"
v-model="form.date"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="handleClose()">取 消</el-button>
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import { getOrgListWithOutPage } from "@/config/organ";
import { getAreas } from "@/config/area";
export default {
data() {
return {
dialogVisible: false,
organList: [],
areaOptions: [],
form: {
userName: "",
areaId: [],
permanent: true,
date: "",
type: 4, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
cascaderProps: {
label: "name",
value: "code",
checkStrictly: true,
},
rules: {
userName: [
{ required: true, message: "请运维人员姓名", trigger: "change" },
],
areaId: [
{
type: "array",
required: true,
message: "请选择运维区域",
trigger: "change",
},
],
permanent: [
{ required: true, message: "请选择账号有效期", trigger: "change" },
],
},
};
},
mounted() {
this.getOrgList();
this.getAreas();
},
methods: {
// 获取机构列表
getOrgList() {
getOrgListWithOutPage().then((res) => {
this.organList = res;
});
},
// 获取区域数据
getAreas() {
getAreas().then((res) => {
this.areaOptions = res;
});
},
// 弹窗关闭
handleClose() {
this.$confirm("确认关闭?")
.then((_) => {
this.handleReset();
})
.catch((_) => {});
},
handleReset() {
this.dialogVisible = false;
this.$refs.form.resetFields();
this.form = {
userName: "",
areaId: [],
permanent: true,
date: "",
type: 4, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
}
},
// 提交
handleSubmit() {
// 校验用户输入值
let _this = this
this.$refs.form.validate((valid) => {
if (valid) {
let user = {};
if (!this.form.permanent && !this.form.date) {
this.$message.error("请选择有效期");
return false;
}
if (!this.form.permanent) {
user.effectiveDate = this.form.date[0];
user.exiredDate = this.form.date[1];
}
user.userName = this.form.userName;
user.areaId = [...this.form.areaId].pop();
user.permanent = this.form.permanent;
user.type = this.form.type;
let requetsparams = this.$qs.stringify(user)
this.$https(
{
method: "post",
url: "tUser/operationAdd",
authType: this.backToken,
},
requetsparams
)
.then((res) => {
debugger
if (res.status == 200) {
if (res.data.resultCode == 200) {
this.$message({
type: "success",
message: res.data.message,
});
this.handleReset();
this.$emit("success", true);
} else {
this.$message.error(res.data.message);
}
} else {
this.$message.error(res.data);
}
})
.catch((err) => {
console.log(res);
});
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
title="编辑运维账号"
:visible.sync="dialogVisible"
width="468px"
:before-close="handleClose"
>
<div class="dialog-content">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
label-position="top"
class="party-form"
>
<el-form-item label="运维人员姓名" prop="userName">
<el-input v-model="form.userName" placeholder="请填写"></el-input>
</el-form-item>
<el-form-item label="运维区域" prop="areaId">
<el-cascader
ref="cascader"
v-model="form.areaId"
change-on-select
:props="cascaderProps"
:options="areaOptions"
placeholder="请选择区域"
clearable
>
</el-cascader>
</el-form-item>
<el-form-item label="账号有效期" prop="permanent">
<el-radio-group v-model="form.permanent">
<el-radio :label="true">永久有效</el-radio>
<el-radio :label="false">设置有效期</el-radio>
</el-radio-group>
<div v-if="!form.permanent">
<el-date-picker
class="mt16"
v-model="form.date"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="handleClose()">取 消</el-button>
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import { getOrgListWithOutPage } from "@/config/organ";
import { getAreas } from "@/config/area";
export default {
data() {
return {
dialogVisible: false,
areaOptions: [],
form: {
id: "",
userName: "",
areaId: ["110000","110100","110101"],
permanent: true,
date: "",
type: 4, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
cascaderProps: {
label: "name",
value: "code",
checkStrictly: true,
},
rules: {
userName: [
{ required: true, message: "请运维人员姓名", trigger: "change" },
],
areaId: [
{
type: "array",
required: true,
message: "请选择运维区域",
trigger: "change",
},
],
permanent: [
{ required: true, message: "请选择账号有效期", trigger: "change" },
],
},
};
},
mounted() {
this.getAreas();
},
methods: {
// 获取区域数据
getAreas() {
getAreas().then((res) => {
this.areaOptions = res;
});
},
// 根据id获取获取详情内容
getDetailById() {
let _this = this;
this.$https(
{
method: "get",
url: "tUser/getById",
authType: this.backToken,
},
{ id: _this.id }
)
.then((res) => {
if (res.status == 200) {
if (res.data.resultCode == 200) {
let resData = res.data.data;
for (let key in _this.form) {
if(key != 'areaId'){
this.form[key] = resData[key];
}
}
// _this.form.areaId = resData.areas
if (!_this.form.permanent) {
_this.form.date = [resData.effectiveDate, resData.exiredDate];
}
} else {
_this.$message.error(res.data.message);
}
} else {
_this.$message.error(res.data);
}
})
.catch((err) => {
console.log(err);
});
},
// 弹窗关闭
handleClose() {
this.$confirm("确认关闭?")
.then((_) => {
this.handleReset();
})
.catch((_) => {});
},
handleReset() {
this.dialogVisible = false;
this.$refs.form.resetFields();
this.form = {
id: "",
userName: "",
areaId: [],
permanent: true,
date: "",
type: 4, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
};
},
// 提交
handleSubmit() {
// 校验用户输入值
this.$refs.form.validate((valid) => {
if (valid) {
let user = {};
if (!this.form.permanent && !this.form.date) {
this.$message.error("请选择有效期");
return false;
}
if (!this.form.permanent) {
user.effectiveDate = this.form.date[0];
user.exiredDate = this.form.date[1];
}
user.userName = this.form.userName;
user.areaId = [...this.form.areaId].pop();
user.permanent = this.form.permanent;
user.type = this.form.type;
user.id = this.form.id;
this.$https(
{
method: "put",
url: "tUser/update",
authType: this.backToken,
},
user
)
.then((res) => {
if (res.status == 200) {
if (res.data.resultCode == 200) {
this.$message({
type: "success",
message: res.data.message,
});
this.handleReset();
this.$emit("success", true);
} else {
this.$message.error(res.data.message);
}
} else {
this.$message.error(res.data);
}
})
.catch((err) => {
console.log(res);
});
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
import addDialog from './add'
import editDialog from './edit'
export {
addDialog,
editDialog
}
\ No newline at end of file
<template>
<!-- 平台用户单位管理员账号管理 -->
<div class="unit-admin-wrapper height100">
<div class="user-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
v-model="form.user"
placeholder="请输入管理人员姓名"
v-model="form.userName"
placeholder="请输入管理员姓名"
suffix-icon="el-icon-search"
clearable
>
</el-input>
></el-input>
</el-form-item>
<el-form-item>
<el-select
v-model="form.status"
placeholder="请选择单位名称"
clearable
>
v-model="form.orgId"
filterable
placeholder="请选择所属单位"
clearable>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
v-for="item in organList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-cascader :options="areaOption" :show-all-levels="false"></el-cascader>
<el-cascader
v-model="form.areaId"
change-on-select
:props="cascaderProps"
:options="areaOptions"
placeholder="请选择区域"
clearable>
</el-cascader>
</el-form-item>
<el-form-item>
<div class="btn-group">
......@@ -38,93 +45,273 @@
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">管理员姓名即管理员用户名。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span>
<span class="page-tips"
>管理员姓名即管理员用户名。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span
>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary">新建账号</el-button>
<el-button type="primary" @click="handleAdd()">新建账户</el-button>
</div>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table
:feildList="feildList"
:list="list"
@action="handleAction"
/>
<party-pagination/>
<party-pagination :page="page" @changePage="handleChangeCurrent" />
</div>
<!-- <user-dialog/> -->
<add-dialog ref="addDialog" @success="getFirstPageList()" />
<edit-dialog ref="editDialog" @success="getFirstPageList()" />
<msg-dialog ref="msgDilaog" :msgInfo="msgInfo" />
</div>
</template>
<script>
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
// import userDialog from './userDialog/index'
import { partyPagination } from "@/components/index";
import accountTable from "./components/accountTable";
import { addDialog, editDialog } from "./unitAdminDialog";
import msgDialog from "./msgDialog.vue";
import { getAreas } from "@/config/area";
import { getOrgListWithOutPage } from "@/config/organ";
export default {
data(){
return{
form:{
user:'',
status:''
},
addForm:{
},
areaOption:[],
options:[
{label:'待激活',value:0},
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
],
feildList:[
{prop:'username',label:'运维人员姓名'},
{prop:'org',label:'运维区域'},
{prop:'endTime',label:'到期时间'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
data() {
return {
form: {
userName: "",
orgId:'',
type: 2, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
areaId:[]
},
feildList: [
{ prop: "userName", label: "管理员姓名" },
{ prop: "phone", label: "手机号码" },
{ prop: "telephone", label: "固定电话" },
{ prop: "weChat", label: "微信号" },
{ prop: "email", label: "邮箱" },
{ prop: "orgName", label: "所属单位" },
{ prop: "exiredDate", label: "到期时间" },
{ prop: "statusName", label: "账号状态" },
{ prop: "", label: "操作", isEdit: true, width: 280 },
],
list: [
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'},
]
list: [],
page: {
_index: 1,
_size: 10,
total: 0,
},
activeRow: {},
msgInfo: {},
organList: [],
areaOptions: [],
cascaderProps: {
label: "name",
value: "code",
checkStrictly: true,
},
};
},
components: {
partyPagination,
accountTable,
addDialog,
editDialog,
msgDialog,
},
mounted() {
this.getOrgList();
this.getAreas();
this.getFirstPageList();
},
methods: {
// 获取区域数据
getAreas() {
getAreas().then((res) => {
this.areaOptions = res;
});
},
// 获取机构列表
getOrgList() {
getOrgListWithOutPage().then((res) => {
this.organList = res;
});
},
// 获取第一页数据列表
getFirstPageList() {
this.page._index = 1;
this.getPageList();
},
// 查询数据
handleSubmit() {
this.getPageList();
},
// 重置查询
handleReset() {
this.form = {
userName: "",
orgId:'',
type:2,
areaId:[]
}
this.getFirstPageList();
},
getPageList() {
let requestParams = {};
requestParams._index = this.page._index;
requestParams._size = this.page._size;
requestParams.type = this.form.type;
if (this.form.userName) {
requestParams.userName = this.form.userName;
}
if (this.form.orgId) {
requestParams.orgId = this.form.orgId;
}
if(this.form.areaId.length>0){
requestParams.areaId = [...this.form.areaId].pop();
}
this.$https(
{
method: "get",
url: "tUser/getPageList",
authType: this.backToken,
},
components:{ partyPagination, accountTable},
mounted(){
requestParams
)
.then((res) => {
if (res.status != 200) {
this.getResWithOutData();
} else {
if (res.data.resultCode == 200) {
this.list = res.data.data.records;
this.page._size = res.data.data.size;
this.page.total = res.data.data.total;
} else {
this.getResWithOutData();
}
}
})
.catch((err) => {
console.log(err);
});
},
methods:{
handleSubmit(){
// 新增账号
handleAdd() {
this.$refs.addDialog.dialogVisible = true;
},
handleReset(){
this.form.user = ''
// 编辑
handleEdit() {
this.$refs.editDialog.id = this.activeRow.id;
this.$refs.editDialog.getDetailById();
this.$refs.editDialog.dialogVisible = true;
},
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
// 重置密码
handleResetPwd() {
let _this = this;
this.$https({
method: "put",
url: `tUser/resetPassword?userId=${this.activeRow.id}`,
authType: this.backToken,
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "success",
des: `用户${this.activeRow.userName}密码已重置!`,
};
_this.$refs.msgDilaog.dialogVisible = true;
} else {
_this.$message.error(res.data.message);
}
}
})
.catch(_ => {});
.catch((err) => {
console.log(err);
});
},
handleAction(params){
console.log(params.type)
// 禁用
handleDisable() {
let _this = this;
this.$https({
method: "put",
url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken,
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "wait",
des: `${this.activeRow.userName}账号禁用申请已提交,待审核…`,
};
_this.$refs.msgDilaog.dialogVisible = true;
_this.getPageList();
} else {
_this.$message.error(res.data.message);
}
}
}
})
.catch((err) => {
console.log(err);
});
},
// 激活
handleActive() {
let _this = this;
this.$https({
method: "put",
url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken,
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "success",
des: `用户${this.activeRow.userName}账号激活成功!`,
};
_this.$refs.msgDilaog.dialogVisible = true;
_this.getPageList();
} else {
this.$message.error(res.data.message);
}
}
})
.catch((err) => {
console.log(err);
});
},
handleAction(params) {
this.activeRow = params.row;
switch (params.type) {
case "enable":
this.handleActive();
break;
case "disable":
this.handleDisable();
break;
case "reset":
this.handleResetPwd();
break;
case "edit":
this.handleEdit();
break;
default:
break;
}
},
// 翻页
handleChangeCurrent() {
this.page._index = val;
this.getPageList();
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
title="新建账号"
:visible.sync="dialogVisible"
width="720px"
:before-close="handleClose"
>
<div class="dialog-content">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
label-position="top"
class="party-form"
>
<div class="form-row">
<div>
<el-form-item label="管理员姓名" prop="userName">
<el-input
v-model="form.userName"
placeholder="请填写管理员姓名"
></el-input>
</el-form-item>
<el-form-item label="固定电话" prop="telephone">
<el-input
v-model="form.telephone"
placeholder="请填写固定电话"
></el-input>
</el-form-item>
<el-form-item label="单位名称" prop="orgId">
<el-select v-model="form.orgId" filterable placeholder="请选择">
<el-option
v-for="item in organList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="账号有效期" prop="permanent">
<el-radio-group v-model="form.permanent">
<el-radio :label="true">永久有效</el-radio>
<el-radio :label="false">设置有效期</el-radio>
</el-radio-group>
<div v-if="!form.permanent">
<el-date-picker
class="mt16"
v-model="form.date"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-form-item>
</div>
<div>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="form.phone"
placeholder="请填写手机号码"
></el-input>
</el-form-item>
<el-form-item label="微信" prop="wechat">
<el-input
v-model="form.weChat"
placeholder="请填写微信号"
></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请填写邮箱地址"
></el-input>
</el-form-item>
</div>
</div>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="handleClose()">取 消</el-button>
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import { getOrgListWithOutPage } from "@/config/organ";
import { getRoles } from "@/config/roles";
export default {
data() {
var validateMobilePhone = (rule, value, callback) => {
if (value === "") {
callback(new Error("手机号不可为空"));
} else {
if (value !== "") {
var reg = /^1[3456789]\d{9}$/;
if (!reg.test(value)) {
callback(new Error("请输入有效的手机号码"));
}
}
callback();
}
};
return {
dialogVisible: false,
organList: [],
form: {
userName: "",
telephone: "",
orgId: "",
permanent: true,
date: "",
phone: "",
weChat: "",
email: "",
type: 2, //1.用户账号 2.平台单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
{ required: true, message: "请填写管理员姓名", trigger: "change" },
],
orgId: [
{ required: true, message: "请输入所在机构", trigger: "change" },
],
permanent: [
{ required: true, message: "请选择账号有效期", trigger: "change" },
],
phone: [
{ required: true, validator: validateMobilePhone, trigger: "change" },
],
},
};
},
mounted() {
this.getOrgList();
},
methods: {
// 获取机构列表
getOrgList() {
getOrgListWithOutPage().then((res) => {
this.organList = res;
});
},
// 弹窗关闭
handleClose() {
this.$confirm("确认关闭?")
.then((_) => {
this.handleReset();
})
.catch((_) => {});
},
handleReset() {
this.dialogVisible = false;
this.$refs.form.resetFields();
this.form = {
userName: "",
orgId: "",
permanent: true,
date: "",
roleList: [],
type: 1,
};
},
// 提交
handleSubmit() {
// 校验用户输入值
this.$refs.form.validate((valid) => {
if (valid) {
let user = {};
if (!this.form.permanent && !this.form.date) {
this.$message.error("请选择有效期");
return false;
}
if(this.form.telephone){
user.telephone = this.form.telephone;
}
if (!this.form.email) {
user.email = this.form.email;
}
if (!this.form.weChat) {
user.weChat = this.form.weChat;
}
if (!this.form.permanent) {
user.effectiveDate = this.form.date[0];
user.exiredDate = this.form.date[1];
}
user.permanent = this.form.permanent;
user.userName = this.form.userName;
user.orgId = this.form.orgId;
user.type = this.form.type;
this.$https(
{
method: "post",
url: "tUser/add",
authType: this.backToken,
},
user
)
.then((res) => {
if (res.status == 200) {
if (res.data.resultCode == 200) {
this.$message({
type: "success",
message: res.data.message,
});
this.handleReset();
this.$emit("success", true);
} else {
this.$message.error(res.data.message);
}
} else {
this.$message.error(res.data);
}
})
.catch((err) => {
console.log(err);
});
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
<style lang="less" scoped>
.form-row {
display: flex;
justify-content: space-between;
}
</style>
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
title="编辑账号"
:visible.sync="dialogVisible"
width="720px"
:before-close="handleClose"
>
<div class="dialog-content">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="80px"
label-position="top"
class="party-form"
>
<div class="form-row">
<div>
<el-form-item label="管理员姓名" prop="userName">
<el-input
v-model="form.userName"
placeholder="请填写管理员姓名"
></el-input>
</el-form-item>
<el-form-item label="固定电话" prop="telephone">
<el-input
v-model="form.telephone"
placeholder="请填写固定电话"
></el-input>
</el-form-item>
<el-form-item label="单位名称" prop="orgId">
<el-select v-model="form.orgId" filterable placeholder="请选择">
<el-option
v-for="item in organList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="账号有效期" prop="permanent">
<el-radio-group v-model="form.permanent">
<el-radio :label="true">永久有效</el-radio>
<el-radio :label="false">设置有效期</el-radio>
</el-radio-group>
<div v-if="!form.permanent">
<el-date-picker
class="mt16"
v-model="form.date"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</el-form-item>
</div>
<div>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="form.phone"
placeholder="请填写手机号码"
></el-input>
</el-form-item>
<el-form-item label="微信" prop="wechat">
<el-input
v-model="form.weChat"
placeholder="请填写微信号"
></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请填写邮箱地址"
></el-input>
</el-form-item>
</div>
</div>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="handleClose()">取 消</el-button>
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import { getOrgListWithOutPage } from "@/config/organ";
import { getRoles } from "@/config/roles";
export default {
data() {
var validateMobilePhone = (rule, value, callback) => {
if (value === "") {
callback(new Error("手机号不可为空"));
} else {
if (value !== "") {
var reg = /^1[3456789]\d{9}$/;
if (!reg.test(value)) {
callback(new Error("请输入有效的手机号码"));
}
}
callback();
}
};
return {
dialogVisible: false,
organList: [],
rolesList: [],
id:'',
form: {
id:'',
userName: "",
telephone: "",
orgId: "",
permanent: true,
date: "",
phone: "",
weChat: "",
email: "",
type: 2, //1.用户账号 2.平台单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
{ required: true, message: "请选择系统用户名", trigger: "change" },
],
orgId: [
{ required: true, message: "请输入所在机构", trigger: "change" },
],
permanent: [
{ required: true, message: "请选择账号有效期", trigger: "change" },
],
roleList: [
{ type: 'array',required: true, message: "请选择账号类型", trigger: "change" },
]
},
};
},
mounted() {
this.getOrgList();
},
methods: {
// 获取机构列表
getOrgList() {
getOrgListWithOutPage().then((res) => {
this.organList = res;
});
},
// 根据id获取获取详情内容
getDetailById(){
let _this = this
this.$https(
{
method: "get",
url: "tUser/getById",
authType: this.backToken,
},
{id:_this.id}
)
.then((res) => {
if(res.status == 200 ){
if (res.data.resultCode == 200 ) {
let resData = res.data.data
for(let key in _this.form){
this.form[key] = resData[key]
}
if(!this.form.permanent){
this.form.date = [
resData.effectiveDate,
resData.exiredDate
]
}
} else {
_this.$message.error(res.data.message);
}
} else {
_this.$message.error(res.data);
}
})
.catch((err) => {
console.log(err);
});
},
// 弹窗关闭
handleClose() {
this.$confirm("确认关闭?")
.then((_) => {
this.handleReset()
})
.catch((_) => {});
},
handleReset(){
this.dialogVisible = false
this.$refs.form.resetFields()
this.form = {
userName: "",
orgId: "",
permanent: true,
date: "",
roleList: [],
type:1
}
},
// 提交
handleSubmit() {
// 校验用户输入值
let _this = this
_this.$refs.form.validate((valid) => {
if (valid) {
let user = {};
if(!_this.form.permanent && !_this.form.date){
_this.$message.error('请选择有效期')
return false
}
if(!_this.form.permanent){
user.effectiveDate = _this.form.date[0];
user.exiredDate = _this.form.date[1];
}
user.userName = _this.form.userName;
user.orgId = _this.form.orgId;
user.roleList = _this.form.roleList
user.permanent = _this.form.permanent;
user.id = _this.id
user.type = this.form.type
this.$https(
{
method: "put",
url: "tUser/update",
authType: _this.backToken,
},
user
)
.then((res) => {
if(res.status == 200 ){
if (res.data.resultCode == 200 ) {
this.$message({
type: "success",
message: res.data.message,
});
_this.dialogVisible = false
this.$emit('success',true)
} else {
this.$message.error(res.data.message);
this.$emit('success',false)
}
} else {
this.$message.error(res.data);
this.$emit('success',false)
}
})
.catch((err) => {
console.log(err);
});
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
<style lang="less" scoped>
.form-row {
display: flex;
justify-content: space-between;
}
</style>
\ No newline at end of file
import addDialog from './add'
import editDialog from './edit'
export {
addDialog,
editDialog
}
\ No newline at end of file
<template>
<el-dialog
custom-class="party-dialog"
title="提示"
:visible.sync="dialogVisible"
width="468px"
:before-close="handleClose">
<div class="dialog-content">
<el-form ref="form" :model="form" label-width="80px" label-position="top" class="party-form">
<el-form-item label="系统用户名" >
<el-input v-model="form.name" placeholder="请填写"></el-input>
</el-form-item>
<el-form-item label="所在机构" >
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="账号有效期" >
<el-radio-group v-model="form.radio">
<el-radio :label="3">永久有效</el-radio>
<el-radio :label="6">设置有效期</el-radio>
</el-radio-group>
<el-date-picker
class="mt16"
v-model="form.date"
type="date"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="账号状态" >
<el-radio-group v-model="form.radio">
<el-radio :label="3">激活</el-radio>
<el-radio :label="6">禁用</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="账号类型" >
<el-checkbox-group v-model="form.name">
<el-checkbox label="超级管理员" name="type"></el-checkbox>
<el-checkbox label="后台管理员" name="type"></el-checkbox>
<el-checkbox label="展板管理员" name="type"></el-checkbox>
<el-checkbox label="视频管理员" name="type"></el-checkbox>
<el-checkbox label="视频及展板审核" name="type"></el-checkbox>
<el-checkbox label="账号禁用审核员" name="type"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer btn-group">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
export default {
data(){
return {
dialogVisible:false,
form:{
name:'',
date:''
}
}
},
methods:{
// 弹窗关闭
handleClose(){
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -82,6 +82,7 @@ export default {
permanent: true,
date: "",
roleList: [],
type: 1 //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
......@@ -134,6 +135,7 @@ export default {
permanent: true,
date: "",
roleList: [],
type:1
}
},
// 提交
......@@ -152,8 +154,9 @@ export default {
}
user.userName = this.form.userName;
user.orgId = this.form.orgId;
user.roleList = this.form.roleList.map(v=>{return {id:v}});
user.roleList = this.form.roleList;
user.permanent = this.form.permanent;
user.type = this.form.type
this.$https(
{
method: "post",
......@@ -173,11 +176,9 @@ export default {
this.$emit('success',true)
} else {
this.$message.error(res.data.message);
this.$emit('success',false)
}
} else {
this.$message.error(res.data);
this.$emit('success',false)
}
})
.catch((err) => {
......
......@@ -78,11 +78,13 @@ export default {
rolesList: [],
id:'',
form: {
id:'',
userName: "",
orgId: "",
permanent: true,
date: "",
roleList: [],
type: 1 //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
......@@ -103,10 +105,6 @@ export default {
mounted() {
this.getOrgList();
this.getRolesList();
setTimeout(v=>{
this.getDetailById()
},100)
},
methods: {
// 获取机构列表
......@@ -123,25 +121,34 @@ export default {
},
// 根据id获取获取详情内容
getDetailById(){
let _this = this
this.$https(
{
method: "get",
url: "tUser/getById",
authType: this.backToken,
},
{id:this.id}
{id:_this.id}
)
.then((res) => {
// if(res.status == 200 ){
// if (res.data.resultCode == 200 ) {
// console.log(res)
// } else {
// this.$message.error(res.data.message);
// }
// } else {
// this.$message.error(res.data);
// }
if(res.status == 200 ){
if (res.data.resultCode == 200 ) {
let resData = res.data.data
for(let key in _this.form){
this.form[key] = resData[key]
}
if(!this.form.permanent){
this.form.date = [
resData.effectiveDate,
exiredDate
]
}
} else {
_this.$message.error(res.data.message);
}
} else {
_this.$message.error(res.data);
}
})
.catch((err) => {
console.log(err);
......@@ -164,31 +171,35 @@ export default {
permanent: true,
date: "",
roleList: [],
type:1
}
},
// 提交
handleSubmit() {
// 校验用户输入值
this.$refs.form.validate((valid) => {
let _this = this
_this.$refs.form.validate((valid) => {
if (valid) {
let user = {};
if(!this.form.permanent && !this.form.date){
this.$message.error('请选择有效期')
if(!_this.form.permanent && !_this.form.date){
_this.$message.error('请选择有效期')
return false
}
if(!this.form.permanent){
user.effectiveDate = this.form.date[0];
user.exiredDate = this.form.date[1];
if(!_this.form.permanent){
user.effectiveDate = _this.form.date[0];
user.exiredDate = _this.form.date[1];
}
user.userName = this.form.userName;
user.orgId = this.form.orgId;
user.roleList = this.form.roleList.map(v=>{return {id:v}});
user.permanent = this.form.permanent;
user.userName = _this.form.userName;
user.orgId = _this.form.orgId;
user.roleList = _this.form.roleList
user.permanent = _this.form.permanent;
user.id = _this.id
user.type = this.form.type
this.$https(
{
method: "post",
url: "tUser/add",
authType: this.backToken,
method: "put",
url: "tUser/update",
authType: _this.backToken,
},
user
)
......@@ -199,7 +210,7 @@ export default {
type: "success",
message: res.data.message,
});
this.handleReset()
_this.dialogVisible = false
this.$emit('success',true)
} else {
this.$message.error(res.data.message);
......
......@@ -19,7 +19,9 @@
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips">可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span>
<span class="page-tips"
>可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span
>
</div>
</div>
<div class="table-content">
......@@ -31,214 +33,217 @@
:list="list"
@action="handleAction"
/>
<party-pagination
:page="page"
@changePage="handleChangeCurrent"
/>
<party-pagination :page="page" @changePage="handleChangeCurrent" />
</div>
<add-dialog
ref="addUserDialog"
@success="getFirstPageList()"
/>
<edit-dialog
ref="editUserDialog"
@success="getFirstPageList()"
/>
<msg-dialog
ref="msgDilaog"
:msgInfo="msgInfo"
/>
<add-dialog ref="addDialog" @success="getFirstPageList()" />
<edit-dialog ref="editDialog" @success="getFirstPageList()" />
<msg-dialog ref="msgDilaog" :msgInfo="msgInfo" />
</div>
</template>
<script>
import { partyPagination } from '@/components/index'
import accountTable from './components/accountTable'
import {addDialog, editDialog} from './userDialog/index'
import msgDialog from './msgDialog.vue'
import { partyPagination } from "@/components/index";
import accountTable from "./components/accountTable";
import { addDialog, editDialog } from "./userDialog/index";
import msgDialog from "./msgDialog.vue";
export default {
data(){
return{
form:{
userName:''
},
feildList:[
{prop:'userName',label:'平台用户名'},
{prop:'orgName',label:'所在机构'},
{prop:'exiredDate',label:'到期时间'},
{prop:'type',label:'账号类型'},
{prop:'statusName',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
data() {
return {
form: {
userName: "",
type: 1, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
feildList: [
{ prop: "userName", label: "平台用户名" },
{ prop: "orgName", label: "所在机构" },
{ prop: "exiredDate", label: "到期时间" },
{ prop: "type", label: "账号类型" },
{ prop: "statusName", label: "账号状态" },
{ prop: "", label: "操作", isEdit: true, width: 280 },
],
list: [],
page:{
_index:1,
_size:10,
total:0
page: {
_index: 1,
_size: 10,
total: 0,
},
activeRow:{},
msgInfo:{}
}
activeRow: {},
msgInfo: {},
};
},
components:{
components: {
partyPagination,
accountTable,
addDialog,
editDialog,
msgDialog
msgDialog,
},
mounted(){
this.getPageList()
mounted() {
this.getFirstPageList();
},
methods:{
getFirstPageList(){
this.page._index = 1
this.getPageList()
methods: {
getFirstPageList() {
this.page._index = 1;
this.getPageList();
},
handleSubmit(){
this.getPageList()
handleSubmit() {
this.getPageList();
},
handleReset(){
this.form.userName = ''
handleReset() {
this.form.userName = "";
this.getFirstPageList();
},
getPageList(){
let requestParams = {}
requestParams._index = this.page._index
requestParams._size = this.page._size
if(this.form.userName){
requestParams.userName = this.form.userName
}
this.$https({
method:'get',
url: 'tUser/getPageList',
getPageList() {
let requestParams = {};
requestParams._index = this.page._index;
requestParams._size = this.page._size;
requestParams.type = this.form.type;
if (this.form.userName) {
requestParams.userName = this.form.userName;
}
this.$https(
{
method: "get",
url: "tUser/getPageList",
authType: this.backToken,
},requestParams).then(res=>{
if(res.status != 200){
this.getResWithOutData()
}else{
if(res.data.resultCode == 200){
this.list = res.data.data.records
this.page._size = res.data.data.size
this.page.total = res.data.data.total
}else{
this.getResWithOutData()
},
requestParams
)
.then((res) => {
if (res.status != 200) {
this.getResWithOutData();
} else {
if (res.data.resultCode == 200) {
this.list = res.data.data.records;
this.page._size = res.data.data.size;
this.page.total = res.data.data.total;
} else {
this.getResWithOutData();
}
}
}).catch(err=>{
console.log(err)
})
.catch((err) => {
console.log(err);
});
},
// 新增账号
handleAdd(){
this.$refs.addUserDialog.dialogVisible = true
handleAdd() {
this.$refs.addDialog.dialogVisible = true;
},
// 编辑
handleEdit(){
handleEdit() {
this.$refs.editDialog.id = this.activeRow.id
this.$refs.editDialog.getDetailById()
this.$refs.editDialog.dialogVisible = true;
},
// 重置密码
handleResetPwd(){
let requestParams = {userId: this.activeRow.id}
handleResetPwd() {
let _this = this;
this.$https({
method:'put',
url: 'tUser/resetPassword',
method: "put",
url: `tUser/resetPassword?userId=${this.activeRow.id}`,
authType: this.backToken,
},requestParams).then(res=>{
if(res.status != 200){
this.$message.error(res.data.message)
}else{
if(res.data.resultCode == 200){
this.msgInfo = {
type:'success',
des:`用户${this.activeRow.userName}密码已重置!`
}
this.$refs.msgDilaog.dialogVisible = true
}else{
this.$message.error(res.data.message)
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "success",
des: `用户${this.activeRow.userName}密码已重置!`,
};
_this.$refs.msgDilaog.dialogVisible = true;
} else {
_this.$message.error(res.data.message);
}
}
}).catch(err=>{
console.log(err)
})
.catch((err) => {
console.log(err);
});
},
// 禁用
handleDisable(){
let requestParams = {userId: this.activeRow.id}
handleDisable() {
let _this = this;
this.$https({
method:'put',
url: 'tUser/disable',
method: "put",
url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken,
},requestParams).then(res=>{
if(res.status != 200){
this.$message.error(res.data.message)
}else{
if(res.data.resultCode == 200){
this.msgInfo = {
type:'wait',
des:`${this.activeRow.userName}账号禁用申请已提交,待审核…`
}
this.$refs.msgDilaog.dialogVisible = true
this.getPageList()
}else{
this.$message.error(res.data.message)
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "wait",
des: `${this.activeRow.userName}账号禁用申请已提交,待审核…`,
};
_this.$refs.msgDilaog.dialogVisible = true;
_this.getPageList();
} else {
_this.$message.error(res.data.message);
}
}
}).catch(err=>{
console.log(err)
})
.catch((err) => {
console.log(err);
});
},
// 激活
handleActive(){
let requestParams = {userId: this.activeRow.id}
handleActive() {
let _this = this;
this.$https({
method:'put',
url: 'tUser/disable',
method: "put",
url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken,
},requestParams).then(res=>{
if(res.status != 200){
this.$message.error(res.data.message)
}else{
if(res.data.resultCode == 200){
this.msgInfo = {
type:'success',
des:`用户${this.activeRow.userName}账号激活成功!`
}
this.$refs.msgDilaog.dialogVisible = true
this.getPageList()
}else{
this.$message.error(res.data.message)
})
.then((res) => {
if (res.status != 200) {
_this.$message.error(res.data.message);
} else {
if (res.data.resultCode == 200) {
_this.msgInfo = {
type: "success",
des: `用户${this.activeRow.userName}账号激活成功!`,
};
_this.$refs.msgDilaog.dialogVisible = true;
_this.getPageList();
} else {
this.$message.error(res.data.message);
}
}
}).catch(err=>{
console.log(err)
})
.catch((err) => {
console.log(err);
});
},
handleAction(params){
this.activeRow = params.row
handleAction(params) {
this.activeRow = params.row;
switch (params.type) {
case "enable":
this.handleActive()
this.handleActive();
break;
case "disable":
this.handleDisable()
this.handleDisable();
break;
case "reset":
this.handleResetPwd()
this.handleResetPwd();
break;
case "edit":
this.handleEdit()
this.handleEdit();
break;
default:
break;
}
},
// 翻页
handleChangeCurrent(){
this.page._index = val
this.getPageList()
}
}
}
handleChangeCurrent() {
this.page._index = val;
this.getPageList();
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
......@@ -75,7 +75,7 @@ export default {
areaOptions: [],
cascaderProps: {
label: "name",
value: "id",
value: "code",
checkStrictly: true
},
levelOption: [],
......
......@@ -30,6 +30,16 @@ export let accoutsRoute = [
title:'单位管理员账号管理',
}
},
// 单位用户单位管理员账号
{
path: '/dbUnitAdmin',
name: '单位用户单位管理员账号',
component: () => import('@/page/accounts/dbUnitAdmin'),
meta:{
showBreadcrumb:true,
title:'单位用户单位管理员账号',
}
},
// 机顶盒运维账号管理
{
path: '/stbAccount',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment