From dd2922d3facbfba5add501f35de5649b80b6cf05 Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期二, 10 九月 2024 18:22:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/v2' into v2 --- sub_pages/partner/delivery/delivery.vue | 536 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 349 insertions(+), 187 deletions(-) diff --git a/sub_pages/partner/delivery/delivery.vue b/sub_pages/partner/delivery/delivery.vue index 582518e..7219977 100644 --- a/sub_pages/partner/delivery/delivery.vue +++ b/sub_pages/partner/delivery/delivery.vue @@ -1,207 +1,369 @@ <script> -export default { - data() { - return { - query: { - supplierName: '', - stationId: '', - stationName: '', - statusStr:'', - status:'', - }, - show_select_station: false, - show_select_status: false, + export default { + data() { + return { + query: { + supplierName: '', + stationId: '', + stationName: '', + statusStr: '', + status: 'ARRIVED,PENDING', + warehouseLocationCode: '', + date: '', + }, + show_select_station: false, + show_select_status: false, + selecttoday: true, + columns_station: [], + status_columns: [], + show_time_picker_time: false, + tmp_picker_time: new Date(), + flg: '0', + tabs: [{ + name: '待质检', + status: 'ARRIVED,PENDING', + }, + { + name: '已质检', + status: 'CHECKED', + }, + ], + } + }, + onLoad(options) { + this.query.stationId = options.stationId || '' + this.query.stationName = options.stationName || '' - columns_station: [], - status_columns:[], - } - }, - onLoad() { - this.listApi = '/api/delivery/list/today' - this.getList() - this.$http.request('get', '/api/station/list', { - params: {} - }).then(res => { - var data = res.data - this.columns_station = [data || []] - }) - this.$http.request('get', '/api/code/value', { - params: { - type: 'DELIVERY_ORDER_STATUS' - } - }).then(res => { - var data = res.data - this.status_columns = [data || []] - this.status_columns[0].unshift({ - label: '全部', - value: '' - }) - }) + // this.listApi = '/api/delivery/list/today' + this.listApi = '/api/delivery/check/list/today' + // this.listApi = '/api/delivery/check/list' - }, - onReachBottom() { - this.page.current += 1 - this.getMore() - }, - async onPullDownRefresh() { - this.page.current = 1 - await this.getList() - uni.stopPullDownRefresh() - }, - methods: { - select_station(e) { - this.show_select_station = false - this.query.stationName = e.value[0].name - this.query.stationId = e.value[0].id - this.refreshList() - }, - select_status(e) { - this.show_select_status = false - this.query.statusStr = e.value[0].name - this.query.status = e.value[0].id - this.refreshList() - }, - toDetail(item) { - uni.navigateTo({ - url: `/sub_pages/partner/delivery/delivery-detail?id=${item.id}` - }) - }, - async compelete(item) { - await this.$message.confirm("是否完成此单质检") + this.getList() + // this.$http.request('get', '/api/station/list', { + // params: {} + // }).then(res => { + // var data = res.data + // this.columns_station = [data || []] + // }) + // this.$http.request('get', '/api/code/value', { + // params: { + // type: 'DELIVERY_ORDER_STATUS' + // } + // }).then(res => { + // var data = res.data || [] + // this.status_columns = [data || []] + // this.status_columns[0].unshift({ + // label: '全部', + // value: '' + // }) + // console.log('status_columns', this.status_columns) + // }) - const {code, data} = this.$http.request('get', '/api/delivery/list/view/complete', { - params: { - id: item.id - } - }) - if (code === 0) { - this.$message.showToast('完成成功') - setTimeout(() => { - this.refreshList() - }, 200) - } - } - } -} + }, + onReachBottom() { + this.getMore() + }, + async onPullDownRefresh() { + this.page.current = 1 + await this.getList() + uni.stopPullDownRefresh() + }, + methods: { + async select_time_picker_time(e) { + console.log('select_time_picker_time', e) + var vv = e.value && new Date(e.value) || new Date() + // if (vv) { + // vv = vv.replace('aN:', '00:') + // } + // var time = new Date(`2023-8-21 ${vv}:00`) + this.show_time_picker_time = false + this.query.date = this.$util.toDate(vv) || '' + }, + changeSelecrRange() { + this.selecttoday = !this.selecttoday + + this.$nextTick(() => { + if (this.selecttoday) { + this.listApi = '/api/delivery/check/list/today' + this.query.date = '' + } else { + this.listApi = '/api/delivery/check/list' + } + this.refreshList() + }) + }, + callTel(tel) { + if (tel) { + uni.makePhoneCall({ + phoneNumber: tel + }) + } + }, + buttonSearchFlow() { + this.refreshList() + }, + select_station(e) { + this.show_select_station = false + this.query.stationName = e.value[0].name + this.query.stationId = e.value[0].id + this.refreshList() + }, + select_status(e) { + this.show_select_status = false + this.query.statusStr = e.value[0].label + this.query.status = e.value[0].value + this.refreshList() + }, + toDetail(item) { + uni.navigateTo({ + url: `/sub_pages/partner/delivery/delivery-supplier-detail-list?warehouseLocationCode=${this.query.warehouseLocationCode||''}&stationId=${this.query.stationId||''}&supplierId=${item.id}&range=` + + (this + .selecttoday ? 'today' : '') + }) + }, + async compelete(item) { + await this.$message.confirm("是否一键完成此单的质检") + // '/api/delivery/list/view/complete' + const { + code, + data + } = await this.$http.request('get', '/api/delivery/check/list/complete', { + params: { + id: item.id + } + }) + if (code === 0) { + this.$message.showToast('完成成功') + // let tmp = this + // setTimeout(async () => { + // await tmp.refreshList() + // tmp.$forceUpdate() + // }, 500) + } + }, + changeTab(flg) { + this.flg = '' + flg + this.query.status = this.tabs[flg].status + this.refreshList() + }, + } + } </script> <template> - <!-- 列表页面 --> - <view class="page-delivery"> - <view class="p15" style="min-height: calc(100vh - 260rpx);"> - <view class="search-container m-t-12 flex"> - <view class="flex1 input"> - <u-input placeholder="请输入花名" v-model="search_flow"> - <template slot="suffix"> - <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons> - </template> - </u-input> - </view> - </view> - <view class="component-filter-container"> - <view class="flex1" @click="show_select_status=true"> - 配送单状态:{{ query.statusStr || '全部' }} - <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> - </view> + <!-- 列表页面 --> + <view class="page-delivery"> + <view class="p15" style="min-height: calc(100vh - 260rpx);"> + <top-tabs :tabs="tabs" :flg="flg" @change="changeTab" type="coupon"> - <view class="flex1" @click="show_select_station=true"> - 集货站:{{ query.stationName || '全部' }} - <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> - </view> - </view> + </top-tabs> + <view class="search-container m-t-15 flex"> + <view class="flex1 input m-r-5"> + <u-input placeholder="请输入供应商名称" v-model="query.supplierName"> + <template slot="suffix"> + <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons> + </template> + </u-input> + </view> + <view class="flex1 input m-l-5"> + <u-input placeholder="请输入货位号" v-model="query.warehouseLocationCode"> + <template slot="suffix"> + <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons> + </template> + </u-input> + </view> + </view> - <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> - <view v-for="(item,index) in list" :key="index" class="m-b-24"> - <view class="delivery-item"> - <view class="title">{{ item.supplierName }}</view> - <view class="line-gray"></view> - <view class="form-item"> - <view class="form-item-label">订单单号:</view> - <view class="form-item-value">{{ item.orderNo || '-' }}</view> - </view> - <view class="form-item"> - <view class="form-item-label">集货站名称:</view> - <view class="form-item-value">{{ item.stationName || '-' }}</view> - </view> - <view class="form-item"> - <view class="form-item-label">配送单状态:</view> - <view class="form-item-value">{{ item.levelStr || '-' }}</view> - </view> - <view class="form-item"> - <view class="form-item-label">送达时间</view> - <view class="form-item-value">{{ item.arriveTime || '-' }}</view> - </view> - <view class="form-item"> - <view class="form-item-label">供货总数</view> - <view class="form-item-value">{{ item.totalNum || '-' }}</view> - </view> - <view class="line-gray"></view> - <view class="flex"> - <view class="button button-2 m-l-a m-r-0" @click="toDetail(item)">前往质检</view> - <view class="button button-1 m-l-15 m-r-0" @click="compelete(item)">质检完成</view> - </view> - </view> - </view> - </view> + <!-- <view class="search-container m-t-12 flex"> --> - <!-- 判断是否到底了,自动吧 --> - <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> - <u-picker @confirm="select_station" keyName="name" @cancel="show_select_station=false" - :show="show_select_station" :columns="columns_station"></u-picker> - <u-picker @confirm="select_status" keyName="name" @cancel="show_select_status=false" - :show="show_select_status" :columns="status_columns"></u-picker> + <!-- <view class="component-filter-container p10 bg-white m-l-10"> + <view class="flex1" @click="show_select_status=true"> + 配送单状态:{{ query.statusStr || '全部' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + </view> --> + <!-- </view> --> + <view class="m-t-12 m-b-12 flex"> + <view class="" v-if="!selecttoday" :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="component-filter-container p20 bg-white"> + <view class="flex1" @click="show_select_status=true"> + 配送单状态:{{ query.statusStr || '全部' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + <view class="flex1"> + 集货站:{{ query.stationName || '全部' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + </view> --> + + <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> + <view v-for="(item,index) in list" :key="index" class="m-b-24"> + <view class="delivery-item bg-white br-4 p10"> + <view class="title flex"> + <view>供应商:{{ item.supplierName }}</view> + <view class="w-fit m-l-a m-r-0 text-right" v-if="item.supplierTel" + @click="callTel(item.supplierTel)">{{ item.supplierTel }}</view> + + </view> + <view class="line-gray"></view> + <!-- <view class="form-item"> + <view class="form-item-label">订单单号</view> + <view class="form-item-value">{{ item.orderNo || '-' }}</view> + </view> --> + <view class="flex"> + <view class="form-item flex1"> + <view class="form-item-label">集货站</view> + <view class="form-item-value">{{ item.stationName || '-' }}</view> + </view> + <!-- <view class="form-item flex1"> + <view class="form-item-label">货位号</view> + <view class="form-item-value">{{ item.warehouseLocationCode || '-' }}</view> + </view> --> + + </view> + <view class="flex"> + <!-- <view class="form-item flex1"> + <view class="form-item-label">状态</view> + <view class="form-item-value">{{ item.statusStr || '-' }}</view> + </view> --> + <view class="form-item flex1"> + <view class="form-item-label">交易金额</view> + <view class="form-item-value">¥{{ item.totalAmount || '0.00' }}</view> + </view> + <view class="form-item flex1"> + <view class="form-item-label">供货总数</view> + <view class="form-item-value">{{ item.totalNum || '-' }}</view> + </view> + </view> + <!-- <view class="form-item flex1"> + <view class="form-item-label">送达时间</view> + <view class="form-item-value">{{ item.arriveTime || '-' }}</view> + </view> --> + <view class="form-item flex1"> + <view class="form-item-label">待质检数</view> + <view class="form-item-value">{{ item.uncheckedCount || '0' }}</view> + </view> - </view> + <view class="line-gray"></view> + <view class="flex buttons"> + <!-- v-if="item.status==='ARRIVED'||item.status==='PENDING'" --> + <view class="button button-1 m-l-a m-r-15" @click="compelete(item)">一键质检</view> + <view class="button button-0 m-l-a m-r-0" @click="toDetail(item)"> + <!-- {{(item.status==='ARRIVED'||item.status==='PENDING')?'前往质检':'查看详情'}} --> + 前往质检 + </view> + + </view> + </view> + </view> + </view> + + <!-- 判断是否到底了,自动吧 --> + <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> + <u-picker @confirm="select_station" keyName="name" @cancel="show_select_station=false" + :show="show_select_station" :columns="columns_station"></u-picker> + <u-picker @confirm="select_status" keyName="label" @cancel="show_select_status=false" :show="show_select_status" + :columns="status_columns"></u-picker> + + <u-datetime-picker :show="show_time_picker_time" @cancel="show_time_picker_time=false" + @confirm="select_time_picker_time" v-model="tmp_picker_time" mode="date"></u-datetime-picker> + + + </view> </template> <style lang="scss" scoped> -.page-delivery { - .delivery-item { - .title { - font-weight: 400; - font-size: 28rpx; - color: #000000; - line-height: 40rpx; - } + .page-delivery { + .delivery-item { + .title { + font-weight: 600; + font-size: 32rpx; + color: #000000; + line-height: 40rpx; + } - .button { - min-width: 122rpx; - text-align: center; - height: 48rpx; - line-height: 48rpx; - border-radius: 28rpx; - border: 2rpx solid #20613D; - font-size: 24rpx; - color: #20613D; - } - } + .form-item { + line-height: 40rpx; + font-size: 28rpx; + color: #666; + display: flex; - .search-container { - display: flex; - margin: 12rpx 0rpx 20rpx 0rpx; - position: relative; - z-index: 1; + .form-item-label { + min-width: 120rpx; + } - .input { - // flex: 1; - // max-width: 400rpx; - background-color: #fff !important; - // line-height: 58rpx; - // height: 58rpx; - border-radius: 8rpx; - } + .form-item-label::after { + content: ":"; + margin-right: 20rpx; + } + } - .button { - min-width: 120rpx; - max-width: 120rpx; - margin-left: auto; - margin-right: 0rpx; - text-align: right; - line-height: 70rpx !important; - // height: 58rpx !important; - // display: flex; - } - } -} + .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; + } + } + } + + .search-container { + display: flex; + margin: 12rpx 0rpx 20rpx 0rpx; + position: relative; + z-index: 1; + + .input { + // flex: 1; + // max-width: 400rpx; + background-color: #fff !important; + // line-height: 58rpx; + // height: 58rpx; + border-radius: 8rpx; + } + + .button { + min-width: 120rpx; + max-width: 120rpx; + margin-left: auto; + margin-right: 0rpx; + text-align: right; + line-height: 70rpx !important; + // height: 58rpx !important; + // display: flex; + } + } + } </style> \ No newline at end of file -- Gitblit v1.9.3