Merge branch 'main-cq' of http://192.168.0.56:3000/hywen/SmartStorage into main-cq

This commit is contained in:
BianLzhaoMin 2024-11-04 15:49:52 +08:00
commit 232331df54
13 changed files with 639 additions and 248 deletions

View File

@ -19,8 +19,8 @@ class Http {
title: "登录状态过期,请重新登录!", title: "登录状态过期,请重新登录!",
success: () => { success: () => {
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });
@ -56,8 +56,8 @@ class Http {
title: "登录状态过期,请重新登录!", title: "登录状态过期,请重新登录!",
success: () => { success: () => {
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });
@ -93,8 +93,8 @@ class Http {
title: "登录状态过期,请重新登录!", title: "登录状态过期,请重新登录!",
success: () => { success: () => {
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });
@ -129,8 +129,8 @@ class Http {
title: "登录状态过期,请重新登录!", title: "登录状态过期,请重新登录!",
success: () => { success: () => {
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });
@ -163,8 +163,8 @@ class Http {
title: "登录状态过期,请重新登录!", title: "登录状态过期,请重新登录!",
success: () => { success: () => {
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });

View File

@ -25,12 +25,13 @@
<span>待退料数量</span> <span>待退料数量</span>
<h4>{{ fetch.maxBackNum }}</h4> <h4>{{ fetch.maxBackNum }}</h4>
</view> </view>
<h5 <!-- v-if="
@click="openPopup(fetch)"
v-if="
fetch.maxBackNum * 1 > 0 && fetch.maxBackNum * 1 > 0 &&
store.includes('return:receive:view') store.includes('return:receive:view')
"> " -->
<h5
@click="openPopup(fetch)"
>
点击退料 点击退料
</h5> </h5>
</view> </view>
@ -42,10 +43,11 @@
</checkbox-group> </checkbox-group>
<text>全选</text> <text>全选</text>
</view> --> </view> -->
<!-- v-if="store.includes('return:receive:view')" -->
<view <view
class="exam" class="exam"
@click="totalBack" @click="totalBack"
v-if="store.includes('return:receive:view')"> >
完成退料 完成退料
</view> </view>
</view> </view>
@ -72,7 +74,7 @@
<view class="select-area"> <view class="select-area">
<view @click="scanCode">二维码</view> <view @click="scanCode">二维码</view>
<view @click="codeOut">编码接收</view> <view @click="codeOut">编码接收</view>
<!-- <view @click="rfidOut">RFID接收</view> --> <view @click="rfidOut">RFID接收</view>
</view> </view>
<!-- <view class="ipt-area"> <!-- <view class="ipt-area">
<uni-easyinput v-model="codeVal" placeholder="请输入编码"></uni-easyinput> <uni-easyinput v-model="codeVal" placeholder="请输入编码"></uni-easyinput>
@ -186,7 +188,8 @@
this.infoList = list; this.infoList = list;
this.rfidNum = list.maxBackNum; this.rfidNum = list.maxBackNum;
this.transMaCode = list.code; this.transMaCode = list.code;
this.sendTypeId = list.typeId; // this.sendTypeId = list.typeId;
this.sendTypeId = list.modelId
this.parentId = list.id; this.parentId = list.id;
if (Number(list.maxBackNum) == 0) { if (Number(list.maxBackNum) == 0) {
uni.showToast({ uni.showToast({

View File

@ -363,8 +363,8 @@
uni.removeStorageSync("token"); uni.removeStorageSync("token");
uni.removeStorageSync("userInfo"); uni.removeStorageSync("userInfo");
uni.reLaunch({ uni.reLaunch({
// url: '/pages/login/login' url: '/pages/login/login'
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });

View File

@ -440,8 +440,8 @@
uni.removeStorageSync("token"); uni.removeStorageSync("token");
uni.removeStorageSync("userInfo"); uni.removeStorageSync("userInfo");
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });

View File

@ -655,8 +655,8 @@
uni.removeStorageSync("token"); uni.removeStorageSync("token");
uni.removeStorageSync("userInfo"); uni.removeStorageSync("userInfo");
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
}, },
}); });

View File

@ -41,7 +41,7 @@
<view class="select-area"> <view class="select-area">
<view @click="scanCode">二维码</view> <view @click="scanCode">二维码</view>
<view @click="codeOut">编码出库</view> <view @click="codeOut">编码出库</view>
<!-- <view @click="rfidOut">RFID出库</view> --> <view @click="rfidOut">RFID出库</view>
</view> </view>
<!-- <view class="ipt-area"> <!-- <view class="ipt-area">
<uni-easyinput v-model="codeVal" placeholder="请输入编码"></uni-easyinput> <uni-easyinput v-model="codeVal" placeholder="请输入编码"></uni-easyinput>

View File

@ -272,12 +272,12 @@
success: () => { success: () => {
uni.removeStorageSync("token"); uni.removeStorageSync("token");
uni.removeStorageSync("userInfo"); uni.removeStorageSync("userInfo");
// uni.reLaunch({
// url: "/pages/login/login",
// });
uni.reLaunch({ uni.reLaunch({
url: "/pages/nwLogin/index", url: "/pages/login/login",
}); });
// uni.reLaunch({
// url: "/pages/nwLogin/index",
// });
}, },
}); });
} }

