[feat] domain expression, rvalue supports multi-layer attributes (multiple dots)
cabbage89 opened this issue · comments
白菜 commented
<field colSpan="4" name="myOrder" title="my orders" domain="self.order.id = :persion.order.orderId"/>
:persion.order.orderId
Can be parsed from the model
post: function(data, config) {
if (data?.data?._domain) {
var i = 0;
data.data._domain = data?.data?._domain?.replaceAll(/:([^\s]*)/g, (__, path) => {
if (path.indexOf('.') !== -1) {
let p = `__f${i++}`;
try {
data.data._domainContext[p] = eval(`data.data._domainContext.${path}`);
}catch (e){
data.data._domainContext[p]=null;
}
return ':' + p;
}
return __;
});
}
return $http.post(url, data, config);