echarts.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /**
  2. * 显示alert弹出层
  3. * @param _this
  4. * @param title
  5. * @param e
  6. * @param callback
  7. */
  8. function showAlertWin(_this, title, e, callback) {
  9. if (e && e.name == 'TypeError') {
  10. console.error(e)
  11. return
  12. }
  13. _this.$alert(e, title ? title : cqcyCode[100], {
  14. confirmButtonText: '确定',
  15. showClose: false,
  16. callback: action => {
  17. resetConfirmWinPosition()
  18. if (callback) callback(action)
  19. }
  20. })
  21. }
  22. function insertLuckysheetEChart({
  23. selector: l,
  24. info: e,
  25. sheet: t,
  26. optionData: o,
  27. echarts: r,
  28. luckysheet: c,
  29. $: n,
  30. _self: _self,
  31. flag: flag
  32. }) {
  33. if (!e.option || !t) return;
  34. const [s, i] = e.pos, u = e.className, f = e.option, {
  35. data: _,
  36. visibledatacolumn: d,
  37. visibledatarow: m
  38. } = t, a = _[s][i];
  39. let b = 0,
  40. y = 0,
  41. g = [],
  42. h = [];
  43. if (a.mc) {
  44. if (!String(a.mc.cs) || !String(a.mc.rs)) {
  45. if (_self) {
  46. _self.$message({
  47. message: '无效单元!',
  48. type: 'error'
  49. })
  50. }
  51. return void console.error("无效单元");
  52. }
  53. for (; b < a.mc.rs;) g.push(s + b++);
  54. for (; y < a.mc.cs;) h.push(i + y++)
  55. } else g.push(s), h.push(i);
  56. const p = 0 == i ? 0 : d[i - 1],
  57. v = 0 == s ? 0 : m[s - 1],
  58. j = Object.values(c.getColumnWidth(h))
  59. .reduce((l, e) => l + e, 0),
  60. w = Object.values(c.getRowHeight(g))
  61. .reduce((l, e) => l + e, 0);
  62. if (j < 80 || w < 80) {
  63. if (_self) {
  64. luckysheet.cancelRangeMerge()
  65. showAlertWin(_self, null, '所选单元格不满足宽度大于80(默认情况下至少3格)或者高度大于80(默认情况下至少5格),请调整大小后重试!')
  66. }
  67. return void console.error(`单元[${s},${i}]不满足: width >= 80 && height >= 80,调整大小后重试!`);
  68. }
  69. let x =
  70. `<div class="${u} luckysheet-modal-dialog luckysheet-modal-dialog-chart luckysheet-data-visualization-chart" style="width: ${j}px;height: ${w}px;position: absolute;z-index: 1000;left: ${p}px;top: ${v}px;"></div>`;
  71. n(l + " #luckysheet-cell-main").append(x);
  72. let S = r.init(document.getElementsByClassName(u)[0]);
  73. S.setOption(f);
  74. console.log(S, f);
  75. let k = S.getConnectedDataURL({
  76. type: "png",
  77. pixelRatio: 1,
  78. backgroundColor: "#ffffff"
  79. });
  80. console.log(k);
  81. if (flag) {
  82. n('.' + u).css('display', 'none')
  83. c.insertImage(k, {
  84. rowIndex: s,
  85. colIndex: i,
  86. cellSize: setCellSize(o, s, i, c),
  87. success: function() {
  88. console.log("插入成功")
  89. }
  90. })
  91. }
  92. return {
  93. src: k,
  94. default: {
  95. left: p,
  96. top: v,
  97. width: j,
  98. height: w
  99. }
  100. }
  101. }