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 @@
+
+
+
+
+
+
+
+
+
+ 上传文件
+
+
+
+ 将文件拖曳至此区域,或 点击上传
+
+
+ 支持扩展名:.pptx
+
+
+
+
+ 使用统计
+
+
+
+ {{ detailForm.mediaName }}
+
+
+
+ {{ detailForm.mediaCategoryStr }}
+
+
+
+ {{ detailForm.displayFormStr }}
+
+
+
+ {{ detailForm.mediaSize }}
+
+
+
+ {{ detailForm.provinceName }}
+
+
+
+ {{ detailForm.address }}
+
+
+
+ {{ detailForm.advantages }}
+
+
+
+ {{ detailForm.advantages }}
+
+
+
+ {{ detailForm.advantages }}
+
+
+
+
+
+
任务记录
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 开始比对
+ 开始分析
+ 开始执行
+
+
+ 比对结果
+ 导出结果
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file