领料,退料,维修输入框判断

This commit is contained in:
zzyuan 2024-12-10 14:41:47 +08:00
parent 5b9b86b960
commit 091b1e4b1f
14 changed files with 207 additions and 50 deletions

View File

@ -1,7 +1,7 @@
<template>
<view class="accept page-common">
<div class="card">
<uni-forms :model="formData" label-width="150rpx" :border="true">
<uni-forms :model="formData" label-width="170rpx" :border="true">
<uni-forms-item label="退料单位:" name="unitId">
<uni-data-select v-model="unitId"
:localdata="unitList" @change="getProject">

View File

@ -2,7 +2,7 @@
<view class="accept page-common">
<div class="card">
<div>任务信息</div>
<uni-forms :model="taskInfo" label-width="160rpx" :border="true">
<uni-forms :model="taskInfo" label-width="170rpx" :border="true">
<uni-forms-item label="退料单位" name="unitName">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.unitName }}</span>
</uni-forms-item>

View File

@ -2,7 +2,7 @@
<view class="accept page-common">
<div class="card">
<div>任务信息</div>
<uni-forms :model="taskInfo" label-width="160rpx" :border="true">
<uni-forms :model="taskInfo" label-width="170rpx" :border="true">
<uni-forms-item label="退料单位" name="unitName">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.unitName }}</span>
</uni-forms-item>

View File

@ -13,7 +13,7 @@
</uni-row>
<div class="card" style="margin-top: 10px;">
<div>退料物资</div>
<uni-forms :model="rowData" label-width="160rpx" :border="true">
<uni-forms :model="rowData" label-width="170rpx" :border="true">
<uni-forms-item label="物资名称:" name="unitName">
<span style="height: 100%;display: flex;align-items: center;">{{ rowData.typeName }}</span>
</uni-forms-item>

View File

