Skip to content

Commit

Permalink
feat: search支持valueResolve
Browse files Browse the repository at this point in the history
  • Loading branch information
greper committed Jan 7, 2022
1 parent c40e832 commit 6743580
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 12 deletions.
4 changes: 2 additions & 2 deletions packages/fast-crud/src/d.ts/expose.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ export type CrudExpose = {
* 执行valueBuilder
* @param records 表格数据列表
*/
doValueBuilder: (records) => void;
doValueBuilder: (records,columns ?: Object) => void;
/**
* 执行valueResolve
* @param context { form }
*/
doValueResolve: (context: { form: any }) => void;
doValueResolve: (context: { form: any },columns ?: Object) => void;
/**
* 刷新列表数据
*/
Expand Down
28 changes: 19 additions & 9 deletions packages/fast-crud/src/use/use-expose.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,11 @@ export function useExpose(props: UseExposeProps): { expose: CrudExpose; crudExpo
const formRef = crudExpose.getFormRef();
return formRef?.getComponentRef(key, isAsync);
},
doValueBuilder(records) {
const columns = toRaw(crudBinding.value.columns);
logger.debug("columns", columns);
doValueBuilder(records,columns) {
if(columns){
columns = toRaw(crudBinding.value.columns);
}
logger.debug("doValueBuilder ,columns=", columns);
const valueBuilderColumns = _.filter(columns, (column) => {
return column.valueBuilder != null;
});
Expand All @@ -181,8 +183,11 @@ export function useExpose(props: UseExposeProps): { expose: CrudExpose; crudExpo
});
logger.debug("valueBuilder success:", records);
},
doValueResolve({ form }) {
const columns = toRaw(crudBinding.value.columns);
doValueResolve({ form },columns) {
if(columns == null){
columns = toRaw(crudBinding.value.columns);
}
logger.debug("doValueResolve ,columns=", columns);
_.forEach(columns, (column, key) => {
if (column.valueResolve) {
column.valueResolve({
Expand All @@ -197,6 +202,9 @@ export function useExpose(props: UseExposeProps): { expose: CrudExpose; crudExpo
logger.debug("valueResolve success:", form);
},
getSearchFormData() {
if(!crudRef.value){
return {}
}
return crudRef.value.getSearchFormData();
},
/**
Expand All @@ -213,10 +221,12 @@ export function useExpose(props: UseExposeProps): { expose: CrudExpose; crudExpo
pageSize: crudBinding.value.pagination.pageSize
};
}
let searchFormData = {};
if (crudRef.value) {
searchFormData = crudExpose.getSearchFormData();
let searchFormData = _.cloneDeep(crudExpose.getSearchFormData())
//配置searchValueResolve
if(crudBinding.value?.search?.columns){
crudExpose.doValueResolve({form:searchFormData},toRaw(crudBinding.value.search.columns))
}
crudExpose.doValueResolve({form:searchFormData})

const sort = crudBinding.value.sort || {};
let query = { page, form: searchFormData, sort };
Expand Down Expand Up @@ -274,7 +284,7 @@ export function useExpose(props: UseExposeProps): { expose: CrudExpose; crudExpo
* }
*/
async doSearch(opts) {
logger.debug("dosearch:", opts);
logger.debug("do search:", opts);
opts = merge({ goFirstPage: true }, opts);
if (opts.goFirstPage) {
crudExpose.doPageTurn(1);
Expand Down

0 comments on commit 6743580

Please sign in to comment.