From 96203bec7668289e35b107e1b0fbe7ecc6aaa5bb Mon Sep 17 00:00:00 2001 From: wangchengming <15110151257@163.com> Date: Tue, 16 Sep 2025 16:06:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E7=BB=8F=E7=BA=AC=E5=BA=A6?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E5=92=8Cppt=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/geoConvert.js | 45 +++ src/api/pptAnalysis.js | 49 +++ src/assets/styles/ruoyi.scss | 35 +- src/views/index.vue | 43 ++- .../{index.vue => calibrationIndex.vue} | 78 ++-- src/views/mediaTool/geoConvertIndex.vue | 354 ++++++++++++++++++ src/views/mediaTool/pptAnalysisIndex.vue | 329 ++++++++++++++++ 7 files changed, 883 insertions(+), 50 deletions(-) create mode 100644 src/api/geoConvert.js create mode 100644 src/api/pptAnalysis.js rename src/views/mediaTool/{index.vue => calibrationIndex.vue} (87%) create mode 100644 src/views/mediaTool/geoConvertIndex.vue create mode 100644 src/views/mediaTool/pptAnalysisIndex.vue diff --git a/src/api/geoConvert.js b/src/api/geoConvert.js new file mode 100644 index 0000000..0c97f14 --- /dev/null +++ b/src/api/geoConvert.js @@ -0,0 +1,45 @@ +import request from '@/utils/request' + +// 获取经纬度转换任务分页列表 +export function mediaPageList(query) { + return request({ + url: '/admin/busGeoConvert/getBusGeoConvertPage', + method: 'post', + data: query + }) +} + +// 添加经纬度转换任务 +export function addBusGeoConvert(query) { + return request({ + url: '/admin/busGeoConvert/addBusGeoConvert', + method: 'post', + data: query + }) +} + +// 删除经纬度转换任务 +export function deleteBusGeoConvertTask(taskId) { + return request({ + url: '/admin/busGeoConvert/deleteBusGeoConvert/' + taskId, + method: 'post' + }) +} + +// 开始执行经纬度转换任务 +export function startBusGeoConvert(query) { + return request({ + url: '/admin/busGeoConvert/start', + method: 'post', + data: query + }) +} + +// 导出经纬度转换结果 +export function exportBusGeoConvert(query) { + return request({ + url: '/admin/busGeoConvert/export/' + query.id, + method: 'post', + responseType: 'blob' + }) +} \ No newline at end of file diff --git a/src/api/pptAnalysis.js b/src/api/pptAnalysis.js new file mode 100644 index 0000000..0f2e724 --- /dev/null +++ b/src/api/pptAnalysis.js @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +// 上传PPT分析文件 +export function uploadPPTAnalysisFile(query) { + return request({ + url: '/upload', + method: 'post', + data: query, + timeout: 300000, // 300秒 = 5分钟,根据文件大小调整 + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 获取PPT分析任务分页列表 +export function pptAnalysisTaskPageList(query) { + return request({ + url: '/tasks', + method: 'get', + params: query + }) +} + +// 获取PPT分析统计 +export function pptAnalysisStatistics(query) { + return request({ + url: '/statistics', + method: 'get', + params: query + }) +} + +// 删除PPT分析任务 +export function deletePPTAnalysisTask(taskId) { + return request({ + url: '/tasks/' + taskId, + method: 'DELETE' + }) +} + +// 导出PPT分析报告 +export function exportPPTAnalysisReport(taskId) { + return request({ + url: '/export/' + taskId, + method: 'get', + responseType: 'blob' + }) +} \ No newline at end of file diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss index 8ebaf0f..5f6e229 100644 --- a/src/assets/styles/ruoyi.scss +++ b/src/assets/styles/ruoyi.scss @@ -1297,12 +1297,14 @@ h6 { padding-bottom: 0px; } +.myUsingDetail .el-form-item--default, .myMediaDetailForm .el-form-item--default, .mySmailDetailForm .el-form-item--default, .myDetailForm .el-form-item--default { margin-bottom: 0px; } +.myUsingDetail .el-form--inline .el-form-item, .myMediaDetailForm .el-form--inline .el-form-item, .mySmailDetailForm .el-form--inline .el-form-item, .myDetailForm .el-form--inline .el-form-item { @@ -1310,8 +1312,7 @@ h6 { margin-right: 26px; vertical-align: middle; } - -.mySmailDetailForm .el-form-item__content, + .myDetailForm .el-form-item__content { font-family: Microsoft YaHei; font-weight: 400; @@ -1366,6 +1367,24 @@ h6 { /* 限制宽度 */ } +.myUsingDetail .el-form-item__content { + font-family: Microsoft YaHei; + font-weight: 400; + font-size: 16px; + color: #1E1E1E; + display: block; + line-height: 40px; + padding-left: 20px; + overflow: hidden; + /* 隐藏溢出的内容 */ + text-overflow: ellipsis; + /* 以省略号代替超出部分 */ + white-space: nowrap; + /* 强制在一行内显示,不允许自动换行 */ + width: 100%; + /* 限制宽度 */ +} + // 多行内容显示 .mySmailDetailForm .moreRowContent .el-form-item__label { font-family: Microsoft YaHei; @@ -1416,6 +1435,18 @@ h6 { min-height: 120px; } +.myUsingDetail .el-form-item__label { + font-family: Microsoft YaHei; + font-weight: 400; + font-size: 16px; + color: #002865; + justify-content: end; + min-height: 40px; + line-height: 40px; + padding-left: 17px; + background: #EDF2F960; +} + .mySmailDetailForm .el-form-item__label { font-family: Microsoft YaHei; font-weight: 400; diff --git a/src/views/index.vue b/src/views/index.vue index f92f0c9..e2935c1 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -59,7 +59,9 @@ - + + + @@ -76,10 +78,20 @@ import { useBackgroundStore } from '@/store/modules/background' import bigBackgroud from '@/assets/images/bigBackgroud.png' const bgStore = useBackgroundStore() +import calibrationIndex from './mediaTool/calibrationIndex.vue'; +import pptAnalysisIndex from './mediaTool/pptAnalysisIndex.vue'; +import geoConvertIndex from './mediaTool/geoConvertIndex.vue'; -import mediaTool from './mediaTool/index.vue' const showTool = ref(false) -const mediaToolRef = ref(null) +// 校准平台组件 +const showCalibration = ref(false) +const calibrationIndexRef = ref(null) +// ppt分析组件 +const showPPTAnalysis = ref(false) +const PPTAnalysisIndexRef = ref(null) +// 经纬度转换组件 +const showGeoConvert = ref(false) +const geoConvertIndexRef = ref(null) const router = useRouter() // 初始化 @@ -136,29 +148,44 @@ const handleGoOutdoorMediaMap = () => { // 打开校准平台 const handleGoCalibrationPlatform = () => { showTool.value = true + showCalibration.value = true nextTick(() => { - mediaToolRef.value.initTool(1) + calibrationIndexRef.value.initTool() }) } +// 关闭校准平台回调 +const handleCalibrationBack = () => { + showTool.value = false + showCalibration.value = false +} + // 打开PPT分析工具 const handleGoPPTAnalysisTool = () => { showTool.value = true + showPPTAnalysis.value = true nextTick(() => { - mediaToolRef.value.initTool(2) + PPTAnalysisIndexRef.value.initTool() }) } +// 关闭PPT分析回调 +const handlePPTAnalysisBack = () => { + showTool.value = false + showPPTAnalysis.value = false +} // 打开经纬度转换工具 const handleGoLongitudeConversion = () => { showTool.value = true + showGeoConvert.value = true nextTick(() => { - mediaToolRef.value.initTool(3) + geoConvertIndexRef.value.initTool() }) } -// 关闭工具回调 -const handleGoBack = () => { +// 关闭经纬度抓换工具回调 +const handleGeoConvertBack = () => { showTool.value = false + showGeoConvert.value = false } \ No newline at end of file diff --git a/src/views/mediaTool/pptAnalysisIndex.vue b/src/views/mediaTool/pptAnalysisIndex.vue new file mode 100644 index 0000000..b6db618 --- /dev/null +++ b/src/views/mediaTool/pptAnalysisIndex.vue @@ -0,0 +1,329 @@ + + + + \ No newline at end of file