View File

@ -2,22 +2,14 @@
<view class="hole-page"> <view class="hole-page">
<view class="upper-bgd"> <view class="upper-bgd">
<h4 style="font-size: 16px; font-weight: normal;">RFID标签绑定</h4> <h4 style="font-size: 16px; font-weight: normal;">RFID标签绑定</h4>
<uni-data-select <uni-data-select v-model="powerVal" :localdata="powerRange" placeholder="请选择功率" @change="powerChange"
v-model="powerVal" :clear="false"></uni-data-select>
:localdata="powerRange"
placeholder="请选择功率"
@change="powerChange"
:clear="false"
></uni-data-select>
</view> </view>
<view class="lower-rfid" v-show="showStats"> <view class="lower-rfid" v-show="showStats">
<view class="stat-cont"> <view class="stat-cont">
<view class="cont-upper"> <view class="cont-upper">
<h4 style="font-size: 14px;">识别数据</h4> <h4 style="font-size: 14px;">识别数据</h4>
<view <view style="color: #3198FF; font-size: 12px;" @click="clearStat">
style="color: #3198FF; font-size: 12px;"
@click="clearStat"
>
<uni-icons type="trash" size="12" style="color: #3198FF;"></uni-icons> <uni-icons type="trash" size="12" style="color: #3198FF;"></uni-icons>
清空数据 清空数据
</view> </view>
@ -39,7 +31,7 @@
<h4>物资状态</h4> <h4>物资状态</h4>
<span>{{ bindStats.sdStatus }}</span> <span>{{ bindStats.sdStatus }}</span>
</view> </view>
<view> <!-- <view>
<h4>本次维修时间</h4> <h4>本次维修时间</h4>
<span>5</span> <span>5</span>
</view> </view>
@ -54,13 +46,51 @@
<view> <view>
<h4>领料单位名称</h4> <h4>领料单位名称</h4>
<span>8</span> <span>8</span>
</view> -->
</view> </view>
</view> </view>
</view> </view>
<view v-show="showDev">
<uni-forms ref="qrForm" :modelValue="qrFormData" label-position="top" :rules="rules" class="qr-stats">
<uni-forms-item name="typeVal" required label="设备类型">
<zxz-uni-data-select v-model="qrFormData.typeVal" :localdata="typeRange" @change="typeChange"
filterable>
</zxz-uni-data-select>
</uni-forms-item>
<uni-forms-item name="specVal" required label="规格型号">
<uni-data-select v-model="qrFormData.specVal" :localdata="specRange"
@change="specChange"></uni-data-select>
</uni-forms-item>
<view class="middle">
<h4 style="font-weight: normal; margin-bottom: 15rpx;">标签编号</h4>
<span>{{ qrcode }}</span>
</view> </view>
<uni-forms-item name="deviceCode" required label="设备编号">
<uni-easyinput v-model="qrFormData.deviceCode"></uni-easyinput>
</uni-forms-item>
<view>
<view>RFID:</view>
<input class="uni-input" readonly v-model="rfid" />
</view>
</uni-forms>
<u-loading-page :loading="showLoading" color="#000" loading-text="加载中,请稍后..."></u-loading-page>
</view>
<!-- <div v-if="showPrompt" class="prompt">{{ promptMessage }}</div> -->
<!-- 添加新的加载效果 -->
<div v-if="showPrompt" class="custom-loading-overlay">
<div class="custom-loading-content">
<div class="custom-spinner"></div>
<p>{{ promptMessage }}</p>
</div>
</div>
<view class="btns-area"> <view class="btns-area">
<view @click="startVeri">开始识别</view> <view @click="startVeri">开始识别</view>
<view @click="toggleBind">绑定</view> <view @click="toggleBind" v-show="showBid">绑定</view>
<view @click="toggleBinds" v-show="showDev">绑定</view>
</view> </view>
</view> </view>
</template> </template>
@ -71,6 +101,8 @@
data() { data() {
return { return {
showStats: false, showStats: false,
showDev: false,
showBid: true,
rfidCode: '', rfidCode: '',
maId: '', maId: '',
maCode: '', maCode: '',
@ -78,15 +110,55 @@
powerRange: [ powerRange: [
], ],
bindStats: {} bindStats: {},
showLoading: false,
qrFormData: {
typeVal: '',
specVal: '',
deviceCode: ''
},
rules: {
typeVal: {
rules: [{
required: true,
errorMessage: '请输设备类型!'
}]
},
specVal: {
rules: [{
required: true,
errorMessage: '请输规格型号!'
}]
},
deviceCode: {
rules: [{
required: true,
errorMessage: '请输设备编号!'
}]
},
},
qrcode: '',
typeRange: [],
specRange: [],
rfid: '',
showPrompt: false, //
promptMessage: '' //
} }
}, },
methods: { methods: {
startVeri() { startVeri() {
let that = this let that = this
that.showPrompt = true;
that.promptMessage = '识别中,请稍候...';
// Toast
setTimeout(() => {
let goVeri = rfidMod.redTag() let goVeri = rfidMod.redTag()
console.log(goVeri); console.log(goVeri);
if (goVeri.code == 1001) { if (goVeri.code == 1001) {
that.showPrompt = false; //
that.rfidCode = goVeri.res that.rfidCode = goVeri.res
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
@ -97,11 +169,20 @@
rfidCode: goVeri.res rfidCode: goVeri.res
}).then(res => { }).then(res => {
console.log(res); console.log(res);
if (res.data.code == 200) { console.log(res.data.data[0]);
if (res.data.data.length > 0) {
that.bindStats = res.data.data[0] that.bindStats = res.data.data[0]
that.maCode = res.data.data[0].maCode that.maCode = res.data.data[0].maCode
that.maId = res.data.data[0].maId that.maId = res.data.data[0].maId
that.showStats = true that.showStats = true
that.showDev = false
that.showBid = true
} else {
that.showDev = true
that.showBid = false
that.showStats = false
that.rfid = that.rfidCode
} }
}).catch(err => { }).catch(err => {
console.log(err); console.log(err);
@ -109,16 +190,24 @@
} }
}) })
} else if (goVeri.code == 1000) { } else if (goVeri.code == 1000) {
that.showPrompt = false; //
that.showLoading = false that.showLoading = false
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '获取设备信息失败,请重新扫描!' title: '获取设备信息失败,请重新扫描!'
}) })
} }
}, 1000)
}, },
toggleBind() { toggleBind() {
let that = this let that = this
this.showPrompt = true;
this.promptMessage = '正在绑定,请稍候...';
// Toast
setTimeout(() => {
if (that.maCode == '' || that.maId == '') { if (that.maCode == '' || that.maId == '') {
this.showPrompt = false; //
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '未识别到绑定设备!' title: '未识别到绑定设备!'
@ -129,6 +218,7 @@
maId: that.maId, maId: that.maId,
maCode: that.maCode, maCode: that.maCode,
}).then(res => { }).then(res => {
this.showPrompt = false; //
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
uni.showToast({ uni.showToast({
@ -147,9 +237,11 @@
}) })
} }
}).catch(err => { }).catch(err => {
this.showPrompt = false; //
console.log(err); console.log(err);
}) })
} }
}, 1000)
}, },
clearStat() { clearStat() {
let that = this let that = this
@ -166,7 +258,88 @@
icon: 'none', icon: 'none',
title: ctrlPower.res title: ctrlPower.res
}) })
},
//
typeChange(e) {
let that = this
console.log(e);
//
that.$api.qrcodeBinding.fetchDeviceSpec({
level: '4',
parentId: String(e.value)
}).then(res => {
console.log(res);
if (res.data.code == 200) {
that.specRange = res.data.data.map(item => {
return {
text: item['typeName'],
value: item['typeId'],
code: item['code'],
modelCode: item['modelCode']
} }
})
}
}).catch(err => {
console.log(err);
})
},
specChange(e) {
let that = this
console.log(e, that.specRange);
const confirmedRange = that.specRange.filter(item => {
return item.value == e
})
console.log(confirmedRange);
if (confirmedRange[0].code && confirmedRange[0].modelCode) {
that.qrFormData.deviceCode = `NS${confirmedRange[0].code}${confirmedRange[0].modelCode}`
} else {
that.qrFormData.deviceCode = ''
}
},
toggleBinds() {
let that = this
this.showPrompt = true;
this.promptMessage = '识别中,请稍候...';
// Toast
setTimeout(() => {
that.$refs.qrForm.validate().then(formData => {
that.showLoading = true
console.log(formData);
that.$api.rfidBinding.bindRfid({
rfidCode: that.rfidCode,
maCode: formData.deviceCode,
}).then(res => {
this.showPrompt = false; //
console.log(res);
if (res.data.code == 200) {
that.showLoading = false
uni.showToast({
icon: 'none',
title: res.data.msg,
success: () => {
uni.switchTab({
url: '/pages/workSpace/workSpace'
})
}
})
} else {
that.showLoading = false
uni.showToast({
icon: 'none',
title: res.data.msg
})
}
}).catch(err => {
this.showPrompt = false; //
console.log(err);
})
})
}, 1000)
}
}, },
onLoad() { onLoad() {
// rfid // rfid
@ -179,6 +352,24 @@
text: String(i) text: String(i)
}) })
} }
let that = this
//
that.$api.qrcodeBinding.fetchDeviceType({
level: '3'
}).then(res => {
console.log(res);
if (res.data.code == 200) {
that.typeRange = res.data.data.map(item => {
return {
text: item['typeName'],
value: item['typeId']
}
})
}
}).catch(err => {
console.log(err);
})
} }
} }
</script> </script>
@ -193,6 +384,7 @@
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
position: relative; position: relative;
.upper-bgd { .upper-bgd {
width: 100%; width: 100%;
height: 20%; height: 20%;
@ -201,23 +393,28 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-around; justify-content: space-around;
h4 { h4 {
color: #fff; color: #fff;
} }
.uni-select[data-v-6b64008e] { .uni-select[data-v-6b64008e] {
background-color: #fff; background-color: #fff;
} }
} }
.lower-rfid { .lower-rfid {
flex: 1; flex: 1;
margin-top: -3%; margin-top: -3%;
border-radius: 25rpx; border-radius: 25rpx;
box-sizing: border-box; box-sizing: border-box;
padding: 0 25rpx; padding: 0 25rpx;
.stat-cont { .stat-cont {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 15rpx; padding: 15rpx;
.cont-upper { .cont-upper {
width: 100%; width: 100%;
display: flex; display: flex;
@ -225,21 +422,25 @@
align-items: center; align-items: center;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.cont-lower { .cont-lower {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
view { view {
width: 100%; width: 100%;
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 20rpx; margin-bottom: 20rpx;
h4 { h4 {
width: 35%; width: 35%;
font-weight: normal; font-weight: normal;
font-size: 14px; font-size: 14px;
color: #929292; color: #929292;
} }
span { span {
font-size: 14px; font-size: 14px;
} }
@ -247,6 +448,7 @@
} }
} }
} }
.btns-area { .btns-area {
position: absolute; position: absolute;
width: 70%; width: 70%;
@ -256,6 +458,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-around; justify-content: space-around;
view { view {
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
@ -270,4 +473,37 @@
} }
} }
} }
//
.custom-loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.custom-loading-content {
background-color: white;
padding: 20px;
border-radius: 10px;
display: flex;
flex-direction: column;
align-items: center;
}
.custom-spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 10px;
}
</style> </style>

View File

@ -1,5 +1,16 @@
<template> <template>
<view> <view>
<!-- <div v-if="showPrompt" class="prompt">{{ promptMessage }}</div> -->
<!-- 添加新的加载效果 -->
<div v-if="showPrompt" class="custom-loading-overlay">
<div class="custom-loading-content">
<div class="custom-spinner"></div>
<p>{{ promptMessage }}</p>
</div>
</div>
<view class="btn-area"> <view class="btn-area">
<view @click="startVeri">开始识别</view> <view @click="startVeri">开始识别</view>
<view @click="stopVeri">停止识别</view> <view @click="stopVeri">停止识别</view>
@ -9,14 +20,13 @@
<h4> <h4>
待出库数{{ waitOutNum }} 待出库数{{ waitOutNum }}
</h4> </h4>
<h4 <h4 style="margin-left: 15rpx;">
style="margin-left: 15rpx;"
>
识别设备数{{ veriDeviceNum }} 识别设备数{{ veriDeviceNum }}
</h4> </h4>
</view> </view>
<view class="table-container" v-show="tableData.length != 0"> <view class="table-container" v-show="tableData.length != 0">
<uni-table ref="table" :loading="loading" border stripe type="selection" emptyText="暂无更多数据" @selection-change="selectionChange"> <uni-table ref="table" :loading="loading" border stripe type="selection" emptyText="暂无更多数据"
@selection-change="selectionChange">
<uni-tr> <uni-tr>
<uni-th align="center">类型</uni-th> <uni-th align="center">类型</uni-th>
<uni-th align="center">规格</uni-th> <uni-th align="center">规格</uni-th>
@ -106,7 +116,9 @@
value: '3' value: '3'
} }
], ],
showLoading: false showLoading: false,
showPrompt: false, //
promptMessage: '' //
} }
}, },
methods: { methods: {
@ -158,7 +170,8 @@
// backStatus: that.fixVal, // backStatus: that.fixVal,
// manageType: item['manageType'], // manageType: item['manageType'],
// createBy: uni.getStorageSync('userInfo').userid, // createBy: uni.getStorageSync('userInfo').userid,
maId: item['maId'] maId: item['maId'],
manageType:0
} }
}) })
console.log(that.subList); console.log(that.subList);
@ -251,10 +264,17 @@
}, */ }, */
startVeri() { startVeri() {
let that = this let that = this
that.showPrompt = true;
that.promptMessage = '识别中,请稍候...';
// Toast
setTimeout(() => {
let b = rfidMod.initUHF()
console.log(b);
let goVeri = rfidMod.redTag() let goVeri = rfidMod.redTag()
console.log(goVeri); console.log(goVeri);
if (goVeri.code == 1001) { if (goVeri.code == 1001) {
that.showLoading = true that.showLoading = true
that.showPrompt = false; //
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '识别成功', title: '识别成功',
@ -265,11 +285,21 @@
}).then(res => { }).then(res => {
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
that.showLoading = false that.showLoading = false
that.veriDeviceNum = that.veriDeviceNum + res.data.data.length that.veriDeviceNum = that.veriDeviceNum + res.data
.data
.length
if (res.data.data.length > 0) {
for (let i = 0; i < res.data.data.length; i++) { for (let i = 0; i < res.data.data.length; i++) {
that.tableData.push(res.data.data[i]) that.tableData.push(res.data.data[i])
} }
} else {
uni.showToast({
icon: 'none',
title: "未找到相关信息"
})
}
} }
}).catch(err => { }).catch(err => {
console.log(err); console.log(err);
@ -277,12 +307,14 @@
} }
}) })
} else if (goVeri.code == 1000) { } else if (goVeri.code == 1000) {
that.showPrompt = false; //
that.showLoading = false that.showLoading = false
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '获取设备信息失败,请重新扫描!' title: '获取设备信息失败,请重新扫描!'
}) })
} }
}, 1000)
}, },
stopVeri() { stopVeri() {
let endVeri = rfidMod.closeRfid() let endVeri = rfidMod.closeRfid()
@ -292,6 +324,11 @@
icon: 'none', icon: 'none',
title: endVeri.res title: endVeri.res
}) })
} else {
uni.showToast({
icon: 'none',
title: endVeri.res
})
} }
}, },
closePopup1() { closePopup1() {
@ -320,6 +357,7 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
view { view {
width: 30%; width: 30%;
box-sizing: border-box; box-sizing: border-box;
@ -332,15 +370,18 @@
color: #fff; color: #fff;
font-size: 14px; font-size: 14px;
} }
view:last-child { view:last-child {
background-color: #70B603; background-color: #70B603;
} }
} }
.number { .number {
width: 90%; width: 90%;
margin: 20rpx auto; margin: 20rpx auto;
display: flex; display: flex;
align-items: center; align-items: center;
h4 { h4 {
font-weight: normal; font-weight: normal;
font-size: 12px; font-size: 12px;
@ -348,10 +389,12 @@
align-items: center; align-items: center;
} }
} }
.table-container { .table-container {
width: 90%; width: 90%;
margin: 20rpx auto; margin: 20rpx auto;
} }
.popup1 { .popup1 {
width: 80vw; width: 80vw;
height: 40vh; height: 40vh;
@ -404,4 +447,37 @@
background-color: #169BD5; background-color: #169BD5;
} }
} }
//
.custom-loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.custom-loading-content {
background-color: white;
padding: 20px;
border-radius: 10px;
display: flex;
flex-direction: column;
align-items: center;
}
.custom-spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 10px;
}
</style> </style>

