Commit fb96c0c4 authored by Your Name's avatar Your Name

平台账户管理新建

parent 04af5cbb
......@@ -13,7 +13,7 @@ module.exports = {
proxyTable: {
'/mall': {
target: "http://111.203.232.175:8088/mall",
// target: "http://192.168.110.67/mall",
// target: "http://192.168.0.106:8088/mall",
// target: "http://192.168.204.66:8088/mall",
changeOrigin: true,
pathRewrite: {
......
<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">
<el-form-item label="系统用户名" prop="userName">
<el-input
v-model.trim="form.userName"
placeholder="请填写"
oninput="value = value.trim()"
></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>
</div>
<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-item label="账号类型" prop="roleList">
<el-checkbox-group v-model="form.roleList" :min="1">
<el-checkbox
v-for="(item, index) in rolesList"
:key="index"
:label="item.id"
>
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
</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>
export default {
data() {
return {
dialogVisible: false,
form: {
userName: "",
orgId: "",
permanent: true,
date: "",
roleList: [],
type: 1, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
{ required: true, message: "请选择系统用户名", trigger: "change" },
{ min: 1, max: 20, message: "请输入1到20个字符" },
],
orgId: [
{ required: true, message: "请输入所在机构", trigger: "change" },
],
permanent: [
{ required: true, message: "请选择账号有效期", trigger: "change" },
],
roleList: [
{
type: "array",
required: true,
message: "请选择账号类型",
trigger: "change",
},
],
},
};
},
props: {
organList: {
type: Array,
default: () => {
return [];
},
},
rolesList: {
type: Array,
default: () => {
return [];
},
},
},
mounted() {},
methods: {
// 弹窗关闭
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.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.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(res);
});
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
<style lang="less" scoped>
.form-row {
display: flex;
justify-content: space-between;
}
<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">
<el-form-item label="系统用户名" prop="userName">
<el-input
v-model.trim="form.userName"
placeholder="请填写"
oninput="value = value.trim()"
></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>
</div>
<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-item label="账号类型" prop="roleList">
<el-checkbox-group v-model="form.roleList" :min="1">
<span v-for="(item, index) in rolesList">
<el-checkbox
v-if="item.name !== '单位管理员' && item.name !== '统计管理员' && item.name !== '互动审核员'"
:key="index"
:label="item.id"
>
{{ item.name }}
</el-checkbox>
</span>
</el-checkbox-group>
</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>
export default {
data() {
return {
dialogVisible: false,
form: {
userName: "",
orgId: "",
permanent: true,
date: "",
roleList: [],
type: 1, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号
},
rules: {
userName: [
{ required: true, message: "请选择系统用户名", trigger: "change" },
{ min: 1, max: 20, message: "请输入1到20个字符" },
],
orgId: [
{ required: true, message: "请输入所在机构", trigger: "change" },
],
permanent: [
{ required: true, message: "请选择账号有效期", trigger: "change" },
],
roleList: [
{
type: "array",
required: true,
message: "请选择账号类型",
trigger: "change",
},
],
},
};
},
props: {
organList: {
type: Array,
default: () => {
return [];
},
},
rolesList: {
type: Array,
default: () => {
return [];
},
},
},
mounted() {},
methods: {
// 弹窗关闭
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.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.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(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
<template>
<!-- 平台用户管理 -->
<div class="user-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
clearable
v-model="form.userName"
placeholder="请输入平台用户名"
suffix-icon="el-icon-search"
></el-input>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips"
>可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span
>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary" @click="handleAdd()">新建账号</el-button>
</div>
<account-table
:feildList="feildList"
:list="list"
:rolesList="rolesList"
@action="handleAction"
:currentPage="page._index"
/>
<party-pagination :page="page" @changePage="handleChangeCurrent" />
</div>
<add-dialog
ref="addDialog"
:organList="organList"
:rolesList="rolesList"
@success="getFirstPageList()"
/>
<edit-dialog
ref="editDialog"
:organList="organList"
:rolesList="rolesList"
@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 { getOrgListWithOutPage } from "@/config/organ";
import { getRoles } from "@/config/roles";
export default {
data() {
return {
form: {
userName: "",
type: 1, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号 5. 统计账号
},
feildList: [
{ prop: "userName", label: "平台用户名" },
{ prop: "orgName", label: "所在机构" },
{ prop: "exiredDate", label: "到期时间" },
{ prop: "roleList", label: "账号类型",width: 280 },
{ prop: "statusName", label: "账号状态" },
{ prop: "", label: "操作", isEdit: true, width: 280 },
],
list: [],
page: {
_index: 1,
_size: 10,
total: 0,
},
activeRow: {},
msgInfo: {},
organList: [],
rolesList: [],
};
},
components: {
partyPagination,
accountTable,
addDialog,
editDialog,
msgDialog,
},
mounted() {
this.getOrgList();
this.getRolesList();
this.getFirstPageList();
},
methods: {
// 获取机构列表
getOrgList() {
getOrgListWithOutPage().then((res) => {
this.organList = res;
});
},
// 获取角色列表
getRolesList() {
getRoles().then((res) => {
this.rolesList = res;
});
},
getFirstPageList() {
this.page._index = 1;
this.getPageList();
},
handleSubmit() {
this.getFirstPageList();
},
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;
}
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);
});
},
// 页面返回值为空
getResWithOutData() {
this.list = [];
this.page = {
_index: 1,
_size: 10,
total: 0,
};
},
// 新增账号
handleAdd() {
this.$refs.addDialog.dialogVisible = true;
},
// 编辑
handleEdit() {
this.$refs.editDialog.id = this.activeRow.id;
this.$refs.editDialog.getDetailById();
this.$refs.editDialog.dialogVisible = true;
},
// 重置密码
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((err) => {
console.log(err);
});
},
// 禁用
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/enable?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(val) {
this.page._index = val;
this.getPageList();
},
},
};
</script>
<style lang="less" scoped>
<template>
<!-- 平台用户管理 -->
<div class="user-wrapper height100">
<div class="search-container">
<el-form :inline="true" :model="form">
<el-form-item>
<el-input
clearable
v-model="form.userName"
placeholder="请输入平台用户名"
suffix-icon="el-icon-search"
></el-input>
</el-form-item>
<el-form-item>
<div class="btn-group">
<el-button type="primary" @click="handleSubmit">查询</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-form-item>
</el-form>
<div class="page-tip">
<span class="page-tip-title">页面说明:</span>
<span class="page-tips"
>可根据用户名称搜索对用户信息进行筛选。可以新增账号,“*”为必填项。可以对账号信息进行修改及重置密码</span
>
</div>
</div>
<div class="table-content">
<div class="btn-group">
<el-button type="primary" @click="handleAdd()">新建账号</el-button>
</div>
<account-table
:feildList="feildList"
:list="list"
:rolesList="rolesList"
@action="handleAction"
:currentPage="page._index"
/>
<party-pagination :page="page" @changePage="handleChangeCurrent" />
</div>
<add-dialog
ref="addDialog"
:organList="organList"
:rolesList="rolesList"
@success="getFirstPageList()"
/>
<edit-dialog
ref="editDialog"
:organList="organList"
:rolesList="rolesList"
@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 { getOrgListWithOutPage } from "@/config/organ";
import { getRoles } from "@/config/roles";
export default {
data() {
return {
form: {
userName: "",
type: 1, //1.用户账号 2.平台单位单位管理员账号 3.机顶盒账号 4.运维账号 5. 统计账号
},
feildList: [
{ prop: "userName", label: "平台用户名" },
{ prop: "orgName", label: "所在机构" },
{ prop: "exiredDate", label: "到期时间" },
{ prop: "roleList", label: "账号类型",width: 280 },
{ prop: "statusName", label: "账号状态" },
{ prop: "", label: "操作", isEdit: true, width: 280 },
],
list: [],
page: {
_index: 1,
_size: 10,
total: 0,
},
activeRow: {},
msgInfo: {},
organList: [],
rolesList: [],
};
},
components: {
partyPagination,
accountTable,
addDialog,
editDialog,
msgDialog,
},
mounted() {
this.getOrgList();
this.getRolesList();
this.getFirstPageList();
},
methods: {
// 获取机构列表
getOrgList() {
getOrgListWithOutPage().then((res) => {
this.organList = res;
});
},
// 获取角色列表
getRolesList() {
getRoles().then((res) => {
console.log(res)
this.rolesList = res;
});
},
getFirstPageList() {
this.page._index = 1;
this.getPageList();
},
handleSubmit() {
this.getFirstPageList();
},
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;
}
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);
});
},
// 页面返回值为空
getResWithOutData() {
this.list = [];
this.page = {
_index: 1,
_size: 10,
total: 0,
};
},
// 新增账号
handleAdd() {
this.$refs.addDialog.dialogVisible = true;
},
// 编辑
handleEdit() {
this.$refs.editDialog.id = this.activeRow.id;
this.$refs.editDialog.getDetailById();
this.$refs.editDialog.dialogVisible = true;
},
// 重置密码
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((err) => {
console.log(err);
});
},
// 禁用
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/enable?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(val) {
this.page._index = val;
this.getPageList();
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
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