cyl/dev
wangxia 2 years ago
parent 21aca05df3
commit 02c4ae0c89

@ -11,13 +11,76 @@
</a-breadcrumb>
<div class="contentbody bodyContainer">
<div class="leftContainer br1">
<div class="searchbox bb1 ml12 mr12">
<div class="searchbox pb12 ml12 mr12">
<div class="searchinput">
<a-input-search placeholder="搜索成员" v-model.trim="pagination.keys" enter-button allowClear @search="onSearch" @keyup.enter="onSearch" @input="resetsearch"></a-input-search>
</div>
<i class="iconfont icon-fangda ml12 c6 curp" @click="[addGroupShow = true,isEdit = false]" style="line-height:32px"></i>
<!-- <i class="iconfont icon-fangda ml12 c6 curp" @click="[addGroupShow = true,isEdit = false]" style="line-height:32px"></i> -->
</div>
<a-menu :selectedKeys="selectedKeys" @click="getGroup" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<a-radio-group v-model="menuType" class="pl12 pr12 tac" style="width:100%" :style="{ marginBottom: '8px' }">
<a-radio-button value="role" class="changeGroup" style="width:50%">按角色</a-radio-button>
<a-radio-button value="group" class="changeGroup" style="width:50%">按部门</a-radio-button>
</a-radio-group>
<div v-if="menuType == 'role'">
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<a-menu-item key="all" class="fsa showdot bb_after" @click="selectGroup('all')"></a-menu-item>
</a-menu>
<div class="bb1 ml12 mr12 mt8 mb12" style="wdith:calc(100% - 24px)"></div>
<div class="f12 c9 ml24 mb8">默认角色11</div>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<template v-for="(item, index) in groupList">
<a-menu-item :key="item.teamName" class="fsa showdot" @click="selectGroup(item)">
{{item.teamName}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div @click="[addGroupShow = true,isEdit = true,recordId = item.id,groupName=item.teamName]">修改名称</div>
<div @click="delGroup(item)"></div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
</template>
</a-menu>
<div class="bb1 ml12 mr12 mt8 mb12" style="wdith:calc(100% - 24px)"></div>
<div class="f12 c9 ml24 mb8">自定义角色8</div>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<!-- <template v-for="(item, index) in groupList"> -->
<a-menu-item key="角色1" class="fsa showdot" @click="selectGroup('角色1')">
{{'角色1'}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div>修改名称</div>
<div>删除</div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
<a-menu-item key="角色2" class="fsa showdot" @click="selectGroup('角色2')">
{{'角色2'}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div>修改名称</div>
<div>删除</div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
<!-- </template> -->
</a-menu>
</div>
<div v-else>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<a-menu-item key="all" class="fsa showdot bb_after" @click="selectGroup('all')"></a-menu-item>
</a-menu>
<div class="bb1 ml12 mr12 mt8 mb12" style="wdith:calc(100% - 24px)"></div>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<template v-for="(item, index) in groupList">
<a-menu-item :key="item.teamName" class="fsa showdot" @click="selectGroup(item)">
{{item.teamName}}
@ -33,23 +96,30 @@
</a-menu-item>
</template>
</a-menu>
<div class="pt12 ml12 mr12 mt16 bt1">
<a-button type="dashed" class="setMiddle" icon="plus" @click="[addGroupShow = true,isEdit = false]">
<!-- <i class="iconfont icon-fangda c6 f12 mr8" style="line-height:32px"></i> -->
添加部门
</a-button>
</div>
</div>
</div>
<div class="rightContainer">
<div class="fsa pb14 bb1 mb24">
<div class="f20 fw500">{{modalTitle ? modalTitle : "分组116人"}}</div>
<!-- <button class="addGroup" @click="addGroupShow = true">添加分组</button> -->
<div class="f20 fw500">{{modalTitle ? modalTitle : "部门116人"}}</div>
<!-- <button class="addGroup" @click="addGroupShow = true">添加部门</button> -->
<a-button class="addmemeber f14" v-if="modalTitle == ''" @click="showDetail('add')">
<i class="iconfont icon-fangda"></i> 添加成员
</a-button>
<!-- <button @click="changepage(1)"></button> -->
</div>
<!-- :expanded-row-keys.sync="expandedRowKeys" -->
<div v-if="modalTitle == ''">
<!-- v-if="modalTitle == ''" -->
<div>
<a-table :columns="columns" :data-source="memberList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id" :locale="tablenodata">
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
<span slot="nickName" slot-scope="text, record">
<!-- <i class="iconfont icon-chengyuan"></i> -->
<svg class="svg_icon" v-if="record.agencyRole == 3" aria-hidden="true" style="width:32px">
<!-- <svg class="svg_icon" v-if="record.agencyRole == 3" aria-hidden="true" style="width:32px">
<use xlink:href="#icon-chengyuan" />
</svg>
<svg class="svg_icon" v-if="record.agencyRole == 2" aria-hidden="true" style="width:32px">
@ -57,9 +127,8 @@
</svg>
<svg class="svg_icon" v-if="record.agencyRole == 1" aria-hidden="true" style="width:32px">
<use xlink:href="#icon-chuangjianren" />
</svg>
</svg>-->
{{ record.aliasName || record.userName }}
<!-- <span>{{ record.tel?''+ record.tel + '':'' }}</span> -->
</span>
<div slot="join">
<a-switch default-checked @change="onChange" />
@ -68,7 +137,7 @@
<a-switch default-checked @change="onChange" />
</div>
<div slot="setting" v-if="!record.children" class="setting" slot-scope="text, record" style="color: #1890FF">
<a @click="showDetail('detail', record)">详情</a>
<!-- <a @click="showDetail('detail', record)">详情</a> -->
<a v-if="loginUserInfo.agencyRole != 3" class="delete" @click="showDetail('edit', record)"></a>
<a v-if="loginUserInfo.agencyRole != 3" @click="deleteMemeber(record)"></a>
</div>
@ -81,7 +150,7 @@
</div>
</div>
</div>
<div v-else-if="modalTitle == '' || modalTitle == ''">
<!-- <div v-else-if="modalTitle == '' || modalTitle == ''">
<a-form :form="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
<div class="fw500 mb16 f16">成员基础信息</div>
<a-form-item class="addItem" label="备注名">
@ -107,9 +176,9 @@
]" :options="options" @change="groupChange" />
</a-form-item>
<a-divider />
<div class="fw500 mb16 f16">成员分组</div>
<div class="fw500 mb16 f16">成员部门</div>
<a-form-item>
<a-radio-group v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择分组' }] },]">
<a-radio-group v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择部门' }] },]">
<a-radio :value="item.id" v-for="item in groupList" @change="onGroupChange(item)" :key="item.id">{{item.teamName}}</a-radio>
</a-radio-group>
</a-form-item>
@ -141,7 +210,7 @@
<div>{{ currentMember.role }}</div>
</div>
<a-divider />
<div class="fw500 mb16 f16">成员分组</div>
<div class="fw500 mb16 f16">成员部门</div>
<div style="margin-bottom:24px" class="f14">
<div>{{ currentMember.agencyTeamName }}</div>
</div>
@ -151,10 +220,10 @@
<div>{{ currentMember.permission }}</div>
</div>
<a-divider />
</div>-->
</div>
</div>
</div>
<!-- <a-modal :title="modalTitle" v-model="visible" centered id="demo" @cancel="modalCancel" width="640px" destroyOnClose class="detailWindow">
<a-modal :title="modalTitle" v-model="visible" centered id="demo" @cancel="modalCancel" width="640px" destroyOnClose class="detailWindow">
<template slot="footer" v-if="this.modalTitle != '成员详情'">
<a-button key="back" @click="modalCancel"></a-button>
<a-button key="submit" class="ml16 mr16" type="primary" :loading="loading" @click="handleSubmit"></a-button>
@ -172,7 +241,7 @@
<a-col :span="18">{{ currentMember.aliasName || currentMember.userName }}</a-col>
</a-row>
<a-row style="margin-bottom:24px">
<a-col :span="4">分组</a-col>
<a-col :span="4">部门</a-col>
<a-col :span="18">{{ currentMember.agencyTeamName }}</a-col>
</a-row>
<a-row style="margin-bottom:24px">
@ -186,14 +255,14 @@
</template>
<template v-else>
<a-form :form="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 16 }">
<a-form-item label="手机号">
<a-input placeholder="请输入手机号" v-decorator="['tel', {rules: [{ required: true, message: '' },{ type: 'regexp', validator: validateServiceName, message: '', }, ], validateTrigger: 'submit', }, ]" :max-length="11" />
</a-form-item>
<a-form-item label="备注名">
<a-input placeholder="请输入备注名" v-decorator="[ 'aliasName', { rules: [{ required: true, message: '' }] }, ]" />
</a-form-item>
<a-form-item label="分组">
<a-select default-value="lucy" placeholder="请选择分组" v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择分组' }] },]" dropdownClassName="groupSelectDrop">
<a-form-item label="手机号">
<a-input placeholder="请输入手机号" v-decorator="['tel', {rules: [{ required: true, message: '' },{ type: 'regexp', validator: validateServiceName, message: '', }, ], validateTrigger: 'submit', }, ]" :max-length="11" />
</a-form-item>
<a-form-item label="部门选择">
<a-select default-value="lucy" placeholder="请选择部门" v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择部门' }] },]" dropdownClassName="groupSelectDrop">
<div slot="dropdownRender" slot-scope="menu">
<div v-for="(item,index) in groupList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index">
<div>{{item.teamName}}</div>
@ -202,35 +271,57 @@
<span @click.stop="delGroup(item)">删除</span>
</div>
</div>
<div class="bt1" style="padding: 9px 16px; cursor: pointer;" @mousedown="e => e.preventDefault()" @click="[addGroupShow = true,isEdit = false]">添加新分组</div>
<div class="bt1" style="padding: 9px 16px; cursor: pointer;" @mousedown="e => e.preventDefault()" @click="[addGroupShow = true,isEdit = false]">添加新部门</div>
</div>
</a-select>
</a-form-item>
<a-form-item label="角色">
<a-select default-value="lucy" placeholder="请选择角色" v-decorator="['agencyTeamId',{ rules: [{ required: true, message: '请选择角色' }] },]" dropdownClassName="groupSelectDrop">
<div slot="dropdownRender" slot-scope="menu">
<div v-for="(item,index) in groupList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index">
<div>{{item.teamName}}</div>
<div>
<span @click="[addGroupShow = true,isEdit = true,recordId = item.id]">修改</span>
<span @click.stop="delGroup(item)">删除</span>
</div>
</div>
<div class="bt1" style="padding: 9px 16px; cursor: pointer;" @mousedown="e => e.preventDefault()" @click="[addGroupShow = true,isEdit = false]">添加新部门</div>
</div>
</a-select>
</a-form-item>
<a-form-item label="角色" class="dn">
<a-radio-group v-decorator="[
'agencyRole',
{ rules: [{ required: true, message: '请选择角色' }] },
]" :options="options" @change="groupChange" />
</a-form-item>
<a-row>
<a-form-item label="参与统计">
<a-switch default-checked @change="onChange" />
</a-form-item>
<a-form-item label="大屏显示">
<a-switch default-checked @change="onChange" />
</a-form-item>
<!-- <a-row>
<a-col :span="4">权限</a-col>
<a-col :span="16">{{ permissionName }}</a-col>
</a-row>
</a-row>-->
</a-form>
</template>
</a-modal> -->
<a-modal :title="isEdit?'编辑分组':'添加分组'" v-model="addGroupShow" centered id="demo" @cancel="addGroupShow = false" @ok="addMemberGroup" width="640px" :destroyOnClose='true' class="addGroupModal">
</a-modal>
<a-modal :title="isEdit?'编辑部门':'添加部门'" v-model="addGroupShow" centered id="demo" @cancel="addGroupShow = false" @ok="addMemberGroup" width="640px" :destroyOnClose="true" class="addGroupModal">
<div class="fsc setMiddle mt20" style="width:420px">
<div class="mr12 c6">分组名称:</div>
<a-input placeholder="请输入分组名" v-model="groupName" class="flex1"></a-input>
<div class="mr12 c6">
<span class="mr4" style="color:#f5222d">*</span>部门名称:
</div>
<a-input placeholder="请输入部门名" v-model="groupName" class="flex1"></a-input>
</div>
<template slot="footer">
<a-button key="back" @click="[addGroupShow = false,groupName = '']">取消</a-button>
<a-button key="submit" type="primary" :loading="loading" @click="addMemberGroup"></a-button>
</template>
</a-modal>
<a-modal title="删除分组" v-model="delGroupShow" centered id="demo" @cancel="delGroupShow = false" width="400px" destroyOnClose class="addGroupModal">
<div>确定要删除该分组</div>
<a-modal title="删除部门" v-model="delGroupShow" centered id="demo" @cancel="delGroupShow = false" width="400px" destroyOnClose class="addGroupModal">
<div>确定要删除该部门</div>
<template slot="footer">
<a-button key="back" @click="delGroupShow = false">取消</a-button>
<a-button key="submit" type="primary" :loading="loading" @click="delMemberGroup"></a-button>
@ -298,10 +389,11 @@ export default {
showGroup: false,
addGroupShow: false,
delGroupShow: false,
groupName: '', //
groupName: '', //
loading: false,
isEdit: false, //
selectedKeys: ['待分组'],
isEdit: false, //
selectedKeys: ['待部门'],
menuType: 'role',
}
},
//
@ -309,7 +401,7 @@ export default {
columns() {
const columns = [
{
title: '序',
title: '',
dataIndex: 'index',
key: 'index',
customRender: (text, row, index) => {
@ -323,22 +415,29 @@ export default {
width: 60,
},
{
title: '成员姓名',
title: '姓名',
dataIndex: 'nickName',
key: 'nickName',
scopedSlots: { customRender: 'nickName' },
ellipsis: true,
// width: 120,
},
{
title: '角色',
dataIndex: 'role',
key: 'role',
width: 120,
ellipsis: true,
},
// {
// title: '',
// dataIndex: 'role',
// key: 'role',
// width: 100,
// title: '',
// dataIndex: 'permission',
// key: 'permission',
// ellipsis: true,
// },
{
title: '分组',
title: '部门',
dataIndex: 'agencyTeamId',
key: 'agencyTeamId',
// width: 100,
@ -353,13 +452,8 @@ export default {
return text1
},
ellipsis: true,
width: 120,
},
// {
// title: '',
// dataIndex: 'permission',
// key: 'permission',
// ellipsis: true,
// },
{
title: '手机号',
dataIndex: 'tel',
@ -393,7 +487,7 @@ export default {
// sortOrder: sortedInfo.columnKey == "userApplyOrder" && sortedInfo.order,
// ellipsis: true,
width: 140,
width: 84,
},
]
return columns
@ -433,7 +527,7 @@ export default {
}
},
/**
* 添加成员分组选择切换
* 添加成员部门选择切换
*/
onGroupChange(e) {
console.log(e)
@ -443,7 +537,7 @@ export default {
this.agencyTeamId = e.id
},
/**
* 分组列表选择
* 部门列表选择
*
*
*/
@ -475,7 +569,7 @@ export default {
if (data.status === 200) {
this.memberList = data.data.recordList
this.memberList.forEach((item, index) => {
// item.group = '' + ((index % 5) + 1)
// item.group = '' + ((index % 5) + 1)
// item1.children.forEach((item) => {
console.log(item)
item.role = getAgencyRoleTypeById(item.agencyRole)
@ -560,9 +654,25 @@ export default {
},
delGroup(item) {
console.log(item)
let that = this
this.recordId = item.id
this.delGroupShow = true
this.$confirm({
title: '删除',
content: '确定要删除该部门吗?',
centered: true,
onOk(e1, e2) {
console.log(e1)
console.log(e2)
return new Promise((res) => {
that.delMemberGroup()
setTimeout(() => {
res()
}, 2000)
})
},
onCancel() {},
})
// this.delGroupShow = true
},
getPopupContainer(el, dialogContext) {
console.log(el)
@ -603,7 +713,7 @@ export default {
if (type == 'edit') {
this.currentMember = e
this.modalTitle = '编辑成员'
// this.visible = true
this.visible = true
setTimeout(() => {
console.log(this.currentMember)
that.form.setFieldsValue({
@ -617,10 +727,10 @@ export default {
} else if (type == 'detail') {
this.currentMember = e
this.modalTitle = '成员详情'
// this.visible = true
this.visible = true
} else {
this.modalTitle = '添加成员'
// this.visible = true
this.visible = true
this.$nextTick(() => {
console.log(123)
that.form.setFieldsValue({
@ -651,7 +761,7 @@ export default {
},
selectGroup(item) {
console.log(item)
this.selectedKeys = [item.teamName]
this.selectedKeys = [item.teamName || item]
},
modalCancel() {
// console.log(this);
@ -862,7 +972,7 @@ export default {
/deep/ .searchbox {
display: flex;
justify-content: space-between;
padding-bottom: 14px;
// padding-bottom: 14px;
}
.leftMenu {
max-width: calc(100% - 1px);
@ -936,7 +1046,7 @@ export default {
// line-height: 22px;
> div {
// line-height: 1;
border-left: 1px solid #ccc;
border-left: 1px solid #ddd;
padding-left: 12px;
}
}
@ -969,14 +1079,14 @@ export default {
}
.setting {
a:nth-child(2) {
padding: 0 9px;
margin: 0 9px;
}
// a:last-child {
// }
.delete {
border-left: 1px solid #979797;
// border-left: 1px solid #979797;
border-right: 1px solid #979797;
padding: 0 9px 0 0;
margin: 0 9px 0 0;
}
}
// /deep/ .ant-table-row-cell-break-word {
@ -992,7 +1102,6 @@ export default {
padding: 10px 16px;
.ant-modal-title {
font-weight: bold;
}
}
.ant-modal-body {
@ -1024,14 +1133,14 @@ export default {
.detailWindow {
/deep/ .ant-modal {
.ant-modal-close-x {
height: 50px;
height: 40px;
width: 50px;
line-height: 50px;
line-height: 40px;
}
.ant-modal-header {
padding: 14px;
// padding: 12px;
text-align: left;
background-color: #f5f5f5;
// background-color: #f5f5f5;
}
.ant-modal-body {
padding-left: 100px;
@ -1104,4 +1213,6 @@ export default {
}
}
}
.changeGroup {
}
</style>

@ -1,5 +1,5 @@
<template>
<div class="">内容管理</div>
<div class="">通知中心</div>
</template>
<script>
@ -24,7 +24,10 @@ export default {
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created () {},
created () {
this.$emit('setTitle', '通知中心')
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内

@ -6,44 +6,33 @@
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>角色管理</a-breadcrumb-item>
<a-breadcrumb-item>
<span @click="cancelAdd" v-if="secondBreadcrumb" style="cursor:pointer"></span>
<span v-else></span>
</a-breadcrumb-item>
<a-breadcrumb-item v-if="secondBreadcrumb">{{secondBreadcrumb}}</a-breadcrumb-item>
</a-breadcrumb>
<!-- <div v-if="secondBreadcrumb">
/
{{secondBreadcrumb}}
</div>-->
<div class="contentbody bodyContainer">
<div class="fsa pb14 bb1 mb24">
<div class="f20 fw500">角色管理</div>
<a-button class="addmemeber f14" @click="showDetail('add')">
<i class="iconfont icon-fangda"></i> 添加成员
<div class="fsa pb16">
<div class="f20 fw500">{{secondBreadcrumb || '角色管理'}}</div>
<a-button class="addmemeber f14" @click="addRole('add')" v-if="secondBreadcrumb == ''">
<i class="iconfont icon-fangda"></i> 添加角色
</a-button>
</div>
<a-table :columns="columns" :data-source="roleList" :scroll='{y:480}' :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id" :locale="tablenodata">
<div v-if="secondBreadcrumb == ''">
<a-table :columns="columns" :data-source="roleList" :scroll="{y:480}" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id" :locale="tablenodata">
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
<span slot="nickName" slot-scope="text, record">
<!-- <i class="iconfont icon-chengyuan"></i> -->
<svg class="svg_icon" v-if="record.agencyRole == 3" aria-hidden="true" style="width:32px">
<use xlink:href="#icon-chengyuan" />
</svg>
<svg class="svg_icon" v-if="record.agencyRole == 2" aria-hidden="true" style="width:32px">
<use xlink:href="#icon-guanliyuan" />
</svg>
<svg class="svg_icon" v-if="record.agencyRole == 1" aria-hidden="true" style="width:32px">
<use xlink:href="#icon-chuangjianren" />
</svg>
{{ record.aliasName || record.userName }}
<!-- <span>{{ record.tel?''+ record.tel + '':'' }}</span> -->
</span>
<div slot="join">
<a-switch default-checked @change="onChange" />
</div>
<div slot="bigScreen">
<a-switch default-checked @change="onChange" />
</div>
<div slot="setting" class="setting" slot-scope="text, record" style="color: #1890FF">
<a @click="showDetail('detail', record)">详情</a>
<a v-if="loginUserInfo.agencyRole != 3" class="delete" @click="showDetail('edit', record)"></a>
<a v-if="loginUserInfo.agencyRole != 3" @click="deleteMemeber(record)"></a>
<a @click="secondBreadcrumb = '角色详情'">详情</a>
<a class="delete">编辑</a>
<a>删除</a>
</div>
</a-table>
<div class="pagecontainer mt16">
<div class="pagecontainer mt16 fss">
<a-pagination :current="+pagination.pageNum" :default-current="1" :defaultPageSize="8" :total="pagination.total" @change="onChange" />
<div class="ant-pagination-options-quick-jumper f14 ml12">
<span>{{ pagination.total }}</span>跳至
@ -51,13 +40,57 @@
</div>
</div>
</div>
<div v-else-if="secondBreadcrumb == '' || secondBreadcrumb == ''">
<div>
<a-form :form="roleForm" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }" @submit.event="addSubmit">
<!-- 角色信息 -->
<div class="fw500 mb16 f16">角色信息</div>
<a-form-item class="addItem" label="角色名称:">
<a-input placeholder="请输入角色名称" v-decorator="[ 'aliasName', { rules: [{ required: true, message: '' }] }, ]" />
</a-form-item>
<a-form-item class="addItem" label="角色描述:">
<a-input placeholder="请输入角色描述" v-decorator="[ 'desp', { rules: [{ required: true, message: '' }] }, ]" />
</a-form-item>
<a-divider />
<!-- 功能权限 -->
<div class="fw500 mb16 f16">功能权限</div>
<a-form-item>
<div class>
<a-select default-value="lucy" class="mr8 ml8" style="width:360px" placeholder="请选择分组" v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择分组' }] },]" dropdownClassName="groupSelectDrop">
<a-select-option :value="item.roleName" v-for="(item,index) in roleList">{{item.roleName}}</a-select-option>
<!-- <div slot="dropdownRender" slot-scope="menu">
<div v-for="(item,index) in roleList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index">
<div>{{item.roleName}}</div>
</div>
</div>-->
</a-select>
</div>
</a-form-item>
<div v-for="(item, key) in authorityList">
<a-checkbox :checked="item.checked" @change="checkboxChange(item,key)">{{item.label}}</a-checkbox>
<br />
<div class="ml24 mt16">
<a-checkbox v-for="(subItem, subIndex) in item.children" :checked="subItem.checked" :disabled="!item.checked" @change="checkboxChange(subItem,key,subIndex)">{{subItem.label}}</a-checkbox>
</div>
<a-divider />
</div>
<a-form-item>
<a-button type class="mr16" @click="cancelAdd"></a-button>
<a-button type="primary" html-type="submit">保存</a-button>
</a-form-item>
</a-form>
</div>
</div>
<div v-if="secondBreadcrumb == '角色详情' "></div>
</div>
</div>
</template>
<script>
export default {
//
name: 'MemberManagement',
name: 'RoleManagement',
//
components: {},
//
@ -65,6 +98,20 @@ export default {
//
data() {
return {
tablenodata: {
//
emptyText: () => (
<div>
<div>
<img src="https://user-images.githubusercontent.com/507615/54591670-ac0a0180-4a65-11e9-846c-e55ffce0fe7b.png" style="width:105px;height:90px;marginTop:20px" />
</div>
<div style="marginBottom:20px">暂无数据</div>
</div>
),
},
secondBreadcrumb: '',
roleForm: this.$form.createForm(this),
roleList: [1, 2, 3, 4],
pagination: {
pageNum: 1,
pageSize: 8,
@ -524,6 +571,131 @@ export default {
labelName: 'admin',
},
],
middleauthor: null,
authorityList: {
dtzw: {
id: 1,
label: '稻田职位',
checked: false,
children: [
{
id: 1,
label: '查看职位列表',
checked: false,
},
{
id: 2,
label: '职位详情页',
checked: false,
},
{
id: 3,
label: '报名',
checked: false,
},
],
},
wdbm: {
id: 2,
label: '我的报名',
checked: false,
children: [
{
id: 1,
label: '查看报名信息',
checked: false,
},
{
id: 2,
label: '修改报名详情',
checked: false,
},
],
},
wdlx: {
id: 3,
label: '我的老乡',
checked: false,
children: [
{
id: 1,
label: '查看老乡信息',
checked: false,
},
{
id: 2,
label: '修改老乡详情',
checked: false,
},
],
},
tdsj: {
id: 4,
label: '团队数据',
checked: false,
children: [
{
id: 1,
label: '查看数据',
checked: false,
},
],
},
xx: {
id: 5,
label: '消息',
checked: false,
children: [
{
id: 1,
label: '系统消息',
checked: false,
},
{
id: 2,
label: '团队消息',
checked: false,
},
],
},
sjht: {
id: 6,
label: '商家后台',
checked: false,
children: [
{
id: 1,
label: '我的团队',
checked: false,
},
{
id: 2,
label: '新增成员',
checked: false,
},
{
id: 3,
label: '修改成员信息',
checked: false,
},
{
id: 4,
label: '删除成员',
checked: false,
},
{
id: 5,
label: '伯才TV',
checked: false,
},
{
id: 6,
label: '数据大屏',
checked: false,
},
],
},
},
}
},
//
@ -604,8 +776,11 @@ export default {
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
beforeCreate() {},
created() {
this.$emit('setTitle', '角色管理')
this.middleauthor = JSON.parse(JSON.stringify(this.authorityList))
console.log(this.middleauthor)
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
@ -613,7 +788,67 @@ export default {
*/
mounted() {},
//
methods: {},
methods: {
checkboxChange(e, key, index) {
// console.log(e)
// console.log(key)
// console.log(index)
// console.log(this.authorityList[key]);
// console.log(this.authorityList[key][index]);
if (e.children) {
this.authorityList[key].checked = !this.authorityList[key].checked
} else {
this.authorityList[key].children[index].checked = !this.authorityList[key].children[index].checked
}
console.log(this.authorityList)
},
inputpageChange(e) {
const pagenumcount = this.pagination.total / this.pagination.pageSize
console.log(pagenumcount)
if (e.target.value) {
if (e.target.value > pagenumcount) {
this.pagination.pageNum = Math.ceil(pagenumcount)
} else {
this.pagination.pageNum = e.target.value
}
} else {
this.pagination.pageNum = 1
}
// this.getJobList();
this.getMemberList()
console.log(e)
},
choiceGroup() {},
onChange(e, e1, e2) {
console.log(e)
console.log(e1)
console.log(e2)
if (typeof e == 'number') {
this.pagination.pageNum = e
this.getMemberList()
}
},
addRole() {
this.secondBreadcrumb = '添加角色'
this.$forceUpdate()
},
/**
* 角色信息表单提交
*/
addSubmit() {
this.roleForm.validateFields(async (err) => {
console.log(err)
})
},
/**
* 取消编辑或者新增角色
*/
cancelAdd() {
this.secondBreadcrumb = ''
this.authorityList = JSON.parse(JSON.stringify(this.middleauthor))
},
},
}
</script>
@ -630,4 +865,16 @@ export default {
font-size: 12px;
}
}
.addItem {
width: 468px;
}
.ant-divider {
margin: 16px 0 22px 0;
}
.delete {
border-left: 1px solid #979797;
border-right: 1px solid #979797;
padding: 0 9px;
margin: 0 9px;
}
</style>

@ -24,7 +24,10 @@ export default {
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created () {},
created () {
this.$emit('setTitle', '工作台')
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内

@ -9,7 +9,102 @@
</a-breadcrumb-item>
<a-breadcrumb-item>团队数据</a-breadcrumb-item>
</a-breadcrumb>
<div class="bodyContainer">
<div class="bodyContainer contentbody">
<div class="leftContainer br1">
<div class="searchbox pb12 ml12 mr12">
<div class="searchinput">
<a-input-search placeholder="搜索成员" v-model.trim="pagination.keys" enter-button allowClear @search="onSearch" @keyup.enter="onSearch" @input="resetsearch"></a-input-search>
</div>
<!-- <i class="iconfont icon-fangda ml12 c6 curp" @click="[addGroupShow = true,isEdit = false]" style="line-height:32px"></i> -->
</div>
<a-radio-group v-model="menuType" class="pl12 pr12 tac" style="width:100%" :style="{ marginBottom: '8px' }">
<a-radio-button value="role" class="changeGroup" style="width:50%">按角色</a-radio-button>
<a-radio-button value="group" class="changeGroup" style="width:50%">按部门</a-radio-button>
</a-radio-group>
<div v-if="menuType == 'role'">
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<a-menu-item key="all" class="fsa showdot bb_after" @click="selectGroup('all')"></a-menu-item>
</a-menu>
<div class="bb1 ml12 mr12 mt8 mb12" style="wdith:calc(100% - 24px)"></div>
<div class="f12 c9 ml24 mb8">默认角色11</div>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<template v-for="(item, index) in groupList">
<a-menu-item :key="item.teamName" class="fsa showdot" @click="selectGroup(item)">
{{item.teamName}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div @click="[addGroupShow = true,isEdit = true,recordId = item.id,groupName=item.teamName]">修改名称</div>
<div @click="delGroup(item)"></div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
</template>
</a-menu>
<div class="bb1 ml12 mr12 mt8 mb12" style="wdith:calc(100% - 24px)"></div>
<div class="f12 c9 ml24 mb8">自定义角色8</div>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<!-- <template v-for="(item, index) in groupList"> -->
<a-menu-item key="角色1" class="fsa showdot" @click="selectGroup('角色1')">
{{'角色1'}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div>修改名称</div>
<div>删除</div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
<a-menu-item key="角色2" class="fsa showdot" @click="selectGroup('角色2')">
{{'角色2'}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div>修改名称</div>
<div>删除</div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
<!-- </template> -->
</a-menu>
</div>
<div v-else>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<a-menu-item key="all" class="fsa showdot bb_after" @click="selectGroup('all')"></a-menu-item>
</a-menu>
<div class="bb1 ml12 mr12 mt8 mb12" style="wdith:calc(100% - 24px)"></div>
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
<template v-for="(item, index) in groupList">
<a-menu-item :key="item.teamName" class="fsa showdot" @click="selectGroup(item)">
{{item.teamName}}
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomCenter">
<i class="iconfont icon-gengduo3 thedot" @click.stop></i>
<div class="groupdropdownbox backTable" slot="overlay">
<div @click="[addGroupShow = true,isEdit = true,recordId = item.id,groupName=item.teamName]">修改名称</div>
<div @click="delGroup(item)"></div>
<div>上移</div>
<div>下移</div>
</div>
</a-dropdown>
</a-menu-item>
</template>
</a-menu>
<div class="pt12 ml12 mr12 mt16 bt1">
<a-button type="dashed" class="setMiddle" icon="plus" @click="[addGroupShow = true,isEdit = false]">
<!-- <i class="iconfont icon-fangda c6 f12 mr8" style="line-height:32px"></i> -->
添加部门
</a-button>
</div>
</div>
</div>
<div class="rightContainer">
<div class="navTitle">
<div class="dateSelect fsa">
<div class="fsa">
@ -88,6 +183,7 @@
</a-table>
</div>
</div>
</div>
<a-modal class="townsmanDetailModal" centered v-model="townsmanDetailVisible" width="1200px" @cancel="townsmanDetailModalClose" :footer="null" destroyOnClose>
<div slot="title" destoryOnClose>明细</div>
<div class="searchinput">
@ -558,11 +654,10 @@ export default {
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {
console.log(document.documentElement.clientHeight)
console.log(document.getElementsByClassName("content")[0].offsetTop)
console.log(document.getElementsByClassName('content')[0].offsetTop)
this.tableHeight = document.documentElement.clientHeight - document.getElementsByClassName("content")[0].offsetTop - 160;
this.tableHeight = document.documentElement.clientHeight - document.getElementsByClassName('content')[0].offsetTop - 160
},
//
methods: {
@ -815,7 +910,6 @@ export default {
}
this.isspinning = false
},
},
}
</script>
@ -825,13 +919,127 @@ export default {
font-size: 14px;
}
.dataStatisticsContainer {
height: 100%;
// min-height: 780px;
}
.bodyContainer {
.contentbody {
overflow: hidden;
display: flex;
justify-content: space-between;
padding-left: 0;
padding-bottom: 0px;
// overflow: hidden;
height: calc(100vh - 105px);
.leftContainer {
width: 260px;
height: 100%;
overflow: hidden;
/deep/ .searchbox {
display: flex;
justify-content: space-between;
// padding-bottom: 14px;
}
.leftMenu {
max-width: calc(100% - 1px);
margin-right: 1px;
border-right-color: transparent;
&::-webkit-scrollbar {
width: 0;
}
}
.thedot {
display: none;
}
.showdot:hover .thedot {
display: block;
}
}
.rightContainer {
flex: 1;
padding-left: 16px;
overflow: hidden;
.addmemeber {
border: 0;
padding: 0 12px;
height: 32px;
line-height: 32px;
color: #fff;
background: #1890ff;
border-radius: 4px;
i {
font-size: 12px;
}
}
.addRole {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
color: #1890ff;
i {
// transform: translateY(4px);
margin-right: 4px;
font-weight: 400;
color: #1890ff;
}
}
.addItem {
width: 404px;
}
}
/deep/ .ant-table-placeholder {
min-height: 300px;
> div {
position: relative;
height: 131px;
top: 30px;
// transform: translateY(-50%);
}
}
/deep/ .ant-table-content {
.ant-table-body {
.ant-table-thead {
th {
padding: 12px 0;
div {
padding: 0px 8px;
}
&:not(:first-child) {
> span {
// line-height: 22px;
> div {
// line-height: 1;
border-left: 1px solid #ddd;
padding-left: 12px;
}
}
}
}
.ant-table-row-cell-break-word {
font-weight: bold;
}
.ant-table-row-cell-ellipsis {
font-weight: bold;
}
}
.ant-table-tbody {
.ant-table-row-cell-ellipsis {
padding: 12px 14px;
}
.ant-table-row-expand-icon {
// color: #000;
padding: 0;
}
.ant-table-row-indent {
display: none !important;
}
}
}
}
}
.pagechange {
button {
@ -872,11 +1080,12 @@ export default {
}
}
/deep/ .ant-table-thead > tr > th, /deep/ .ant-table-tbody > tr > td {
/deep/ .ant-table-thead > tr > th,
/deep/ .ant-table-tbody > tr > td {
padding: 12px 8px !important;
}
td:empty:before {
content: "-";
content: '-';
}
/deep/ .ant-table.ant-table-fixed-header .ant-table-scroll .ant-table-header {

@ -313,15 +313,17 @@ const routes = [
"../components/userinfo/accountsetting/components/bocaiTV.vue"
),
},
// 数据大屏
{
path: "dataScreen",
name: "DataScreen",
component: () => import("../components/merchantManagement/dataScreen.vue"),
},
// 角色管理
{
path: "memberManagement",
name: "MemberManagement",
component: () => import("../components/merchantManagement/memberManagement.vue"),
path: "roleManagement",
name: "RoleManagement",
component: () => import("../components/merchantManagement/roleManagement.vue"),
},
{
path: "workBench",

@ -233,7 +233,9 @@ i {
.pr16 {
padding-right: 16px;
}
.tac {
text-align: center;
}
.pl16 {
padding-left: 16px;
}
@ -293,7 +295,12 @@ i {
.mt10 {
margin-top: 10px;
}
.ml22{
margin-left: 22px;
}
.ml24{
margin-left: 24px;
}
.mb10 {
margin-bottom: 10px;
}
@ -421,6 +428,7 @@ i {
.flex1 {
flex: 1;
}
.dn {
display: none;
}
@ -738,7 +746,6 @@ i {
cursor: pointer;
&:hover {
border: 1px solid #1890ff;
}
}
}

@ -208,7 +208,7 @@ export default {
{
id: 296,
parentId: 294,
name: 'MemberManagement',
name: 'RoleManagement',
url: '/memberInfo',
icon: '',
component: 'home',
@ -366,10 +366,11 @@ header.header,
.trans {
-webkit-transition: all 0.2s;
height: calc(100vh - 64px);
// overflow: scroll;
overflow: auto;
background-color: #f5f5f5;
transition: all 0.2s;
padding: 18px;
padding-bottom: 0;
// padding-right: 32px;
margin-left: 152px !important;
}

Loading…
Cancel
Save