{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\TemplateAddToMenu.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\TemplateAddToMenu.vue","mtime":1675071992178},{"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//\n//\n//\n//\n//\n//\n//\n\r\nimport form from \"@/api/form.js\";\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\"],\r\n type: \"\",\r\n components: { Treeselect },\r\n data() {\r\n return {\r\n menu: {},\r\n type: \"\",\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 };\r\n },\r\n computed: {\r\n ...mapState({\r\n currentUser: state => state.login.currentUser\r\n })\r\n },\r\n watch: {\r\n alias: {\r\n handler(newVal, oldVal) {\r\n if (newVal != oldVal) {\r\n this.dataTemplate = newVal;\r\n }\r\n }\r\n },\r\n type: {\r\n handler(newVal, oldVal) {\r\n if (newVal != oldVal) {\r\n this.getMenuDataByType();\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n onConfirm(selection) {\r\n if (!this.menu.parentAlias) {\r\n this.$message.error(\"请选择父节点!\");\r\n return;\r\n }\r\n if (!this.menu.name) {\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 let menu = { ...this_.menu };\r\n delete menu.parentMenuName;\r\n portal.saveDataTemplateToMenu(menu).then(rep => {\r\n if (rep.state) {\r\n this_.dialogVisible = false;\r\n this.$message.success(rep.message);\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 if (this.type == \"manage\") {\r\n //后台菜单别名\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 =\r\n window.context.front +\r\n \"/statement/template/preview/\" +\r\n this.alias +\r\n \"/true\";\r\n } else {\r\n //前端菜单别名\r\n menuAlias = this.frontAliasPre;\r\n menuAlias += this.alias;\r\n }\r\n\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(type, from) {\r\n this.menu = {};\r\n this.type = type;\r\n if (from && type == \"front\") {\r\n this.from = from;\r\n } else if (from && type == \"manage\") {\r\n this.from = \"addManageReport\";\r\n }\r\n this.dialogVisible = true;\r\n }\r\n }\r\n};\r\n",null]}