update:部分接口联调完善

parent b4bb3ab6
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
"dev": "sh ./bin/start.sh development", "dev": "sh ./bin/start.sh development",
"test": "sh ./bin/start.sh testing", "test": "sh ./bin/start.sh testing",
"prod": "sh ./bin/start.sh production", "prod": "sh ./bin/start.sh production",
"koa": "nodemon app.js", "koa": "node app.js",
"web-dev": "cross-env NODE_ENV=development vue-cli-service serve", "web-dev": "cross-env NODE_ENV=development vue-cli-service serve",
"web-build": "cross-env NODE_ENV=production vue-cli-service build", "web-build": "cross-env NODE_ENV=production vue-cli-service build",
"test:unit": "vue-cli-service test:unit", "test:unit": "vue-cli-service test:unit",
......
...@@ -14,26 +14,69 @@ exports.login = async (ctx, next) => { ...@@ -14,26 +14,69 @@ exports.login = async (ctx, next) => {
} }
ctx.body = await req(ctx, opts) ctx.body = await req(ctx, opts)
} }
exports.getAll_role_list = async (ctx, next) => {
var url = `${API_INTERNAL_URI}/merchant/authority/get_role_list`;
var opts = {
url: url,
method: 'POST',
json: true,
timeout: 8000,
body: ctx.request.body
}
ctx.body = await req(ctx, opts)
}
exports.getRole_list = async (ctx, next) => { exports.getRole_list = async (ctx, next) => {
var url = `${API_INTERNAL_URI}/api/v1/merchant/authority/role_list`; var url = `${API_INTERNAL_URI}/merchant/authority/role_list`;
var opts = { var opts = {
url: url, url: url,
method: 'GET', method: 'POST',
timeout: 8000 timeout: 8000,
} }
ctx.body = await req(ctx, opts) ctx.body = await req(ctx, opts)
} }
exports.getAdd_role = async (ctx, next) => { exports.getAdd_role = async (ctx, next) => {
var url = `http://bp-test.ini.yidian-inc.com/merchant/authority/add_role`; var url = `${API_INTERNAL_URI}/merchant/authority/add_role`;
var opts = { var opts = {
url: url, url: url,
method: 'POST', method: 'POST',
timeout: 8000 json: true,
timeout: 8000,
} }
ctx.body = await req(ctx, opts) ctx.body = await req(ctx, opts)
} }
exports.get_role_info = async (ctx, next) => { exports.get_role_info = async (ctx, next) => {
var url = `http://bp-test.ini.yidian-inc.com/merchant/authority/get_role_info`; var url = `${API_INTERNAL_URI}/merchant/authority/get_role_info`;
var opts = {
url: url,
method: 'POST',
json: true,
timeout: 8000,
body: ctx.request.body
}
ctx.body = await req(ctx, opts)
}
exports.getUpdate_role = async (ctx, next) => {
var url = `${API_INTERNAL_URI}/merchant/authority/update_role`;
var opts = {
url: url,
method: 'POST',
timeout: 8000
}
ctx.body = await req(ctx, opts)
}
exports.get_life_list = async (ctx, next) => {
var url = `${API_INTERNAL_URI}/merchant/lifeinner/life_list`;
var opts = {
url: url,
method: 'GET',
json: true,
timeout: 8000,
body: ctx.request.body
}
ctx.body = await req(ctx, opts)
}
exports.getUser_detail = async (ctx, next) => {
var url = `${API_INTERNAL_URI}/merchant/lifeinner/life_info`;
var opts = { var opts = {
url: url, url: url,
method: 'POST', method: 'POST',
...@@ -41,4 +84,3 @@ exports.get_role_info = async (ctx, next) => { ...@@ -41,4 +84,3 @@ exports.get_role_info = async (ctx, next) => {
} }
ctx.body = await req(ctx, opts) ctx.body = await req(ctx, opts)
} }
const Router = require('koa-router'); const Router = require('koa-router');
const system = require('./controllers/system') const system = require('./controllers/system')
const user = require('./controllers/user') const user = require('./controllers/user')
const lifeNo = require('./controllers/life-no')
const router = Router(); const router = Router();
const API_VERSION = "/api/v1"; const API_VERSION = "/api/v1";
console.log(lifeNo.query, '22222222222')
console.log(user.query, '333333')
router.post(`${API_VERSION}/login`, system.login); router.post(`${API_VERSION}/login`, system.login);
router.get(`${API_VERSION}/user/:type`, user.query) router.post(`${API_VERSION}/merchant/authority/role_list`, system.getRole_list)
router.get(`${API_VERSION}/home`, lifeNo.query) router.post(`${API_VERSION}/merchant/authority/add_role`, system.getAdd_role)
// router.get(`${API_VERSION}/merchant/authority/role_list`, system.getRole_list) router.post(`${API_VERSION}/merchant/authority/update_role`, system.getUpdate_role)
router.get(`${API_VERSION}/merchant/authority/add_role`, system.getAdd_role) router.post(`${API_VERSION}/merchant/authority/get_role_list`, system.getAll_role_list)
router.post(`${API_VERSION}/merchant/authority/get_role_info`, system.get_role_info) router.post(`${API_VERSION}/merchant/authority/get_role_info`, system.get_role_info)
router.post(`${API_VERSION}/merchant/lifeinner/life_info`, system.getUser_detail)
router.get(`${API_VERSION}/merchant/lifeinner/life_list`, system.get_life_list)
getUser_detail
module.exports = router; module.exports = router;
<template> <template>
<div class="addRole"> <div>
<el-button <layout> homesssss </layout>
type="primary"
@click="(dialogFormVisible = true), (roleTitle = '新增角色')"
>新增</el-button
>
<!-- 角色列表 -->
<el-table
:data="roleDataList"
style="width: 100%; margin-top: 10px"
:header-cell-style="{ background: '#e1e4e5', color: '#80878f' }"
>
<el-table-column prop="role_name" label="角色名称" width="180">
</el-table-column>
<el-table-column prop="role_name" label="角色范围"> </el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button
size="mini"
type="text"
@click="handleModify(scope.$index, scope.row)"
>修改</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 弹框 -->
<el-dialog :title="roleTitle" v-model="dialogFormVisible">
<el-form>
<!-- 编辑 -->
<div v-if="edit">
<el-form-item label="状态" :label-width="formLabelWidth" prop="pass">
<el-input disabled v-model="roleName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item
label="ID"
:label-width="formLabelWidth"
prop="checkPass"
>
<el-input disabled v-model="roleName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item
label="创建人账号"
:label-width="formLabelWidth"
prop="age"
>
<el-input disabled v-model="roleName"></el-input>
</el-form-item>
<el-form-item
label="创建时间"
:label-width="formLabelWidth"
prop="age"
>
<el-input disabled v-model="roleName"></el-input>
</el-form-item>
<el-form-item
label="最后修改人账号"
:label-width="formLabelWidth"
prop="age"
>
<el-input disabled v-model="roleName"></el-input>
</el-form-item>
<el-form-item
label="最后修改时间"
:label-width="formLabelWidth"
prop="age"
>
<el-input disabled v-model="roleName"></el-input>
</el-form-item>
</div>
<!-- 新增 -->
<el-form-item label="角色名称" :label-width="formLabelWidth">
<el-input v-model="roleName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="角色范围" :label-width="formLabelWidth">
<el-cascader
v-model="selectedOptions"
:options="options"
:props="props"
@change="parentCateChange"
clearable
></el-cascader>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmRole">确 定</el-button>
</span>
</template>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getRole_list as reqGetRole_list, getAdd_role as reqGetAdd_role } from "../../service/role"; import Layout from '@/layouts';
export default { export default {
data () { components: {
return { Layout,
roleDataList: [{
id: '1',
name: '超级管理员',
address: '角色范围'
}, {
id: '2',
name: '普通角色',
address: '角色范围'
}, {
id: '3',
name: '超级管理员',
address: '角色范围'
}, {
id: '4',
name: '普通角色',
address: '角色范围'
}],
vals: [],
edit: false,
dialogFormVisible: false,
roleName: '',
checkedRole: [],//已经选择的角色
roleTitle: '',
props: {
multiple: true,//设置为多选
checkStrictly: true,
value: 'name', //value值和哪个值绑定
label: 'desc',//label值和哪个值绑定
children: 'button_list'//children值和哪个值绑定
},
formLabelWidth: '120px',
selectedOptions: [],
rolePrivilege: [],
currentRolePrivilege: '',
options: [
{
"name": "用户列表",
"desc": "用户列表",
// "menu_redirect":"\/user\/user\/list",
"button_list": [
{
"name": "deleteBtn",
"desc": "删除用户"
},
{
"name": "addBtn",
"desc": "添加用户"
},
{
"name": "updateBtn",
"desc": "修改用户"
}
]
},
{
"menu_name": "企业审核列表",
// "menu_redirect": "\/aut\/user\/list",
"desc": "企业审核列表",
"button_list": [
{
"name": "addBtn",
"desc": "添加"
},
{
"name": "showBtn",
"desc": "查看"
}
]
}
]
}
},
created () {
this.getGetRole_list() //获取角色列表
}, },
methods: { };
getGetRole_list () {
reqGetRole_list().then(res => {
this.roleDataList = res
})
},
getAdd_role () {
reqGetAdd_role().then(res => {
console.log(res, 'resresres999')
})
},
//修改
handleModify (index, row) {
console.log(index, row, 'index, row')
this.edit = true
this.roleTitle = '角色修改'
this.dialogFormVisible = true
},
confirmRole () {
console.log(this.roleName, 'roleNameroleName')
this.getAdd_role()
this.dialogFormVisible = false
},
// getCascaderObj (val, opt) {
// console.log(val, opt, 'val, opt')
// return val.map(function (value) {
// for (var itm of opt) {
// if (itm.value == value) { opt = itm.children; return itm; }
// }
// return null;
// });
// },
parentCateChange () {
// this.vals = this.getCascaderObj(this.selectedOptions, this.options);
// const checkedNodes = this.$refs['cascaderAddr'].getCheckedNodes()
//console.log(checkedNodes[0].pathLabels, '000') // 获取由 label 组成的数
},
// getCurrentPrivilege (id) {
// get("/merchant/authority/get_role_list").then((res) => {
// if (res.status == 200) {
// this.rolePrivilege = res.data;
// res.data.forEach((item) => {
// if (item.id == id) {
// this.currentRolePrivilege = item;
// console.log(item);
// // this.getCheckedId(this.currentRolePrivilege);
// }
// });
// }
// });
// },
// getSelectedKeys (obj) {
// this.SelectedKeys = [];
// console.log(obj);
// obj.privileges.forEach((item, index) => {
// if (item.parentId != null) {
// this.selectedKeys.push([item.btn_name, item.btn_desc]);
// } else {
// this.selectedKeys.push([item.btn_name, item.btn_desc]);
// }
// });
// console.log(this.checkedId);
// },
}
}
</script> </script>
<style lang="less" scoped>
.addRole { <style lang="less" src="./index.less">
margin: 50px; // 样式可以内联,也可以通过 src 引入
} </style>
</style>
\ No newline at end of file
...@@ -24,17 +24,74 @@ ...@@ -24,17 +24,74 @@
生活号名称生活号名称生活号名称 生活号名称生活号名称生活号名称
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions class="margin-top" title="类型信息" :column="3" border>
<template #extra> </template>
<el-descriptions-item>
<template #label>职业表标签 </template>
运动员
</el-descriptions-item>
<el-descriptions-item>
<template #label> 姓名 </template>
张三
</el-descriptions-item>
<el-descriptions-item>
<template #label> 身份证号 </template>
XXXXXXXXXX
</el-descriptions-item>
<el-descriptions-item>
<template #label> 统一社会信用代码(注册码) </template>
00019
</el-descriptions-item>
<el-descriptions-item>
<template #label> 企业注册名称 </template>
不二杂货铺
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" title="用户信息" :column="3" border>
<template #extra> </template>
<el-descriptions-item>
<template #label>管理员昵称 </template>
派大星
</el-descriptions-item>
<el-descriptions-item>
<template #label> 管理员账号 </template>
0001
</el-descriptions-item>
<el-descriptions-item>
<template #label> 管理员账号ID </template>
9203201993
</el-descriptions-item>
<el-descriptions-item>
<template #label> 子账号昵称 </template>
子账号昵称
</el-descriptions-item>
<el-descriptions-item>
<template #label> 子账号账号 </template>
0002
</el-descriptions-item>
<el-descriptions-item>
<template #label> 子账号账号ID </template>
0002ID
</el-descriptions-item>
</el-descriptions>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
lifeNoId: this.$route.query.lifeId
} }
},
created () {
console.log(this.$route.query.lifeId, this.lifeNoId, '0000')
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.lifeNoInfo { .lifeNoInfo {
.margin-top {
margin-top: 10px;
}
} }
</style> </style>
\ No newline at end of file
<template>
<div class="lifeNoUser">
<!-- 管理员:管理员昵称、管理员账号、管理员账号ID
子账号(多个):昵称、账号、账号ID -->
<el-descriptions class="margin-top" title="用户信息" :column="3" border>
<template #extra> </template>
<el-descriptions-item>
<template #label>管理员昵称 </template>
派大星
</el-descriptions-item>
<el-descriptions-item>
<template #label> 管理员账号 </template>
0001
</el-descriptions-item>
<el-descriptions-item>
<template #label> 管理员账号ID </template>
9203201993
</el-descriptions-item>
<el-descriptions-item>
<template #label> 子账号昵称 </template>
子账号昵称
</el-descriptions-item>
<el-descriptions-item>
<template #label> 子账号账号 </template>
0002
</el-descriptions-item>
<el-descriptions-item>
<template #label> 子账号账号ID </template>
0002ID
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
data () {
return {
}
}
}
</script>
<style lang="less" scoped>
.lifeNoUser {
.margin-top {
margin-top: 10px;
}
}
</style>
\ No newline at end of file
<template>
<div class="lifeNotype">
<el-descriptions class="margin-top" title="类型信息" :column="3" border>
<template #extra> </template>
<el-descriptions-item>
<template #label>职业表标签 </template>
运动员
</el-descriptions-item>
<el-descriptions-item>
<template #label> 姓名 </template>
张三
</el-descriptions-item>
<el-descriptions-item>
<template #label> 身份证号 </template>
XXXXXXXXXX
</el-descriptions-item>
<el-descriptions-item>
<template #label> 统一社会信用代码(注册码) </template>
00019
</el-descriptions-item>
<el-descriptions-item>
<template #label> 企业注册名称 </template>
不二杂货铺
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
data () {
return {
}
}
}
</script>
<style lang="less" scoped>
.lifeNotype {
.margin-top {
margin-top: 10px;
}
}
</style>
\ No newline at end of file
...@@ -6,15 +6,18 @@ ...@@ -6,15 +6,18 @@
<el-input <el-input
class="search_life" class="search_life"
maxlength="15" maxlength="15"
v-model="formInline.user" v-model="life_account.name"
placeholder="生活号名称/企业名称" placeholder="生活号名称/企业名称"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="类型"> <el-form-item label="类型">
<el-select v-model="formInline.region" placeholder="类型"> <el-select v-model="life_account.type" placeholder="类型">
<el-option value="个人"></el-option> <el-option
<el-option value="企业"></el-option> v-for="item in LifeNoList"
<el-option value="全部"></el-option> :key="item.value"
:label="item.life_account_type == 1 ? '个人' : '企业'"
:value="item.life_account_type"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -23,25 +26,28 @@ ...@@ -23,25 +26,28 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
:data="tableData" :data="LifeNoList"
border border
style="width: 100%" style="width: 100%"
@row-click="toLifeDetail" @row-click="toLifeDetail"
> >
<el-table-column prop="id" label="ID"> </el-table-column> <el-table-column prop="life_account_id" label="ID"> </el-table-column>
<el-table-column prop="name" label="生活号名称"> </el-table-column> <el-table-column prop="life_account_name" label="生活号名称">
<el-table-column prop="address" label="类型"> </el-table-column> </el-table-column>
<el-table-column prop="name" label="状态"> </el-table-column> <el-table-column prop="life_account_type" label="类型"> </el-table-column>
<el-table-column prop="date" label="创建时间"> </el-table-column> <el-table-column prop="life_account_auth_status" label="状态">
</el-table-column>
<el-table-column prop="create_time" label="创建时间"> </el-table-column>
</el-table> </el-table>
<page :totalNum="totalNum" @update="update" /> <page :totalNum="totalNum" @update="update" />
</div> </div>
</template> </template>
<script> <script>
import page from "./components/Pagination" import page from "../components/Pagination"
import { getLifeNoList as reqGetLifeNoList } from "../../service/life-no"; import { getLifeNoList as reqGetLifeNoList } from "../../service/life-no";
export default { export default {
name: "LifeNo",
components: { components: {
page page
}, },
...@@ -49,31 +55,15 @@ export default { ...@@ -49,31 +55,15 @@ export default {
return { return {
params: { params: {
page: 1, page: 1,
pageSize: 10 page_size: 20
}, },
totalNum: 1000, life_account: {
name: "",
type: "",
},
totalNum: null,
lifeList: [], lifeList: [],
tableData: [{ LifeNoList: [],
id: '001',
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
id: '002',
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
id: '003',
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
id: '004',
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}],
formInline: { formInline: {
user: '', user: '',
region: '' region: ''
...@@ -81,33 +71,41 @@ export default { ...@@ -81,33 +71,41 @@ export default {
} }
}, },
created () { created () {
reqGetLifeNoList().then(res => { this.getLifeNoListFn()
console.log(res, '000')
})
}, },
methods: { methods: {
//获取列表数据
getLifeNoListFn () {
let { name, type } = this.life_account
let { page, page_size } = this.params
let params = {
page,
page_size,
life_account_name: name,
life_account_type: type
}
reqGetLifeNoList(params).then(res => {
this.totalNum = res.count
this.LifeNoList = res.data
})
},
//查询 //查询
onSearchSubmit () { onSearchSubmit () {
console.log(this.formInline.user, this.formInline.region, 'submit!'); this.getLifeNoListFn()
}, },
//重置 //重置
onReset () { onReset () {
this.formInline.user = "", this.life_account.name = "",
this.formInline.region = "" this.life_account.type = ""
}, },
update (obj) { update (obj) {
Object.assign(this.params, obj) Object.assign(this.params, obj)
this.getlifeNoList(this.params) this.getLifeNoListFn(this.params)
}, },
toLifeDetail (row) { toLifeDetail (row) {
// this.$router.push({ path: lifeNoDetail }) this.$router.push({ name: 'LifeNoDetail', query: { lifeId: row.life_account_id } });
this.$router.push({ name: 'LifeNoDetail' }); console.log(row.life_account_id, 'eee去详情')
console.log(row.id, 'eee去详情')
}, },
//获取列表数据
// getlifeNoList () {
// }
} }
} }
</script> </script>
......
<template> <template>
<div class="life-no-detail"> <div class="life-no-detail">
<lifeNoInfo /> <lifeNoInfo />
<lifeNotype />
<lifeNoUser />
</div> </div>
</template> </template>
<script> <script>
import lifeNoInfo from './components/lifeNoInfo' import lifeNoInfo from './components/lifeNoInfo'
import lifeNotype from './components/lifeNotype'
import lifeNoUser from './components/lifeNoUser'
export default { export default {
components: { components: {
lifeNoInfo, lifeNoInfo,
lifeNotype,
lifeNoUser
}, },
data () { data () {
return { return {
......
<template> <template>
<div class="addRole"> <div class="addRole">
<el-button <el-button type="primary" @click="newAddRole">新增</el-button>
type="primary"
@click="(dialogFormVisible = true), (roleTitle = '新增角色')"
>新增</el-button
>
<!-- 角色列表 --> <!-- 角色列表 -->
<el-table <el-table
:data="tableData" :data="roleDataList"
style="width: 100%; margin-top: 10px" style="width: 100%; margin-top: 10px"
:header-cell-style="{ background: '#e1e4e5', color: '#80878f' }" :header-cell-style="{ background: '#e1e4e5', color: '#80878f' }"
> >
<el-table-column prop="name" label="角色名称" width="180"> <el-table-column prop="role_name" label="角色名称" width="180">
</el-table-column>
<el-table-column :formatter="roleRangeFormat" label="角色范围">
</el-table-column> </el-table-column>
<el-table-column prop="address" label="角色范围"> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template #default="scope"> <template #default="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="primary"
@click="handleModify(scope.$index, scope.row)" @click="handleModify(scope.$index, scope.row)"
>修改</el-button >修改</el-button
> >
...@@ -30,43 +27,42 @@ ...@@ -30,43 +27,42 @@
<el-form> <el-form>
<!-- 编辑 --> <!-- 编辑 -->
<div v-if="edit"> <div v-if="edit">
<!-- <roleDetail
v-if="role_info_detail.role_id"
:role_info_detail="role_info_detail"
/> -->
<el-form-item label="状态" :label-width="formLabelWidth" prop="pass"> <el-form-item label="状态" :label-width="formLabelWidth" prop="pass">
<el-input disabled v-model="roleName" autocomplete="off"></el-input> <el-input
disabled
v-model="role_info_detail.role_status"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="ID" :label-width="formLabelWidth" prop="pass">
label="ID" <el-input disabled v-model="role_info_detail.role_id"></el-input>
:label-width="formLabelWidth"
prop="checkPass"
>
<el-input disabled v-model="roleName" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="创建人账号" :label-width="formLabelWidth">
label="创建人账号" <el-input
:label-width="formLabelWidth" disabled
prop="age" v-model="role_info_detail.create_user_name"
> ></el-input>
<el-input disabled v-model="roleName"></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="创建时间" :label-width="formLabelWidth">
label="创建时间" <el-input
:label-width="formLabelWidth" disabled
prop="age" v-model="role_info_detail.create_time"
> ></el-input>
<el-input disabled v-model="roleName"></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="最后修改人账号" :label-width="formLabelWidth">
label="最后修改人账号" <el-input
:label-width="formLabelWidth" disabled
prop="age" v-model="role_info_detail.update_user_name"
> ></el-input>
<el-input disabled v-model="roleName"></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="最后修改时间" :label-width="formLabelWidth">
label="最后修改时间" <el-input
:label-width="formLabelWidth" disabled
prop="age" v-model="role_info_detail.update_time"
> ></el-input>
<el-input disabled v-model="roleName"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<!-- 新增 --> <!-- 新增 -->
...@@ -76,9 +72,10 @@ ...@@ -76,9 +72,10 @@
<el-form-item label="角色范围" :label-width="formLabelWidth"> <el-form-item label="角色范围" :label-width="formLabelWidth">
<el-cascader <el-cascader
v-model="selectedOptions" v-model="selectedOptions"
:options="options" :options="permissionsAll"
:props="props" :props="props"
@change="parentCateChange" @change="parentCateChange"
filterable
clearable clearable
></el-cascader> ></el-cascader>
</el-form-item> </el-form-item>
...@@ -86,141 +83,223 @@ ...@@ -86,141 +83,223 @@
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button> <el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmRole">确 定</el-button> <el-button type="primary" @click="confirmRole(edit)">确 定</el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
<page :totalNum="totalNum" @update="update" />
</div> </div>
</template> </template>
<script> <script>
import page from "../components/Pagination"
//import roleDetail from './components/roleDetail'
import {
getRole_list as reqGetRole_list, getAdd_role as reqGetAdd_role,
getAll_role_list as reqGetAll_role_list,
getUpdate_role as reqGetUpdate_role,
get_role_info as reqGet_role_info
} from "../../service/role";
import { ElMessage } from 'element-plus'
export default { export default {
components: {
page,
// roleDetail
},
data () { data () {
return { return {
tableData: [{ parmas: {
id: '1', page: 1,
name: '超级管理员', page_size: 20
address: '角色范围' },
}, { user_info: {
id: '2', user_name: "jianghaiming",
name: '普通角色', user_email: "jianghaiming@126.com",
address: '角色范围' },
}, { roleDataList: [],
id: '3', totalNum: 20,
name: '超级管理员',
address: '角色范围'
}, {
id: '4',
name: '普通角色',
address: '角色范围'
}],
vals: [],
edit: false, edit: false,
dialogFormVisible: false, dialogFormVisible: false,
roleName: '', roleName: '',
checkedRole: [],//已经选择的角色
roleTitle: '', roleTitle: '',
props: { props: {
multiple: true,//设置为多选 multiple: true,//设置为多选
checkStrictly: true, value: 'id', //value值和哪个值绑定
value: 'name', //value值和哪个值绑定
label: 'desc',//label值和哪个值绑定 label: 'desc',//label值和哪个值绑定
children: 'button_list'//children值和哪个值绑定 children: 'sub_permissions'//children值和哪个值绑定
}, },
formLabelWidth: '120px', formLabelWidth: '120px',
selectedOptions: [], selectedOptions: [189, 190],//选中权限类型
rolePrivilege: [], currentRolePrivilege: [],//当前权限设置
currentRolePrivilege: '', role_info_detail: {//详情非编辑项
options: [ role_id: "",
{ role_name: "",
role_status: "",
"name": "用户列表", update_time: "",
"desc": "用户列表", update_user_name: "",
// "menu_redirect":"\/user\/user\/list", create_time: "",
"button_list": [ create_user_name: ""
{ },
"name": "deleteBtn", permissionsAll: [],//所有权限列表
"desc": "删除用户" permissionsUpdate: [],//选中权限
},
{
"name": "addBtn",
"desc": "添加用户"
},
{
"name": "updateBtn",
"desc": "修改用户"
}
]
},
{
"menu_name": "企业审核列表",
// "menu_redirect": "\/aut\/user\/list",
"desc": "企业审核列表",
"button_list": [
{
"name": "addBtn",
"desc": "添加"
},
{
"name": "showBtn",
"desc": "查看"
}
]
}
]
} }
},
created () {
this.getGetRole_list()
let { user_name, user_email } = this.user_info
reqGetAll_role_list(user_name, user_email).then(res => {
this.permissionsAll = res
})
}, },
methods: { methods: {
roleRangeFormat (row) {
let arr = []
for (let i in row.role_range) {
arr.push(row.role_range[i]);
}
return arr.join('/')
},
newAddRole () {
this.dialogFormVisible = true
this.roleTitle = '新增角色'
this.edit = false
this.roleName = ""
this.selectedOptions = []
},
//获取角色列表
getGetRole_list () {
let { page, page_size } = this.parmas
reqGetRole_list(page, page_size).then(res => {
this.roleDataList = res
// console.log(res, '00')
// this.totalNum = res.count
})
},
//列表分页
update (obj) {
Object.assign(this.parmas, obj)
let { page, page_size } = this.parmas
this.getGetRole_list(page, page_size)
},
//新增角色
getAdd_role () {
if (!this.roleName || !this.currentRolePrivilege) {
this.checkFn()
return false
}
let role_name = this.roleName, permissions = this.currentRolePrivilege
console.log(JSON.stringify(role_name), '1111')
console.log(JSON.stringify(permissions), '2222')
reqGetAdd_role(role_name, permissions).then(res => {
console.log(res, 'resresres999')
})
},
checkFn () {
ElMessage({
showClose: true,
message: '请完善填写信息',
type: 'error'
});
},
//修改 //修改
handleModify (index, row) { handleModify (index, row) {
console.log(index, row, 'index, row') console.log(index, row.role_id, 'indexindex')
this.edit = true this.edit = true
this.roleTitle = '角色修改' this.roleTitle = '角色修改'
this.dialogFormVisible = true this.dialogFormVisible = true
this.getRole_info_detail(row.role_id)
},
//角色详情数据
getRole_info_detail (role_id) {
reqGet_role_info(role_id).then(res => {
this.roleName = res.role_name
let { permissions } = res
const { role_id, role_name, role_status, update_time, update_user_name, create_time, create_user_name } = res
this.role_info_detail = {
role_id,
role_name,
role_status,
update_time,
update_user_name,
create_time,
create_user_name
}
this.permissionsUpdate = permissions
this.editEchoData(permissions)
})
},
//遍历回显值selectedOptions
editEchoData (permissions) {
console.log(permissions, 'permissionspermissions')
let parentArr = []
let childArr = []
permissions.forEach(item => {
parentArr.push(item.sub_permissions)
})
parentArr.forEach(element => {
element.forEach(val => {
childArr.push(val.id)
})
})
let selectedArr = []
for (let i in childArr) {
selectedArr.push(childArr[i]);
}
this.selectedOptions = selectedArr
console.log(this.selectedOptions, ' this.selectedOptions this.selectedOptions this.selectedOptions')
},
//编辑角色
getUpdate_role () {
if (!this.roleName || !this.permissionsUpdate) {
this.checkFn()
return false
}
let { role_name, role_id } = this.role_info_detail
reqGetUpdate_role(role_name, role_id, this.permissionsUpdate).then(res => {
console.log(res, 'esesesoo111')
})
},
//确定
confirmRole (edit) {
if (edit) {
this.getUpdate_role()
} else {
this.getAdd_role()
}
}, },
confirmRole () { parentCateChange (id) {
console.log(this.roleName, 'roleNameroleName') this.getSelectedOptions(id)
this.dialogFormVisible = false
}, },
// getCascaderObj (val, opt) { getSelectedOptions (selectedOptions) {
// console.log(val, opt, 'val, opt') let oldDataRule = []
// return val.map(function (value) { selectedOptions.forEach(el => {
// for (var itm of opt) { let oldObj = {
// if (itm.value == value) { opt = itm.children; return itm; } id: el[0],
// } sub_permissions: []
// return null; }
// }); let btnObj = {
// }, id: el[1],
parentCateChange () { }
// this.vals = this.getCascaderObj(this.selectedOptions, this.options); oldObj.sub_permissions.push(btnObj)
// const checkedNodes = this.$refs['cascaderAddr'].getCheckedNodes() oldDataRule.push(oldObj)
//console.log(checkedNodes[0].pathLabels, '000') // 获取由 label 组成的数 })
let newData = []
let newObj = {}
oldDataRule.forEach((el, i) => {
if (!newObj[el.id]) {
newData.push(el);
newObj[el.id] = true;
} else {
newData.forEach(el => {
if (el.id === oldDataRule[i].id) {
el.sub_permissions = [...el.sub_permissions, ...oldDataRule[i].sub_permissions];
}
})
}
})
this.currentRolePrivilege = newData
this.permissionsUpdate = newData
}, },
// getCurrentPrivilege (id) {
// get("/merchant/authority/get_role_list").then((res) => {
// if (res.status == 200) {
// this.rolePrivilege = res.data;
// res.data.forEach((item) => {
// if (item.id == id) {
// this.currentRolePrivilege = item;
// console.log(item);
// // this.getCheckedId(this.currentRolePrivilege);
// }
// });
// }
// });
// },
// getSelectedKeys (obj) {
// this.SelectedKeys = [];
// console.log(obj);
// obj.privileges.forEach((item, index) => {
// if (item.parentId != null) {
// this.selectedKeys.push([item.btn_name, item.btn_desc]);
// } else {
// this.selectedKeys.push([item.btn_name, item.btn_desc]);
// }
// });
// console.log(this.checkedId);
// },
} }
} }
</script> </script>
......
<template>
<div>
<el-form-item label="状态" :label-width="formLabelWidth" prop="pass">
<el-input disabled v-model="loaclRole_info.role_status"></el-input>
</el-form-item>
<el-form-item label="ID" :label-width="formLabelWidth" prop="pass">
<el-input disabled v-model="loaclRole_info.role_id"></el-input>
</el-form-item>
<el-form-item label="创建人账号" :label-width="formLabelWidth">
<el-input disabled v-model="loaclRole_info.create_user_name"></el-input>
</el-form-item>
<el-form-item label="创建时间" :label-width="formLabelWidth">
<el-input disabled v-model="loaclRole_info.create_time"></el-input>
</el-form-item>
<el-form-item label="最后修改人账号" :label-width="formLabelWidth">
<el-input disabled v-model="loaclRole_info.update_user_name"></el-input>
</el-form-item>
<el-form-item label="最后修改时间" :label-width="formLabelWidth">
<el-input disabled v-model="loaclRole_info.update_time"></el-input>
</el-form-item>
</div>
</template>
<script>
export default {
props: ["role_info_detail"],
data () {
return {
formLabelWidth: "120px",
loaclRole_info: this.role_info_detail
}
},
created () {
console.log(this.role_info_detail, 'role_info_detail')
}
}
</script>
\ No newline at end of file
<template> <template>
<div class="user-detail"> <div class="user-detail">
<h2 style="margin-bottom: 10px">用户详情</h2>
<el-descriptions class="margin-top" :column="3" :size="size" border> <el-descriptions class="margin-top" :column="3" :size="size" border>
<el-descriptions-item> <el-descriptions-item>
<template #label> 用户姓名 </template> <template #label> 用户姓名 </template>
...@@ -49,12 +50,19 @@ ...@@ -49,12 +50,19 @@
</div> </div>
</template> </template>
<script> <script>
import { getUser_detail as reqGetUser_detail } from '../../service/user'
export default { export default {
data () { data () {
return { return {
user_id: 1,
userInfoList: [{ userInfoList: [{
}] }]
} }
},
created () {
reqGetUser_detail(this.user_id).then((res) => {
console.log(res, '000')
})
} }
} }
</script> </script>
......
<template> <template>
<div class="block"> <div class="block">
<!-- <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-size="page_size"
background
layout="total,prev, pager, next"
:total="totalNum"
>
</el-pagination> -->
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:page-size="pageSize" :current-page="currentPage"
layout=" total,prev, pager, next" :page-size="page_size"
background
layout="total, prev, pager, next, jumper"
:total="totalNum" :total="totalNum"
> >
</el-pagination> </el-pagination>
...@@ -15,14 +26,14 @@ export default { ...@@ -15,14 +26,14 @@ export default {
props: ['data', 'totalNum'], props: ['data', 'totalNum'],
data () { data () {
return { return {
currentPage: 5, currentPage: 1,
pageSize: 20 page_size: 20
} }
}, },
methods: { methods: {
handleSizeChange (size) { handleSizeChange (size) {
console.log(`每页 ${size} 条`); console.log(`每页 ${size} 条`);
this.$emit('update', { pageSize: size }) this.$emit('update', { page_size: size })
}, },
handleCurrentChange (pageIndex) { handleCurrentChange (pageIndex) {
console.log(`当前页: ${pageIndex}`); console.log(`当前页: ${pageIndex}`);
...@@ -35,5 +46,4 @@ export default { ...@@ -35,5 +46,4 @@ export default {
.block { .block {
margin-top: 50px; margin-top: 50px;
} }
// 样式可以内联,也可以通过 src 引入
</style> </style>
\ No newline at end of file
...@@ -6,7 +6,6 @@ import LifeNoDetail from '../pages/Life-no/life-no-detail.vue' ...@@ -6,7 +6,6 @@ import LifeNoDetail from '../pages/Life-no/life-no-detail.vue'
import UserDetail from '../pages/User/user-detail.vue' import UserDetail from '../pages/User/user-detail.vue'
import AddRole from '../pages/Role/add-role.vue' import AddRole from '../pages/Role/add-role.vue'
const routes = [ const routes = [
{ {
path: "/home", path: "/home",
...@@ -40,26 +39,26 @@ const routes = [ ...@@ -40,26 +39,26 @@ const routes = [
}, },
//生活号管理 //生活号管理
{ {
path: '/life-no/life', path: '/lifeNo',
name: 'LifeNo', name: 'LifeNo',
component: LifeNo, component: LifeNo,
}, },
{ {
path: '/life-no/lifeNoDetail', path: '/lifeNoDetail',
name: 'LifeNoDetail', name: 'LifeNoDetail',
component: LifeNoDetail, component: LifeNoDetail,
}, },
//用户管理 //用户管理
{ {
path: '/user/userDetail', path: '/userDetail',
name: 'UserDetail', name: 'UserDetail',
component: UserDetail, component: UserDetail,
}, },
//角色管理 //角色管理
{ {
path: '/role/addRole', path: '/roleAddRole',
name: 'AddRole', name: 'AddRole',
component: AddRole, component: AddRole
}, },
]; ];
......
import axios from '../utils/request'; import axios from '../utils/request';
//生活号列表
export async function getLifeNoList () { export async function getLifeNoList (params) {
const res = await axios.get("/api/v1/merchant/authority/role_list"); const res = await axios.get(`/api/v1/merchant/lifeinner/life_list`, {
return res.data; params
})
return res.result;
} }
\ No newline at end of file
import axios from '../utils/request'; import axios from '../utils/request';
// import qs from 'qs';
//角色列表 //角色列表
export async function getRole_list () { export async function getRole_list (page, page_size) {
const res = await axios.get("/api/v1/merchant/authority/role_list") const res = await axios.post("/api/v1/merchant/authority/role_list", {
page, page_size
})
return res.result; return res.result;
} }
//添加角色 //添加角色
export async function getAdd_role () { export async function getAdd_role (role_name, permissions) {
const res = await axios.get("/api/v1/merchant/authority/add_role", { // qs.stringify(permissions)
const res = await axios.post("/api/v1/merchant/authority/add_role", {
role_name, permissions
}) })
return res.result; return res.result;
} }
//角色编辑 //角色编辑
// export async function getAdd_role () { export async function getUpdate_role (role_name, role_id, permissions) {
// const res = await axios.get("/api/v1/merchant/authority/update_role", { const res = await axios.post("/api/v1/merchant/authority/update_role", {
role_name, role_id, permissions
})
return res.result;
}
//角色详情
export async function get_role_info (role_id) {
const res = await axios.post("/api/v1/merchant/authority/get_role_info", {
role_id
})
return res.result;
}
// }) //权限列表
// return res.result; export async function getAll_role_list (user_name, user_email) {
// } const res = await axios.post("/api/v1/merchant/authority/get_role_list", {
user_name, user_email
})
return res.permissions;
}
import axios from '../utils/request'; import axios from '../utils/request';
export async function login(email, password) { export async function login (email, password) {
const res = await axios.post(`api/v1/login`, { const res = await axios.post(`api/v1/login`, {
email, password, authCode: '' email, password, authCode: ''
}); });
return res.data; return res.data;
} }
export async function getPermissions() { export async function getPermissions () {
return await axios.post("api/home/user/get_permissions") return await axios.post("api/home/user/get_permissions")
} }
\ No newline at end of file //用户详情
export async function getUser_detail (user_id) {
const res = await axios.post("api/v1/merchant/lifeinner/life_info", {
user_id
})
return res.result;
}
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