diff --git a/src/api/mes/equipment.js b/src/api/mes/equipment.js
new file mode 100644
index 0000000..2152385
--- /dev/null
+++ b/src/api/mes/equipment.js
@@ -0,0 +1,33 @@
+import request from '@/utils/request'
+
+export function getEquipmentDetail(id) {
+ return request({
+ url: '/admin-api/mes/device-ledger/get',
+ method: 'get',
+ params: { id }
+ })
+}
+
+export function getEquipmentInspectionByDeviceId(deviceId, params = {}) {
+ return request({
+ url: '/admin-api/mes/ticket-management/getInspectionByDeviceId',
+ method: 'get',
+ params: { deviceId, ...params }
+ })
+}
+
+export function getEquipmentMaintenanceByDeviceId(deviceId, params = {}) {
+ return request({
+ url: '/admin-api/mes/ticket-management/getMaintenanceByDeviceId',
+ method: 'get',
+ params: { deviceId, ...params }
+ })
+}
+
+export function getEquipmentRepairListByDeviceId(deviceId, params = {}) {
+ return request({
+ url: '/admin-api/mes/dv-repair/getRepairListByDeviceId',
+ method: 'get',
+ params: { deviceId, ...params }
+ })
+}
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 1dda61e..31a8833 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -14,7 +14,9 @@
-
+
+ {{ badgeText }}
+
@@ -116,11 +118,18 @@
diff --git a/src/pages_function/pages/equipment/index.vue b/src/pages_function/pages/equipment/index.vue
index af3b5b5..e579b97 100644
--- a/src/pages_function/pages/equipment/index.vue
+++ b/src/pages_function/pages/equipment/index.vue
@@ -31,10 +31,7 @@
- 正在扫描中...
-
-
-
+ 正在打开扫码...
@@ -68,7 +65,6 @@ import { ref } from 'vue';
const equipmentCode = ref('');
const isScanning = ref(false);
-const scanProgress = ref(0);
function goBack() {
uni.navigateBack();
@@ -76,27 +72,38 @@ function goBack() {
function startScan() {
if (isScanning.value) return;
-
+
isScanning.value = true;
- scanProgress.value = 0;
-
- const duration = 2000;
- const interval = 50;
- const steps = duration / interval;
- let currentStep = 0;
-
- const timer = setInterval(() => {
- currentStep++;
- scanProgress.value = Math.min((currentStep / steps) * 100, 100);
-
- if (currentStep >= steps) {
- clearInterval(timer);
- setTimeout(() => {
- isScanning.value = false;
- navigateToDetail('EQ-SCAN-001');
- }, 200);
- }
- }, interval);
+
+ const finish = () => {
+ isScanning.value = false;
+ }
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ scanType: ['qrCode', 'barCode'],
+ success: (res) => {
+ const code = String(res?.result || res?.code || res?.qrCode || res?.barCode || '').trim()
+ if (!code) {
+ uni.showToast({ title: '未获取到扫码结果', icon: 'none' })
+ return
+ }
+ navigateToDetail(code)
+ },
+ fail: (err) => {
+ const msg = String(err?.errMsg || '')
+ if (msg.includes('cancel')) {
+ uni.showToast({ title: '已取消扫码', icon: 'none' })
+ return
+ }
+ if (msg.toLowerCase().includes('not support') || msg.toLowerCase().includes('not supported')) {
+ uni.showToast({ title: '当前平台不支持扫码', icon: 'none' })
+ return
+ }
+ uni.showToast({ title: '扫码失败', icon: 'none' })
+ },
+ complete: finish
+ })
}
function confirmInput() {
@@ -113,7 +120,7 @@ function confirmInput() {
function navigateToDetail(code) {
uni.navigateTo({
- url: `/pages_function/pages/equipment/detail?code=${encodeURIComponent(code)}`
+ url: `/pages_function/pages/equipment/detail?id=${encodeURIComponent(code)}`
});
}
@@ -169,7 +176,6 @@ function navigateToDetail(code) {
.content-section {
padding: 40rpx 30rpx;
- margin-top: -40rpx;
}
.scan-section {
@@ -317,21 +323,6 @@ function navigateToDetail(code) {
margin-bottom: 30rpx;
}
-.progress-bar {
- width: 400rpx;
- height: 8rpx;
- background: rgba(255, 255, 255, 0.2);
- border-radius: 4rpx;
- overflow: hidden;
-}
-
-.progress-fill {
- height: 100%;
- background: #ff8c00;
- border-radius: 4rpx;
- transition: width 0.05s linear;
-}
-
.divider {
display: flex;
align-items: center;
diff --git a/src/pages_function/pages/keypart/index.vue b/src/pages_function/pages/keypart/index.vue
index 935450d..09ea870 100644
--- a/src/pages_function/pages/keypart/index.vue
+++ b/src/pages_function/pages/keypart/index.vue
@@ -169,7 +169,6 @@ function navigateToDetail(code) {
.content-section {
padding: 40rpx 30rpx;
- margin-top: -40rpx;
}
.scan-section {