js.js 75 KB

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