Compare commits

..

No commits in common. "7561634e996392523ec29675ddd16196e2e739bd" and "e74cbab2bc2d7ba95269b7de119b27b6ddd3d3bb" have entirely different histories.

6 changed files with 94 additions and 112 deletions

View File

@ -1,18 +1,9 @@
// 后端接口 // 后端接口
export const BASE_API_URL = "https://online.totustec.com/api"; export const BASE_API_URL = "https://online.totustec.com/api";
// 静态数据 // 静态数据
export const BASE_IMG_URL = "https://online.totustec.com/upload"; export const BASE_IMG_URL = "https://online.totustec.com/upload";
export const BASE_STOKECT_URL = "wss://online.totustec.com/webSocket/vue"
// 打印状态颜色以及对应编号 export const BASE_STOKECT_URL = "wss://online.totustec.com/webSocket/vue"
export const DEVICE_STATUS_MAP={
0: { color: '#999999', text: '空闲' },
1: { color: '#00d195', text: '打印中' },
2: { color: '#00abff', text: '准备中' },
3: { color: '#FDCB3B', text: '铲件中' },
4: { color: '#FDCB3B', text: '暂停' },
5: { color: '#4CAF50', text: '打印完成' },
6: { color: '#18a2af', text: '报警' },
'-1': { color: '#999999', text: '断开' }
}

View File

