Browse Source

fix: 更新客户端访问路径 备件入库

master
宋国强 1 year ago
parent
commit
ce508cf808
  1. 4
      .env.production
  2. 5
      src/api/outLocation.ts
  3. 7
      src/api/sparePartsReturn.ts
  4. 7
      src/pages.json
  5. 257
      src/pages/inLocation/addForm.vue
  6. 557
      src/pages/inLocation/addForm1.vue
  7. 293
      src/pages/outLocation/addForm.vue
  8. 342
      src/pages/outLocation/addForm1.vue
  9. 110
      src/pages/sparePartsReturn/addForm.vue

4
.env.production

@ -1,2 +1,2 @@
VITE_BASE_URL=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.31:82/admin-api VITE_BASE_URL_IMAGE=http://10.230.41.60:82/api/admin-api

5
src/api/outLocation.ts

@ -17,6 +17,11 @@ export function outLocationCreat(data) {
return http.post('/eam/item/item-out-location/create',data) return http.post('/eam/item/item-out-location/create',data)
} }
// PDA出库新增
export function outLocationCreatPDA(data) {
return http.post('/eam/item/item-out-location/createPDA',data)
}
// 根据库位编码查询备件信息 // 根据库位编码查询备件信息
export const getByLocationNumber = async (params) => { export const getByLocationNumber = async (params) => {
return http.get('/eam/item/item-accounts/getByLocationNumber',{params}) return http.get('/eam/item/item-accounts/getByLocationNumber',{params})

7
src/api/sparePartsReturn.ts

@ -4,7 +4,12 @@ import http from './http'
// return http.post('/eam/item-apply-request-main/inOperation',data) // return http.post('/eam/item-apply-request-main/inOperation',data)
// } // }
// 归还 // PC归还
export function create(data) { export function create(data) {
return http.post('/eam/item/item-in-location/create',data) return http.post('/eam/item/item-in-location/create',data)
} }
// PDA归还
export function createPDA(data) {
return http.post('/eam/item/item-in-location/createPDA',data)
}

7
src/pages.json

@ -45,6 +45,13 @@
"navigationBarBackgroundColor": "#409eff", "navigationBarBackgroundColor": "#409eff",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
},{
"path": "pages/outLocation/addForm1",
"style": {
"navigationBarTitleText": "出库信息",
"navigationBarBackgroundColor": "#409eff",
"navigationBarTextStyle": "white"
}
}, { }, {
"path": "pages/scanCode/scanCode", "path": "pages/scanCode/scanCode",
"style": { "style": {

257
src/pages/inLocation/addForm.vue

@ -2,46 +2,84 @@
<!-- 添加维修工单 --> <!-- 添加维修工单 -->
<view class="add-form-container"> <view class="add-form-container">
<u-form :model="form" ref="formRef" label-width="160rpx"> <u-form :model="form" ref="formRef" label-width="160rpx">
<!-- <u-form-item label="归还人员" prop="reverterName" required> <!-- <u-form-item label="入库原因" prop="res" required>
<view class="select" @click="openSingleColumn('reverterId',form.reverterId,reverterUser)"> <u-input v-model="form.number" placeholder="请输入入库原因" />
<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> -->
<u-form-item label="归还人员" prop="returner"> <u-form-item label="归还人员" prop="returner">
<u-input v-model="form.returner" placeholder="请输入归还人"/> <u-input v-model="form.returner" placeholder="请输入归还人"/>
</u-form-item> </u-form-item>
<u-form-item label="库位" prop="locationNumber" required> </u-form>
<u-input v-model="form.locationNumber" placeholder="请输入库位" @blur="blur()" @confirm="handelScanMsg"/> <view class="list">
<view class="title">
<span>*</span>归还备件
</view>
<view class="item " v-for="(item,index) in form.itemNumbers" :key="index">
<view class="item-box">
<view class="spare-title">
<view class="title-txt">
库位编号{{item.locationNumber}}
</view>
</view>
<view class="spare-title">
<view class="title-txt">
备件编号{{item.itemNumber}}
</view>
</view>
<view class="spare-title">
<view class="title-txt">
备件名称{{item.itemName}}
</view>
</view>
<u-row gutter="16">
<u-col :span="24">
<view class="dec">
数量{{item.qty}}
</view>
</u-col>
</u-row>
</view>
<u-icon name="minus-circle" color="#aaaaaa" size="60" @click="delSpareParts(index)"></u-icon>
</view>
<view class="add-btn">
<u-button type="primary" @click="open"><u-icon name="plus-circle" color="#ffffff"
size="36"></u-icon>添加备件</u-button>
</view>
</view>
<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-popup v-model="isPopupShow" mode="center" border-radius="14">
<view class="popup-title">添加备件</view>
<scroll-view scroll-y="true" style="max-height:60vh;">
<view class="popup">
<u-form :model="form1" ref="form1Ref" label-width="160rpx">
<u-form-item label="库位编号" prop="locationNumber" required>
<u-input v-model="form1.locationNumber" placeholder="请输入库位编号" @blur="blur()" @confirm="handelScanMsg"/>
</u-form-item> </u-form-item>
<u-form-item label="备件编号" prop="itemNumber" required> <u-form-item label="备件编号" prop="itemNumber" required>
<u-input v-model="form.itemNumber" placeholder="请输入备件" disabled/> <u-input v-model="form1.itemNumber" placeholder="请输入备件" disabled/>
</u-form-item> </u-form-item>
<u-form-item label="备件名称" prop="itemNumber" required> <u-form-item label="备件名称" prop="itemNumber" required>
<u-input v-model="form.itemName" placeholder="根据备件编号获取" disabled /> <u-input v-model="form1.itemName" placeholder="根据备件编号获取" disabled />
</u-form-item> </u-form-item>
<u-form-item label="数量" prop="qty" required> <u-form-item label="数量" prop="qty" required>
<u-input v-model="form.qty" type="number" placeholder="请输入数量" /> <u-input v-model="form1.qty" type="number" placeholder="请输入数量" />
</u-form-item> </u-form-item>
<!-- <u-form-item label="描述" prop="describes" required>
<u-input v-model="form1.describes" placeholder="请输入描述" />
</u-form-item> -->
</u-form> </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>
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> </scroll-view>
<view class="popup-footer">
<view @click="isPopupShow = false">取消</view>
<view class="sure" @click="addSpare">确认</view>
</view> </view>
</u-popup>
<u-select v-model="singleColumnShow" mode="single-column" :default-value='singleColumnDefaultValue' <u-select v-model="singleColumnShow" mode="single-column" :default-value='singleColumnDefaultValue'
:list="singleColumnList" @confirm="chooseSingleColumn"></u-select> :list="singleColumnList" @confirm="chooseSingleColumn"></u-select>
</view> </view>
@ -59,7 +97,7 @@
import * as sparePartsReturnApi from "@/api/sparePartsReturn" import * as sparePartsReturnApi from "@/api/sparePartsReturn"
import * as sparePartsApi from "@/api/spareParts" import * as sparePartsApi from "@/api/spareParts"
import * as locationApi from "@/api/location" import * as locationApi from "@/api/location"
const isDisabled =ref(false);
const { proxy } = getCurrentInstance() const { proxy } = getCurrentInstance()
const loading = ref(false) const loading = ref(false)
// //
@ -92,27 +130,18 @@ const singleColumnShow = ref(false)
// //
function submit() { function submit() {
// //
// if (!form.value.reverterId) { // if (!form.value.returner) {
// proxy.$modal.showToast('') // proxy.$modal.showToast('')
// return; // return;
// } // }
if (form.value.itemNumber==''|| form.value.itemNumber==null) { if (form.value.itemNumbers.length === 0) {
proxy.$modal.showToast('请选择备件') proxy.$modal.showToast('请选择备件')
return; 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.confirm('是否归还备件').then(() => {
proxy.$modal.loading('加载中') proxy.$modal.loading('加载中')
loading.value = true loading.value = true
sparePartsReturnApi.create(form.value).then((res) => { sparePartsReturnApi.createPDA(form.value).then((res) => {
proxy.$modal.closeLoading() proxy.$modal.closeLoading()
if (res.data) { if (res.data) {
proxy.$modal.showToast('归还成功') proxy.$modal.showToast('归还成功')
@ -133,12 +162,13 @@ const singleColumnShow = ref(false)
} }
// //
function reset() { function reset() {
form.value.itemNumber='' if (form.value.id) {
form.value.itemName='' form.value.returner = '';
form.value.locationNumber='' form.value.itemNumbers = []
form.value.returner='' } else {
form.value.qty='' form.value.returner = '';
isShow.value= false form.value.itemNumbers = []
}
} }
function selectFormat(val, array) { function selectFormat(val, array) {
@ -190,6 +220,10 @@ const singleColumnShow = ref(false)
// //
function addSpare() { function addSpare() {
// //
if (!form1.value.locationNumber) {
proxy.$modal.showToast('请选择库位')
return;
}
if (!form1.value.itemNumber) { if (!form1.value.itemNumber) {
proxy.$modal.showToast('请选择备件') proxy.$modal.showToast('请选择备件')
return; return;
@ -202,24 +236,11 @@ const singleColumnShow = ref(false)
proxy.$modal.showToast('请选择库位') proxy.$modal.showToast('请选择库位')
return; return;
} }
if (!locationItem.value || locationItem.value.isInAccount === 'TRUE') {
proxy.$modal.showToast('该库位属于帐内库,请选择帐外库')
return;
}
if (itemNumber.value) {
proxy.$modal.showToast('该库位已绑定过其他备件')
return;
}
if (!form1.value.qty) { if (!form1.value.qty) {
proxy.$modal.showToast(`请输入数量`) proxy.$modal.showToast(`请输入数量`)
return; return;
} }
if (!form1.value.describes) {
proxy.$modal.showToast(`请输入描述`)
return;
}
if (form.value.itemNumbers && form.value.itemNumbers.length > 0) { if (form.value.itemNumbers && form.value.itemNumbers.length > 0) {
let arr =form.value.itemNumbers.filter(item => item.itemNumber == form1.value.itemNumber) let arr =form.value.itemNumbers.filter(item => item.itemNumber == form1.value.itemNumber)
if (arr && arr.length > 0) { if (arr && arr.length > 0) {
@ -238,36 +259,36 @@ const singleColumnShow = ref(false)
// //
function getLocation() { function getLocation() {
sparePartsApi.getByLocationNumber({ sparePartsApi.getByLocationNumber({
locationNumber: form.value.locationNumber locationNumber: form1.value.locationNumber
}).then(res => { }).then(res => {
if(!res.data){ if(!res.data){
if(res.msg){ if(res.msg){
proxy.$modal.showToast(res.msg) proxy.$modal.showToast(res.msg)
msg.value = res.msg msg.value = res.msg
form.value.locationNumber = '' form1.value.locationNumber = ''
}else{ }else{
form.value.locationNumber = '' form1.value.locationNumber = ''
proxy.$modal.showToast('找不到该库位') proxy.$modal.showToast('找不到该库位')
} }
return; return;
} }
if(res.data.locationNumber==null){ if(res.data.locationNumber==null){
proxy.$modal.showToast("找不到该库位") proxy.$modal.showToast("找不到该库位")
form.value.locationNumber = '' form1.value.locationNumber = ''
form.value.itemNumber = '' form1.value.itemNumber = ''
form.value.itemName = '' form1.value.itemName = ''
return; return;
} }
locationItem.value = res.data locationItem.value = res.data
// //
if (res.data.itemNumber !=null && res.data.itemNumber !='') {// if (res.data.itemNumber !=null && res.data.itemNumber !='') {//
form.value.itemNumber = res.data.itemNumber form1.value.itemNumber = res.data.itemNumber
form.value.itemName = res.data.itemName form1.value.itemName = res.data.itemName
}else{ }else{
form.value.locationNumber = '' form1.value.locationNumber = ''
form.value.itemNumber = '' form1.value.itemNumber = ''
form.value.itemName = '' form1.value.itemName = ''
proxy.$modal.showToast('该库位未绑定过备件') proxy.$modal.showToast('该库位未绑定过备件')
return return
} }
@ -276,7 +297,7 @@ const singleColumnShow = ref(false)
}) })
} }
function blur() { function blur() {
if (form.value.locationNumber) { if (form1.value.locationNumber) {
getLocation() getLocation()
} }
} }
@ -286,97 +307,45 @@ const singleColumnShow = ref(false)
} }
// //
function getSparePartsInfo() { function getSparePartsInfo() {
sparePartsApi.getByItemNumber({ sparePartsApi.getSparePartsReturnInfo({
itemNumber: form.value.itemNumber, number: form1.value.itemNumber,
}).then(res => { }).then(res => {
if(!res.data){ if(!res.data){
proxy.$modal.showToast(res.msg) proxy.$modal.showToast(res.msg)
msg.value = res.msg msg.value = res.msg
itemNumber.value = '' itemNumber.value = ''
form.value.areaNumber = '' form1.value.areaNumber = ''
form.value.locationNumber = ''; form1.value.locationNumber = '';
form.value.itemName = '' form1.value.itemName = ''
return;
}
if(res.data.itemName==null || res.data.itemName==''){
proxy.$modal.showToast("找不到该备件")
form.value.itemNumber = ''
form.value.locationNumber = '';
return; return;
} }
itemNumber.value = '' itemNumber.value = ''
form.value.itemName = res.data.itemName form1.value.itemName = res.data.itemName
if(res.data.locationNumber=='' || res.data.locationNumber==null){ form1.value.deliveryQty = res.data.deliveryQty
isShow.value =true form1.value.applyQty = res.data.applyQty
isDisabled.value = false //
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{ }else{
form.value.locationNumber = res.data.locationNumber form1.value.areaNumber = ''
isDisabled.value = true form1.value.locationNumber = ''
isShow.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)=>{ }).catch((err)=>{
msg.value = err.msg msg.value = err.msg
itemNumber.value = '' itemNumber.value = ''
form.value.areaNumber = '' form1.value.areaNumber = ''
form.value.itemName = '' form1.value.itemName = ''
form.value.applyQty = '' form1.value.applyQty = ''
form.value.deliveryQty = '' form1.value.deliveryQty = ''
locationList.value = []; 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() { function blur1() {
if (form.value.itemNumber) { if (form1.value.itemNumber) {
getSparePartsInfo() getSparePartsInfo()
} }
} }

557
src/pages/inLocation/addForm1.vue

@ -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>

293
src/pages/outLocation/addForm.vue

@ -1,43 +1,100 @@
<template> <template>
<!-- 添加出库信息 --> <!-- 添加维修工单 -->
<view class="add-form-container"> <view class="add-form-container">
<u-form :model="form" ref="formRef" label-width="160rpx"> <u-form :model="form" ref="formRef" label-width="160rpx">
<u-form-item label="领用人" class='disabled'> <u-form-item label="领用人" class='disabled'>
<u-input v-model="form.receiver" placeholder="请输入领用人" /> <u-input v-model="form.receiver" placeholder="请输入领用人" />
</u-form-item> </u-form-item>
</u-form>
<view class="list">
<view class="title">
<span>*</span>出库信息
</view>
<view class="item " v-for="(item,index) in form.itemNumbers" :key="index">
<view class="item-box">
<view class="spare-title">
<view class="title-txt">
备件名称{{item.itemName}}
</view>
</view>
<u-row gutter="16">
<u-col :span="24">
<view class="dec">
出库数量{{item.qty}}
</view>
</u-col>
<u-col :span="24">
<view class="dec">
申请数量{{item.applyQty}}
</view>
</u-col>
<u-col :span="24">
<view class="dec">
库位编码{{item.locationNumber}}
</view>
</u-col>
<!-- <u-col :span="24">
<view class="dec">
库位名称{{item.locationName}}
</view>
</u-col> -->
<u-col :span="24">
<view class="dec">
库位类型{{item.isInAccount == 'FALSE'?'帐外库' :'帐内库'}}
</view>
</u-col>
</u-row>
</view>
<u-icon name="minus-circle" color="#aaaaaa" size="60" @click="delSpareParts(item,index)"></u-icon>
</view>
<view class="add-btn">
<u-button type="primary" @click="open"><u-icon name="plus-circle" color="#ffffff"
size="36"></u-icon>添加备件</u-button>
</view>
</view>
<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-popup v-model="isPopupShow" mode="center" border-radius="14">
<view class="popup-title">添加备件</view>
<scroll-view scroll-y="true" style="max-height:60vh;">
<view class="popup">
<u-form :model="form1" ref="form1Ref" label-width="180rpx">
<u-form-item label="库位" prop="locationNumber" required> <u-form-item label="库位" prop="locationNumber" required>
<u-input v-model="form.locationNumber" placeholder="请输入库位" @blur="blur()" <u-input v-model="form1.locationNumber" placeholder="请输入库位" @blur="blur()"
@confirm="handelScanMsg" :focus='isFocus' /> @confirm="handelScanMsg" :focus='isFocus' />
</u-form-item> </u-form-item>
<u-form-item label="备件名称" prop="itemName" required class="disabled"> <u-form-item :label="`备件编号`" prop="itemNumber" required class="disabled">
<u-input v-model="form.itemName" disabled placeholder="请输入备件名称"/> <view class="select">
</u-form-item> <u-input v-model="form1.itemNumber" placeholder="请选择备件" disabled />
<u-form-item label="备件编码" prop="itemNumber" required class="disabled"> </view>
<u-input v-model="form.itemNumber" disabled placeholder="请输入备件编号" />
</u-form-item> </u-form-item>
<u-form-item label="出库数量" prop="qty" required class="disabled"> <u-form-item :label="`备件名称`" prop="itemNumber" required class="disabled">
<u-input v-model="form.qty" type="number" placeholder="请输入出库数量"/> <view class="select">
<u-input v-model="form1.itemName" placeholder="请选择备件" disabled />
</view>
</u-form-item> </u-form-item>
<u-form-item label="库存数量" prop="stockQty" required class="disabled"> <u-form-item label="库存数量" prop="stockQty" required class="disabled">
<u-input v-model="form.stockQty" type="number" disabled placeholder="请输入库存数量" /> <u-input v-model="form1.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>
<u-form-item label="出库数量" prop="qty" required> <u-form-item label="出库数量" prop="qty" required>
<u-input v-model="form1.qty" type="number" placeholder="请输入出库数量" /> <u-input v-model="form1.qty" type="number" placeholder="请输入出库数量" />
</u-form-item> </u-form-item>
<u-form-item label="描述" prop="describes">
<u-input v-model="form1.describes" placeholder="请输入描述" />
</u-form-item> -->
</u-form> </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>
<view style="height: constant(safe-area-inset-bottom); height: env(safe-area-inset-bottom);"></view> </scroll-view>
<view class="popup-footer">
<view @click="isPopupShow = false">取消</view>
<view class="sure" @click="addSpare">确认</view>
</view> </view>
</u-popup>
</view> </view>
</template> </template>
@ -60,16 +117,20 @@
const form = ref({ const form = ref({
id: '', id: '',
number: '', number: '',
stockQty:'',
qty:'',
receiver:'',
supplierName: '', supplierName: '',
locationNumber: '', itemNumbers: [],
itemName:'',
itemNumber:'',
subList: [] subList: []
}) })
const form1 = ref({
itemNumber: "",
itemName: '',
locationNumber: '',
applyQty: '',
receiveQty: '',
stockQty: '',
totalReception:'',
qty: ''
})
const isShow = ref(false) const isShow = ref(false)
const isInAccount = ref('FALSE') const isInAccount = ref('FALSE')
@ -77,33 +138,14 @@
const msg = ref('') const msg = ref('')
// //
function submit() { function submit() {
// if (form.value.itemNumbers.length === 0) {
if (!form.value.locationNumber) { proxy.$modal.showToast('请添加出库信息')
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; return;
} }
proxy.$modal.confirm('是否添加出库信息').then(() => { proxy.$modal.confirm('是否添加出库信息').then(() => {
proxy.$modal.loading('加载中') proxy.$modal.loading('加载中')
loading.value = true loading.value = true
outLocationApi.outLocationCreat(form.value).then((res) => { outLocationApi.outLocationCreatPDA(form.value).then((res) => {
proxy.$modal.closeLoading() proxy.$modal.closeLoading()
if (res.data) { if (res.data) {
proxy.$modal.showToast('添加成功') proxy.$modal.showToast('添加成功')
@ -124,44 +166,155 @@
} }
// //
function reset() { function reset() {
form.value.locationNumber = '' form.value.itemNumbers = []
form.value.stockQty = '' }
form.value.qty = '' //
form.value.receiver = '' async function getInLocationDetail() {
form.value.itemName = '' // let itemNumbers = form.value.itemNumbers.map(item=>{
form.value.itemNumber = '' // return {
// itemNumber:item.itemNumber,
// qty:item.qty,
// locationNumber:item.locationNumber,
// }
// })
await outLocationApi.getOutLocationDetail({
id: form.value.id,
number: form.value.number,
// itemNumbers:itemNumbers || []
}).then(res => {
form.value.applyName = res.data.applyName
form.value.approveName = res.data.approveName
form.value.applyDeptName = res.data.applyDeptName
form.value.subList = res.data.subList
}).catch(() => { })
}
//
function open() {
form1.value = {
itemNumber: "",
itemName: '',
locationNumber: '',
applyQty: '',
receiveQty: '',
stockQty: '',
qty: ''
}
isPopupShow.value = true
isShow.value = false
isFocus.value = true
}
//
function addSpare() {
//
if (!form1.value.locationNumber) {
proxy.$modal.showToast('请选择库位')
return;
}
if (!form1.value.itemNumber) {
proxy.$modal.showToast(msg.value)
return;
}
if (!form1.value.qty) {
proxy.$modal.showToast(`请输入数量`)
return;
}
if (Number(form1.value.qty) > Number(form1.value.stockQty)) {
proxy.$modal.showToast('出库数量不可大于库存数量')
return;
}
if (form.value.itemNumbers && form.value.itemNumbers.length > 0) {
let arr = form.value.itemNumbers.filter(item => item.locationNumber == form1.value.locationNumber)
if (arr && arr.length > 0) {
proxy.$modal.showToast('该库位已添加')
return;
}
}
form.value.itemNumbers.push(form1.value)
isPopupShow.value = false
}
//
function delSpareParts(item,index) {
let bol = form.value.itemNumbers.some(cur=>cur.itemNumber == item.itemNumber&&item.isInAccount == 'FALSE'&&cur.isInAccount == 'TRUE')
if(bol){
proxy.$modal.showToast('请先删除该备件得帐内库')
return;
}
form.value.itemNumbers.splice(index, 1)
}
function getLocation() {
let itemNumbers = form.value.itemNumbers.map(item=>{
return {
itemNumber:item.itemNumber,
qty:item.qty,
locationNumber:item.locationNumber,
}
})
locationApi.getOutLocation({
number: form1.value.locationNumber,
id: form.value.id,
itemNumbers:itemNumbers
}).then(res => {
if (!res.data) {
msg.value = res.msg
form1.value.areaNumber = '';
form1.value.itemName = '';
form1.value.itemNumber = '';
form1.value.receiveQty ='';
form1.value.applyQty ='';
form1.value.stockQty = '';
form1.value.totalReception ='';
form1.value.isInAccount ='';
isInAccount.value ='';
return;
}
form1.value.areaNumber = res.data.areaNumber;
form1.value.itemName = res.data.itemName;
form1.value.itemNumber = res.data.itemNumber;
form1.value.receiveQty = res.data.receiveQty || 0;
form1.value.applyQty = res.data.applyQty || 0;
form1.value.stockQty = res.data.qty || 0;
form1.value.totalReception = res.data.totalReception || 0;
form1.value.isInAccount = res.data.isInAccount;
isInAccount.value = res.data.isInAccount || ''
// this.itemNumber = res.data.itemNumber || ''
}).catch((error) => {
msg.value = error.msg
form1.value.areaNumber = '';
form1.value.itemName = '';
form1.value.itemNumber = '';
form1.value.receiveQty = '';
form1.value.applyQty = '';
form1.value.stockQty = '';
isInAccount.value = '';
})
} }
// //
async function getByLocationNumber() { async function getByLocationNumber() {
await outLocationApi.getByLocationNumber({ await outLocationApi.getByLocationNumber({
locationNumber: form.value.locationNumber locationNumber: form1.value.locationNumber
// itemNumbers:itemNumbers || [] // itemNumbers:itemNumbers || []
}).then(res => { }).then(res => {
if(!res.data.itemNumber){ if(!res.data.itemNumber){
proxy.$modal.showToast('该库位下无备件信息') proxy.$modal.showToast('该库位下无备件信息')
return; return;
} }
form1.value.itemName = res.data.itemName
form.value.itemName = res.data.itemName form1.value.itemNumber = res.data.itemNumber
form.value.itemNumber = res.data.itemNumber form1.value.stockQty = res.data.qty
form.value.stockQty = res.data.qty
}).catch(() => { }) }).catch(() => { })
} }
//
function open() {
isPopupShow.value = true
isShow.value = false
isFocus.value = true
}
function blur() { function blur() {
if (form.value.locationNumber) { if (form1.value.locationNumber) {
getByLocationNumber(); getByLocationNumber();
} }
} }
function handelScanMsg() { function handelScanMsg() {
getByLocationNumber getLocation()
} }
onLoad(async (option) => { onLoad(async (option) => {
if (option.data && JSON.parse(decodeURIComponent(option.data)) && JSON.parse(decodeURIComponent(option if (option.data && JSON.parse(decodeURIComponent(option.data)) && JSON.parse(decodeURIComponent(option

342
src/pages/outLocation/addForm1.vue

@ -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>

110
src/pages/sparePartsReturn/addForm.vue

@ -6,16 +6,8 @@
<u-input v-model="form.number" placeholder="请输入入库原因" /> <u-input v-model="form.number" placeholder="请输入入库原因" />
</u-form-item> --> </u-form-item> -->
<u-form-item label="归还人员" prop="reverterName" required> <u-form-item label="归还人员" prop="returner">
<view class="select" @click="openSingleColumn('reverterId',form.reverterId,reverterUser)"> <u-input v-model="form.returner" placeholder="请输入归还人"/>
<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>
</u-form> </u-form>
<view class="list"> <view class="list">
@ -24,6 +16,16 @@
</view> </view>
<view class="item " v-for="(item,index) in form.itemNumbers" :key="index"> <view class="item " v-for="(item,index) in form.itemNumbers" :key="index">
<view class="item-box"> <view class="item-box">
<view class="spare-title">
<view class="title-txt">
库位编号{{item.locationNumber}}
</view>
</view>
<view class="spare-title">
<view class="title-txt">
备件编号{{item.itemNumber}}
</view>
</view>
<view class="spare-title"> <view class="spare-title">
<view class="title-txt"> <view class="title-txt">
备件名称{{item.itemName}} 备件名称{{item.itemName}}
@ -57,28 +59,19 @@
<scroll-view scroll-y="true" style="max-height:60vh;"> <scroll-view scroll-y="true" style="max-height:60vh;">
<view class="popup"> <view class="popup">
<u-form :model="form1" ref="form1Ref" label-width="160rpx"> <u-form :model="form1" ref="form1Ref" label-width="160rpx">
<u-form-item :label="`备件编号`" prop="itemNumber" required> <u-form-item label="库位编号" prop="locationNumber" required>
<view class="select"> <u-input v-model="form1.locationNumber" placeholder="请输入库位编号" @blur="blur()" @confirm="handelScanMsg"/>
<u-input v-model="form1.itemNumber" placeholder="请输入备件" @blur='blur1()' @confirm="handelScanMsg1" :focus='isFocus'/>
</view>
</u-form-item> </u-form-item>
<u-form-item :label="`备件名称`" prop="itemNumber" required class="disabled"> <u-form-item label="备件编号" prop="itemNumber" required>
<view class="select"> <u-input v-model="form1.itemNumber" placeholder="请输入备件" disabled/>
<u-input v-model="form1.itemName" placeholder="根据备件编号获取" disabled />
</view>
</u-form-item> </u-form-item>
<u-form-item label="库位" prop="locationNumber" required v-if="isShow"> <u-form-item label="备件名称" prop="itemNumber" required>
<u-input v-model="form1.locationNumber" placeholder="请输入库位" @blur="blur()" @confirm="handelScanMsg"/> <u-input v-model="form1.itemName" placeholder="根据备件编号获取" disabled />
<view class="right-button" @click="chickRightButton">
扫描
</view>
</u-form-item> </u-form-item>
<u-form-item label="数量" prop="qty" required> <u-form-item label="数量" prop="qty" required>
<u-input v-model="form1.qty" type="number" placeholder="请输入数量" /> <u-input v-model="form1.qty" type="number" placeholder="请输入数量" />
</u-form-item> </u-form-item>
<u-form-item label="描述" prop="describes" required>
<u-input v-model="form1.describes" placeholder="请输入描述" />
</u-form-item>
</u-form> </u-form>
</view> </view>
</scroll-view> </scroll-view>
@ -137,10 +130,10 @@ const singleColumnShow = ref(false)
// //
function submit() { function submit() {
// //
if (!form.value.reverterId) { // if (!form.value.returner) {
proxy.$modal.showToast('请选择归还人员') // proxy.$modal.showToast('')
return; // return;
} // }
if (form.value.itemNumbers.length === 0) { if (form.value.itemNumbers.length === 0) {
proxy.$modal.showToast('请选择备件') proxy.$modal.showToast('请选择备件')
return; return;
@ -148,7 +141,7 @@ const singleColumnShow = ref(false)
proxy.$modal.confirm('是否归还备件').then(() => { proxy.$modal.confirm('是否归还备件').then(() => {
proxy.$modal.loading('加载中') proxy.$modal.loading('加载中')
loading.value = true loading.value = true
sparePartsReturnApi.sparePartsReturn(form.value).then((res) => { sparePartsReturnApi.createPDA(form.value).then((res) => {
proxy.$modal.closeLoading() proxy.$modal.closeLoading()
if (res.data) { if (res.data) {
proxy.$modal.showToast('归还成功') proxy.$modal.showToast('归还成功')
@ -170,10 +163,10 @@ const singleColumnShow = ref(false)
// //
function reset() { function reset() {
if (form.value.id) { if (form.value.id) {
form.value.reverterId = ''; form.value.returner = '';
form.value.itemNumbers = [] form.value.itemNumbers = []
} else { } else {
form.value.reverterId = ''; form.value.returner = '';
form.value.itemNumbers = [] form.value.itemNumbers = []
} }
} }
@ -227,6 +220,10 @@ const singleColumnShow = ref(false)
// //
function addSpare() { function addSpare() {
// //
if (!form1.value.locationNumber) {
proxy.$modal.showToast('请选择库位')
return;
}
if (!form1.value.itemNumber) { if (!form1.value.itemNumber) {
proxy.$modal.showToast('请选择备件') proxy.$modal.showToast('请选择备件')
return; return;
@ -239,24 +236,11 @@ const singleColumnShow = ref(false)
proxy.$modal.showToast('请选择库位') proxy.$modal.showToast('请选择库位')
return; return;
} }
if (!locationItem.value || locationItem.value.isInAccount === 'TRUE') {
proxy.$modal.showToast('该库位属于帐内库,请选择帐外库')
return;
}
if (itemNumber.value) {
proxy.$modal.showToast('该库位已绑定过其他备件')
return;
}
if (!form1.value.qty) { if (!form1.value.qty) {
proxy.$modal.showToast(`请输入数量`) proxy.$modal.showToast(`请输入数量`)
return; return;
} }
if (!form1.value.describes) {
proxy.$modal.showToast(`请输入描述`)
return;
}
if (form.value.itemNumbers && form.value.itemNumbers.length > 0) { if (form.value.itemNumbers && form.value.itemNumbers.length > 0) {
let arr =form.value.itemNumbers.filter(item => item.itemNumber == form1.value.itemNumber) let arr =form.value.itemNumbers.filter(item => item.itemNumber == form1.value.itemNumber)
if (arr && arr.length > 0) { if (arr && arr.length > 0) {
@ -272,29 +256,41 @@ const singleColumnShow = ref(false)
function delSpareParts(index) { function delSpareParts(index) {
form.value.itemNumbers.splice(index, 1) form.value.itemNumbers.splice(index, 1)
} }
//
function getLocation() { function getLocation() {
locationApi.getLocation(form1.value.locationNumber).then(res => { sparePartsApi.getByLocationNumber({
locationNumber: form1.value.locationNumber
}).then(res => {
if(!res.data){ if(!res.data){
if(res.msg){ if(res.msg){
proxy.$modal.showToast(res.msg) proxy.$modal.showToast(res.msg)
msg.value = res.msg msg.value = res.msg
form1.value.locationNumber = ''
}else{ }else{
form1.value.locationNumber = ''
proxy.$modal.showToast('找不到该库位') proxy.$modal.showToast('找不到该库位')
} }
return; return;
} }
if(res.data.locationNumber==null){
proxy.$modal.showToast("找不到该库位")
form1.value.locationNumber = ''
form1.value.itemNumber = ''
form1.value.itemName = ''
return;
}
locationItem.value = res.data locationItem.value = res.data
form1.value.areaNumber = locationItem.value.areaNumber
// //
if (form.value.itemNumbers && form.value.itemNumbers.length > 0) { if (res.data.itemNumber !=null && res.data.itemNumber !='') {//
let arr = form.value.itemNumbers.filter(item => item.locationNumber == form1.value.locationNumber) form1.value.itemNumber = res.data.itemNumber
if (arr && arr.length > 0) { form1.value.itemName = res.data.itemName
itemNumber.value = 1
}else{
itemNumber.value = res.data.itemNumber || ''
}
}else{ }else{
itemNumber.value = res.data.itemNumber || '' form1.value.locationNumber = ''
form1.value.itemNumber = ''
form1.value.itemName = ''
proxy.$modal.showToast('该库位未绑定过备件')
return
} }
}).catch(()=>{ }).catch(()=>{

Loading…
Cancel
Save