{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\system\\generator\\sysModuleAddMenus.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\system\\generator\\sysModuleAddMenus.vue","mtime":1675071993225},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\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\r\nimport portal from \"@/api/portal.js\";\r\nimport { mapState } from \"vuex\";\r\nimport Treeselect from \"@riophae/vue-treeselect\";\r\nimport \"@riophae/vue-treeselect/dist/vue-treeselect.css\";\r\nexport default {\r\n name: \"template-add-to-menu\",\r\n props: [\"alias\",\"moduleName\"],\r\n components: { Treeselect },\r\n data() {\r\n return {\r\n id: \"\",\r\n menu: {},\r\n type: \"manage\",\r\n manageAliasPre: \"templateMenu/\",\r\n frontAliasPre: \"template/preview/\",\r\n menuTreeData: [],\r\n dialogVisible: false,\r\n normalizer(node) {\r\n return {\r\n id: node.id,\r\n label: node.name,\r\n children: node.children,\r\n isDefaultExpanded: false\r\n };\r\n },\r\n from: \"\",\r\n sysModule: {}\r\n };\r\n },\r\n computed: {\r\n ...mapState({\r\n currentUser: state => state.login.currentUser\r\n })\r\n },\r\n watch: {\r\n type: {\r\n handler(newVal, oldVal) {\r\n if (!newVal) {\r\n return;\r\n }\r\n if (newVal != oldVal) {\r\n this.getMenuDataByType();\r\n }\r\n }\r\n }\r\n },\r\n created() {\r\n this.$validator = this.$root.$validator;\r\n },\r\n methods: {\r\n onConfirm() {\r\n if (!this.menu.parentAlias && this.type!=='app') {\r\n this.$message.error(\"请选择父节点!\");\r\n return;\r\n }\r\n const this_ = this;\r\n this_.$validator.validateAll(\"TemplateMenuForm\").then(result => {\r\n if (result) {\r\n if (this.type==='app'){\r\n let contentStr = JSON.stringify({id: this.sysModule.id, name: this.sysModule.name});\r\n let app = {\r\n name: this_.menu.name,\r\n type: 7,\r\n sn: 0,\r\n content: contentStr,\r\n icon: 'icon-hotent-H',\r\n iconColor: \"\"\r\n }\r\n portal.saveApp(app).then(data => {\r\n if (data.state){\r\n this_.$emit(\"close-dialog\");\r\n this_.dialogVisible = false;\r\n this.$message.success(data.message);\r\n }\r\n });\r\n }else{\r\n let menu = { ...this_.menu };\r\n delete menu.parentMenuName;\r\n portal.saveDataTemplateToMenu(menu).then(rep => {\r\n if (rep.state) {\r\n this_.$emit(\"close-dialog\");\r\n this_.dialogVisible = false;\r\n this.$message.success(rep.message);\r\n }\r\n });\r\n }\r\n } else {\r\n let arr = this_.$validator.errors.items.filter(\r\n item => item.scope == \"TemplateMenuForm\"\r\n );\r\n let errorLength = arr.length;\r\n this_.$message({\r\n showClose: true,\r\n message: `有${errorLength}个字段未通过校验,请正确填写表单内容。`,\r\n type: \"warning\"\r\n });\r\n }\r\n });\r\n },\r\n handleClose() {\r\n this.dialogVisible = false;\r\n },\r\n getMenuDataByType() {\r\n let menuAlias = this.type == \"front\" ? \"front_menu\" : \"manage_menu\";\r\n portal.getCurrentMenuByAlias(menuAlias).then(rep => {\r\n if (rep.state && rep.value.length > 0) {\r\n let menus = rep.value.filter(item => {\r\n if (item.alias !== 'appCenterFront') {\r\n return true;\r\n }\r\n return false;\r\n });\r\n this.removeEmptyChildren(menus);\r\n if(this.type != \"front\"){\r\n //添加为后端菜单时如果二级菜单不是URL菜单则模块开发生成的菜单不能添加到这个菜单下面\r\n //如:设计中心->业务表单 设计中心下的业务表单菜单是下级菜单不是URL菜单则模块开发生成的菜单不能添加到这个菜单下面\r\n for(let i =0;i=0;j--){\r\n if(menus[i].children[j].alias.indexOf(\"href/template\")==-1){\r\n menus[i].children.splice(j,1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.menuTreeData = menus;\r\n }\r\n });\r\n },\r\n removeEmptyChildren(menus) {\r\n menus.forEach(m => {\r\n if (m.children) {\r\n if (m.children.length < 1) {\r\n delete m.children;\r\n } else {\r\n //不允许选择4级菜单\r\n if(m.path.split(\".\").length==6){\r\n delete m.children;\r\n }else{\r\n this.removeEmptyChildren(m.children);\r\n }\r\n }\r\n }\r\n });\r\n },\r\n handleNodeClick(node) {\r\n let menuAlias = \"\";\r\n const key =\r\n Date.parse(new Date()) + \"_\" + Math.ceil(Math.random() * 99999);\r\n menuAlias = \"href/template/\" + key;\r\n //后台外部菜单URL地址\r\n this.menu.href = window.context.front + \"/sysModulePreview/\" + this.id+ \"/\" + this.moduleName;\r\n let this_ = this;\r\n portal.isMenuExist(this.menu.alias).then(rep => {\r\n if (rep.state) {\r\n this_.menu.menuId = node.id;\r\n if (rep.value) {\r\n this_.$message.error(\"菜单别名:\" + menuAlias + \"已存在!\");\r\n this_.menu.alias = \"\";\r\n this_.$forceUpdate();\r\n } else {\r\n this_.menu.alias = menuAlias;\r\n this_.menu.parentAlias = node.alias;\r\n this_.$forceUpdate();\r\n }\r\n } else {\r\n this_.$message.error(\"菜单别名校验失败!\");\r\n }\r\n });\r\n },\r\n showDialog(id) {\r\n this.menu={};\r\n this.id = id;\r\n portal.getSysModuleById(id).then(data => {\r\n this.sysModule = data;\r\n });\r\n this.getMenuDataByType();\r\n this.dialogVisible = true;\r\n },\r\n change(data){\r\n this.$set(this.menu,\"href\",window.context.front + \"/sysModulePreview/\" + this.id)\r\n }\r\n }\r\n};\r\n",null]}