Commit 73bca1d7 by zhongqm

update:迁移新模块-干部考核模块

parent 42b28f9a
...@@ -222,6 +222,14 @@ span { ...@@ -222,6 +222,14 @@ span {
background: url('../images/base.svg') no-repeat; background: url('../images/base.svg') no-repeat;
} }
.item_header-img-cadre {
background: url('../images/cadre.svg') no-repeat;
}
.item_header-img-assess_new {
background: url('../images/assess_new.svg') no-repeat;
}
.item_header-img-assess { .item_header-img-assess {
background: url('../images/assess.svg') no-repeat; background: url('../images/assess.svg') no-repeat;
} }
...@@ -242,8 +250,8 @@ span { ...@@ -242,8 +250,8 @@ span {
background: url('../images/reward.svg') no-repeat; background: url('../images/reward.svg') no-repeat;
} }
.item__wrap+.item__header, .item__wrap + .item__header,
.item__content+.item__header { .item__content + .item__header {
margin-top: 10px; margin-top: 10px;
} }
...@@ -348,12 +356,30 @@ span { ...@@ -348,12 +356,30 @@ span {
padding-top: 2px; padding-top: 2px;
} }
.child_row_title_dot {
margin-right: 5px;
padding-left: 15px;
}
.item__content-note { .item__content-note {
right: 16px; right: 16px;
font-size: 14px; font-size: 14px;
color: #9B9B9B; color: #9B9B9B;
margin: 3px 0; margin: 3px 0;
line-height: 16px line-height: 16px;
display: flex;
}
.item__content-note.t-black {
color: #000000;
}
.text-left .item__content-note {
min-width: 44px;
text-align: left;
display: flex;
justify-content: flex-start;
} }
.wrap_content { .wrap_content {
...@@ -402,6 +428,18 @@ span { ...@@ -402,6 +428,18 @@ span {
-webkit-transform: translate3d(0, 0, 0) !important; -webkit-transform: translate3d(0, 0, 0) !important;
} }
.expand.fold_icon {
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
.children_box.expand {
opacity: 1;
height: auto;
transform: translate3d(0, 0, 0) !important;
-webkit-transform: translate3d(0, 0, 0) !important;
}
.toast { .toast {
display: block; display: block;
position: fixed; position: fixed;
...@@ -607,18 +645,19 @@ span { ...@@ -607,18 +645,19 @@ span {
/* word-break: break-all;/* /* word-break: break-all;/*
word-wrap: break-word; */ word-wrap: break-word; */
} }
.ygjx_table tr td a { .ygjx_table tr td a {
text-decoration: none; text-decoration: none;
display: inline-block; display: inline-block;
width: 100%; width: 100%;
} }
.ygjx_table tr td a:link,
.ygjx_table tr td a:hover, .ygjx_table tr td a:link,
.ygjx_table tr td a:active, .ygjx_table tr td a:hover,
.ygjx_table tr td a:visited{ .ygjx_table tr td a:active,
color: inherit; .ygjx_table tr td a:visited {
color: inherit;
} }
.ygjx_table { .ygjx_table {
...@@ -649,7 +688,7 @@ span { ...@@ -649,7 +688,7 @@ span {
/* text-align: center; */ /* text-align: center; */
} }
.ygjx_table tr td:first-child>div { .ygjx_table tr td:first-child > div {
margin-left: 5px; margin-left: 5px;
} }
...@@ -784,7 +823,7 @@ span { ...@@ -784,7 +823,7 @@ span {
color: #333333; color: #333333;
} }
.modal__tab__view>ul li:last-child { .modal__tab__view > ul li:last-child {
border-bottom: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE;
} }
...@@ -870,7 +909,7 @@ span { ...@@ -870,7 +909,7 @@ span {
.modal__jl__view ul li ul li :first-child { .modal__jl__view ul li ul li :first-child {
font-weight: 500; font-weight: 500;
color: #000000; color: #000000;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
} }
...@@ -883,10 +922,10 @@ span { ...@@ -883,10 +922,10 @@ span {
display: none; display: none;
} }
.modal__cf__view>ul>li:first-child { .modal__cf__view > ul > li:first-child {
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
color: #000000; color: #000000;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
} }
...@@ -901,7 +940,7 @@ span { ...@@ -901,7 +940,7 @@ span {
.modal__cf__view ul li ul li :first-child { .modal__cf__view ul li ul li :first-child {
font-weight: 500; font-weight: 500;
color: #000000; color: #000000;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
} }
...@@ -918,7 +957,7 @@ span { ...@@ -918,7 +957,7 @@ span {
color: #FFFFFF; color: #FFFFFF;
font-size: 15px; font-size: 15px;
margin: 0 auto; margin: 0 auto;
margin-top: 10px; margin-top: 10px;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
} }
...@@ -1014,7 +1053,7 @@ span { ...@@ -1014,7 +1053,7 @@ span {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
text-align: center; text-align: center;
font-weight: 500; font-weight: 500;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
} }
...@@ -1036,7 +1075,7 @@ span { ...@@ -1036,7 +1075,7 @@ span {
.tips__title { .tips__title {
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
} }
...@@ -1102,16 +1141,16 @@ span { ...@@ -1102,16 +1141,16 @@ span {
margin: 10px 0 6px 0; margin: 10px 0 6px 0;
} }
.rewardpunish__tiem>div:last-child { .rewardpunish__tiem > div:last-child {
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #595757; color: #595757;
} }
.rewardpunish__tiem>div:first-child { .rewardpunish__tiem > div:first-child {
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
flex-grow: 1; flex-grow: 1;
margin-right: 10px; margin-right: 10px;
} }
...@@ -1162,4 +1201,72 @@ span { ...@@ -1162,4 +1201,72 @@ span {
background: url('../images/icon_liststyle.png') no-repeat center; background: url('../images/icon_liststyle.png') no-repeat center;
background-size: 10px; background-size: 10px;
margin-right: 6px; margin-right: 6px;
} }
.fold_icon {
width: 18px;
height: 16px;
background: url('../images/resume_more_2.png') no-repeat center;
background-size: 16px;
margin-left: 5px;
transition: transform .2s;
-webkit-transition: -webkit-transform .2s;
}
.children_box {
overflow: hidden;
transition: height 1s;
-webkit-transition: height 1s;
}
.drop {
font-weight: 900;
margin: 0 5px 0 10px;
}
.file_link, .ass_file_link,.a_link {
display: flex;
align-items: center;
color: #0101BF;
}
.file-icon {
width: 16px;
height: 16px;
margin-right: 2px;
}
.has-children{
position: relative;
overflow: hidden;
}
/*角标样式*/
.has-children:not(.no-show)::after{
content: '';
position: absolute;
right: -12px;
bottom: -12px;
width: 0;
height: 0;
border: 12px solid transparent;
border-bottom: 12px solid rgba(155,155,155,0.5);
transform: rotate(135deg);
}
/*箭头样式*/
/*.has-children:not(.no-show)::after{*/
/* content: '';*/
/* position: absolute;*/
/* right: 2px;*/
/* bottom: 2px;*/
/* width: 16px;*/
/* height: 16px;*/
/* background: url('../images/arrow-down.png') no-repeat center;*/
/* background-size: 16px;*/
/*}*/
/*.expand.has-children:not(.no-show)::after {*/
/* -webkit-transform: rotate(180deg);*/
/* transform: rotate(180deg);*/
/*}*/
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="20" height="20" viewBox="0 0 20 20"><defs><clipPath id="master_svg0_22_2104"><rect x="0" y="0" width="20" height="20" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_22_2104)"><g><g><path d="M10.46857,18.9909L1.947021,18.9909C1.423996,18.9909,1,18.5669,1,18.0439L1,1.947021C0.999999849082,1.423996,1.423996,1,1.947021,1.000000075459L16.149,1.000000075459C16.6721,1.000000150918,17.0961,1.423996,17.0961,1.947022L17.0961,7.38683C15.0416,5.64484,11.9735,5.85612,10.17722,7.86328C8.380939999999999,9.87044,8.51014,12.9431,10.46857,14.7924L10.46857,18.9909ZM2.89569,3.84106L2.89569,5.25871L15.2045,5.25871L15.2045,3.84106L2.89569,3.84106ZM2.89569,7.63245L2.89569,9.05009L8.577,9.05009L8.577,7.62997L2.89569,7.63245ZM2.89569,11.4238L2.89569,12.8439L6.68707,12.8439L6.68707,11.4156L2.89569,11.4238ZM12.3354,14.6786C10.31167,13.487,9.84701,10.76097,11.3617,8.96623C12.8764,7.17149,15.6418,7.17149,17.1565,8.96623C18.6712,10.76097,18.2066,13.487,16.1828,14.6786L17.0985,19L15.6628,19L14.255,17.5502L12.7994,19L11.4807,19L12.3338,14.6803L12.3354,14.6786ZM14.2583,13.3995C15.3053,13.3995,16.154,12.5507,16.154,11.5038C16.154,10.45682,15.3053,9.60809,14.2583,9.60809C13.2113,9.60809,12.3626,10.45682,12.3626,11.5038C12.3671,12.5466,13.213,13.3899,14.2558,13.3912L14.2583,13.3995Z" fill="#9B9B9B" fill-opacity="1"/></g></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="20" height="20" viewBox="0 0 20 20"><defs><clipPath id="master_svg0_22_0128"><rect x="0" y="0" width="20" height="20" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_22_0128)"><g><path d="M7.71335,6.33901C7.68653,7.89498,8.49022,9.347529999999999,9.82273,10.15138C11.1217,10.92738,12.7419,10.92738,14.0409,10.15138C15.3553,9.35918,16.156399999999998,7.93434,16.1503,6.39971C16.2158,4.0083400000000005,14.3096,2.0269562,11.9175,2C9.56102,2.0379286,7.67921,3.98041,7.71335,6.33901L7.71335,6.33901ZM7.59252,10.80916L7.59252,7.7532C7.56071,7.41305,7.26114,7.1618,6.92064,7.18969L1.6718769999999998,7.18969C1.311078,7.21338,1.0236906,7.50077,1,7.86157L1,18.0015L3.99636,18.0015C3.20582,14.6578,5.0421,12.4038,7.59307,10.80916L7.59252,10.80916ZM3.02649,8.95066L5.72266,8.95066C5.93482,8.95066,6.10682,9.12266,6.10682,9.33483C6.10682,9.546990000000001,5.93482,9.71899,5.72266,9.71899L3.02645,9.71899C2.80885,9.727070000000001,2.62804,9.55285,2.62804,9.3351C2.62804,9.11735,2.80885,8.94313,3.02645,8.95121L3.02649,8.95066ZM2.64229,10.64229C2.64229,10.53934,2.68238,10.44289,2.755,10.37082C2.8267100000000003,10.29868,2.92422,10.25812,3.02592,10.25812L5.72261,10.25812C5.93478,10.25812,6.10678,10.43011,6.10678,10.64228C6.10678,10.85445,5.93478,11.02645,5.72261,11.02645L3.02649,11.02645C2.8145800000000003,11.02584,2.6429400000000003,10.8542,2.64229,10.64229L2.64229,10.64229ZM14.5919,11.49298L13.0217,14.8605L12.4582,13.3986C12.5082,13.113,12.6232,12.8427,12.7941,12.6086C13.0217,12.0456,13.1301,11.81861,12.5671,11.48267C12.3155,11.34336,12.0181,11.31208,11.743,11.39598C11.4677,11.48016,11.2379,11.67152,11.1053,11.92697C10.87821,12.4905,11.4412,12.717,11.4412,13.0529C11.3605,13.6576,11.2483,14.2577,11.1052,14.8507C10.96272,15.444,11.1052,15.295,10.54227,14.1789C10.11618,13.2584,9.74421,12.3138,9.42825,11.34992C6.39616,12.3935,4.82594,14.4059,4.82594,17.3437C4.82594,18.4697,18.6455,19.0332,18.9814,16.671799999999998C19.3152,14.3094,15.0482,10.37895,14.5925,11.50489L14.5925,11.49298L14.5919,11.49298Z" fill="#9B9B9B" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1702607158702" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4275" width="32" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M234.666667 469.333333h85.333333a85.333333 85.333333 0 0 1 85.333333 85.333334v21.333333a85.333333 85.333333 0 0 1-85.333333 85.333333h-42.666667v85.333334h-42.666666V469.333333z m448 170.666667v106.666667h-42.666667V469.333333h149.333333v42.666667h-106.666666v85.333333h85.333333v42.666667h-85.333333zM618.666667 85.333333l277.333333 277.333334v490.645333A85.205333 85.205333 0 0 1 810.88 938.666667H213.12A85.333333 85.333333 0 0 1 128 853.333333V170.666667c0-47.125333 38.165333-85.333333 85.12-85.333334H618.666667z m-0.448 277.504h217.493333L618.666667 145.664l-0.448 217.173333zM853.333333 853.333333V405.333333H618.496c-23.466667 0-42.496-19.072-42.496-42.496V128H213.12C189.738667 128 170.666667 147.093333 170.666667 170.666667v682.666666c0 23.530667 19.093333 42.666667 42.453333 42.666667h597.76c23.424 0 42.453333-19.093333 42.453333-42.688zM426.666667 469.333333h64a106.666667 106.666667 0 0 1 106.666666 106.666667v64a106.666667 106.666667 0 0 1-106.666666 106.666667h-64V469.333333z m42.666666 234.666667h21.333334a64 64 0 0 0 64-64v-64a64 64 0 0 0-64-64h-21.333334v192z m-192-192v106.666667h42.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-21.333333a42.666667 42.666667 0 0 0-42.666667-42.666667h-42.666667z" fill="#3D3D3D" p-id="4276"></path></svg>
\ No newline at end of file
...@@ -28,7 +28,7 @@ let config = { ...@@ -28,7 +28,7 @@ let config = {
wyResume: '/hrInterface/resumeBaseV.do', wyResume: '/hrInterface/resumeBaseV.do',
hcResume: '/hrInterface/resumeBaseV.do',//合诚 hcResume: '/hrInterface/resumeBaseV.do',//合诚
photo: 'imm-api/api/emp/getExtInfo', photo: 'imm-api/api/emp/getExtInfo',
file: 'hr.resume.attachmentInfoV',
}, },
renderType: RENDER_TYPE, renderType: RENDER_TYPE,
renderItem: { renderItem: {
...@@ -71,19 +71,32 @@ let config = { ...@@ -71,19 +71,32 @@ let config = {
note: ['jobstarttime', 'jobendtime'], note: ['jobstarttime', 'jobendtime'],
}, },
}, },
cadreEvaluationVoList: {
name: '干部考核',
type: RENDER_TYPE.G,
img: 'cadre',
list: {
title: 'year',
note: 'result',
chilkey: ['attachmentName', 'attachmentFile'],
children: 'attachmentArray',
},
},
//旧版 //旧版
assessVoList: { assessVoList: {
name: '绩效考核', name: '员工考核',
type: RENDER_TYPE.D, type: RENDER_TYPE.D,
img: 'assess', img: 'assess_new',
list: { list: {
title: 'assyear', title: 'assyear',
note: 'assgrade', note: 'assgrade',
chilkey: ['month', 'assgrade'],//根据原始数据自定义字段
children: 'months',//
}, },
}, },
// 新版 // 新版
// assessVoList: { // assessVoList: {
// name: '员工绩效', // name: '员工考核',
// type: RENDER_TYPE.D, // type: RENDER_TYPE.D,
// img: 'reward', // img: 'reward',
// list: { // list: {
......
import common from './common'; import common from './common';
const isProduct = process.env.PACK_ENV === 'prod'
const config = { const config = {
product: true, product: true,
ssoToken: 'token', ssoToken: 'token',
baseUrl: 'https://jffcvp.cndrealty.com:4433/', //区分测试环境和正式环境
appkey: '781d2ec4' // 正式 baseUrl: isProduct ? 'https://jffcvp.cndrealty.com:4433/' : 'https://mxytest.cndrealty.com:4433/',
}; appkey: isProduct ? '781d2ec4' : 'd504275e', // 正式
// baseUrl: 'https://mxytest.cndrealty.com:4433/', //测试
// appkey: 'd504275e', // 测试
}
;
export default Object.assign(config, common); export default Object.assign(config, common);
...@@ -45,14 +45,25 @@ import common from './common'; ...@@ -45,14 +45,25 @@ import common from './common';
// appkey: 'd504275e', // appkey: 'd504275e',
// baseUrl: 'https://mxytest.cndrealty.com:4433/', // baseUrl: 'https://mxytest.cndrealty.com:4433/',
// }; // };
// const config = {
// product: false,
// ssoToken: 'token',
// userid: '46000011',
// appKey: 'd504275e',
// uid: 'zcm',
// token: 'T5579119180350464',
// baseUrl: 'https://mxytest.cndrealty.com:4433/',
// };
const config = { const config = {
product: false, product: false,
ssoToken: 'token', ssoToken: 'token',
userid: '46000011', userid: '46000011',
appKey: 'd504275e', // loginuserid: '10000360',
uid: 'zcm', loginuserid: '46000011',
token: 'T5579119180350464', appKey: 'd504275e',
baseUrl: 'https://mxytest.cndrealty.com:4433/', uid: 'hqhuang@cndrealty.com',
token,
baseUrl: 'https://mxytest.cndrealty.com:4433/',
}; };
export default Object.assign(config, common); export default Object.assign(config, common);
...@@ -27,6 +27,9 @@ let appKey = ''; ...@@ -27,6 +27,9 @@ let appKey = '';
let photoUrl = ''; let photoUrl = '';
let items = []; let items = [];
let url = configuration.methods.resume; let url = configuration.methods.resume;
let cadreFileList = [];
let assFileList = [];
let orgType;
const $mas = new MAS().config({ const $mas = new MAS().config({
baseUrl: configuration.baseUrl, baseUrl: configuration.baseUrl,
...@@ -66,7 +69,7 @@ app.ready(() => { ...@@ -66,7 +69,7 @@ app.ready(() => {
} }
$mas.token = token; $mas.token = token;
mount(); mount();
//添加水印 //todo 开发环境调试添加水印
setWaterMark(`黄华强hqhuang@cndrealty.com`,'') setWaterMark(`黄华强hqhuang@cndrealty.com`,'')
// createWatermark({ content: '黄华强hqhuang@cndrealty.com' }); // createWatermark({ content: '黄华强hqhuang@cndrealty.com' });
}); });
...@@ -159,7 +162,6 @@ function initUser() { ...@@ -159,7 +162,6 @@ function initUser() {
} }
token = user.ssoToken; token = user.ssoToken;
appKey = extra.appkey || configuration.appkey; appKey = extra.appkey || configuration.appkey;
let orgType;
if (!extra.extra) { if (!extra.extra) {
orgType = eval('(' + user.extra + ')').orgType; orgType = eval('(' + user.extra + ')').orgType;
} else { } else {
...@@ -364,14 +366,17 @@ function render(data) { ...@@ -364,14 +366,17 @@ function render(data) {
jobVoList: configuration.renderItem.jobVoList, jobVoList: configuration.renderItem.jobVoList,
// 历史任职 // 历史任职
jobHistoryVoList: configuration.renderItem.jobHistoryVoList, jobHistoryVoList: configuration.renderItem.jobHistoryVoList,
// 绩效信息
assessVoList: configuration.renderItem.assessVoList,
// 工作经历 // 工作经历
workVoList: configuration.renderItem.workVoList, workVoList: configuration.renderItem.workVoList,
// 教育经历 // 教育经历
eduVoList: configuration.renderItem.eduVoList, eduVoList: configuration.renderItem.eduVoList,
// 社会关系 // 社会关系
familyVoList: configuration.renderItem.familyVoList, familyVoList: configuration.renderItem.familyVoList,
// 干部考核 -
cadreEvaluationVoList: configuration.renderItem.cadreEvaluationVoList,
// 绩效信息
assessVoList: configuration.renderItem.assessVoList,
// 奖惩信息 // 奖惩信息
rewardPunishVoList: configuration.renderItem.rewardPunishVoList rewardPunishVoList: configuration.renderItem.rewardPunishVoList
}; };
...@@ -420,6 +425,8 @@ function render(data) { ...@@ -420,6 +425,8 @@ function render(data) {
eduVoList: configuration.renderItem.eduVoList, eduVoList: configuration.renderItem.eduVoList,
// 社会关系 // 社会关系
familyVoList: configuration.renderItem.familyVoList, familyVoList: configuration.renderItem.familyVoList,
// 干部考核 -
cadreEvaluationVoList: configuration.renderItem.cadreEvaluationVoList,
// 绩效信息 // 绩效信息
assessVoList: configuration.renderItem.assessVoList, assessVoList: configuration.renderItem.assessVoList,
//奖惩 //奖惩
...@@ -467,13 +474,19 @@ function render(data) { ...@@ -467,13 +474,19 @@ function render(data) {
default: default:
showToast(`#jobGradeType = ${jobGradeType}; 不明人员`); showToast(`#jobGradeType = ${jobGradeType}; 不明人员`);
} }
addFileEvent()//干部测评附件
addAssFileEvent()//绩效附件
eleHideChil()
eleHide(); eleHide();
// eleHideShrink() // eleHideShrink()
} }
function renderer(renderTemp, data) { function renderer(renderTemp, data) {
let type = renderTemp.type; let type = renderTemp.type;
// 干部测评没有数据不展示
if (type === RENDER_TYPE.G && (!data || !data.length)) {
return
}
container.appendChild(headerRenderer(renderTemp)); container.appendChild(headerRenderer(renderTemp));
switch (type) { switch (type) {
case RENDER_TYPE.A: case RENDER_TYPE.A:
...@@ -486,6 +499,9 @@ function renderer(renderTemp, data) { ...@@ -486,6 +499,9 @@ function renderer(renderTemp, data) {
container.appendChild(listCRenderer(renderTemp.list, data)); container.appendChild(listCRenderer(renderTemp.list, data));
break; break;
case RENDER_TYPE.G: // 干部考核
container.appendChild(listGRenderer(renderTemp.list, data));
break;
case RENDER_TYPE.D: case RENDER_TYPE.D:
container.appendChild(listDRenderer(renderTemp.list, data)); container.appendChild(listDRenderer(renderTemp.list, data));
...@@ -531,6 +547,10 @@ function function_name() { ...@@ -531,6 +547,10 @@ function function_name() {
// 物业页面 // 物业页面
function propertyRenderer(renderTemp, data) { function propertyRenderer(renderTemp, data) {
let type = renderTemp.type; let type = renderTemp.type;
// 干部测评没有数据不展示
if (type === RENDER_TYPE.G && (!data || !data.length)) {
return
}
container.appendChild(propertyHeaderRenderer(renderTemp)); container.appendChild(propertyHeaderRenderer(renderTemp));
switch (type) { switch (type) {
...@@ -543,6 +563,9 @@ function propertyRenderer(renderTemp, data) { ...@@ -543,6 +563,9 @@ function propertyRenderer(renderTemp, data) {
case RENDER_TYPE.C: case RENDER_TYPE.C:
container.appendChild(propertyListCRenderer(renderTemp.list, data)); container.appendChild(propertyListCRenderer(renderTemp.list, data));
break; break;
case RENDER_TYPE.G: // 干部考核
container.appendChild(listGRenderer(renderTemp.list, data));
break;
case RENDER_TYPE.D: case RENDER_TYPE.D:
container.appendChild(propertyListDRenderer(renderTemp.list, data)); container.appendChild(propertyListDRenderer(renderTemp.list, data));
break; break;
...@@ -2021,39 +2044,241 @@ function listenerChange(target, clickNode, i) { ...@@ -2021,39 +2044,241 @@ function listenerChange(target, clickNode, i) {
}); });
} }
function listDRenderer(list, data) {
console.log('绩效', { list, data });
//旧版绩效 function isImage(ext) {
return [
'png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].indexOf(ext.toLowerCase()) !== -1;
}
//渲染附件图标
function renderFileIcon(fileName) {
//获取最后一个.的位置
const index = fileName.lastIndexOf(".");
console.log('. index>>', index)
//获取后缀
const ext = fileName.substr(index + 1);
console.log('附件后缀>>', ext);
if (ext.includes('pdf')) {
return `<img class="file-icon" src="${require('@/assets/images/pdf.png')}" alt=""/>`
} else if (ext.includes('xls')) {
return `<img class="file-icon" src="${require('@/assets/images/excel.png')}" alt=""/>`
} else if (ext.includes('doc')) {
return `<img class="file-icon" src="${require('@/assets/images/word.png')}" alt=""/>`
} else if (isImage(ext)) {
return `<img class="file-icon" src="${require('@/assets/images/img.png')}" alt=""/>`
} else {
return `<img class="file-icon" src="${require('@/assets/images/attachment.png')}" alt=""/>`
}
}
//渲染文件名称
function renderFileName(attachmentName) {
const index = attachmentName.lastIndexOf(".");
console.log('attachmentFile.substring(0,index)>>', index, attachmentName, attachmentName.substring(0, index))
return index !== -1 ? attachmentName.substring(0, index) : attachmentName
}
//干部测评渲染
function listGRenderer(list, data) {
let temp = ``; let temp = ``;
if (data && data.length) { if (data && data.length) {
let cadreFile = []
data.forEach((item, index) => { data.forEach((item, index) => {
let sub = '';
let note = list.note; let note = list.note;
// console.log('propertyListDRenderer',list); let chil = list.chilkey
if (list.subTitle) { let children = item[list.children]
list.subTitle.forEach((s, i) => { if (chil instanceof Array && children) {
sub += (i && '|') || ''; let childrenHtml = ``
sub += item[s] || '无'; let sortChildren = children.sort((a, b) => {
}); return a[list.chilkey[0]].localeCompare(b[list.chilkey[0]])
} })
if (note instanceof Object && note.length) { console.log('gbkh-sortChildren>>', sortChildren)
let t1 = data[index][list.note[0]]; sortChildren.forEach((items) => {
let t2 = data[index][list.note[1]]; childrenHtml += itemRenderer(
`<span class="file_link"> ${renderFileIcon(items[list.chilkey[1]])} ${renderFileName(items[list.chilkey[0]])}</span>`,
// `<a class="a_link" > ${renderFileIcon(items[list.chilkey[1]])} ${renderFileName(items[list.chilkey[0]])}</a>`,
'',
'children_content'
);
cadreFile.push(items[list.chilkey[1]])
})
temp += itemRenderer( temp += itemRenderer(
`${ `${item[list.title]}年`,
item[list.title] `<span class="item__content-note t-black ">${item[note] || ''}</span>`,
}<p class='item__content-sub-title'>${sub}</p>`, `${childrenHtml ? 'has-children text-left' : 'text-left'}`
`<span class='item__content-note'>${t1}${nowOrNot(
t2
)}</span>`
); );
if (childrenHtml) {
temp += `<div class="children_box">${childrenHtml}</div>`
}
} else { } else {
temp += itemRenderer( temp += itemRenderer(
`${item[list.title]}年`, `${item[list.title]}年`,
`<span class='item__content-note'>${item[note]}</span>` `<span class="item__content-note t-black">${item[note]}</span>`
); );
} }
}); });
cadreFileList = cadreFile
} else {
temp = noDataRenderer();
}
return renderWrap(temp, data.length > 3);
}
function addFileEvent() {
console.log('xxx')
let file_note = document.getElementsByClassName('file_link');
// console.log('assFileList>>', assFileList)
for (let i = 0; i < file_note.length; i++) {
registerEvent(file_note[i], cadreFileList[i])
}
}
function addAssFileEvent() {
console.log('--------------------------')
let file_note = document.getElementsByClassName('ass_file_link');
console.log('assFileList>>', assFileList)
for (let i = 0; i < file_note.length; i++) {
registerEvent(file_note[i], assFileList[i])
}
}
//预览pdf
function registerEvent(clickNode, data) {
clickNode.addEventListener('click', () => {
// console.log('registerEvent--data>>', data)
const fileName = data.split('?')[1] || ''
const index = fileName.lastIndexOf(".");
console.log('. index>>', index)
//获取后缀
const fileType = fileName.substr(index + 1);
console.log('fileType>>', fileType)
console.log('orgType>>', orgType)
let apiCode = 'hr.resume.attachmentInfoV'
switch (orgType) {
case 1:
// 房开
apiCode = 'hr.resume.attachmentInfoV'
break;
case 6:
// 物业
apiCode = 'wyhr.resume.attachmentInfoV'
break;
case 7:
// 合诚
apiCode = 'hchr.resume.attachmentInfoV'
break;
}
const url = `${configuration.baseUrl}mas-api/proxy?alias=${apiCode}&${fileName}&tocken=${$mas.token}`
console.log('url>>', url)
// if (fileType === 'pdf') {
// app.showPdf([{url}])
// } else {
// app.openUrl(url)
// }
if (fileType === 'pdf') {
app.showPdf([{url}])
} else if (fileType.includes('xls') || fileType.includes('doc')) {
console.log('run>>>> xls,doc')
// app.openUrl(`https://view.officeapps.live.com/op/view.aspx?src=${url}`)
window.location.href = url
} else if (fileType === 'txt') {
app.showTxt([{url}])
} else {
console.log('run>>> else-----')
app.openUrl(url)
}
});
}
//绩效考核渲染
function listDRenderer(list, data) {
// console.log('绩效', {list,data})
//旧版绩效
// console.log('月度渲染>>', { list, data })
let temp = ``;
if (data && data.length) {
assFileList = []
data.forEach((item, index) => {
let sub = '';
let note = list.note;
// console.log('propertyListDRenderer',list);
// if (list.subTitle) {
// list.subTitle.forEach((s, i) => {
// sub += (i && '|') || '';
// sub += item[s] || '无';
// });
// }
// if (note instanceof Object && note.length) {
// let t1 = data[index][list.note[0]];
// let t2 = data[index][list.note[1]];
// temp += itemRenderer(
// `${
// item[list.title]
// }<p class="item__content-sub-title">${sub}</p>`,
// `<span class="item__content-note">${t1}至${nowOrNot(
// t2
// )}</span>`
// );
// } else {
// temp += itemRenderer(
// `${item[list.title]}年`,
// `<span class="item__content-note">${item[note]}</span>`
// );
// }
//新增月度数据
temp += itemRenderer(
`${item[list.title]}年`,
`<span class="item__content-note t-black">${item[note]} </span>`,
`${(item.months && item.months.length) || (item.attachmentArray && item.attachmentArray.length) ? 'has-children text-left' : 'text-left'}`
);
if ((item.months && item.months.length) || (item.attachmentArray && item.attachmentArray.length)) {
temp += '<div class="children_box">'
if (item.attachmentArray && item.attachmentArray.length) {
let sortChildren = item.attachmentArray.sort((a, b) => {
return a.attachmentName.localeCompare(b.attachmentName)
})
console.log('jx-sortChildren>>>', sortChildren)
sortChildren.forEach((items) => {
temp += itemRenderer(
`<span class="ass_file_link" data-url="${items.attachmentFile}">${renderFileIcon(items.attachmentFile)}${renderFileName(items.attachmentName)}</span>`,
'',
'children_content'
);
assFileList.push(items.attachmentFile)
})
}
if (item.months && item.months.length) {
item.months.forEach((itemM, indexM) => {
temp += itemRenderer(
`<span class="child_row_title_dot">·</span><span>${itemM.month}</span>`,
`<span class="item__content-note">${itemM.assgrade}</span>`,
'text-left'
);
})
}
temp += '</div>'
}
});
} else { } else {
temp = noDataRenderer(); temp = noDataRenderer();
} }
...@@ -2432,19 +2657,19 @@ function filter(item, data) { ...@@ -2432,19 +2657,19 @@ function filter(item, data) {
// 处理绩效异常 // 处理绩效异常
if (item === 'assessVoList') { if (item === 'assessVoList') {
if (data.length === 0) { if (data.length === 0) {
assessData = ''; assessData = [];
} else { } else {
for (let i = 0; i < assessData.length; i++) { for (let i = 0; i < assessData.length; i++) {
if (!assessData[i].assgrade) { if (!assessData[i].assgrade) {
assessData = ''; assessData[i].assgrade = '';
break; break;
} }
} }
let templist = []; let templist = []
let sumList = []; let sumList = []
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
const index = templist.indexOf(data[i].assyear); const index = templist.indexOf(data[i].assyear)
let _assyear = data[i].asstype; let _assyear = data[i].asstype
// if(data[i].asstype==="半年度"){ // if(data[i].asstype==="半年度"){
// if(data[i].assendtime.substring(5,10)==="06-30"){ // if(data[i].assendtime.substring(5,10)==="06-30"){
// _assyear='上半年度' // _assyear='上半年度'
...@@ -2475,14 +2700,61 @@ function filter(item, data) { ...@@ -2475,14 +2700,61 @@ function filter(item, data) {
// sumList[index].children.push({...data[i],asstype: _assyear}) // sumList[index].children.push({...data[i],asstype: _assyear})
// } // }
// } // }
}
// assessData = sumList
// 处理月度数据
let obj = {};
assessData.forEach(item => {
if (!obj[item.assyear]) {
obj[item.assyear] = [];
}
if (item.asstype === '月度') {
item.month = Number(item.assendtime.substring(5, 7)) + '月'
item.monthNum = Number(item.assendtime.substring(5, 7))
obj[item.assyear].push(item);
}
});
// console.log('年分组>>', obj)
assessData = data.filter(i => i.asstype === '年度')
let objKeys = Object.keys(obj)
let dataYears = assessData.map(item => item.assyear)
let noYearData = {}
if (objKeys.length !== assessData.length) {
noYearData = {assyear: objKeys.find(item => !dataYears.includes(item)), assgrade: ''}
} }
if (noYearData.assyear) {
assessData.unshift(noYearData)
}
assessData.forEach(item => {
item.months = obj[item.assyear]
})
//月份升序
assessData.forEach(item => {
if (item.months && item.months.length) {
item.months.sort((a, b) => {
return a.monthNum - b.monthNum
})
}
})
// assessData = sumList
} }
assessData = data.filter(i => i.asstype === '年度');
console.log(3333, assessData); // assessData = data.filter(i => i.asstype === '年度')
// console.log('filter-assessData>>', assessData)
// console.log(3333,assessData)
} }
return assessData; return assessData;
...@@ -2490,13 +2762,54 @@ function filter(item, data) { ...@@ -2490,13 +2762,54 @@ function filter(item, data) {
function eleHide() { function eleHide() {
let wrap_content = document.getElementsByClassName('wrap_content'); let wrap_content = document.getElementsByClassName('wrap_content');
console.log('wrap_content>>', wrap_content)
for (let i = 0; i < wrap_content.length; i++) { for (let i = 0; i < wrap_content.length; i++) {
console.log('')
if (wrap_content[i].childNodes.length > 3) { if (wrap_content[i].childNodes.length > 3) {
let clickNode = wrap_content[i].nextElementSibling; let clickNode = wrap_content[i].nextElementSibling;
wrapContent(wrap_content[i], clickNode); wrapContent(wrap_content[i], clickNode);
} }
} }
} }
function eleHideChil() {
console.log('eleHideChil>>>')
let wrap_box = document.getElementsByClassName('children_box');
let hasChildrenEle = document.getElementsByClassName('has-children');
for (let i = 0; i < wrap_box.length; i++) {
let clickNode = hasChildrenEle[i];
wrapContentChil(wrap_box[i], clickNode);
}
console.log('eleHideChil>>>')
}
function wrapContentChil(target, clickNode, num = 0) {
let offsetHeight = target.offsetHeight
let item = target.childNodes;
let allHeight = target.offsetHeight + 'px';
let showEleHeight = 0;
for (let i = 0; i < num; i++) {
showEleHeight += item[i].offsetHeight;
if (i === num - 1) {
showEleHeight += 'px';
}
}
target.style.height = showEleHeight;
target.style.transitionDuration = offsetHeight / 150 + 's';
clickNode && clickNode.addEventListener('click', () => {
if (target.style.height == showEleHeight || target.style.height == (showEleHeight + 'px')) {
target.classList.add('expand');
target.style.height = allHeight;
clickNode.classList.add('expand')
target.parentNode.style.height = (target.parentNode.offsetHeight + offsetHeight) + 'px'
} else {
target.style.height = showEleHeight;
target.classList.remove('expand');
clickNode.classList.remove('expand')
target.parentNode.style.height = (target.parentNode.offsetHeight - offsetHeight) + 'px'
}
});
attachAtivated(clickNode);
}
function eleHideShrink(type) { function eleHideShrink(type) {
let wrap_content_shrink = document.getElementsByClassName('wrap_content_shrink'); let wrap_content_shrink = document.getElementsByClassName('wrap_content_shrink');
......
(function (root,factory) {
if (typeof define === 'function' && define.amd) {
/*AMD. Register as an anonymous module.
*define([], factory); */
define([], factory());
} else if (typeof module === 'object' && module.exports) {
/*Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.*/
module.exports = factory();
} else {
/*Browser globals (root is window)*/
root['watermark'] = factory();
}
}(this, function () {
/*Just return a value to define the module export.*/
var watermark = {};
var forceRemove = false;
var defaultSettings={
watermark_id: 'wm_div_id', //水印总体的id
watermark_prefix: 'mask_div_id', //小水印的id前缀
watermark_txt:"测试水印", //水印的内容
watermark_x:20, //水印起始位置x轴坐标
watermark_y:20, //水印起始位置Y轴坐标
watermark_rows:0, //水印行数
watermark_cols:0, //水印列数
watermark_x_space:50, //水印x轴间隔
watermark_y_space:50, //水印y轴间隔
watermark_font:'微软雅黑', //水印字体
watermark_color:'black', //水印字体颜色
watermark_fontsize:'18px', //水印字体大小
watermark_alpha:0.15, //水印透明度,要求设置在大于等于0.005
watermark_width:100, //水印宽度
watermark_height:100, //水印长度
watermark_angle:15, //水印倾斜度数
watermark_parent_width:0, //水印的总体宽度(默认值:body的scrollWidth和clientWidth的较大值)
watermark_parent_height:0, //水印的总体高度(默认值:body的scrollHeight和clientHeight的较大值)
watermark_parent_node:null, //水印插件挂载的父元素element,不输入则默认挂在body上
monitor:true, //monitor 是否监控, true: 不可删除水印; false: 可删水印。
};
const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
//监听dom是否被移除或者改变属性的回调函数
var domChangeCallback = function (records){
if(forceRemove) {
forceRemove = false;
return;
}
if ((globalSetting && records.length === 1) || records.length === 1 && records[0].removedNodes.length >= 1) {
loadMark(globalSetting);
}
};
var hasObserver = MutationObserver !== undefined;
var watermarkDom = hasObserver ? new MutationObserver(domChangeCallback) : null;
var option = {
'childList': true,
'attributes': true,
'subtree': true,
};
/*加载水印*/
var loadMark = function(settings) {
/*采用配置项替换默认值,作用类似jquery.extend*/
if(arguments.length===1&&typeof arguments[0] ==="object" ){
var src=arguments[0]||{};
for(key in src)
{
if(src[key]&&defaultSettings[key]&&src[key]===defaultSettings[key])continue;
/*veronic: resolution of watermark_angle=0 not in force*/
else if(src[key] || src[key] === 0) defaultSettings[key]=src[key];
}
}
/*如果元素存在则移除*/
var watermark_element = document.getElementById(defaultSettings.watermark_id);
watermark_element && watermark_element.parentNode && watermark_element.parentNode.removeChild(watermark_element);
/*如果设置水印挂载的父元素的id*/
var watermark_parent_element = document.getElementById(defaultSettings.watermark_parent_node);
var watermark_hook_element = watermark_parent_element ? watermark_parent_element : document.body;
/*获取页面宽度*/
// var page_width = Math.max(watermark_hook_element.scrollWidth,watermark_hook_element.clientWidth) - defaultSettings.watermark_width/2;
var page_width = Math.max(watermark_hook_element.scrollWidth,watermark_hook_element.clientWidth);
/*获取页面最大长度*/
// var page_height = Math.max(watermark_hook_element.scrollHeight,watermark_hook_element.clientHeight,document.documentElement.clientHeight)-defaultSettings.watermark_height/2;
var page_height = Math.max(watermark_hook_element.scrollHeight,watermark_hook_element.clientHeight);
var setting = arguments[0]||{};
var parentEle = watermark_hook_element;
var page_offsetTop = 0;
var page_offsetLeft = 0;
if(setting.watermark_parent_width || setting.watermark_parent_height){
/*指定父元素同时指定了宽或高*/
if(parentEle){
page_offsetTop = parentEle.offsetTop || 0;
page_offsetLeft = parentEle.offsetLeft || 0;
defaultSettings.watermark_x = defaultSettings.watermark_x + page_offsetLeft;
defaultSettings.watermark_y = defaultSettings.watermark_y + page_offsetTop;
}
}else{
if(parentEle){
page_offsetTop = parentEle.offsetTop || 0;
page_offsetLeft = parentEle.offsetLeft || 0;
}
}
/*创建水印外壳div*/
var otdiv = document.getElementById(defaultSettings.watermark_id);
var shadowRoot = null;
if(!otdiv){
otdiv =document.createElement('div');
/*创建shadow dom*/
otdiv.id = defaultSettings.watermark_id;
otdiv.setAttribute('style','pointer-events: none !important; display: block !important');
/*判断浏览器是否支持attachShadow方法*/
if(typeof otdiv.attachShadow === 'function'){
/* createShadowRoot Deprecated. Not for use in new websites. Use attachShadow*/
shadowRoot = otdiv.attachShadow({mode: 'open'});
}else{
shadowRoot = otdiv;
}
/*将shadow dom随机插入body内的任意位置*/
var nodeList = watermark_hook_element.children;
var index = Math.floor(Math.random()*(nodeList.length-1 ));
if(nodeList[index]){
watermark_hook_element.insertBefore(otdiv, nodeList[index]);
}else{
watermark_hook_element.appendChild(otdiv);
}
}else if (otdiv.shadowRoot){
shadowRoot = otdiv.shadowRoot;
}
/*三种情况下会重新计算水印列数和x方向水印间隔:1、水印列数设置为0,2、水印宽度大于页面宽度,3、水印宽度小于于页面宽度*/
defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space));
var temp_watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols));
defaultSettings.watermark_x_space = temp_watermark_x_space? defaultSettings.watermark_x_space : temp_watermark_x_space;
var allWatermarkWidth;
/*三种情况下会重新计算水印行数和y方向水印间隔:1、水印行数设置为0,2、水印长度大于页面长度,3、水印长度小于于页面长度*/
defaultSettings.watermark_rows = parseInt((page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space));
var temp_watermark_y_space = parseInt((page_height - defaultSettings.watermark_y - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows));
defaultSettings.watermark_y_space = temp_watermark_y_space? defaultSettings.watermark_y_space : temp_watermark_y_space;
var allWatermarkHeight;
if(watermark_parent_element){
allWatermarkWidth = defaultSettings.watermark_x + defaultSettings.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1);
allWatermarkHeight = defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1);
}else{
allWatermarkWidth = page_offsetLeft + defaultSettings.watermark_x + defaultSettings.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1);
allWatermarkHeight = page_offsetTop + defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1);
}
var x;
var y;
for (var i = 0; i < defaultSettings.watermark_rows; i++) {
if(watermark_parent_element){
y = page_offsetTop + defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
}else{
y = defaultSettings.watermark_y + (page_height - allWatermarkHeight) / 2 + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
}
for (var j = 0; j < defaultSettings.watermark_cols; j++) {
if(watermark_parent_element){
x = page_offsetLeft + defaultSettings.watermark_x + (page_width - allWatermarkWidth) / 2 + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
}else {
x = defaultSettings.watermark_x + (page_width - allWatermarkWidth) / 2 + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
}
var mask_div = document.createElement('div');
var oText=document.createTextNode(defaultSettings.watermark_txt);
mask_div.appendChild(oText);
/*设置水印相关属性start*/
mask_div.id = defaultSettings.watermark_prefix + i + j;
/*设置水印div倾斜显示*/
mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.visibility = "";
mask_div.style.position = "absolute";
/*选不中*/
mask_div.style.left = x + 'px';
mask_div.style.top = y + 'px';
mask_div.style.overflow = "hidden";
mask_div.style.zIndex = "9999999";
mask_div.style.opacity = defaultSettings.watermark_alpha;
mask_div.style.fontSize = defaultSettings.watermark_fontsize;
mask_div.style.fontFamily = defaultSettings.watermark_font;
mask_div.style.color = defaultSettings.watermark_color;
mask_div.style.textAlign = "center";
mask_div.style.width = defaultSettings.watermark_width + 'px';
mask_div.style.height = defaultSettings.watermark_height + 'px';
mask_div.style.display = "block";
mask_div.style['-ms-user-select'] = "none";
/*设置水印相关属性end*/
shadowRoot.appendChild(mask_div);
}
}
// monitor 是否监控, true: 不可删除水印; false: 可删水印。
const minotor = settings.monitor === undefined ? defaultSettings.monitor : settings.monitor;
if (minotor && hasObserver) {
watermarkDom.observe(watermark_hook_element, option);
watermarkDom.observe(document.getElementById(defaultSettings.watermark_id).shadowRoot, option);
}
};
/*移除水印*/
var removeMark = function() {
/*采用配置项替换默认值,作用类似jquery.extend*/
if(arguments.length===1&&typeof arguments[0] ==="object" )
{
var src=arguments[0]||{};
for(key in src)
{
if(src[key]&&defaultSettings[key]&&src[key]===defaultSettings[key])continue;
/*veronic: resolution of watermark_angle=0 not in force*/
else if(src[key] || src[key] === 0) defaultSettings[key]=src[key];
}
}
/*移除水印*/
var watermark_element = document.getElementById(defaultSettings.watermark_id);
var _parentElement = watermark_element.parentNode;
_parentElement.removeChild(watermark_element);
// :ambulance: remove()
// minotor 这个配置有些冗余
// 如果用 MutationObserver 来监听dom变化防止删除水印
// remove() 方法里用 MutationObserver 的 disconnect() 解除监听即可
watermarkDom.disconnect();
};
var globalSetting;
/*初始化水印,添加load和resize事件*/
watermark.init = function(settings) {
globalSetting = settings;
loadMark(settings);
window.addEventListener('onload', function () {
loadMark(settings);
});
window.addEventListener('resize', function () {
loadMark(settings);
});
};
/*手动加载水印*/
watermark.load = function(settings){
globalSetting = settings;
loadMark(settings);
};
/*手动移除水印*/
watermark.remove = function(){
forceRemove = true;
removeMark();
};
//监听dom是否被移除或者改变属性的回调函数
var callback = function (records){
if ((globalSetting && records.length === 1) || records.length === 1 && records[0].removedNodes.length >= 1) {
loadMark(globalSetting);
return;
}
// 监听父节点的尺寸是否发生了变化, 如果发生改变, 则进行重新绘制
var watermark_parent_element = document.getElementById(defaultSettings.watermark_parent_node);
if (watermark_parent_element) {
var newWidth = getComputedStyle(watermark_parent_element).getPropertyValue('width');
var newHeight = getComputedStyle(watermark_parent_element).getPropertyValue('height');
if (newWidth !== recordOldValue.width || newHeight !== recordOldValue.height) {
recordOldValue.width = newWidth;
recordOldValue.height = newHeight;
loadMark(globalSetting);
}
}
};
// const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var watermarkDom = new MutationObserver(callback);
var option = {
'childList': true,
'attributes': true,
'subtree': true,
'attributeFilter': ['style'],
'attributeOldValue': true
};
var recordOldValue = {
width: 0,
height: 0
}
return watermark;
}));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment