|
@@ -585,10 +585,11 @@ const filter = {
|
|
|
defaultSetting: {
|
|
|
"table": "pay",
|
|
|
"condition": [
|
|
|
- {"field": "minus", "type": "bool", "value": "false"},
|
|
|
- {"field": "ptype", "type": "num", "operate": "=", "value": 1},
|
|
|
- {"field": "name", "type": "str", "operate": "=", "value": "扣回"}
|
|
|
+ {"field": "minus", "type": "bool", "value": "false", },
|
|
|
+ {"field": "ptype", "type": "num", "operate": "=", "value": 1, "rela": "and"},
|
|
|
+ {"field": "name", "type": "str", "operate": "=", "value": "扣回", "rela": "or"}
|
|
|
],
|
|
|
+ "f_type": "or'",
|
|
|
},
|
|
|
_typeFun: {
|
|
|
bool: '_checkBoolean',
|
|
@@ -636,7 +637,7 @@ const filter = {
|
|
|
return true;
|
|
|
}
|
|
|
},
|
|
|
- fun: function (ctx, data, fields, options) {
|
|
|
+ fun: function (ctx, data, fields, options, print = false) {
|
|
|
if (!options || !options.table || !options.condition) return;
|
|
|
|
|
|
const fData = data[options.table], self = this;
|
|
@@ -645,13 +646,29 @@ const filter = {
|
|
|
c.fun = this._typeFun[c.type];
|
|
|
}
|
|
|
|
|
|
- const result = fData.filter(function (d) {
|
|
|
- for (const c of options.condition) {
|
|
|
- if (!self[c.fun](ctx, d[c.field], c)) return false;
|
|
|
+ data[options.table] = fData.filter(function (d) {
|
|
|
+ if (print) console.log(d);
|
|
|
+ if (options.condition.length > 0) {
|
|
|
+ let con = options.condition[0];
|
|
|
+ let result = self[con.fun](ctx, d[con.field], con);
|
|
|
+ if (print) console.log(con, result);
|
|
|
+ for (let i = 1, iLen = options.condition.length; i < iLen; i++) {
|
|
|
+ con = options.condition[i];
|
|
|
+ result = (con.rela && con.rela === 'or')
|
|
|
+ ? (result || self[con.fun](ctx, d[con.field], con))
|
|
|
+ : (result && self[con.fun](ctx, d[con.field], con));
|
|
|
+ if (print) console.log(con, self[con.fun](ctx, d[con.field], con), result);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
}
|
|
|
- return true;
|
|
|
+ // const result;
|
|
|
+ // for (const c of options.condition) {
|
|
|
+ // if (!self[c.fun](ctx, d[c.field], c)) return false;
|
|
|
+ // }
|
|
|
+ // return true;
|
|
|
});
|
|
|
- data[options.table] = result;
|
|
|
}
|
|
|
};
|
|
|
const gatherStagePay = {
|