|
@@ -8,29 +8,58 @@ let JpcAreaHelper = {
|
|
|
let areaWidth = 1.0 * (band[JV.PROP_RIGHT] - band[JV.PROP_LEFT]) / multipleDispCol;
|
|
|
areaWidth = areaWidth / colAmount;
|
|
|
let innerLeft = 0.0, innerRight = areaWidth;
|
|
|
- switch (areaNode[JV.PROP_H_CALCULATION]) {
|
|
|
- case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE] :
|
|
|
+ //
|
|
|
+ if (typeof areaNode[JV.PROP_H_CALCULATION] === "string") {
|
|
|
+ switch (areaNode[JV.PROP_H_CALCULATION]) {
|
|
|
+ case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE] :
|
|
|
+ innerLeft = (1.0 * areaNode[JV.PROP_LEFT] * areaWidth / JV.HUNDRED_PERCENT);
|
|
|
+ innerRight = (1.0 * areaNode[JV.PROP_RIGHT] * areaWidth / JV.HUNDRED_PERCENT);
|
|
|
+ break;
|
|
|
+ case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT] :
|
|
|
+ innerLeft = 1.0 * areaNode[JV.PROP_LEFT] * unitFactor;
|
|
|
+ innerRight = 1.0 * areaNode[JV.PROP_RIGHT] * unitFactor;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //颗粒度更加细化的控制,可能左右两边的计算坐标方式都不同
|
|
|
+ if (areaNode[JV.PROP_H_CALCULATION][JV.PROP_LEFT] === JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE]) {
|
|
|
innerLeft = (1.0 * areaNode[JV.PROP_LEFT] * areaWidth / JV.HUNDRED_PERCENT);
|
|
|
- innerRight = (1.0 * areaNode[JV.PROP_RIGHT] * areaWidth / JV.HUNDRED_PERCENT) ;
|
|
|
- break;
|
|
|
- case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT] :
|
|
|
+ } else {
|
|
|
innerLeft = 1.0 * areaNode[JV.PROP_LEFT] * unitFactor;
|
|
|
- innerRight = 1.0 * areaNode[JV.PROP_RIGHT] * unitFactor ;
|
|
|
- break;
|
|
|
+ }
|
|
|
+ if (areaNode[JV.PROP_H_CALCULATION][JV.PROP_RIGHT] === JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE]) {
|
|
|
+ innerRight = (1.0 * areaNode[JV.PROP_RIGHT] * areaWidth / JV.HUNDRED_PERCENT);
|
|
|
+ } else {
|
|
|
+ innerRight = 1.0 * areaNode[JV.PROP_RIGHT] * unitFactor;
|
|
|
+ }
|
|
|
}
|
|
|
//2. calculate top/bottom
|
|
|
let areaHeight = 1.0 * (band[JV.PROP_BOTTOM] - band[JV.PROP_TOP]);
|
|
|
areaHeight = areaHeight / rowAmount;
|
|
|
let innerTop = 0.0, innerBottom = areaHeight;
|
|
|
- switch (areaNode[JV.PROP_V_CALCULATION]) {
|
|
|
- case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE] :
|
|
|
+ if (typeof areaNode[JV.PROP_V_CALCULATION] === "string") {
|
|
|
+ switch (areaNode[JV.PROP_V_CALCULATION]) {
|
|
|
+ case JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE] :
|
|
|
+ innerTop = (1.0 * areaNode[JV.PROP_TOP] * areaHeight / JV.HUNDRED_PERCENT);
|
|
|
+ innerBottom = (1.0 * areaNode[JV.PROP_BOTTOM] * areaHeight / JV.HUNDRED_PERCENT);
|
|
|
+ break;
|
|
|
+ case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT] :
|
|
|
+ innerTop = 1.0 * areaNode[JV.PROP_TOP] * unitFactor;
|
|
|
+ innerBottom = 1.0 * areaNode[JV.PROP_BOTTOM] * unitFactor;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //颗粒度更加细化的控制,可能上下两边的计算坐标方式都不同
|
|
|
+ if (areaNode[JV.PROP_H_CALCULATION][JV.PROP_TOP] === JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE]) {
|
|
|
innerTop = (1.0 * areaNode[JV.PROP_TOP] * areaHeight / JV.HUNDRED_PERCENT);
|
|
|
- innerBottom = (1.0 * areaNode[JV.PROP_BOTTOM] * areaHeight / JV.HUNDRED_PERCENT) ;
|
|
|
- break;
|
|
|
- case JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT] :
|
|
|
+ } else {
|
|
|
innerTop = 1.0 * areaNode[JV.PROP_TOP] * unitFactor;
|
|
|
- innerBottom = 1.0 * areaNode[JV.PROP_BOTTOM] * unitFactor ;
|
|
|
- break;
|
|
|
+ }
|
|
|
+ if (areaNode[JV.PROP_H_CALCULATION][JV.PROP_BOTTOM] === JV.CAL_TYPE[JV.CAL_TYPE_PERCENTAGE]) {
|
|
|
+ innerBottom = (1.0 * areaNode[JV.PROP_BOTTOM] * areaHeight / JV.HUNDRED_PERCENT);
|
|
|
+ } else {
|
|
|
+ innerBottom = 1.0 * areaNode[JV.PROP_BOTTOM] * unitFactor;
|
|
|
+ }
|
|
|
}
|
|
|
//
|
|
|
let rstLeft = 0.0, rstRight = 0.0, rstTop = 0.0, rstBottom = 0.0;
|