diff --git a/gyxtp/src/assets/img2/cloud.png b/gyxtp/src/assets/img2/cloud.png new file mode 100644 index 0000000..8859dcf Binary files /dev/null and b/gyxtp/src/assets/img2/cloud.png differ diff --git a/gyxtp/src/view/Home.vue b/gyxtp/src/view/Home.vue index fec97fa..818615b 100644 --- a/gyxtp/src/view/Home.vue +++ b/gyxtp/src/view/Home.vue @@ -84,7 +84,6 @@ export default { dialogVisible: false, disabled: true, type: 'word', - updateUrl: "http://localhost:10031/common/upload", fileList: [], lsList: [], rmList:[], diff --git a/gyxtp/src/view/Home1.vue b/gyxtp/src/view/Home1.vue index 62b9c23..bd42f2d 100644 --- a/gyxtp/src/view/Home1.vue +++ b/gyxtp/src/view/Home1.vue @@ -1037,7 +1037,7 @@ export default { this.haveImg = false; }else { this.haveImg = true; - this.src = "http://localhost:10031" + this.contentInfo.docVideo; + // this.src = "http://localhost:10031" + this.contentInfo.docVideo; var imgs = this.contentInfo.docImgs; this.imgsList = imgs.split(","); diff --git a/gyxtp/src/view/articleInfo.vue b/gyxtp/src/view/articleInfo.vue index 5e44753..1ede03e 100644 --- a/gyxtp/src/view/articleInfo.vue +++ b/gyxtp/src/view/articleInfo.vue @@ -553,14 +553,6 @@ export default { } else { this.haveImg = true; - // 处理多个视频地址 - if (this.contentInfo.docVideo) { - const videoPrefix = "http://localhost:10031"; - this.videoUrls = this.contentInfo.docVideo.split(',').map(video => videoPrefix + video.trim()); - } else { - this.videoUrls = []; - } - // 处理图片列表 if (this.contentInfo.docImgs) { this.imgsList = this.contentInfo.docImgs.split(","); diff --git a/gyxtp/src/view/create.vue b/gyxtp/src/view/create.vue index 14bdeeb..91b1dd2 100644 --- a/gyxtp/src/view/create.vue +++ b/gyxtp/src/view/create.vue @@ -418,7 +418,6 @@ export default { dialogImageUrl: "", disabled: true, type: 'word', - updateUrl: "http://localhost:10031/common/upload", fileList: [], lsList: [], rmList:[], @@ -804,21 +803,20 @@ export default { this.getAll(); this.getTitleByGroup() - - // 创建 WebSocket 连接 - this.socket = new WebSocket('ws://localhost:10031/api/ws?userId=123'); // 连接到上面的服务端 - - // 监听连接打开 - this.socket.addEventListener('open', (event) => { - console.log('WebSocket 连接已建立'); - this.messages.push('已连接到服务端'); - }); - - // 监听消息接收 - this.socket.addEventListener('message', (event) => { - console.log('收到消息:', event.data); - this.messages.push(event.data); - }); + // // 创建 WebSocket 连接 + // this.socket = new WebSocket('ws://localhost:10031/api/ws?userId=123'); // 连接到上面的服务端 + // + // // 监听连接打开 + // this.socket.addEventListener('open', (event) => { + // console.log('WebSocket 连接已建立'); + // this.messages.push('已连接到服务端'); + // }); + // + // // 监听消息接收 + // this.socket.addEventListener('message', (event) => { + // console.log('收到消息:', event.data); + // this.messages.push(event.data); + // }); } }; diff --git a/gyxtp/src/view/docInfo.vue b/gyxtp/src/view/docInfo.vue index fb31469..6da44df 100644 --- a/gyxtp/src/view/docInfo.vue +++ b/gyxtp/src/view/docInfo.vue @@ -65,7 +65,7 @@
-
图片视频
+
知识图片
@@ -85,7 +85,7 @@
-
图片视频
+
知识图片
@@ -106,7 +106,7 @@
-
图片视频
+
知识图片
@@ -127,7 +127,7 @@
-
图片视频
+
知识图片
@@ -395,7 +395,8 @@ const graphOptions = { force_line_elastic: 0.1 // 全局设置,线条的牵引系数,默认为1, 建议合理的取值范围:0.1 -- 10 // force_node_repulsion: 1, // 全局设置,节点之间的斥力系数,默认为1,建议合理的取值范围:0.1 -- 10 // force_line_elastic: 1 // 全局设置,线条的牵引系数,默认为1, 建议合理的取值范围:0.1 -- 10 - } + }, + backgroundColor: "#2d3562" }; export default { name: 'docInfo', @@ -796,22 +797,21 @@ export default { } else { this.haveImg = true; - // 处理多个视频地址 - if (this.contentInfo.docVideo) { - const videoPrefix = "http://localhost:10031"; - this.videoUrls = this.contentInfo.docVideo.split(',').map(video => videoPrefix + video.trim()); - } else { - this.videoUrls = []; - } // 处理图片列表 if (this.contentInfo.docImgs) { var lidt = this.contentInfo.docImgs.split(","); for(let a=0;a diff --git a/gyxtp/src/view/graphPageCopy0926.vue b/gyxtp/src/view/graphPageCopy0926.vue index e738ba1..43980c9 100644 --- a/gyxtp/src/view/graphPageCopy0926.vue +++ b/gyxtp/src/view/graphPageCopy0926.vue @@ -361,7 +361,8 @@ export default { layoutName: 'center', // 关键:使用 center 布局 levelDistance: '1000,1000,1000,1000,3000,3000,3000,3000', // 每一层的半径(可动态修改) startAngle: -Math.PI / 2, // 起始角度(-90°,顶部开始) - } + }, + backgroundColor: "#2d3562" }, currentNode: {}, // 选中的节点对象 attrbutes: [],//选中节点或连线的属性列表 @@ -1693,4 +1694,7 @@ tr { background-color: rgba(64, 158, 255,0.2); color:#409eff } +.rel-graph-loading{ + background-color: transparent!important; +} \ No newline at end of file diff --git a/gyxtp/src/view/graphPageNB927.vue b/gyxtp/src/view/graphPageNB927.vue index c56f037..9bec701 100644 --- a/gyxtp/src/view/graphPageNB927.vue +++ b/gyxtp/src/view/graphPageNB927.vue @@ -376,7 +376,8 @@ export default { layoutName: 'center', // 关键:使用 center 布局 levelDistance: '1000,1000,1000,1000,3000,3000,3000,3000', // 每一层的半径(可动态修改) startAngle: -Math.PI / 2, // 起始角度(-90°,顶部开始) - } + }, + backgroundColor: "#2d3562" }, currentNode: {}, // 选中的节点对象 attrbutes: [],//选中节点或连线的属性列表 @@ -1580,4 +1581,7 @@ tr { background-color: rgba(64, 158, 255,0.2); color:#409eff } +.rel-graph-loading{ + background-color: transparent!important; +} diff --git a/gyxtp/src/view/pointArticleInfo.vue b/gyxtp/src/view/pointArticleInfo.vue index 278ae2c..a3a7980 100644 --- a/gyxtp/src/view/pointArticleInfo.vue +++ b/gyxtp/src/view/pointArticleInfo.vue @@ -550,14 +550,6 @@ export default { } else { this.haveImg = true; - // 处理多个视频地址 - if (this.contentInfo.docVideo) { - const videoPrefix = "http://localhost:10031"; - this.videoUrls = this.contentInfo.docVideo.split(',').map(video => videoPrefix + video.trim()); - } else { - this.videoUrls = []; - } - // 处理图片列表 if (this.contentInfo.docImgs) { this.imgsList = this.contentInfo.docImgs.split(","); diff --git a/gyxtp/src/view/small.vue b/gyxtp/src/view/small.vue index c7c160b..d390edd 100644 --- a/gyxtp/src/view/small.vue +++ b/gyxtp/src/view/small.vue @@ -25,7 +25,7 @@
-
-

关键词云图

+
+

文内词云

+ +
@@ -161,6 +163,7 @@ export default { }, data() { return { + ciyun:1, chart: null, words: [ ], @@ -202,7 +205,7 @@ export default { debug: true, backgrounImageNoRepeat: true, moveToCenterWhenRefresh: true, - zoomToFitWhenRefresh: true, + // zoomToFitWhenRefresh: true, useAnimationWhenRefresh: false, defaultLineColor: 'rgba(255, 255, 255, 0.6)', @@ -211,27 +214,31 @@ export default { defaultNodeBorderColor: 'rgba(255, 255, 255, 0.3)', defaultNodeFontColor: '#fff', defaultNodeShape: 0, - defaultNodeWidth: 100, - defaultNodeHeight: 100, + defaultNodeWidth: 60, + defaultNodeHeight: 60, toolBarDirection: 'v', toolBarPositionH: 'right', - + toolBarPositionV:'top', // ✅ 正确设置:使用贝塞尔曲线 defaultLineShape: 1, // 2 = 贝塞尔曲线(Bezier),3 = 平滑曲线 layout: { layoutName: 'force', from: 'center', - maxLayoutTimes: 300, - force_node_repulsion: 10000, - force_line_elastic: 0.05, - force_gravity_center: 0.05, - force_no_overlap: 1.0, + maxLayoutTimes: 500, // ✅ 增加迭代次数 → 更稳定 + + // 🔥 核心调整:增大斥力 + force_node_repulsion: 20000, // 从 12000 → 20000(关键!) + + force_line_elastic: 0.03, // 减小边弹性 → 减少拉力 + force_gravity_center: 0.03, // 减小向心力 → 避免过度聚集 + force_no_overlap: 1.5, // ✅ 增强防重叠强度 force_is_3d: false, force_center: [0, 0], force_auto_restart: false - } + }, + backgroundColor: "#2d3562" }, direction: "rtl", // visGraph实例对象 @@ -383,6 +390,16 @@ export default { } }, methods: { + changeYun(){ + + if(this.ciyun==1){ + this.ciyun=0 + }else{ + this.ciyun=1 + this.initChart() + } + + }, initChart() { getKeywordsByKeyword(this.getpoinName).then(res=>{ this.words = res @@ -595,9 +612,9 @@ export default { const totalNum = totalNumMap[node.id]; // 根据 totalNum 计算尺寸(可调参数) - const baseSize = 120; // 最小尺寸 - const sizePerNum = 60; // 每单位 num 增加的尺寸 - const maxSize = 400; // 最大尺寸限制 + const baseSize = 80; // 最小尺寸 + const sizePerNum = 40; // 每单位 num 增加的尺寸 + const maxSize = 300; // 最大尺寸限制 let width = baseSize + sizePerNum * totalNum; width = Math.min(width, maxSize); // 限制最大值 @@ -1234,12 +1251,12 @@ tr { .container { position: fixed; - bottom: 20px; - left:100px; + bottom: 10px; + right:60px; width: 400px; /* 增大宽度 */ height: 300px; /* 增大高度 */ - background-color: transparent; - border: 1px solid #ddd; + background-color: rgba(76, 100, 233, 0.71); + border: none; border-radius: 12px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); padding: 12px; @@ -1251,4 +1268,7 @@ tr { height: calc(100% - 42px); /* 调整标题高度 */ position: relative; } +.rel-graph-loading{ + background-color: transparent!important; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ZhyDocmubanController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ZhyDocmubanController.java index 3e2a598..260f904 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ZhyDocmubanController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ZhyDocmubanController.java @@ -35,6 +35,8 @@ import com.ruoyi.system.service.IZhyDocmubanService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import static com.ruoyi.common.constant.Constants.FILE_MANAGER_DIR; + /** * 图谱模板Controller @@ -2204,7 +2206,7 @@ public class ZhyDocmubanController extends BaseController String formattedDate = dateFormat.format(new Date()); // 定义基础目录 - File baseDir = new File("D:\\project\\gyx\\tupudata\\fileManager"); + File baseDir = new File(FILE_MANAGER_DIR); // 如果基础目录不存在,则创建它(包括所有必需的父目录) if (!baseDir.exists() && !baseDir.mkdirs()) { throw new IOException("Failed to create base directory: " + baseDir.getAbsolutePath()); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index 1b83b0f..242bf75 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -181,8 +181,8 @@ public static final String indexPathBattle = "D:\\project\\gyx\\tupudata\\battl // // public static final String indexPathBattle = "C:\\tupudata\\battleManager\\index"; - public static final String outPath = "D:\\project\\gyx\\tupudata\\fileOut\\"; - public static String TUPUDATA_ROOT = "D:/project/gyx/tupudata"; + public static final String outPath = "D:\\tupudata\\fileOut\\"; + public static String TUPUDATA_ROOT = "D:/tupudata"; /** * 文章 PDF 存储目录 diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 65b6ea2..04dd1c3 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -9,3 +9,5 @@ VUE_APP_BASE_API = '/dev-api' # 路由懒加载 VUE_CLI_BABEL_TRANSPILE_MODULES = true + +VUE_APP_PORT=10031 diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index 3c3a142..74df527 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -6,3 +6,5 @@ ENV = 'production' # 知识图谱管理系统/生产环境 VUE_APP_BASE_API = '/prod-api' + +VUE_APP_PORT=10031 diff --git a/ruoyi-ui/src/views/system/battle/index.vue b/ruoyi-ui/src/views/system/battle/index.vue index 13ed8d4..27767aa 100644 --- a/ruoyi-ui/src/views/system/battle/index.vue +++ b/ruoyi-ui/src/views/system/battle/index.vue @@ -236,10 +236,10 @@ export default { // 设置上传的请求头部 headers: {Authorization: "Bearer " + getToken()}, // 上传的地址 - url: "http://localhost:10031/system/fileManage/uploadVideo", - url2: "http://localhost:10031", + // url: "http://localhost:10031/system/fileManage/uploadVideo", + // url2: "http://localhost:10031", }, - uploadImgUrl:"http://localhost:10031/common/upload1", + // uploadImgUrl:"http://localhost:10031/common/upload1", form: {}, showVideoPath: "", uploadUrl: "",//你要上传视频到你后台的地址 @@ -267,7 +267,7 @@ export default { isUploading: false, updateSupport: 0, headers: {Authorization: "Bearer " + getToken()}, - url: "http://localhost:10031/system/battle/addFile" + // url: "http://localhost:10031/system/battle/addFile" // url: "http://127.0.0.1:10031/system/battle/addFile" }, @@ -279,7 +279,7 @@ export default { isUploading: false, updateSupport: 0, headers: {Authorization: "Bearer " + getToken()}, - url: "http://localhost:10031/system/battle/addBattleFileNew" + // url: "http://localhost:10031/system/battle/addBattleFileNew" }, } }, @@ -489,11 +489,11 @@ export default { mounted() { this.getFileList() - var socket = new WebSocket('ws://localhost:10031/system/websocket/1'); - let that = this - socket.onmessage = function (event) { - that.upload.tip = event.data - } + // var socket = new WebSocket('ws://localhost:10031/system/websocket/1'); + // let that = this + // socket.onmessage = function (event) { + // that.upload.tip = event.data + // } }, } diff --git a/ruoyi-ui/src/views/system/create/index.vue b/ruoyi-ui/src/views/system/create/index.vue index b2420ad..36d5e21 100644 --- a/ruoyi-ui/src/views/system/create/index.vue +++ b/ruoyi-ui/src/views/system/create/index.vue @@ -262,7 +262,6 @@ export default { dialogVisible: false, disabled: true, type: 'word', - updateUrl: "http://localhost:10031/common/upload", fileList: [], lsList: [], rmList:[], @@ -731,7 +730,9 @@ export default { // 创建 WebSocket 连接 getUserProfile().then(response => { this.userId=response.data.userId - this.socket = new WebSocket('ws://localhost:10031/api/ws?userId='+response.data.userId); // 连接到上面的服务端 + let port=process.env.VUE_APP_PORT + console.log(port) + this.socket = new WebSocket('ws://localhost:'+port+'/api/ws?userId='+response.data.userId); // 连接到上面的服务端 // 监听连接打开 this.socket.addEventListener('open', (event) => { console.log('WebSocket 连接已建立'); diff --git a/ruoyi-ui/src/views/system/fileManage/index1.vue b/ruoyi-ui/src/views/system/fileManage/index1.vue deleted file mode 100644 index 4dd76fe..0000000 --- a/ruoyi-ui/src/views/system/fileManage/index1.vue +++ /dev/null @@ -1,1135 +0,0 @@ - - - diff --git a/ruoyi-ui/src/views/system/question/index.vue b/ruoyi-ui/src/views/system/question/index.vue index c721a04..7775514 100644 --- a/ruoyi-ui/src/views/system/question/index.vue +++ b/ruoyi-ui/src/views/system/question/index.vue @@ -213,7 +213,7 @@ export default { // 设置上传的请求头部 headers: { Authorization: "Bearer " + getToken() }, // 上传的地址 - url: "http://localhost:10031/system/excel/question/importData" + // url: "http://localhost:10031/system/excel/question/importData" }, // 表单参数 form: {}, diff --git a/ruoyi-ui/src/views/system/relationship/index.vue b/ruoyi-ui/src/views/system/relationship/index.vue index 2be1f61..9661da5 100644 --- a/ruoyi-ui/src/views/system/relationship/index.vue +++ b/ruoyi-ui/src/views/system/relationship/index.vue @@ -148,7 +148,7 @@ @pagination="getList" /> - + @@ -257,7 +257,7 @@ export default { showSearch: true, // 总条数 total: 0, - // 文章关系表格数据 + // 关系表格数据 relationshipList: [], // 弹出层标题 title: "", @@ -461,7 +461,7 @@ export default { ] }) }, - /** 查询文章关系列表 */ + /** 查询关系列表 */ getList() { this.loading = true; listRelationship(this.queryParams).then(response => { @@ -514,7 +514,7 @@ export default { this.reset(); this.resultFileList=[] this.open = true; - this.title = "添加文章关系"; + this.title = "添加关系"; }, /** 修改按钮操作 */ handleUpdate(row) { @@ -523,7 +523,7 @@ export default { getRelationship(id).then(response => { this.form = response.data; this.open = true; - this.title = "修改文章关系"; + this.title = "修改关系"; }); }, /** 提交按钮 */ @@ -554,7 +554,7 @@ export default { /** 删除按钮操作 */ handleDelete(row) { const ids = row.id || this.ids; - this.$modal.confirm('是否确认删除文章关系编号为"' + ids + '"的数据项?').then(function() { + this.$modal.confirm('是否确认删除关系编号为"' + ids + '"的数据项?').then(function() { return delRelationship(ids); }).then(() => { this.getList(); diff --git a/ruoyi-ui/src/views/system/smart/question.vue b/ruoyi-ui/src/views/system/smart/question.vue index b31a3ae..b49c391 100644 --- a/ruoyi-ui/src/views/system/smart/question.vue +++ b/ruoyi-ui/src/views/system/smart/question.vue @@ -309,7 +309,7 @@ export default { }, data() { return { - uploadUrl: 'http://localhost:10031/common/upload', + imageUrl: [], // 存储图片URL的字段 answers: [], filteredQuestions: [], diff --git a/ruoyi-ui/src/views/system/smart/trainImg.vue b/ruoyi-ui/src/views/system/smart/trainImg.vue index ac6c789..9f37053 100644 --- a/ruoyi-ui/src/views/system/smart/trainImg.vue +++ b/ruoyi-ui/src/views/system/smart/trainImg.vue @@ -149,27 +149,27 @@ - - -
- -
点击上传+拖拽上传
-
-
-
+ + + + + + + + + + + + + + + + + + + + + @@ -265,7 +265,7 @@ export default { nowId:undefined, openQuestion:false, // uploadUrl: 'http://127.0.0.1:10031/common/upload', - uploadUrl: 'http://localhost:10031/common/upload', + // uploadUrl: 'http://localhost:10031/common/upload', fileList:[], dialogImageUrl: '', diff --git a/ruoyi-ui/src/views/system/task/index.vue b/ruoyi-ui/src/views/system/task/index.vue index 77632b2..39625f0 100644 --- a/ruoyi-ui/src/views/system/task/index.vue +++ b/ruoyi-ui/src/views/system/task/index.vue @@ -205,7 +205,8 @@ export default { mounted() { getUserProfile().then(response => { this.userId=response.data.userId - this.socket = new WebSocket('ws://localhost:10031/api/ws?userId='+response.data.userId); // 连接到上面的服务端 + let port=process.env.VUE_APP_PORT + this.socket = new WebSocket('ws://localhost:'+port+'/api/ws?userId='+response.data.userId); // 连接到上面的服务端 // 监听连接打开 this.socket.addEventListener('open', (event) => { console.log('WebSocket 连接已建立');