yidongdananpage.html 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>移动档案</title>
  5. <meta name="viewport" content="width=device-width,minimum-scale=1.0,user-scalable=,initial-scale=1" />
  6. <meta name="format-detection" content="telephone=no"/>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <meta http-equiv="Cache-control" content="public">
  9. <script>
  10. document.addEventListener('error',function(e){
  11. //cdn文件报错上报
  12. var target=e.target;
  13. var url=target.src||target.href;
  14. if(url&&(target.dataset['cdn'])&&(!window.hasError)){
  15. window.hasError=true;
  16. document.createElement('img').src="/mbos/page/openConnection?type="+target.dataset['cdn']+"&key="+target.dataset['cdnkey']+"&cdnUrl="+url;
  17. }
  18. },true)
  19. </script>
  20. <link rel="stylesheet" type="text/css" href="/mbos/css/bootstrap.min.css" data-cdn="bootstrap" data-cdnkey="1">
  21. <script type="text/javascript">
  22. //测试
  23. </script>
  24. <link rel="stylesheet" type="text/css" href="/mbos/css/animations.css">
  25. <link rel="stylesheet" type="text/css" href="/mbos/css/mbosfont/mbosfont.css">
  26. <link rel="stylesheet" type="text/css" href="/mbos/css/kdfont/kdfont.css">
  27. <link rel="stylesheet" type="text/css" href="/mbos/css/component/main.css">
  28. <link rel="stylesheet" type="text/css" href="/mbos/css/component/modal.css">
  29. <link rel="stylesheet" type="text/css" href="/mbos/css/component/style/pageStyle-former.css?sessionid=V888"></script>
  30. <script type="text/javascript" src="/mbos/js/jquery.min.js" data-cdn="jquery" data-cdnkey="1"></script>
  31. <script type="text/javascript" src="/mbos/js/angular.min.js" data-cdn="angular" data-cdnkey="1"></script>
  32. <script type="text/javascript" src="/mbos/js/component/modal.js"></script>
  33. <script src="/mbos/js/lib/qing.js"></script>
  34. <script type="text/javascript" src="/mbos/js/module.js"></script>
  35. <script type="text/javascript" src="/mbos/js/core/core.js?sessionid=V888"></script>
  36. <script type="text/javascript" src="/mbos/js/core/ng.js?sessionid=V888"></script>
  37. <script type="text/javascript" src="/mbos/js/core/http.js?sessionid=V888"></script>
  38. <script type="text/javascript" src="/mbos/js/core/eventbus.js?sessionid=V888"></script>
  39. <script type="text/javascript" src="/mbos/js/core/util.js?sessionid=V888"></script>
  40. <script type="text/javascript" src="/mbos/js/core/component.js?sessionid=V888"></script>
  41. <script type="text/javascript" src="/mbos/js/core/component2.js?sessionid=V888"></script>
  42. <script type="text/javascript" src="/mbos/js/core/page.js?sessionid=V888"></script>
  43. <script type="text/javascript" src="/mbos/js/core/ds.js?sessionid=V888"></script>
  44. <script type="text/javascript" src="/mbos/js/core/variable.js?sessionid=V888"></script>
  45. <script type="text/javascript" src="/mbos/js/core/eas.js?sessionid=V888"></script>
  46. <script type="text/javascript" src="/mbos/js/core/ui.js?sessionid=V888"></script>
  47. <script type="text/javascript" src="/mbos/js/core/window.js?sessionid=V888"></script>
  48. <script type="text/javascript" src="/mbos/js/core/pay.js?sessionid=V888"></script>
  49. <script type="text/javascript" src="/mbos/js/core/mobile.js?sessionid=V888"></script>
  50. <script type="text/javascript" src="/mbos/js/core/cache.js?sessionid=V888"></script>
  51. <script type="text/javascript" src="/mbos/js/core/legacy.js?sessionid=V888"></script>
  52. <script type="text/javascript" src="/mbos/js/core/language.js?sessionid=V888"></script>
  53. <script type="text/javascript" src="/mbos/js/core/previewImg.js?sessionid=V888"></script>
  54. <script type="text/javascript" src="/mbos/js/core/crypto.js?sessionid=V888"></script>
  55. <script type="text/javascript" src="/mbos/js/core/aes.js?sessionid=V888"></script>
  56. <script type="text/javascript" src="/mbos/js/core/xtmenu.js?sessionid=V888"></script>
  57. <script type="text/javascript" src="/mbos/js/navpage.js?sessionid=V888"></script>
  58. <script type="text/javascript" src="/mbos/js/component/iscroll.js?sessionid=V888"></script>
  59. <script type="text/javascript" src="/mbos/js/component/style/pageStyle-former.js?sessionid=V888"></script>
  60. <link id='css1' rel='stylesheet' type='text/css' href='/mbos/store/ding5208b4333b1d308b4ac5d6980864d335/archive9000/app.css?t=1718955042694'>
  61. <link id='customcss' rel='stylesheet' type='text/css' href='/mbos/store/ding5208b4333b1d308b4ac5d6980864d335/archive9000/archive9000.navui.css?t=1718955045462'>
  62. <script id='script1' type='text/javascript' src='/mbos/store/ding5208b4333b1d308b4ac5d6980864d335/archive9000/app.js?t=1718955042974'></script>
  63. <script id='customjs' type='text/javascript' src='/mbos/store/ding5208b4333b1d308b4ac5d6980864d335/archive9000/archive9000.navui.events.js?t=1718955043687'></script>
  64. <script type="text/javascript">
  65. //动态的部分 不能做html静态缓存
  66. var requestParam={"name":"archive9000.navui","eid":"ding5208b4333b1d308b4ac5d6980864d335","path":"archive9000","operateState":"VIEW","appid":"10036"};
  67. var hideInitValue ={};
  68. var initvalueMap ={};
  69. var treeData={};
  70. //公共根路径
  71. var userAgent = navigator.userAgent.toLowerCase();
  72. var isWx = false;
  73. if(userAgent.match(/MicroMessenger/i) == "micromessenger"){
  74. isWx = true;
  75. }
  76. var isYzj = navigator.userAgent.match(/Qing\/.*;(iOS|iPhone|Android).*/)?true:false;
  77. var isApple = userAgent.indexOf("iphone") != -1;
  78. var hasCookiePermission = document.cookie.indexOf("hasCookiePermission=true") != -1;
  79. if((requestParam.isfromlcjs==="true")&&isApple&&!hasCookiePermission){
  80. var url=location.protocol+"//"+location.host+"/mbos/redirect.html?eid="+requestParam.eid+(requestParam.crystr?("&crystr="+encodeURIComponent(requestParam.crystr)):"")+"&ref="+ encodeURIComponent(document.referrer)
  81. +"&ssotype="+requestParam.ssotype+"&token="+requestParam.token;
  82. window.top.location =url;
  83. }
  84. var contextPath = '/mbos';
  85. var easContext={"0":{"number":"GYT1407001","name":"长沙湘阳永业咨询管理有限公司","id":"00000000-0000-0000-0000-000000000000CCE7AED4","longNumber":"GYT1407001"},"16":{"number":"GYT1407001","name":"长沙湘阳永业咨询管理有限公司","id":"00000000-0000-0000-0000-000000000000CCE7AED4","longNumber":"GYT1407001"},"person":{"number":"1024130","name":{"l2":"金蝶项目顾问"},"bosType":"80EF7DED","id":"X4wAAAIfX6CA733t"},"dbType":"MS SQL Server","ais":"shr0908","position":{"parent":{"name":{"l2":"测试审批体系负责人"},"bosType":"74AE612E","id":"RQU8WtCuSdKbYqnOKJchK3SuYS4="},"number":"GYT00016232","name":{"l2":"测试部门经理"},"bosType":"74AE612E","id":"PK2DVX6ZSrae/hYhztM7FXSuYS4=","adminOrgUnit":{"number":"GYT000003841","name":{"l2":"测试部门2"},"bosType":"6A6435BE","id":"X4wAAAJmP3jM567U","longNumber":"GYT1407001!QT001!GYT000003840!GYT000003841"}},"userName":"kd","serverInst":"server2(E:/kdshr90/eas)","locale":"l2","userID":"FCVPDmcgRHiqn9bqWPpPNxO33n8=","user":{"invalidationDate":"2199-12-31 00:00:00","changedPW":true,"pWEffectiveDate":"2024-04-26 10:46:18","description":{},"lockType":{"alias":"未锁定","isenum":true,"value":0},"type":{"alias":"职员","isenum":true,"value":20},"cell":"13327218365","number":"kd","uid":"87246179","cU":{"number":"GYT1407001","name":{"l2":"长沙湘阳永业咨询管理有限公司"},"bosType":"3525AA94","id":"00000000-0000-0000-0000-000000000000CCE7AED4"},"defOrgUnit":{"isTransportOrgUnit":false,"isQualityOrgUnit":false,"isHROrgUnit":true,"bosType":"CCE7AED4","isCU":true,"isStorageOrgUnit":false,"isCompanyOrgUnit":false,"number":"GYT1407001","isSaleOrgUnit":false,"name":{"l2":"长沙湘阳永业咨询管理有限公司"},"isPurchaseOrgUnit":false,"id":"00000000-0000-0000-0000-000000000000CCE7AED4","isCostOrgUnit":false},"isLocked":false,"id":"FCVPDmcgRHiqn9bqWPpPNxO33n8=","email":"","errCount":0,"orgRange":[],"isDelete":false,"loginAuthorWay":{"alias":"传统认证","isenum":true,"value":0},"bosType":"13B7DE7F","bizAdmin":false,"errUpdatePwCount":0,"isForbidden":false,"person":{"number":"1024130","name":{"l2":"金蝶项目顾问"},"bosType":"80EF7DED","id":"X4wAAAIfX6CA733t"},"defLocale":{"alias":"中文(简体)","isenum":true,"value":"L2"},"name":{"l2":"金蝶项目顾问"},"passwordType":{"alias":"SHA-256加密","isenum":true,"value":2},"orgRangeIncludeSubOrg":[],"effectiveDate":"2024-04-26 10:46:18","isRegister":true},"10":{"number":"GYT1407001","name":"长沙湘阳永业咨询管理有限公司","id":"00000000-0000-0000-0000-000000000000CCE7AED4","longNumber":"GYT1407001"}};
  86. var localeResource={"cancel":"撤回","reason":"原因:","notExceed":"字段长度不能超过","reModify":"重新修改","InforMaintainance":"信息维护","del":"删除","auditing":"审核中","reUpload":"重新上传","integrity":"档案完整度:","download":"下载","eduExperience":"教育经历","modyHead":"修改后头像","reasonReview":"原因:","socialExperience":"社会工作经历","isHighest":"最高学历","maintained":"应用正在更新或维护,请稍后尝试!","female":"女","avatarFormat":"上传头像图片只能是 JPEG/JPG/PNG 格式!","skillsInformation":"技能信息","confirmSubmit":"请确认直接提交或预览后提交","dataEmpty":"数据为空","currentApprover":"当前审批人:","avatarStatus2":"修改后的头像正在等待审核,请选择您需要进行的操作","auditKey":"审","avatarStatus1":"员工头像正在审批流程中,不允许修改","waitAudit":"待审核","notEditable":"字段不可编辑","enrollDate":"入学时间","mobileFile":"移动档案","graduateDate":"毕业时间","notApproved":"此信息审核不通过","revise":"重新修改","reviewMark":"列表上角带“审”角标则该信息修改必须审核,请谨慎修改。","support":"支持image,word,pdf,excel,txt,ppt","uploadFailed":"附件上传失败!","male":"男","preview":"预览","no":"否","emptyData":"当前数据为空","graduateSchool":"毕业学校","myArchive":"我的档案","submit":"提交","integrityMaintenance":"档案完整度维护","fillOut":"请填写","save":"保存","back":"返回","maxSize":"上传图片大小不能超过3M!","submitSuccessfully":"提交成功","giveUp":"放弃","uploadOnly":"只能上传图片,Word,Pdf,Excel,Txt,Ppt类型的文件!","addItem":"添加","basicInformation":"基本信息","downloadFail":"下载失败","attachment":"附件","msg11":"只能存在一条","msg10":"删除失败,至少存在一条","msg13":"操作成功","msg12":"必须存在一条","notPass":"审核不通过","placeholder":"请输入搜索内容","fails":"调用失败","approver":"审批人:","msg4":"你已经保存了所需修改的信息,如果其中包含了需要审核的内容,请返回上一页提交审核!","msg3":"当前F7数据为空!","msg2":"当前枚举数据为空!","msg1":"当前基础资料数据为空!","msg8":"你已经成功保存了所需修改的信息,需要审核的内容将在审核通过后生效。","msg7":"你已经保存了所需修改的信息,如果其中包含了需要审核的内容,请返回上一页提交审核!","yes":"是","msg6":"请再次确认一下需要修改的字段信息是否准确,并提交。","confirmToSubmit":"确定提交","msg5":"请输入正确的","mobile":"(移动端)","label":"标签","msg9":"单据审核中,不能删除","rememberSubmit":"您有新的需要审核的信息,记得提交哦!","achiveModification":"档案修改","attachTips":"必填,请上传","attachmentSize":"上传附件大小不能大于10M!","abandon":"放弃","progress":"查看我的审批进度","noData":"该页签无数据!","complete":"去完善","approvalProcess":"审批流程:","uploadSuccess":"附件上传成功!","prompt":"提示","reviewedPer":"审核人:","withdraw":"撤回"};
  87. easContext.easUrl='https://shr-test.gooeto.com:6888';
  88. easContext.entryRole='';
  89. var easOption={"color":"#000000","wmtext":"","showContent":"namePhone","showWay":"notDisplay","wordSize":"12px","opacity":"10"};
  90. var isSpa = false;
  91. var isSpaRefresh = false;
  92. var spaList = ["rootpanel"];
  93. var licenseMsg ='';
  94. var isCbos = false;
  95. var apiVersion=1.22;
  96. var isDesensitizationVal = 0;
  97. var checkfinger = false;
  98. var isvconsole = false;
  99. var pageInfo = {
  100. id: '3568c630-6572-4c3b-b374-aca9c9c020e8',
  101. path: 'archive9000',
  102. name: 'archive9000.navui',
  103. storeEid: 'ding5208b4333b1d308b4ac5d6980864d335',
  104. title:'移动档案',
  105. nonetworkcansubmit:'',
  106. exitconfirm:''
  107. };
  108. //userAgent
  109. var userAgent='mozilla/5.0 (linux; android 6.0; nexus 5 build/mra58n) applewebkit/537.36 (khtml, like gecko) chrome/130.0.0.0 mobile safari/537.36';
  110. //registerVariables
  111. //dsv
  112. var checkFingerFn = function(){
  113. XuntongJSBridge.call('validate',{'type':'touchID','lightAppId':requestParam.client_id,'prompt':'身份认证'},
  114. function(d){
  115. if(d.success==="true"){
  116. window.sessionStorage.setItem("cfp_"+requestParam.path+"/"+requestParam.name,true);
  117. var url = window.location.href ;
  118. if (document.referrer&&document.referrer.indexOf("loadPage")>0) {
  119. url+= url.indexOf("origUrl")>0? "" : "&origUrl="+encodeURIComponent(document.referrer);
  120. }
  121. window.location.href=url;
  122. }else{
  123. window.location.go(-1);
  124. }
  125. });
  126. }
  127. var cfg_hasChecked = window.sessionStorage.getItem("cfp_"+requestParam.path+"/"+requestParam.name);
  128. if(checkfinger && !cfg_hasChecked){
  129. checkFingerFn();
  130. }else{
  131. //innerScript
  132. window.__eventToDom ={}
  133. mbos.ctrl._directiveBuild();
  134. module.controller("RootController", ["$http", "$scope","$modal","$interval","$timeout","$rootScope","$element","$compile","$injector",
  135. function($http,$scope,$modal,$interval,$timeout,$rootScope,$element,$compile,$injector){
  136. mbos._.pageController(
  137. $scope,
  138. {
  139. $http:$http,
  140. $modal:$modal,
  141. $interval:$interval,
  142. $timeout:$timeout,
  143. $rootScope:$rootScope,
  144. $element:$element,
  145. $compile:$compile,
  146. $injector:$injector
  147. }
  148. );
  149. mbos.pageInfo = pageInfo;
  150. initDataSources();
  151. mbos.util._setTitle('移动档案','common');
  152. $scope.$$postDigest(function(){
  153. mbos._.ng.$digest();//不加这行在beforeOnload里取不到组件对象
  154. mbos.page.fire("beforeOnload");
  155. mbos.page.fire("_onload");
  156. mbos.page.fire("afterOnload");
  157. //兼容afterLoad的写法
  158. mbos.page.fire("afterLoad");
  159. mbos._.ds.firstRunAllShareDs();
  160. });
  161. }]);
  162. function initDataSources()
  163. {
  164. //创建其他数据源用来记录离散的未绑定字段的数据
  165. mbos._.ds.create("other","");
  166. }
  167. //functionScript
  168. // 流程助手集成
  169. }
  170. if(isvconsole){
  171. var vConsole = new VConsole();
  172. }
  173. </script>
  174. </head>
  175. <body id='body' ng-app="KDModule" ng-controller="RootController">
  176. <div id="rootpanel" waterMark='' ng-init="isCurrentSpa(true,'rootpanel','former')" class="kdrootpanel comRootPanel theme-former" lcstyle="former"
  177. ng-class="{false: 'pt-page-moveToLeft ', true: 'pt-page-moveFromLeft '}[showRoot]" style=";">
  178. <div id="MainPage" class="page_main">
  179. <div id="htmlContent1" ishide="" class="col-xs-12 col-xs-offset-0 comHtml " style=";">
  180. <!DOCTYPE html>
  181. <html>
  182. <head>
  183. <meta charset=utf-8>
  184. <meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
  185. <meta name=App-Config content="fullscreen=yes,useHistoryState=yes,transition=yes">
  186. <meta content=yes name=apple-mobile-web-app-capable>
  187. <meta content=yes name=apple-touch-fullscreen>
  188. <meta content="telephone=no,email=no" name=format-detection>
  189. <meta http-equiv=Expires content=0>
  190. <meta http-equiv=Cache-Control content=no-cache>
  191. <meta http-equiv=Pragma content=no-cache>
  192. <title>移动档案</title>
  193. <link href="/mbos/store/4000148/archive9000/app.css" rel="stylesheet">
  194. <script>
  195. (function flexible(window, document) {
  196. var docEl = document.documentElement;
  197. var dpr = window.devicePixelRatio || 1;
  198. docEl.setAttribute("data-dpr", dpr);
  199. function setBodyFontSize() {
  200. if (document.body) {
  201. document.body.style.fontSize = (12 * dpr) + "px"
  202. } else {
  203. document.addEventListener("DOMContentLoaded", setBodyFontSize)
  204. }
  205. }
  206. setBodyFontSize();
  207. function setRemUnit() {
  208. var rem = docEl.clientWidth / 3.75;
  209. docEl.style.fontSize = rem + "px"
  210. }
  211. setRemUnit();
  212. window.addEventListener("resize", setRemUnit);
  213. window.addEventListener("pageshow", function(e) {
  214. if (e.persisted) {
  215. setRemUnit()
  216. }
  217. });
  218. if (dpr >= 2) {
  219. var fakeBody = document.createElement("body");
  220. var testElement = document.createElement("div");
  221. testElement.style.border = ".5px solid transparent";
  222. fakeBody.appendChild(testElement);
  223. docEl.appendChild(fakeBody);
  224. if (testElement.offsetHeight === 1) {
  225. docEl.classList.add("hairlines")
  226. }
  227. docEl.removeChild(fakeBody)
  228. }
  229. }(window, document));
  230. </script>
  231. </head>
  232. <body>
  233. <div id=app></div>
  234. <script type="text/javascript" src="/mbos/store/4000148/archive9000/manifest.js"></script>
  235. <script type="text/javascript" src="/mbos/store/4000148/archive9000/vendor.js"></script>
  236. <script type="text/javascript" src="/mbos/store/4000148/archive9000/app.js"></script>
  237. </body>
  238. </html>
  239. </div>
  240. </div>
  241. </div>
  242. <div id="loadingDiv" ng-if="appData.showLoading">
  243. <div class="spinner">
  244. <div class="spinner-container container1">
  245. <div class="circle1"></div>
  246. <div class="circle2"></div>
  247. <div class="circle3"></div>
  248. <div class="circle4"></div>
  249. </div>
  250. <div class="spinner-container container2">
  251. <div class="circle1"></div>
  252. <div class="circle2"></div>
  253. <div class="circle3"></div>
  254. <div class="circle4"></div>
  255. </div>
  256. <div class="spinner-container container3">
  257. <div class="circle1"></div>
  258. <div class="circle2"></div>
  259. <div class="circle3"></div>
  260. <div class="circle4"></div>
  261. </div>
  262. </div>
  263. </div>
  264. <div end></div>
  265. </body>
  266. <script type="text/javascript">
  267. if(checkfinger&&!cfg_hasChecked){
  268. if(!inYunzhijia) {
  269. $('#body').html("<h3 style='color:blue'>本界面开启了身份认证,请在手机端打开并验证身份信息</h3");
  270. } else{
  271. $('#body').hide();
  272. }
  273. }
  274. //$("#serviceRemind").html(licenseMsg);
  275. /***
  276. function closeLicenseInfo() {
  277. $("#license-info").remove();
  278. undisscroll();
  279. }
  280. **/
  281. function disscroll() {
  282. $('body').bind("touchmove",function(e){
  283. e.preventDefault();
  284. });
  285. }
  286. function undisscroll() {
  287. $('body').unbind("touchmove");
  288. }
  289. setTimeout(function() {
  290. if(isYzj){
  291. mbos.xtmenu && mbos.xtmenu.init();
  292. } else if(easContext.entryRole == '1'){
  293. mbos.mobile.initWXJsConfig();
  294. }
  295. }, 800);
  296. var rootDom = document.body;
  297. var waterMarkConfng = document.getElementById('rootpanel').getAttribute('watermark'); // 设计器元数据中传过来的配置,如果用户编辑过元数据就有水印配置
  298. function judgePC() {
  299. var userAgentInfo = window.navigator.userAgent;
  300. var Agents = [
  301. "Android",
  302. "iPhone",
  303. "SymbianOS",
  304. "Windows Phone",
  305. "iPad",
  306. "iPod",
  307. ];
  308. var flag = true;
  309. for (var i = 0; i < Agents.length; i++) {
  310. if (userAgentInfo.indexOf(Agents[i]) != -1) {
  311. flag = false;
  312. break;
  313. }
  314. }
  315. return flag;
  316. }
  317. function judgePreview() {
  318. var width = (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth);
  319. return (width === 375);
  320. }
  321. var ispc = judgePC();
  322. var ispreview = judgePreview(); //是否在设计器预览功能的iframe中
  323. function canvasWM(params) {
  324. var container = params.container ? params.container : rootDom;
  325. var width = params.width ? params.width : "150px";
  326. var height = params.height ? params.height : "80px";
  327. var textAlign = params.textAlign ? params.textAlign : "center";
  328. var textBaseline = params.textBaseline ? params.textBaseline : "middle";
  329. var fillStyle = params.fillStyle ? params.fillStyle : "rgba(184, 184, 184, 0.6)";
  330. var opacity = params.opacity;
  331. var imgSrc = params.imgSrc;
  332. var font = params.font ? params.font : "";
  333. var content = params.content ? params.content : "水印";
  334. var rotate = params.rotate ? params.rotate : "-15";
  335. var zIndex = params.zIndex ? params.zIndex : 90000;
  336. var option = params.option;
  337. var showWay = option.showWay;
  338. var canvas = document.createElement("canvas");
  339. canvas.setAttribute("width", width);
  340. canvas.setAttribute("height", height);
  341. var ctx = canvas.getContext("2d");
  342. ctx.textAlign = textAlign;
  343. ctx.textBaseline = textBaseline;
  344. ctx.fillStyle = fillStyle;
  345. ctx.font = font;
  346. ctx.rotate((Math.PI / 180) * rotate);
  347. if (showWay === "text") {
  348. ctx.fillText(
  349. content,
  350. parseFloat(width) / 2 - 10,
  351. parseFloat(height) / 2 + 15
  352. );
  353. drawWM(zIndex, opacity, container, canvas);
  354. } else {
  355. var img = document.createElement("img");
  356. img.src = imgSrc; // 图片加载是异步事件
  357. img.onload = function(){
  358. var imgWidth = (ispc && !ispreview) ? 140 : 70;
  359. var imgHeight = (ispc && !ispreview) ? 100 : 50;
  360. ctx.drawImage(img, 10, 20, imgWidth, imgHeight);
  361. if (showWay === "topImgtext") {
  362. ctx.fillText(content, parseFloat(width) / 3, (parseFloat(height) * 3 / 4));
  363. } else {
  364. ctx.fillText(content, parseFloat(width) / 2 + 35, parseFloat(height));
  365. }
  366. drawWM(zIndex, opacity, container, canvas);
  367. };
  368. }
  369. }
  370. function drawWM(zIndex, opacity, container, canvas) {
  371. var url = canvas.toDataURL();
  372. var __wm = document.querySelector(".__wm");
  373. var watermarkDiv = __wm || document.createElement("div");
  374. var styleStr = "position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;z-index:" + zIndex + ";opacity:"
  375. + Number(opacity) / 100 + ";pointer-events:none;background-repeat:repeat;background-image:url(" + url + ");";
  376. watermarkDiv.setAttribute("style", styleStr);
  377. watermarkDiv.classList.add("__wm");
  378. if (!__wm) {
  379. container.insertBefore(watermarkDiv, container.firstChild);
  380. }
  381. }
  382. function addMark(data){
  383. var option = data ? data : JSON.parse(waterMarkConfng);
  384. var showWay = option.showWay;
  385. var showContent = option.showContent;
  386. var wmtext = option.wmtext;
  387. var wordSize = option.wordSize;
  388. var color = option.color;
  389. var opacity = option.opacity;
  390. var imgSrc = option.imgSrc;
  391. if (showWay === "notDisplay" || !showWay) return;
  392. var obj = {};
  393. if (showWay === "img") {
  394. obj = {
  395. opacity: opacity,
  396. imgSrc: imgSrc,
  397. content: "",
  398. };
  399. if(ispc && !ispreview){
  400. obj.width = "300px";
  401. obj.height = "160px";
  402. }
  403. } else {
  404. obj = {
  405. font: 'normal normal normal ' + wordSize + " sans-serif",
  406. fillStyle: color,
  407. opacity: opacity,
  408. imgSrc: imgSrc,
  409. };
  410. var content = "";
  411. var userName = easContext.user.name;
  412. if(typeof userName == "object"){
  413. var userNameKey = Object.keys(userName);
  414. userName = userNameKey.length > 0 ?userName[userNameKey[0]] : "";
  415. }
  416. if (showContent === "namePhone") content = (userName || easContext.user.number || "") + " " + (easContext.user.cell ? easContext.user.cell.slice(7) : "");
  417. if (showContent === "name") content = (userName || easContext.user.number || "");
  418. if (showContent === "selfText") content = wmtext;
  419. obj.content = content;
  420. if (showWay === "topImgtext") {
  421. obj.width = (ispc && !ispreview) ? "360px" : "180px";
  422. obj.height = (ispc && !ispreview) ? "320px" : "160px";
  423. } else if (showWay === "leftImgtext") {
  424. obj.width = (ispc && !ispreview) ? "520px" : "260px";
  425. obj.height = (ispc && !ispreview) ? "160px" : "80px";
  426. } else if (showWay === "text") {
  427. obj.width = (ispc && !ispreview) ? "300px" : "150px";
  428. obj.height = (ispc && !ispreview) ? "200px" : "100px";
  429. }
  430. }
  431. obj.option = option;
  432. canvasWM(obj);
  433. rootDom = null;
  434. }
  435. if(waterMarkConfng){
  436. // 如果元数据有水印配置就用元数据的
  437. addMark();
  438. }else{
  439. addMark(easOption);
  440. }
  441. </script>
  442. </html>