View File

@ -1,5 +1,15 @@
<template> <template>
<view> <view>
<!-- <div v-if="showPrompt" class="prompt">{{ promptMessage }}</div> -->
<!-- 添加新的加载效果 -->
<div v-if="showPrompt" class="custom-loading-overlay">
<div class="custom-loading-content">
<div class="custom-spinner"></div>
<p>{{ promptMessage }}</p>
</div>
</div>
<view class="btn-area"> <view class="btn-area">
<view @click="startVeri">开始识别</view> <view @click="startVeri">开始识别</view>
<view @click="stopVeri">停止识别</view> <view @click="stopVeri">停止识别</view>
@ -9,14 +19,13 @@
<h4> <h4>
待出库数{{ waitOutNum }} 待出库数{{ waitOutNum }}
</h4> </h4>
<h4 <h4 style="margin-left: 15rpx;">
style="margin-left: 15rpx;"
>
识别设备数{{ veriDeviceNum }} 识别设备数{{ veriDeviceNum }}
</h4> </h4>
</view> </view>
<view class="table-container" v-show="tableData.length != 0"> <view class="table-container" v-show="tableData.length != 0">
<uni-table ref="table" :loading="loading" border stripe type="selection" emptyText="暂无更多数据" @selection-change="selectionChange"> <uni-table ref="table" :loading="loading" border stripe type="selection" emptyText="暂无更多数据"
@selection-change="selectionChange">
<uni-tr> <uni-tr>
<uni-th align="center">类型</uni-th> <uni-th align="center">类型</uni-th>
<uni-th align="center">规格</uni-th> <uni-th align="center">规格</uni-th>
@ -106,7 +115,9 @@
value: '3' value: '3'
} }
], ],
showLoading: false showLoading: false,
showPrompt: false, //
promptMessage: '' //
} }
}, },
methods: { methods: {
@ -132,6 +143,8 @@
}, },
confirmDevice() { confirmDevice() {
let that = this let that = this
console.log(that.subList)
console.log(that.sendTypeId)
let ifAllRight = that.subList.some(item => { let ifAllRight = that.subList.some(item => {
return item.typeId != that.sendTypeId return item.typeId != that.sendTypeId
}) })
@ -229,10 +242,17 @@
}, */ }, */
startVeri() { startVeri() {
let that = this let that = this
that.showPrompt = true;
that.promptMessage = '识别中,请稍候...';
// Toast
setTimeout(() => {
let b = rfidMod.initUHF()
console.log(b);
let goVeri = rfidMod.redTag() let goVeri = rfidMod.redTag()
console.log(goVeri); console.log(goVeri);
if (goVeri.code == 1001) { if (goVeri.code == 1001) {
that.showLoading = true that.showLoading = true
that.showPrompt = false; //
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '识别成功', title: '识别成功',
@ -244,10 +264,19 @@
console.log(res); console.log(res);
if (res.data.code == 200) { if (res.data.code == 200) {
that.showLoading = false that.showLoading = false
that.veriDeviceNum = that.veriDeviceNum + res.data.data.length that.veriDeviceNum = that.veriDeviceNum + res.data.data
.length
if (res.data.data.length > 0) {
for (let i = 0; i < res.data.data.length; i++) { for (let i = 0; i < res.data.data.length; i++) {
that.tableData.push(res.data.data[i]) that.tableData.push(res.data.data[i])
} }
} else {
uni.showToast({
icon: 'none',
title: "未找到相关信息"
})
}
} }
}).catch(err => { }).catch(err => {
console.log(err); console.log(err);
@ -255,12 +284,14 @@
} }
}) })
} else if (goVeri.code == 1000) { } else if (goVeri.code == 1000) {
that.showPrompt = false; //
that.showLoading = false that.showLoading = false
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '获取设备信息失败,请重新扫描!' title: '获取设备信息失败,请重新扫描!'
}) })
} }
}, 1000)
}, },
stopVeri() { stopVeri() {
let endVeri = rfidMod.closeRfid() let endVeri = rfidMod.closeRfid()
@ -270,6 +301,11 @@
icon: 'none', icon: 'none',
title: endVeri.res title: endVeri.res
}) })
} else {
uni.showToast({
icon: 'none',
title: endVeri.res
})
} }
}, },
closePopup1() { closePopup1() {
@ -298,6 +334,7 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
view { view {
width: 30%; width: 30%;
box-sizing: border-box; box-sizing: border-box;
@ -310,15 +347,18 @@
color: #fff; color: #fff;
font-size: 14px; font-size: 14px;
} }
view:last-child { view:last-child {
background-color: #70B603; background-color: #70B603;
} }
} }
.number { .number {
width: 90%; width: 90%;
margin: 20rpx auto; margin: 20rpx auto;
display: flex; display: flex;
align-items: center; align-items: center;
h4 { h4 {
font-weight: normal; font-weight: normal;
font-size: 12px; font-size: 12px;
@ -326,10 +366,12 @@
align-items: center; align-items: center;
} }
} }
.table-container { .table-container {
width: 90%; width: 90%;
margin: 20rpx auto; margin: 20rpx auto;
} }
.popup1 { .popup1 {
width: 80vw; width: 80vw;
height: 30vh; height: 30vh;
@ -382,4 +424,37 @@
background-color: #169BD5; background-color: #169BD5;
} }
} }
//
.custom-loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.custom-loading-content {
background-color: white;
padding: 20px;
border-radius: 10px;
display: flex;
flex-direction: column;
align-items: center;
}
.custom-spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 10px;
}
</style> </style>

