js.js 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872
  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*5 ,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: '图片过大,请上传5M以内的图片!', // 弹窗内容
  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. var cardname = $(this).attr("name");
  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: '/user/ajax_profile?ac=imageBase64',
  1303. data: {
  1304. content: content,
  1305. cardname: cardname,
  1306. prefix: options.prefix
  1307. },
  1308. dataType: "json",
  1309. success: function (res) {
  1310. if (res.code != 200) {
  1311. alert(res.msg);
  1312. return false;
  1313. }
  1314. $img.attr("src", '//' + res.data.domain + '/' + res.data.key);
  1315. // console.log('a ' + This.val());
  1316. This.val("").attr("data-key", res.data.key);
  1317. // console.log('b ' + This.val());
  1318. This.parent().addClass("uploaded").removeClass("uploading");
  1319. This.parent().find(".ongoing").remove();
  1320. // console.log(res);
  1321. }
  1322. })
  1323. };
  1324. });
  1325. };
  1326. function isProcess() {
  1327. return $("body .ongoing").length;
  1328. }
  1329. return {
  1330. img: img,
  1331. isProcess: isProcess
  1332. }
  1333. }();
  1334. $(function () {
  1335. var windowWidth = $(window).width();
  1336. function setRem() {
  1337. var windowWidth = $(window).width();
  1338. if (windowWidth <= 750) {
  1339. var fs = windowWidth / 750 * 6.25 * 100;
  1340. $('html').css('font-size', fs + '%'); // 1rem = 100px;
  1341. }
  1342. };
  1343. setRem();
  1344. $(window).resize(setRem);
  1345. $("[data-toggle='tooltip']").tooltip();
  1346. $("[data-toggle='popover']").popover();
  1347. // 返回顶部
  1348. $(window).scroll(function () {
  1349. var windowHeight = $(window).height();
  1350. var scrollTop = $(document).scrollTop();
  1351. if (scrollTop > windowHeight) {
  1352. $(".fixed-right .go-top").css("display", "flex");
  1353. } else {
  1354. $(".fixed-right .go-top").hide();
  1355. }
  1356. });
  1357. $(".fixed-right .go-top").click(function () {
  1358. $("html, body").stop().animate({'scrollTop': 0}, 500);
  1359. });
  1360. // 手机导航
  1361. $(".header .phone-menu").click(function () {
  1362. $(".header .phone-shadow").stop().animate({"left": 0}, 500);
  1363. $(".header .phone-nav-wrap").stop().animate({"left": 0}, 500);
  1364. });
  1365. $(".header .ms-nav .phone-user-center").click(function () {
  1366. var $visibleDl = $(this).find("dl");
  1367. if ($visibleDl.is(":visible")) {
  1368. $visibleDl.stop().slideUp();
  1369. $(this).find(".icon-arrow-down").css({"transform": "rotate(0)"});
  1370. } else {
  1371. $visibleDl.stop().slideDown();
  1372. $(this).find(".icon-arrow-down").css({"transform": "rotate(-180deg)"});
  1373. }
  1374. });
  1375. $(".header .phone-shadow").click(function () {
  1376. $(this).stop().animate({"left": "-200%"}, 500);
  1377. $(".header .phone-nav-wrap").stop().animate({"left": "-200%"}, 500);
  1378. });
  1379. try {
  1380. // 日期插件
  1381. $('#datetimepicker1,#datetimepicker2,#datetimepicker3,#datetimepicker4').datetimepicker({
  1382. lang: 'ch',
  1383. timepicker: false,
  1384. format: 'Y/m/d',
  1385. });
  1386. } catch (e) {
  1387. }
  1388. var isSafari = /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
  1389. if (isSafari) {
  1390. $(".copy").css("top", 0);
  1391. }
  1392. // 价格支付选中
  1393. $(".price-pay .common ul").on("click", "li:not('.disabled')", function () {
  1394. $(this).addClass("active").siblings().removeClass("active");
  1395. var i = $(this).index();
  1396. if (i == 3) {
  1397. $(this).parents(".common").find(".contrary-transfer").show();
  1398. } else {
  1399. $(this).parents(".common").find(".contrary-transfer").hide();
  1400. }
  1401. });
  1402. // 我的应用 悬停显示二维码
  1403. $(".release-app .icon-small-code").hover(function () {
  1404. $(this).find(".qr-code").show();
  1405. }, function () {
  1406. $(this).find(".qr-code").hide();
  1407. });
  1408. // 我的应用 选择应用合并
  1409. $('#myModal .app-list').on('click', 'li', function () {
  1410. $(this).addClass('active').siblings().removeClass('active');
  1411. });
  1412. // 我的应用 编辑设置 选项卡
  1413. $(".release-app .app-editor .tab li").click(function () {
  1414. var index = $(this).index();
  1415. $(this).addClass("active").siblings().removeClass("active");
  1416. $(".release-app .app-editor .tab-con>div").eq(index).show().siblings().hide();
  1417. });
  1418. /*
  1419. *改版完成后,将上方的删除
  1420. *我的应用 编辑设置 选项卡
  1421. **/
  1422. $(".release-app2 .app-set .tab li").click(function () {
  1423. var index = $(this).index();
  1424. $(this).addClass("active").siblings().removeClass("active");
  1425. $(".release-app2 .app-set .tab-con>div").eq(index).show().siblings().hide();
  1426. });
  1427. // 我的应用 编辑设置 基本设置 单选
  1428. $(".release-app .app-editor .trust li").click(function () {
  1429. $(".release-app .app-editor .trust li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1430. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1431. });
  1432. /*
  1433. *改版完成后,将上方的删除
  1434. *我的应用 编辑设置 基本设置 单选
  1435. * */
  1436. $(".release-app2 .app-set .xinren li").click(function () {
  1437. $(".release-app2 .app-set .xinren li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1438. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1439. });
  1440. /*
  1441. *改版完成后,将上方的删除
  1442. *我的应用 编辑设置 基本设置 单选
  1443. * */
  1444. $(".release-app2 .app-set .updates li").click(function () {
  1445. $(".release-app2 .app-set .updates li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1446. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1447. });
  1448. /*
  1449. *改版完成后,将上方的删除
  1450. *我的应用 编辑设置 基本设置 单选
  1451. * */
  1452. $(".release-app2 .app-set .qrourl li").click(function () {
  1453. $(".release-app2 .app-set .qrourl li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1454. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1455. });
  1456. /*
  1457. *改版完成后,将上方的删除
  1458. *我的应用 编辑设置 基本设置 单选
  1459. * */
  1460. $(".release-app2 .app-set .super li").click(function () {
  1461. $(".release-app2 .app-set .super li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1462. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1463. });
  1464. $(".release-app2 .app-set .qusuo li").click(function () {
  1465. $(".release-app2 .app-set .super li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1466. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1467. });
  1468. $(".release-app2 .app-set .setfa li").click(function () {
  1469. $(".release-app2 .app-set .super li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1470. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1471. });
  1472. $(".release-app2 .app-set .appcjq li").click(function () {
  1473. $(".release-app2 .app-set .appcjq li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1474. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1475. });
  1476. // 下载安装方式
  1477. $(".release-app2 .app-set .senior .download-way li").click(function () {
  1478. var i = $(this).index();
  1479. if (i == 1) {
  1480. $(this).parents(".form-group").next(".form-group").show();
  1481. } else {
  1482. $(this).parents(".form-group").next(".form-group").hide();
  1483. }
  1484. $(".release-app2 .app-set .download-way li").removeClass("active").find(".icon-radio").removeClass("icon-radio-checked");
  1485. $(this).addClass("active").find(".icon-radio").addClass("icon-radio-checked");
  1486. });
  1487. // 推广页 封装 选项卡
  1488. $(".feature-plugin .f-list li").hover(function () {
  1489. var i = $(this).index();
  1490. $(".feature-plugin .f-list li").find(".icon-arrow-top2").hide();
  1491. $(this).find(".icon-arrow-top2").show();
  1492. $(".feature-tab").find("img").eq(i).css("display", "block").siblings().hide();
  1493. }, function () {
  1494. });
  1495. // 推广页 封装 选项卡
  1496. $('.good-case .g-con .tab-list li').hover(function () {
  1497. var i = $(this).index();
  1498. $(this).addClass("active").siblings().removeClass("active");
  1499. $(".good-case .tab-con ul").eq(i).show().siblings().hide();
  1500. }, function () {
  1501. });
  1502. // 个人中心 2版 选项卡
  1503. $(".user-center1 .account-management>ul li").click(function () {
  1504. var i = $(this).index();
  1505. $(this).addClass("active").siblings().removeClass("active");
  1506. $(".user-center1 .account-management .tab>div").eq(i).show().siblings().hide();
  1507. });
  1508. // 个人中心 2版 消息接收
  1509. $(".user-center1 .msg ol li").click(function () {
  1510. $(this).parents("ol").find("li").removeClass("active").find(".icon").removeClass("icon-radio-checked");
  1511. $(this).addClass("active").find(".icon").addClass("icon-radio-checked");
  1512. });
  1513. // 个人中心 2版 发票地址 复选框选择
  1514. $(".user-center1 .invoice-management .table .icon-checkbox1").click(function () {
  1515. var that = $(".user-center1 .invoice-management .table .icon-checkbox1");
  1516. that.removeClass("icon-checkbox-checked1");
  1517. $(this).addClass("icon-checkbox-checked1");
  1518. });
  1519. /*
  1520. * 个人中心 2版 发票地址 设为默认
  1521. * 第一个为默认地址
  1522. * */
  1523. $(".user-center1 .invoice-management table tr").eq(1).find(".set-default").text("默认地址");
  1524. $(".user-center1 .invoice-management table .set-default").click(function () {
  1525. $(".user-center1 .invoice-management table .set-default").text("设为默认");
  1526. var that = $(this).parents("table").find("tr").first();
  1527. $(this).text("默认地址").parents("tr").insertAfter(that);
  1528. $(".user-center1 .invoice-management .set-default")
  1529. });
  1530. // 复制弹窗
  1531. function autoCopyHideModal(obj1, time) {
  1532. $('#copyModal').remove();
  1533. var html = '<div class="modal fade ms-modal auto-hide-modal" id="copyModal" tabindex="-1" role="dialog">\
  1534. <div class="modal-dialog modal-sm" role="document">\
  1535. <div class="modal-content">\
  1536. <div class="modal-body">\
  1537. <div class="text-center">\
  1538. <div class="auto-hide">\
  1539. <div>复制成功</div>\
  1540. </div>\
  1541. </div>\
  1542. </div>\
  1543. </div>\
  1544. </div>\
  1545. </div>';
  1546. $("body").append(html);
  1547. var autoHide = null;
  1548. clearTimeout(autoHide);
  1549. $(obj1).modal('show');
  1550. $(".modal-backdrop").hide();
  1551. autoHide = setTimeout(function () {
  1552. $(obj1).modal("hide");
  1553. }, time);
  1554. };
  1555. // 复制功能
  1556. var clipboard = new ClipboardJS('.copy');
  1557. clipboard.on('success', function (e) {
  1558. autoCopyHideModal("#copyModal", 2000);
  1559. e.clearSelection();
  1560. });
  1561. clipboard.on('error', function (e) {
  1562. console.log("复制失败!");
  1563. });
  1564. // 显示隐藏密码
  1565. $(".account-management .pwd .pwd-toggle").click(function () {
  1566. var inputPwd = $(this).siblings("input[name=pwd]");
  1567. var pwdAttr = inputPwd.attr("type");
  1568. if (pwdAttr == "password") {
  1569. inputPwd.attr("type", "text");
  1570. $(this).addClass("icon-eye").removeClass("icon-eye-no");
  1571. } else {
  1572. inputPwd.attr("type", "password");
  1573. $(this).addClass("icon-eye-no").removeClass("icon-eye");
  1574. }
  1575. });
  1576. // 价格页 tab选项卡
  1577. $(".price-tab ul li").click(function () {
  1578. var i = $(this).index();
  1579. $(this).addClass("active").siblings().removeClass("active");
  1580. $(".price-con>div").eq(i).show().siblings().hide();
  1581. });
  1582. $(".new-price-tab ul li").click(function () {
  1583. var i = $(this).index();
  1584. $(this).addClass("active").siblings().removeClass("active");
  1585. $(".new-price-con>div").eq(i).show().siblings().hide();
  1586. });
  1587. // 大包入口 侧栏高度
  1588. // 大包、小包入口 左侧栏 高度、margin-bottom: 15px
  1589. $(".big-bag-upload").prev(".aside-left").css("margin-bottom", "15px").innerHeight("380px");
  1590. $(".small-bag-upload").prev(".aside-left").css("margin-bottom", "15px").innerHeight("380px");
  1591. // 列表 APP iOS 安卓版本下拉切换
  1592. $(document).click(function () {
  1593. $(".app-system-select").find("ul").hide();
  1594. });
  1595. $(".app-system-select").click(function (e) {
  1596. var $ul = $(this).find("ul");
  1597. var ulVisible = $ul.is(":visible");
  1598. if (ulVisible) {
  1599. $ul.hide();
  1600. } else {
  1601. $ul.show();
  1602. }
  1603. e.stopPropagation();
  1604. });
  1605. $(".app-system-select ul li").click(function () {
  1606. var thisText = $(this).text();
  1607. $(this).addClass("active").siblings().removeClass("active");
  1608. $(this).parents(".app-system-select").find(".text").text(thisText);
  1609. });
  1610. $(".table-list-wrap .app-table .tr-disabled td").addClass("td-disabled").append('<div class="mask"></div>');
  1611. // 封装、签名、分发详情页 未实名认证 悬停popover
  1612. $(".app-details .details-bottom .icon-prompt").hover(function () {
  1613. $(".popover1").show();
  1614. }, function () {
  1615. $(".popover1").hide();
  1616. });
  1617. $(".app-details .details-bottom .icon-prompt1").hover(function () {
  1618. $(this).find(".popover1").show();
  1619. }, function () {
  1620. $(this).find(".popover1").hide();
  1621. });
  1622. // 制作图标ie提示
  1623. //测试mime
  1624. function _mime(option, value) {
  1625. var mimeTypes = navigator.mimeTypes;
  1626. for (var mt in mimeTypes) {
  1627. if (mimeTypes[mt][option] == value) {
  1628. return true;
  1629. }
  1630. }
  1631. return false;
  1632. }
  1633. var UA = navigator.userAgent;
  1634. // IE
  1635. // UA.indexOf("MSIE") != -1; // ie10以上已不再支持
  1636. var isIE = window.ActiveXObject || "ActiveXObject" in window;
  1637. // Firefox
  1638. var isFirefox = UA.indexOf('Firefox') != -1;
  1639. // Chrome
  1640. var isChrome = UA.indexOf("Chrome") != -1;
  1641. //application/vnd.chromium.remoting-viewer 可能为360特有
  1642. var is360 = _mime("type", "application/vnd.chromium.remoting-viewer");
  1643. // 360极速模式
  1644. if (isChrome && is360) {
  1645. // $(".ie-prompt-360").show();
  1646. }
  1647. // 制作图标ie提示
  1648. if (isIE) {
  1649. $(".ie-prompt").show();
  1650. }
  1651. // 配置插件 引导页删除上传图片
  1652. // 删除应用截图
  1653. $(".plugin-guide .upload-img .icon-delete2").on("click", function (e) {
  1654. $(this).siblings("input").val("");
  1655. $(this).siblings("img").remove();
  1656. $(this).parents(".upload-img").removeClass("uploaded");
  1657. $('.upload-screenshots .thumbnail-s').val("");
  1658. e.stopPropagation();
  1659. e.preventDefault();
  1660. });
  1661. /********************************************************************/
  1662. // 去除文本里所有br换行
  1663. function removeBr(obj) {
  1664. $(obj).each(function () {
  1665. var thisTexts = $(this).html();
  1666. if (thisTexts != null) {
  1667. thisTexts = thisTexts.replaceAll('<br>', '');
  1668. $(this).html(thisTexts);
  1669. }
  1670. })
  1671. };
  1672. // 兼容平板
  1673. if (windowWidth <= 768) {
  1674. removeBr(".index-banner .banner-con h2");
  1675. removeBr(".publicity li");
  1676. removeBr(".toolkit li p");
  1677. removeBr(".index-common .con p");
  1678. removeBr(".promote-thumbnail p");
  1679. removeBr(".ms-thumbnail .ms-caption p");
  1680. removeBr(".ms-thumbnail .ms-caption .tit");
  1681. }
  1682. // 兼容手机
  1683. function phoneFun() {
  1684. var windowWidth = $(window).width();
  1685. if (windowWidth <= 750) {
  1686. $(".service_content li").attr("style", "");
  1687. $(".login-in .login-user").click(function (e) {
  1688. var visible = $(this).find("dl").is(":visible");
  1689. if (visible) {
  1690. $(this).find("dl").hide();
  1691. } else {
  1692. $(this).find("dl").show();
  1693. }
  1694. e.stopPropagation();
  1695. });
  1696. $("div").not(".login-in .login-user").click(function () {
  1697. $(".login-in .login-user dl").hide();
  1698. });
  1699. }
  1700. };
  1701. phoneFun();
  1702. });