js.js 75 KB

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