From 42ff302287f4b6c74b4b32740cfe8a47088e9085 Mon Sep 17 00:00:00 2001
From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com>
Date: Fri, 17 Oct 2025 10:25:56 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/dataAnalysis/projectSafety.js | 19 ++
src/components/UploadFileFormData/index.vue | 265 ++++++++++++++++++
.../components/addAndEditFormOne.vue | 17 +-
.../dataAnalysis/projectSafety/index.vue | 162 ++++++++++-
4 files changed, 459 insertions(+), 4 deletions(-)
create mode 100644 src/components/UploadFileFormData/index.vue
diff --git a/src/api/dataAnalysis/projectSafety.js b/src/api/dataAnalysis/projectSafety.js
index 6e5b84c..92c6ad5 100644
--- a/src/api/dataAnalysis/projectSafety.js
+++ b/src/api/dataAnalysis/projectSafety.js
@@ -72,3 +72,22 @@ export function deleteVideoSafetyAnalysisAPI(data) {
data,
})
}
+
+// 下载模板
+export function downloadProjectTemplateAPI(data = {}) {
+ return request({
+ url: '/background/sj/safety/downloadFile',
+ method: 'get',
+ responseType: 'blob',
+ params: data,
+ })
+}
+
+// 导入工程安全分析一本账列表
+export function importProjectSafetyAnalysisAPI(data) {
+ return requestFormData({
+ url: '/background/sj/safety/importFileData',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components/UploadFileFormData/index.vue b/src/components/UploadFileFormData/index.vue
new file mode 100644
index 0000000..dbd96d2
--- /dev/null
+++ b/src/components/UploadFileFormData/index.vue
@@ -0,0 +1,265 @@
+
+
+
+
+ 点击上传
+
+
+ {{ uploadTip }}
+
+
+
+
+
+
+
+
diff --git a/src/views/dataAnalysis/projectSafety/components/addAndEditFormOne.vue b/src/views/dataAnalysis/projectSafety/components/addAndEditFormOne.vue
index f3b8fec..0668170 100644
--- a/src/views/dataAnalysis/projectSafety/components/addAndEditFormOne.vue
+++ b/src/views/dataAnalysis/projectSafety/components/addAndEditFormOne.vue
@@ -33,13 +33,26 @@
-
+ /> -->
+
+
+
+
+
+
+
diff --git a/src/views/dataAnalysis/projectSafety/index.vue b/src/views/dataAnalysis/projectSafety/index.vue
index 304a1f0..38d86c6 100644
--- a/src/views/dataAnalysis/projectSafety/index.vue
+++ b/src/views/dataAnalysis/projectSafety/index.vue
@@ -23,11 +23,25 @@
/>
-
+ /> -->
+
+
+
+
+
+
+
+
新增
+
+
+ 导入
+
+
+
+ 下载模板
+
@@ -78,6 +108,10 @@
+
+ {{ indexToRiskLevel(scope.row.riskLevel) }}
+
+
{{ scope.row[column.prop] }}
@@ -229,6 +263,37 @@
+
+
+
+
+
+
@@ -238,16 +303,22 @@ import {
deleteProjectSafetyAnalysisAPI,
getVideoSafetyAnalysisListAPI,
deleteVideoSafetyAnalysisAPI,
+ downloadProjectTemplateAPI,
+ importProjectSafetyAnalysisAPI,
} from '@/api/dataAnalysis/projectSafety'
+import { downloadFile } from '@/utils/download'
+
import AddAndEditFormOne from './components/addAndEditFormOne.vue'
import AddAndEditFormTwo from './components/addAndEditFormTwo.vue'
+import UploadFileFormData from '@/components/UploadFileFormData'
export default {
name: 'ProjectQuality',
components: {
AddAndEditFormOne,
AddAndEditFormTwo,
+ UploadFileFormData,
},
data() {
return {
@@ -260,7 +331,10 @@ export default {
safetyType: '风险一本账',
projectList: [], // 风险一本账列表
projectList_1: [], // 视频风险分析列表
+ importFileList: [], // 导入文件列表
addAndEditDialogVisible: false,
+ importDialogVisible: false,
+ loading: false,
addAndEditDialogTitle: '',
tableColumns: [
{
@@ -430,6 +504,23 @@ export default {
})
},
+ indexToRiskLevel(index) {
+ switch (index) {
+ case '1':
+ return 'Ⅰ'
+ case '2':
+ return 'Ⅱ'
+ case '3':
+ return 'Ⅲ'
+ case '4':
+ return 'Ⅳ'
+ case '5':
+ return 'Ⅴ'
+ default:
+ return ''
+ }
+ },
+
// 提交工程质量
async onHandleSubmit() {
if (this.safetyType === '风险一本账') {
@@ -460,6 +551,68 @@ export default {
}
}
},
+
+ // 导入
+ onHandleImport() {
+ this.importDialogVisible = true
+ this.importFileList = []
+ },
+
+ // 下载模板
+ onHandleDownloadTemplate() {
+ downloadProjectTemplateAPI().then((res) => {
+ downloadFile({
+ fileName: '模板.xlsx',
+ fileData: res,
+ fileType: 'application/vnd.ms-excel;charset=utf-8',
+ })
+ })
+ },
+
+ // 取消上传
+ onHandleCancelImport() {
+ this.importFileList = []
+ this.dialogConfig.outerVisible = false
+ },
+
+ // 确定上传
+ async onHandleConfirmImport() {
+ if (this.importFileList.length > 0) {
+ const formData = new FormData()
+ // 增加全局loading
+ this.loading = true
+ formData.append('file', this.importFileList[0].raw)
+ const res = await importProjectSafetyAnalysisAPI(formData)
+
+ this.loading = false
+
+ if (res.code === 200) {
+ this.$message.success('导入成功')
+ this.importFileList = []
+ this.importDialogVisible = false
+ this.getProjectSafetyAnalysisList()
+ } else {
+ this.$message.error(res.msg)
+ }
+ } else {
+ this.$confirm(
+ '当前未选择文件,确定后将关闭上传页面?',
+ '温馨提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ )
+ .then(async () => {
+ this.importFileList = []
+ this.importDialogVisible = false
+ })
+ .catch(() => {
+ // console.log('取消')
+ })
+ }
+ },
},
}
@@ -483,4 +636,9 @@ export default {
box-sizing: border-box !important;
}
}
+
+.dialog-footer-btn {
+ text-align: right;
+ margin-top: 20px;
+}