diff --git a/src/pages/materialsStation/toolsLease/codeOut.vue b/src/pages/materialsStation/toolsLease/codeOut.vue index fd9dc34..516ec1c 100644 --- a/src/pages/materialsStation/toolsLease/codeOut.vue +++ b/src/pages/materialsStation/toolsLease/codeOut.vue @@ -84,11 +84,11 @@ - + 出库方式: - + @@ -103,21 +103,22 @@ @scanSuccess="handleScanSuccess" @scanError="handleScanError" /> - + +
设备编码 - - - - - - - 编码检索 + + - +
+ @@ -184,6 +185,7 @@ const queryParamsTemp = ref({ typeId: '', isAddCode: false, }) +const codeRange = ref([]) // 编码列表 const formData = ref({}) const codeDeviceList = ref([]) const total = ref(0) @@ -218,16 +220,17 @@ onLoad((opt) => { // queryParamsTemp.value.id = queryParamsTemp.value.parentId console.log('xxxxxxxx', queryParamsTemp.value) queryCodeParams.value.typeId = queryParamsTemp.value.typeId - queryCodeParams.value.proId = queryParamsTemp.value.proId + queryCodeParams.value.proId = queryParamsTemp.value.proId || queryParamsTemp.value.projectId queryCodeParams.value.teamId = queryParamsTemp.value.teamId queryParams.value = { ...queryParamsTemp.value } if (queryParamsTemp.value.isBack) { getCodeList() // 获取编码列表 } else { - codeDeviceList.value = queryParamsTemp.value.maCodeList || [] // 初始化编码设备列表 - if (queryParamsTemp.value.maCodeList && queryParamsTemp.value.maCodeList.length > 0) { - allChecked.value = queryParamsTemp.value.maCodeList.every((e) => e.checked) - } + getCodeDeviceListData() + } + codeDeviceList.value = queryParamsTemp.value.maCodeList || [] // 初始化编码设备列表 + if (queryParamsTemp.value.maCodeList && queryParamsTemp.value.maCodeList.length > 0) { + allChecked.value = queryParamsTemp.value.maCodeList.every((e) => e.checked) } }) @@ -250,32 +253,20 @@ onShow((opt) => { const getCodeList = async () => { const params = { teamId: queryParamsTemp.value.teamId, - proId: queryParamsTemp.value.proId, + proId: queryParamsTemp.value.projectId, typeId: queryParamsTemp.value.typeId, + maCode: queryCodeParams.value.maCode, } try { const res = await getMachineByIdApi(params) console.log('🚀 ~ getCodeList ~ res:', res) if (res.code === 200 && res.data && res.data.length > 0) { - codeDeviceList.value = res.data.map((item) => { + codeRange.value = res.data.map((item) => { return { - ...item, - checked: false, // 默认未选中 - materialModel: item.typeName, + text: item.maCode, + value: item.maCode, } }) - // 将queryParamsTemp.value.maCodeList 与 codeDeviceList.value 去重合并 - codeDeviceList.value = [ - ...new Map( - [...codeDeviceList.value, ...queryParamsTemp.value.maCodeList].map((item) => [ - item.maId, - item, - ]), - ).values(), - ] - // 更新全选状态 - allChecked.value = codeDeviceList.value.every((e) => e.checked) - console.log('🚀 ~ getCodeList ~ allChecked.value:', allChecked.value) } } catch (error) { console.log('🚀 ~ getCodeList ~ error:', error) @@ -291,17 +282,69 @@ const getCodeDeviceListData = async () => { mask: true, }) const res = await getCodeDeviceListAPI(queryCodeParams.value) - console.log('🚀 ~ getCodeDeviceListData ~ res:', res) - codeDeviceList.value.push(...res.data) - if (codeDeviceList.value.length > 0) { - codeDeviceList.value = codeDeviceList.value.map((e) => { - return { ...e, checked: false, outType: 0, checked: false } + if (res.data && res.data.length > 0) { + codeRange.value = res.data.map((item) => { + return { + text: item.maCode, + value: item.maCode, + } }) } - total.value = res.total + + console.log('🚀 ~ getCodeDeviceListData ~ res:', res) + setTimeout(() => { uni.hideLoading() - }, 500) + }, 300) + } catch (error) { + console.log('🚀 ~ getCodeDeviceListData ~ error:', error) + uni.hideLoading() + } +} + +const changeCode = (value) => { + console.log('🚀 ~ changeCode ~ value:', value) + if (!value) return + queryCodeParams.value.maCode = value + getCodeInfoData() +} + +const getCodeInfoData = async () => { + try { + uni.showLoading({ + title: '加载中...', + mask: true, + }) + let res = null + if (queryParamsTemp.value.isBack) { + res = await getMachineByIdApi(queryCodeParams.value) + } else { + res = await getCodeDeviceListAPI(queryCodeParams.value) + } + if (!res.data || !res.data.length) { + uni.hideLoading() + uni.showToast({ + title: '暂无数据', + icon: 'none', + }) + return + } + const newItem = { + ...res.data[0], + checked: true, + outType: 0, + } + // 根据maCode去重 + const exists = codeDeviceList.value.some((item) => item.maCode === newItem.maCode) + if (exists) { + uni.showToast({ title: '设备已添加', icon: 'none' }) + } else { + codeDeviceList.value.unshift(newItem) + } + allChecked.value = codeDeviceList.value.every((e) => e.checked) + setTimeout(() => { + uni.hideLoading() + }, 300) } catch (error) { console.log('🚀 ~ getCodeDeviceListData ~ error:', error) uni.hideLoading() @@ -313,7 +356,12 @@ const onCodeSearch = () => { queryCodeParams.value.pageNum = 1 codeDeviceList.value = [] allChecked.value = false - getCodeDeviceListData() + // 退料 + if (queryParams.value.isBack) { + getCodeList() + } else { + getCodeDeviceListData() + } } // 全选复选框事件 @@ -363,61 +411,10 @@ const onHandleOutbound = async () => { // 扫码识别按钮 const scanStart = () => { + // handleQrCode('201811-00531') if (scanQrCodeRef.value) { scanQrCodeRef.value.scanQrCode() } - // uni.scanCode({ - // success: async (res) => { - // console.log('🚀 ~ scanStart ~ res:', res) - // let qrCode = res.result - // qrCode = qrCode.includes('qrcode=') ? qrCode.split('qrcode=')[1] : qrCode - // console.log('🚀 ~ success: ~ qrCode:', qrCode) - // if (!qrCode) { - // uni.showToast({ title: '扫码识别失败', icon: 'none' }) - // } else { - // const params = { qrCode, typeId: queryParams.value.typeId } - // console.log('🚀 ~ success: ~ queryParams.value.isAddCode:', queryParams.value.isAddCode) - // try { - // const res = await getCodeScanAPI(params) - // console.log('🚀 ~ success: ~ res:', res) - // if (res.code === 200) { - // if (res.data && res.data.recordList.length > 0) { - // codeDeviceList.value.unshift(...res.data.recordList) - // // 去重 - // if (codeDeviceList.value.length > 0) { - // const seen = new Set() - // codeDeviceList.value = codeDeviceList.value.filter((item) => { - // if (!item.maCode || seen.has(item.maCode)) { - // uni.showToast({ title: '设备已添加', icon: 'none' }) - // return false - // } - // seen.add(item.maCode) - // return true - // }) - // //materialModel - // codeDeviceList.value.forEach((item) => { - // item.materialName = item.typeName - // item.materialModel = item.typeModelName - // item.outType = 2 // 出库方式 二维码 - // item.checked = true // 默认未选中 - // }) - // allChecked.value = codeDeviceList.value.every((e) => e.checked) - // } - // } else { - // uni.showToast({ title: res.data.msg, icon: 'none', duration: 1500 }) - // } - // } else { - // uni.showToast({ title: '扫码识别失败', icon: 'none' }) - // } - // } catch (error) { - // console.log('🚀 ~ success: ~ error:', error) - // } - // } - // }, - // fail: (error) => { - // console.error('扫描出错:', error.message) - // }, - // }) } // 处理RFID识别 @@ -447,14 +444,29 @@ const handleQrCode = async (qrCode) => { const params = { qrCode, typeId: queryParams.value.typeId, - proId: queryParamsTemp.value.proId, + proId: queryParamsTemp.value.proId || queryParamsTemp.value.projectId, teamId: queryParamsTemp.value.teamId, } - console.log('🚀 ~ success: ~ queryParams.value.isAddCode:', queryParams.value.isAddCode) + try { let res = null if (queryParamsTemp.value.isBack) { res = await getMachine(params) + console.log('🚀 ~ handleQrCode ~ res:', res) + const newItem = { + ...res.data[0], + checked: true, + outType: 0, + } + // 根据maCode去重 + const exists = codeDeviceList.value.some((item) => item.maCode === newItem.maCode) + if (exists) { + uni.showToast({ title: '设备已添加', icon: 'none' }) + } else { + codeDeviceList.value.unshift(newItem) + } + allChecked.value = codeDeviceList.value.every((e) => e.checked) + return } else { res = await getCodeScanAPI(params) } @@ -477,7 +489,7 @@ const handleQrCode = async (qrCode) => { item.materialName = item.typeName item.materialModel = item.typeModelName item.outType = 2 // 出库方式 二维码 - item.checked = true // 默认未选中 + item.checked = true // 默认选中 }) allChecked.value = codeDeviceList.value.every((e) => e.checked) } @@ -524,7 +536,7 @@ const ocrClick = () => { .table-list-item { background: #fff; - padding: 32rpx; + padding: 32rpx 18rpx; border-radius: 20rpx; box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.06); margin-bottom: 24rpx; @@ -535,8 +547,8 @@ const ocrClick = () => { } // 针对手机(如宽度小于768px)设置不同的 padding-top @media (max-width: 767px) { - width: 80px; - font-size: 14px; + // width: 95px; + font-size: 13px; } } diff --git a/src/pages/my/signature.vue b/src/pages/my/signature.vue index 7626173..f9d168b 100644 --- a/src/pages/my/signature.vue +++ b/src/pages/my/signature.vue @@ -198,6 +198,7 @@ const uploadSignUrl = async (base64Data) => { leaseSignType: signType.value, taskType: opts.taskType || '', publishTask: opts.publishTask || '', + ids: opts.ids, } console.log('🚀 ~ success: ~ params:', params) const res = await updateLeaseApplyInfoSign(params) diff --git a/src/pages/picking/outbound/sign.vue b/src/pages/picking/outbound/sign.vue index a2997a6..aae2ab1 100644 --- a/src/pages/picking/outbound/sign.vue +++ b/src/pages/picking/outbound/sign.vue @@ -148,6 +148,7 @@ const onSignature = (e, item) => { isLease: true, taskType: item.taskType, publishTask: item.publishTask, + ids: item.ids, } uni.navigateTo({ url: `/pages/my/signature?params=${JSON.stringify(params)}`, diff --git a/src/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/src/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue index 6bb5d79..b112803 100644 --- a/src/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue +++ b/src/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue @@ -21,8 +21,8 @@ :class="placement == 'bottom' ? 'uni-popper__arrow_bottom' : 'uni-popper__arrow_top'" > - - + + 10 ? text.slice(0, 25) + '...' : text + return text.length > 13 ? text.slice(0, 20) + '...' : text }, getOffsetByPlacement() { return this.placement === 'top' ? 'bottom:calc(100% + 12px);' : 'top:calc(100% + 12px);' }, filteredData() { const keyword = this.searchValue.trim().toLowerCase() - if (!this.searchable || !keyword) return this.mixinDatacomResData + if (!this.filterable || !keyword) return this.mixinDatacomResData return this.mixinDatacomResData.filter((item) => this.formatItemName(item).toLowerCase().includes(keyword), ) @@ -246,7 +246,7 @@ export default { toggleSelector() { if (this.disabled) return this.showSelector = !this.showSelector - if (!this.showSelector && this.searchable) this.searchValue = '' + if (!this.showSelector && this.filterable) this.searchValue = '' }, onSearchInput(val) { this.searchValue = val