diff --git a/src/components/tree-select/eselect.vue b/src/components/tree-select/eselect.vue index c5e7e5d..1be1a74 100644 --- a/src/components/tree-select/eselect.vue +++ b/src/components/tree-select/eselect.vue @@ -1,277 +1,309 @@ - + - - \ No newline at end of file + + diff --git a/src/pages/back/backCode.vue b/src/pages/back/backCode.vue index 69a017f..927f456 100644 --- a/src/pages/back/backCode.vue +++ b/src/pages/back/backCode.vue @@ -140,10 +140,10 @@ --> - 物资类型: + 规格型号: + + 物资类型: + + {{ typeName }} + + 外观判定: @@ -198,9 +204,10 @@
{ } }) - typeList.value.forEach((item) => { - item.checked = selectCodeList.value.some((selected) => selected.maCode === item.maCode) - }) + const combinedList = [...selectCodeList.value, ...typeList.value] + + // 根据 maCode 去重,保留最前面的项 + const seen = new Set() + const uniqueList = [] + for (const item of combinedList) { + if (!seen.has(item.maCode)) { + seen.add(item.maCode) + uniqueList.push(item) + } + } + + // 更新 typeList + typeList.value = uniqueList console.log('🚀 ~ getCodeList ~ typeList.value:', typeList.value) } catch (error) { @@ -377,10 +395,13 @@ const getCodeList = async () => { // 选择型号 const changeType = (e) => { - selectCodeList.value = [] - console.log('🚀 ~ changeType ~ e:', e) - selectTypeId.value = e.typeId - console.log('🚀 ~ changeType ~ :', selectTypeId.value) + if (selectTypeId.value != e.typeId) { + selectCodeList.value = [] + console.log('🚀 ~ changeType ~ e:', e) + typeName.value = e.materialName + selectTypeId.value = e.typeId + console.log('🚀 ~ changeType ~ :', selectTypeId.value) + } getCodeList() } @@ -396,7 +417,7 @@ const handleItemChecked = (item) => { console.log('🚀 ~ handleItemChecked ~ item:', item) item.checked = !item.checked if (item.checked) { - selectCodeList.value.push(item) + selectCodeList.value.unshift(item) } else { selectCodeList.value = selectCodeList.value.filter((el) => el.maCode !== item.maCode) } @@ -481,6 +502,8 @@ const getMaInfo = () => { const qrCode = ref('') //图片展示 // 二维码扫码 const scanStart = async () => { + qrCode.value = '201909-00100' + getMaInfoScan() qrCode.value = '' if (scanQrCodeRef.value) { scanQrCodeRef.value.scanQrCode() @@ -528,16 +551,57 @@ const getMaInfoScan = () => { } console.log('xxxxxxxxxxxxxxxx', res) if (res.code == 200) { + if (selectTypeId.value && selectTypeId.value != Number(res.data[0].typeId)) { + // 请添加同一类型的设备 + uni.showModal({ + title: '提示', + content: '请添加同一类型的设备', + showCancel: false, + confirmText: '关闭', + }) + return + } console.log(res) console.log(res.data[0]) - maCode.value = res.data[0].maCode - console.log('333333333333', maCode.value) - console.log('codeList:', JSON.stringify(codeList.value)) + // maCode.value = res.data[0].maCode typeName.value = res.data[0].typeName materialName.value = res.data[0].typeModelName - maStatusName.value = res.data[0].maStatusName - maId.value = res.data[0].maId - typeId.value = res.data[0].typeId + // maStatusName.value = res.data[0].maStatusName + // maId.value = res.data[0].maId + selectTypeId.value = Number(res.data[0].typeId) + console.log('🚀 ~ getMaInfoScan ~ selectTypeId.value:', selectTypeId.value) + + if (typeList.value.some((item) => item.maId == Number(res.data[0].maId))) { + // 设置当前选项为选中 + typeList.value.forEach((item) => { + if (item.maId == res.data[0].maId) { + item.checked = true + } + }) + if (!selectCodeList.value.some((item) => item.maId === res.data[0].maId)) { + selectCodeList.value.unshift({ + ...res.data[0], + checked: true, + }) + uni.showToast({ title: '添加成功', icon: 'none' }) + } else { + uni.showToast({ title: '当前设备已添加', icon: 'none' }) + } + } else { + typeList.value.unshift({ + ...res.data[0], + checked: true, + }) + if (!selectCodeList.value.some((item) => item.maId === res.data[0].maId)) { + selectCodeList.value.unshift({ + ...res.data[0], + checked: true, + }) + } + uni.showToast({ title: '添加成功', icon: 'none' }) + } + + isAllChecked() flag.value = true } else { uni.showModal({ @@ -545,11 +609,6 @@ const getMaInfoScan = () => { content: res.msg, showCancel: false, // 不显示取消按钮 confirmText: '关闭', - success: (res) => { - // if (res.confirm) { - // console.log('用户点击关闭') - // } - }, }) } }, @@ -664,7 +723,9 @@ const submitCode = () => { imgList.value = [] selectCodeList.value = [] // getMaCodeList() - getCodeList() + if (selectTypeId.value) { + getCodeList() + } // uni.navigateBack({ // delta: 1 // 返回到已存在的页面 // }); @@ -888,7 +949,7 @@ onLoad((options) => { background-color: #f7f8fa; display: flex; flex-direction: column; - min-height: 100vh; // 关键,撑满整个视口高度 + height: 100vh; // 关键,撑满整个视口高度 // 卡片样式 .card {