Commit 82694a76 authored by mengwenhao's avatar mengwenhao

Merge branch 'dev' of https://git.yidian-inc.com:8021/bp/op-web-service into dev

parents b9c586d8 808dbc70
......@@ -12,7 +12,7 @@ const env = process.env.NODE_ENV;
const app = new Koa();
app.use(serve(path.join(__dirname, './public')));
app.use(koaBody({multipart: true}));
app.use(koaBody({ multipart: true }));
app.use(bodyParser());
app.use(router.routes(), router.allowedMethods());
......
......@@ -61,20 +61,20 @@ exports.get_token = async (ctx, next) => {
exports.get_ks3_config = async (ctx, next) => {
console.log(8888, await _get_bucket(ctx, next))
const { result: { bucket }} = JSON.parse(await _get_bucket(ctx, next))
const { result: { objectId }} = JSON.parse(await _get_obj_id(ctx, next))
const { result: { bucket } } = JSON.parse(await _get_bucket(ctx, next))
const { result: { objectId } } = JSON.parse(await _get_obj_id(ctx, next))
console.log(888834333, bucket, objectId)
const getExpires = (seconds) => {
return Math.round(new Date().getTime()/1000) + seconds;
return Math.round(new Date().getTime() / 1000) + seconds;
};
const policy = {
"expiration": new Date(getExpires(3600)*1000).toISOString(), //一小时后
"expiration": new Date(getExpires(3600) * 1000).toISOString(), //一小时后
"conditions": [
["eq","$bucket", bucket],
["starts-with","$acl", "public-read"],
["eq", "$bucket", bucket],
["starts-with", "$acl", "public-read"],
// ["starts-with", "$key", ""],
// ["starts-with", "$name", ""], //表单中传了name字段,也需要加到policy中
// ["starts-with", "$x-kss-meta-custom-param1",""],
......@@ -107,21 +107,21 @@ exports.upload_ks3_image = async (ctx, next) => {
// console.log('upload_ks3_image::::::', ctx.request.files)
const file = ctx.request.files && ctx.request.files.file;
console.log(888899, await _get_bucket(ctx, next))
const { result: { bucket }} = JSON.parse(await _get_bucket(ctx, next))
const { result: { objectId }} = JSON.parse(await _get_obj_id(ctx, next))
const { result: { bucket } } = JSON.parse(await _get_bucket(ctx, next))
const { result: { objectId } } = JSON.parse(await _get_obj_id(ctx, next))
console.log(3334444, file.type)
const getExpires = (seconds) => {
return Math.round(new Date().getTime()/1000) + seconds;
return Math.round(new Date().getTime() / 1000) + seconds;
};
const acl = 'public-read';
const policy = {
"expiration": new Date(getExpires(3600)*1000).toISOString(), //一小时后
"expiration": new Date(getExpires(3600) * 1000).toISOString(), //一小时后
"conditions": [
["eq","$bucket", bucket],
["starts-with","$acl", "public-read"],
["eq", "$bucket", bucket],
["starts-with", "$acl", "public-read"],
]
}
const stringToSign = Ks3Util.Base64.encode(JSON.stringify(policy))
......
......@@ -20,7 +20,6 @@ exports.getRole_list = async (ctx, next) => {
json: true,
body: ctx.request.body
}
console.log('server getlist_role::::', opts)
ctx.body = await req(ctx, opts)
}
exports.getAdd_role = async (ctx, next) => {
......@@ -52,6 +51,8 @@ exports.getUpdate_role = async (ctx, next) => {
json: true,
body: ctx.request.body
}
console.log(opts, 'optsoptsoptsopts888888')
console.log(ctx.request.query, 'pppp')
ctx.body = await req(ctx, opts)
}
exports.getDelete_role = async (ctx, next) => {
......
......@@ -11,6 +11,5 @@ exports.fetch_user = async (ctx, next) => {
Cookie: ctx.request.header.cookie
}
};
console.log("fetch_user:::::", ctx.request);
ctx.body = await req(ctx, opts);
};
const API_INTERNAL_URI = require('../config.js').API_INTERNAL_URI
const req = require('../utils/request').httpReq
const controller_utils = require('./utils')
//用户详情
exports.getUser_detail = async (ctx, next) => {
......@@ -15,18 +16,7 @@ exports.getUser_detail = async (ctx, next) => {
}
var query = {
async get_permissions (ctx) {
// http://bp-test.ini.yidian-inc.com/merchant/authority/get_role_list?user_email=jianghaiming@126.com
const url = `${API_INTERNAL_URI}/merchant/authority/get_role_list`;
const { email } = ctx.request.query;
const opts = {
url,
method: "GET",
qs: {
user_email: "jianghaiming@126.com"
// user_email: email
}
};
ctx.body = await req(ctx, opts);
ctx.body = await controller_utils.getUserPermission(ctx);
}
};
......
const API_INTERNAL_URI = require('../config.js').API_INTERNAL_URI
const req = require('../utils/request').httpReq
exports.getUserPermission = async (ctx) => {
const url = `${API_INTERNAL_URI}/merchant/authority/get_role_list`;
const { email, op_cur_user } = ctx.request.query;
const user = email || op_cur_user;
const opts = {
url,
method: "GET",
qs: {
user_email: "jianghaiming@126.com"
// user_email: user
}
};
return await req(ctx, opts);
}
\ No newline at end of file
const { options } = require('less');
const request = require('request')
exports.httpReq = (ctx, opts) => {
opts.timeout = opts.timeout || 1000
return new Promise((resolve, reject) => {
// var time_start = +new Date()
// opts.qs = {...ctx.request.query, ...opts.qs};
var time_start = +new Date()
opts.qs = {...ctx.request.query, ...opts.qs};
request(opts, (err, res, body) => {
//console.info(`[Api] httpReq (${opts.url},${opts.headers && opts.headers.cookie}) spent: ${+new Date() - time_start}ms`)
console.info(`[Api] httpReq (${opts.url},${opts.headers && opts.headers.cookie}, user:[${opts.qs.op_cur_user}]) spent: ${+new Date() - time_start}ms`)
if (!err) {
resolve(body)
......@@ -19,24 +18,3 @@ exports.httpReq = (ctx, opts) => {
})
})
}
// const axios = require('axios')
// const instance = axios.create({})
// exports.httpReq = (ctx, opts) => {
// opts.timeout = opts.timeout || 1000
// return new Promise((resolve, reject) => {
// instance(opts).then((res) => {
// console.log(res);
// resolve(res.data);
// }).catch(({response}) => {
// // console.log(88888, response)
// reject(response.data.message)
// })
// })
// }
\ No newline at end of file
......@@ -15,7 +15,7 @@ const headerConfig = {
name: '企业认证管理'
},
{
path: '/life-no/life',
path: '/lifeNo',
name: '生活号管理'
},
{
......
......@@ -41,7 +41,7 @@ export default {
};
},
computed: {
menuItemsWithAuth: function() {
menuItemsWithAuth: function () {
const keys = Object.keys(this.$store.getters.subPermissions)
return this.menuItems.filter(ele => keys.includes(ele.key))
},
......@@ -51,7 +51,7 @@ export default {
return this.$route.path;
},
},
beforeMount() {
beforeMount () {
},
methods: {},
};
......
......@@ -38,10 +38,11 @@ export const PAGEMODULE_PERMISSIONNAME = {
enterprise: 'enterprise_certification_management',
lifeNo: 'life_official_account_management',
role: 'role_management',
// roleAddRole: 'role_addRole',
user: 'user_management'
}
export const PERMISSIONNAME_PAGEMODULE = (function() {
export const PERMISSIONNAME_PAGEMODULE = (function () {
const obj = {}
for (let ele in PAGEMODULE_PERMISSIONNAME) {
obj[PAGEMODULE_PERMISSIONNAME[ele]] = ele
......@@ -57,10 +58,8 @@ export const PATH_PERMISSION_NAME = {
'/enterprise/certification': 'enterprise_certification_management',
'/enterprise/audit': 'enterprise_certification_management.audit',
'/enterprise/establish': 'enterprise_certification_management.create',
'/lifeNo': 'life_official_account_management',
'/roleManageRole': 'role_management',
// '/roleAddRole': 'role_addRole',
'/user': 'user_management'
}
\ No newline at end of file
<template>
<div class="addRole">
<el-button type="primary" @click="newAddRole">新增</el-button>
<el-button
type="primary"
v-if="permission.get('create')"
@click="newAddRole"
>新增</el-button
>
<!-- 角色列表 -->
<el-table
:data="roleDataList"
......@@ -28,7 +33,7 @@
<el-form>
<!-- 编辑 -->
<div v-if="edit">
<roleDetail :role_info_detail="role_info_detail" />
<roleInfo :role_info_detail="role_info_detail" />
</div>
<!-- 新增 -->
<el-form-item label="角色名称" :label-width="formLabelWidth">
......@@ -57,7 +62,7 @@
</template>
<script>
import page from "../components/Pagination"
import roleDetail from './components/roleDetail'
import roleInfo from './components/roleInfo'
import {
getRole_list as reqGetRole_list, getAdd_role as reqGetAdd_role,
getAll_role_list as reqGetAll_role_list,
......@@ -66,20 +71,27 @@ import {
} from "../../service/role";
import { ElMessage } from 'element-plus'
export default {
name: 'KeepaddRole',
components: {
page,
roleDetail
roleInfo
},
computed: {
permission () {
const modulePermissions = this.$store.getters.moduleSubPermissions('role') || [];
return new Map(modulePermissions.map(ele => [ele.name, true]))
},
},
data () {
return {
parmas: {
page: 1,
page_size: 10
page_size: 20
},
user_info: {
user_name: "jianghaiming",
user_email: "jianghaiming@126.com",
op_cur_user: "jianghaiming@yidian-inc.com",
name: "jianghaiming",
email: "jianghaiming@126.com",
// op_cur_user: "jianghaiming@yidian-inc.com",
},
roleDataList: [],
totalNum: null,
......@@ -120,8 +132,9 @@ export default {
this.$router.push({ name: 'RoleDetail', query: { roleId: row.role_id } });
},
getPermissionsAll () {
let { user_name, user_email } = this.user_info
reqGetAll_role_list(user_name, user_email).then(res => {
// this.user_info = this.$store.state.userInfo
let { email } = this.user_info
reqGetAll_role_list(email).then(res => {
this.permissionsAll = res
})
},
......@@ -131,11 +144,16 @@ export default {
this.roleTitle = '新增角色'
this.edit = false
this.roleName = ""
this.selectedOptions = []
},
//获取角色列表
getGetRole_list () {
let { page, page_size } = this.parmas
reqGetRole_list(page, page_size).then(res => {
let parmasRole_list = {
page,
page_size,
}
reqGetRole_list(parmasRole_list).then(res => {
this.roleDataList = res.result
this.totalNum = res.count
})
......@@ -152,8 +170,13 @@ export default {
this.checkFn()
return false
}
let role_name = this.roleName, permissions = this.currentRolePrivilege
reqGetAdd_role(role_name, permissions).then(res => {
let { email } = this.$store.state.userInfo //当前登陆人
let parmasAdd_role = {
op_cur_user: email,
role_name: this.roleName,
permissions: this.currentRolePrivilege
}
reqGetAdd_role(parmasAdd_role).then(res => {
if (res.status === "success") {
this.dialogFormVisible = false
this.getGetRole_list()
......@@ -205,7 +228,6 @@ export default {
}
})
this.selectedOptions = selectData
console.log(this.selectedOptions, '00008u989')
},
//编辑角色
getUpdate_role () {
......@@ -213,10 +235,16 @@ export default {
this.checkFn()
return false
}
let { role_name, role_id, role_status } = this.role_info_detail
let { op_cur_user } = this.user_info
role_name = this.roleName
reqGetUpdate_role(op_cur_user, role_name, role_id, role_status, this.permissionsUpdate).then(res => {
let { role_id, role_status } = this.role_info_detail
let { email } = this.$store.state.userInfo//当前登陆人
let parmasUpdate_role = {
op_cur_user: email,
role_name: this.roleName,
role_id,
role_status,
permissions: this.permissionsUpdate
}
reqGetUpdate_role(parmasUpdate_role).then(res => {
if (res.status === "success") {
this.dialogFormVisible = false
this.edit = true
......@@ -233,7 +261,6 @@ export default {
}
},
parentCateChange (id) {
console.log(id, '000')
this.getSelectedOptions(id)
},
getSelectedOptions (selectedOptions) {
......
......@@ -35,9 +35,10 @@
></el-table-column>
<el-table-column
label="状态"
prop="role_status"
:formatter="hasStatusFormat"
align="center"
></el-table-column>
>
</el-table-column>
<el-table-column
label="最后修改日期"
prop="update_time"
......@@ -51,7 +52,10 @@
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
v-if="!(scope.row.role_status == 2 || scope.row.role_status == 3)"
v-if="
!(scope.row.role_status == 2 || scope.row.role_status == 3) &&
permission.get('edit')
"
size="mini"
@click.stop="handelModify(scope.row)"
type="primary"
......@@ -59,18 +63,21 @@
>
<el-button
size="mini"
v-if="permission.get('delete')"
@click.stop="handelDelete(scope.row)"
type="warning"
>删除</el-button
>
<el-button
size="mini"
v-if="permission.get('disable')"
@click.stop="handelDisable(scope.row)"
type="danger"
>禁用</el-button
>
<el-button
size="mini"
v-if="permission.get('enable')"
@click.stop="handelEnable(scope.row)"
type="success"
>启用</el-button
......@@ -116,11 +123,17 @@ import {
getDelete_role as reqGetDelete_role
} from "../../service/role";
export default {
name: 'RoleManagement',
name: 'KeepRoleManagement',
components: {
Layout,
page,
},
computed: {
permission () {
const modulePermissions = this.$store.getters.moduleSubPermissions('role') || [];
return new Map(modulePermissions.map(ele => [ele.name, true]))
},
},
data () {
return {
searchForm: {
......@@ -128,13 +141,13 @@ export default {
roleStatus: ''
},
user_info: {
user_name: this.$store.state.name,
op_cur_user: "jianghaiming@yidian-inc.com",
user_email: "jianghaiming@126.com",
name: "jianghaiming@yidian-inc.com",
// op_cur_user: "jianghaiming@yidian-inc.com",
email: "jianghaiming@126.com",
},
parmas: {
page: 1,
page_size: 10
page_size: 20
},
totalNum: null,
props: {
......@@ -160,19 +173,29 @@ export default {
this.getPermissionsAll()
},
methods: {
hasStatusFormat (row) {
let statusText = ['正常', '禁用', '删除']
return statusText[row.role_status - 1]
},
toRoleDetail (row) {
this.$router.push({ name: 'RoleDetail', query: { roleId: row.role_id } });
},
getPermissionsAll () {
let { user_name, user_email } = this.user_info
reqGetAll_role_list(user_name, user_email).then(res => {
let { email } = this.user_info
reqGetAll_role_list(email).then(res => {
this.permissionsAll = res
})
},
//获取角色列表
getGetRole_list () {
let { page, page_size } = this.parmas
reqGetRole_list(page, page_size, this.searchForm.roleStatus, this.searchForm.roleName).then(res => {
let parmasRole_list = {
page,
page_size,
role_status: this.searchForm.roleStatus,
role_name: this.searchForm.roleName
}
reqGetRole_list(parmasRole_list).then(res => {
this.managementList = res.result
this.totalNum = res.count
})
......@@ -228,7 +251,7 @@ export default {
role_name,
}
this.permissionsUpdate = permissions
let { op_cur_user } = this.user_info
let { email } = this.$store.state.userInfo //当前用户
let role_status
if (type === "disable") {
role_status = 2
......@@ -242,7 +265,7 @@ export default {
role_status = ""
}
if (type !== "modify") {
this.getUpdate_role(op_cur_user, role_name, role_id, role_status, permissions)
this.getUpdate_role(email, role_name, role_id, role_status, permissions)
}
})
},
......@@ -284,8 +307,15 @@ export default {
this.openBounced("disable", row.role_id)
},
//编辑列表操作
getUpdate_role (op_cur_user, role_name, role_id, role_status, permissions) {
reqGetUpdate_role(op_cur_user, role_name, role_id, role_status, permissions).then(res => {
getUpdate_role (email, role_name, role_id, role_status, permissions) {
let parmasUpdate_role = {
op_cur_user: email,
role_name: role_name,
role_id,
role_status,
permissions,
}
reqGetUpdate_role(parmasUpdate_role).then(res => {
if (res.status === "success") {
this.dialogVisible = false
this.getGetRole_list()
......@@ -305,10 +335,10 @@ export default {
},
//确认修改
confirm () {
let { op_cur_user } = this.user_info
let { email } = this.$store.state.userInfo
let { role_id, role_name } = this.role_info_detail
let role_status = ''
this.getUpdate_role(op_cur_user, role_name, role_id, role_status, this.currentRolePrivilege)
this.getUpdate_role(email, role_name, role_id, role_status, this.currentRolePrivilege)
},
parentCateChange (id) {
this.getSelectedOptions(id)
......
......@@ -20,7 +20,7 @@
</el-descriptions-item>
<el-descriptions-item>
<template #label> 创建人账号 </template>
{{ role_info_detail.update_user_name }}
{{ role_info_detail.create_user_name }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 创建时间 </template>
......@@ -42,18 +42,6 @@
<div class="tree" v-if="selectedOptions">
<h5 style="margin-bottom: 10px">角色范围</h5>
<div class="content">
<!-- <el-tree
:data="permissionsAll"
show-checkbox
:default-checked-keys="checkedKeys"
:default-expanded-keys="expandedKeys"
node-key="id"
ref="tree"
highlight-current
:props="defaultProps"
:expand-on-click-node="false"
>
</el-tree> -->
<el-cascader
v-model="selectedOptions"
:options="permissionsAll"
......@@ -73,13 +61,9 @@ export default {
data () {
return {
roleId: this.$route.query.roleId,
defaultProps: {
children: 'sub_permissions',
label: 'desc'
},
user_info: {
user_name: "jianghaiming",
user_email: "jianghaiming@126.com",
name: "jianghaiming",
email: "jianghaiming@126.com",
},
props: {
multiple: true,//设置为多选
......@@ -88,8 +72,6 @@ export default {
children: 'sub_permissions'//children值和哪个值绑定
},
selectedOptions: [],
checkedKeys: [],
expandedKeys: [],
permissionsAll: [],
role_info_detail: {//详情非编辑项
role_id: "",
......@@ -99,19 +81,15 @@ export default {
update_user_name: "",
create_time: "",
create_user_name: ""
},
}
}
},
created () {
let { user_name, user_email } = this.user_info
reqGetAll_role_list(user_name, user_email).then(res => {
// this.user_info = this.$store.state.userInfo
this.roleId = this.$route.query.roleId
let { email } = this.user_info
reqGetAll_role_list(email).then(res => {
this.permissionsAll = res
// this.permissionsAll.forEach(item => {
// item.disabled = true
// item.sub_permissions.forEach(element => {
// element.disabled = true
// })
// })
})
reqGet_role_info(this.roleId).then((res) => {
const { role_id, role_name, role_status, update_time, update_user_name, create_time, create_user_name, permissions } = res
......@@ -133,18 +111,6 @@ export default {
},
//遍历回显值selectedOptions
editEchoData (permissions) {
// let childArr = [], selectExpandedKeys = []
// permissions.forEach(item => {
// selectExpandedKeys.push(item.id)
// if (item.sub_permissions) {
// item.sub_permissions.forEach(element => {
// childArr.push(element.id)
// })
// }
// })
// this.checkedKeys = childArr
// this.expandedKeys = selectExpandedKeys
// console.log(this.checkedKeys, this.expandedKeys, ' this.expandedKeys ')
let selectData = []
permissions.map(item => {
let one = { id: item.id }
......
......@@ -53,7 +53,7 @@ import { getUser_detail as reqGetUser_detail } from "../../service/user";
export default {
data () {
return {
user_id: '1',
user_id: this.$route.query.userId,
user_info: {},
role_list: []//角色池
}
......
<template>
<div class="user-container">
<el-dialog :title="mode==='edit' ? '编辑用户':'创建用户'" v-model="modalVisable" :before-close="cancel">
<el-dialog title="编辑用户" v-model="modalVisable" :before-close="cancel">
<el-form :model="userInfo">
<el-form-item label="用户ID" :label-width="formLabelWidth">
<el-input class="form-val" v-model="userInfo.user_id" size="medium" disabled></el-input>
......@@ -10,8 +10,8 @@
<el-switch
class="form-val"
v-model="userInfo.user_status"
active-value=1
inactive-value=0
active-value='1'
inactive-value='2'
active-text="启用"
inactive-text="禁用"
>
......@@ -30,23 +30,21 @@
<el-input class="form-val" v-model="userInfo.organization" disabled></el-input>
</el-form-item>
<el-form-item label="授权角色信息" :label-width="formLabelWidth">
<!-- <el-input class="form-val" v-model="userInfo.roles"></el-input> -->
<el-select v-model="userInfo.roles" multiple placeholder="请选择">
<el-select v-model="userInfo.roles" multiple placeholder="请选择" class="form-val">
<el-option
v-for="item in roles"
:key="item.value"
:label="item.label"
:value="item.value">
:key="item.role_id"
:label="item.role_name"
:value="item.role_id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="敏感词权限" :label-width="formLabelWidth">
<!-- <el-input class="form-val">{{userInfo.is_sensitive_authority === 1 ? '是' : '否'}}</el-input> -->
<el-switch
v-model="userInfo.is_sensitive_authority"
class="form-val"
active-value=1
inactive-value=0
active-value='1'
inactive-value='2'
active-text="开启"
inactive-text="关闭"
>
......@@ -55,7 +53,7 @@
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button>取 消</el-button>
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确 定</el-button>
</span>
</template>
......@@ -63,20 +61,14 @@
</div>
</template>
<script>
import { ElMessage } from "element-plus";
import { getRole_list as reqGetRoles } from '@/service/role';
export default {
name: 'UserInfoEditModal',
props: {
mode: {
type: String,
default: 'edit',
},
data: Object,
// title: {
// type: String,
// default: "用户信息",
// },
visable: {
type: Boolean,
default: false
......@@ -86,13 +78,16 @@ export default {
return {
formLabelWidth: '120px',
userInfo: {},
roles: null,
roles: [],
modalVisable: false
}
},
watch: {
data(val) {
this.userInfo = val;
this.userInfo.roles = val.roles.map(ele => ele.role_id);
this.userInfo.user_status = val.user_status.toString();
this.userInfo.is_sensitive_authority = val.is_sensitive_authority.toString();
},
visable(val) {
this.modalVisable = val;
......@@ -103,8 +98,12 @@ export default {
},
methods: {
async getRoles() {
const roles = await reqGetRoles();
console.log(67777, roles)
const { code, result } = await reqGetRoles();
if (code !== 0) {
ElMessage.error("获取角色列表出错!");
return
}
this.roles = result;
},
confirm() {
this.$emit('confirm', this.userInfo);
......
<template>
<div class="user-container">
<el-dialog title="创建用户" v-model="modalVisable" :before-close="cancel">
<el-form :model="userInfo">
<el-form-item label="状态" :label-width="formLabelWidth">
<!-- <el-input class="form-val">{{data.user_status===1?'启用':'禁用'}}</el-input> -->
<el-switch
class="form-val"
v-model="userInfo.user_status"
active-value='1'
inactive-value='2'
active-text="启用"
inactive-text="禁用"
>
</el-switch>
</el-form-item>
<el-form-item label="姓名" :label-width="formLabelWidth">
<el-input class="form-val" v-model="userInfo.user_name"></el-input>
</el-form-item>
<el-form-item label="邮箱" :label-width="formLabelWidth">
<el-input class="form-val" v-model="userInfo.user_email"></el-input>
</el-form-item>
<el-form-item label="手机号" :label-width="formLabelWidth">
<el-input class="form-val" v-model="userInfo.user_mobile"></el-input>
</el-form-item>
<el-form-item label="所属组织" :label-width="formLabelWidth">
<el-input class="form-val" v-model="userInfo.organization"></el-input>
</el-form-item>
<el-form-item label="授权角色" :label-width="formLabelWidth">
<el-select v-model="userInfo.roles" multiple placeholder="请选择" class="form-val">
<el-option
v-for="item in roles"
:key="item.role_id"
:label="item.role_name"
:value="item.role_id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="敏感词权限" :label-width="formLabelWidth">
<el-switch
v-model="userInfo.is_sensitive_authority"
class="form-val"
active-value='1'
inactive-value='2'
active-text="开启"
inactive-text="关闭"
>
</el-switch>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="confirm">确 定</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script>
import { ElMessage } from "element-plus";
import { getRole_list as reqGetRoles } from '@/service/role';
export default {
name: 'UserInfoEditModal',
props: {
visable: {
type: Boolean,
default: false
}
},
data () {
return {
formLabelWidth: '120px',
userInfo: {
user_name: '',
user_email: '',
is_sensitive_authority: '0',
user_mobile: '',
roles: [],
user_status: '1',
organization: '',
},
roles: [],
modalVisable: false,
}
},
watch: {
data(val) {
this.userInfo = val;
this.userInfo.roles = val.roles.map(ele => ele.role_id);
},
visable(val) {
this.modalVisable = val;
}
},
beforeMount(){
this.getRoles();
},
methods: {
async getRoles() {
const { code, result } = await reqGetRoles();
if (code !== 0) {
ElMessage.error("获取角色列表出错!");
return
}
this.roles = result;
},
confirm() {
this.$emit('confirm', this.userInfo);
},
cancel() {
this.$emit('cancel');
}
},
}
</script>
<style lang="less">
.form-val {
margin-left: 20px;
width: 300px;
}
.form-val.el-input {
width: 80%;
}
</style>
\ No newline at end of file
......@@ -31,14 +31,12 @@
<el-form-item class="func-btn">
<el-button type="primary" @click="getUserList">查询</el-button>
<el-button @click="onReset">重置</el-button>
<el-button @click="createUser">新建用户</el-button>
</el-form-item>
</el-form>
<el-table
:data="renderUserList"
border
style="width: 100%"
>
<el-table-column prop="user_id" label="ID" width=70> </el-table-column>
<el-table :data="renderUserList" border style="width: 100%">
<el-table-column prop="user_id" label="用户ID" width="70">
</el-table-column>
<el-table-column prop="user_name" label="用户姓名"> </el-table-column>
<el-table-column prop="user_email" label="用户账号"> </el-table-column>
<el-table-column prop="user_status" label="状态"> </el-table-column>
......@@ -49,10 +47,7 @@
</el-table-column>
<el-table-column fixed="right" label="操作" width="140">
<template #default="scope">
<el-button
type="text"
size="small"
@click="checkUser(scope.row)"
<el-button type="text" size="small" @click="checkUser(scope.row)"
>查看</el-button
>
<el-button @click="editUser(scope.row)" type="text" size="small"
......@@ -62,14 +57,14 @@
v-if="scope.row.user_status === '启用'"
type="text"
size="small"
@click="enableUser"
@click="disableUser(scope.row)"
>禁用</el-button
>
<el-button
v-if="scope.row.user_status === '禁用'"
type="text"
size="small"
@click="disableUser"
@click="enableUser(scope.row)"
>启用</el-button
>
</template>
......@@ -82,22 +77,37 @@
/>
</div>
<user-info-modal :data="curUserInfo" :visable="modalVisable.info" @cancel="cancelEditModal('info')"></user-info-modal>
<user-info-edit-modal :data="curUserInfo" :visable="modalVisable.edit" :mode="curOperateMode" @confirm="confirmEditModal" @cancel="cancelEditModal('edit')"></user-info-edit-modal>
<user-info-modal
:data="curUserInfo"
:visable="modalVisable.info"
@cancel="cancelModal('info')"
></user-info-modal>
<user-info-edit-modal
:data="curUserInfo"
:visable="modalVisable.edit"
@confirm="confirmEditModal"
@cancel="cancelModal('edit')"
></user-info-edit-modal>
<user-info-new-modal
:visable="modalVisable.new"
@confirm="confirmEditModal"
@cancel="cancelModal('new')"
></user-info-new-modal>
</layout>
</template>
<script>
import Layout from "@/layouts";
import page from "@/components/Pagination";
import UserInfoModal from './components/UserInfoModal';
import UserInfoEditModal from './components/UserInfoEditModal';
import UserInfoModal from "./components/UserInfoModal";
import UserInfoEditModal from "./components/UserInfoEditModal";
import UserInfoNewModal from "./components/UserInfoNewModal";
import { ElMessage } from "element-plus";
import {
getUserList as reqGetUserList,
getUserDetail as reqGetUserDetail,
editUser as reqEditUser,
createUser as reqCreateUser
createUser as reqCreateUser,
} from "@/service/user";
export default {
......@@ -105,9 +115,10 @@ export default {
Layout,
page,
UserInfoModal,
UserInfoEditModal
UserInfoEditModal,
UserInfoNewModal,
},
data() {
data () {
return {
pageParams: {
page: 1,
......@@ -123,12 +134,13 @@ export default {
modalVisable: {
info: false,
edit: false,
new: false,
},
curOperateMode: 'new'
curOperateMode: "new",
};
},
computed: {
renderUserList() {
renderUserList () {
const statusMap = new Map([
[1, "启用"],
[2, "禁用"],
......@@ -140,11 +152,11 @@ export default {
});
},
},
beforeMount() {
beforeMount () {
this.getUserList();
},
methods: {
async getUserList() {
async getUserList () {
const { code, result } = await reqGetUserList(this.pageParams);
if (code !== 0) {
......@@ -156,55 +168,96 @@ export default {
this.userList = data;
},
async setCurUserInfo(user_id) {
async setCurUserInfo (user_id) {
const { code, result } = await reqGetUserDetail({ user_id });
if (code === 0) {
this.curUserInfo = {
...result.user_info,
roles: result.role_list
}
roles: result.role_list,
};
} else {
ElMessage.error("获取用户信息出错!");
}
},
async checkUser(row) {
async checkUser (row) {
const { user_id } = row;
await this.setCurUserInfo(user_id);
this.openModal('info')
this.openModal("info");
},
async editUser(row) {
async editUser (row) {
const { user_id } = row;
await this.setCurUserInfo(user_id);
// this.openModal('edit');
this.modalVisable.edit = true;
this.curOperateMode = 'edit';
this.curOperateMode = "edit";
},
openModal(key) {
Object.keys(this.modalVisable).forEach(ele => {
this.modalVisable[ele] = (key === ele);
openModal (key) {
Object.keys(this.modalVisable).forEach((ele) => {
this.modalVisable[ele] = key === ele;
});
},
confirmEditModal(userInfo) {
// this.curOperateMode
console.log('confirmEditModal:::::', userInfo);
if (this.curOperateMode === 'edit') {
reqEditUser()
} else if (this.curOperateMode === 'new') {
reqCreateUser()
async confirmEditModal (userInfo) {
const {
user_id,
user_name,
user_email,
is_sensitive_authority,
user_mobile,
roles,
user_status,
organization,
} = userInfo;
let res = {};
if (this.curOperateMode === "edit") {
const editData = {
user_id,
user_name,
user_email,
is_sensitive_authority: parseInt(is_sensitive_authority),
user_mobile,
role_id: roles,
user_status: parseInt(user_status),
};
res = await reqEditUser(editData);
} else if (this.curOperateMode === "new") {
const newData = {
user_name,
user_email,
is_sensitive_authority: parseInt(is_sensitive_authority),
user_mobile,
role_id: roles,
user_status: parseInt(user_status),
organization,
};
res = await reqCreateUser(newData);
}
if (res.code === 0) {
this.cancelModal(this.curOperateMode);
ElMessage.success("更新成功!");
this.getUserList();
} else {
ElMessage.error(res.reason);
}
},
cancelEditModal(name) {
console.log(44444, name)
this.modalVisable[name] = false
cancelModal (name) {
this.modalVisable[name] = false;
},
createUser () {
this.curOperateMode = "new";
this.openModal("new");
},
//重置
onReset() {
onReset () {
this.pageParams = {
page: 1,
pageSize: 20,
......@@ -215,16 +268,35 @@ export default {
};
},
updatePage({ page, pageSize }) {
updatePage ({ page, pageSize }) {
page && (this.pageParams.page = page);
pageSize && (this.pageParams.pageSize = pageSize);
this.getUserList();
},
enableUser() {
async enableUser (row) {
const { user_id } = row;
const { code, reason } = await reqEditUser({ user_status: 1, user_id });
if (code === 0) {
ElMessage.success("启用成功!");
this.getUserList();
} else {
ElMessage.error(reason);
}
},
async disableUser (row) {
const { user_id, reason } = row;
const { code } = await reqEditUser({ user_status: 2, user_id });
if (code === 0) {
ElMessage.success("禁用成功!");
this.getUserList();
} else {
ElMessage.error(reason);
}
},
},
};
</script>
<style lang="less" scoped>
......
......@@ -18,7 +18,7 @@ export default {
data () {
return {
currentPage: 1,
page_size: 10
page_size: 20
}
},
methods: {
......
......@@ -63,6 +63,9 @@ const routes = [
path: '/lifeNo',
name: 'LifeNo',
component: LifeNo,
meta: {
requireAuth: true
}
},
{
path: '/lifeNoDetail',
......@@ -78,7 +81,7 @@ const routes = [
{
path: '/userDetail',
name: 'UserDetail',
component: UserDetail,
component: UserDetail
},
//角色管理
{
......@@ -86,13 +89,17 @@ const routes = [
name: 'AddRole',
component: AddRole,
meta: {
requireAuth: true,
requireAuth: true
}
},
{
path: '/roleManageRole',
name: 'ManageRole',
component: ManageRole
component: ManageRole,
meta: {
requireAuth: true,
keepAlive: true
}
},
{
path: '/roleRoleDetail',
......
import axios from '../utils/request';
// import qs from 'qs';
//角色列表
export async function getRole_list (page, page_size, role_status, role_name) {
const res = await axios.post("/api/v1/merchant/authority/role_list", {
page, page_size, role_status, role_name
})
export async function getRole_list (parmasRole_list) {
const res = await axios.post("/api/v1/merchant/authority/role_list", parmasRole_list)
return res;
}
//添加角色
export async function getAdd_role (role_name, permissions) {
const res = await axios.post("/api/v1/merchant/authority/add_role", {
role_name, permissions
})
export async function getAdd_role (parmasAdd_role) {
const res = await axios.post("/api/v1/merchant/authority/add_role", parmasAdd_role)
return res;
}
//角色编辑
export async function getUpdate_role (op_cur_user, role_name, role_id, role_status, permissions) {
const res = await axios.post("/api/v1/merchant/authority/update_role", {
op_cur_user, role_name, role_id, role_status, permissions
})
export async function getUpdate_role (parmasUpdate_role) {
const res = await axios.post("/api/v1/merchant/authority/update_role", parmasUpdate_role)
return res;
}
//角色详情
......@@ -37,9 +31,9 @@ export async function getDelete_role (role_id) {
}
//权限列表
export async function getAll_role_list (user_name, user_email) {
export async function getAll_role_list (user_email) {
const res = await axios.post("/api/v1/merchant/authority/get_role_list", {
user_name, user_email
user_email
})
return res.permissions;
}
......@@ -25,11 +25,11 @@ export async function getUserDetail (params) {
}
export async function editUser (data) {
return await axios.post("/api/v1/users/edit", { data });
return await axios.post("/api/v1/users/edit", data);
}
export async function createUser (data) {
return await axios.post("/api/v1/users/new", { data });
return await axios.post("/api/v1/users/new", data);
}
//用户详情
export async function getUser_detail (user_id) {
......
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