# PageSearch 搜索栏

# 基础用法

<h-page-container>
  <h-page-header slot="pageHeader" :breadcrumb="breadcrumb" />
  <h-page-content>
    <h-page-search ref="search" :model="search">
      <h-page-search-item label="Title" prop="title1">
        <el-input v-model="search.title1" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title2">
        <el-input v-model="search.title2" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title3">
        <el-input v-model="search.title3" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title4">
        <el-input v-model="search.title4" placeholder="Information" />
      </h-page-search-item>
      <template slot="pageSearchAction">
        <el-button type="primary">Search</el-button>
        <el-button @click="handleReset">Reset</el-button>
      </template>
    </h-page-search>
  </h-page-content>
</h-page-container>
<script>
  export default {
    data() {
      return {
        breadcrumb: ['Title', 'Title', 'Title', 'Title'],
        search: {
          title1: '',
          title2: '',
          title3: '',
          title4: ''
        }
      }
    },
    methods: {
      handleReset() {
        this.$refs.search.getForm().resetFields();
      }
    }
  }
</script>

# 高低频搜索

<h-page-container>
  <h-page-header slot="pageHeader" :breadcrumb="breadcrumb" />
  <h-page-content>
    <h-page-search ref="search" :model="search">
      <h-page-search-item label="Title" prop="title1">
        <el-input v-model="search.title1" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title2">
        <el-input v-model="search.title2" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title3" :show="false">
        <el-input v-model="search.title3" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title4" :show="false">
        <el-input v-model="search.title4" placeholder="Information" />
      </h-page-search-item>
      <template slot="pageSearchAction">
        <el-button type="primary">Search</el-button>
        <el-button @click="handleReset">Reset</el-button>
      </template>
    </h-page-search>
  </h-page-content>
</h-page-container>

<script>
  export default {
    data() {
      return {
        breadcrumb: ['Title', 'Title', 'Title', 'Title'],
        search: {
          title1: '',
          title2: '',
          title3: '',
          title4: ''
        }
      }
    },
    methods: {
      handleReset() {
        this.$refs.search.getForm().resetFields();
      }
    }
  }
</script>

# 默认收起

<h-page-container>
  <h-page-header slot="pageHeader" :breadcrumb="breadcrumb" />
  <h-page-content>
    <h-page-action search-icon />
    <h-page-search ref="search" :model="search">
      <h-page-search-item label="Title" prop="title1">
        <el-input v-model="search.title1" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title2">
        <el-input v-model="search.title2" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title3">
        <el-input v-model="search.title3" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title4">
        <el-input v-model="search.title4" placeholder="Information" />
      </h-page-search-item>
      <template slot="pageSearchAction">
        <el-button type="primary">Search</el-button>
        <el-button @click="handleReset">Reset</el-button>
      </template>
    </h-page-search>
  </h-page-content>
</h-page-container>

<script>
  export default {
    data() {
      return {
        breadcrumb: ['Title', 'Title', 'Title', 'Title'],
        search: {
          title1: '',
          title2: '',
          title3: '',
          title4: ''
        }
      }
    },
    methods: {
      handleReset() {
        this.$refs.search.getForm().resetFields();
      }
    }
  }
</script>

# 可配置断点

<h-page-container>
  <h-page-header slot="pageHeader" :breadcrumb="breadcrumb" />
  <h-page-content>
    <h-page-search ref="search" :model="search" :options="options">
      <h-page-search-item label="Title" prop="title1">
        <el-input v-model="search.title1" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title2">
        <el-input v-model="search.title2" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title3">
        <el-input v-model="search.title3" placeholder="Information" />
      </h-page-search-item>
      <h-page-search-item label="Title" prop="title4">
        <el-input v-model="search.title4" placeholder="Information" />
      </h-page-search-item>
      <template slot="pageSearchAction">
        <el-button type="primary">Search</el-button>
        <el-button @click="handleReset">Reset</el-button>
      </template>
    </h-page-search>
  </h-page-content>
</h-page-container>
<script>
  export default {
    data() {
      return {
        breadcrumb: ['Title', 'Title', 'Title', 'Title'],
        search: {
          title1: '',
          title2: '',
          title3: '',
          title4: ''
        },
        options: {
          xl: 1200,
          lg: 920,
          md: 700,
          sm: 400
        }
      }
    },
    methods: {
      handleReset() {
        this.$refs.search.getForm().resetFields();
      }
    }
  }
</script>

# API

# PageSearch Attributes

参数 说明 类型 可选值 默认值
model 表单数据对象 Object - -
rules 表单验证规则 Object - -
label-position 1.2.2+ 表单域标签的位置,值为 left 或 right 时,需要设置 label-width String right/left/top top
label-width 1.2.2+ 表单域标签的宽度,作为 Form 直接子元素的 form-item 会继承该值 String - -

# PageSearch Methods

方法名 说明 参数
getForm 获取搜索栏使用的表单控件(HUI) -
resetFields 对整个表单进行重置,清空所有字段并移除校验结果 -
resetStatus 1.3.0+ 重置搜索栏显隐性状态 -
reset 1.3.0+ 重置搜索栏 -
resize 重新计算搜索项和操作项所占栅格数 -

# PageSearch Slot

name 说明
pageSearchAction 搜索栏操作按钮插槽

# PageSearch Options

参数 说明 类型 可选值 默认值
xl 一行 6 个搜索项的断点 Number - 1408
lg 一行 4 个搜索项的断点 Number - 935
md 一行 3 个搜索项的断点 Number - 708
sm 一行 2 个搜索项的断点 Number - 472

# PageSearch Events

事件 说明 回调参数
collapse 显示/隐藏高低频搜索项的回调 共一个参数,是否显示高低频搜索项

# PageSearchItem Attributes

参数 说明 类型 可选值 默认值
prop 表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的 传入 Form 组件的 model 中的字段 - -
rules 表单验证规则 Object - -
label 标签文本 String - -
required 是否必填 String - -
required-right 是否必填,且星号显示在文字右侧 String - -
label-width 1.2.2+ 表单域标签的的宽度,例如 '50px',可覆盖父控件的 label-width String - -
show 设为 false 会开启高低频过滤 Boolean - true
hidden 菜单项是否隐藏,取代 v-if 和 v-show 实现隐藏功能 Boolean - false