From ccf8a9e7e53ce1516960cbd101e0afc7ac8ea2c2 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期二, 20 八月 2024 17:42:13 +0800
Subject: [PATCH] update 质检功能
---
sub_pages/partner/delivery/delivery-supplier-detail.vue | 265 +++++++++++++++++++++++++++++++++++++
common/global.scss | 1
sub_pages/partner/delivery/delivery-detail.vue | 34 ++--
sub_pages/partner/delivery/delivery.vue | 57 ++++---
pages.json | 35 ++--
5 files changed, 337 insertions(+), 55 deletions(-)
diff --git a/common/global.scss b/common/global.scss
index 33c1f02..13ee8b7 100644
--- a/common/global.scss
+++ b/common/global.scss
@@ -147,6 +147,7 @@
display: flex;
margin-left: 0rpx;
margin-right: auto;
+ font-size: 30rpx;
flex: 1;
padding-left: 0rpx;
padding-right: 0rpx;
diff --git a/pages.json b/pages.json
index 060f515..8748ac2 100644
--- a/pages.json
+++ b/pages.json
@@ -222,20 +222,18 @@
"navigationBarTitleText": "送货单",
"enablePullDownRefresh": true
}
- },
- {
- "path" : "order-manage/order-manage-settlement",
- "style" :
- {
- "navigationBarTitleText" : "送货单结算明细"
- }
- },
- {
- "path" : "order-manage/order-manage-flower",
- "style" :
- {
- "navigationBarTitleText" : "送货单"
- }
+ },
+ {
+ "path": "order-manage/order-manage-settlement",
+ "style": {
+ "navigationBarTitleText": "送货单结算明细"
+ }
+ },
+ {
+ "path": "order-manage/order-manage-flower",
+ "style": {
+ "navigationBarTitleText": "送货单"
+ }
}
// #endif
// #ifdef PUB_PARTNER
@@ -318,6 +316,13 @@
}
},
{
+ "path": "delivery/delivery-supplier-detail",
+ "style": {
+ "navigationBarTitleText": "供应商质检详情",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
"path": "delivery/delivery-home",
"style": {
"navigationBarTitleText": "",
@@ -381,7 +386,7 @@
{
"path": "shop/shop",
"style": {
- "navigationBarTitleText": "商家主页",
+ "navigationBarTitleText": "商家主页",
"enablePullDownRefresh": true
}
},
diff --git a/sub_pages/partner/delivery/delivery-detail.vue b/sub_pages/partner/delivery/delivery-detail.vue
index cae20ce..e148c37 100644
--- a/sub_pages/partner/delivery/delivery-detail.vue
+++ b/sub_pages/partner/delivery/delivery-detail.vue
@@ -15,7 +15,7 @@
form: {
id: '',
status: '',
- checkImageList: [],
+ pictureList: [],
checkRemarks: '',
deductAmount: 0,
},
@@ -103,16 +103,16 @@
statusStr: '',
num: 0,
remarks: '',
+ pictureList: [],
}
if (status === 'reduce') {
this.form = {
...this.form,
- pictureList: [item.id],
deductAmount: 0,
targetLevel: '',
- checkImageList: [],
+ pictureList: [],
}
}
@@ -136,10 +136,12 @@
})
this.$message.hideLoading()
if (code === 0) {
- this.$message.showToast('操作成功')
this.form = {
...this.form,
...(data || {})
+ }
+ if (!this.form.pictureList) {
+ this.form.pictureList = []
}
//显示
this.$refs.popup_form.open()
@@ -209,7 +211,7 @@
}
},
deleteCheckImage(index) {
- this.form.checkImageList.splice(index, 1)
+ this.form.pictureList.splice(index, 1)
},
uploadCheckImage() {
let that = this
@@ -232,7 +234,7 @@
0]
.url || ''
that.$message.hideLoading()
- that.form.checkImageList.push(pic)
+ that.form.pictureList.push(pic)
console.log('form', that.form)
that.$forceUpdate()
}).catch(res => {
@@ -307,10 +309,10 @@
</view>
</view>
</view>
- <view class="line-gray" v-if="item.status == 'ARRIVED'||item.status == 'PENDING'||!item.status">
+ <view class="line-gray" v-if="item.status == 'ARRIVED'||item.status == 'PENDING'||!item.status||true">
</view>
- <view class="buttons" v-if="item.status == 'ARRIVED'||item.status == 'PENDING'||!item.status">
+ <view class="buttons" v-if="item.status == 'ARRIVED'||item.status == 'PENDING'||!item.status||true">
<view class="button text-center" v-for="button of check_status" :key="button.value"
@click.stop="clickCheck(item,button.value)">{{ button.label }}
</view>
@@ -325,17 +327,17 @@
</view>
<uni-popup ref="popup_form" type="top" :mask-click="false">
- <view class="popup-check-form">
+ <view class="popup-check-form" style="min-height: 880rpx;height: unset;">
<view class="close-parent">
质检操作-{{ form.statusStr || '-' }}
<uni-icons class="close" type="closeempty" @click="closeCheckForm"></uni-icons>
</view>
<view class="submit form">
- <view class="form-item" v-if="form.status==='reduce'">
- <view class="form-item-label require">
+ <view class="form-item" v-if="form.status==='reduce'" style="height: unset;">
+ <view class="form-item-label require" style="min-width: 120rpx;margin-right: 10rpx;">
降级等级
</view>
- <view class="form-item-value">
+ <view class="form-item-value flex">
<view class="value-item" @click="()=>{
if(form.targetLevel!==query.value){
form.targetLevel = each.value
@@ -383,8 +385,8 @@
<view class="t-red" @click="uploadCheckImage()">上传</view>
</view>
</view>
- <view class="flex p20" v-if="form.checkImageList&&form.checkImageList.length>0">
- <view class="m-t-12 m-r-10 " v-for="(timg,index) of form.checkImageList" :key="index">
+ <view class="flex p20" v-if="form.pictureList&&form.pictureList.length>0">
+ <view class="m-t-12 m-r-10 " v-for="(timg,index) of form.pictureList" :key="index">
<image class="check-img" :src="timg" @click.stop="previewImg(timg)">
</image>
<view class="t-red text-center" @click.stop="deleteCheckImage(index)">删除</view>
@@ -524,8 +526,8 @@
line-height: 58rpx;
padding: 8rpx 24rpx;
color: #33a868;
- margin-left: 6rpx;
- margin-right: 6rpx;
+ margin-left: 16rpx;
+ margin-right: 16rpx;
border: 2rpx solid #F1F5F2;
}
diff --git a/sub_pages/partner/delivery/delivery-supplier-detail.vue b/sub_pages/partner/delivery/delivery-supplier-detail.vue
new file mode 100644
index 0000000..b6a4488
--- /dev/null
+++ b/sub_pages/partner/delivery/delivery-supplier-detail.vue
@@ -0,0 +1,265 @@
+<script>
+ export default {
+ data() {
+ return {
+ query: {
+ supplierName: '',
+ stationId: '',
+ stationName: '',
+ statusStr: '',
+ status: '',
+ warehouseLocationCode: '',
+ },
+ show_select_station: false,
+ show_select_status: false,
+ selecttoday: true,
+ columns_station: [],
+ status_columns: [],
+ }
+ },
+ onLoad(options) {
+ this.query.supplierId = options.supplierId || ''
+
+ this.listApi = '/api/delivery/check/info/list'
+
+ if (options.range == 'today') {
+ this.listApi += '/today'
+ }
+
+ this.getList()
+
+ 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() {
+ this.getMore()
+ },
+ async onPullDownRefresh() {
+ this.page.current = 1
+ await this.getList()
+ uni.stopPullDownRefresh()
+ },
+ methods: {
+
+ 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-detail?id=${item.id}`
+ })
+ },
+
+ }
+ }
+</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="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">
+ <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 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>
+
+
+ <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.arriveTime || '-' }}</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>
+
+
+ </view>
+</template>
+
+<style lang="scss" scoped>
+ .page-delivery {
+ .delivery-item {
+ .title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #000000;
+ line-height: 40rpx;
+ }
+
+ .form-item {
+ line-height: 40rpx;
+ font-size: 28rpx;
+ color: #666;
+ display: flex;
+
+ .form-item-label {
+ min-width: 120rpx;
+ }
+
+ .form-item-label::after {
+ content: ":";
+ margin-right: 20rpx;
+ }
+ }
+
+ .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
diff --git a/sub_pages/partner/delivery/delivery.vue b/sub_pages/partner/delivery/delivery.vue
index b57b313..8471586 100644
--- a/sub_pages/partner/delivery/delivery.vue
+++ b/sub_pages/partner/delivery/delivery.vue
@@ -23,6 +23,8 @@
// 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: {}
@@ -59,9 +61,9 @@
this.$nextTick(() => {
if (this.selecttoday) {
- this.listApi = '/api/supplier/delivery/list/today'
+ this.listApi = '/api/delivery/check/list/today'
} else {
- this.listApi = '/api/supplier/delivery/list'
+ this.listApi = '/api/delivery/check/list'
}
this.refreshList()
})
@@ -90,7 +92,8 @@
},
toDetail(item) {
uni.navigateTo({
- url: `/sub_pages/partner/delivery/delivery-detail?id=${item.id}`
+ url: `/sub_pages/partner/delivery/delivery-supplier-detail?supplierId=${item.id}&range=` + (this
+ .selecttoday ? 'today' : '')
})
},
async compelete(item) {
@@ -106,11 +109,11 @@
})
if (code === 0) {
this.$message.showToast('完成成功')
- let tmp = this
- setTimeout(async () => {
- await tmp.refreshList()
- tmp.$forceUpdate()
- }, 500)
+ // let tmp = this
+ // setTimeout(async () => {
+ // await tmp.refreshList()
+ // tmp.$forceUpdate()
+ // }, 500)
}
}
}
@@ -129,12 +132,7 @@
</u-input>
</view>
</view>
- <!-- <view class="m-t-12">
- <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">
<view class="flex1 input">
<u-input placeholder="请输入货位号" v-model="query.warehouseLocationCode">
@@ -148,6 +146,12 @@
配送单状态:{{ 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">
+ <view class="m-l-a m-r-20 w-fit flex">
+ <radio :checked="selecttoday" @click="changeSelecrRange"></radio>
+ <view>只查看今日</view>
</view>
</view>
@@ -172,43 +176,48 @@
</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> -->
<view class="line-gray"></view>
<view class="flex buttons">
- <view class="button button-1 m-l-a m-r-15"
- 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>
--
Gitblit v1.9.3