This commit is contained in:
aihe 2024-05-08 15:27:30 +08:00
parent 224449d74d
commit aaaa63663f
8 changed files with 164 additions and 61 deletions

View File

@ -7,9 +7,13 @@
computed: {
title() {
let title = this.value
!this.value && this.list && (title = '-');
if(this.value && this.list) {
title = this.list.filter(t=> t.val == this.value || this.value.indexOf(t.val) > -1).map(t=> t.title).join(",")
let val = this.value
!val && this.list && (title = '-');
if(val && this.list) {
if(!Array.isArray() && val.split) {
val = val.split(",")
}
title = this.list.filter(t=> t.val == val || (val.indexOf && val.indexOf(t.val) > -1)).map(t=> t.title).join(",")
}
return title
}

View File

@ -22,9 +22,13 @@
computed: {
title() {
let title = this.value
!this.value && this.list && (title = '请选择');
if(this.value && this.list) {
title = this.list.filter(t=> t.val == this.value || this.value.indexOf(t.val) > -1).map(t=> t.title).join(",")
let val = this.value
!val && this.list && (title = '请选择');
if(val && this.list) {
if(!Array.isArray() && val.split) {
val = val.split(",")
}
title = this.list.filter(t=> t.val == val || (val.indexOf && val.indexOf(t.val) > -1)).map(t=> t.title).join(",")
}
return title
}

View File

@ -3,15 +3,15 @@
<tpx-layout>
<template v-slot:body>
<view class="blcok-white-noradius" style="margin-top: 0;">
<u-row justify="between">
<u-row v-if="submitParam.dispatchOrSendManCode" justify="between">
<view style="flex:1;">
<tpx-scan-input v-model:value="orderNo" placeholder="请输入或扫码"
<tpx-scan-input v-model:value="submitParam.billCode" placeholder="请输入或扫码"
@change="handleScanValChange" iconPos="left"></tpx-scan-input>
</view>
</u-row>
<u-row custom-style="margin-top:20rpx;">
<view style="flex: 1;">
<tpx-select placeholder="派件员" :isWhite="true"></tpx-select>
<tpx-select v-model:value="submitParam.dispatchOrSendManCode" v-model:resObject="paiRes" :getListFun="getRSDStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择派件员" :isWhite="true"></tpx-select>
</view>
</u-row>
<view class="mt-20 clr-sub">
@ -50,10 +50,10 @@
<view v-for="(item, index) in resData.list" class="yditem">
<u-row>
<u-col span="8">
<text class="">T2919292</text>
<text class="">{{item.billCode}}</text>
</u-col>
<u-col span="4">
<text class="clr-sub">12-18 13:18</text>
<text class="clr-sub">{{item.scanDate}}</text>
</u-col>
</u-row>
</view>
@ -67,7 +67,6 @@
</template>
</tpx-layout>
</tpx-page>
</template>
<script>
@ -75,18 +74,23 @@
import dayjs from "dayjs"
import BoOperatorTmp from "@/components/buns-order-templates/bo-operator-tmp"
import * as apiService from "@/common/api"
import { scanTypeEnum, getScanParams, ansScanResponse } from "./scanUtil"
export default {
components:{ BoOperatorTmp },
props: {
},
computed: {
},
data() {
return {
orderNo: '',
paiRes: { list: [] } ,
submitParam: {
billCode: '',
dispatchOrSendManCode: '',
},
pageLoading: true,
queryOption: {
billCode: '', // 运单id
@ -99,8 +103,7 @@
},
onShareAppMessage() {
return {
// title: '',
// path: 'TODO'
}
},
onLoad(option) {
@ -108,15 +111,35 @@
this.initData();
},
onUnload() {
},
methods: {
getRSDStaffList: apiService.getRSDStaffList,
initData() {
this.orderNo = this.queryOption.billCode || this.queryOption.orderSn
this.submitParam.billCode = this.queryOption.billCode || this.queryOption.orderSn
},
async handleSubmit(val) {
let extParam = {}
val && (extParam.billCode = val);
let daoParam = getScanParams(scanTypeEnum.daoJian, { ...this.submitParam, ...extParam })
let daoRes = await apiService.scanRecord({...daoParam, _loading: true})
let { bl: daoBl, resItem: daoResItem } = ansScanResponse({ res: daoRes })
if(daoBl) {
let paiParam = getScanParams(scanTypeEnum.paiJian, { ...this.submitParam, ...extParam })
let paiRes = await apiService.scanRecord({...paiParam, _loading: true})
let { bl, resItem } = ansScanResponse({ res: paiRes, title: "到派件" })
if(bl) {
this.resData.list.push({ ...resItem })
this.resetForm()
}
}
},
handleScanValChange: debounce(function(val){
val
val && (this.handleSubmit(val))
}),
resetForm() {
this.submitParam.billCode = ''
}
}
}
</script>

View File

@ -5,7 +5,7 @@
<view class="blcok-white-noradius" style="margin-top: 0;">
<u-row justify="between">
<view style="flex:1;">
<tpx-scan-input v-model:value="orderNo" placeholder="请输入或扫码"
<tpx-scan-input v-model:value="submitParam.billCode" placeholder="请输入或扫码"
@change="handleScanValChange" iconPos="left"></tpx-scan-input>
</view>
<view style="">
@ -40,10 +40,10 @@
<view v-for="(item, index) in resData.list" class="yditem">
<u-row>
<u-col span="8">
<text class="">T2919292</text>
<text class="">{{item.billCode}}</text>
</u-col>
<u-col span="4">
<text class="clr-sub">12-18 13:18</text>
<text class="clr-sub">{{item.scanDate}}</text>
</u-col>
</u-row>
</view>
@ -64,6 +64,7 @@
import dayjs from "dayjs"
import BoOperatorTmp from "@/components/buns-order-templates/bo-operator-tmp"
import * as apiService from "@/common/api"
import { scanTypeEnum, getScanParams, ansScanResponse } from "./scanUtil"
export default {
components:{ BoOperatorTmp },
props: {
@ -74,7 +75,9 @@
},
data() {
return {
orderNo: '',
submitParam: {
billCode: ''
},
pageLoading: true,
queryOption: {
billCode: '', // 运单id
@ -100,11 +103,25 @@
},
methods: {
initData() {
this.orderNo = this.queryOption.billCode || this.queryOption.orderSn
this.submitParam.billCode = this.queryOption.billCode || this.queryOption.orderSn
},
async handleSubmit(val) {
let extParam = {}
val && (extParam.billCode = val);
let scnParam = getScanParams(scanTypeEnum.daoJian, { ...this.submitParam, ...extParam })
let res = await apiService.scanRecord({...scnParam, _loading: true})
let { bl, resItem } = ansScanResponse({ res, title: "到件" })
if(bl) {
this.resData.list.push({ ...resItem })
this.resetForm()
}
},
handleScanValChange: debounce(function(val){
val
val && (this.handleSubmit(val))
}),
resetForm() {
this.submitParam.billCode = ''
}
}
}
</script>

View File

@ -3,15 +3,15 @@
<tpx-layout>
<template v-slot:body>
<view class="blcok-white-noradius" style="margin-top: 0;">
<u-row justify="between">
<u-row v-if="submitParam.dispatchOrSendManCode" justify="between">
<view style="flex:1;">
<tpx-scan-input v-model:value="orderNo" placeholder="请输入或扫码"
<tpx-scan-input v-model:value="submitParam.billCode" placeholder="请输入或扫码"
@change="handleScanValChange" iconPos="left"></tpx-scan-input>
</view>
</u-row>
<u-row custom-style="margin-top:20rpx;">
<view style="flex: 1;">
<tpx-select placeholder="派件员" :isWhite="true"></tpx-select>
<tpx-select v-model:value="submitParam.dispatchOrSendManCode" v-model:resObject="paiRes" :getListFun="getRSDStaffList" :transKeyVal="{valKey: 'empCode',titleKey: 'empName'}" placeholder="请选择派件员" :isWhite="true"></tpx-select>
</view>
</u-row>
<view class="mt-20 clr-sub">
@ -50,10 +50,10 @@
<view v-for="(item, index) in resData.list" class="yditem">
<u-row>
<u-col span="8">
<text class="">T2919292</text>
<text class="">{{item.billCode}}</text>
</u-col>
<u-col span="4">
<text class="clr-sub">12-18 13:18</text>
<text class="clr-sub">{{item.scanDate}}</text>
</u-col>
</u-row>
</view>
@ -74,6 +74,8 @@
import dayjs from "dayjs"
import BoOperatorTmp from "@/components/buns-order-templates/bo-operator-tmp"
import * as apiService from "@/common/api"
import { scanTypeEnum, getScanParams, ansScanResponse } from "./scanUtil"
export default {
components:{ BoOperatorTmp },
props: {
@ -84,7 +86,11 @@
},
data() {
return {
orderNo: '',
paiRes: { list: [] } ,
submitParam: {
billCode: '',
dispatchOrSendManCode: '',
},
pageLoading: true,
queryOption: {
billCode: '', // 运单id
@ -108,12 +114,27 @@
},
methods: {
getRSDStaffList: apiService.getRSDStaffList,
initData() {
this.orderNo = this.queryOption.billCode || this.queryOption.orderSn
this.submitParam.billCode = this.queryOption.billCode || this.queryOption.orderSn
},
async handleSubmit(val) {
let extParam = {}
val && (extParam.billCode = val);
let scnParam = getScanParams(scanTypeEnum.paiJian, { ...this.submitParam, ...extParam })
let res = await apiService.scanRecord({...scnParam, _loading: true})
let { bl, resItem } = ansScanResponse({ res, title: "派件" })
if(bl) {
this.resData.list.push({ ...resItem })
this.resetForm()
}
},
handleScanValChange: debounce(function(val){
val
val && (this.handleSubmit(val))
}),
resetForm() {
this.submitParam.billCode = ''
}
}
}
</script>

View File

@ -73,6 +73,7 @@
import BoDetailTmp from "@/components/buns-order-templates/bo-detail-tmp"
import BpeGoodsizeTmp from "@/components/buns-post-edit-templates/bpe-goodsize-tmp"
import * as apiService from "@/common/api"
import { scanTypeEnum, getScanParams, ansScanResponse } from "./scanUtil"
export default {
components: { BpeAddressjiamiTmp, BpeGooditemEditTmp, BpeGoodphotoTmp, BoDetailTmp, BpeGoodsizeTmp },
@ -131,17 +132,19 @@
},
async handleLanShou() {
await apiService.submitOrder({...this.submitParam, _loading: true})
let scnParam = {
scanType: 10, // 揽收
opType: 2,
scanData: [{
billCode: this.submitParam.billCode,
dispatchOrSendManCode: this.submitParam.dispatchOrSendManCode,
scanDate: dayjs().format("YYYY-MM-DD HH:mm:ss")
}]
let scnParam = getScanParams(scanTypeEnum.lanShou, {
billCode: this.submitParam.billCode,
dispatchOrSendManCode: this.submitParam.dispatchOrSendManCode,
})
let res = await apiService.scanRecord({...scnParam, _loading: true})
let { bl, resItem } = ansScanResponse({ res, title: "揽收" })
if(bl) {
this.resetForm()
}
await apiService.scanRecord({...scnParam, _loading: true})
this.showToast('揽收成功')
},
resetForm() {
this.submitParam = {}
this.orderNo = ''
}
}
}

View File

@ -71,6 +71,8 @@
import dayjs from "dayjs"
import BoOperatorTmp from "@/components/buns-order-templates/bo-operator-tmp"
import * as apiService from "@/common/api"
import { scanTypeEnum, getScanParams, ansScanResponse } from "./scanUtil"
export default {
components:{ BoOperatorTmp },
props: {
@ -115,29 +117,22 @@
this.submitParam.billCode = this.queryOption.billCode || this.queryOption.orderSn
},
async handleSubmit(val) {
this.submitParam.scanDate = dayjs().format("YYYY-MM-DD HH:mm:ss")
let scnParam = {
scanType: 20, // 发件
opType: 2,
scanData: [{
...this.submitParam
}]
}
val && (scnParam.billCode = val);
let extParam = {}
val && (extParam.billCode = val);
let scnParam = getScanParams(scanTypeEnum.faJian, { ...this.submitParam, ...extParam })
let res = await apiService.scanRecord({...scnParam, _loading: true})
let result = res?.data?.scanResult?.[0]?.result
if(result == "success") {
this.resData.list.push({
...this.submitParam
})
this.showToast('发件成功')
} else {
this.showToast(res?.data?.scanResult?.[0]?.message || '发件失败')
let { bl, resItem } = ansScanResponse({ res, title: "发件" })
if(bl) {
this.resData.list.push({ ...resItem })
this.resetForm()
}
},
handleScanValChange: debounce(function(val){
this.handleSubmit(val)
val && (this.handleSubmit(val))
}),
resetForm() {
this.submitParam.billCode = ''
}
}
}
</script>

View File

@ -0,0 +1,36 @@
import dayjs from "dayjs"
import { showToast } from "@/common/untool"
export const scanTypeEnum = {
lanShou: 10, // 揽收
faJian: 20, // 发件
daoJian: 30, // 到件
paiJian: 40, // 派件
}
export const getScanParams = (type, model = {})=> {
return {
scanType: type, // 扫描类型
opType: 2, // 确认 动作
scanData: [{
...model,
scanDate: dayjs().format("YYYY-MM-DD HH:mm:ss")
}]
}
}
export const ansScanResponse = ({ res, title })=> {
let resItem = res?.data?.scanResult?.[0] || {}
let result = resItem?.result
let bl = false
if(result == "success") {
bl = true
title && showToast(`${title}成功`)
} else {
this.showToast(res?.data?.scanResult?.[0]?.message || `${title}失败`)
}
return {
bl,
resItem,
}
}