Merge branch 'master' of http://192.168.30.2:3000/bonus/bonus-material-app
This commit is contained in:
commit
7469c78868
|
|
@ -84,11 +84,11 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<view class="table-list-item" v-if="!queryParamsTemp.isBack">
|
||||
<view class="table-list-item">
|
||||
<uni-row :gutter="24" class="flex">
|
||||
<uni-col :span="6">出库方式:</uni-col>
|
||||
<uni-col :span="6">
|
||||
<button class="item-btn" type="primary" @click="scanStart">二维码出库</button>
|
||||
<button class="item-btn" type="primary" @click="scanStart">二维码识别</button>
|
||||
</uni-col>
|
||||
<uni-col :span="6">
|
||||
<button class="item-btn" type="primary" @click="handleRfid">RFID识别</button>
|
||||
|
|
@ -103,21 +103,22 @@
|
|||
@scanSuccess="handleScanSuccess"
|
||||
@scanError="handleScanError"
|
||||
/>
|
||||
<view class="table-list-item">
|
||||
|
||||
<div class="table-list-item">
|
||||
<uni-row :gutter="24" style="display: flex; align-items: center">
|
||||
<uni-col :span="6">
|
||||
<view> 设备编码 </view>
|
||||
</uni-col>
|
||||
<uni-col :span="12">
|
||||
<view>
|
||||
<uni-easyinput v-model="queryCodeParams.maCode" placeholder="请输入内容" />
|
||||
</view>
|
||||
</uni-col>
|
||||
<uni-col :span="6">
|
||||
<view class="coding-btn search-btn" @tap="onCodeSearch">编码检索</view>
|
||||
<uni-col :span="18">
|
||||
<uni-data-select
|
||||
v-model="queryCodeParams.maCode"
|
||||
:localdata="codeRange"
|
||||
@change="changeCode"
|
||||
></uni-data-select>
|
||||
</uni-col>
|
||||
</uni-row>
|
||||
</view>
|
||||
</div>
|
||||
|
||||
<scroll-view scroll-y style="padding-bottom: 90rpx; height: 70vh">
|
||||
<view class="table-list-item" v-for="(item, index) in codeDeviceList" :key="item.maId">
|
||||
<uni-row :gutter="24">
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)}`,
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@
|
|||
:class="placement == 'bottom' ? 'uni-popper__arrow_bottom' : 'uni-popper__arrow_top'"
|
||||
></view>
|
||||
|
||||
<!-- 🔍 搜索输入框,受 searchable 控制 -->
|
||||
<view v-if="searchable" class="uni-select__search-box">
|
||||
<!-- 🔍 搜索输入框,受 filterable 控制 -->
|
||||
<view v-if="filterable" class="uni-select__search-box">
|
||||
<uni-easyinput
|
||||
v-model="searchValue"
|
||||
placeholder="请输入关键词"
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
* @value top 顶部弹出
|
||||
* @value bottom 底部弹出(default)
|
||||
* @event {Function} change 选中发生变化触发
|
||||
* @property {Boolean} searchable 是否显示搜索框
|
||||
* @property {Boolean} filterable 是否显示搜索框
|
||||
*/
|
||||
export default {
|
||||
name: 'uni-data-select',
|
||||
|
|
@ -121,7 +121,7 @@ export default {
|
|||
type: String,
|
||||
default: 'bottom',
|
||||
},
|
||||
searchable: {
|
||||
filterable: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
|
|
@ -158,14 +158,14 @@ export default {
|
|||
},
|
||||
textShow() {
|
||||
const text = this.current
|
||||
return text.length > 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
|
||||
|
|
|
|||
Loading…
Reference in New Issue