This commit is contained in:
devezhao-mac 2019-03-19 23:34:16 +08:00
parent e3ff111f62
commit 794be44660
2 changed files with 128 additions and 101 deletions

View file

@ -29,6 +29,7 @@ import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.devezhao.persist4j.dialect.FieldType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@ -80,7 +81,27 @@ public class MetadataGetters extends BaseControll {
Entity entityBase = MetadataHelper.getEntity(entity);
List<Map<String, Object>> list = new ArrayList<>();
for (Field field : MetadataSorter.sortFields(entityBase)) {
putFields(list, entityBase, null);
if ("2".equals(getParameter(request,"deep"))) {
for (Field field : entityBase.getFields()) {
EasyMeta easyField = EasyMeta.valueOf(field);
if (easyField.getDisplayType() == DisplayType.REFERENCE) {
putFields(list, field.getReferenceEntity(), easyField);
}
}
}
writeSuccess(response, list);
}
/**
* @param dest
* @param entity
* @param parentField
*/
private void putFields(List<Map<String, Object>> dest, Entity entity, EasyMeta parentField) {
for (Field field : MetadataSorter.sortFields(entity)) {
Map<String, Object> map = new HashMap<>();
map.put("name", field.getName());
EasyMeta easyMeta = new EasyMeta(field);
@ -92,9 +113,14 @@ public class MetadataGetters extends BaseControll {
Field refNameField = MetadataHelper.getNameField(refEntity);
map.put("ref", new String[] { refEntity.getName(), EasyMeta.getDisplayType(refNameField).name() });
}
list.add(map);
if (parentField != null) {
map.put("name", parentField.getName() + "." + map.get("name"));
map.put("label", parentField.getLabel() + "." + map.get("label"));
}
dest.add(map);
}
writeSuccess(response, list);
}
// 哪些实体引用了指定实体

View file

@ -81,7 +81,7 @@ class AdvFilter extends React.Component {
}
componentDidMount() {
let that = this
$.get(rb.baseUrl + '/commons/metadata/fields?entity=' + this.props.entity, function (res) {
$.get(rb.baseUrl + '/commons/metadata/fields?deep=2&entity=' + this.props.entity, function (res) {
let valideFs = []
that.fields = res.data.map((item) => {
valideFs.push(item.name)
@ -189,8 +189,9 @@ class AdvFilter extends React.Component {
confirm() {
let adv = this.toFilterJson()
if (!adv) return
else if (this.props.confirm) this.props.confirm(adv, this.state.filterName, this.state.shareToAll)
else {
else if (this.props.confirm) {
this.props.confirm(adv, this.state.filterName, this.state.shareToAll)
} else {
$.post(rb.baseUrl + '/app/entity/advfilter/test-parse', JSON.stringify(adv), function (res) {
if (res.error_code !== 0) rb.hberror(res.error_msg)
})