Jagile - jd.com

12/9/2020, 6:05:45 PM

当前为 2020-12-09 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Jagile - jd.com
  3. // @namespace Violentmonkey Scripts
  4. // @match http://jagile.jd.com/myzone
  5. // @grant none
  6. // @version 1.0
  7. // @author -
  8. // @description 12/9/2020, 6:05:45 PM
  9. // ==/UserScript==
  10.  
  11. window.addEventListener('load', () => {
  12. setTimeout(() => {
  13. const saveEl = document.createElement('DIV');
  14. saveEl.className = 'el-form-item el-form-item--small';
  15. saveEl.innerHTML = '<div class="el-form-item__content"><button type="button" class="el-button el-button--primary el-button--mini"><span>保存</span></button></div>';
  16. saveEl.firstChild.firstChild.addEventListener('click', () => {
  17. const calendars = Array.from(document.getElementsByClassName('calendar-body__name__info'))
  18. .filter(el => (window.getComputedStyle(el.parentNode.parentNode).display !== "none"))
  19. .map(el => el.firstChild.innerText.match(/^([^ ]+) \( (.+?) \)$/))
  20. .map(a => ({ name: a[1], erp: a[2] }));
  21. window.localStorage['com.derzh.jd.jagile.calendar'] = JSON.stringify(calendars);
  22. });
  23. document.getElementsByClassName('teamspace-calendar__condition')[0].appendChild(saveEl);
  24.  
  25. const loadEl = document.createElement('DIV');
  26. loadEl.className = 'el-form-item el-form-item--small';
  27. loadEl.innerHTML = '<div class="el-form-item__content"><button type="button" class="el-button el-button--primary el-button--mini"><span>恢复</span></button></div>';
  28. loadEl.firstChild.firstChild.addEventListener('click', () => {
  29. const calendars = JSON.parse(window.localStorage['com.derzh.jd.jagile.calendar']);
  30. const erps = calendars.map(c => `${c.name}(${c.erp})`);
  31. const els = [...document.getElementsByClassName('el-select-dropdown__item')]
  32. .filter(el => !el.classList.contains('selected') && erps.includes(el.innerText));
  33. const timer = setInterval(() => {
  34. const el = els.pop();
  35. if (el) {
  36. el.click();
  37. } else {
  38. clearInterval(timer);
  39. }
  40. })
  41. });
  42. document.getElementsByClassName('teamspace-calendar__condition')[0].appendChild(loadEl);
  43. }, 1000);
  44. });