Commit 250d7a46 authored by mengwenhao's avatar mengwenhao

update:合并分支

parents 547f3494 fc9f6548
#!/usr/bin/env bash
PACKAGE_FILE_NAME="*.jar" #commit job生成的包。
HOME_DIR_INSIDE_CONTAINER="/home/services" #container中的根目录,SERVICE_DIR所在的目录
SERVICE_DIR=op-web-service #container中服务所在的目录
LOG_DIRS="
${HOME_DIR_INSIDE_CONTAINER}/${SERVICE_DIR}/logs
" #运行时日志所在目录,会在deploy时map到宿主机的目录下去
START_SCRIPT="./start_env/start.sh" #部署完后,启动服务的脚本,相对于start_env的路径。start_env最终会是HOME_DIR_INSIDE_CONTAINER
PACKAGE_FILE_PATH="start_env/${SERVICE_DIR}/bin/" #把package file拷贝到这个目录, 相对于start_env的路径。
BASE_IMAGE="docker2.yidian.com:5000/centos/compile-jdk8:20150720" #服务运行的基础镜像
#下面的选项一般不用
SYNC_DATA_OPERATIONS="
" #这里的命令是在启动docker前做的
DATA_DIRS="
" #会产生数据的一些目录,会在deploy时map到宿主机的目录下
DOCKERFILE="" #使用指定的Dockerfile, 不然用上面的配置项自动生成,一般不用
SET_KEYS="
" #每行格式id_ras.a->id_rsa.b, 可以多行,将keys目录下的id_rsa.a放到image内的/root/.ssh/id_rsa.b
#!/usr/bin/env bash
QA_PRE_START_CMD="" #用于测试环境在START_CMDS执行之前执行,一般用来去掉服务启动时候的内存要求。
START_CMDS="cd /home/services/ ; sh start.sh ${TARGET_ENV}" #进入docker container以后的服务启动命令
DOCKER_PORT_MAPS="9012:9012" #宿>主机端口:container内部端口的映射关系
DOCKER_VOLUMN_MAPS="~/_logs/${COMPONENT}-${TARGET_ENV}:/home/services/op-web-service/logs" #宿主机目录和container内部的目录映射关系
DOCKER_RUN_OPTIONS="--net=host" #docker启动时候额外的特殊的启动参数
DOCKER_PRESTOP_CMD="" #停止容器之前,执行的一些清理操作
SERVICE_PORT="9012" #服务的端口
DONT_CHECK_PORT='false' #如果服务不启动端口,那么这个设置为false
#只用于线上部署,服务降级命令(纯字符串,使用单括号),如果部署时downgrade_flag设置成true, 则在部署完成后,enable haproxy之前,在部署的container内部执行这个命令
#如果需要访问自己的某端口,使用, 代替。
DOWNGRADE_CMD=''
DEPLOY_BATCH_INTERVAL="" #只用于线上部署,每批(parallel)机器部署完以后的时间间隔
......@@ -7,7 +7,7 @@ START_CMDS="tar zxf webui_opwebservice_package.tar.gz -C opservice.yidianzixun.c
CONTAINER_NAMES="webui-opwebservice-${env}"
# Port maps for each container, one map a line, same order with $start_cmds
DOCKER_PORT_MAPS="9008:8055"
DOCKER_PORT_MAPS="9012:8055"
# This is for changing container name, remove old containers when deploy new one
OLD_CONTAINER_NAMES="
......@@ -23,10 +23,10 @@ DOCKER_VOLUMN_MAPS="
# Other docker run options
DOCKER_RUN_OPTIONS=""
# Image name
IMAGE_NAME="docker2.yidian.com:5000/publish/webui-opwebservice-master-${COMMIT_NUMBER}-image"
IMAGE_NAME="docker2.yidian.com:5000/publish/webui-opwebservice-master-${release_number}-image"
# This is for stopping container, kill sepicify process inside the container before 'docker stop' and 'docker rm'
DOCKER_PRESTOP_CMD=""
# Service port for apitest
SERVICE_PORT="9008"
SERVICE_PORT="9012"
# Service port inside container
ORIGIN_SERVICE_PORT="8055"
......@@ -15,7 +15,7 @@ const PANDORA_URI = {
const API_INTERNAL_URI = {
'development': "http://bp-dev.ini.yidian-inc.com",
'test': "http://bp-dev.ini.yidian-inc.com",
'test': "http://bp-test.ini.yidian-inc.com",
'production': "http://bp-test.go2yd.com"
}
......
......@@ -90,8 +90,8 @@ exports.get_ks3_config = async (ctx, next) => {
console.log('stringToSign:::', stringToSign)
// const signature = Ks3Util.b64_hmac_sha1(KS3_CONFIG.AccessKeySecret, stringToSign)
const signature = crypto.createHmac('sha1', KS3_CONFIG.SK).update(stringToSign).digest().toString('base64');
const signature = Ks3Util.b64_hmac_sha1(KS3_CONFIG.SK, stringToSign)
// const signature = crypto.createHmac('sha1', KS3_CONFIG.SK).update(stringToSign).digest().toString('base64');
console.log("signature::::::", signature)
ctx.body = {
......
......@@ -51,8 +51,6 @@ 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) => {
......
......@@ -9,8 +9,8 @@ exports.getUserPermission = async (ctx) => {
url,
method: "GET",
qs: {
user_email: "jianghaiming@126.com"
// user_email: user
// user_email: "jianghaiming@126.com"
user_email: user
}
};
return await req(ctx, opts);
......
......@@ -12,6 +12,7 @@ Ks3.b64_hmac_sha1 = function (key, data) {
* Convert an array of big-endian words to a base-64 string
*/
Ks3.binb2b64 = function (binarray) {
console.log("binb2b64::::::", binarray)
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str = "";
for (var i = 0; i < binarray.length * 4; i += 3) {
......@@ -23,6 +24,8 @@ Ks3.binb2b64 = function (binarray) {
else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
}
}
console.log("binb2b6422222::::::", str)
return str;
}
......
......@@ -4,10 +4,20 @@ 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};
const defaultQs = {
appid: 'merchant-op',
cv: '1.0.0',
version: '999999',
distribution: 'op',
net: 'wifi',
platform: '2',
}
opts.qs = { ...defaultQs, ...ctx.request.query, ...opts.qs};
request(opts, (err, res, body) => {
console.info(`[Api] httpReq (${opts.url},${opts.headers && opts.headers.cookie}, user:[${opts.qs.op_cur_user}]) spent: ${+new Date() - time_start}ms`)
console.info(`[Api] httpReq (${ctx.request.url}, user:[${opts.qs.op_cur_user}]) spent: ${+new Date() - time_start}ms`)
if (!err) {
resolve(body)
......
<template>
<div>
<router-view />
<!-- <router-view /> -->
<router-view v-slot="{ Component }">
<keep-alive v-if="$route.meta.keepAlive">
<component :is="Component"> </component>
</keep-alive>
<component :is="Component" v-if="!$route.meta.keepAlive"> </component>
</router-view>
</div>
</template>
......@@ -10,7 +17,7 @@ import { redirectToLogin } from './utils/util';
export default {
async mounted () {
if (this.$store.state.permissions && this.$store.status.userInfo) return
if (this.$store.state.permissions && this.$store.state.userInfo) return
const { status, user } = await fetchCurrentUser();
// {"status":"success","user":{"userid":"732473439","name":"吕伟朝","email":"lvweichao@yidian-inc.com","avatar":""}}
if (status === 'success') {
......
......@@ -47,7 +47,6 @@ export default {
},
activeMenu: function () {
console.log(988888, this.$route.path)
return this.$route.path;
},
},
......
......@@ -38,7 +38,6 @@ export const PAGEMODULE_PERMISSIONNAME = {
enterprise: 'enterprise_certification_management',
lifeNo: 'life_official_account_management',
role: 'role_management',
// roleAddRole: 'role_addRole',
user: 'user_management'
}
......@@ -60,6 +59,5 @@ export const PATH_PERMISSION_NAME = {
'/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
ks3-js-sdk @ ea6ab311
Subproject commit ea6ab311ebfa69725e824a5cc28bd53d93681d34
......@@ -14,20 +14,25 @@ import { redirectToLogin } from "./utils/util";
// 处理路由权限
router.beforeResolve(async (to, from, next) => {
if (to.meta.requireAuth && !store.state.permissions) {
if (!to.meta.requireAuth) {
next();
return true;
}
if (!store.state.permissions) {
const { status, user } = await fetchCurrentUser();
if (status === 'success') {
store.commit('updateUserInfo', user);
store.dispatch('updateUserPermission', { email: user.email }).then(() => {
if (!checkPathAuth(to.path)) {
router.push('/403')
}
})
next()
await store.dispatch('updateUserPermission', { email: user.email })
} else {
redirectToLogin();
}
return false;
}
}
if (!checkPathAuth(to.path)) {
router.push('/403')
} else {
next()
}
......
<template>
<div>
<layout> Forbidden! </layout>
<layout> 没有权限! </layout>
</div>
</template>
......
<template>
<div>
<layout>
not found
页面不存在!
</layout>
</div>
</template>
......
......@@ -3,12 +3,12 @@
<layout>
<div class="life-no">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="生活号名称/企业名称">
<el-form-item label="生活号名称">
<el-input
class="search_life"
maxlength="15"
v-model="life_account.name"
placeholder="生活号名称/企业名称"
placeholder="生活号名称"
></el-input>
</el-form-item>
<el-form-item label="类型">
......@@ -22,20 +22,25 @@
<el-button @click="onReset">重置</el-button>
</el-form-item>
</el-form>
<el-table
:data="LifeNoList"
border
style="width: 100%"
@row-click="toLifeDetail"
>
<el-table :data="LifeNoList" border style="width: 100%">
<el-table-column prop="life_account_id" label="ID"> </el-table-column>
<el-table-column prop="life_account_name" label="生活号名称">
</el-table-column>
<el-table-column prop="life_account_type" label="类型">
<el-table-column :formatter="hasTypeFormat" label="类型">
</el-table-column>
<el-table-column prop="life_account_auth_status" label="状态">
<el-table-column :formatter="hasStatusFormat" label="状态">
</el-table-column>
<el-table-column prop="create_time" label="创建时间"> </el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button
size="mini"
type="primary"
@click.stop="toLifeDetail(scope.row)"
>查看详情</el-button
>
</template>
</el-table-column>
</el-table>
<page :totalNum="totalNum" @update="update" />
</div>
......@@ -75,6 +80,12 @@ export default {
this.getLifeNoListFn()
},
methods: {
hasTypeFormat (row) {
return row.life_account_type == 1 ? '个人' : '企业'
},
hasStatusFormat (row) {
return row.life_account_status == 1 ? '正常' : ''
},
//获取列表数据
getLifeNoListFn () {
let { name, type } = this.life_account
......
<template>
<div class="life-no-detail">
<el-button type="text" @click="goBack" icon="el-icon-arrow-left"
>返回</el-button
>
<el-page-header @back="goBack" content="生活号详情页面"> </el-page-header>
<el-card class="management">
<h4 class="titleInfo">生活号信息</h4>
<el-descriptions :column="3" border>
......@@ -11,21 +9,26 @@
<template #label> ID </template>
{{ life_account.life_account_id }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 生活号名称 </template>
{{ life_account.life_account_name }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 状态 </template>
{{ life_account.life_account_status == 1 ? "上线" : "下线" }}
{{ life_account.life_account_status == 1 ? "正常" : "" }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 创建人 </template>
<template #label> 创建人昵称 </template>
{{ life_account.create_user_nick_name }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 创建时间 </template>
{{ life_account.create_time }}
<template #label> 创建人账号 </template>
{{ life_account.create_user_mobile }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 生活号名称 </template>
{{ life_account.life_account_name }}
<template #label> 创建时间 </template>
{{ life_account.create_time }}
</el-descriptions-item>
</el-descriptions>
</el-card>
......@@ -33,6 +36,17 @@
<h4 class="titleInfo">类型信息</h4>
<el-descriptions :column="3" border>
<template #extra> </template>
<div v-if="company_auth_record">
<el-descriptions-item>
<template #label> 统一社会信用代码(注册码) </template>
{{ company_auth_record.code }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 企业注册名称 </template>
{{ company_auth_record.name }}
</el-descriptions-item>
</div>
<div v-else>
<el-descriptions-item>
<template #label>职业表标签 </template>
{{ personal_auth_record.occupation }}
......@@ -45,15 +59,6 @@
<template #label> 身份证号 </template>
{{ personal_auth_record.id_card }}
</el-descriptions-item>
<div v-if="company_auth_record">
<el-descriptions-item>
<template #label> 统一社会信用代码(注册码) </template>
{{ company_auth_record.code }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 企业注册名称 </template>
{{ company_auth_record.name }}
</el-descriptions-item>
</div>
</el-descriptions>
</el-card>
......
<template>
<div>
<div class="addRole">
<el-button
type="primary"
v-if="permission.get('create')"
@click="newAddRole"
>新增</el-button
>
<el-page-header class="back" @back="goBack" content="角色创建页面">
</el-page-header>
<el-button type="primary" @click="newAddRole">新增</el-button>
<!-- 角色列表 -->
<el-table
:data="roleDataList"
style="width: 100%; margin-top: 10px"
:header-cell-style="{ background: '#e1e4e5', color: '#80878f' }"
border
@row-click="toRoleDetail"
>
<el-table-column prop="role_name" label="角色名称" width="180">
</el-table-column>
......@@ -25,6 +22,12 @@
@click.stop="handleModify(scope.$index, scope.row)"
>修改</el-button
>
<el-button
size="mini"
type="primary"
@click.stop="toRoleDetail(scope.row)"
>查看详情</el-button
>
</template>
</el-table-column>
</el-table>
......@@ -53,12 +56,15 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmRole(edit)">确 定</el-button>
<el-button type="primary" @click="confirmRole(edit)"
>确 定</el-button
>
</span>
</template>
</el-dialog>
<page :totalNum="totalNum" @update="update" />
</div>
</div>
</template>
<script>
import page from "../components/Pagination"
......@@ -76,12 +82,6 @@ export default {
page,
roleInfo
},
computed: {
permission () {
const modulePermissions = this.$store.getters.moduleSubPermissions('role') || [];
return new Map(modulePermissions.map(ele => [ele.name, true]))
},
},
data () {
return {
parmas: {
......@@ -90,8 +90,7 @@ export default {
},
user_info: {
name: "jianghaiming",
email: "jianghaiming@126.com",
// op_cur_user: "jianghaiming@yidian-inc.com",
email: "jianghaiming@126.com"
},
roleDataList: [],
totalNum: null,
......@@ -125,15 +124,17 @@ export default {
created () {
this.getGetRole_list()
this.getPermissionsAll()
},
methods: {
toRoleDetail (row) {
this.$router.push({ name: 'RoleDetail', query: { roleId: row.role_id } });
},
goBack () {
this.$router.go(-1)
},
getPermissionsAll () {
// this.user_info = this.$store.state.userInfo
let { email } = this.user_info
let { email } = this.$store.state.userInfo
reqGetAll_role_list(email).then(res => {
this.permissionsAll = res
})
......@@ -166,20 +167,23 @@ export default {
},
//新增角色
getAdd_role () {
if (!this.roleName || !this.currentRolePrivilege) {
if (!this.roleName || !this.currentRolePrivilege.length) {
this.checkFn()
return false
}
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
if (res.status === "success") {
this.getGetRole_list()
} else {
this.$message({
type: 'info',
message: `${res.reason}`
});
}
})
},
......@@ -231,14 +235,12 @@ export default {
},
//编辑角色
getUpdate_role () {
if (!this.roleName || !this.permissionsUpdate) {
if (!this.roleName || !this.permissionsUpdate.length) {
this.checkFn()
return false
}
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,
......@@ -249,6 +251,12 @@ export default {
this.dialogFormVisible = false
this.edit = true
this.getGetRole_list()
} else {
this.dialogFormVisible = false
this.$message({
type: 'info',
message: `${res.reason}`
});
}
})
},
......@@ -299,5 +307,8 @@ export default {
<style lang="less" scoped>
.addRole {
margin: 50px;
.back {
margin: 20px 0;
}
}
</style>
\ No newline at end of file
......@@ -2,6 +2,7 @@
<layout>
<el-card class="role_management">
<!-- 角色检索区域 -->
<div class="creatRole">
<el-form inline :model="searchForm">
<el-form-item label="角色名称">
<el-input v-model="searchForm.roleName"></el-input>
......@@ -21,10 +22,23 @@
<el-button @click="onReset">重置</el-button>
</el-form-item>
</el-form>
<el-form>
<el-form-item>
<el-button
type="primary"
:disabled="!permission.get('create')"
@click="onCreateRole"
>创建角色</el-button
>
</el-form-item>
</el-form>
</div>
<!-- 角色搜索列表 -->
<el-table border :data="managementList" @row-click="toRoleDetail">
<el-table border :data="managementList">
<el-table-column
label="ID"
width="200px"
prop="role_id"
align="center"
></el-table-column>
......@@ -35,6 +49,7 @@
></el-table-column>
<el-table-column
label="状态"
width="200px"
:formatter="hasStatusFormat"
align="center"
>
......@@ -52,36 +67,43 @@
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
v-if="
!(scope.row.role_status == 2 || scope.row.role_status == 3) &&
permission.get('edit')
:disabled="
!permission.get('edit') ||
scope.row.role_status == 2 ||
scope.row.role_status == 3
"
size="mini"
@click.stop="handelModify(scope.row)"
type="primary"
type="text"
size="mini"
>修改</el-button
>
<el-button
size="mini"
v-if="permission.get('delete')"
:disabled="!permission.get('delete')"
@click.stop="handelDelete(scope.row)"
type="warning"
size="mini"
type="text"
>删除</el-button
>
<el-button
size="mini"
v-if="permission.get('disable')"
:disabled="!permission.get('disable')"
@click.stop="handelDisable(scope.row)"
type="danger"
size="mini"
type="text"
>禁用</el-button
>
<el-button
size="mini"
v-if="permission.get('enable')"
:disabled="!permission.get('enable')"
@click.stop="handelEnable(scope.row)"
type="success"
size="mini"
type="text"
>启用</el-button
>
<el-button
@click.stop="toRoleDetail(scope.row)"
size="mini"
type="text"
>查看详情</el-button
>
</template>
</el-table-column>
</el-table>
......@@ -142,7 +164,6 @@ export default {
},
user_info: {
name: "jianghaiming@yidian-inc.com",
// op_cur_user: "jianghaiming@yidian-inc.com",
email: "jianghaiming@126.com",
},
parmas: {
......@@ -177,11 +198,14 @@ export default {
let statusText = ['正常', '禁用', '删除']
return statusText[row.role_status - 1]
},
onCreateRole () {
this.$router.push({ name: 'AddRole' });
},
toRoleDetail (row) {
this.$router.push({ name: 'RoleDetail', query: { roleId: row.role_id } });
this.$router.push({ name: "RoleDetail", query: { roleId: row.role_id } });
},
getPermissionsAll () {
let { email } = this.user_info
let { email } = this.$store.state.userInfo
reqGetAll_role_list(email).then(res => {
this.permissionsAll = res
})
......@@ -251,7 +275,6 @@ export default {
role_name,
}
this.permissionsUpdate = permissions
let { email } = this.$store.state.userInfo //当前用户
let role_status
if (type === "disable") {
role_status = 2
......@@ -265,7 +288,8 @@ export default {
role_status = ""
}
if (type !== "modify") {
this.getUpdate_role(email, role_name, role_id, role_status, permissions)
this.getUpdate_role(role_name, role_id, role_status, permissions)
}
})
},
......@@ -307,9 +331,8 @@ export default {
this.openBounced("disable", row.role_id)
},
//编辑列表操作
getUpdate_role (email, role_name, role_id, role_status, permissions) {
getUpdate_role (role_name, role_id, role_status, permissions) {
let parmasUpdate_role = {
op_cur_user: email,
role_name: role_name,
role_id,
role_status,
......@@ -319,6 +342,12 @@ export default {
if (res.status === "success") {
this.dialogVisible = false
this.getGetRole_list()
} else {
this.dialogVisible = false
this.$message({
type: 'info',
message: `${res.reason}`
});
}
})
},
......@@ -335,10 +364,16 @@ export default {
},
//确认修改
confirm () {
let { email } = this.$store.state.userInfo
if (!this.currentRolePrivilege.length) {
this.$message({
type: 'error',
message: "请选择角色范围"
});
return false
}
let { role_id, role_name } = this.role_info_detail
let role_status = ''
this.getUpdate_role(email, role_name, role_id, role_status, this.currentRolePrivilege)
this.getUpdate_role(role_name, role_id, role_status, this.currentRolePrivilege)
},
parentCateChange (id) {
this.getSelectedOptions(id)
......@@ -376,6 +411,10 @@ export default {
};
</script>
<style lang="less" scoped>
.creatRole {
display: flex;
justify-content: space-between;
}
.role_management {
padding: 20px;
}
......
<template>
<div class="user-detail">
<el-button type="text" @click="goBack" icon="el-icon-arrow-left"
>返回</el-button
>
<el-page-header @back="goBack" content="角色详情页面"> </el-page-header>
<el-card class="management">
<h3 style="margin-bottom: 10px">角色详情</h3>
<h5 style="margin-bottom: 10px">角色信息</h5>
<el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item>
<template #label>状态 </template>
{{ role_info_detail.role_status }}
<template #label> ID </template>
{{ roleId }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> ID </template>
{{ role_info_detail.role_id }}
<template #label> 角色状态 </template>
{{
role_info_detail.role_status == 1
? "正常"
: role_info_detail.role_status == 2
? "禁用"
: "删除"
}}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 角色名称 </template>
......@@ -34,10 +38,6 @@
<template #label> 最后修改时间 </template>
{{ role_info_detail.update_time }}
</el-descriptions-item>
<el-descriptions-item>
<template #label> 角色账号 </template>
{{ role_info_detail.role_status }}
</el-descriptions-item>
</el-descriptions>
<div class="tree" v-if="selectedOptions">
<h5 style="margin-bottom: 10px">角色范围</h5>
......@@ -52,6 +52,16 @@
></el-cascader>
</div>
</div>
<div v-if="role_info_detail.role_account_list.length">
<h5 style="margin: 10px 0">角色账号</h5>
<div
class="role_account_list"
v-for="(item, index) in role_info_detail.role_account_list"
:key="index"
>
{{ item }}
</div>
</div>
</el-card>
</div>
</template>
......@@ -80,27 +90,27 @@ export default {
update_time: "",
update_user_name: "",
create_time: "",
create_user_name: ""
create_user_name: "",
role_account_list: []
}
}
},
created () {
// this.user_info = this.$store.state.userInfo
activated () {
this.roleId = this.$route.query.roleId
let { email } = this.user_info
let { email } = this.$store.state.userInfo
reqGetAll_role_list(email).then(res => {
this.permissionsAll = res
})
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
const { role_name, role_status, update_time, update_user_name, create_time, create_user_name, role_account_list, permissions } = res
this.role_info_detail = {
role_id,
role_name,
role_status,
update_time,
update_user_name,
create_time,
create_user_name
create_user_name,
role_account_list
}
this.editEchoData(permissions)
})
......@@ -129,6 +139,13 @@ export default {
<style lang="less" scoped>
.user-detail {
margin: 50px;
.role_account_list {
padding: 10px;
color: #909399;
background: #fafafa;
font-weight: 400;
line-height: 1.5;
}
.management {
margin-top: 20px;
}
......
<template>
<div class="user-detail">
<el-button type="text" @click="goBack" icon="el-icon-arrow-left"
>返回</el-button
>
<el-page-header @back="goBack" content="用户详情页面"> </el-page-header>
<el-card class="management">
<h2 style="margin-bottom: 10px">用户详情</h2>
<h2 style="margin-bottom: 10px">用户信息</h2>
<el-descriptions class="margin-top" :column="3" :size="size" border>
<el-descriptions-item>
<template #label> 用户姓名 </template>
......@@ -39,7 +37,7 @@
{{ user_info.is_sensitive_authority == 1 ? "有" : "无" }}
</el-descriptions-item>
</el-descriptions>
<div class="role">已拥有角色池</div>
<div class="role">角色信息</div>
<el-table :data="role_list" border style="width: 100%">
<el-table-column prop="role_id" label="ID" width="180">
</el-table-column>
......
......@@ -31,7 +31,9 @@
<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-button @click="createUser" :disabled="!permission.get('create')"
>新建用户</el-button
>
</el-form-item>
</el-form>
<el-table :data="renderUserList" border style="width: 100%">
......@@ -50,7 +52,11 @@
<el-button type="text" size="small" @click="checkUser(scope.row)"
>查看</el-button
>
<el-button @click="editUser(scope.row)" type="text" size="small"
<el-button
@click="editUser(scope.row)"
type="text"
size="small"
:disabled="!permission.get('edit')"
>修改</el-button
>
<el-button
......@@ -58,6 +64,7 @@
type="text"
size="small"
@click="disableUser(scope.row)"
:disabled="!permission.get('enable')"
>禁用</el-button
>
<el-button
......@@ -65,6 +72,7 @@
type="text"
size="small"
@click="enableUser(scope.row)"
:disabled="!permission.get('disable')"
>启用</el-button
>
</template>
......@@ -118,7 +126,7 @@ export default {
UserInfoEditModal,
UserInfoNewModal,
},
data () {
data() {
return {
pageParams: {
page: 1,
......@@ -140,7 +148,14 @@ export default {
};
},
computed: {
renderUserList () {
permission() {
const modulePermissions =
this.$store.getters.moduleSubPermissions("user") || [];
console.log("Current page func-permissions:", modulePermissions);
return new Map(modulePermissions.map((ele) => [ele.name, true]));
},
renderUserList() {
const statusMap = new Map([
[1, "启用"],
[2, "禁用"],
......@@ -152,11 +167,11 @@ export default {
});
},
},
beforeMount () {
beforeMount() {
this.getUserList();
},
methods: {
async getUserList () {
async getUserList() {
const { code, result } = await reqGetUserList(this.pageParams);
if (code !== 0) {
......@@ -168,7 +183,7 @@ 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 = {
......@@ -180,13 +195,13 @@ export default {
}
},
async checkUser (row) {
async checkUser(row) {
const { user_id } = row;
await this.setCurUserInfo(user_id);
this.openModal("info");
},
async editUser (row) {
async editUser(row) {
const { user_id } = row;
await this.setCurUserInfo(user_id);
// this.openModal('edit');
......@@ -194,13 +209,13 @@ export default {
this.curOperateMode = "edit";
},
openModal (key) {
openModal(key) {
Object.keys(this.modalVisable).forEach((ele) => {
this.modalVisable[ele] = key === ele;
});
},
async confirmEditModal (userInfo) {
async confirmEditModal(userInfo) {
const {
user_id,
user_name,
......@@ -247,17 +262,17 @@ export default {
}
},
cancelModal (name) {
cancelModal(name) {
this.modalVisable[name] = false;
},
createUser () {
createUser() {
this.curOperateMode = "new";
this.openModal("new");
},
//重置
onReset () {
onReset() {
this.pageParams = {
page: 1,
pageSize: 20,
......@@ -266,15 +281,16 @@ export default {
user_mobile: "",
user_status: "",
};
this.getUserList();
},
updatePage ({ page, pageSize }) {
updatePage({ page, pageSize }) {
page && (this.pageParams.page = page);
pageSize && (this.pageParams.pageSize = pageSize);
this.getUserList();
},
async enableUser (row) {
async enableUser(row) {
const { user_id } = row;
const { code, reason } = await reqEditUser({ user_status: 1, user_id });
......@@ -286,7 +302,7 @@ export default {
}
},
async disableUser (row) {
async disableUser(row) {
const { user_id, reason } = row;
const { code } = await reqEditUser({ user_status: 2, user_id });
if (code === 0) {
......
......@@ -89,7 +89,8 @@ const routes = [
name: 'AddRole',
component: AddRole,
meta: {
requireAuth: true
requireAuth: true,
keepAlive: true
}
},
{
......@@ -104,7 +105,10 @@ const routes = [
{
path: '/roleRoleDetail',
name: 'RoleDetail',
component: RoleDetail
component: RoleDetail,
meta: {
keepAlive: true
}
}
];
......
......@@ -13,7 +13,7 @@ import axios from '../utils/request';
export async function ksOssUpload(file) {
const {bucket, objectId, policy, signature} = await getKs3Config();
const { bucket, objectId, policy, signature } = await getKs3Config();
const protocal = window.location.protocol === 'https:' ? 'https' : 'http';
const uploadURL = `${protocal}://${KS3_CONST.DOMAIN}/${bucket}`;
......@@ -27,23 +27,9 @@ export async function ksOssUpload(file) {
formData.append('KSSAccessKeyId', KS3_CONST.AccessKeyID)
formData.append('policy', policy)
formData.append('file', file)
const res = await axios.post(uploadURL, formData).then(res => {
console.log(66666 ,res)
// const { status } = res
// if (status === 200) {
// const data = {
// url: `${OSS_URL}/${key}`,
// type: fileType(file.name)
// }
// resolve(data)
// } else {
// reject(res)
// }
console.log('ksOssUpload url::', uploadURL)
const res = await axios({ url: uploadURL, method: 'post', data: formData, withCredentials: false }).then(res => {
console.log('ksOssUpload res::', res)
})
// .catch(err => {
// reject(err)
// })
return res;
// }).catch(err => {})
// })
}
\ No newline at end of file
......@@ -5,7 +5,8 @@ import { PERMISSIONNAME_PAGEMODULE } from '../config/pageconfig'
export default createStore({
state: {
permissions: null,
userInfo: null,
userInfo: null
},
mutations: {
updateUserPermission (state, payload) {
......@@ -18,6 +19,7 @@ export default createStore({
actions: {
async updateUserPermission ({ commit }, payload) {
const { permissions = [] } = await getPermissions(payload.email);
console.log("VUEX action updateUserPermission::", permissions);
commit('updateUserPermission', permissions)
}
......
/**
* axios封装
*/
import axios from "axios";
import store from "@/store"
import { v1 as uuidv1 } from 'uuid';
// import { ElMessage } from "element-plus";
// import { APP_URI } from "../config/app.config";
/**
......@@ -32,7 +31,9 @@ export const defaultConfig = {
*/
const getDefaultParams = () => {
return {
'op_cur_user': store.state.userInfo && store.state.userInfo.email
'op_cur_user': store.state.userInfo && store.state.userInfo.email,
'reqid': uuidv1().replace(/-/g, '')
}
};
const getDefaultHeaders = () => {};
......
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