<template> 
 | 
    <view class="list-container order-sale supplier"> 
 | 
        <view class="component-tab-container m-t-12" v-if="!range||range=='today'"> 
 | 
            <view class="tab-item" :class="[query.status==''?'cur':'']" @click="changeIndex('')">全部订单</view> 
 | 
            <view class="tab-item" :class="[query.status=='PENDING'?'cur':'']" @click="changeIndex('PENDING')">待入位 
 | 
            </view> 
 | 
            <view class="tab-item" :class="[query.status=='ARRIVED'?'cur':'']" @click="changeIndex('ARRIVED')">已入位 
 | 
            </view> 
 | 
        </view> 
 | 
        <view class="m-t-12 flex" v-if="!range||range=='today'"> 
 | 
            <view class="m-l-a m-r-a text-center" :class="[query.date?'':'desc-gray']" 
 | 
                @click="show_time_picker_time=true"> 
 | 
                订单日期:{{query.date || '请选择日期'}} 
 | 
            </view> 
 | 
  
 | 
            <view class="m-l-a m-r-20 w-fit flex"> 
 | 
                <radio :checked="selecttoday" @click="changeSelecrRange"></radio> 
 | 
                <view>只查看今日</view> 
 | 
            </view> 
 | 
        </view> 
 | 
        <view class="search-container m-t-12 flex" v-if="list&&list.length>0"> 
 | 
            <view class="component-filter-container p10  m-l-10 flex flex1" style="text-align: right;"> 
 | 
                <view class="flex1 m-l-a m-r-10" @click="selectAllOrder" style="text-align: right;"> 
 | 
                    点击打印全部(已选{{ids.length}}个) 
 | 
                </view> 
 | 
            </view> 
 | 
        </view> 
 | 
        <view class="p15" style="min-height: calc(100vh - 400rpx);"> 
 | 
            <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> 
 | 
            <view v-for="(dto,index) in list" :key="index" class="m-b-24 order-sale-list list-container"> 
 | 
                <view class="order-sale-item list-item"> 
 | 
                    <view class="title flex"> 
 | 
                        <view>订单单号:{{dto.orderNo}}</view> 
 | 
                        <view class="m-l-a m-r-15 status">{{dto.statusStr}}</view> 
 | 
                        <radio class="m-l-15 m-r-0" :checked="ids.indexOf(dto.orderNo)>=0" @click="changeItem(dto)"> 
 | 
                        </radio> 
 | 
                    </view> 
 | 
                    <view v-if="dto.items"> 
 | 
                        <view v-for="(item,k) of dto.items" :key="k"> 
 | 
                            <view class="line" v-if="true"></view> 
 | 
                            <!--                 <view class="supplier-name "> 
 | 
                                <image class="icon-dp" src="/static/common/icon-dp.png"></image> 
 | 
                                {{ item.supplierName }} 
 | 
                            </view> --> 
 | 
                            <view class="flower flex m-t-12" v-if="true"> 
 | 
  
 | 
                                <image class="image img100 m-r-6" :src="item.flowerCover" 
 | 
                                    @click="previewImg(item.flowerCover)"> 
 | 
                                </image> 
 | 
                                <view class="flex1"> 
 | 
                                    <view class=" flex"> 
 | 
                                        <view class="title"><span 
 | 
                                                class="level">{{ item.flowerCategory || ''}}</span><span 
 | 
                                                class="level">{{ item.flowerLevelStr || ''}}</span>{{item.flowerName }} 
 | 
                                        </view> 
 | 
                                    </view> 
 | 
                                    <view class="each-list"> 
 | 
                                        <view class="each-item flex1 flex"> 
 | 
                                            <view class="label">颜色</view> 
 | 
                                            <view class="value">{{ item.flowerColor || '-' }}</view> 
 | 
  
 | 
                                        </view> 
 | 
                                        <view class="each-item flex1 flex"> 
 | 
                                            <view class="label">规格</view> 
 | 
                                            <view class="value">{{ item.flowerUnit || '-' }}</view> 
 | 
                                        </view> 
 | 
                                    </view> 
 | 
                                </view> 
 | 
                                <view class="each-list price"> 
 | 
                                    <view class="each-item flex1"> 
 | 
                                        <view class="value">¥{{ item.price || '-' }}</view> 
 | 
                                    </view> 
 | 
                                    <view class="each-item flex1"> 
 | 
                                        <view class="value">x {{ item.num || 0 }}</view> 
 | 
                                    </view> 
 | 
                                </view> 
 | 
  
 | 
                            </view> 
 | 
  
 | 
  
 | 
                            <view class="line"></view> 
 | 
                            <view class="buttons"> 
 | 
                                <view class="button button-1" @click="printDeliveryOrder(item)">打印</view> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
  
 | 
                    <view class="line"></view> 
 | 
                    <view class="delivery-form"> 
 | 
                        <view class="form-item" style="max-width: 100%;"> 
 | 
                            <view class="label">下单时间</view> 
 | 
                            <view class="value">{{dto.paymentTime}}</view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="delivery-form"> 
 | 
                        <view class="form-item"> 
 | 
                            <view class="label">仓库名称</view> 
 | 
                            <view class="value red">{{dto.warehouseName || '待分配'}}</view> 
 | 
                        </view> 
 | 
                        <view class="form-item"> 
 | 
                            <view class="label">库位名称</view> 
 | 
                            <view class="value red">{{dto.warehouseLocationCode || '待分配'}}</view> 
 | 
                        </view> 
 | 
  
 | 
                    </view> 
 | 
  
 | 
                    <view class="line"></view> 
 | 
                    <view class="buttons"> 
 | 
  
 | 
                        <view class="button button-1 m-r-10" v-if="dto.status==='PENDING'" 
 | 
                            @click="toDetail(dto,'PENDING')">确认入位</view> 
 | 
                        <view class="button button-0" @click="toDetail(dto,'')">查看详情</view> 
 | 
  
 | 
                    </view> 
 | 
  
 | 
  
 | 
                </view> 
 | 
            </view> 
 | 
        </view> 
 | 
  
 | 
        <!-- 判断是否到底了,自动吧 --> 
 | 
        <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> 
 | 
  
 | 
        <u-calendar :show="show_time_picker_time" mode="single" @confirm="select_time_picker_time" 
 | 
            @cancel="show_time_picker_time = false" :monthNum="12" :maxDate="defaultDatePre" 
 | 
            :defaultDate="defaultDatePre" @close="show_time_picker_time = false" minDate="2024-07-01" toolTip="选择订单日期"> 
 | 
        </u-calendar> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    export default { 
 | 
        data() { 
 | 
            return { 
 | 
                ids:[], 
 | 
                tabIndex: 0, 
 | 
                query: { 
 | 
                    status: '', 
 | 
                    date: '', 
 | 
                }, 
 | 
                selecttoday: true, 
 | 
                defaultDatePre: new Date(), 
 | 
                show_time_picker_time: false, 
 | 
  
 | 
                range: '', //today的话才有查询条件,其他的话,不展示顶部查询条件(yesterday、month、todayall) 
 | 
            } 
 | 
        }, 
 | 
        async onLoad(options) { 
 | 
            if (options.status) { 
 | 
                this.query.status = options.status || '' 
 | 
            } 
 | 
            this.range = options.range || '' 
 | 
            //目前应该是admin(质检人员不会用这个页面) 
 | 
            if (this.range === 'todayall') { 
 | 
                this.listApi = '/api/supplier/delivery/list/today' 
 | 
  
 | 
            } else if (this.range === 'month') { 
 | 
                this.listApi = '/api/supplier/delivery/list/month' 
 | 
  
 | 
            } else if (this.range === 'yesterday') { 
 | 
                this.listApi = '/api/supplier/delivery/list/yesterday' 
 | 
  
 | 
            } else { 
 | 
                this.listApi = '/api/supplier/delivery/list/today' 
 | 
            } 
 | 
  
 | 
            // this.listApi = '/api/supplier/delivery/list' 
 | 
  
 | 
            await this.getList() 
 | 
            // this.list = [{ 
 | 
            //     items: [{}, {}] 
 | 
            // }] 
 | 
  
 | 
        }, 
 | 
        onReachBottom() { 
 | 
            this.getMore() 
 | 
        }, 
 | 
        async onShow() { 
 | 
            if (this.sign['delivery']) { 
 | 
                await this.$store.dispatch('sign_clear', 'delivery'); 
 | 
                this.ids = [] 
 | 
                 
 | 
                this.refreshList() 
 | 
            } 
 | 
        }, 
 | 
        async onPullDownRefresh() { 
 | 
            this.page.current = 1 
 | 
            this.ids = [] 
 | 
             
 | 
            await this.getList() 
 | 
            uni.stopPullDownRefresh() 
 | 
        }, 
 | 
        methods: { 
 | 
            selectAllOrder() { 
 | 
                if (this.ids.length > 0) { 
 | 
                    // this.$message.showToast('敬请期待') 
 | 
                    var arr = [] 
 | 
                    for (var item of this.list) { 
 | 
                        if (this.ids.indexOf(item.orderNo) >= 0) { 
 | 
                            for (var each of item.items) { 
 | 
                                arr.push(each) 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                    if (arr.length > 0) { 
 | 
                        this.$storage.setItem('cache_delivery_order_print', JSON.stringify(arr)) 
 | 
                        uni.navigateTo({ 
 | 
                            url: '/sub_pages/supplier/print/print-list' 
 | 
                        }) 
 | 
                    } 
 | 
             
 | 
                } 
 | 
            }, 
 | 
            changeItem(item) { 
 | 
                if (this.ids.indexOf(item.orderNo) >= 0) { 
 | 
                    this.ids.splice(this.ids.indexOf(item.orderNo), 1) 
 | 
                } else { 
 | 
                    this.ids.push(item.orderNo) 
 | 
                } 
 | 
            }, 
 | 
            printDeliveryOrder(item) { 
 | 
                var arr = [] 
 | 
                arr.push(item) 
 | 
                this.$storage.setItem('cache_delivery_order_print', JSON.stringify(arr)) 
 | 
                uni.navigateTo({ 
 | 
                    url: '/sub_pages/supplier/print/print-list' 
 | 
                }) 
 | 
            }, 
 | 
            async select_time_picker_time(e) { 
 | 
                this.ids = [] 
 | 
                 
 | 
                this.selecttoday = false 
 | 
                this.listApi = '/api/supplier/delivery/list' 
 | 
                var vv = e && e.length >= 1 && new Date(e[0]) || new Date() 
 | 
                this.show_time_picker_time = false; 
 | 
                this.query.date = this.$util.toDate(vv) || '' 
 | 
                this.refreshList() 
 | 
            }, 
 | 
            changeSelecrRange() { 
 | 
                if (this.selecttoday) { 
 | 
                    return 
 | 
                } 
 | 
                this.selecttoday = !this.selecttoday 
 | 
                this.ids = [] 
 | 
                 
 | 
                this.$nextTick(() => { 
 | 
                    if (this.selecttoday) { 
 | 
                        this.query.date = '' 
 | 
                        this.listApi = '/api/supplier/delivery/list/today' 
 | 
                    } else { 
 | 
                        this.listApi = '/api/supplier/delivery/list' 
 | 
  
 | 
                    } 
 | 
                    this.refreshList() 
 | 
                }) 
 | 
            }, 
 | 
            changeIndex(status) { 
 | 
                if (this.query.status !== status) { 
 | 
                    this.query.status = status 
 | 
                    this.ids = [] 
 | 
                     
 | 
                    // 刷新 query 
 | 
                    this.refreshList() 
 | 
                } 
 | 
            }, 
 | 
            toDetail(item, status) { 
 | 
                uni.navigateTo({ 
 | 
                    url: `/pages/order/order-delivery-detail?id=${item.id}&status=${status}` 
 | 
                }) 
 | 
            }, 
 | 
  
 | 
        } 
 | 
    } 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scope> 
 | 
    .order-sale-list { 
 | 
        .order-sale-item { 
 | 
            background-color: #fff; 
 | 
            margin-bottom: 20rpx; 
 | 
            padding: 22rpx; 
 | 
  
 | 
            .each-item { 
 | 
                .label { 
 | 
                    min-width: 120rpx; 
 | 
  
 | 
                } 
 | 
  
 | 
                .label:after { 
 | 
                    content: ":"; 
 | 
                    margin-right: 10rpx; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .supplier-name { 
 | 
                border-bottom: 2rpx solid #EEEEEE; 
 | 
                font-weight: 600; 
 | 
                font-size: 28rpx; 
 | 
                color: #000000; 
 | 
                padding-bottom: 10rpx; 
 | 
                line-height: 40rpx; 
 | 
  
 | 
                .icon-dp { 
 | 
                    width: 27rpx; 
 | 
                    height: 27rpx; 
 | 
                    display: inline-block; 
 | 
                    vertical-align: middle; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .buttons { 
 | 
                display: flex; 
 | 
                margin-left: auto; 
 | 
                width: fit-content; 
 | 
  
 | 
                .button { 
 | 
                    // width: 216rpx; 
 | 
                    padding: 10rpx 20rpx; 
 | 
                    line-height: 34rpx; 
 | 
                    font-size: 24rpx; 
 | 
                    height: 34rpx; 
 | 
                    background: #20613D; 
 | 
                    text-align: center; 
 | 
                    border-radius: 30rpx; 
 | 
  
 | 
                } 
 | 
  
 | 
                .button-1 { 
 | 
                    background: #fff; 
 | 
                    color: #333; 
 | 
                    border: 2rpx solid #333; 
 | 
  
 | 
                } 
 | 
  
 | 
                .button-0 { 
 | 
                    color: #fff; 
 | 
                    border: 2rpx solid #20613D; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .title { 
 | 
                font-weight: 600; 
 | 
                font-size: 28rpx; 
 | 
                color: #000000; 
 | 
                line-height: 40rpx; 
 | 
  
 | 
                .level { 
 | 
                    font-weight: 400; 
 | 
                    font-size: 28rpx; 
 | 
                    color: #20613D; 
 | 
                    line-height: 40rpx; 
 | 
                    margin-right: 20rpx; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .status { 
 | 
                color: #20613D; 
 | 
            } 
 | 
  
 | 
            .line { 
 | 
                min-height: 2rpx; 
 | 
                background-color: #EEEEEE; 
 | 
                margin-top: 16rpx; 
 | 
                margin-bottom: 16rpx; 
 | 
            } 
 | 
  
 | 
            .flower { 
 | 
                font-weight: 400; 
 | 
                font-size: 24rpx; 
 | 
                color: #666666; 
 | 
                line-height: 40rpx; 
 | 
  
 | 
                .image { 
 | 
                    width: 115rpx; 
 | 
                    height: 106rpx; 
 | 
                } 
 | 
  
 | 
                .title { 
 | 
                    font-weight: 600; 
 | 
                    font-size: 28rpx; 
 | 
                    color: #000000; 
 | 
                    line-height: 40rpx; 
 | 
  
 | 
                    .level { 
 | 
                        font-weight: 400; 
 | 
                        font-size: 28rpx; 
 | 
                        color: #20613D; 
 | 
                        line-height: 40rpx; 
 | 
                        margin-right: 20rpx; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                .desc {} 
 | 
  
 | 
                .price { 
 | 
                    color: #CF0000; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .delivery-form { 
 | 
                display: flex; 
 | 
                flex-wrap: wrap; 
 | 
  
 | 
                .form-item { 
 | 
                    flex: 1; 
 | 
                    min-width: 40%; 
 | 
                    max-width: 50%; 
 | 
                    display: flex; 
 | 
  
 | 
                    .label { 
 | 
                        font-weight: 400; 
 | 
                        font-size: 22rpx; 
 | 
                        color: #666666; 
 | 
                        line-height: 34rpx; 
 | 
                        min-width: 120rpx 
 | 
                    } 
 | 
  
 | 
                    .label::after { 
 | 
                        content: ":"; 
 | 
                        font-weight: 400; 
 | 
                        font-size: 24rpx; 
 | 
                        color: #666666; 
 | 
                        line-height: 34rpx; 
 | 
                    } 
 | 
  
 | 
                    .value { 
 | 
                        font-weight: 400; 
 | 
                        font-size: 22rpx; 
 | 
                        color: #333; 
 | 
                        line-height: 34rpx; 
 | 
                    } 
 | 
  
 | 
                    .value.red { 
 | 
                        color: #CF0000; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                .form-item.width100 { 
 | 
                    max-width: unset; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</style> 
 |