1 |
- import{o as n,c as s,a}from"./app.c38d1953.js";const t='{"title":"Search 查询组件","description":"","frontmatter":{},"headers":[{"level":2,"title":"用法","slug":"用法"},{"level":3,"title":"基础用法","slug":"基础用法"},{"level":3,"title":"useSearch","slug":"usesearch"},{"level":2,"title":"Search 属性","slug":"search-属性"},{"level":2,"title":"Search 事件","slug":"search-事件"},{"level":2,"title":"Search 方法","slug":"search-方法"}],"relativePath":"components/search.md","lastUpdated":1721206001124}',p={},o=a('<h1 id="search-查询组件"><a class="header-anchor" href="#search-查询组件" aria-hidden="true">#</a> Search 查询组件</h1><p>基于 <code>Form</code> 组件封装,支持收缩展开。</p><p>Search 组件位于 <a href="https://github.com/kailong321200875/vue-element-plus-admin/tree/master/src/components/Search" target="_blank" rel="noopener noreferrer">src/components/Search</a> 内</p><div class="warning custom-block"><p class="custom-block-title">注意</p><p>推荐使用 <code>tsx</code> 来使用 <code>Search</code> 组件</p></div><h2 id="用法"><a class="header-anchor" href="#用法" aria-hidden="true">#</a> 用法</h2><h3 id="基础用法"><a class="header-anchor" href="#基础用法" aria-hidden="true">#</a> 基础用法</h3><p>更复杂例子,请<a href="https://element-plus-admin.cn/#/components/search" target="_blank" rel="noopener noreferrer">在线预览</a></p><div class="language-vue"><pre><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">setup</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">\n<span class="token keyword">import</span> <span class="token punctuation">{</span> Search <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/components/Search'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> FormSchema <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/components/Form'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> reactive <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span>\n\n<span class="token keyword">const</span> schema <span class="token operator">=</span> reactive<span class="token operator"><</span>FormSchema<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field1'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token string">'input'</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">]</span><span class="token punctuation">)</span>\n</span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span>\n\n<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Search</span> <span class="token attr-name">:schema</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>schema<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span>\n\n</code></pre></div><h3 id="usesearch"><a class="header-anchor" href="#usesearch" aria-hidden="true">#</a> useSearch</h3><p>对于复杂的场景,可以配合 <code>useSearch</code> 来使用。</p><div class="language-vue"><pre><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">setup</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">\n<span class="token keyword">import</span> <span class="token punctuation">{</span> ContentWrap <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/components/ContentWrap'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> useI18n <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/hooks/web/useI18n'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> Search <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/components/Search'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> reactive<span class="token punctuation">,</span> ref<span class="token punctuation">,</span> unref <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> ElButton <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'element-plus'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> getDictOneApi <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/api/common'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> FormSchema <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/components/Form'</span>\n<span class="token keyword">import</span> <span class="token punctuation">{</span> useSearch <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/hooks/web/useSearch'</span>\n\n<span class="token keyword">const</span> <span class="token punctuation">{</span> t <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">useI18n</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n\n<span class="token keyword">const</span> <span class="token punctuation">{</span> searchRegister<span class="token punctuation">,</span> searchMethods <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">useSearch</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n<span class="token keyword">const</span> <span class="token punctuation">{</span> setSchema<span class="token punctuation">,</span> setProps<span class="token punctuation">,</span> setValues <span class="token punctuation">}</span> <span class="token operator">=</span> searchMethods\n\n<span class="token keyword">const</span> schema <span class="token operator">=</span> reactive<span class="token operator"><</span>FormSchema<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field1'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field2'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.select'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Select'</span><span class="token punctuation">,</span>\n componentProps<span class="token operator">:</span> <span class="token punctuation">{</span>\n options<span class="token operator">:</span> <span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n label<span class="token operator">:</span> <span class="token string">'option1'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> <span class="token string">'1'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n label<span class="token operator">:</span> <span class="token string">'option2'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> <span class="token string">'2'</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span><span class="token punctuation">,</span>\n on<span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token function-variable function">change</span><span class="token operator">:</span> <span class="token punctuation">(</span><span class="token parameter">value<span class="token operator">:</span> string</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field3'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.radio'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'RadioGroup'</span><span class="token punctuation">,</span>\n componentProps<span class="token operator">:</span> <span class="token punctuation">{</span>\n options<span class="token operator">:</span> <span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n label<span class="token operator">:</span> <span class="token string">'option-1'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> <span class="token string">'1'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n label<span class="token operator">:</span> <span class="token string">'option-2'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> <span class="token string">'2'</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field5'</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'DatePicker'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.datePicker'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n componentProps<span class="token operator">:</span> <span class="token punctuation">{</span>\n type<span class="token operator">:</span> <span class="token string">'date'</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field6'</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'TimeSelect'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.timeSelect'</span><span class="token punctuation">)</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field8'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field9'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field10'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field11'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field12'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field13'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field14'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field15'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field16'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field17'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field18'</span><span class="token punctuation">,</span>\n label<span class="token operator">:</span> <span class="token function">t</span><span class="token punctuation">(</span><span class="token string">'formDemo.input'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>\n component<span class="token operator">:</span> <span class="token string">'Input'</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">]</span><span class="token punctuation">)</span>\n\n<span class="token keyword">const</span> isGrid <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">changeGrid</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">grid<span class="token operator">:</span> boolean</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token function">setProps</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n isCol<span class="token operator">:</span> grid\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n <span class="token comment">// isGrid.value = grid</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> layout <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token string">'inline'</span><span class="token punctuation">)</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">changeLayout</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n layout<span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token function">unref</span><span class="token punctuation">(</span>layout<span class="token punctuation">)</span> <span class="token operator">===</span> <span class="token string">'inline'</span> <span class="token operator">?</span> <span class="token string">'bottom'</span> <span class="token operator">:</span> <span class="token string">'inline'</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> buttonPosition <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token string">'left'</span><span class="token punctuation">)</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">changePosition</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">position<span class="token operator">:</span> string</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n layout<span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token string">'bottom'</span>\n buttonPosition<span class="token punctuation">.</span>value <span class="token operator">=</span> position\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">getDictOne</span> <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token keyword">const</span> res <span class="token operator">=</span> <span class="token keyword">await</span> <span class="token function">getDictOneApi</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n <span class="token keyword">if</span> <span class="token punctuation">(</span>res<span class="token punctuation">)</span> <span class="token punctuation">{</span>\n <span class="token function">setSchema</span><span class="token punctuation">(</span><span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field2'</span><span class="token punctuation">,</span>\n path<span class="token operator">:</span> <span class="token string">'componentProps.options'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> res<span class="token punctuation">.</span>data\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span><span class="token punctuation">)</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">handleSearch</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">data<span class="token operator">:</span> any</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">delRadio</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token function">setSchema</span><span class="token punctuation">(</span><span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field3'</span><span class="token punctuation">,</span>\n path<span class="token operator">:</span> <span class="token string">'remove'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> <span class="token boolean">true</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">restoreRadio</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token function">setSchema</span><span class="token punctuation">(</span><span class="token punctuation">[</span>\n <span class="token punctuation">{</span>\n field<span class="token operator">:</span> <span class="token string">'field3'</span><span class="token punctuation">,</span>\n path<span class="token operator">:</span> <span class="token string">'remove'</span><span class="token punctuation">,</span>\n value<span class="token operator">:</span> <span class="token boolean">false</span>\n <span class="token punctuation">}</span>\n <span class="token punctuation">]</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> <span class="token function-variable function">setValue</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n <span class="token function">setValues</span><span class="token punctuation">(</span><span class="token punctuation">{</span>\n field1<span class="token operator">:</span> <span class="token string">'Joy'</span>\n <span class="token punctuation">}</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> searchLoading <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span>\n<span class="token keyword">const</span> <span class="token function-variable function">changeSearchLoading</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n searchLoading<span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token boolean">true</span>\n <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n searchLoading<span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token boolean">false</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">2000</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span>\n\n<span class="token keyword">const</span> resetLoading <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span>\n<span class="token keyword">const</span> <span class="token function-variable function">changeResetLoading</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n resetLoading<span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token boolean">true</span>\n <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>\n resetLoading<span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token boolean">false</span>\n <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">2000</span><span class="token punctuation">)</span>\n<span class="token punctuation">}</span>\n</span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span>\n\n<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ContentWrap</span>\n <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>`${t(<span class="token punctuation">'</span>searchDemo.search<span class="token punctuation">'</span>)} ${t(<span class="token punctuation">'</span>searchDemo.operate<span class="token punctuation">'</span>)}`<span class="token punctuation">"</span></span>\n <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-bottom</span><span class="token punctuation">:</span> 20px</span><span class="token punctuation">"</span></span></span>\n <span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changeGrid(true)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>{{ t('searchDemo.grid') }}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changeGrid(false)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.restore') }} {{ t('searchDemo.grid') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changeLayout<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.button') }} {{ t('searchDemo.position') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changePosition(<span class="token punctuation">'</span>left<span class="token punctuation">'</span>)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.bottom') }} {{ t('searchDemo.position') }}-{{ t('searchDemo.left') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changePosition(<span class="token punctuation">'</span>center<span class="token punctuation">'</span>)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.bottom') }} {{ t('searchDemo.position') }}-{{ t('searchDemo.center') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changePosition(<span class="token punctuation">'</span>right<span class="token punctuation">'</span>)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.bottom') }} {{ t('searchDemo.position') }}-{{ t('searchDemo.right') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>getDictOne<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('formDemo.select') }} {{ t('searchDemo.dynamicOptions') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>delRadio<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>{{ t('searchDemo.deleteRadio') }}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>restoreRadio<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>{{ t('searchDemo.restoreRadio') }}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>setValue<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>{{ t('formDemo.setValue') }}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changeSearchLoading<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.search') }} {{ t('searchDemo.loading') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ElButton</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>changeResetLoading<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n {{ t('searchDemo.reset') }} {{ t('searchDemo.loading') }}\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ElButton</span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ContentWrap</span><span class="token punctuation">></span></span>\n\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ContentWrap</span> <span class="token attr-name">:title</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>t(<span class="token punctuation">'</span>searchDemo.search<span class="token punctuation">'</span>)<span class="token punctuation">"</span></span> <span class="token attr-name">:message</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>t(<span class="token punctuation">'</span>searchDemo.searchDes<span class="token punctuation">'</span>)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Search</span>\n <span class="token attr-name">:schema</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>schema<span class="token punctuation">"</span></span>\n <span class="token attr-name">:is-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>isGrid<span class="token punctuation">"</span></span>\n <span class="token attr-name">:layout</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layout<span class="token punctuation">"</span></span>\n <span class="token attr-name">:button-position</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>buttonPosition<span class="token punctuation">"</span></span>\n <span class="token attr-name">:search-loading</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>searchLoading<span class="token punctuation">"</span></span>\n <span class="token attr-name">:reset-loading</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetLoading<span class="token punctuation">"</span></span>\n <span class="token attr-name">show-expand</span>\n <span class="token attr-name">expand-field</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>field6<span class="token punctuation">"</span></span>\n <span class="token attr-name">@search</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handleSearch<span class="token punctuation">"</span></span>\n <span class="token attr-name">@reset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handleSearch<span class="token punctuation">"</span></span>\n <span class="token attr-name">@register</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>searchRegister<span class="token punctuation">"</span></span>\n <span class="token punctuation">/></span></span>\n <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ContentWrap</span><span class="token punctuation">></span></span>\n<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span>\n\n</code></pre></div><h4 id="参数介绍"><a class="header-anchor" href="#参数介绍" aria-hidden="true">#</a> 参数介绍</h4><div class="language-ts"><pre><code><span class="token keyword">const</span> <span class="token punctuation">{</span> searchRegister<span class="token punctuation">,</span> searchMethods <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">useSearch</span><span class="token punctuation">(</span><span class="token punctuation">)</span>\n</code></pre></div><p><strong>register</strong></p><p><code>searchRegister</code> 用于注册 <code>useSearch</code>,如果需要使用 <code>useSearch</code> 提供的 <code>api</code>,必须将 <code>searchRegister</code> 传入组件的 <code>onRegister</code></p><p><strong>formMethods</strong></p><table><thead><tr><th>方法名</th><th>说明</th><th>回调参数</th></tr></thead><tbody><tr><td>setValues</td><td>用于设置表单值</td><td>(data: Recordable) => void</td></tr><tr><td>setProps</td><td>用于设置表单属性</td><td>(props: Recordable) => void</td></tr><tr><td>delSchema</td><td>用于删除表单结构</td><td>(field: string) => void</td></tr><tr><td>addSchema</td><td>用于新增表单结构</td><td>(formSchema: FormSchema, index?: number) => void</td></tr><tr><td>setSchema</td><td>用于编辑表单结构</td><td>(schemaProps: FormSetPropsType[]) => void</td></tr><tr><td>getFormData</td><td>用于获取表单数据</td><td><code><T = Recordable>() => Promise<T></code></td></tr></tbody></table><h2 id="search-属性"><a class="header-anchor" href="#search-属性" aria-hidden="true">#</a> Search 属性</h2><table><thead><tr><th>属性</th><th>说明</th><th>类型</th><th>可选值</th><th>默认值</th></tr></thead><tbody><tr><td>schema</td><td>生成 Search 的布局结构数组,<a href="#Schema">详见</a></td><td><code>FormSchema</code></td><td>-</td><td>[]</td></tr><tr><td>isCol</td><td>是否需要栅格布局</td><td><code>boolean</code></td><td>-</td><td>true</td></tr><tr><td>labelWidth</td><td>表单 label 宽度</td><td><code>string</code>/<code>number</code></td><td>-</td><td>auto</td></tr><tr><td>layout</td><td>操作按钮风格位置</td><td><code>string</code></td><td>inline/bottom</td><td>inline</td></tr><tr><td>buttonPosition</td><td>底部操作按钮的对齐方式</td><td><code>string</code></td><td>left/center/right</td><td>center</td></tr><tr><td>showSearch</td><td>是否显示查询按钮</td><td><code>boolean</code></td><td>-</td><td>true</td></tr><tr><td>showReset</td><td>是否显示重置按钮</td><td><code>boolean</code></td><td>-</td><td>true</td></tr><tr><td>expand</td><td>是否显示伸缩按钮</td><td><code>boolean</code></td><td>-</td><td>false</td></tr><tr><td>expandField</td><td>伸缩的界限字段</td><td><code>string</code></td><td>-</td><td>-</td></tr><tr><td>inline</td><td>是否是行内</td><td><code>boolean</code></td><td>-</td><td>true</td></tr><tr><td>removeNoValueItem</td><td>是否自动去除空值</td><td><code>boolean</code></td><td>-</td><td>true</td></tr><tr><td>model</td><td>初始化数据</td><td><code>object</code></td><td>-</td><td>-</td></tr><tr><td>searchLoading</td><td>查询按钮加载状态</td><td><code>boolean</code></td><td>-</td><td>false</td></tr><tr><td>resetLoading</td><td>重置按钮加载状态</td><td><code>boolean</code></td><td>-</td><td>false</td></tr></tbody></table><h2 id="search-事件"><a class="header-anchor" href="#search-事件" aria-hidden="true">#</a> Search 事件</h2><table><thead><tr><th>方法名</th><th>说明</th><th>回调参数</th></tr></thead><tbody><tr><td>search</td><td>查询后的回调</td><td>data: Recordable</td></tr><tr><td>reset</td><td>重置后的回调</td><td>data: Recordable</td></tr></tbody></table><h2 id="search-方法"><a class="header-anchor" href="#search-方法" aria-hidden="true">#</a> Search 方法</h2><table><thead><tr><th>方法名</th><th>说明</th><th>回调参数</th></tr></thead><tbody><tr><td>setValues</td><td>用于设置表单值</td><td>(data: Recordable) => void</td></tr><tr><td>setProps</td><td>用于设置表单属性</td><td>(props: Recordable) => void</td></tr><tr><td>delSchema</td><td>用于删除表单结构</td><td>(field: string) => void</td></tr><tr><td>addSchema</td><td>用于新增表单结构</td><td>(formSchema: FormSchema, index?: number) => void</td></tr><tr><td>setSchema</td><td>用于编辑表单结构</td><td>(schemaProps: FormSetPropsType[]) => void</td></tr><tr><td>getElFormExpose</td><td>用于获取 Form 组件的实例</td><td><code>() => Promise<typeof ElForm></code></td></tr></tbody></table>',23);p.render=function(a,t,p,e,c,l){return n(),s("div",null,[o])};export default p;export{t as __pageData};
|