Merge branch 'main' into uniccoo/master

# Conflicts:
#	dist/js/chunk-vendors.js
This commit is contained in:
KuroSago@outlook.com 2025-09-17 11:45:54 +08:00
commit d89a0b6922
12 changed files with 163 additions and 93 deletions

View File

@ -29,7 +29,9 @@
> >
> 可直接在`uTools`插件应用市场中搜索`思绪`进行安装,也可以直接访问该地址:[主页](https://www.u-tools.cn/plugins/detail/%E6%80%9D%E7%BB%AA%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE/),点击右侧的【启动】按钮进行安装。 > 可直接在`uTools`插件应用市场中搜索`思绪`进行安装,也可以直接访问该地址:[主页](https://www.u-tools.cn/plugins/detail/%E6%80%9D%E7%BB%AA%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE/),点击右侧的【启动】按钮进行安装。
> 3.`obsidian`插件,正在开发中,敬请期待~ > 3.`obsidian`插件,首个版本现已发布:
>
> 下载地址:[https://github.com/wanglin2/obsidian-simplemindmap/releases](https://github.com/wanglin2/obsidian-simplemindmap/releases)
- 云存储版本,如果你需要带后端的云存储版本,可以尝试我们开发的另一个项目[理想文档](https://github.com/wanglin2/lx-doc)。 - 云存储版本,如果你需要带后端的云存储版本,可以尝试我们开发的另一个项目[理想文档](https://github.com/wanglin2/lx-doc)。
@ -57,9 +59,6 @@
| TouchEvent移动端触摸事件支持插件 | NodeImgAdjust拖拽调整节点图片大小插件 | Search搜索插件 | Painter节点格式刷插件 | | TouchEvent移动端触摸事件支持插件 | NodeImgAdjust拖拽调整节点图片大小插件 | Search搜索插件 | Painter节点格式刷插件 |
| Scrollbar滚动条插件 | Formula数学公式插件 | Cooperate协同编辑插件 | RainbowLines彩虹线条插件 | | Scrollbar滚动条插件 | Formula数学公式插件 | Cooperate协同编辑插件 | RainbowLines彩虹线条插件 |
| Demonstrate演示模式插件 | OuterFrame外框插件 | MindMapLayoutPro思维导图布局插件 | | | Demonstrate演示模式插件 | OuterFrame外框插件 | MindMapLayoutPro思维导图布局插件 | |
| HandDrawnLikeStyle手绘风格插件 | Notation节点标记插件 | Numbers节点编号插件 | FreemindFreemind格式导入导出插件 |
| ExcelExcel格式导入导出插件 | Checkbox待办插件 | Lineflow节点连线流动插件 | Momentum动量效果插件 |
| RightFishbone向右鱼骨图插件 | NodeLink节点链接插件 | | |
本项目不会实现的特性: 本项目不会实现的特性:
@ -113,11 +112,15 @@ const mindMap = new MindMap({
# License # License
[MIT](./LICENSE)。保留`mind-map`版权声明和注明来源的情况下可随意商用,如有疑问或不想保留可联系作者通过付费的方式去除。 [MIT](./LICENSE)。保留`simple-mind-map`版权声明和注明来源的情况下可随意商用,如有疑问或不想保留可联系作者微信wanglinguanfang通过付费的方式去除。
# 微信交流群 > 示例:可以在你应用中的关于页面、帮助页面、文档页面、开源声明等任何页面添加以下内容:
>
> 本产品思维导图基于SimpleMindMap项目开发版权归源项目所有[开源协议](https://github.com/wanglin2/mind-map/blob/main/LICENSE)。
微信添加`wanglinguanfang`拉你入群。根据过往的经验大部分问题都可以通过查看issue列表或文档解决所以提问前请确保你已经阅读完了所有文档文档里没有的可在群里提问不必私聊作者如果你一定要私聊请先赞助本项目¥150+)。 # 开发帮助/技术支持/咨询等
因精力有限,及重心转变,暂不提供任何开发支持(包括有偿),请见谅!
# star # star
@ -143,20 +146,7 @@ const mindMap = new MindMap({
</tr> </tr>
</table> </table>
# 请作者喝杯咖啡 # 感谢赞赏过本项目的人
开源不易,如果本项目有帮助到你的话,可以考虑请作者喝杯咖啡~你的赞助对项目的可持续发展非常重要,是作者持续维护的最大动力。
> 推荐使用支付宝,微信获取不到头像。转账请备注【思维导图】。
>
> 也可以通过购买付费插件来支持我们:[付费插件](https://wanglin2.github.io/mind-map-docs/plugins/about.html)。
>
> 赞助等级最强王者¥500+、星耀赞助¥300+、钻石赞助¥150+、黄金赞助¥50+)、青铜赞助
<p>
<img src="./web/src/assets/img/alipay.jpg" style="width: 300px" />
<img src="./web/src/assets/img/wechat.jpg" style="width: 300px" />
</p>
## 最强王者 ## 最强王者
@ -190,6 +180,13 @@ const mindMap = new MindMap({
<sub style="font-size:14px"><b>沨沄</b></sub> <sub style="font-size:14px"><b>沨沄</b></sub>
</a> </a>
</td> </td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/行.jpg" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b></b></sub>
</a>
</td>
</tr> </tr>
</table> </table>
@ -369,6 +366,13 @@ const mindMap = new MindMap({
<sub style="font-size:14px"><b>LSHM</b></sub> <sub style="font-size:14px"><b>LSHM</b></sub>
</a> </a>
</td> </td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>newplayer</b></sub>
</a>
</td>
</tr> </tr>
</table> </table>
@ -1008,5 +1012,12 @@ const mindMap = new MindMap({
<sub style="font-size:14px"><b>Towards the future</b></sub> <sub style="font-size:14px"><b>Towards the future</b></sub>
</a> </a>
</td> </td>
<td align="center" style="word-wrap: break-word; width: 75.0; height: 75.0">
<a href="#">
<img src="./web/src/assets/avatar/default.png" width="50;" style="border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px"/>
<br />
<sub style="font-size:14px"><b>安嘉</b></sub>
</a>
</td>
</tr> </tr>
</table> </table>

View File

@ -1,4 +1,4 @@
.imgUploadContainer[data-v-6399710d]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:hsla(0,0%,100%,.9);z-index:1000}.imgUploadContainer .imgUploadPanel[data-v-6399710d]{position:relative;width:100%;font-size:22px;white-space:nowrap;color:#909090;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.imgUploadContainer .imgUploadPanel .title[data-v-6399710d]{margin-bottom:15px;font-size:22px;font-weight:700;color:hsla(218,9%,51%,.8)}.imgUploadContainer .imgUploadPanel .closeBtn[data-v-6399710d]{position:absolute;right:25px;top:32px;cursor:pointer}.imgUploadContainer .imgUploadPanel .imgUploadInputArea[data-v-6399710d]{display:block;width:100%;height:200px;font-size:20px;color:rgba(51,51,51,.4);background-color:hsla(0,0%,87%,.6);border:none;outline:none;cursor:pointer;text-align:center;display:flex;justify-content:center;align-items:center;white-space:normal;padding:10px}.imgUploadContainer .imgUploadPanel #imgUploadInput[data-v-6399710d]{display:none}.imgUploadContainer .imgUploadPanel .uploadInfoBox[data-v-6399710d]{position:relative;width:100%;height:200px;background-color:hsla(0,0%,87%,.6)}.imgUploadContainer .imgUploadPanel .uploadInfoBox .previewBox[data-v-6399710d]{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:50%}.imgUploadContainer .imgUploadPanel .uploadInfoBox .delBtn[data-v-6399710d]{position:absolute;right:0;top:0;cursor:pointer;width:20px;height:20px;background-color:#fff}.nodeImageDialog .title[data-v-8ebe4db2]{font-size:18px;margin-bottom:12px}.nodeImageDialog .inputBox[data-v-8ebe4db2]{display:flex;align-items:center;margin-bottom:10px}.nodeImageDialog .inputBox .label[data-v-8ebe4db2]{width:150px}.nodeHyperlinkDialog .item[data-v-187bf89f]{display:flex;align-items:center;margin-bottom:10px}.nodeHyperlinkDialog .item .name[data-v-187bf89f]{display:block;width:50px}.nodeIconDialog[data-v-41bec544] .el-dialog__body{padding:0 20px}.nodeIconDialog .deleteBtn[data-v-41bec544]{margin-bottom:20px}.nodeIconDialog .item[data-v-41bec544]{margin-bottom:20px;font-weight:700}.nodeIconDialog .item .title[data-v-41bec544]{margin-bottom:10px}.nodeIconDialog .item .list[data-v-41bec544]{display:flex;flex-wrap:wrap}.nodeIconDialog .item .list .icon[data-v-41bec544]{width:24px;height:24px;margin-right:10px;margin-bottom:10px;cursor:pointer;position:relative}.nodeIconDialog .item .list .icon[data-v-41bec544] img,.nodeIconDialog .item .list .icon[data-v-41bec544] svg{width:100%;height:100%}.nodeIconDialog .item .list .icon.selected[data-v-41bec544]:after{content:"";position:absolute;left:-4px;top:-4px;width:28px;height:28px;border-radius:50%;border:2px solid #409eff} .imgUploadContainer[data-v-6399710d]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:hsla(0,0%,100%,.9);z-index:1000}.imgUploadContainer .imgUploadPanel[data-v-6399710d]{position:relative;width:100%;font-size:22px;white-space:nowrap;color:#909090;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.imgUploadContainer .imgUploadPanel .title[data-v-6399710d]{margin-bottom:15px;font-size:22px;font-weight:700;color:hsla(218,9%,51%,.8)}.imgUploadContainer .imgUploadPanel .closeBtn[data-v-6399710d]{position:absolute;right:25px;top:32px;cursor:pointer}.imgUploadContainer .imgUploadPanel .imgUploadInputArea[data-v-6399710d]{display:block;width:100%;height:200px;font-size:20px;color:rgba(51,51,51,.4);background-color:hsla(0,0%,87%,.6);border:none;outline:none;cursor:pointer;text-align:center;display:flex;justify-content:center;align-items:center;white-space:normal;padding:10px}.imgUploadContainer .imgUploadPanel #imgUploadInput[data-v-6399710d]{display:none}.imgUploadContainer .imgUploadPanel .uploadInfoBox[data-v-6399710d]{position:relative;width:100%;height:200px;background-color:hsla(0,0%,87%,.6)}.imgUploadContainer .imgUploadPanel .uploadInfoBox .previewBox[data-v-6399710d]{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:50%}.imgUploadContainer .imgUploadPanel .uploadInfoBox .delBtn[data-v-6399710d]{position:absolute;right:0;top:0;cursor:pointer;width:20px;height:20px;background-color:#fff}.nodeImageDialog .title[data-v-4b797c30]{font-size:18px;margin-bottom:12px}.nodeImageDialog .inputBox[data-v-4b797c30]{display:flex;align-items:center;margin-bottom:10px}.nodeImageDialog .inputBox .label[data-v-4b797c30]{width:150px}.nodeHyperlinkDialog .item[data-v-187bf89f]{display:flex;align-items:center;margin-bottom:10px}.nodeHyperlinkDialog .item .name[data-v-187bf89f]{display:block;width:50px}.nodeIconDialog[data-v-41bec544] .el-dialog__body{padding:0 20px}.nodeIconDialog .deleteBtn[data-v-41bec544]{margin-bottom:20px}.nodeIconDialog .item[data-v-41bec544]{margin-bottom:20px;font-weight:700}.nodeIconDialog .item .title[data-v-41bec544]{margin-bottom:10px}.nodeIconDialog .item .list[data-v-41bec544]{display:flex;flex-wrap:wrap}.nodeIconDialog .item .list .icon[data-v-41bec544]{width:24px;height:24px;margin-right:10px;margin-bottom:10px;cursor:pointer;position:relative}.nodeIconDialog .item .list .icon[data-v-41bec544] img,.nodeIconDialog .item .list .icon[data-v-41bec544] svg{width:100%;height:100%}.nodeIconDialog .item .list .icon.selected[data-v-41bec544]:after{content:"";position:absolute;left:-4px;top:-4px;width:28px;height:28px;border-radius:50%;border:2px solid #409eff}
/*! /*!
* @toast-ui/editor * @toast-ui/editor

2
dist/js/app.js vendored

File diff suppressed because one or more lines are too long

65
dist/js/chunk-183b683c.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

51
dist/js/chunk-vendors.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@
}) })
} catch (error) { } catch (error) {
console.log(error) console.log(error)
}</script><link href="dist/css/chunk-vendors.css?685589f1058f5fbca0d2" rel="stylesheet"><link href="dist/css/app.css?685589f1058f5fbca0d2" rel="stylesheet"></head><body><noscript><strong>We're sorry but thoughts doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script>const getDataFromBackend = () => { }</script><link href="dist/css/chunk-vendors.css?227f61428db154a5d9bc" rel="stylesheet"><link href="dist/css/app.css?227f61428db154a5d9bc" rel="stylesheet"></head><body><noscript><strong>We're sorry but thoughts doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script>const getDataFromBackend = () => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
setTimeout(() => { setTimeout(() => {
resolve({ resolve({
@ -83,4 +83,4 @@
// 可以通过window.$bus.$on()来监听应用的一些事件 // 可以通过window.$bus.$on()来监听应用的一些事件
// 实例化页面 // 实例化页面
window.initApp() window.initApp()
}</script><script src="dist/js/chunk-vendors.js?685589f1058f5fbca0d2"></script><script src="dist/js/app.js?685589f1058f5fbca0d2"></script></body></html> }</script><script src="dist/js/chunk-vendors.js?227f61428db154a5d9bc"></script><script src="dist/js/app.js?227f61428db154a5d9bc"></script></body></html>

View File

@ -32,9 +32,16 @@ const defaultTagStyle = {
//width: 30 // 标签矩形的宽度,如果不设置,默认以文字的宽度+paddingX*2为宽度 //width: 30 // 标签矩形的宽度,如果不设置,默认以文字的宽度+paddingX*2为宽度
} }
// 获取图片的真实url
// 因为如果注册了NodeBase64ImageStorage插件那么节点图片字段保存的实际是一个id所以如果要获取图片真实的url可以通过该方法
function getImageUrl() {
const img = this.getData('image')
return (this.mindMap.renderer.renderTree.data.imgMap || {})[img] || img
}
// 创建图片节点 // 创建图片节点
function createImgNode() { function createImgNode() {
let img = this.getData('image') const img = this.getImageUrl()
if (!img) { if (!img) {
return return
} }
@ -570,6 +577,7 @@ function isUseCustomNodeContent() {
} }
export default { export default {
getImageUrl,
createImgNode, createImgNode,
getImgShowSize, getImgShowSize,
createIconNode, createIconNode,

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
web/src/assets/img/gzh.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -72,7 +72,7 @@ export default {
this.reset() this.reset()
if (this.activeNodes.length > 0) { if (this.activeNodes.length > 0) {
let firstNode = this.activeNodes[0] let firstNode = this.activeNodes[0]
let img = firstNode.getData('image') || '' let img = firstNode.getImageUrl() || ''
if (img) { if (img) {
if (/^https?:\/\//.test(img)) { if (/^https?:\/\//.test(img)) {
this.imgUrl = img this.imgUrl = img

View File

@ -29,7 +29,7 @@ export default {
onNodeTmgDblclick(node, e) { onNodeTmgDblclick(node, e) {
e.stopPropagation() e.stopPropagation()
e.preventDefault() e.preventDefault()
this.images = [node.nodeData.data.image] this.images = [node.getImageUrl()]
this.$viewerApi({ this.$viewerApi({
images: this.images images: this.images
}) })