cyl/dev
wangxia 3 years ago
parent 95be04ffaa
commit fdb532b811

@ -1 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>伯才稻田-伯才旗下稻田平台</title><link href="static/css/chunk-0aa5b0ca.74f59567.css" rel="prefetch"><link href="static/css/chunk-0ea2ab00.8b1f06db.css" rel="prefetch"><link href="static/css/chunk-13cd245e.29775961.css" rel="prefetch"><link href="static/css/chunk-1d1d17e7.edec9d04.css" rel="prefetch"><link href="static/css/chunk-1d599a2a.3d71b249.css" rel="prefetch"><link href="static/css/chunk-29cca858.951c1bff.css" rel="prefetch"><link href="static/css/chunk-32c41a00.e8e31e06.css" rel="prefetch"><link href="static/css/chunk-36b0a845.56fd6900.css" rel="prefetch"><link href="static/css/chunk-40d15c02.c522181b.css" rel="prefetch"><link href="static/css/chunk-439db3e2.9b01ecf0.css" rel="prefetch"><link href="static/css/chunk-477bd078.b8e36482.css" rel="prefetch"><link href="static/css/chunk-54c3cd98.ca9a94de.css" rel="prefetch"><link href="static/css/chunk-5877e555.bc7b5c19.css" rel="prefetch"><link href="static/css/chunk-599d1dda.b72b246e.css" rel="prefetch"><link href="static/css/chunk-5aaf61e3.5273e98e.css" rel="prefetch"><link href="static/css/chunk-645c2901.ae0cbf6d.css" rel="prefetch"><link href="static/css/chunk-649a250c.659ed4be.css" rel="prefetch"><link href="static/css/chunk-69f0e2dc.897b1f1b.css" rel="prefetch"><link href="static/css/chunk-70c02cdb.4e0dc5f1.css" rel="prefetch"><link href="static/css/chunk-7459f4bd.026fbb69.css" rel="prefetch"><link href="static/css/chunk-76f782a4.01ba77f1.css" rel="prefetch"><link href="static/css/chunk-7d9f088a.46a7d4cd.css" rel="prefetch"><link href="static/css/chunk-8475193c.624c9a62.css" rel="prefetch"><link href="static/css/chunk-9e43482c.daa964b4.css" rel="prefetch"><link href="static/css/chunk-ae50421c.b8eb6814.css" rel="prefetch"><link href="static/css/chunk-e76babb0.9fd8b6bf.css" rel="prefetch"><link href="static/css/chunk-ef2dcf9c.81111d96.css" rel="prefetch"><link href="static/js/chunk-0328be37.9da08e84.js" rel="prefetch"><link href="static/js/chunk-0aa5b0ca.46ebc9c2.js" rel="prefetch"><link href="static/js/chunk-0ea2ab00.eec7ca43.js" rel="prefetch"><link href="static/js/chunk-13cd245e.1a48a31a.js" rel="prefetch"><link href="static/js/chunk-19006edb.cd1f6178.js" rel="prefetch"><link href="static/js/chunk-1d1d17e7.f9507a40.js" rel="prefetch"><link href="static/js/chunk-1d599a2a.8fdfb601.js" rel="prefetch"><link href="static/js/chunk-29cca858.22b26978.js" rel="prefetch"><link href="static/js/chunk-32c41a00.e60bb99a.js" rel="prefetch"><link href="static/js/chunk-36b0a845.aba8166b.js" rel="prefetch"><link href="static/js/chunk-40d15c02.efb7b26e.js" rel="prefetch"><link href="static/js/chunk-439db3e2.6052aa87.js" rel="prefetch"><link href="static/js/chunk-477bd078.54a1c288.js" rel="prefetch"><link href="static/js/chunk-54c3cd98.b9355da1.js" rel="prefetch"><link href="static/js/chunk-5877e555.6f5d9f9a.js" rel="prefetch"><link href="static/js/chunk-599d1dda.a4db6c22.js" rel="prefetch"><link href="static/js/chunk-5aaf61e3.8042ee48.js" rel="prefetch"><link href="static/js/chunk-645c2901.8d97d16b.js" rel="prefetch"><link href="static/js/chunk-649a250c.3ae7df3f.js" rel="prefetch"><link href="static/js/chunk-69f0e2dc.fb0a4d42.js" rel="prefetch"><link href="static/js/chunk-70c02cdb.fbd7778b.js" rel="prefetch"><link href="static/js/chunk-7459f4bd.db907cc2.js" rel="prefetch"><link href="static/js/chunk-76f782a4.86f1067f.js" rel="prefetch"><link href="static/js/chunk-7d9f088a.ae6cd877.js" rel="prefetch"><link href="static/js/chunk-8475193c.84ac0e1c.js" rel="prefetch"><link href="static/js/chunk-9e43482c.b2dacb9f.js" rel="prefetch"><link href="static/js/chunk-ae50421c.8ed5d167.js" rel="prefetch"><link href="static/js/chunk-e76babb0.264e470c.js" rel="prefetch"><link href="static/js/chunk-ef2dcf9c.59fc9ce7.js" rel="prefetch"><link href="static/css/app.879b91da.css" rel="preload" as="style"><link href="static/css/chunk-vendors.09af4a6b.css" rel="preload" as="style"><link href="static/js/app.959e96c2.js" rel="preload" as="script"><link href="static/js/chunk-vendors.955b40ed.js" rel="preload" as="script"><link href="static/css/chunk-vendors.09af4a6b.css" rel="stylesheet"><link href="static/css/app.879b91da.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but firstbill doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.955b40ed.js"></script><script src="static/js/app.959e96c2.js"></script></body></html>
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>稻田-伯才人力资源供应链平台</title><link href="static/css/chunk-0aa5b0ca.74f59567.css" rel="prefetch"><link href="static/css/chunk-0ea2ab00.8b1f06db.css" rel="prefetch"><link href="static/css/chunk-13cd245e.29775961.css" rel="prefetch"><link href="static/css/chunk-1d1d17e7.edec9d04.css" rel="prefetch"><link href="static/css/chunk-1d599a2a.3d71b249.css" rel="prefetch"><link href="static/css/chunk-29cca858.951c1bff.css" rel="prefetch"><link href="static/css/chunk-32c41a00.e8e31e06.css" rel="prefetch"><link href="static/css/chunk-36b0a845.56fd6900.css" rel="prefetch"><link href="static/css/chunk-40d15c02.c522181b.css" rel="prefetch"><link href="static/css/chunk-439db3e2.9b01ecf0.css" rel="prefetch"><link href="static/css/chunk-477bd078.b8e36482.css" rel="prefetch"><link href="static/css/chunk-54c3cd98.ca9a94de.css" rel="prefetch"><link href="static/css/chunk-5877e555.bc7b5c19.css" rel="prefetch"><link href="static/css/chunk-599d1dda.b72b246e.css" rel="prefetch"><link href="static/css/chunk-5aaf61e3.5273e98e.css" rel="prefetch"><link href="static/css/chunk-645c2901.ae0cbf6d.css" rel="prefetch"><link href="static/css/chunk-649a250c.659ed4be.css" rel="prefetch"><link href="static/css/chunk-69f0e2dc.897b1f1b.css" rel="prefetch"><link href="static/css/chunk-70c02cdb.4e0dc5f1.css" rel="prefetch"><link href="static/css/chunk-7459f4bd.026fbb69.css" rel="prefetch"><link href="static/css/chunk-76f782a4.01ba77f1.css" rel="prefetch"><link href="static/css/chunk-7d9f088a.46a7d4cd.css" rel="prefetch"><link href="static/css/chunk-8475193c.624c9a62.css" rel="prefetch"><link href="static/css/chunk-9e43482c.daa964b4.css" rel="prefetch"><link href="static/css/chunk-ae50421c.b8eb6814.css" rel="prefetch"><link href="static/css/chunk-e76babb0.9fd8b6bf.css" rel="prefetch"><link href="static/css/chunk-ef2dcf9c.81111d96.css" rel="prefetch"><link href="static/js/chunk-0328be37.9da08e84.js" rel="prefetch"><link href="static/js/chunk-0aa5b0ca.46ebc9c2.js" rel="prefetch"><link href="static/js/chunk-0ea2ab00.eec7ca43.js" rel="prefetch"><link href="static/js/chunk-13cd245e.1a48a31a.js" rel="prefetch"><link href="static/js/chunk-19006edb.cd1f6178.js" rel="prefetch"><link href="static/js/chunk-1d1d17e7.f9507a40.js" rel="prefetch"><link href="static/js/chunk-1d599a2a.8fdfb601.js" rel="prefetch"><link href="static/js/chunk-29cca858.22b26978.js" rel="prefetch"><link href="static/js/chunk-32c41a00.e60bb99a.js" rel="prefetch"><link href="static/js/chunk-36b0a845.aba8166b.js" rel="prefetch"><link href="static/js/chunk-40d15c02.efb7b26e.js" rel="prefetch"><link href="static/js/chunk-439db3e2.6052aa87.js" rel="prefetch"><link href="static/js/chunk-477bd078.54a1c288.js" rel="prefetch"><link href="static/js/chunk-54c3cd98.b9355da1.js" rel="prefetch"><link href="static/js/chunk-5877e555.6f5d9f9a.js" rel="prefetch"><link href="static/js/chunk-599d1dda.a4db6c22.js" rel="prefetch"><link href="static/js/chunk-5aaf61e3.8042ee48.js" rel="prefetch"><link href="static/js/chunk-645c2901.8d97d16b.js" rel="prefetch"><link href="static/js/chunk-649a250c.3ae7df3f.js" rel="prefetch"><link href="static/js/chunk-69f0e2dc.fb0a4d42.js" rel="prefetch"><link href="static/js/chunk-70c02cdb.fbd7778b.js" rel="prefetch"><link href="static/js/chunk-7459f4bd.db907cc2.js" rel="prefetch"><link href="static/js/chunk-76f782a4.86f1067f.js" rel="prefetch"><link href="static/js/chunk-7d9f088a.ae6cd877.js" rel="prefetch"><link href="static/js/chunk-8475193c.84ac0e1c.js" rel="prefetch"><link href="static/js/chunk-9e43482c.b2dacb9f.js" rel="prefetch"><link href="static/js/chunk-ae50421c.8ed5d167.js" rel="prefetch"><link href="static/js/chunk-e76babb0.264e470c.js" rel="prefetch"><link href="static/js/chunk-ef2dcf9c.59fc9ce7.js" rel="prefetch"><link href="static/css/app.879b91da.css" rel="preload" as="style"><link href="static/css/chunk-vendors.09af4a6b.css" rel="preload" as="style"><link href="static/js/app.959e96c2.js" rel="preload" as="script"><link href="static/js/chunk-vendors.955b40ed.js" rel="preload" as="script"><link href="static/css/chunk-vendors.09af4a6b.css" rel="stylesheet"><link href="static/css/app.879b91da.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but firstbill doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.955b40ed.js"></script><script src="static/js/app.959e96c2.js"></script></body></html>

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
<title>伯才稻田-伯才旗下稻田平台</title>
<title>稻田-伯才人力资源供应链平台</title>
</head>
<body>
<noscript>

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

