From 4b8021094b63d3c693df42e07ce121d9b052695b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C002001lixiaobang=E2=80=9D?= <2547956374@qq.com> Date: Tue, 20 Jan 2026 17:59:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4=5F?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E7=90=83=E6=9C=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/tenement/highRiskProject.js | 41 +++ src/api/tenement/inventoryAudit.js | 26 ++ src/api/tenement/returnToInventory.js | 18 + src/components/ImageUpload/index.vue | 34 +- src/views/Logistics/RiskManagement/index.vue | 7 +- .../BallheadCamera/HighRiskProject.vue | 155 ++++++--- .../BallheadCamera/InventoryAudit.vue | 166 ++++++--- .../BallheadCamera/ReturnToInventory.vue | 171 ++++++--- .../BallheadCamera/components/DialogA.vue | 325 ++++++++++++++++-- .../BallheadCamera/components/DialogB.vue | 187 +++++++--- .../BallheadCamera/components/DialogC.vue | 171 +++++++-- 11 files changed, 1057 insertions(+), 244 deletions(-) create mode 100644 src/api/tenement/highRiskProject.js create mode 100644 src/api/tenement/inventoryAudit.js create mode 100644 src/api/tenement/returnToInventory.js diff --git a/src/api/tenement/highRiskProject.js b/src/api/tenement/highRiskProject.js new file mode 100644 index 0000000..1a2aef1 --- /dev/null +++ b/src/api/tenement/highRiskProject.js @@ -0,0 +1,41 @@ +import request from '@/utils/request' + +// 查询球机申请列表 +export function listCameraApplication(query) { + return request({ + url: '/manage/project/cameraApplication/list', + method: 'get', + params: query + }) +} +// 可分配球机列表 +export function listAvailableCamera(query) { + return request({ + url: '/manage/camera/alloc/availableList', + method: 'get', + params: query + }) +} +//确认分配 +export function confirmAllocation(data) { + return request({ + url: '/manage/camera/alloc/confirm', + method: 'post', + data: data + }) +} +//查看分配详情 +export function getAllocationDetail(projectId) { + return request({ + url: '/manage/camera/alloc/listByProject/' + projectId, + method: 'get' + }) +} + +//根据cameraId查询球机详情 +export function getCameraDetail(cameraId) { + return request({ + url: '/manage/camera/ledger/' + cameraId, + method: 'get' + }) +} \ No newline at end of file diff --git a/src/api/tenement/inventoryAudit.js b/src/api/tenement/inventoryAudit.js new file mode 100644 index 0000000..c95de2e --- /dev/null +++ b/src/api/tenement/inventoryAudit.js @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 入库审核列表 +export function listInventoryAudit(query) { + return request({ + url: '/manage/camera/inbound/auditList', + method: 'get', + params: query + }) +} +//确认入库审核通过 +export function approveInventoryAudit(data) { + return request({ + url: '/manage/camera/inbound/approve', + method: 'post', + data: data + }) +} +//确认入库审核驳回 +export function rejectInventoryAudit(data) { + return request({ + url: '/manage/camera/inbound/reject', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/src/api/tenement/returnToInventory.js b/src/api/tenement/returnToInventory.js new file mode 100644 index 0000000..b2ee8cd --- /dev/null +++ b/src/api/tenement/returnToInventory.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +// 查询球机回收记录列表 +export function listReturnToInventory(query) { + return request({ + url: '/manage/camera/return/list', + method: 'get', + params: query + }) +} +//现场回收确认 +export function submitReturnToInventory(data) { + return request({ + url: '/manage/camera/return/submit', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue index 8ffb3db..4a6ef47 100644 --- a/src/components/ImageUpload/index.vue +++ b/src/components/ImageUpload/index.vue @@ -3,7 +3,7 @@ import { getToken } from "@/utils/auth" import Sortable from 'sortablejs' +import { uploadFile } from '@/api/upload' const props = defineProps({ modelValue: [String, Object, Array], @@ -125,6 +126,24 @@ watch(() => props.modelValue, val => { } },{ deep: true, immediate: true }) +// 自定义上传方法 +async function handleCustomUpload(options) { + const { file } = options + try { + const response = await uploadFile(file) + if (response.code === 200) { + // 调用成功回调 + handleUploadSuccess(response, file) + } else { + // 调用失败回调 + handleUploadError(new Error(response.msg || '上传失败'), file) + } + } catch (error) { + console.error('上传文件失败:', error) + handleUploadError(error, file) + } +} + // 上传前loading加载 function handleBeforeUpload(file) { let isImg = false @@ -201,9 +220,18 @@ function uploadedSuccessfully() { } // 上传失败 -function handleUploadError() { - proxy.$modal.msgError("上传图片失败") +function handleUploadError(err, file) { + number.value-- + proxy.$modal.msgError(err?.message || "上传图片失败") proxy.$modal.closeLoading() + // 从文件列表中移除失败的文件 + if (file && proxy.$refs.imageUpload) { + try { + proxy.$refs.imageUpload.handleRemove(file) + } catch (e) { + console.error('移除失败文件时出错:', e) + } + } } // 预览 diff --git a/src/views/Logistics/RiskManagement/index.vue b/src/views/Logistics/RiskManagement/index.vue index 58c04f9..85287be 100644 --- a/src/views/Logistics/RiskManagement/index.vue +++ b/src/views/Logistics/RiskManagement/index.vue @@ -78,7 +78,7 @@ diff --git a/src/views/Tenement/BallheadCamera/ReturnToInventory.vue b/src/views/Tenement/BallheadCamera/ReturnToInventory.vue index 270a383..920f5f1 100644 --- a/src/views/Tenement/BallheadCamera/ReturnToInventory.vue +++ b/src/views/Tenement/BallheadCamera/ReturnToInventory.vue @@ -9,19 +9,19 @@ - + - + - - 重置 - 查询 + 重置 + 查询 @@ -34,15 +34,19 @@ 打印 - + - - - + + + + + @@ -58,85 +62,154 @@ total }} 条 + :total="total" layout="prev, pager, next" @size-change="getList" @current-change="getList"> - + diff --git a/src/views/Tenement/BallheadCamera/components/DialogA.vue b/src/views/Tenement/BallheadCamera/components/DialogA.vue index 483ccc0..24271e1 100644 --- a/src/views/Tenement/BallheadCamera/components/DialogA.vue +++ b/src/views/Tenement/BallheadCamera/components/DialogA.vue @@ -1,6 +1,6 @@ diff --git a/src/views/Tenement/BallheadCamera/components/DialogB.vue b/src/views/Tenement/BallheadCamera/components/DialogB.vue index 60f8d1a..1f1c2f8 100644 --- a/src/views/Tenement/BallheadCamera/components/DialogB.vue +++ b/src/views/Tenement/BallheadCamera/components/DialogB.vue @@ -11,31 +11,31 @@ - - + + - + - - 完好 - 破损 - 丢失 + + 完好 + 破损 + 丢失 - - 正常 - 异常 + + 正常 + 异常 @@ -43,32 +43,24 @@ - + - + -
-

