| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\layout\\navBars\\breadcrumb\\search.vue?vue&type=style&index=0&id=63364a5c&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\layout\\navBars\\breadcrumb\\search.vue","mtime":1761185180054},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQoubGF5b3V0LXNlYXJjaC1kaWFsb2cgew0KICA6OnYtZGVlcCAuZWwtZGlhbG9nIHsNCiAgICBib3gtc2hhZG93OiB1bnNldCAhaW1wb3J0YW50Ow0KICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsNCiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7DQogIH0NCiAgOjp2LWRlZXAgLmVsLWF1dG9jb21wbGV0ZSB7DQogICAgd2lkdGg6IDMwMHB4Ow0KICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAvLyB0b3A6IDEwMHB4Ow0KICAgIC8vIGxlZnQ6IDUwJTsNCiAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7DQogIH0NCn0NCjo6di1kZWVwIC5lbC1kaWFsb2dfX2hlYWRlciB7DQogIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50Ow0KfQ0KOjp2LWRlZXAgLmVsLWlucHV0LS1zbWFsbCAuZWwtaW5wdXRfX2lubmVyIHsNCiAgaGVpZ2h0OiAzNnB4Ow0KICBsaW5lLWhlaWdodDogMzZweDsNCn0NCg=="},{"version":3,"sources":["search.vue"],"names":[],"mappings":";AAiGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"search.vue","sourceRoot":"src/layout/navBars/breadcrumb","sourcesContent":["<template>\r\n <div class=\"layout-search-dialog\">\r\n <el-autocomplete\r\n v-model=\"menuQuery\"\r\n :fetch-suggestions=\"menuSearch\"\r\n :placeholder=\"$t('message.user.searchPlaceholder')\"\r\n prefix-icon=\"el-icon-search\"\r\n ref=\"layoutMenuAutocompleteRef\"\r\n @select=\"onHandleSelect\"\r\n @blur=\"onSearchBlur\"\r\n >\r\n <template slot-scope=\"{ item }\">\r\n <div><i :class=\"item.icon\" class=\"mr10\"></i>{{ $t(item.title) }}</div>\r\n </template>\r\n </el-autocomplete>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { menusSearch } from '@/api/setting';\r\nimport { getAllSiderMenu } from '@/libs/system';\r\n\r\nexport default {\r\n name: 'layoutBreadcrumbSearch',\r\n data() {\r\n return {\r\n isShowSearch: false,\r\n menuQuery: '',\r\n tagsViewList: [],\r\n };\r\n },\r\n methods: {\r\n // 搜索弹窗打开\r\n openSearch() {\r\n this.menuQuery = '';\r\n this.isShowSearch = true;\r\n this.initTageView();\r\n this.$nextTick(() => {\r\n this.$refs.layoutMenuAutocompleteRef.focus();\r\n });\r\n },\r\n // 搜索弹窗关闭\r\n closeSearch() {\r\n setTimeout(() => {\r\n this.$emit('close');\r\n this.isShowSearch = false;\r\n }, 150);\r\n },\r\n // 菜单搜索数据过滤\r\n menuSearch(queryString, cb) {\r\n if (!queryString) {\r\n let results = queryString ? this.tagsViewList.filter(this.createFilter(queryString)) : this.tagsViewList;\r\n cb(results);\r\n } else {\r\n let queryData = {\r\n keyword: queryString,\r\n };\r\n menusSearch(queryData).then((res) => {\r\n cb(res.data);\r\n });\r\n }\r\n },\r\n // 菜单搜索过滤\r\n createFilter(queryString) {\r\n return (restaurant) => {\r\n return (\r\n restaurant.path.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||\r\n restaurant.title.toLowerCase().indexOf(queryString.toLowerCase()) > -1 ||\r\n this.$t(restaurant.title).toLowerCase().indexOf(queryString.toLowerCase()) > -1\r\n );\r\n };\r\n },\r\n // 初始化菜单数据\r\n initTageView() {\r\n if (this.tagsViewList.length > 0) return false;\r\n this.tagsViewList = getAllSiderMenu(this.$store.state.routesList.routesList);\r\n // this.$store.state.tagsViewRoutes.tagsViewRoutes.map((v) => {\r\n // \tif (!v.isHide) this.tagsViewList.push({ ...v });\r\n // });\r\n },\r\n // 当前菜单选中时\r\n onHandleSelect(item) {\r\n let { path, redirect } = item;\r\n if (item.isLink && !item.isIframe) window.open(item.isLink);\r\n else if (redirect) this.$router.push(redirect);\r\n else this.$router.push(path);\r\n this.closeSearch();\r\n },\r\n // input 失去焦点时\r\n onSearchBlur() {\r\n this.closeSearch();\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.layout-search-dialog {\r\n ::v-deep .el-dialog {\r\n box-shadow: unset !important;\r\n border-radius: 0 !important;\r\n background: rgba(0, 0, 0, 0.5);\r\n }\r\n ::v-deep .el-autocomplete {\r\n width: 300px;\r\n // position: absolute;\r\n // top: 100px;\r\n // left: 50%;\r\n // transform: translateX(-50%);\r\n }\r\n}\r\n::v-deep .el-dialog__header {\r\n border: none !important;\r\n}\r\n::v-deep .el-input--small .el-input__inner {\r\n height: 36px;\r\n line-height: 36px;\r\n}\r\n</style>\r\n"]}]}
|