Commit 912a1656 authored by huangjie's avatar huangjie

*

parent 78853fe7
......@@ -74,6 +74,7 @@
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint-plugin-vue": "7.2.0",
"js-base64": "^3.7.5",
"lint-staged": "10.5.3",
"runjs": "4.4.2",
"sass": "1.32.13",
......
......@@ -38,8 +38,46 @@ export function getTenantPackage(param) {
})
}
//租户列表
export function getTenantList(param) {
return request({
url: '/system/tenant/list',
method: 'get',
params: param
})
}
//获取租户详情
export function getTenant(id) {
return request({
url: '/system/tenant/'+id,
method: 'get',
})
}
//修改租户
export function editTenant(data) {
return request({
url: '/system/tenant/',
method: 'PUT',
data:data,
})
}
//新增租户
export function saveTenant(data) {
return request({
url: '/system/tenant/',
method: 'POST',
data:data,
})
}
//删除租户
export function deleteTenant(ids) {
return request({
url: '/system/tenant/'+ids,
method: 'Delete',
})
}
......@@ -59,13 +59,21 @@ export function getCodeImg() {
}
//获取租户企业列表
export function getTenants(data) {
export function getTenants() {
return request({
url: '/user/tenants?userName='+data,
url: '/user/tenants',
method: 'post',
})
}
//
// 获取默认租户
export function defaultTenantid() {
return request({
url: '/user/default/tenant',
method: 'post',
})
}
// 切换租户
export function changeTenants(data) {
return request({
......
......@@ -86,8 +86,7 @@ export default {
methods: {
getTetant(){
this.tenantId = getTenantid()
getTenants(localStorage.getItem('userphone')).then(res=>{
// getTenants('15823584612').then(res=>{
getTenants().then(res=>{
if(res.code == 200){
this.tenanlist = res.data
}
......@@ -105,8 +104,8 @@ export default {
}).catch(() => {});
},
getorther(id){
if(id != this.tenantId){
changeTenants(id).then(res=>{
console.log(res)
if(res.code == 200){
setToken(res.data.token)
setTenantid(id)
......@@ -117,6 +116,7 @@ export default {
})
}
}
}
}
</script>
......
......@@ -3,7 +3,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="企业名称" prop="roleName">
<el-input
v-model="queryParams.roleName"
v-model="queryParams.companyName"
placeholder="请输入企业名称"
clearable
style="width: 240px"
......@@ -12,7 +12,7 @@
</el-form-item>
<el-form-item label="用户名称" prop="roleKey">
<el-input
v-model="queryParams.roleKey"
v-model="queryParams.contactUserName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
......@@ -21,7 +21,7 @@
</el-form-item>
<el-form-item label="电话号码" prop="roleKey">
<el-input
v-model="queryParams.roleKey"
v-model="queryParams.contactPhone"
placeholder="请输入电话号码"
clearable
style="width: 240px"
......@@ -74,22 +74,22 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="tenantList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" width="60">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) *queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="企业名称" prop="roleName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="用户名称" prop="roleKey" :show-overflow-tooltip="true" width="150" />
<el-table-column label="手机号码" prop="roleSort" width="100" />
<el-table-column label="企业方案" prop="roleSort" />
<el-table-column label="续约开始时间" prop="roleSort" />
<el-table-column label="续约结束时间" prop="roleSort" />
<el-table-column label="企业名称" prop="companyName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="用户名称" prop="contactUserName" :show-overflow-tooltip="true" width="150" />
<el-table-column label="手机号码" prop="contactPhone" width="120" />
<el-table-column label="企业方案" prop="packageName" />
<el-table-column label="续约开始时间" prop="startTime" />
<el-table-column label="续约结束时间" prop="expireTime" />
<el-table-column label="账号状态" align="center" width="100">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
<dict-tag :options="dict.type.sys_user_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
......@@ -117,7 +117,7 @@
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
@click="handleLook(scope.row)"
v-hasPermi="['system:role:remove']"
>查看</el-button>
</template>
......@@ -137,21 +137,21 @@
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="企业名称" prop="roleName">
<el-input v-model="form.roleName" placeholder="请输入角色名称"/>
<el-form-item label="企业名称" prop="companyName">
<el-input :disabled="disabled" v-model="form.companyName" placeholder="请输入企业名称"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用户名称" prop="roleName">
<el-input v-model="form.roleName" placeholder="请输入角色名称"/>
<el-form-item label="用户名称" prop="contactUserName">
<el-input :disabled="disabled" v-model="form.contactUserName" placeholder="请输入用户名称"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="续约时间" prop="roleName">
<el-date-picker
v-model="dateRange"
<el-form-item label="续约时间" prop="dateRange">
<el-date-picker :disabled="disabled"
v-model="form.dateRange"
style="width: 240px"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
......@@ -163,39 +163,39 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号码" prop="roleName">
<el-input v-model="form.roleName" placeholder="请输入角色名称"/>
<el-form-item label="手机号码" prop="contactPhone">
<el-input :disabled="disabled" v-model="form.contactPhone" placeholder="请输手机号码"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="企业方案" prop="roleName">
<el-select
v-model="queryParams.status"
<el-form-item label="企业方案" prop="packageId">
<el-select :disabled="disabled"
v-model="form.packageId"
placeholder="企业方案"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_user_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
v-for="dict in packageList"
:key="dict.packageId"
:label="dict.packageName"
:value="dict.packageId"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业规模" prop="roleName">
<el-input v-model="form.roleName" placeholder="请输入角色名称"/>
<el-form-item label="企业规模" prop="accountCount">
<el-input :disabled="disabled" v-model="form.accountCount" placeholder="请输入企业规模"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status" :disabled="disabled">
<el-radio
v-for="dict in dict.type.sys_user_status"
:key="dict.value"
......@@ -206,7 +206,7 @@
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<div slot="footer" class="dialog-footer" v-if="!disabled">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
......@@ -215,23 +215,14 @@
</template>
<script>
import {
addRole,
changeRoleStatus,
dataScope,
delRole,
deptTreeSelect,
getRole,
listRole,
updateRole
} from '@/api/system/role'
import { roleMenuTreeselect, treeselect as menuTreeselect } from '@/api/system/menu'
import { getTenantList,getTenant,getTenantPackage,editTenant,saveTenant,deleteTenant} from "@/api/enterpriseManagement/enterpriseManagement";
export default {
name: "index",
dicts: ['sys_user_status'],
data() {
return {
disabled:false,
// 遮罩层
loading: true,
// 选中数组
......@@ -244,168 +235,96 @@
showSearch: true,
// 总条数
total: 0,
// 角色表格数据
roleList: [],
// 企业表格数据
tenantList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 是否显示弹出层(数据权限)
openDataScope: false,
menuExpand: false,
menuNodeAll: false,
deptExpand: true,
deptNodeAll: false,
// 日期范围
dateRange: [],
// 数据范围选项
dataScopeOptions: [
{
value: "1",
label: "全部数据权限"
},
{
value: "2",
label: "自定数据权限"
},
{
value: "3",
label: "本部门数据权限"
},
{
value: "4",
label: "本部门及以下数据权限"
},
{
value: "5",
label: "仅本人数据权限"
}
],
// 菜单列表
menuOptions: [],
// 部门列表
deptOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
roleName: undefined,
roleKey: undefined,
status: undefined
companyName: undefined,
contactPhone: undefined,
contactUserName: undefined,
status: undefined,
},
// 表单参数
form: {},
defaultProps: {
children: "children",
label: "label"
},
// 表单校验
rules: {
roleName: [
{ required: true, message: "角色名称不能为空", trigger: "blur" }
contactPhone : [
{ required: true, message: "手机号码不能为空", trigger: "blur" },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur"
}
],
roleKey: [
{ required: true, message: "权限字符不能为空", trigger: "blur" }
contactUserName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" }
],
roleSort: [
{ required: true, message: "角色顺序不能为空", trigger: "blur" }
]
}
companyName: [
{ required: true, message: "企业名称不能为空", trigger: "blur" }
],
packageId: [
{ required: true, message: "企业方案不能为空", trigger: "blur" }
],
dateRange: [
{ required: true, message: "续约时间不能为空", trigger: "blur" }
],
accountCount: [
{ required: true, message: "企业规模不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "账号状态不能为空", trigger: "blur" }
],
},
//企业方案列表
packageList:[],
};
},
created() {
this.getList();
this.getpack()
},
methods: {
//获取企业方案列表
getpack(){
getTenantPackage().then(res=>{
if(res.code = 200){
this.packageList = res.rows
}
})
},
/** 查询角色列表 */
getList() {
this.loading = true;
listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.roleList = response.rows;
getTenantList(this.queryParams).then(response => {
this.tenantList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 查询菜单树结构 */
getMenuTreeselect() {
menuTreeselect().then(response => {
this.menuOptions = response.data;
});
},
// 所有菜单节点数据
getMenuAllCheckedKeys() {
// 目前被选中的菜单节点
let checkedKeys = this.$refs.menu.getCheckedKeys();
// 半选中的菜单节点
let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
// 所有部门节点数据
getDeptAllCheckedKeys() {
// 目前被选中的部门节点
let checkedKeys = this.$refs.dept.getCheckedKeys();
// 半选中的部门节点
let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
/** 根据角色ID查询菜单树结构 */
getRoleMenuTreeselect(roleId) {
return roleMenuTreeselect(roleId).then(response => {
this.menuOptions = response.data.menus;
return response;
});
},
/** 根据角色ID查询部门树结构 */
getDeptTree(roleId) {
return deptTreeSelect(roleId).then(response => {
this.deptOptions = response.data.depts;
return response;
});
},
// 角色状态修改
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?').then(function() {
return changeRoleStatus(row.roleId, row.status);
}).then(() => {
this.$modal.msgSuccess(text + "成功");
}).catch(function() {
row.status = row.status === "0" ? "1" : "0";
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 取消按钮(数据权限)
cancelDataScope() {
this.openDataScope = false;
this.reset();
},
// 表单重置
reset() {
if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]);
}
this.menuExpand = false,
this.menuNodeAll = false,
this.deptExpand = true,
this.deptNodeAll = false,
this.form = {
roleId: undefined,
roleName: undefined,
roleKey: undefined,
roleSort: 0,
dateRange: undefined,
id: undefined,
tenantId: undefined,
contactUserName: undefined,
contactPhone: undefined,
companyName: undefined,
packageId: undefined,
accountCount: undefined,
status: "0",
menuIds: [],
deptIds: [],
menuCheckStrictly: true,
deptCheckStrictly: true,
remark: undefined
};
this.resetForm("form");
},
......@@ -422,121 +341,48 @@
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.roleId)
this.ids = selection.map(item => item.id)
this.single = selection.length!=1
this.multiple = !selection.length
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleDataScope":
this.handleDataScope(row);
break;
case "handleAuthUser":
this.handleAuthUser(row);
break;
default:
break;
}
},
// 树权限(展开/折叠)
handleCheckedTreeExpand(value, type) {
if (type == 'menu') {
let treeList = this.menuOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
}
} else if (type == 'dept') {
let treeList = this.deptOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
}
}
},
// 树权限(全选/全不选)
handleCheckedTreeNodeAll(value, type) {
if (type == 'menu') {
this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
} else if (type == 'dept') {
this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
}
},
// 树权限(父子联动)
handleCheckedTreeConnect(value, type) {
if (type == 'menu') {
this.form.menuCheckStrictly = value ? true: false;
} else if (type == 'dept') {
this.form.deptCheckStrictly = value ? true: false;
}
},
/** 新增按钮操作 */
handleAdd() {
this.disabled = false
this.reset();
this.getMenuTreeselect();
this.open = true;
this.title = "添加角色";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.disabled = false
this.reset();
const roleId = row.roleId || this.ids
const roleMenu = this.getRoleMenuTreeselect(roleId);
getRole(roleId).then(response => {
const id = row.id
getTenant(id).then(response => {
this.form = response.data;
this.form.dateRange = [response.data.startTime,response.data.expireTime]
this.open = true;
this.$nextTick(() => {
roleMenu.then(res => {
let checkedKeys = res.data.checkedKeys
checkedKeys.forEach((v) => {
this.$nextTick(()=>{
this.$refs.menu.setChecked(v, true ,false);
})
})
});
});
this.title = "修改角色";
});
},
/** 选择角色权限范围触发 */
dataScopeSelectChange(value) {
if(value !== '2') {
this.$refs.dept.setCheckedKeys([]);
}
},
/** 分配数据权限操作 */
handleDataScope(row) {
this.reset();
const deptTreeSelect = this.getDeptTree(row.roleId);
getRole(row.roleId).then(response => {
this.form = response.data;
this.openDataScope = true;
this.$nextTick(() => {
deptTreeSelect.then(res => {
this.$refs.dept.setCheckedKeys(res.data.checkedKeys);
});
});
this.title = "分配数据权限";
this.title = "修改企业";
});
},
/** 分配用户操作 */
handleAuthUser: function(row) {
const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId);
//查看
handleLook(row){
this.handleUpdate(row)
this.disabled = true
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.roleId != undefined) {
this.form.menuIds = this.getMenuAllCheckedKeys();
updateRole(this.form).then(response => {
this.form.startTime = this.form.dateRange[0]
this.form.expireTime = this.form.dateRange[1]
if (this.form.id != undefined) {
editTenant(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
this.form.menuIds = this.getMenuAllCheckedKeys();
addRole(this.form).then(response => {
saveTenant(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -545,33 +391,21 @@
}
});
},
/** 提交按钮(数据权限) */
submitDataScope: function() {
if (this.form.roleId != undefined) {
this.form.deptIds = this.getDeptAllCheckedKeys();
dataScope(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.openDataScope = false;
this.getList();
});
}
},
/** 删除按钮操作 */
handleDelete(row) {
const roleIds = row.roleId || this.ids;
this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function() {
return delRole(roleIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
const Ids = row.id || this.ids;
let _this = this
this.$modal.confirm('是否确认删除选中的企业数据项?').then(function() {
deleteTenant(Ids).then(res=>{
if(res.code == 200){
_this.getList();
_this.$message.success("删除成功");
}else{
_this.$message.error(res.msg);
}
});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/role/export', {
...this.queryParams
}, `role_${new Date().getTime()}.xlsx`)
}
}
};
</script>
......
......@@ -41,7 +41,7 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="packList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" width="60">
<template slot-scope="scope">
......@@ -74,7 +74,7 @@
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.packageId !== 1">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
......@@ -147,8 +147,7 @@
</template>
<script>
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
import { treeselect as menuTreeselect, roleMenuTreeselect} from "@/api/system/menu";
import { treeselect as menuTreeselect} from "@/api/system/menu";
import { addTenantPackage ,getTenantPackage,detailTenantPackage,saveTenantPackage,deleteTenantPackage} from "@/api/enterpriseManagement/enterpriseManagement";
......@@ -171,8 +170,8 @@
showSearch: true,
// 总条数
total: 0,
// 角色表格数据
roleList: [],
// 方案表格数据
packList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
......@@ -182,32 +181,8 @@
menuExpand: false,
menuNodeAll: false,
deptExpand: true,
deptNodeAll: false,
// 日期范围
dateRange: [],
// 数据范围选项
dataScopeOptions: [
{
value: "1",
label: "全部数据权限"
},
{
value: "2",
label: "自定数据权限"
},
{
value: "3",
label: "本部门数据权限"
},
{
value: "4",
label: "本部门及以下数据权限"
},
{
value: "5",
label: "仅本人数据权限"
}
],
// 菜单列表
menuOptions: [],
// 部门列表
......@@ -247,7 +222,7 @@
getList() {
this.loading = true;
getTenantPackage(this.queryParams).then(response => {
this.roleList = response.rows;
this.packList = response.rows;
this.total = response.total;
this.loading = false;
}
......@@ -268,39 +243,11 @@
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
// 所有部门节点数据
getDeptAllCheckedKeys() {
// 目前被选中的部门节点
let checkedKeys = this.$refs.dept.getCheckedKeys();
// 半选中的部门节点
let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
/** 根据角色ID查询菜单树结构 */
getRoleMenuTreeselect(roleId) {
return roleMenuTreeselect(roleId).then(response => {
this.menuOptions = response.menus;
return response;
});
},
/** 根据角色ID查询部门树结构 */
getDeptTree(roleId) {
return deptTreeSelect(roleId).then(response => {
this.deptOptions = response.data.depts;
return response;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 取消按钮(数据权限)
cancelDataScope() {
this.openDataScope = false;
this.reset();
},
// 表单重置
reset() {
if (this.$refs.menu != undefined) {
......@@ -309,7 +256,6 @@
this.menuExpand = false,
this.menuNodeAll = false,
this.deptExpand = true,
this.deptNodeAll = false,
this.form = {
packageId: undefined,
packageName: undefined,
......@@ -333,44 +279,20 @@
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.roleId)
this.ids = selection.map(item => item.packageId)
this.single = selection.length!=1
this.multiple = !selection.length
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleDataScope":
this.handleDataScope(row);
break;
case "handleAuthUser":
this.handleAuthUser(row);
break;
default:
break;
}
},
// 树权限(展开/折叠)
handleCheckedTreeExpand(value, type) {
if (type == 'menu') {
let treeList = this.menuOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
}
} else if (type == 'dept') {
let treeList = this.deptOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
}
}
},
// 树权限(全选/全不选)
handleCheckedTreeNodeAll(value, type) {
if (type == 'menu') {
this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
} else if (type == 'dept') {
this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
}
},
// 树权限(父子联动)
handleCheckedTreeConnect(value, type) {
......@@ -393,7 +315,6 @@
this.disabled = false
this.reset();
const packageId = row.packageId
// const roleMenu = this.getRoleMenuTreeselect(packageId);
this.getMenuTreeselect();
detailTenantPackage(packageId).then(response => {
response.data.menuIds = response.data.menuIds.split(',')
......@@ -424,32 +345,6 @@
this.handleUpdate(row)
this.disabled = true
},
/** 选择角色权限范围触发 */
dataScopeSelectChange(value) {
if(value !== '2') {
this.$refs.dept.setCheckedKeys([]);
}
},
/** 分配数据权限操作 */
handleDataScope(row) {
this.reset();
const deptTreeSelect = this.getDeptTree(row.roleId);
getRole(row.roleId).then(response => {
this.form = response.data;
this.openDataScope = true;
this.$nextTick(() => {
deptTreeSelect.then(res => {
this.$refs.dept.setCheckedKeys(res.data.checkedKeys);
});
});
this.title = "分配数据权限";
});
},
/** 分配用户操作 */
handleAuthUser: function(row) {
const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId);
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
......@@ -474,33 +369,21 @@
}
});
},
/** 提交按钮(数据权限) */
submitDataScope: function() {
if (this.form.roleId != undefined) {
this.form.deptIds = this.getDeptAllCheckedKeys();
dataScope(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.openDataScope = false;
this.getList();
});
}
},
/** 删除按钮操作 */
handleDelete(row) {
const packageIds = row.packageId || this.ids;
this.$modal.confirm('是否确认删除方案为数据项?').then(function() {
return deleteTenantPackage(packageIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
let _this = this
this.$modal.confirm('是否确认删除选中的方案数据项?').then(function() {
deleteTenantPackage(packageIds).then(res=>{
if(res.code == 200){
_this.getList();
_this.$message.success("删除成功");
}else{
_this.$message.error(res.msg);
}
});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/role/export', {
...this.queryParams
}, `role_${new Date().getTime()}.xlsx`)
}
}
};
</script>
......
......@@ -71,12 +71,14 @@
</template>
<script>
import { getCodeImg,getTenants,changeTenants } from "@/api/login";
import Cookies from "js-cookie";
import { encrypt, decrypt } from '@/utils/jsencrypt'
import { setTenantid} from '@/utils/auth'
import store from '@/store'
import { changeTenants, defaultTenantid, getCodeImg, getTenants } from '@/api/login'
import Cookies from 'js-cookie'
import { decrypt, encrypt } from '@/utils/jsencrypt'
import {Base64} from 'js-base64'
import { getTenantid, setTenantid,setToken } from '@/utils/auth'
export default {
export default {
name: "Login",
data() {
return {
......@@ -106,6 +108,7 @@ export default {
register: false,
redirect: undefined,
tenanlist:[],
defalutId:'',//默认租户id
};
},
watch: {
......@@ -136,7 +139,8 @@ export default {
const rememberMe = Cookies.get('rememberMe')
this.loginForm = {
username: username === undefined ? this.loginForm.username : username,
password: password === undefined ? this.loginForm.password : decrypt(password),
// password: password === undefined ? this.loginForm.password : decrypt(password),
password: password === undefined ? this.loginForm.password : Base64.encode(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
};
},
......@@ -146,18 +150,25 @@ export default {
this.loading = true;
if (this.loginForm.rememberMe) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
// Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
Cookies.set("password", Base64.encode(this.loginForm.password), { expires: 30 });
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
} else {
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove('rememberMe');
}
this.$store.dispatch("Login", this.loginForm).then(() => {
let froms = JSON.parse(JSON.stringify(this.loginForm))
froms.password = Base64.encode(this.loginForm.password)
this.$store.dispatch("Login", froms).then(() => {
localStorage.setItem('userphone',this.loginForm.username)
defaultTenantid().then(res=>{
if(res.data.tenantId == "" || res.data.tenantId == null){//无默认企业id
this.goin()
}else{
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
// this.goin()
}
})
}).catch(() => {
this.loading = false;
if (this.captchaEnabled) {
......@@ -169,29 +180,30 @@ export default {
},
goin(){
this.tenantId = -1
getTenants(this.loginForm.username).then(res=>{
if(res.code == 200){
getTenants().then(res=>{
if(res.code == 200 && res.data != []){
this.tenanlist = res.data
if(this.tenanlist.length>1){
this.islog = true
}else{
setTenantid(this.tenanlist[0].tenantId)
this.changeTenants(this.tenanlist[0].tenantId)
}else{ //只有一条就是登录返回的id 直接进入系统
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
}
}
})
},
tochose(){
setTenantid(this.tenantId)
this.changeTenants(this.tenantId)
},
changeTenants(tenantId){
changeTenants(tenantId).then(res=>{
if(res.code == 200){
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
changeTenants(tenantId) {
changeTenants(tenantId).then(res => {
if (res.code == 200) {
setToken(res.data.token)
setTenantid(tenantId)
store.commit('SET_TOKEN', res.data.token)
this.$router.push({ path: this.redirect || '/' }).catch(() => {})
}
})
},
}
}
};
</script>
......
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