| | |
| | | class="header-search-select"
|
| | | @change="change"
|
| | | >
|
| | | <el-option v-for="item in options" :key="item.path" :value="item" :label="item.title.join(' > ')" />
|
| | | <el-option v-for="option in options" :key="option.item.path" :value="option.item" :label="option.item.title.join(' > ')" />
|
| | | </el-select>
|
| | | </div>
|
| | | </template>
|
| | |
| | | <script>
|
| | | // fuse is a lightweight fuzzy-search module
|
| | | // make search results more in line with expectations
|
| | | import Fuse from 'fuse.js'
|
| | | import Fuse from 'fuse.js/dist/fuse.min.js'
|
| | | import path from 'path'
|
| | |
|
| | | export default {
|
| | |
| | | this.show = false
|
| | | },
|
| | | change(val) {
|
| | | const path = val.path;
|
| | | const query = val.query;
|
| | | if(this.ishttp(val.path)) {
|
| | | // http(s):// 路径新窗口打开
|
| | | window.open(val.path, "_blank");
|
| | | const pindex = path.indexOf("http");
|
| | | window.open(path.substr(pindex, path.length), "_blank");
|
| | | } else {
|
| | | this.$router.push(val.path)
|
| | | if (query) {
|
| | | this.$router.push({ path: path, query: JSON.parse(query) });
|
| | | } else {
|
| | | this.$router.push(path)
|
| | | }
|
| | | }
|
| | | this.search = ''
|
| | | this.options = []
|
| | |
| | | threshold: 0.4,
|
| | | location: 0,
|
| | | distance: 100,
|
| | | maxPatternLength: 32,
|
| | | minMatchCharLength: 1,
|
| | | keys: [{
|
| | | name: 'title',
|
| | |
| | | // special case: need to exclude parent router without redirect
|
| | | res.push(data)
|
| | | }
|
| | | }
|
| | |
|
| | | if (router.query) {
|
| | | data.query = router.query
|
| | | }
|
| | |
|
| | | // recursive child routes
|
| | |
| | | display: inline-block;
|
| | | vertical-align: middle;
|
| | |
|
| | | /deep/ .el-input__inner {
|
| | | ::v-deep .el-input__inner {
|
| | | border-radius: 0;
|
| | | border: 0;
|
| | | padding-left: 0;
|