{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\appCenter\\AppCenter.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\appCenter\\AppCenter.vue","mtime":1667327528887},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport portal from \"@/api/portal.js\";\r\nimport appMain from \"@/components/appCenter/AppMain.vue\";\r\nimport { mapState } from \"vuex\";\r\nimport req from \"@/request.js\";\r\nexport default {\r\n name: \"app-center\",\r\n components: {\r\n appMain,\r\n },\r\n data() {\r\n return {\r\n apps: [],\r\n pageResult: {\r\n page: 1,\r\n pageSize: 24,\r\n total: 0,\r\n },\r\n menus: [],\r\n activeMenuIndex: \"\",\r\n activeTab: \"\",\r\n tabs: [],\r\n tagTypes: [],\r\n selectAllStatus: {},\r\n tagMap: {},\r\n tagStatus: {},\r\n currentMenuId: \"\",\r\n searchWord: \"\",\r\n searchDialogVisible: false,\r\n searchResultApps: [],\r\n };\r\n },\r\n computed: mapState({\r\n currentMenu: (state) => state.menu.currentMenu,\r\n }),\r\n mounted() {\r\n portal.getSubMenus(\"app_menu\", (resp) => {\r\n this.menus = resp.data.value;\r\n this.selectFirstOne();\r\n });\r\n this.loadTags();\r\n },\r\n methods: {\r\n //加载应用数据\r\n loadData(menuId) {\r\n let param = {\r\n menuId: menuId,\r\n };\r\n portal.getSysAppList(param).then((data) => {\r\n this.apps = data;\r\n this.currentMenuId = menuId;\r\n });\r\n },\r\n handleSelect(data) {\r\n this.$set(this, \"tabs\", data.children);\r\n if (this.tabs.length <= 0) {\r\n this.loadData(data.id);\r\n return;\r\n }\r\n this.loadData(this.tabs[0].id);\r\n this.activeTab = this.tabs[0].id;\r\n },\r\n tabClick(tab) {\r\n this.loadData(tab.name);\r\n },\r\n getFirstMenu(menus, index) {\r\n if (menus[0].children && menus[0].children.length > 0 && index < 2) {\r\n index++;\r\n return this.getFirstMenu(menus[0].children);\r\n } else {\r\n return menus[0];\r\n }\r\n },\r\n getFirstValidMenu(menus, menuIds) {\r\n if (menus) {\r\n for (let i = 0; i < menus.length; i++) {\r\n if (menuIds.includes(menus[i].id) && menus[i].path.split(\".\").length > 4) {\r\n return menus[i];\r\n }\r\n }\r\n for (let j = 0; j < menus.length; j++) {\r\n let menu = this.getFirstValidMenu(menus[j].children, menuIds);\r\n if(menu){\r\n return menu;\r\n }\r\n }\r\n }\r\n },\r\n selectFirstOne() {\r\n //获取有存在应用的菜单\r\n req.get(\"${portal}/portal/sysApp/v1/validMenu\").then((resp) => {\r\n if (resp && resp.data && resp.data.length > 0) {\r\n let menu = this.getFirstValidMenu(this.menus, resp.data);\r\n if(!menu){\r\n menu = this.getFirstMenu(this.menus,1);\r\n }\r\n this.activeMenuIndex = menu.id;\r\n this.handleSelect(menu);\r\n } else {\r\n if (this.menus && this.menus.length > 0) {\r\n let menu = this.getFirstMenu(this.menus, 1);\r\n this.activeMenuIndex = menu.id;\r\n this.handleSelect(menu);\r\n }\r\n }\r\n });\r\n },\r\n //加载标签\r\n loadTags() {\r\n portal.getAppTagTypes().then((resp) => {\r\n this.tagTypes = resp.data;\r\n resp.data.forEach((item) => {\r\n this.selectAllStatus[item.id] = false;\r\n this.tagMap[item.id] = [];\r\n let querys = [\r\n {\r\n property: \"type_id_\",\r\n value: item.id,\r\n group: \"main\",\r\n operation: \"EQUAL\",\r\n relation: \"AND\",\r\n },\r\n ];\r\n let filter = { querys: querys };\r\n req\r\n .post(window.context.portal + \"/portal/sysTag/v1/query\", filter)\r\n .then((resp) => {\r\n this.tagMap[item.id] = resp.data.rows;\r\n resp.data.rows.forEach((tag) => {\r\n this.tagStatus[tag.id] = false;\r\n });\r\n this.$forceUpdate();\r\n });\r\n });\r\n });\r\n },\r\n selectAll(typeId) {\r\n this.selectAllStatus[typeId] = !this.selectAllStatus[typeId];\r\n let tags = this.tagMap[typeId];\r\n let allToSelect = false; //全选\r\n for (let i = 0; i < tags.length; i++) {\r\n if (this.tagStatus[tags[i].id] != true) {\r\n allToSelect = true;\r\n }\r\n }\r\n if (allToSelect) {\r\n //全选\r\n for (let i = 0; i < tags.length; i++) {\r\n this.tagStatus[tags[i].id] = true;\r\n }\r\n } else {\r\n //全不选\r\n for (let i = 0; i < tags.length; i++) {\r\n this.tagStatus[tags[i].id] = false;\r\n }\r\n }\r\n this.reloadData();\r\n this.$forceUpdate();\r\n },\r\n tagClick(tagId, typeId) {\r\n this.tagStatus[tagId] = !this.tagStatus[tagId];\r\n //全部选中时,设置全选按钮\r\n let tags = this.tagMap[typeId];\r\n let isSelectAll = true;\r\n for (let i = 0; i < tags.length; i++) {\r\n if (!this.tagStatus[tags[i].id]) {\r\n isSelectAll = false;\r\n break;\r\n }\r\n }\r\n this.selectAllStatus[typeId] = isSelectAll;\r\n this.reloadData();\r\n this.$forceUpdate();\r\n },\r\n ////重新加载数据\r\n reloadData() {\r\n let param = [];\r\n this.tagTypes.forEach((type) => {\r\n let selectTagIds = [];\r\n let tagList = this.tagMap[type.id];\r\n for (let i = 0; i < tagList.length; i++) {\r\n if (this.tagStatus[tagList[i].id]) {\r\n selectTagIds.push(tagList[i].id);\r\n }\r\n }\r\n //querys.push({properties:\"TAG_ID_\",value:selectTagIds.join(\",\"),group:group,operation:\"IN\",relation:\"AND\"});\r\n if (selectTagIds.length != 0) {\r\n param.push({ typeId: type.id, tagIds: selectTagIds.join(\",\") });\r\n }\r\n });\r\n req\r\n .post(\r\n \"${portal}/portal/sysApp/v1/queryByTagIds/\" + this.currentMenuId,\r\n param\r\n )\r\n .then((resp) => {\r\n this.apps = resp.data;\r\n this.searchWord = \"\";\r\n this.$forceUpdate();\r\n });\r\n },\r\n search() {\r\n if(!this.searchWord){\r\n this.$message({type:\"warning\",message:\"请输入关键词\"})\r\n return ;\r\n }\r\n let querys = [\r\n {\r\n property: \"name\",\r\n value: this.searchWord,\r\n group: \"search\",\r\n operation: \"LIKE\",\r\n relation: \"AND\",\r\n },\r\n ];\r\n let queryFilter = { querys };\r\n this.$loading();\r\n req.post(\"${portal}/portal/sysApp/v1/queryByFilter\", queryFilter).then((resp) => {\r\n this.apps.splice(0);\r\n Object.keys(this.selectAllStatus).forEach(key=>{\r\n this.$set(this.selectAllStatus,key,false);\r\n })\r\n Object.keys(this.tagStatus).forEach(key=>{\r\n this.$set(this.tagStatus,key,false);\r\n })\r\n if (resp.data && resp.data.length > 0) {\r\n resp.data.forEach((item) => {\r\n this.apps.push(item);\r\n });\r\n //this.searchDialogVisible = true;\r\n } else {\r\n this.$message({ type: \"warning\", message: \"未查询到结果\" });\r\n }\r\n this.$loading().close();\r\n });\r\n },\r\n searchDialogClose() {\r\n this.searchResultApps.splice(0);\r\n },\r\n },\r\n};\r\n",null]}