陶杰
2024-09-10 dd2922d3facbfba5add501f35de5649b80b6cf05
sub_pages/partner/delivery/delivery.vue
@@ -7,21 +7,37 @@
               stationId: '',
               stationName: '',
               statusStr: '',
               status: '',
               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 || ''
         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.getList()
         // this.$http.request('get', '/api/station/list', {
         //    params: {}
@@ -29,19 +45,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 +69,36 @@
         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()
         },
@@ -70,29 +116,36 @@
         },
         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||''}&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', {
               params: {
                  id: item.id
               }
            })
            if (code === 0) {
               this.$message.showToast('完成成功')
               let tmp = this
               setTimeout(async () => {
                  await tmp.refreshList()
                  tmp.$forceUpdate()
               }, 200)
               // 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,28 +153,44 @@
   <!-- 列表页面 -->
   <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>
                  </template>
               </u-input>
            </view>
            <view class="component-filter-container p10 bg-white m-l-10">
         </view>
         <!-- <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> -->
         <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>
@@ -139,45 +208,59 @@
         <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'||item.status==='PENDING'"
                     @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==='PENDING')?'前往质检':'查看详情'}}
                     <!-- {{(item.status==='ARRIVED'||item.status==='PENDING')?'前往质检':'查看详情'}} -->
                     前往质检
                  </view>
               </view>
@@ -192,6 +275,9 @@
      <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>