js.js 75 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828
  1. // 汉字 英文 字符统一
  2. function getByteLen(val) {
  3. var len = 0;
  4. for (var i = 0; i < val.length; i++) {
  5. var a = val.charAt(i);
  6. if (a.match(/[^\x00-\xff]/ig) != null) {
  7. len += 2;
  8. } else {
  9. len += 1;
  10. }
  11. }
  12. return len;
  13. }
  14. // 验证 只能输入字母
  15. function verifyLetter(val) {
  16. var letterReg = /[^a-zA-Z]/g;
  17. return letterReg.test(val);
  18. }
  19. // 验证 特殊字符
  20. function verifySpecialCharacters(val) {
  21. var specialCharactersReg = /[^u4e00-u9fa5w]/g;
  22. return specialCharactersReg.test(val);
  23. }
  24. // 验证 只支持中文、英文、数字
  25. function verifyCharacters(val) {
  26. var charactersReg = /[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g;
  27. return charactersReg.test(val);
  28. }
  29. // 验证 只支持字母和数字
  30. function verifyLetterDigital(val) {
  31. var letterDigitalReg = /[^\w\.\/]/ig;
  32. return letterDigitalReg.test(val);
  33. }
  34. // 验证url
  35. function verifyUrl(val) {
  36. var urlReg = /^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)?/;
  37. return urlReg.test(val);
  38. }
  39. // 验证 Bundle ID
  40. function verifyBundle(val) {
  41. var bundleReg = /^[a-zA-Z][a-zA-z_0-9]{0,15}(\.[a-zA-z][a-zA-z_0-9]{0,15})/;
  42. return bundleReg.test(val);
  43. }
  44. // 增加replaceAll()
  45. String.prototype.replaceAll = function (s1, s2) {
  46. return this.replace(new RegExp(s1, "gm"), s2);
  47. };
  48. // 修复js toFixed() bug
  49. Number.prototype.toFixed = function (s) {
  50. changenum = (parseInt(this * Math.pow(10, s) + 0.5) / Math.pow(10, s)).toString();
  51. index = changenum.indexOf(".");
  52. if (index < 0 && s > 0) {
  53. changenum = changenum + ".";
  54. for (i = 0; i < s; i++) {
  55. changenum = changenum + "0";
  56. }
  57. } else {
  58. index = changenum.length - index;
  59. for (i = 0; i < (s - index) + 1; i++) {
  60. changenum = changenum + "0";
  61. }
  62. }
  63. return changenum;
  64. }
  65. // 选项卡
  66. var tab = {
  67. basis: function (obj) {
  68. $(obj.el).click(function () {
  69. var i = $(this).index();
  70. $(this).addClass("active").siblings().removeClass("active");
  71. $(obj.elTab).eq(i).show().siblings().hide();
  72. obj.callBack = obj.callBack || function () {};
  73. obj.callBack();
  74. });
  75. },
  76. radioRound: function (obj) {
  77. $(obj.el).click(function () {
  78. $(obj.el).removeClass("active").find(".icon").removeClass(obj.checkedClass);
  79. $(this).addClass("active").find(".icon").addClass(obj.checkedClass);
  80. });
  81. },
  82. radioTick: function (obj) {
  83. $(obj.el).click(function () {
  84. var i = $(this).index();
  85. $(this).addClass("active").siblings().removeClass("active");
  86. if (i == 0) {
  87. $(obj.elHide).show();
  88. } else {
  89. $(obj.elHide).hide();
  90. }
  91. });
  92. }
  93. };
  94. /*
  95. tab.radioTick({
  96. el: ".radio-tick li"
  97. });
  98. */
  99. /*
  100. tab.radioRound({
  101. el: ".radio-round li",
  102. checkedClass: "icon-radio-checked"
  103. });
  104. */
  105. // 实时获取input的输入值并赋值给另一元素
  106. var realTime = {
  107. inputText: function (obj) {
  108. $(obj.el).bind("input propertychange", function () {
  109. var thisVal = $(this).val();
  110. // console.log(thisVal);
  111. $(obj.elEdit).text(thisVal);
  112. });
  113. }
  114. };
  115. // 图片索引 地址赋值
  116. var imgSrc = {
  117. edit: function (obj) {
  118. var src = $(obj.el).attr("src");
  119. src = src.substr(0, src.lastIndexOf("/") + 1);
  120. $(obj.el).attr("src", src + obj.index + "." + obj.format+"?2018");
  121. }
  122. };
  123. // 弹窗
  124. var Modal = function() { // Modal为匿名函数执行完的返回值
  125. function determineModal(obj) {
  126. $("#determineModal").remove();
  127. var determineModalHtml = '<div class="modal fade ms-modal" id="determineModal" tabindex="-1" role="dialog">\n' +
  128. ' <div class="modal-dialog modal-sm" role="document">\n' +
  129. ' <div class="modal-content">\n' +
  130. ' <div class="modal-body">\n' +
  131. ' <div class="text-center">\n' +
  132. ' <div class="modal-icon"><span class="icon icon-class mb5"></span></div>\n' +
  133. ' <div class="color-333 bold font16 title"></div>\n' +
  134. ' <div class="color-333 mt5 modal-p"></div>\n' +
  135. ' <div class="mt15">\n' +
  136. ' <button type="button" class="ms-btn ms-btn-primary modal-btn" data-dismiss="modal"></button>\n' +
  137. ' </div>\n' +
  138. ' </div>\n' +
  139. ' </div>\n' +
  140. ' </div>\n' +
  141. ' </div>\n' +
  142. '</div>';
  143. $("body").append(determineModalHtml);
  144. $("#determineModal").find(".icon-class").addClass(obj.iconClass);
  145. $("#determineModal").find(".title").text(obj.title);
  146. $("#determineModal").find(".modal-p").html(obj.p).css("text-align", obj.align);
  147. $("#determineModal").find(".modal-btn").text(obj.btnText);
  148. $("#determineModal").modal('show');
  149. };
  150. function templateModal(obj) {
  151. $("#templateModal").remove();
  152. var templateModalHtml = '<div class="modal fade ms-modal" id="templateModal" tabindex="-1" role="dialog">\n' +
  153. ' <div class="modal-dialog modal-sm" role="document">\n' +
  154. ' <div class="modal-content">\n' +
  155. ' <div class="modal-body">\n' +
  156. ' <div class="template-modal">\n' +
  157. ' <div class="m-top">\n' +
  158. ' <div class="title1"></div>\n' +
  159. ' <div class="title2"></div>\n' +
  160. ' </div>\n' +
  161. ' <div class="modal-p"></div>\n' +
  162. ' <button type="button" class="ms-btn ms-btn-primary modal-btn" data-dismiss="modal"></button>\n' +
  163. ' </div>\n' +
  164. ' </div>\n' +
  165. ' </div>\n' +
  166. ' </div>\n' +
  167. '</div>\n';
  168. $("body").append(templateModalHtml);
  169. $("#templateModal").find(".m-top").css("background-image", "url(/static/default/img/" + obj.imgName +")");
  170. $("#templateModal").find(".title1").text(obj.title1);
  171. $("#templateModal").find(".title2").html(obj.title2);
  172. $("#templateModal").find(".modal-p").html(obj.p).css("text-align", obj.align);
  173. $("#templateModal").find(".modal-btn").text(obj.btnText).addClass(obj.btnClass);
  174. $("#templateModal").modal('show');
  175. $("#templateModal").find(".modal-btn").click(obj.callBack);
  176. if ($("#templateModal").find(".title2").text().length == 0) {
  177. $("#templateModal").find(".m-top").css({"padding-top": "40px"});
  178. }
  179. };
  180. function generalModal(obj) { // 通用弹窗
  181. $("#generalModal").remove();
  182. $(".modal-backdrop").remove();
  183. var generalModalHtml = '<div class="modal fade ms-modal" id="generalModal" tabindex="-1" role="dialog">\
  184. <div class="modal-dialog modal-sm" role="document">\
  185. <div class="modal-content">\
  186. <div class="modal-body">\
  187. <div class="text-center">\
  188. <div class="modal-icon"><span class="icon icon-class mb5"></span></div>\
  189. <div class="color-333 bold font16 title"></div>\
  190. <div class="color-333 modal-p"></div>\
  191. <div class="">\
  192. <a href="javascript:;" class="ms-btn cancel-btn"></a>\
  193. <button type="button" class="ms-btn ms-btn-primary success-btn"></button>\
  194. </div>\
  195. </div>\
  196. </div>\
  197. </div>\
  198. </div>\
  199. </div>';
  200. $("body").append(generalModalHtml).css("padding-right", 0);
  201. $("#generalModal").find(".icon-class").addClass(obj.iconClass);
  202. $("#generalModal").find(".title").text(obj.title);
  203. $("#generalModal").find(".modal-p").html(obj.p).css("text-align", obj.align);
  204. $("#generalModal").find(".success-btn").text(obj.successBtnText);
  205. $("#generalModal").find(".cancel-btn").text(obj.cancelBtnText);
  206. if (obj.backdrop) {
  207. $("#generalModal").modal({backdrop: 'static', keyboard: false});
  208. } else {
  209. $("#generalModal").modal("show");
  210. }
  211. $("#generalModal").find(".success-btn").click(obj.successCallback);
  212. $("#generalModal").find(".cancel-btn").click(obj.cancelCallback);
  213. var iconClassLength = $("#generalModal").find(".icon-class").attr("class").replace(/\s*/g,"").length;
  214. // console.log(iconClassLength);
  215. if (iconClassLength == 17) {
  216. $("#generalModal").find(".modal-icon").hide();
  217. } else {
  218. $("#generalModal").find(".modal-icon").show();
  219. }
  220. // 点击按钮是否关闭弹窗
  221. $("#generalModal").find(".success-btn").click(function () {
  222. if (obj.successBtnModal) {
  223. $("#generalModal").modal("hide");
  224. }
  225. });
  226. $("#generalModal").find(".cancel-btn").click(function () {
  227. if (obj.cancelBtnModal) {
  228. $("#generalModal").modal("hide");
  229. }
  230. });
  231. };
  232. function autoHideModal(obj) { // 自动关闭弹窗
  233. $(".modal-backdrop").remove();
  234. $("#autoHideModal").remove();
  235. var modalHtml = '<div class="modal fade ms-modal auto-hide-modal" id="autoHideModal" tabindex="-1" role="dialog">\
  236. <div class="modal-dialog modal-sm" role="document">\
  237. <div class="modal-content">\
  238. <div class="modal-body">\
  239. <div class="text-center">\
  240. <div class="auto-hide">\
  241. <span class="icon"></span>\
  242. <div class="mt5 text">obj.text</div>\
  243. </div>\
  244. </div>\
  245. </div>\
  246. </div>\
  247. </div>\
  248. </div>';
  249. $("body").append(modalHtml);
  250. $("#autoHideModal .auto-hide .icon").addClass(obj.iconClass);
  251. $("#autoHideModal .auto-hide .text").html(obj.text);
  252. var autoHide = null;
  253. clearTimeout(autoHide);
  254. $("#autoHideModal").modal('show');
  255. $(".modal-backdrop").hide();
  256. autoHide = setTimeout(function(){
  257. $("#autoHideModal").modal("hide");
  258. }, obj.time);
  259. $('#autoHideModal').on('hidden.bs.modal', obj.callBack);
  260. };
  261. function deleteAppModal(obj) { // 通用弹窗
  262. $("#deleteAppModal").remove();
  263. $(".modal-backdrop").remove();
  264. var html = '<div class="modal fade ms-modal" id="deleteAppModal" tabindex="-1" role="dialog">\
  265. <div class="modal-dialog" role="document">\
  266. <div class="modal-content">\
  267. <div class="modal-body">\
  268. <div class="text-center">\
  269. <div class="modal-icon"><span class="icon icon-class mb5"></span></div>\
  270. <div class="color-333 bold font16 title"></div>\
  271. <div class="color-333 modal-p"></div>\
  272. <div class="form-horizontal">\
  273. <div class="form-group">\
  274. <label class="col-sm-3 control-label">登录密码</label>\
  275. <div class="col-sm-8"><input type="password" name="pwd" class="form-control" autocomplete="new-password"></div>\
  276. </div>\
  277. <div class="form-group">\
  278. <label class="col-sm-3 control-label"></label>\
  279. <div class="col-sm-8"><span class="error fl font12 color-danger">密码错误</span></div>\
  280. </div>\
  281. </div>\
  282. <div>\
  283. <a href="javascript:;" class="ms-btn cancel-btn"></a>\
  284. <button type="button" class="ms-btn ms-btn-primary success-btn"></button>\
  285. </div>\
  286. </div>\
  287. </div>\
  288. </div>\
  289. </div>\
  290. </div>';
  291. $("body").append(html).css("padding-right", 0);
  292. $("#deleteAppModal").find(".icon-class").addClass(obj.iconClass);
  293. $("#deleteAppModal").find(".title").text(obj.title);
  294. $("#deleteAppModal").find(".modal-p").html(obj.p).css("text-align", obj.align);
  295. $("#deleteAppModal").find(".success-btn").text(obj.successBtnText);
  296. $("#deleteAppModal").find(".cancel-btn").text(obj.cancelBtnText);
  297. if (obj.backdrop) {
  298. $("#deleteAppModal").modal({backdrop: 'static', keyboard: false});
  299. } else {
  300. $("#deleteAppModal").modal("show");
  301. }
  302. $("#deleteAppModal").find(".success-btn").click(obj.successCallback);
  303. $("#deleteAppModal").find(".cancel-btn").click(obj.cancelCallback);
  304. var iconClassLength = $("#deleteAppModal").find(".icon-class").attr("class").replace(/\s*/g,"").length;
  305. // console.log(iconClassLength);
  306. if (iconClassLength == 17) {
  307. $("#deleteAppModal").find(".modal-icon").hide();
  308. } else {
  309. $("#deleteAppModal").find(".modal-icon").show();
  310. }
  311. // 点击按钮是否关闭弹窗
  312. $("#deleteAppModal").find(".success-btn").click(function () {
  313. if (obj.successBtnModal) {
  314. $("#deleteAppModal").modal("hide");
  315. }
  316. });
  317. $("#deleteAppModal").find(".cancel-btn").click(function () {
  318. if (obj.cancelBtnModal) {
  319. $("#deleteAppModal").modal("hide");
  320. }
  321. });
  322. };
  323. return {
  324. determineModal: determineModal, // 带确定按钮 弹窗
  325. templateModal: templateModal,
  326. generalModal: generalModal,
  327. autoHideModal: autoHideModal,
  328. deleteAppModal: deleteAppModal,
  329. init: function () { // 调用全部
  330. this.determineModal();
  331. this.templateModal();
  332. this.generalModal();
  333. this.autoHideModal();
  334. this.deleteAppModal();
  335. }
  336. }
  337. }();
  338. /*
  339. Modal.generalModal({
  340. backdrop: true, // 点击阴影是否关闭弹窗, // true 开启; false 关闭
  341. iconClass: "", // success: icon-modal-success1, error: icon-modal-error2
  342. title: '', // 弹窗标题
  343. p: '', // 弹窗内容
  344. align: 'center', // 弹窗内容排列顺序 left center right
  345. cancelBtnText: "取消", // 取消按钮文字
  346. successBtnText: '确定', // 确定按钮文字
  347. successBtnModal: false, // 点击确定按钮是否关闭弹窗 true 关闭 false 不关闭
  348. cancelBtnModal: true, // 点击取消按钮是否关闭弹窗 true 关闭 false 不关闭
  349. successCallback: function () {
  350. },
  351. cancelCallback: function () {
  352. }
  353. });
  354. */
  355. /*
  356. Modal.determineModal({
  357. iconClass: "icon-modal-success1", // success: icon-modal-success1, error: icon-modal-error2
  358. title: '提示',
  359. p: '该链接为测试连接,只能下载<span class="color-danger">5</span>次。<br>建议您:<br>1、电脑登录第八区网站,<br>2、点击导航栏【发布】,<br>3、将APP上传至网站,即可获得正式下载地址。',
  360. align: 'left',
  361. btnText: '已知晓'
  362. });
  363. */
  364. /*
  365. Modal.templateModal({
  366. imgName: "modal-bg-3.jpg",
  367. title1: '提示',
  368. title2: '',
  369. p: '建议您:<br>尽快<span class="color-danger">电脑</span>登录第八区网站,即可享受<br><span class="iconfont icon-xingxing" style="color: #fec323; font-size: 12px; margin-right: 5px;"></span>免费试用封装打包APP<br><span class="iconfont icon-xingxing" style="color: #fec323; font-size: 12px; margin-right: 5px;"></span>每天免费赠送<span class="color-danger">1000</span>次分发下载次数',
  370. align: 'left', // 居左 left, 居中 center, 居右 right
  371. btnText: '知道了',
  372. btnClass: "modal-btn2",
  373. callBack: function(){
  374. // location.href = "http://www.baidu.com";
  375. }
  376. });
  377. */
  378. /*
  379. Modal.autoHideModal({
  380. iconClass: "icon-modal-success3", // success: icon-modal-success3 error: icon-modal-error3
  381. text: "我是谁",
  382. time: 3000,
  383. callBack: function () {
  384. alert(123);
  385. }
  386. });
  387. */
  388. var Layout = function () {
  389. function html5Reader(file, img) {
  390. var reader = new FileReader();
  391. reader.readAsDataURL(file);
  392. reader.onload = function (e) {
  393. img.attr("src", this.result);
  394. };
  395. };
  396. // 上传图片 1传1
  397. function initUploadImg(obj) {
  398. $(document).on("change", obj.el, function () {
  399. var file = this.files[0];
  400. // var name = this.files[0].name; // ie9 报错 无法获取未定义或 null 引用的属性“0”
  401. var name = $(this).val();
  402. // console.log(name);
  403. // 判断文件类型
  404. var type = (name.substr(name.lastIndexOf("."))).toLowerCase();
  405. // console.log(type);
  406. var typeModal = '<div class="modal fade" id="typeModal" tabindex="-1" role="dialog">\
  407. <div class="modal-dialog modal-sm" role="document">\
  408. <div class="modal-content">\
  409. <div class="modal-body">\
  410. <div class="text-center">\
  411. <div><span class="icon icon-modal-error2"></span></div>\
  412. <p class="color-333 mt5">您上传的图片格式不正确,请重新上传!</p>\
  413. <div class="mt15">\
  414. <button type="button" class="ms-btn ms-btn-default w90" data-dismiss="modal">确定</button>\
  415. </div>\
  416. </div>\
  417. </div>\
  418. </div>\
  419. </div>\
  420. </div>';
  421. if (type != ".jpg" && type != ".gif" && type != ".jpeg" && type != ".png") {
  422. $("#typeModal").remove();
  423. $("body").append(typeModal);
  424. $("#typeModal").modal("show");
  425. return false;
  426. }
  427. console.log(file.size/(1024*1024));
  428. if (file.size/(1024*1024) > 1) {
  429. Modal.generalModal({
  430. backdrop: false, // 点击阴影是否关闭弹窗, // true 开启; false 关闭
  431. p: '图片过大,请上传1M以内的图片', // 弹窗内容
  432. align: 'center', // 弹窗内容排列顺序 left center right
  433. successBtnText: '确定', // 确定按钮文字
  434. successBtnModal: true, // 点击确定按钮是否关闭弹窗 true 关闭 false 不关闭
  435. });
  436. $(this).val("");
  437. return false;
  438. }
  439. var eImg = $('<img />');
  440. $(this).next('img').remove();
  441. $(this).after(eImg);
  442. var isIE9 = navigator.userAgent.match(/MSIE 9.0/) != null;
  443. if (isIE9) {
  444. $(this).select();
  445. var reallocalpath = document.selection.createRange().text;
  446. // 非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现
  447. eImg[0].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\"" + reallocalpath + "\")";
  448. // 设置img的src为base64编码的透明图片 取消显示浏览器默认图片
  449. eImg[0].src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
  450. } else {
  451. html5Reader(this.files[0], eImg); // 兼容ie10以上(含ie10)
  452. }
  453. $(this).parent().addClass('uploaded');
  454. obj.success();
  455. });
  456. };
  457. function initUploadPic() {
  458. $(document).on("change", ".thumbnail", function () {
  459. var file = this.files[0];
  460. // alert(123);
  461. // var name = this.files[0].name; // ie9 报错 无法获取未定义或 null 引用的属性“0”
  462. var name = $(this).val();
  463. console.log(name);
  464. // 判断文件类型
  465. var type = (name.substr(name.lastIndexOf("."))).toLowerCase();
  466. // console.log(type);
  467. var typeModal = '<div class="modal fade" id="typeModal" tabindex="-1" role="dialog">\
  468. <div class="modal-dialog modal-sm" role="document">\
  469. <div class="modal-content">\
  470. <div class="modal-body">\
  471. <div class="text-center">\
  472. <div><span class="icon icon-modal-error2"></span></div>\
  473. <p class="color-333 mt5">您上传的图片格式不正确,请重新上传!</p>\
  474. <div class="mt15">\
  475. <button type="button" class="ms-btn ms-btn-default w90" data-dismiss="modal">确定</button>\
  476. </div>\
  477. </div>\
  478. </div>\
  479. </div>\
  480. </div>\
  481. </div>';
  482. if (type != ".jpg" && type != ".gif" && type != ".jpeg" && type != ".png") {
  483. $("#typeModal").remove();
  484. $("body").append(typeModal);
  485. $("#typeModal").modal("show");
  486. return false;
  487. }
  488. console.log(file.size/(1024*1024));
  489. if (file.size/(1024*1024) > 1) {
  490. Modal.generalModal({
  491. backdrop: false, // 点击阴影是否关闭弹窗, // true 开启; false 关闭
  492. p: '图片过大,请上传1M以内的图片', // 弹窗内容
  493. align: 'center', // 弹窗内容排列顺序 left center right
  494. successBtnText: '确定', // 确定按钮文字
  495. successBtnModal: true, // 点击确定按钮是否关闭弹窗 true 关闭 false 不关闭
  496. });
  497. $(this).val("");
  498. return false;
  499. }
  500. var eImg = $('<img />');
  501. $(this).next('img').remove();
  502. $(this).after(eImg);
  503. var isIE9 = navigator.userAgent.match(/MSIE 9.0/) != null;
  504. if (isIE9) {
  505. $(this).select();
  506. var reallocalpath = document.selection.createRange().text;
  507. // 非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现
  508. eImg[0].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\"" + reallocalpath + "\")";
  509. // 设置img的src为base64编码的透明图片 取消显示浏览器默认图片
  510. eImg[0].src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
  511. } else {
  512. html5Reader(this.files[0], eImg); // 兼容ie10以上(含ie10)
  513. }
  514. $(this).parents('.upload-img').addClass('uploaded');
  515. $(this).parents('.uploaded-img').addClass('uploaded');
  516. $(this).parents('.upload-icon').addClass('uploaded');
  517. $(this).parents('.upload-icon-common').addClass('uploaded');
  518. });
  519. };
  520. // 上传图片 1传多
  521. function initUploadPics(obj) {
  522. // 检测已上传截图个数
  523. function checkImgLength (uploadWrap) {
  524. var imgLength = $(uploadWrap).find(".uploaded-img").length;
  525. // console.log("img: " + imgLength);
  526. if (imgLength >= obj.imgLength) {
  527. $(uploadWrap).find(".upload-img").hide();
  528. } else {
  529. $(uploadWrap).find(".upload-img").show();
  530. }
  531. };
  532. checkImgLength(".upload-img-more");
  533. // 上传应用截图
  534. $('.upload-img .upload').click(function () {
  535. $(this).val("");
  536. });
  537. $('.upload-img .upload').change(function() {
  538. var name = this.value; // this.files[0].name; ie报错
  539. // 判断文件类型
  540. var type = (name.substr(name.lastIndexOf("."))).toLowerCase();
  541. var typeModal = '<div class="modal fade" id="typeModal" tabindex="-1" role="dialog">\
  542. <div class="modal-dialog modal-sm" role="document">\
  543. <div class="modal-content">\
  544. <div class="modal-body">\
  545. <div class="text-center">\
  546. <div><span class="icon icon-modal-error2"></span></div>\
  547. <p class="color-333 mt5">您上传的图片格式不正确,请重新上传!</p>\
  548. <div class="mt15">\
  549. <button type="button" class="ms-btn ms-btn-default w90" data-dismiss="modal">确定</button>\
  550. </div>\
  551. </div>\
  552. </div>\
  553. </div>\
  554. </div>\
  555. </div>';
  556. var $imgHtml = $('<div class="uploaded-img fl"><input type="file" class="thumbnail"><img /><div class="reset">更换图片</div><span class="icon icon-delete2 delete-img"></span></div>');
  557. if (type != ".jpg" && type !=".gif" && type != ".jpeg" && type != ".png") {
  558. $("#typeModal").remove();
  559. $("body").append(typeModal);
  560. $("#typeModal").modal("show");
  561. return false;
  562. }
  563. $(this).parents(".upload-img").before($imgHtml);
  564. var $uploadImg = $imgHtml.find("img");
  565. var isIE9 = navigator.userAgent.match(/MSIE 9.0/) != null;
  566. if (isIE9) {
  567. $(this).select();
  568. var reallocalpath = document.selection.createRange().text;
  569. // 非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现
  570. $uploadImg[0].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\"" + reallocalpath + "\")";
  571. // 设置img的src为base64编码的透明图片 取消显示浏览器默认图片
  572. $uploadImg[0].src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
  573. } else {
  574. var reader = new FileReader();
  575. reader.readAsDataURL(this.files[0]); // $("#id").files[0]
  576. reader.onload = function (e) {
  577. $uploadImg.attr("src", this.result);
  578. };
  579. }
  580. checkImgLength(".upload-img-more");
  581. });
  582. // 删除应用截图
  583. $(".upload-img-more").on("click", ".delete-img", function (e) {
  584. var $file = $(this).find(".upload");
  585. $(this).parents(".uploaded-img").remove();
  586. $file.val("");
  587. checkImgLength(".upload-img-more");
  588. e.stopPropagation();
  589. });
  590. };
  591. // 通知中心
  592. function initMsgCenter() {
  593. // 全选
  594. $(".user-center1 .message-list .list .all").click(function () {
  595. var $allIcon = $(this).find(".iconfont");
  596. var $allIcons = $(".message-list dd .list .checkbox-li .iconfont");
  597. var checked = $allIcon.hasClass("icon-checkbox-checked1");
  598. if (checked) {
  599. $allIcon.removeClass("icon-checkbox-checked1");
  600. $allIcons.removeClass("icon-checkbox-checked1");
  601. } else {
  602. $allIcon.addClass("icon-checkbox-checked1");
  603. $allIcons.addClass("icon-checkbox-checked1");
  604. }
  605. });
  606. // 单选
  607. $(".user-center1 .message-list dd .list .checkbox-li .iconfont").click(function () {
  608. var checked = $(this).hasClass("icon-checkbox-checked1");
  609. var ddLength = $(".message-list dl dd").length;
  610. var checkedLength = $(".message-list dd .checkbox-li .icon-checkbox-checked1").length + 1;
  611. var $allIcon = $(".message-list .list .all .iconfont");
  612. console.log("dd:" + ddLength);
  613. console.log("icon:" + checkedLength);
  614. if (checked) {
  615. $(this).removeClass("icon-checkbox-checked1");
  616. $allIcon.removeClass("icon-checkbox-checked1");
  617. } else {
  618. $(this).addClass("icon-checkbox-checked1");
  619. if (ddLength == checkedLength) {
  620. $allIcon.addClass("icon-checkbox-checked1");
  621. } else {
  622. $allIcon.removeClass("icon-checkbox-checked1");
  623. }
  624. }
  625. });
  626. // 选中已读
  627. $(".user-center1 .message-list dt .all-read").click(function () {
  628. var $allChecked = $(".user-center1 .message-list .icon-checkbox1");
  629. var $checked = $(".user-center1 .message-list dd .checkbox-li .icon-checkbox-checked1");
  630. var ids = [];
  631. $checked.each(function () {
  632. id = $(this).data('id');
  633. ids.push(id);
  634. });
  635. if (ids) {
  636. var str = ids.join(",");
  637. var json = {id: str};
  638. $.post('/notice/read', json, function (data) {
  639. if (data.code == 200) {
  640. $checked.parents("dd").addClass("read").find(".msg-icon").find(".iconfont").attr("class", "iconfont icon-read");
  641. $allChecked.removeClass("icon-checkbox-checked1");
  642. }
  643. }, 'JSON')
  644. }
  645. });
  646. // 选中删除
  647. $(".user-center1 .message-list dt .selected-delete").click(function () {
  648. var $allChecked = $(".user-center1 .message-list .icon-checkbox1");
  649. var $checked = $(".user-center1 .message-list dd .checkbox-li .icon-checkbox-checked1");
  650. var ids = [];
  651. $checked.each(function () {
  652. id = $(this).data('id');
  653. ids.push(id);
  654. });
  655. if (ids) {
  656. var str = ids.join(",");
  657. var json = {id: str};
  658. $.post('/notice/delete', json, function (data) {
  659. if (data.code == 200) {
  660. $checked.parents("dd").remove();
  661. $allChecked.removeClass("icon-checkbox-checked1");
  662. window.location.reload();
  663. }
  664. }, 'JSON')
  665. }
  666. });
  667. };
  668. /*
  669. function initMsgCenter() {
  670. // 全选
  671. $(".user-center1 .message-list .list .all").click(function () {
  672. var $allIcon = $(this).find(".iconfont");
  673. var $allIcons = $(".message-list dd .list .checkbox-li .iconfont");
  674. var checked = $allIcon.hasClass("icon-checkbox-checked1");
  675. if (checked) {
  676. $allIcon.removeClass("icon-checkbox-checked1");
  677. $allIcons.removeClass("icon-checkbox-checked1");
  678. } else {
  679. $allIcon.addClass("icon-checkbox-checked1");
  680. $allIcons.addClass("icon-checkbox-checked1");
  681. }
  682. });
  683. // 单选
  684. $(".user-center1 .message-list dd .list .checkbox-li .iconfont").click(function () {
  685. var checked = $(this).hasClass("icon-checkbox-checked1");
  686. var ddLength = $(".message-list dl dd").length;
  687. var checkedLength = $(".message-list dd .checkbox-li .icon-checkbox-checked1").length + 1;
  688. var $allIcon = $(".message-list .list .all .iconfont");
  689. console.log("dd:" + ddLength);
  690. console.log("icon:" + checkedLength);
  691. if (checked) {
  692. $(this).removeClass("icon-checkbox-checked1");
  693. $allIcon.removeClass("icon-checkbox-checked1");
  694. } else {
  695. $(this).addClass("icon-checkbox-checked1");
  696. if (ddLength == checkedLength) {
  697. $allIcon.addClass("icon-checkbox-checked1");
  698. } else {
  699. $allIcon.removeClass("icon-checkbox-checked1");
  700. }
  701. }
  702. });
  703. // 选中已读
  704. $(".user-center1 .message-list dt .all-read").click(function () {
  705. var $allChecked = $(".user-center1 .message-list .icon-checkbox1");
  706. var $checked = $(".user-center1 .message-list dd .checkbox-li .icon-checkbox-checked1");
  707. $checked.parents("dd").addClass("read").find(".msg-icon").find(".iconfont").attr("class", "iconfont icon-read");
  708. $allChecked.removeClass("icon-checkbox-checked1");
  709. });
  710. // 选中删除
  711. $(".user-center1 .message-list dt .selected-delete").click(function () {
  712. var $allChecked = $(".user-center1 .message-list .icon-checkbox1");
  713. var $checked = $(".user-center1 .message-list dd .checkbox-li .icon-checkbox-checked1");
  714. $checked.parents("dd").remove();
  715. $allChecked.removeClass("icon-checkbox-checked1");
  716. });
  717. }
  718. */
  719. // 文档中心
  720. function initDoc() {
  721. $(".doc-details .details-left dt").click(function () {
  722. var $allDt = $(".doc-details .details-left dt");
  723. var $allDd = $(".doc-details .details-left dd");
  724. $allDt.removeClass("active");
  725. $allDd.stop().slideUp();
  726. $(this).addClass("active").next("dd").stop().slideDown();
  727. $("html, body").animate({"scrollTop": 0}, 600);
  728. });
  729. }
  730. // 工具箱
  731. function initToolkit() {
  732. // 工具箱 提取ipa包 验证输入链接是否正确
  733. $(".toolkit-common .ipa-top .form-control").bind("input propertychange", function () {
  734. var val = $(this).val();
  735. var valLenght = val.length;
  736. if (valLenght > 0 && !verifyUrl(val)) {
  737. $(this).parents(".form-group").addClass("form-error");
  738. } else {
  739. $(this).parents(".form-group").removeClass("form-error");
  740. }
  741. });
  742. // 验证 app name
  743. $("input[name=app]").bind("input propertychange", function () {
  744. var val = $(this).val();
  745. var valLength = val.length;
  746. if (valLength > 0) {
  747. $(this).parents(".form-group").removeClass("form-error");
  748. } else {
  749. $(this).parents(".form-group").addClass("form-error");
  750. }
  751. });
  752. // 验证 Bundle ID
  753. $("input[name=bundle]").bind("input propertychange", function () {
  754. var val = $(this).val();
  755. var valLength = val.length;
  756. if (!verifyBundle(val)) {
  757. $(this).parents(".form-group").addClass("form-error");
  758. } else {
  759. $(this).parents(".form-group").removeClass("form-error");
  760. }
  761. });
  762. // 验证 IPA下载地址
  763. $("input[name=downloadLink]").bind("input propertychange", function () {
  764. var val = $(this).val();
  765. var valLength = val.length;
  766. if (!verifyUrl(val)) {
  767. $(this).parents(".form-group").addClass("form-error");
  768. } else {
  769. $(this).parents(".form-group").removeClass("form-error");
  770. }
  771. });
  772. // 验证 ICON链接地址
  773. $("input[name=link]").bind("input propertychange", function () {
  774. var val = $(this).val();
  775. var valLength = val.length;
  776. if (!verifyUrl(val)) {
  777. $(this).parents(".form-group").addClass("form-error");
  778. } else {
  779. $(this).parents(".form-group").removeClass("form-error");
  780. }
  781. });
  782. $(".toolkit-new .plist-submit").click(function () {
  783. var appName = $("input[name=app]").val();
  784. var bundle = $("input[name=bundle]").val();
  785. var ipaLink = $("input[name=downloadLink]").val();
  786. var iconLink = $("input[name=link]").val();
  787. if (appName.length > 0) {
  788. $("input[name=app]").parents(".form-group").removeClass("form-error");
  789. } else {
  790. $("input[name=app]").parents(".form-group").addClass("form-error");
  791. }
  792. if (verifyBundle(bundle)) {
  793. $("input[name=bundle]").parents(".form-group").removeClass("form-error");
  794. } else {
  795. $("input[name=bundle]").parents(".form-group").addClass("form-error");
  796. }
  797. if (verifyUrl(ipaLink)) {
  798. $("input[name=downloadLink]").parents(".form-group").removeClass("form-error");
  799. } else {
  800. $("input[name=downloadLink]").parents(".form-group").addClass("form-error");
  801. }
  802. if (verifyUrl(iconLink)) {
  803. $("input[name=link]").parents(".form-group").removeClass("form-error");
  804. } else {
  805. $("input[name=link]").parents(".form-group").addClass("form-error");
  806. }
  807. var errorLength = $(".toolkit-new .form-error").length;
  808. if (errorLength == 0) {
  809. $("form").submit();
  810. }
  811. });
  812. // 验证 别名
  813. $("input[name=alias]").bind("input propertychange", function () {
  814. var val = $(this).val();
  815. var valLength = val.length;
  816. // console.log(verifyLetter(val));
  817. if (verifyLetter(val) || valLength == 0) {
  818. $(this).parents(".form-group").addClass("form-error");
  819. } else {
  820. $(this).parents(".form-group").removeClass("form-error");
  821. }
  822. });
  823. // 验证 密码
  824. $("input[name=pwd]").bind("input propertychange", function () {
  825. var val = $(this).val();
  826. var valLength = val.length;
  827. // console.log(verifyLetterDigital(val));
  828. // console.log(verifySpecialCharacters(val));
  829. if (verifySpecialCharacters(val) || verifyLetterDigital(val) || valLength == 0 || valLength < 6) {
  830. $(this).parents(".form-group").addClass("form-error");
  831. } else {
  832. $(this).parents(".form-group").removeClass("form-error");
  833. }
  834. });
  835. // 验证 组织名称
  836. $("input[name=organization]").bind("input propertychange", function () {
  837. var val = $(this).val();
  838. var valLength = val.length;
  839. console.log(verifyCharacters(val));
  840. if (verifyCharacters(val) || valLength == 0 ) {
  841. $(this).parents(".form-group").addClass("form-error");
  842. } else {
  843. $(this).parents(".form-group").removeClass("form-error");
  844. }
  845. });
  846. $(".toolkit-new .android-submit").click(function () {
  847. var $alias = $("input[name=alias]");
  848. var $pwd = $("input[name=pwd]");
  849. var $organization = $("input[name=organization]");
  850. if ($alias.val().length > 0) {
  851. $alias.parents(".form-group").removeClass("form-error");
  852. } else {
  853. $alias.parents(".form-group").addClass("form-error");
  854. }
  855. if ($pwd.val().length > 0) {
  856. $pwd.parents(".form-group").removeClass("form-error");
  857. } else {
  858. $pwd.parents(".form-group").addClass("form-error");
  859. }
  860. if ($organization.val().length > 0) {
  861. $organization.parents(".form-group").removeClass("form-error");
  862. } else {
  863. $organization.parents(".form-group").addClass("form-error");
  864. }
  865. var errorLength = $(".toolkit-new .form-error").length;
  866. if (errorLength == 0) {
  867. $("form").submit();
  868. }
  869. });
  870. // 制作图标
  871. $(".make-icon .tab-con img").lazyload({
  872. container: ".toolkit-make-icon .foreground-map .tab1 .icons-ul",
  873. skip_invisible: false
  874. });
  875. var palette = [
  876. ["rgb(0, 0, 0)", "rgb(67, 67, 67)", "rgb(102, 102, 102)", "rgb(153, 153, 153)","rgb(183, 183, 183)",
  877. "rgb(204, 204, 204)", "rgb(217, 217, 217)", "rgb(239, 239, 239)", "rgb(243, 243, 243)", "rgb(255, 255, 255)"],
  878. ["rgb(152, 0, 0)", "rgb(255, 0, 0)", "rgb(255, 153, 0)", "rgb(255, 255, 0)", "rgb(0, 255, 0)",
  879. "rgb(0, 255, 255)", "rgb(74, 134, 232)", "rgb(0, 0, 255)", "rgb(153, 0, 255)", "rgb(255, 0, 255)"],
  880. ["rgb(230, 184, 175)", "rgb(244, 204, 204)", "rgb(252, 229, 205)", "rgb(255, 242, 204)", "rgb(217, 234, 211)",
  881. "rgb(208, 224, 227)", "rgb(201, 218, 248)", "rgb(207, 226, 243)", "rgb(217, 210, 233)", "rgb(234, 209, 220)",
  882. "rgb(221, 126, 107)", "rgb(234, 153, 153)", "rgb(249, 203, 156)", "rgb(255, 229, 153)", "rgb(182, 215, 168)",
  883. "rgb(162, 196, 201)", "rgb(164, 194, 244)", "rgb(159, 197, 232)", "rgb(180, 167, 214)", "rgb(213, 166, 189)",
  884. "rgb(204, 65, 37)", "rgb(224, 102, 102)", "rgb(246, 178, 107)", "rgb(255, 217, 102)", "rgb(147, 196, 125)",
  885. "rgb(118, 165, 175)", "rgb(109, 158, 235)", "rgb(111, 168, 220)", "rgb(142, 124, 195)", "rgb(194, 123, 160)",
  886. "rgb(166, 28, 0)", "rgb(204, 0, 0)", "rgb(230, 145, 56)", "rgb(241, 194, 50)", "rgb(106, 168, 79)",
  887. "rgb(69, 129, 142)", "rgb(60, 120, 216)", "rgb(61, 133, 198)", "rgb(103, 78, 167)", "rgb(166, 77, 121)",
  888. "rgb(133, 32, 12)", "rgb(153, 0, 0)", "rgb(180, 95, 6)", "rgb(191, 144, 0)", "rgb(56, 118, 29)",
  889. "rgb(19, 79, 92)", "rgb(17, 85, 204)", "rgb(11, 83, 148)", "rgb(53, 28, 117)", "rgb(116, 27, 71)",
  890. "rgb(91, 15, 0)", "rgb(102, 0, 0)", "rgb(120, 63, 4)", "rgb(127, 96, 0)", "rgb(39, 78, 19)",
  891. "rgb(12, 52, 61)", "rgb(28, 69, 135)", "rgb(7, 55, 99)", "rgb(32, 18, 77)", "rgb(76, 17, 48)"]
  892. ];
  893. // 制作图标 背景颜色
  894. $("#colorPicker6").spectrum({
  895. color: "#157df1",//初始化颜色
  896. showInput: true,//显示输入
  897. showAlpha: true, // 透明度
  898. containerClassName: "full-spectrum",
  899. showInitial: true,//显示初始颜色,提供现在选择的颜色和初始颜色对比
  900. showPalette: true,//显示选择器面板
  901. showSelectionPalette: true,//记住选择过的颜色
  902. maxPaletteSize: 7,//记住选择过的颜色的最大数量
  903. preferredFormat: "hex",//输入框颜色格式,(hex十六进制,hex3十六进制可以的话只显示3位,hsl,rgb三原色,name英文名显示)
  904. hideAfterPaletteSelect: true,// 点击左侧选择颜色,面板关闭
  905. chooseText: "确定",
  906. cancelText: "取消",
  907. move: function (color) {//选择器右边面板移动时触发
  908. },
  909. show: function () {//选择器面板显示时触发
  910. },
  911. beforeShow: function () {//选择器面板显示之前触发,返回false时不显示
  912. },
  913. hide: function (color) {//选择器面板隐藏时触发
  914. updateIconBgBackground (color);
  915. },
  916. //选择器面板颜色设置
  917. palette: palette
  918. });
  919. function updateIconBgBackground (color) {
  920. $(".toolkit-make-icon .m-icon").css("background-color", color);
  921. $(".toolkit-make-icon .small-bg").css("background-color", color);
  922. return color;
  923. }
  924. // 制作图标 图标内文字
  925. $("#colorPicker8").spectrum({
  926. color: "#fff",//初始化颜色
  927. showInput: true,//显示输入
  928. showAlpha: true, // 透明度
  929. containerClassName: "full-spectrum",
  930. showInitial: true,//显示初始颜色,提供现在选择的颜色和初始颜色对比
  931. showPalette: true,//显示选择器面板
  932. showSelectionPalette: true,//记住选择过的颜色
  933. maxPaletteSize: 7,//记住选择过的颜色的最大数量
  934. preferredFormat: "hex",//输入框颜色格式,(hex十六进制,hex3十六进制可以的话只显示3位,hsl,rgb三原色,name英文名显示)
  935. hideAfterPaletteSelect: true,// 点击左侧选择颜色,面板关闭
  936. chooseText: "确定",
  937. cancelText: "取消",
  938. move: function (color) {//选择器右边面板移动时触发
  939. },
  940. show: function () {//选择器面板显示时触发
  941. },
  942. beforeShow: function () {//选择器面板显示之前触发,返回false时不显示
  943. },
  944. hide: function (color) {//选择器面板隐藏时触发
  945. updateIconName1 (color);
  946. },
  947. //选择器面板颜色设置
  948. palette: palette
  949. });
  950. function updateIconName1 (color) {
  951. $(".toolkit-make-icon .i-name1, .toolkit-make-icon .i-name2").css("color", color);
  952. return color;
  953. }
  954. // 制作图标 文字颜色
  955. $("#colorPicker7").spectrum({
  956. color: "#fff",//初始化颜色
  957. showInput: true,//显示输入
  958. showAlpha: true, // 透明度
  959. containerClassName: "full-spectrum",
  960. showInitial: true,//显示初始颜色,提供现在选择的颜色和初始颜色对比
  961. showPalette: true,//显示选择器面板
  962. showSelectionPalette: true,//记住选择过的颜色
  963. maxPaletteSize: 7,//记住选择过的颜色的最大数量
  964. preferredFormat: "hex",//输入框颜色格式,(hex十六进制,hex3十六进制可以的话只显示3位,hsl,rgb三原色,name英文名显示)
  965. hideAfterPaletteSelect: true,// 点击左侧选择颜色,面板关闭
  966. chooseText: "确定",
  967. cancelText: "取消",
  968. move: function (color) {//选择器右边面板移动时触发
  969. },
  970. show: function () {//选择器面板显示时触发
  971. },
  972. beforeShow: function () {//选择器面板显示之前触发,返回false时不显示
  973. },
  974. hide: function (color) {//选择器面板隐藏时触发
  975. updateIconName (color);
  976. },
  977. //选择器面板颜色设置
  978. palette: palette
  979. });
  980. function updateIconName (color) {
  981. $(".toolkit-make-icon .m-icon .m-name").css("color", color);
  982. return color;
  983. }
  984. // 制作图标 切换
  985. tab.radioTick({
  986. el: ".toolkit-make-icon .small-bg-list li"
  987. });
  988. $(".toolkit-make-icon .small-bg-list li").click(function () {
  989. var i = $(this).index();
  990. var url = $(".toolkit-make-icon .m-icon").css("background-image");
  991. url = url.substr(0, url.indexOf("png") -2);
  992. $(".toolkit-make-icon .m-icon").css("background-image", url + i + ".png");
  993. // console.log(url);
  994. });
  995. // 制作图标 选项卡
  996. tab.basis({
  997. el: ".toolkit-make-icon .foreground-map .tab li",
  998. elTab: ".toolkit-make-icon .foreground-map .tab-con>div"
  999. });
  1000. // 制作图标 选择图标 图标预览切换
  1001. $(".toolkit-make-icon .foreground-map .tab1 .icons-ul li").click(function () {
  1002. // 清空文字输入框
  1003. $(".toolkit-make-icon .foreground-map .tab2 .edit-text input[name=editText]").val("");
  1004. // 清空app name
  1005. $(".toolkit-make-icon .m-icon .m-name").text("");
  1006. calcText();
  1007. var i = $(this).index();
  1008. imgSrc.edit({
  1009. el: ".toolkit-make-icon .m-icon img",
  1010. index: i,
  1011. format: "png?2018"
  1012. });
  1013. $(this).attr({"data-icon": i, "class": "active"}).siblings().attr({"data-icon": "", "class": ""});
  1014. // console.log(src);
  1015. // console.log($img.attr("src"));
  1016. });
  1017. // 前景图位置 上中下
  1018. tab.radioRound({
  1019. el: ".prospects li",
  1020. checkedClass: "icon-radio-checked"
  1021. });
  1022. $(".prospects li").click(function () {
  1023. var dataP = $(this).attr("data-p");
  1024. if (dataP == 0) {
  1025. $(".toolkit-make-icon .written-content, .toolkit-make-icon .text-color").hide();
  1026. } else {
  1027. $(".toolkit-make-icon .written-content, .toolkit-make-icon .text-color").show();
  1028. }
  1029. if (dataP == 1) {
  1030. $(".toolkit-make-icon .make-icon .i-name1").show();
  1031. } else {
  1032. $(".toolkit-make-icon .make-icon .i-name1").hide();
  1033. }
  1034. if (dataP == 2) {
  1035. $(".toolkit-make-icon .make-icon .i-name2").show();
  1036. } else {
  1037. $(".toolkit-make-icon .make-icon .i-name2").hide();
  1038. }
  1039. });
  1040. // 居上 居下 实时文字
  1041. realTime.inputText({
  1042. el: ".toolkit-make-icon .written-content input[type=text]",
  1043. elEdit: ".toolkit-make-icon .make-icon .i-name1, .toolkit-make-icon .make-icon .i-name2"
  1044. });
  1045. // 居上 居下 实时文字 验证字数
  1046. $(".toolkit-make-icon .written-content input[type=text]").bind("input propertychange", function () {
  1047. var valLength = getByteLen($(this).val());
  1048. if (valLength > 10) {
  1049. $(this).parents(".form-group").addClass("form-error");
  1050. } else {
  1051. $(this).parents(".form-group").removeClass("form-error");
  1052. }
  1053. });
  1054. // 形状选择 格式选择
  1055. $(".toolkit-make-icon .m-icon-radio li").click(function () {
  1056. $(this).addClass("active").siblings().removeClass("active");
  1057. });
  1058. // 形状选择 切换圆角、方角
  1059. $(".toolkit-make-icon .shape-choose li").click(function () {
  1060. var i = $(this).index();
  1061. if (i == 1) {
  1062. $(".toolkit-make-icon .make-icon .m-icon").addClass("radius");
  1063. } else {
  1064. $(".toolkit-make-icon .make-icon .m-icon").removeClass("radius");
  1065. }
  1066. });
  1067. // 图片尺寸 选择
  1068. // 全选
  1069. $(".toolkit-make-icon .img-size dt").click(function () {
  1070. var checked = $(this).find(".icon-checkbox1").hasClass("icon-checkbox-checked1");
  1071. var $dtIcon = $(this).find(".icon-checkbox1");
  1072. var $ddIcon = $(this).parents(".img-size").find("dd").find(".icon-checkbox1");
  1073. if (checked) {
  1074. $dtIcon.removeClass("icon-checkbox-checked1");
  1075. $ddIcon.removeClass("icon-checkbox-checked1");
  1076. } else {
  1077. $dtIcon.addClass("icon-checkbox-checked1");
  1078. $ddIcon.addClass("icon-checkbox-checked1");
  1079. }
  1080. });
  1081. // 复选
  1082. $(".toolkit-make-icon .img-size dd").click(function () {
  1083. var checked = $(this).find(".icon-checkbox1").hasClass("icon-checkbox-checked1");
  1084. var $ddIcon = $(this).find(".icon-checkbox1");
  1085. var $dtIcon = $(this).parents(".img-size").find("dt").find(".icon-checkbox1");
  1086. var ddLength = $(".toolkit-make-icon .img-size dd").length;
  1087. if (checked) {
  1088. $dtIcon.removeClass("icon-checkbox-checked1");
  1089. $ddIcon.removeClass("icon-checkbox-checked1");
  1090. } else {
  1091. // $dtIcon.addClass("icon-checkbox-checked1");
  1092. $ddIcon.addClass("icon-checkbox-checked1");
  1093. }
  1094. var ddCheckedLength = $(".toolkit-make-icon .img-size dd .icon-checkbox-checked1").length;
  1095. console.log(ddCheckedLength);
  1096. console.log("dd"+ddLength);
  1097. if (ddLength == ddCheckedLength) {
  1098. $dtIcon.addClass("icon-checkbox-checked1");
  1099. }
  1100. });
  1101. function getByteLen(val) {
  1102. var len = 0;
  1103. for (var i = 0; i < val.length; i++) {
  1104. var a = val.charAt(i);
  1105. if (a.match(/[^\x00-\xff]/ig) != null) {
  1106. len += 2;
  1107. } else {
  1108. len += 1;
  1109. }
  1110. }
  1111. return len;
  1112. }
  1113. // 制作图标 使用文字制作图标 个数计算
  1114. function calcText () {
  1115. var $input = $(".toolkit-make-icon input[name=editText]");
  1116. var inputVal = $input.val();
  1117. var inputValLength = getByteLen(inputVal);
  1118. var that = $(".toolkit-make-icon .m-icon .m-name");
  1119. var $img = $(".toolkit-make-icon .m-icon img");
  1120. var $li = $(".toolkit-make-icon .foreground-map .tab1 ul li");
  1121. // console.log(inputValLength);
  1122. if (inputValLength > 0 && inputValLength <= 24) {
  1123. that.text(inputVal);
  1124. $input.parents(".form-group").removeClass("form-error");
  1125. $img.hide();
  1126. $li.attr({"class": "", "data-icon": ""});
  1127. switch (inputVal.length) {
  1128. case 1:
  1129. that.css("font-size", "120px");
  1130. break;
  1131. case 2:
  1132. that.css("font-size", "60px");
  1133. break;
  1134. case 3:
  1135. that.css("font-size", "40px");
  1136. break;
  1137. case 4:
  1138. that.css("font-size", "30px");
  1139. break;
  1140. default:
  1141. that.css("font-size", "24px");
  1142. }
  1143. } else if (inputVal.length == 0) {
  1144. that.text("");
  1145. $input.parents(".form-group").removeClass("form-error");
  1146. $img.show();
  1147. $li.eq(0).attr({"class": "active", "data-icon": 0});
  1148. imgSrc.edit({
  1149. el: ".toolkit-make-icon .m-icon img",
  1150. index: 0,
  1151. format: "png?2018"
  1152. });
  1153. } else {
  1154. that.text("");
  1155. $input.parents(".form-group").addClass("form-error");
  1156. $img.hide();
  1157. $li.attr({"class": "", "data-icon": ""});
  1158. }
  1159. }
  1160. // 制作图标 实时文字
  1161. $(".toolkit-make-icon .foreground-map .tab2 .edit-text input[name=editText]").on("input propertychange", function () {
  1162. calcText();
  1163. });
  1164. }
  1165. // 个人中心
  1166. function initUserCenter() {
  1167. // 上传资质
  1168. $(".upload-qualification .review-btn").click(function () {
  1169. var $add = $(this).parents(".upload-qualification").find(".upload-img-more");
  1170. var imgLength = $(".upload-qualification .uploaded-img").length;
  1171. if (imgLength > 0) {
  1172. if ($add.hasClass("hide-action")) {
  1173. $add.removeClass("hide-action");
  1174. } else {
  1175. $add.addClass("hide-action");
  1176. }
  1177. } else {
  1178. $add.removeClass("hide-action");
  1179. }
  1180. });
  1181. }
  1182. // 封装插件
  1183. function initEncapsulation() {
  1184. // 基本信息 设备类型 苹果出提示
  1185. $("#device li").click(function () {
  1186. var device = $(this).data("device");
  1187. if (device == 1) {
  1188. $(this).parents("#device").addClass("form-error");
  1189. } else {
  1190. $(this).parents("#device").removeClass("form-error");
  1191. }
  1192. });
  1193. }
  1194. // 发布应用
  1195. function initReleaseApp() {
  1196. var $expired = $(".release-app2 .aside-right .app-table .app-expired");
  1197. var expiredVisible = $expired.is(":visible");
  1198. if (expiredVisible) {
  1199. $expired.parents("tr").find("td").addClass("disabled");
  1200. } else {
  1201. $expired.parents("tr").find("td").removeClass("disabled");
  1202. }
  1203. }
  1204. // 添加备注功能
  1205. function initAddNote(obj) {
  1206. $(".add-notes").click(function () {
  1207. var val = $(this).siblings("input[name=remark]").val();
  1208. $(this).hide().siblings("input[name=remark]").show().val("").focus().val(val);
  1209. });
  1210. $("input[name=remark]").blur(obj.callBack);
  1211. $("input[name=remark]").keydown(function(e){
  1212. var pwdVal = $("input[name=pwd]").val();
  1213. var e = e || window.event;
  1214. if(e.keyCode == 13 || e.which == 13){
  1215. $(this).trigger("blur");
  1216. }
  1217. });
  1218. }
  1219. return {
  1220. initUploadPic: initUploadPic, // 上传图片 1传1
  1221. initUploadImg: initUploadImg, // 上传图片 1传1
  1222. initUploadPics: initUploadPics, // 上传图片 1传多
  1223. initMsgCenter: initMsgCenter, // 通知中心
  1224. initDoc: initDoc, //文档中心
  1225. initToolkit: initToolkit, // 工具箱
  1226. initUserCenter: initUserCenter, // 个人中心
  1227. initEncapsulation: initEncapsulation, //封装
  1228. initReleaseApp: initReleaseApp, // 发布应用
  1229. initAddNote: initAddNote, // 添加备注功能
  1230. init: function () {
  1231. this.initUploadImg();
  1232. this.initUploadPic();
  1233. this.initMsgCenter();
  1234. this.initUploadPics();
  1235. this.initDoc();
  1236. this.initToolkit();
  1237. this.initUserCenter();
  1238. this.initEncapsulation();
  1239. this.initReleaseApp();
  1240. }
  1241. }
  1242. }();
  1243. var Upload = function () {
  1244. function img(option) {
  1245. var options = $.extend({max_size:1024*1024 ,prefix:'image'}, option);
  1246. $(options.el).change(function () {
  1247. var This = $(this);
  1248. var $uploading = '<div class="ongoing">正在上传中...</div>'
  1249. var file = this.files[0];
  1250. // 判断上传文件类型
  1251. // var name = this.files[0].name; // ie9 报错 无法获取未定义或 null 引用的属性“0”
  1252. var name = $(this).val();
  1253. // console.log(name);
  1254. var type = (name.substr(name.lastIndexOf(".") + 1)).toLowerCase();
  1255. // console.log(type);
  1256. var typeModal = '<div class="modal fade" id="typeModal" tabindex="-1" role="dialog">\
  1257. <div class="modal-dialog modal-sm" role="document">\
  1258. <div class="modal-content">\
  1259. <div class="modal-body">\
  1260. <div class="text-center">\
  1261. <div><span class="icon icon-modal-error2"></span></div>\
  1262. <p class="color-333 mt5">您上传的图片格式不正确,请重新上传!</p>\
  1263. <div class="mt15">\
  1264. <button type="button" class="ms-btn ms-btn-default w90" data-dismiss="modal">确定</button>\
  1265. </div>\
  1266. </div>\
  1267. </div>\
  1268. </div>\
  1269. </div>\
  1270. </div>';
  1271. if (type != "jpg" && type != "gif" && type != "jpeg" && type != "png") {
  1272. $("#typeModal").remove();
  1273. $("body").append(typeModal);
  1274. $("#typeModal").modal("show");
  1275. return false;
  1276. }
  1277. // console.log(file.size/(1024*1024));
  1278. if (file.size > options.max_size) {
  1279. Modal.generalModal({
  1280. backdrop: false, // 点击阴影是否关闭弹窗, // true 开启; false 关闭
  1281. p: '图片过大,请上传1M以内的图片', // 弹窗内容
  1282. align: 'center', // 弹窗内容排列顺序 left center right
  1283. successBtnText: '确定', // 确定按钮文字
  1284. successBtnModal: true, // 点击确定按钮是否关闭弹窗 true 关闭 false 不关闭
  1285. });
  1286. $(this).val("");
  1287. return false;
  1288. }
  1289. var $img = $('<img>');
  1290. $(this).next("img").remove();
  1291. $(this).after($img);
  1292. var file = this.files[0];
  1293. var reader = new FileReader();
  1294. reader.readAsDataURL(file);
  1295. reader.onload = function (e) {
  1296. var content = this.result;
  1297. $img.attr("src", content);
  1298. This.parent().addClass("uploading").append($uploading);
  1299. $.ajax({
  1300. type: 'POST',
  1301. url: '/source/index/ajax_profile.php?ac=imageBase64',
  1302. data: {
  1303. content: content,
  1304. prefix: options.prefix
  1305. },
  1306. dataType: "json",
  1307. success: function (res) {
  1308. if (res.code != 200) {
  1309. alert(res.msg);
  1310. return false;
  1311. }
  1312. $img.attr("src", '//' + res.data.domain + '/' + res.data.key);
  1313. // console.log('a ' + This.val());
  1314. This.val("").attr("data-key", res.data.key);
  1315. // console.log('b ' + This.val());
  1316. This.parent().addClass("uploaded").removeClass("uploading");
  1317. This.parent().find(".ongoing").remove();
  1318. // console.log(res);
  1319. }
  1320. })
  1321. };
  1322. });
  1323. };
  1324. function isProcess() {
  1325. return $("body .ongoing").length;
  1326. }
  1327. return {
  1328. img: img,
  1329. isProcess: isProcess
  1330. }
  1331. }();
  1332. $(function () {
  1333. var windowWidth = $(window).width();
  1334. function setRem() {
  1335. var windowWidth = $(window).width();
  1336. if (windowWidth <= 750) {
  1337. var fs = windowWidth / 750 * 6.25 * 100;
  1338. $('html').css('font-size', fs + '%'); // 1rem = 100px;
  1339. }
  1340. };
  1341. setRem();
  1342. $(window).resize(setRem);
  1343. $("[data-toggle='tooltip']").tooltip();
  1344. $("[data-toggle='popover']").popover();
  1345. // 返回顶部
  1346. $(window).scroll(function () {
  1347. var windowHeight = $(window).height();
  1348. var scrollTop = $(document).scrollTop();
  1349. if (scrollTop > windowHeight) {
  1350. $(".fixed-right .go-top").css("display", "flex");
  1351. } else {
  1352. $(".fixed-right .go-top").hide();
  1353. }
  1354. });
  1355. $(".fixed-right .go-top").click(function () {
  1356. $("html, body").stop().animate({'scrollTop': 0}, 500);
  1357. });
  1358. // 手机导航
  1359. $(".header .phone-menu").click(function () {
  1360. $(".header .phone-shadow").stop().animate({"left": 0}, 500);
  1361. $(".header .phone-nav-wrap").stop().animate({"left": 0}, 500);
  1362. });
  1363. $(".header .ms-nav .phone-user-center").click(function () {
  1364. var $visibleDl = $(this).find("dl");
  1365. if ($visibleDl.is(":visible")) {
  1366. $visibleDl.stop().slideUp();
  1367. $(this).find(".icon-arrow-down").css({"transform": "rotate(0)"});
  1368. } else {
  1369. $visibleDl.stop().slideDown();
  1370. $(this).find(".icon-arrow-down").css({"transform": "rotate(-180deg)"});
  1371. }
  1372. });
  1373. $(".header .phone-shadow").click(function () {
  1374. $(this).stop().animate({"left": "-200%"}, 500);
  1375. $(".header .phone-nav-wrap").stop().animate({"left": "-200%"}, 500);
  1376. });
  1377. try {
  1378. // 日期插件
  1379. $('#datetimepicker1,#datetimepicker2,#datetimepicker3,#datetimepicker4').datetimepicker({
  1380. lang: 'ch',
  1381. timepicker: false,
  1382. format: 'Y/m/d',
  1383. });
  1384. } catch (e) {
  1385. }
  1386. var isSafari = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
  1387. if (isSafari) {
  1388. $(".copy").css("top", 0);
  1389. }
  1390. // 价格支付选中
  1391. $(".price-pay .common ul").on("click", "li:not('.disabled')", function () {
  1392. $(this).addClass("active").siblings().removeClass("active");
  1393. var i = $(this).index();
  1394. if (i == 3) {
  1395. $(this).parents(".common").find(".contrary-transfer").show();
  1396. } else {
  1397. $(this).parents(".common").find(".contrary-transfer").hide();
  1398. }
  1399. });
  1400. // 我的应用 悬停显示二维码
  1401. $(".release-app .icon-small-code").hover(function () {
  1402. $(this).find(".qr-code").show();
  1403. }, function () {
  1404. $(this).find(".qr-code").hide();
  1405. });
  1406. // 我的应用 选择应用合并
  1407. $('#myModal .app-list').on('click', 'li', function () {
  1408. $(this).addClass('active').siblings().removeClass('active');
  1409. });
  1410. // 我的应用 编辑设置 选项卡
  1411. $(".release-app .app-editor .tab li").click(function () {
  1412. var index = $(this).index();
  1413. $(this).addClass("active").siblings().removeClass("active");
  1414. $(".release-app .app-editor .tab-con>div").eq(index).show().siblings().hide();
  1415. });
  1416. /*
  1417. *改版完成后,将上方的删除
  1418. *我的应用 编辑设置 选项卡
  1419. **/
  1420. $(".release-app2 .app-set .tab li").click(function () {
  1421. var index = $(this).index();
  1422. $(this).addClass("active").siblings().removeClass("active");
  1423. $(".release-app2 .app-set .tab-con>div").eq(index).show().siblings().hide();
  1424. });
  1425. // 我的应用 编辑设置 基本设置 单选
  1426. $(".release-app .app-editor .trust li").click(function () {
  1427. $(".release-app .app-editor .trust li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1428. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1429. });
  1430. /*
  1431. *改版完成后,将上方的删除
  1432. *我的应用 编辑设置 基本设置 单选
  1433. * */
  1434. $(".release-app2 .app-set .trust li").click(function () {
  1435. $(".release-app2 .app-set .trust li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1436. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1437. });
  1438. // 下载安装方式
  1439. $(".release-app2 .app-set .senior .download-way li").click(function () {
  1440. var i = $(this).index();
  1441. if (i == 1) {
  1442. $(this).parents(".form-group").next(".form-group").show();
  1443. } else {
  1444. $(this).parents(".form-group").next(".form-group").hide();
  1445. }
  1446. $(".release-app2 .app-set .download-way li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1447. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1448. });
  1449. // 推广页 封装 选项卡
  1450. $(".feature-plugin .f-list li").hover(function () {
  1451. var i = $(this).index();
  1452. $(".feature-plugin .f-list li").find(".icon-arrow-top2").hide();
  1453. $(this).find(".icon-arrow-top2").show();
  1454. $(".feature-tab").find("img").eq(i).css("display", "block").siblings().hide();
  1455. }, function () {
  1456. });
  1457. // 推广页 封装 选项卡
  1458. $('.good-case .g-con .tab-list li').hover(function () {
  1459. var i = $(this).index();
  1460. $(this).addClass("active").siblings().removeClass("active");
  1461. $(".good-case .tab-con ul").eq(i).show().siblings().hide();
  1462. }, function () {
  1463. });
  1464. // 个人中心 2版 选项卡
  1465. $(".user-center1 .account-management>ul li").click(function () {
  1466. var i = $(this).index();
  1467. $(this).addClass("active").siblings().removeClass("active");
  1468. $(".user-center1 .account-management .tab>div").eq(i).show().siblings().hide();
  1469. });
  1470. // 个人中心 2版 消息接收
  1471. $(".user-center1 .msg ol li").click(function () {
  1472. $(this).parents("ol").find("li").removeClass("active").find(".icon").removeClass("icon-radio-checked");
  1473. $(this).addClass("active").find(".icon").addClass("icon-radio-checked");
  1474. });
  1475. // 个人中心 2版 发票地址 复选框选择
  1476. $(".user-center1 .invoice-management .table .icon-checkbox1").click(function () {
  1477. var that = $(".user-center1 .invoice-management .table .icon-checkbox1");
  1478. that.removeClass("icon-checkbox-checked1");
  1479. $(this).addClass("icon-checkbox-checked1");
  1480. });
  1481. /*
  1482. * 个人中心 2版 发票地址 设为默认
  1483. * 第一个为默认地址
  1484. * */
  1485. $(".user-center1 .invoice-management table tr").eq(1).find(".set-default").text("默认地址");
  1486. $(".user-center1 .invoice-management table .set-default").click(function () {
  1487. $(".user-center1 .invoice-management table .set-default").text("设为默认");
  1488. var that = $(this).parents("table").find("tr").first();
  1489. $(this).text("默认地址").parents("tr").insertAfter(that);
  1490. $(".user-center1 .invoice-management .set-default")
  1491. });
  1492. // 复制弹窗
  1493. function autoCopyHideModal(obj1, time) {
  1494. $('#copyModal').remove();
  1495. var html = '<div class="modal fade ms-modal auto-hide-modal" id="copyModal" tabindex="-1" role="dialog">\
  1496. <div class="modal-dialog modal-sm" role="document">\
  1497. <div class="modal-content">\
  1498. <div class="modal-body">\
  1499. <div class="text-center">\
  1500. <div class="auto-hide">\
  1501. <div>复制成功</div>\
  1502. </div>\
  1503. </div>\
  1504. </div>\
  1505. </div>\
  1506. </div>\
  1507. </div>';
  1508. $("body").append(html);
  1509. var autoHide = null;
  1510. clearTimeout(autoHide);
  1511. $(obj1).modal('show');
  1512. $(".modal-backdrop").hide();
  1513. autoHide = setTimeout(function () {
  1514. $(obj1).modal("hide");
  1515. }, time);
  1516. };
  1517. // 复制功能
  1518. var clipboard = new ClipboardJS('.copy');
  1519. clipboard.on('success', function (e) {
  1520. autoCopyHideModal("#copyModal", 2000);
  1521. e.clearSelection();
  1522. });
  1523. clipboard.on('error', function (e) {
  1524. console.log("复制失败!");
  1525. });
  1526. // 显示隐藏密码
  1527. $(".account-management .pwd .pwd-toggle").click(function () {
  1528. var inputPwd = $(this).siblings("input[name=pwd]");
  1529. var pwdAttr = inputPwd.attr("type");
  1530. if (pwdAttr == "password") {
  1531. inputPwd.attr("type", "text");
  1532. $(this).addClass("icon-eye").removeClass("icon-eye-no");
  1533. } else {
  1534. inputPwd.attr("type", "password");
  1535. $(this).addClass("icon-eye-no").removeClass("icon-eye");
  1536. }
  1537. });
  1538. // 价格页 tab选项卡
  1539. $(".price-tab ul li").click(function () {
  1540. var i = $(this).index();
  1541. $(this).addClass("active").siblings().removeClass("active");
  1542. $(".price-con>div").eq(i).show().siblings().hide();
  1543. });
  1544. $(".new-price-tab ul li").click(function () {
  1545. var i = $(this).index();
  1546. $(this).addClass("active").siblings().removeClass("active");
  1547. $(".new-price-con>div").eq(i).show().siblings().hide();
  1548. });
  1549. // 大包入口 侧栏高度
  1550. // 大包、小包入口 左侧栏 高度、margin-bottom: 15px
  1551. $(".big-bag-upload").prev(".aside-left").css("margin-bottom", "15px").innerHeight("380px");
  1552. $(".small-bag-upload").prev(".aside-left").css("margin-bottom", "15px").innerHeight("380px");
  1553. // 列表 APP iOS 安卓版本下拉切换
  1554. $(document).click(function () {
  1555. $(".app-system-select").find("ul").hide();
  1556. });
  1557. $(".app-system-select").click(function (e) {
  1558. var $ul = $(this).find("ul");
  1559. var ulVisible = $ul.is(":visible");
  1560. if (ulVisible) {
  1561. $ul.hide();
  1562. } else {
  1563. $ul.show();
  1564. }
  1565. e.stopPropagation();
  1566. });
  1567. $(".app-system-select ul li").click(function () {
  1568. var thisText = $(this).text();
  1569. $(this).addClass("active").siblings().removeClass("active");
  1570. $(this).parents(".app-system-select").find(".text").text(thisText);
  1571. });
  1572. $(".table-list-wrap .app-table .tr-disabled td").addClass("td-disabled").append('<div class="mask"></div>');
  1573. // 封装、签名、分发详情页 未实名认证 悬停popover
  1574. $(".app-details .details-bottom .icon-prompt").hover(function () {
  1575. $(".popover1").show();
  1576. }, function () {
  1577. $(".popover1").hide();
  1578. });
  1579. $(".app-details .details-bottom .icon-prompt1").hover(function () {
  1580. $(this).find(".popover1").show();
  1581. }, function () {
  1582. $(this).find(".popover1").hide();
  1583. });
  1584. // 制作图标ie提示
  1585. //测试mime
  1586. function _mime(option, value) {
  1587. var mimeTypes = navigator.mimeTypes;
  1588. for (var mt in mimeTypes) {
  1589. if (mimeTypes[mt][option] == value) {
  1590. return true;
  1591. }
  1592. }
  1593. return false;
  1594. }
  1595. var UA = navigator.userAgent;
  1596. // IE
  1597. // UA.indexOf("MSIE") != -1; // ie10以上已不再支持
  1598. var isIE = window.ActiveXObject || "ActiveXObject" in window;
  1599. // Firefox
  1600. var isFirefox = UA.indexOf('Firefox') != -1;
  1601. // Chrome
  1602. var isChrome = UA.indexOf("Chrome") != -1;
  1603. //application/vnd.chromium.remoting-viewer 可能为360特有
  1604. var is360 = _mime("type", "application/vnd.chromium.remoting-viewer");
  1605. // 360极速模式
  1606. if (isChrome && is360) {
  1607. // $(".ie-prompt-360").show();
  1608. }
  1609. // 制作图标ie提示
  1610. if (isIE) {
  1611. $(".ie-prompt").show();
  1612. }
  1613. // 配置插件 引导页删除上传图片
  1614. // 删除应用截图
  1615. $(".plugin-guide .upload-img .icon-delete2").on("click", function (e) {
  1616. $(this).siblings("input").val("");
  1617. $(this).siblings("img").remove();
  1618. $(this).parents(".upload-img").removeClass("uploaded");
  1619. $('.upload-screenshots .thumbnail-s').val("");
  1620. e.stopPropagation();
  1621. e.preventDefault();
  1622. });
  1623. /********************************************************************/
  1624. // 去除文本里所有br换行
  1625. function removeBr(obj) {
  1626. $(obj).each(function () {
  1627. var thisTexts = $(this).html();
  1628. if (thisTexts != null) {
  1629. thisTexts = thisTexts.replaceAll('<br>', '');
  1630. $(this).html(thisTexts);
  1631. }
  1632. })
  1633. };
  1634. // 兼容平板
  1635. if (windowWidth <= 768) {
  1636. removeBr(".index-banner .banner-con h2");
  1637. removeBr(".publicity li");
  1638. removeBr(".toolkit li p");
  1639. removeBr(".index-common .con p");
  1640. removeBr(".promote-thumbnail p");
  1641. removeBr(".ms-thumbnail .ms-caption p");
  1642. removeBr(".ms-thumbnail .ms-caption .tit");
  1643. }
  1644. // 兼容手机
  1645. function phoneFun() {
  1646. var windowWidth = $(window).width();
  1647. if (windowWidth <= 750) {
  1648. $(".service_content li").attr("style", "");
  1649. $(".login-in .login-user").click(function (e) {
  1650. var visible = $(this).find("dl").is(":visible");
  1651. if (visible) {
  1652. $(this).find("dl").hide();
  1653. } else {
  1654. $(this).find("dl").show();
  1655. }
  1656. e.stopPropagation();
  1657. });
  1658. $("div").not(".login-in .login-user").click(function () {
  1659. $(".login-in .login-user dl").hide();
  1660. });
  1661. }
  1662. };
  1663. phoneFun();
  1664. });