¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | //é«çº§æ¥è¯¢å·¥å
·æä»¶ |
| | | |
| | | /** |
| | | * ä¿åå½åé«çº§æ¥è¯¢æ°æ®ï¼åå¹¶è¿æ»¤åçæ°æ®å¹¶æ´æ°ååºå¼æ¥è¯¢å¯¹è±¡ |
| | | * @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); |
| | | } |
| | | |
| | | /** |
| | | * 为ååºå¼æ¥è¯¢æ°æ®å¯¹è±¡è®¾ç½®åºç¡æ¥è¯¢å¼ |
| | | * @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; |
| | | } |
| | |
| | | |
| | | //é«çº§æ¥è¯¢å·¥å
·æä»¶ |
| | | |
| | | //ä¿åæ¥è¯¢å¼ |
| | | /** |
| | | * ä¿åå½åé«çº§æ¥è¯¢æ°æ®ï¼åå¹¶è¿æ»¤åçæ°æ®å¹¶æ´æ°ååºå¼æ¥è¯¢å¯¹è±¡ |
| | | * @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); |
| | | } |
| | | //ç»ååºå¼æ¥è¯¢æ°æ®èµå¼ |
| | | |
| | | /** |
| | | * 为ååºå¼æ¥è¯¢æ°æ®å¯¹è±¡è®¾ç½®åºç¡æ¥è¯¢å¼ |
| | | * @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; |
| | | } |
| | | //åå§å queryForm |
| | | |
| | | /** |
| | | * åå§åæ¥è¯¢è¡¨åï¼è®¾ç½®é»è®¤å¼ |
| | | * @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 = ''; |
| | | 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.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); |
| | |
| | | import { |
| | | FILTER_MODE_OPTIONS_STRING |
| | | } from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; |
| | | // å¼å
¥å
Œ
±é«çº§æ¥è¯¢å·¥å
·æä»¶ |
| | | import { commonSaveCurHighQueryData,setValueForCurHighQueryData,commonGetHighQueryForm,initQueryForm,GetFilteredData } from '@/utils/myHighQueryUtils'; |
| | | |
| | | interface RenderTableType { |
| | | url?: string |
| | |
| | | }) |
| | | /*******************************************************[é«çº§æ¥è¯¢]å¼å§********************************************************************************* */ |
| | | // æ°å¢çæ¥è¯¢æ¡ä»¶ |
| | | const queryForm = ref({ |
| | | searchVal: '', |
| | | str_searchFormInputAttrs:[], |
| | | searchVal_FilterMode:'' |
| | | }) |
| | | const queryForm = ref({ searchVal: '',str_searchFormInputAttrs:[],searchVal_FilterMode:'' }); |
| | | // å®ä¹ååºå¼æ¥è¯¢æ°æ® |
| | | const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[],searchVal_FilterMode:'' }); |
| | | // æ°ççæ¥è¯¢æ¹æ³ï¼ä¸»é¡µé¢ä¸çæé®ãæ¥è¯¢ãï¼ |
| | | const handleQueryForMain = async () => { |
| | | setValueForCurHighQueryData(); |
| | | setValueForCurHighQueryData(_curHighQueryData,queryForm,_searchFormInputAttrs); |
| | | tableRef.value.getList(_curHighQueryData.value) |
| | | } |
| | | // æ°ççæ¥è¯¢æ¹æ³ï¼é«çº§æ¥è¯¢ä¸çæé®ãæ¥è¯¢ãï¼ |
| | | const handleQuery = async (extraParams = {}) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams); |
| | | commonSaveCurHighQueryData(filteredData); |
| | | let filteredData = GetFilteredData(extraParams,queryForm,_searchFormInputAttrs,_curHighQueryData); |
| | | tableRef.value.getList(filteredData) |
| | | } |
| | | // æ°ççæ¥è¯¢éç½® |
| | | const resetQuery = () => { |
| | | queryForm.value.searchVal = '' |
| | | queryForm.value.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || ''; |
| | | queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; |
| | | setValueForCurHighQueryData(); |
| | | } |
| | | //ç»ååºå¼æ¥è¯¢æ°æ®èµå¼ |
| | | const setValueForCurHighQueryData=()=>{ |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal; |
| | | _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | initQueryForm(queryForm,_searchFormInputAttrs,FILTER_MODE_OPTIONS_STRING); |
| | | setValueForCurHighQueryData(_curHighQueryData,queryForm,_searchFormInputAttrs); |
| | | } |
| | | //æ°ççå¯¼åºæ¹æ³ |
| | | const handleExport=()=>{ |
| | |
| | | } |
| | | // æ°ççæ¥è¯¢å¼¹åºæ¡å
³éæ¹æ³ |
| | | const closeQuery = (extraParams={}) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams); |
| | | commonSaveCurHighQueryData(filteredData); |
| | | } |
| | | //ä¿åæ¥è¯¢å¼ |
| | | const commonSaveCurHighQueryData=(filteredData={})=>{ |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; |
| | | setValueForCurHighQueryData(); |
| | | } |
| | | //è·åé«çº§æ¥è¯¢å¼¹åºæ¡çæ¥è¯¢å¼ |
| | | const commonGetHighQueryForm=(extraParams={})=>{ |
| | | // è¿æ»¤æ 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; |
| | | GetFilteredData(extraParams,queryForm,_searchFormInputAttrs,_curHighQueryData); |
| | | } |
| | | /*******************************************************[é«çº§æ¥è¯¢]ç»æ********************************************************************************* */ |
| | | |