@@ -2,9 +2,13 @@
< div class = "app-container" >
< el-splitter >
< el-splitter-panel size = "40%" >
< el-form :model = "queryParams" ref = "queryRef" v-show = "showSearch" label-width="90" >
< el-form
:model = "queryParams"
ref = "queryRef"
v-show = "showSearch"
label -width = " 90 "
>
< el-row >
< el-col :span = "10" >
< el-form-item label = "单据号" prop = "billNoCk" >
< el-input
@@ -17,26 +21,70 @@
< / el-col >
< el-col :span = "14" >
< el-form-item >
< el-button type = "primary" icon = "Search" @click ="handleQuery" > 搜索 < / el -button >
< el-button type = "primary" icon = "Search" @click ="handleQuery"
> 搜索 < / e l - b u t t o n
>
< el-button icon = "Refresh" @click ="resetQuery" > 重置 < / el -button >
< / el-form-item >
< / el-col >
< / el-row >
< el-row
:gutter = "10"
class = "mb8"
style = "justify-content: flex-end; margin-right: 0"
>
< el-col :span = "1.5" >
< el-button
type = "primary"
plain
icon = "plus"
@click ="delieryReceipt()"
:disabled = "multipleBill"
> 生成配送单 < / e l - b u t t o n
>
< / el-col >
<!-- < right-toolbar v -model :showSearch = "showSearch" @queryTable ="getList" > < / right -toolbar > -- >
< / el-row >
< / el-form >
< el-table v-loading = "loading" highlight-current-row :data="billList" @row-dblclick="billClick" >
< el-table-column label = "单据号" align = "center" prop = "billNo" width = "200" / >
< el-table
v-loading = "loading"
highlight -current -row
:data = "billList"
ref = "billTable"
@ row -dblclick = " billClick "
@select ="handleBillSelectionChange"
@ select -all = " handleBillSelectionChange "
>
< el-table-column type = "selection" width = "55" align = "center" / >
< el-table-column
label = "单据号"
align = "center"
prop = "billNo"
width = "200"
/ >
< el-table-column label = "库存状态" align = "center" >
< template # default = "scope" >
< span > { { isChukuFun ( scope . row . isDelivery ) } } < / span >
< / template >
< / el-table-column >
< el-table-column label = "理货员" align = "center" prop = "operatorName" / >
< el-table-column label = "出库类型" align = "center" prop = "operationTypeName" width = "150" / >
< el-table-column label = "出库时间" align = "center" prop = "operationTime" width = "170" >
< el-table-column
label = "出库类型"
align = "center"
prop = "operationTypeName"
width = "150"
/ >
< el-table-column
label = "出库时间"
align = "center"
prop = "operationTime"
width = "170"
>
< template # default = "scope" >
< span > { { parseTime ( scope . row . operationTime , '{y}-{m}-{d} {h}:{i}:{s}' ) } } < / span >
< span > { {
parseTime ( scope . row . operationTime , "{y}-{m}-{d} {h}:{i}:{s}" )
} } < / span >
< / template >
< / el-table-column >
< / el-table >
@@ -57,36 +105,102 @@
type = "primary"
plain
icon = "plus"
size = "mini"
@click ="delieryReceipt()"
:disabled = "multiple"
> 生成配送单 < /el-button >
> 生成配送单 < /e l - b u t t o n
>
< / el-col >
< / el-row >
< el-table v-loading = "detailLoading" show-overflow-tooltip :data="stockList" @selection-change="handleSelectionChange" >
< el-table
v-loading = "detailLoading"
show -overflow -tooltip
:data = "stockList"
ref = "detailTable"
@select ="handleSelectionChange"
@ select -all = " handleSelectionChange "
>
< el-table-column type = "selection" width = "55" align = "center" / >
< el-table-column label = "库存状态" align = "center" >
< template # default = "scope" >
< span > { { isChukuFun ( scope . row . bizType ) } } < / span >
< / template >
< / el-table-column >
< el-table-column label = "项目号" align = "center" prop = "xmNo" width = "150" / >
< el-table-column label = "项目描述" align = "center" prop = "xmMs" width = "250" / >
< el-table-column label = "物料号" align = "center" prop = "wlNo" width = "100" / >
< el-table-column label = "物料描述" align = "center" prop = "wlMs" width = "250" / >
< el-table-column label = "供应商名称" align = "center" prop = "gysMc" width = "20 0" / >
< el-table-column
label = "项目号"
align = "center"
prop = "xmNo"
width = "15 0"
/ >
< el-table-column
label = "项目描述"
align = "center"
prop = "xmMs"
width = "250"
/ >
< el-table-column
label = "物料号"
align = "center"
prop = "wlNo"
width = "100"
/ >
< el-table-column
label = "物料描述"
align = "center"
prop = "wlMs"
width = "250"
/ >
< el-table-column
label = "供应商名称"
align = "center"
prop = "gysMc"
width = "200"
/ >
< el-table-column label = "合同单价" align = "center" prop = "htDj" / >
< el-table-column label = "订单编号" align = "center" prop = "sapNo" width = "150" / >
< el-table-column
label = "订单编号"
align = "center"
prop = "sapNo"
width = "150"
/ >
< el-table-column label = "计量单位" align = "center" prop = "dw" / >
< el-table-column label = "实际出库数量" align = "center" prop = "realQty" width = "120" / >
< el-table-column label = "库位码" align = "center" prop = "pcode" width = "120" / >
< el-table-column
label = "实际出库数量"
align = "center"
prop = "realQty"
width = "120"
/ >
< el-table-column
label = "库位码"
align = "center"
prop = "pcode"
width = "120"
/ >
< el-table-column label = "托盘码" align = "center" prop = "trayCode" / >
< el-table-column label = "身份码" align = "center" prop = "entityId" width = "200" / >
< el-table-column
label = "身份码"
align = "center"
prop = "entityId"
width = "200"
/ >
<!-- < el-table-column label = "出库类型" align = "center" prop = "operationTypeName" width = "150" / > -- >
< el-table-column label = "物资类型" align = "center" prop = "wlTypeName" width = "120" / >
< el-table-column label = "所属仓库" align = "center" prop = "cangkuName" width = "150" >
< el-table-column
label = "物资类型"
align = "center"
prop = "wlTypeName"
width = "120"
/ >
< el-table-column
label = "所属仓库"
align = "center"
prop = "cangkuName"
width = "150"
>
< template # default = "scope" >
< span > { { scope . row . parentWarehouseName } } - { { scope . row . warehouseName } } < / span >
< span
> { { scope . row . parentWarehouseName } } - { {
scope . row . warehouseName
} } < / s p a n
>
< / template >
< / el-table-column >
<!-- < el-table-column label = "操作时间" align = "center" prop = "operationTime" width = "200" >
@@ -95,15 +209,26 @@
< / template >
< / el-table-column > -- >
<!-- < el-table-column label = "库龄" align = "center" prop = "stockAge" / > -- >
< el-table-column label = "备注" align = "center" prop = "remark" width = "200" / >
< el-table-column
label = "备注"
align = "center"
prop = "remark"
width = "200"
/ >
< / el-table >
< / el-splitter-panel >
< / el-splitter >
< el-dialog title = "生成配送单" v-model = "dialogPicDetailVisible" >
< div class = "container" >
< div class = "billBox" > < span > 出库单号 : < / span > < span > { { detailQueryParams . billNoCk } } < / span > < / div >
< el-form :model = "delieryData" ref = "form" :rules = "rules" label -width = " 100 " >
< div class = "billBox" >
< span > 出库单号 : < / span > < span > { { detailQueryParams . billNoCk } } < / span >
< / div >
< el-form
:model = "delieryData"
ref = "form"
:rules = "rules"
label -width = " 100 "
>
< el-divider content -position = " left " > 配送信息 < / el-divider >
< el-row >
< el-col :span = "12" >
@@ -112,7 +237,6 @@
v-model = "delieryData.originName"
placeholder = "请输入起点"
clearable
/ >
< / el-form-item >
< / el-col >
@@ -129,8 +253,17 @@
< el-row >
< el-col :span = "12" >
< el-form-item label = "配送人" prop = "shipperName" >
< el-select v-model = "delieryData.shipperName" placeholder="请选择配送人" clearable >
< el-option v-for = "dict in personList" :key="dict.userId" :label="dict.userName" :value="dict.us erName" / >
< el-select
v-model = "delieryData.shipp erName"
placeholder = "请选择配送人"
clearable
>
< el-option
v-for = "dict in personList"
:key = "dict.userId"
:label = "dict.userName"
:value = "dict.userName"
/ >
< / el-select >
< / el-form-item >
< / el-col >
@@ -178,13 +311,12 @@
< / el-col >
< el-col :span = "12" >
< el-form-item label = "配送日期" prop = "deliveryDate" >
< el-date-picker
v-model = "delieryData.deliveryDate"
type = "date"
format = "YYYY-MM-DD"
value -format = " YYYY -MM -DD "
style = "width: 100%; "
style = "width: 100%"
/ >
< / el-form-item >
< / el-col >
@@ -193,20 +325,12 @@
< el-row >
< el-col :span = "12" >
< el-form-item label = "重量" prop = "deliveryTon" >
< el-input
v-model = "delieryData.deliveryTon"
/ >
< el-input v-model = "delieryData.deliveryTon" / >
< / el-form-item >
< / el-col >
< el-col :span = "12" >
< el-form-item label = "体积" prop = "goodsSize" >
< el-input
v-model = "delieryData.goodsSize"
/ >
< el-input v-model = "delieryData.goodsSize" / >
< / el-form-item >
< / el-col >
< / el-row >
@@ -221,15 +345,26 @@
< / el-form-item >
< / el-col >
< el-col :span = "4" :offset = "1" >
< el-button type = "primary" @click ="calculateFun(null)" > 计算 < / el -button >
< el-button type = "primary" @click ="calculateFun(null)"
> 计算 < / e l - b u t t o n
>
< / el-col >
< / el-row >
< el-divider content -position = " left " > 计算信息 < / el-divider >
< el-row >
< el-col :span = "12" >
< el-form-item label = "推荐车型" prop = "vehicleTypeId" >
< el-select v-model = "delieryData.vehicleTypeId" placeholder="请选择推荐车型" clearable @change="changeCarType" >
< el -option v-for = "dict in carTypeList" :key="dict.id" :label="dict.typeName" :value="dict.id" / >
< el-form-item label = "推荐车型" v-for = "(item, index) in delieryData.vehicleTypeNameList" :key="index" >
< el -select
v-model = "item.vehicleTypeId"
placeholder = "请选择推荐车型"
@change ="changeCarType($event, index)"
>
< el-option
v-for = "dict in carTypeList"
:key = "dict.id"
:label = "dict.name"
:value = "dict.id"
/ >
< / el-select >
< / el-form-item >
< / el-col >
@@ -257,10 +392,14 @@
< / template >
< script setup name = "outWarehouse" >
import { listBill , listStock , calculate , addDelivery } from "@/api/outWarehouse/outWarehouse" ;
import { listType } from "@/api/document/type"
import {
listBill ,
listStock ,
calculate ,
addDelivery ,
} from "@/api/outWarehouse/outWarehouse" ;
import { listType } from "@/api/document/type" ;
import { listUser } from "@/api/system/user" ; //理货员
import { Plus } from '@element-plus/icons-vue'
// let map = null;
@@ -288,20 +427,16 @@
// });
const { proxy } = getCurrentInstance ( ) ;
const detailLoading = ref ( false ) ; //加载列表详情
const showSearch = ref ( true ) ;
const total = ref ( 0 ) ; //单据
const personList = ref ( [ ] ) ; //理货员下拉数据
const carTypeList = ref ( [ ] ) //推荐车型下拉数据
const dialogPicDetailVisible = ref ( false )
const multiple = ref ( true )
const carTypeList = ref ( [ ] ) ; //推荐车型下拉数据
const dialogPicDetailVisible = ref ( false ) ;
const multiple = ref ( true ) ;
const data = reactive ( {
fileList : [ ] ,
@@ -310,64 +445,86 @@
delieryData : {
deliveryTon : 0 , //重量
goodsSize : 0 , //体积
items : [ ]
items : [ ] ,
vehicleTypeNameList : [ { } ] , //推荐车型列表
} ,
queryParams : {
} ,
queryParams : { } ,
detailQueryParams : {
pageNum : 1 ,
pageSize : 200 ,
id : null ,
billNoCk : ""
billNoCk : "" ,
} ,
rules : {
originName : [ { required : true , message : "起点不能为空" , trigger : "change" } ] ,
originName : [
{ required : true , message : "起点不能为空" , trigger : "change" } ,
] ,
destName : [ { required : true , message : "终点不能为空" , trigger : "change" } ] ,
shipperName : [ { required : true , message : "配送人不能为空" , trigger : "change" } ] ,
shipperPhone : [ { pattern : /^1[3456789]\d{9}$/ , message : '请输入有效的电话号码' , trigger : 'blur' } ] ,
receiverName : [ { required : true , message : "收货人不能为空" , trigger : "change" } ] ,
shipperName : [
{ required : true , message : "配送人不能为空" , trigger : "change" } ,
] ,
shipperPhone : [
{
pattern : /^1[3456789]\d{9}$/ ,
message : "请输入有效的电话号码" ,
trigger : "blur" ,
} ,
] ,
receiverName : [
{ required : true , message : "收货人不能为空" , trigger : "change" } ,
] ,
receiverPhone : [
{ required : true , message : "收货人电话不能为空" , trigger : "change" } ,
{ pattern : /^1[3456789]\d{9}$/ , message : '请输入有效的电话号码' , trigger : 'blur' }
{
pattern : /^1[3456789]\d{9}$/ ,
message : "请输入有效的电话号码" ,
trigger : "blur" ,
} ,
] ,
deliveryTon : [
{ required : true , message : "重量不能为空" , trigger : "change" } ,
] ,
deliveryTon : [ { required : true , message : "重量不能为空" , trigger : "change" } ] ,
goodsSize : [ { required : true , message : "体积不能为空" , trigger : "change" } ] ,
totalKm : [ { required : true , message : "公里数不能为空" , trigger : "change" } ] ,
vehicleTypeId : [ { required : true , message : "推荐车型不能为空" , trigger : "change" } ] ,
suggestFee : [ { required : true , message : "建议费用不能为空" , trigger : "change" } ] ,
deliveryDate : [ { required : true , message : "配送日期不能为空" , trigger : "change" } ]
suggestFee : [
{ required : true , message : "建议费用不能为空" , trigger : "change" } ,
] ,
deliveryDate : [
{ required : true , message : "配送日期不能为空" , trigger : "change" } ,
] ,
} ,
switchRules : {
toCangku : [{ required : true , message : "目标仓库不能为空" , trigger : "change" } ] ,
toPcode : [ { required : true , message : "目标存放位置 不能为空" , trigger : "change" } ] ,
toCangku : [
{ required : true , message : "目标仓库 不能为空" , trigger : "change" } ,
] ,
toPcode : [
{ required : true , message : "目标存放位置不能为空" , trigger : "change" } ,
] ,
} ,
} ) ;
const { queryParams , detailQueryParams , delieryData , rules } = toRefs ( data ) ;
//生成配送单弹框
function delieryReceipt ( ) {
dialogPicDetailVisible . value = true
dialogPicDetailVisible . value = true ;
//理货员下拉数据
listUser ( ) . then ( response => {
personList . value = response . rows
} )
listUser ( ) . then ( ( response ) => {
personList . value = response . rows ;
} ) ;
//车型下拉数据
listType ( { pageNum : 1 , pageSize : 1000 } ) . then ( response => {
carTypeList. value = response. rows
} )
listType ( { pageNum : 1 , pageSize : 1000 } ) . then ( ( response ) => {
// carTypeList.value = response. rows;
} ) ;
}
//双击单据,查询明细
function billClick ( row ) {
stockList . value = row . recordList
stockList . value = row . recordList ;
}
function isChukuFun ( isChuku ) {
// scope.row.isChuku==0?"已入库":(scope.row.isChuku==1?"已出库":"审批中")
return "已出库"
return "已出库" ;
}
const stockList = ref ( [ ] ) ; //明细列表
@@ -376,7 +533,7 @@
/** 查询库存单据主列表 */
function getList ( ) {
loading . value = true ;
listBill ( queryParams . value ) . then ( response => {
listBill ( queryParams . value ) . then ( ( response ) => {
billList . value = response . data ;
loading . value = false ;
} ) ;
@@ -384,6 +541,9 @@
/** 搜索按钮操作 */
function handleQuery ( ) {
queryParams . value . pageNum = 1 ;
multipleBill . value = true ;
multiple . value = true
stockList . value = [ ]
getList ( ) ;
}
@@ -393,146 +553,272 @@
handleQuery ( ) ;
}
const multipleBill = ref ( true ) ;
const billTable = ref ( null ) ;
const detailTable = ref ( null ) ;
// 多选框选中数据
function handleSelectionChange ( selection ) {
delieryData . value . deliveryTon = 0
delieryData . value . goodsSize = 0
function handleBill SelectionChange ( selectionArr ) {
if ( ! multiple . value ) {
proxy . $confirm ( '此操作将删除右侧勾选, 是否继续?' , '提示' , {
confirmButtonText : '确定' ,
cancelButtonText : '取消' ,
type : 'warning' ,
} )
. then ( ( ) => {
detailTable . value . clearSelection ( ) ;
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
let selection = selectionArr
. flatMap ( ( item ) => item . recordList )
if ( selection . length > 0 ) {
for ( let i = 0 ; i < selection . length ; i ++ ) {
delieryData.value.deliveryTon + = Number ( selection [ i ] .weightKg )
delieryData.value.goodsSize + = Number ( selection [ i ].volumeM3 )
delieryData. value . deliveryTon +=
Number ( selection [ i ] . weightKg ) * 1000 * selection [ i ]. realQty ;
delieryData . value . goodsSize +=
Number ( selection [ i ] . volumeM3 ) * 1000 * selection [ i ] . realQty ;
// selection[i].rkInfoId = selection[i].id
selection [ i ]. rkRecordId = selection [ i ].id
selection [ i ]. rkRecordId = selection [ i ]. id ;
}
delieryData.value. items = selection
delieryData. value . items = selection;
// selection.forEach(element => {
// delieryData.value.deliveryTon += Number(element.deliveryTon)
// delieryData.value.goodsSize += Number(element.goodsSize)
// });
} else {
delieryData . value . deliveryTon = 0
delieryData . value . goodsSize = 0
delieryData . value . items = [ ]
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
delieryData . value . items = [ ] ;
}
delieryData . value . deliveryTon = delieryData . value . deliveryTon . toFixed ( 3 ) / 1000
delieryData . value . goodsSize = delieryData . value . goodsSize . toFixed ( 3 )
delieryData . value . deliveryTon = delieryData . value . deliveryTon / 1000000 ;
delieryData . value . goodsSize = delieryData . value . goodsSize / 1000 ;
multiple . value = ! selection . length
multipleBill . value = ! selectionArr . length ;
multiple . value = true
console . log ( selectionArr ) ;
proxy . $message ( {
type : 'success' ,
message : '删除成功!' ,
} )
} )
. catch ( ( ) => {
billTable . value . clearSelection ( ) ;
proxy . $message ( {
type : 'info' ,
message : '已取消删除' ,
} )
} )
} else {
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
let selection = selectionArr
. flatMap ( ( item ) => item . recordList )
if ( selection . length > 0 ) {
for ( let i = 0 ; i < selection . length ; i ++ ) {
delieryData . value . deliveryTon +=
Number ( selection [ i ] . weightKg ) * 1000 * selection [ i ] . realQty ;
delieryData . value . goodsSize +=
Number ( selection [ i ] . volumeM3 ) * 1000 * selection [ i ] . realQty ;
// selection[i].rkInfoId = selection[i].id
selection [ i ] . rkRecordId = selection [ i ] . id ;
}
delieryData . value . items = selection ;
// selection.forEach(element => {
// delieryData.value.deliveryTon += Number(element.deliveryTon)
// delieryData.value.goodsSize += Number(element.goodsSize)
// });
} else {
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
delieryData . value . items = [ ] ;
}
delieryData . value . deliveryTon = delieryData . value . deliveryTon / 1000000 ;
delieryData . value . goodsSize = delieryData . value . goodsSize / 1000 ;
multipleBill . value = ! selectionArr . length ;
multiple . value = true
console . log ( selectionArr ) ;
}
}
function handleSelectionChange ( selection ) {
console . log ( selection ) ;
if ( ! multipleBill . value ) {
proxy . $confirm ( '此操作将删除左侧勾选, 是否继续?' , '提示' , {
confirmButtonText : '确定' ,
cancelButtonText : '取消' ,
type : 'warning' ,
} )
. then ( ( ) => {
billTable . value . clearSelection ( ) ;
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
if ( selection . length > 0 ) {
for ( let i = 0 ; i < selection . length ; i ++ ) {
delieryData . value . deliveryTon +=
Number ( selection [ i ] . weightKg ) * 1000 * selection [ i ] . realQty ;
delieryData . value . goodsSize +=
Number ( selection [ i ] . volumeM3 ) * 1000 * selection [ i ] . realQty ;
// selection[i].rkInfoId = selection[i].id
selection [ i ] . rkRecordId = selection [ i ] . id ;
}
delieryData . value . items = selection ;
// selection.forEach(element => {
// delieryData.value.deliveryTon += Number(element.deliveryTon)
// delieryData.value.goodsSize += Number(element.goodsSize)
// });
} else {
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
delieryData . value . items = [ ] ;
}
delieryData . value . deliveryTon = delieryData . value . deliveryTon / 1000000 ;
delieryData . value . goodsSize = delieryData . value . goodsSize / 1000 ;
multiple . value = ! selection . length ;
multipleBill . value = true
console . log ( selection ) ;
proxy . $message ( {
type : 'success' ,
message : '删除成功!' ,
} )
} )
. catch ( ( ) => {
detailTable . value . clearSelection ( ) ;
proxy . $message ( {
type : 'info' ,
message : '已取消删除' ,
} )
} )
} else {
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
if ( selection . length > 0 ) {
for ( let i = 0 ; i < selection . length ; i ++ ) {
delieryData . value . deliveryTon +=
Number ( selection [ i ] . weightKg ) * 1000 * selection [ i ] . realQty ;
delieryData . value . goodsSize +=
Number ( selection [ i ] . volumeM3 ) * 1000 * selection [ i ] . realQty ;
// selection[i].rkInfoId = selection[i].id
selection [ i ] . rkRecordId = selection [ i ] . id ;
}
delieryData . value . items = selection ;
// selection.forEach(element => {
// delieryData.value.deliveryTon += Number(element.deliveryTon)
// delieryData.value.goodsSize += Number(element.goodsSize)
// });
} else {
delieryData . value . deliveryTon = 0 ;
delieryData . value . goodsSize = 0 ;
delieryData . value . items = [ ] ;
}
delieryData . value . deliveryTon = delieryData . value . deliveryTon / 1000000 ;
delieryData . value . goodsSize = delieryData . value . goodsSize / 1000 ;
multiple . value = ! selection . length ;
multipleBill . value = true
console . log ( selection ) ;
}
}
//根据重量、体积、公里数计算车型、费用
function calculateFun ( vehicleTypeI d) {
if ( ! delieryData . value . deliveryTon || ! delieryData . value . goodsSize || ! delieryData . value . totalKm ) {
function calculateFun ( i d) {
if (
! delieryData . value . deliveryTon ||
! delieryData . value . goodsSize ||
! delieryData . value . totalKm
) {
proxy . $modal . msgWarning ( "请输入公里数、重量、体积" ) ;
return
return ;
}
let info = {
weightTon : 0 ,
volumeM3 : 0 ,
distanceKm : 0 ,
vehicleTypeId : vehicleTypeId
} ;
let hasVehicle = delieryData . value . vehicleTypeNameList . every ( item => item . vehicleTypeId )
if ( hasVehicle ) {
info . vehicleTypeId = delieryData . value . vehicleTypeNameList . map ( item => item . vehicleTypeId ) . join ( ',' )
}
info . weightTon = delieryData . value . deliveryTon
info . volumeM3 = delieryData . value . goodsSize
info . distanceKm = delieryData . value . totalKm
if ( vehicleTypeId ) {
info . vehicleTypeId = vehicleTypeId
}
calculate ( info ) . then ( response => {
info . weightTon = delieryData . value . deliveryTon ;
info . volumeM3 = delieryData . value . goodsSize ;
info . distanceKm = delieryData . value . totalKm ;
calculate ( info ) . then ( ( response ) => {
// 检查后端是否返回了错误信息
if ( response . data . error Message) {
// 如果有错误信息,显示给用户,并清空相关字段
proxy . $modal . msgError ( response . data . errorMessage ) ;
if ( ! vehicleTypeId ) {
delieryData . value . vehicleTypeId = null ;
if ( response . data . warning Message) {
proxy . $modal . msgError ( response . data . warningMessage ) ;
return ;
}
delieryData . value . suggestFee = null ;
delieryData . value . vehicleTypeName = null ;
} else {
// 没有错误信息,正常处理返回的车型信息
if ( ! vehicleTypeId ) {
delieryData . value . vehicleTypeId = response . data . vehicleTypeId ;
if ( response . data . bestPlan . length > 0 && ! id ) {
delieryData . value . vehicleTypeNameList = response . data . bestPlan ;
}
carTypeList . value = response . data . candidates ;
delieryData . value . suggestFee = response . data . suggestFee ;
delieryData . value . vehicleTypeName = response . data . vehicleTypeName ;
}
// console.log(response)
} )
console . log ( delieryData . value )
} ) ;
}
//切换车型
function changeCarType ( id ) {
if ( ! delieryData . value . totalKm || ! delieryData . value . deliveryTon || ! delieryData . value . goodsSize ) {
function changeCarType ( id , index ) {
console . log ( id , index )
if (
! delieryData . value . totalKm ||
! delieryData . value . deliveryTon ||
! delieryData . value . goodsSize
) {
proxy . $modal . msgWarning ( "请输入公里数、重量、体积" ) ;
return
return ;
}
calculateFun ( id )
calculateFun ( id ) ;
}
// 取消按钮
function cancel ( ) {
dialogPicDetailVisible . value = false
reset ( )
}
function reset ( ) {
delieryData . value = {
originName : null ,
dest Name : null ,
shipperName : null ,
shipperPhone : null ,
receiverName : null ,
receiverPhone : null ,
receiverOrgName : null ,
deliveryDate : null ,
deliveryTon : null ,
goodsSize : null ,
totalKm : null ,
vehicleTypeId : null ,
suggestFee : null ,
vehicleTypeName : null
}
// this.resetForm("form")
proxy . resetForm ( "queryRef" ) ;
delieryData . value . originName = null ;
delieryData . value . destName = null ;
delieryData . value . shipperName = null ;
delieryData . value . shipperPhone = null ;
delieryData . value . receiverName = null ;
delieryData . value . receiverPhone = null ;
delieryData . value . receiverOrg Name = null ;
delieryData . value . deliveryDate = null ;
delieryData . value . totalKm = null ;
delieryData . value . vehicleTypeNameList = [ { } ] ;
delieryData . value . suggestFee = null ;
proxy . $refs [ "form" ] . resetFields ( )
dialogPicDetailVisible . value = false ;
}
// function reset() {
// }
function submitForm ( ) {
proxy . $refs [ "form" ] . validate ( valid => {
let hasVehicle = delieryData . value . vehicleTypeNameList . every ( item => item . vehicleTypeId )
if ( ! hasVehicle ) {
proxy . $modal . msgWarning ( '请选择配送车型' )
return
}
proxy . $refs [ "form" ] . validate ( ( valid ) => {
// console.log(delieryData.value)
// return
if ( valid ) {
addDeliver y( delieryData . value ) . then ( response => {
proxy . $modal . msgSuccess ( "操作成功" )
dialogPicDetailVisible . value = false
stockList . value = [ ]
getList ( )
} )
let obj = JSON . parse ( JSON . stringif y( delieryData . value ) )
obj . vehicleTypeName = obj . vehicleTypeNameList . map ( item => item . vehicleTypeName ) . join ( ',' )
obj . vehicleTypeId = obj . vehicleTypeNameList . map ( item => item . vehicleTypeId ) . join ( ',' )
addDelivery ( obj ) . then ( ( response ) => {
proxy . $modal . msgSuccess ( "操作成功" ) ;
dialogPicDetailVisible . value = false ;
stockList . value = [ ] ;
getList ( ) ;
} ) ;
}
} )
} ) ;
}
//数据列表
getList ( ) ;
< / script >
< style scoped >
. el - table . warning - row {