From 05bd41aab8c9dba2cf7afcd78493415761f11d9d Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期四, 26 九月 2024 08:54:08 +0800
Subject: [PATCH] update 供应商刷新问题
---
sub_pages/partner/delivery/delivery-detail.vue | 360 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 310 insertions(+), 50 deletions(-)
diff --git a/sub_pages/partner/delivery/delivery-detail.vue b/sub_pages/partner/delivery/delivery-detail.vue
index 423f68b..565f2ec 100644
--- a/sub_pages/partner/delivery/delivery-detail.vue
+++ b/sub_pages/partner/delivery/delivery-detail.vue
@@ -9,19 +9,21 @@
orderNo: '',
stationName: '',
arriveRemarks: '',
+ arriveImages: [],
},
id: '',
form: {
id: '',
status: '',
- checkImageList: [],
- checkRemarks: '',
+ pictureList: [],
+ remarks: '',
deductAmount: 0,
},
- check_status: [{
- label: '退回',
- value: 'back'
- },
+ check_status: [
+ // {
+ // label: '退回',
+ // value: 'back'
+ // },
{
label: '降级',
value: 'reduce'
@@ -31,14 +33,35 @@
value: 'lack'
},
{
+ label: '补货',
+ value: 'replace'
+ },
+ {
label: '完成',
value: 'ok'
}
- ]
+ ],
+ target_levels: [],
};
+ },
+ async onShow() {
+ if (this.sign['delivery']) {
+ await this.$store.dispatch('sign_clear', 'delivery');
+ this.refreshList()
+ }
},
async onLoad(options) {
this.id = options.id || ''
+ // this.form.status='reduce'
+ // this.$refs.popup_form.open()
+ this.$http.request('get', '/api/code/value', {
+ params: {
+ type: 'FLOWER_LEVEL'
+ }
+ }).then(res => {
+ var data = res.data || []
+ this.target_levels = data
+ })
await this.init()
},
@@ -52,44 +75,150 @@
},
async clickCheck(item, status) {
+ if (status === 'ok') {
+ //完成质检,不用上传东西
+ await this.$message.confirm('确定完成此商品的质检')
+ this.$message.showLoading()
+ const {
+ code,
+ data
+ } = await this.$http.request('get', '/api/delivery/check/info/' + status, {
+ params: {
+ orderItemId: item.id
+ }
+ })
+ this.$message.hideLoading()
+ if (code === 0) {
+ await this.$message.showToast('操作成功')
+ this.init()
+ // setTimeout(() => {
+ // this.init()
+ // }, 500)
+ }
+ return
+ }
this.form = {
- id: item.id || '',
+ // id: item.id || '',
+ // status: status,
+ // statusStr: '',
+ // checkImageList: item.checkImageList || [],
+ // checkRemarks: item.checkRemarks || '',
+ // deductAmount: item.deductAmount || 0,
+
+ orderItemId: item.id || '',
+
status: status,
statusStr: '',
- checkImageList: item.checkImageList || [],
- checkRemarks: item.checkRemarks || '',
- deductAmount: item.deductAmount || 0,
+ num: 0,
+ remarks: '',
+ pictureList: [],
+
+
}
+ if (status === 'reduce') {
+ this.form = {
+ ...this.form,
+ deductAmount: 0,
+ targetLevel: '',
+ pictureList: [],
+ }
+ }
+
+
this.check_status.forEach(tmp => {
if (tmp.value === this.form.status) {
this.form.statusStr = tmp.label
}
})
- //显示
- this.$refs.popup_form.open()
- },
- async submitCheck() {
- if (isNaN(parseFloat(this.form.deductAmount)) || this.form.deductAmount < 0) {
- this.$message.showToast('扣款金额需要大于等于0')
- return
- }
+ //20240819更新一下操作情况
+ //先获取详情,再设置参数
this.$message.showLoading()
const {
- code
- } = await this.$http.request('post', '/api/delivery/list/view/check', {
- data: {
- ...this.form,
- deductAmount: parseFloat(this.form.deductAmount) || 0
+ code,
+ data
+ } = await this.$http.request('get', '/api/delivery/check/info/' + status, {
+ params: {
+ orderItemId: item.id
}
})
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()
+
+ }
+
+ },
+ async submitCheck() {
+ if (this.form.status == 'reduce') {
+ if (isNaN(parseFloat(this.form.deductAmount)) || this.form.deductAmount < 0) {
+ this.$message.showToast('扣款金额需要大于等于0')
+ return
+ }
+ if (this.form.deductAmount) {
+ if ((parseInt(this.form.deductAmount * 100) / 100) != this.form.deductAmount) {
+ this.$message.showToast('扣款金额最多2位小数字')
+ return
+ }
+ }
+ if (parseInt(this.form.deductAmount * 100) / 100 != this.form.deductAmount) {
+
+ }
+ if (isNaN(parseInt(this.form.num)) || this.form.num < 0) {
+ this.$message.showToast('数量需要大于等于0')
+ return
+ }
+ if (!this.form.pictureList || this.form.pictureList.length < 1) {
+ this.$message.showToast('未上传图片')
+ return
+ }
+ if (!this.form.targetLevel) {
+ this.$message.showToast('未选择降级等级')
+ return
+ }
+ }
+ if (this.form.status == 'lack') {
+ if (!this.form.pictureList || this.form.pictureList.length < 1) {
+ this.$message.showToast('未上传图片')
+ return
+ }
+ }
+ if (this.form.status == 'replace' || this.form.status == 'lack') {
+ if (isNaN(parseInt(this.form.num)) || this.form.num < 0) {
+ this.$message.showToast('数量需要大于等于0')
+ return
+ }
+ }
+
+
+ // '/api/delivery/list/view/check'
+ this.$message.showLoading()
+ const {
+ code
+ } = await this.$http.request('post', '/api/delivery/check/info/do/' + this.form.status, {
+ data: {
+ ...this.form
+ }
+ })
+ this.$message.hideLoading()
+ if (code === 0) {
this.$refs.popup_form.close()
- setTimeout(() => {
- this.init()
- }, 200)
+ await this.$store.dispatch('sign_add', 'delivery')
+
+ await this.$message.showToast('操作成功')
+ this.init()
+
+ // setTimeout(() => {
+ // this.init()
+ // }, 500)
}
},
async init() {
@@ -100,14 +229,24 @@
this.$message.hideLoading()
if (data) {
+ var t = data || {}
+ if (!t.arriveImages) {
+ t.arriveImages = []
+ } else {
+ try {
+ t.arriveImages = JSON.parse(t.arriveImages) || []
+ } catch (e) {
+ console.log('parse arriveImages', e)
+ }
+ }
this.dto = {
...this.dto,
- ...data
+ ...t
}
}
},
deleteCheckImage(index) {
- this.form.checkImageList.splice(index, 1)
+ this.form.pictureList.splice(index, 1)
},
uploadCheckImage() {
let that = this
@@ -130,7 +269,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 => {
@@ -140,7 +279,17 @@
}
}
})
+ },
+ printDeliveryOrder(item) {
+ // this.$message.showToast('敬请期待')
+ var arr = []
+ arr.push(item)
+ this.$storage.setItem('cache_delivery_order_print', JSON.stringify(arr))
+ uni.navigateTo({
+ url: '/sub_pages/supplier/print/print-list'
+ })
}
+
}
}
</script>
@@ -149,12 +298,20 @@
<view v-if="dto.id">
<view class="delivery-info flex">
<view class="flex1 desc">
- <view>供货商名称:{{ dto.stationName }}</view>
- <view>订单号:{{ dto.orderNo }}</view>
- <view>供货商备注:{{ dto.arriveRemarks }}</view>
+ <view>供货商名称:{{ dto.stationName ||''}}</view>
+ <view>订单号:{{ dto.orderNo ||''}}</view>
+ <view>供货商备注:{{ dto.arriveRemarks ||''}}</view>
+ <view>入位时间:{{ dto.arriveTime ||'-'}}</view>
</view>
<view class="m-l-15 m-r-0 station">
<view>{{ dto.stationName }}</view>
+ </view>
+
+ </view>
+ <view class="m-t-12 flex" v-if="dto.arriveImages&&dto.arriveImages.length>0">
+ <view class="m-t-12 m-r-10 " v-for="(timg,index) of dto.arriveImages" :key="index">
+ <image class="arrive-img" :src="timg" @click.stop="previewImg(timg)">
+ </image>
</view>
</view>
<view v-for="(item,index) of dto.items" :key="index" class="delivery-order-item m-t-12">
@@ -182,42 +339,83 @@
<view class="value">{{ item.num || 0 }}</view>
</view>
+ </view>
+ <view class="each-list">
<view class="each-item">
<view class="label">价格</view>
- <view class="value">{{ item.price || '-' }}</view>
+ <view class="value">¥{{ item.price || '-' }}</view>
+
+ </view>
+ <view class="each-item">
+ <view class="label-color">降级</view>
+ <view class="value-color">{{ item.reduceNum || 0 }}</view>
+ </view>
+ <view class="each-item">
+ <view class="label-color">缺货</view>
+ <view class="value-color">{{ item.lackNum || 0 }}</view>
+
+ </view>
+ <view class="each-item">
+ <view class="label-color">补货</view>
+ <view class="value-color">{{ item.replaceNum || 0 }}</view>
+
</view>
</view>
+ </view>
+ </view>
+ <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||true">
+ <view class="button text-center" v-for="button of check_status" :key="button.value"
+ @click.stop="clickCheck(item,button.value)">{{ button.label }}
</view>
</view>
<view class="line-gray">
</view>
- <view class="buttons">
- <view class="button text-center" v-for="button of check_status" :key="button.value"
- @click.stop="clickCheck(item,button.value)">{{ button.label }}
- </view>
+ <view class="buttons m-r-0 m-l-a w-fit">
+ <view class="button button-0 " @click="printDeliveryOrder(item)">打印</view>
</view>
</view>
+
</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">
- <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: 140rpx;margin-right: 10rpx;">
+ 降级等级
</view>
- <view class="form-item-value">
- <input v-model="form.checkRemarks" placeholder="请输入质检备注" class="form-input"></input>
+ <view class="form-item-value flex ">
+ <view class="value-item" @click="()=>{
+ if(form.targetLevel!==query.value){
+ form.targetLevel = each.value
+ }
+ }" :class="[form.targetLevel==each.value?'cur':'']" v-for="(each, j) in target_levels" :key="j">
+ {{ each.label || '-' }}
+ </view>
+
</view>
</view>
- <view class="form-item">
+ <view class="form-item"
+ v-if="form.status==='reduce' || form.status==='replace' || form.status==='lack'">
<view class="form-item-label require">
- 扣款金额
+ 数量
+ </view>
+ <view class="form-item-value">
+ <input v-model="form.num" placeholder="请输入数量" type="number" class="form-input"></input>
+
+ </view>
+ </view>
+ <view class="form-item" v-if="form.status==='reduce'">
+ <view class="form-item-label require">
+ 每扎扣款
</view>
<view class="form-item-value">
<input v-model="form.deductAmount" placeholder="请输入扣款金额" type="digit"
@@ -225,7 +423,16 @@
</view>
</view>
- <view class="form-item">
+ <view class="form-item"
+ v-if="form.status==='reduce'||form.status==='replace' || form.status==='lack'">
+ <view class="form-item-label">
+ 质检备注
+ </view>
+ <view class="form-item-value">
+ <input v-model="form.remarks" placeholder="请输入质检备注" class="form-input"></input>
+ </view>
+ </view>
+ <view class="form-item" v-if="form.status==='reduce'||form.status==='lack'">
<view class="form-item-label require">
图片
</view>
@@ -233,8 +440,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>
@@ -250,6 +457,13 @@
<style lang="scss" scoped>
.delivery-detail-page {
+ .arrive-img {
+ width: 96rpx;
+ height: 96rpx;
+ border-radius: 4rpx;
+ border: 2rpx dashed #CECECE;
+ }
+
.delivery-order-item {
.title {
font-weight: 600;
@@ -279,6 +493,12 @@
font-size: 24rpx;
color: #666666;
line-height: 34rpx;
+ }
+
+ .button-0 {
+ color: #fff;
+ border: 2rpx solid #20613D;
+ background: #20613D;
}
}
@@ -319,6 +539,20 @@
font-size: 24rpx;
color: #666666;
}
+
+ .label-color {
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #FD191C;
+ text-align: left;
+ padding-right: 10rpx;
+ }
+
+ .value-color {
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #FD191C;
+ }
}
}
}
@@ -347,6 +581,32 @@
height: 36rpx;
line-height: 36rpx;
}
+
+ .value-item {
+ min-width: 152rpx;
+ width: fit-content;
+ text-align: center;
+ height: 58rpx;
+ background: #F1F5F2;
+ border-radius: 36rpx;
+ margin-bottom: 18rpx;
+ font-weight: 400;
+ font-size: 28rpx;
+ line-height: 58rpx;
+ padding: 8rpx 24rpx;
+ color: #33a868;
+ margin-left: 16rpx;
+ margin-right: 16rpx;
+ border: 2rpx solid #F1F5F2;
+ }
+
+ .value-item.cur {
+ background: #E1F0E7;
+ border-radius: 36rpx;
+ border: 2rpx solid #20613D;
+ color: #20613D;
+
+ }
}
}
--
Gitblit v1.9.3