@ -24,32 +24,35 @@
<view class="device_table_area"> <view class="device_table_area">
<view class="device_table_top"> <view class="device_table_top">
<view class="table_top_item" style="padding-left: 27rpx">机器序号</view> <view class="table_top_item" style="padding-left: 27rpx">机器序号</view>
<view class="table_top_item" style="width: 240rpx">机器描述</view> <view class="table_top_item" style="width: 301rpx">机器描述</view>
<view class="table_top_item" style="width: 230rpx">运行状态</view> <view class="table_top_item" style="width: 200rpx">设备运行状态</view>
<view class="table_top_item" style="width: 160rpx">设备控制</view>
</view> </view>
<view class="table_data_warp" v-if="deviceList.length > 0"> <view class="table_data_warp" v-if="deviceList.length > 0">
<view class="table_data_item" v-for="(item, index) in deviceList" :key="item.deviceCode"> <view class="table_data_item" v-for="(item, index) in deviceList">
<view class="data_display_warp"> <view class="data_display_warp">
<view class="data_item_line" style="padding-left: 27rpx">{{ item.deviceCode }}</view> <view class="data_item_line" style="padding-left: 27rpx">{{ item.deviceCode }}</view>
<view class="data_item_line" style="width: 240rpx">{{ item.brand }}</view> <view class="data_item_line" style="width: 301rpx">{{ item.brand }}</view>
<view class="data_item_line"> <view class="data_item_line" style="width: 200rpx">
<view class="label_warp"> <view class="label_warp" v-if="item.status == 0">
<view <view class="label_icon"></view>
class="label_icon" <view class="label_text">空闲</view>
:style="{ background: getStatusConfig(item.status).color }"
></view>
<view
class="label_text"
:style="{ color: getStatusConfig(item.status).color }"
>
{{ getStatusConfig(item.status).text }}
</view> </view>
<view class="label_warp" v-if="item.status == 2">
<view class="label_icon" style="background: #00abff"></view>
<view class="label_text" style="color: #00abff">准备中</view>
</view> </view>
<view class="label_warp" v-if="item.status == 1">
<view class="label_icon" style="background: #00d195"></view>
<view class="label_text" style="color: #00d195">打印中</view>
</view>
<view class="label_warp" v-if="item.status == 3">
<view class="label_icon" style="background: #FDCB3B"></view>
<view class="label_text" style="color: #FDCB3B">铲件中</view>
</view>
<view class="label_warp" v-if="item.status == -1">
<view class="label_icon" style="background: #999999"></view>
<view class="label_text" style="color: #999999">断开</view>
</view> </view>
<view class="data_item_line" style="width: 160rpx">
<button class="device_control_btn" @click="toDeviceControl(item.deviceCode, item.status)">查看
</button>
</view> </view>
</view> </view>
@ -71,16 +74,17 @@
<view style="height: 100rpx"></view> <view style="height: 100rpx"></view>
</view> </view>
<!-- <image class="equipment_control_warp" src="https://online.totustec.com/upload/devicePage/equipment_control_warp.png"--> <image class="equipment_control_warp" src="https://online.totustec.com/upload/devicePage/equipment_control_warp.png"
<!-- @click="toPage('设备控制')">--> @click="toPage('设备控制')">
<!-- </image>--> </image>
</view> </view>
</template> </template>
<script> <script>
import { import {
BASE_API_URL, BASE_API_URL,
BASE_STOKECT_URL,DEVICE_STATUS_MAP BASE_STOKECT_URL,
BASE_IMG_URL
} from "@/config.js"; } from "@/config.js";
export default { export default {
data () { data () {
@ -92,11 +96,12 @@ export default {
size: 10000, size: 10000,
}, },
deviceList: [], deviceList: [],
// WebSocket // WebSocket
socketTask: null, // uni-app WebSocket socketTask: null, // uni-app WebSocket
isSocketConnected: false, // isSocketConnected: false, //
reconnectTimer: null, // reconnectTimer: null, //
reconnectInterval: 5000, // 5 reconnectInterval: 5000 // 5
}; };
}, },
onLoad () { onLoad () {
@ -104,7 +109,9 @@ export default {
const { const {
statusBarHeight, // px statusBarHeight, // px
} = systemInfo; } = systemInfo;
this.statusBarHeight = statusBarHeight; this.statusBarHeight = statusBarHeight;
this.connectWebSocket(); // WebSocket this.connectWebSocket(); // WebSocket
}, },
onUnload () { onUnload () {
@ -131,16 +138,19 @@ export default {
} }
}); });
}, },
listenSocketMessage () { listenSocketMessage () {
// WebSocket // WebSocket
uni.onSocketMessage((event) => { uni.onSocketMessage((event) => {
console.log('event', event); console.log('event', event);
const message = JSON.parse(event.data); const message = JSON.parse(event.data);
console.log('收到实时消息:', message); console.log('收到实时消息:', message);
this.getDeviceList(); this.getDeviceList();
// this.updateDeviceStatus(message); // // this.updateDeviceStatus(message); //
}); });
}, },
closeWebSocket () { closeWebSocket () {
// //
if (this.socketTask) { if (this.socketTask) {
@ -150,6 +160,7 @@ export default {
} }
clearTimeout(this.reconnectTimer); clearTimeout(this.reconnectTimer);
}, },
tryReconnect () { tryReconnect () {
// //
clearTimeout(this.reconnectTimer); clearTimeout(this.reconnectTimer);
@ -158,9 +169,13 @@ export default {
this.connectWebSocket(); this.connectWebSocket();
}, this.reconnectInterval); }, this.reconnectInterval);
}, },
updateDeviceStatus (message) { updateDeviceStatus (message) {
console.log('实时消息'); console.log('实时消息');
}, },
toPage (type) { toPage (type) {
if (type == "设备控制") { if (type == "设备控制") {
uni.navigateTo({ uni.navigateTo({
@ -173,19 +188,7 @@ export default {
}); });
} }
}, },
toDeviceControl(deviceCode, status) {
if (status === -1) {
uni.showToast({
title: '设备处于断开状态,暂不支持查看',
icon: 'none'
});
return
}
console.log("data", deviceCode);
uni.navigateTo({
url: `/pages/deviceManage/index?deviceCode=${deviceCode}`
});
},
async getDeviceList () { async getDeviceList () {
try { try {
// //
@ -207,15 +210,13 @@ export default {
} }
} catch (error) { } catch (error) {
console.log('请求接口失败', error); console.log('请求接口失败', error);
} }
}, },
getStatusConfig(status) {
return DEVICE_STATUS_MAP[status] || { color: '#cccccc', text: '未知' };
},
}, },
}; };
</script> </script>
<!-- 临时样式 -->
<style scoped> <style scoped>
.label_icon { .label_icon {
width: 18rpx; width: 18rpx;
@ -223,6 +224,7 @@ export default {
background: #cccccc; background: #cccccc;
border-radius: 100%; border-radius: 100%;
} }
.label_text { .label_text {
font-family: PingFang SC, PingFang SC; font-family: PingFang SC, PingFang SC;
font-weight: 400; font-weight: 400;
@ -231,9 +233,19 @@ export default {
margin-left: 8rpx; margin-left: 8rpx;
} }
.label_text2 {
color: #ff0000;
}
.label_warp { .label_warp {
display: flex; display: flex;
align-items: center; align-items: center;
margin-left: 48rpx;
}
.label_warp2 {
display: flex;
align-items: center;
} }
.data_item_line { .data_item_line {
@ -439,18 +451,4 @@ export default {
margin-top: -28rpx; margin-top: -28rpx;
padding-top: 28rpx; padding-top: 28rpx;
} }
.device_control_btn {
width: 114rpx;
height: 48rpx;
background: #f2c141;
border-radius: 24rpx;
display: flex;
justify-content: center;
align-items: center;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #333333;
}
</style> </style>

View File

@ -129,6 +129,7 @@ export default {
"Authorization": uni.getStorageSync("userInfo")?.token || "" "Authorization": uni.getStorageSync("userInfo")?.token || ""
} }
}); });
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: res.data.message, // content: res.data.message, //
@ -138,17 +139,17 @@ export default {
if (res.statusCode === 200) { if (res.statusCode === 200) {
uni.showToast({ uni.showToast({
title: "绑定成功", title: "绑定成功",
icon: "success", icon: "success", //
duration: 1500, duration: 1500 // 1.5
success: () => { });
// 1.5
setTimeout(() => { setTimeout(() => {
uni.switchTab({ uni.navigateTo({
url: "/pages/device/index" url: "/pages/device/index"
}); });
}, 1500); }, 1500);
} }
});
}
} catch (error) { } catch (error) {
console.error("设备绑定失败:", error); console.error("设备绑定失败:", error);
uni.showToast({ title: "设备绑定失败", icon: "none" }); uni.showToast({ title: "设备绑定失败", icon: "none" });

View File

@ -32,26 +32,11 @@
</view> </view>
<!-- 媒体内容 --> <!-- 媒体内容 -->
<video <video class="img_video_warp" :src="socketData.videoUrl" v-if="socketData.videoUrl"
class="img_video_warp" @loadedmetadata="handleMediaLoaded" @error="handleMediaError"></video>
:src="socketData.videoUrl" <image class="img_video_warp" :src="socketData.imageUrl" v-else-if="socketData.imageUrl"
v-if="socketData.videoUrl" @load="handleMediaLoaded" @error="handleMediaError"></image>
@loadedmetadata="handleMediaLoaded" <image class="img_video_warp" :src="TOPBG" v-else mode="aspectFill" />
@error="handleMediaError"
></video>
<image
class="img_video_warp"
:src="socketData.imageUrl"
v-else-if="socketData.imageUrl"
@load="handleMediaLoaded"
@error="handleMediaError"
></image>
<image
class="img_video_warp"
:src="TOPBG"
v-else
mode="aspectFill"
/>
</view> </view>
<!-- 设备状态选择 --> <!-- 设备状态选择 -->

View File

@ -323,7 +323,10 @@ export default {
const { const {
statusBarHeight, // px statusBarHeight, // px
} = systemInfo; } = systemInfo;
this.statusBarHeight = statusBarHeight; this.statusBarHeight = statusBarHeight;
this.connectWebSocket(); // WebSocket this.connectWebSocket(); // WebSocket
}, },
onShow () { onShow () {
@ -385,7 +388,11 @@ export default {
updateDeviceStatus (message) { updateDeviceStatus (message) {
console.log('实时消息'); console.log('实时消息');
}, },
// //
getStatusText (status) { getStatusText (status) {
if (status == -1) { if (status == -1) {

View File

@ -120,8 +120,8 @@ export default {
}, },
toPage (pageName) { toPage (pageName) {
if (pageName == "设备管理") { if (pageName == "设备管理") {
uni.switchTab({ uni.navigateTo({
url: "/pages/device/index" url: "/pages/selectDevice/index",
}); });
} }
}, },