cyl/dev
wangxia 2 years ago
parent ec74d07e68
commit 6d01c7c3cc

@ -8,7 +8,7 @@
<script> <script>
import zhCn from "ant-design-vue/lib/locale-provider/zh_CN"; import zhCn from "ant-design-vue/lib/locale-provider/zh_CN";
let sp = document.createElement('script') let sp = document.createElement('script')
sp.src = '//at.alicdn.com/t/c/font_3135652_vt5pe6yxuqg.js' sp.src = '//at.alicdn.com/t/c/font_3135652_wh8pz6ovidi.js'
document.body.appendChild(sp) document.body.appendChild(sp)
export default { export default {
provide() { provide() {

@ -0,0 +1,173 @@
import request from "../utils/request";
import qs from "qs";
let setqs = function (data) {
return qs.stringify(data);
};
// 成员管理:获取成员列表
export function getMemberListApi (data) {
return request({
url: "/yishoudan/user/getAgencyCorpUsers",
method: "post",
data: setqs(data),
});
}
// 成员管理:删除成员
export function deleteMemberApi (data) {
return request({
url: "/yishoudan/user/delAgencyCorpUser",
method: "post",
data: setqs(data),
});
}
// 成员管理:添加成员
export function addMemberApi (data) {
return request({
url: "/yishoudan/user/addAgencyUser",
method: "post",
data: setqs(data),
});
}
// 成员管理:更新成员
export function updateMemberApi (data) {
return request({
url: "/yishoudan/user/updateAgencyCorpUser",
method: "post",
data: setqs(data),
});
}
// 数据统计列表获取
export function dataStatisticsListApi (data) {
return request({
url: "/yishoudan/statistics/agency/teamWithGroup",
method: "post",
// headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
// data,
});
}
// 数据统计工单详情获取
export function dataStatisticsTeamDetailApi (data) {
return request({
url: "/yishoudan/statistics/agency/teamDetail",
method: "post",
// headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
});
}
/**
* 成员相关
*
*
*/
// 获取成员分组信息
export function getMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/list",
method: "get",
});
}
// 添加成员分组
export function addMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/add",
method: "post",
data: setqs(data),
});
}
// 更新成员分组
export function updateMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/update",
method: "post",
data: setqs(data),
});
}
// 删除成员分组
export function delMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/del/" + data,
method: "get",
});
}
// 成员管理分组下移
export function moveGroupNextApi (data) {
return request({
url: "/yishoudan/agency/team/next/" + data,
method: "get",
});
}
// 成员管理分组上移
export function moveGroupPrevApi (data) {
return request({
url: "/yishoudan/agency/team/prev/" + data,
method: "get",
});
}
// 大屏显示开关
export function memberShowScreenApi (data) {
return request({
url: "/yishoudan/user/agencyCorpUser/showAgencyScreen",
method: "post",
data: setqs(data),
});
}
// 参与数据统计开关
export function memberJoinDataApi (data) {
return request({
url: "/yishoudan/user/agencyCorpUser/inAgencyStatistics",
method: "post",
data: setqs(data),
});
}
// 获取成员总数
export function getTotalNumApi (data) {
return request({
url: "/yishoudan/user/countAgencyTeam",
method: "get",
// data: setqs(data),
});
}
/**
* 角色相关
*
*
*/
// 获取角色列表
export function getRoleListApi (data) {
return request({
url: "/yishoudan/agency/role/list",
method: "get",
// data: setqs(data),
});
}
// 添加角色
export function addRoleApi (data) {
return request({
url: "/yishoudan/agency/role/add",
method: "post",
data: setqs(data),
});
}
// 修改角色
export function updateRoleApi (data) {
return request({
url: "/yishoudan/agency/role/update",
method: "post",
data: setqs(data),
});
}
// 删除角色
export function delRoleApi (data) {
return request({
url: "/yishoudan/agency/role/del/" + data,
method: "get",
// data: setqs(data),
});
}

@ -184,40 +184,7 @@ export function gettownsManCountApi (data) {
data: setqs(data), data: setqs(data),
}); });
} }
// 成员管理:获取成员列表
export function getMemberListApi (data) {
return request({
url: "/yishoudan/user/getAgencyCorpUsers",
method: "post",
data: setqs(data),
});
}
// 成员管理:删除成员
export function deleteMemberApi (data) {
return request({
url: "/yishoudan/user/delAgencyCorpUser",
method: "post",
data: setqs(data),
});
}
// 成员管理:添加成员
export function addMemberApi (data) {
return request({
url: "/yishoudan/user/addAgencyUser",
method: "post",
data: setqs(data),
});
}
// 成员管理:更新成员
export function updateMemberApi (data) {
return request({
url: "/yishoudan/user/updateAgencyCorpUser",
method: "post",
data: setqs(data),
});
}
// 数据统计列表获取 // 数据统计列表获取
export function dataStatisticsListApiold (data) { export function dataStatisticsListApiold (data) {
return request({ return request({
@ -228,84 +195,8 @@ export function dataStatisticsListApiold (data) {
// data, // data,
}); });
} }
// 数据统计列表获取
export function dataStatisticsListApi (data) {
return request({
url: "/yishoudan/statistics/agency/teamWithGroup",
method: "post",
// headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
// data,
});
}
// 数据统计工单详情获取
export function dataStatisticsTeamDetailApi (data) {
return request({
url: "/yishoudan/statistics/agency/teamDetail",
method: "post",
// headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
});
}
// 获取成员分组信息
export function getMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/list",
method: "get",
});
}
// 添加成员分组
export function addMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/add",
method: "post",
data: setqs(data),
});
}
// 更新成员分组
export function updateMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/update",
method: "post",
data: setqs(data),
});
}
// 删除成员分组
export function delMemberGroupApi (data) {
return request({
url: "/yishoudan/agency/team/del/" + data,
method: "get",
});
}
// 成员管理分组下移
export function moveGroupNextApi (data) {
return request({
url: "/yishoudan/agency/team/next/" + data,
method: "get",
});
}
// 成员管理分组上移
export function moveGroupPrevApi (data) {
return request({
url: "/yishoudan/agency/team/prev/" + data,
method: "get",
});
}
// 大屏显示开关
export function memberShowScreenApi (data) {
return request({
url: "/yishoudan/user/agencyCorpUser/showAgencyScreen",
method: "post",
data: setqs(data),
});
}
// 大参与数据统计开关
export function memberJoinDataApi (data) {
return request({
url: "/yishoudan/user/agencyCorpUser/inAgencyStatistics",
method: "post",
data: setqs(data),
});
}

