641fa6e641ac70a67ea5e010fc77eba1.json 11 KB

1
  1. {"remainingRequest":"D:\\cloud\\cemp\\cemp-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\cloud\\cemp\\cemp-ui\\src\\views\\admin\\menu\\menu-form.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\cloud\\cemp\\cemp-ui\\src\\views\\admin\\menu\\menu-form.vue","mtime":1619070292889},{"path":"D:\\cloud\\cemp\\cemp-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\cloud\\cemp\\cemp-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\cloud\\cemp\\cemp-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\cloud\\cemp\\cemp-ui\\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\nimport {addObj, fetchMenuTree, getObj, putObj} from '@/api/admin/menu'\nimport Treeselect from \"@riophae/vue-treeselect\"\nimport iconList from '@/const/iconList'\nimport TableForm from './'\nimport \"@riophae/vue-treeselect/dist/vue-treeselect.css\"\n\nexport default {\n name: \"Menu\",\n components: {Treeselect, TableForm},\n data() {\n return {\n // 遮罩层\n loading: true,\n // 菜单树选项\n menuOptions: [],\n // 是否显示弹出层\n visible: false,\n // 图标\n iconList: iconList,\n form: {\n name: undefined,\n path: undefined,\n icon: undefined,\n permission: undefined,\n type: '0',\n keepAlive: '0',\n sort: 999\n },\n // 表单校验\n rules: {\n name: [\n {required: true, message: \"菜单名称不能为空\", trigger: \"blur\"}\n ],\n sort: [\n {required: true, message: \"菜单顺序不能为空\", trigger: \"blur\"}\n ],\n path: [\n {required: true, message: \"路由地址不能为空\", trigger: \"blur\"}\n ],\n keepAlive: [\n {required: true, message: \"路由缓冲不能为空\", trigger: \"blur\"}\n ],\n permission: [\n {required: true, message: \"权限标识不能为空\", trigger: \"blur\"}\n ]\n }\n };\n },\n methods: {\n init(isEdit, id) {\n if (id != null) {\n this.form.parentId = id;\n }\n this.visible = true\n this.getTreeselect();\n this.$nextTick(() => {\n this.$refs['dataForm'].resetFields()\n if (isEdit) {\n getObj(id).then(response => {\n this.form = response.data.data\n })\n } else {\n this.form.menuId = undefined\n }\n })\n },\n // 表单提交\n dataFormSubmit() {\n this.$refs['dataForm'].validate((valid) => {\n if (valid) {\n if (this.form.parentId === undefined) {\n this.form.parentId = -1\n }\n\n if (this.form.menuId) {\n putObj(this.form).then(data => {\n this.$message.success('修改成功')\n this.visible = false\n this.$emit('refreshDataList')\n });\n } else {\n addObj(this.form).then(data => {\n this.$message.success('添加成功')\n this.visible = false\n this.$emit('refreshDataList')\n })\n }\n }\n })\n },\n /** 查询菜单下拉树结构 */\n getTreeselect() {\n fetchMenuTree().then(response => {\n this.menuOptions = [];\n const menu = {id: -1, name: '根菜单', children: []};\n menu.children = response.data.data;\n this.menuOptions.push(menu);\n });\n },\n /** 转换菜单数据结构 */\n normalizer(node) {\n if (node.children && !node.children.length) {\n delete node.children;\n }\n return {\n id: node.id,\n label: node.name,\n children: node.children\n };\n }\n }\n};\n",{"version":3,"sources":["menu-form.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"menu-form.vue","sourceRoot":"src/views/admin/menu","sourcesContent":["<template>\r\n <!-- 添加或修改菜单对话框 -->\r\n <el-dialog :title=\"!form.menuId ? '新增' : '修改'\"\r\n :visible.sync=\"visible\">\r\n <el-form ref=\"dataForm\" :model=\"form\" :rules=\"rules\" label-width=\"80px\">\r\n <el-row>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"菜单类型\" prop=\"type\">\r\n <el-radio-group v-model=\"form.type\" size=\"small\">\r\n <el-radio-button label=\"0\">菜单</el-radio-button>\r\n <el-radio-button label=\"1\">按钮</el-radio-button>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"上级菜单\">\r\n <treeselect v-model=\"form.parentId\"\r\n :options=\"menuOptions\"\r\n :normalizer=\"normalizer\"\r\n :show-count=\"true\"\r\n placeholder=\"选择上级菜单\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-form-item label=\"图标\" prop=\"icon\" v-if=\"form.type === '0'\">\r\n <avue-input-icon v-model=\"form.icon\" :icon-list=\"iconList\"></avue-input-icon>\r\n </el-form-item>\r\n <el-form-item label=\"名称\" prop=\"name\">\r\n <el-input v-model=\"form.name\" placeholder=\"请输入菜单名称\"/>\r\n </el-form-item>\r\n <el-form-item label=\"路由地址\" prop=\"path\" v-if=\"form.type !== '1'\">\r\n <el-input v-model=\"form.path\" placeholder=\"请输入路由地址\"/>\r\n </el-form-item>\r\n <el-form-item label=\"权限标识\" prop=\"permission\" v-if=\"form.type === '1'\">\r\n <el-input v-model=\"form.permission\" placeholder=\"请权限标识\" maxlength=\"50\"/>\r\n </el-form-item>\r\n <el-row>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"排序\" prop=\"sort\">\r\n <el-input-number v-model=\"form.sort\" controls-position=\"right\" :min=\"0\"/>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"路由缓冲\" prop=\"keepAlive\" v-if=\"form.type !== '1'\">\r\n <el-radio-group v-model=\"form.keepAlive\">\r\n <el-radio-button label=\"0\">否</el-radio-button>\r\n <el-radio-button label=\"1\">是</el-radio-button>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"dataFormSubmit\">确 定</el-button>\r\n <el-button @click=\"visible = false\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n</template>\r\n\r\n<script>\r\n import {addObj, fetchMenuTree, getObj, putObj} from '@/api/admin/menu'\r\n import Treeselect from \"@riophae/vue-treeselect\"\r\n import iconList from '@/const/iconList'\r\n import TableForm from './'\r\n import \"@riophae/vue-treeselect/dist/vue-treeselect.css\"\r\n\r\n export default {\r\n name: \"Menu\",\r\n components: {Treeselect, TableForm},\r\n data() {\r\n return {\r\n // 遮罩层\r\n loading: true,\r\n // 菜单树选项\r\n menuOptions: [],\r\n // 是否显示弹出层\r\n visible: false,\r\n // 图标\r\n iconList: iconList,\r\n form: {\r\n name: undefined,\r\n path: undefined,\r\n icon: undefined,\r\n permission: undefined,\r\n type: '0',\r\n keepAlive: '0',\r\n sort: 999\r\n },\r\n // 表单校验\r\n rules: {\r\n name: [\r\n {required: true, message: \"菜单名称不能为空\", trigger: \"blur\"}\r\n ],\r\n sort: [\r\n {required: true, message: \"菜单顺序不能为空\", trigger: \"blur\"}\r\n ],\r\n path: [\r\n {required: true, message: \"路由地址不能为空\", trigger: \"blur\"}\r\n ],\r\n keepAlive: [\r\n {required: true, message: \"路由缓冲不能为空\", trigger: \"blur\"}\r\n ],\r\n permission: [\r\n {required: true, message: \"权限标识不能为空\", trigger: \"blur\"}\r\n ]\r\n }\r\n };\r\n },\r\n methods: {\r\n init(isEdit, id) {\r\n if (id != null) {\r\n this.form.parentId = id;\r\n }\r\n this.visible = true\r\n this.getTreeselect();\r\n this.$nextTick(() => {\r\n this.$refs['dataForm'].resetFields()\r\n if (isEdit) {\r\n getObj(id).then(response => {\r\n this.form = response.data.data\r\n })\r\n } else {\r\n this.form.menuId = undefined\r\n }\r\n })\r\n },\r\n // 表单提交\r\n dataFormSubmit() {\r\n this.$refs['dataForm'].validate((valid) => {\r\n if (valid) {\r\n if (this.form.parentId === undefined) {\r\n this.form.parentId = -1\r\n }\r\n\r\n if (this.form.menuId) {\r\n putObj(this.form).then(data => {\r\n this.$message.success('修改成功')\r\n this.visible = false\r\n this.$emit('refreshDataList')\r\n });\r\n } else {\r\n addObj(this.form).then(data => {\r\n this.$message.success('添加成功')\r\n this.visible = false\r\n this.$emit('refreshDataList')\r\n })\r\n }\r\n }\r\n })\r\n },\r\n /** 查询菜单下拉树结构 */\r\n getTreeselect() {\r\n fetchMenuTree().then(response => {\r\n this.menuOptions = [];\r\n const menu = {id: -1, name: '根菜单', children: []};\r\n menu.children = response.data.data;\r\n this.menuOptions.push(menu);\r\n });\r\n },\r\n /** 转换菜单数据结构 */\r\n normalizer(node) {\r\n if (node.children && !node.children.length) {\r\n delete node.children;\r\n }\r\n return {\r\n id: node.id,\r\n label: node.name,\r\n children: node.children\r\n };\r\n }\r\n }\r\n };\r\n</script>\r\n"]}]}