| | |
| | | |
| | | //高级查询工具文件 |
| | | |
| | | //保存查询值 |
| | | export const commonSaveCurHighQueryData=(filteredData,_curHighQueryData,queryForm,_searchFormInputAttrs)=>{ |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; |
| | | setValueForCurHighQueryData(_curHighQueryData,queryForm,_searchFormInputAttrs); |
| | | } |
| | | //给响应式查询数据赋值 |
| | | export const setValueForCurHighQueryData=(_curHighQueryData,queryForm,_searchFormInputAttrs)=>{ |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal; |
| | | _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | } |
| | | //初始化 queryForm |
| | | export const initQueryForm=(queryForm,_searchFormInputAttrs,arr)=>{ |
| | | queryForm.value.searchVal = '' |
| | | queryForm.value.searchVal_FilterMode = arr[0]?.value || ''; |
| | | queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; |
| | | /** |
| | | * 保存当前高级查询数据,合并过滤后的数据并更新响应式查询对象 |
| | | * @param {Object} filteredData - 过滤后的查询数据对象,包含用户输入的查询条件 |
| | | * @param {Ref<Object>} _curHighQueryData - Vue响应式对象,存储当前完整的查询条件 |
| | | * @param {Ref<Object>} queryForm - Vue响应式对象,存储表单输入的查询条件 |
| | | * @param {Ref<string>} _searchFormInputAttrs - Vue响应式字符串,存储查询表单的输入属性配置 |
| | | * @returns {void} |
| | | * @example |
| | | * commonSaveCurHighQueryData( |
| | | * { name: 'John', age: 30 }, |
| | | * ref({}), |
| | | * ref({ searchVal: '', searchVal_FilterMode: 'contains' }), |
| | | * ref('name,age,email') |
| | | * ); |
| | | */ |
| | | export const commonSaveCurHighQueryData = (filteredData, _curHighQueryData, queryForm, _searchFormInputAttrs) => { |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; |
| | | setValueForCurHighQueryData(_curHighQueryData, queryForm, _searchFormInputAttrs); |
| | | } |
| | | //获取高级查询弹出框的查询值 |
| | | export const commonGetHighQueryForm=(extraParams,queryForm,_searchFormInputAttrs)=>{ |
| | | // 过滤掉 undefined 的值 |
| | | let filteredData = Object.assign( |
| | | {}, |
| | | ...Object.entries(extraParams).map(([key, value]) => |
| | | value !== undefined ? { [key]: value } : {} |
| | | ) |
| | | ) |
| | | //组合模糊查询 |
| | | filteredData.searchVal = queryForm.value.searchVal |
| | | filteredData.searchVal_FilterMode = queryForm.value.searchVal_FilterMode |
| | | filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; |
| | | return filteredData; |
| | | } |
| | | |
| | | // 新版的查询弹出框关闭方法 |
| | | export const GetFilteredData = (extraParams,queryForm,_searchFormInputAttrs,_curHighQueryData) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams,queryForm,_searchFormInputAttrs); |
| | | commonSaveCurHighQueryData(filteredData,_curHighQueryData,queryForm,_searchFormInputAttrs); |
| | | return filteredData; |
| | | } |
| | | /** |
| | | * 为响应式查询数据对象设置基础查询值 |
| | | * @param {Ref<Object>} _curHighQueryData - Vue响应式对象,存储当前完整的查询条件 |
| | | * @param {Ref<Object>} queryForm - Vue响应式对象,存储表单输入的查询条件 |
| | | * @param {Ref<string>} _searchFormInputAttrs - Vue响应式字符串,存储查询表单的输入属性配置 |
| | | * @returns {void} |
| | | * @example |
| | | * setValueForCurHighQueryData( |
| | | * ref({}), |
| | | * ref({ searchVal: 'test', searchVal_FilterMode: 'equals' }), |
| | | * ref('name,age') |
| | | * ); |
| | | * // _curHighQueryData.value 将包含 searchVal, searchVal_FilterMode 和 str_searchFormInputAttrs |
| | | */ |
| | | export const setValueForCurHighQueryData = (_curHighQueryData, queryForm, _searchFormInputAttrs) => { |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal; |
| | | _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | } |
| | | |
| | | /** |
| | | * 初始化查询表单,设置默认值 |
| | | * @param {Ref<Object>} queryForm - Vue响应式对象,存储表单输入的查询条件 |
| | | * @param {Ref<string>} _searchFormInputAttrs - Vue响应式字符串,存储查询表单的输入属性配置 |
| | | * @param {Array<Object>} arr - 过滤模式选项数组,每个选项包含value和label属性 |
| | | * @returns {void} |
| | | * @example |
| | | * initQueryForm( |
| | | * ref({}), |
| | | * ref('name,age'), |
| | | * [{ value: 'contains', label: '包含' }, { value: 'equals', label: '等于' }] |
| | | * ); |
| | | * // queryForm.value 将被初始化为 { searchVal: '', searchVal_FilterMode: 'contains', str_searchFormInputAttrs: 'name,age' } |
| | | */ |
| | | export const initQueryForm = (queryForm, _searchFormInputAttrs, arr) => { |
| | | queryForm.value.searchVal = ''; |
| | | queryForm.value.searchVal_FilterMode = arr[0]?.value || ''; |
| | | queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | } |
| | | |
| | | /** |
| | | * 获取高级查询弹出框的查询值,过滤无效数据并组合完整查询条件 |
| | | * @param {Object} extraParams - 额外的查询参数对象,可能包含特殊查询条件 |
| | | * @param {Ref<Object>} queryForm - Vue响应式对象,存储表单输入的查询条件 |
| | | * @param {Ref<string>} _searchFormInputAttrs - Vue响应式字符串,存储查询表单的输入属性配置 |
| | | * @returns {Object} 组合后的有效查询数据对象 |
| | | * @example |
| | | * const queryData = commonGetHighQueryForm( |
| | | * { status: 'active', category: 'books' }, |
| | | * ref({ searchVal: 'javascript', searchVal_FilterMode: 'contains' }), |
| | | * ref('title,author') |
| | | * ); |
| | | * // 返回 { status: 'active', category: 'books', searchVal: 'javascript', searchVal_FilterMode: 'contains', str_searchFormInputAttrs: 'title,author' } |
| | | */ |
| | | export const commonGetHighQueryForm = (extraParams, queryForm, _searchFormInputAttrs) => { |
| | | // 过滤掉 undefined 的值 |
| | | let filteredData = Object.assign( |
| | | {}, |
| | | ...Object.entries(extraParams).map(([key, value]) => |
| | | value !== undefined ? { [key]: value } : {} |
| | | ) |
| | | ); |
| | | // 组合模糊查询 |
| | | filteredData.searchVal = queryForm.value.searchVal; |
| | | filteredData.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; |
| | | filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | return filteredData; |
| | | } |
| | | |
| | | /** |
| | | * 新版的查询弹出框关闭方法,获取过滤数据并保存到响应式对象 |
| | | * @param {Object} extraParams - 额外的查询参数对象,可能包含特殊查询条件 |
| | | * @param {Ref<Object>} queryForm - Vue响应式对象,存储表单输入的查询条件 |
| | | * @param {Ref<string>} _searchFormInputAttrs - Vue响应式字符串,存储查询表单的输入属性配置 |
| | | * @param {Ref<Object>} _curHighQueryData - Vue响应式对象,存储当前完整的查询条件 |
| | | * @returns {Object} 组合后的有效查询数据对象 |
| | | * @example |
| | | * const queryData = GetFilteredData( |
| | | * { type: 'article' }, |
| | | * ref({ searchVal: 'news', searchVal_FilterMode: 'startsWith' }), |
| | | * ref('title,content'), |
| | | * ref({}) |
| | | * ); |
| | | * // 返回有效查询数据并更新 _curHighQueryData |
| | | */ |
| | | export const GetFilteredData = (extraParams, queryForm, _searchFormInputAttrs, _curHighQueryData) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams, queryForm, _searchFormInputAttrs); |
| | | commonSaveCurHighQueryData(filteredData, _curHighQueryData, queryForm, _searchFormInputAttrs); |
| | | return filteredData; |
| | | } |