@ -2,7 +2,7 @@
<view class="accept page-common">
<div class="card">
<div>任务信息</div>
<uni-forms :model="taskInfo" label-width="160rpx" :border="true">
<uni-forms :model="taskInfo" label-width="170rpx" :border="true">
<uni-forms-item label="退料单位" name="unitName">
<span style="height: 100%;display: flex;align-items: center;">{{ taskInfo.unitName }}</span>
</uni-forms-item>
@ -58,7 +58,7 @@
<uni-td>{{item.typeName}}</uni-td>
<uni-td>{{item.num}}</uni-td>
<uni-td>
<uni-easyinput placeholder="退料数" v-model="item.preNum"/>
<uni-easyinput placeholder="退料数" v-model="item.preNum" type="number" :clearable="false" @input="onChangeNumber(item)"/>
</uni-td>
<uni-td>
<uni-easyinput placeholder="外观" v-model="item.apDetection"/>
@ -211,7 +211,32 @@ const delRow = (index) => {
console.log(index)
console.log(typeList.value)
typeList.value.splice(index,1)
}
}
// change
const onChangeNumber = (item) => {
console.log(item)
console.log(item.preNum)
console.log(item.preNum)
let maxNum = Number(item.num)
// outboundNum.value
setTimeout(()=>{
if(item.unitValue==1){
item.preNum = Number(String(item.preNum).replace(/[^\d.]/g,''))
}else{
item.preNum = Number(String(item.preNum).replace(/[^\d]/g,''))
}
if (Number(item.preNum)<= 0) {
item.preNum = 0;
}
if (Number(item.preNum) > maxNum) {
uni.showToast({
title: '已达到当前物资最大在用数量!',
icon: 'none',
})
item.preNum = maxNum;
}
},500)
}
onLoad((options)=>{
console.log(options)

View File

@ -12,7 +12,7 @@
</view>
</view>
<uni-row :gutter="24" class="search-form">
<uni-col :span="8">
<uni-col :span="18">
<view>
<uni-datetime-picker
v-model="dateArray"
@ -22,8 +22,10 @@
placeholder="选择日期范围"
/>
</view>
</uni-col>
<uni-col :span="8">
</uni-col>
</uni-row>
<uni-row :gutter="24" class="search-form">
<uni-col :span="16">
<view>
<uni-easyinput placeholder="请输入内容" v-model="queryParams.keyWord"/>
</view>
@ -300,21 +302,24 @@ onShow(() => {
display: flex;
align-items: center;
box-sizing: content-box;
margin-bottom: 10rpx;
}
.search {
height: 70rpx;
height: 65rpx;
background-color: #3784fb;
text-align: center;
line-height: 70rpx;
line-height: 65rpx;
color: #fff;
border-radius: 10rpx;
}
.addBtn {
height: 70rpx;
height: 65rpx;
background-color: #3784fb;
text-align: center;
line-height: 70rpx;
line-height: 65rpx;
color: #fff;
border-radius: 10rpx;
}
}
.scroll-container {

View File

@ -249,6 +249,7 @@ const finish = computed(() => {
display: flex;
align-items: center;
box-sizing: content-box;
margin-bottom: 10rpx;
}
.search {
@ -257,6 +258,7 @@ const finish = computed(() => {
text-align: center;
line-height: 65rpx;
color: #fff;
border-radius: 10rpx ;
}
.scroll-container {

View File

@ -150,8 +150,8 @@ const onCodingItem = (item) => {
unitName,
id,
typeId,
} = item
unitValue
} = item
leaseApplyInfo.value.maTypeName = maTypeName
leaseApplyInfo.value.typeName = typeName
leaseApplyInfo.value.unitName = unitName
@ -161,6 +161,7 @@ const onCodingItem = (item) => {
leaseApplyInfo.value.id = id
leaseApplyInfo.value.typeId = typeId
leaseApplyInfo.value.manageType = manageType
leaseApplyInfo.value.unitValue = unitValue
if (status == 2) {
uni.showToast({ title: '该物资已完成出库!', icon: 'none' })

View File

@ -12,7 +12,7 @@
</view>
</view>
<uni-row :gutter="24" class="search-form">
<uni-col :span="12">
<uni-col :span="18">
<view>
<uni-datetime-picker
v-model="dateArray"
@ -22,17 +22,20 @@
placeholder="选择日期范围"
/>
</view>
</uni-col>
<uni-col :span="8">
</uni-col>
</uni-row>
<uni-row :gutter="24" class="search-form">
<uni-col :span="18">
<view>
<uni-easyinput placeholder="请输入内容" v-model="queryParams.keyWord" />
</view>
</uni-col>
<uni-col :span="4">
<uni-col :span="6">
<view class="search" @click="getTableList()">搜索</view>
</uni-col>
</uni-row>
<scroll-view scroll-y @scrolltolower="onScrollTolower" class="scroll-container">
<view
class="table-list-item"
@ -40,6 +43,10 @@
@click="handleItem(item)"
v-for="(item, index) in tableList"
>
<div class="title">
<span style="font-size: 15px; font-weight: 800">领料任务</span>
<!-- <span :style="{ color: active == 1 ? '#3784fb' : '#ff4d4f' }">{{active == 1 ? '已完成' : '未完成'}}</span> -->
</div>
<div class="line"></div>
<uni-row :gutter="24">
<uni-col :span="6">申请时间</uni-col>
@ -230,6 +237,7 @@ const maskClick = () => {}
display: flex;
align-items: center;
box-sizing: content-box;
margin-bottom: 10rpx;
}
.search {
@ -238,6 +246,7 @@ const maskClick = () => {}
text-align: center;
line-height: 65rpx;
color: #fff;
border-radius: 10rpx;
}
.scroll-container {

View File

@ -28,9 +28,8 @@
<uni-forms-item label="已领数量:" name="alNum">
<span class="form-view">{{ queryParams.alNum }}</span>
</uni-forms-item>
<uni-forms-item label="出库数量:" name="waitBindNum">
<uni-number-box :min="0" :max="maxNum" v-model="outboundNum"
@change="onChangeNumber" />
<uni-forms-item label="出库数量:">
<uni-easyinput v-model="outboundNum" type="number" :clearable="false" placeholder="出库数量" @input="onChangeNumber"/>
</uni-forms-item>
</uni-forms>
@ -59,12 +58,24 @@ const maxNum = computed(() => {
// change
const onChangeNumber = (e) => {
if (e == maxNum.value) {
uni.showToast({
title: '已达到当前物资最大出库数量!',
icon: 'none',
})
}
// outboundNum.value
setTimeout(()=>{
if(queryParams.unitValue==1){
outboundNum.value = Number(e.replace(/[^\d.]/g,''))
}else{
outboundNum.value = Number(e.replace(/[^\d]/g,''))
}
if (Number(e)<= 0) {
outboundNum.value = 0;
}
if (Number(e) > maxNum.value) {
uni.showToast({
title: '已达到当前物资最大出库数量!',
icon: 'none',
})
outboundNum.value = maxNum.value;
}
},500)
}
//

View File

@ -75,7 +75,7 @@
</ssha-dropdownSelect> -->
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput placeholder="配件数量" v-model="item.partNum"/>
<uni-easyinput placeholder="配件数量" v-model="item.partNum" type="number" :clearable="false" @input="partCheckNum(item)"/>
</uni-forms-item>
<uni-forms-item label="是否收费">
<div style="width: 100%;display: flex;">
@ -110,11 +110,11 @@
<uni-data-select :localdata="isChargeList" v-model="item.isCharge" placeholder="请选择是否收费" />
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput v-model="item.partNum" placeholder="请输入配件数量" />
<uni-easyinput v-model="item.partNum" placeholder="请输入配件数量" type="number" :clearable="false" @input="partCheckNum(item)"/>
</uni-forms-item>
<uni-forms-item label="金额">
<div style="width: 100%;display: flex;">
<uni-easyinput v-model="item.partPrice" placeholder="请输入金额" />
<uni-easyinput v-model="item.partPrice" placeholder="请输入金额" type="number" :clearable="false" @input="costCheckNum(item)"/>
<div style="width:50px;margin-left: 10px;">
<span style="margin-right: 10px;font-size: 24px;color: #19be6b;" @click="addMidPart">+</span>
<span style="font-size: 24px;color: red;" @click="delMidPart(index)">-</span>
@ -295,7 +295,22 @@ const saveCode = async() => {
}
// change
const partCheckNum = (item) => {
// console.log(item)
// console.log(item.partNum)
setTimeout(()=>{
item.partNum = Number(String(item.partNum).replace(/[^\d.]/g,''))
},500)
}
// change
const costCheckNum = (item) => {
// console.log(item)
// console.log(item.partPrice)
setTimeout(()=>{
item.partPrice = Number(String(item.partPrice).replace(/[^\d.]/g,''))
},500)
}

View File

@ -39,7 +39,11 @@
:key="index"
class="table-list-item"
@tap="onRepairItem(item)"
>
>
<div class="title">
<span style="font-size: 15px; font-weight: 800">维修任务</span>
<!-- <span :style="{ color: active == 1 ? '#3784fb' : '#ff4d4f' }">{{active == 1 ? '已完成' : '未完成'}}</span> -->
</div>
<view class="line"></view>
<uni-row :gutter="24">
<uni-col :span="2">
@ -69,9 +73,9 @@
</uni-row>
<uni-row :gutter="24">
<uni-col :span="2" style="color: transparent">{{ index + 1 }}</uni-col>
<uni-col :span="6">退数量</uni-col>
<uni-col :span="6">数量</uni-col>
<uni-col :span="16">
<view class="cont">{{ item.repairNum }}</view>
<view class="cont">{{ item.typeRepairedNum }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">

View File

@ -12,7 +12,7 @@
</view>
</view>
<uni-row :gutter="24" class="search-form">
<uni-col :span="12">
<uni-col :span="18">
<view>
<uni-datetime-picker
v-model="dateArray"
@ -22,8 +22,10 @@
placeholder="选择日期范围"
/>
</view>
</uni-col>
<uni-col :span="8">
</uni-col>
</uni-row>
<uni-row :gutter="24" class="search-form">
<uni-col :span="18">
<view>
<uni-easyinput placeholder="请输入内容" v-model="queryParams.keyWord" />
</view>
@ -42,6 +44,10 @@
>
<uni-swipe-action>
<uni-swipe-action-item @click="onClick($event, item)" :right-options="options">
<div class="title">
<span style="font-size: 15px; font-weight: 800">维修任务</span>
<!-- <span :style="{ color: active == 1 ? '#3784fb' : '#ff4d4f' }">{{active == 1 ? '已完成' : '未完成'}}</span> -->
</div>
<view class="line"></view>
<uni-row :gutter="24">
<uni-col :span="6">退料人</uni-col>
@ -299,6 +305,7 @@ const maskClick = () => {}
display: flex;
align-items: center;
box-sizing: content-box;
margin-bottom: 10rpx;
}
.search {
@ -307,6 +314,7 @@ const maskClick = () => {}
text-align: center;
line-height: 65rpx;
color: #fff;
border-radius: 10rpx;
}
.scroll-container {

View File

@ -50,7 +50,7 @@
<h2 style="padding: 4rpx 0; font-weight: bold">内部维修</h2>
<uni-forms ref="baseForm" label-align="right" >
<uni-forms-item label="维修数量">
<uni-easyinput placeholder="请填写维修数量" v-model="formLeft.repairNum"/>
<uni-easyinput placeholder="请填写维修数量" v-model="formLeft.repairNum" type="number" :clearable="false" @input="repairCheckNum1"/>
</uni-forms-item>
<div v-for="(item, index) in partItems" :key="index">
<uni-forms-item label="配件类型">
@ -66,7 +66,7 @@
</ssha-dropdownSelect> -->
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput placeholder="配件数量" v-model="item.partNum"/>
<uni-easyinput placeholder="配件数量" v-model="item.partNum" type="number" :clearable="false" @input="partCheckNum(item)"/>
</uni-forms-item>
<uni-forms-item label="是否收费">
<div style="width: 100%;display: flex;">
@ -87,7 +87,7 @@
<h2 style="padding: 4rpx 0; font-weight: bold">返厂维修</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="维修数量">
<uni-easyinput placeholder="请输入维修数量" v-model="formMiddle.repairNum"/>
<uni-easyinput placeholder="请输入维修数量" v-model="formMiddle.repairNum" type="number" :clearable="false" @input="repairCheckNum2"/>
</uni-forms-item>
<uni-forms-item label="物资厂家">
<uni-data-select :localdata="partsMillList" v-model="formMiddle.supplierId" placeholder="请选择物资厂家" />
@ -100,11 +100,11 @@
<uni-data-select :localdata="isChargeList" v-model="item.isCharge" placeholder="请选择是否收费" />
</uni-forms-item>
<uni-forms-item label="配件数量">
<uni-easyinput v-model="item.partNum" placeholder="请输入配件数量" />
<uni-easyinput v-model="item.partNum" placeholder="请输入配件数量" type="number" :clearable="false" @input="partCheckNum(item)"/>
</uni-forms-item>
<uni-forms-item label="金额">
<div style="width: 100%;display: flex;">
<uni-easyinput v-model="item.partPrice" placeholder="请输入金额" />
<uni-easyinput v-model="item.partPrice" placeholder="请输入金额" type="number" :clearable="false" @input="costCheckNum(item)"/>
<div style="width:50px;margin-left: 10px;">
<span style="margin-right: 10px;font-size: 24px;color: #19be6b;" @click="addMidPart">+</span>
<span style="font-size: 24px;color: red;" @click="delMidPart(index)">-</span>
@ -120,7 +120,7 @@
<h2 style="padding: 4rpx 0; font-weight: bold">维修报废</h2>
<uni-forms ref="baseForm" label-align="right">
<uni-forms-item label="报废数量">
<uni-easyinput placeholder="请填写报废数量" v-model="formRight.scrapNum"/>
<uni-easyinput placeholder="请填写报废数量" v-model="formRight.scrapNum" type="number" :clearable="false" @input="repairCheckNum3"/>
</uni-forms-item>
<uni-forms-item label="报废原因">
<uni-easyinput placeholder="请填写报废原因" v-model="formRight.scrapReason"/>
@ -335,11 +335,88 @@ const saveNumAll = async() => {
}
// change
const repairCheckNum1 = (e) => {
setTimeout(()=>{
let maxNum = queryParams.typeRepairNum - queryParams.typeRepairedNum;
console.log(maxNum)
if(queryParams.unitValue==1){
formLeft.value.repairNum = Number(e.replace(/[^\d.]/g,''))
}else{
formLeft.value.repairNum = Number(e.replace(/[^\d]/g,''))
}
if (Number(e)<= 0) {
formLeft.value.repairNum = 0;
}
if ((formLeft.value.repairNum+formMiddle.value.repairNum+formRight.value.scrapNum) > maxNum) {
uni.showToast({
title: '已达到当前物资最大维修数量!',
icon: 'none',
})
formLeft.value.repairNum = 0;
}
},500)
}
// change
const repairCheckNum2 = (e) => {
setTimeout(()=>{
let maxNum = queryParams.typeRepairNum - queryParams.typeRepairedNum;
console.log(maxNum)
if(queryParams.unitValue==1){
formMiddle.value.repairNum = Number(e.replace(/[^\d.]/g,''))
}else{
formMiddle.value.repairNum = Number(e.replace(/[^\d]/g,''))
}
if (Number(e)<= 0) {
formMiddle.value.repairNum = 0;
}
if ((formLeft.value.repairNum+formMiddle.value.scrapNum+formRight.value.scrapNum) > maxNum) {
uni.showToast({
title: '已达到当前物资最大维修数量!',
icon: 'none',
})
formMiddle.value.repairNum = 0;
}
},500)
}
// change
const repairCheckNum3 = (e) => {
setTimeout(()=>{
let maxNum = queryParams.typeRepairNum - queryParams.typeRepairedNum;
console.log(maxNum)
if(queryParams.unitValue==1){
formRight.value.scrapNum = Number(e.replace(/[^\d.]/g,''))
}else{
formRight.value.scrapNum = Number(e.replace(/[^\d]/g,''))
}
if (Number(e)<= 0) {
formRight.value.scrapNum = 0;
}
if ((formLeft.value.repairNum+formMiddle.value.scrapNum+formRight.value.scrapNum) > maxNum) {
uni.showToast({
title: '已达到当前物资最大维修数量!',
icon: 'none',
})
formRight.value.scrapNum = 0;
}
},500)
}
// change
const partCheckNum = (item) => {
// console.log(item)
// console.log(item.partNum)
setTimeout(()=>{
item.partNum = Number(String(item.partNum).replace(/[^\d.]/g,''))
},500)
}
// change
const costCheckNum = (item) => {
// console.log(item)
// console.log(item.partPrice)
setTimeout(()=>{
item.partPrice = Number(String(item.partPrice).replace(/[^\d.]/g,''))
},500)
}
</script>