@easyv/charts 1.5.28 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/components/Chart.js
CHANGED
|
@@ -78,6 +78,7 @@ var Chart = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
|
|
|
78
78
|
active = _useState2[0],
|
|
79
79
|
setActive = _useState2[1];
|
|
80
80
|
|
|
81
|
+
var scaleRef = (0, _react.useRef)([1, 1]);
|
|
81
82
|
var triggerOnRelative = (0, _react.useCallback)(function (action, data) {
|
|
82
83
|
if (!interaction) return;
|
|
83
84
|
var callbacks = interaction.callbacks,
|
|
@@ -108,6 +109,9 @@ var Chart = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
|
|
|
108
109
|
return {
|
|
109
110
|
id: id,
|
|
110
111
|
isIOS: isIOS.current,
|
|
112
|
+
//是否为IOS设备
|
|
113
|
+
scale: scaleRef,
|
|
114
|
+
//大屏的缩放比
|
|
111
115
|
width: chartWidth,
|
|
112
116
|
height: chartHeight,
|
|
113
117
|
triggerOnRelative: triggerOnRelative,
|
|
@@ -127,9 +131,12 @@ var Chart = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
|
|
|
127
131
|
isAnimation && setActive(dynamicData);
|
|
128
132
|
};
|
|
129
133
|
|
|
134
|
+
getScreenScale();
|
|
130
135
|
document.addEventListener("switchActive_".concat(id), activeHandler);
|
|
136
|
+
document.addEventListener("resize", getScreenScale);
|
|
131
137
|
return function () {
|
|
132
138
|
document.removeEventListener("switchActive_".concat(id), activeHandler);
|
|
139
|
+
document.removeEventListener("resize", getScreenScale);
|
|
133
140
|
};
|
|
134
141
|
}, []);
|
|
135
142
|
var data = originData; //对轴类图表进行自动排序
|
|
@@ -146,7 +153,13 @@ var Chart = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
|
|
|
146
153
|
// }
|
|
147
154
|
// }
|
|
148
155
|
|
|
149
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
156
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
157
|
+
id: "bigscreen-container",
|
|
158
|
+
style: {
|
|
159
|
+
transform: "scale(1.3)",
|
|
160
|
+
transformOrigin: "left top"
|
|
161
|
+
}
|
|
162
|
+
}, /*#__PURE__*/_react["default"].createElement(_context.chartContext.Provider, {
|
|
150
163
|
value: context
|
|
151
164
|
}, type == 'pie' ? /*#__PURE__*/_react["default"].createElement(_.PieChart, (0, _extends2["default"])({
|
|
152
165
|
id: id,
|
|
@@ -158,7 +171,21 @@ var Chart = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
|
|
|
158
171
|
config: config,
|
|
159
172
|
data: data,
|
|
160
173
|
active: active
|
|
161
|
-
}, props)));
|
|
174
|
+
}, props)))); //获取大屏缩放系数
|
|
175
|
+
|
|
176
|
+
function getScreenScale() {
|
|
177
|
+
setTimeout(function () {
|
|
178
|
+
//获取大屏缩放系数
|
|
179
|
+
var dom = document.getElementById("bigscreen-container") || document.getElementById("m-simulator");
|
|
180
|
+
|
|
181
|
+
if (dom) {
|
|
182
|
+
var transform = dom.style.transform;
|
|
183
|
+
var scale = transform ? transform.match(/^scale\((.+)\)$/)[1] : "1,1";
|
|
184
|
+
var arr = scale.split(",");
|
|
185
|
+
scaleRef.current = [1 / arr[0], 1 / (arr.length === 1 ? arr[0] : arr[1])]; //这里做一次除法,后面就可以用乘法计算值了
|
|
186
|
+
}
|
|
187
|
+
}, 50);
|
|
188
|
+
}
|
|
162
189
|
});
|
|
163
190
|
var _default = Chart;
|
|
164
191
|
exports["default"] = _default;
|
|
@@ -17,6 +17,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
17
17
|
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
|
|
20
|
+
var _context = require("../context");
|
|
21
|
+
|
|
20
22
|
var _d3Scale = require("d3-scale");
|
|
21
23
|
|
|
22
24
|
var _utils = require("../utils");
|
|
@@ -50,6 +52,8 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
|
|
|
50
52
|
series = _props$props.series,
|
|
51
53
|
top = _props$props.top,
|
|
52
54
|
bandLength = _props$props.bandLength;
|
|
55
|
+
var context = (0, _react.useContext)(_context.chartContext);
|
|
56
|
+
var scale = context.scale;
|
|
53
57
|
var xAxis = axes.get("x");
|
|
54
58
|
var barRef = (0, _react.useRef)();
|
|
55
59
|
var barStyle = {
|
|
@@ -82,7 +86,8 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
|
|
|
82
86
|
var rightX = rawTranslateX + cBarWidth;
|
|
83
87
|
|
|
84
88
|
var move = function move(e) {
|
|
85
|
-
var
|
|
89
|
+
var ex = e.movementX;
|
|
90
|
+
var movementX = ex * scale.current[0];
|
|
86
91
|
initX = (0, _utils.mathR)(initX + movementX, [-rawTranslateX, rightX - rawTranslateX]);
|
|
87
92
|
setControlWidth(function (pre) {
|
|
88
93
|
var cWidth = pre.cWidth,
|
|
@@ -152,7 +157,7 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
|
|
|
152
157
|
|
|
153
158
|
var mouseMoveHandle = function mouseMoveHandle(e) {
|
|
154
159
|
//当前位移的距离
|
|
155
|
-
movementX += e.movementX;
|
|
160
|
+
movementX += e.movementX * scale.current[0];
|
|
156
161
|
setX(movementX + rawTranslateX, true);
|
|
157
162
|
};
|
|
158
163
|
|
|
@@ -202,7 +207,8 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
|
|
|
202
207
|
var rawTranslateX = parseFloat(transform ? transform.match(/\d+\.*\d*/)[0] : 0);
|
|
203
208
|
|
|
204
209
|
var move = function move(e) {
|
|
205
|
-
var
|
|
210
|
+
var ex = e.movementX;
|
|
211
|
+
var movementX = ex * scale.current[0];
|
|
206
212
|
setControlWidth(function (pre) {
|
|
207
213
|
var cWidth = pre.cWidth,
|
|
208
214
|
cBarWidth = pre.cBarWidth;
|
|
@@ -286,8 +286,9 @@ var Component = /*#__PURE__*/(0, _react.memo)(function (_ref5) {
|
|
|
286
286
|
_ref5$config$chart$le2 = _ref5$config$chart$le.formatter,
|
|
287
287
|
formatter = _ref5$config$chart$le2 === void 0 ? _formatter.pieLegendFormatter : _ref5$config$chart$le2,
|
|
288
288
|
legend = (0, _objectWithoutProperties2["default"])(_ref5$config$chart$le, _excluded3),
|
|
289
|
-
_ref5$config$chart$an = _ref5$config$chart.animation
|
|
290
|
-
|
|
289
|
+
_ref5$config$chart$an = _ref5$config$chart.animation;
|
|
290
|
+
_ref5$config$chart$an = _ref5$config$chart$an === void 0 ? {} : _ref5$config$chart$an;
|
|
291
|
+
var ringDuration = _ref5$config$chart$an.ringDuration,
|
|
291
292
|
labelDuration = _ref5$config$chart$an.labelDuration,
|
|
292
293
|
_ref5$config$chart$ma = _ref5$config$chart.margin,
|
|
293
294
|
marginLeft = _ref5$config$chart$ma.marginLeft,
|
package/package.json
CHANGED
package/src/components/Chart.js
CHANGED
|
@@ -44,6 +44,7 @@ const Chart = memo(
|
|
|
44
44
|
const chartWidth = width - marginLeft - marginRight;
|
|
45
45
|
const chartHeight = height - marginTop - marginBottom;
|
|
46
46
|
const [active, setActive] = useState(true);
|
|
47
|
+
const scaleRef = useRef([1,1]);
|
|
47
48
|
|
|
48
49
|
const triggerOnRelative = useCallback(
|
|
49
50
|
(action,data) => {
|
|
@@ -81,7 +82,8 @@ const Chart = memo(
|
|
|
81
82
|
const context = useMemo(
|
|
82
83
|
() => ({
|
|
83
84
|
id,
|
|
84
|
-
isIOS:isIOS.current,
|
|
85
|
+
isIOS:isIOS.current, //是否为IOS设备
|
|
86
|
+
scale:scaleRef, //大屏的缩放比
|
|
85
87
|
width: chartWidth,
|
|
86
88
|
height: chartHeight,
|
|
87
89
|
triggerOnRelative,
|
|
@@ -99,9 +101,12 @@ const Chart = memo(
|
|
|
99
101
|
// console.log("当前组件(id="+id+")状态:",dynamicData?"唤醒":"休眠");
|
|
100
102
|
isAnimation && setActive(dynamicData);
|
|
101
103
|
}
|
|
104
|
+
getScreenScale();
|
|
102
105
|
document.addEventListener(`switchActive_${id}`,activeHandler);
|
|
106
|
+
document.addEventListener("resize",getScreenScale);
|
|
103
107
|
return ()=>{
|
|
104
108
|
document.removeEventListener(`switchActive_${id}`,activeHandler);
|
|
109
|
+
document.removeEventListener("resize",getScreenScale);
|
|
105
110
|
}
|
|
106
111
|
},[]);
|
|
107
112
|
|
|
@@ -121,14 +126,30 @@ const Chart = memo(
|
|
|
121
126
|
// }
|
|
122
127
|
|
|
123
128
|
return (
|
|
124
|
-
<
|
|
125
|
-
{
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
<div id="bigscreen-container" style={{transform:"scale(1.3)",transformOrigin:"left top"}}>
|
|
130
|
+
<chartContext.Provider value={context}>
|
|
131
|
+
{type == 'pie' ? (
|
|
132
|
+
<PieChart id={id} config={config} data={data} active={active} {...props} />
|
|
133
|
+
) : (
|
|
134
|
+
<CartesianChart id={id} config={config} data={data} active={active} {...props} />
|
|
135
|
+
)}
|
|
136
|
+
</chartContext.Provider>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
131
139
|
);
|
|
140
|
+
//获取大屏缩放系数
|
|
141
|
+
function getScreenScale(){
|
|
142
|
+
setTimeout(()=>{
|
|
143
|
+
//获取大屏缩放系数
|
|
144
|
+
let dom = document.getElementById("bigscreen-container") || document.getElementById("m-simulator");
|
|
145
|
+
if(dom){
|
|
146
|
+
const transform = dom.style.transform;
|
|
147
|
+
const scale = transform?transform.match(/^scale\((.+)\)$/)[1]:"1,1";
|
|
148
|
+
const arr = scale.split(",");
|
|
149
|
+
scaleRef.current = [1/arr[0],1/(arr.length===1?arr[0]:arr[1])]; //这里做一次除法,后面就可以用乘法计算值了
|
|
150
|
+
}
|
|
151
|
+
},50);
|
|
152
|
+
}
|
|
132
153
|
}
|
|
133
154
|
);
|
|
134
155
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React, { forwardRef, memo, useRef } from "react";
|
|
1
|
+
import React, { forwardRef, memo, useRef, useContext } from "react";
|
|
2
|
+
import { chartContext } from "../context";
|
|
2
3
|
import { scaleLinear } from "d3-scale";
|
|
3
4
|
import { mathR } from "../utils";
|
|
4
5
|
|
|
@@ -11,6 +12,8 @@ export default memo(forwardRef((props, ref) => {
|
|
|
11
12
|
axes, series, top, bandLength
|
|
12
13
|
}
|
|
13
14
|
} = props;
|
|
15
|
+
const context = useContext(chartContext);
|
|
16
|
+
const scale = context.scale;
|
|
14
17
|
const xAxis = axes.get("x");
|
|
15
18
|
const barRef = useRef();
|
|
16
19
|
|
|
@@ -44,7 +47,8 @@ export default memo(forwardRef((props, ref) => {
|
|
|
44
47
|
let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
|
|
45
48
|
const rightX = rawTranslateX+cBarWidth;
|
|
46
49
|
const move=(e)=>{
|
|
47
|
-
const { movementX } = e;
|
|
50
|
+
const { movementX:ex } = e;
|
|
51
|
+
const movementX = ex * scale.current[0];
|
|
48
52
|
initX = mathR(initX+movementX,[-rawTranslateX, rightX-rawTranslateX]);
|
|
49
53
|
setControlWidth((pre)=>{
|
|
50
54
|
const { cWidth, cBarWidth } = pre;
|
|
@@ -104,7 +108,7 @@ export default memo(forwardRef((props, ref) => {
|
|
|
104
108
|
let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
|
|
105
109
|
const mouseMoveHandle = (e) => {
|
|
106
110
|
//当前位移的距离
|
|
107
|
-
movementX += e.movementX;
|
|
111
|
+
movementX += e.movementX * scale.current[0];
|
|
108
112
|
setX(movementX + rawTranslateX,true);
|
|
109
113
|
};
|
|
110
114
|
const mouseUpHandle = (e) => {
|
|
@@ -144,7 +148,8 @@ export default memo(forwardRef((props, ref) => {
|
|
|
144
148
|
const transform = ref.current.style.transform;
|
|
145
149
|
let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
|
|
146
150
|
const move=(e)=>{
|
|
147
|
-
const { movementX } = e;
|
|
151
|
+
const { movementX:ex } = e;
|
|
152
|
+
const movementX = ex * scale.current[0];
|
|
148
153
|
setControlWidth((pre)=>{
|
|
149
154
|
const { cWidth, cBarWidth } = pre;
|
|
150
155
|
const maxWidth = cWidth-rawTranslateX;
|
|
@@ -254,7 +254,7 @@ const Component = memo(
|
|
|
254
254
|
},
|
|
255
255
|
label,
|
|
256
256
|
legend: { formatter = legendFormatter, ...legend },
|
|
257
|
-
animation: { ringDuration, labelDuration },
|
|
257
|
+
animation: { ringDuration, labelDuration } = {},
|
|
258
258
|
margin: { marginLeft, marginTop },
|
|
259
259
|
},
|
|
260
260
|
fan: {
|