9 changed files with 1316 additions and 282 deletions
@ -1,2 +1,2 @@ |
|||
VITE_BASE_URL=http://10.230.41.31:82/admin-api |
|||
VITE_BASE_URL_IMAGE=http://10.230.41.31:82/admin-api |
|||
VITE_BASE_URL=http://10.230.41.60:82/api/admin-api |
|||
VITE_BASE_URL_IMAGE=http://10.230.41.60:82/api/admin-api |
|||
|
@ -0,0 +1,557 @@ |
|||
<template> |
|||
<!-- 添加维修工单 --> |
|||
<view class="add-form-container"> |
|||
<u-form :model="form" ref="formRef" label-width="160rpx"> |
|||
<!-- <u-form-item label="归还人员" prop="reverterName" required> |
|||
<view class="select" @click="openSingleColumn('reverterId',form.reverterId,reverterUser)"> |
|||
<view class="input" v-if='form.reverterId'> |
|||
{{selectFormat(form.reverterId,reverterUser)}} |
|||
</view> |
|||
<view class="placeholder" v-else> |
|||
{{`请选择归还人员`}} |
|||
</view> |
|||
<u-icon name="arrow-right" color="#aaaaaa" size="28"></u-icon> |
|||
</view> |
|||
</u-form-item> --> |
|||
<u-form-item label="归还人员" prop="returner"> |
|||
<u-input v-model="form.returner" placeholder="请输入归还人"/> |
|||
</u-form-item> |
|||
<u-form-item label="库位" prop="locationNumber" required> |
|||
<u-input v-model="form.locationNumber" placeholder="请输入库位" @blur="blur()" @confirm="handelScanMsg"/> |
|||
</u-form-item> |
|||
<u-form-item label="备件编号" prop="itemNumber" required> |
|||
<u-input v-model="form.itemNumber" placeholder="请输入备件" disabled/> |
|||
</u-form-item> |
|||
<u-form-item label="备件名称" prop="itemNumber" required> |
|||
<u-input v-model="form.itemName" placeholder="根据备件编号获取" disabled /> |
|||
</u-form-item> |
|||
|
|||
<u-form-item label="数量" prop="qty" required> |
|||
<u-input v-model="form.qty" type="number" placeholder="请输入数量" /> |
|||
</u-form-item> |
|||
<!-- <u-form-item label="描述" prop="describes" required> |
|||
<u-input v-model="form1.describes" placeholder="请输入描述" /> |
|||
</u-form-item> --> |
|||
|
|||
</u-form> |
|||
<view class="footer"> |
|||
<view class="btns"> |
|||
<button class="reset" @click="reset">重置</button> |
|||
<button class="sure" @click="submit" :loading='loading' :disabled='loading'>确定</button> |
|||
</view> |
|||
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> |
|||
</view> |
|||
|
|||
<u-select v-model="singleColumnShow" mode="single-column" :default-value='singleColumnDefaultValue' |
|||
:list="singleColumnList" @confirm="chooseSingleColumn"></u-select> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { |
|||
onLoad |
|||
} from '@dcloudio/uni-app' |
|||
import { |
|||
ref, |
|||
getCurrentInstance |
|||
} from 'vue' |
|||
import * as userApi from "@/api/user" |
|||
import * as sparePartsReturnApi from "@/api/sparePartsReturn" |
|||
import * as sparePartsApi from "@/api/spareParts" |
|||
import * as locationApi from "@/api/location" |
|||
const isDisabled =ref(false); |
|||
const { proxy } = getCurrentInstance() |
|||
const loading = ref(false) |
|||
// 备件弹窗 |
|||
const isPopupShow = ref(false) |
|||
const singleColumnShow = ref(false) |
|||
const singleColumnDefaultValue = ref([]) |
|||
const singleColumnList = ref([]) |
|||
const field = ref('') |
|||
const reverterUser = ref([]) |
|||
const form = ref({ |
|||
id: '', |
|||
number: '', |
|||
itemNumbers: [] |
|||
}) |
|||
const form1 = ref({ |
|||
itemNumber: "", |
|||
itemName: '', |
|||
locationNumber: '', |
|||
qty: '' |
|||
}) |
|||
const isShow = ref(false) |
|||
const locationList = ref([])//备件的库位列表 |
|||
const locationItem = ref('')//备件账内库 |
|||
const isFocus = ref(false) |
|||
|
|||
const choosesingleColumnItem = ref() |
|||
const itemNumber = ref() |
|||
const msg = ref() |
|||
|
|||
// 触发提交表单 |
|||
function submit() { |
|||
// 校验 |
|||
// if (!form.value.reverterId) { |
|||
// proxy.$modal.showToast('请选择归还人员') |
|||
// return; |
|||
// } |
|||
if (form.value.itemNumber==''|| form.value.itemNumber==null) { |
|||
proxy.$modal.showToast('请选择备件') |
|||
return; |
|||
} |
|||
if (form.value.locationNumber==''|| form.value.locationNumber==null) { |
|||
proxy.$modal.showToast('请选择库位') |
|||
return; |
|||
} |
|||
|
|||
if (Number(form.value.qty) <= 0) { |
|||
proxy.$modal.showToast('出库数量需大于0') |
|||
return; |
|||
} |
|||
proxy.$modal.confirm('是否归还备件').then(() => { |
|||
proxy.$modal.loading('加载中') |
|||
loading.value = true |
|||
sparePartsReturnApi.create(form.value).then((res) => { |
|||
proxy.$modal.closeLoading() |
|||
if (res.data) { |
|||
proxy.$modal.showToast('归还成功') |
|||
setTimeout(() => { |
|||
proxy.$tab.navigateBack() |
|||
loading.value = false |
|||
}, 1500) |
|||
} else { |
|||
proxy.$modal.showToast('归还失败') |
|||
loading.value = false |
|||
} |
|||
}).catch(() => { |
|||
proxy.$modal.closeLoading() |
|||
loading.value = false |
|||
}) |
|||
}) |
|||
|
|||
} |
|||
// 重置 |
|||
function reset() { |
|||
form.value.itemNumber='' |
|||
form.value.itemName='' |
|||
form.value.locationNumber='' |
|||
form.value.returner='' |
|||
form.value.qty='' |
|||
isShow.value= false |
|||
} |
|||
|
|||
function selectFormat(val, array) { |
|||
let str = array.filter(item => item.value == val)[0].label |
|||
return str |
|||
} |
|||
// 单列模式 |
|||
function openSingleColumn(fieldName, val, list) { |
|||
singleColumnList.value = list |
|||
field.value = fieldName |
|||
if (val) { |
|||
singleColumnDefaultValue.value = [list.findIndex(item => item.value == val)] |
|||
} else { |
|||
singleColumnDefaultValue.value = [] |
|||
} |
|||
singleColumnShow.value = true |
|||
} |
|||
// 单列模式点击确定之后 |
|||
function chooseSingleColumn(e) { |
|||
form.value[field.value] = e[0].value |
|||
if(field.value == 'reverterId'){ |
|||
choosesingleColumnItem.value = singleColumnList.value.filter(item => item.id == e[0].value) |
|||
form.value.reverterName = choosesingleColumnItem.value[0].name |
|||
} |
|||
singleColumnShow.value = false |
|||
} |
|||
// 获取归还人员列表 |
|||
async function getReverterUser() { |
|||
await userApi.getReverterUser().then(res => { |
|||
res.data.map(item => { |
|||
item.value = item.id |
|||
item.label = item.nickname |
|||
}) |
|||
reverterUser.value = res.data |
|||
}) |
|||
} |
|||
// 打开弹窗 |
|||
function open() { |
|||
form1.value = { |
|||
itemNumber: "", |
|||
itemName: '', |
|||
locationNumber: '', |
|||
qty: '' |
|||
} |
|||
isPopupShow.value = true |
|||
isShow.value= false |
|||
isFocus.value = true |
|||
} |
|||
// 添加备件 |
|||
function addSpare() { |
|||
// 校验 |
|||
if (!form1.value.itemNumber) { |
|||
proxy.$modal.showToast('请选择备件') |
|||
return; |
|||
} |
|||
if (!form1.value.itemName) { |
|||
proxy.$modal.showToast(msg.value) |
|||
return; |
|||
} |
|||
if (!form1.value.locationNumber) { |
|||
proxy.$modal.showToast('请选择库位') |
|||
return; |
|||
} |
|||
if (!locationItem.value || locationItem.value.isInAccount === 'TRUE') { |
|||
proxy.$modal.showToast('该库位属于帐内库,请选择帐外库') |
|||
return; |
|||
} |
|||
if (itemNumber.value) { |
|||
proxy.$modal.showToast('该库位已绑定过其他备件') |
|||
return; |
|||
} |
|||
if (!form1.value.qty) { |
|||
proxy.$modal.showToast(`请输入数量`) |
|||
return; |
|||
} |
|||
|
|||
if (!form1.value.describes) { |
|||
proxy.$modal.showToast(`请输入描述`) |
|||
return; |
|||
} |
|||
|
|||
if (form.value.itemNumbers && form.value.itemNumbers.length > 0) { |
|||
let arr =form.value.itemNumbers.filter(item => item.itemNumber == form1.value.itemNumber) |
|||
if (arr && arr.length > 0) { |
|||
proxy.$modal.showToast('该备件已添加') |
|||
return; |
|||
} |
|||
} |
|||
|
|||
form.value.itemNumbers.push(form1.value) |
|||
isPopupShow.value = false |
|||
} |
|||
// 删除备件 |
|||
function delSpareParts(index) { |
|||
form.value.itemNumbers.splice(index, 1) |
|||
} |
|||
//获取库位信息 |
|||
function getLocation() { |
|||
sparePartsApi.getByLocationNumber({ |
|||
locationNumber: form.value.locationNumber |
|||
}).then(res => { |
|||
if(!res.data){ |
|||
if(res.msg){ |
|||
proxy.$modal.showToast(res.msg) |
|||
msg.value = res.msg |
|||
form.value.locationNumber = '' |
|||
}else{ |
|||
form.value.locationNumber = '' |
|||
proxy.$modal.showToast('找不到该库位') |
|||
} |
|||
return; |
|||
} |
|||
if(res.data.locationNumber==null){ |
|||
proxy.$modal.showToast("找不到该库位") |
|||
form.value.locationNumber = '' |
|||
form.value.itemNumber = '' |
|||
form.value.itemName = '' |
|||
return; |
|||
} |
|||
|
|||
locationItem.value = res.data |
|||
// 判断该库位在之前添加的列表里有没有被绑定过 |
|||
if (res.data.itemNumber !=null && res.data.itemNumber !='') {//有备件才展示 |
|||
form.value.itemNumber = res.data.itemNumber |
|||
form.value.itemName = res.data.itemName |
|||
}else{ |
|||
form.value.locationNumber = '' |
|||
form.value.itemNumber = '' |
|||
form.value.itemName = '' |
|||
proxy.$modal.showToast('该库位未绑定过备件') |
|||
return |
|||
} |
|||
}).catch(()=>{ |
|||
|
|||
}) |
|||
} |
|||
function blur() { |
|||
if (form.value.locationNumber) { |
|||
getLocation() |
|||
} |
|||
} |
|||
// 扫描设备条码 |
|||
function handelScanMsg() { |
|||
getLocation() |
|||
} |
|||
// 获取备件信息 |
|||
function getSparePartsInfo() { |
|||
sparePartsApi.getByItemNumber({ |
|||
itemNumber: form.value.itemNumber, |
|||
}).then(res => { |
|||
if(!res.data){ |
|||
proxy.$modal.showToast(res.msg) |
|||
msg.value = res.msg |
|||
itemNumber.value = '' |
|||
form.value.areaNumber = '' |
|||
form.value.locationNumber = ''; |
|||
form.value.itemName = '' |
|||
return; |
|||
} |
|||
|
|||
if(res.data.itemName==null || res.data.itemName==''){ |
|||
proxy.$modal.showToast("找不到该备件") |
|||
form.value.itemNumber = '' |
|||
form.value.locationNumber = ''; |
|||
return; |
|||
} |
|||
|
|||
itemNumber.value = '' |
|||
form.value.itemName = res.data.itemName |
|||
if(res.data.locationNumber=='' || res.data.locationNumber==null){ |
|||
isShow.value =true |
|||
isDisabled.value = false |
|||
}else{ |
|||
form.value.locationNumber = res.data.locationNumber |
|||
isDisabled.value = true |
|||
} |
|||
// 判断是否有帐外库 |
|||
// locationItem.value = res.data.list.filter(item=>item.isInAccount==='FALSE')[0] |
|||
// if(locationItem.value){ |
|||
// form1.value.areaNumber = locationItem.value.areaNumber |
|||
// form1.value.locationNumber = locationItem.value.locationNumber |
|||
// isShow.value =false |
|||
// }else{ |
|||
// form1.value.areaNumber = '' |
|||
// form1.value.locationNumber = '' |
|||
|
|||
// } |
|||
}).catch((err)=>{ |
|||
msg.value = err.msg |
|||
itemNumber.value = '' |
|||
form.value.areaNumber = '' |
|||
form.value.itemName = '' |
|||
form.value.applyQty = '' |
|||
form.value.deliveryQty = '' |
|||
locationList.value = []; |
|||
}) |
|||
} |
|||
|
|||
// function getSparePartsInfo() { |
|||
// sparePartsApi.getSparePartsReturnInfo({ |
|||
// number: form1.value.itemNumber, |
|||
// }).then(res => { |
|||
// if(!res.data){ |
|||
// proxy.$modal.showToast(res.msg) |
|||
// msg.value = res.msg |
|||
// itemNumber.value = '' |
|||
// form1.value.areaNumber = '' |
|||
// form1.value.locationNumber = ''; |
|||
// form1.value.itemName = '' |
|||
// return; |
|||
// } |
|||
// itemNumber.value = '' |
|||
// form1.value.itemName = res.data.itemName |
|||
// form1.value.deliveryQty = res.data.deliveryQty |
|||
// form1.value.applyQty = res.data.applyQty |
|||
// // 判断是否有帐外库 |
|||
// locationItem.value = res.data.list.filter(item=>item.isInAccount==='FALSE')[0] |
|||
// if(locationItem.value){ |
|||
// form1.value.areaNumber = locationItem.value.areaNumber |
|||
// form1.value.locationNumber = locationItem.value.locationNumber |
|||
// isShow.value =false |
|||
// }else{ |
|||
// form1.value.areaNumber = '' |
|||
// form1.value.locationNumber = '' |
|||
// isShow.value =true |
|||
// } |
|||
// }).catch((err)=>{ |
|||
// msg.value = err.msg |
|||
// itemNumber.value = '' |
|||
// form1.value.areaNumber = '' |
|||
// form1.value.itemName = '' |
|||
// form1.value.applyQty = '' |
|||
// form1.value.deliveryQty = '' |
|||
// locationList.value = []; |
|||
// }) |
|||
// } |
|||
function blur1() { |
|||
if (form.value.itemNumber) { |
|||
getSparePartsInfo() |
|||
} |
|||
} |
|||
// 扫描设备条码 |
|||
function handelScanMsg1() { |
|||
getSparePartsInfo() |
|||
} |
|||
onLoad(async(option) => { |
|||
getReverterUser() |
|||
}) |
|||
|
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.add-form-container { |
|||
min-height: calc(100vh - 140rpx); |
|||
background: white; |
|||
padding: 0px 0rpx 140rpx; |
|||
} |
|||
|
|||
.u-form-item { |
|||
padding: 20rpx 30rpx; |
|||
} |
|||
|
|||
.disabled { |
|||
background: #f5f5f5; |
|||
} |
|||
|
|||
.footer { |
|||
position: fixed; |
|||
bottom: 0px; |
|||
left: 0px; |
|||
width: 100%; |
|||
z-index: 22; |
|||
} |
|||
|
|||
.btns { |
|||
display: flex; |
|||
|
|||
|
|||
button { |
|||
flex: 1; |
|||
} |
|||
|
|||
.sure { |
|||
background: #409eff; |
|||
color: white; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border: 1px solid #409eff; |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
|
|||
.reset { |
|||
background: #F5F5F5; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.right-button { |
|||
background: #409eff; |
|||
color: white; |
|||
padding: 0rpx 30rpx; |
|||
border-radius: 16rpx; |
|||
text-align: center; |
|||
font-size: 28rpx; |
|||
} |
|||
|
|||
.select { |
|||
display: flex; |
|||
align-items: center; |
|||
height: 72rpx; |
|||
width: 100%; |
|||
|
|||
.input { |
|||
flex: 1; |
|||
font-size: 28rpx; |
|||
color: #000000; |
|||
} |
|||
|
|||
.placeholder { |
|||
flex: 1; |
|||
font-size: 28rpx; |
|||
color: rgb(192, 196, 204); |
|||
|
|||
} |
|||
} |
|||
|
|||
.title { |
|||
padding: 32rpx 0rpx; |
|||
position: relative; |
|||
|
|||
span { |
|||
position: absolute; |
|||
left: -16rpx; |
|||
color: #fa3534; |
|||
top: 19px; |
|||
} |
|||
} |
|||
|
|||
.list { |
|||
padding: 0rpx 30rpx; |
|||
|
|||
.item { |
|||
display: flex; |
|||
margin-bottom: 20rpx; |
|||
|
|||
.item-box { |
|||
background: #F5F5F5; |
|||
border-radius: 12rpx; |
|||
flex: 1; |
|||
width: 0rpx; |
|||
} |
|||
|
|||
.spare-title { |
|||
padding: 20rpx 30rpx; |
|||
border-bottom: 1px solid #e4e4e4; |
|||
|
|||
.title-txt { |
|||
color: #409eff; |
|||
font-size: 30rpx; |
|||
font-weight: bold; |
|||
} |
|||
} |
|||
|
|||
.dec { |
|||
color: #9c9c9c; |
|||
padding: 20rpx 30rpx 20rpx; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
.add-btn { |
|||
display: flex; |
|||
justify-content: flex-start; |
|||
align-items: center; |
|||
} |
|||
|
|||
.popup-title { |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
font-weight: bold; |
|||
color: #409eff; |
|||
padding: 30rpx 30rpx 0px |
|||
} |
|||
|
|||
.popup { |
|||
width: 600rpx; |
|||
padding: 30rpx 0rpx 30rpx; |
|||
|
|||
} |
|||
|
|||
.popup-footer { |
|||
display: flex; |
|||
border-top: 1px solid #e4e4e4; |
|||
|
|||
view { |
|||
line-height: 100rpx; |
|||
flex: 1; |
|||
text-align: center; |
|||
|
|||
&.sure { |
|||
color: #409eff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
::v-deep .u-checkbox-group { |
|||
display: grid !important; |
|||
} |
|||
</style> |
@ -0,0 +1,342 @@ |
|||
<template> |
|||
<!-- 添加出库信息 --> |
|||
<view class="add-form-container"> |
|||
<u-form :model="form" ref="formRef" label-width="160rpx"> |
|||
<u-form-item label="领用人" class='disabled'> |
|||
<u-input v-model="form.receiver" placeholder="请输入领用人" /> |
|||
</u-form-item> |
|||
<u-form-item label="库位" prop="locationNumber" required> |
|||
<u-input v-model="form.locationNumber" placeholder="请输入库位" @blur="blur()" |
|||
@confirm="handelScanMsg" :focus='isFocus' /> |
|||
</u-form-item> |
|||
<u-form-item label="备件名称" prop="itemName" required class="disabled"> |
|||
<u-input v-model="form.itemName" disabled placeholder="请输入备件名称"/> |
|||
</u-form-item> |
|||
<u-form-item label="备件编码" prop="itemNumber" required class="disabled"> |
|||
<u-input v-model="form.itemNumber" disabled placeholder="请输入备件编号" /> |
|||
</u-form-item> |
|||
<u-form-item label="出库数量" prop="qty" required class="disabled"> |
|||
<u-input v-model="form.qty" type="number" placeholder="请输入出库数量"/> |
|||
</u-form-item> |
|||
<u-form-item label="库存数量" prop="stockQty" required class="disabled"> |
|||
<u-input v-model="form.stockQty" type="number" disabled placeholder="请输入库存数量" /> |
|||
</u-form-item> |
|||
<!-- <u-form-item label="剩余出库数量" prop="totalReception" required class="disabled"> |
|||
<u-input v-model="form1.totalReception" type="number" disabled placeholder="请输入出库数量" /> |
|||
</u-form-item> |
|||
<u-form-item label="出库数量" prop="qty" required> |
|||
<u-input v-model="form1.qty" type="number" placeholder="请输入出库数量" /> |
|||
</u-form-item> |
|||
<u-form-item label="描述" prop="describes"> |
|||
<u-input v-model="form1.describes" placeholder="请输入描述" /> |
|||
</u-form-item> --> |
|||
</u-form> |
|||
<view class="footer"> |
|||
<view class="btns"> |
|||
<button class="reset" @click="reset">重置</button> |
|||
<button class="sure" @click="submit" :loading='loading' :disabled='loading'>确定</button> |
|||
</view> |
|||
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { |
|||
onLoad |
|||
} from '@dcloudio/uni-app' |
|||
import { |
|||
ref, |
|||
getCurrentInstance |
|||
} from 'vue' |
|||
import * as outLocationApi from "@/api/outLocation" |
|||
import * as locationApi from "@/api/location" |
|||
const { proxy } = getCurrentInstance() |
|||
|
|||
const loading = ref(false) |
|||
const orderList = ref([])//订单信息 |
|||
// 备件弹窗 |
|||
const isPopupShow = ref(false) |
|||
const form = ref({ |
|||
id: '', |
|||
number: '', |
|||
stockQty:'', |
|||
qty:'', |
|||
receiver:'', |
|||
supplierName: '', |
|||
locationNumber: '', |
|||
itemName:'', |
|||
itemNumber:'', |
|||
subList: [] |
|||
}) |
|||
|
|||
const isShow = ref(false) |
|||
const isInAccount = ref('FALSE') |
|||
|
|||
const isFocus = ref(false) |
|||
const msg = ref('') |
|||
// 触发提交表单 |
|||
function submit() { |
|||
// 校验 |
|||
if (!form.value.locationNumber) { |
|||
proxy.$modal.showToast('请选择库位') |
|||
return; |
|||
} |
|||
if (!form.value.itemNumber) { |
|||
proxy.$modal.showToast('请选择备件') |
|||
return; |
|||
} |
|||
// 校验 |
|||
if (!form.value.qty) { |
|||
proxy.$modal.showToast('请选择出库数量') |
|||
return; |
|||
} |
|||
|
|||
if (Number(form.value.qty) <= 0) { |
|||
proxy.$modal.showToast('出库数量需大于0') |
|||
return; |
|||
} |
|||
if (Number(form.value.qty)>Number(form.value.stockQty)) { |
|||
proxy.$modal.showToast('出库数量不能大于库存数量') |
|||
return; |
|||
} |
|||
proxy.$modal.confirm('是否添加出库信息').then(() => { |
|||
proxy.$modal.loading('加载中') |
|||
loading.value = true |
|||
outLocationApi.outLocationCreat(form.value).then((res) => { |
|||
proxy.$modal.closeLoading() |
|||
if (res.data) { |
|||
proxy.$modal.showToast('添加成功') |
|||
setTimeout(() => { |
|||
proxy.$tab.navigateBack() |
|||
loading.value = false |
|||
}, 1500) |
|||
} else { |
|||
proxy.$modal.showToast('添加失败') |
|||
loading.value = false |
|||
} |
|||
}).catch(() => { |
|||
proxy.$modal.closeLoading() |
|||
loading.value = false |
|||
}) |
|||
}) |
|||
|
|||
} |
|||
// 重置 |
|||
function reset() { |
|||
form.value.locationNumber = '' |
|||
form.value.stockQty = '' |
|||
form.value.qty = '' |
|||
form.value.receiver = '' |
|||
form.value.itemName = '' |
|||
form.value.itemNumber = '' |
|||
} |
|||
// 根据库位编号查询备件信息以及库存 |
|||
async function getByLocationNumber() { |
|||
await outLocationApi.getByLocationNumber({ |
|||
locationNumber: form.value.locationNumber |
|||
// itemNumbers:itemNumbers || [] |
|||
}).then(res => { |
|||
if(!res.data.itemNumber){ |
|||
proxy.$modal.showToast('该库位下无备件信息') |
|||
return; |
|||
} |
|||
|
|||
form.value.itemName = res.data.itemName |
|||
form.value.itemNumber = res.data.itemNumber |
|||
form.value.stockQty = res.data.qty |
|||
|
|||
}).catch(() => { }) |
|||
} |
|||
// 打开弹窗 |
|||
function open() { |
|||
isPopupShow.value = true |
|||
isShow.value = false |
|||
isFocus.value = true |
|||
} |
|||
|
|||
function blur() { |
|||
if (form.value.locationNumber) { |
|||
getByLocationNumber(); |
|||
} |
|||
} |
|||
function handelScanMsg() { |
|||
getByLocationNumber |
|||
} |
|||
onLoad(async (option) => { |
|||
if (option.data && JSON.parse(decodeURIComponent(option.data)) && JSON.parse(decodeURIComponent(option |
|||
.data)).id) { |
|||
let formData = JSON.parse(decodeURIComponent(option.data)) |
|||
form.value.supplierName = formData.supplierName |
|||
form.value.number = formData.number |
|||
form.value.id = formData.id |
|||
} |
|||
//await getInLocationDetail() |
|||
}) |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.add-form-container { |
|||
min-height: calc(100vh - 140rpx); |
|||
background: white; |
|||
padding: 0px 0rpx 140rpx; |
|||
} |
|||
|
|||
.u-form-item { |
|||
padding: 20rpx 30rpx; |
|||
} |
|||
|
|||
.disabled { |
|||
background: #f5f5f5; |
|||
} |
|||
|
|||
.footer { |
|||
position: fixed; |
|||
bottom: 0px; |
|||
left: 0px; |
|||
width: 100%; |
|||
z-index: 22; |
|||
} |
|||
|
|||
.btns { |
|||
display: flex; |
|||
|
|||
|
|||
button { |
|||
flex: 1; |
|||
} |
|||
|
|||
.sure { |
|||
background: #409eff; |
|||
color: white; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border: 1px solid #409eff; |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
|
|||
.reset { |
|||
background: #F5F5F5; |
|||
border-radius: 0px; |
|||
|
|||
&::after { |
|||
border-radius: 0px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.right-button { |
|||
background: #409eff; |
|||
color: white; |
|||
padding: 0rpx 30rpx; |
|||
border-radius: 16rpx; |
|||
text-align: center; |
|||
font-size: 28rpx; |
|||
} |
|||
|
|||
.select { |
|||
display: flex; |
|||
align-items: center; |
|||
height: 72rpx; |
|||
width: 100%; |
|||
|
|||
.input { |
|||
flex: 1; |
|||
font-size: 28rpx; |
|||
color: #000000; |
|||
} |
|||
|
|||
.placeholder { |
|||
flex: 1; |
|||
font-size: 28rpx; |
|||
color: rgb(192, 196, 204); |
|||
|
|||
} |
|||
} |
|||
|
|||
.title { |
|||
padding: 32rpx 0rpx; |
|||
position: relative; |
|||
|
|||
span { |
|||
position: absolute; |
|||
left: -16rpx; |
|||
color: #fa3534; |
|||
top: 19px; |
|||
} |
|||
} |
|||
|
|||
.list { |
|||
padding: 0rpx 30rpx; |
|||
|
|||
.item { |
|||
display: flex; |
|||
margin-bottom: 20rpx; |
|||
|
|||
.item-box { |
|||
background: #F5F5F5; |
|||
border-radius: 12rpx; |
|||
flex: 1; |
|||
width: 0rpx; |
|||
} |
|||
|
|||
.spare-title { |
|||
padding: 20rpx 30rpx; |
|||
border-bottom: 1px solid #e4e4e4; |
|||
|
|||
.title-txt { |
|||
color: #409eff; |
|||
font-size: 30rpx; |
|||
font-weight: bold; |
|||
} |
|||
} |
|||
|
|||
.dec { |
|||
color: #9c9c9c; |
|||
padding: 20rpx 30rpx 20rpx; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
.add-btn { |
|||
display: flex; |
|||
justify-content: flex-start; |
|||
align-items: center; |
|||
} |
|||
|
|||
.popup-title { |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
font-weight: bold; |
|||
color: #409eff; |
|||
padding: 30rpx 30rpx 0px |
|||
} |
|||
|
|||
.popup { |
|||
width: 600rpx; |
|||
padding: 30rpx 0rpx 30rpx; |
|||
|
|||
} |
|||
|
|||
.popup-footer { |
|||
display: flex; |
|||
border-top: 1px solid #e4e4e4; |
|||
|
|||
view { |
|||
line-height: 100rpx; |
|||
flex: 1; |
|||
text-align: center; |
|||
|
|||
&.sure { |
|||
color: #409eff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
::v-deep .u-checkbox-group { |
|||
display: grid !important; |
|||
} |
|||
</style> |
Loading…
Reference in new issue