├── web ├── src │ ├── assets │ │ ├── svg │ │ │ ├── food │ │ │ │ └── 食物 │ │ │ ├── tools │ │ │ │ └── 工具 │ │ │ ├── travel │ │ │ │ ├── 旅行 │ │ │ │ ├── huafei.svg │ │ │ │ └── jiudian.svg │ │ │ ├── business │ │ │ │ ├── 商务 │ │ │ │ ├── sannianjihua.svg │ │ │ │ ├── zhishichanquan.svg │ │ │ │ ├── gongzuohuibao.svg │ │ │ │ ├── -_15.svg │ │ │ │ ├── gongwenjiaohuan.svg │ │ │ │ ├── tongzhifabu.svg │ │ │ │ ├── gudingzichan.svg │ │ │ │ ├── zongheshenpi.svg │ │ │ │ └── -_3.svg │ │ │ ├── education │ │ │ │ ├── 教育 │ │ │ │ ├── a-19guaizhang.svg │ │ │ │ └── a-18-xiguan.svg │ │ │ ├── festival │ │ │ │ ├── 节日 │ │ │ │ ├── shuang.svg │ │ │ │ ├── jiaoshijie.svg │ │ │ │ ├── zhongyangjie.svg │ │ │ │ ├── laodongjie.svg │ │ │ │ ├── zhongqiujie.svg │ │ │ │ ├── yuandan.svg │ │ │ │ ├── muqinjie.svg │ │ │ │ ├── nvshengjie.svg │ │ │ │ ├── ganenjie.svg │ │ │ │ ├── qixi.svg │ │ │ │ ├── duanwujie.svg │ │ │ │ ├── hushijie.svg │ │ │ │ ├── ertongjie.svg │ │ │ │ └── fuqinjie.svg │ │ │ └── medicine │ │ │ │ ├── 医疗 │ │ │ │ ├── a-19guaizhang.svg │ │ │ │ └── a-18-xiguan.svg │ │ ├── .DS_Store │ │ ├── avatar │ │ │ ├── L.jpg │ │ │ ├── 。.png │ │ │ ├── 乙.jpg │ │ │ ├── 峰.jpg │ │ │ ├── 敏.jpg │ │ │ ├── 棐.jpg │ │ │ ├── 欣.jpg │ │ │ ├── 炫.jpg │ │ │ ├── 行.jpg │ │ │ ├── Alex.jpg │ │ │ ├── HaHN.jpg │ │ │ ├── Joe.jpg │ │ │ ├── Kyle.jpg │ │ │ ├── ZX.jpg │ │ │ ├── ZXR.jpg │ │ │ ├── hi.jpg │ │ │ ├── moom.jpg │ │ │ ├── qp.jpg │ │ │ ├── suka.jpg │ │ │ ├── 一亩三.jpg │ │ │ ├── 一叶孤舟.jpg │ │ │ ├── 仓鼠.jpg │ │ │ ├── 俊奇.jpg │ │ │ ├── 兔子快跑.jpg │ │ │ ├── 冒号括号.png │ │ │ ├── 千帆.jpg │ │ │ ├── 南风.jpg │ │ │ ├── 可米阳光.jpg │ │ │ ├── 国发.jpg │ │ │ ├── 天清如愿.jpg │ │ │ ├── 好名字.jpg │ │ │ ├── 子豪.jpg │ │ │ ├── 宏涛.jpg │ │ │ ├── 小米.jpg │ │ │ ├── 小逗比.png │ │ │ ├── 布林.jpg │ │ │ ├── 广兴.jpg │ │ │ ├── 庆国.jpg │ │ │ ├── 张扬.png │ │ │ ├── 张文建.jpg │ │ │ ├── 御风.jpg │ │ │ ├── 志斌.jpg │ │ │ ├── 戚永峰.png │ │ │ ├── 才镇.jpg │ │ │ ├── 敬明朗.jpg │ │ │ ├── 旋风.jpg │ │ │ ├── 旭东.png │ │ │ ├── 时光匆匆.png │ │ │ ├── 星夜寒.jpg │ │ │ ├── 晴空.jpg │ │ │ ├── 有希.jpg │ │ │ ├── 木星二号.jpg │ │ │ ├── 木木.jpg │ │ │ ├── 桌案.jpg │ │ │ ├── 梁辉.jpg │ │ │ ├── 樊笼.jpg │ │ │ ├── 橘半.jpg │ │ │ ├── 水车.jpg │ │ │ ├── 汪津合.jpg │ │ │ ├── 沐风牧草.jpg │ │ │ ├── 沨沄.jpg │ │ │ ├── 海云.jpg │ │ │ ├── 皇登攀.jpg │ │ │ ├── 皮老板.jpg │ │ │ ├── 神话.jpg │ │ │ ├── 继龙.jpg │ │ │ ├── 胡永刚.jpg │ │ │ ├── 花儿朵朵.jpg │ │ │ ├── 达仁科技.jpg │ │ │ ├── 逆水行舟.jpg │ │ │ ├── 阿晨.jpg │ │ │ ├── 雨馨.jpg │ │ │ ├── 风格.jpg │ │ │ ├── Chris.jpg │ │ │ ├── Sword.png │ │ │ ├── Think.jpg │ │ │ ├── Tobin.jpg │ │ │ ├── Xavier.png │ │ │ ├── buddy.jpg │ │ │ ├── ccccs.jpg │ │ │ ├── h.r.w.jpg │ │ │ ├── pluvet.jpg │ │ │ ├── 在下青铜五.jpg │ │ │ ├── 夏虫不语冰.jpg │ │ │ ├── 最多5个字.jpg │ │ │ ├── 秀树因馨雨.jpg │ │ │ ├── 蜉蝣撼大叔.jpg │ │ │ ├── 长沙利奥软件.jpg │ │ │ ├── 4399行星元帅.jpg │ │ │ ├── Jeffrey.jpg │ │ │ ├── Lawliet.jpg │ │ │ ├── MrFujing.png │ │ │ ├── default.png │ │ │ ├── lsytyrt.jpg │ │ │ ├── 好好先生Ervin.jpg │ │ │ ├── 小土渣的宇宙.jpeg │ │ │ ├── 慕智打印-兰兰.jpg │ │ │ ├── 黄智彪@一米一栗科技.png │ │ │ └── xbkkjbs0246658.png │ │ ├── img │ │ │ ├── gzh.jpeg │ │ │ ├── logo.png │ │ │ ├── alipay.jpg │ │ │ ├── logo2.png │ │ │ ├── wechat.jpg │ │ │ ├── foramt │ │ │ │ ├── 1.png │ │ │ │ ├── 10.png │ │ │ │ ├── 2.png │ │ │ │ ├── 3.png │ │ │ │ ├── 4.png │ │ │ │ ├── 5.png │ │ │ │ ├── 6.png │ │ │ │ ├── 7.png │ │ │ │ ├── 8.png │ │ │ │ └── 9.png │ │ │ ├── structures │ │ │ │ ├── fishbone.jpg │ │ │ │ ├── mindMap.jpg │ │ │ │ ├── timeline.jpg │ │ │ │ ├── fishbone2.jpg │ │ │ │ ├── timeline2.jpg │ │ │ │ ├── rightFishbone.jpg │ │ │ │ ├── logicalStructure.jpg │ │ │ │ ├── rightFishbone2.jpg │ │ │ │ ├── verticalTimeline.jpg │ │ │ │ ├── verticalTimeline2.jpg │ │ │ │ ├── verticalTimeline3.jpg │ │ │ │ ├── catalogOrganization.jpg │ │ │ │ ├── logicalStructureLeft.jpg │ │ │ │ └── organizationStructure.jpg │ │ │ └── 图片加载失败.svg │ │ └── icon-font │ │ │ ├── .DS_Store │ │ │ ├── iconfont.ttf │ │ │ ├── iconfont.woff │ │ │ └── iconfont.woff2 │ ├── .DS_Store │ ├── lang │ │ └── index.js │ ├── i18n.js │ ├── utils │ │ └── loading.js │ ├── pages │ │ ├── Doc.vue │ │ └── Edit │ │ │ └── components │ │ │ ├── NodeImgPreview.vue │ │ │ ├── Fullscreen.vue │ │ │ ├── MouseAction.vue │ │ │ ├── Color.vue │ │ │ └── NodeNoteSidebar.vue │ ├── router.js │ ├── App.vue │ ├── main.js │ ├── style │ │ └── outlineTree.less │ └── components │ │ └── ImgUpload │ │ ├── style.less │ │ └── index.vue ├── .env.library ├── public │ └── logo.ico ├── babel.config.js ├── .prettierrc ├── .prettierignore ├── scripts │ ├── updateVersion.js │ ├── createNodeImageList.js │ └── ai.js ├── vue.config.js └── package.json ├── qrcode.jpg ├── dist ├── logo.ico ├── img │ ├── dark.jpg │ ├── gold.jpg │ ├── mint.jpg │ ├── oreo.jpg │ ├── rose.jpg │ ├── autumn.jpg │ ├── avocado.jpg │ ├── blueSky.jpg │ ├── cactus.jpg │ ├── classic.jpg │ ├── coffee.jpg │ ├── dark2.jpg │ ├── dark3.jpg │ ├── dark4.jpg │ ├── dark5.png │ ├── dark6.png │ ├── dark7.png │ ├── default.jpg │ ├── mindMap.jpg │ ├── minions.jpg │ ├── morandi.jpg │ ├── blackGold.jpg │ ├── classic10.png │ ├── classic11.png │ ├── classic12.png │ ├── classic13.png │ ├── classic14.png │ ├── classic15.png │ ├── classic2.jpg │ ├── classic3.jpg │ ├── classic4.jpg │ ├── classic5.jpg │ ├── classic6.jpg │ ├── classic7.jpg │ ├── classic8.png │ ├── classic9.png │ ├── fishbone.jpg │ ├── fishbone2.jpg │ ├── freshRed.jpg │ ├── greenLeaf.jpg │ ├── neonLamp.jpg │ ├── pinkGrape.jpg │ ├── redSpirit.jpg │ ├── skyGreen.jpg │ ├── timeline.jpg │ ├── timeline2.jpg │ ├── blackHumour.jpg │ ├── classicBlue.jpg │ ├── classicGreen.jpg │ ├── courseGreen.jpg │ ├── earthYellow.jpg │ ├── freshGreen.jpg │ ├── lemonBubbles.jpg │ ├── orangeJuice.jpg │ ├── seaBlueLine.jpg │ ├── shallowSea.jpg │ ├── simpleBlack.jpg │ ├── rightFishbone.jpg │ ├── rightFishbone2.jpg │ ├── romanticPurple.jpg │ ├── vitalityOrange.jpg │ ├── brainImpairedPink.jpg │ ├── darkNightLceBlade.jpg │ ├── lateNightOffice.jpg │ ├── logicalStructure.jpg │ ├── verticalTimeline.jpg │ ├── verticalTimeline2.jpg │ ├── verticalTimeline3.jpg │ ├── catalogOrganization.jpg │ ├── logicalStructureLeft.jpg │ ├── organizationStructure.jpg │ ├── shuang.svg │ ├── jiaoshijie.svg │ ├── zhongyangjie.svg │ ├── laodongjie.svg │ ├── zhongqiujie.svg │ ├── sannianjihua.svg │ ├── yuandan.svg │ ├── muqinjie.svg │ ├── nvshengjie.svg │ ├── ganenjie.svg │ ├── 图片加载失败.svg │ ├── qixi.svg │ ├── duanwujie.svg │ ├── hushijie.svg │ ├── ertongjie.svg │ ├── zhishichanquan.svg │ ├── gongzuohuibao.svg │ ├── -_15.svg │ ├── a-19guaizhang.svg │ ├── gongwenjiaohuan.svg │ ├── huafei.svg │ ├── tongzhifabu.svg │ ├── gudingzichan.svg │ ├── zongheshenpi.svg │ ├── jiudian.svg │ ├── -_3.svg │ ├── a-18-xiguan.svg │ └── fuqinjie.svg ├── fonts │ ├── iconfont.ttf │ ├── iconfont.woff │ ├── iconfont.woff2 │ ├── element-icons.ttf │ └── element-icons.woff ├── css │ └── chunk-3222d6ee.css └── js │ └── chunk-3222d6ee.js ├── .gitignore ├── simple-mind-map ├── README.md ├── .prettierrc ├── src │ ├── theme │ │ └── index.js │ ├── parse │ │ ├── markdown.js │ │ ├── toTxt.js │ │ └── toMarkdown.js │ ├── plugins │ │ ├── ExportXMind.js │ │ ├── ExportPDF.js │ │ ├── Painter.js │ │ └── RainbowLines.js │ ├── utils │ │ ├── BatchExecution.js │ │ ├── Lru.js │ │ ├── AutoMove.js │ │ └── mersenneTwister.js │ └── core │ │ ├── command │ │ └── keyMap.js │ │ └── render │ │ └── node │ │ ├── nodeCommandWraps.js │ │ └── nodeExpandBtnPlaceholderRect.js ├── .prettierignore ├── .eslintrc.js ├── bin │ └── createPluginsTypeFiles.js ├── scripts │ └── walkJsFiles.js ├── package.json ├── example │ └── exportFullData.json └── full.js ├── Dockerfile ├── copy.js ├── nginx.conf └── LICENSE /web/src/assets/svg/food/食物: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/tools/工具: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/travel/旅行: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/.env.library: -------------------------------------------------------------------------------- 1 | NODE_ENV=library -------------------------------------------------------------------------------- /web/src/assets/svg/business/商务: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/education/教育: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/节日: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/medicine/医疗: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/qrcode.jpg -------------------------------------------------------------------------------- /dist/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/logo.ico -------------------------------------------------------------------------------- /dist/img/dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark.jpg -------------------------------------------------------------------------------- /dist/img/gold.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/gold.jpg -------------------------------------------------------------------------------- /dist/img/mint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/mint.jpg -------------------------------------------------------------------------------- /dist/img/oreo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/oreo.jpg -------------------------------------------------------------------------------- /dist/img/rose.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/rose.jpg -------------------------------------------------------------------------------- /web/src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/.DS_Store -------------------------------------------------------------------------------- /dist/img/autumn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/autumn.jpg -------------------------------------------------------------------------------- /dist/img/avocado.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/avocado.jpg -------------------------------------------------------------------------------- /dist/img/blueSky.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/blueSky.jpg -------------------------------------------------------------------------------- /dist/img/cactus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/cactus.jpg -------------------------------------------------------------------------------- /dist/img/classic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic.jpg -------------------------------------------------------------------------------- /dist/img/coffee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/coffee.jpg -------------------------------------------------------------------------------- /dist/img/dark2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark2.jpg -------------------------------------------------------------------------------- /dist/img/dark3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark3.jpg -------------------------------------------------------------------------------- /dist/img/dark4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark4.jpg -------------------------------------------------------------------------------- /dist/img/dark5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark5.png -------------------------------------------------------------------------------- /dist/img/dark6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark6.png -------------------------------------------------------------------------------- /dist/img/dark7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/dark7.png -------------------------------------------------------------------------------- /dist/img/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/default.jpg -------------------------------------------------------------------------------- /dist/img/mindMap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/mindMap.jpg -------------------------------------------------------------------------------- /dist/img/minions.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/minions.jpg -------------------------------------------------------------------------------- /dist/img/morandi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/morandi.jpg -------------------------------------------------------------------------------- /web/public/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/public/logo.ico -------------------------------------------------------------------------------- /dist/img/blackGold.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/blackGold.jpg -------------------------------------------------------------------------------- /dist/img/classic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic10.png -------------------------------------------------------------------------------- /dist/img/classic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic11.png -------------------------------------------------------------------------------- /dist/img/classic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic12.png -------------------------------------------------------------------------------- /dist/img/classic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic13.png -------------------------------------------------------------------------------- /dist/img/classic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic14.png -------------------------------------------------------------------------------- /dist/img/classic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic15.png -------------------------------------------------------------------------------- /dist/img/classic2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic2.jpg -------------------------------------------------------------------------------- /dist/img/classic3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic3.jpg -------------------------------------------------------------------------------- /dist/img/classic4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic4.jpg -------------------------------------------------------------------------------- /dist/img/classic5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic5.jpg -------------------------------------------------------------------------------- /dist/img/classic6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic6.jpg -------------------------------------------------------------------------------- /dist/img/classic7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic7.jpg -------------------------------------------------------------------------------- /dist/img/classic8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic8.png -------------------------------------------------------------------------------- /dist/img/classic9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classic9.png -------------------------------------------------------------------------------- /dist/img/fishbone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/fishbone.jpg -------------------------------------------------------------------------------- /dist/img/fishbone2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/fishbone2.jpg -------------------------------------------------------------------------------- /dist/img/freshRed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/freshRed.jpg -------------------------------------------------------------------------------- /dist/img/greenLeaf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/greenLeaf.jpg -------------------------------------------------------------------------------- /dist/img/neonLamp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/neonLamp.jpg -------------------------------------------------------------------------------- /dist/img/pinkGrape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/pinkGrape.jpg -------------------------------------------------------------------------------- /dist/img/redSpirit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/redSpirit.jpg -------------------------------------------------------------------------------- /dist/img/skyGreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/skyGreen.jpg -------------------------------------------------------------------------------- /dist/img/timeline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/timeline.jpg -------------------------------------------------------------------------------- /dist/img/timeline2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/timeline2.jpg -------------------------------------------------------------------------------- /dist/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/fonts/iconfont.ttf -------------------------------------------------------------------------------- /dist/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/fonts/iconfont.woff -------------------------------------------------------------------------------- /dist/fonts/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/fonts/iconfont.woff2 -------------------------------------------------------------------------------- /dist/img/blackHumour.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/blackHumour.jpg -------------------------------------------------------------------------------- /dist/img/classicBlue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classicBlue.jpg -------------------------------------------------------------------------------- /dist/img/classicGreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/classicGreen.jpg -------------------------------------------------------------------------------- /dist/img/courseGreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/courseGreen.jpg -------------------------------------------------------------------------------- /dist/img/earthYellow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/earthYellow.jpg -------------------------------------------------------------------------------- /dist/img/freshGreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/freshGreen.jpg -------------------------------------------------------------------------------- /dist/img/lemonBubbles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/lemonBubbles.jpg -------------------------------------------------------------------------------- /dist/img/orangeJuice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/orangeJuice.jpg -------------------------------------------------------------------------------- /dist/img/seaBlueLine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/seaBlueLine.jpg -------------------------------------------------------------------------------- /dist/img/shallowSea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/shallowSea.jpg -------------------------------------------------------------------------------- /dist/img/simpleBlack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/simpleBlack.jpg -------------------------------------------------------------------------------- /web/src/assets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/.DS_Store -------------------------------------------------------------------------------- /dist/img/rightFishbone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/rightFishbone.jpg -------------------------------------------------------------------------------- /dist/img/rightFishbone2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/rightFishbone2.jpg -------------------------------------------------------------------------------- /dist/img/romanticPurple.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/romanticPurple.jpg -------------------------------------------------------------------------------- /dist/img/vitalityOrange.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/vitalityOrange.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/L.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/L.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/。.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/。.png -------------------------------------------------------------------------------- /web/src/assets/avatar/乙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/乙.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/峰.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/峰.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/敏.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/敏.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/棐.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/棐.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/欣.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/欣.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/炫.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/炫.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/行.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/行.jpg -------------------------------------------------------------------------------- /web/src/assets/img/gzh.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/gzh.jpeg -------------------------------------------------------------------------------- /web/src/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/logo.png -------------------------------------------------------------------------------- /dist/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/fonts/element-icons.ttf -------------------------------------------------------------------------------- /dist/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/fonts/element-icons.woff -------------------------------------------------------------------------------- /dist/img/brainImpairedPink.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/brainImpairedPink.jpg -------------------------------------------------------------------------------- /dist/img/darkNightLceBlade.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/darkNightLceBlade.jpg -------------------------------------------------------------------------------- /dist/img/lateNightOffice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/lateNightOffice.jpg -------------------------------------------------------------------------------- /dist/img/logicalStructure.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/logicalStructure.jpg -------------------------------------------------------------------------------- /dist/img/verticalTimeline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/verticalTimeline.jpg -------------------------------------------------------------------------------- /dist/img/verticalTimeline2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/verticalTimeline2.jpg -------------------------------------------------------------------------------- /dist/img/verticalTimeline3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/verticalTimeline3.jpg -------------------------------------------------------------------------------- /web/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /web/src/assets/avatar/Alex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Alex.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/HaHN.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/HaHN.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Joe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Joe.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Kyle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Kyle.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/ZX.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/ZX.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/ZXR.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/ZXR.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/hi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/hi.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/moom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/moom.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/qp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/qp.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/suka.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/suka.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/一亩三.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/一亩三.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/一叶孤舟.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/一叶孤舟.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/仓鼠.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/仓鼠.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/俊奇.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/俊奇.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/兔子快跑.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/兔子快跑.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/冒号括号.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/冒号括号.png -------------------------------------------------------------------------------- /web/src/assets/avatar/千帆.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/千帆.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/南风.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/南风.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/可米阳光.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/可米阳光.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/国发.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/国发.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/天清如愿.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/天清如愿.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/好名字.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/好名字.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/子豪.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/子豪.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/宏涛.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/宏涛.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/小米.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/小米.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/小逗比.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/小逗比.png -------------------------------------------------------------------------------- /web/src/assets/avatar/布林.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/布林.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/广兴.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/广兴.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/庆国.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/庆国.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/张扬.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/张扬.png -------------------------------------------------------------------------------- /web/src/assets/avatar/张文建.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/张文建.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/御风.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/御风.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/志斌.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/志斌.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/戚永峰.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/戚永峰.png -------------------------------------------------------------------------------- /web/src/assets/avatar/才镇.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/才镇.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/敬明朗.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/敬明朗.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/旋风.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/旋风.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/旭东.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/旭东.png -------------------------------------------------------------------------------- /web/src/assets/avatar/时光匆匆.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/时光匆匆.png -------------------------------------------------------------------------------- /web/src/assets/avatar/星夜寒.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/星夜寒.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/晴空.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/晴空.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/有希.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/有希.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/木星二号.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/木星二号.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/木木.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/木木.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/桌案.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/桌案.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/梁辉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/梁辉.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/樊笼.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/樊笼.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/橘半.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/橘半.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/水车.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/水车.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/汪津合.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/汪津合.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/沐风牧草.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/沐风牧草.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/沨沄.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/沨沄.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/海云.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/海云.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/皇登攀.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/皇登攀.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/皮老板.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/皮老板.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/神话.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/神话.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/继龙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/继龙.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/胡永刚.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/胡永刚.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/花儿朵朵.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/花儿朵朵.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/达仁科技.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/达仁科技.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/逆水行舟.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/逆水行舟.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/阿晨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/阿晨.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/雨馨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/雨馨.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/风格.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/风格.jpg -------------------------------------------------------------------------------- /web/src/assets/img/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/alipay.jpg -------------------------------------------------------------------------------- /web/src/assets/img/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/logo2.png -------------------------------------------------------------------------------- /web/src/assets/img/wechat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/wechat.jpg -------------------------------------------------------------------------------- /dist/img/catalogOrganization.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/catalogOrganization.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Chris.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Chris.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Sword.png -------------------------------------------------------------------------------- /web/src/assets/avatar/Think.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Think.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Tobin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Tobin.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Xavier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Xavier.png -------------------------------------------------------------------------------- /web/src/assets/avatar/buddy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/buddy.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/ccccs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/ccccs.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/h.r.w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/h.r.w.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/pluvet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/pluvet.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/在下青铜五.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/在下青铜五.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/夏虫不语冰.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/夏虫不语冰.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/最多5个字.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/最多5个字.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/秀树因馨雨.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/秀树因馨雨.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/蜉蝣撼大叔.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/蜉蝣撼大叔.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/长沙利奥软件.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/长沙利奥软件.jpg -------------------------------------------------------------------------------- /web/src/assets/img/foramt/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/1.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/10.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/2.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/3.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/4.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/5.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/6.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/7.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/8.png -------------------------------------------------------------------------------- /web/src/assets/img/foramt/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/foramt/9.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist_electron 4 | simple-mind-map/dist 5 | simple-mind-map/types 6 | utools/dist -------------------------------------------------------------------------------- /dist/img/logicalStructureLeft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/logicalStructureLeft.jpg -------------------------------------------------------------------------------- /dist/img/organizationStructure.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/dist/img/organizationStructure.jpg -------------------------------------------------------------------------------- /web/.prettierrc: -------------------------------------------------------------------------------- 1 | semi: false 2 | singleQuote: true 3 | printWidth: 80 4 | trailingComma: 'none' 5 | arrowParens: 'avoid' 6 | -------------------------------------------------------------------------------- /web/src/assets/avatar/4399行星元帅.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/4399行星元帅.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Jeffrey.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Jeffrey.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/Lawliet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/Lawliet.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/MrFujing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/MrFujing.png -------------------------------------------------------------------------------- /web/src/assets/avatar/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/default.png -------------------------------------------------------------------------------- /web/src/assets/avatar/lsytyrt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/lsytyrt.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/好好先生Ervin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/好好先生Ervin.jpg -------------------------------------------------------------------------------- /web/src/assets/avatar/小土渣的宇宙.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/小土渣的宇宙.jpeg -------------------------------------------------------------------------------- /web/src/assets/avatar/慕智打印-兰兰.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/慕智打印-兰兰.jpg -------------------------------------------------------------------------------- /web/src/assets/icon-font/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/icon-font/.DS_Store -------------------------------------------------------------------------------- /web/src/assets/avatar/黄智彪@一米一栗科技.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/黄智彪@一米一栗科技.png -------------------------------------------------------------------------------- /web/src/assets/icon-font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/icon-font/iconfont.ttf -------------------------------------------------------------------------------- /simple-mind-map/README.md: -------------------------------------------------------------------------------- 1 | # 一个web思维导图的简单实现 2 | 3 | 详细文档见:[https://github.com/wanglin2/mind-map](https://github.com/wanglin2/mind-map) -------------------------------------------------------------------------------- /web/src/assets/avatar/xbkkjbs0246658.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/avatar/xbkkjbs0246658.png -------------------------------------------------------------------------------- /web/src/assets/icon-font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/icon-font/iconfont.woff -------------------------------------------------------------------------------- /web/src/assets/icon-font/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/icon-font/iconfont.woff2 -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx 2 | RUN mkdir /app 3 | COPY ./index.html /app/ 4 | COPY ./dist /app/dist/ 5 | COPY nginx.conf /etc/nginx/nginx.conf -------------------------------------------------------------------------------- /simple-mind-map/.prettierrc: -------------------------------------------------------------------------------- 1 | semi: false 2 | singleQuote: true 3 | printWidth: 80 4 | trailingComma: 'none' 5 | arrowParens: 'avoid' 6 | -------------------------------------------------------------------------------- /simple-mind-map/src/theme/index.js: -------------------------------------------------------------------------------- 1 | import defaultTheme from './default' 2 | 3 | export default { 4 | default: defaultTheme 5 | } 6 | -------------------------------------------------------------------------------- /web/src/assets/img/structures/fishbone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/fishbone.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/mindMap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/mindMap.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/timeline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/timeline.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/fishbone2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/fishbone2.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/timeline2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/timeline2.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/rightFishbone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/rightFishbone.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/logicalStructure.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/logicalStructure.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/rightFishbone2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/rightFishbone2.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/verticalTimeline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/verticalTimeline.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/verticalTimeline2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/verticalTimeline2.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/verticalTimeline3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/verticalTimeline3.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/catalogOrganization.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/catalogOrganization.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/logicalStructureLeft.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/logicalStructureLeft.jpg -------------------------------------------------------------------------------- /web/src/assets/img/structures/organizationStructure.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wanglin2/mind-map/HEAD/web/src/assets/img/structures/organizationStructure.jpg -------------------------------------------------------------------------------- /simple-mind-map/.prettierignore: -------------------------------------------------------------------------------- 1 | src/assets 2 | */.DS_Store 3 | dist 4 | example 5 | node_modules 6 | *.json 7 | *.md 8 | .eslintrc.js 9 | .prettierignore 10 | .prettierrc -------------------------------------------------------------------------------- /web/.prettierignore: -------------------------------------------------------------------------------- 1 | src/assets 2 | */.DS_Store 3 | node_modules 4 | public 5 | *.json 6 | *.md 7 | .eslintrc.js 8 | .prettierignore 9 | .prettierrc 10 | package-lock.json 11 | package.json -------------------------------------------------------------------------------- /dist/css/chunk-3222d6ee.css: -------------------------------------------------------------------------------- 1 | .doc[data-v-d024f2fc]{position:fixed;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}.doc a[data-v-d024f2fc]{color:#1ea59a} -------------------------------------------------------------------------------- /web/src/lang/index.js: -------------------------------------------------------------------------------- 1 | import en from './en_us' 2 | import zh from './zh_cn' 3 | import zhtw from './zh_tw' 4 | import vi from './vi_vn' 5 | 6 | export default { 7 | zh, 8 | zhtw, 9 | en, 10 | vi 11 | } 12 | -------------------------------------------------------------------------------- /simple-mind-map/src/parse/markdown.js: -------------------------------------------------------------------------------- 1 | import { transformToMarkdown } from './toMarkdown' 2 | import { transformMarkdownTo } from './markdownTo' 3 | 4 | export default { 5 | transformToMarkdown, 6 | transformMarkdownTo 7 | } 8 | -------------------------------------------------------------------------------- /web/src/i18n.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueI18n from 'vue-i18n' 3 | import messages from './lang' 4 | 5 | Vue.use(VueI18n) 6 | 7 | const i18n = new VueI18n({ 8 | messages, 9 | fallbackLocale: 'zh' 10 | }) 11 | 12 | export default i18n 13 | -------------------------------------------------------------------------------- /web/src/utils/loading.js: -------------------------------------------------------------------------------- 1 | import { Loading } from 'element-ui' 2 | 3 | let loadingInstance = null 4 | 5 | export const showLoading = () => { 6 | loadingInstance = Loading.service({ 7 | lock: true 8 | }) 9 | } 10 | 11 | export const hideLoading = () => { 12 | if (loadingInstance) { 13 | loadingInstance.close() 14 | loadingInstance = null 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /web/scripts/updateVersion.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const fs = require('fs') 3 | const pkg = require('../../simple-mind-map/package.json') 4 | 5 | const file = path.resolve('../simple-mind-map/full.js') 6 | let content = fs.readFileSync(file, 'utf-8') 7 | content = content.replace( 8 | /(MindMap.version\s*=\s*)[^\n]+(\n)/, 9 | `$1'${pkg.version}'$2` 10 | ) 11 | fs.writeFileSync(file, content) -------------------------------------------------------------------------------- /copy.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | 4 | const src = path.resolve(__dirname, './dist/index.html') 5 | const dest = path.resolve(__dirname, './index.html') 6 | 7 | if (fs.existsSync(dest)) { 8 | fs.unlinkSync(dest) 9 | } 10 | 11 | if (fs.existsSync(src)) { 12 | fs.copyFileSync(src, dest) 13 | fs.unlinkSync(src) 14 | } 15 | 16 | // console.warn('请检查付费插件是否启用!!!') -------------------------------------------------------------------------------- /simple-mind-map/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "overrides": [ 8 | ], 9 | "parserOptions": { 10 | "parser": 'babel-eslint', 11 | "ecmaVersion": 12, 12 | "sourceType": "module", 13 | "allowImportExportEverywhere": true 14 | }, 15 | "rules": { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /dist/img/shuang.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/pages/Doc.vue: -------------------------------------------------------------------------------- 1 | T 6 | 7 | 25 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/shuang.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/router.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | const routes = [ 7 | { 8 | path: '/', 9 | name: 'Edit', 10 | component: () => import(`./pages/Edit/Index.vue`) 11 | }, 12 | { 13 | path: '/index', 14 | redirect: '/' 15 | }, 16 | { 17 | path: '/doc/zh', 18 | component: () => import(`./pages/Doc.vue`) 19 | } 20 | ] 21 | 22 | const router = new VueRouter({ 23 | routes 24 | }) 25 | 26 | export default router 27 | -------------------------------------------------------------------------------- /dist/js/chunk-3222d6ee.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3222d6ee"],{"33af":function(t,n,s){},9372:function(t,n,s){"use strict";s("33af")},f226:function(t,n,s){"use strict";s.r(n);var c=function(){var t=this;t._self._c;return t._m(0)},i=[function(){var t=this,n=t._self._c;return n("div",{staticClass:"doc"},[t._v(" 文档已迁移至:"),n("a",{attrs:{href:"https://wanglin2.github.io/mind-map-docs/"}},[t._v("新地址")])])}],a=(s("9372"),s("2877")),u={},e=Object(a["a"])(u,c,i,!1,null,"d024f2fc",null);n["default"]=e.exports}}]); -------------------------------------------------------------------------------- /simple-mind-map/src/plugins/ExportXMind.js: -------------------------------------------------------------------------------- 1 | import xmind from '../parse/xmind' 2 | 3 | // 导出XMind插件,需要通过Export插件使用 4 | class ExportXMind { 5 | // 构造函数 6 | constructor(opt) { 7 | this.mindMap = opt.mindMap 8 | } 9 | 10 | // 导出xmind 11 | async xmind(data, name) { 12 | const zipData = await xmind.transformToXmind(data, name) 13 | return zipData 14 | } 15 | 16 | // 获取解析器 17 | getXmind() { 18 | return xmind 19 | } 20 | } 21 | 22 | ExportXMind.instanceName = 'doExportXMind' 23 | 24 | export default ExportXMind 25 | -------------------------------------------------------------------------------- /simple-mind-map/bin/createPluginsTypeFiles.js: -------------------------------------------------------------------------------- 1 | const { exec } = require('child_process') 2 | const fs = require('fs') 3 | 4 | const base = './src/plugins/' 5 | const list = fs.readdirSync(base) 6 | const files = [] 7 | list.forEach(item => { 8 | const stat = fs.statSync(base + item) 9 | if (stat.isFile()) { 10 | files.push(item) 11 | } 12 | }) 13 | const str = files 14 | .map(item => { 15 | return base + item 16 | }) 17 | .join(' ') 18 | 19 | exec( 20 | `tsc ${str} --declaration --allowJs --emitDeclarationOnly --outDir types/src/ --target es2017 --skipLibCheck ` 21 | ) 22 | -------------------------------------------------------------------------------- /dist/img/jiaoshijie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/jiaoshijie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/zhongyangjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/zhongyangjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 47 | -------------------------------------------------------------------------------- /web/src/pages/Edit/components/NodeImgPreview.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- 1 | user nginx; 2 | worker_processes 1; 3 | error_log /var/log/nginx/error.log warn; 4 | pid /var/run/nginx.pid; 5 | events { 6 | worker_connections 1024; 7 | } 8 | http { 9 | include /etc/nginx/mime.types; 10 | default_type application/octet-stream; 11 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 12 | '$status $body_bytes_sent "$http_referer" ' 13 | '"$http_user_agent" "$http_x_forwarded_for"'; 14 | access_log /var/log/nginx/access.log main; 15 | sendfile on; 16 | keepalive_timeout 65; 17 | server { 18 | listen 80; 19 | server_name localhost; 20 | location / { 21 | root /app; 22 | index index.html; 23 | try_files $uri $uri/ /index.html; 24 | } 25 | error_page 500 502 503 504 /50x.html; 26 | location = /50x.html { 27 | root /usr/share/nginx/html; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /web/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | import ElementUI from 'element-ui' 6 | import 'element-ui/lib/theme-chalk/index.css' 7 | import '@/assets/icon-font/iconfont.css' 8 | import 'viewerjs/dist/viewer.css' 9 | import VueViewer from 'v-viewer' 10 | import i18n from './i18n' 11 | import { getLang } from '@/api' 12 | // import VConsole from 'vconsole' 13 | // const vConsole = new VConsole() 14 | 15 | Vue.config.productionTip = false 16 | const bus = new Vue() 17 | Vue.prototype.$bus = bus 18 | Vue.use(ElementUI) 19 | Vue.use(VueViewer) 20 | 21 | const initApp = () => { 22 | i18n.locale = getLang() 23 | new Vue({ 24 | render: h => h(App), 25 | router, 26 | store, 27 | i18n 28 | }).$mount('#app') 29 | } 30 | 31 | // 是否处于接管应用模式 32 | if (window.takeOverApp) { 33 | window.initApp = initApp 34 | window.$bus = bus 35 | } else { 36 | initApp() 37 | } 38 | -------------------------------------------------------------------------------- /simple-mind-map/src/parse/toTxt.js: -------------------------------------------------------------------------------- 1 | import { walk, nodeRichTextToTextWithWrap } from '../utils' 2 | 3 | const getNodeText = data => { 4 | return data.richText ? nodeRichTextToTextWithWrap(data.text) : data.text 5 | } 6 | 7 | const getIndent = level => { 8 | return new Array(level).fill(' ').join('') 9 | } 10 | 11 | // 转换成txt格式 12 | export const transformToTxt = root => { 13 | let content = '' 14 | walk( 15 | root, 16 | null, 17 | (node, parent, isRoot, layerIndex) => { 18 | content += getIndent(layerIndex) 19 | content += ' ' + getNodeText(node.data) 20 | // 概要 21 | const generalization = node.data.generalization 22 | if (Array.isArray(generalization)) { 23 | content += generalization.map(item => { 24 | return ` [${getNodeText(item)}]` 25 | }) 26 | } else if (generalization && generalization.text) { 27 | content += ` [${getNodeText(generalization)}]` 28 | } 29 | content += '\n\n' 30 | }, 31 | () => {}, 32 | true 33 | ) 34 | return content 35 | } 36 | -------------------------------------------------------------------------------- /simple-mind-map/src/utils/BatchExecution.js: -------------------------------------------------------------------------------- 1 | import { nextTick } from '.' 2 | 3 | // 批量执行 4 | class BatchExecution { 5 | // 构造函数 6 | constructor() { 7 | this.has = {} 8 | this.queue = [] 9 | this.nextTick = nextTick(this.flush, this) 10 | } 11 | 12 | // 添加任务 13 | push(name, fn) { 14 | if (this.has[name]) { 15 | this.replaceTask(name, fn) 16 | return 17 | } 18 | this.has[name] = true 19 | this.queue.push({ 20 | name, 21 | fn 22 | }) 23 | this.nextTick() 24 | } 25 | 26 | // 替换任务 27 | replaceTask(name, fn) { 28 | const index = this.queue.findIndex(item => { 29 | return item.name === name 30 | }) 31 | if (index !== -1) { 32 | this.queue[index] = { 33 | name, 34 | fn 35 | } 36 | } 37 | } 38 | 39 | // 执行队列 40 | flush() { 41 | let fns = this.queue.slice(0) 42 | this.queue = [] 43 | fns.forEach(({ name, fn }) => { 44 | this.has[name] = false 45 | fn() 46 | }) 47 | } 48 | } 49 | 50 | export default BatchExecution 51 | -------------------------------------------------------------------------------- /dist/img/laodongjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/zhongqiujie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/laodongjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/zhongqiujie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/src/core/command/keyMap.js: -------------------------------------------------------------------------------- 1 | const map = { 2 | Backspace: 8, 3 | Tab: 9, 4 | Enter: 13, 5 | 6 | Shift: 16, 7 | Control: 17, 8 | Alt: 18, 9 | CapsLock: 20, 10 | 11 | Esc: 27, 12 | 13 | Spacebar: 32, 14 | 15 | PageUp: 33, 16 | PageDown: 34, 17 | End: 35, 18 | Home: 36, 19 | 20 | Insert: 45, 21 | 22 | Left: 37, 23 | Up: 38, 24 | Right: 39, 25 | Down: 40, 26 | 27 | Del: 46, 28 | 29 | NumLock: 144, 30 | 31 | Cmd: 91, 32 | CmdFF: 224, 33 | F1: 112, 34 | F2: 113, 35 | F3: 114, 36 | F4: 115, 37 | F5: 116, 38 | F6: 117, 39 | F7: 118, 40 | F8: 119, 41 | F9: 120, 42 | F10: 121, 43 | F11: 122, 44 | F12: 123, 45 | 46 | '`': 192, 47 | '=': 187, 48 | '-': 189, 49 | 50 | '/': 191, 51 | '.': 190 52 | } 53 | 54 | // 数字 55 | for (let i = 0; i <= 9; i++) { 56 | map[i] = i + 48 57 | } 58 | 59 | // 字母 60 | 'abcdefghijklmnopqrstuvwxyz'.split('').forEach((n, index) => { 61 | map[n] = index + 65 62 | }) 63 | 64 | export const keyMap = map 65 | 66 | export const isKey = (e, key) => { 67 | let code = typeof e === 'object' ? e.keyCode : e 68 | return map[key] === code 69 | } 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2021-2023 The MindMap Team 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /simple-mind-map/src/utils/Lru.js: -------------------------------------------------------------------------------- 1 | // LRU缓存类 2 | export default class Lru { 3 | constructor(max) { 4 | this.max = max || 1000 5 | this.size = 0 6 | this.pool = new Map() 7 | } 8 | 9 | add(key, value) { 10 | const isExist = this.has(key) 11 | // 如果该key之前不存在,并且现在数量已经超出最大值,则不再继续添加 12 | if (!isExist && this.size >= this.max) { 13 | return false 14 | } 15 | // 已经存在则可以更新,因为不影响数量 16 | // 如果该key是否已经存在,则先删除 17 | this.delete(key) 18 | // 添加 19 | this.pool.set(key, value) 20 | this.size++ 21 | // 删除最早的没啥意义,详见:https://github.com/wanglin2/mind-map/issues/467 22 | // if (this.size > this.max) { 23 | // let keys = this.pool.keys() 24 | // let last = keys.next() 25 | // this.delete(last.value) 26 | // } 27 | return true 28 | } 29 | 30 | delete(key) { 31 | if (this.pool.has(key)) { 32 | this.pool.delete(key) 33 | this.size-- 34 | } 35 | } 36 | 37 | has(key) { 38 | return this.pool.has(key) 39 | } 40 | 41 | get(key) { 42 | if (this.pool.has(key)) { 43 | return this.pool.get(key) 44 | } 45 | } 46 | 47 | clear() { 48 | this.size = 0 49 | this.pool = new Map() 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /dist/img/sannianjihua.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/sannianjihua.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/scripts/walkJsFiles.js: -------------------------------------------------------------------------------- 1 | // 遍历所有js文件 2 | const path = require('path') 3 | const fs = require('fs') 4 | 5 | const entryPath = path.resolve(__dirname, '../src') 6 | 7 | const transform = dir => { 8 | let dirs = fs.readdirSync(dir) 9 | dirs.forEach(item => { 10 | let file = path.join(dir, item) 11 | if (fs.statSync(file).isDirectory()) { 12 | transform(file) 13 | } else if (/\.js$/.test(file)) { 14 | transformFile(file) 15 | } 16 | }) 17 | } 18 | 19 | const transformFile = file => { 20 | console.log(file) 21 | let content = fs.readFileSync(file, 'utf-8') 22 | countCodeLines(content) 23 | // transformComments(file, content) 24 | } 25 | 26 | // 统计代码行数 27 | let totalLines = 0 28 | const countCodeLines = content => { 29 | totalLines += content.split(/\n/).length 30 | } 31 | 32 | // 转换注释类型 33 | const transformComments = (file, content) => { 34 | console.log('当前转换文件:', file) 35 | content = content.replace(/\/\*\*[^/]+\*\//g, str => { 36 | let res = /@Desc:([^\n]+)\n/g.exec(str) 37 | if (res.length > 0) { 38 | return '// ' + res[1] 39 | } 40 | }) 41 | fs.writeFileSync(file, content) 42 | } 43 | 44 | transform(entryPath) 45 | transformFile(path.join(__dirname, '../index.js')) 46 | console.log(totalLines) 47 | -------------------------------------------------------------------------------- /dist/img/yuandan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/muqinjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/nvshengjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/yuandan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/muqinjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/nvshengjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/vue.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const isDev = process.env.NODE_ENV === 'development' 3 | const isLibrary = process.env.NODE_ENV === 'library' 4 | 5 | const WebpackDynamicPublicPathPlugin = require('webpack-dynamic-public-path') 6 | 7 | module.exports = { 8 | publicPath: isDev ? '' : './dist', 9 | outputDir: '../dist', 10 | lintOnSave: false, 11 | productionSourceMap: false, 12 | filenameHashing: false, 13 | transpileDependencies: ['yjs', 'lib0', 'quill'], 14 | chainWebpack: config => { 15 | // 移除 preload 插件 16 | config.plugins.delete('preload') 17 | // 移除 prefetch 插件 18 | config.plugins.delete('prefetch') 19 | // 支持运行时设置public path 20 | if (!isDev) { 21 | config 22 | .plugin('dynamicPublicPathPlugin') 23 | .use(WebpackDynamicPublicPathPlugin, [ 24 | { externalPublicPath: 'window.externalPublicPath' } 25 | ]) 26 | } 27 | // 给插入html页面内的js和css添加hash参数 28 | if (!isLibrary) { 29 | config.plugin('html').tap(args => { 30 | args[0].hash = true 31 | return args 32 | }) 33 | } 34 | }, 35 | configureWebpack: { 36 | resolve: { 37 | alias: { 38 | '@': path.resolve(__dirname, './src/') 39 | } 40 | } 41 | }, 42 | devServer: { 43 | proxy: { 44 | '^/api/v3/': { 45 | target: 'http://ark.cn-beijing.volces.com', 46 | changeOrigin: true 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /dist/img/ganenjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/ganenjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/src/parse/toMarkdown.js: -------------------------------------------------------------------------------- 1 | import { walk, nodeRichTextToTextWithWrap } from '../utils' 2 | 3 | const getNodeText = data => { 4 | return data.richText ? nodeRichTextToTextWithWrap(data.text) : data.text 5 | } 6 | 7 | const getTitleMark = level => { 8 | return new Array(level).fill('#').join('') 9 | } 10 | 11 | const getIndentMark = level => { 12 | return new Array(level - 6).fill(' ').join('') + '*' 13 | } 14 | 15 | // 转换成markdown格式 16 | export const transformToMarkdown = root => { 17 | let content = '' 18 | walk( 19 | root, 20 | null, 21 | (node, parent, isRoot, layerIndex) => { 22 | const level = layerIndex + 1 23 | if (level <= 6) { 24 | content += getTitleMark(level) 25 | } else { 26 | content += getIndentMark(level) 27 | } 28 | content += ' ' + getNodeText(node.data) 29 | // 概要 30 | const generalization = node.data.generalization 31 | if (Array.isArray(generalization)) { 32 | content += generalization.map(item => { 33 | return ` [${getNodeText(item)}]` 34 | }) 35 | } else if (generalization && generalization.text) { 36 | const generalizationText = getNodeText(generalization) 37 | content += ` [${generalizationText}]` 38 | } 39 | content += '\n\n' 40 | // 备注 41 | if (node.data.note) { 42 | content += node.data.note + '\n\n' 43 | } 44 | }, 45 | () => {}, 46 | true 47 | ) 48 | return content 49 | } 50 | -------------------------------------------------------------------------------- /web/src/style/outlineTree.less: -------------------------------------------------------------------------------- 1 | .outlineTree { 2 | &.isDark { 3 | background-color: #262a2e; 4 | 5 | .customNode { 6 | color: #fff; 7 | } 8 | 9 | &.el-tree--highlight-current { 10 | /deep/ .el-tree-node.is-current > .el-tree-node__content { 11 | background-color: hsla(0, 0%, 100%, 0.05) !important; 12 | } 13 | } 14 | 15 | /deep/ .el-tree-node__content:hover, 16 | .el-upload-list__item:hover { 17 | background-color: hsla(0, 0%, 100%, 0.02) !important; 18 | } 19 | 20 | /deep/ .el-tree-node__content { 21 | .el-tree-node__expand-icon { 22 | color: #fff; 23 | 24 | &.is-leaf { 25 | &::after { 26 | background-color: #fff; 27 | } 28 | } 29 | } 30 | } 31 | } 32 | 33 | /deep/ .el-tree-node > .el-tree-node__children { 34 | overflow: inherit; 35 | } 36 | 37 | /deep/ .el-tree-node__content { 38 | height: auto; 39 | margin: 5px 0; 40 | 41 | .el-tree-node__expand-icon { 42 | color: #262a2e; 43 | 44 | &.is-leaf { 45 | color: transparent; 46 | position: relative; 47 | 48 | &::after { 49 | background-color: #262a2e; 50 | position: absolute; 51 | content: ''; 52 | width: 5px; 53 | height: 5px; 54 | border-radius: 50%; 55 | left: 10px; 56 | top: 50%; 57 | transform: translateY(-50%); 58 | } 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /web/scripts/createNodeImageList.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const fs = require('fs') 3 | 4 | const fileDest = path.join(__dirname, '../src/assets/svg') 5 | const targetDest = path.join(__dirname, '../src/config/image.js') 6 | 7 | const run = dir => { 8 | let dirs = fs.readdirSync(dir) 9 | dirs.forEach(item => { 10 | let cur = path.join(dir, item) 11 | if (fs.statSync(cur).isDirectory()) { 12 | walkDir(cur, item) 13 | } 14 | }) 15 | } 16 | 17 | const list = [] 18 | const importList = [] 19 | const walkDir = (dir, item) => { 20 | let files = fs.readdirSync(dir) 21 | let name = files.find(file => { 22 | return !/\./.test(file) 23 | }) 24 | let fileList = files.filter(file => { 25 | return /\.svg$/.test(file) 26 | }) 27 | let itemList = [] 28 | fileList.forEach(file => { 29 | let fileName = 30 | item + '_' + file.replace(/\.svg$/, '').replace(new RegExp('-', 'g'), '') 31 | importList.push(`import ${fileName} from '../assets/svg/${item}/${file}'`) 32 | itemList.push({ 33 | url: fileName, 34 | width: 100, 35 | height: 100 36 | }) 37 | }) 38 | list.push({ 39 | name, 40 | list: itemList 41 | }) 42 | const content = ` 43 | // 该文件请运行npm run createNodeImageList命令自动生成 44 | ${importList.join('\n')} 45 | export default ${JSON.stringify(list, null, 2).replace( 46 | /(url":\s*)"([^"]+)"(,)/g, 47 | '$1$2$3' 48 | )} 49 | ` 50 | fs.writeFileSync(targetDest, content) 51 | } 52 | 53 | run(fileDest) 54 | console.log('运行成功') 55 | -------------------------------------------------------------------------------- /dist/img/图片加载失败.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/src/utils/AutoMove.js: -------------------------------------------------------------------------------- 1 | // 画布自动移动类 2 | class AutoMove { 3 | constructor(mindMap) { 4 | this.mindMap = mindMap 5 | this.autoMoveTimer = null 6 | } 7 | 8 | // 鼠标移动事件 9 | onMove(x, y, callback = () => {}, handle = () => {}) { 10 | callback() 11 | // 检测边缘移动 12 | let step = this.mindMap.opt.selectTranslateStep 13 | let limit = this.mindMap.opt.selectTranslateLimit 14 | let count = 0 15 | // 左边缘 16 | if (x <= this.mindMap.elRect.left + limit) { 17 | handle('left', step) 18 | this.mindMap.view.translateX(step) 19 | count++ 20 | } 21 | // 右边缘 22 | if (x >= this.mindMap.elRect.right - limit) { 23 | handle('right', step) 24 | this.mindMap.view.translateX(-step) 25 | count++ 26 | } 27 | // 上边缘 28 | if (y <= this.mindMap.elRect.top + limit) { 29 | handle('top', step) 30 | this.mindMap.view.translateY(step) 31 | count++ 32 | } 33 | // 下边缘 34 | if (y >= this.mindMap.elRect.bottom - limit) { 35 | handle('bottom', step) 36 | this.mindMap.view.translateY(-step) 37 | count++ 38 | } 39 | if (count > 0) { 40 | this.startAutoMove(x, y, callback, handle) 41 | } 42 | } 43 | 44 | // 开启自动移动 45 | startAutoMove(x, y, callback, handle) { 46 | this.autoMoveTimer = setTimeout(() => { 47 | this.onMove(x, y, callback, handle) 48 | }, 20) 49 | } 50 | 51 | // 清除自动移动定时器 52 | clearAutoMoveTimer() { 53 | clearTimeout(this.autoMoveTimer) 54 | } 55 | } 56 | 57 | export default AutoMove 58 | -------------------------------------------------------------------------------- /web/src/assets/img/图片加载失败.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "simple-mind-map", 3 | "version": "0.14.0-fix.1", 4 | "description": "一个简单的web在线思维导图", 5 | "authors": [ 6 | { 7 | "name": "街角小林", 8 | "email": "1013335014@qq.com" 9 | }, 10 | { 11 | "name": "理想青年实验室", 12 | "url": "http://lxqnsys.com/" 13 | } 14 | ], 15 | "types": "./types/index.d.ts", 16 | "typings": "./types/index.d.ts", 17 | "license": "MIT", 18 | "repository": { 19 | "type": "git", 20 | "url": "https://github.com/wanglin2/mind-map" 21 | }, 22 | "scripts": { 23 | "lint": "eslint src/", 24 | "format": "prettier --write .", 25 | "types": "npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly --outDir types --target es2017 --skipLibCheck & node ./bin/createPluginsTypeFiles.js", 26 | "wsServe": "node ./bin/wsServer.mjs" 27 | }, 28 | "module": "index.js", 29 | "main": "./dist/simpleMindMap.umd.min.js", 30 | "dependencies": { 31 | "@svgdotjs/svg.js": "3.2.0", 32 | "deepmerge": "^1.5.2", 33 | "eventemitter3": "^4.0.7", 34 | "jszip": "^3.10.1", 35 | "katex": "^0.16.8", 36 | "mdast-util-from-markdown": "^1.3.0", 37 | "pdf-lib": "^1.17.1", 38 | "quill": "^2.0.3", 39 | "tern": "^0.24.3", 40 | "uuid": "^9.0.0", 41 | "ws": "^7.5.9", 42 | "xml-js": "^1.6.11", 43 | "y-webrtc": "^10.2.5", 44 | "yjs": "^13.6.8" 45 | }, 46 | "keywords": [ 47 | "javascript", 48 | "svg", 49 | "mind-map", 50 | "mindMap", 51 | "MindMap" 52 | ], 53 | "devDependencies": { 54 | "eslint": "^8.25.0", 55 | "prettier": "^2.7.1" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /simple-mind-map/src/core/render/node/nodeCommandWraps.js: -------------------------------------------------------------------------------- 1 | // 设置数据 2 | function setData(data = {}) { 3 | this.mindMap.execCommand('SET_NODE_DATA', this, data) 4 | } 5 | 6 | // 设置文本 7 | function setText(text, richText, resetRichText) { 8 | this.mindMap.execCommand('SET_NODE_TEXT', this, text, richText, resetRichText) 9 | } 10 | 11 | // 设置图片 12 | function setImage(imgData) { 13 | this.mindMap.execCommand('SET_NODE_IMAGE', this, imgData) 14 | } 15 | 16 | // 设置图标 17 | function setIcon(icons) { 18 | this.mindMap.execCommand('SET_NODE_ICON', this, icons) 19 | } 20 | 21 | // 设置超链接 22 | function setHyperlink(link, title) { 23 | this.mindMap.execCommand('SET_NODE_HYPERLINK', this, link, title) 24 | } 25 | 26 | // 设置备注 27 | function setNote(note) { 28 | this.mindMap.execCommand('SET_NODE_NOTE', this, note) 29 | } 30 | 31 | // 设置附件 32 | function setAttachment(url, name) { 33 | this.mindMap.execCommand('SET_NODE_ATTACHMENT', this, url, name) 34 | } 35 | 36 | // 设置标签 37 | function setTag(tag) { 38 | this.mindMap.execCommand('SET_NODE_TAG', this, tag) 39 | } 40 | 41 | // 设置形状 42 | function setShape(shape) { 43 | this.mindMap.execCommand('SET_NODE_SHAPE', this, shape) 44 | } 45 | 46 | // 修改某个样式 47 | function setStyle(prop, value) { 48 | this.mindMap.execCommand('SET_NODE_STYLE', this, prop, value) 49 | } 50 | 51 | // 修改多个样式 52 | function setStyles(style) { 53 | this.mindMap.execCommand('SET_NODE_STYLES', this, style) 54 | } 55 | 56 | export default { 57 | setData, 58 | setText, 59 | setImage, 60 | setIcon, 61 | setHyperlink, 62 | setNote, 63 | setAttachment, 64 | setTag, 65 | setShape, 66 | setStyle, 67 | setStyles 68 | } 69 | -------------------------------------------------------------------------------- /dist/img/qixi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/qixi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/duanwujie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/pages/Edit/components/Fullscreen.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 58 | 59 | 83 | -------------------------------------------------------------------------------- /dist/img/hushijie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/duanwujie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/hushijie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/ertongjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/ertongjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/pages/Edit/components/MouseAction.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 59 | 60 | 85 | -------------------------------------------------------------------------------- /dist/img/zhishichanquan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/zhishichanquan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/gongzuohuibao.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/src/core/render/node/nodeExpandBtnPlaceholderRect.js: -------------------------------------------------------------------------------- 1 | import { Rect } from '@svgdotjs/svg.js' 2 | 3 | // 渲染展开收起按钮的隐藏占位元素 4 | function renderExpandBtnPlaceholderRect() { 5 | // 根节点或没有子节点不需要渲染 6 | if (this.getChildrenLength() <= 0 || this.isRoot) { 7 | return 8 | } 9 | // 默认显示展开按钮的情况下或不显示展开收起按钮的情况下不需要渲染 10 | const { alwaysShowExpandBtn, notShowExpandBtn, expandBtnSize } = 11 | this.mindMap.opt 12 | if (!alwaysShowExpandBtn && !notShowExpandBtn) { 13 | let { width, height } = this 14 | if (!this._unVisibleRectRegionNode) { 15 | this._unVisibleRectRegionNode = new Rect() 16 | this._unVisibleRectRegionNode.fill({ 17 | color: 'transparent' 18 | }) 19 | } 20 | this.group.add(this._unVisibleRectRegionNode) 21 | this.renderer.layout.renderExpandBtnRect( 22 | this._unVisibleRectRegionNode, 23 | expandBtnSize, 24 | width, 25 | height, 26 | this 27 | ) 28 | } 29 | } 30 | 31 | // 删除展开收起按钮的隐藏占位元素 32 | function clearExpandBtnPlaceholderRect() { 33 | if (!this._unVisibleRectRegionNode) { 34 | return 35 | } 36 | this._unVisibleRectRegionNode.remove() 37 | this._unVisibleRectRegionNode = null 38 | } 39 | 40 | // 更新展开收起按钮的隐藏占位元素 41 | function updateExpandBtnPlaceholderRect() { 42 | // 布局改变需要重新渲染 43 | if (this.needRerenderExpandBtnPlaceholderRect) { 44 | this.needRerenderExpandBtnPlaceholderRect = false 45 | this.renderExpandBtnPlaceholderRect() 46 | } 47 | // 没有子节点到有子节点需要渲染 48 | if (this.getChildrenLength() > 0) { 49 | if (!this._unVisibleRectRegionNode) { 50 | this.renderExpandBtnPlaceholderRect() 51 | } 52 | } else { 53 | // 有子节点到没子节点,需要删除 54 | if (this._unVisibleRectRegionNode) { 55 | this.clearExpandBtnPlaceholderRect() 56 | } 57 | } 58 | } 59 | 60 | export default { 61 | renderExpandBtnPlaceholderRect, 62 | clearExpandBtnPlaceholderRect, 63 | updateExpandBtnPlaceholderRect 64 | } 65 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/gongzuohuibao.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/components/ImgUpload/style.less: -------------------------------------------------------------------------------- 1 | .imgUploadContainer { 2 | width: 100%; 3 | height: 100%; 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | background-color: rgba(255, 255, 255, 0.9); 8 | z-index: 1000; 9 | 10 | .imgUploadPanel { 11 | position: relative; 12 | width: 100%; 13 | font-size: 22px; 14 | white-space: nowrap; 15 | color: #909090; 16 | cursor: default; 17 | user-select: none; 18 | 19 | .title { 20 | margin-bottom: 15px; 21 | font-size: 22px; 22 | font-weight: 700; 23 | color: hsla(218, 9%, 51%, 0.8); 24 | } 25 | 26 | .closeBtn { 27 | position: absolute; 28 | right: 25px; 29 | top: 32px; 30 | cursor: pointer; 31 | } 32 | 33 | .imgUploadInputArea { 34 | display: block; 35 | width: 100%; 36 | height: 200px; 37 | font-size: 20px; 38 | color: rgba(51, 51, 51, 0.4); 39 | background-color: hsla(0, 0%, 87%, 0.6); 40 | border: none; 41 | outline: none; 42 | cursor: pointer; 43 | text-align: center; 44 | display: flex; 45 | justify-content: center; 46 | align-items: center; 47 | white-space: normal; 48 | padding: 10px; 49 | } 50 | 51 | #imgUploadInput { 52 | display: none; 53 | } 54 | 55 | .uploadInfoBox { 56 | position: relative; 57 | width: 100%; 58 | height: 200px; 59 | background-color: hsla(0, 0%, 87%, 0.6); 60 | 61 | .previewBox { 62 | width: 100%; 63 | height: 100%; 64 | background-size: contain; 65 | background-repeat: no-repeat; 66 | background-position: center; 67 | } 68 | 69 | .delBtn { 70 | position: absolute; 71 | right: 0px; 72 | top: 0px; 73 | cursor: pointer; 74 | width: 20px; 75 | height: 20px; 76 | background-color: #fff; 77 | } 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /dist/img/-_15.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/a-19guaizhang.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/-_15.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/gongwenjiaohuan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/medicine/a-19guaizhang.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/src/utils/mersenneTwister.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @description 为了保证相同的内容每次生成的随机数都是一样的,我们可以使用一个伪随机数生成器(PRNG),并使用内容的哈希值作为种子。以下是一个使用Mersenne Twister算法的PRNG的实现: 3 | * 4 | * @param {*} seed 5 | */ 6 | 7 | export default function MersenneTwister(seed) { 8 | this.N = 624 9 | this.M = 397 10 | this.MATRIX_A = 0x9908b0df 11 | this.UPPER_MASK = 0x80000000 12 | this.LOWER_MASK = 0x7fffffff 13 | 14 | this.mt = new Array(this.N) 15 | this.mti = this.N + 1 16 | 17 | this.init_genrand(seed) 18 | } 19 | 20 | MersenneTwister.prototype.init_genrand = function (s) { 21 | this.mt[0] = s >>> 0 22 | for (this.mti = 1; this.mti < this.N; this.mti++) { 23 | s = this.mt[this.mti - 1] ^ (this.mt[this.mti - 1] >>> 30) 24 | this.mt[this.mti] = 25 | ((((s & 0xffff0000) >>> 16) * 1812433253) << 16) + 26 | (s & 0x0000ffff) * 1812433253 + 27 | this.mti 28 | this.mt[this.mti] >>>= 0 29 | } 30 | } 31 | 32 | MersenneTwister.prototype.genrand_int32 = function () { 33 | var y 34 | var mag01 = new Array(0x0, this.MATRIX_A) 35 | 36 | if (this.mti >= this.N) { 37 | var kk 38 | 39 | if (this.mti == this.N + 1) this.init_genrand(5489) 40 | 41 | for (kk = 0; kk < this.N - this.M; kk++) { 42 | y = (this.mt[kk] & this.UPPER_MASK) | (this.mt[kk + 1] & this.LOWER_MASK) 43 | this.mt[kk] = this.mt[kk + this.M] ^ (y >>> 1) ^ mag01[y & 0x1] 44 | } 45 | 46 | for (; kk < this.N - 1; kk++) { 47 | y = (this.mt[kk] & this.UPPER_MASK) | (this.mt[kk + 1] & this.LOWER_MASK) 48 | this.mt[kk] = this.mt[kk + (this.M - this.N)] ^ (y >>> 1) ^ mag01[y & 0x1] 49 | } 50 | 51 | y = (this.mt[this.N - 1] & this.UPPER_MASK) | (this.mt[0] & this.LOWER_MASK) 52 | this.mt[this.N - 1] = this.mt[this.M - 1] ^ (y >>> 1) ^ mag01[y & 0x1] 53 | 54 | this.mti = 0 55 | } 56 | 57 | y = this.mt[this.mti++] 58 | 59 | y ^= y >>> 11 60 | y ^= (y << 7) & 0x9d2c5680 61 | y ^= (y << 15) & 0xefc60000 62 | y ^= y >>> 18 63 | 64 | return y >>> 0 65 | } 66 | -------------------------------------------------------------------------------- /web/src/assets/svg/education/a-19guaizhang.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/gongwenjiaohuan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/huafei.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/tongzhifabu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/travel/huafei.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/tongzhifabu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/example/exportFullData.json: -------------------------------------------------------------------------------- 1 | { 2 | "layout": "logicalStructure", 3 | "root": { 4 | "data": { 5 | "text": "根节点", 6 | "expand": true, 7 | "isActive": false 8 | }, 9 | "children": [{ 10 | "data": { 11 | "text": "二级节点", 12 | "generalization": { 13 | "text": "概要", 14 | "expand": true, 15 | "isActive": false 16 | }, 17 | "expand": true, 18 | "isActive": false 19 | }, 20 | "children": [{ 21 | "data": { 22 | "text": "分支主题", 23 | "expand": true, 24 | "isActive": false 25 | }, 26 | "children": [] 27 | }, { 28 | "data": { 29 | "text": "分支主题", 30 | "expand": true, 31 | "isActive": false 32 | }, 33 | "children": [] 34 | }, { 35 | "data": { 36 | "text": "理想去年实验室", 37 | "richText": true 38 | }, 39 | "children": [] 40 | }] 41 | }] 42 | }, 43 | "theme": { 44 | "template": "classic4", 45 | "config": {} 46 | }, 47 | "view": { 48 | "transform": { 49 | "scaleX": 1, 50 | "scaleY": 1, 51 | "shear": 0, 52 | "rotate": 0, 53 | "translateX": 0, 54 | "translateY": 0, 55 | "originX": 0, 56 | "originY": 0, 57 | "a": 1, 58 | "b": 0, 59 | "c": 0, 60 | "d": 1, 61 | "e": 0, 62 | "f": 0 63 | }, 64 | "state": { 65 | "scale": 1, 66 | "x": 0, 67 | "y": 0, 68 | "sx": 0, 69 | "sy": 0 70 | } 71 | }, 72 | "config": {} 73 | } -------------------------------------------------------------------------------- /web/scripts/ai.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const axios = require('axios') 3 | const net = require('net') 4 | 5 | const port = 3456 6 | 7 | const isPortUsed = port => { 8 | return new Promise(resolve => { 9 | const server = net.createServer() 10 | server.once('error', err => { 11 | if (err.code === 'EADDRINUSE') { 12 | resolve(true) // 端口被占用 13 | } else { 14 | resolve(false) // 其他错误 15 | } 16 | }) 17 | server.once('listening', () => { 18 | server.close(() => resolve(false)) // 端口可用 19 | }) 20 | server.listen(port) // 尝试监听端口 21 | }) 22 | } 23 | 24 | const createServe = () => { 25 | // 起个服务 26 | const app = express() 27 | app.use(express.json()) 28 | app.use(express.urlencoded({ extended: true })) 29 | 30 | // 允许跨域 31 | app.use((req, res, next) => { 32 | res.header('Access-Control-Allow-Origin', '*') // 允许所有来源的跨域请求,或者指定一个域名 33 | res.header('Access-Control-Allow-Methods', '*') // 允许的方法 34 | res.header('Access-Control-Allow-Headers', '*') // 允许的头部信息 35 | next() 36 | }) 37 | 38 | // 监听对话请求 39 | app.get('/ai/test', (req, res) => { 40 | res 41 | .json({ 42 | code: 0, 43 | data: null, 44 | msg: '连接成功' 45 | }) 46 | .end() 47 | }) 48 | app.post('/ai/chat', async (req, res, next) => { 49 | // 设置SSE响应头 50 | res.setHeader('Content-Type', 'text/event-stream') 51 | res.setHeader('Cache-Control', 'no-cache') 52 | res.setHeader('Connection', 'keep-alive') 53 | 54 | const { api, method = 'POST', headers = {}, data } = req.body 55 | 56 | try { 57 | const response = await axios({ 58 | url: api, 59 | method, 60 | headers, 61 | data, 62 | responseType: 'stream' 63 | }) 64 | response.data.pipe(res) 65 | } catch (error) { 66 | next(error) 67 | } 68 | }) 69 | 70 | app.listen(port, () => { 71 | console.log(`app listening on port ${port}`) 72 | }) 73 | } 74 | 75 | isPortUsed(port).then(isUsed => { 76 | if (isUsed) { 77 | console.error('端口被占用') 78 | } else { 79 | createServe() 80 | } 81 | }) 82 | -------------------------------------------------------------------------------- /simple-mind-map/src/plugins/ExportPDF.js: -------------------------------------------------------------------------------- 1 | // import JsPDF from '../utils/jspdf' 2 | import { PDFDocument } from 'pdf-lib' 3 | import { readBlob } from '../utils/index' 4 | 5 | // 导出PDF插件,需要通过Export插件使用 6 | class ExportPDF { 7 | // 构造函数 8 | constructor(opt) { 9 | this.mindMap = opt.mindMap 10 | } 11 | 12 | // 使用pdf-lib库导出为pdf 13 | async pdf(img) { 14 | return new Promise((resolve, reject) => { 15 | const image = new Image() 16 | image.onload = async () => { 17 | const imageWidth = image.width 18 | const imageHeight = image.height 19 | // 创建pdf页面,尺寸设置为图片的大小 20 | const pdfDoc = await PDFDocument.create() 21 | const page = pdfDoc.addPage() 22 | page.setSize(imageWidth, imageHeight) 23 | // 添加图片到pdf 24 | const pngImage = await pdfDoc.embedPng(img) 25 | page.drawImage(pngImage, { 26 | x: 0, 27 | y: 0, 28 | width: imageWidth, 29 | height: imageHeight 30 | }) 31 | const pdfBytes = await pdfDoc.save() 32 | const blob = new Blob([pdfBytes]) 33 | const res = await readBlob(blob) 34 | resolve(res) 35 | } 36 | image.onerror = e => { 37 | reject(e) 38 | } 39 | image.src = img 40 | }) 41 | } 42 | 43 | // 使用jspdf库导出为pdf 44 | // async pdf(name, img) { 45 | // return new Promise((resolve, reject) => { 46 | // const image = new Image() 47 | // image.onload = () => { 48 | // const imageWidth = image.width 49 | // const imageHeight = image.height 50 | // const pdf = new JsPDF({ 51 | // unit: 'px', 52 | // format: [imageWidth, imageHeight], 53 | // compress: true, 54 | // hotfixes: ['px_scaling'], 55 | // orientation: imageWidth > imageHeight ? 'landscape' : 'portrait' 56 | // }) 57 | // pdf.addImage(img, 'PNG', 0, 0, imageWidth, imageHeight) 58 | // pdf.save(name) 59 | // resolve() 60 | // } 61 | // image.onerror = e => { 62 | // reject(e) 63 | // } 64 | // image.src = img 65 | // }) 66 | // } 67 | } 68 | 69 | ExportPDF.instanceName = 'doExportPDF' 70 | 71 | export default ExportPDF 72 | -------------------------------------------------------------------------------- /dist/img/gudingzichan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/gudingzichan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/pages/Edit/components/Color.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 69 | 70 | 105 | -------------------------------------------------------------------------------- /simple-mind-map/src/plugins/Painter.js: -------------------------------------------------------------------------------- 1 | import { checkIsNodeStyleDataKey } from '../utils/index' 2 | 3 | // 格式刷插件 4 | class Painter { 5 | constructor({ mindMap }) { 6 | this.mindMap = mindMap 7 | this.isInPainter = false 8 | this.painterNode = null 9 | this.bindEvent() 10 | } 11 | 12 | bindEvent() { 13 | this.painterOneNode = this.painterOneNode.bind(this) 14 | this.onEndPainter = this.onEndPainter.bind(this) 15 | this.mindMap.on('node_click', this.painterOneNode) 16 | this.mindMap.on('draw_click', this.onEndPainter) 17 | } 18 | 19 | unBindEvent() { 20 | this.mindMap.off('node_click', this.painterOneNode) 21 | this.mindMap.off('draw_click', this.onEndPainter) 22 | } 23 | 24 | // 开始格式刷 25 | startPainter() { 26 | if (this.mindMap.opt.readonly) return 27 | let activeNodeList = this.mindMap.renderer.activeNodeList 28 | if (activeNodeList.length <= 0) return 29 | this.painterNode = activeNodeList[0] 30 | this.isInPainter = true 31 | this.mindMap.emit('painter_start') 32 | } 33 | 34 | // 结束格式刷 35 | endPainter() { 36 | this.painterNode = null 37 | this.isInPainter = false 38 | } 39 | 40 | onEndPainter() { 41 | if (!this.isInPainter) return 42 | this.endPainter() 43 | this.mindMap.emit('painter_end') 44 | } 45 | 46 | // 格式刷某个节点 47 | painterOneNode(node) { 48 | if ( 49 | !node || 50 | !this.isInPainter || 51 | !this.painterNode || 52 | !node || 53 | node.uid === this.painterNode.uid 54 | ) 55 | return 56 | let style = {} 57 | // 格式刷节点所有生效的样式 58 | if (!this.mindMap.opt.onlyPainterNodeCustomStyles) { 59 | style = { 60 | ...this.painterNode.effectiveStyles 61 | } 62 | } 63 | const painterNodeData = this.painterNode.getData() 64 | Object.keys(painterNodeData).forEach(key => { 65 | if (checkIsNodeStyleDataKey(key)) { 66 | style[key] = painterNodeData[key] 67 | } 68 | }) 69 | // 先去除目标节点的样式 70 | this.mindMap.renderer._handleRemoveCustomStyles(node.getData()) 71 | node.setStyles(style) 72 | } 73 | 74 | // 插件被移除前做的事情 75 | beforePluginRemove() { 76 | this.unBindEvent() 77 | } 78 | 79 | // 插件被卸载前做的事情 80 | beforePluginDestroy() { 81 | this.unBindEvent() 82 | } 83 | } 84 | 85 | Painter.instanceName = 'painter' 86 | 87 | export default Painter 88 | -------------------------------------------------------------------------------- /simple-mind-map/full.js: -------------------------------------------------------------------------------- 1 | import MindMap from './index' 2 | import MiniMap from './src/plugins/MiniMap.js' 3 | import Watermark from './src/plugins/Watermark.js' 4 | import KeyboardNavigation from './src/plugins/KeyboardNavigation.js' 5 | import ExportXMind from './src/plugins/ExportXMind.js' 6 | import ExportPDF from './src/plugins/ExportPDF.js' 7 | import Export from './src/plugins/Export.js' 8 | import Drag from './src/plugins/Drag.js' 9 | import Select from './src/plugins/Select.js' 10 | import AssociativeLine from './src/plugins/AssociativeLine' 11 | import RichText from './src/plugins/RichText' 12 | import NodeImgAdjust from './src/plugins/NodeImgAdjust.js' 13 | import TouchEvent from './src/plugins/TouchEvent.js' 14 | import Search from './src/plugins/Search.js' 15 | import Painter from './src/plugins/Painter.js' 16 | import Scrollbar from './src/plugins/Scrollbar.js' 17 | import Formula from './src/plugins/Formula.js' 18 | import RainbowLines from './src/plugins/RainbowLines.js' 19 | import Demonstrate from './src/plugins/Demonstrate.js' 20 | import OuterFrame from './src/plugins/OuterFrame.js' 21 | import MindMapLayoutPro from './src/plugins/MindMapLayoutPro.js' 22 | import NodeBase64ImageStorage from './src/plugins/NodeBase64ImageStorage.js' 23 | import xmind from './src/parse/xmind.js' 24 | import markdown from './src/parse/markdown.js' 25 | import icons from './src/svg/icons.js' 26 | import * as constants from './src/constants/constant.js' 27 | import * as defaultTheme from './src/theme/default.js' 28 | 29 | MindMap.xmind = xmind 30 | MindMap.markdown = markdown 31 | MindMap.iconList = icons.nodeIconList 32 | MindMap.constants = constants 33 | MindMap.defaultTheme = defaultTheme 34 | MindMap.version = '0.14.0-fix.1' 35 | 36 | MindMap.usePlugin(MiniMap) 37 | .usePlugin(Watermark) 38 | .usePlugin(Drag) 39 | .usePlugin(KeyboardNavigation) 40 | .usePlugin(ExportXMind) 41 | .usePlugin(ExportPDF) 42 | .usePlugin(Export) 43 | .usePlugin(Select) 44 | .usePlugin(AssociativeLine) 45 | .usePlugin(RichText) 46 | .usePlugin(TouchEvent) 47 | .usePlugin(NodeImgAdjust) 48 | .usePlugin(Search) 49 | .usePlugin(Painter) 50 | .usePlugin(Scrollbar) 51 | .usePlugin(Formula) 52 | .usePlugin(RainbowLines) 53 | .usePlugin(Demonstrate) 54 | .usePlugin(OuterFrame) 55 | .usePlugin(MindMapLayoutPro) 56 | .usePlugin(NodeBase64ImageStorage) 57 | 58 | export default MindMap 59 | -------------------------------------------------------------------------------- /dist/img/zongheshenpi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/zongheshenpi.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/pages/Edit/components/NodeNoteSidebar.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 88 | 89 | 94 | -------------------------------------------------------------------------------- /dist/img/jiudian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/travel/jiudian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "thoughts", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build && node ../copy.js", 8 | "lint": "vue-cli-service lint", 9 | "buildLibrary": "node ./scripts/updateVersion.js && vue-cli-service build --mode library --target lib --name simpleMindMap ../simple-mind-map/full.js --dest ../simple-mind-map/dist && esbuild ../simple-mind-map/full.js --bundle --external:buffer --format=esm --outfile=../simple-mind-map/dist/simpleMindMap.esm.js && esbuild ../simple-mind-map/full.js --bundle --minify --external:buffer --format=esm --outfile=../simple-mind-map/dist/simpleMindMap.esm.min.js", 10 | "format": "prettier --write src/* src/*/* src/*/*/* src/*/*/*/*", 11 | "createNodeImageList": "node ./scripts/createNodeImageList.js", 12 | "ai:serve": "node ./scripts/ai.js" 13 | }, 14 | "dependencies": { 15 | "@toast-ui/editor": "^3.1.5", 16 | "axios": "^1.7.9", 17 | "codemirror": "^5.65.16", 18 | "core-js": "^3.6.5", 19 | "element-ui": "^2.15.1", 20 | "highlight.js": "^10.7.3", 21 | "katex": "^0.16.9", 22 | "simple-mind-map-plugin-themes": "^1.0.0", 23 | "v-viewer": "^1.6.4", 24 | "vue": "^2.6.11", 25 | "vue-i18n": "^8.27.2", 26 | "vue-router": "^3.5.1", 27 | "vuex": "^3.6.2", 28 | "xlsx": "^0.18.5" 29 | }, 30 | "devDependencies": { 31 | "@vue/cli-plugin-babel": "^4.5.0", 32 | "@vue/cli-plugin-eslint": "^4.5.0", 33 | "@vue/cli-service": "^4.5.0", 34 | "babel-eslint": "^10.1.0", 35 | "chokidar": "^3.5.3", 36 | "esbuild": "^0.17.15", 37 | "eslint": "^6.7.2", 38 | "eslint-plugin-vue": "^6.2.2", 39 | "express": "^4.21.2", 40 | "less": "^3.12.2", 41 | "less-loader": "^7.1.0", 42 | "markdown-it": "^13.0.1", 43 | "markdown-it-checkbox": "^1.1.0", 44 | "prettier": "^1.19.1", 45 | "vconsole": "^3.15.1", 46 | "vue-template-compiler": "^2.6.11", 47 | "webpack": "^4.44.2", 48 | "webpack-dynamic-public-path": "^1.0.8" 49 | }, 50 | "eslintConfig": { 51 | "root": true, 52 | "env": { 53 | "node": true 54 | }, 55 | "extends": [ 56 | "plugin:vue/essential", 57 | "eslint:recommended" 58 | ], 59 | "parserOptions": { 60 | "parser": "babel-eslint" 61 | }, 62 | "rules": {} 63 | }, 64 | "browserslist": [ 65 | "> 1%", 66 | "last 2 versions", 67 | "not dead" 68 | ] 69 | } 70 | -------------------------------------------------------------------------------- /dist/img/-_3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/img/a-18-xiguan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/business/-_3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /simple-mind-map/src/plugins/RainbowLines.js: -------------------------------------------------------------------------------- 1 | import { walk, getNodeDataIndex } from '../utils/index' 2 | 3 | const defaultColorsList = [ 4 | 'rgb(255, 213, 73)', 5 | 'rgb(255, 136, 126)', 6 | 'rgb(107, 225, 141)', 7 | 'rgb(151, 171, 255)', 8 | 'rgb(129, 220, 242)', 9 | 'rgb(255, 163, 125)', 10 | 'rgb(152, 132, 234)' 11 | ] 12 | 13 | // 彩虹线条插件 14 | class RainbowLines { 15 | constructor({ mindMap }) { 16 | this.mindMap = mindMap 17 | } 18 | 19 | // 更新彩虹线条配置 20 | updateRainLinesConfig(config = {}) { 21 | const newConfig = this.mindMap.opt.rainbowLinesConfig || {} 22 | newConfig.open = !!config.open 23 | newConfig.colorsList = Array.isArray(config.colorsList) 24 | ? config.colorsList 25 | : [] 26 | // 如果开启彩虹线条,那么先移除所有节点的自定义连线颜色配置 27 | if (this.mindMap.opt.rainbowLinesConfig.open) { 28 | this.removeNodeLineColor() 29 | } 30 | this.mindMap.render() 31 | } 32 | 33 | // 删除所有节点的连线颜色 34 | removeNodeLineColor() { 35 | const tree = this.mindMap.renderer.renderTree 36 | if (!tree) return 37 | walk( 38 | tree, 39 | null, 40 | cur => { 41 | delete cur.data.lineColor 42 | }, 43 | null, 44 | true 45 | ) 46 | this.mindMap.command.addHistory() 47 | } 48 | 49 | // 获取一个节点的第二层级的祖先节点 50 | getSecondLayerAncestor(node) { 51 | if (node.layerIndex === 0) { 52 | return null 53 | } else if (node.layerIndex === 1) { 54 | return node 55 | } else { 56 | let res = null 57 | let parent = node.parent 58 | while (parent) { 59 | if (parent.layerIndex === 1) { 60 | return parent 61 | } 62 | parent = parent.parent 63 | } 64 | return res 65 | } 66 | } 67 | 68 | // 获取颜色列表 69 | getColorsList() { 70 | const { rainbowLinesConfig } = this.mindMap.opt 71 | return rainbowLinesConfig && 72 | Array.isArray(rainbowLinesConfig.colorsList) && 73 | rainbowLinesConfig.colorsList.length > 0 74 | ? rainbowLinesConfig.colorsList 75 | : [...defaultColorsList] 76 | } 77 | 78 | // 获取一个节点的彩虹线条颜色 79 | getNodeColor(node) { 80 | const { rainbowLinesConfig } = this.mindMap.opt 81 | if (!rainbowLinesConfig || !rainbowLinesConfig.open) return '' 82 | const ancestor = this.getSecondLayerAncestor(node) 83 | if (!ancestor) return 84 | const index = getNodeDataIndex(ancestor) 85 | const colorsList = this.getColorsList() 86 | return colorsList[index % colorsList.length] 87 | } 88 | } 89 | 90 | RainbowLines.instanceName = 'rainbowLines' 91 | 92 | export default RainbowLines 93 | -------------------------------------------------------------------------------- /web/src/assets/svg/education/a-18-xiguan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/medicine/a-18-xiguan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/components/ImgUpload/index.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 100 | 101 | 104 | -------------------------------------------------------------------------------- /dist/img/fuqinjie.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/svg/festival/fuqinjie.svg: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------