Browse Source

修复w-query-builder的sql回显

main
likunming 5 months ago
parent
commit
96eb30b202
  1. 20
      io.sc.platform.core.frontend/src/platform/components/query-builder/WQueryBuilder.vue

20
io.sc.platform.core.frontend/src/platform/components/query-builder/WQueryBuilder.vue

@ -365,6 +365,8 @@ watch(
if (Tools.isEmpty(newVal)) {
modelValueObject['operator'] = criteriaMode.and.name;
modelValueObject['criteria'] = [{ fieldName: '', operator: criteriaOperator.equals.name, value: undefined }];
} else if (newVal !== oldVal && Tools.isEmpty(modelValueObject['criteria'][0]['fieldName'])) {
sqlToCriteria(modelValue.value);
}
}
if (newVal !== oldVal) {
@ -379,6 +381,19 @@ const getSqlValue = () => {
const getCriteriaValue = () => {
return props.mode === 'criteria' ? modelValue.value : toRaw(modelValueObject);
};
const sqlToCriteria = (sql) => {
const sqlPrefix = 'select * from t where ';
const criteria = CriteriaUtil.sqlToCriteria(sqlPrefix + sql);
// criteria 使
criteria['criteria'].forEach((item) => {
const field = getUseField(item['fieldName']);
if ((field['type'] === 'w-select' || field['type'] === 'w-checkbox-group') && !Array.isArray(item['value'])) {
item['value'] = [item['value']];
}
});
modelValueObject['operator'] = criteria['operator'];
modelValueObject['criteria'] = criteria['criteria'];
};
onBeforeMount(() => {
if (Tools.isEmpty(modelValue.value)) {
@ -397,10 +412,7 @@ onBeforeMount(() => {
modelValueObject['operator'] = modelValue.value['operator'];
modelValueObject['criteria'] = modelValue.value['criteria'];
} else {
const sqlPrefix = 'select * from t where ';
const criteria = CriteriaUtil.sqlToCriteria(sqlPrefix + modelValue.value);
modelValueObject['operator'] = criteria['operator'];
modelValueObject['criteria'] = criteria['criteria'];
sqlToCriteria(modelValue.value);
}
}
});

Loading…
Cancel
Save