@ -1674,7 +1674,7 @@ export default {
// height: 72px; // height: 72px;
background-color: #fff; background-color: #fff;
display: flex; display: flex;
justify-content: start; justify-content: end;
// flex-direction: column; // flex-direction: column;
.icon { .icon {
width: 90px; width: 90px;
@ -1684,6 +1684,8 @@ export default {
.searchBox { .searchBox {
position: relative; position: relative;
// margin-left: 100px; // margin-left: 100px;
width: 757px;
margin-right: 256px;
line-height: 44px; line-height: 44px;
z-index: 10; z-index: 10;
.hotStore { .hotStore {
@ -1751,7 +1753,7 @@ export default {
// width: 685px; // width: 685px;
// height: 44px; // height: 44px;
&.ant-input-affix-wrapper { &.ant-input-affix-wrapper {
width: 943px; // width: 772px;
position: relative; position: relative;
.ant-input-prefix { .ant-input-prefix {
position: absolute; position: absolute;
@ -2952,4 +2954,7 @@ export default {
} }
} }
} }
p{
margin-bottom: 0;
}
</style> </style>

@ -262,11 +262,11 @@ export default {
line-height: 1; line-height: 1;
} }
div { div {
width: 100px; width: 126px;
height: 32px; height: 40px;
margin-top: 136px; margin-top: 136px;
font-size: 14px; font-size: 14px;
line-height: 29px; line-height: 38px;
text-align: center; text-align: center;
border-radius: 999px; border-radius: 999px;
cursor: pointer; cursor: pointer;

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -16,7 +16,6 @@
<div class="f14 c9" style="transform:translateY(-30px)">页面正在建设中</div> <div class="f14 c9" style="transform:translateY(-30px)">页面正在建设中</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
@ -54,4 +53,8 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -21,7 +21,6 @@
</a-button> </a-button>
<!-- <button @click="changepage(1)"></button> --> <!-- <button @click="changepage(1)"></button> -->
</div> </div>
</div> </div>
<!-- <div class="middleScreen"> --> <!-- <div class="middleScreen"> -->
<largeScreen class="screen"></largeScreen> <largeScreen class="screen"></largeScreen>
@ -69,6 +68,8 @@ export default {
<style scoped lang="less"> <style scoped lang="less">
.data_container { .data_container {
height: 100%; height: 100%;
padding: 16px;
} }
.bodyContainer { .bodyContainer {
// padding-top: 64px; // padding-top: 64px;

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -53,4 +53,8 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -56,5 +56,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -29,44 +29,34 @@
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;"> <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 bb_after fw500" @click="selectGroup('all')"> <a-menu-item key="all" class="fsa bb_after fw500" @click="selectGroup('all')">
全部角色 全部角色
<i class="the_num f14 tac" style="min-width:12px" @click.stop>19</i> <i class="the_num f14 tac" style="min-width:12px" @click.stop>{{totalNum}}</i>
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
<!-- <div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div> --> <!-- <div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div> -->
<!-- <div class="f12 c9 ml24 mb8">默认角色11</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;"> <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 ['创建人','管理员','成员']"> <template v-for="(item, index) in copyRoleList">
<a-menu-item :key="item" class="fsa" @click="selectGroup(item)"> <a-menu-item :key="item.roleName" class="fsa" @click="selectRole(item)">
<span> <span>
{{item}} {{item.roleName}}
<svg class="svg f20 ml4 mb2" aria-hidden="true"> <svg class="svg f20 ml4 mb2" v-if="item.roleType == 0" aria-hidden="true">
<use xlink:href="#icon-xitong" /> <use xlink:href="#icon-xitong" />
</svg> </svg>
</span> <svg class="svg f26 ml4 mb2" v-if="item.roleType == 1" aria-hidden="true">
<i class="the_num tac" style="min-width:12px" @click.stop>3</i>
</a-menu-item>
</template>
</a-menu>
<!-- <div class="bb1 ml12 mr12 mt4 mb4" 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 ['角色1','角色2']">
<a-menu-item :key="item" class="fsa" @click="selectGroup(item)">
<span>
{{item}}
<svg class="svg f26 ml4 mb2" aria-hidden="true">
<use xlink:href="#icon-zidingyi" /> <use xlink:href="#icon-zidingyi" />
</svg> </svg>
</span> </span>
<span class="the_num tac" style="min-width:12px">1</span> <i class="the_num tac" style="min-width:12px" @click.stop>{{item.userNum}}</i>
</a-menu-item> </a-menu-item>
</template> </template>
</a-menu> </a-menu>
<!-- <div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div> -->
<!-- <div class="f12 c9 ml24 mb8">自定义角色8</div> -->
</div> </div>
<div v-else> <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 :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 bb_after fw500" @click="selectGroup('all')"> <a-menu-item key="all" class="fsa bb_after fw500" @click="selectGroup('all')">
全部部门 团队成员
<i class="the_num f14" @click.stop>{{totalNum}}</i> <i class="the_num f14" @click.stop>{{totalNum}}</i>
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
@ -98,7 +88,7 @@
</div> </div>
<div class="rightContainer mb24"> <div class="rightContainer mb24">
<div class="fsa pb14 bb1 mb24"> <div class="fsa pb14 bb1 mb24">
<div class="f16 fw500">{{ selectedKeys[0] == 'all' ? `全部成员(${totalGroupNum}人)`:selectedKeys[0] + `${subGroupNum}人)` }}</div> <div class="f16 fw500">{{ selectedKeys[0] == 'all' ? `团队成员(${totalNum}人)`:selectedKeys[0] + `${subGroupNum}人)` }}</div>
<!-- <button class="addGroup" @click="addGroupShow = true">添加部门</button> --> <!-- <button class="addGroup" @click="addGroupShow = true">添加部门</button> -->
<a-button class="addmemeber f14" @click="showDetail('add')"> <a-button class="addmemeber f14" @click="showDetail('add')">
<i class="iconfont icon-fangda mr4"></i> 添加成员 <i class="iconfont icon-fangda mr4"></i> 添加成员
@ -108,7 +98,7 @@
<!-- :expanded-row-keys.sync="expandedRowKeys" --> <!-- :expanded-row-keys.sync="expandedRowKeys" -->
<!-- v-if="modalTitle == ''" --> <!-- v-if="modalTitle == ''" -->
<div class> <div class>
<a-table :columns="columns" :scroll="{x:currWidth}" :data-source="memberList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id" :locale="tablenodata"> <a-table :columns="columns" :scroll="{x:currWidth}" :data-source="memberList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id">
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> --> <!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
<span slot="nickName" slot-scope="text, record">{{ record.aliasName || record.userName }}</span> <span slot="nickName" slot-scope="text, record">{{ record.aliasName || record.userName }}</span>
<div slot="inAgencyStatistics" slot-scope="text, record"> <div slot="inAgencyStatistics" slot-scope="text, record">
@ -251,13 +241,21 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
<!-- v-if="currentMember.agencyRole != 1" --> <!-- v-if="currentMember.agencyRole != 1" -->
<a-form-item label="角色"> <a-form-item label="角色" v-if="currentMember.agencyRoleId == 7261">
<a-select placeholder="请选择角色" :disabled="currentMember.agencyRole == 1" :defaultActiveFirstOption="false" v-decorator="['agencyRole',{ rules: [{ required: true, message: '请选择角色' }] },]" dropdownClassName="groupSelectDrop"> <a-select placeholder="请选择角色" :disabled="true" :defaultActiveFirstOption="false" v-decorator="['agencyRoleId',{ rules: [{ required: true, message: '请选择角色' }] },]" dropdownClassName="groupSelectDrop">
<a-select-option v-for="(item,index) in roleOptions" :value="item.value" class="groupSelectSub fsa" :key="index"> <a-select-option v-for="(item,index) in copyRoleList" :value="item.id" class="groupSelectSub fsa" :key="index">
<div>{{item.label}}</div> <div>{{item.roleName}}</div>
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="角色" v-else>
<a-select placeholder="请选择角色" :disabled="currentMember.agencyRoleId == 7261" :defaultActiveFirstOption="false" v-decorator="['agencyRoleId',{ rules: [{ required: true, message: '请选择角色' }] },]" dropdownClassName="groupSelectDrop">
<a-select-option v-for="(item,index) in roleOptions" :value="item.id" class="groupSelectSub fsa" :key="index">
<div>{{item.roleName}}</div>
</a-select-option>
</a-select>
</a-form-item>
<!-- <a-form-item label="角色" class="dn"> <!-- <a-form-item label="角色" class="dn">
<a-radio-group v-decorator="[ <a-radio-group v-decorator="[
'agencyRole', 'agencyRole',
@ -300,8 +298,9 @@
</template> </template>
<script> <script>
import { getMemberListApi, deleteMemberApi, addMemberApi, getMemberGroupApi, addMemberGroupApi, updateMemberGroupApi, delMemberGroupApi, updateMemberApi, moveGroupNextApi, moveGroupPrevApi, memberShowScreenApi, memberJoinDataApi } from '../../api/userinfo' import { getMemberListApi, deleteMemberApi, addMemberApi, getMemberGroupApi, addMemberGroupApi, updateMemberGroupApi, delMemberGroupApi, updateMemberApi, moveGroupNextApi, moveGroupPrevApi, memberShowScreenApi, memberJoinDataApi, getTotalNumApi, getRoleListApi } from '../../api/merchantConfig'
import { formatDateYMD, getUserApplyOrderStatusById, getAgencyRoleTypeById, getAgencyPermissionNameById, getAgencyPermissionsByRole, tableWidth } from '../../utils/commonUtil'
import { formatDateYMD, getUserApplyOrderStatusById, getAgencyRoleTypeById, getAgencyPermissionNameById, getAgencyPermissionsByRole, tableWidth, fullCopy } from '../../utils/commonUtil'
export default { export default {
// //
@ -368,6 +367,8 @@ export default {
menuType: 'group', menuType: 'group',
totalGroupNum: 0, totalGroupNum: 0,
totalNum: 0, totalNum: 0,
copyRoleList: [],
roleOptions: [],
} }
}, },
// //
@ -482,23 +483,16 @@ export default {
] ]
return columns return columns
}, },
roleOptions() {
if (this.currentMember.agencyRole == 1) {
return [
{ label: '创建人', value: '1' },
{ label: '管理员', value: '2' },
{ label: '成员', value: '3' },
]
} else {
return [
{ label: '管理员', value: '2' },
{ label: '成员', value: '3' },
]
}
},
}, },
// //
watch: {}, watch: {
menuType(value) {
this.selectedKeys = ['all']
this.pagination.agencyRoleIds = ''
this.pagination.agencyTeamIds = ''
this.getMemberList()
},
},
// //
/** /**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在 * 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
@ -509,7 +503,13 @@ export default {
this.loginUserInfo = JSON.parse(localStorage.getItem('LOGIN_DATA')) this.loginUserInfo = JSON.parse(localStorage.getItem('LOGIN_DATA'))
} }
tableWidth(this, this.columns, 120) tableWidth(this, this.columns, 120)
console.log(this.currWidth) getTotalNumApi().then((res) => {
console.log(res)
this.totalNum = res.data.data
})
this.getMemberList()
this.getMemberGroup()
this.getRoleList()
this.$emit('setTitle', '团队成员') this.$emit('setTitle', '团队成员')
}, },
/** /**
@ -517,8 +517,6 @@ export default {
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内 * 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/ */
mounted() { mounted() {
this.getMemberList()
this.getMemberGroup()
window.modalCancel = this.modalCancel window.modalCancel = this.modalCancel
}, },
// //
@ -550,6 +548,18 @@ export default {
getGroup(e) { getGroup(e) {
console.log(e) console.log(e)
}, },
getRoleList() {
getRoleListApi().then(({ data }) => {
console.log(data)
if (data.status == 200) {
this.roleOptions = data.data.list
this.copyRoleList = fullCopy(this.roleOptions)
this.roleOptions.shift()
console.log(this.roleOptions)
console.log(this.copyRoleList)
}
})
},
inputpageChange(e) { inputpageChange(e) {
const pagenumcount = this.pagination.total / this.pagination.pageSize const pagenumcount = this.pagination.total / this.pagination.pageSize
console.log(pagenumcount) console.log(pagenumcount)
@ -596,11 +606,11 @@ export default {
// return a.agencyRole - b.agencyRole // return a.agencyRole - b.agencyRole
// }) // })
this.memberList.sort((a, b) => { this.memberList.sort((a, b) => {
if (a.agencyRole == b.agencyRole) { if (a.agencyRoleId == b.agencyRoleId) {
//== id //== id
return b.agencyTeamId - a.agencyTeamId return b.agencyTeamId - a.agencyTeamId
} else { } else {
return a.agencyRole - b.agencyRole return a.agencyRoleId - b.agencyRoleId
} }
}) })
this.pagination.total = data.data.recordCount this.pagination.total = data.data.recordCount
@ -617,10 +627,10 @@ export default {
if (data.status == 200) { if (data.status == 200) {
console.log(data) console.log(data)
this.groupList = data.data.list this.groupList = data.data.list
this.totalNum = 0 // this.totalNum = 0
this.groupList.forEach((item, index) => { this.groupList.forEach((item, index) => {
console.log(item) console.log(item)
this.totalNum += item.userNum // this.totalNum += item.userNum
if (index > 0) { if (index > 0) {
item.checked = false item.checked = false
} else { } else {
@ -747,7 +757,7 @@ export default {
setTimeout(() => { setTimeout(() => {
console.log(this.currentMember) console.log(this.currentMember)
that.form.setFieldsValue({ that.form.setFieldsValue({
agencyRole: this.currentMember.agencyRole + '', agencyRoleId: this.currentMember.agencyRoleId,
aliasName: this.currentMember.aliasName, aliasName: this.currentMember.aliasName,
tel: this.currentMember.tel, tel: this.currentMember.tel,
group: this.currentMember.group, group: this.currentMember.group,
@ -766,7 +776,7 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
console.log(123) console.log(123)
that.form.setFieldsValue({ that.form.setFieldsValue({
agencyRole: '3', agencyRoleId: 7263,
}) })
}) })
} }
@ -795,6 +805,8 @@ export default {
selectGroup(item) { selectGroup(item) {
console.log(item) console.log(item)
this.selectedKeys = [item.teamName || item] this.selectedKeys = [item.teamName || item]
this.pagination.agencyRoleIds = ''
if (typeof item != 'object') { if (typeof item != 'object') {
this.pagination.agencyTeamIds = '' this.pagination.agencyTeamIds = ''
} else { } else {
@ -803,6 +815,14 @@ export default {
} }
this.getMemberList() this.getMemberList()
}, },
selectRole(item) {
console.log(item)
this.selectedKeys = [item.roleName || item]
this.pagination.agencyTeamIds = ''
// agencyRoleIds
this.pagination.agencyRoleIds = item.id + ''
this.getMemberList()
},
modalCancel() { modalCancel() {
// console.log(this); // console.log(this);
this.modalTitle = '' this.modalTitle = ''
@ -900,9 +920,8 @@ export default {
groupChange(e) { groupChange(e) {
console.log(e) console.log(e)
this.form.setFieldsValue({ this.form.setFieldsValue({
agencyRole: e.target.value, agencyRoleId: e.target.value,
}) })
this.permission
if (this.form.getFieldValue('agencyRole') == 1) { if (this.form.getFieldValue('agencyRole') == 1) {
this.permission = getAgencyPermissionsByRole(1) this.permission = getAgencyPermissionsByRole(1)
} else { } else {
@ -1019,7 +1038,7 @@ export default {
// margin-top: 16px; // margin-top: 16px;
// min-height: calc(100vh - 200px); // min-height: calc(100vh - 200px);
height: 100%; height: 100%;
padding: 0px; padding: 16px;
// background-color: #fff; // background-color: #fff;
border: 1px solid #0000; border: 1px solid #0000;
} }
@ -1109,7 +1128,7 @@ export default {
// height: calc(100vh - 105px); // height: calc(100vh - 105px);
.leftContainer { .leftContainer {
width: 260px; width: 260px;
// min-width: 220px; min-width: 260px;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
/deep/ .searchbox { /deep/ .searchbox {

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -13,17 +13,33 @@
<a-breadcrumb-item v-if="secondBreadcrumb">{{secondBreadcrumb}}</a-breadcrumb-item> <a-breadcrumb-item v-if="secondBreadcrumb">{{secondBreadcrumb}}</a-breadcrumb-item>
</a-breadcrumb> </a-breadcrumb>
<div class="contentbody bodyContainer"> <div class="contentbody bodyContainer">
<div class="fss"> <div class="fsa mb16">
<div class="searchbox "> <div class="searchbox fss">
<div class="searchinput"> <div class="searchinput">
<a-input-search placeholder="搜索成员" v-model.trim="pagination.keys" allowClear @search="onSearch" @keyup.enter="onSearch" @input="resetsearch"></a-input-search> <a-input-search placeholder="搜索成员" v-model.trim="pagination.keys" allowClear @search="onSearch" @keyup.enter="onSearch" @input="resetsearch"></a-input-search>
</div> </div>
</div> <a-radio-group v-model="menuType" class="pl12 pr12 tac" style="min-width:190px">
<a-radio-group v-model="menuType" class="pl12 pr12 tac" style="width:190px">
<a-radio-button value="fabu" class="changeGroup" style="width:50%">已发布</a-radio-button> <a-radio-button value="fabu" class="changeGroup" style="width:50%">已发布</a-radio-button>
<a-radio-button value="caogao" class="changeGroup" style="width:50%">草稿</a-radio-button> <a-radio-button value="caogao" class="changeGroup" style="width:50%">草稿</a-radio-button>
</a-radio-group> </a-radio-group>
</div> </div>
<a-button class="addmemeber f14" @click="addRole('add')">
<i class="iconfont icon-fangda mr4"></i> 新增内容
</a-button>
</div>
<div>
<a-table :columns="columns" :data-source="contentList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id">
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
<div slot="status" slot-scope="text, record">
<a-switch :checked="text" @change="showChange(record,'showAgencyScreen')" />
</div>
<div slot="setting" class="setting" slot-scope="text, record" style="color: #1890FF">
<a @click="showDetail(record)"></a>
<a :class="record.roleType == 1 ?'':'unclick'" class="delete" @click="record.roleType == 1 ? addRole('edit',record):''">预览</a>
<a :class="record.roleType == 1 ?'':'unclick'" @click="record.roleType == 1 ? delRole('del'):''">删除</a>
</div>
</a-table>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -56,10 +72,147 @@ export default {
// this.pageSize = pageSize; // this.pageSize = pageSize;
// } // }
}, },
isspinning:false,
contentList: [
{
mark: '测试标题',
desp: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
cjr: '测试创建人',
fbsj: '2023-10-26 21:00',
status: 0,
},
{
mark: '测试标题',
desp: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
cjr: '测试创建人',
fbsj: '2023-10-26 21:00',
status: 0,
},
{
mark: '测试标题',
desp: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
cjr: '测试创建人',
fbsj: '2023-10-26 21:00',
status: 0,
},
{
mark: '测试标题',
desp: '测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容',
cjr: '测试创建人',
fbsj: '2023-10-26 21:00',
status: 0,
},
],
} }
}, },
// //
computed: {}, computed: {
columns() {
const columns = [
{
title: '排序',
dataIndex: 'index',
key: 'index',
customRender: (text, row, index) => {
if (row.children) {
return ''
} else {
return index + 1
}
},
// ellipsis: true,
width: 60,
},
{
title: '标题',
dataIndex: 'mark',
key: 'mark',
scopedSlots: { customRender: 'mark' },
ellipsis: true,
width: 300,
},
// {
// title: '',
// dataIndex: 'role',
// key: 'role',
// width: 100,
// ellipsis: true,
// },
{
title: '内容',
dataIndex: 'desp',
key: 'desp',
// width: 100,
// filters: this.groupList,
// customRender: (text, row, index) => {
// let text1
// this.groupList.forEach((item) => {
// if (item.id == text) {
// text1 = item.teamName
// }
// })
// return text1
// },
ellipsis: true,
},
// {
// title: '',
// dataIndex: 'permission',
// key: 'permission',
// ellipsis: true,
// },
{
title: '创建人',
dataIndex: 'cjr',
key: 'cjr',
// sorter: (a, b) => a.userApplyOrder.localeCompare(b.userApplyOrder),
scopedSlots: { customRender: 'cjr' },
ellipsis: true,
// sortOrder: sortedInfo.columnKey == "userApplyOrder" && sortedInfo.order,
// ellipsis: true,
width: 90,
},
{
title: '发布时间',
dataIndex: 'fbsj',
key: 'fbsj',
// sorter: (a, b) => a.userApplyOrder.localeCompare(b.userApplyOrder),
scopedSlots: { customRender: 'fbsj' },
ellipsis: true,
// sortOrder: sortedInfo.columnKey == "userApplyOrder" && sortedInfo.order,
// ellipsis: true,
width: 160,
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
// sorter: (a, b) => a.userApplyOrder.localeCompare(b.userApplyOrder),
scopedSlots: { customRender: 'status' },
ellipsis: true,
// sortOrder: sortedInfo.columnKey == "userApplyOrder" && sortedInfo.order,
// ellipsis: true,
width: 70,
},
{
title: '操作',
dataIndex: 'setting',
key: 'setting',
// sorter: (a, b) => a.userApplyOrder.localeCompare(b.userApplyOrder),
scopedSlots: { customRender: 'setting' },
ellipsis: true,
// sortOrder: sortedInfo.columnKey == "userApplyOrder" && sortedInfo.order,
// ellipsis: true,
width: 130,
},
]
return columns
},
},
// //
watch: {}, watch: {},
// //
@ -81,12 +234,46 @@ export default {
// this.gitBillList() // this.gitBillList()
// } // }
}, },
resetsearch() {},
onChange() {},
}, },
} }
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
.searchbox { .searchbox {
.searchinput {
width: 280px; width: 280px;
} }
}
.addmemeber {
border: 0;
padding: 0 12px;
height: 32px;
line-height: 32px;
color: #fff;
background: #1890ff;
border-radius: 4px;
i {
font-size: 12px;
}
&:hover {
background: #40a9ff;
}
}
.setting {
a:nth-child(2) {
}
// a:last-child {
// }
.delete {
border-left: 1px solid #eee;
border-right: 1px solid #eee;
padding: 0 6px 0 6px;
margin: 0 6px 0 6px;
}
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer" >
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -12,10 +12,7 @@
</a-breadcrumb-item> </a-breadcrumb-item>
<a-breadcrumb-item v-if="secondBreadcrumb">{{secondBreadcrumb}}</a-breadcrumb-item> <a-breadcrumb-item v-if="secondBreadcrumb">{{secondBreadcrumb}}</a-breadcrumb-item>
</a-breadcrumb> </a-breadcrumb>
<!-- <div v-if="secondBreadcrumb">
/
{{secondBreadcrumb}}
</div>-->
<div class="contentbody bodyContainer"> <div class="contentbody bodyContainer">
<div class="fsa pb16" v-if="secondBreadcrumb == ''"> <div class="fsa pb16" v-if="secondBreadcrumb == ''">
<div class="f20 fw500">{{secondBreadcrumb || '角色管理'}}</div> <div class="f20 fw500">{{secondBreadcrumb || '角色管理'}}</div>
@ -24,25 +21,25 @@
</a-button> </a-button>
</div> </div>
<div v-if="secondBreadcrumb == ''"> <div v-if="secondBreadcrumb == ''">
<a-table :columns="columns" :data-source="roleList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id" :locale="tablenodata"> <a-table :columns="columns" :data-source="roleList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id">
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> --> <!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
<div slot="setting" class="setting" slot-scope="text, record" style="color: #1890FF"> <div slot="setting" class="setting" slot-scope="text, record" style="color: #1890FF">
<a @click="secondBreadcrumb = '角色详情'"></a> <a @click="showDetail(record)"></a>
<a class="delete" @click="addRole('edit')"></a> <a :class="record.roleType == 1 ?'':'unclick'" class="delete" @click="record.roleType == 1 ? addRole('edit',record):''"></a>
<a @click="delRole('del')"></a> <a :class="record.roleType == 1 ?'':'unclick'" @click="record.roleType == 1 ? delRole(record):''"></a>
</div> </div>
</a-table> </a-table>
<div class="pagecontainer mt16 fss"> <div class="pagecontainer mt16 fss dn">
<a-pagination :current="pagination.pageNum" :page-size-options="pagination.pageSizeOptions" :default-current="1" :defaultPageSize="20" :show-total="total => `${total}`" :total="pagination.total" @change="onChange" size="small" show-size-changer show-quick-jumper /> <a-pagination :current="pagination.pageNum" :page-size-options="pagination.pageSizeOptions" :default-current="1" :defaultPageSize="20" :show-total="total => `${total}`" :total="pagination.total" @change="onChange" size="small" show-size-changer show-quick-jumper />
</div> </div>
</div> </div>
<div v-else-if="secondBreadcrumb == '' || secondBreadcrumb == ''"> <div v-else-if="secondBreadcrumb == '' || secondBreadcrumb == ''">
<div> <div>
<a-form :form="roleForm" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }" @submit.event="addSubmit"> <a-form :form="roleForm" :label-col="{ span: 4 }" :wrapper-col="{ span: 20 }">
<!-- 角色信息 --> <!-- 角色信息 -->
<div class="fw500 mb16 f16">角色信息</div> <div class="fw500 mb16 f16">角色信息</div>
<a-form-item class="addItem" label="角色名称:"> <a-form-item class="addItem" label="角色名称:">
<a-input placeholder="请输入角色名称" v-decorator="[ 'aliasName', { rules: [{ required: true, message: '' }] }, ]" /> <a-input placeholder="请输入角色名称" v-decorator="[ 'roleName', { rules: [{ required: true, message: '' }] }, ]" />
</a-form-item> </a-form-item>
<a-form-item class="addItem" label="角色描述:"> <a-form-item class="addItem" label="角色描述:">
<a-input placeholder="请输入角色描述" v-decorator="[ 'desp', { rules: [{ required: true, message: '' }] }, ]" /> <a-input placeholder="请输入角色描述" v-decorator="[ 'desp', { rules: [{ required: true, message: '' }] }, ]" />
@ -53,7 +50,7 @@
<a-form-item> <a-form-item>
<div class> <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 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> <a-select-option :value="item.roleName" v-for="(item,index) in roleList">{{item.roleName}}</a-select-option>
<!-- <div slot="dropdownRender" slot-scope="menu"> <!-- <div slot="dropdownRender" slot-scope="menu">
<div v-for="(item,index) in roleList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index"> <div v-for="(item,index) in roleList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index">
@ -73,17 +70,38 @@
</div> </div>
<a-form-item> <a-form-item>
<a-button type class="mr16" @click="cancelAdd"></a-button> <a-button type class="mr16" @click="cancelAdd"></a-button>
<a-button type="primary" html-type="submit">保存</a-button> <a-button type="primary" html-type="submit" @click="addSubmit"></a-button>
</a-form-item> </a-form-item>
</a-form> </a-form>
</div> </div>
</div> </div>
<div v-if="secondBreadcrumb == '角色详情' "></div> <div v-if="secondBreadcrumb == '角色详情' ">
<div class="f20 fw500 pb16 bb1 mb24">角色详情</div>
<div class="fw500 mb16 f16">角色信息</div>
<div style="margin-bottom:24px" class="f14 fss">
<div class="c6">角色名称</div>
<div>{{ currentRole.roleName }}</div>
</div>
<div style="margin-bottom:24px" class="f14 fss">
<div class="c6">角色描述</div>
<div>{{ currentRole.desp }}</div>
</div>
<div class="fw500 mb16 f16">功能权限</div>
<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>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getRoleListApi, addRoleApi, updateRoleApi, delRoleApi } from '../../api/merchantConfig'
export default { export default {
// //
name: 'RoleManagement', name: 'RoleManagement',
@ -335,8 +353,8 @@ export default {
// }, // },
{ {
title: '角色备注', title: '角色备注',
dataIndex: 'pName', dataIndex: 'desp',
key: 'pName', key: 'desp',
// width: 100, // width: 100,
// filters: this.groupList, // filters: this.groupList,
// customRender: (text, row, index) => { // customRender: (text, row, index) => {
@ -382,6 +400,7 @@ export default {
created() { created() {
this.$emit('setTitle', '角色管理') this.$emit('setTitle', '角色管理')
this.middleauthor = JSON.parse(JSON.stringify(this.authorityList)) this.middleauthor = JSON.parse(JSON.stringify(this.authorityList))
this.getRoleList()
console.log(this.middleauthor) console.log(this.middleauthor)
}, },
/** /**
@ -430,22 +449,36 @@ export default {
this.getMemberList() this.getMemberList()
} }
}, },
addRole(type) { showDetail(val) {
this.secondBreadcrumb = '角色详情'
console.log(val)
this.currentRole = val
},
addRole(type, val) {
this.currentRole = val
if (type == 'add') { if (type == 'add') {
this.secondBreadcrumb = '添加角色' this.secondBreadcrumb = '添加角色'
} else { } else {
this.secondBreadcrumb = '编辑角色' this.secondBreadcrumb = '编辑角色'
setTimeout(() => {
this.roleForm.setFieldsValue({
roleName: val.roleName,
desp: val.desp,
})
}, 10)
} }
this.$forceUpdate() this.$forceUpdate()
}, },
delRole() { delRole(val) {
this.$confirm({ let that = this
that.$confirm({
title: '删除', title: '删除',
content: '确定要删除该角色吗?', content: '确定要删除该角色吗?',
centered: true, centered: true,
onOk(e1, e2) { onOk(e1, e2) {
console.log(e1) console.log(e1)
console.log(e2) console.log(e2)
that.delSubmit(val)
return new Promise((res) => { return new Promise((res) => {
setTimeout(() => { setTimeout(() => {
res() res()
@ -455,12 +488,67 @@ export default {
onCancel() {}, onCancel() {},
}) })
}, },
getRoleList() {
getRoleListApi().then(({ data }) => {
console.log(data)
if (data.status == 200) {
this.roleList = data.data.list
}
})
},
/** /**
* 角色信息表单提交 * 添加角色信息表单提交
*/ */
addSubmit() { addSubmit() {
this.roleForm.validateFields(async (err) => { this.roleForm.validateFields(async (err) => {
console.log(err) console.log(err)
console.log(this.roleForm.getFieldsValue())
if (err == null) {
let formData = this.roleForm.getFieldsValue()
delete formData.agencyTeamId
if (this.secondBreadcrumb == '添加角色') {
addRoleApi({
...formData,
}).then(({ data }) => {
console.log(data)
if (data.status == 200) {
this.secondBreadcrumb = ''
this.$message.success('添加成功')
this.getRoleList()
}
})
} else {
updateRoleApi({
...formData,
recordId: currentRole.id,
}).then(({ data }) => {
console.log(data)
if (data.status == 200) {
this.secondBreadcrumb = ''
this.$message.success('修改成功')
this.getRoleList()
}
})
}
}
})
},
/**
* 删除角色信息表单提交
*/
delSubmit(val) {
console.log(val);
delRoleApi(val.id).then(({ data }) => {
console.log(data)
if (data.status == 200) {
this.secondBreadcrumb = ''
this.$message.success('删除成功')
this.getRoleList()
} else {
this.$message.fail('删除失败')
}
}) })
}, },
/** /**
@ -476,6 +564,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
.addmemeber { .addmemeber {
border: 0; border: 0;
padding: 0 12px; padding: 0 12px;
@ -548,4 +639,8 @@ export default {
} }
} }
} }
.unclick {
color: #ccc;
cursor: not-allowed;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class> <div class="rightContainer">
<a-breadcrumb class="newBreadcrumb mt0 mb16"> <a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href> <a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}"> <router-link :to="{name:'merchantBack'}">
@ -55,5 +55,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -1,5 +1,5 @@
<template> <template>
<div class="">工作台</div> <div class="rightContainer">工作台</div>
</template> </template>
<script> <script>
@ -39,5 +39,9 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.rightContainer {
padding: 16px;
}
</style> </style>

@ -131,6 +131,10 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.bocaiTV-container{
padding: 16px;
}
.icon { .icon {
width: 1em; width: 1em;
height: 1em; height: 1em;

@ -186,7 +186,8 @@
</template> </template>
<script> <script>
import { dataStatisticsListApi, dataStatisticsTeamDetailApi, getMemberGroupApi } from '../../../../api/userinfo' import { getMemberGroupApi, dataStatisticsTeamDetailApi, dataStatisticsListApi } from '../../../../api/merchantConfig'
import moment from 'moment' import moment from 'moment'
import { getDateYMD, formatDateYMD, formatDateYMDHM, getUserApplyOrderStatusById, toFixed, tableWidth, fullCopy } from '../../../../utils/commonUtil' import { getDateYMD, formatDateYMD, formatDateYMDHM, getUserApplyOrderStatusById, toFixed, tableWidth, fullCopy } from '../../../../utils/commonUtil'
const rowSelection = { const rowSelection = {
@ -270,7 +271,6 @@ export default {
groupDataList: [], groupDataList: [],
totalGroupNum: 0, totalGroupNum: 0,
currentGroup: {}, currentGroup: {},
} }
}, },
// //
@ -377,6 +377,30 @@ export default {
ellipsis: true, ellipsis: true,
width: 120, width: 120,
}, },
{
title: '背包指数',
dataIndex: 'finshedGPA',
key: 'finshedGPA',
customRender: (text, row, index) => {
return '*'
},
sorter: (a, b) => a.finshedGPA - b.finshedGPA,
scopedSlots: { customRender: 'finshedGPA' },
ellipsis: true,
width: 120,
},
{
title: '漏斗指数',
dataIndex: 'funnel',
key: 'funnel',
// customRender: (text, row, index) => {
// return toFixed(text)
// },
sorter: (a, b) => a.funnel - b.funnel,
scopedSlots: { customRender: 'funnel' },
ellipsis: true,
width: 120,
},
] ]
return columns return columns
}, },
@ -567,10 +591,10 @@ export default {
handler(value) { handler(value) {
let that = this let that = this
console.log(value) console.log(value)
if (value == 'group') { if (value == 'group') {
console.log(this.columns) console.log(this.columns)
that.selectedKeys = ['all']
this.selectGroup('all')
that that
.getDataStatisticsList() .getDataStatisticsList()
.then(() => { .then(() => {
@ -606,9 +630,24 @@ export default {
}, },
ellipsis: true, ellipsis: true,
}) })
this.$forceUpdate()
}) })
} }
} }
that.selectedKeys = ['all']
this.selectGroup('all')
// if (that.contentListSearchForm.start == that.contentListSearchForm.end) {
// console.log(123123)
// that.dataList.sort((a, b) => {
// return b.funnel - a.funnel
// })
// } else {
// console.log(321312)
// that.dataList.sort((a, b) => {
// return b.entryGPA - a.entryGPA
// })
// }
// that.$forceUpdate()
}, },
immediate: true, immediate: true,
// setTimeout(()=>{ // setTimeout(()=>{
@ -741,6 +780,8 @@ export default {
console.log(item) console.log(item)
console.log(index) console.log(index)
}) })
console.log(this.contentListSearchForm.start)
console.log(this.contentListSearchForm.end)
console.log(newList) console.log(newList)
if (this.menuType == 'group') { if (this.menuType == 'group') {
console.log('isgroup') console.log('isgroup')
@ -749,6 +790,15 @@ export default {
console.log('isrole') console.log('isrole')
this.dataList = fullCopy(newList) this.dataList = fullCopy(newList)
} }
if (this.contentListSearchForm.start == this.contentListSearchForm.end) {
this.dataList.sort((a, b) => {
return b.funnel - a.funnel
})
} else {
this.dataList.sort((a, b) => {
return b.entryGPA - a.entryGPA
})
}
this.groupDataList = fullCopy(data.data.list) this.groupDataList = fullCopy(data.data.list)
this.totalDataList = fullCopy(newList) this.totalDataList = fullCopy(newList)
if (this.currentGroup) { if (this.currentGroup) {
@ -791,14 +841,18 @@ export default {
that.checked3 = false that.checked3 = false
that.checked4 = false that.checked4 = false
that.checked5 = false that.checked5 = false
that.checked6 = false
that.checked7 = false
} else { } else {
that.checked0 = true that.checked0 = false
that.checked1 = false that.checked1 = false
that.checked2 = false that.checked2 = false
that.checked3 = false that.checked3 = false
that.checked4 = false that.checked4 = false
that.checked5 = false that.checked5 = false
that.contentListSearchForm.start = moment().add(-7, 'd').format('YYYY-MM-DD') that.checked6 = true
that.checked7 = false
that.contentListSearchForm.start = moment().add(-0, 'd').format('YYYY-MM-DD')
that.contentListSearchForm.end = moment().format('YYYY-MM-DD') that.contentListSearchForm.end = moment().format('YYYY-MM-DD')
} }
@ -956,6 +1010,15 @@ export default {
}) })
} }
}) })
if (this.contentListSearchForm.start == this.contentListSearchForm.end) {
this.dataList.sort((a, b) => {
return b.funnel - a.funnel
})
} else {
this.dataList.sort((a, b) => {
return b.entryGPA - a.entryGPA
})
}
console.log(this.dataList) console.log(this.dataList)
} else { } else {
this.currentGroup = {} this.currentGroup = {}
@ -979,7 +1042,7 @@ table {
.dataStatisticsContainer { .dataStatisticsContainer {
height: 100%; height: 100%;
padding: 16px;
// min-height: 780px; // min-height: 780px;
} }
.contentbody { .contentbody {

@ -24,7 +24,7 @@
:data-source="data" :data-source="data"
:pagination="false" :pagination="false"
@change="onChange" @change="onChange"
:locale="tablenodata"
:rowKey="(record) => record.index" :rowKey="(record) => record.index"
:loading="{ :loading="{
spinning: isspinning, spinning: isspinning,

@ -25,7 +25,7 @@
:pagination="false" :pagination="false"
@change="onChange" @change="onChange"
:rowKey="(record) => record.index" :rowKey="(record) => record.index"
:locale="tablenodata"
:loading="{ :loading="{
spinning: isspinning, spinning: isspinning,
tip: '加载中', tip: '加载中',

@ -36,7 +36,7 @@
<button @click="changepage(1)"></button> <button @click="changepage(1)"></button>
</div> </div>
</div> </div>
<a-table :columns="columns" class="" :data-source="data" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :locale="tablenodata" :rowKey="(record) => record.index"> <a-table :columns="columns" class="" :data-source="data" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :rowKey="(record) => record.index">
<a slot="name" slot-scope="text" style="height:0px">{{ text }}</a> <a slot="name" slot-scope="text" style="height:0px">{{ text }}</a>
<a slot="userDetail" style="color: #ff4400;height:0px" slot-scope="text, text1" @click="toDetail(text1)"></a> <a slot="userDetail" style="color: #ff4400;height:0px" slot-scope="text, text1" @click="toDetail(text1)"></a>
</a-table> </a-table>

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/c/font_3135652_vt5pe6yxuqg.css"; @import "http://at.alicdn.com/t/c/font_3135652_wh8pz6ovidi.css";
// 初始化页面样式 // 初始化页面样式
body, body,
@ -9,7 +9,7 @@ h4,
h5, h5,
h6, h6,
hr, hr,
p, // p,
blockquote, blockquote,
dl, dl,
dt, dt,
@ -122,9 +122,9 @@ body {
// width: 100vw; // width: 100vw;
// text-align: center; // text-align: center;
} }
p { // p {
font-size: 18px; // font-size: 18px;
} // }
i { i {
font-style: normal; font-style: normal;
} }
@ -319,7 +319,10 @@ i {
.pl8 { .pl8 {
padding-left: 8px; padding-left: 8px;
} }
.pl32{
padding-left: 32px !important;
}
.pr8 { .pr8 {
padding-right: 8px; padding-right: 8px;
} }
@ -412,6 +415,9 @@ i {
.f36 { .f36 {
font-size: 36px !important; font-size: 36px !important;
} }
.f64{
font-size: 64px !important;
}
.f320 { .f320 {
font-size: 320px !important; font-size: 320px !important;
} }
@ -506,6 +512,7 @@ i {
// 公用样式类名 // 公用样式类名
.w { .w {
width: 1200px; width: 1200px;
min-width: 1200px;
margin: 0 auto; margin: 0 auto;
} }
.mb12 { .mb12 {

@ -4,9 +4,14 @@
<div class="pagetitle" v-if="isLogin && routertitleindex != 0"> <div class="pagetitle" v-if="isLogin && routertitleindex != 0">
<div class="w fsa"> <div class="w fsa">
<div class="fss"> <div class="fss">
<svg class="svg_icon f36" aria-hidden="true"> <svg class="svg_icon f64" aria-hidden="true">
<use xlink:href="#icon-daotian1" /> <use xlink:href="#icon-daotian2" />
</svg> </svg>
</div>
<span class="login fsa">
<div class="f14 pr16 mr16" style="line-height:1;border-right:1px solid #979797;cursor:pointer">
<!-- <i class="iconfont icon-qiehuan cf4 f12 mr4"></i>切换到公开版 -->
</div>
<div> <div>
<ul class="fsa titleTag"> <ul class="fsa titleTag">
<li> <li>
@ -44,11 +49,6 @@
</li>--> </li>-->
</ul> </ul>
</div> </div>
</div>
<span class="login fsa">
<div class="f14 pr16 mr16" style="line-height:1;border-right:1px solid #979797;cursor:pointer">
<!-- <i class="iconfont icon-qiehuan cf4 f12 mr4"></i>切换到公开版 -->
</div>
<span v-if="isLogin" class="logined"> <span v-if="isLogin" class="logined">
<a-dropdown overlayClassName="logindropdown" placement="bottomRight"> <a-dropdown overlayClassName="logindropdown" placement="bottomRight">
<!-- <img :src="loginValue.imgSrc" alt="" v-if="loginValue.imgSrc !== ''" style="border-radius: 50%" /> <!-- <img :src="loginValue.imgSrc" alt="" v-if="loginValue.imgSrc !== ''" style="border-radius: 50%" />
@ -56,7 +56,7 @@
<span class="fsa"> <span class="fsa">
<span class="iconfont icon-morentouxiang mr4 f32" v-if="!userbaseInfo.imgSrc"></span> <span class="iconfont icon-morentouxiang mr4 f32" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:32px;height:32px;" alt v-else /> <img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:32px;height:32px;" alt v-else />
<div class="ml4">{{ userbaseInfo.userName }}</div> <div class="ml4 f16 c6">{{ userbaseInfo.userName || '-' }}</div>
</span> </span>
<div class="loginbox" slot="overlay"> <div class="loginbox" slot="overlay">
<!-- <div> <!-- <div>
@ -126,27 +126,19 @@
</svg> </svg>
<!-- </div> --> <!-- </div> -->
<div v-if="!isLogin"> <div v-if="!isLogin">
<router-link to="/list" style="display: inline-block; width: 100%">登录</router-link> <router-link to="/list" style="display: inline-block; width: 100%">注册/登录</router-link>
</div>
<div v-else>
<router-link to="/list" style="display: inline-block; width: 100%">进入稻田</router-link>
</div> </div>
<span v-else class="logined"> <!-- <span class="logined">
<a-dropdown overlayClassName="logindropdown" placement="bottomRight"> <a-dropdown overlayClassName="logindropdown" placement="bottomRight">
<!-- <img :src="loginValue.imgSrc" alt="" v-if="loginValue.imgSrc !== ''" style="border-radius: 50%" />
<span v-else><i class="iconfont icon-morentouxiang" style="color:#ff4400"></i></span>-->
<span class="fsa f14 cf shadow"> <span class="fsa f14 cf shadow">
<span class="iconfont icon-morentouxiang mr4 f32" v-if="!userbaseInfo.imgSrc"></span> <span class="iconfont icon-morentouxiang mr4 f32" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:32px;height:32px;" alt v-else /> <img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:32px;height:32px;" alt v-else />
<span class="ml4">{{ userbaseInfo.userName }}</span> <span class="ml4">{{ userbaseInfo.userName }}</span>
</span> </span>
<div class="loginbox" slot="overlay"> <div class="loginbox" slot="overlay">
<!-- <div>
<img :src="loginValue.imgSrc" alt v-if="loginValue.imgSrc !== ''" style="border-radius: 50%" />
<span v-else class="iconfont icon-morentouxiang avatar"></span>
<span class="username">
{{
loginValue.userName || loginValue.nickName || loginValue.tel
}}
</span>
</div> -->
<router-link to="/accountsetting"> <router-link to="/accountsetting">
<div> <div>
<span> <span>
@ -163,18 +155,10 @@
<i class="iconfont icon-youjiantou"></i> <i class="iconfont icon-youjiantou"></i>
</div> </div>
</router-link> </router-link>
<!-- <router-link to="/accountsetting"
><div>
<span
><i class="iconfont icon-zhanghaoshezhi"></i
>账号设置</span
><i class="iconfont icon-youjiantou"></i>
</div>
</router-link>-->
<button @click="logout">退</button> <button @click="logout">退</button>
</div> </div>
</a-dropdown> </a-dropdown>
</span> </span>-->
</div> </div>
<!-- 搜索栏 --> <!-- 搜索栏 -->
@ -634,6 +618,7 @@ export default {
.titleSlogan { .titleSlogan {
position: absolute; position: absolute;
left: 50%; left: 50%;
top: -6px;
// padding-top: 32px; // padding-top: 32px;
transform: translateX(-50%); transform: translateX(-50%);
z-index: 9; z-index: 9;
@ -641,10 +626,11 @@ export default {
font-size: 120px; font-size: 120px;
} }
div { div {
width: 68px; // width: 68px;
height: 26px; height: 32px;
padding: 0 16px;
font-size: 14px; font-size: 14px;
line-height: 24px; line-height: 30px;
text-align: center; text-align: center;
border-radius: 999px; border-radius: 999px;
cursor: pointer; cursor: pointer;
@ -663,7 +649,7 @@ export default {
/deep/ .pagetitle { /deep/ .pagetitle {
background-color: #f0f0f0; background-color: #f0f0f0;
padding: 0; padding: 0;
height: 48px; height: 64px;
display: flex; display: flex;
align-items: center; align-items: center;
// height: 32px; // height: 32px;
@ -671,7 +657,8 @@ export default {
// font-size: 16px; // font-size: 16px;
.titleactive { .titleactive {
// font-size: 18px; // font-size: 18px;
font-weight: normal; font-weight: bold;
// font-weight: normal;
color: #ff4400; color: #ff4400;
} }
.w { .w {
@ -681,14 +668,14 @@ export default {
// line-height: 36px; // line-height: 36px;
.titleTag { .titleTag {
font-size: 14px; font-size: 16px;
display: flex; display: flex;
margin-left: 150px; margin-left: 150px;
li { li {
font-weight: 400; font-weight: normal;
color: #333; color: #666;
margin-right: 24px; margin-right: 32px;
line-height: 48px; line-height: 64px;
// text-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.05); // text-shadow: 2px 2px 4px 0px rgba(0, 0, 0, 0.05);
a { a {

@ -1,36 +1,34 @@
<template> <template>
<div class> <div class>
<div> <a-layout id="components-layout-demo-responsive">
<div class="topmenu" style="display: flex;justify-content: space-between;background-color: #fff; box-shadow: 1px 1px 2px #e8e8e8; position: fixed; top: 0; z-index: 100"> <a-layout-sider :width="pLeft" breakpoint="lg" :collapsedWidth="collapsedWidth" @breakpoint="onBreakpoint" :trigger="collapsed ? 'null' : ''" v-model="collapsed" class="leftMenu ant-layout-sider-has-trigger" style="z-index: 100">
<div style> <div class="logo" style="box-shadow: none;margin-left: -8px">
<div class="logo" style="box-shadow: none; min-width: 160px; max-width: 160px; margin-left: -8px"> <div @click.stop="clearOpenkey" style="cursor: pointer;">
<div @click.stop="clearOpenkey" style="cursor: pointer; border-right: 1px solid #eee;">
<router-link to="/main"> <router-link to="/main">
<!-- <img src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/daotianLogo.svg" alt /> --> <!-- <img src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/daotianLogo.svg" alt /> -->
<svg class="svg_icon f24" aria-hidden="true"> <svg class="svg_icon f24" aria-hidden="true" :class="collapsed ? 'ml4' : ''">
<use xlink:href="#icon-bocai1" /> <use xlink:href="#icon-bocai1" />
</svg> </svg>
<!-- <router-link :to="{name:'home'}"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/antd/adminLogo.svg" alt=""> --> <!-- <router-link :to="{name:'home'}"><img src="http://matripeweb.oss-cn-hangzhou.aliyuncs.com/antd/adminLogo.svg" alt=""> -->
<h1>稻田商家后台</h1> <h1 v-if="!collapsed" style>稻田商家后台</h1>
<!-- style="position: relative;top: -1px;" --> <!-- style="position: relative;top: -1px;" -->
</router-link> </router-link>
</div> </div>
</div> </div>
<a-menu :selectedKeys="[$route.name]" :openKeys.sync="openKeys" @click="handleClick" class mode="inline" style="overflow-y:scroll;height:calc(100vh - 49px);overflow-x:hidden"> <a-menu :selectedKeys="[$route.name]" :openKeys.sync="openKeys" @click="handleClick" class mode="inline" style="overflow-y:scroll;height:calc(100vh - 49px);overflow-x:hidden">
<template v-for="(item, index) in roles"> <template v-for="(item, index) in roles">
<a-menu-item :key="item.name" v-if="item.path != '' && item.level < 3"> <a-menu-item :key="item.name" v-if="item.path != '' && item.level < 3">
<router-link :to="{ name: item.name }"> <router-link :to="{ name: item.name }">
<i class="iconfont f12 mr8" :class="item.icon" /> <i class="iconfont f12 mr8" :class="item.icon" />
<a-badge dot v-if="myStatisticRedDot && item.name == 'myStatistic'">
<span class="nav-text" v-text="item.title"></span> <span class="nav-text" v-if="!collapsed" v-text="item.title"></span>
</a-badge>
<span v-else class="nav-text" v-text="item.title"></span>
</router-link> </router-link>
</a-menu-item> </a-menu-item>
<a-sub-menu :key="item.name" v-if="item.path == ''"> <a-sub-menu :key="item.name" v-if="item.path == ''">
<span slot="title"> <span slot="title">
<i class="iconfont f12 mr8" :class="item.icon" /> <i class="iconfont f12 mr8" :class="item.icon" />
<span v-text="item.title"></span> <span v-text="item.title" v-if="!collapsed"></span>
</span> </span>
<a-menu-item-group> <a-menu-item-group>
<a-menu-item class="f14" :key="child.name" v-for="(child, idx) in item.children"> <a-menu-item class="f14" :key="child.name" v-for="(child, idx) in item.children">
@ -41,19 +39,29 @@
</a-sub-menu> </a-sub-menu>
</template> </template>
</a-menu> </a-menu>
<div class="ant-layout-sider-trigger" :style="{ width: pLeft }">
<a-icon v-if="hideIcon" class="trigger" :type="collapsed ? 'menu-unfold' : 'menu-fold'" @click="onTrigger" />
</div> </div>
</a-layout-sider>
<a-layout>
<a-layout-header class="header" :style="{ paddingLeft: pLeft , width:`calc(80% - ${pLeft})`}">
<div class="topmenu" :style="{ width:`calc(100% - ${pLeft})`}" style="display: flex;justify-content: space-between;background-color: #fff; box-shadow: 1px 1px 2px #e8e8e8; position: fixed; top: 0; z-index: 100">
<div class="flex1" style="z-index: 999"> <div class="flex1" style="z-index: 999">
<div class="logined mr24 fsa" style="height:48px;line-height:48px;"> <div class="logined mr24 fsa" style="height:48px;line-height:48px;">
<div class="fl"> <div class="fl">
<span class="f16 ml16 fw500 c085">{{ currentPage }}</span> <span class="f16 ml16 fw500 c085">{{ currentPage }}</span>
</div> </div>
<div class="fsa">
<a-button class="mr20">
<router-link to="/list">职位列表</router-link>
</a-button>
<a-dropdown overlayClassName="logindropdown" placement="bottomRight"> <a-dropdown overlayClassName="logindropdown" placement="bottomRight">
<!-- <img :src="userbaseInfo.imgSrc" alt="" v-if="userbaseInfo.imgSrc !== ''" style="border-radius: 50%" /> <!-- <img :src="userbaseInfo.imgSrc" alt="" v-if="userbaseInfo.imgSrc !== ''" style="border-radius: 50%" />
<span v-else><i class="iconfont icon-morentouxiang" style="color:#ff4400"></i></span>--> <span v-else><i class="iconfont icon-morentouxiang" style="color:#ff4400"></i></span>-->
<span class="fsa f14"> <span class="fsa f14">
<span class="iconfont icon-morentouxiang mr4 f32" v-if="!userbaseInfo.imgSrc"></span> <span class="iconfont icon-morentouxiang mr4 f32" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:32px;height:32px;" alt v-else /> <img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:32px;height:32px;" alt v-else />
<div class="ml4">{{ userbaseInfo.userName }}</div> <div class="ml4">{{ userbaseInfo.aliasName || userbaseInfo.userName}}</div>
</span> </span>
<div class="loginbox backTable" slot="overlay"> <div class="loginbox backTable" slot="overlay">
<router-link to="/accountsetting"> <router-link to="/accountsetting">
@ -78,13 +86,20 @@
</div> </div>
</div> </div>
</div> </div>
<a-layout-content class="trans" style="padding-top: 64px;"> </div>
</a-layout-header>
<a-layout-content class="trans" :style="{ margin: '2px 0 0 0', paddingLeft: pLeft, paddingTop: pTop }">
<!-- <div id="littleUse" style="margin-top: 48px"> --> <!-- <div id="littleUse" style="margin-top: 48px"> -->
<router-view @setTitle="setTitle"></router-view> <router-view @setTitle="setTitle"></router-view>
<!-- </div> --> <!-- </div> -->
</a-layout-content> </a-layout-content>
<a-layout-footer :style="{ marginLeft: pLeft }" class="tac" style="textalign: center">
<div class="backFooter" style="height: 64px;background-color: #f5f5f5;line-height: 64px;color: #999;font-size: 14px;text-align: center;padding-left: 152px;">Copyright © 2015 - 2021 Matripe. All Rights Reserved.</div> <span class="c025">Copyright © 2015 - 2021 Matripe. All Rights Reserved.</span>
</a-layout-footer>
</a-layout>
</a-layout>
<div>
<!-- <div class="backFooter" style="height: 64px;background-color: #f5f5f5;line-height: 64px;color: #999;font-size: 14px;text-align: center;padding-left: 152px;">Copyright © 2015 - 2021 Matripe. All Rights Reserved.</div> -->
</div> </div>
<!-- <notice @parentPageCallBack="showMessageFromChild" ref="child"></notice> --> <!-- <notice @parentPageCallBack="showMessageFromChild" ref="child"></notice> -->
</div> </div>
@ -114,7 +129,7 @@ export default {
icon: 'icon-houtaishouye', icon: 'icon-houtaishouye',
component: '', component: '',
path: 'HomePage', path: 'HomePage',
title: '后台首页', title: '后台首页-',
menuName: 'HomePage', menuName: 'HomePage',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -127,7 +142,7 @@ export default {
icon: 'icon-zhiweiguanli', icon: 'icon-zhiweiguanli',
component: '', component: '',
path: '', path: '',
title: '职位管理', title: '职位管理-',
menuName: 'dashboard', menuName: 'dashboard',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -140,7 +155,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '职位列表', title: '职位列表-',
menuName: '职位列表', menuName: '职位列表',
}, },
{ {
@ -151,7 +166,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '佣金配置', title: '佣金配置-',
menuName: '佣金配置', menuName: '佣金配置',
}, },
], ],
@ -164,7 +179,7 @@ export default {
icon: 'icon-laoxiangguanli', icon: 'icon-laoxiangguanli',
component: '', component: '',
path: '', path: '',
title: '老乡管理', title: '老乡管理-',
menuName: 'TownsmanManagement', menuName: 'TownsmanManagement',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -177,7 +192,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '老乡列表', title: '老乡列表-',
menuName: '老乡列表', menuName: '老乡列表',
}, },
], ],
@ -190,7 +205,7 @@ export default {
icon: 'icon-dailiguanli', icon: 'icon-dailiguanli',
component: '', component: '',
path: '', path: '',
title: '代理管理', title: '代理管理-',
menuName: 'AgencyManagement', menuName: 'AgencyManagement',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -203,7 +218,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '代理列表', title: '代理列表-',
menuName: '代理列表', menuName: '代理列表',
}, },
], ],
@ -258,7 +273,7 @@ export default {
icon: '', icon: '',
component: 'home', component: 'home',
path: '/home', path: '/home',
title: '通讯录', title: '通讯录-',
menuName: '通讯录', menuName: '通讯录',
level: 2, level: 2,
menuType: 1, menuType: 1,
@ -312,7 +327,7 @@ export default {
icon: 'icon-gongdanguanli', icon: 'icon-gongdanguanli',
component: '', component: '',
path: '', path: '',
title: '工单管理', title: '工单管理-',
menuName: 'OrderManagement', menuName: 'OrderManagement',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -325,7 +340,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '工单列表', title: '工单列表-',
menuName: '工单列表', menuName: '工单列表',
}, },
], ],
@ -338,7 +353,7 @@ export default {
icon: 'icon-zhangdanzhongxin', icon: 'icon-zhangdanzhongxin',
component: '', component: '',
path: '', path: '',
title: '账单中心', title: '账单中心-',
menuName: 'BillCenter', menuName: 'BillCenter',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -351,7 +366,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '我的账单', title: '我的账单-',
menuName: '我的账单', menuName: '我的账单',
}, },
], ],
@ -407,7 +422,7 @@ export default {
icon: 'icon-neirongguanli', icon: 'icon-neirongguanli',
component: '', component: '',
path: '', path: '',
title: '内容管理', title: '内容管理-',
menuName: 'container', menuName: 'container',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -420,7 +435,7 @@ export default {
icon: '', icon: '',
component: 'home', component: 'home',
path: '/home', path: '/home',
title: '通知中心', title: '通知中心-',
menuName: 'container', menuName: 'container',
level: 2, level: 2,
menuType: 1, menuType: 1,
@ -460,7 +475,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '企微配置', title: '企微配置-',
menuName: '企微配置', menuName: '企微配置',
}, },
{ {
@ -471,7 +486,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '导航配置', title: '导航配置-',
menuName: '导航配置', menuName: '导航配置',
}, },
], ],
@ -484,7 +499,7 @@ export default {
icon: 'icon-qiyeshezhi', icon: 'icon-qiyeshezhi',
component: '', component: '',
path: '', path: '',
title: '企业设置', title: '企业设置-',
menuName: 'GlobalConfig', menuName: 'GlobalConfig',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -497,7 +512,7 @@ export default {
icon: 'home', icon: 'home',
component: '', component: '',
path: 'http://www.idaotian.com/box/btv/#/', path: 'http://www.idaotian.com/box/btv/#/',
title: '企业信息', title: '企业信息-',
menuName: '企业信息', menuName: '企业信息',
}, },
], ],
@ -510,7 +525,7 @@ export default {
icon: 'icon-fuwushichang', icon: 'icon-fuwushichang',
component: '', component: '',
path: 'ServiceMarket', path: 'ServiceMarket',
title: '服务市场', title: '服务市场-',
menuName: 'ServiceMarket', menuName: 'ServiceMarket',
level: 1, level: 1,
menuType: 1, menuType: 1,
@ -519,6 +534,11 @@ export default {
openKeys: ['dashboard'], openKeys: ['dashboard'],
userbaseInfo: JSON.parse(localStorage.getItem('LOGIN_DATA')), userbaseInfo: JSON.parse(localStorage.getItem('LOGIN_DATA')),
currentPage: '', currentPage: '',
pLeft: '200px',
pTop: '47px',
collapsedWidth: 48,
collapsed: false,
hideIcon: true,
} }
}, },
// //
@ -547,18 +567,38 @@ export default {
} }
}) })
this.openKeys = _openKey this.openKeys = _openKey
// if (this.$route.meta.menuName != '' && this.$route.meta.menuName != undefined && this.$route.meta.menuName != null) {
// var _openKey = []
// if (this.$route.meta.menuName != this.$route.name) {
// //
// _openKey.push(this.$route.meta.menuName, this.$route.name)
// } else {
// _openKey.push(this.$route.name)
// }
// }
}, },
// //
methods: { methods: {
onTrigger(a) {
this.collapsed = !this.collapsed
if (this.collapsed) {
this.pLeft = '48px'
} else {
this.pLeft = '200px'
}
},
onBreakpoint(broken) {
// console.log(broken + "=======");
// debugger;
if (broken) {
this.pLeft = '48px'
} else {
this.pLeft = '200px'
}
},
onCollapse(collapsed, type) {
if (collapsed || type == 'clickTrigger') {
this.hideIcon = false
this.collapsedWidth = 0
this.pLeft = 0
} else {
this.hideIcon = true
this.collapsedWidth = 48
// this.pLeft = '80px'
}
},
handleClick(e) { handleClick(e) {
console.log(e) console.log(e)
this.openKeys = e.keyPath this.openKeys = e.keyPath
@ -606,7 +646,7 @@ body {
} }
.ant-menu { .ant-menu {
border-right: 1px solid #eee !important; // border-right: 1px solid #eee !important;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 0 !important; width: 0 !important;
} }
@ -628,11 +668,11 @@ header.header,
overflow: auto; overflow: auto;
background-color: #f5f5f5; background-color: #f5f5f5;
transition: all 0.2s; transition: all 0.2s;
padding: 18px; // padding: 18px;
padding-right: 36px; // padding-right: 36px;
padding-bottom: 0; // padding-bottom: 0;
// padding-right: 32px; // padding-right: 32px;
margin-left: 152px !important; // margin-left: 192px !important;
} }
.header { .header {
@ -767,7 +807,6 @@ header.header,
color: unset; color: unset;
} }
.topmenu { .topmenu {
width: 100%;
height: 48px; height: 48px;
} }
@ -821,4 +860,54 @@ header.header,
position: unset; position: unset;
// bottom: 0; // bottom: 0;
} }
/deep/.ant-breadcrumb {
.ant-breadcrumb-link {
a:hover {
color: unset !important;
}
}
}
.ant-layout-sider-trigger {
color: rgba(0, 0, 0, 0.65);
background: #fff;
border-top: 1px solid #f0f0f0;
border-right: 1px solid #e0e0e0;
text-align: left;
.trigger {
font-size: 18px;
line-height: 48px;
padding: 0 24px;
cursor: pointer;
transition: color 0.3s;
padding-left: 16px;
}
.trigger:hover,
.c1890 {
color: #1890ff;
}
}
.leftMenu {
height: 100vh;
background: #fff;
/*box-shadow: 1px 1px 2px #ddd;*/
position: fixed;
left: 0;
z-index: 2;
border-right: 1px solid #e8e8e8;
}
.ant-menu-inline-collapsed {
width: 48px;
> .ant-menu-item {
padding: 0 16px !important;
}
> .ant-menu-submenu {
> .ant-menu-submenu-title {
}
}
}
/deep/.ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
padding: 0 16px !important;
}
</style> </style>

Loading…
Cancel
Save