my-coin.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. window.cccField = '';
  2. window.apisMoveDivButton2Timer = '';
  3. window.apisMoveDivButton2Timer4Custorm = [];
  4. window.actualFlag = false;
  5. window.stopFlag = false;
  6. $(function () {
  7. initOther();
  8. });
  9. var dragJob=false;
  10. $(document).on("mousedown", '.watchlistpreview-top', function (e) {
  11. dragJob = true;
  12. });
  13. document.onmousemove = function (e) {
  14. if (dragJob) {
  15. var e = e || window.event;
  16. var height = $(document.body).height();
  17. var width = $(window).width();
  18. var widthJob = $("#watchlistpreview").width();
  19. var heightJob = $("#watchlistpreview").height();
  20. var left = e.clientX - widthJob / 2;
  21. var top = e.clientY - 18 + $(document).scrollTop();
  22. if (top >= 0 && top < height - heightJob) {
  23. $("#watchlistpreview").css("top", top);
  24. }
  25. if (left >= 0 && left < width - widthJob) {
  26. $("#watchlistpreview").css("left", left);
  27. }
  28. return false;
  29. }
  30. };
  31. $(document).mouseup(function (e) {
  32. dragJob = false;
  33. });
  34. /**
  35. * 初始化其他操作
  36. */
  37. function initOther() {
  38. initOther4Select();
  39. handleSelectChange($("select#apis-move-select,select#apis-quiet-select"));
  40. $(".apis-move-div-button1,.apis-quiet-div-button1").click(function () {
  41. var aa = $(this).attr("slideDiv");
  42. var display = $('#' + aa);
  43. if (display.css('display') == 'block') {
  44. display.slideUp("slow");
  45. //display.css("display", "none");
  46. $(this).html('展开');
  47. } else {
  48. display.slideDown("slow");
  49. //display.css("display", "block");
  50. $(this).html('收起');
  51. }
  52. });
  53. $(".apis-move-div-button2").click(function () {
  54. var this_ = $(this);
  55. stopFlag = false;
  56. if (!actualFlag) {
  57. var selectedOption = $("select#apis-move-select").find("option:selected");
  58. var nameEn = selectedOption.attr("nameEn");
  59. if (nameEn === 'needCustom') {
  60. $.each($(".needCustomInput"), function (index, obj) {
  61. var url = $(obj).attr("url");
  62. var nameEn2 = $(obj).attr("nameEn");
  63. var slideDiv = $(this_).attr("slideDiv") + '-' + $(obj).attr("id");
  64. apisMoveDivButton2Timer4Custorm[index] = setInterval(mainSearch, 3000, url, nameEn2, slideDiv, "1");
  65. });
  66. actualFlag = true;
  67. } else {
  68. var url = selectedOption.attr("url");
  69. var slideDiv = $(this).attr("slideDiv");
  70. apisMoveDivButton2Timer = setInterval(mainSearch, 3000, url, nameEn, slideDiv, "2");
  71. actualFlag = true;
  72. }
  73. }
  74. });
  75. $(".apis-quiet-div-button2").click(function () {
  76. stopFlag = false;
  77. var selectedOption = $("select#apis-quiet-select").find("option:selected");
  78. var url = selectedOption.attr("url");
  79. var nameEn = selectedOption.attr("nameEn");
  80. var slideDiv = $(this).attr("slideDiv");
  81. mainSearch(url, nameEn, slideDiv, "2");
  82. });
  83. $(".apis-move-div-button3").click(function () {
  84. ownClearInterval();
  85. });
  86. }
  87. function ownClearInterval() {
  88. if (actualFlag) {
  89. if (apisMoveDivButton2Timer != undefined && apisMoveDivButton2Timer != null) {
  90. clearInterval(apisMoveDivButton2Timer);
  91. }
  92. if (apisMoveDivButton2Timer4Custorm != undefined && apisMoveDivButton2Timer != null) {
  93. $.each(apisMoveDivButton2Timer4Custorm, function (index, obj) {
  94. clearInterval(obj);
  95. });
  96. }
  97. //$("#apis-move-content").find("tbody.contentTD").html('');
  98. //$("#apis-move-content").find("span.contentSPAN").html('');
  99. actualFlag = false;
  100. }
  101. }
  102. function initOther4Select() {
  103. $.ajax({
  104. url: "coin/findApiConfig", //请求的url地址
  105. dataType: "json", //返回格式为json
  106. type: "post", //请求方式
  107. contentType: "application/json;charset=utf-8",
  108. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  109. success: function (data) {
  110. //请求成功时处理
  111. if (data != null && $.trim(data) != "" && data.success) {
  112. data = data.data;
  113. var quietStr = '';
  114. var moveStr = '';
  115. var move2Str = '';
  116. $.each(data, function (index, obj) {
  117. if (obj.type2 === 1) {
  118. if (obj.type === 0) {
  119. var nameEn = $('#' + obj.nameEn);
  120. nameEn.attr('nameEn', obj.nameEn);
  121. nameEn.attr('url', obj.url);
  122. nameEn.attr('returnEn', obj.returnEn);
  123. nameEn.attr('returnCn', obj.returnCn);
  124. move2Str += obj.nameCn + '|';
  125. } else {
  126. moveStr += '<option type="9999" nameEn="' + obj.nameEn + '" url="' + obj.url + '" returnEn="' + obj.returnEn + '" returnCn="' + obj.returnCn + '" value="' + obj.nameEn + '-option">' + obj.nameCn + '</option>';
  127. }
  128. } else if (obj.type2 === 2) {
  129. quietStr += '<option nameEn="' + obj.nameEn + '" url="' + obj.url + '" returnEn="' + obj.returnEn + '" returnCn="' + obj.returnCn + '" value="' + obj.nameEn + '-option">' + obj.nameCn + '</option>';
  130. }
  131. // watchlist
  132. if (obj.nameEn === 'watchlist'){
  133. var watchlistTrackCategoryStr = '';
  134. $.each(obj.trackCategoryList, function (index2, obj2) {
  135. watchlistTrackCategoryStr += '<option value="' + obj2 + '">' + obj2 + '</option>';
  136. });
  137. $("#apis-quiet-div-watchlist-trackCategoryField").append(watchlistTrackCategoryStr);
  138. }
  139. });
  140. move2Str = '<option nameEn="needCustom" type="9999">' + move2Str.substring(0, move2Str.length - 1) + '</option>';
  141. $("select#apis-move-select").html(move2Str + moveStr);
  142. $("select#apis-quiet-select").html(quietStr);
  143. $("select#apis-move-select,select#apis-quiet-select").change(function () {
  144. handleSelectChange($(this));
  145. stopFlag = true;
  146. });
  147. } else {
  148. //alert(data.message);
  149. }
  150. },
  151. beforeSend: function () {
  152. },
  153. complete: function () {
  154. },
  155. error: function (data) {
  156. //请求出错处理
  157. //alert('error:' + data);
  158. }
  159. });
  160. }
  161. function handleSelectChange(objj) {
  162. $.each(objj, function (index, obj) {
  163. var selectedOption = $(obj).find("option:selected");
  164. var type = selectedOption.attr("type");
  165. var nameEn = selectedOption.attr("nameEn");
  166. if ($(obj).attr("id") === 'apis-move-select') {
  167. ownClearInterval();
  168. }
  169. if (type === '9999') {
  170. $("#apis-move-content").find("div").slideUp("slow");
  171. if (nameEn === 'needCustom') {
  172. $.each($(".needCustomInput"), function (index, ob) {
  173. var returnEn = $(ob).attr("returnen").split(",");
  174. var returnCn = $(ob).attr("returncn").split(",");
  175. var theadStr = '';
  176. $.each(returnEn, function (index, o) {
  177. theadStr += '<th returnEn="' + o + '">' + returnCn[index] + '</th>';
  178. });
  179. $("#apis-move-content-" + $(ob).attr("id")).find("span.contentSPAN").html('0');
  180. $("#apis-move-content-" + $(ob).attr("id")).find("tr.contentTH").html(theadStr);
  181. $("#apis-move-content-" + $(ob).attr("id")).find("tbody.contentTD").html('');
  182. $("#apis-move-content-" + $(ob).attr("id")).slideDown("slow");
  183. });
  184. } else {
  185. var returnEn = selectedOption.attr("returnen").split(",");
  186. var returnCn = selectedOption.attr("returncn").split(",");
  187. var theadStr = '';
  188. $.each(returnEn, function (index, ob) {
  189. theadStr += '<th returnEn="' + obj + '">' + returnCn[index] + '</th>';
  190. });
  191. $("#apis-move-content-other").find("span.contentSPAN").html('0');
  192. $("#apis-move-content-other").find("tr.contentTH").html(theadStr);
  193. $("#apis-move-content-other").find("tbody.contentTD").html('');
  194. $("#apis-move-content-other").slideDown("slow");
  195. }
  196. } else {
  197. var returnEn = selectedOption.attr("returnen").split(",");
  198. var returnCn = selectedOption.attr("returncn").split(",");
  199. var theadStr = '';
  200. $.each(returnEn, function (index, obj) {
  201. theadStr += '<th returnEn="' + obj + '">' + returnCn[index] + '</th>';
  202. });
  203. if (nameEn === 'watchlist') {
  204. theadStr += '<th>操作</th>';
  205. }
  206. $(obj).parent("div").next("div").find("span.contentSPAN").html('0');
  207. $(obj).parent("div").next("div").find("tr.contentTH").html(theadStr);
  208. $(obj).parent("div").next("div").find("tbody.contentTD").html('');
  209. $("div[id^=apis-quiet-div-]").css("display", "none");
  210. $("#apis-quiet-div-" + nameEn).css("display", "block");
  211. $("#apis-quiet-div-" + nameEn).find("input[id$=pageNo]").val(1);
  212. $("div[id^=apis-quiet-div-]").find($("button.apis-quiet-div-button3")).unbind("click");
  213. $("div[id^=apis-quiet-div-]").find($("button.apis-quiet-div-button3")).click(function () {
  214. stopFlag = false;
  215. var url = selectedOption.attr("url");
  216. var slideDiv = $(this).attr("slideDiv");
  217. var pageNoVar = $("#" + $(this).parent().attr("id") + "-pageNo");
  218. var pageO = $(this).attr("pageO");
  219. var beforePageNo = $(pageNoVar).val();
  220. if (pageO === 'prev') {
  221. if (beforePageNo > 1) {
  222. $(pageNoVar).val(Number(beforePageNo) - 1);
  223. }
  224. } else if (pageO === 'next') {
  225. if (beforePageNo < Number($("#apis-quiet-div-" + nameEn).find("input[id$=pages]").val())) {
  226. $(pageNoVar).val(Number(beforePageNo) + 1);
  227. }
  228. }
  229. mainSearch(url, nameEn, slideDiv, "2");
  230. });
  231. }
  232. });
  233. $(objj).parent("div").next("div").find(".contentTH").find("th").dblclick(function () {
  234. cccField = $(this).attr("returnEn");
  235. });
  236. }
  237. /**
  238. * 多条件搜索
  239. * @param pageNo
  240. */
  241. function mainSearch(url, nameEn, slideDiv, needCustomFlag) {
  242. var jsonData = {};
  243. jsonData.url = url;
  244. jsonData.nameEn = nameEn;
  245. if (nameEn === 'currentPlan' || nameEn === 'orderMarginCoinCurrent') {
  246. jsonData.chaRateSort = $("#chaRateSort").val();
  247. } else if (nameEn === 'monitorCurrency') {
  248. jsonData.changeUtcSort = $("#changeUtcSort").val();
  249. } else if (nameEn === 'allPositionv2') {
  250. jsonData.unrealizedPLSort = $("#unrealizedPLSort").val();
  251. } else if (nameEn === 'orderHistoryProductType') {
  252. jsonData.pageNo = $("#apis-quiet-div-orderHistoryProductType-pageNo").val();
  253. jsonData.pageSize = $("#apis-quiet-div-orderHistoryProductType-pageSize").val();
  254. jsonData.keyword = $("#apis-quiet-div-orderHistoryProductType-keyword").val();
  255. jsonData.sortField = $("#apis-quiet-div-orderHistoryProductType-sortField").val();
  256. jsonData.sort = $("#apis-quiet-div-orderHistoryProductType-sort").val();
  257. jsonData.side = $("#apis-quiet-div-orderHistoryProductType-side").val();
  258. } else if (nameEn === 'traderList') {
  259. jsonData.pageNo = $("#apis-quiet-div-traderList-pageNo").val();
  260. jsonData.pageSize = $("#apis-quiet-div-traderList-pageSize").val();
  261. jsonData.keyword = $("#apis-quiet-div-traderList-keyword").val();
  262. jsonData.sortField = $("#apis-quiet-div-traderList-sortField").val();
  263. jsonData.sort = $("#apis-quiet-div-traderList-sort").val();
  264. jsonData.canTrace = $("#apis-quiet-div-traderList-canTrace").val();
  265. } else if (nameEn === 'watchlist') {
  266. jsonData.pageNo = $("#apis-quiet-div-watchlist-pageNo").val();
  267. jsonData.pageSize = $("#apis-quiet-div-watchlist-pageSize").val();
  268. jsonData.keyword = $("#apis-quiet-div-watchlist-keyword").val();
  269. jsonData.sortField = $("#apis-quiet-div-watchlist-sortField").val();
  270. jsonData.sort = $("#apis-quiet-div-watchlist-sort").val();
  271. jsonData.filterField = $("#apis-quiet-div-watchlist-filterField").val();
  272. jsonData.trackCategoryField = $("#apis-quiet-div-watchlist-trackCategoryField").val();
  273. } else if (nameEn === 'image') {
  274. jsonData.pageNo = $("#apis-quiet-div-image-pageNo").val();
  275. jsonData.pageSize = $("#apis-quiet-div-image-pageSize").val();
  276. jsonData.keyword = $("#apis-quiet-div-image-keyword").val();
  277. jsonData.sortField = $("#apis-quiet-div-image-sortField").val();
  278. jsonData.sort = $("#apis-quiet-div-image-sort").val();
  279. }
  280. $.ajax({
  281. url: "coin/mainSearch", //请求的url地址
  282. dataType: "json", //返回格式为json
  283. data: JSON.stringify(jsonData), //参数值
  284. type: "post", //请求方式
  285. contentType: "application/json;charset=utf-8",
  286. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  287. success: function (data) {
  288. //请求成功时处理
  289. if (data != null && $.trim(data) != "" && data.success) {
  290. if (stopFlag) {
  291. return;
  292. }
  293. if (nameEn === 'orderHistoryProductType' || nameEn === 'traderList' || nameEn === 'watchlist' || nameEn === 'image') {
  294. $("#apis-quiet-div-" + nameEn).find("input[id$=pages]").val(data.data.pages);
  295. $('#' + slideDiv).find("span.contentSPAN").html(data.data.total);
  296. data = data.data.list;
  297. } else {
  298. data = data.data;
  299. $('#' + slideDiv).find("span.contentSPAN").html(data.length);
  300. }
  301. var returnEn = '';
  302. if (needCustomFlag === '1') {
  303. returnEn = $("#" + nameEn).attr("returnen").split(",");
  304. } else {
  305. var selectedOption = $('option[nameen="' + nameEn + '"]');
  306. returnEn = selectedOption.attr("returnen").split(",");
  307. }
  308. var str = '';
  309. var title = 'Coin主页|';
  310. for (var i = 0; i < data.length; i++) {
  311. var dataDetail = data[i];
  312. if (nameEn === 'allPositionv2') {
  313. var bbbField = $(".apis-move-div-input1").val();
  314. var symbol = dataDetail.symbol;
  315. if (cccField.length > 0 && bbbField.length > 0 && symbol.indexOf(bbbField) != -1) {
  316. title += bbbField + '|' + dataDetail[cccField];
  317. $("title").html(title);
  318. }
  319. }
  320. str += '<tr>';
  321. $.each(returnEn, function (index, obj) {
  322. var objStyle = dataDetail.hasOwnProperty(obj + 'Style') ? dataDetail[obj + 'Style'] : '';
  323. var objContent = dataDetail.hasOwnProperty(obj) ? dataDetail[obj] : '--';
  324. str += '<td' + objStyle + '>' + objContent + '</td>';
  325. });
  326. if (nameEn === 'watchlist') {
  327. str += '<td style="padding: 0px 10px 0px 10px;">';
  328. str += '<button class="apis-quiet-div-watchlist-detail" operationType="detail" symbolName="' + dataDetail.symbol + '">详情</button>';
  329. str += '<button class="apis-quiet-div-watchlist-update" operationType="update" symbolName="' + dataDetail.symbol + '">编辑</button>';
  330. str += '</td>';
  331. }
  332. str += '</tr>';
  333. }
  334. if (nameEn === 'watchlist') {
  335. $(".apis-quiet-div-watchlist-detail").unbind("click");
  336. $(".apis-quiet-div-watchlist-update").unbind("click");
  337. $(".watchlistpreview-top-close").unbind("click");
  338. }
  339. $('#' + slideDiv).find(".contentTD").html(str);
  340. initContentEvent(nameEn);
  341. } else {
  342. //alert(data.message);
  343. }
  344. },
  345. beforeSend: function () {
  346. },
  347. complete: function () {
  348. },
  349. error: function (data) {
  350. //请求出错处理
  351. //alert('error:' + data);
  352. }
  353. });
  354. }
  355. /**
  356. * 初始化主内容事件
  357. */
  358. function initContentEvent(nameEn) {
  359. if ($(".apis-move-div-input1").val().length === 0) {
  360. $("title").html('Coin主页');
  361. }
  362. if (nameEn === 'watchlist') {
  363. $(".apis-quiet-div-watchlist-detail,.apis-quiet-div-watchlist-update").click(function () {
  364. if ($("#watchlistpreview").css("display") === 'none') {
  365. $("#watchlistpreview").css("display", "block");
  366. } else if ($("#watchlistpreview").css("display") === 'block') {
  367. $("#watchlistpreview").css("display", "none");
  368. }
  369. $(".watchlistpreview-top-close").click(function () {
  370. if ($("#watchlistpreview").css("display") === 'none') {
  371. $("#watchlistpreview").css("display", "block");
  372. } else if ($("#watchlistpreview").css("display") === 'block') {
  373. $("#watchlistpreview").css("display", "none");
  374. }
  375. $(this).unbind("click");
  376. $(".watchlistpreview-top-submit").unbind("click");
  377. });
  378. $(".watchlistpreview-top-submit").click(function () {
  379. $.ajax({
  380. url: "coin/watchlistUpdate", //请求的url地址
  381. dataType: "json", //返回格式为json
  382. data: {"symbol": $(".watchlistpreview-content").find(".watchlistpreview-symbol").val(), "remark": $(".watchlistpreview-content").find("textarea").val()}, //参数值
  383. type: "post", //请求方式
  384. async: false, //请求是否异步,默认为异步,这也是ajax重要特性
  385. success: function (data) {
  386. //请求成功时处理
  387. if (data != null && $.trim(data) != "" && data.success) {
  388. $(".watchlistpreview-top-close").click();
  389. } else {
  390. console.log("watchlistpreview-top-submit success error," + data);
  391. }
  392. },
  393. beforeSend: function () {
  394. },
  395. complete: function () {
  396. },
  397. error: function (data) {
  398. //请求出错处理
  399. console.log("watchlistpreview-top-submit error," + data);
  400. }
  401. });
  402. });
  403. var operationType = $(this).attr("operationType");
  404. if (operationType === 'detail') {
  405. $(".watchlistpreview-top-submit").css("display", "none");
  406. } else if (operationType === 'update') {
  407. $(".watchlistpreview-top-submit").css("display", "block");
  408. }
  409. var symbol = $(this).attr("symbolName");
  410. $.ajax({
  411. url: "coin/watchlistDetail/" + symbol + "/" + operationType, //请求的url地址
  412. type: "get", //请求方式
  413. async: true, //请求是否异步,默认为异步,这也是ajax重要特性
  414. success: function (data) {
  415. //请求成功时处理
  416. if (data != null && $.trim(data) != "" && data.success) {
  417. data = data.data;
  418. if (operationType === 'detail') {
  419. $(".watchlistpreview-content").html(data);
  420. } else if (operationType === 'update') {
  421. var update4Text = '<textarea rows="4" cols="50" style="background: antiquewhite;width: 100%;height: 100%;">' + data + '</textarea>';
  422. update4Text += '<input type="hidden" class="watchlistpreview-symbol" value="' + symbol + '"/>';
  423. $(".watchlistpreview-content").html(update4Text);
  424. }
  425. } else {
  426. //alert(data.message);
  427. }
  428. },
  429. beforeSend: function () {
  430. $(".watchlistpreview-content").html("");
  431. $(".watchlistpreview-loading").css("display", "block");
  432. },
  433. complete: function () {
  434. $(".watchlistpreview-loading").css("display", "none");
  435. },
  436. error: function (data) {
  437. //请求出错处理
  438. alert('error:' + data);
  439. }
  440. });
  441. });
  442. }
  443. }