preLoadFile.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. let owoLoadList = []
  2. function loadCSS (url) {
  3. if (owoLoadList.includes(url)) {
  4. return
  5. }
  6. owoLoadList.push(url)
  7. var link = document.createElement("link");
  8. link.rel = "stylesheet";
  9. link.type = "text/css";
  10. link.href = url;
  11. document.getElementsByTagName("head")[0].appendChild(link);
  12. }
  13. if (document.querySelector('.puge-box')) document.querySelector('.puge-box').outerHTML = ''
  14. // 保存CSV
  15. function fake_click(obj) {
  16. var ev = document.createEvent("MouseEvents");
  17. ev.initMouseEvent(
  18. "click", true, false, window, 0, 0, 0, 0, 0
  19. , false, false, false, false, 0, null
  20. );
  21. obj.dispatchEvent(ev);
  22. }
  23. function download(name, data) {
  24. var urlObject = window.URL || window.webkitURL || window;
  25. var downloadData = new Blob([data]);
  26. var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  27. save_link.href = urlObject.createObjectURL(downloadData);
  28. save_link.download = name;
  29. fake_click(save_link);
  30. }
  31. function blobToString(blob) {
  32. return new Promise((resolve, reject) => {
  33. const reader = new FileReader();
  34. reader.onload = function(event) {
  35. resolve(event.target.result);
  36. };
  37. reader.onerror = function(error) {
  38. reject(error);
  39. };
  40. // 读取Blob内容为文本字符串
  41. reader.readAsText(blob, 'UTF-8');
  42. });
  43. }
  44. function saveCSV (name, data) {
  45. let saveData = ''
  46. data.forEach(element => {
  47. if (element) {
  48. saveData += element.join(',')
  49. saveData += '\r\n'
  50. }
  51. });
  52. var urlObject = window.URL || window.webkitURL || window;
  53. var downloadData = new Blob(['\ufeff' + saveData], { type: 'text/csv,charset=UTF-8'});
  54. // 转换为字符串
  55. blobToString(downloadData)
  56. .then(blobStr => {
  57. console.log('Blob内容:', blobStr);
  58. // 这里可以使用转换后的字符串
  59. const fileData = {
  60. filename: 'data.csv',
  61. content: blobStr
  62. };
  63. // 调用保存方法
  64. window.electronAPI.saveFile(fileData)
  65. .then(result => {
  66. if (result.success) {
  67. console.log('文件保存成功:', result.path);
  68. } else {
  69. console.error('文件保存失败:', result.error);
  70. }
  71. });
  72. })
  73. .catch(error => {
  74. console.error('转换失败:', error);
  75. });
  76. // var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  77. // save_link.href = urlObject.createObjectURL(downloadData);
  78. // save_link.download = name;
  79. // fake_click(save_link);
  80. }
  81. window.nameList = {}
  82. window.onInterceptedData = function (data) {
  83. window.systemInfo = data
  84. console.log(data.url)
  85. if (data.url == 'https://a-dflapi.topxlc.com/dfl/web/get_plate_list') {
  86. const result = JSON.parse(data.responseBody)
  87. result.result.forEach(element => {
  88. window.nameList[element.id] = element.name
  89. });
  90. }
  91. if (data.url== "https://a-dflapi.topxlc.com/dfl/stock/second_line_detail_for_plate") {
  92. const result = JSON.parse(data.responseBody)
  93. let textInfo = ``
  94. let outPutList = [
  95. ["板块代码","股票代码","股票名称"]
  96. ]
  97. for (const key in result.result) {
  98. if (Object.prototype.hasOwnProperty.call(result.result, key)) {
  99. const element = result.result[key];
  100. element.forEach(element2 => {
  101. textInfo += element2.codeName
  102. outPutList.push([window.nameList[key], element2.code.split('.')[0], element2.codeName])
  103. });
  104. }
  105. }
  106. // console.log(outPutList)
  107. saveCSV('data.csv', outPutList)
  108. }
  109. };