View File

@ -72,8 +72,8 @@
uni.removeStorageSync("token"); uni.removeStorageSync("token");
uni.removeStorageSync("userInfo"); uni.removeStorageSync("userInfo");
uni.reLaunch({ uni.reLaunch({
// url: "/pages/login/login", url: "/pages/login/login",
url: "/pages/nwLogin/index", // url: "/pages/nwLogin/index",
}); });
} }
}, },

View File

@ -89,11 +89,12 @@
url: "exitExam", url: "exitExam",
isShow: "*:*:*", isShow: "*:*:*",
}, },
/* { {
name: 'RFID绑定', name: 'RFID绑定',
pic: '/static/rfidBinding.png', pic: '/static/rfidBinding.png',
url: 'rfidBinding' url: 'rfidBinding',
}, */ isShow: "*:*:*",
},
{ {
name: "二维码绑定", name: "二维码绑定",
pic: "/static/qrcodeBinding.png", pic: "/static/qrcodeBinding.png",

View File

@ -25,16 +25,16 @@ const router = createRouter({
}, },
}, },
// 重庆登录页 // 重庆登录页
// {
// path: "/pages/login/login",
// name: "login",
// },
// 南网登陆页
{ {
path: "/pages/nwLogin/index", path: "/pages/login/login",
name: "login", name: "login",
}, },
// 南网登陆页
// {
// path: "/pages/nwLogin/index",
// name: "login",
// },
{ {
path: "/pages/fetchMaterial/fetchMaterial", path: "/pages/fetchMaterial/fetchMaterial",
name: "fetchMaterial", name: "fetchMaterial",