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(){ ...@@ -9,13 +9,12 @@ let getRoles = function(){
if(res.status != 200){ if(res.status != 200){
resolve([]) resolve([])
}else{ }else{
resolve(res.data) if(res.data.resultCode == 200){
// if(res.data.resultCode == 200){ let list = res.data.data
// let list = res.data.data resolve(list)
// resolve(list) }else{
// }else{ resolve([])
// resolve([]) }
// }
} }
}).catch(err=>{ }).catch(err=>{
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<el-tooltip content="禁用" placement="top"> <el-tooltip content="禁用" placement="top">
<el-button <el-button
circle circle
:disabled="scope.row.status == 2" :disabled="scope.row.status == 2 || scope.row.statusName == '待审核' "
@click="handleOperate(scope.row,'disable')"> @click="handleOperate(scope.row,'disable')">
<i class="icon-table icon-disable"></i> <i class="icon-table icon-disable"></i>
</el-button> </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 @@ ...@@ -5,7 +5,7 @@
<el-form :inline="true" :model="form"> <el-form :inline="true" :model="form">
<el-form-item> <el-form-item>
<el-input <el-input
v-model="form.user" v-model="form.name"
placeholder="请输入账号名称、提交人" placeholder="请输入账号名称、提交人"
suffix-icon="el-icon-search" suffix-icon="el-icon-search"
clearable clearable
...@@ -60,38 +60,22 @@ export default { ...@@ -60,38 +60,22 @@ export default {
form:{ form:{
user:'', user:'',
status:'' status:''
},
addForm:{
}, },
options:[ options:[
{label:'待激活',value:0}, {label:'待初审',value:1},
{label:'活跃',value:1}, {label:'驳回',value:2},
{label:'禁用待审核',value:2}, {label:'待复审',value:3},
{label:'禁用',value:3}, {label:'通过',value:4}
], ],
feildList:[ feildList:[
{prop:'username',label:'账号名称'}, {prop:'username',label:'账号名称'},
{prop:'org',label:'所在机构'}, {prop:'orgName',label:'所在机构'},
{prop:'endTime',label:'提交人'}, {prop:'endTime',label:'提交人'},
{prop:'endTime',label:'提交日期'}, {prop:'endTime',label:'提交日期'},
{prop:'endTime',label:'审核状态'}, {prop:'endTime',label:'审核状态'},
{prop:'',label:'操作',isEdit:true, width:240}, {prop:'',label:'操作',isEdit:true, width:240},
], ],
list: [ 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:'活跃'},
]
} }
}, },
components:{ partyPagination, checkTable, addDialog, editDialog}, components:{ partyPagination, checkTable, addDialog, editDialog},
......
<template> <template>
<!-- 机顶盒运维账号 --> <!-- 机顶盒运维账号管理 -->
<div class="stb-amin-wrapper height100"> <div class="stb=admin-wrapper height100">
<div class="search-container"> <div class="search-container">
<el-form :inline="true" :model="form"> <el-form :inline="true" :model="form">
<el-form-item> <el-form-item>
<el-input <el-input
v-model="form.user" v-model="form.userName"
placeholder="请输入运维人员姓名" placeholder="请输入运维人员姓名"
suffix-icon="el-icon-search" suffix-icon="el-icon-search"
clearable ></el-input>
>
</el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select v-model="form.status" placeholder="请选择账号状态">
v-model="form.status"
placeholder="请选择账号状态"
clearable
>
<el-option <el-option
v-for="item in options" v-for="(item, index) in statusOption"
:key="item.value" :key="index"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> >
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -35,92 +30,239 @@ ...@@ -35,92 +30,239 @@
</el-form> </el-form>
<div class="page-tip"> <div class="page-tip">
<span class="page-tip-title">页面说明:</span> <span class="page-tip-title">页面说明:</span>
<span class="page-tips">可按按照用户名及账号状态进行信息筛选。可新增机顶盒运维账号,“*”为必填项。</span> <span class="page-tips"
>可按按照用户名及账号状态进行信息筛选。可新增机顶盒运维账号,“*”为必填项。</span
>
</div> </div>
</div> </div>
<div class="table-content"> <div class="table-content">
<div class="btn-group"> <div class="btn-group">
<el-button type="primary">新建运维账号</el-button> <el-button type="primary" @click="handleAdd()">新建运维账户</el-button>
</div> </div>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table <account-table
:feildList="feildList" :feildList="feildList"
:list="list" :list="list"
@action="handleAction" @action="handleAction"
/> />
<party-pagination/> <party-pagination :page="page" @changePage="handleChangeCurrent" />
</div> </div>
<!-- <user-dialog/> --> <add-dialog ref="addDialog" @success="getFirstPageList()" />
<edit-dialog ref="editDialog" @success="getFirstPageList()" />
<msg-dialog ref="msgDilaog" :msgInfo="msgInfo" />
</div> </div>
</template> </template>
<script> <script>
import { partyPagination } from '@/components/index' import { partyPagination } from "@/components/index";
import accountTable from './components/accountTable' import accountTable from "./components/accountTable";
// import userDialog from './userDialog/index' import { addDialog, editDialog } from "./stbDialog/index";
import msgDialog from "./msgDialog.vue";
export default { export default {
data(){ data() {
return{ return {
form:{ form: {
user:'', userName: "",
status:'' status: "",
}, type: 4, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
addForm:{ },
statusOption: [
}, { label: "活跃", value: 1 },
options:[ { label: "禁用", value: 2 },
{label:'待激活',value:0}, { label: "待审核", value: 3 },
{label:'活跃',value:1},
{label:'禁用待审核',value:2},
{label:'禁用',value:3},
], ],
feildList:[ feildList: [
{prop:'username',label:'运维人员姓名'}, { prop: "userName", label: "运维人员姓名" },
{prop:'org',label:'运维区域'}, { prop: "orgName", label: "运维区域" },
{prop:'endTime',label:'到期时间'}, { prop: "exiredDate", label: "到期时间" },
{prop:'status',label:'账号状态'}, { prop: "type", label: "账号类型" },
{prop:'',label:'操作',isEdit:true, width:280}, { prop: "", label: "操作", isEdit: true, width: 280 },
], ],
list: [ list: [],
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, page: {
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, _index: 1,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, _size: 10,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, total: 0,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, },
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, activeRow: {},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, msgInfo: {},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, };
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, },
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, components: {
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, partyPagination,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, 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}, requestParams
mounted(){ )
.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(){ handleResetPwd() {
this.$confirm('确认关闭?') let _this = this;
.then(_ => { this.$https({
done(); 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </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> <template>
<!-- 平台用户单位管理员账号管理 --> <!-- 平台用户单位管理员账号管理 -->
<div class="unit-admin-wrapper height100"> <div class="user-wrapper height100">
<div class="search-container"> <div class="search-container">
<el-form :inline="true" :model="form"> <el-form :inline="true" :model="form">
<el-form-item> <el-form-item>
<el-input <el-input
v-model="form.user" v-model="form.userName"
placeholder="请输入管理人员姓名" placeholder="请输入管理员姓名"
suffix-icon="el-icon-search" suffix-icon="el-icon-search"
clearable clearable
> ></el-input>
</el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select
v-model="form.status" v-model="form.orgId"
placeholder="请选择单位名称" filterable
clearable placeholder="请选择所属单位"
> clearable>
<el-option <el-option
v-for="item in options" v-for="item in organList"
:key="item.value" :key="item.id"
:label="item.label" :label="item.name"
:value="item.value" :value="item.id"
></el-option> >
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<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>
<el-form-item> <el-form-item>
<div class="btn-group"> <div class="btn-group">
...@@ -38,93 +45,273 @@ ...@@ -38,93 +45,273 @@
</el-form> </el-form>
<div class="page-tip"> <div class="page-tip">
<span class="page-tip-title">页面说明:</span> <span class="page-tip-title">页面说明:</span>
<span class="page-tips">管理员姓名即管理员用户名。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span> <span class="page-tips"
>管理员姓名即管理员用户名。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span
>
</div> </div>
</div> </div>
<div class="table-content"> <div class="table-content">
<div class="btn-group"> <div class="btn-group">
<el-button type="primary">新建账号</el-button> <el-button type="primary" @click="handleAdd()">新建账户</el-button>
</div> </div>
<!-- <party-table :feildList="feildList" :list="list"></party-table> -->
<account-table <account-table
:feildList="feildList" :feildList="feildList"
:list="list" :list="list"
@action="handleAction" @action="handleAction"
/> />
<party-pagination/> <party-pagination :page="page" @changePage="handleChangeCurrent" />
</div> </div>
<!-- <user-dialog/> --> <add-dialog ref="addDialog" @success="getFirstPageList()" />
<edit-dialog ref="editDialog" @success="getFirstPageList()" />
<msg-dialog ref="msgDilaog" :msgInfo="msgInfo" />
</div> </div>
</template> </template>
<script> <script>
import { partyPagination } from '@/components/index' import { partyPagination } from "@/components/index";
import accountTable from './components/accountTable' import accountTable from "./components/accountTable";
// import userDialog from './userDialog/index' import { addDialog, editDialog } from "./unitAdminDialog";
import msgDialog from "./msgDialog.vue";
import { getAreas } from "@/config/area";
import { getOrgListWithOutPage } from "@/config/organ";
export default { export default {
data(){ data() {
return{ return {
form:{ form: {
user:'', userName: "",
status:'' orgId:'',
}, type: 2, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
addForm:{ areaId:[]
},
}, feildList: [
areaOption:[], { prop: "userName", label: "管理员姓名" },
options:[ { prop: "phone", label: "手机号码" },
{label:'待激活',value:0}, { prop: "telephone", label: "固定电话" },
{label:'活跃',value:1}, { prop: "weChat", label: "微信号" },
{label:'禁用待审核',value:2}, { prop: "email", label: "邮箱" },
{label:'禁用',value:3}, { prop: "orgName", label: "所属单位" },
], { prop: "exiredDate", label: "到期时间" },
feildList:[ { prop: "statusName", label: "账号状态" },
{prop:'username',label:'运维人员姓名'}, { prop: "", label: "操作", isEdit: true, width: 280 },
{prop:'org',label:'运维区域'},
{prop:'endTime',label:'到期时间'},
{prop:'status',label:'账号状态'},
{prop:'',label:'操作',isEdit:true, width:280},
], ],
list: [ list: [],
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, page: {
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, _index: 1,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, _size: 10,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, total: 0,
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, },
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, activeRow: {},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, msgInfo: {},
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, organList: [],
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, areaOptions: [],
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, cascaderProps: {
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, label: "name",
{ username: '丁晓晓', org:'北京市政府',type:'系统管理员',endTime:'永久有效', status:'活跃'}, 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}, requestParams
mounted(){ )
.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(){ handleResetPwd() {
this.$confirm('确认关闭?') let _this = this;
.then(_ => { this.$https({
done(); 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> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </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 { ...@@ -82,6 +82,7 @@ export default {
permanent: true, permanent: true,
date: "", date: "",
roleList: [], roleList: [],
type: 1 //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
}, },
rules: { rules: {
userName: [ userName: [
...@@ -134,6 +135,7 @@ export default { ...@@ -134,6 +135,7 @@ export default {
permanent: true, permanent: true,
date: "", date: "",
roleList: [], roleList: [],
type:1
} }
}, },
// 提交 // 提交
...@@ -152,8 +154,9 @@ export default { ...@@ -152,8 +154,9 @@ export default {
} }
user.userName = this.form.userName; user.userName = this.form.userName;
user.orgId = this.form.orgId; 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.permanent = this.form.permanent;
user.type = this.form.type
this.$https( this.$https(
{ {
method: "post", method: "post",
...@@ -173,11 +176,9 @@ export default { ...@@ -173,11 +176,9 @@ export default {
this.$emit('success',true) this.$emit('success',true)
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
this.$emit('success',false)
} }
} else { } else {
this.$message.error(res.data); this.$message.error(res.data);
this.$emit('success',false)
} }
}) })
.catch((err) => { .catch((err) => {
......
...@@ -78,11 +78,13 @@ export default { ...@@ -78,11 +78,13 @@ export default {
rolesList: [], rolesList: [],
id:'', id:'',
form: { form: {
id:'',
userName: "", userName: "",
orgId: "", orgId: "",
permanent: true, permanent: true,
date: "", date: "",
roleList: [], roleList: [],
type: 1 //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
}, },
rules: { rules: {
userName: [ userName: [
...@@ -103,10 +105,6 @@ export default { ...@@ -103,10 +105,6 @@ export default {
mounted() { mounted() {
this.getOrgList(); this.getOrgList();
this.getRolesList(); this.getRolesList();
setTimeout(v=>{
this.getDetailById()
},100)
}, },
methods: { methods: {
// 获取机构列表 // 获取机构列表
...@@ -123,25 +121,34 @@ export default { ...@@ -123,25 +121,34 @@ export default {
}, },
// 根据id获取获取详情内容 // 根据id获取获取详情内容
getDetailById(){ getDetailById(){
let _this = this
this.$https( this.$https(
{ {
method: "get", method: "get",
url: "tUser/getById", url: "tUser/getById",
authType: this.backToken, authType: this.backToken,
}, },
{id:this.id} {id:_this.id}
) )
.then((res) => { .then((res) => {
// if(res.status == 200 ){ if(res.status == 200 ){
// if (res.data.resultCode == 200 ) { if (res.data.resultCode == 200 ) {
// console.log(res) let resData = res.data.data
// } else { for(let key in _this.form){
// this.$message.error(res.data.message); this.form[key] = resData[key]
// } }
// } else { if(!this.form.permanent){
// this.$message.error(res.data); this.form.date = [
resData.effectiveDate,
// } exiredDate
]
}
} else {
_this.$message.error(res.data.message);
}
} else {
_this.$message.error(res.data);
}
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
...@@ -164,31 +171,35 @@ export default { ...@@ -164,31 +171,35 @@ export default {
permanent: true, permanent: true,
date: "", date: "",
roleList: [], roleList: [],
type:1
} }
}, },
// 提交 // 提交
handleSubmit() { handleSubmit() {
// 校验用户输入值 // 校验用户输入值
this.$refs.form.validate((valid) => { let _this = this
_this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
let user = {}; let user = {};
if(!this.form.permanent && !this.form.date){ if(!_this.form.permanent && !_this.form.date){
this.$message.error('请选择有效期') _this.$message.error('请选择有效期')
return false return false
} }
if(!this.form.permanent){ if(!_this.form.permanent){
user.effectiveDate = this.form.date[0]; user.effectiveDate = _this.form.date[0];
user.exiredDate = this.form.date[1]; user.exiredDate = _this.form.date[1];
} }
user.userName = this.form.userName; user.userName = _this.form.userName;
user.orgId = this.form.orgId; 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.permanent = _this.form.permanent;
user.id = _this.id
user.type = this.form.type
this.$https( this.$https(
{ {
method: "post", method: "put",
url: "tUser/add", url: "tUser/update",
authType: this.backToken, authType: _this.backToken,
}, },
user user
) )
...@@ -199,7 +210,7 @@ export default { ...@@ -199,7 +210,7 @@ export default {
type: "success", type: "success",
message: res.data.message, message: res.data.message,
}); });
this.handleReset() _this.dialogVisible = false
this.$emit('success',true) this.$emit('success',true)
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
......
...@@ -19,7 +19,9 @@ ...@@ -19,7 +19,9 @@
</el-form> </el-form>
<div class="page-tip"> <div class="page-tip">
<span class="page-tip-title">页面说明:</span> <span class="page-tip-title">页面说明:</span>
<span class="page-tips">可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span> <span class="page-tips"
>可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span
>
</div> </div>
</div> </div>
<div class="table-content"> <div class="table-content">
...@@ -31,214 +33,217 @@ ...@@ -31,214 +33,217 @@
:list="list" :list="list"
@action="handleAction" @action="handleAction"
/> />
<party-pagination <party-pagination :page="page" @changePage="handleChangeCurrent" />
:page="page"
@changePage="handleChangeCurrent"
/>
</div> </div>
<add-dialog <add-dialog ref="addDialog" @success="getFirstPageList()" />
ref="addUserDialog" <edit-dialog ref="editDialog" @success="getFirstPageList()" />
@success="getFirstPageList()" <msg-dialog ref="msgDilaog" :msgInfo="msgInfo" />
/>
<edit-dialog
ref="editUserDialog"
@success="getFirstPageList()"
/>
<msg-dialog
ref="msgDilaog"
:msgInfo="msgInfo"
/>
</div> </div>
</template> </template>
<script> <script>
import { partyPagination } from '@/components/index' import { partyPagination } from "@/components/index";
import accountTable from './components/accountTable' import accountTable from "./components/accountTable";
import {addDialog, editDialog} from './userDialog/index' import { addDialog, editDialog } from "./userDialog/index";
import msgDialog from './msgDialog.vue' import msgDialog from "./msgDialog.vue";
export default { export default {
data(){ data() {
return{ return {
form:{ form: {
userName:'' userName: "",
}, type: 1, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
feildList:[ },
{prop:'userName',label:'平台用户名'}, feildList: [
{prop:'orgName',label:'所在机构'}, { prop: "userName", label: "平台用户名" },
{prop:'exiredDate',label:'到期时间'}, { prop: "orgName", label: "所在机构" },
{prop:'type',label:'账号类型'}, { prop: "exiredDate", label: "到期时间" },
{prop:'statusName',label:'账号状态'}, { prop: "type", label: "账号类型" },
{prop:'',label:'操作',isEdit:true, width:280}, { prop: "statusName", label: "账号状态" },
{ prop: "", label: "操作", isEdit: true, width: 280 },
], ],
list: [], list: [],
page:{ page: {
_index:1, _index: 1,
_size:10, _size: 10,
total:0 total: 0,
}, },
activeRow:{}, activeRow: {},
msgInfo:{} msgInfo: {},
} };
}, },
components:{ components: {
partyPagination, partyPagination,
accountTable, accountTable,
addDialog, addDialog,
editDialog, editDialog,
msgDialog msgDialog,
}, },
mounted(){ mounted() {
this.getPageList() this.getFirstPageList();
}, },
methods:{ methods: {
getFirstPageList(){ getFirstPageList() {
this.page._index = 1 this.page._index = 1;
this.getPageList() this.getPageList();
}, },
handleSubmit(){ handleSubmit() {
this.getPageList() this.getPageList();
}, },
handleReset(){ handleReset() {
this.form.userName = '' this.form.userName = "";
this.getFirstPageList();
}, },
getPageList(){ getPageList() {
let requestParams = {} let requestParams = {};
requestParams._index = this.page._index requestParams._index = this.page._index;
requestParams._size = this.page._size requestParams._size = this.page._size;
if(this.form.userName){ requestParams.type = this.form.type;
requestParams.userName = this.form.userName if (this.form.userName) {
} requestParams.userName = this.form.userName;
this.$https({ }
method:'get', this.$https(
url: 'tUser/getPageList', {
method: "get",
url: "tUser/getPageList",
authType: this.backToken, authType: this.backToken,
},requestParams).then(res=>{ },
if(res.status != 200){ requestParams
this.getResWithOutData() )
}else{ .then((res) => {
if(res.data.resultCode == 200){ if (res.status != 200) {
this.list = res.data.data.records this.getResWithOutData();
this.page._size = res.data.data.size } else {
this.page.total = res.data.data.total if (res.data.resultCode == 200) {
}else{ this.list = res.data.data.records;
this.getResWithOutData() 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(){ handleAdd() {
this.$refs.addUserDialog.dialogVisible = true this.$refs.addDialog.dialogVisible = true;
}, },
// 编辑 // 编辑
handleEdit(){ handleEdit() {
this.$refs.editDialog.id = this.activeRow.id
this.$refs.editDialog.getDetailById()
this.$refs.editDialog.dialogVisible = true;
}, },
// 重置密码 // 重置密码
handleResetPwd(){ handleResetPwd() {
let requestParams = {userId: this.activeRow.id} let _this = this;
this.$https({ this.$https({
method:'put', method: "put",
url: 'tUser/resetPassword', url: `tUser/resetPassword?userId=${this.activeRow.id}`,
authType: this.backToken, authType: this.backToken,
},requestParams).then(res=>{ })
if(res.status != 200){ .then((res) => {
this.$message.error(res.data.message) if (res.status != 200) {
}else{ _this.$message.error(res.data.message);
if(res.data.resultCode == 200){ } else {
this.msgInfo = { if (res.data.resultCode == 200) {
type:'success', _this.msgInfo = {
des:`用户${this.activeRow.userName}密码已重置!` type: "success",
} des: `用户${this.activeRow.userName}密码已重置!`,
this.$refs.msgDilaog.dialogVisible = true };
}else{ _this.$refs.msgDilaog.dialogVisible = true;
this.$message.error(res.data.message) } else {
_this.$message.error(res.data.message);
} }
} }
}).catch(err=>{
console.log(err)
}) })
.catch((err) => {
console.log(err);
});
}, },
// 禁用 // 禁用
handleDisable(){ handleDisable() {
let requestParams = {userId: this.activeRow.id} let _this = this;
this.$https({ this.$https({
method:'put', method: "put",
url: 'tUser/disable', url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken, authType: this.backToken,
},requestParams).then(res=>{ })
if(res.status != 200){ .then((res) => {
this.$message.error(res.data.message) if (res.status != 200) {
}else{ _this.$message.error(res.data.message);
if(res.data.resultCode == 200){ } else {
this.msgInfo = { if (res.data.resultCode == 200) {
type:'wait', _this.msgInfo = {
des:`${this.activeRow.userName}账号禁用申请已提交,待审核…` type: "wait",
} des: `${this.activeRow.userName}账号禁用申请已提交,待审核…`,
this.$refs.msgDilaog.dialogVisible = true };
this.getPageList() _this.$refs.msgDilaog.dialogVisible = true;
}else{ _this.getPageList();
this.$message.error(res.data.message) } else {
_this.$message.error(res.data.message);
} }
} }
}).catch(err=>{
console.log(err)
}) })
.catch((err) => {
console.log(err);
});
}, },
// 激活 // 激活
handleActive(){ handleActive() {
let requestParams = {userId: this.activeRow.id} let _this = this;
this.$https({ this.$https({
method:'put', method: "put",
url: 'tUser/disable', url: `tUser/disable?userId=${this.activeRow.id}`,
authType: this.backToken, authType: this.backToken,
},requestParams).then(res=>{ })
if(res.status != 200){ .then((res) => {
this.$message.error(res.data.message) if (res.status != 200) {
}else{ _this.$message.error(res.data.message);
if(res.data.resultCode == 200){ } else {
this.msgInfo = { if (res.data.resultCode == 200) {
type:'success', _this.msgInfo = {
des:`用户${this.activeRow.userName}账号激活成功!` type: "success",
} des: `用户${this.activeRow.userName}账号激活成功!`,
this.$refs.msgDilaog.dialogVisible = true };
this.getPageList() _this.$refs.msgDilaog.dialogVisible = true;
}else{ _this.getPageList();
this.$message.error(res.data.message) } else {
this.$message.error(res.data.message);
} }
} }
}).catch(err=>{
console.log(err)
}) })
.catch((err) => {
console.log(err);
});
}, },
handleAction(params){ handleAction(params) {
this.activeRow = params.row this.activeRow = params.row;
switch (params.type) { switch (params.type) {
case "enable": case "enable":
this.handleActive() this.handleActive();
break; break;
case "disable": case "disable":
this.handleDisable() this.handleDisable();
break; break;
case "reset": case "reset":
this.handleResetPwd() this.handleResetPwd();
break; break;
case "edit": case "edit":
this.handleEdit() this.handleEdit();
break; break;
default: default:
break; break;
} }
}, },
// 翻页 // 翻页
handleChangeCurrent(){ handleChangeCurrent() {
this.page._index = val this.page._index = val;
this.getPageList() this.getPageList();
} },
} },
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
</style> </style>
\ No newline at end of file
...@@ -75,7 +75,7 @@ export default { ...@@ -75,7 +75,7 @@ export default {
areaOptions: [], areaOptions: [],
cascaderProps: { cascaderProps: {
label: "name", label: "name",
value: "id", value: "code",
checkStrictly: true checkStrictly: true
}, },
levelOption: [], levelOption: [],
......
...@@ -30,6 +30,16 @@ export let accoutsRoute = [ ...@@ -30,6 +30,16 @@ export let accoutsRoute = [
title:'单位管理员账号管理', title:'单位管理员账号管理',
} }
}, },
// 单位用户单位管理员账号
{
path: '/dbUnitAdmin',
name: '单位用户单位管理员账号',
component: () => import('@/page/accounts/dbUnitAdmin'),
meta:{
showBreadcrumb:true,
title:'单位用户单位管理员账号',
}
},
// 机顶盒运维账号管理 // 机顶盒运维账号管理
{ {
path: '/stbAccount', 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