diff --git a/api/home.js b/api/home.js
index ffcfdce..7353cdf 100644
--- a/api/home.js
+++ b/api/home.js
@@ -18,6 +18,8 @@ const listMqttEvent = (params) => {
};
// 智能排风远程开关
const controlSocket = (data) => {
+ console.log(data,'controlSocket==>');
+
const payload = {
devEui: data.devEui,
deviceId: data.deviceId,
diff --git a/api/uniqueCode.js b/api/uniqueCode.js
index 3a7d498..b855061 100644
--- a/api/uniqueCode.js
+++ b/api/uniqueCode.js
@@ -24,7 +24,7 @@ const delUniqueCode = (params) => {
const detailUniqueCode = (params) => {
return request(`/unique/code/${params.id}`, params, 'GET');
};
-// 详情:通过唯一码获取物料信息
+// 扫码:通过唯一码获取物料信息
const getMaterialUnique = (params) => {
return request(`/unique/code/materialInfo/${params.code}`, params, 'GET');
};
diff --git a/pages.json b/pages.json
index a545814..d84e89e 100644
--- a/pages.json
+++ b/pages.json
@@ -26,13 +26,47 @@
},
{
"path": "pages/intelligent/index",
- "style": { "navigationBarTitleText": "智能" }
+ "style": { "navigationBarTitleText": "智能", "navigationStyle": "custom" }
},
{
"path": "pages/my/index",
"style": { "navigationBarTitleText": "我的" }
},
+ // 综合模式评估 recycling
+ {
+ "path": "pages/recycling/integratedModeAssessment/valueEvaluation",
+ "style": { "navigationBarTitleText": "危险废弃物回收多元价值评估" }
+ },
+ {
+ "path": "pages/recycling/integratedModeAssessment/results",
+ "style": { "navigationBarTitleText": "危险废弃物回收多元价值评估结果" }
+ },
+ // 智能处置
+ {
+ "path": "pages/recycling/leadBatteryCascadeUse/conditionAssessment",
+ "style": { "navigationBarTitleText": "状态评估" }
+ },
+ {
+ "path": "pages/recycling/leadBatteryCascadeUse/activationRecovery",
+ "style": { "navigationBarTitleText": "活化恢复" }
+ },
+ // 废物云控体系
+ {
+ "path": "pages/recycling/carbonFootprint/wasteCloudControl",
+ "style": { "navigationBarTitleText": "废物云控体系" }
+ },
+ // 危废碳足迹
+ {
+ "path": "pages/recycling/carbonFootprint/wasteCarbonFootprint",
+ "style": { "navigationBarTitleText": "危废碳足迹" }
+ },
+ // 铅蓄智修样机
+ {
+ "path": "pages/recycling/leadBatterySmartRepair/index",
+ "style": { "navigationBarTitleText": "铅蓄智修样机" }
+ },
+
{
"path": "pages/warehousing/uniqueCode/issueUniqueCode/index",
"style": {
diff --git a/pages/components/EquipmentInfo.vue b/pages/components/EquipmentInfo.vue
index a4be363..81861d3 100644
--- a/pages/components/EquipmentInfo.vue
+++ b/pages/components/EquipmentInfo.vue
@@ -43,12 +43,9 @@
handleSocketControl(e, item)" />
+ @change="(e) => handleSocketControl1(item, e)" />
-
+
@@ -56,19 +53,20 @@
- {{ item.summary }}|
+ {{ item.summary }}
+ |
{{ item.onlineText }}
-
+
@@ -235,31 +233,47 @@ function patchRealtimeState(prev, next) {
if (socket != null) res.switchStatus = res.socket_status = res.socketStatus = socket
return res
}
-
-async function handleSocketControl(e, item) {
- console.log(e, item, '111');
- const action = e ? 'on' : 'off'
- console.log(action, '111');
- if (action) {
- const deviceId = item.id || item.deviceId
- const devEui = item.devEui || item.devEUI || item.dev_eui
- console.log('devEui', devEui);
-
- if (!devEui) return uni.showToast({ title: '未找到设备', icon: 'none' })
- const k = item.cardKey || String(deviceId)
- if (controlLoadingMap[k]) return
- controlLoadingMap[k] = true
- try {
- const status = action === 'on' ? 1 : 0
- console.log(status, action, 'status');
-
- await controlSocket({ devEui, deviceId, status })
- syncSocketLocalState(item, status)
- uni.showToast({ title: '指令已发送', icon: 'success' })
- } finally {
- controlLoadingMap[k] = false
- }
+async function handleSocketControl(item, action) {
+ console.log(action, controlLoadingMap, 'action111');
+ console.log(item, 'item111');
+ const deviceId = item.id || item.deviceId
+ const devEui = item.devEui || item.devEUI || item.dev_eui
+ if (!devEui) return uni.showToast({ title: '未找到设备', icon: 'none' })
+ const k = item.cardKey || String(deviceId)
+ console.log('devEui1', controlLoadingMap, k, controlLoadingMap[k]);
+ if (controlLoadingMap[k]) return
+ controlLoadingMap[k] = true
+ try {
+ const status = action === 'on' ? 1 : 0
+ await controlSocket({ devEui, deviceId, status })
+ syncSocketLocalState(item, status)
+ uni.showToast({ title: '指令已发送', icon: 'success' })
+ } finally {
+ controlLoadingMap[k] = false
}
+}
+async function handleSocketControl1(item, e) {
+ const action = e ? 'on' : 'off'
+ console.log(action, controlLoadingMap, 'action11133');
+ console.log(item, 'item11133');
+ const deviceId = item.id || item.deviceId
+ const devEui = item.devEui || item.devEUI || item.dev_eui
+ if (!devEui) return uni.showToast({ title: '未找到设备', icon: 'none' })
+ const k = item.cardKey || String(deviceId)
+ console.log('devEui', controlLoadingMap, k, controlLoadingMap[k]);
+ if (controlLoadingMap[k]) return
+ console.log('controlLoadingMap[k]', controlLoadingMap[k]);
+ controlLoadingMap[k] = true
+ try {
+ const status = action === 'on' ? 1 : 0
+ console.log(status, action, 'status===>');
+ await controlSocket({ devEui, deviceId, status })
+ syncSocketLocalState(item, status)
+ uni.showToast({ title: '指令已发送', icon: 'success' })
+ } finally {
+ controlLoadingMap[k] = false
+ }
+
}
@@ -709,10 +723,15 @@ onBeforeUnmount(() => {
}
.location {
- font-size: 16px;
+ font-size: 14px;
color: #666;
}
+.text {
+ font-size: 14px;
+
+}
+
.type-name {
font-size: 16px;
font-weight: 600;
@@ -732,7 +751,7 @@ onBeforeUnmount(() => {
display: flex;
justify-content: space-between;
gap: 16rpx;
- margin-top: 10px;
+ margin-top: 20rpx;
}
.switch-actions {
@@ -833,7 +852,7 @@ onBeforeUnmount(() => {
.summary-card {
- padding: 18px 20px;
+ padding: 36rpx 40rpx;
border-radius: 18px;
position: relative;
overflow: hidden;
@@ -844,7 +863,7 @@ onBeforeUnmount(() => {
font-size: 13px;
font-weight: 500;
color: #334155;
- margin-bottom: 6px;
+ margin-bottom: 12rpx;
}
.value {
diff --git a/pages/components/ProjectOverView.vue b/pages/components/ProjectOverView.vue
index 49c4a36..3b3e2c7 100644
--- a/pages/components/ProjectOverView.vue
+++ b/pages/components/ProjectOverView.vue
@@ -23,7 +23,6 @@ getMyWarehouseList()
-
{{ item.parentName }}
\ No newline at end of file
diff --git a/pages/intelligent/index.vue b/pages/intelligent/index.vue
index 97a78f7..01688c3 100644
--- a/pages/intelligent/index.vue
+++ b/pages/intelligent/index.vue
@@ -1,5 +1,6 @@
+
@@ -7,15 +8,11 @@
\ No newline at end of file
diff --git a/pages/recycling/carbonFootprint/wasteCloudControl.vue b/pages/recycling/carbonFootprint/wasteCloudControl.vue
new file mode 100644
index 0000000..b56a76d
--- /dev/null
+++ b/pages/recycling/carbonFootprint/wasteCloudControl.vue
@@ -0,0 +1,3 @@
+废物云控体系
+
+
\ No newline at end of file
diff --git a/pages/recycling/integratedModeAssessment/results.vue b/pages/recycling/integratedModeAssessment/results.vue
new file mode 100644
index 0000000..7f944cb
--- /dev/null
+++ b/pages/recycling/integratedModeAssessment/results.vue
@@ -0,0 +1,508 @@
+
+
+
+
+ 🏆
+
+
+ 推荐方案:
+ 集中回收模式(大型中心)
+
+
+
+
+
+
+
+ ★
+ ★
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ result.total }}
+
+
+
+
+
+
+
+ 评估结果区 (多元价值评分)
+
+
+ {{ result.total }}
+ (良好)
+
+
+
+
+ ★
+ ★
+
+
+
+
+
+
+ {{ item.label }}
+
+ {{ item.value }}
+
+
+
+
+
+
+ 评价等级说明
+ 90-100:优秀( ★★★★★ )
+ 75-89:良好( ★★★★ )
+ 60-74:一般( ★★★ )
+ 0-59:较差( ★★ )
+
+
+
+
+
+
+ 模式对比区 (不同回收模式综合对比)
+
+
+
+
+
+
+ 评价维度
+ 集中回收模式
(大型中心)
+ 分散回收模式
(多个小型站点)
+ 对比结果
+
+
+ {{ row.dimension }}
{{ row.desc }}
+
+ {{ row.centralScore }}
+ {{ row.centralDesc }}
+
+
+ {{ row.distributedScore }}
+ {{ row.distributedDesc }}
+
+
+ ☑ {{ row.result }}
+
+
+
+
+
+
+
+ 综合得分(加权)
+ 79.1
+ 74.2
+ 集中回收模式更优 👍
+
+
+
+
+
+
+
+ 推荐结论区 (系统推荐与说明)
+
+ 推荐理由:
+ 1. 经济效益更高:规模化运营降低单位处理成本,综合成本优势明显;
+ 2. 资源利用效率更高:集中处理有利于提高资源回收率和再生利用水平;
+ 3. 管理效率更优:集中监管与运营,便于规范管理与风险控制。
+
+
+
+ 建议措施:
+ ✓ 加强运输过程的风险管控与环保措施
+ ✓ 优化回收中心布局,合理覆盖服务区域
+ ✓ 推动技术升级,提高资源化利用效率
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/recycling/integratedModeAssessment/valueEvaluation.vue b/pages/recycling/integratedModeAssessment/valueEvaluation.vue
new file mode 100644
index 0000000..800d4c3
--- /dev/null
+++ b/pages/recycling/integratedModeAssessment/valueEvaluation.vue
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+ 基本条件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 多元价值权重设置
+
+
+
+
+ {{ formModel[i.key] }}%
+
+
+
+
+
+ 参数说明
+ · 经济价值:回收成本、收益、资源利用收益等
+ · 环境价值:污染排放、生态影响、环境修复等
+ · 社会价值:公共安全、就业带动、合规性等
+ · 资源价值:资源再生利用率、循环利用价值等
+
+
+
+
+
+ 开始评估
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/recycling/leadBatteryCascadeUse/activationRecovery.vue b/pages/recycling/leadBatteryCascadeUse/activationRecovery.vue
new file mode 100644
index 0000000..3f49c22
--- /dev/null
+++ b/pages/recycling/leadBatteryCascadeUse/activationRecovery.vue
@@ -0,0 +1,3 @@
+智能处置-活化恢复
+
+
\ No newline at end of file
diff --git a/pages/recycling/leadBatteryCascadeUse/conditionAssessment.vue b/pages/recycling/leadBatteryCascadeUse/conditionAssessment.vue
new file mode 100644
index 0000000..55ca9ee
--- /dev/null
+++ b/pages/recycling/leadBatteryCascadeUse/conditionAssessment.vue
@@ -0,0 +1,3 @@
+智能处置-状态评估
+
+
\ No newline at end of file
diff --git a/pages/recycling/leadBatterySmartRepair/index.vue b/pages/recycling/leadBatterySmartRepair/index.vue
new file mode 100644
index 0000000..e1a3813
--- /dev/null
+++ b/pages/recycling/leadBatterySmartRepair/index.vue
@@ -0,0 +1,3 @@
+废铅蓄梯利用
+
+
\ No newline at end of file
diff --git a/pages/until.js b/pages/until.js
index 52c3b3a..4826cd1 100644
--- a/pages/until.js
+++ b/pages/until.js
@@ -204,3 +204,11 @@ export function transformData(arr) {
export const getToken = () => {
return uni.getStorageSync("app_token");
};
+
+export function getTwoOneRandom() {
+ // 整数部分 10~99
+ const int = Math.floor(Math.random() * 90) + 10;
+ // 小数部分 0~9
+ const dec = Math.floor(Math.random() * 10);
+ return parseFloat(`${int}.${dec}`);
+}
diff --git a/pages/utils/ws.js b/pages/utils/ws.js
index dd38d4a..f4258aa 100644
--- a/pages/utils/ws.js
+++ b/pages/utils/ws.js
@@ -1,3 +1,4 @@
+import { BASE_URL } from "../../api/request";
import { getToken } from "../until";
let ws = null;
@@ -27,7 +28,7 @@ function getWsBaseUrl() {
host = window.location.host;
} else {
// 非H5(小程序/App)需要你配置真实域名
- host = "你的后端域名";
+ host = BASE_URL;
}
return `${protocol}//${host}${baseApi}`.replace(/\/$/, "");
diff --git a/pages/warehousing/InventoryInfo/alert.vue b/pages/warehousing/InventoryInfo/alert.vue
index e69de29..429f105 100644
--- a/pages/warehousing/InventoryInfo/alert.vue
+++ b/pages/warehousing/InventoryInfo/alert.vue
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/InventoryInfo/checkUniqueCode.vue b/pages/warehousing/InventoryInfo/checkUniqueCode.vue
index e69de29..429f105 100644
--- a/pages/warehousing/InventoryInfo/checkUniqueCode.vue
+++ b/pages/warehousing/InventoryInfo/checkUniqueCode.vue
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/pages/warehousing/index.vue b/pages/warehousing/index.vue
index a468040..be73c4b 100644
--- a/pages/warehousing/index.vue
+++ b/pages/warehousing/index.vue
@@ -29,6 +29,10 @@ const menuList = [
title: '唯一码盘点',
click: () => {
console.log('唯一码盘点')
+ // pages/weif/index
+ uni.navigateTo({
+ url: '/pages/weif/index'
+ });
}
},
{
@@ -280,6 +284,84 @@ const menuList = [
},
]
},
+ {
+ id: 'recycling',
+ title: '模式评估处置',
+ menuItem: [
+ {
+ id: "recycling_integratedModeAssessment",
+ icon: '../../static/recycling/integratedModeAssessment.png',
+ title: '综合模式评估',
+ click: () => {
+ console.log('综合模式评估')
+ removeStorage()
+ uni.navigateTo({
+ url: `/pages/recycling/integratedModeAssessment/valueEvaluation`
+ });
+ }
+ },
+ {
+ id: "recycling_leadBatteryCascadeUse",
+ icon: '../../static/recycling/leadBatteryCascadeUse.png',
+ title: '智能处置',
+ click: () => {
+ console.log('智能处置')
+ removeStorage()
+ uni.navigateTo({
+ url: `/pages/recycling/leadBatteryCascadeUse/conditionAssessment`
+ });
+ }
+ },
+ ]
+ },
+ {
+ id: 'carbonFootprint',
+ title: '碳足迹',
+ menuItem: [
+ {
+ id: "recycling_wasteCloudControlSystem",
+ icon: '../../static/recycling/wasteCloudControlSystem.png',
+ title: '废物云控体系',
+ click: () => {
+ console.log('废物云控体系')
+ removeStorage()
+ uni.navigateTo({
+ url: `/pages/recycling/carbonFootprint/wasteCloudControl`
+ });
+ }
+ },
+ {
+ id: "recycling_carbonFootprint",
+ icon: '../../static/recycling/carbonFootprint.png',
+ title: '碳足迹',
+ click: () => {
+ console.log('碳足迹')
+ removeStorage()
+ uni.navigateTo({
+ url: `/pages/recycling/carbonFootprint/wasteCarbonFootprint`
+ });
+ }
+ },
+ ]
+ },
+ {
+ id: 'leadBatterySmartRepair',
+ title: '铅蓄智修样机',
+ menuItem: [
+ {
+ id: "recycling_leadBatterySmartRepair",
+ icon: '../../static/recycling/leadBatterySmartRepair.png',
+ title: '铅蓄智修样机',
+ click: () => {
+ console.log('铅蓄智修样机')
+ removeStorage()
+ uni.navigateTo({
+ url: `/pages/recycling/leadBatterySmartRepair/index`
+ });
+ }
+ },
+ ]
+ },
{
id: 'transportCheckIn',
title: '运输打卡',
diff --git a/static/recycling/carbonFootprint.png b/static/recycling/carbonFootprint.png
new file mode 100644
index 0000000..c6b6231
Binary files /dev/null and b/static/recycling/carbonFootprint.png differ
diff --git a/static/recycling/integratedModeAssessment.png b/static/recycling/integratedModeAssessment.png
new file mode 100644
index 0000000..2f7877d
Binary files /dev/null and b/static/recycling/integratedModeAssessment.png differ
diff --git a/static/recycling/leadBatteryCascadeUse.png b/static/recycling/leadBatteryCascadeUse.png
new file mode 100644
index 0000000..cd37f5d
Binary files /dev/null and b/static/recycling/leadBatteryCascadeUse.png differ
diff --git a/static/recycling/leadBatterySmartRepair.png b/static/recycling/leadBatterySmartRepair.png
new file mode 100644
index 0000000..e2884c8
Binary files /dev/null and b/static/recycling/leadBatterySmartRepair.png differ
diff --git a/static/recycling/wasteCloudControlSystem.png b/static/recycling/wasteCloudControlSystem.png
new file mode 100644
index 0000000..052006b
Binary files /dev/null and b/static/recycling/wasteCloudControlSystem.png differ