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.
 
 
 
 
 
 

239 lines
6.7 KiB

<!-- 这个文件是虚拟列表中的实际cell -->
<template>
<view class="item">
<uni-swipe-action>
<uni-swipe-action-item :right-options="options" :auto-close="false" @click="swipeClick($event,item)">
<view class="detail-content common_card">
<view class="choose_main">
<view class="ljh_box">
<view class="ljh_info">
<view class="tit_ljh">{{index+1+'.'+item.itemCode }}</view>
<view class="label_xm font_sm fr">{{ item.packingCode }}</view>
</view>
<view class="desc_card uni-flex space-between">
<view class="desc_ljh">
<view class="font_xs text_lightblue"> {{ item.itemName }}</view>
<view class="font_xs text_lightblue">{{ item.itemDesc1 }}
</view>
</view>
</view>
</view>
<view class="list_form">
<view>
<uni-table style="overflow-x: hidden; ">
<uni-tr>
<uni-th width="100"></uni-th>
<uni-th width="100" align="center">库存</uni-th>
<uni-th width="100" align="center">盘点</uni-th>
</uni-tr>
<uni-tr>
<uni-th width="100">数量({{item.uom}})</uni-th>
<uni-th width="100" align="center">
<text class="text_black">{{item.inventoryQty}}</text>
</uni-th>
<uni-th width="100" align="center">
<view class="flex" style="align-items: center;justify-content: center;"
v-if="item.scaned && item.packingCode">
<text class="text_black">{{item.countQty}} </text>
<view class="photo_btn fr" @click="openEditCount(item)">
<text class="fl font_xs">修改</text>
</view>
</view>
<view class="flex" style=" align-items: center;justify-content: center;"
v-if="item.packingCode==''">
<text class="text_black">{{item.countQty}} </text>
<view class="photo_btn fr" @click="openEditCount(item)">
<text class="fl font_xs">修改</text>
</view>
</view>
<view class="" v-else-if="!item.scaned">
<text class="text_black">{{item.countQty}}</text>
</view>
</uni-th>
</uni-tr>
</uni-table>
</view>
</view>
<view style="margin:0 20rpx 20rpx;">
<view class="uni-flex uni-row bot_card">
<view class="bot_card_item">
<label class="icon_bg icon_bg_kw" style="text-align: center;">
<text
style=" display: block; color: white;text-align: center;font-size: 28rpx;">库</text>
</label>
<text>{{ item.locationCode }}</text>
</view>
<view class="bot_card_item">
<label class="icon_bg icon_bg_pc">
<text
style=" display: block; color: white;text-align: center;font-size: 28rpx;">批</text>
</label>
<text>{{item.lot}}</text>
</view>
<view class="bot_card_item" style="width: 25%;">
<view class="uni-flex" v-if="item.isNew ">
<!-- picker的index默认是0 -->
<picker picker @change="bindPickerChange($event,item)" :value="item.status-1"
:range="statusArray">
<view class="uni-flex " style="padding:5px 0px;">
<text class="state_point"
:class="statusStyle(item.status)">{{statusArray[item.status-1]}}</text>
<image class="icon_normal" src="@/static/icons_ui/icon_down.svg">
</image>
</view>
</picker>
</view>
<text v-else class="state_point" :class=" statusStyle(item.status)">
{{ statusColor(item.status )}}
</text>
</view>
</view>
</view>
</view>
<view class="uni-flex space-between" style="margin:0 20rpx 20rpx;"
v-if="item.scaned || item.packingCode==''">
<text class="font_xs"
style="padding: 5px 2px; text-overflow: ellipsis; overflow: hidden;">{{item.countDescription}}</text>
<view class="photo_btn fr" @click="openEditCountDesc(item)">
<text class="fl font_xs" style="width:65px;">盘点描述</text>
</view>
</view>
<view v-if="item.scaned" class="choose_marked_count"
style="background-color: #5FCB94; opacity: 0.65">
<view class="" style="background-color: #5FCB94; width: 200rpx;height: 300rpx;">
</view>
</view>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</template>
<script>
import {
getInventoryStatusDesc,
getInventoryTypeStyle
} from '@/common/basic.js';
export default {
name: "virtual-list-test-cell",
props: {
item: null,
index: 0,
extraData: null
},
data() {
return {
type: '',
id: '',
datacontent: {},
details: [],
allDetails: [], //所以的明细
currentItem: {},
editDescItem: {},
editCountItem: {},
scrollTop: 0,
old: {
scrollTop: 0
},
scanResult: {},
allCount: 0,
newCount: 0,
scanCount: 0,
options: [{
text: '移除',
style: {
backgroundColor: '#F56C6C'
}
}],
location: null,
topItem: '',
isShowScanPopup: false,
statusArray: [],
allStatusArray: [],
ipage: 1,
iSize: 20,
testList: [],
};
},
methods: {
titleClick(title) {
//如果要把点击事件传给页面,可以通过给extraData中添加对应的函数,然后在当前组件中触发这个函数,在页面中监听即可
//注意,微信小程序中无法通过props传递事件,在微信小程序中可以使用uni.$emit、uni.$on代替
// if (this.extraData.titleClickedCallback) {
// this.extraData.titleClickedCallback(title);
// }
},
openEditCount(item) {
this.$emit("openEditCount")
},
openEditCountDesc(item) {
this.$emit("openEditCountDesc")
},
statusColor(val) {
return getInventoryStatusDesc(val);
},
statusStyle(val) {
return getInventoryTypeStyle(val);
},
}
}
</script>
<style scoped>
.item {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 30rpx;
}
.item-content {
flex: 1;
margin-left: 20rpx;
}
.header {
background-color: red;
font-size: 24rpx;
text-align: center;
padding: 20rpx 0rpx;
color: white;
}
.item-image {
height: 150rpx;
width: 150rpx;
background-color: #eeeeee;
border-radius: 10rpx;
}
.item-title {
background-color: red;
color: white;
font-size: 26rpx;
border-radius: 5rpx;
padding: 5rpx 10rpx;
}
.item-detail {
margin-top: 10rpx;
border-radius: 10rpx;
font-size: 28rpx;
color: #aaaaaa;
word-break: break-all;
}
.item-line {
position: absolute;
bottom: 0rpx;
left: 0rpx;
height: 1px;
width: 100%;
background-color: #eeeeee;
}
</style>