Commit 4f963e12 authored by lvweichao's avatar lvweichao

update: user page

parent df991c79
......@@ -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) => {
......
......@@ -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
<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,7 +115,8 @@ export default {
Layout,
page,
UserInfoModal,
UserInfoEditModal
UserInfoEditModal,
UserInfoNewModal,
},
data() {
return {
......@@ -123,8 +134,9 @@ export default {
modalVisable: {
info: false,
edit: false,
new: false,
},
curOperateMode: 'new'
curOperateMode: "new",
};
},
computed: {
......@@ -161,8 +173,8 @@ export default {
if (code === 0) {
this.curUserInfo = {
...result.user_info,
roles: result.role_list
}
roles: result.role_list,
};
} else {
ElMessage.error("获取用户信息出错!");
}
......@@ -171,7 +183,7 @@ export default {
async checkUser(row) {
const { user_id } = row;
await this.setCurUserInfo(user_id);
this.openModal('info')
this.openModal("info");
},
async editUser(row) {
......@@ -179,28 +191,69 @@ export default {
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);
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");
},
//重置
......@@ -221,10 +274,29 @@ export default {
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>
......
......@@ -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