陶杰
2025-01-08 b05a84f9178894b40a1d6a601b577403d7d93c46
sub_pages/partner/delivery/delivery.vue
@@ -1,27 +1,47 @@
<script>
   export default {
      data() {
         var defaultDatePre = new Date(new Date().getTime())
         return {
            query: {
               supplierName: '',
               stationId: '',
               stationName: '',
               statusStr: '',
               status: '',
               status: 'ARRIVED,PENDING',
               warehouseLocationCode: '',
               date: '',
            },
            show_select_station: false,
            show_select_status: false,
            selecttoday: false,
            columns_station: [],
            status_columns: [],
            show_time_picker_time: false,
            tmp_picker_time: new Date(),
            flg: '0',
            tabs: [{
                  name: '待质检',
                  status: 'ARRIVED,PENDING',
               },
               {
                  name: '已质检',
                  status: 'CHECKED',
               },
            ],
            defaultDate: new Date(),
            defaultDatePre: defaultDatePre
         }
      },
      onLoad(options) {
         this.query.stationId = options.stationId || ''
         this.query.stationName = options.stationName || ''
         this.listApi = '/api/delivery/list/today'
         // this.listApi = '/api/delivery/list/today'
         // this.listApi = '/api/delivery/check/list/today'
         this.listApi = '/api/delivery/check/list'
         this.query.date = this.$util.toDate(this.defaultDatePre)
         this.getList()
         // this.$http.request('get', '/api/station/list', {
         //    params: {}
@@ -29,19 +49,19 @@
         //    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)
         })
         // 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)
         // })
      },
      onReachBottom() {
@@ -53,6 +73,38 @@
         uni.stopPullDownRefresh()
      },
      methods: {
         async select_time_picker_time(e) {
            // console.log('select_time_picker_time', e)
            var vv = e && e.length >= 1 && new Date(e[0]) || 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) || ''
            this.refreshList()
         },
         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()
         },
@@ -70,29 +122,39 @@
         },
         toDetail(item) {
            uni.navigateTo({
               url: `/sub_pages/partner/delivery/delivery-detail?id=${item.id}`
               url: `/sub_pages/partner/delivery/delivery-supplier-detail-list?warehouseLocationCode=${this.query.warehouseLocationCode||''}&date=${ this.query.date||''}&stationId=${this.query.stationId||''}&supplierId=${item.id}&range=` +
                  (this
                     .selecttoday ? 'today' : '')
            })
         },
         async compelete(item) {
            await this.$message.confirm("是否完成此单质检")
            await this.$message.confirm("是否一键完成此单的质检")
            // '/api/delivery/list/view/complete'
            const {
               code,
               data
            } = this.$http.request('get', '/api/delivery/list/view/complete', {
            } = await this.$http.request('get', '/api/delivery/check/list/complete' + (this.selecttoday ?
               "/today" : ""), {
               params: {
                  id: item.id
                  id: item.id,
                  date: this.query.date || null
               }
            })
            if (code === 0) {
               this.$message.showToast('完成成功')
               let tmp = this
               setTimeout(async () => {
                  await tmp.refreshList()
                  tmp.$forceUpdate()
               }, 200)
               await this.$message.showToast('完成成功')
               this.refreshList()
               // 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>
@@ -100,17 +162,18 @@
   <!-- 列表页面 -->
   <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">
         <top-tabs :tabs="tabs" :flg="flg" @change="changeTab" type="coupon">
         </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>
         <view class="search-container m-t-12 flex">
            <view class="flex1 input">
            <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>
@@ -119,60 +182,95 @@
            </view>
         </view>
         <view class="component-filter-container p20 bg-white">
         <!-- <view class="search-container m-t-12 flex"> -->
         <!--    <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">
            <!-- v-if="!selecttoday" -->
            <view class="m-l-a m-r-20 w-fit" :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>
            <!-- @click="show_select_station=true" -->
            <view class="flex1">
               集货站:{{ query.stationName || '全部' }}
               <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
            </view>
         </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">供应商:{{ item.supplierName }}</view>
               <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">
                  <view class="form-item-label">订单单号</view>
                  <view class="form-item-value">{{ item.orderNo || '-' }}</view>
               </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 flex1">
                     <view class="form-item-label">货位号</view>
                     <view class="form-item-value">{{ item.warehouseLocationCode || '-' }}</view>
                  </view>
                  </view> -->
               </view>
               <view class="flex">
                  <view class="form-item flex1">
                  <!-- <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 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 class="line-gray"></view>
               <view class="flex buttons">
                  <view class="button button-1 m-l-15 m-r-0" v-if="item.status==='ARRIVED'"
                     @click="compelete(item)">质检完成</view>
                  <!-- 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==='ARRIVED'||item.status==='PENDING')?'前往质检':'查看详情'}} -->
                     前往质检
                  </view>
               </view>
@@ -187,6 +285,13 @@
      <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> -->
      <u-calendar :show="show_time_picker_time" mode="single" @confirm="select_time_picker_time"
         @cancel="show_time_picker_time = false" :monthNum="12" :maxDate="defaultDate" :defaultDate="defaultDatePre"
         @close="show_time_picker_time = false" minDate="2024-07-01" toolTip="选择订单日期">
      </u-calendar>
   </view>
</template>