客户端 角色和用户 基础
This commit is contained in:
parent
6898e67845
commit
db1d222a3b
|
|
@ -1,4 +1,4 @@
|
||||||
|
|
||||||
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
|
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
|
||||||
VUE_APP_USER_MODEL=AdminUser
|
VUE_APP_USER_MODEL2=AdminUser
|
||||||
VUE_APP_USER_MODEL2=BaseAdmin
|
VUE_APP_USER_MODEL=BaseAdmin
|
||||||
|
|
@ -0,0 +1,184 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-body">
|
||||||
|
|
||||||
|
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
||||||
|
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
|
||||||
|
<template #myregion="{}">
|
||||||
|
<a-input-search placeholder="input search text" enter-button />
|
||||||
|
</template>
|
||||||
|
</vxe-form>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footerbar">
|
||||||
|
<a-button type="primary" @click="ok">确定</a-button>
|
||||||
|
<a-button @click="cancel">取消</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/base/api.js';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
i18n: require('./i18n'),
|
||||||
|
|
||||||
|
props: {
|
||||||
|
pageMode: {
|
||||||
|
type: String,
|
||||||
|
default: "edit"
|
||||||
|
},
|
||||||
|
dataId: {
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
|
||||||
|
// 页面数据变量
|
||||||
|
var pageData = {
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
create: `${BASE_URL.BASE_URL}/BaseAdmin/v1/create`,
|
||||||
|
update: `${BASE_URL.BASE_URL}/BaseAdmin/v1/update`,
|
||||||
|
get: `${BASE_URL.BASE_URL}/BaseAdmin/v1/detail`
|
||||||
|
},
|
||||||
|
|
||||||
|
formOptions: {
|
||||||
|
|
||||||
|
data: {
|
||||||
|
status: 1
|
||||||
|
},
|
||||||
|
|
||||||
|
titleWidth: 100,
|
||||||
|
titleAlign: 'right',
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
nickname: [
|
||||||
|
{ required: true, message: '昵称不能为空' }
|
||||||
|
],
|
||||||
|
realname: [
|
||||||
|
{ required: true, message: '姓名不能为空' }
|
||||||
|
],
|
||||||
|
englishname: [
|
||||||
|
{ required: true, message: '姓名不能为空' }
|
||||||
|
],
|
||||||
|
password: [
|
||||||
|
{ required: true, message: '姓名不能为空' }
|
||||||
|
],
|
||||||
|
|
||||||
|
email: [
|
||||||
|
{
|
||||||
|
validator({ itemValue }) {
|
||||||
|
// 自定义校验
|
||||||
|
if (itemValue && !/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/.test(itemValue)) {
|
||||||
|
return new Error('email格式不正确')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
mobile: [
|
||||||
|
{ required: true, message: '请输入手机号' },
|
||||||
|
{
|
||||||
|
validator({ itemValue }) {
|
||||||
|
// 自定义校验
|
||||||
|
if (itemValue && !/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(itemValue)) {
|
||||||
|
return new Error('手机号格式不正确')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
|
items: [
|
||||||
|
{ field: 'mobile', dataRule: { type: "integer" }, title: '联系电话', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入联系电话' } } },
|
||||||
|
{ field: 'password', title: '密码', span: 24, itemRender: { name: '$input', props: { type: "password", placeholder: '请输入密码' } } },
|
||||||
|
{ field: 'realname', title: '姓名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } },
|
||||||
|
{ field: 'nickname', title: '昵称', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入昵称' } } },
|
||||||
|
{ field: 'englishname', title: '英文名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入英文名' } } },
|
||||||
|
|
||||||
|
{ field: 'email', title: 'email', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入email' } } }
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
for (let ruleName in pageData.formOptions.rules) {
|
||||||
|
let rule = pageData.formOptions.rules[ruleName];
|
||||||
|
if (rule && rule[0]) {
|
||||||
|
if (rule[0].required === true) {
|
||||||
|
pageData.formOptions.data[ruleName] = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||||
|
|
||||||
|
return pageData;
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (this.dataId) {
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.get,
|
||||||
|
loading: "加载中...",
|
||||||
|
data: {
|
||||||
|
id: this.dataId
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
this.formOptions.data = a.data.BaseAdmin;
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
// 函数
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
loadData() {
|
||||||
|
},
|
||||||
|
|
||||||
|
ok() {
|
||||||
|
|
||||||
|
let save = () => {
|
||||||
|
let action = this.pageMode == "add" ? this.actions.create : this.actions.update;
|
||||||
|
let postdata = JSON.parse(JSON.stringify(this.formOptions.data))
|
||||||
|
|
||||||
|
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
|
||||||
|
this.$mk.post({
|
||||||
|
url: action,
|
||||||
|
loading: "保存中...",
|
||||||
|
data: postdata
|
||||||
|
}).then(() => {
|
||||||
|
this.$mk.success("保存成功");
|
||||||
|
this.$emit("callback", { success: true });
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => {
|
||||||
|
save();
|
||||||
|
}).catch(count => {
|
||||||
|
this.$mk.error(`存在${count}项错误,请检查`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
cancel() {
|
||||||
|
this.$emit("callback", {});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
module.exports = {
|
||||||
|
messages: {
|
||||||
|
CN: {
|
||||||
|
pageDesc:'管理用户账号'
|
||||||
|
},
|
||||||
|
HK: {
|
||||||
|
pageDesc:'管理用户账号'
|
||||||
|
},
|
||||||
|
US: {
|
||||||
|
pageDesc:'管理用户账号'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,510 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-body">
|
||||||
|
|
||||||
|
<!-- 工具条 -->
|
||||||
|
<mk-toolbar @toolbarClick="toolbarClick"></mk-toolbar>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 搜索区 -->
|
||||||
|
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
|
||||||
|
<template #date="{}">
|
||||||
|
|
||||||
|
<a-form-item label="创建时间" :style="{ display: 'inline-block', width: 120 }">
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
|
||||||
|
<a-range-picker @change="onDateChange" />
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</vxe-form>
|
||||||
|
|
||||||
|
<vxe-toolbar ref="xToolbar" custom>
|
||||||
|
<template #buttons>
|
||||||
|
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
|
||||||
|
</template>
|
||||||
|
</vxe-toolbar>
|
||||||
|
<!-- 表格区 -->
|
||||||
|
<div class="gridPanel">
|
||||||
|
<vxe-grid ref='xGrid' v-bind="gridOptions">
|
||||||
|
|
||||||
|
|
||||||
|
<template #op="{ row }">
|
||||||
|
<div class="oplinks">
|
||||||
|
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
|
||||||
|
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #op2="{ row }">
|
||||||
|
<div class="oplinks2">
|
||||||
|
<a-button @click.stop="pageRole(row)">角色设置</a-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #op3="{ row }">
|
||||||
|
<div class="oplinks2">
|
||||||
|
<a-button @click.stop="pagePermission(row)">权限设置</a-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</vxe-grid>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<vxe-modal v-model="showRoleSetting" @confirm="confirmRoleSetting" width="600" show-footer>
|
||||||
|
<template #title>
|
||||||
|
<span>设置角色</span>
|
||||||
|
</template>
|
||||||
|
<template #default>
|
||||||
|
<vxe-table ref="xRoleTable" show-overflow auto-resize height="300" :checkboxConfig="roleCheckboxConfig"
|
||||||
|
:rowConfig="{ isCurrent: true, isHover: true }" :data="roleData">
|
||||||
|
<vxe-column type="checkbox" width="50"></vxe-column>
|
||||||
|
<vxe-column field="name" title="角色名"></vxe-column>
|
||||||
|
<vxe-column field="desc" title="描述"></vxe-column>
|
||||||
|
</vxe-table>
|
||||||
|
</template>
|
||||||
|
</vxe-modal>
|
||||||
|
|
||||||
|
<vxe-modal v-model="showPermission" @confirm="confirmPermission" width="900" show-footer>
|
||||||
|
<template #title>
|
||||||
|
<span>设置权限</span>
|
||||||
|
</template>
|
||||||
|
<template #default>
|
||||||
|
|
||||||
|
<vxe-table show-overflow auto-resize height="500" row-id="id" ref="xPermissionTable" :data="permissionData"
|
||||||
|
:tree-config="{ transform: true, expandAll: true }"
|
||||||
|
:checkbox-config="{ reserve: true, highlight: true, trigger: 'row', labelField: 'nodeTitle' }">
|
||||||
|
<vxe-column type="checkbox" title="权限" width="400" tree-node></vxe-column>
|
||||||
|
<vxe-column field="desc" title="描述"></vxe-column>
|
||||||
|
</vxe-table>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</vxe-modal>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/base/api.js';
|
||||||
|
|
||||||
|
let editPage = () => import("./edit");
|
||||||
|
|
||||||
|
export default {
|
||||||
|
i18n: require('./i18n'),
|
||||||
|
data() {
|
||||||
|
|
||||||
|
// 页面数据变量
|
||||||
|
var pageData = {
|
||||||
|
keyName: 'uid',
|
||||||
|
actions: {
|
||||||
|
getList: `${BASE_URL.BASE_URL}/BaseAdmin/v1/list`,
|
||||||
|
delete: `${BASE_URL.BASE_URL}/BaseAdmin/v1/batchDelete`,
|
||||||
|
roleList: `${BASE_URL.BASE_URL}/BasePermission/v1/role/list`,
|
||||||
|
permissionList: `${BASE_URL.BASE_URL}/BasePermission/v1/service/permission/list`,
|
||||||
|
userRoleList: `${BASE_URL.BASE_URL}/BasePermission/v1/user/role/list`,
|
||||||
|
userPermissionList: `${BASE_URL.BASE_URL}/BasePermission/v1/user/custom/list`,
|
||||||
|
saveRole: `${BASE_URL.BASE_URL}/BasePermission/v1/user/role/batchHandle`,
|
||||||
|
savePermission: `${BASE_URL.BASE_URL}/BasePermission/v1/user/custom/batchHandle`,
|
||||||
|
},
|
||||||
|
roleData: [],
|
||||||
|
permissionData: [],
|
||||||
|
|
||||||
|
roleCheckboxConfig: {
|
||||||
|
reserve: true,
|
||||||
|
highlight: true,
|
||||||
|
trigger: 'row'
|
||||||
|
},
|
||||||
|
showRoleSetting: false,
|
||||||
|
showPermission: false,
|
||||||
|
currentRow: null,
|
||||||
|
|
||||||
|
start_time: 0,
|
||||||
|
end_time: 0,
|
||||||
|
|
||||||
|
//搜索区
|
||||||
|
searchFormData: {
|
||||||
|
name: '',
|
||||||
|
nick_name: '',
|
||||||
|
},
|
||||||
|
searchRules: [
|
||||||
|
{ key: "name", mode: "like" },
|
||||||
|
{ key: "nick_name", mode: "like" }
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
searchFormItems: [
|
||||||
|
{ field: 'name', title: '名称', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } },
|
||||||
|
{ field: 'nick_name', title: '昵称', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入昵称' } } },
|
||||||
|
{ span: 8, slots: { default: 'date' } },
|
||||||
|
{
|
||||||
|
align: 'right', span: 4, itemRender: {
|
||||||
|
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } },
|
||||||
|
{ props: { type: 'reset', content: '重置' } }]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//数据区
|
||||||
|
gridOptions: {
|
||||||
|
height: '100%',
|
||||||
|
id: 'datagrid_1',
|
||||||
|
|
||||||
|
proxyConfig: {
|
||||||
|
sort: true, // 启用排序代理,当点击排序时会自动触发 query 行为
|
||||||
|
filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
|
||||||
|
props: {
|
||||||
|
result: 'list', // 配置响应结果列表字段
|
||||||
|
total: 'total' // 配置响应结果总页数字段
|
||||||
|
},
|
||||||
|
// 接收Promise
|
||||||
|
ajax: {
|
||||||
|
// 当点击工具栏查询按钮或者手动提交指令 query或reload 时会被触发
|
||||||
|
query: (options) => {
|
||||||
|
const { page, sorts } = options;
|
||||||
|
var params = {};
|
||||||
|
params.page = page.currentPage;
|
||||||
|
params.limit = page.pageSize;
|
||||||
|
params.order_bys = [];
|
||||||
|
params.search_rules = this.getSearchParms();
|
||||||
|
if (sorts) {
|
||||||
|
sorts.forEach((v) => {
|
||||||
|
params.order_bys.push({
|
||||||
|
column: v.property,
|
||||||
|
order: v.order
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return this.loadData({ params });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{ type: 'checkbox', width: 50 },
|
||||||
|
{ type: 'seq', width: 50 },
|
||||||
|
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
||||||
|
{ title: '角色设置', slots: { default: 'op2' }, width: 120 },
|
||||||
|
{ title: '权限设置', slots: { default: 'op3' }, width: 120 },
|
||||||
|
{ field: 'name', sortable: true, title: '名称' },
|
||||||
|
{ field: 'nick_name', sortable: true, title: '昵称', showHeaderOverflow: true },
|
||||||
|
{ field: 'email', sortable: true, title: 'email', showHeaderOverflow: true },
|
||||||
|
{ field: 'mobile', sortable: true, title: '电话', showHeaderOverflow: true }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions);
|
||||||
|
|
||||||
|
return pageData;
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
desc() {
|
||||||
|
return this.$t('pageDesc')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
// 将表格和工具栏进行关联
|
||||||
|
this.$refs.xGrid.connect(this.$refs.xToolbar)
|
||||||
|
});
|
||||||
|
|
||||||
|
this.roleDataInit();
|
||||||
|
this.permissionDataInit();
|
||||||
|
},
|
||||||
|
// 监听 - 页面每次【加载时】执行
|
||||||
|
onLoad() {
|
||||||
|
|
||||||
|
},
|
||||||
|
// 函数
|
||||||
|
methods: {
|
||||||
|
onDateChange(date) {
|
||||||
|
if (date && date.length) {
|
||||||
|
this.start_time = parseInt(date[0]._d.getTime() / 1000);
|
||||||
|
this.end_time = parseInt(date[1]._d.getTime() / 1000);
|
||||||
|
} else {
|
||||||
|
this.start_time = 0;
|
||||||
|
this.end_time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
getSearchParms() {
|
||||||
|
var rules = [];
|
||||||
|
let findMode = k => {
|
||||||
|
for (let i in this.searchRules) {
|
||||||
|
if (this.searchRules[i].key == k) return this.searchRules[i].mode;
|
||||||
|
}
|
||||||
|
return "equal";
|
||||||
|
};
|
||||||
|
|
||||||
|
for (let key in this.searchFormData) {
|
||||||
|
let value = this.searchFormData[key];
|
||||||
|
if (value) {
|
||||||
|
let mode = findMode(key);
|
||||||
|
if (mode == "like") {
|
||||||
|
value = "%" + value + "%";
|
||||||
|
}
|
||||||
|
rules.push({
|
||||||
|
column: key,
|
||||||
|
mode: mode,
|
||||||
|
value: value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rules;
|
||||||
|
},
|
||||||
|
getSelectdRow() {
|
||||||
|
let row = this.$refs.xGrid.getCurrentRecord();
|
||||||
|
if (!row) {
|
||||||
|
let rows = this.$refs.xGrid.getCheckboxRecords();
|
||||||
|
if (rows && rows.length) { row = rows[0]; }
|
||||||
|
}
|
||||||
|
return row;
|
||||||
|
},
|
||||||
|
loadData({ params }) {
|
||||||
|
|
||||||
|
params.start_time = this.start_time;
|
||||||
|
params.end_time = this.end_time;
|
||||||
|
|
||||||
|
|
||||||
|
return this.$mk.getPagedData({ url: this.actions.getList, data: params });
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//add / log / setting
|
||||||
|
toolbarClick(e) {
|
||||||
|
if (e.name == "add") {
|
||||||
|
this.$mk.dialog.open({
|
||||||
|
page: editPage,
|
||||||
|
title: "新增用户信息",
|
||||||
|
pageMode: "add",
|
||||||
|
dataId: 0,
|
||||||
|
callback: ({ success }) => {
|
||||||
|
success && this.$refs.xGrid.commitProxy('query')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
pageEdit(row) {
|
||||||
|
if (!row) {
|
||||||
|
this.$mk.msg("请选择行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$mk.dialog.open({
|
||||||
|
page: editPage,
|
||||||
|
title: "编辑用户信息",
|
||||||
|
pageMode: "edit",
|
||||||
|
dataId: row[this.keyName],
|
||||||
|
callback: ({ success }) => {
|
||||||
|
success && this.$refs.xGrid.commitProxy('query')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
saveRoleSetting({ adds, removes }) {
|
||||||
|
let userRoleCreateRequest = [];
|
||||||
|
adds.forEach(id => {
|
||||||
|
userRoleCreateRequest.push({
|
||||||
|
"role_id": id,
|
||||||
|
"target_uid": this.currentRow.uid
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.saveRole,
|
||||||
|
data: {
|
||||||
|
ids: removes,
|
||||||
|
userRoleCreateRequest: userRoleCreateRequest
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
console.log(a)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
confirmRoleSetting() {
|
||||||
|
let rows = this.$refs.xRoleTable.getCheckboxRecords();
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.userRoleList,
|
||||||
|
data: {
|
||||||
|
target_uid: this.currentRow.uid
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
let roleList = a.data.UserRole || [];
|
||||||
|
let adds = [];
|
||||||
|
let removes = [];
|
||||||
|
roleList.forEach(roleItem => {
|
||||||
|
if (rows.filter(row => row.id == roleItem.role_id).length == 0) {
|
||||||
|
removes.push(roleItem.role_id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
rows.forEach(row => {
|
||||||
|
if (roleList.filter(roleItem => row.id == roleItem.role_id).length == 0) {
|
||||||
|
adds.push(row.id);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.saveRoleSetting({ adds, removes });
|
||||||
|
});
|
||||||
|
},
|
||||||
|
confirmPermission() {
|
||||||
|
console.log(this.$refs.xPermissionTable.getCheckboxRecords())
|
||||||
|
},
|
||||||
|
roleDataInit() {
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.roleList,
|
||||||
|
data: {
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
this.roleData = a.data.Role;
|
||||||
|
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
permissionDataInit() {
|
||||||
|
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.permissionList,
|
||||||
|
data: {
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
let arr = [];
|
||||||
|
a.data.BasePermission.forEach(item => {
|
||||||
|
if (arr.filter(a => a.id == "s-" + item.service_id).length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
arr.push({
|
||||||
|
id: "s-" + item.service_id,
|
||||||
|
parentId: null,
|
||||||
|
nodeTitle: item.service
|
||||||
|
})
|
||||||
|
});
|
||||||
|
a.data.BasePermission.forEach(item => {
|
||||||
|
|
||||||
|
arr.push({
|
||||||
|
id: item.id,
|
||||||
|
parentId: "s-" + item.service_id,
|
||||||
|
nodeTitle: item.title,
|
||||||
|
service_id: item.service_id,
|
||||||
|
permission_id: item.id
|
||||||
|
})
|
||||||
|
});
|
||||||
|
this.permissionData = arr;
|
||||||
|
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
pageRole(row) {
|
||||||
|
if (!row) {
|
||||||
|
this.$mk.msg("请选择行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.currentRow = row;
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.userRoleList,
|
||||||
|
data: {
|
||||||
|
target_uid: row.uid
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
this.showRoleSetting = true;
|
||||||
|
let rows = [];
|
||||||
|
let userRole = a.data.user_role || [];
|
||||||
|
this.roleData.forEach(item => {
|
||||||
|
if (userRole.filter(roleItem => item.id == roleItem.role_id).length) {
|
||||||
|
rows.push(item);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$refs.xRoleTable.clearCheckboxRow();
|
||||||
|
this.$refs.xRoleTable.setCheckboxRow(rows, true);
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
pagePermission(row) {
|
||||||
|
if (!row) {
|
||||||
|
this.$mk.msg("请选择行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.currentRow = row;
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.userPermissionList,
|
||||||
|
data: {
|
||||||
|
targe_uid: row.uid
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
this.showPermission = true;
|
||||||
|
let rows = [];
|
||||||
|
console.log(a.data.UserCustom)
|
||||||
|
this.permissionData.forEach(item => {
|
||||||
|
if (a.data.UserCustom.filter(customerItem => item.id == customerItem.permission_id).length) {
|
||||||
|
rows.push(item);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$refs.xPermissionTable.clearCheckboxRow();
|
||||||
|
this.$refs.xPermissionTable.setCheckboxRow(rows, true);
|
||||||
|
}, 100);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
pageDelete(row) {
|
||||||
|
|
||||||
|
|
||||||
|
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords();
|
||||||
|
let ids = [];
|
||||||
|
rows.forEach((row) => {
|
||||||
|
ids.push(row[this.keyName]);
|
||||||
|
|
||||||
|
});
|
||||||
|
console.log(rows);
|
||||||
|
if (!ids.length) {
|
||||||
|
this.$mk.error("请选择行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$mk.confirm('您确定要删除吗?').then(type => {
|
||||||
|
if (type == 'confirm') {
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.delete,
|
||||||
|
loading: "删除中...",
|
||||||
|
data: {
|
||||||
|
Uids: ids
|
||||||
|
}
|
||||||
|
}).then(() => {
|
||||||
|
this.$mk.success("删除成功");
|
||||||
|
this.onSearch();
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onSearch() {
|
||||||
|
this.$refs.xGrid.commitProxy('query')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
.page-body {
|
||||||
|
padding: 10px 10px;
|
||||||
|
background: @base-bg-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gridPanel {
|
||||||
|
height: calc(100vh - 430px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,147 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-body">
|
||||||
|
|
||||||
|
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
||||||
|
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
|
||||||
|
<template #myregion="{}">
|
||||||
|
<a-input-search placeholder="input search text" enter-button />
|
||||||
|
</template>
|
||||||
|
</vxe-form>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footerbar">
|
||||||
|
<a-button type="primary" @click="ok">确定</a-button>
|
||||||
|
<a-button @click="cancel">取消</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/base/api.js';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
i18n: require('./i18n'),
|
||||||
|
|
||||||
|
props: {
|
||||||
|
pageMode: {
|
||||||
|
type: String,
|
||||||
|
default: "edit"
|
||||||
|
},
|
||||||
|
dataId: {
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
|
||||||
|
// 页面数据变量
|
||||||
|
var pageData = {
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
create: `${BASE_URL.BASE_URL}/BasePermission/v1/role/create`,
|
||||||
|
update: `${BASE_URL.BASE_URL}/BasePermission/v1/role/update`,
|
||||||
|
get: `${BASE_URL.BASE_URL}/BasePermission/v1/role/detail`
|
||||||
|
},
|
||||||
|
|
||||||
|
formOptions: {
|
||||||
|
|
||||||
|
data: {
|
||||||
|
},
|
||||||
|
|
||||||
|
titleWidth: 100,
|
||||||
|
titleAlign: 'right',
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{ required: true, message: '角色名不能为空' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
items: [
|
||||||
|
{ field: 'name', title: '角色名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入角色名' } } },
|
||||||
|
{ field: 'desc', title: '描述', span: 24, itemRender: { name: '$textarea', props: { placeholder: '请输入描述' } } },
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
for (let ruleName in pageData.formOptions.rules) {
|
||||||
|
let rule = pageData.formOptions.rules[ruleName];
|
||||||
|
if (rule && rule[0]) {
|
||||||
|
if (rule[0].required === true) {
|
||||||
|
pageData.formOptions.data[ruleName] = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||||
|
|
||||||
|
return pageData;
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
if (this.dataId) {
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.get,
|
||||||
|
loading: "加载中...",
|
||||||
|
data: {
|
||||||
|
id: this.dataId
|
||||||
|
}
|
||||||
|
}).then(a => {
|
||||||
|
this.formOptions.data = a.data.role;
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
// 函数
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
loadData() {
|
||||||
|
},
|
||||||
|
|
||||||
|
ok() {
|
||||||
|
|
||||||
|
let save = () => {
|
||||||
|
let action = this.pageMode == "add" ? this.actions.create : this.actions.update;
|
||||||
|
let postdata = this.pageMode == "add" ? Object.assign({ id: this.dataId }, this.formOptions.data) : Object.assign({}, this.formOptions.data);
|
||||||
|
|
||||||
|
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
|
||||||
|
this.$mk.post({
|
||||||
|
url: action,
|
||||||
|
loading: "保存中...",
|
||||||
|
data: postdata
|
||||||
|
}).then(() => {
|
||||||
|
this.$mk.success("保存成功");
|
||||||
|
this.$emit("callback", { success: true });
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => {
|
||||||
|
save();
|
||||||
|
}).catch(count => {
|
||||||
|
this.$mk.error(`存在${count}项错误,请检查`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
cancel() {
|
||||||
|
this.$emit("callback", {});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
module.exports = {
|
||||||
|
messages: {
|
||||||
|
CN: {
|
||||||
|
pageDesc:'管理角色'
|
||||||
|
},
|
||||||
|
HK: {
|
||||||
|
pageDesc:'管理角色'
|
||||||
|
},
|
||||||
|
US: {
|
||||||
|
pageDesc:'管理角色'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,298 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-body">
|
||||||
|
|
||||||
|
<!-- 工具条 -->
|
||||||
|
<mk-toolbar @toolbarClick="toolbarClick"></mk-toolbar>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 搜索区 -->
|
||||||
|
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
|
||||||
|
<template #date="{}">
|
||||||
|
|
||||||
|
<a-form-item label="创建时间" :style="{ display: 'inline-block', width: 120 }">
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
|
||||||
|
<a-range-picker @change="onDateChange" />
|
||||||
|
</a-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</vxe-form>
|
||||||
|
|
||||||
|
<vxe-toolbar ref="xToolbar" custom>
|
||||||
|
<template #buttons>
|
||||||
|
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
|
||||||
|
</template>
|
||||||
|
</vxe-toolbar>
|
||||||
|
<!-- 表格区 -->
|
||||||
|
<div class="gridPanel">
|
||||||
|
<vxe-grid ref='xGrid' v-bind="gridOptions">
|
||||||
|
|
||||||
|
|
||||||
|
<template #op="{ row }">
|
||||||
|
<div class="oplinks">
|
||||||
|
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
|
||||||
|
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</vxe-grid>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/base/api.js';
|
||||||
|
|
||||||
|
let editPage = () => import("./edit");
|
||||||
|
|
||||||
|
export default {
|
||||||
|
i18n: require('./i18n'),
|
||||||
|
data() {
|
||||||
|
|
||||||
|
// 页面数据变量
|
||||||
|
var pageData = {
|
||||||
|
|
||||||
|
keyName: 'id',
|
||||||
|
actions: {
|
||||||
|
getList: `${BASE_URL.BASE_URL}/BasePermission/v1/role/list`,
|
||||||
|
delete: `${BASE_URL.BASE_URL}/BasePermission/v1/role/batchDelete`
|
||||||
|
},
|
||||||
|
|
||||||
|
start_time: 0,
|
||||||
|
end_time: 0,
|
||||||
|
|
||||||
|
//搜索区
|
||||||
|
searchFormData: {
|
||||||
|
name: '',
|
||||||
|
nick_name: '',
|
||||||
|
},
|
||||||
|
searchRules: [
|
||||||
|
{ key: "name", mode: "like" },
|
||||||
|
{ key: "desc", mode: "like" }
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
searchFormItems: [
|
||||||
|
{
|
||||||
|
title: '左侧',
|
||||||
|
span: 20,
|
||||||
|
children: [
|
||||||
|
{ field: 'name', title: '名称', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } },
|
||||||
|
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
||||||
|
{ span: 8, slots: { default: 'date' } },
|
||||||
|
{ align: 'right', span: 4, itemRender: { name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } },
|
||||||
|
{ props: { type: 'reset', content: '重置' } }] } }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//数据区
|
||||||
|
gridOptions: {
|
||||||
|
height: '100%',
|
||||||
|
id: 'datagrid_1',
|
||||||
|
|
||||||
|
proxyConfig: {
|
||||||
|
sort: true, // 启用排序代理,当点击排序时会自动触发 query 行为
|
||||||
|
filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
|
||||||
|
props: {
|
||||||
|
result: 'Role', // 配置响应结果列表字段
|
||||||
|
total: 'total' // 配置响应结果总页数字段
|
||||||
|
},
|
||||||
|
// 接收Promise
|
||||||
|
ajax: {
|
||||||
|
// 当点击工具栏查询按钮或者手动提交指令 query或reload 时会被触发
|
||||||
|
query: (options) => {
|
||||||
|
const { page, sorts } = options;
|
||||||
|
var params = {};
|
||||||
|
params.page = page.currentPage;
|
||||||
|
params.limit = page.pageSize;
|
||||||
|
params.order_bys = [];
|
||||||
|
params.search_rules = this.getSearchParms();
|
||||||
|
if (sorts) {
|
||||||
|
sorts.forEach((v) => {
|
||||||
|
params.order_bys.push({
|
||||||
|
column: v.property,
|
||||||
|
order: v.order
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return this.loadData({ params });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{ type: 'checkbox', width: 50 },
|
||||||
|
{ type: 'seq', width: 50 },
|
||||||
|
{ title: '操作', slots: { default: 'op' },width:120 },
|
||||||
|
{ field: 'name', sortable: true, title: '名称' },
|
||||||
|
{ field: 'desc', sortable: true, title: '描述', showHeaderOverflow: true }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions);
|
||||||
|
|
||||||
|
return pageData;
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
desc() {
|
||||||
|
return this.$t('pageDesc')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
// 将表格和工具栏进行关联
|
||||||
|
this.$refs.xGrid.connect(this.$refs.xToolbar)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 监听 - 页面每次【加载时】执行
|
||||||
|
onLoad() {
|
||||||
|
|
||||||
|
},
|
||||||
|
// 函数
|
||||||
|
methods: {
|
||||||
|
onDateChange(date) {
|
||||||
|
if (date && date.length) {
|
||||||
|
this.start_time = parseInt(date[0]._d.getTime() / 1000);
|
||||||
|
this.end_time = parseInt(date[1]._d.getTime() / 1000);
|
||||||
|
} else {
|
||||||
|
this.start_time = 0;
|
||||||
|
this.end_time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
getSearchParms() {
|
||||||
|
var rules = [];
|
||||||
|
let findMode = k => {
|
||||||
|
for (let i in this.searchRules) {
|
||||||
|
if (this.searchRules[i].key == k) return this.searchRules[i].mode;
|
||||||
|
}
|
||||||
|
return "equal";
|
||||||
|
};
|
||||||
|
|
||||||
|
for (let key in this.searchFormData) {
|
||||||
|
let value = this.searchFormData[key];
|
||||||
|
if (value) {
|
||||||
|
let mode = findMode(key);
|
||||||
|
if (mode == "like") {
|
||||||
|
value = "%" + value + "%";
|
||||||
|
}
|
||||||
|
rules.push({
|
||||||
|
column: key,
|
||||||
|
mode: mode,
|
||||||
|
value: value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rules;
|
||||||
|
},
|
||||||
|
getSelectdRow() {
|
||||||
|
let row = this.$refs.xGrid.getCurrentRecord();
|
||||||
|
if (!row) {
|
||||||
|
let rows = this.$refs.xGrid.getCheckboxRecords();
|
||||||
|
if (rows && rows.length) { row = rows[0]; }
|
||||||
|
}
|
||||||
|
return row;
|
||||||
|
},
|
||||||
|
loadData({ params }) {
|
||||||
|
|
||||||
|
params.start_time = this.start_time;
|
||||||
|
params.end_time = this.end_time;
|
||||||
|
|
||||||
|
|
||||||
|
return this.$mk.getPagedData({ url: this.actions.getList, data: params });
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//add / log / setting
|
||||||
|
toolbarClick(e) {
|
||||||
|
if (e.name == "add") {
|
||||||
|
this.$mk.dialog.open({
|
||||||
|
page: editPage,
|
||||||
|
title: "新增角色信息",
|
||||||
|
pageMode: "add",
|
||||||
|
dataId: 0,
|
||||||
|
callback: ({ success }) => {
|
||||||
|
success && this.$refs.xGrid.commitProxy('query')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
pageEdit(row) {
|
||||||
|
if (!row) {
|
||||||
|
this.$mk.msg("请选择行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$mk.dialog.open({
|
||||||
|
page: editPage,
|
||||||
|
title: "编辑角色信息",
|
||||||
|
pageMode: "edit",
|
||||||
|
dataId: row[this.keyName],
|
||||||
|
callback: ({ success }) => {
|
||||||
|
success && this.$refs.xGrid.commitProxy('query')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
pageDelete(row) {
|
||||||
|
|
||||||
|
|
||||||
|
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords();
|
||||||
|
let ids = [];
|
||||||
|
rows.forEach((row) => {
|
||||||
|
ids.push(row[this.keyName]);
|
||||||
|
|
||||||
|
});
|
||||||
|
console.log(rows);
|
||||||
|
if (!ids.length) {
|
||||||
|
this.$mk.error("请选择行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$mk.confirm('您确定要删除吗?').then(type => {
|
||||||
|
if (type == 'confirm') {
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.delete,
|
||||||
|
loading: "删除中...",
|
||||||
|
data: {
|
||||||
|
ids: ids
|
||||||
|
}
|
||||||
|
}).then(() => {
|
||||||
|
this.$mk.success("删除成功");
|
||||||
|
this.onSearch();
|
||||||
|
}).catch((a) => {
|
||||||
|
this.$mk.error(a.data.msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
onSearch() {
|
||||||
|
this.$refs.xGrid.commitProxy('query')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
.page-body {
|
||||||
|
padding: 10px 10px;
|
||||||
|
background: @base-bg-color;
|
||||||
|
}
|
||||||
|
.gridPanel{
|
||||||
|
height: calc(100vh - 430px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -99,6 +99,7 @@ export default {
|
||||||
logging: false,
|
logging: false,
|
||||||
error: '',
|
error: '',
|
||||||
form: this.$form.createForm(this),
|
form: this.$form.createForm(this),
|
||||||
|
mobileTest:"18607684660",
|
||||||
user: {
|
user: {
|
||||||
mobile: '18192398883',
|
mobile: '18192398883',
|
||||||
password: '888888'
|
password: '888888'
|
||||||
|
|
@ -132,6 +133,9 @@ export default {
|
||||||
}
|
}
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
if(!this.isMiddleAdmin()){
|
||||||
|
this.user.mobile = this.mobileTest;
|
||||||
|
}
|
||||||
this.form.setFieldsValue({
|
this.form.setFieldsValue({
|
||||||
name: this.user.mobile,
|
name: this.user.mobile,
|
||||||
password: this.user.password
|
password: this.user.password
|
||||||
|
|
@ -139,6 +143,7 @@ export default {
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}) // loadsh的pick方法
|
}) // loadsh的pick方法
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations('account', ['setUid', 'setUser', 'setPermissions', 'setRoutesConfig', 'setSettings', 'setCompany', 'setProject']),
|
...mapMutations('account', ['setUid', 'setUser', 'setPermissions', 'setRoutesConfig', 'setSettings', 'setCompany', 'setProject']),
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
|
||||||
|
// 视图组件
|
||||||
|
const view = {
|
||||||
|
tabs: () => import('@/layouts/tabs'),
|
||||||
|
blank: () => import('@/layouts/BlankView'),
|
||||||
|
page: () => import('@/layouts/PageView')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 路由组件注册-BaseAdmin端
|
||||||
|
const BaseAdminRouterMap = {
|
||||||
|
BaseAdmin: {
|
||||||
|
name: '用户管理',
|
||||||
|
icon: 'idcard',
|
||||||
|
component: view.page,
|
||||||
|
meta: {
|
||||||
|
},
|
||||||
|
authority: {
|
||||||
|
permission: ['BaseAdmin-All'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
BaseAdminList: {
|
||||||
|
name: '用户管理',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/BaseAdmin/BaseAdminList',
|
||||||
|
component: () => import('@/pages/BaseAdmin/BaseAdmin/list'),
|
||||||
|
|
||||||
|
authority: {
|
||||||
|
permission: ['BaseAdmin-All'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
BasePermission: {
|
||||||
|
name: '权限管理',
|
||||||
|
icon: 'idcard',
|
||||||
|
component: view.page,
|
||||||
|
meta: {
|
||||||
|
},
|
||||||
|
authority: {
|
||||||
|
permission: ['BasePermission-All'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
RoleList: {
|
||||||
|
name: '角色管理',
|
||||||
|
icon: 'idcard',
|
||||||
|
path: '/BasePermission/RoleList',
|
||||||
|
component: () => import('@/pages/BaseAdmin/BaseRole/list'),
|
||||||
|
authority: {
|
||||||
|
permission: ['BasePermission-All'],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
let routerNames = "BindEmail,ChangePassword,ChangeProfile,GetCompanyInfo,BaseAdminCreate,BaseAdminDetail,BaseAdminDelete,GetEmailCode,ForgetPasswordCheckEmai,ForgetPasswordCheckMobile,GetCompanyList,ForgetPasswordResetPassword,BaseAdminLogDetail,BaseAdminLogList,Login,LoginByMobile,GetMobileCode,BaseAdminSettings,BaseAdminSettingsUpdate,SwitchCompany,BaseAdminUpdate,BaseAdminUpdatePassword";
|
||||||
|
routerNames += ",BasePermissionBatchDelete,BasePermissionCreate,BasePermissionDetail,BasePermissionDelete,BasePermissionList,BasePermissionUpdate,DepartmentPermissionBatchDelete,DepartmentPermissionCreate,DepartmentPermissionDelete,DepartmentPermissionList,BasePermissionLogDetail,BasePermissionLogList,RoleBatchDelete,RoleCreate,RoleDetail,RoleDelete,RoleList,RolePermissionBatchDelete,RolePermissionCreate,RolePermissionDelete,RolePermissionList,RoleUpdate,BasePermissionSettings,BasePermissionSettingsUpdate,UserCustomBatchDelete,UserCustomCreate,UserCustomDelete,UserCustomList,UserLevelCreate,UserLevelDetail,UserLevelDelete,UserLevelUpdate,UserRoleBatchDelete,UserRoleCreate,UserRoleDelete,UserRoleList"
|
||||||
|
|
||||||
|
|
||||||
|
routerNames.split(',').forEach(name => {
|
||||||
|
if (name && !(name in BaseAdminRouterMap)) {
|
||||||
|
BaseAdminRouterMap[name] = {
|
||||||
|
meta: {
|
||||||
|
invisible: true // 不在菜单中显示
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
export default BaseAdminRouterMap
|
||||||
|
|
@ -10,6 +10,7 @@ import AdminUserRouterMap from '@/router/Middle/Admin/AdminUser/router.map.js'
|
||||||
import BasePermissionRouterMap from '@/router/Middle/Base/BasePermission/router.map.js'
|
import BasePermissionRouterMap from '@/router/Middle/Base/BasePermission/router.map.js'
|
||||||
|
|
||||||
|
|
||||||
|
import BaseAdminRouterMap from '@/router/BaseAdmin/router.map.js'
|
||||||
|
|
||||||
|
|
||||||
// 合并BaseRouterMap ConfigRouterMap ServiceRouterMap
|
// 合并BaseRouterMap ConfigRouterMap ServiceRouterMap
|
||||||
|
|
@ -21,6 +22,8 @@ const routerMap = Object.assign({},
|
||||||
BaseAgentRouterMap,
|
BaseAgentRouterMap,
|
||||||
BaseCompanyRouterMap,
|
BaseCompanyRouterMap,
|
||||||
BasePermissionRouterMap,
|
BasePermissionRouterMap,
|
||||||
|
|
||||||
|
BaseAdminRouterMap,
|
||||||
)
|
)
|
||||||
|
|
||||||
export default routerMap
|
export default routerMap
|
||||||
Loading…
Reference in New Issue