-
-
-
-
-
+
+
+
+
+
-
-
+
-
- {{ project.name }}
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择文件夹
+
+
+
+
+
+
+
+ 清空列表
+
+
+
+
+
+ 开始上传
+
+
+
-
-
-
-
-
-
{{ record.fileName }}
-
-
-
-
- {{ record.fileType }}
-
-
-
- {{ record.fileSize }}
-
-
- {{ record.uploadTime }}
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
图像处理
-
-
去噪
-
增强
-
裁剪
-
旋转校正
+
+
+
+
+
+
![预览]()
+
+
+
+
+
+
+
+ {{ record.type }}
+
+
+
+ {{ formatFileSize(record.size) }}
+
+
+
-
-
-
-
-
-
-
-
输出格式
-
-
- JPG
- PNG
- TIFF
- MP4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 准备预处理...
- 正在处理中...
-
-
-
-
{{ processingProgress }}%
-
-
-
-
-
-
上一步
-
- 开始预处理
-
-
- 下一步
-
-
-
-
-
-
-
-
-
-
-
-
预处理完成
-
数据预处理已成功完成,共处理了 {{ selectedFiles.length }} 个文件
-
-
-
-
+
+
@@ -204,190 +162,349 @@
\ No newline at end of file
+
+.thumbnail-cell {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 60px;
+
+ .thumbnail-image {
+ max-height: 60px;
+ max-width: 80px;
+ object-fit: contain;
+ border-radius: 2px;
+ }
+
+ .file-icon {
+ font-size: 24px;
+ color: var(--color-text-3);
+ }
+}
+
+/* 上传进度框样式 */
+.upload-progress-fixed {
+ position: fixed;
+ bottom: 24px;
+ right: 24px;
+ width: 360px;
+ z-index: 1000;
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
+ border-radius: 8px;
+ animation: fadeIn 0.3s ease;
+
+ :deep(.arco-card-header) {
+ border-bottom: 1px solid var(--color-border);
+ padding-bottom: 12px;
+ }
+
+ :deep(.arco-progress-text) {
+ font-size: 14px;
+ }
+}
+
+.progress-details {
+ margin-top: 12px;
+ font-size: 13px;
+ color: var(--color-text-2);
+
+ p {
+ display: flex;
+ align-items: center;
+ margin: 6px 0;
+
+ .arco-icon {
+ margin-right: 8px;
+ font-size: 16px;
+ }
+ }
+}
+
+@keyframes fadeIn {
+ from { opacity: 0; transform: translateY(10px); }
+ to { opacity: 1; transform: translateY(0); }
+}
+
\ No newline at end of file
diff --git a/src/views/construction-operation-platform/implementation-workflow/data-processing/data-storage/components/AttachmentUpload.vue b/src/views/construction-operation-platform/implementation-workflow/data-processing/data-storage/components/AttachmentUpload.vue
index 4bfb83e..401861d 100644
--- a/src/views/construction-operation-platform/implementation-workflow/data-processing/data-storage/components/AttachmentUpload.vue
+++ b/src/views/construction-operation-platform/implementation-workflow/data-processing/data-storage/components/AttachmentUpload.vue
@@ -105,8 +105,16 @@ const formData = reactive({
const fetchBusinessTypes = async () => {
try {
const res = await getAttachBusinessTypes()
+ console.log("res:",res);
if (res.data) {
- businessTypes.value = res.data
+ res.data.forEach(item => {
+ const key = Object.keys(item)[0];
+ const value = item[key];
+ businessTypes.value.push({
+ name: value,
+ code:key
+ });
+ });
}
} catch (error) {
console.error('获取业务类型失败:', error)
diff --git a/src/views/construction-operation-platform/implementation-workflow/data-processing/image-sorting/index.vue b/src/views/construction-operation-platform/implementation-workflow/data-processing/image-sorting/index.vue
new file mode 100644
index 0000000..f1625a8
--- /dev/null
+++ b/src/views/construction-operation-platform/implementation-workflow/data-processing/image-sorting/index.vue
@@ -0,0 +1,603 @@
+
+
+
+
+
+
+
+
+
{{ uploadState.currentFile || '准备中...' }}
+
已完成 {{ uploadState.uploadedCount }}/{{ uploadState.totalCount }}
+
状态: {{ getStatusText(uploadState.status) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择文件夹
+
+
+
+
+
+
+
+ 清空列表
+
+
+
+
+
+ 开始上传
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![预览]()
+
+
+
+
+
+
+
+ {{ record.type }}
+
+
+
+ {{ formatFileSize(record.size) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/operation-platform/data-processing/data-storage/components/PreviewModal.vue b/src/views/operation-platform/data-processing/data-storage/components/PreviewModal.vue
index 8bdee3a..1b29315 100644
--- a/src/views/operation-platform/data-processing/data-storage/components/PreviewModal.vue
+++ b/src/views/operation-platform/data-processing/data-storage/components/PreviewModal.vue
@@ -106,12 +106,14 @@ const getAudioUrl = (filePath: string): string => {
const openPreview = (item: PreviewItem) => {
currentPreviewItem.value = item
audioList.value = []
- for (const audio of item.audios) {
- let temp={
- audioId:audio.audioId,
- url:getAudioUrl(audio.filePath)
+ if(item.audios){
+ for (const audio of item.audios) {
+ let temp={
+ audioId:audio.audioId,
+ url:getAudioUrl(audio.filePath)
+ }
+ audioList.value.push(temp)
}
- audioList.value.push(temp)
}
previewModalVisible.value = true
diff --git a/src/views/operation-platform/data-processing/data-storage/index.vue b/src/views/operation-platform/data-processing/data-storage/index.vue
index b7b461e..3b95a64 100644
--- a/src/views/operation-platform/data-processing/data-storage/index.vue
+++ b/src/views/operation-platform/data-processing/data-storage/index.vue
@@ -251,15 +251,22 @@ const fetchPartList = async (projectId: string, turbineId: string) => {
// 处理筛选变化,获取图像列表
const handleFilterChange = async () => {
- if (!filterParams.unit) return
+ // if (!filterParams.project) return
loading.image = true
try {
let params = {
- turbineId: filterParams.unit
+ projectId: filterParams.project
+ }
+ if(filterParams.unit){
+ params = {
+ projectId: filterParams.project,
+ turbineId: filterParams.unit
+ }
}
if(filterParams.component){
params = {
+ projectId: filterParams.project,
turbineId: filterParams.unit,
partId: filterParams.component
}
diff --git a/src/views/project-management/bidding/information-retrieval/components/BiddingDetailModal.vue b/src/views/project-management/bidding/information-retrieval/components/BiddingDetailModal.vue
new file mode 100644
index 0000000..992779f
--- /dev/null
+++ b/src/views/project-management/bidding/information-retrieval/components/BiddingDetailModal.vue
@@ -0,0 +1,198 @@
+
+ $emit('update:visible', val)"
+ >
+
+ {{ detail.projectName }}
+ {{ detail.biddingUnit }}
+ {{ detail.budgetAmount }}万元
+ {{ detail.deadline }}
+ {{ detail.crawlingTime }}
+ {{ detail.projectLocation }}
+ {{ detail.projectDuration }}
+ {{ detail.biddingScope }}
+ {{ detail.qualificationRequirements }}
+
+
+ {{ detail.sourcePlatform }}
+
+
+
+
+
+ {{ displayedFileName }}
+
+
暂无文件
+
+
+
+
+ {{ detail.biddingDocuments ? '重新上传' : '上传文件' }}
+
+
+
+
+
+
+
+
招标内容
+
{{ detail.biddingContent }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/project-management/bidding/information-retrieval/components/CrawlerSettings.vue b/src/views/project-management/bidding/information-retrieval/components/CrawlerSettings.vue
new file mode 100644
index 0000000..0131282
--- /dev/null
+++ b/src/views/project-management/bidding/information-retrieval/components/CrawlerSettings.vue
@@ -0,0 +1,164 @@
+
+
+
+
+
+ 每小时
+ 每天
+ 每周
+ 每月
+
+
+
+
+
+
+
+
+
+
+
+ 国能e招
+
+
+ 中国节能
+
+
+ 科幻集团
+
+
+ 三峡招标
+
+
+ 三峡采购
+
+
+ 北京京能
+
+
+ 华润守正
+
+
+
+
+
+
+
+
+
+
+
+
+ 站内消息
+ 电子邮件
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [{{ log.time }}] {{ log.message }}
+
+
+
+
+
+
+ 取消
+ 保存设置
+
+
+
+
+
+
+
\ No newline at end of file