You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
4.7 KiB
203 lines
4.7 KiB
<style lang="scss">
|
|
.container{
|
|
height:100%;
|
|
background:#f6f6f6;
|
|
|
|
scroll-view{
|
|
flex-grow: 1;
|
|
height:1rpx;
|
|
.card{
|
|
margin-top:0;
|
|
.head{
|
|
display:flex;
|
|
align-items: center;
|
|
margin-bottom:20rpx;
|
|
text{
|
|
&.type{
|
|
flex-shrink: 0;
|
|
color:#fff;
|
|
font-size:20rpx;
|
|
border-radius: 0px 20rpx 0px 20rpx;
|
|
background:#10C176;
|
|
width:80rpx;
|
|
height:40rpx;
|
|
text-align: center;
|
|
line-height: 40rpx;
|
|
margin-right:10rpx;
|
|
}
|
|
&.name{
|
|
font-weight: bold;
|
|
margin-right:20rpx;
|
|
}
|
|
&.spec{
|
|
color:#999;
|
|
font-size:22rpx;
|
|
}
|
|
&.XP-youbian{
|
|
margin-left:auto;
|
|
}
|
|
}
|
|
}
|
|
.item{
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
text{
|
|
font-size:24rpx;
|
|
&:first-child{
|
|
color:#999;
|
|
display: flex;
|
|
align-items: center;
|
|
&:before{
|
|
color:#10C176;
|
|
font-size:35rpx;
|
|
margin-right:6rpx;
|
|
}
|
|
}
|
|
&.amount{
|
|
font-size:40rpx;
|
|
font-weight: bold;
|
|
&:after{
|
|
content:attr(data-unit);
|
|
font-size: 28rpx;
|
|
font-weight: normal;
|
|
}
|
|
}
|
|
&.surplus{
|
|
color:#F8A41A;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
&>.u-popup{
|
|
flex: 0;
|
|
&/deep/ .u-transition{
|
|
z-index: 10069!important;
|
|
}
|
|
&/deep/ .u-modal__content{
|
|
padding:25rpx 20rpx!important;
|
|
input{
|
|
width:100%;
|
|
border: 1rpx solid rgba(153, 153, 153, 0.3);
|
|
border-radius: 10rpx;
|
|
font-size:24rpx;
|
|
height:60rpx;
|
|
padding:0 20rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
<template>
|
|
<view class="container flex">
|
|
<d-search v-model="searchVal.search" @search="search()"/>
|
|
|
|
<scroll-view scroll-y>
|
|
<block v-if="!loading">
|
|
<view class="card" v-for="(v,k) in comList" :key="k" @click="toSpecs(v)">
|
|
<view class="head">
|
|
<text class="type">{{v.goodsType}}</text>
|
|
<text class="name over">{{v.substanceName}}</text>
|
|
</view>
|
|
<view class="item">
|
|
<text class="over PA-hebing">入库编号:{{v.inOutBatchNo}}</text> <text class="amount" :data-unit="v.unit">{{v.equivalentAmount}}</text>
|
|
</view>
|
|
<view class="item">
|
|
<text class="PA-path1">入库日期:{{v.operateTime}}</text> <text class="surplus">剩余:{{v.surplus}}{{v.unit||v.specs[1]}}</text>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
<u-empty v-else-if="comList.length==0||loading" text="未查询到相关信息" width="70%" icon="/static/noData.png"/>
|
|
<view style="border:0.5rpx solid transparent"/>
|
|
</scroll-view>
|
|
|
|
<u-toast ref="toast"/>
|
|
<u-modal :show="!!detail" @close="detail=null" @cancel="detail=null" showCancelButton closeOnClickOverlay @confirm="confirm">
|
|
<input v-if="!!detail" placeholder="请输入数量" type="digit" v-model="detail.inputTotal"/>
|
|
</u-modal>
|
|
</view>
|
|
</template>
|
|
<script>
|
|
import request from '@/common/request'
|
|
export default {
|
|
data(){
|
|
return{
|
|
searchVal:{
|
|
baseId: this.$store.state.baseInfo.id,
|
|
pageNo:1,
|
|
flagGroupBy:'y',
|
|
pageSize:50,
|
|
search:"",
|
|
},
|
|
loading:true,
|
|
list:[],
|
|
saveList:[],
|
|
detail:null,
|
|
total:0,
|
|
eventChannel:null,
|
|
}
|
|
},
|
|
computed:{
|
|
comList(){
|
|
return this.saveList.concat(this.list.filter(v=>!this.saveList.some(i=>i.id==v.id)))
|
|
},
|
|
},
|
|
onLoad(){
|
|
this.eventChannel=this.getOpenerEventChannel()
|
|
this.eventChannel.on("list", e=>this.saveList=e)
|
|
this.search()
|
|
},
|
|
methods:{
|
|
async search(){
|
|
this.loading=true
|
|
var res=await request("/api/Inventory/queryCollectingList",{
|
|
method:"post",
|
|
body: this.searchVal
|
|
})
|
|
this.loading=false
|
|
if(res.statu){
|
|
this.list=res.data.records.map(v=>({
|
|
...v,
|
|
unitNum:parseFloat(v.specDescribe.match(/^[\d\.]+/)?.[0]||0),
|
|
}))
|
|
}else{
|
|
uni.showModal({
|
|
title:"提示",
|
|
content:res.msg||"获取领用农资失败!",
|
|
showCancel:false,
|
|
})
|
|
}
|
|
},
|
|
toSpecs(e){
|
|
this.detail={
|
|
goodsType: e.goodsType,
|
|
inputTotal:'',
|
|
inOutId: e.id,
|
|
surplus:e.surplus,
|
|
specificationId: e.specificationId||e.specId,
|
|
specs: e.specs||(e.specDescribe.match(/(\d+)(.+?)\/(.+?)/)||[]).slice(1,4),
|
|
substanceName: e.substanceName,
|
|
}
|
|
},
|
|
confirm(){
|
|
if(!(parseFloat(this.detail.inputTotal))){
|
|
this.$refs.toast.show({
|
|
type:"error",
|
|
icon:false,
|
|
message:"请输入数量!",
|
|
})
|
|
}else if(parseFloat(this.detail.inputTotal)>this.detail.surplus){
|
|
this.$refs.toast.show({
|
|
type:"error",
|
|
icon:false,
|
|
message:"输入数量不能大于剩余数量!",
|
|
})
|
|
}else{
|
|
this.eventChannel.emit("addSpecs", {...this.detail, inputTotal:parseFloat(this.detail.inputTotal)})
|
|
uni.navigateBack()
|
|
}
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|