|
@@ -62,7 +62,7 @@ $(document).ready(() => {
|
|
|
this.orderReg = /f\d+/ig;
|
|
|
}
|
|
|
|
|
|
- getLeafOrder(data) {
|
|
|
+ getLeafOrder(data, parentOrder) {
|
|
|
if (!data) return [];
|
|
|
const defaultResult = data.order ? [`f${data.order}`] : [];
|
|
|
if (!data.expr) return defaultResult;
|
|
@@ -72,13 +72,18 @@ $(document).ready(() => {
|
|
|
const result = [], payData = paySheet.zh_data || [];
|
|
|
for (const op of orderParam) {
|
|
|
const order = op.substring(1, op.length);
|
|
|
- result.push(...this.getLeafOrder(payData[parseInt(order) -1]));
|
|
|
+ if (data.order === parseInt(order) || op === parentOrder) {
|
|
|
+ result.push(op);
|
|
|
+ } else {
|
|
|
+ const subOrderParam = this.getLeafOrder(payData[parseInt(order) -1], data.order ? `f${data.order}` : parentOrder);
|
|
|
+ result.push(...subOrderParam);
|
|
|
+ }
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
checkCircularExpr(expr, selfOrder) {
|
|
|
- const leafOrder = this.getLeafOrder({expr});
|
|
|
+ const leafOrder = this.getLeafOrder({expr}, `f${selfOrder}`);
|
|
|
|
|
|
if (leafOrder.indexOf(`f${selfOrder}`) >= 0 || leafOrder.indexOf(`F${selfOrder}`) >= 0) return true;
|
|
|
return false;
|