my-coin.js 72 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494
  1. window.cccField = '';
  2. window.apisMoveDivButton2Timer = '';
  3. window.apisMoveDivButton2Timer4Custorm = [];
  4. window.actualFlag = false;
  5. window.stopFlag = false;
  6. window.uploadImgsCategoryField = [];
  7. window.uploadMusicsCategoryField = [];
  8. window.uploadExchangeCategoryField = [];
  9. $(function () {
  10. initOther();
  11. });
  12. /*var dragJob=false;
  13. $(document).on("mousedown", '.watchlistpreview-top', function (e) {
  14. dragJob = true;
  15. });
  16. document.onmousemove = function (e) {
  17. if (dragJob) {
  18. var e = e || window.event;
  19. var height = $(document.body).height();
  20. var width = $(window).width();
  21. var widthJob = $("#watchlistpreview").width();
  22. var heightJob = $("#watchlistpreview").height();
  23. var left = e.clientX - widthJob / 2;
  24. var top = e.clientY - 18 + $(document).scrollTop();
  25. if (top >= 0 && top < height - heightJob) {
  26. $("#watchlistpreview").css("top", top);
  27. }
  28. if (left >= 0 && left < width - widthJob) {
  29. $("#watchlistpreview").css("left", left);
  30. }
  31. return false;
  32. }
  33. };
  34. $(document).mouseup(function (e) {
  35. dragJob = false;
  36. });*/
  37. /**
  38. * 初始化其他操作
  39. */
  40. function initOther() {
  41. initOther4Select();
  42. handleSelectChange($("select#apis-move-select,select#apis-quiet-select"));
  43. $(".apis-move-div-button1,.apis-quiet-div-button1").click(function () {
  44. var aa = $(this).attr("slideDiv");
  45. var display = $('#' + aa);
  46. if (display.css('display') == 'block') {
  47. display.slideUp("slow");
  48. //display.css("display", "none");
  49. $(this).html('展开');
  50. } else {
  51. display.slideDown("slow");
  52. //display.css("display", "block");
  53. $(this).html('收起');
  54. }
  55. });
  56. $(".apis-move-div-button2").click(function () {
  57. var this_ = $(this);
  58. stopFlag = false;
  59. if (!actualFlag) {
  60. var selectedOption = $("select#apis-move-select").find("option:selected");
  61. var nameEn = selectedOption.attr("nameEn");
  62. if (nameEn === 'needCustom') {
  63. $.each($(".needCustomInput"), function (index, obj) {
  64. var url = $(obj).attr("url");
  65. var typetype = $(obj).attr("typetype");
  66. var nameEn2 = $(obj).attr("nameEn");
  67. var slideDiv = $(this_).attr("slideDiv") + '-' + $(obj).attr("id");
  68. apisMoveDivButton2Timer4Custorm[index] = setInterval(mainSearch, 3000, url, nameEn2, slideDiv, typetype, "1");
  69. });
  70. actualFlag = true;
  71. } else {
  72. var url = selectedOption.attr("url");
  73. var typetype = selectedOption.attr("typetype");
  74. var slideDiv = $(this).attr("slideDiv");
  75. apisMoveDivButton2Timer = setInterval(mainSearch, 3000, url, nameEn, slideDiv, typetype, "2");
  76. actualFlag = true;
  77. }
  78. }
  79. });
  80. $(".apis-quiet-div-button2").click(function () {
  81. stopFlag = false;
  82. var selectedOption = $("select#apis-quiet-select").find("option:selected");
  83. var url = selectedOption.attr("url");
  84. var typetype = selectedOption.attr("typetype");
  85. var nameEn = selectedOption.attr("nameEn");
  86. var slideDiv = $(this).attr("slideDiv");
  87. mainSearch(url, nameEn, slideDiv, typetype,"2");
  88. });
  89. initOther4Popup();
  90. $(".apis-move-div-button3").click(function () {
  91. ownClearInterval();
  92. });
  93. }
  94. function ownClearInterval() {
  95. if (actualFlag) {
  96. if (apisMoveDivButton2Timer != undefined && apisMoveDivButton2Timer != null) {
  97. clearInterval(apisMoveDivButton2Timer);
  98. }
  99. if (apisMoveDivButton2Timer4Custorm != undefined && apisMoveDivButton2Timer != null) {
  100. $.each(apisMoveDivButton2Timer4Custorm, function (index, obj) {
  101. clearInterval(obj);
  102. });
  103. }
  104. //$("#apis-move-content").find("tbody.contentTD").html('');
  105. //$("#apis-move-content").find("span.contentSPAN").html('');
  106. actualFlag = false;
  107. }
  108. }
  109. function initOther4Select() {
  110. $.ajax({
  111. url: "coin/findApiConfig", //请求的url地址
  112. dataType: "json", //返回格式为json
  113. data: {
  114. "userName": getCookie('username')
  115. }, //参数值
  116. type: "post", //请求方式
  117. //contentType: "application/json;charset=utf-8",
  118. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  119. success: function (data) {
  120. //请求成功时处理
  121. if (data != null && $.trim(data) != "" && data.success) {
  122. data = data.data;
  123. var quietStr = '';
  124. var moveStr = '';
  125. var move2Str = '';
  126. $.each(data, function (index, obj) {
  127. if (obj.type2 === 1) {
  128. if (obj.type === 0) {
  129. var nameEn = $('#' + obj.nameEn);
  130. nameEn.attr('nameEn', obj.nameEn);
  131. nameEn.attr('url', obj.url);
  132. nameEn.attr('typetype', obj.type);
  133. nameEn.attr('returnEn', obj.returnEn);
  134. nameEn.attr('returnCn', obj.returnCn);
  135. move2Str += obj.nameCn + '|';
  136. } else {
  137. moveStr += '<option type="9999" nameEn="' + obj.nameEn + '" url="' + obj.url + '" returnEn="' + obj.returnEn + '" returnCn="' + obj.returnCn + '" value="' + obj.nameEn + '-option">' + obj.nameCn + '</option>';
  138. }
  139. } else if (obj.type2 === 2) {
  140. quietStr += '<option typetype="' + obj.type + '" nameEn="' + obj.nameEn + '" url="' + obj.url + '" returnEn="' + obj.returnEn + '" returnCn="' + obj.returnCn + '" value="' + obj.nameEn + '-option">' + obj.nameCn + '</option>';
  141. }
  142. // watchlist
  143. if (obj.nameEn === 'watchlist') {
  144. var watchlistTrackCategoryStr = '';
  145. $.each(obj.trackCategoryList, function (index2, obj2) {
  146. watchlistTrackCategoryStr += '<option value="' + obj2 + '">' + obj2 + '</option>';
  147. });
  148. $("#apis-quiet-div-watchlist-trackCategoryField").append(watchlistTrackCategoryStr);
  149. var watchlistTrackCategory2Str = '';
  150. $.each(obj.trackCategory2List, function (index2, obj2) {
  151. watchlistTrackCategory2Str += '<option value="' + obj2 + '">' + obj2 + '</option>';
  152. });
  153. $("#apis-quiet-div-watchlist-trackCategory2Field").append(watchlistTrackCategory2Str);
  154. } else if (obj.nameEn === 'image') {
  155. var uploadImageCategoryStr = '';
  156. $.each(obj.otherAttrList, function (index2, obj2) {
  157. uploadImageCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  158. });
  159. // $("#apis-quiet-div-uploadImgs-categoryField").append(uploadImageCategoryStr);
  160. uploadImgsCategoryField = obj.otherAttrList;
  161. $("#apis-quiet-div-image-categoryField").append(uploadImageCategoryStr);
  162. } else if (obj.nameEn === 'music') {
  163. var uploadMusicCategoryStr = '';
  164. $.each(obj.musicCategoryList, function (index2, obj2) {
  165. uploadMusicCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  166. });
  167. // $("#apis-quiet-div-uploadMusics-categoryField").append(uploadMusicCategoryStr);
  168. uploadMusicsCategoryField = obj.musicCategoryList;
  169. $("#apis-quiet-div-music-categoryField").append(uploadMusicCategoryStr);
  170. } else if (obj.nameEn === 'currentHolding') {
  171. var exchangeCategoryStr = '';
  172. $.each(obj.exchangeCategoryList, function (index2, obj2) {
  173. exchangeCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  174. });
  175. uploadExchangeCategoryField = obj.exchangeCategoryList;
  176. $("#apis-quiet-div-currentHolding-categoryField").append(exchangeCategoryStr);
  177. } else if (obj.nameEn === 'bookmark') {
  178. var categoryStr = '';
  179. $.each(obj.categoryList, function (index2, obj2) {
  180. categoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  181. });
  182. $("#apis-quiet-div-bookmark-categoryField").append(categoryStr);
  183. }
  184. });
  185. move2Str = '<option nameEn="needCustom" type="9999">' + move2Str.substring(0, move2Str.length - 1) + '</option>';
  186. $("select#apis-move-select").html(move2Str + moveStr);
  187. $("select#apis-quiet-select").html(quietStr);
  188. $("select#apis-move-select,select#apis-quiet-select").change(function () {
  189. handleSelectChange($(this));
  190. stopFlag = true;
  191. });
  192. } else {
  193. //alert(data.message);
  194. }
  195. },
  196. beforeSend: function () {
  197. },
  198. complete: function () {
  199. },
  200. error: function (data) {
  201. //请求出错处理
  202. alert('error:' + data);
  203. }
  204. });
  205. }
  206. function handleSelectChange(objj) {
  207. $.each(objj, function (index, obj) {
  208. var selectedOption = $(obj).find("option:selected");
  209. var type = selectedOption.attr("type");
  210. var nameEn = selectedOption.attr("nameEn");
  211. if ($(obj).attr("id") === 'apis-move-select') {
  212. ownClearInterval();
  213. }
  214. if (type === '9999') {
  215. $("#apis-move-content").find("div").slideUp("slow");
  216. if (nameEn === 'needCustom') {
  217. $.each($(".needCustomInput"), function (index, ob) {
  218. var returnEn = $(ob).attr("returnen").split(",");
  219. var returnCn = $(ob).attr("returncn").split(",");
  220. var theadStr = '';
  221. $.each(returnEn, function (index, o) {
  222. theadStr += '<th returnEn="' + o + '">' + returnCn[index] + '</th>';
  223. });
  224. $("#apis-move-content-" + $(ob).attr("id")).find("span.contentSPAN").html('0');
  225. $("#apis-move-content-" + $(ob).attr("id")).find("tr.contentTH").html(theadStr);
  226. $("#apis-move-content-" + $(ob).attr("id")).find("tbody.contentTD").html('');
  227. $("#apis-move-content-" + $(ob).attr("id")).slideDown("slow");
  228. });
  229. } else {
  230. var returnEn = selectedOption.attr("returnen").split(",");
  231. var returnCn = selectedOption.attr("returncn").split(",");
  232. var theadStr = '';
  233. $.each(returnEn, function (index, ob) {
  234. theadStr += '<th returnEn="' + obj + '">' + returnCn[index] + '</th>';
  235. });
  236. $("#apis-move-content-other").find("span.contentSPAN").html('0');
  237. $("#apis-move-content-other").find("tr.contentTH").html(theadStr);
  238. $("#apis-move-content-other").find("tbody.contentTD").html('');
  239. $("#apis-move-content-other").slideDown("slow");
  240. }
  241. } else {
  242. var returnEn = selectedOption.attr("returnen").split(",");
  243. var returnCn = selectedOption.attr("returncn").split(",");
  244. var theadStr = '';
  245. $.each(returnEn, function (index, obj) {
  246. theadStr += '<th returnEn="' + obj + '">' + returnCn[index] + '</th>';
  247. });
  248. if (nameEn === 'watchlist' || nameEn === 'image' || nameEn === 'music') {
  249. theadStr += '<th>操作</th>';
  250. }
  251. if (nameEn === 'music') {
  252. $("#audioDiv").css("display", "block");
  253. $("#audio").on('ended', function () {
  254. let totalCount = $("div#apis-quiet-content").find("span.contentSPAN").text();
  255. if (totalCount === 0) {
  256. return;
  257. }
  258. let playRule = $("#apis-quiet-div-music-playRuleField").val();
  259. if (playRule === '1') {
  260. let randomNum = Math.floor(Math.random() * totalCount) + 1;
  261. let musicPageNo = $("#apis-quiet-div-music-pageNo").val();
  262. let musicPageSize = $("#apis-quiet-div-music-pageSize").val();
  263. if (randomNum >= (musicPageNo - 1) * musicPageSize + 1 && randomNum <= musicPageNo * musicPageSize) {
  264. let startNum = randomNum - ((musicPageNo - 1) * musicPageSize);
  265. $('#apis-quiet-content').find(".contentTD > tr").eq(startNum - 1).find("button.apis-quiet-div-music-play").click();
  266. } else {
  267. let toMusicPageNo = Math.floor(randomNum / musicPageSize + 1);
  268. $("#apis-quiet-div-music-pageNo").val(toMusicPageNo);
  269. $("#apis-quiet-div").find("button.apis-quiet-div-button2").click();
  270. let startNum = randomNum - ((toMusicPageNo - 1) * musicPageSize);
  271. setTimeout(function () {
  272. $('#apis-quiet-content').find(".contentTD > tr").eq(startNum - 1).find("button.apis-quiet-div-music-play").click();
  273. }, 3000);
  274. }
  275. } else if (playRule === '2') {
  276. let nextTr = $("#apis-quiet-content").find(".contentTD").find('td.music_highlight').parent("tr").next("tr");
  277. if (nextTr.length > 0) {
  278. $(this).find("button.apis-quiet-div-music-play").click();
  279. } else {
  280. let musicPageNo = $("#apis-quiet-div-music-pageNo").val();
  281. let musicPages = $("#apis-quiet-div-music-pages").val();
  282. if (musicPageNo < musicPages) {
  283. $("#apis-quiet-div-music").find("button[pageo='next']").click();
  284. } else {
  285. $("#apis-quiet-div-music-pageNo").val(1);
  286. $("#apis-quiet-div").find("button.apis-quiet-div-button2").click();
  287. }
  288. setTimeout(function () {
  289. $('#apis-quiet-content').find(".contentTD > tr").eq(0).find("button.apis-quiet-div-music-play").click();
  290. }, 3000);
  291. }
  292. } else if (playRule === '3') {
  293. $("#apis-quiet-content").find(".contentTD").find('td.music_highlight').parent("tr").find("button.apis-quiet-div-music-play").click();
  294. }
  295. });
  296. $("button.apis-quiet-div-music-start").click(function () {
  297. let totalCount = $("div#apis-quiet-content").find("span.contentSPAN").text();
  298. if (totalCount === 0) {
  299. return;
  300. }
  301. let playRule = $("#apis-quiet-div-music-playRuleField").val();
  302. if (playRule === '1') {
  303. let randomNum = Math.floor(Math.random() * totalCount) + 1;
  304. let musicPageNo = $("#apis-quiet-div-music-pageNo").val();
  305. let musicPageSize = $("#apis-quiet-div-music-pageSize").val();
  306. if (randomNum >= (musicPageNo - 1) * musicPageSize + 1 && randomNum <= musicPageNo * musicPageSize) {
  307. let startNum = randomNum - ((musicPageNo - 1) * musicPageSize);
  308. $('#apis-quiet-content').find(".contentTD > tr").eq(startNum - 1).find("button.apis-quiet-div-music-play").click();
  309. } else {
  310. let toMusicPageNo = Math.floor(randomNum / musicPageSize + 1);
  311. $("#apis-quiet-div-music-pageNo").val(toMusicPageNo);
  312. $("#apis-quiet-div").find("button.apis-quiet-div-button2").click();
  313. let startNum = randomNum - ((toMusicPageNo - 1) * musicPageSize);
  314. setTimeout(function () {
  315. $('#apis-quiet-content').find(".contentTD > tr").eq(startNum - 1).find("button.apis-quiet-div-music-play").click();
  316. }, 3000);
  317. }
  318. } else if (playRule === '2') {
  319. $('#apis-quiet-content').find(".contentTD > tr").eq(0).find("button.apis-quiet-div-music-play").click();
  320. } else if (playRule === '3') {
  321. $('#apis-quiet-content').find(".contentTD > tr").eq(0).find("button.apis-quiet-div-music-play").click();
  322. }
  323. });
  324. } else {
  325. $("#audioDiv").css("display", "none");
  326. $("#audio > source").attr("src", "");
  327. $("#audio")[0].load();
  328. }
  329. if (nameEn === 'currentHolding') {
  330. $("span.contentSPAN2").css("display", "inline");
  331. $("span.contentSPAN2").dblclick(function () {
  332. if ($(this).html().includes("***")) {
  333. $(this).html($(this).attr("realV"));
  334. } else {
  335. $(this).html(' | ' + "***");
  336. }
  337. });
  338. } else {
  339. $("span.contentSPAN2").css("display", "none");
  340. $("span.contentSPAN2").unbind("dblclick");
  341. }
  342. $(obj).parent("div").next("div").find("span.contentSPAN").html('0');
  343. $(obj).parent("div").next("div").find("tr.contentTH").html(theadStr);
  344. $(obj).parent("div").next("div").find("tbody.contentTD").html('');
  345. $("div[id^=apis-quiet-div-]").css("display", "none");
  346. $("#apis-quiet-div-" + nameEn).css("display", "block");
  347. $("#apis-quiet-div-" + nameEn).find("input[id$=pageNo]").val(1);
  348. $("div[id^=apis-quiet-div-]").find($("button.apis-quiet-div-button3")).unbind("click");
  349. $("div[id^=apis-quiet-div-]").find($("button.apis-quiet-div-button3")).click(function () {
  350. stopFlag = false;
  351. var url = selectedOption.attr("url");
  352. var typetype = selectedOption.attr("typetype");
  353. var slideDiv = $(this).attr("slideDiv");
  354. var pageNoVar = $("#" + $(this).parent().attr("id") + "-pageNo");
  355. var pageO = $(this).attr("pageO");
  356. var beforePageNo = $(pageNoVar).val();
  357. if (pageO === 'prev') {
  358. if (beforePageNo > 1) {
  359. $(pageNoVar).val(Number(beforePageNo) - 1);
  360. }
  361. } else if (pageO === 'next') {
  362. if (beforePageNo < Number($("#apis-quiet-div-" + nameEn).find("input[id$=pages]").val())) {
  363. $(pageNoVar).val(Number(beforePageNo) + 1);
  364. }
  365. }
  366. mainSearch(url, nameEn, slideDiv, typetype, "2");
  367. });
  368. // 对输入框、选择框加入对应事件,方便及时筛选查询操作
  369. $("div[id^=apis-quiet-div-]").find("input[id$=keyword]").unbind("keydown");
  370. $("#apis-quiet-div-" + nameEn).find("input[id$=keyword]").keydown(function (e) {
  371. if (e.keyCode == 13) {
  372. $(".apis-quiet-div-button2").click();
  373. }
  374. });
  375. $("div[id^=apis-quiet-div-]").find("select").unbind("change");
  376. $("#apis-quiet-div-" + nameEn).find("select").change(function (e) {
  377. if ($(this).attr("id") === 'apis-quiet-div-music-playRuleField') {
  378. return;
  379. }
  380. $(".apis-quiet-div-button2").click();
  381. });
  382. }
  383. });
  384. $(objj).parent("div").next("div").find(".contentTH").find("th").dblclick(function () {
  385. cccField = $(this).attr("returnEn");
  386. });
  387. }
  388. /**
  389. * 多条件搜索
  390. * @param pageNo
  391. */
  392. function mainSearch(url, nameEn, slideDiv, typetype, needCustomFlag) {
  393. var jsonData = {};
  394. jsonData.url = url;
  395. jsonData.nameEn = nameEn;
  396. if (nameEn === 'currentPlan' || nameEn === 'orderMarginCoinCurrent') {
  397. jsonData.chaRateSort = $("#chaRateSort").val();
  398. } else if (nameEn === 'monitorCurrency') {
  399. jsonData.changeUtcSort = $("#changeUtcSort").val();
  400. } else if (nameEn === 'allPositionv2') {
  401. jsonData.unrealizedPLSort = $("#unrealizedPLSort").val();
  402. } else if (nameEn === 'orderHistoryProductType') {
  403. jsonData.pageNo = $("#apis-quiet-div-orderHistoryProductType-pageNo").val();
  404. jsonData.pageSize = $("#apis-quiet-div-orderHistoryProductType-pageSize").val();
  405. jsonData.keyword = $("#apis-quiet-div-orderHistoryProductType-keyword").val();
  406. jsonData.sortField = $("#apis-quiet-div-orderHistoryProductType-sortField").val();
  407. jsonData.sort = $("#apis-quiet-div-orderHistoryProductType-sort").val();
  408. jsonData.side = $("#apis-quiet-div-orderHistoryProductType-side").val();
  409. } else if (nameEn === 'traderList') {
  410. jsonData.pageNo = $("#apis-quiet-div-traderList-pageNo").val();
  411. jsonData.pageSize = $("#apis-quiet-div-traderList-pageSize").val();
  412. jsonData.keyword = $("#apis-quiet-div-traderList-keyword").val();
  413. jsonData.sortField = $("#apis-quiet-div-traderList-sortField").val();
  414. jsonData.sort = $("#apis-quiet-div-traderList-sort").val();
  415. jsonData.canTrace = $("#apis-quiet-div-traderList-canTrace").val();
  416. } else if (nameEn === 'watchlist') {
  417. jsonData.pageNo = $("#apis-quiet-div-watchlist-pageNo").val();
  418. jsonData.pageSize = $("#apis-quiet-div-watchlist-pageSize").val();
  419. jsonData.keyword = $("#apis-quiet-div-watchlist-keyword").val();
  420. jsonData.sortField = $("#apis-quiet-div-watchlist-sortField").val();
  421. jsonData.sort = $("#apis-quiet-div-watchlist-sort").val();
  422. jsonData.filterField = $("#apis-quiet-div-watchlist-filterField").val();
  423. jsonData.trackCategoryField = $("#apis-quiet-div-watchlist-trackCategoryField").val();
  424. jsonData.trackCategory2Field = $("#apis-quiet-div-watchlist-trackCategory2Field").val();
  425. jsonData.cexFilterField = $("#apis-quiet-div-watchlist-cexFilterField").val();
  426. jsonData.userName = getCookie('username');
  427. } else if (nameEn === 'image') {
  428. jsonData.pageNo = $("#apis-quiet-div-image-pageNo").val();
  429. jsonData.pageSize = $("#apis-quiet-div-image-pageSize").val();
  430. jsonData.keyword = $("#apis-quiet-div-image-keyword").val();
  431. jsonData.sortField = $("#apis-quiet-div-image-sortField").val();
  432. jsonData.sort = $("#apis-quiet-div-image-sort").val();
  433. jsonData.categoryField = $("#apis-quiet-div-image-categoryField").val();
  434. } else if (nameEn === 'cmcmap') {
  435. jsonData.pageNo = $("#apis-quiet-div-cmcmap-pageNo").val();
  436. jsonData.pageSize = $("#apis-quiet-div-cmcmap-pageSize").val();
  437. jsonData.keyword = $("#apis-quiet-div-cmcmap-keyword").val();
  438. jsonData.sortField = $("#apis-quiet-div-cmcmap-sortField").val();
  439. jsonData.sort = $("#apis-quiet-div-cmcmap-sort").val();
  440. jsonData.filterField = $("#apis-quiet-div-cmcmap-filterField").val();
  441. } else if (nameEn === 'music') {
  442. jsonData.pageNo = $("#apis-quiet-div-music-pageNo").val();
  443. jsonData.pageSize = $("#apis-quiet-div-music-pageSize").val();
  444. jsonData.keyword = $("#apis-quiet-div-music-keyword").val();
  445. jsonData.sortField = $("#apis-quiet-div-music-sortField").val();
  446. jsonData.sort = $("#apis-quiet-div-music-sort").val();
  447. jsonData.categoryField = $("#apis-quiet-div-music-categoryField").val();
  448. jsonData.scoreField = $("#apis-quiet-div-music-scoreField").val();
  449. } else if (nameEn === 'currentHolding') {
  450. jsonData.pageNo = $("#apis-quiet-div-currentHolding-pageNo").val();
  451. jsonData.pageSize = $("#apis-quiet-div-currentHolding-pageSize").val();
  452. jsonData.keyword = $("#apis-quiet-div-currentHolding-keyword").val();
  453. jsonData.sortField = $("#apis-quiet-div-currentHolding-sortField").val();
  454. jsonData.sort = $("#apis-quiet-div-currentHolding-sort").val();
  455. jsonData.categoryField = $("#apis-quiet-div-currentHolding-categoryField").val();
  456. jsonData.status = $("#apis-quiet-div-currentHolding-status").val();
  457. } else if (nameEn === 'bookmark') {
  458. jsonData.pageNo = $("#apis-quiet-div-bookmark-pageNo").val();
  459. jsonData.pageSize = $("#apis-quiet-div-bookmark-pageSize").val();
  460. jsonData.keyword = $("#apis-quiet-div-bookmark-keyword").val();
  461. jsonData.sortField = $("#apis-quiet-div-bookmark-sortField").val();
  462. jsonData.sort = $("#apis-quiet-div-bookmark-sort").val();
  463. jsonData.categoryField = $("#apis-quiet-div-bookmark-categoryField").val();
  464. jsonData.subCategoryField = $("#apis-quiet-div-bookmark-subCategoryField").val();
  465. }
  466. $.ajax({
  467. url: "coin/mainSearch", //请求的url地址
  468. dataType: "json", //返回格式为json
  469. data: JSON.stringify(jsonData), //参数值
  470. type: "post", //请求方式
  471. contentType: "application/json;charset=utf-8",
  472. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  473. success: function (data) {
  474. //请求成功时处理
  475. if (data != null && $.trim(data) != "" && data.success) {
  476. if (stopFlag) {
  477. return;
  478. }
  479. if (nameEn === 'orderHistoryProductType' || nameEn === 'traderList' || nameEn === 'watchlist' || nameEn === 'image' || nameEn === 'cmcmap' || nameEn === 'music' || nameEn === 'currentHolding' || nameEn === 'bookmark') {
  480. $("#apis-quiet-div-" + nameEn).find("input[id$=pages]").val(data.data.pages);
  481. $('#' + slideDiv).find("span.contentSPAN").html(data.data.total);
  482. data = data.data.list;
  483. } else {
  484. data = data.data;
  485. $('#' + slideDiv).find("span.contentSPAN").html(data.length);
  486. }
  487. var returnEn = '';
  488. if (needCustomFlag === '1') {
  489. returnEn = $("#" + nameEn).attr("returnen").split(",");
  490. } else {
  491. var selectedOption = $('option[nameen="' + nameEn + '"]');
  492. returnEn = selectedOption.attr("returnen").split(",");
  493. }
  494. var str = '';
  495. var title = 'Coin主页|';
  496. for (var i = 0; i < data.length; i++) {
  497. var dataDetail = data[i];
  498. if (nameEn === 'allPositionv2') {
  499. var bbbField = $(".apis-move-div-input1").val();
  500. var symbol = dataDetail.symbol;
  501. if (cccField.length > 0 && bbbField.length > 0 && symbol.indexOf(bbbField) != -1) {
  502. title += bbbField + '|' + dataDetail[cccField];
  503. $("title").html(title);
  504. }
  505. }
  506. str += '<tr>';
  507. $.each(returnEn, function (index, obj) {
  508. var objStyle = dataDetail.hasOwnProperty(obj + 'Style') && dataDetail[obj + 'Style'] != null ? dataDetail[obj + 'Style'] : '';
  509. var objContent = dataDetail.hasOwnProperty(obj) ? dataDetail[obj] : '--';
  510. if (nameEn === 'currentHolding') {
  511. objContent = objContent != null ? objContent : '--';
  512. }else if (nameEn === 'bookmark') {
  513. objContent = objContent != null ? objContent : '--';
  514. }
  515. str += '<td' + objStyle + '>' + objContent + '</td>';
  516. });
  517. if (nameEn === 'watchlist') {
  518. str += '<td style="padding: 0px 10px 0px 10px;">';
  519. str += '<button class="apis-quiet-div-watchlist-detail" operationType="detail" symbolName="' + dataDetail.symbol + '">详情</button>';
  520. str += '<button class="apis-quiet-div-watchlist-update" operationType="update" symbolName="' + dataDetail.symbol + '">编辑</button>';
  521. str += '</td>';
  522. } else if (nameEn === 'image') {
  523. str += '<td style="padding: 0px 10px 0px 10px;">';
  524. str += '<button class="apis-quiet-div-image-delete" operationType="delete" symbolName="' + dataDetail.id + '">删除</button>';
  525. str += '</td>';
  526. } else if (nameEn === 'music') {
  527. str += '<td style="padding: 0px 10px 0px 10px;">';
  528. str += '<button class="apis-quiet-div-music-play" operationType="play" symbolName="' + dataDetail.lowQualityUrl + '" symbolName2="' + dataDetail.highQualityUrl + '">播放</button>';
  529. // str += '<button class="apis-quiet-div-music-pause" operationType="pause" symbolName="' + dataDetail.lowQualityUrl + '">暂停</button>';
  530. str += '<button class="apis-quiet-div-music-detail" operationType="detail" symbolName="' + dataDetail.id + '">详情</button>';
  531. str += '<button class="apis-quiet-div-music-update" operationType="update" symbolName="' + dataDetail.id + '">编辑</button>';
  532. str += '<button class="apis-quiet-div-music-delete" operationType="delete" symbolName="' + dataDetail.id + '">删除</button>';
  533. str += '</td>';
  534. }
  535. str += '</tr>';
  536. }
  537. if (nameEn === 'watchlist') {
  538. $(".apis-quiet-div-watchlist-detail").unbind("click");
  539. $(".apis-quiet-div-watchlist-update").unbind("click");
  540. $(".watchlistpreview-top-close").unbind("click");
  541. } else if (nameEn === 'image') {
  542. $(".apis-quiet-div-image-delete").unbind("click");
  543. } else if (nameEn === 'music') {
  544. $(".apis-quiet-div-music-delete").unbind("click");
  545. $(".apis-quiet-div-music-play").unbind("click");
  546. // $(".apis-quiet-div-music-pause").unbind("click");
  547. $(".apis-quiet-div-music-detail").unbind("click");
  548. $(".apis-quiet-div-music-update").unbind("click");
  549. }
  550. $('#' + slideDiv).find(".contentTD").html(str);
  551. initContentEvent(nameEn);
  552. } else {
  553. //alert(data.message);
  554. }
  555. },
  556. beforeSend: function () {
  557. if (typetype === '2') {
  558. $(".quiet-loading").css("display", "block");
  559. }
  560. },
  561. complete: function () {
  562. if (typetype === '2') {
  563. $(".quiet-loading").css("display", "none");
  564. }
  565. if (nameEn === 'currentHolding') {
  566. getCurrentHoldingTotalAmout(jsonData);
  567. }
  568. },
  569. error: function (data) {
  570. //请求出错处理
  571. //alert('error:' + data);
  572. }
  573. });
  574. }
  575. function getCurrentHoldingTotalAmout(jsonData) {
  576. $.ajax({
  577. url: "coin/getCurrentHoldingTotalAmout", //请求的url地址
  578. dataType: "json", //返回格式为json
  579. data: JSON.stringify(jsonData), //参数值
  580. type: "post", //请求方式
  581. contentType: "application/json;charset=utf-8",
  582. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  583. success: function (data) {
  584. //请求成功时处理
  585. if (data != null && $.trim(data) != "" && data.success) {
  586. let contentSPAN2 = $('#apis-quiet-content').find("span.contentSPAN2");
  587. contentSPAN2.attr("realV", ' | ' + data.data);
  588. contentSPAN2.html(' | ' + "***");
  589. } else {
  590. //alert(data.message);
  591. }
  592. },
  593. beforeSend: function () {
  594. },
  595. complete: function () {
  596. },
  597. error: function (data) {
  598. }
  599. });
  600. }
  601. /**
  602. * 初始化主内容事件
  603. */
  604. function initContentEvent(nameEn) {
  605. if ($(".apis-move-div-input1").val().length === 0) {
  606. $("title").html('Coin主页');
  607. }
  608. if (nameEn === 'watchlist') {
  609. $("ul li").click(function () {
  610. $.ajax({
  611. url: "coin/watchlistUpdate", //请求的url地址
  612. dataType: "json", //返回格式为json
  613. data: {
  614. "symbol": $(this).attr("id"),
  615. "userName": getCookie('username'),
  616. "score": $(this).attr("val")
  617. }, //参数值
  618. type: "post", //请求方式
  619. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  620. success: function (data) {
  621. //请求成功时处理
  622. if (data != null && $.trim(data) != "" && data.success) {
  623. $(".apis-quiet-div-button2").click();
  624. } else {
  625. console.log("watchlistUpdate-score success error," + data);
  626. }
  627. },
  628. beforeSend: function () {
  629. },
  630. complete: function () {
  631. },
  632. error: function (data) {
  633. //请求出错处理
  634. console.log("watchlistUpdate-score error," + data);
  635. }
  636. });
  637. });
  638. $("#apis-quiet-content").find(".contentTD").find("tr td:nth-child(7)").dblclick(function () {
  639. $(this).parent("tr").find("button[operationtype='detail']").click();
  640. });
  641. $(".apis-quiet-div-watchlist-detail,.apis-quiet-div-watchlist-update").click(function () {
  642. if ($("#watchlistpreview").css("display") === 'none') {
  643. $("#watchlistpreview").css("display", "block");
  644. } else if ($("#watchlistpreview").css("display") === 'block') {
  645. $("#watchlistpreview").css("display", "none");
  646. }
  647. $(".watchlistpreview-top-close").click(function () {
  648. if ($("#watchlistpreview").css("display") === 'none') {
  649. $("#watchlistpreview").css("display", "block");
  650. } else if ($("#watchlistpreview").css("display") === 'block') {
  651. $("#watchlistpreview").css("display", "none");
  652. }
  653. $(this).unbind("click");
  654. $(".watchlistpreview-top-submit").unbind("click");
  655. $(".watchlistpreview-content").unbind("dblclick");
  656. });
  657. $(".watchlistpreview-content").dblclick(function () {
  658. $(".watchlistpreview-top-close").click();
  659. });
  660. $(".watchlistpreview-top-submit").click(function () {
  661. $.ajax({
  662. url: "coin/watchlistUpdate", //请求的url地址
  663. dataType: "json", //返回格式为json
  664. data: {
  665. "symbol": $(".watchlistpreview-content").find(".watchlistpreview-symbol").val(),
  666. "userName": getCookie('username'),
  667. "remark": $(".watchlistpreview-content").find("textarea").val()
  668. }, //参数值
  669. type: "post", //请求方式
  670. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  671. success: function (data) {
  672. //请求成功时处理
  673. if (data != null && $.trim(data) != "" && data.success) {
  674. $(".watchlistpreview-top-close").click();
  675. } else {
  676. console.log("watchlistpreview-top-submit success error," + data);
  677. }
  678. },
  679. beforeSend: function () {
  680. },
  681. complete: function () {
  682. },
  683. error: function (data) {
  684. //请求出错处理
  685. console.log("watchlistpreview-top-submit error," + data);
  686. }
  687. });
  688. });
  689. var operationType = $(this).attr("operationType");
  690. if (operationType === 'detail') {
  691. $(".watchlistpreview-top-submit").css("display", "none");
  692. } else if (operationType === 'update') {
  693. $(".watchlistpreview-top-submit").css("display", "block");
  694. }
  695. var symbol = $(this).attr("symbolName");
  696. $.ajax({
  697. url: "coin/watchlistDetail/" + getCookie('username') + "/" + symbol + "/" + operationType, //请求的url地址
  698. type: "get", //请求方式
  699. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  700. success: function (data) {
  701. //请求成功时处理
  702. if (data != null && $.trim(data) != "" && data.success) {
  703. data = data.data;
  704. if (operationType === 'detail') {
  705. $(".watchlistpreview-content").html(data);
  706. } else if (operationType === 'update') {
  707. var update4Text = '<textarea rows="4" cols="50" style="background: antiquewhite;width: 100%;height: 100%;">' + data + '</textarea>';
  708. update4Text += '<input type="hidden" class="watchlistpreview-symbol" value="' + symbol + '"/>';
  709. $(".watchlistpreview-content").html(update4Text);
  710. }
  711. } else {
  712. //alert(data.message);
  713. }
  714. },
  715. beforeSend: function () {
  716. $(".watchlistpreview-content").html("");
  717. $(".watchlistpreview-loading").css("display", "block");
  718. },
  719. complete: function () {
  720. $(".watchlistpreview-loading").css("display", "none");
  721. },
  722. error: function (data) {
  723. //请求出错处理
  724. alert('error:' + data);
  725. }
  726. });
  727. });
  728. } else if (nameEn === 'image') {
  729. $(".apis-quiet-div-image-delete").click(function () {
  730. var symbol = $(this).attr("symbolName");
  731. $.ajax({
  732. url: "pictureInfo/deleteImgs/" + symbol, //请求的url地址
  733. type: "get", //请求方式
  734. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  735. success: function (data) {
  736. //请求成功时处理
  737. if (data != null && $.trim(data) != "" && data.success) {
  738. $(".apis-quiet-div-button2").click();
  739. } else {
  740. alert(data.message);
  741. }
  742. },
  743. beforeSend: function () {
  744. $(".quiet-loading").css("display", "block");
  745. },
  746. complete: function () {
  747. $(".quiet-loading").css("display", "none");
  748. },
  749. error: function (data) {
  750. //请求出错处理
  751. alert('error:' + data);
  752. }
  753. });
  754. });
  755. } else if (nameEn === 'music') {
  756. $("ul li").click(function () {
  757. $.ajax({
  758. url: "musicInfo/musicUpdate", //请求的url地址
  759. dataType: "json", //返回格式为json
  760. data: {
  761. "symbol": $(this).attr("id"),
  762. "score": $(this).attr("val")
  763. }, //参数值
  764. type: "post", //请求方式
  765. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  766. success: function (data) {
  767. //请求成功时处理
  768. if (data != null && $.trim(data) != "" && data.success) {
  769. $(".apis-quiet-div-button2").click();
  770. } else {
  771. console.log("musicUpdate-score success error," + data);
  772. }
  773. },
  774. beforeSend: function () {
  775. },
  776. complete: function () {
  777. },
  778. error: function (data) {
  779. //请求出错处理
  780. console.log("musicUpdate-score error," + data);
  781. }
  782. });
  783. });
  784. $(".apis-quiet-div-music-delete").click(function () {
  785. var symbol = $(this).attr("symbolName");
  786. $.ajax({
  787. url: "musicInfo/deleteMusics/" + symbol, //请求的url地址
  788. type: "get", //请求方式
  789. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  790. success: function (data) {
  791. //请求成功时处理
  792. if (data != null && $.trim(data) != "" && data.success) {
  793. $(".apis-quiet-div-button2").click();
  794. } else {
  795. alert(data.message);
  796. }
  797. },
  798. beforeSend: function () {
  799. $(".quiet-loading").css("display", "block");
  800. },
  801. complete: function () {
  802. $(".quiet-loading").css("display", "none");
  803. },
  804. error: function (data) {
  805. //请求出错处理
  806. alert('error:' + data);
  807. }
  808. });
  809. });
  810. $(".apis-quiet-div-music-play").click(function () {
  811. var symbol = $(this).attr("symbolName");
  812. var symbol2 = $(this).attr("symbolName2");
  813. if (symbol === null || symbol === '' || symbol === 'null') {
  814. symbol = symbol2;
  815. }
  816. var currentSrc = $("#audio > source").attr("src");
  817. // 歌词展示
  818. const audio = $("#audio")[0];
  819. // 清除 ontimeupdate 事件处理函数
  820. audio.ontimeupdate = null;
  821. //$(audio).unbind("timeupdate");
  822. const lyricsContainer = $('#lyrics');
  823. lyricsContainer.text('');
  824. $.ajax({
  825. url: "musicInfo/requestFile", // 替换为实际的 LRC 文件 URL
  826. data: {
  827. "url": symbol.replace('mp3', 'lrc')
  828. },
  829. type: "post", //请求方式
  830. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  831. success: function (data) {
  832. if (data == null || $.trim(data) == "" || !data.success) {
  833. lyricsContainer.text("未获取到歌词!");
  834. return;
  835. }
  836. const lrc = data.data;
  837. if (lrc === '') {
  838. lyricsContainer.text("未获取到歌词!");
  839. return;
  840. }
  841. // 将 LRC 歌词解析为数组
  842. const lyrics = lrc.trim().split('\n').filter(line => {
  843. // 使用正则检查是否符合 [mm:ss.xx] 或 [mm:ss.xxx] 格式
  844. return /^\[\d{2}:\d{2}(\.\d{2,3})?\]/.test(line) && line !== null;
  845. }).map(function (line) {
  846. let indexOf = line.lastIndexOf("]");
  847. const time = line.substring(1, indexOf).split(":");
  848. const text = line.substring(indexOf + 1).trim();
  849. const seconds = parseInt(time[0]) * 60 + parseFloat(time[1]);
  850. return {time: seconds, text: text};
  851. });
  852. // 实时更新歌词
  853. $(audio).on('timeupdate', function () {
  854. const currentTime = audio.currentTime;
  855. let currentLyric = null;
  856. // 查找当前播放时间对应的歌词
  857. for (let i = 0; i < lyrics.length; i++) {
  858. if (currentTime >= lyrics[i].time) {
  859. currentLyric = lyrics[i];
  860. } else {
  861. break;
  862. }
  863. }
  864. if (currentLyric) {
  865. // 更新歌词内容
  866. lyricsContainer.text(currentLyric.text);
  867. }
  868. });
  869. },
  870. error: function () {
  871. lyricsContainer.text("未获取到歌词!");
  872. }
  873. });
  874. if (currentSrc === symbol) {
  875. $("#audio")[0].play();
  876. } else {
  877. $("#audio > source").attr("src", symbol);
  878. $("#audio")[0].load();
  879. $("#audio")[0].play();
  880. }
  881. $("#audio")[0].volume = $("#apis-quiet-div-music-playVolumeField").val();
  882. $("#apis-quiet-content").find(".contentTD > tr").find('td:nth-child(2)').removeClass("music_highlight");
  883. $(this).parent("td").parent("tr").find('td:nth-child(2)').addClass("music_highlight");
  884. });
  885. /*$(".apis-quiet-div-music-pause").click(function () {
  886. var symbol = $(this).attr("symbolName");
  887. $("#apis-quiet-content > audio")[0].pause();
  888. });*/
  889. $(".apis-quiet-div-music-detail,.apis-quiet-div-music-update").click(function () {
  890. if ($("#musicpreview").css("display") === 'none') {
  891. $("#musicpreview").css("display", "block");
  892. } else if ($("#musicpreview").css("display") === 'block') {
  893. $("#musictpreview").css("display", "none");
  894. }
  895. $(".musicpreview-top-close").click(function () {
  896. if ($("#musicpreview").css("display") === 'none') {
  897. $("#musicpreview").css("display", "block");
  898. } else if ($("#musicpreview").css("display") === 'block') {
  899. $("#musicpreview").css("display", "none");
  900. }
  901. $(this).unbind("click");
  902. $(".musicpreview-top-submit").unbind("click");
  903. });
  904. $(".musicpreview-top-submit").click(function () {
  905. $.ajax({
  906. url: "musicInfo/musicUpdate", //请求的url地址
  907. dataType: "json", //返回格式为json
  908. data: {"symbol": $(".musicpreview-content").find(".musicpreview-symbol").val(), "remark": $(".musicpreview-content").find("textarea").val()}, //参数值
  909. type: "post", //请求方式
  910. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  911. success: function (data) {
  912. //请求成功时处理
  913. if (data != null && $.trim(data) != "" && data.success) {
  914. $(".musicpreview-top-close").click();
  915. } else {
  916. console.log("musicpreview-top-submit success error," + data);
  917. }
  918. },
  919. beforeSend: function () {
  920. },
  921. complete: function () {
  922. },
  923. error: function (data) {
  924. //请求出错处理
  925. console.log("musicpreview-top-submit error," + data);
  926. }
  927. });
  928. });
  929. var operationType = $(this).attr("operationType");
  930. if (operationType === 'detail') {
  931. $(".musicpreview-top-submit").css("display", "none");
  932. } else if (operationType === 'update') {
  933. $(".musicpreview-top-submit").css("display", "block");
  934. }
  935. var symbol = $(this).attr("symbolName");
  936. $.ajax({
  937. url: "musicInfo/musicDetail/" + symbol + "/" + operationType, //请求的url地址
  938. type: "get", //请求方式
  939. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  940. success: function (data) {
  941. //请求成功时处理
  942. if (data != null && $.trim(data) != "" && data.success) {
  943. data = data.data;
  944. if (operationType === 'detail') {
  945. $(".musicpreview-content").html(data);
  946. } else if (operationType === 'update') {
  947. var update4Text = '<textarea rows="4" cols="50" style="background: antiquewhite;width: 100%;height: 100%;">' + data + '</textarea>';
  948. update4Text += '<input type="hidden" class="musicpreview-symbol" value="' + symbol + '"/>';
  949. $(".musicpreview-content").html(update4Text);
  950. }
  951. } else {
  952. //alert(data.message);
  953. }
  954. },
  955. beforeSend: function () {
  956. $(".musicpreview-content").html("");
  957. $(".musicpreview-loading").css("display", "block");
  958. },
  959. complete: function () {
  960. $(".musicpreview-loading").css("display", "none");
  961. },
  962. error: function (data) {
  963. //请求出错处理
  964. alert('error:' + data);
  965. }
  966. });
  967. });
  968. }
  969. if (nameEn === 'orderHistoryProductType' || nameEn === 'traderList' || nameEn === 'watchlist' || nameEn === 'image' || nameEn === 'cmcmap') {
  970. // 鼠标滑过 开启菜单
  971. $(".primary").mouseenter(function () {
  972. savIDMouseEnter($(this), nameEn);
  973. });
  974. // 鼠标离开 关闭菜单
  975. $(".primary").mouseleave(function () {
  976. savIDMouseLeave($(this), nameEn);
  977. });
  978. }
  979. }
  980. function insertOrUpdateImageSubmit(){
  981. var formData = new FormData($("#popup-form")[0]);
  982. formData.append("userName", getCookie('username'));
  983. $.ajax({
  984. url: "pictureInfo/insertOrUpdateImg", //请求的url地址
  985. dataType: "json", //返回格式为json
  986. data: formData, //参数值
  987. type: "post", //请求方式
  988. processData: false,// 告诉jQuery不要去处理发送的数据
  989. contentType: false,// 告诉jQuery不要去设置Content-Type请求头
  990. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  991. success: function (data) {
  992. //$(".uploadImgs-loading").css("display", "none");
  993. //请求成功时处理
  994. if (data != null && $.trim(data) != "" && data.success) {
  995. //$("#uploadImgsAlert").html(JSON.stringify(data.data));
  996. var quietSelectOption = $("#apis-quiet-select option:selected");
  997. if ($(quietSelectOption).attr("nameen") === 'image') {
  998. $(".apis-quiet-div-button2").click();
  999. }
  1000. } else {
  1001. //$("#uploadImgsAlert").html(data.message);
  1002. }
  1003. // 在请求成功后填充数据到结果区域
  1004. $("#result-content").text(JSON.stringify(data, null, 2));
  1005. $("#loading-icon").fadeOut();
  1006. $("#result-container").fadeIn(); // 显示结果区域
  1007. },
  1008. beforeSend: function () {
  1009. //$(".uploadImgs-loading").css("display", "block");
  1010. showLoading(); // 显示加载状态
  1011. },
  1012. complete: function () {
  1013. },
  1014. error: function (data) {
  1015. //请求出错处理
  1016. console.log("uploadImgs-submit error," + data);
  1017. }
  1018. });
  1019. }
  1020. function insertOrUpdateMusicSubmit(){
  1021. var formData = new FormData($("#popup-form")[0]);
  1022. formData.append("userName", getCookie('username'));
  1023. $.ajax({
  1024. url: "musicInfo/insertOrUpdateMusic", //请求的url地址
  1025. dataType: "json", //返回格式为json
  1026. data: formData, //参数值
  1027. type: "post", //请求方式
  1028. processData: false,// 告诉jQuery不要去处理发送的数据
  1029. contentType: false,// 告诉jQuery不要去设置Content-Type请求头
  1030. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  1031. success: function (data) {
  1032. //$(".uploadMusics-loading").css("display", "none");
  1033. //请求成功时处理
  1034. if (data != null && $.trim(data) != "" && data.success) {
  1035. //$("#uploadMusicsAlert").html(JSON.stringify(data.data));
  1036. var quietSelectOption = $("#apis-quiet-select option:selected");
  1037. if ($(quietSelectOption).attr("nameen") === 'music') {
  1038. $(".apis-quiet-div-button2").click();
  1039. }
  1040. } else {
  1041. //$("#uploadMusicsAlert").html(data.message);
  1042. }
  1043. // 在请求成功后填充数据到结果区域
  1044. $("#result-content").text(JSON.stringify(data, null, 2));
  1045. $("#loading-icon").fadeOut();
  1046. $("#result-container").fadeIn(); // 显示结果区域
  1047. },
  1048. beforeSend: function () {
  1049. //$(".uploadMusics-loading").css("display", "block");
  1050. showLoading(); // 显示加载状态
  1051. },
  1052. complete: function () {
  1053. },
  1054. error: function (data) {
  1055. //请求出错处理
  1056. console.log("uploadMusics-submit error," + data);
  1057. }
  1058. });
  1059. }
  1060. function insertOrUpdateWatchlistSubmit(){
  1061. var formData = new FormData($("#popup-form")[0]);
  1062. formData.append("userName", getCookie('username'));
  1063. $.ajax({
  1064. url: "coin/insertOrUpdateWatchlist", //请求的url地址
  1065. dataType: "json", //返回格式为json
  1066. data: formData, //参数值
  1067. type: "post", //请求方式
  1068. processData: false,// 告诉jQuery不要去处理发送的数据
  1069. contentType: false,// 告诉jQuery不要去设置Content-Type请求头
  1070. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  1071. success: function (data) {
  1072. //$(".popup > .watchlist-loading").css("display", "none");
  1073. //请求成功时处理
  1074. if (data != null && $.trim(data) != "" && data.success) {
  1075. //$("#insertOrUpdateAlert").html(JSON.stringify(data.data));
  1076. var quietSelectOption = $("#apis-quiet-select option:selected");
  1077. if ($(quietSelectOption).attr("nameen") === 'watchlist') {
  1078. $(".apis-quiet-div-button2").click();
  1079. }
  1080. } else {
  1081. //$("#insertOrUpdateAlert").html(data.message);
  1082. }
  1083. // 在请求成功后填充数据到结果区域
  1084. $("#result-content").text(JSON.stringify(data, null, 2));
  1085. $("#loading-icon").fadeOut();
  1086. $("#result-container").fadeIn(); // 显示结果区域
  1087. },
  1088. beforeSend: function () {
  1089. //$(".popup > .watchlist-loading").css("display", "block");
  1090. showLoading(); // 显示加载状态
  1091. },
  1092. complete: function () {
  1093. },
  1094. error: function (data) {
  1095. //请求出错处理
  1096. console.log("insertOrUpdateWatchlist-submit error," + data);
  1097. }
  1098. });
  1099. }
  1100. function insertOrUpdateCurrentHoldingSubmit(){
  1101. var formData = new FormData($("#popup-form")[0]);
  1102. formData.append("userName", getCookie('username'));
  1103. const jsonData = {};
  1104. formData.forEach((value, key) => {
  1105. jsonData[key] = value;
  1106. });
  1107. $.ajax({
  1108. url: "coin/insertOrUpdateCurrentHolding", //请求的url地址
  1109. dataType: "json", //返回格式为json
  1110. data: JSON.stringify(jsonData), //参数值
  1111. type: "post", //请求方式
  1112. contentType: "application/json;charset=utf-8",
  1113. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  1114. success: function (data) {
  1115. //请求成功时处理
  1116. if (data != null && $.trim(data) != "" && data.success) {
  1117. var quietSelectOption = $("#apis-quiet-select option:selected");
  1118. if ($(quietSelectOption).attr("nameen") === 'currentHolding') {
  1119. $(".apis-quiet-div-button2").click();
  1120. }
  1121. } else {
  1122. //$("#uploadMusicsAlert").html(data.message);
  1123. }
  1124. // 在请求成功后填充数据到结果区域
  1125. $("#result-content").text(JSON.stringify(data, null, 2));
  1126. $("#loading-icon").fadeOut();
  1127. $("#result-container").fadeIn(); // 显示结果区域
  1128. },
  1129. beforeSend: function () {
  1130. showLoading(); // 显示加载状态
  1131. },
  1132. complete: function () {
  1133. },
  1134. error: function (data) {
  1135. //请求出错处理
  1136. console.log("insertOrUpdateCurrentHolding error," + data);
  1137. }
  1138. });
  1139. }
  1140. function initOther4Popup(){
  1141. // 打开弹窗
  1142. $(".apis-quiet-div-button4").on("click", function () {
  1143. var selectedOption = $("select#apis-quiet-select").find("option:selected");
  1144. var url = selectedOption.attr("url");
  1145. var typetype = selectedOption.attr("typetype");
  1146. var nameEn = selectedOption.attr("nameEn");
  1147. var slideDiv = $(this).attr("slideDiv");
  1148. quietPop(url, nameEn, slideDiv, typetype);
  1149. if (nameEn != 'watchlist' && nameEn != 'image' && nameEn != 'music' && nameEn != 'currentHolding') {
  1150. return;
  1151. }
  1152. $(".popup").fadeIn();
  1153. centerPopup(); // 调用居中函数
  1154. });
  1155. // 关闭弹窗
  1156. $(".close-btn").on("click", function () {
  1157. $(".popup").fadeOut();
  1158. });
  1159. // 阻止表单默认提交行为
  1160. $(".popup form").on("submit", function (e) {
  1161. e.preventDefault();
  1162. var nameEn = $("#popup-form-hidden-nameEn").val();
  1163. if (nameEn === 'watchlist') {
  1164. insertOrUpdateWatchlistSubmit();
  1165. } else if (nameEn === 'image') {
  1166. insertOrUpdateImageSubmit();
  1167. } else if (nameEn === 'music') {
  1168. insertOrUpdateMusicSubmit();
  1169. } else if (nameEn === 'currentHolding') {
  1170. insertOrUpdateCurrentHoldingSubmit();
  1171. }
  1172. });
  1173. // 实现拖动功能
  1174. let isDragging = false;
  1175. let offsetX, offsetY;
  1176. $("#draggable-popup h2").on("mousedown", function (e) {
  1177. // 判断如果点击在 input 或 select 上,不触发拖动
  1178. if ($(e.target).closest("input, select, label").length) {
  1179. return; // 如果按在 input 或 select 上,不启动拖动
  1180. }
  1181. isDragging = true;
  1182. offsetX = e.clientX - $(this).offset().left;
  1183. offsetY = e.clientY - $(this).offset().top;
  1184. $(this).css("cursor", "grabbing"); // 改变鼠标指针样式
  1185. });
  1186. $(document).on("mousemove", function (e) {
  1187. if (isDragging) {
  1188. const left = e.clientX - offsetX;
  1189. const top = e.clientY - offsetY;
  1190. $("#draggable-popup").css({
  1191. left: `${left}px`,
  1192. top: `${top}px`,
  1193. });
  1194. }
  1195. });
  1196. $(document).on("mouseup", function () {
  1197. isDragging = false;
  1198. $("#draggable-popup").css("cursor", "move"); // 恢复鼠标指针样式
  1199. });
  1200. // 重置按钮的功能
  1201. $("#reset-button").on("click", function () {
  1202. $("#result-container").fadeOut(); // 隐藏请求结果区域
  1203. $(".loading-icon").fadeOut(); // 重置时隐藏加载图标
  1204. var nameEn = $("#popup-form-hidden-nameEn").val();
  1205. if (nameEn === 'currentHolding') {
  1206. $("#form-container-2").html("");
  1207. }
  1208. });
  1209. }
  1210. // 显示加载图标
  1211. function showLoading() {
  1212. $("#result-content").text(""); // 清空内容
  1213. $("#result-container").hide(); // 使用 hide() 快速隐藏
  1214. $("#loading-icon").fadeIn(); // 显示加载图标
  1215. }
  1216. // 计算并设置弹窗居中位置
  1217. function centerPopup() {
  1218. const popup = $("#draggable-popup");
  1219. const windowWidth = $(window).width();
  1220. const windowHeight = $(window).height();
  1221. const popupWidth = popup.outerWidth();
  1222. const popupHeight = popup.outerHeight();
  1223. // 计算弹窗的位置
  1224. const left = (windowWidth - popupWidth) / 2;
  1225. const top = (windowHeight - popupHeight) / 4;
  1226. // 设置弹窗的位置
  1227. popup.css({
  1228. left: `${left}px`,
  1229. top: `${top}px`,
  1230. });
  1231. }
  1232. /**
  1233. * quietPop
  1234. * @param pageNo
  1235. */
  1236. function quietPop(url, nameEn, slideDiv, typetype) {
  1237. if (nameEn === 'currentPlan' || nameEn === 'orderMarginCoinCurrent') {
  1238. } else if (nameEn === 'monitorCurrency') {
  1239. } else if (nameEn === 'allPositionv2') {
  1240. } else if (nameEn === 'orderHistoryProductType') {
  1241. } else if (nameEn === 'traderList') {
  1242. } else if (nameEn === 'watchlist') {
  1243. let formContent = "";
  1244. formContent += '<div class="form-item"><label for="symbol">名称:</label><input type="text" name="symbol" placeholder="不可为空"></div>';
  1245. formContent += '<div class="form-item"><label for="trackCategory">赛道分类:</label><input type="text" name="trackCategory" placeholder="可为空"></div>';
  1246. formContent += '<div class="form-item"><label for="trackCategory2">赛道分类2:</label><input type="text" name="trackCategory2" placeholder="可为空"></div>';
  1247. formContent += '<div class="form-item"><label for="issuingDate">发行日期:</label><input type="text" name="issuingDate" placeholder="可为空"></div>';
  1248. formContent += '<div class="form-item"><label for="cmcId">cmcId:</label><input type="text" name="cmcId" placeholder="可为空"></div>';
  1249. formContent += '<div class="form-item"><label for="coingeckoId">coingeckoId:</label><input type="text" name="coingeckoId" placeholder="可为空"></div>';
  1250. formContent += '<div class="form-item"><label for="coingeckoUrl">coingeckoUrl:</label><input type="text" name="coingeckoUrl" placeholder="可为空"></div>';
  1251. formContent += '<div class="form-item"><label for="feixiaohaoUrl">feixiaohaoUrl:</label><input type="text" name="feixiaohaoUrl" placeholder="可为空"></div>';
  1252. formContent += '<div class="form-item"><label for="filterFlag">filterFlag:</label><select id="apis-quiet-div-watchlist-filterFlagField" name="filterFlag"><option value="2">已过滤</option><option value="1">未过滤</option><option value="3">哈哈哈</option></select></div>';
  1253. formContent += '<div class="form-item"><label for="crudType">crudType:</label><select id="apis-quiet-div-watchlist-crudType" name="crudType"><option value="1">insert</option><option value="2">update</option></select></div>';
  1254. $("#form-container-2").html(formContent);
  1255. $("#popup-form-hidden-nameEn").val(nameEn);
  1256. $("#draggable-popup > h2").text("InsertOrUpdateWatchlist");
  1257. } else if (nameEn === 'image') {
  1258. let formContent = "";
  1259. formContent += '<div class="form-item"><label for="id">Id:</label><input type="text" name="id" placeholder="可为空"></div>';
  1260. formContent += '<div class="form-item"><label for="categoryId">分类:</label><select id="apis-quiet-div-uploadImgs-categoryField" name="categoryId"><option value="">--</option></select></div>';
  1261. formContent += '<div class="form-item"><label for="createDate">创建日期:</label><input type="text" name="createDate" placeholder="可为空"></div>';
  1262. formContent += '<div class="form-item"><label for="remark">备注:</label><input type="text" name="remark" placeholder="可为空"></div>';
  1263. formContent += '<div class="form-item"><label for="file">文件:</label><input type="file" name="file" multiple/></div>';
  1264. $("#form-container-2").html(formContent);
  1265. var uploadImageCategoryStr = '';
  1266. $.each(uploadImgsCategoryField, function (index2, obj2) {
  1267. uploadImageCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  1268. });
  1269. $("#apis-quiet-div-uploadImgs-categoryField").append(uploadImageCategoryStr);
  1270. $("#popup-form-hidden-nameEn").val(nameEn);
  1271. $("#draggable-popup > h2").text("InsertOrUpdateImage");
  1272. } else if (nameEn === 'cmcmap') {
  1273. } else if (nameEn === 'music') {
  1274. let formContent = "";
  1275. formContent += '<div class="form-item"><label for="id">Id:</label><input type="text" name="id" placeholder="可为空"></div>';
  1276. formContent += '<div class="form-item"><label for="title">标题:</label><input type="text" name="title" placeholder="ID为空时不可为空"></div>';
  1277. formContent += '<div class="form-item"><label for="categoryId">分类:</label><select id="apis-quiet-div-uploadMusics-categoryField" name="categoryId" multiple><option value="">--</option></select></div>';
  1278. formContent += '<div class="form-item"><label for="singer">歌手:</label><input type="text" name="singer" placeholder="可为空"></div>';
  1279. formContent += '<div class="form-item"><label for="issuingDate">发行时间:</label><input type="text" name="issuingDate" placeholder="可为空"></div>';
  1280. formContent += '<div class="form-item"><label for="collectionDate">收藏日期:</label><input type="text" name="collectionDate" placeholder="可为空"></div>';
  1281. formContent += '<div class="form-item"><label for="remark">备注:</label><input type="text" name="remark" placeholder="可为空"></div>';
  1282. formContent += '<div class="form-item"><label for="qualityType">qualityType:</label><select id="apis-quiet-div-uploadMusics-qualityType" name="qualityType"><option value="low">低品质</option><option value="high">高品质</option><option value="lyric">歌词</option></select></div>';
  1283. formContent += '<div class="form-item"><label for="file">文件:</label><input type="file" name="file" multiple/></div>';
  1284. $("#form-container-2").html(formContent);
  1285. var uploadMusicCategoryStr = '';
  1286. $.each(uploadMusicsCategoryField, function (index2, obj2) {
  1287. uploadMusicCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  1288. });
  1289. $("#apis-quiet-div-uploadMusics-categoryField").append(uploadMusicCategoryStr);
  1290. // 初始化Select2并设置宽度
  1291. setTimeout(function () {
  1292. $('#apis-quiet-div-uploadMusics-categoryField').select2({
  1293. placeholder: "请选择分类", // 占位符
  1294. allowClear: false, // 添加清空选择的按钮
  1295. width: "100%" // 下拉框宽度
  1296. });
  1297. }, 100); // 延迟100毫秒初始化
  1298. $("#popup-form-hidden-nameEn").val(nameEn);
  1299. $("#draggable-popup > h2").text("InsertOrUpdateMusic");
  1300. } else if (nameEn === 'currentHolding') {
  1301. let formContent = "";
  1302. formContent += '<div class="form-item"><label for="operationType">操作类型:</label><select name="operationType"><option value="">--</option><option value="buy">买入</option><option value="sell">卖出</option><option value="transfer">转账</option><option value="modifyCurrentAmount">调整当前总额</option></select></div>';
  1303. formContent += '<hr/>';
  1304. $("#form-container-1").html(formContent);
  1305. $("#form-container-2").html("");
  1306. // 操作类型添加事件
  1307. $("#popup-form").find("select[name='operationType']").change(function (e) {
  1308. let operationType = $(this).val();
  1309. let formContent2 = "";
  1310. if (operationType === 'buy') {
  1311. formContent2 += '<div class="form-item"><label for="symbol">名称:</label><input type="text" name="symbol" placeholder="不可为空"></div>';
  1312. formContent2 += '<div class="form-item"><label for="buyPrice">入场价格:</label><input type="text" name="buyPrice" placeholder="不可为空"></div>';
  1313. formContent2 += '<div class="form-item"><label for="buyQuantity">入场数量:</label><input type="text" name="buyQuantity" placeholder="不可为空"></div>';
  1314. formContent2 += '<div class="form-item"><label for="currentQuantity">当前数量:</label><input type="text" name="currentQuantity" placeholder="不可为空"></div>';
  1315. formContent2 += '<div class="form-item"><label for="exchangeCategory">交易平台:</label><select name="exchangeCategory" id="apis-quiet-div-CurrentHolding-exchangeCategoryField"><option value="">--</option></select></div>';
  1316. formContent2 += '<div class="form-item"><label for="coingeckoId">coingeckoId:</label><input type="text" name="coingeckoId" placeholder="可为空"></div>';
  1317. formContent2 += '<div class="form-item"><label for="buyTime">买入时间:</label><input type="text" name="buyTime" placeholder="可为空"></div>';
  1318. formContent2 += '<div class="form-item"><label for="remark">备注:</label><input type="text" name="remark" placeholder="可为空"></div>';
  1319. $("#form-container-2").html(formContent2);
  1320. var exchangeCategoryStr = '';
  1321. $.each(uploadExchangeCategoryField, function (index2, obj2) {
  1322. exchangeCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  1323. });
  1324. $("#apis-quiet-div-CurrentHolding-exchangeCategoryField").append(exchangeCategoryStr);
  1325. } else if (operationType === 'sell') {
  1326. formContent2 += '<div class="form-item"><label for="id">ID:</label><input type="text" name="id" placeholder="不可为空"></div>';
  1327. formContent2 += '<div class="form-item"><label for="sellPrice">卖出价格:</label><input type="text" name="sellPrice" placeholder="不可为空"></div>';
  1328. formContent2 += '<div class="form-item"><label for="sellTime">卖出时间:</label><input type="text" name="sellTime" placeholder="可为空"></div>';
  1329. formContent2 += '<div class="form-item"><label for="sellAmount">卖出金额:</label><input type="text" name="sellAmount" placeholder="可为空"></div>';
  1330. formContent2 += '<div class="form-item"><label for="remark">备注:</label><input type="text" name="remark" placeholder="可为空"></div>';
  1331. $("#form-container-2").html(formContent2);
  1332. } else if (operationType === 'transfer') {
  1333. formContent2 += '<div class="form-item"><label for="remitter">汇款人:</label><select name="remitter" id="apis-quiet-div-CurrentHolding-remitterField"><option value="">--</option></select></div>';
  1334. formContent2 += '<div class="form-item"><label for="payee">收款人:</label><select name="payee" id="apis-quiet-div-CurrentHolding-payeeField"><option value="">--</option></select></div>';
  1335. formContent2 += '<div class="form-item"><label for="amount">金额:</label><input type="text" name="amount" placeholder="不可为空"></div>';
  1336. $("#form-container-2").html(formContent2);
  1337. var exchangeCategoryStr = '';
  1338. $.each(uploadExchangeCategoryField, function (index2, obj2) {
  1339. exchangeCategoryStr += '<option value="' + obj2.id + '">' + obj2.categoryName + '</option>';
  1340. });
  1341. $("#apis-quiet-div-CurrentHolding-remitterField,#apis-quiet-div-CurrentHolding-payeeField").append(exchangeCategoryStr);
  1342. } else if (operationType === 'modifyCurrentAmount') {
  1343. formContent2 += '<div class="form-item"><label for="id">ID:</label><input type="text" name="id" placeholder="不可为空"></div>';
  1344. formContent2 += '<div class="form-item"><label for="currentAmount">当前总额:</label><input type="text" name="currentAmount" placeholder="不可为空"></div>';
  1345. $("#form-container-2").html(formContent2);
  1346. } else {
  1347. $("#form-container-2").html("");
  1348. }
  1349. });
  1350. $("#popup-form-hidden-nameEn").val(nameEn);
  1351. $("#draggable-popup > h2").text("InsertOrUpdateCurrentHolding");
  1352. } else if (nameEn === 'bookmark') {
  1353. }
  1354. }