| | |
| | | </el-select> |
| | | <div class="inputBox"> |
| | | <input type="text" v-model="searchText" class="search-input" /> |
| | | <div class="searchBtn">搜索</div> |
| | | <div class="searchBtn" @click="handleSearch()">搜索</div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | <script> |
| | | export default { |
| | | name: "SearchBox", |
| | | props: { |
| | | // 接收外部传入的选项 |
| | | options: { |
| | | type: Array, |
| | | default: () => [ |
| | | { value: "all", label: "全部" }, |
| | | { value: "name", label: "标题" }, |
| | | { value: "author", label: "作者" }, |
| | | { value: "year", label: "年份" }, |
| | | { value: "keyWords", label: "关键词" }, |
| | | { value: "abstract", label: "摘要" }, |
| | | { value: "source", label: "来源" }, |
| | | ], |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | searchText: "", // 输入框内容 |
| | | selectedType: "", // 下拉框选中值 |
| | | options: [ |
| | | // 下拉选项 |
| | | { value: "all", label: "全部" }, |
| | | { value: "name", label: "名称" }, |
| | | { value: "id", label: "ID" }, |
| | | { value: "code", label: "编码" }, |
| | | ], |
| | | selectedType: "all", // 下拉框选中值 |
| | | }; |
| | | }, |
| | | methods: { |
| | | // 搜索处理 |
| | | handleSearch() { |
| | | // 找到选中的选项的label |
| | | const selectedOption = this.options.find(option => option.value === this.selectedType); |
| | | const selectedLabel = selectedOption ? selectedOption.label : ''; |
| | | console.log(selectedLabel,"001") |
| | | this.$emit("search", { |
| | | text: this.searchText, |
| | | type: this.selectedType, |
| | | label: selectedLabel |
| | | }); |
| | | }, |
| | | }, |
| | |
| | | |
| | | /* 输入框样式 */ |
| | | .search-input { |
| | | background-color:transparent; |
| | | width: 100%; |
| | | |
| | | } |
| | | |
| | |
| | | width: 400px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: transparent !important; |
| | | align-items: center; |
| | | padding-right: 5px; |
| | | border-radius: 5px; |
| | |
| | | width: 70px; |
| | | height: 30px; |
| | | background-color: #937950; |
| | | border-radius: 5px; |
| | | margin-left: 10px; |
| | | cursor: pointer; |
| | | font-size: 14px; |