{"remainingRequest":"/Users/admin/projects/dms/src/dealer_admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/admin/projects/dms/src/dealer_admin/src/views/system/role/components/menuList.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/admin/projects/dms/src/dealer_admin/src/views/system/role/components/menuList.vue","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/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\nimport * as API from \"@/api/role\";\n\nexport default {\n  name:'MenuList',\n  components: {},\n  data() {\n    return {\n      dialogFormVisible: false,\n      list:[],\n      menuList:[],\n      roleId:'',\n      defaultCheckKey:[]\n    };\n  },\n  computed: {},\n  created() {\n    \n  },\n  methods: {\n    \n    async init(id) {\n      this.roleId = id;\n      this.getRoleMenuList(id);\n    },\n    /** 处理更新 */\n    async getRoleMenuList(_id) {\n      const resData = await API.getRoleMenuList({'role':_id});\n      let {__error,msg,result} = resData;\n      if(__error != 0){\n        this.$message({\n          message: `${msg}`,\n          type: \"warning\",\n          duration: 1501,\n          onClose: () => {\n          }\n        });\n        return;\n      }\n      console.log(result.list);\n      this.menuList = [];\n      this.menuList = result.list;\n      let defaultCheckKey = []\n      this.menuList.map((v) => {\n        if(v.select == 1){\n          let pass = true;\n          if(v.parent_code == \"\"){\n            for(var i = 0, l = this.menuList.length; i < l; i++){\n              let item = this.menuList[i];\n              if(item.parent_code == v.code && item.select != 1){\n                pass = false;\n                i = l;\n              }\n            }\n          }            \n          if(pass) defaultCheckKey.push(v._id);\n        }\n      });\n      this.defaultCheckKey = [];\n      this.defaultCheckKey = defaultCheckKey;\n      console.log(\"defaultCheckKey:\",defaultCheckKey);\n      let list = this.menu_merge(result.list);\n      console.log(\"list:\",list);\n      this.list = list;\n      this.dialogFormVisible = true;\n    },\n    menu_merge(node,pid = ''){\n      var arr = [];\n      node.forEach((v, index) => {\n        v['label'] = v.name;\n        v['style'] = v.style;\n        v['id'] = v._id;\n        if(v['parent_code'] == pid){\n              v['children'] = this.menu_merge(node,v['code']);\n              arr.push(v);\n          }\n      });\n      if(arr.length <= 0) return null;\n      else return arr;\n    },\n    handleSelectionChange(val) {\n      console.log('val:',val);\n    },\n    handleCheckChange(data, checked, indeterminate) {\n      // console.log(\"data:\",data);\n      console.log(\"checked:\",checked);\n      // console.log(\"indeterminate:\",indeterminate);\n      for(var i = 0 , l = this.menuList.length; i < l; i++){\n        let item = this.menuList[i];\n        if(data.code == item.code){\n          item.select = checked ? 1 : 0;\n          this.menuList[i] = item;\n          i = l;\n          console.log(\"item:\",item);\n        }\n      }\n      if(checked){\n        for(var i = 0 , l = this.menuList.length; i < l; i++){\n          let item = this.menuList[i];\n          if(data.parent_code == item.code){\n            item.select = 1;\n            this.menuList[i] = item;\n            i = l;\n            console.log(\"item:\",item);\n          }\n        }\n      }else{\n        let child_menu_list = [];\n        for(var i = 0 , l = this.menuList.length; i < l; i++){\n          let item = this.menuList[i];\n          if(data.parent_code == item.parent_code && item.select == 1){\n            child_menu_list.push(item);\n          }\n        }\n        if(child_menu_list.length <= 0){\n          for(var i = 0 , l = this.menuList.length; i < l; i++){\n            let item = this.menuList[i];\n            if(data.parent_code == item.code){\n              item.select = 0;\n              this.menuList[i] = item;\n              i = l;\n            }\n          }\n        }\n\n      }\n\n\n    },\n    /** 表单提交，区分好 是 新增 、 更新 */\n    async dataFormSubmit() {\n      await this.$confirm(`确认？`, \"提示\", {\n        type: \"warning\"\n      });\n      let menuIdList = [];\n      let menuList = this.menuList;\n      menuList.map((v) => {\n        if(v.select == 1) menuIdList.push(v._id)\n      })\n      //console.log(\"menuList:\",menuList);\n      console.log(\"menuIdList:\",menuIdList);\n      //return false;\n      menuIdList = JSON.stringify(menuIdList);\n      let postData = {\n        role:this.roleId,\n        menuIdList\n      }\n      let res = await API.setRoleMenu(postData);\n      this.dialogFormVisible = false;\n      this.$message({\n        message: `编辑成功`,\n        type: \"success\",\n        duration: 1501,\n        onClose: () => {\n        }\n      });\n      // this.$refs[\"dataForm\"].validate(async valid => {\n      //   if (valid) {\n      //     const tempData = _.cloneDeep(this.form);\n      //     tempData.time=this.value1\n      //     console.log(\"input info :------------------------ \", tempData);\n      //     let res;\n      //     if (this.dialogStatus === \"update\") {\n      //       tempData.id = this.form._id;\n      //       res = await API.update(tempData);\n      //     } else if (this.dialogStatus === \"add\") {\n      //       res = await API.create(tempData);\n      //     }\n      //     console.log(\"res: \", res);\n\n      //     this.dialogFormVisible = false;\n\n      //     this.$message({\n      //       message: `${this.textMap[this.dialogStatus]}成功`,\n      //       type: \"success\",\n      //       duration: 1501,\n      //       onClose: () => {\n      //       }\n      //     });\n\n      //     setTimeout(() => {\n      //       this.$emit(\"refreshDataList\");\n      //     }, 500);\n      //   }\n      // });\n    }\n  }\n};\n",null]}