|
@@ -16,7 +16,7 @@
|
|
|
<view class="input">
|
|
|
<u-search
|
|
|
v-model="keyword"
|
|
|
- @change="$u.debounce(getSearchCon, 800)"
|
|
|
+ @change="getSearchCon"
|
|
|
@search="getSearchCon"
|
|
|
@custom="getSearchCon"
|
|
|
@clear="clearSearch"
|
|
@@ -37,10 +37,14 @@
|
|
|
<view class="f-left">
|
|
|
<u-checkbox size="40" @change="allCheckeChange" v-model="allChecked" shape="circle">{{allChecked?'取消全选':'全选'}}</u-checkbox>
|
|
|
</view>
|
|
|
- <view class="f-mid">
|
|
|
+ <view class="f-mid u-flex">
|
|
|
<view v-if="totalCategory">
|
|
|
已选<text>{{totalCategory}}</text>款产品
|
|
|
</view>
|
|
|
+ <view class="f-seeInfo" @click="isDetailShow=true" v-if="totalCategory">
|
|
|
+ 查看详情
|
|
|
+ <u-icon name="arrow-up" color="#999" size="28"></u-icon>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
<view class="f-btns">
|
|
|
<u-button size="medium" @click="submitOrder" :custom-style="customBtnStyle" shape="circle" type="primary" hover-class="none" >确定选择</u-button>
|
|
@@ -61,6 +65,64 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</u-popup>
|
|
|
+ <!-- 详情弹窗 -->
|
|
|
+ <u-popup v-model="isDetailShow" mode="bottom" height="800" border-radius="25">
|
|
|
+ <view class="head u-flex u-row-between">
|
|
|
+ <text>已选产品</text>
|
|
|
+ <text @click="clearChoose">清空列表</text>
|
|
|
+ </view>
|
|
|
+ <scroll-view scroll-y class="scroll-view" v-if="chooseList.length>0">
|
|
|
+ <view class="partList-list-box" v-for="(item,index) in chooseList" :key="item.id">
|
|
|
+ <view class="product flex align_center">
|
|
|
+ <view class="uni-col-1" @click="delDetail(item,index)">
|
|
|
+ <u-icon name="close-circle" color="#999" size="35"></u-icon>
|
|
|
+ </view>
|
|
|
+ <view class="flex flex_1">
|
|
|
+ <view class="pimgs">
|
|
|
+ <u-image :src="item.productImageUrl?item.productImageUrl:`../../static/${$config('themePath')}/def_img@2x.png`" width="120" height="120" border-radius="10"></u-image>
|
|
|
+ </view>
|
|
|
+ <view class="pinfo">
|
|
|
+ <view class="pname item-name">
|
|
|
+ <text>{{item.shelfPlaceCode}}</text>
|
|
|
+ {{item.productCode}}
|
|
|
+ </view>
|
|
|
+ <view class="productName u-line-2">
|
|
|
+ {{item.productName}}
|
|
|
+ </view>
|
|
|
+ <view class="ptxt flex align_center">
|
|
|
+ <view>
|
|
|
+ 最大库容
|
|
|
+ <text class="pnums">{{item.maxQty}}</text>
|
|
|
+ </view>
|
|
|
+ <view>
|
|
|
+ /货架库存
|
|
|
+ <text class="pnums">{{item.qty}}</text>
|
|
|
+ </view>
|
|
|
+ <view>
|
|
|
+ /滞销
|
|
|
+ <text class="pnums">{{!item.unsalableDays || (item.unsalableDays&&item.unsalableDays) == 0 ?'--天':item.unsalableDays}}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-checkbox>
|
|
|
+ </view>
|
|
|
+ <view class="ptools flex align_center">
|
|
|
+ <view class="ptools_l u-flex">
|
|
|
+ <view v-if="item.replenishBillQty && item.replenishBillQty!=0">
|
|
|
+ 补货在途
|
|
|
+ <text class="pnums">{{item.replenishBillQty}}</text>
|
|
|
+ </view>
|
|
|
+ <view v-if="item.recallBillQty && item.recallBillQty!=0">
|
|
|
+ {{item.replenishBillQty && item.replenishBillQty!=0 ? '/':''}}调回在途
|
|
|
+ <text class="pnums">{{item.recallBillQty}}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </scroll-view>
|
|
|
+ <u-empty :src="`/static/${$config('themePath')}/def_no_data@3x.png`" icon-size="200" text="暂无选中回调单" img-width="120" v-else></u-empty>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
@@ -85,6 +147,7 @@
|
|
|
backgroundColor: this.$config('primaryColor'),
|
|
|
color: '#fff'
|
|
|
},
|
|
|
+ isDetailShow:false,//详情弹窗显示
|
|
|
chooseList: [],
|
|
|
chooseShow:false,
|
|
|
queryParam: { // 查询条件
|
|
@@ -178,9 +241,6 @@
|
|
|
// 获取数字货架列表
|
|
|
loadData(params) {
|
|
|
const _this = this;
|
|
|
- _this.clearChoose()
|
|
|
- _this.partList = []
|
|
|
- _this.$refs.productList && _this.$refs.productList.setData(_this.partList)
|
|
|
uni.showLoading({
|
|
|
mask:true,
|
|
|
title:"正在加载..."
|
|
@@ -189,14 +249,13 @@
|
|
|
if (res.status == 200) {
|
|
|
res.data.forEach(item=>{
|
|
|
item.isChecked= false
|
|
|
- item.confirmQty = item.qty - item.recallBillQty>0 ?item.qty - item.recallBillQty>0: 0;
|
|
|
+ item.confirmQty = item.qty - item.recallBillQty>0 ?item.qty - item.recallBillQty: 0;
|
|
|
})
|
|
|
_this.partList=res.data;
|
|
|
}else{
|
|
|
_this.partList =[]
|
|
|
}
|
|
|
- // 赋值
|
|
|
- // 赋值
|
|
|
+ //过滤之前选过的值
|
|
|
if(_this.nowData.chooseKey.length){
|
|
|
_this.partList = _this.partList.filter(item => {
|
|
|
const row = _this.nowData.chooseKey.findIndex(k => k == item.id)
|
|
@@ -204,6 +263,7 @@
|
|
|
})
|
|
|
}
|
|
|
// 已选
|
|
|
+ console.log('1111111:',this.chooseList)
|
|
|
_this.partList.map(item => {
|
|
|
const row = _this.chooseList.find(k => k.id == item.id)
|
|
|
item.checked = !!row
|
|
@@ -246,6 +306,15 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ delDetail(con,pot){
|
|
|
+ this.$refs.productList.setChecked(con.id,false)
|
|
|
+ this.chooseList.splice(pot,1);
|
|
|
+ this.allChecked = false
|
|
|
+ // 全部清空
|
|
|
+ if(this.chooseList.length==0){
|
|
|
+ this.clearChoose()
|
|
|
+ }
|
|
|
+ },
|
|
|
// 扫描结果
|
|
|
scanResult(data){
|
|
|
// 二维码
|
|
@@ -413,43 +482,7 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 筛选
|
|
|
- .tabBox{
|
|
|
- height: 100vh;
|
|
|
- .tabs{
|
|
|
- overflow: auto;
|
|
|
- padding: 20rpx;
|
|
|
- > view{
|
|
|
- flex-wrap: wrap;
|
|
|
- justify-content: space-between;
|
|
|
- > view{
|
|
|
- width: 98%;
|
|
|
- border: 1rpx solid #eee;
|
|
|
- padding: 15rpx;
|
|
|
- border-radius: 50rpx;
|
|
|
- text-align: center;
|
|
|
- margin-bottom: 15rpx;
|
|
|
- /deep/ .u-checkbox__label{
|
|
|
- flex-grow: 1;
|
|
|
- }
|
|
|
- }
|
|
|
- &:first-child{
|
|
|
- > view{
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .btns{
|
|
|
- display: flex;
|
|
|
- padding: 40upx 20upx 20upx;
|
|
|
- justify-content: space-between;
|
|
|
- .handle-btn {
|
|
|
- font-size: 28upx;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // 弹窗样式
|
|
|
+ //滞销天数弹窗样式
|
|
|
.choosePopup {
|
|
|
padding: 30rpx 20rpx;
|
|
|
box-sizing: border-box;
|
|
@@ -469,5 +502,97 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // 详情页弹窗样式
|
|
|
+ .head{
|
|
|
+ width: 100%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding:30rpx 20rpx;
|
|
|
+ background: #e0e0e0;
|
|
|
+ text{
|
|
|
+ &:first-child{
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .scroll-view{
|
|
|
+ height: 584rpx;
|
|
|
+ .partList-list-box {
|
|
|
+ width: 700rpx;
|
|
|
+ margin:0 auto;
|
|
|
+ padding: 10px 0;
|
|
|
+ border-bottom: 2rpx solid #f5f5f5;
|
|
|
+ &:last-child {
|
|
|
+ border: 0;
|
|
|
+ }
|
|
|
+ .product {
|
|
|
+ flex-grow: 1;
|
|
|
+ .checkbox {
|
|
|
+ width: 60rpx;
|
|
|
+ }
|
|
|
+ .pinfo {
|
|
|
+ flex-grow: 1;
|
|
|
+ padding-left: 20rpx;
|
|
|
+ .pname {
|
|
|
+ font-size: 26rpx;
|
|
|
+ color:#222;
|
|
|
+ text {
|
|
|
+ font-weight: normal;
|
|
|
+ margin-right: 10rpx;
|
|
|
+ padding: 0 10rpx;
|
|
|
+ background: rgba(3, 54, 146, 0.15);
|
|
|
+ border-radius: 30rpx;
|
|
|
+ color: #033692;
|
|
|
+ font-size: 24rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .productName{
|
|
|
+ width: 100%;
|
|
|
+ font-size: 26rpx;
|
|
|
+ margin:6rpx 0;
|
|
|
+ }
|
|
|
+ .pno {
|
|
|
+ background-color: rgba(3, 54, 146, 0.15);
|
|
|
+ border-radius: 50rpx;
|
|
|
+ padding: 0 20rpx;
|
|
|
+ color: #033692;
|
|
|
+ font-size: 24rpx;
|
|
|
+ margin-right: 10rpx;
|
|
|
+ }
|
|
|
+ .ptxt {
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #999;
|
|
|
+ .pnums {
|
|
|
+ color: #222;
|
|
|
+ padding: 0 4upx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .ptools {
|
|
|
+ margin-top: 30rpx;
|
|
|
+ margin-left: 60rpx;
|
|
|
+ .ptools_l{
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #999;
|
|
|
+ view{
|
|
|
+ :nth-child(2)::before{
|
|
|
+ content: '/';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .pnums {
|
|
|
+ color: #ff5500;
|
|
|
+ padding: 0 4rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .pcurnums {
|
|
|
+ > text {
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #999;
|
|
|
+ margin-right: 20rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|