点击上传或拖拽图片到此处

-

支持JPG/PNG格式,至少上传1张

-
-
-
- 回收照片 -
-
+
- + @@ -76,14 +68,17 @@ diff --git a/src/views/Tenement/BallheadCamera/components/DialogC.vue b/src/views/Tenement/BallheadCamera/components/DialogC.vue index 6f3fda8..e4dde0c 100644 --- a/src/views/Tenement/BallheadCamera/components/DialogC.vue +++ b/src/views/Tenement/BallheadCamera/components/DialogC.vue @@ -7,14 +7,15 @@
- 球机照片 + 球机照片 +
暂无照片
- {{ form.cameraId }} + {{ form.cameraNo }}
@@ -22,15 +23,15 @@
- {{ form.recycler }} + {{ form.returnBy }}
- {{ form.recycleTime }} + {{ form.returnTime }}
- {{ form.inspectionResult }} + {{ form.remark }}
@@ -50,14 +51,14 @@ - + - + @@ -68,13 +69,17 @@ @@ -140,6 +259,16 @@ const handleSubmit = () => { border-radius: 4px; } +.no-photo { + display: flex; + align-items: center; + justify-content: center; + height: 200px; + color: #909399; + background-color: #f5f7fa; + border-radius: 4px; +} + .info-list { display: flex; flex-direction: column;