{"version":3,"file":"menuTreeSelect.mjs","sources":["../../../../src/comDefault/TreeSelect/menuTreeSelect.vue"],"sourcesContent":["<template>\r\n  <a-tree-select\r\n      v-model:value=\"defaultSelectKeys\"\r\n      show-search\r\n      style=\"width: 100%\"\r\n      :dropdown-style=\"{ maxHeight: '400px', overflow: 'auto' }\"\r\n      placeholder=\"请选择菜单\"\r\n      :field-names=\"treeFieldNames\"\r\n      allow-clear\r\n      multiple\r\n      tree-default-expand-all\r\n      :tree-data=\"menu\"\r\n  >\r\n  </a-tree-select>\r\n</template>\r\n<script setup name=\"menuTreeSelect\">\r\nimport {tool} from 'elead-ui-tool-v3'\r\nimport {onMounted} from 'vue'\r\nconst defaultSelectKeys = ref([])\r\nconst menu = ref([])\r\nconst props = defineProps({\r\n  defaultSelectKeys: {\r\n    type: Array,\r\n    default: () => [],\r\n    required: false\r\n  },\r\n  defaultSelectData: {\r\n    type: Array,\r\n    default: () => [],\r\n    required: false\r\n  },\r\n  resultData: {\r\n    type: Boolean,\r\n    default: () => false,\r\n    required: false\r\n  }\r\n})\r\nconst treeFieldNames = {children: 'children', title: 'title', key: 'id', value: 'id'}\r\nonMounted(() => {\r\n  // 设置选中项目，调用的地方可传纯id数组，或者是对象型数组\r\n  if (!props.defaultSelectKeys) {\r\n    defaultSelectKeys.value = props.defaultSelectData.map((m) => {\r\n      return m.id\r\n    })\r\n  } else {\r\n    defaultSelectKeys.value = props.defaultSelectKeys\r\n  }\r\n  menu.value = traverseChildren(tool.data.get('MENU'))\r\n})\r\n// 遍历增加属性\r\nconst traverseChildren = (data = []) => {\r\n  // 递归遍历控件树\r\n  const traverse = (array) => {\r\n    array.forEach((element) => {\r\n      if (element.children) {\r\n        // 设置支节点不可选择\r\n        element.selectable = false\r\n        traverse(element.children)\r\n      }\r\n    })\r\n  }\r\n  traverse(data)\r\n  return data\r\n}\r\n// 遍历增加属性\r\nconst traverseResultDataList = (menu, data = []) => {\r\n  const result = []\r\n  // 递归遍历控件树\r\n  const traverse = (array) => {\r\n    array.forEach((element) => {\r\n      if (data) {\r\n        data.forEach((item) => {\r\n          if (item === element.id) {\r\n            const obj = {\r\n              id: element.id,\r\n              title: element.title,\r\n              icon: element.icon,\r\n              path: element.path\r\n            }\r\n            result.push(obj)\r\n          }\r\n        })\r\n      }\r\n      if (element.children) {\r\n        traverse(element.children)\r\n      }\r\n    })\r\n  }\r\n  traverse(menu)\r\n  return result\r\n}\r\n// 获取选择的数据\r\nconst getSelectData = () => {\r\n  if (props.resultData) {\r\n    return traverseResultDataList(menu.value, defaultSelectKeys.value)\r\n  }\r\n  return defaultSelectKeys.value\r\n}\r\n// 设置回显的数据\r\nconst setSelectData = (data) => {\r\n  defaultSelectKeys.value = data.map((m) => {\r\n    return m.id\r\n  })\r\n}\r\ndefineExpose({\r\n  getSelectData,\r\n  setSelectData\r\n})\r\n</script>\r\n"],"names":["menu","_createBlock","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBA,UAAM,oBAAoB,IAAI,EAAE;AAChC,UAAM,OAAO,IAAI,EAAE;AACnB,UAAM,QAAQ;AAiBd,UAAM,iBAAiB,EAAC,UAAU,YAAY,OAAO,SAAS,KAAK,MAAM,OAAO,KAAI;AACpF,cAAU,MAAM;AAEd,UAAI,CAAC,MAAM,mBAAmB;AAC5B,0BAAkB,QAAQ,MAAM,kBAAkB,IAAI,CAAC,MAAM;AAC3D,iBAAO,EAAE;AAAA,QACf,CAAK;AAAA,MACL,OAAS;AACL,0BAAkB,QAAQ,MAAM;AAAA,MACjC;AACD,WAAK,QAAQ,iBAAiB,KAAK,KAAK,IAAI,MAAM,CAAC;AAAA,IACrD,CAAC;AAED,UAAM,mBAAmB,CAAC,OAAO,OAAO;AAEtC,YAAM,WAAW,CAAC,UAAU;AAC1B,cAAM,QAAQ,CAAC,YAAY;AACzB,cAAI,QAAQ,UAAU;AAEpB,oBAAQ,aAAa;AACrB,qBAAS,QAAQ,QAAQ;AAAA,UAC1B;AAAA,QACP,CAAK;AAAA,MACF;AACD,eAAS,IAAI;AACb,aAAO;AAAA,IACT;AAEA,UAAM,yBAAyB,CAACA,OAAM,OAAO,OAAO;AAClD,YAAM,SAAS,CAAE;AAEjB,YAAM,WAAW,CAAC,UAAU;AAC1B,cAAM,QAAQ,CAAC,YAAY;AACzB,cAAI,MAAM;AACR,iBAAK,QAAQ,CAAC,SAAS;AACrB,kBAAI,SAAS,QAAQ,IAAI;AACvB,sBAAM,MAAM;AAAA,kBACV,IAAI,QAAQ;AAAA,kBACZ,OAAO,QAAQ;AAAA,kBACf,MAAM,QAAQ;AAAA,kBACd,MAAM,QAAQ;AAAA,gBACf;AACD,uBAAO,KAAK,GAAG;AAAA,cAChB;AAAA,YACX,CAAS;AAAA,UACF;AACD,cAAI,QAAQ,UAAU;AACpB,qBAAS,QAAQ,QAAQ;AAAA,UAC1B;AAAA,QACP,CAAK;AAAA,MACF;AACD,eAASA,KAAI;AACb,aAAO;AAAA,IACT;AAEA,UAAM,gBAAgB,MAAM;AAC1B,UAAI,MAAM,YAAY;AACpB,eAAO,uBAAuB,KAAK,OAAO,kBAAkB,KAAK;AAAA,MAClE;AACD,aAAO,kBAAkB;AAAA,IAC3B;AAEA,UAAM,gBAAgB,CAAC,SAAS;AAC9B,wBAAkB,QAAQ,KAAK,IAAI,CAAC,MAAM;AACxC,eAAO,EAAE;AAAA,MACb,CAAG;AAAA,IACH;AACA,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC;;;0BA1GCC,YAYgB,0BAAA;AAAA,QAXJ,OAAOC,MAAiB,iBAAA;AAAA,2FAAjB,kBAAiB,QAAA,SAAA;AAAA,QAChC,eAAA;AAAA,QACA,OAAA,EAAmB,SAAA,OAAA;AAAA,QAClB,kBAAgB,EAAwC,WAAA,SAAA,UAAA,OAAA;AAAA,QACzD,aAAY;AAAA,QACX,eAAa;AAAA,QACd,eAAA;AAAA,QACA,UAAA;AAAA,QACA,2BAAA;AAAA,QACC,aAAWA,MAAI,IAAA;AAAA;;;;;"}