@ -1,32 +1,32 @@
import request from "../utils/request";
import qs from "qs";
let setqs = function (data) {
return qs.stringify(data);
return qs.stringify(data);
};
// 获取卡券信息
export function userCardApi(data) {
return request({
url: "/yishoudan/usercoupon/list",
// method: "post",
data: data,
});
export function userCardApi (data) {
return request({
url: "/yishoudan/usercoupon/list",
// method: "post",
data: data,
});
}
// 获取用户余额信息
export function userBalanceApi(data) {
return request({
url: "/yishoudan/wallet/info",
// method: "post",
data: data,
});
export function userBalanceApi (data) {
return request({
url: "/yishoudan/wallet/info",
// method: "post",
data: data,
});
}
// 获取用户提现详情
export function userDetailApi(data) {
return request({
url: "/yishoudan/wallet/withdrawal/list",
// method: "post",
data: data,
});
export function userDetailApi (data) {
return request({
url: "/yishoudan/wallet/withdrawal/list",
// method: "post",
data: data,
});
}
// // 获取我的老乡信息
// export function userTownsmanApi(data) {
@ -37,195 +37,234 @@ export function userDetailApi(data) {
// });
// }
// 获取我的报名信息
export function userBillApi(data) {
return request({
url: "/yishoudan/user/apply/order/list",
method: "post",
data: setqs(data),
});
export function userBillApi (data) {
return request({
url: "/yishoudan/user/apply/order/list",
method: "post",
data: setqs(data),
});
}
// 获取我的报名状态数量
export function userBillNumberApi(data) {
return request({
url: "/yishoudan/user/apply/order/listStatisticsNum",
// method: "post",
data: data,
});
export function userBillNumberApi (data) {
return request({
url: "/yishoudan/user/apply/order/listStatisticsNum",
// method: "post",
data: data,
});
}
// 获取跟进记录详情
export function userBillDetailApi(data) {
return request({
url: "/yishoudan/user/apply/order/details?orderId=" + data,
// method: "post",
});
export function userBillDetailApi (data) {
return request({
url: "/yishoudan/user/apply/order/details?orderId=" + data,
// method: "post",
});
}
// 获取用户信息
export function userBaseInfoApi(data) {
return request({
url: "/yishoudan/user/getUserInfo",
// method: "post",
data: data,
});
export function userBaseInfoApi (data) {
return request({
url: "/yishoudan/user/getUserInfo",
// method: "post",
data: data,
});
}
// 获取用户积分信息
export function getPointApi(data) {
return request({
url: "/yishoudan/wallet/getPoint",
// method: "post",
data: data,
});
export function getPointApi (data) {
return request({
url: "/yishoudan/wallet/getPoint",
// method: "post",
data: data,
});
}
// 获取用户积分使用信息
export function getPointDetailApi(data) {
return request({
url: "/yishoudan/pointUseRecord/list",
// method: "post",
data: data,
});
export function getPointDetailApi (data) {
return request({
url: "/yishoudan/pointUseRecord/list",
// method: "post",
data: data,
});
}
// 登录状态账号设置修改密码
export function setUserPswApi(data) {
return request({
url: "/yishoudan/changePassword",
method: "post",
data: setqs(data),
});
export function setUserPswApi (data) {
return request({
url: "/yishoudan/changePassword",
method: "post",
data: setqs(data),
});
}
// 登录状态账号修改绑定手机号
export function setUserTelApi(data) {
return request({
url: "/yishoudan/user/changeTel",
// method: "post",
data: setqs(data),
});
export function setUserTelApi (data) {
return request({
url: "/yishoudan/user/changeTel",
// method: "post",
data: setqs(data),
});
}
// 账号修改绑定银行卡
export function getUserBankListApi(data) {
return request({
url: "/yishoudan/user/bank/getUserBankList",
// method: "post",
data: data,
});
export function getUserBankListApi (data) {
return request({
url: "/yishoudan/user/bank/getUserBankList",
// method: "post",
data: data,
});
}
// 实名认证
export function setUserRealNameApi(data) {
return request({
url: "/yishoudan/user/realNameAuth",
// method: "post",
data: data,
});
export function setUserRealNameApi (data) {
return request({
url: "/yishoudan/user/realNameAuth",
// method: "post",
data: data,
});
}
// 获取用户微信绑定的二维码
export function getUserWxApi(data) {
return request({
url: "/yishoudan/user/getMiniAppQrCodeOfBindUser",
// method: "post",
data: data,
});
export function getUserWxApi (data) {
return request({
url: "/yishoudan/user/getMiniAppQrCodeOfBindUser",
// method: "post",
data: data,
});
}
// 上传用户头像
export function uploadUserAvatarApi(data) {
return request({
url: "/yishoudan/user/changeUserImgsrc",
method: "post",
headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
// data,
});
export function uploadUserAvatarApi (data) {
return request({
url: "/yishoudan/user/changeUserImgsrc",
method: "post",
headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
// data,
});
}
// 获取我的老乡
export function userTownsmanApi(data) {
return request({
url: "/yishoudan/agency/user/list",
method: "post",
data: setqs(data),
// data,
});
export function userTownsmanApi (data) {
return request({
url: "/yishoudan/agency/user/list",
method: "post",
data: setqs(data),
// data,
});
}
// 获取点击的老乡详情
export function townsmanDetailApi(data) {
return request({
url: "/yishoudan/agency/user/details/" + data,
// data,
});
export function townsmanDetailApi (data) {
return request({
url: "/yishoudan/agency/user/details/" + data,
// data,
});
}
// 获取点击的老乡图片
export function townsmanDetailImgsApi(data) {
return request({
url: "/imgs/list/" + data + "?type=20",
// data,
});
export function townsmanDetailImgsApi (data) {
return request({
url: "/imgs/list/" + data + "?type=20",
// data,
});
}
// 删除图片
export function delTowmsmanDetailImgApi(data) {
return request({
url: "/imgs/del/" + data,
});
export function delTowmsmanDetailImgApi (data) {
return request({
url: "/imgs/del/" + data,
});
}
// 提交老乡的信息
export function updateTownsmanInfoApi(data) {
return request({
url: "/user/updateInfo",
method: "post",
data: setqs(data),
});
export function updateTownsmanInfoApi (data) {
return request({
url: "/user/updateInfo",
method: "post",
data: setqs(data),
});
}
// 我的老乡各个状态统计
export function gettownsManCountApi(data) {
return request({
url: "/yishoudan/agency/user/listStatistics",
method: "post",
data: setqs(data),
});
export function gettownsManCountApi (data) {
return request({
url: "/yishoudan/agency/user/listStatistics",
method: "post",
data: setqs(data),
});
}
// 成员管理:获取成员列表
export function getMemberListApi(data) {
return request({
url: "/yishoudan/user/getAgencyCorpUsers",
method: "post",
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 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 addMemberApi (data) {
return request({
url: "/yishoudan/user/addAgencyUser",
method: "post",
data: setqs(data),
});
}
// 数据统计列表获取
export function dataStatisticsListApi(data) {
return request({
url: "/yishoudan/statistics/agency/team",
method: "post",
// headers: { "Content-Type": "multipart/form-data" },
data: setqs(data),
// data,
});
export function dataStatisticsListApiold (data) {
return request({
url: "/yishoudan/statistics/agency/team",
method: "post",
// headers: { "Content-Type": "multipart/form-data" },
data: setqs(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),
// 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 () {
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",
});
}

@ -1,539 +0,0 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path stroke viewBox IE
normalize.css */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

@ -1,223 +0,0 @@
@font-face {
font-family: "iconfont"; /* Project id 3135652 */
src: url('iconfont.woff2?t=1647498206321') format('woff2'),
url('iconfont.woff?t=1647498206321') format('woff'),
url('iconfont.ttf?t=1647498206321') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-sousuoxiala:before {
content: "\e73f";
}
.icon-shenfenzheng:before {
content: "\e740";
}
.icon-xiangzuoxuanzhuan:before {
content: "\e744";
}
.icon-xiangyouxuanzhuan:before {
content: "\e746";
}
.icon-rotatexuanzhuan2:before {
content: "\e6e2";
}
.icon-rotatexuanzhuan:before {
content: "\e6eb";
}
.icon-xuanzhuan:before {
content: "\e652";
}
.icon-zhengjian:before {
content: "\e654";
}
.icon-shangchuan:before {
content: "\e73a";
}
.icon-guanbi1:before {
content: "\e739";
}
.icon-yulan:before {
content: "\e737";
}
.icon-rili:before {
content: "\e736";
}
.icon-dingbulogo:before {
content: "\e71d";
}
.icon-weixin1:before {
content: "\e716";
}
.icon-gerenzhongxin-mima:before {
content: "\e71c";
}
.icon-bangdingyinhangka:before {
content: "\e71b";
}
.icon-gerenzhongxin:before {
content: "\e719";
}
.icon-zhanghaoshezhi:before {
content: "\e71a";
}
.icon-gerenzhongxin-bangdingshouji:before {
content: "\e70c";
}
.icon-shimingrenzheng:before {
content: "\e70d";
}
.icon-gongdan:before {
content: "\e710";
}
.icon-yue:before {
content: "\e711";
}
.icon-laoxiang:before {
content: "\e715";
}
.icon-jifen:before {
content: "\e717";
}
.icon-kaquan:before {
content: "\e718";
}
.icon-youjiantou:before {
content: "\e68c";
}
.icon-zanwukaquan:before {
content: "\e714";
}
.icon-zhengyan:before {
content: "\e712";
}
.icon-biyan:before {
content: "\e713";
}
.icon-zhongguoyinhang:before {
content: "\e70a";
}
.icon-zhongyuanyinhang:before {
content: "\e70b";
}
.icon-nongyeyinhang:before {
content: "\e70f";
}
.icon-guanbi:before {
content: "\e701";
}
.icon-guanbishixin:before {
content: "\e8dc";
}
.icon-morentouxiang:before {
content: "\e700";
}
.icon-touxiang:before {
content: "\e620";
}
.icon-xuanzhong:before {
content: "\e6fe";
}
.icon-weixuanzhong:before {
content: "\e6ff";
}
.icon-yigezhuanmenfuwudailidepingtai2:before {
content: "\e6fa";
}
.icon-yigezhuanmenfuwudailidepingtai:before {
content: "\e6f8";
}
.icon-xiala:before {
content: "\e6f5";
}
.icon-sousuo:before {
content: "\e608";
}
.icon-duanxinyanzheng:before {
content: "\e6f3";
}
.icon-shouji:before {
content: "\e6f2";
}
.icon-mima:before {
content: "\e6f1";
}
.icon-yonghuming:before {
content: "\e6f0";
}
.icon-shibai:before {
content: "\e6ef";
}
.icon-chenggong:before {
content: "\e6ee";
}
.icon-weixin:before {
content: "\e6e9";
}
.icon-sologan:before {
content: "\e6e1";
}
.icon-dingwei:before {
content: "\e6df";
}
.icon-yonghu:before {
content: "\e6e0";
}

File diff suppressed because one or more lines are too long

@ -1,373 +0,0 @@
{
"id": "3135652",
"name": "稻田稻田",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "28284803",
"name": "搜索下拉",
"font_class": "sousuoxiala",
"unicode": "e73f",
"unicode_decimal": 59199
},
{
"icon_id": "28284804",
"name": "身份证",
"font_class": "shenfenzheng",
"unicode": "e740",
"unicode_decimal": 59200
},
{
"icon_id": "19266889",
"name": "向左旋转",
"font_class": "xiangzuoxuanzhuan",
"unicode": "e744",
"unicode_decimal": 59204
},
{
"icon_id": "19266906",
"name": "向右旋转",
"font_class": "xiangyouxuanzhuan",
"unicode": "e746",
"unicode_decimal": 59206
},
{
"icon_id": "20009280",
"name": "rotate旋转2",
"font_class": "rotatexuanzhuan2",
"unicode": "e6e2",
"unicode_decimal": 59106
},
{
"icon_id": "20009323",
"name": "rotate旋转",
"font_class": "rotatexuanzhuan",
"unicode": "e6eb",
"unicode_decimal": 59115
},
{
"icon_id": "22138735",
"name": "旋转",
"font_class": "xuanzhuan",
"unicode": "e652",
"unicode_decimal": 58962
},
{
"icon_id": "4251775",
"name": "证件",
"font_class": "zhengjian",
"unicode": "e654",
"unicode_decimal": 58964
},
{
"icon_id": "28222982",
"name": "上传",
"font_class": "shangchuan",
"unicode": "e73a",
"unicode_decimal": 59194
},
{
"icon_id": "28222939",
"name": "关闭",
"font_class": "guanbi1",
"unicode": "e739",
"unicode_decimal": 59193
},
{
"icon_id": "28222874",
"name": "预览",
"font_class": "yulan",
"unicode": "e737",
"unicode_decimal": 59191
},
{
"icon_id": "28168018",
"name": "日历",
"font_class": "rili",
"unicode": "e736",
"unicode_decimal": 59190
},
{
"icon_id": "27782732",
"name": "顶部logo",
"font_class": "dingbulogo",
"unicode": "e71d",
"unicode_decimal": 59165
},
{
"icon_id": "27550843",
"name": "微信",
"font_class": "weixin1",
"unicode": "e716",
"unicode_decimal": 59158
},
{
"icon_id": "27550809",
"name": "个人中心-密码",
"font_class": "gerenzhongxin-mima",
"unicode": "e71c",
"unicode_decimal": 59164
},
{
"icon_id": "27550599",
"name": "绑定银行卡",
"font_class": "bangdingyinhangka",
"unicode": "e71b",
"unicode_decimal": 59163
},
{
"icon_id": "27550490",
"name": "个人中心",
"font_class": "gerenzhongxin",
"unicode": "e719",
"unicode_decimal": 59161
},
{
"icon_id": "27550375",
"name": "账号设置",
"font_class": "zhanghaoshezhi",
"unicode": "e71a",
"unicode_decimal": 59162
},
{
"icon_id": "27550277",
"name": "个人中心-绑定手机",
"font_class": "gerenzhongxin-bangdingshouji",
"unicode": "e70c",
"unicode_decimal": 59148
},
{
"icon_id": "27550278",
"name": "实名认证",
"font_class": "shimingrenzheng",
"unicode": "e70d",
"unicode_decimal": 59149
},
{
"icon_id": "27550281",
"name": "工单",
"font_class": "gongdan",
"unicode": "e710",
"unicode_decimal": 59152
},
{
"icon_id": "27550282",
"name": "余额",
"font_class": "yue",
"unicode": "e711",
"unicode_decimal": 59153
},
{
"icon_id": "27550283",
"name": "老乡",
"font_class": "laoxiang",
"unicode": "e715",
"unicode_decimal": 59157
},
{
"icon_id": "27550285",
"name": "积分",
"font_class": "jifen",
"unicode": "e717",
"unicode_decimal": 59159
},
{
"icon_id": "27550286",
"name": "卡券",
"font_class": "kaquan",
"unicode": "e718",
"unicode_decimal": 59160
},
{
"icon_id": "12097774",
"name": "右箭头",
"font_class": "youjiantou",
"unicode": "e68c",
"unicode_decimal": 59020
},
{
"icon_id": "27532484",
"name": "暂无卡券",
"font_class": "zanwukaquan",
"unicode": "e714",
"unicode_decimal": 59156
},
{
"icon_id": "27531803",
"name": "睁眼 ",
"font_class": "zhengyan",
"unicode": "e712",
"unicode_decimal": 59154
},
{
"icon_id": "27531804",
"name": "闭眼",
"font_class": "biyan",
"unicode": "e713",
"unicode_decimal": 59155
},
{
"icon_id": "27531567",
"name": "中国银行",
"font_class": "zhongguoyinhang",
"unicode": "e70a",
"unicode_decimal": 59146
},
{
"icon_id": "27531568",
"name": "中原银行",
"font_class": "zhongyuanyinhang",
"unicode": "e70b",
"unicode_decimal": 59147
},
{
"icon_id": "27531572",
"name": "农业银行",
"font_class": "nongyeyinhang",
"unicode": "e70f",
"unicode_decimal": 59151
},
{
"icon_id": "27523084",
"name": "关闭",
"font_class": "guanbi",
"unicode": "e701",
"unicode_decimal": 59137
},
{
"icon_id": "2076434",
"name": "关闭实心",
"font_class": "guanbishixin",
"unicode": "e8dc",
"unicode_decimal": 59612
},
{
"icon_id": "27504455",
"name": "默认头像",
"font_class": "morentouxiang",
"unicode": "e700",
"unicode_decimal": 59136
},
{
"icon_id": "4889788",
"name": "头像",
"font_class": "touxiang",
"unicode": "e620",
"unicode_decimal": 58912
},
{
"icon_id": "27498467",
"name": "选中",
"font_class": "xuanzhong",
"unicode": "e6fe",
"unicode_decimal": 59134
},
{
"icon_id": "27498468",
"name": "未选中",
"font_class": "weixuanzhong",
"unicode": "e6ff",
"unicode_decimal": 59135
},
{
"icon_id": "27445234",
"name": "一个专门服务代理的平台2",
"font_class": "yigezhuanmenfuwudailidepingtai2",
"unicode": "e6fa",
"unicode_decimal": 59130
},
{
"icon_id": "27443739",
"name": "一个专门服务代理的平台",
"font_class": "yigezhuanmenfuwudailidepingtai",
"unicode": "e6f8",
"unicode_decimal": 59128
},
{
"icon_id": "27411236",
"name": "下拉",
"font_class": "xiala",
"unicode": "e6f5",
"unicode_decimal": 59125
},
{
"icon_id": "4550306",
"name": "搜索",
"font_class": "sousuo",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "27386041",
"name": "短信验证",
"font_class": "duanxinyanzheng",
"unicode": "e6f3",
"unicode_decimal": 59123
},
{
"icon_id": "27386034",
"name": "手机",
"font_class": "shouji",
"unicode": "e6f2",
"unicode_decimal": 59122
},
{
"icon_id": "27385998",
"name": "密码",
"font_class": "mima",
"unicode": "e6f1",
"unicode_decimal": 59121
},
{
"icon_id": "27385997",
"name": "用户名",
"font_class": "yonghuming",
"unicode": "e6f0",
"unicode_decimal": 59120
},
{
"icon_id": "27322967",
"name": "失败",
"font_class": "shibai",
"unicode": "e6ef",
"unicode_decimal": 59119
},
{
"icon_id": "27322870",
"name": "成功",
"font_class": "chenggong",
"unicode": "e6ee",
"unicode_decimal": 59118
},
{
"icon_id": "27321723",
"name": "微信 ",
"font_class": "weixin",
"unicode": "e6e9",
"unicode_decimal": 59113
},
{
"icon_id": "27229336",
"name": "sologan",
"font_class": "sologan",
"unicode": "e6e1",
"unicode_decimal": 59105
},
{
"icon_id": "27146284",
"name": "定位",
"font_class": "dingwei",
"unicode": "e6df",
"unicode_decimal": 59103
},
{
"icon_id": "27146285",
"name": "用户",
"font_class": "yonghu",
"unicode": "e6e0",
"unicode_decimal": 59104
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 KiB

@ -8,8 +8,8 @@
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/dtLogo.png" style="width: 64px; text-align: center" alt />
</div>
<ul class="loginchange centerall">
<li :class="{ loginactive: loginway === 1 }" @click="loginway = 1">用户名密码登录</li>
<li :class="{ loginactive: loginway === 2 }" @click="loginway = 2">手机验证码登录</li>
<li :class="{ loginactive: loginway === 1 }" @click="loginway = 1">密码登录</li>
<li :class="{ loginactive: loginway === 2 }" @click="loginway = 2">验证码登录</li>
</ul>
<div class="formbox">
<template v-if="loginway === 1">
@ -53,9 +53,12 @@
<!-- <router-link to="updatepsw" class="login-form-forgot" href>忘记密码</router-link> -->
<div @click="showModal" class="login-form-forgot" style="cursor:pointer">忘记密码</div>
</div>
<a-form-item>
<a-form-item class="mb0">
<a-button type="primary" html-type="submit" class="login-form-button">登录</a-button>
</a-form-item>
<div class="mt16 f12" style="color:#576B95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
<!-- <div class="register">
<router-link to="/register">还没有账号立即注册</router-link>
@ -108,9 +111,12 @@
</span>
<!-- <router-link to="/updatepsw" class="login-form-forgot" href>忘记密码</router-link> -->
</div>
<a-form-item>
<a-form-item class="mb0">
<a-button type="primary" html-type="submit" class="login-form-button">登录</a-button>
</a-form-item>
<div class="mt16 f12" style="color:#576B95">
<router-link to="/main">返回首页</router-link>
</div>
</a-form>
<!-- <div class="register">
@ -308,9 +314,9 @@ export default {
.loginchange {
display: flex;
width: 230px;
justify-content: space-between;
justify-content: space-around;
margin-top: 10px;
font-weight: bold;
.loginactive {
color: #4d575e;
border-bottom: 1px solid #4d575e;

@ -7,18 +7,15 @@
</a-carousel>
<div class="middleslogan" :style="{ opacity: isshow ? '1' : '0' }">
<!-- </i> -->
<i class="iconfont" style="margin-bottom: 20px">
<img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/zzlogo2.png" style="height: 62px; margin-bottom: 20px" alt />
<i class="iconfont icon-a-daotian30logo" style="margin-bottom: 20px;font-size:56px">
<!-- <img src="http://matripe.oss-cn-beijing.aliyuncs.com/bcSVG/zzlogo2.png" style="height: 62px; margin-bottom: 20px" alt /> -->
</i>
<i class="iconfont icon-rangtianxiameiyounanzuodelaowu1"></i>
<!-- <p style="font-size:90px;color:white">一个专门服务代理的平台</p> -->
<div v-if="isLogin">
<div>
<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>
<div id="toAboutBill" style="height: 84px; width: 1200px; position: absolute; bottom: 0;display:none"></div>
</div>
@ -118,7 +115,7 @@
</li>
</ul>-->
<div>
Copyright © 2015 - 2022 Bocai. All Rights Reserved.
Copyright © 2015-2023 Bocai. All Rights Reserved.
<i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index">豫ICP备2023001993号</a>
</div>
@ -234,7 +231,7 @@ export default {
// background: url("../../assets/banner1.png") no-repeat center;
img {
width: 100% !important;
height: calc(100vh - 40px);
height: calc(100vh);
}
.middleslogan {
position: absolute;

@ -0,0 +1,76 @@
<template>
<div class="data_container">
<a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}">
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>数据大屏</a-breadcrumb-item>
</a-breadcrumb>
<div class="bodyContainer">
<a-button class="newScreen">
<a target="_blank" href="http://a.matripe.com.cn/dist/index.html#/statistics/rsAllotOrderDataLargeScreen">新窗口打开</a>
</a-button>
<!-- <div class="pb16 bb1 mb16 f20 fsa">数据大屏</div> -->
<iframe src="http://a.matripe.com.cn/dist/index.html#/statistics/rsAllotOrderDataLargeScreen" frameborder="0" style="width:100%;height:100%"></iframe>
</div>
</div>
</template>
<script>
export default {
//
name: 'dataScreen',
//
components: {},
//
props: {},
//
data() {
return {}
},
//
computed: {},
//
watch: {},
//
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {
this.$emit('setTitle', '数据大屏')
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {},
//
methods: {},
}
</script>
<style scoped lang="less">
.data_container {
height: 100%;
}
.bodyContainer {
padding-top: 64px;
position: relative;
}
.newScreen {
position: absolute;
right: 16px;
top: 12px;
font-size: 14px;
color: #fff;
background-color: #fff;
border: none;
width: 92px;
height: 24px;
background: #1890ff;
border-radius: 4px;
}
</style>

@ -0,0 +1,706 @@
<template>
<div class="accountsetting-container">
<a-modal v-model="visible" title="设置图标" @cancel="modalcancel" on-ok="handleOk">
<div class="container">
<div class="cropper-content">
<div class="cropper-box">
<div class="cropper">
<vue-cropper ref="cropper" :img="option.img" :outputSize="option.outputSize" :outputType="option.outputType" :info="option.info" :canScale="option.canScale" :autoCrop="option.autoCrop" :autoCropWidth="option.autoCropWidth" :autoCropHeight="option.autoCropHeight" :fixed="option.fixed" :fixedNumber="option.fixedNumber" :canMoveBox="option.canMoveBox" :height="option.height" :infoTrue="option.infoTrue" :maxImgSize="option.maxImgSize" :enlarge="option.enlarge" :mode="option.mode" @realTime="realTime"></vue-cropper>
</div>
</div>
<div class="previewcontainer">
<!-- 图标预览框 -->
<p>预览</p>
<div :style="previewStyle3" class="show-preview">
<div :style="previews.div" class="preview">
<img :src="previews.url" :style="previews.img" />
</div>
</div>
<div class="btncontainer">
<!-- <a-button @click="restaricon"></a-button> -->
<a-button @click="changeavatar"></a-button>
<a-button @click="modalcancel"></a-button>
</div>
</div>
</div>
</div>
<template slot="footer">{{ &nbsp; }}</template>
</a-modal>
<div class="accountcontent w">
<div class="accountSetList">
<div class="userinfobox">
<div class="avatarbox">
<i @click="uploadavatar" style="cursor: pointer">
<span class="iconfont icon-morentouxiang" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" alt v-else />
<div class="mask">
<div>修改头像</div>
</div>
</i>
<input type="file" ref="updateicon" @change="filepick($event)" style="display: none" />
</div>
<div class="username" v-if="userinfo.userName">Hi,{{ userinfo.userName }}</div>
<div class="username" v-else>Hi,{{ userinfo.hidetel }}</div>
</div>
<ul>
<li @click="pushto('/merchantManagement/memberInfo')" :class="{ tagactive: activelist === 1 }">
<span>
<i class="iconfont icon-wodetuandui"></i>我的团队
</span>
<span>
<i class="iconfont icon-youjiantou"></i>
</span>
</li>
</ul>
<ul>
<li @click="pushto('/merchantManagement/dataScreen')" :class="{ tagactive: activelist === 3}">
<span>
<i class="iconfont icon-shujudaping"></i>数据大屏
</span>
<span>
<i class="iconfont icon-youjiantou"></i>
</span>
</li>
</ul>
<ul>
<li @click="pushto('/merchantManagement/bocaiTV')" :class="{ tagactive: activelist === 9 }">
<span>
<i class="iconfont icon-tv"></i>伯才TV
</span>
<span>
<i class="iconfont icon-youjiantou"></i>
</span>
</li>
</ul>
</div>
<div class="rightcontent">
<keep-alive :include="['dataScreen']">
<router-view></router-view>
</keep-alive>
</div>
</div>
</div>
</template>
<script>
import {
userBaseInfoApi,
getUserBankListApi,
userBalanceApi,
getPointApi,
// uploadUserAvatarApi,
userCardApi,
} from '../../api/userinfo'
import { VueCropper } from 'vue-cropper'
import request from '@/utils/request'
export default {
inject: ['reload'],
//
name: '',
//
components: {
VueCropper,
},
//
props: {},
//
data() {
return {
userinfo: {}, //
userbalance: '',
userpoint: '',
activelist: '',
userbanklist: [],
cardinfo: {},
visible: false,
previewStyle3: {},
previews: {},
userbaseInfo: JSON.parse(localStorage.getItem('LOGIN_DATA')),
option: {
//
img: '', //
outputSize: 1, // (0.1 - 1)
outputType: 'png', // jpeg || png || webp
info: true, //
canScale: true, //
autoCrop: true, //
autoCropWidth: 150, //
autoCropHeight: 150, //
fixed: true, //
fixedNumber: [1, 1], //
// full: false, // false
// fixedBox: false, //
// canMove: false, //
canMoveBox: true, //
// original: false, //
// centerBox: false, //
height: true, // dpr
infoTrue: true, // truefalse
maxImgSize: 290, //
enlarge: 1, //
mode: 'auto', //
},
}
},
//
computed: {
path() {
return this.$route.fullPath
},
},
//
watch: {
path() {
this.changeactive()
},
},
//
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {
this.getUserInfo()
this.changeactive()
this.getuserbnak()
this.getUserBalanceInfo()
this.getPoint()
this.getcardcount()
console.log(this.userbaseInfo)
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {},
//
methods: {
async getUserInfo() {
try {
const { data } = await userBaseInfoApi()
if (data.status === 200) {
this.userinfo = data.data
console.log(this.userinfo)
const beforetel = this.userinfo.tel.substr(0, 3)
const aftertel = this.userinfo.tel.substr(7, 4)
this.userinfo.hidetel = beforetel + '****' + aftertel
const beforeId = this.userinfo.IDCard.substr(0, 1)
const afterId = this.userinfo.IDCard.substr(17, 1)
this.userinfo.hideId = beforeId + '****************' + afterId
const hidename = this.userinfo.realName.substr(this.userinfo.realName.length - 1, 1)
// this.userinfo.hidename = hidename;
let newstr = ''
for (let i = 0; i < this.userinfo.realName.length - 1; i++) {
newstr += '*'
}
this.userinfo.hidename = newstr + hidename
console.log(aftertel)
console.log(beforetel)
}
console.log(data)
} catch (error) {
console.log(error)
}
},
pushto(url) {
this.$router.push(url)
},
changeactive() {
if (this.path.indexOf('/loginpsw') > -1) {
this.activelist = 0
} else if (this.path.indexOf('/memberInfo') > -1) {
this.activelist = 1
} else if (this.path.indexOf('/boundwx') > -1) {
this.activelist = 2
} else if (this.path.indexOf('/dataScreen') > -1) {
this.activelist = 3
} else if (this.path.indexOf('/realname') > -1) {
this.activelist = 4
} else if (this.path.indexOf('/myintegral') > -1) {
this.activelist = 6
} else if (this.path.indexOf('/mycard') > -1) {
this.activelist = 7
} else if (this.path.indexOf('/mybalance') > -1) {
this.activelist = 8
} else if (this.path.indexOf('/bocaiTV') > -1) {
this.activelist = 9
}
},
async getuserbnak() {
try {
const { data } = await getUserBankListApi()
console.log(data)
this.userbanklist = data.data
this.userbanklist.forEach((ele) => {
ele.newbankNo = ele.bankNo.substr(14, 4)
})
// const newdata = this.userbanklist.bankNo.substr(14, 4);
// console.log(newdata);
} catch (error) {
console.log(error)
}
},
async getUserBalanceInfo() {
try {
const { data } = await userBalanceApi()
this.userbalance = data.data.balance / 100
console.log(data)
console.log(this.userbalance)
} catch (error) {
console.log(error)
}
},
async getPoint() {
try {
const { data } = await getPointApi()
console.log(data)
this.userpoint = data.data.pointTotal
} catch (error) {
console.log(error)
}
},
async getcardcount() {
try {
const { data } = await userCardApi()
console.log(data)
this.cardinfo = data.data
} catch (error) {
console.log(error)
}
},
uploadavatar() {
//
this.$refs.updateicon.click()
},
filepick(e) {
console.log(this.$refs.updateicon)
console.log(e)
const that = this
this.visible = true
const imgFile = new FileReader()
imgFile.readAsDataURL(this.$refs.updateicon.files[0])
imgFile.onload = function () {
that.option.img = this.result
}
// this.option.img = window.URL.createObjectURL(
// this.$refs.updateicon.files[0]
// )
this.filelength = this.$refs.updateicon.files.length
},
realTime(data) {
// data.div.height = "50px";
// data.div.width = "50px";
// data.w = 50;
// data.h = 50;
console.log(data)
var previews = data
var h = 0.5
var w = 0.2
this.previewStyle1 = {
width: previews.w + 'px',
height: previews.h + 'px',
overflow: 'hidden',
margin: '0',
zoom: h,
}
this.previewStyle2 = {
width: previews.w + 'px',
height: previews.h + 'px',
overflow: 'hidden',
margin: '0',
zoom: w,
}
// 100
this.previewStyle3 = {
width: previews.w + 'px',
height: previews.h + 'px',
overflow: 'hidden',
margin: '0',
zoom: 100 / previews.w,
}
// 100
this.previewStyle4 = {
width: previews.w + 'px',
height: previews.h + 'px',
overflow: 'hidden',
margin: '0',
zoom: 100 / previews.h,
}
this.previews = data
},
modalcancel() {
this.visible = false
this.$refs.updateicon.value = ''
this.filelength = this.$refs.updateicon.files.length
// console.log(this.filelength)
},
changeavatar() {
let that = this
this.$refs.cropper.getCropBlob((data) => {
// const that = this;
// do something
// console.log(data)
const imgFile = new FileReader()
imgFile.readAsDataURL(data)
imgFile.onload = function () {
let formData1 = new FormData()
formData1.append('imgName', 'abc.png')
formData1.append('userImg', this.result)
request({
method: 'post',
url: '/yishoudan/user/changeUserImgsrc',
data: formData1,
withCredentials: true,
// headers: {'Content-Type': 'application/x-www-form-urlencoded'}
headers: {
'Content-Type': 'multipart/form-data;boundary = ' + new Date().getTime(),
},
})
.then(({ data }) => {
console.log(data)
console.log()
if (data.status === 200) {
let userinfo = JSON.parse(localStorage.getItem('LOGIN_DATA'))
// userinfo.imgSrc =;
localStorage.setItem('LOGIN_DATA', JSON.stringify({ ...userinfo, imgSrc: data.data.url }))
that.reload()
}
})
.catch((error) => {
console.log(error)
})
console.log(data)
}
this.visible = false
})
// console.log(this.avatarready)
// console.log(this.filelength)
this.AvatarWaringmsgshow = false
},
},
}
</script>
<style scoped lang="less">
.accountcontent {
// height: 1000px;
margin-top: 16px;
// background-color: pink;
display: flex;
.accountSetList {
width: 200px;
// height: 500px;
// background-color: skyblue;
margin-right: 16px;
.userinfobox {
width: 200px;
height: 158px;
background: #ffffff;
border-radius: 0px;
padding: 24px 0;
text-align: center;
border: 1px solid #ededed;
.avatarbox {
margin: 0 auto;
width: 64px;
position: relative;
&:hover {
.mask {
display: block;
}
}
img {
display: block;
width: 64px;
height: 64px;
border-radius: 50%;
}
i {
width: 64px;
height: 64px;
color: #ff4400;
> span {
font-size: 64px;
line-height: 64px;
}
.mask {
position: absolute;
display: none;
width: 64px;
height: 64px;
left: 0;
top: 0;
border-radius: 50%;
background-color: rgba(0, 0, 0, 0.7);
div {
position: relative;
padding: 2px;
width: 40px;
margin-top: 11px !important;
margin-left: 13px !important;
font-size: 14px;
line-height: 19px;
font-weight: bold;
letter-spacing: 2px;
color: rgba(255, 255, 255, 0.8);
top: 0;
right: 0;
left: 0;
bottom: 0;
margin: auto;
}
}
}
}
.username {
margin-top: 18px;
}
}
.priceinfo {
margin-top: 16px;
ul {
// margin-top: 16px;
// padding: 0 16px;
background-color: #fff;
border-radius: 0px;
overflow: hidden;
li {
position: relative;
display: flex;
padding: 16px 16px 16px 16px;
line-height: 24px;
justify-content: space-between;
border-bottom: 1px solid #ededed;
cursor: pointer;
&:nth-child(-n + 2):after {
position: absolute;
content: '';
display: inline-block;
height: 1px;
width: 314px;
bottom: -1px;
left: 16px;
background-color: #f3f4f4;
}
span:first-of-type {
font-size: 16px;
i:first-of-type {
margin-right: 12px;
font-size: 20px;
vertical-align: middle;
}
}
span:last-of-type {
span {
color: #999999;
font-size: 14px;
}
i {
color: #888;
font-size: 22px;
vertical-align: middle;
}
}
&:hover {
// background-color: #ff4400 !important;
color: #ff4400;
span {
span {
color: #ff4400;
}
i {
color: #ff4400;
}
}
i {
color: #ff4400;
}
}
}
}
}
> ul {
background-color: #fff;
margin-top: 16px;
// padding: 0 16px;
border-radius: 0px;
overflow: hidden;
border: 1px solid #ededed;
li {
position: relative;
display: flex;
padding: 16px;
line-height: 24px;
justify-content: space-between;
cursor: pointer;
&:not(:last-child) {
// border-bottom: 1px solid #ededed;
}
&:nth-child(-n + 3):after {
position: absolute;
content: '';
display: inline-block;
height: 1px;
width: 314px;
bottom: -1px;
left: 16px;
background-color: #f3f4f4;
}
> span:first-child {
font-size: 16px;
display: flex;
align-items: center;
i {
margin-right: 12px;
font-size: 20px;
}
}
> span:last-child {
line-height: 22px;
span {
color: #999;
font-size: 14px;
}
> i {
color: #888;
// margin-left: 12px;
vertical-align: middle;
font-size: 22px;
}
}
&:hover {
// background-color: #ff4400 !important;
color: #ff4400;
span {
span {
color: #ff4400;
}
i {
color: #ff4400;
}
}
i {
color: #ff4400;
}
}
}
}
}
.rightcontent {
flex: 1;
min-height: 600px;
padding: 12px 16px;
background-color: #fff;
border: 1px solid #ededed;
}
}
::v-deep .ant-modal-footer {
display: none;
}
::v-deep .ant-modal-header {
height: 48px;
border-bottom: 0px solid #000;
}
::v-deep .ant-modal-title {
font-size: 20px;
font-weight: 400;
text-align: left;
color: #222222;
line-height: 28px;
}
::v-deep .ant-modal-content {
margin-top: 100px;
width: 576px;
height: 409px;
}
::v-deep .vue-cropper {
width: 290px !important;
margin: 0 !important;
}
.cropper-content {
display: flex;
display: -webkit-flex;
justify-content: space-around;
/deep/ .cropper-box {
flex: 1;
width: 100%;
.cropper-view-box,
.cropper-crop-box {
border-radius: 50%;
}
.cropper-crop-box {
.cropper-face {
border-radius: 50%;
}
span:last-child {
// display: none;
span:nth-child(5) {
display: none;
}
span:nth-child(7) {
display: none;
}
span:nth-child(10) {
display: none;
}
span:nth-child(12) {
display: none;
}
}
}
.cropper {
width: auto;
height: 300px;
}
}
.previewcontainer {
text-align: center;
margin-right: 50px !important;
p {
margin-bottom: 20px;
margin-left: -150px;
}
}
.show-preview {
flex: 1;
-webkit-flex: 1;
display: flex;
display: -webkit-flex;
justify-content: center;
border-radius: 50%;
border: 1px solid #666;
.preview {
overflow: hidden;
background: #cccccc;
}
}
}
.btncontainer {
position: absolute;
bottom: 25px;
button {
margin: 9px;
height: 35px;
width: 63px;
}
button:nth-child(1) {
margin-left: -25px;
}
}
</style>

@ -1,44 +1,53 @@
<template>
<div class="townsman-container w">
<!-- <div class="contenttitle">
<ul @click="resetpag">
<li @click="pagination.status = 0" :class="{ townsmanactive: pagination.status === 0 }">
全部<span>{{ statusNum.num0 == 0 ? "" : statusNum.num0 }}</span>
</li>
<li @click="pagination.status = 1" :class="{ townsmanactive: pagination.status === 1 }">
空闲中<span>{{ statusNum.num1 == 0 ? "" : statusNum.num1 }}</span>
</li>
<li @click="pagination.status = 2" :class="{ townsmanactive: pagination.status === 2 }">
报名中<span>{{ statusNum.num2 == 0 ? "" : statusNum.num2 }}</span>
</li>
<li @click="pagination.status = 3" :class="{ townsmanactive: pagination.status === 3 }">
在职中<span>{{ statusNum.num3 == 0 ? "" : statusNum.num3 }}</span>
</li>
</ul>
</div>-->
<div class="contentbody">
<div class="townsman-container">
<!-- <div class="pb16 bb1 mb16 f20" style="color:#ff4400">我的团队</div> -->
<a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}">
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>我的团队</a-breadcrumb-item>
</a-breadcrumb>
<div class="contentbody bodyContainer">
<div class="searchbox">
<div class="searchinput">
<a-input placeholder="请输入成员姓名/手机号" @keyup.enter="onSearch" @input="resetsearch" v-model="pagination.keys">
<i slot="prefix" class="iconfont icon-sousuo"></i>
<button slot="suffix" @click="onSearch"></button>
</a-input>
<!-- <div class="groupSelect" type="card" style="margin-bottom: 16px">
<div v-for="(item,index) in groupList" :class="item.checked?'active':''" :key="index" @click="changeGroup(item.teamName)" v-if="showGroup || index <= 5 && !showGroup">{{item.teamName}}</div>
<span class="showGroupSelect" @click="showGroup = !showGroup">{{showGroup?'收起':'展开'}}</span>
</div>-->
</div>
<div class="pagechange">
<button @click="showDetail('add')">
<div class>
<button class="addGroup" @click="addGroupShow = true">添加分组</button>
<button class="pagechange" @click="showDetail('add')">
<i class="iconfont icon-fangda"></i> 添加成员
</button>
<!-- <button @click="changepage(1)"></button> -->
</div>
</div>
<!-- :expanded-row-keys.sync="expandedRowKeys" -->
<a-table :columns="columns" :data-source="memberList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '',wrapperClassName: 'spinstyle',
}" :locale="tablenodata" :rowKey="(record) => record.index">
<a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a>
}" :locale="tablenodata">
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
<span slot="nickName" slot-scope="text, record">
{{ record.nickName || record.userName }}
<span>{{ record.tel }}</span>
<!-- <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="setting" class="setting" slot-scope="text, record" style="color: #f40">
<div slot="setting" v-if="!record.children" class="setting" slot-scope="text, record" style="color: #f40">
<a @click="showDetail('detail', record)">详情</a>
<a v-if="loginUserInfo.agencyRole != 3" class="delete" @click="deleteMemeber(record)"></a>
</div>
@ -51,7 +60,7 @@
</div>
</div>
</div>
<a-modal :title="modalTitle" v-model="visible" 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="modalTitle == '新建成员'">
<button style="background-color: #fff; border-color: #d9d9d9" @click="modalCancel"></button>
<button style="background-color: #f40;color: #fff;border: none;margin-left: 16px;margin-right: 16px;" @click="handleSubmit"></button>
@ -60,24 +69,28 @@
<span></span>
</template>
<template v-if="modalTitle == '成员详情'">
<a-row>
<a-row style="margin-bottom:24px">
<a-col :span="4">手机号</a-col>
<a-col :span="18">{{ currentMember.tel }}</a-col>
</a-row>
<a-row>
<a-row style="margin-bottom:24px">
<a-col :span="4">备注名</a-col>
<a-col :span="18">{{ currentMember.nickName || currentMember.userName }}</a-col>
<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="18">{{ '分组1' }}</a-col>
</a-row>
<!-- <a-row>
<a-col :span="4">登录密码</a-col>
<a-col :span="20">{{ currentMember.userName }}</a-col>
</a-row>-->
<a-row>
<a-row style="margin-bottom:24px">
<a-col :span="4">角色</a-col>
<a-col :span="18">{{ currentMember.role }}</a-col>
</a-row>
<a-row>
<a-row style="margin-bottom:24px">
<a-col :span="4">权限</a-col>
<a-col :span="18">{{ currentMember.permission }}</a-col>
</a-row>
@ -85,26 +98,24 @@
<template v-else>
<a-form :form="form" :label-col="{ span: 4 }" :wrapper-col="{ span: 16 }">
<a-form-item label="手机号">
<a-input v-decorator="[
'tel',
{
rules: [
{ required: true, message: '请输入手机号' },
{
type: 'regexp',
validator: validateServiceName,
message: '请输入正确的手机号',
},
],
validateTrigger: 'submit',
},
]" :max-length="11" />
<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 v-decorator="[
'nickName',
{ rules: [{ required: true, message: '请输入备注名' }] },
]" />
<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">
<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,idEdit = 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,idEdit = false]">添加新分组</div>
</div>
</a-select>
</a-form-item>
<a-form-item label="角色">
<a-radio-group v-decorator="[
@ -119,13 +130,37 @@
</a-form>
</template>
</a-modal>
<a-modal :title="idEdit?'编辑分组':'添加分组'" v-model="addGroupShow" centered id="demo" @cancel="addGroupShow = false" @ok="addMemberGroup" width="400px" destroyOnClose class="addGroupModal">
<a-input placeholder="请输入分组名" v-model="groupName"></a-input>
<template slot="footer">
<a-button key="back" @click="addGroupShow = false">取消</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>
<template slot="footer">
<a-button key="back" @click="delGroupShow = false">取消</a-button>
<a-button key="submit" type="primary" :loading="loading" @click="delMemberGroup"></a-button>
</template>
</a-modal>
</div>
</template>
<script>
import { getMemberListApi, deleteMemberApi, addMemberApi } from '../../api/userinfo'
import { getMemberListApi, deleteMemberApi, addMemberApi, getMemberGroupApi, addMemberGroupApi, updateMemberGroupApi, delMemberGroupApi } from '../../api/userinfo'
import { formatDateYMD, getUserApplyOrderStatusById, getAgencyRoleTypeById, getAgencyPermissionNameById, getAgencyPermissionsByRole } from '../../utils/commonUtil'
const rowSelection = {
onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows)
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows)
},
}
export default {
//
name: '',
@ -147,7 +182,6 @@ export default {
</div>
),
},
form: this.$form.createForm(this),
pagination: {
pageNum: 1,
@ -177,37 +211,102 @@ export default {
],
permissionName: '查看职位,报名,查看报名,查看老乡,修改密码,修改手机号',
permission: 'job:list,apply:add,apply:list,apply:user,user:pwd,user:tel',
expandedRowKeys: [],
groupList: [
{
text: '全部',
value: '全部',
checked: true,
},
{
text: '分组1',
value: '分组1',
checked: false,
},
{
text: '分组2',
value: '分组2',
checked: false,
},
{
text: '分组3',
value: '分组3',
checked: false,
},
{
text: '分组4',
value: '分组4',
checked: false,
},
{
text: '分组5',
value: '分组5',
checked: false,
},
],
rowSelection,
showGroup: false,
addGroupShow: false,
delGroupShow: false,
groupName: '', //
loading: false,
idEdit: false,
}
},
//
computed: {
columns() {
let { sortedInfo } = this
console.log(sortedInfo)
sortedInfo = sortedInfo || {}
const columns = [
{
title: '序号',
dataIndex: 'index',
key: 'index',
scopedSlots: { customRender: 'index' },
ellipsis: true,
customRender: (text, row, index) => {
if (row.children) {
return ''
} else {
return index + 1
}
},
// ellipsis: true,
width: 60,
},
{
title: '备注',
title: '姓名',
dataIndex: 'nickName',
key: 'nickName',
scopedSlots: { customRender: 'nickName' },
ellipsis: true,
width: 200,
width: 230,
},
// {
// title: '',
// dataIndex: 'role',
// key: 'role',
// width: 100,
// ellipsis: true,
// },
{
title: '角色',
dataIndex: 'role',
key: 'role',
title: '分组',
dataIndex: 'agencyTeamId',
key: 'agencyTeamId',
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,
onFilter: (value, record) => {
console.log(value)
console.log(record)
return record.group.indexOf(value) === 0
},
},
{
title: '权限',
@ -228,7 +327,6 @@ export default {
width: 100,
},
]
console.log(sortedInfo)
return columns
},
},
@ -243,6 +341,7 @@ export default {
if (localStorage.getItem('LOGIN_DATA')) {
this.loginUserInfo = JSON.parse(localStorage.getItem('LOGIN_DATA'))
}
this.$emit('setTitle', '我的团队')
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
@ -250,6 +349,7 @@ export default {
*/
mounted() {
this.getMemberList()
this.getMemberGroup()
window.modalCancel = this.modalCancel
},
//
@ -284,33 +384,100 @@ export default {
try {
this.isspinning = true
console.log(this.pagination)
const { data } = await getMemberListApi(this.pagination)
getMemberListApi(this.pagination).then(({ data }) => {
if (data.status === 200) {
this.memberList = data.data.recordList
this.memberList.forEach((item, index) => {
item.group = '分组' + ((index % 5) + 1)
// item1.children.forEach((item) => {
console.log(item)
item.role = getAgencyRoleTypeById(item.agencyRole)
item.permission = getAgencyPermissionNameById(item.agencyPermissions)
// })
})
this.pagination.total = data.data.recordCount
}
})
console.log(data)
if (data.status === 200) {
// console.log();
this.memberList = data.data.recordList
this.memberList.forEach((item) => {
console.log(item)
item.role = getAgencyRoleTypeById(item.agencyRole)
item.permission = getAgencyPermissionNameById(item.agencyPermissions)
})
// this.data.forEach((item, index) => {
// // console.log(item);
// item.userApplyOrder = getUserApplyOrderStatusById(
// item.userApplyOrderStatus
// );
// item.updateTime = formatDateYMD(item.updateTime);
// item.index = index + 1;
// });
// console.log(data);
// console.log(true);
this.pagination.total = data.data.recordCount
}
} catch (error) {
console.log(error)
}
this.isspinning = false
},
getMemberGroup() {
getMemberGroupApi().then(({ data }) => {
if (data.status == 200) {
console.log(data)
this.groupList = data.data.list
this.groupList.forEach((item, index) => {
console.log(item)
if (index > 0) {
item.checked = false
} else {
item.checked = true
}
console.log(item)
})
}
})
},
addMemberGroup() {
let that = this
this.loading = true
if (that.groupName.trim == '') {
return
} else {
if (this.idEdit) {
updateMemberGroupApi({ teamName: this.groupName, recordId: this.recordId }).then(({ data }) => {
console.log(data)
if (data.status == 200) {
that.$message.success('修改成功')
that.groupName = ''
that.addGroupShow = false
} else {
that.$message.warning(data.msg)
}
that.getMemberGroup()
that.loading = false
})
} else {
addMemberGroupApi({ teamName: this.groupName }).then(({ data }) => {
console.log(data)
if (data.status == 200) {
that.$message.success('添加成功')
that.groupName = ''
that.addGroupShow = false
} else {
that.$message.warning(data.msg)
}
that.getMemberGroup()
that.loading = false
})
}
}
},
// async updateMemberGroup() {
// let { data } = await console.log(data)
// },
delMemberGroup() {
this.loading = true
delMemberGroupApi(this.recordId).then(({ data }) => {
if (data.status == 200) {
this.$message.success('删除成功')
this.delGroupShow = false
} else {
this.$message.warning(data.msg)
}
this.getMemberGroup()
this.loading = false
})
},
delGroup(item) {
console.log(item)
this.recordId = item.id
this.delGroupShow = true
},
getPopupContainer(el, dialogContext) {
console.log(el)
console.log(dialogContext)
@ -398,6 +565,7 @@ export default {
let { data } = await addMemberApi({
...this.form.getFieldsValue(),
agencyPermissions: this.permission,
agencyTeamId: this.agencyTeamId,
})
console.log(data)
if (data.status == 200) {
@ -416,6 +584,23 @@ export default {
}
})
},
changeGroup(e) {
console.log(e)
this.groupList.forEach((item) => {
item.checked = false
if (item.text == e) {
item.checked = true
}
})
},
choiceGroup(e) {
console.log(e)
this.form.setFieldsValue({
agencyTeamId: e.teamName,
})
this.agencyTeamId = e.id
console.log(this.agencyTeamId)
},
groupChange(e) {
console.log(e)
this.form.setFieldsValue({
@ -449,10 +634,11 @@ export default {
<style scoped lang="less">
.townsman-container {
margin-top: 16px;
min-height: calc(100vh - 200px);
padding: 0 10px;
background-color: #fff;
// margin-top: 16px;
// min-height: calc(100vh - 200px);
height: 100%;
padding: 0px;
// background-color: #fff;
border: 1px solid #0000;
}
.contenttitle {
@ -537,10 +723,46 @@ export default {
justify-content: space-between;
margin-bottom: 16px;
.searchinput {
width: 326px;
// width: 326px;
display: flex;
position: relative;
.groupSelect {
display: flex;
position: relative;
flex-wrap: wrap;
width: 410px;
margin-left: 20px;
border-radius: 4px;
margin-bottom: 0 !important;
> div {
// width: 60px;
text-align: center;
padding: 5px 12px;
font-size: 14px;
border: 1px solid #eee;
cursor: pointer;
margin-bottom: 10px;
}
> div:not(:first-child) {
margin-left: -1px;
// border-left: none;
}
.active {
color: #ff4400;
border: 1px solid #ff4400;
z-index: 1;
}
.showGroupSelect {
position: absolute;
right: 12px;
top: 6px;
color: #ff4400;
font-size: 14px;
cursor: pointer;
}
}
.ant-input {
// width: 300px;
width: 280px;
position: relative;
height: 32px;
text-indent: 10px;
@ -565,6 +787,8 @@ export default {
}
}
.ant-input-affix-wrapper {
width: unset;
position: relative;
.ant-input-prefix {
position: absolute;
width: 20px;
@ -576,6 +800,8 @@ export default {
}
.ant-input-suffix {
// position: absolute;
top: 0;
transform: translate(0);
right: 0px !important;
}
}
@ -599,23 +825,39 @@ export default {
// }
}
}
.addGroup {
// width: 120px;
padding: 0 16px;
height: 32px;
line-height: 30px;
border: 1px solid #cccccc;
// border-radius: 4px;
font-size: 16px;
color: #333;
background-color: #fff;
&:hover {
border-color: #ff4400;
color: #ff4400;
}
&:first-child {
margin-right: 12px;
}
}
.pagechange {
button {
width: 120px;
height: 32px;
line-height: 32px;
border: 1px solid #f40;
// border-radius: 4px;
font-size: 16px;
color: #f40;
background-color: #fff;
&:hover {
border-color: #ff4400;
color: #ff4400;
}
&:first-child {
margin-right: 12px;
}
// width: 120px;
padding: 0 16px;
height: 32px;
line-height: 30px;
border: 1px solid #f40;
// border-radius: 4px;
font-size: 16px;
color: #fff;
background-color: #ff4400;
&:hover {
opacity: 0.8;
}
&:first-child {
margin-right: 12px;
}
}
}
@ -647,11 +889,24 @@ export default {
}
}
}
.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;
}
}
}
}
@ -673,6 +928,30 @@ export default {
// /deep/ .ant-table-row-cell-break-word {
// padding: 12px 8px !important;
// }
// .addGroupModal {
/deep/ .ant-modal {
.ant-modal-header {
text-align: center;
border-bottom: none;
}
.ant-modal-footer {
border-top: none;
}
.ant-btn:not(.ant-btn-primary):hover,
.ant-btn:not(.ant-btn-primary):focus {
color: #ff4400;
background-color: #fff;
border-color: #ff4400;
}
.ant-btn-primary {
background-color: #ff4400;
border-color: #ff4400;
&:hover {
opacity: 0.8;
}
}
}
// }
.detailWindow {
/deep/ .ant-modal {
.ant-modal-close-x {
@ -717,4 +996,15 @@ export default {
}
}
}
.groupSelectDrop {
.groupSelectSub {
cursor: pointer;
padding: 9px 16px;
&:hover {
> div {
color: #ff4400 !important;
}
}
}
}
</style>

@ -1,78 +1,84 @@
<template>
<div class="bocaiTV-container">
<div class="contenttitle">
<span>伯才TV</span>
</div>
<!-- <div class="pb16 bb1 mb16 f20" style="color:#ff4400">伯才TV</div> -->
<a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}">
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>伯才TV</a-breadcrumb-item>
</a-breadcrumb>
<div class="contentContainer">
<div class="block bgf">
<div class="title p12 tc bbdot1">实时播放控制</div>
<div class="control p20 df">
<div class="dfcloumn">
<div class="iconfont icon-xiangzuo1" size="23" color></div>上一页
</div>
<div class="pause dfcloumn">
<div class="iconfont icon-zanting" size="23" color></div>暂停
</div>
<div class="dfcloumn">
<div class="iconfont icon-xiangyou" size="23" color></div>下一页
<div class="setCenter">
<div class="block bgf">
<div class="title p12 tc bbdot1">实时播放控制</div>
<div class="control p20 df">
<div class="dfcloumn">
<div class="iconfont icon-xiangyou" style="transform:rotate(180deg)" size="23" color></div>上一页
</div>
<div class="pause dfcloumn">
<div class="iconfont icon-zanting" size="23" color></div>暂停
</div>
<div class="dfcloumn">
<div class="iconfont icon-xiangyou" size="23" color></div>下一页
</div>
</div>
</div>
</div>
<div class="showList">
<div class="title">播放列表</div>
<div class="list bgf">
<a-radio-group v-model="radioVal" @change="onChange" class="radiogroup">
<!-- <div class='dib' wx:for='{{sex}}' wx:key='value'> -->
<a-radio value="1">
<div class="dib">{{'播放招工列表'}}</div>
</a-radio>
<a-radio value="2">
<div class="dib">{{'播放招生列表'}}</div>
</a-radio>
<a-radio value="3">
<div class="dib">{{'招生招工交替播放'}}</div>
</a-radio>
<!-- </div> -->
</a-radio-group>
</div>
</div>
<div class="showList">
<div class="title">播放间隔时间</div>
<div class="content p26 df bd1">
<div class>
<i class="iconfont icon-jian" @click="changeTime('minus')"></i>
</div>
<div class style="min-width:40px">
<span style="font-size:30px">{{second}}</span>
<div class="showList">
<div class="title">播放列表</div>
<div class="list bgf">
<a-radio-group v-model="radioVal" @change="onChange" class="radiogroup">
<!-- <div class='dib' wx:for='{{sex}}' wx:key='value'> -->
<a-radio value="1">
<div class="dib">{{'播放招工列表'}}</div>
</a-radio>
<a-radio value="2">
<div class="dib">{{'播放招生列表'}}</div>
</a-radio>
<a-radio value="3">
<div class="dib">{{'招生招工交替播放'}}</div>
</a-radio>
<!-- </div> -->
</a-radio-group>
</div>
<div class>
<i class="iconfont icon-jia1" @click="changeTime('add')"></i>
</div>
<div class="showList">
<div class="title">播放间隔时间</div>
<div class="content p26 df bd1">
<div class>
<i class="iconfont icon-jian" @click="changeTime('minus')"></i>
</div>
<div class style="min-width:40px">
<span style="font-size:30px">{{second}}</span>
</div>
<div class>
<i class="iconfont icon-jia1" @click="changeTime('add')"></i>
</div>
</div>
</div>
</div>
<div class="showList">
<div class="title">更换logo</div>
<div class="logocontent bgf bd1">
<!-- <div class="iconfont icon-bocailogo" style></div> -->
<div>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-bocailogo" />
</svg>
<div class="showList">
<div class="title">更换logo</div>
<div class="logocontent bgf bd1">
<!-- <div class="iconfont icon-bocailogo" style></div> -->
<div>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-bocailogo" />
</svg>
</div>
<a class>更换图片</a>
</div>
<a class="" >更换图片</a>
</div>
</div>
<div class="dtBtn" style>
<button class>更新配置</button>
<div class="dtBtn" style>
<button class>更新配置</button>
</div>
</div>
</div>
</div>
</template>
<script>
// import ''
let sp = document.createElement('script')
sp.src = '//at.alicdn.com/t/c/font_3135652_27jwfazqvln.js'
document.body.appendChild(sp)
export default {
//
name: '',
@ -95,7 +101,10 @@ export default {
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {},
created() {
this.$emit('setTitle', '伯才TV')
},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
@ -130,7 +139,16 @@ export default {
overflow: hidden;
}
.contentContainer {
width: 430px;
display: flex;
// justify-content: center;
align-items: center;
flex-direction: column;
background-color: #fff;
padding-top: 58px;
// text-align: center;
.setCenter {
width: 430px;
}
}
.block {
margin-bottom: 8px;
@ -214,13 +232,12 @@ export default {
display: flex;
justify-content: space-between;
// padding: 12px 22px;
a{
a {
line-height: 88px;
font-size: 16px;
margin-right: 12px;
color: blue;
text-decoration: underline;
}
> div {
width: 176px;

@ -1,47 +1,91 @@
<template>
<div class="dataStatisticsContainer w">
<div class="navTitle">
<div class="dateSelect fsa">
<div class="fsa">
<a-range-picker style="width:274px" @change="dateChange" class />
<div class="ml16">
<a-checkable-tag class="f14" v-model="checked0" @change="handleChange(0, checked0)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked1" @change="handleChange(1, checked1)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked2" @change="handleChange(2, checked2)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked5" @change="handleChange(5, checked5)"></a-checkable-tag>
<div class="dataStatisticsContainer">
<!-- <div class="pb16 bb1 mb16 f20" style="color:#ff4400">团队数据</div> -->
<a-breadcrumb class="newBreadcrumb mt0 mb16">
<a-breadcrumb-item href>
<router-link :to="{name:'merchantBack'}">
<a-icon type="home" />
</router-link>
</a-breadcrumb-item>
<a-breadcrumb-item>团队数据</a-breadcrumb-item>
</a-breadcrumb>
<div class="bodyContainer">
<div class="navTitle">
<div class="dateSelect fsa">
<div class="fsa">
<a-range-picker style="width:274px" @change="dateChange" class />
<div class="ml16">
<a-checkable-tag class="f14" v-model="checked6" @change="handleChange(6, checked6)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked7" @change="handleChange(7, checked7)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked2" @change="handleChange(2, checked2)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked3" @change="handleChange(3, checked3)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked0" @change="handleChange(0, checked0)">7</a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked1" @change="handleChange(1, checked1)">30</a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked4" @change="handleChange(4, checked4)"></a-checkable-tag>
<a-checkable-tag class="f14" v-model="checked5" @change="handleChange(5, checked5)"></a-checkable-tag>
</div>
</div>
</div>
<!-- <div class="pagechange">
<a-select :disabled="true" style="width: 124px" @change="handleChange">
<div slot="placeholder" class="c9">渠道运营</div>
<a-select-option value="jack">Jack</a-select-option>
<a-select-option value="lucy">Lucy</a-select-option>
<a-select-option value="Yiminghe">yiminghe</a-select-option>
</a-select>
<!-- <div class="pagechange">
<button @click="changepage(-1)"></button>
<button @click="changepage(1)"></button>
</div>-->
</div>-->
</div>
<div class="total">
<!-- <div class="fsa">
<div style="width:50px"></div>
<div style="width:100px">总计</div>
</div>-->
<!-- <div class="fsa"> -->
<div>
{{totalObj.signUps}}
<div>报名</div>
</div>
<div>
{{totalObj.arrived}}
<div>到面</div>
</div>
<div>
{{totalObj.passed}}
<div>通过</div>
</div>
<div>
{{totalObj.entry}}
<div>入职</div>
</div>
<div class="table_left">
{{totalObj.obJob}}
<div>在职人数</div>
</div>
<div class="table_left">
{{totalObj.entryGPA}}
<div>入职绩点</div>
</div>
<div>
{{totalObj.finshedGPA}}
<div>交付绩点</div>
</div>
<!-- </div> -->
</div>
</div>
</div>
<div class="content">
<a-table :columns="columns" :scroll="{ y: 590 }" :data-source="dataList" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :rowKey="(record) => record.index">
<span slot="custom_objob">
<template>在职</template>
<a-tooltip>
<template slot="title">
<p class="f12" style="color:#fff">仅显示当前在职数</p>
</template>
<i class="iconfont icon-zhuyi f14 ml4"></i>
</a-tooltip>
</span>
<a @click="getBillInfo(text1,10)" style="color:#576B95;text-decoration:underline" slot="signUps" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,20)" style="color:#576B95;text-decoration:underline" slot="arrived" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,30)" style="color:#576B95;text-decoration:underline" slot="passed" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,40)" style="color:#576B95;text-decoration:underline" slot="entry" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,50)" style="color:#576B95;text-decoration:underline" slot="obJob" slot-scope="text, text1">{{text}}</a>
</a-table>
<div class="total">
<div style="width:60px">{{totalObj.index}}</div>
<div style="width:100px">数据总计</div>
<div>{{totalObj.signUps}}</div>
<div>{{totalObj.arrived}}</div>
<div>{{totalObj.passed}}</div>
<div>{{totalObj.entry}}</div>
<div>{{totalObj.obJob}}</div>
<div class="content">
<a-table :columns="columns" :scroll="{ y: 480 }" class="bb1 dataTable" :data-source="dataList" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :rowKey="(record) => record.index" :expanded-row-keys.sync="expandedRowKeys" childrenColumnName="users">
<span slot="custom_objob">
<span class="fw500">在职人数</span>
</span>
<a @click="getBillInfo(text1,10)" style="color:#576B95;text-decoration:underline" slot="signUps" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,20)" style="color:#576B95;text-decoration:underline" slot="arrived" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,30)" style="color:#576B95;text-decoration:underline" slot="passed" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,40)" style="color:#576B95;text-decoration:underline" slot="entry" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,50)" style="color:#576B95;text-decoration:underline" slot="obJob" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,60)" style="color:#576B95;text-decoration:underline" slot="entryGPA" slot-scope="text, text1">{{text}}</a>
<a @click="getBillInfo(text1,70)" style="color:#576B95;text-decoration:underline" slot="finshedGPA" slot-scope="text, text1">{{text}}</a>
</a-table>
</div>
</div>
<a-modal class="townsmanDetailModal" centered v-model="townsmanDetailVisible" width="1200px" @cancel="townsmanDetailModalClose" :footer="null" destroyOnClose>
@ -52,7 +96,7 @@
<button slot="suffix" @click="onSearch"></button>
</a-input>
</div>
<a-table :columns="billColumns" :data-source="billList" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :rowKey="(record) => record.index">
<a-table :columns="billColumns" :scroll="{ x: 1100}" :data-source="billList" class="detailTable" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :rowKey="(record) => record.index">
<span slot="storeJobName" slot-scope="text">{{text}}</span>
<span slot="userName" slot-scope="text">{{text}}1</span>
@ -73,6 +117,17 @@
import { dataStatisticsListApi, dataStatisticsTeamDetailApi } from '../../../../api/userinfo'
import moment from 'moment'
import { getDateYMD, formatDateYMD, formatDateYMDHM, getUserApplyOrderStatusById } from '../../../../utils/commonUtil'
const rowSelection = {
onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows)
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows)
},
}
export default {
//
name: 'dataStatistics',
@ -83,12 +138,18 @@ export default {
//
data() {
return {
checked0: true,
checked0: false,
checked1: false,
checked2: false,
checked3: false,
checked4: false,
checked5: false,
checked6: true,
checked7: false,
sortedInfo: null,
dataList: [],
expandedRowKeys: [],
rowSelection,
billPagination: {
pageNum: 1,
pageSize: 8,
@ -193,16 +254,17 @@ export default {
//
computed: {
columns() {
let { sortedInfo } = this
console.log(sortedInfo)
sortedInfo = sortedInfo || {}
const columns = [
{
title: '序号',
dataIndex: 'index',
key: 'index',
customRender: (text, row, index) => {
return index + 1
if (row.users) {
return ''
} else {
return index + 1
}
},
width: 60,
},
@ -210,8 +272,15 @@ export default {
title: '姓名',
dataIndex: 'aliasName',
key: 'aliasName',
customRender: (text, row, index) => {
if (row.users) {
return row.agencyTeamName
} else {
return row.aliasName
}
},
ellipsis: true,
width: 100,
// width: 100,
},
{
title: '报名',
@ -219,15 +288,15 @@ export default {
key: 'signUps',
scopedSlots: { customRender: 'signUps' },
ellipsis: true,
width: 60,
width: 90,
},
{
title: '到面',
dataIndex: 'arrived',
key: 'arrived',
scopedSlots: { customRender: 'arrived' },
ellipsis: true,
width: 60,
width: 90,
ellipsis: true,
},
{
@ -235,28 +304,53 @@ export default {
dataIndex: 'passed',
key: 'passed',
scopedSlots: { customRender: 'passed' },
ellipsis: true,
width: 60,
width: 90,
},
{
title: '入职',
dataIndex: 'entry',
key: 'entry',
scopedSlots: { customRender: 'entry' },
ellipsis: true,
width: 60,
width: 90,
},
{
// title: '',
dataIndex: 'obJob',
key: 'obJob',
slots: { title: 'custom_objob' },
scopedSlots: { customRender: 'obJob' },
ellipsis: true,
width: 90,
// sorter: (a, b) => a.userApplyOrder.localeCompare(b.userApplyOrder),
// sortOrder: sortedInfo.columnKey == "userApplyOrder" && sortedInfo.order,
// ellipsis: true,
// width: 180,
},
{
title: '入职绩点',
dataIndex: 'entryGPA',
key: 'entryGPA',
// customRender: (text, row, index) => {
// return 32
// },
scopedSlots: { customRender: 'entryGPA' },
ellipsis: true,
width: 90,
},
{
title: '交付绩点',
dataIndex: 'finshedGPA',
key: 'finshedGPA',
// customRender: (text, row, index) => {
// return 23
// },
scopedSlots: { customRender: 'finshedGPA' },
ellipsis: true,
width: 90,
},
]
return columns
@ -273,52 +367,85 @@ export default {
customRender: (text, row, index) => {
return index + 1
},
width: 60,
width: 50,
},
{
title: '姓名',
dataIndex: 'userName',
key: 'userName',
ellipsis: true,
width: 90,
width: 200,
// scopedSlots: { customRender: 'userName' },
customRender: (text, row, index) => {
return text.trim() + ' '
let sex
switch (row.sex) {
case 0:
sex = '男女不限'
case 1:
sex = '男'
case 2:
sex = '女'
default:
break
}
return text.trim() + '/' + (sex ? sex + '/' : '') + (row.age ? row.age + '/' : '') + (row.nation ? row.nation : '')
},
},
// {
// title: '',
// dataIndex: 'age',
// key: 'age',
// ellipsis: true,
// width: 60,
// },
// {
// title: '',
// dataIndex: 'sex',
// key: 'sex',
// ellipsis: true,
// customRender: (text, row, index) => {
// switch (text) {
// case 0:
// return ''
// case 1:
// return ''
// case 2:
// return ''
// default:
// break
// }
// },
// width: 60,
// },
// {
// title: '',
// dataIndex: 'nation',
// key: 'nation',
// ellipsis: true,
// width: 90,
// },
// {
// title: '',
// dataIndex: 'tel',
// key: 'tel',
// ellipsis: true,
// width: 120,
// },
// {
// title: '',
// dataIndex: 'idCard',
// key: 'idCard',
// ellipsis: true,
// width: 180,
// },
{
title: '年龄',
dataIndex: 'age',
key: 'age',
ellipsis: true,
width: 60,
},
{
title: '民族',
dataIndex: 'nation',
key: 'nation',
ellipsis: true,
width: 60,
},
{
title: '电话',
dataIndex: 'tel',
key: 'tel',
ellipsis: true,
width: 120,
},
{
title: '身份证',
dataIndex: 'idCard',
key: 'idCard',
ellipsis: true,
// width: 60,
},
{
title: '岗位',
title: '报名岗位',
dataIndex: 'storeJobName',
key: 'storeJobName',
ellipsis: true,
// width: 180,
// width: 60,
},
{
@ -333,7 +460,7 @@ export default {
},
},
{
title: '状态',
title: '当前状态',
dataIndex: 'status',
key: 'status',
ellipsis: true,
@ -365,6 +492,47 @@ export default {
}
},
},
{
title: '报名人',
dataIndex: 'applyUserName',
key: 'applyUserName',
ellipsis: true,
width: 90,
slots: { title: 'applyUserName' },
customRender: (text, row, index) => {
return row.applyUserName
},
},
{
title: '入职绩点',
dataIndex: 'entryGPA',
key: 'entryGPA',
ellipsis: true,
width: 80,
slots: { title: 'entryGPA' },
customRender: (text, row, index) => {
if (text) {
return text
} else {
return 0
}
},
},
{
title: '交付绩点',
dataIndex: 'finshedGPA',
key: 'finshedGPA',
ellipsis: true,
width: 80,
slots: { title: 'finshedGPA' },
customRender: (text, row, index) => {
if (text) {
return text
} else {
return 0
}
},
},
]
return columns
},
@ -379,6 +547,7 @@ export default {
this.contentListSearchForm.start = moment().add(-0, 'd').format('YYYY-MM-DD')
this.contentListSearchForm.end = moment().format('YYYY-MM-DD')
this.billList = [...this.billList, ...this.billList, ...this.billList]
this.$emit('setTitle', '团队数据')
this.getDataStatisticsList()
},
/**
@ -401,29 +570,52 @@ export default {
this.checked3 = false
this.checked4 = false
this.checked5 = false
this.checked6 = false
this.checked7 = false
var start = getDateYMD()
var end = getDateYMD()
if (tag == 0) {
this.checked0 = checked
start = moment().add(-0, 'd').format('YYYY-MM-DD')
that.checked0 = true
start = moment().add(-6, 'd').format('YYYY-MM-DD')
end = moment().format('YYYY-MM-DD')
} else if (tag == 1) {
this.checked1 = checked
that.checked1 = true
start = moment().add(-1, 'd').format('YYYY-MM-DD')
end = moment().add(-1, 'd').format('YYYY-MM-DD')
start = moment().add(-29, 'd').format('YYYY-MM-DD')
end = moment().format('YYYY-MM-DD')
} else if (tag == 2) {
this.checked2 = checked
that.checked2 = true
start = moment().startOf('week').format('YYYY-MM-DD')
end = moment().format('YYYY-MM-DD')
} else if (tag == 5) {
this.checked5 = checked
} else if (tag == 3) {
that.checked3 = true
start = moment()
.week(moment().week() - 1)
.startOf('week')
.format('YYYY-MM-DD')
end = moment()
.week(moment().week() - 1)
.endOf('week')
.format('YYYY-MM-DD')
} else if (tag == 4) {
that.checked4 = true
start = moment().startOf('month').format('YYYY-MM-DD')
end = moment().format('YYYY-MM-DD')
// start = moment().subtract('month', 1).format('YYYY-MM') + '-01'
// end = moment().subtract(1, 'month').endOf('month').format('YYYY-MM-DD')
} else if (tag == 5) {
that.checked5 = true
start = moment().subtract('month', 1).format('YYYY-MM') + '-01'
end = moment().subtract(1, 'month').endOf('month').format('YYYY-MM-DD')
} else if (tag == 6) {
that.checked6 = true
start = moment().add(-0, 'd').format('YYYY-MM-DD')
end = moment().format('YYYY-MM-DD')
} else if (tag == 7) {
that.checked7 = true
start = moment().add(-1, 'd').format('YYYY-MM-DD')
end = moment().add(-1, 'd').format('YYYY-MM-DD')
}
that.contentListSearchForm.start = start
that.contentListSearchForm.end = end
// this.selDate = [moment(that.contentListSearchForm.start, 'YYYY-MM-DD'), moment(that.contentListSearchForm.end, 'YYYY-MM-DD')]
@ -444,6 +636,8 @@ export default {
obJob: null,
passed: null,
signUps: null,
finshedGPA: null,
entryGPA: null,
}
data.data.list.forEach((item, index) => {
this.totalObj.arrived += item.arrived
@ -451,6 +645,9 @@ export default {
this.totalObj.obJob += item.obJob
this.totalObj.passed += item.passed
this.totalObj.signUps += item.signUps
this.totalObj.finshedGPA += item.finshedGPA
this.totalObj.entryGPA += item.entryGPA
this.totalObj.index = index + 2
})
this.dataList = data.data.list
@ -544,6 +741,10 @@ export default {
*/
getBillInfo(e, type) {
console.log(e)
if (e.users) {
if (e.agencyTeamId == '') {
}
}
this.currentData = { ...e, type }
switch (type) {
case 10:
@ -580,7 +781,8 @@ export default {
start: this.contentListSearchForm.start,
end: this.contentListSearchForm.end,
keys: this.billPagination.keys,
userId: this.currentData.id,
userId: this.currentData.id || '',
agencyTeamId: this.currentData.agencyTeamId,
type: this.currentData.type,
}
let res = await dataStatisticsTeamDetailApi(data)
@ -599,8 +801,12 @@ export default {
<style scoped lang="less">
.dataStatisticsContainer {
height: 100%;
// min-height: 780px;
}
.bodyContainer {
}
.pagechange {
button {
width: 66px;
@ -621,8 +827,14 @@ export default {
}
.townsmanDetailModal {
/deep/ .ant-modal-header {
background-color: #f5f5f5;
border-bottom: 0px solid #000;
// background-color: #f5f5f5;
> div {
height: 44px;
line-height: 44px;
font-weight: bold;
}
padding: 0 20px;
border-bottom: 1px solid #ddd;
}
/deep/ .ant-modal-content {
.ant-modal-body {
@ -633,17 +845,30 @@ export default {
}
}
}
.ant-tag-checkable:hover {
color: #ff4400;
cursor: pointer;
}
.ant-tag-checkable-checked {
background-color: transparent;
color: #ff4400;
}
/deep/.ant-table-pagination.ant-pagination {
float: unset;
text-align: center;
/deep/ .ant-table {
.ant-table-pagination.ant-pagination {
float: unset;
text-align: center;
}
.ant-table-header {
th {
div {
font-weight: bold;
}
}
.ant-table-row-cell-break-word {
text-align: right;
font-weight: bold;
padding-right: 0;
}
}
.ant-table-body::-webkit-scrollbar {
width: 0 !important;
}
.ant-table-hide-scrollbar {
// padding-right: 0 !important;
}
}
.navTitle {
margin: 16px 0;
@ -654,19 +879,33 @@ export default {
max-height: 700px;
}
.total {
position: sticky;
background-color: #fff;
bottom: 0;
// background-color: #fafafa;
// width: 100%;
// width: 460px;
display: flex;
justify-content: start;
justify-content: center;
align-items: center;
font-size: 13px;
font-size: 22px;
margin-top: 60px;
padding-bottom: 32px;
border-bottom: 1px solid #eee;
// padding-right: 10px;
> div {
padding: 16px;
text-align: center;
font-weight: bold;
&:not(:nth-child(2)) {
width: 60px;
width: 210px;
&:last-child {
// margin-left: 420px;
> div {
// padding-right: 26px;
text-align: center;
}
}
> div {
// padding: 16px;
font-size: 14px;
text-align: center;
color: #999;
}
}
}
@ -734,12 +973,87 @@ export default {
// }
}
}
.pagecontainer {
position: absolute;
bottom: 0;
left: 50%;
width: 100%;
transform: translateX(-50%);
}
.detailTable {
/deep/.ant-table-body {
.ant-table-thead {
.ant-table-row-cell-break-word {
padding: 16px 8px 16px 16px;
// text-align: center;
}
}
.ant-table-tbody {
> tr > td {
font-size: 14px;
padding: 16px 8px 16px 16px;
// height: 20px;
// display: inline-block;
// padding: 0px 16px;
}
.ant-table-row-indent {
display: none;
}
.ant-table-column-title {
overflow: unset !important;
}
.ant-table-row-cell-break-word {
}
}
}
}
.dataTable {
/deep/.ant-table-tbody {
> tr > td {
font-size: 14px;
// height: 20px;
// display: inline-block;
// padding: 0px 16px;
}
.ant-table-row-indent {
display: none;
}
.ant-table-column-title {
overflow: unset !important;
}
.ant-table-row-cell-break-word {
// height: 54px;
text-align: right;
padding-right: 26px !important;
overflow: hidden;
.ant-table-row-spaced {
display: none !important;
}
}
}
}
/deep/ .ant-select-dropdown-menu-item-active,
.ant-select-dropdown-menu-item-selected {
color: #1890ff !important;
font-weight: normal;
background-color: #e6f7ff !important;
}
.table_left {
position: relative;
}
.table_left:before {
content: '';
width: 1px;
height: 20px;
top: 50%;
transform: translateY(-50%);
background-color: #ccc;
position: absolute;
left: 0px;
}
// /deep/.ant-popover .ant-popover-content .ant-popover-inner-content {
// width: 200px !important;
// }

@ -8,18 +8,18 @@
</li>
<li @click="pagination.status = 40" :class="{ townsmanactive: pagination.status === 40 }">
当前在职
<span>{{ statusNum.num1 == 0 ? "" : statusNum.num40 }}</span>
<span>{{ statusNum.num1 == 0 ? "" : statusNum.num1 }}</span>
</li>
<!-- <li @click="pagination.status = 2" :class="{ townsmanactive: pagination.status === 2 }">
报名中<span>{{ statusNum.num2 == 0 ? "" : statusNum.num2 }}</span>
</li>-->
<li @click="pagination.status = 48" :class="{ townsmanactive: pagination.status === 48 }">
准备离职
<span>{{ statusNum.num3 == 0 ? "" : statusNum.num48}}</span>
<span>{{ statusNum.num2 == 0 ? "" : statusNum.num2 }}</span>
</li>
<li @click="pagination.status = 50" :class="{ townsmanactive: pagination.status === 50 }">
最近离职
<span>{{ statusNum.num3 == 0 ? "" : statusNum.num50 }}</span>
<span>{{ statusNum.num3 == 0 ? "" : statusNum.num3 }}</span>
</li>
</ul>
</div>
@ -31,14 +31,14 @@
<button slot="suffix" @click="onSearch"></button>
</a-input>
</div>
<div class="pagechange">
<div class="pagechange dn">
<button @click="changepage(-1)"></button>
<button @click="changepage(1)"></button>
</div>
</div>
<a-table :columns="columns" :data-source="data" :pagination="false" @change="onChange" :loading="{ spinning: isspinning, tip: '加载中', wrapperClassName: 'spinstyle', }" :locale="tablenodata" :rowKey="(record) => record.index">
<a slot="name" slot-scope="text">{{ text }}</a>
<a slot="userDetail" style="color: #ff4400" slot-scope="text, text1" @click="toDetail(text1)"></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-table>
<div class="pagecontainer">
<a-pagination :current="+pagination.pageNum" :default-current="1" :defaultPageSize="8" :total="pagination.total" @change="onChange" />
@ -80,7 +80,7 @@
</viewer>
</div>
<div v-for="item in orders" :key="item.id" class="jobExperience boxStyle">
<div class="experienceTitle titleStyle">工作{{ item.index }}</div>
<div class="experienceTitle titleStyle">工作{{ item.index + 1 }}</div>
<div class="experienceContent">
<a-row>
<a-col :span="6">报名岗位</a-col>
@ -442,15 +442,35 @@ export default {
key: 'index',
scopedSlots: { customRender: 'index' },
ellipsis: true,
width: 60,
width: 50,
},
{
title: '老乡姓名',
title: '姓名',
dataIndex: 'userName',
key: 'userName',
ellipsis: true,
width: 90,
},
{
title: '性别',
dataIndex: 'sex',
key: 'sex',
ellipsis: true,
customRender: (text, row, index) => {
switch (text) {
case 0:
return '男女不限'
case 1:
return '男'
case 2:
return '女'
default:
break
}
},
width: 60,
},
{
title: '年龄',
dataIndex: 'age',
@ -1144,7 +1164,7 @@ export default {
transition: width 0.2s;
cursor: pointer;
> span {
margin-left: 12px;
margin-left: 4px;
font-size: 16px;
color: #ff6600;
}
@ -1284,9 +1304,11 @@ export default {
/deep/ .ant-table-content {
.ant-table-body {
.ant-table-thead {
font-size: 14px;
th {
padding: 16px 0;
div {
font-weight: bold;
padding: 0px 8px;
}
&:not(:first-child) {
@ -1302,8 +1324,13 @@ export default {
}
}
.ant-table-tbody {
font-size: 14px;
.ant-table-row {
// height: 48px !important;
}
.ant-table-row-cell-ellipsis {
padding: 16px 14px;
// height: 48px !important;
padding: 8px 14px;
}
}
}

@ -110,16 +110,36 @@ const routes = [
// component: resolve => require(['../components/userinfo/usercenter/components/mybill.vue'],resolve)
},
{
path: "memberInfo",
name: "memberinfo",
component: () => import("../components/memberInfo/memberInfo.vue"),
// component: resolve => require(['../components/memberInfo/memberInfo.vue'],resolve)
path: "merchantManagement",
name: "merchantManagement",
component: () => import("../components/merchantManagement/index.vue"),
redirect: "merchantManagement/memberInfo",
children: [
{
path: "memberInfo",
name: "memberinfo",
component: () => import("../components/merchantManagement/memberInfo.vue"),
},
{
path: "bocaiTV",
name: "bocaiTV",
component: () => import(
"../components/userinfo/accountsetting/components/bocaiTV.vue"
),
},
{
path: "dataScreen",
name: "dataScreen",
component: () => import("../components/merchantManagement/dataScreen.vue"),
},
]
},
{
path: "accountsetting",
name: "accountsetting",
component: () =>
import("../components/userinfo/accountsetting/inedex.vue"),
component: () => import("../components/userinfo/accountsetting/inedex.vue"),
redirect: "accountsetting/boundtel",
children: [
{
@ -261,6 +281,37 @@ const routes = [
},
],
},
{
path: "/merchantBack",
name: "merchantBack",
redirect: "merchantBack/memberInfo",
component: () => import("../views/merchantBack.vue"),
children: [
{
path: "memberInfo",
name: "MemberInfo",
component: () => import("../components/merchantManagement/memberInfo.vue"),
},
{
path: "dataStatistics",
name: "DataStatistics",
component: () => import("../components/userinfo/usercenter/components/dataStatistics.vue"),
},
{
path: "bocaiTV",
name: "BocaiTV",
component: () => import(
"../components/userinfo/accountsetting/components/bocaiTV.vue"
),
},
{
path: "dataScreen",
name: "DataScreen",
component: () => import("../components/merchantManagement/dataScreen.vue"),
},
]
},
{
path: "*",
name: "404",

@ -1,4 +1,4 @@
@import "http://at.alicdn.com/t/c/font_3135652_xthu5ur6ppr.css";
@import "http://at.alicdn.com/t/c/font_3135652_geqc7dg5evd.css";
// 初始化页面样式
body,
@ -136,7 +136,9 @@ i {
.dil {
display: inline;
}
.cf4{
color: #ff4400;
}
.dib {
display: inline-block;
}
@ -315,7 +317,9 @@ i {
.pb8 {
padding-bottom: 8px;
}
.mb0{
margin-bottom: 0;
}
.p16 {
padding: 16px;
}
@ -374,6 +378,9 @@ i {
.f22 {
font-size: 22px;
}
.f24 {
font-size: 24px;
}
.c3 {
color: #333;
}
@ -388,15 +395,31 @@ i {
align-items: center;
justify-content: space-between;
}
.flex1{
flex: 1;
}
.dn {
display: none;
}
.bodyContainer{
padding: 16px;
height: 97%;
background-color: #fff;
}
//通用类名样式结束
//svg图标
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
.svg_icon {
width: 1em; height: 1em;
fill: currentColor;
overflow: hidden;
display: inline-block;
vertical-align: middle;
min-width: 30px;
text-align: center;
font-size: 20px;
font-weight: normal;
margin-right: 2px;
}
// 公用样式类名
@ -460,7 +483,7 @@ i {
.ant-pagination-options-quick-jumper {
margin-left: 10px;
font-size: 16px;
font-size: 14px;
}
.ant-pagination-disabled {
a:hover {
@ -580,7 +603,7 @@ i {
}
.logindropdown {
// left: 0;
left: calc((100vw - 1200px) / 2 + 1013px) !important;
// left: calc((100vw - 1200px) / 2 + 1013px) !important;
.loginbox {
width: 180px;
// height: 114px;

@ -1,537 +0,0 @@
@import "http://at.alicdn.com/t/c/font_3135652_jrvheq4b5p.css";
body,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
p,
blockquote,
dl,
dt,
dd,
ul,
ol,
li,
pre,
form,
fieldset,
legend,
button,
input,
textarea,
th,
td,
div {
margin: 0;
padding: 0;
color: #333;
font-family: PingFangSC, PingFangSC-Regular;
}
body,
button,
input,
select,
textarea {
font-family: PingFangSC, PingFangSC-Regular;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: 100%;
}
address,
cite,
dfn,
em,
var {
font-style: normal;
}
code,
kbd,
pre,
samp {
font-family: couriernew, courier, monospace;
}
small {
font-size: 12px;
}
ul,
ol {
list-style: none;
}
a {
color: inherit;
text-decoration: none;
}
a:hover {
color: inherit;
text-decoration: none;
}
sup {
vertical-align: text-top;
}
sub {
vertical-align: text-bottom;
}
legend {
color: #000;
}
fieldset,
img {
border: 0;
}
button,
input,
select,
textarea {
font-size: 100%;
}
button {
cursor: pointer;
}
button:focus-visible {
outline: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
:root {
overflow-y: auto;
overflow-x: hidden;
}
body {
padding: 0;
background-color: #fff;
font-size: 18px;
}
p {
font-size: 18px;
}
i {
font-style: normal;
}
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
.w {
width: 1200px;
margin: 0 auto;
}
.mb12 {
margin-bottom: 12px;
}
.mt20 {
margin-top: 20px;
}
.titlestyle {
font-size: 16px;
font-weight: 600;
color: #333;
}
.nobd {
border-left-color: transparent !important;
border-right-color: transparent !important;
border-top: none !important;
border-bottom: none !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
.ant-calendar-picker-container-content {
margin-top: 3px;
}
.ant-calendar-picker {
border-color: #d9d9d9 !important;
}
.ant-calendar-picker:hover .ant-calendar-picker-input {
border-color: #d9d9d9 !important;
}
.ant-calendar-picker:focus .ant-calendar-picker-input {
border-color: #d9d9d9 !important;
}
.ant-breadcrumb .ant-breadcrumb-link a:hover {
color: #ff4400;
}
.pagecontainer {
display: flex;
justify-content: center;
text-align: center;
margin-bottom: 30px;
margin-top: 15px;
}
.pagecontainer .ant-pagination-item-container .ant-pagination-item-link-icon {
color: #ff4400;
}
.pagecontainer .ant-pagination-options-quick-jumper {
margin-left: 10px;
font-size: 16px;
}
.pagecontainer .ant-pagination-disabled a:hover {
color: #c5c5c5 !important;
}
.pagecontainer .ant-pagination-next:focus .ant-pagination-item-link,
.pagecontainer .ant-pagination-prev:focus .ant-pagination-item-link {
color: #000000a6;
}
.pagecontainer .ant-pagination-next:hover .ant-pagination-item-link,
.pagecontainer .ant-pagination-prev:hover .ant-pagination-item-link {
color: #ff4400;
}
.pagecontainer input[type="text"] {
box-shadow: none;
background-color: #fff;
border-color: #ddd;
border-radius: 0;
}
.pagecontainer input[type="text"]:focus {
border: 1px solid #ff4400;
}
.pagecontainer input[type="text"]:hover {
border: 1px solid #ff4400;
}
.pagecontainer .ant-pagination-item {
border: none;
border-radius: 0;
}
.pagecontainer .ant-pagination-item a:hover {
color: #ff4400;
}
.pagecontainer .ant-pagination-item-active {
background: #ff4400;
}
.pagecontainer .ant-pagination-item-active a {
color: white;
}
.pagecontainer .ant-pagination-item-active a:hover {
color: white;
}
.pagecontainer .ant-pagination-item-link {
border: none;
}
.ant-cascader-menus.monthlypay,
.ant-cascader-menus.agestr,
.ant-cascader-menus.gender {
width: 100vw;
margin: 0 auto;
top: 45px !important;
-webkit-box-shadow: 0 8px 8px rgba(0, 0, 0, 0.15);
box-shadow: 0 8px 8px rgba(0, 0, 0, 0.15);
transition: none !important;
}
.ant-cascader-menus.monthlypay .ant-cascader-menu,
.ant-cascader-menus.agestr .ant-cascader-menu,
.ant-cascader-menus.gender .ant-cascader-menu {
height: auto;
width: 100%;
}
.ant-cascader-menus.monthlypay .ant-cascader-menu .ant-cascader-menu-item,
.ant-cascader-menus.agestr .ant-cascader-menu .ant-cascader-menu-item,
.ant-cascader-menus.gender .ant-cascader-menu .ant-cascader-menu-item {
width: 100%;
text-align: left;
padding-left: calc(-550vw) !important;
}
.ant-cascader-menus.monthlypay .ant-cascader-menu .ant-cascader-menu-item:hover,
.ant-cascader-menus.agestr .ant-cascader-menu .ant-cascader-menu-item:hover,
.ant-cascader-menus.gender .ant-cascader-menu .ant-cascader-menu-item:hover {
background-color: rgba(255, 106, 0, 0.1);
color: #ff6a00;
}
.ant-cascader-menus.slide-up-leave-active {
animation: none !important;
transition: none !important;
}
.ant-cascader-menus.slide-up-enter-active {
animation: none !important;
transition: none !important;
}
.ant-cascader-menus.slide-up-leave {
transition: none !important;
animation: none !important;
}
.ant-cascader-menus.slide-up-enter {
animation: none !important;
transition: none !important;
}
.ant-cascader-menus.flitercity {
left: calc(-558vw) !important;
top: 45px !important;
border-radius: 0 0 4px 4px !important;
-webkit-box-shadow: 0 8px 8px rgba(0, 0, 0, 0.15);
box-shadow: 0 8px 8px rgba(0, 0, 0, 0.15);
}
.ant-cascader-menus.flitercity .ant-cascader-menu {
height: 500px;
}
.ant-cascader-menus.flitercity .ant-cascader-menu .ant-cascader-menu-item {
width: 100%;
text-align: left;
}
.ant-cascader-menus.flitercity .ant-cascader-menu .ant-cascader-menu-item:hover {
background-color: rgba(255, 106, 0, 0.1);
color: #ff6a00;
}
.logindropdown {
left: calc(463vw) !important;
}
.logindropdown .loginbox {
width: 180px;
overflow: hidden;
background-color: #fff;
border-radius: 4px;
text-align: center;
box-shadow: 0px 0px 10px rgba(128, 128, 128, 0.4);
padding: 0 16px 16px 16px;
}
.logindropdown .loginbox > div {
padding: 16px;
text-align: center;
font-size: 16px;
font-weight: bold;
border-bottom: 1px solid #eee;
}
.logindropdown .loginbox > a > div {
display: flex;
padding: 16px 0;
font-size: 14px;
justify-content: space-between;
border-bottom: 1px solid #eee;
}
.logindropdown .loginbox > a > div:hover {
color: #ff4400;
}
.logindropdown .loginbox > a > div span {
line-height: 18px;
}
.logindropdown .loginbox > a > div span i {
font-size: 18px;
margin-right: 5px;
vertical-align: baseline;
}
.logindropdown .loginbox button {
width: 130px;
height: 32px;
margin-top: 24px;
border: 1px solid rgba(77, 87, 94, 0.1);
border-radius: 17px;
color: #ff4400;
font-size: 14px;
line-height: 32px;
background-color: #fff;
cursor: pointer;
}
.beforeblock {
display: inline-block;
vertical-align: middle;
margin-top: -4px;
width: 4px;
height: 20px;
margin-right: 8px;
background: #ff4400;
}
h1.bottombox,
p.bottombox {
position: relative;
text-align: center;
font-weight: 600;
font-size: 16px;
padding: 12px 0;
color: rgba(0, 0, 0, 0.85);
}
h1.bottombox::after,
p.bottombox::after {
content: "";
display: block;
position: absolute;
width: 240px;
height: 1px;
bottom: 0;
left: -20px;
background-color: #eeefef;
}
.ant-cascader-menu::-webkit-scrollbar,
.ant-modal-body::-webkit-scrollbar {
/*滚动条整体样式*/
width: 7px;
/*高宽分别对应横竖滚动条的尺寸*/
height: 4px;
}
.ant-cascader-menu::-webkit-scrollbar-thumb,
.ant-modal-body::-webkit-scrollbar-thumb {
/*滚动条里面小方块*/
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(126, 126, 126, 0.06);
background: rgba(0, 0, 0, 0.1);
}
.ant-cascader-menu::-webkit-scrollbar-track,
.ant-modal-body::-webkit-scrollbar-track {
/*滚动条里面轨道*/
-webkit-box-shadow: inset 0 0 5px rgba(112, 112, 112, 0.06);
border-radius: 0;
background: rgba(0, 0, 0, 0.1);
}
.ant-select-dropdown-menu-item-active,
.ant-select-dropdown-menu-item-selected {
color: #ff4400 !important;
font-weight: normal;
background-color: rgba(255, 106, 0, 0.1) !important;
}
.ant-breadcrumb {
margin-top: 12px;
}
.ant-breadcrumb .ant-breadcrumb-link {
cursor: default;
}
@media screen and (max-width: 1910px) {
.loginlogo {
margin: 40px auto !important;
}
}
.ant-spin-dot-item {
background-color: #fda21d;
}
.ant-spin-text {
color: #fda21d;
}
.ant-popover .ant-popover-content .ant-popover-inner-content {
position: relative;
width: 600px;
white-space: pre-wrap !important;
}
.ant-popover .ant-popover-content .ant-popover-inner-content > div {
position: absolute;
width: 44px;
height: 22px;
right: 10px;
top: 10px;
border: 1px solid #ff4400;
color: #ff4400;
border-radius: 999px;
line-height: 22px;
text-align: center;
cursor: pointer;
}
.ant-popover .ant-popover-content .ant-popover-inner-content > div:hover {
background-color: #ff4400;
color: #fff;
}
.xiangdan .ant-modal-content {
width: 600px;
max-height: calc(60vh);
}
.xiangdan .ant-modal-content .ant-modal-body {
padding-top: 36px;
position: relative;
min-height: 480px;
white-space: pre-wrap !important;
}
.xiangdan .ant-modal-content .ant-modal-body .copy {
position: absolute;
padding: 0px 12px;
right: 20px;
top: 7px;
font-size: 14px;
border: 1px solid #ff4400;
color: #ff4400;
border-radius: 5px;
line-height: 22px;
text-align: center;
cursor: pointer;
}
.xiangdan .ant-modal-content .ant-modal-body .copy:hover {
color: #fff;
background-color: #ff4400;
}
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month {
background: #ff4400;
}
.ant-calendar-date:hover {
border-color: #ff4400;
background-color: #fff;
color: #ff4400;
}
.ant-calendar-today .ant-calendar-date {
background-color: #ff4400;
border-color: #ff4400;
color: #fff;
}
.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date,
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date {
background-color: #ff4400;
border-color: #ff4400;
color: #fff;
}
.ant-calendar-range .ant-calendar-in-range-cell::before {
background: #fff3ef;
}
.ant-calendar-range .ant-calendar-selected-start-date .ant-calendar-date:hover,
.ant-calendar-range .ant-calendar-selected-end-date .ant-calendar-date:hover {
background: #ff4400;
}
.ant-calendar-header a:hover {
color: #ff4400;
}
.ant-calendar-month-panel-selected-cell .ant-calendar-month-panel-month:hover,
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year,
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade,
.ant-calendar-decade-panel-selected-cell .ant-calendar-decade-panel-decade:hover,
.ant-calendar-year-panel-selected-cell .ant-calendar-year-panel-year:hover {
background: #ff4400;
}
.ant-calendar-month-panel-month:hover,
.ant-calendar-year-panel-year:hover,
.ant-calendar-decade-panel-decade:hover {
background: #fff3ef;
}
.ant-table-thead > tr > th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on,
.ant-table-thead > tr > th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on {
color: #ff4400;
}
.ant-table-thead > tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td,
.ant-table-tbody > tr.ant-table-row-hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td,
.ant-table-thead > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td,
.ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {
background: #fff3ef;
}
.ant-radio-checked .ant-radio-inner {
border-color: #ff4400 !important;
box-shadow: none !important;
}
.ant-radio-checked .ant-radio-inner::after {
background-color: #ff4400 !important;
}
.ant-radio:hover .ant-radio-inner {
border-color: #ff4400 !important;
box-shadow: none;
}
.ant-radio-checked .ant-radio-inner::after {
background-color: #ff4400 !important;
}
.ant-radio-checked:hover .ant-radio-inner {
border-color: #ff4400 !important;
}
.ant-radio {
border-color: #ddd !important;
box-shadow: none !important;
}
.ant-btn-primary:hover {
border-color: #ff4400;
background-color: #ff5416;
color: #fff;
}
.ant-input:hover {
border-color: #ff4400;
}
.ant-select-selection:active {
box-shadow: none;
}

@ -74,10 +74,10 @@ export default {
<style scoped lang="less">
.login-container {
height: calc(100% - 190px);
height: calc(100%);
width: 100%;
position: relative;
// background: url("../assets/Bg.png") no-repeat center;
background: url("../assets/loginBG.png") no-repeat center;
// background-size: 100% 100%;
// box-shadow: 5px 5px 10px gray;
.centerbox {
@ -86,7 +86,7 @@ export default {
height: 400px;
// background-color: pink;
left: 50%;
top: 55%;
top: 50%;
transform: translateX(-50%) translateY(-50%);
margin: auto;
border-radius: 16px;

@ -1,7 +1,7 @@
<template>
<div class="index-container" @click="isspecialboxshow = false">
<!-- title部分 -->
<div class="pagetitle">
<div class="pagetitle" v-if="isLogin && routertitleindex != 0">
<div class="w">
<span>欢迎来到伯才稻田平台</span>
<span>
@ -19,7 +19,7 @@
<router-link to="/mytownsman" :class="routertitleindex == 4 ? 'titleactive' : ''">我的老乡</router-link>
</li>
<li>
<router-link to="/dataStatistics" :class="routertitleindex == 6 ? 'titleactive' : ''">数据统计</router-link>
<router-link to="/dataStatistics" :class="routertitleindex == 6 ? 'titleactive' : ''">团队数据</router-link>
</li>
<!-- <li>
<router-link to="/serviceoutlets"
@ -41,13 +41,19 @@
</li>-->
</ul>
</span>
<span class="login">
<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">
<a-dropdown overlayClassName="logindropdown">
<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>个人中心</span>
<span class="fsa">
<span class="iconfont icon-morentouxiang mr4 f24" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:24px;height:24px;" alt v-else />
{{ userbaseInfo.userName }}
</span>
<div class="loginbox" slot="overlay">
<div>
<img :src="loginValue.imgSrc" alt v-if="loginValue.imgSrc !== ''" style="border-radius: 50%" />
@ -66,10 +72,10 @@
<i class="iconfont icon-youjiantou"></i>
</div>
</router-link>
<router-link to="/memberInfo">
<router-link to="/merchantBack">
<div>
<span>
<i class="iconfont icon-zhanghaoshezhi"></i>成员管理
<i class="iconfont icon-zhanghaoshezhi"></i>商家后台
</span>
<i class="iconfont icon-youjiantou"></i>
</div>
@ -113,6 +119,63 @@
</span>-->
</div>
</div>
<div class="fsa titleSlogan w" v-if="routertitleindex == 0 ">
<!-- <div> -->
<svg class="svg_icon" aria-hidden="true">
<use xlink:href="#icon-daotian-logo" />
</svg>
<!-- </div> -->
<div v-if="!isLogin">
<router-link to="/list" style="display: inline-block; width: 100%">登录</router-link>
</div>
<span v-else class="logined">
<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="iconfont icon-morentouxiang mr4 f24" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:24px;height:24px;" alt v-else />
{{ userbaseInfo.userName }}
</span>
<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">
<div>
<span>
<i class="iconfont icon-gerenzhongxin"></i>个人中心
</span>
<i class="iconfont icon-youjiantou"></i>
</div>
</router-link>
<router-link to="/merchantBack">
<div>
<span>
<i class="iconfont icon-zhanghaoshezhi"></i>商家后台
</span>
<i class="iconfont icon-youjiantou"></i>
</div>
</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>
</div>
</a-dropdown>
</span>
</div>
<!-- 搜索栏 -->
<router-view :isspecialboxshow.sync="isspecialboxshow" :formvalue="formvalue" :jobMainList="jobMainList" :isspinning="isspinning"></router-view>
@ -172,7 +235,7 @@
</div>
</div>-->
<!-- footer部分 -->
<footer v-if="isfootershow">
<footer v-if="isfootershow" :class="loginPage ? 'footer_abs':''">
<div class="w">
<!-- <ul>
<li @click="totop"><router-link to="/list">一手职位</router-link></li>
@ -186,7 +249,7 @@
</li>
</ul>-->
<div>
Copyright © 2015 - 2022 Bocai. All Rights Reserved.
Copyright © 2015-2023 Bocai. All Rights Reserved.
<i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index">豫ICP备2023001993号</a>
</div>
@ -245,6 +308,8 @@ export default {
pageSize: 8,
total: null, //
},
userbaseInfo: JSON.parse(localStorage.getItem('LOGIN_DATA')),
loginPage: false,
}
},
//
@ -299,12 +364,18 @@ export default {
},
$route: {
handler(to) {
console.log()
// console.log("ischange");
// console.log(to);
// console.log(from);
// console.dir(this.navigationBarLocation);
window.addEventListener('scroll', this.navigationBarLocation)
window.addEventListener('scroll', this.windowScroll) //
if (to.fullPath == '/login') {
this.loginPage = true
} else {
this.loginPage = false
}
if (to.fullPath == '/list') {
window.removeEventListener('scroll', this.navigationBarLocation)
return
@ -328,7 +399,10 @@ export default {
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {
console.log()
console.log(this.$route)
if (this.$route.fullPath != '/login') {
this.loginPage = false
}
if (localStorage.getItem('LOGIN_DATA')) {
this.isLogin = true
}
@ -557,6 +631,35 @@ export default {
& > div:nth-child(2) {
flex: 1;
}
.titleSlogan {
position: absolute;
left: 50%;
// padding-top: 32px;
transform: translateX(-50%);
z-index: 9;
svg {
font-size: 120px;
}
div {
width: 68px;
height: 26px;
font-size: 14px;
line-height: 24px;
text-align: center;
border-radius: 999px;
cursor: pointer;
color: #fff;
border: 1px solid #fff;
text-shadow: 3px 3px 10px rgba(0, 0, 0, 0.4);
background-color: rgba(255, 255, 255, 0);
transition: all 0.3s;
&:hover {
// background-color: rgba(255, 255, 255, 0.3);
background-color: #ff4400;
border-color: transparent;
}
}
}
/deep/ .pagetitle {
background-color: #f0f0f0;
padding: 0;
@ -581,7 +684,7 @@ export default {
> span:first-of-type {
display: block;
width: 160px;
font-size: 12px;
font-size: 14px;
color: #333;
line-height: 40px;
// width: 228px;
@ -593,7 +696,7 @@ export default {
}
> span:nth-of-type(2) {
ul {
font-size: 12px;
font-size: 14px;
display: flex;
margin-left: 110px;
li {
@ -670,7 +773,7 @@ export default {
border: 1px solid #eee;
line-height: 38px;
/*margin-top: 4px;*/
font-size: 12px;
font-size: 14px;
cursor: default;
&:hover {
color: #ff4400;
@ -834,8 +937,14 @@ export default {
}
// background-color: black;
}
.footer_abs {
position: absolute;
left: 50%;
bottom: 0;
transform: translateX(-50%);
}
footer {
padding: 20px 30px;
padding: 40px 30px;
margin-top: 20px;
.w {
ul {
@ -858,7 +967,7 @@ export default {
text-align: center;
// margin-top: 16px;
color: #4d575e;
font-size: 14px;
font-size: 12px;
i {
display: inline-block;
vertical-align: middle;
@ -911,4 +1020,12 @@ export default {
}
}
}
.shadow:hover {
cursor: default;
// text-shadow: 4px 4px 4px #000;
transform: scale(1.05);
img {
// box-shadow: 3px 3px 3px 3px #00000033;
}
}
</style>

@ -0,0 +1,462 @@
<template>
<div class>
<div>
<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">
<div style>
<div class="logo" style="box-shadow: none; min-width: 160px; max-width: 160px; margin-left: -8px">
<div @click.stop="clearOpenkey" style="cursor: pointer; border-right: 1px solid transparent">
<router-link to="/main">
<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>
<!-- style="position: relative;top: -1px;" -->
</router-link>
</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">
<template v-for="(item, index) in roles">
<a-menu-item :key="item.name" v-if="item.path != '' && item.level < 3">
<router-link :to="{ name: item.name }">
<a-icon :type="item.icon" />
<a-badge dot v-if="myStatisticRedDot && item.name == 'myStatistic'">
<span class="nav-text" v-text="item.title"></span>
</a-badge>
<span v-else class="nav-text" v-text="item.title"></span>
</router-link>
</a-menu-item>
<a-sub-menu :key="item.name" v-if="item.path == ''">
<span slot="title">
<a-icon :type="item.icon" />
<span v-text="item.title"></span>
</span>
<a-menu-item-group>
<a-menu-item class="f14" :key="child.name" v-for="(child, idx) in item.children">
<!-- <router-link :to="{name:child.name}" :target="child.title == '监控页' ? '_blank' : '_self'"> -->
<router-link :to="{ name: child.name }">{{ child.title }}</router-link>
</a-menu-item>
</a-menu-item-group>
</a-sub-menu>
</template>
</a-menu>
</div>
<div class="flex1" style="z-index: 999">
<div class="logined mr24 fsa" style="height:48px;line-height:48px;">
<div class="fl">
<span class="f16 ml16 fw500 c085">{{ currentPage }}</span>
</div>
<a-dropdown overlayClassName="logindropdown" placement="bottomRight">
<!-- <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 class="fsa f14">
<span class="iconfont icon-morentouxiang mr4 f24" v-if="!userbaseInfo.imgSrc"></span>
<img :src="userbaseInfo.imgSrc" class="mr4" style="border-radius:50%;width:24px;height:24px;" alt v-else />
{{ userbaseInfo.userName }}
</span>
<div class="loginbox" slot="overlay">
<div class="tal">
<img :src="userbaseInfo.imgSrc" alt v-if="userbaseInfo.imgSrc !== ''" style="border-radius:50%;width:24px;height:24px;" />
<span v-else class="iconfont icon-morentouxiang avatar"></span>
<span class="username">
{{
userbaseInfo.userName || userbaseInfo.nickName || userbaseInfo.tel
}}
</span>
</div>
<router-link to="/accountsetting">
<div>
<span>
<i class="iconfont icon-gerenzhongxin"></i>个人中心
</span>
<i class="iconfont icon-youjiantou"></i>
</div>
</router-link>
<router-link to="/main">
<div>
<span>
<i class="iconfont icon-zhanghaoshezhi"></i>返回首页
</span>
<i class="iconfont icon-youjiantou"></i>
</div>
</router-link>
<button @click="logout">退</button>
</div>
</a-dropdown>
</div>
</div>
</div>
<a-layout-content class="trans" style="padding-top: 64px">
<!-- <div id="littleUse" style="margin-top: 48px"> -->
<router-view @setTitle="setTitle"></router-view>
<!-- </div> -->
</a-layout-content>
</div>
<!-- <notice @parentPageCallBack="showMessageFromChild" ref="child"></notice> -->
</div>
</template>
<script>
import { logoutApi } from '../api/login'
export default {
inject: ['reload'],
//
name: '',
//
components: {},
//
props: {},
//
data() {
return {
roles: [
{
id: 294,
parentId: '',
name: ' dashboard',
url: ' ',
icon: 'dashboard',
component: '',
path: '',
title: '仪表盘',
menuName: 'dashboard',
level: 1,
menuType: 1,
children: [
{
id: 295,
parentId: 294,
name: 'MemberInfo',
url: '/memberInfo',
icon: '',
component: 'home',
path: '/home',
title: '我的团队',
menuName: 'dashboard',
level: 2,
menuType: 1,
children: '',
},
{
id: -110,
parentId: 294,
name: 'BocaiTV',
url: 'http://www.idaotian.com/box/btv/#/',
icon: 'home',
component: '',
path: 'http://www.idaotian.com/box/btv/#/',
title: '伯才TV',
menuName: '伯才TV',
},
{
id: 402,
parentId: 294,
name: 'DataScreen',
url: '/statistics/dataScreen',
icon: '',
component: 'statistics/dataScreen',
path: '/statistics/dataScreen',
title: '数据大屏',
menuName: 'dashboard',
level: 2,
menuType: 1,
children: '',
},
],
},
{
id: 294,
parentId: '',
name: ' teammanagement',
url: ' ',
icon: 'dashboard',
component: '',
path: '',
title: '团队管理',
menuName: 'dashboard',
level: 1,
menuType: 1,
children: [
{
id: 295,
parentId: 294,
name: 'DataStatistics',
url: '/memberInfo',
icon: '',
component: 'home',
path: '/home',
title: '团队数据',
menuName: 'dashboard',
level: 2,
menuType: 1,
children: '',
},
],
},
],
openKeys: [],
userbaseInfo: JSON.parse(localStorage.getItem('LOGIN_DATA')),
currentPage: '',
}
},
//
computed: {},
//
watch: {},
//
/**
* 组件实例创建完成属性已绑定但DOM还未生成$ el属性还不存在
*/
created() {},
/**
* el 被新创建的 vm.el 替换并挂载到实例上去之后调用该钩子
* 如果 root 实例挂载了一个文档内元素 mounted 被调用时 vm.el 也在文档内
*/
mounted() {},
//
methods: {
handleClick(e) {
console.log(e)
this.openKeys = e.keyPath
// console.log('click', e.key + "===" + this.sk)
if (e.key == 13) {
this.secondmenu = true
} else {
this.secondmenu = false
}
},
async logout() {
try {
const data = await logoutApi()
console.log(data)
if (data.status === 200) {
localStorage.removeItem('LOGIN_DATA')
this.reload()
this.$router.push('/main')
} else {
console.log(1)
}
} catch (error) {
console.log(error)
this.$message.warning(error.message)
}
},
setTitle(e) {
console.log(e)
this.currentPage = e
},
},
}
</script>
<style scoped lang="less">
@import 'http://matripeweb.oss-cn-hangzhou.aliyuncs.com/antd/ant.css';
@import '//at.alicdn.com/t/c/font_3280016_tiqe2sb1q2.css';
body {
margin: 0;
padding: 0;
background: #f0f2f5;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
}
.ant-menu {
border-right: 1px solid #eee !important;
&::-webkit-scrollbar {
width: 0 !important;
}
}
header.header,
.left-sider {
font-size: 14px;
}
#littleUse {
min-height: calc(100vh - 118px);
min-width: 1080px;
}
.trans {
-webkit-transition: all 0.2s;
height: calc(100vh);
// overflow: scroll;
background-color: #f5f5f5;
transition: all 0.2s;
padding: 18px;
// padding-right: 32px;
margin-left: 152px !important;
}
.header {
background-color: #fff;
padding: 0;
width: 100%;
z-index: 90;
/*box-shadow: 1px 1px 2px #ddd;*/
border-bottom: 1px solid #e8e8e8;
}
.logo {
background: #fff;
/*border-right: 1px solid #e8e8e8;*/
border-bottom: 1px solid #e8e8e8;
position: relative;
height: 49px;
overflow: hidden;
line-height: 48px;
background: #fff;
margin-left: -8px;
-webkit-transition: all 0.3s;
transition: all 0.3s;
text-align: center;
}
.logo img,
.topLogo {
height: 18px;
width: 18px;
display: inline-block;
vertical-align: middle;
overflow: hidden;
margin-bottom: 3px;
}
.logo h1 {
font-size: 16px;
margin: 0 0 0 4px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
font-weight: 500;
vertical-align: middle;
display: inline-block;
}
#components-layout-demo-top-side-2 .logo {
width: 130px !important;
background: url(http://matripe.oss-cn-beijing.aliyuncs.com/adminlogo.png) !important;
}
.breadcrumb {
.breadcrumb-menu {
margin-top: 16px;
}
h2 {
margin-bottom: 0;
font-size: 20px;
float: left;
}
}
.breadcrumb {
background-color: #fff;
padding: 16px 24px;
}
.sm-breadcrumb {
padding: 0 16px;
.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container {
font-size: 12px;
}
.breadcrumb-menu.pb0 {
padding-bottom: 0;
}
.ant-tabs-bar {
border-bottom: 0;
}
.breadcrumb h2 {
margin-bottom: 0;
font-size: 20px;
float: left;
}
.ant-tabs-bar.ant-tabs-top-bar {
margin-bottom: 0;
}
}
.sm-breadcrumb .breadcrumb-menu {
margin-top: 0px;
padding: 16px 0;
}
.p30.sm-p30 {
padding: 16px;
}
/*.ant-modal-body .ant-table-tbody > tr > td,.ant-modal-body .ant-table-thead > tr > th {
white-space: initial;
}
*/
.ant-table-tbody > tr > td:first-child {
overflow: initial;
white-space: initial;
text-overflow: initial;
}
.specialNullA:empty:before {
content: '-';
color: #333;
cursor: pointer;
}
.header,
.left-sider {
position: fixed;
font-size: 12px;
/*-webkit-box-shadow: 1px 1px 2px #ddd;
box-shadow: 1px 1px 2px #ddd;*/
}
/deep/.ant-menu-item-group-title {
padding: 0 !important;
}
.topmenu {
width: 100%;
height: 48px;
}
.ant-layout-header {
height: 49px;
line-height: 49px;
}
.logined {
overflow: hidden;
// border: 1px solid #eee;
line-height: 38px;
font-size: 14px;
cursor: default;
&:hover {
// color: #ff4400;
}
img {
width: 24px;
height: 24px;
}
}
.loginbox {
> div:first-child {
text-align: left;
padding-left: 0;
}
}
/deep/.ant-tag {
&.ant-tag-checkable:hover {
// color: #ff4400;
cursor: pointer;
}
&.ant-tag-checkable:active {
// color: #ff4400;
background-color: transparent;
}
&.ant-tag-checkable-checked {
background-color: transparent;
color: #1890ff;
}
}
</style>

@ -167,7 +167,7 @@
</li>
</ul> -->
<div>
Copyright © 2015 - 2022 Bocai. All Rights Reserved. <i></i>
Copyright © 2015-2023 Bocai. All Rights Reserved. <i></i>
<a target="_blank" href="https://beian.miit.gov.cn/#/Integrated/index"
>豫ICP备2023001993号</a
>

Loading…
Cancel
Save