This commit is contained in:
linfso 2025-02-14 15:57:04 +08:00
parent 2efa0b3ca0
commit 5cae18001f
5 changed files with 311 additions and 144 deletions

View File

@ -9,6 +9,15 @@ export function listEmisSupplier(query) {
}) })
} }
// 查询公司供应商表列表 ,简化数据
export function listSimpleEmisSupplier(query) {
return request({
url: '/emis/emisSupplier/listSimple',
method: 'get',
params: query
})
}
// 查询公司供应商表详细 // 查询公司供应商表详细
export function getEmisSupplier(id) { export function getEmisSupplier(id) {
return request({ return request({

View File

@ -246,9 +246,11 @@
<script> <script>
import { listEmisTmsCostFee, getEmisTmsCostFee, delEmisTmsCostFee, addEmisTmsCostFee, updateEmisTmsCostFee } from "@/api/emis/emisTmsCostFee"; import { listEmisTmsCostFee, getEmisTmsCostFee, delEmisTmsCostFee, addEmisTmsCostFee, updateEmisTmsCostFee } from "@/api/emis/emisTmsCostFee";
import {listEmisSettleSubBill} from "@/api/emis/emisSettleSubBill"; import {listEmisSettleSubBill} from "@/api/emis/emisSettleSubBill";
import EmisTmsSiteBatchPicker from '@/views/emis/EmisBaseTools/EmisTmsSiteBatchPicker';
import { listEmisTmsSiteBatchDtl} from "@/api/emis/emisTmsSiteBatchDtl"; import { listEmisTmsSiteBatchDtl} from "@/api/emis/emisTmsSiteBatchDtl";
import EmisTmsSiteBatchPicker from '@/views/emis/EmisBaseTools/EmisTmsSiteBatchPicker';
import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker';
export default { export default {
name: "emisTmsCostFeeForm", name: "emisTmsCostFeeForm",
props:{ props:{
@ -256,7 +258,7 @@ export default {
type:Number type:Number
} }
}, },
components: { EmisTmsSiteBatchPicker }, components: { EmisTmsSiteBatchPicker,EmisSupplierPicker },
dicts: ['emis_cost_fee_type','emis_supplier_name','emis_cost_split_type','emis_biz_shipping_method','emis_payment_type'], dicts: ['emis_cost_fee_type','emis_supplier_name','emis_cost_split_type','emis_biz_shipping_method','emis_payment_type'],
data() { data() {
return { return {

View File

@ -1,22 +1,53 @@
<template> <template>
<div style="margin-bottom: 20px;"> <div style="margin-bottom: 20px;">
<el-form ref="formCo" size="mini" :model="coData" :rules="coRules" :disabled="disabled" label-width="80px" class="overflowhidden" > <el-form ref="form" size="mini" :model="form" :rules="rules" :disabled="disabled" label-width="80px" class="overflowhidden" >
<el-row :gutter="20" style="display: flex;flex-wrap: wrap;"> <el-row :gutter="20" style="display: flex;flex-wrap: wrap;">
<el-col :span="16" style="border-right: 1px solid #e4e1e1;"> <el-col :span="19" style="border-right: 1px solid #e4e1e1;">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;"> <el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="6"> <el-col :span="6">
<el-form-item :label="$t('批次号')" prop="batchNo"> <el-form-item :label="$t('批次号')" prop="batchNo">
<el-input v-model="coData.batchNo" placeholder="自动生成" disabled /> <el-input v-model="form.batchNo" placeholder="自动生成" disabled />
<!-- <span>{{ form.batchNo }}</span> -->
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="10">
<el-form-item :label="$t('批次名称')" prop="batchName"> <el-form-item :label="$t('批次名称')" prop="batchName" label-width="110px">
<el-input v-model="coData.batchName" clearable="" placeholder=""></el-input> <span slot="label">
<el-tooltip placement="top">
<div slot="content" class="tips-content text-tips-content">
<span>批次名称规则:</span><br>
<div class="rule-box">
1)快递(E):<br>
快递(E)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-提单号<br>
ENJDHKM250113+提单号<br>
2)空运(A):<br>
空运(A)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-提单号<br>
ANJNHKM250113+提单号<br>
3)陆运(L):<br>
陆运(L)-南京分拨中心(NJ)-供应商-昆明(KM)-250113-车牌<br>
LNJJTKM250113+车牌<br>
4)海运(S):<br>
海运(S)-上海-供应商-西港-250113-提单号<br>
SSHXG250113+提单号<br>
5)铁路(R):<br>
铁路(R)-上海-供应商-南宁-250113-集装箱号<br>
RSHNN250113+集装箱号<br>
6)国内进仓(D):<br>
同行(D)-上海-供应商-南京分拨中心-250113-运单号/订单号 (顺丰、跨越、百世、安能、中通、申通、货拉拉、运满满等)<br>
DSHNN250113+运单号/订单号<br>
</div>
</div>
<i class="el-icon-question" />
</el-tooltip>
<span >批次名称:</span>
</span>
<el-input v-model="form.batchName" clearable="" placeholder="" ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="8">
<el-form-item :label="$t('批次类型')" prop="batchType"> <el-form-item :label="$t('批次类型')" prop="batchType">
<el-select v-model="coData.batchType" placeholder="" style="width:100%"> <el-select v-model="form.batchType" placeholder="" style="width:100%">
<el-option key="1" label="一程批次" value="1"></el-option> <el-option key="1" label="一程批次" value="1"></el-option>
<el-option key="2" label="二程批次" value="2"></el-option> <el-option key="2" label="二程批次" value="2"></el-option>
<el-option key="4" label="三程批次" value="4"></el-option> <el-option key="4" label="三程批次" value="4"></el-option>
@ -27,29 +58,24 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('起始网点')" prop="startSiteCode"> <el-form-item :label="$t('起始网点')" prop="startSiteCode">
<EmisSiteSimplePicker :placeholder="$t('请选择')" @change="onSiteSelect" v-model="coData.startSiteCode" ></EmisSiteSimplePicker> <EmisSiteSimplePicker :placeholder="$t('请选择')" @onChange="onSiteSelect" v-model="form.startSiteCode" ></EmisSiteSimplePicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('下一网点')" prop="nextSiteCode"> <el-form-item :label="$t('下一网点')" prop="nextSiteCode">
<EmisSiteSimplePicker :placeholder="$t('请选择')" @change="onNextSiteSelect" v-model="coData.nextSiteCode" ></EmisSiteSimplePicker> <EmisSiteSimplePicker :placeholder="$t('请选择')" @onChange="onNextSiteSelect" v-model="form.nextSiteCode" ></EmisSiteSimplePicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('承运重量')" prop="transWeight"> <el-form-item :label="$t('目的国')" prop="destCountry">
<el-input v-model="coData.transWeight" clearable="" placeholder="" > <CountryPicker :placeholder="$t('选择国')" v-model="form.destCountry" ></CountryPicker>
<span slot="suffix">(kg)</span>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('包裹数')" prop="packNum">
<el-input v-model="coData.packNum" clearable="" placeholder="" ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="运输方式" prop="transType"> <el-form-item label="运输方式" prop="transType">
<el-select v-model="coData.transType" placeholder="运输方式" clearable filterable > <el-select v-model="form.transType" placeholder="运输方式" clearable filterable style="width:100%" @change="calcBatchName" >
<el-option <el-option
v-for="dict in dict.type.emis_biz_shipping_method" v-for="dict in dict.type.emis_biz_shipping_method"
:key="dict.value" :key="dict.value"
@ -59,58 +85,77 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8">
<el-form-item :label="$t('运输号')" prop="carNo"> <el-form-item :label="$t('供应商')" prop="supplierCode">
<el-input v-model="coData.carNo" clearable="" placeholder="车牌号/船次号/提单号"></el-input> <EmisSupplierPicker :placeholder="$t('请选择')" @onChange="onSupplierSelect" v-model="form.supplierCode" ></EmisSupplierPicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8" > <el-col :span="8" >
<el-form-item label="发出时间" prop="etd"> <el-form-item :label="$t('运输号')" prop="carNo">
<el-input v-model="form.carNo" clearable="" placeholder="车牌号/船次号/提单号" @change="calcBatchName"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('承运重量')" prop="transWeight">
<el-input v-model="form.transWeight" clearable="" placeholder="" >
<span slot="suffix">(kg)</span>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('包裹数')" prop="packNum">
<el-input v-model="form.packNum" clearable="" placeholder="" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-form-item label="发出时间" prop="etd" >
<el-date-picker clearable <el-date-picker clearable
v-model="coData.etd" v-model="form.etd"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择发出时间" placeholder="请选择发出时间"
style="width:100%" style="width:100%"
@change="calcBatchName"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="24">
<el-form-item :label="$t('目的国')" prop="destCountry"> <el-form-item :label="$t('备注')" prop="remark">
<CountryPicker :placeholder="$t('选择国')" v-model="coData.destCountry" ></CountryPicker> <el-input v-model="form.remark" clearable="" type="textarea" placeholder="" ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="5">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;"> <el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
<el-col :span="12"> <el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px"> <el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总票数') + ': ' + (coData.totalWaybillQty || 0)}}</span> <span>{{$t('总票数') + ': ' + (form.totalWaybillQty || 0)}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px"> <el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总件数') + ': ' + (coData.totalParcelQty || 0)}}</span> <span>{{$t('总重量') + ': ' + (form.totalWeight || 0)}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px"> <el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总重量') + ': ' + (coData.totalWeight || 0)}}</span> <span>{{$t('总件数') + ': ' + (form.totalParcelQty || 0)}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="24">
<el-form-item style="font-weight:600;" label-width="0px"> <el-form-item style="font-weight:600;" label-width="0px">
<span>{{$t('总体积') + ': ' + (coData.totalVolume || 0)}}</span> <span>{{$t('总体积') + ': ' + (form.totalVolume || 0)}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="24" style="" v-if="['3','4','5'].indexOf(coData.transType) > -1"> <el-col :span="24" style="" v-if="['3','4','5'].indexOf(form.transType) > -1">
<div style="margin-top:20px;padding: 3px 5px;font-size: 14px;"> <div style="margin-top:20px;padding: 3px 5px;font-size: 14px;">
装柜示意图 装柜示意图
</div> </div>
@ -205,7 +250,7 @@
:disabled="coMultiple" :disabled="coMultiple"
>移除运单</el-button> >移除运单</el-button>
</el-col> </el-col>
<el-col :span="1.5" v-if="this.coData.id!=null"> <el-col :span="1.5" v-if="this.form.id!=null">
<el-button style="margin-right: 5px;" <el-button style="margin-right: 5px;"
type="warning" type="warning"
plain plain
@ -305,9 +350,6 @@
<el-button @click="cancelBatch">取 消</el-button> <el-button @click="cancelBatch">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -325,8 +367,10 @@ import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vu
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue'; import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
import { parseTime, dateToStr } from "@/utils/custom"; import { parseTime, dateToStr } from "@/utils/custom";
import { formatSearchStr } from '@/utils/index' import { formatSearchStr } from '@/utils/index'
import moment from 'moment'
import PackListView from '@/views/emis/emisTmsSiteBatch/packListView'; import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker';
export default { export default {
name: "BigBatchEditForm", name: "BigBatchEditForm",
@ -341,7 +385,7 @@ export default {
}, },
}, },
components: { EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView}, components: { EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView,EmisSupplierPicker},
dicts: ['emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status','emis_declare_mode','emis_customs_clear'], dicts: ['emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status','emis_declare_mode','emis_customs_clear'],
data() { data() {
return { return {
@ -382,15 +426,18 @@ export default {
doneTotal:0, doneTotal:0,
waitPackList:[],//选择未组包的运单先保存起来,在后续新增组批次的弹框中使用 waitPackList:[],//选择未组包的运单先保存起来,在后续新增组批次的弹框中使用
// 新增/修改弹窗数据 // 新增/修改弹窗数据
coData: {}, form: {},
coRules: { rules: {
batchType: [ batchType: [
{ required: true, message: "批次类型不能为空", trigger: ["blur","change"] }, { required: true, message: "批次类型不能为空", trigger: ["blur","change"] },
], ],
batchName: [ batchName: [
{ required: true, message: "批次名称不能为空", trigger: ["blur","change"] }, { required: true, message: "批次名称不能为空", trigger: ["blur","change"] },
], ],
// supplierCode: [
// { required: true, message: "供应商不能为空", trigger: ["blur","change"] },
// ],
// destCountry: [ // destCountry: [
// { required: true, message: "目的国不能为空", trigger: ["blur","change"] }, // { required: true, message: "目的国不能为空", trigger: ["blur","change"] },
// ], // ],
@ -537,7 +584,76 @@ export default {
this.initData(); this.initData();
}, },
methods: { methods: {
// 批次名称计算
calcBatchName(){
/*
1、批次名称规则:
1)快递(E):
快递(E)-南京分拨中心(NJ)-东航(DH)-昆明(KM)-250113-提单号
ENJDHKM250113+提单号
2)空运(A):
空运(A)-南京分拨中心(NJ)-南航(NH)-昆明(KM)-250113-提单号
ANJNHKM250113+提单号
3)陆运(L):
陆运(L)-南京分拨中心(NJ)-九通(JT)-昆明(KM)-250113-车牌
LNJJTKM250113+车牌
4)海运(S):
海运(S)-上海-西港-250113-提单号
SSHXG250113+提单号
5)铁路(R):
铁路(R)-上海-南宁-250113-集装箱号
RSHNN250113+集装箱号
6)国内进仓(D):
上海-顺丰-南京分拨中心-250113-运单号/订单号 (顺丰、跨越、百世、安能、中通、申通、货拉拉、运满满等)
DSHNN250113+运单号/订单号
*/
if(this.form.transType==1){
if(this.form.etd&&this.form.transType&&this.form.supplierNameEn&&this.form.startSiteSizeCode3&&this.form.nextSiteSizeCode3&&this.form.carNo){
// 快递(E)-南京分拨中心(NJ)-东航(DH)-昆明(KM)-250113-提单号
let yymmdd = moment(this.form.etd).format('YYMMDD');
this.form.batchName = "E"+this.form.startSiteSizeCode3+""+this.form.supplierNameEn+""+yymmdd+this.form.nextSiteSizeCode3+this.form.carNo;
}
}
else if(this.form.transType==2){
if(this.form.etd&&this.form.transType&&this.form.supplierNameEn&&this.form.startSiteSizeCode3&&this.form.nextSiteSizeCode3&&this.form.carNo){
// 空运(A)-南京分拨中心(NJ)-南航(NH)-昆明(KM)-250113-提单号
let yymmdd = moment(this.form.etd).format('YYMMDD');
this.form.batchName = "A"+this.form.startSiteSizeCode3+""+this.form.supplierNameEn+""+yymmdd+this.form.nextSiteSizeCode3+this.form.carNo;
}
}
else if(this.form.transType==3){
if(this.form.etd&&this.form.transType&&this.form.supplierNameEn&&this.form.startSiteSizeCode3&&this.form.nextSiteSizeCode3&&this.form.carNo){
// 陆运(L)-南京分拨中心(NJ)-九通(JT)-昆明(KM)-250113-车牌
let yymmdd = moment(this.form.etd).format('YYMMDD');
this.form.batchName = "L"+this.form.startSiteSizeCode3+""+this.form.supplierNameEn+""+yymmdd+this.form.nextSiteSizeCode3+this.form.carNo;
}
}
else if(this.form.transType==4){
if(this.form.etd&&this.form.transType&&this.form.supplierNameEn&&this.form.startSiteSizeCode3&&this.form.nextSiteSizeCode3&&this.form.carNo){
// 海运(S)-上海-供应商-西港-250113-提单号
let yymmdd = moment(this.form.etd).format('YYMMDD');
this.form.batchName = "S"+this.form.startSiteSizeCode3+""+this.form.supplierNameEn+""+yymmdd+this.form.nextSiteSizeCode3+this.form.carNo;
}
}
else if(this.form.transType==5){
if(this.form.etd&&this.form.transType&&this.form.supplierNameEn&&this.form.startSiteSizeCode3&&this.form.nextSiteSizeCode3&&this.form.carNo){
// 铁路(R)-上海-南宁-250113-集装箱号
let yymmdd = moment(this.form.etd).format('YYMMDD');
this.form.batchName = "R"+this.form.startSiteSizeCode3+""+this.form.supplierNameEn+""+yymmdd+this.form.nextSiteSizeCode3+this.form.carNo;
}
}
else if(this.form.transType==6){
if(this.form.etd&&this.form.transType&&this.form.supplierNameEn&&this.form.startSiteSizeCode3&&this.form.nextSiteSizeCode3&&this.form.carNo){
// 国内进仓(D)-上海-供应商-南宁-250113-集装箱号
let yymmdd = moment(this.form.etd).format('YYMMDD');
this.form.batchName = "D"+this.form.startSiteSizeCode3+""+this.form.supplierNameEn+""+yymmdd+this.form.nextSiteSizeCode3+this.form.carNo;
}
}
console.log("====>batchName===>",this.form.batchName);
},
async initData() { async initData() {
if(this.batchId !=null) { if(this.batchId !=null) {
@ -546,31 +662,36 @@ export default {
}else{ }else{
this.reset(); this.reset();
this.coData.startSiteCode=this.$store.getters.ownerSiteCode; this.form.startSiteCode=this.$store.getters.ownerSiteCode;
this.coData.batchType='1'; this.form.batchType='1';
this.coPackType = "add"; this.coPackType = "add";
let resPack = await getTmsGroupBatchNo(); let resPack = await getTmsGroupBatchNo();
this.coData.batchNo = resPack.data; this.form.batchNo = resPack.data;
this.coData.batchDate=parseTime(new Date()); this.form.batchDate=parseTime(new Date());
} }
}, },
// 表单重置 // 表单重置
reset() { reset() {
this.coData = { this.form = {
id: null, id: null,
batchNo: null, batchNo: null,
batchName: null, batchName: null,
batchDate: null, batchDate: null,
supplierCode: null,
supplierName: null,
supplierNameEn: null,
transLineType: null, transLineType: null,
productType: null, productType: null,
batchType: null, batchType: null,
transType: null, transType: null,
startSiteCode: null, startSiteCode: null,
startSiteSizeCode3:null,
sendCountry: null, sendCountry: null,
nextSiteCode: null, nextSiteCode: null,
nextSiteSizeCode3:null,
airBilllNo: null, airBilllNo: null,
etd: null, etd: null,
eta: null, eta: null,
@ -589,9 +710,8 @@ export default {
opMan: null, opMan: null,
remark: null, remark: null,
tenantId: null, tenantId: null,
}; };
this.resetForm("formCo"); this.resetForm("form");
}, },
async showBatchInfo(batchId){ async showBatchInfo(batchId){
@ -604,24 +724,24 @@ export default {
// let resData = response.data; // let resData = response.data;
// let time = {}; // let time = {};
// time.carTime = resData.etd; // time.carTime = resData.etd;
this.coData = {...response.data}; this.form = {...response.data};
this.emisCoPackDetail=[]; this.emisCoPackDetail=[];
let resList = await listEmisTmsSiteBatchDtl({batchNo: this.coData.batchNo}); let resList = await listEmisTmsSiteBatchDtl({batchNo: this.form.batchNo});
if(!resList || resList.code != 200){ if(!resList || resList.code != 200){
this.$modal.msgError(resList && resList.msg || "未知错误"); this.$modal.msgError(resList && resList.msg || "未知错误");
return; return;
} }
this.tempExistCoPackWayBillList = resList.rows; this.tempExistCoPackWayBillList = resList.rows;
//临时存储,用于运单号校验 //临时存储,用于运单号校验
this.tempCoPackInfo = this.coData; this.tempCoPackInfo = this.form;
for(let p = 0; p < resList.rows.length;p++){ for(let p = 0; p < resList.rows.length;p++){
this.emisCoPackDetail.push(resList.rows[p].waybillDetail); this.emisCoPackDetail.push(resList.rows[p].waybillDetail);
} }
this.coData.packStatus = this.tempCoPackInfo.packStatus; this.form.packStatus = this.tempCoPackInfo.packStatus;
this.coData.scanDate = this.tempCoPackInfo.scanDate; this.form.scanDate = this.tempCoPackInfo.scanDate;
let resLoadingList = await listEmisTmsSiteBatchLoading({batchNo: this.coData.batchNo}); let resLoadingList = await listEmisTmsSiteBatchLoading({batchNo: this.form.batchNo});
if(!resLoadingList || resLoadingList.code != 200){ if(!resLoadingList || resLoadingList.code != 200){
this.$modal.msgError(resLoadingList && resLoadingList.msg || "未知错误"); this.$modal.msgError(resLoadingList && resLoadingList.msg || "未知错误");
return; return;
@ -690,7 +810,7 @@ export default {
this.loadingWait = true; this.loadingWait = true;
this.queryWaitParams.params.isNeedBatch = 1; this.queryWaitParams.params.isNeedBatch = 1;
this.queryWaitParams.params.batchType = this.coData.batchType; this.queryWaitParams.params.batchType = this.form.batchType;
listEmisWaybill(this.queryWaitParams).then(response => { listEmisWaybill(this.queryWaitParams).then(response => {
this.loadingWait = false; this.loadingWait = false;
@ -798,7 +918,7 @@ export default {
} }
} }
this.wayBillData.params.isNeedBatch = 1; this.wayBillData.params.isNeedBatch = 1;
this.wayBillData.params.batchType = this.coData.batchType; this.wayBillData.params.batchType = this.form.batchType;
listEmisWaybill(this.wayBillData).then(response => { listEmisWaybill(this.wayBillData).then(response => {
this.loading2 = false; this.loading2 = false;
if(response.code != 200){ if(response.code != 200){
@ -811,23 +931,44 @@ export default {
this.wayBillotal = response.total; this.wayBillotal = response.total;
}) })
}, },
onSupplierSelect(item){
console.log("==onSupplierSelect===>",item);
this.form.supplierCode=item.code;
this.form.supplierName=item.name;
this.form.supplierNameEn=item.nameEn;
// 计算批次名称
this.calcBatchName();
},
onSiteSelect(item){ onSiteSelect(item){
console.log("==onSiteSelect===>",item);
if(!item){ if(!item){
this.coData.startSiteCode = null; this.form.startSiteCode = null;
this.coData.startSiteName = null; this.form.startSiteName = null;
this.form.startSiteSizeCode3 = null;
return; return;
} }
this.coData.startSiteCode=item && item.siteCode; this.form.startSiteCode=item && item.siteCode;
this.coData.startSiteName=item && item.siteName; this.form.startSiteName=item && item.siteName;
this.form.startSiteSizeCode3 = item && item.sizeCode3;
// 计算批次名称
this.calcBatchName();
}, },
onNextSiteSelect(item){ onNextSiteSelect(item){
if(!item){ if(!item){
this.coData.nextSiteCode = null; this.form.nextSiteCode = null;
this.coData.nextSiteName = null; this.form.nextSiteName = null;
this.form.nextSiteSizeCode3 = null;
return; return;
} }
this.coData.nextSiteCode=item && item.siteCode; this.form.nextSiteCode=item && item.siteCode;
this.coData.nextSiteName=item && item.siteName; this.form.nextSiteName=item && item.siteName;
this.form.nextSiteSizeCode3 = item && item.sizeCode3;
// 计算批次名称
this.calcBatchName();
}, },
onDateSelect(value){ onDateSelect(value){
console.log("date picker---->", value) console.log("date picker---->", value)
@ -844,7 +985,7 @@ export default {
}, },
submitAddCoPackForm() { submitAddCoPackForm() {
this.$refs["formCo"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
this.handleAddCoPack(); this.handleAddCoPack();
} }
@ -858,13 +999,13 @@ export default {
return; return;
} }
// this.coData.etd = parseTime(this.coData.carTime, '{y}-{m}-{d} {h}:{i}:{s}'); // this.form.etd = parseTime(this.form.carTime, '{y}-{m}-{d} {h}:{i}:{s}');
// 新增 // 新增
if(this.coPackType == "add") if(this.coPackType == "add")
{ {
let response = await addEmisTmsSiteBatch(this.coData); let response = await addEmisTmsSiteBatch(this.form);
if(!response || response.code != 200){ if(!response || response.code != 200){
this.$modal.msgError(response && response.msg || '新增组批次失败') this.$modal.msgError(response && response.msg || '新增组批次失败')
return; return;
@ -872,7 +1013,7 @@ export default {
for(let i = 0; i< this.emisCoPackDetail.length;i++){ for(let i = 0; i< this.emisCoPackDetail.length;i++){
let packDetail = { let packDetail = {
batchNo:this.coData.batchNo, batchNo:this.form.batchNo,
billCode: this.emisCoPackDetail[i].billCode, billCode: this.emisCoPackDetail[i].billCode,
scanDate: this.emisCoPackDetail[i].scanDate, scanDate: this.emisCoPackDetail[i].scanDate,
scanStatus: this.emisCoPackDetail[i].scanStatus, scanStatus: this.emisCoPackDetail[i].scanStatus,
@ -893,7 +1034,7 @@ export default {
for(let lr = 0; lr < 3; lr++){ for(let lr = 0; lr < 3; lr++){
for(let ll = 0; ll < 6; ll++){ for(let ll = 0; ll < 6; ll++){
let batchLoadingData = { let batchLoadingData = {
batchNo: this.coData.batchNo, batchNo: this.form.batchNo,
posNo:lr+":"+ll+":1", posNo:lr+":"+ll+":1",
row: lr, row: lr,
col: ll, col: ll,
@ -911,7 +1052,7 @@ export default {
} }
} }
else if(this.coPackType == "edit"){// 修改 else if(this.coPackType == "edit"){// 修改
let res = await updateEmisTmsSiteBatch(this.coData); let res = await updateEmisTmsSiteBatch(this.form);
if(!res || res.code != 200){ if(!res || res.code != 200){
this.$modal.msgError(res && res.msg || '未知错误') this.$modal.msgError(res && res.msg || '未知错误')
return; return;
@ -940,7 +1081,7 @@ export default {
}, },
handleCancelCo(){ handleCancelCo(){
this.coData={}; this.form={};
this.blUnpack="1"; this.blUnpack="1";
this.emisCoPackDetail=[]; this.emisCoPackDetail=[];
this.$emit("on-cancel"); this.$emit("on-cancel");
@ -965,7 +1106,7 @@ export default {
billCode:billcode, billCode:billcode,
params:{ params:{
isNeedBatch:1, isNeedBatch:1,
batchType:this.coData.batchType batchType:this.form.batchType
} }
} }
); );
@ -980,7 +1121,7 @@ export default {
this.emisCoPackDetail.push(item); this.emisCoPackDetail.push(item);
if(this.coPackType=="edit"){ if(this.coPackType=="edit"){
let packDetail = { let packDetail = {
batchNo: this.coData.batchNo, batchNo: this.form.batchNo,
billCode: item.billCode, billCode: item.billCode,
scanDate: item.scanDate, scanDate: item.scanDate,
scanStatus: item.scanStatus, scanStatus: item.scanStatus,
@ -1013,7 +1154,7 @@ export default {
this.computeTotal(); this.computeTotal();
// 更新主表 // 更新主表
if(this.coPackType=="edit"){ if(this.coPackType=="edit"){
let res = await updateEmisTmsSiteBatch(this.coData); let res = await updateEmisTmsSiteBatch(this.form);
if(!res || res.code != 200){ if(!res || res.code != 200){
this.$modal.msgError(res && res.msg || '未知错误') this.$modal.msgError(res && res.msg || '未知错误')
return; return;
@ -1026,7 +1167,7 @@ export default {
this.emisCoPackDetail.push(item); this.emisCoPackDetail.push(item);
if(this.coPackType=="edit"){ if(this.coPackType=="edit"){
let packDetail = { let packDetail = {
batchNo: this.coData.batchNo, batchNo: this.form.batchNo,
billCode: item.billCode, billCode: item.billCode,
scanDate: item.scanDate, scanDate: item.scanDate,
scanStatus: item.scanStatus, scanStatus: item.scanStatus,
@ -1058,7 +1199,7 @@ export default {
this.computeTotal(); this.computeTotal();
// 更新主表 // 更新主表
if(this.coPackType=="edit"){ if(this.coPackType=="edit"){
let res = await updateEmisTmsSiteBatch(this.coData); let res = await updateEmisTmsSiteBatch(this.form);
if(!res || res.code != 200){ if(!res || res.code != 200){
this.$modal.msgError(res && res.msg || '未知错误') this.$modal.msgError(res && res.msg || '未知错误')
return; return;
@ -1120,16 +1261,16 @@ export default {
this.computeTotal(); this.computeTotal();
// 更新主表 // 更新主表
this.tempCoPackInfo.destCountry = this.coData.destCountry; this.tempCoPackInfo.destCountry = this.form.destCountry;
// this.tempCoPackInfo.sendStiteCode = this.coData.sendStiteCode; // this.tempCoPackInfo.sendStiteCode = this.form.sendStiteCode;
// this.tempCoPackInfo.sendStiteName = this.coData.sendStiteName || null; // this.tempCoPackInfo.sendStiteName = this.form.sendStiteName || null;
this.tempCoPackInfo.nextSiteCode = this.coData.nextSiteCode; this.tempCoPackInfo.nextSiteCode = this.form.nextSiteCode;
this.tempCoPackInfo.nextSiteName = this.coData.nextSiteName; this.tempCoPackInfo.nextSiteName = this.form.nextSiteName;
this.tempCoPackInfo.blUnpack = this.blUnpack; this.tempCoPackInfo.blUnpack = this.blUnpack;
this.tempCoPackInfo.totalWaybillQty = this.coData.totalWaybillQty; this.tempCoPackInfo.totalWaybillQty = this.form.totalWaybillQty;
this.tempCoPackInfo.totalParcelQty = this.coData.totalParcelQty; this.tempCoPackInfo.totalParcelQty = this.form.totalParcelQty;
this.tempCoPackInfo.totalWeight = this.coData.totalWeight; this.tempCoPackInfo.totalWeight = this.form.totalWeight;
this.tempCoPackInfo.totalVolume = this.coData.totalVolume; this.tempCoPackInfo.totalVolume = this.form.totalVolume;
let res = await updateEmisTmsSiteBatch(this.tempCoPackInfo); let res = await updateEmisTmsSiteBatch(this.tempCoPackInfo);
if(!res || res.code != 200){ if(!res || res.code != 200){
this.$modal.msgError(res && res.msg || '未知错误') this.$modal.msgError(res && res.msg || '未知错误')
@ -1182,19 +1323,19 @@ export default {
totalParcelQty +=item.parcelQty; totalParcelQty +=item.parcelQty;
totalWeight +=item.billWeight; totalWeight +=item.billWeight;
totalVolume +=item.totalVolume; totalVolume +=item.totalVolume;
item.destCountry = this.coData.destCountry; item.destCountry = this.form.destCountry;
// item.sendSiteCode = this.coData.sendSiteCode; // item.sendSiteCode = this.form.sendSiteCode;
item.startSiteCode = this.coData.startSiteCode; item.startSiteCode = this.form.startSiteCode;
item.startSiteName = this.coData.startSiteName; item.startSiteName = this.form.startSiteName;
// item.nextSiteCode = this.coData.nextSiteCode; // item.nextSiteCode = this.form.nextSiteCode;
item.nextSiteCode = this.coData.nextSiteCode; item.nextSiteCode = this.form.nextSiteCode;
item.nextSiteName = this.coData.nextSiteName; item.nextSiteName = this.form.nextSiteName;
item.blUnpack = this.blUnpack; item.blUnpack = this.blUnpack;
}) })
this.coData.totalWaybillQty=this.emisCoPackDetail.length; this.form.totalWaybillQty=this.emisCoPackDetail.length;
this.coData.totalParcelQty=totalParcelQty; this.form.totalParcelQty=totalParcelQty;
this.coData.totalWeight=totalWeight.toFixed(2); this.form.totalWeight=totalWeight.toFixed(2);
this.coData.totalVolume=totalVolume.toFixed(4); this.form.totalVolume=totalVolume.toFixed(4);
}, },
// 排序 查询字段是表格中字段名字 动态取值排序顺序 // 排序 查询字段是表格中字段名字 动态取值排序顺序
handleSortChange(column) { handleSortChange(column) {
@ -1221,7 +1362,7 @@ export default {
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
async handleUpdate() { async handleUpdate() {
// this.coData={}; // this.form={};
let id = this.ids[0] let id = this.ids[0]
this.coPackType="edit"; this.coPackType="edit";
let response = await getEmisTmsSiteBatch(id); let response = await getEmisTmsSiteBatch(id);
@ -1233,7 +1374,7 @@ export default {
let time = {}; let time = {};
time.carTime = resData.etd; time.carTime = resData.etd;
this.coData = {...resData, ...{batchDate:resData.createTime}, ...time}; this.form = {...resData, ...{batchDate:resData.createTime}, ...time};
this.emisCoPackDetail=[]; this.emisCoPackDetail=[];
let resList = await listEmisTmsSiteBatchDtl({batchNo: resData.batchNo}); let resList = await listEmisTmsSiteBatchDtl({batchNo: resData.batchNo});
@ -1246,8 +1387,8 @@ export default {
for(let p = 0; p < resList.rows.length;p++){ for(let p = 0; p < resList.rows.length;p++){
this.emisCoPackDetail.push(resList.rows[p].waybillDetail); this.emisCoPackDetail.push(resList.rows[p].waybillDetail);
} }
this.coData.packStatus = this.tempCoPackInfo.packStatus; this.form.packStatus = this.tempCoPackInfo.packStatus;
this.coData.scanDate = this.tempCoPackInfo.scanDate; this.form.scanDate = this.tempCoPackInfo.scanDate;
let resLoadingList = await listEmisTmsSiteBatchLoading({batchNo: resData.batchNo}); let resLoadingList = await listEmisTmsSiteBatchLoading({batchNo: resData.batchNo});
if(!resLoadingList || resLoadingList.code != 200){ if(!resLoadingList || resLoadingList.code != 200){
@ -1310,7 +1451,7 @@ export default {
let qExportParam={ let qExportParam={
pageNum:1, pageNum:1,
pageSize:20000, pageSize:20000,
batchNo: this.coData.batchNo batchNo: this.form.batchNo
}; };
listEmisTmsSiteBatchDtl(qExportParam).then(response => { listEmisTmsSiteBatchDtl(qExportParam).then(response => {

View File

@ -57,6 +57,9 @@
<el-form-item label="目的国" prop="destCountry"> <el-form-item label="目的国" prop="destCountry">
<CountryPicker :placeholder="$t('目的国')" v-model="queryParams.destCountry" ></CountryPicker> <CountryPicker :placeholder="$t('目的国')" v-model="queryParams.destCountry" ></CountryPicker>
</el-form-item> </el-form-item>
<el-form-item label="供应商" prop="supplierCode">
<EmisSupplierPicker :placeholder="$t('请选择')" v-model="queryParams.supplierCode" ></EmisSupplierPicker>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</SearchForm> </SearchForm>
@ -191,6 +194,7 @@
<el-table-column :label="$t('起始网点')" align="center" prop="startSiteName" min-width="150" /> <el-table-column :label="$t('起始网点')" align="center" prop="startSiteName" min-width="150" />
<el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" min-width="150" /> <el-table-column :label="$t('下一网点')" align="center" prop="nextSiteName" min-width="150" />
<el-table-column :label="$t('目的国家')" align="center" prop="destCountryName" min-width="100"/> <el-table-column :label="$t('目的国家')" align="center" prop="destCountryName" min-width="100"/>
<el-table-column :label="$t('供应商')" align="center" prop="supplierName" min-width="150"/>
<el-table-column :label="$t('总票数')" align="center" prop="totalWaybillQty" min-width="100" /> <el-table-column :label="$t('总票数')" align="center" prop="totalWaybillQty" min-width="100" />
<el-table-column :label="$t('总件数')" align="center" prop="totalParcelQty" min-width="100" /> <el-table-column :label="$t('总件数')" align="center" prop="totalParcelQty" min-width="100" />
<el-table-column :label="$t('总重量(kg)')" align="center" prop="totalWeight" min-width="100" /> <el-table-column :label="$t('总重量(kg)')" align="center" prop="totalWeight" min-width="100" />
@ -216,10 +220,15 @@ import { formatSearchStr } from '@/utils/index'
import { listEmisTmsSiteBatchDtl} from "@/api/emis/emisTmsSiteBatchDtl"; import { listEmisTmsSiteBatchDtl} from "@/api/emis/emisTmsSiteBatchDtl";
import PackListView from '@/views/emis/emisTmsSiteBatch/packListView'; import PackListView from '@/views/emis/emisTmsSiteBatch/packListView';
import EmisSupplierPicker from '@/views/emis/EmisBaseTools/EmisSupplierPicker';
export default { export default {
name: "CenterGenBatchMgnt", name: "CenterGenBatchMgnt",
components: { EmisGetNextSitePicker, CountryPicker, EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker, TransProductPicker, PackListView}, components: { EmisGetNextSitePicker, CountryPicker,
EmisSiteSimplePicker, elDateAdvPicker, emisTmsPackForm, TransLinePicker,
TransProductPicker, PackListView,
EmisSupplierPicker
},
dicts: [ dicts: [
'emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status','emis_declare_mode','emis_customs_clear', 'emis_waybill_status', 'emis_payment_type', 'emis_biz_shipping_method', 'emis_qujian_fangshi', 'cebp_return_status','emis_declare_mode','emis_customs_clear',
], ],
@ -328,6 +337,8 @@ export default {
nextSiteCode: null, nextSiteCode: null,
carNo: null, carNo: null,
destCountry: null, destCountry: null,
supplierCode:null,
params:{ params:{
queryOrderType: '1', queryOrderType: '1',
billCode: null billCode: null

View File

@ -1,15 +1,24 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" size="mini" :model="form" label-width="80px"> <el-form ref="form" size="mini" :model="form" label-width="80px" @submit.native.prevent>
<!-- <SearchForm :ref="form" :model="picUrl" ref="queryForm" size="small" :maxShow="8" label-width="100px" v-show="showSearch" @search="getList" @reset="resetQuery"> -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8">
<el-form-item label="上传图片" prop="xxx" label-width="80px"> <el-col :span="24">
<ImageUpload ref="imageUpload" :fileSize="1" :limit="50" v-model="form.picUrl" @input="handleInput" ></ImageUpload> <el-form-item label="上传图片" prop="picUrl" label-width="80px">
<ImageUpload ref="imageUpload" :fileSize="5" :limit="10" v-model="form.picUrl" ></ImageUpload>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="运单号" prop="billCode" label-width="70px">
<span slot="label">
<span style="color: red">运单号</span>
</span>
<el-input v-model="form.billCode" clearable="" placeholder="单号输入后按回车" @keyup.enter.native="handleInput" >
<i slot="suffix" class="iconfont">&#xe656;</i>
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row > </el-row >
<!-- </SearchForm> -->
</el-form> </el-form>
<xd-table v-loading="loading" <xd-table v-loading="loading"
@ -49,14 +58,18 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="$t('运单编号')" align="center" prop="billCode" min-width="150" /> <el-table-column :label="$t('运单编号')" align="center" prop="billCode" min-width="150" />
<el-table-column :label="$t('图片URL')" align="center" prop="fileUrl" min-width="100" /> <el-table-column :label="$t('图片URL')" align="center" prop="fileUrl" min-width="100" >
<template slot-scope="scope">
<ImagePreview height="50px" v-for="pic in (scope.row.fileUrl||'').split(',')" :key="pic" :src="pic" ></ImagePreview>
</template>
</el-table-column>
<el-table-column :label="$t('上传网点')" align="center" prop="createSite" min-width="100" /> <el-table-column :label="$t('上传网点')" align="center" prop="createSite" min-width="100" />
<el-table-column :label="$t('上传人')" align="center" prop="createBy" min-width="100" /> <el-table-column :label="$t('上传人')" align="center" prop="createBy" min-width="100" />
<el-table-column :label="$t('大小')" align="center" prop="volumeWeight" min-width="100"> <!-- <el-table-column :label="$t('大小')" align="center" prop="volumeWeight" min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.fileSiez + "KB" }}</span> <span>{{ scope.row.fileSiez + "KB" }}</span>
</template> </template>
</el-table-column>/> </el-table-column>/> -->
</xd-table> </xd-table>
</div> </div>
</template> </template>
@ -107,6 +120,7 @@ export default {
// 表单参数 // 表单参数
form: { form: {
billCode:null,
picUrl:null, picUrl:null,
}, },
@ -123,23 +137,25 @@ export default {
getList(){ getList(){
}, },
async handleInput(item, size){ // async handleInput(item, size){
if(item.trim() == ""){ async handleInput(){
if(this.form.billCode == ""||this.form.billCode ==null){
this.$modal.msgError("请先输入单号!");
return; return;
} }
let scList = item.trim().split(/[;\;\,\,\n]/)||[]; let billCode=this.form.billCode+'';
this.form.picUrl =[];
for(let s = 0; s<scList.length; s++){
let billCode = this.extractSubstring(scList[s]);
if(this.dataMap[billCode]) return;
let response = await getWaybillDetail(billCode) let response = await getWaybillDetail(billCode)
if(!response || response.code != 200){ if(!response || response.code != 200){
this.$modal.msgError(response && response.msg || "未知错误"); this.$modal.msgError(response && response.msg || "未知错误");
return; return;
} }
// let scList = this.form.picUrl.split(',')||[];
// for(let s = 0; s<scList.length; s++){
// };
let record = {}; let record = {};
record.billCode=billCode; record.billCode=billCode;
record.fileUrl=scList[s]; record.fileUrl=this.form.picUrl+'';
record.createSiteCode=this.$store.getters.ownerSiteCode; record.createSiteCode=this.$store.getters.ownerSiteCode;
record.createSite=this.$store.getters.ownerSiteName; record.createSite=this.$store.getters.ownerSiteName;
record.createBy=this.$store.getters.empName; record.createBy=this.$store.getters.empName;
@ -149,17 +165,13 @@ export default {
record.fileName="货物图片"; record.fileName="货物图片";
record.attachType="0"; record.attachType="0";
record.dataFrom="pc"; record.dataFrom="pc";
for(let name in size){ record.fileSiez=-1;
if(name.indexOf(billCode) > -1){
record.fileSiez = parseFloat((size[name]/1024).toFixed(2));
break;
}
}
let indexBillCode=billCode; let indexBillCode=billCode;
this.dataMap[indexBillCode]=record; this.dataMap[indexBillCode]=record;
this.emisTmsScanRecordList.push(record); this.emisTmsScanRecordList.push(record);
};
// this.form.picUrl =[]; this.form.picUrl =null;
this.form.billCode=null;
}, },
/** 上传按钮操作 */ /** 上传按钮操作 */
handleScanUpload(){ handleScanUpload(){
@ -168,7 +180,6 @@ export default {
return; return;
} }
var selData = this.selection; var selData = this.selection;
selData.forEach(item=>{ selData.forEach(item=>{
addEmisWaybillAttachment(item).then(response => { addEmisWaybillAttachment(item).then(response => {
@ -207,13 +218,6 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
// const ids = row.id || this.ids;
// this.$modal.confirm('是否确认删除').then(function() {
// return delEmisWaybill(ids);
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("删除成功");
// }).catch(() => {});
let newList =[]; let newList =[];
console.log(this.ids) console.log(this.ids)
this.emisTmsScanRecordList.forEach(item=>{ this.emisTmsScanRecordList.forEach(item=>{