md
This commit is contained in:
parent
b81d42aae5
commit
06a85a0e45
@ -20,11 +20,11 @@ class TanexPrinterSdk {
|
|||||||
|
|
||||||
VERSION="1.0.0"
|
VERSION="1.0.0"
|
||||||
MAX_SENT_RETRY_COUNT = 9;
|
MAX_SENT_RETRY_COUNT = 9;
|
||||||
WS_URL = "ws://127.0.0.1:17080/ws";
|
// WS_URL = "ws://127.0.0.1:17080/ws";
|
||||||
// WS_URL = "ws://192.168.88.100:17080";
|
// HTTP_GET_PDF = "http://127.0.0.1:17080/api/downPdfFile";
|
||||||
// WS_URL = "ws://192.168.88.100:17080/ws";
|
|
||||||
// HTTP_GET_PDF = "http://192.168.88.100:17080/api/downPdfFile";
|
WS_URL = "ws://192.168.88.100:17080/ws";
|
||||||
HTTP_GET_PDF = "http://127.0.0.1:17080/api/downPdfFile";
|
HTTP_GET_PDF = "http://192.168.88.100:17080/api/downPdfFile";
|
||||||
|
|
||||||
|
|
||||||
AUTH_TOKEN=null;
|
AUTH_TOKEN=null;
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
@change="onChange"
|
@change="onChange"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@visible-change="reverseArrow"
|
@visible-change="reverseArrow"
|
||||||
|
:disabled="disabled"
|
||||||
>
|
>
|
||||||
<el-option v-for="item in optionItems" :key="item.empName" :label="item.empName" :value="item.empName" ></el-option>
|
<el-option v-for="item in optionItems" :key="item.empName" :label="item.empName" :value="item.empName" ></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -31,6 +32,11 @@
|
|||||||
placeholder:{
|
placeholder:{
|
||||||
type: [String],
|
type: [String],
|
||||||
required: false
|
required: false
|
||||||
|
},
|
||||||
|
disabled:{
|
||||||
|
type: [Boolean],
|
||||||
|
required: false,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
@change="onChange"
|
@change="onChange"
|
||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@visible-change="reverseArrow"
|
@visible-change="reverseArrow"
|
||||||
|
:disabled="disabled"
|
||||||
>
|
>
|
||||||
<el-option v-for="item in optionItems" :key="item.empName" :label="item.empName" :value="item.empName" ></el-option>
|
<el-option v-for="item in optionItems" :key="item.empName" :label="item.empName" :value="item.empName" ></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -31,6 +32,11 @@
|
|||||||
placeholder:{
|
placeholder:{
|
||||||
type: [String],
|
type: [String],
|
||||||
required: false
|
required: false
|
||||||
|
},
|
||||||
|
disabled:{
|
||||||
|
type: [Boolean],
|
||||||
|
required: false,
|
||||||
|
default:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -30,9 +30,6 @@
|
|||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="目的国" prop="reciever.country">
|
<el-form-item label="目的国" prop="reciever.country">
|
||||||
<CountryPicker0 v-model="form.reciever.country"></CountryPicker0>
|
<CountryPicker0 v-model="form.reciever.country"></CountryPicker0>
|
||||||
@ -108,20 +105,30 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="寄件网点" prop="sendSiteName">
|
<el-form-item label="寄件网点" prop="sendSiteCode">
|
||||||
<el-input v-model="form.sendSiteName" placeholder="" disabled />
|
<!-- <el-input v-model="form.sendSiteCode" placeholder="" /> -->
|
||||||
|
<EmisSiteSimplePicker v-if="$store.getters.ownerSiteCode== '88888'" v-model="form.sendSiteCode" @onChange="onSendSiteSelect" ></EmisSiteSimplePicker>
|
||||||
|
<el-input v-else v-model="form.sendSiteName" placeholder="" disabled />
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="18">
|
<el-col :span="18">
|
||||||
<el-form-item label="打印选项:" prop="sendSiteName">
|
<el-form-item label="打印选项:" prop="printTypeCheckList">
|
||||||
<el-checkbox-group v-model="printTypeCheckList">
|
<el-checkbox-group v-model="form.printTypeCheckList">
|
||||||
<el-checkbox
|
<!-- <el-checkbox
|
||||||
v-for="dict in dict.type.emis_print_type"
|
v-for="dict in dict.type.emis_print_type"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
:label="dict.label"
|
:label="dict.label"
|
||||||
>
|
>
|
||||||
<span style="font-size:13px" >{{dict.label}}</span>
|
<span >{{dict.label}}</span>
|
||||||
|
</el-checkbox> -->
|
||||||
|
|
||||||
|
<el-checkbox :key="1" :label="1" >
|
||||||
|
<span >寄件网点存根联</span>
|
||||||
|
</el-checkbox>
|
||||||
|
<el-checkbox :key="5" :label="5" >
|
||||||
|
<span >子单</span>
|
||||||
</el-checkbox>
|
</el-checkbox>
|
||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -184,6 +191,11 @@
|
|||||||
<el-input v-model="form.sender.phone" placeholder="" />
|
<el-input v-model="form.sender.phone" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="寄件公司" prop="sender.company">
|
||||||
|
<el-input v-model="form.sender.company" placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="国家地区" prop="sender.province" >
|
<el-form-item label="国家地区" prop="sender.province" >
|
||||||
<div style="display:inline-flex">
|
<div style="display:inline-flex">
|
||||||
@ -199,11 +211,6 @@
|
|||||||
<el-input v-model="form.sender.address" rows="3" type="textarea" placeholder="" />
|
<el-input v-model="form.sender.address" rows="3" type="textarea" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="寄件公司" prop="sender.company">
|
|
||||||
<el-input v-model="form.sender.company" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="" prop="blMessage">
|
<el-form-item label="" prop="blMessage">
|
||||||
@ -246,6 +253,11 @@
|
|||||||
<el-input v-model="form.reciever.phone" placeholder="" />
|
<el-input v-model="form.reciever.phone" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="收件公司" prop="reciever.company">
|
||||||
|
<el-input v-model="form.reciever.company" placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="国家地区" prop="reciever.province">
|
<el-form-item label="国家地区" prop="reciever.province">
|
||||||
<div style="display:inline-flex">
|
<div style="display:inline-flex">
|
||||||
@ -261,11 +273,7 @@
|
|||||||
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" />
|
<el-input v-model="form.reciever.address" type="textarea" rows="3" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="收件公司" prop="reciever.company">
|
|
||||||
<el-input v-model="form.reciever.company" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="目的地" prop="destinationCode">
|
<el-form-item label="目的地" prop="destinationCode">
|
||||||
<DestinationPicker v-model="form.destinationCode" :countryCode="form.reciever.country" :lineCode="form.transLine" @onChange="onDestinationChange"></DestinationPicker>
|
<DestinationPicker v-model="form.destinationCode" :countryCode="form.reciever.country" :lineCode="form.transLine" @onChange="onDestinationChange"></DestinationPicker>
|
||||||
@ -292,7 +300,7 @@
|
|||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="" name="3">
|
<el-collapse-item title="" name="3">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div class="form-group-title"><span class="title">{{ $t('重量收费信息') }}</span>
|
<div class="form-group-title"><span class="title">{{ $t('货物收费信息') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
@ -300,10 +308,35 @@
|
|||||||
|
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;padding: 0px 15px;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;padding: 0px 15px;">
|
||||||
<el-col :span="24"><div style="font-weight:600">货物信息</div></el-col>
|
<el-col :span="24"><div style="font-weight:600">货物信息</div></el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="货物大类" prop="goodsType" label-width="70px">
|
||||||
|
<GoodsMultiplePicker v-model="form.goodsType" @onChange="onGoodsChange" placeholder="选择货物信息"></GoodsMultiplePicker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="货物名称" prop="goodsType" label-width="70px">
|
||||||
|
<el-input v-model="form.goodsInfo" type="textarea" placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="总件数" prop="parcelQty" label-width="70px">
|
||||||
|
<el-input v-model="form.parcelQty" style="text-align: right;" @blur="handleGenGoods" @keyup.enter.native="handleGenGoods" placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="实际重量" prop="billWeight" label-width="70px">
|
||||||
|
<el-input v-model="form.billWeight" @blur="reCalcSettlementWeight" style="text-align: right;min-width: 80px" placeholder="请输入实际重量" >
|
||||||
|
<span slot="suffix">(kg)</span>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="" prop="goodsType" label-width="0px">
|
<el-form-item label="" prop="goodsType" label-width="0px">
|
||||||
<GoodsSimplePicker v-model="form.goodsType" @onChange="onGoodsChange" placeholder="选择货物信息"></GoodsSimplePicker>
|
<!-- <GoodsSimplePicker v-model="form.goodsType" @onChange="onGoodsChange" placeholder="选择货物信息"></GoodsSimplePicker> -->
|
||||||
<el-table
|
<!-- <div style="width:50%">
|
||||||
|
<GoodsMultiplePicker v-model="form.goodsType" @onChange="onGoodsChange" placeholder="选择货物信息"></GoodsMultiplePicker>
|
||||||
|
</div> -->
|
||||||
|
<el-table
|
||||||
class="cargoList"
|
class="cargoList"
|
||||||
:cell-style="{
|
:cell-style="{
|
||||||
'padding': '0px!important',
|
'padding': '0px!important',
|
||||||
@ -322,13 +355,11 @@
|
|||||||
max-height="300px"
|
max-height="300px"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
<el-table-column label="序号" align="center" width="60">
|
||||||
<el-table-column prop="goodsName" label="描述" align="center" min-width="100">
|
<template slot-scope="scope">
|
||||||
<template slot-scope="scope">
|
<span > {{scope.$index+1}}</span>
|
||||||
<el-input v-model="scope.row.goodsName" @input="(val)=>handleCalcQty(val,scope.row)" size="mini" placeholder=""></el-input>
|
</template>
|
||||||
</template>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="length" label="长(cm)" align="center" width="60">
|
<el-table-column prop="length" label="长(cm)" align="center" width="60">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.length" @input="(val)=>handleCalcVolume(val,scope.row)" size="mini" placeholder=""></el-input>
|
<el-input v-model="scope.row.length" @input="(val)=>handleCalcVolume(val,scope.row)" size="mini" placeholder=""></el-input>
|
||||||
@ -351,12 +382,18 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="cargoQty" label="件数" align="center" width="60">
|
<el-table-column prop="cargoQty" label="件数" align="center" width="60">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.cargoQty" @input="(val)=>handleCalcQty(val,scope.row)" size="mini" placeholder=""></el-input>
|
<el-input v-model="scope.row.cargoQty" size="mini" placeholder=""></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
|
<!-- @input="(val)=>handleCalcQty(val,scope.row)" -->
|
||||||
|
<!-- <el-table-column prop="goodsName" label="描述" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-model="scope.row.goodsName" @input="(val)=>handleCalcQty(val,scope.row)" size="mini" placeholder=""></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" width="50">
|
<el-table-column label="操作" align="left" min-width="50">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span class="icon iconfont"
|
<span class="icon iconfont"
|
||||||
style="cursor: pointer;font-size: 21px;color: #6e6e6e;"
|
style="cursor: pointer;font-size: 21px;color: #6e6e6e;"
|
||||||
@ -366,17 +403,10 @@
|
|||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-input v-model="form.goodsInfo" type="textarea" placeholder="" disabled />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="实际重量" prop="billWeight" label-width="70px">
|
|
||||||
<el-input v-model="form.billWeight" @blur="reCalcSettlementWeight" style="text-align: right;min-width: 80px" placeholder="请输入实际重量" >
|
|
||||||
<span slot="suffix">(kg)</span>
|
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="总体积" prop="totalVolume" label-width="70px" >
|
<el-form-item label="总体积" prop="totalVolume" label-width="70px" >
|
||||||
<div style="">
|
<div style="">
|
||||||
@ -386,11 +416,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="总件数" prop="parcelQty" label-width="70px">
|
|
||||||
<el-input v-model="form.parcelQty" style="text-align: right;" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="体积重量" prop="volumeWeight" label-width="70px">
|
<el-form-item label="体积重量" prop="volumeWeight" label-width="70px">
|
||||||
@ -479,6 +505,12 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
<el-form-item label="特殊报价" prop="ext" label-width="70px">
|
||||||
|
<el-checkbox style="font-size:400;margin-right:10px;font-size:10px" v-model="form.blSpecialQuote" :true-label="1" :false-label="0">特殊报价</el-checkbox>
|
||||||
|
<el-checkbox style="font-size:400;margin-right:10px;font-size:10px" v-model="form.blSensitive" :true-label="1" :false-label="0">敏感物</el-checkbox>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="" prop="goodsType" label-width="0px">
|
<el-form-item label="" prop="goodsType" label-width="0px">
|
||||||
<el-table
|
<el-table
|
||||||
@ -514,22 +546,27 @@
|
|||||||
|
|
||||||
<el-table-column prop="initialWeightFee" label="首重费" align="center" width="60">
|
<el-table-column prop="initialWeightFee" label="首重费" align="center" width="60">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.initialWeightFee" @input="(val)=>handleCalcFeeItem(val,scope.row)" size="mini" placeholder=""></el-input>
|
<el-input v-if="form.blSpecialQuote==1" v-model="scope.row.initialWeightFee" @input="(val)=>handleCalcFeeItem(val,scope.row)" size="mini" placeholder=""></el-input>
|
||||||
|
<div v-else> {{scope.row.initialWeightFee}} </div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="addWeightPrice" label="续重单价" align="center" width="70">
|
<el-table-column prop="addWeightPrice" label="续重单价" align="center" width="70">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.addWeightPrice" @input="(val)=>handleCalcFeeItem(val,scope.row)" size="mini" placeholder=""></el-input>
|
<el-input v-if="form.blSpecialQuote==1" v-model="scope.row.addWeightPrice" @input="(val)=>handleCalcFeeItem(val,scope.row)" size="mini" placeholder=""></el-input>
|
||||||
|
<div v-else> {{scope.row.addWeightPrice}} </div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="realFee" label="实收" align="center" width="50">
|
<el-table-column prop="realFee" label="实收" align="center" width="50">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.realFee" @input="(val)=>handleCalcFeeItem(val,scope.row)" size="mini" placeholder=""></el-input>
|
<el-input v-if="form.blSpecialQuote==1" v-model="scope.row.realFee" @input="(val)=>handleCalcFeeItem(val,scope.row)" size="mini" placeholder=""></el-input>
|
||||||
|
<div v-else> {{scope.row.realFee}} </div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="remark" label="描述" align="center" min-width="50">
|
<el-table-column prop="remark" label="描述" align="center" min-width="50">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.remark" size="mini" placeholder=""></el-input>
|
<el-input v-if="form.blSpecialQuote==1" v-model="scope.row.remark" size="mini" placeholder=""></el-input>
|
||||||
|
<div v-else> {{scope.row.remark}} </div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" width="50">
|
<el-table-column label="操作" align="center" width="50">
|
||||||
@ -591,18 +628,21 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-show="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5">
|
<el-col :span="24" v-show="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5">
|
||||||
<el-form-item label="月结账号" prop="thirdCustomerCode" label-width="70px">
|
<el-form-item label="月结账号" prop="thirdCustomerCode" label-width="70px">
|
||||||
<EmisMonthpayAccountPicker v-model="form.custNo"></EmisMonthpayAccountPicker>
|
<EmisMonthpayAccountPicker v-model="form.custNo" @onChange="onSelectMonthUser"></EmisMonthpayAccountPicker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="回款联系人" prop="payee" label-width="80px">
|
<el-form-item label="回款联系人" prop="payee" label-width="80px">
|
||||||
<EmisUserSimplePicker2 :placeholder="$t('回款联系人')" v-model="form.payee" ></EmisUserSimplePicker2>
|
<PayeePicker v-if="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5" :placeholder="$t('回款联系人')" v-model="form.payee" :disabled="true" ></PayeePicker>
|
||||||
|
<PayeePicker v-else :placeholder="$t('回款联系人')" v-model="form.payee" ></PayeePicker>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="销售联系人" prop="salesmen" label-width="80px">
|
<el-form-item label="销售联系人" prop="salesmen" label-width="80px">
|
||||||
<EmisUserSimplePicker3 :placeholder="$t('销售联系人')" v-model="form.salesmen" ></EmisUserSimplePicker3>
|
<SalemanPicker v-if="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5" :placeholder="$t('销售联系人')" v-model="form.salesmen" :disabled="true" ></SalemanPicker>
|
||||||
|
<SalemanPicker v-else :placeholder="$t('销售联系人')" v-model="form.salesmen" ></SalemanPicker>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
@ -628,6 +668,17 @@
|
|||||||
<AddressSelectPicker0 :addressType="addressType" @onSelected="onAddressChangeSelect"></AddressSelectPicker0>
|
<AddressSelectPicker0 :addressType="addressType" @onSelected="onAddressChangeSelect"></AddressSelectPicker0>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog class="previe_dialog" title="打印预览" :visible.sync="openPdfView" width="80%" :close-on-click-modal="false" v-dialogDrag append-to-body>
|
||||||
|
<PdfViewer :pdfUrl="pdfUrl" width="100%" @onPrint="handleBatchPrint" ></PdfViewer>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 打印机状态 -->
|
||||||
|
<div style="padding:5px 0px;text-align: right;position: fixed;top: 150px;right: 10px; z-index: 9999;">
|
||||||
|
<el-tag type="danger" v-if="printerStatus==0">{{ printerStatusMessage }}</el-tag>
|
||||||
|
<el-tag type="success" v-if="printerStatus==1">{{ printerStatusMessage }}</el-tag>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -643,6 +694,7 @@ import EmisUserSimplePicker0 from '@/views/emis/EmisBaseTools/EmisUserSimplePick
|
|||||||
import EmisUserSimplePicker1 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
|
import EmisUserSimplePicker1 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
|
||||||
import EmisUserSimplePicker2 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
|
import EmisUserSimplePicker2 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
|
||||||
import EmisUserSimplePicker3 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
|
import EmisUserSimplePicker3 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
|
||||||
|
import EmisSiteSimplePicker from '@/views/emis/EmisBaseTools/EmisSiteSimplePicker.vue';
|
||||||
|
|
||||||
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
|
import TransLinePicker from '@/views/emis/EmisBaseTools/TransLinePicker.vue';
|
||||||
import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vue';
|
import TransProductPicker from '@/views/emis/EmisBaseTools/TransProductPicker.vue';
|
||||||
@ -666,6 +718,8 @@ import DistrictPicker2 from '@/views/emis/EmisBaseTools/DistrictPicker.vue';
|
|||||||
// import CustomerPicker2 from '@/views/emis/EmisBaseTools/CustomerPicker.vue';
|
// import CustomerPicker2 from '@/views/emis/EmisBaseTools/CustomerPicker.vue';
|
||||||
|
|
||||||
import GoodsSimplePicker from '@/views/emis/EmisBaseTools/GoodsSimplePicker.vue';
|
import GoodsSimplePicker from '@/views/emis/EmisBaseTools/GoodsSimplePicker.vue';
|
||||||
|
import GoodsMultiplePicker from '@/views/emis/EmisBaseTools/GoodsMultiplePicker.vue';
|
||||||
|
|
||||||
import CustomerAddressSimplePicker0 from '@/views/emis/EmisBaseTools/CustomerAddressSimplePicker.vue';
|
import CustomerAddressSimplePicker0 from '@/views/emis/EmisBaseTools/CustomerAddressSimplePicker.vue';
|
||||||
import CustomerAddressSimplePicker1 from '@/views/emis/EmisBaseTools/CustomerAddressSimplePicker.vue';
|
import CustomerAddressSimplePicker1 from '@/views/emis/EmisBaseTools/CustomerAddressSimplePicker.vue';
|
||||||
import AddressSelectPicker0 from '@/views/emis/EmisBaseTools/AddressSelectPicker.vue';
|
import AddressSelectPicker0 from '@/views/emis/EmisBaseTools/AddressSelectPicker.vue';
|
||||||
@ -673,19 +727,27 @@ import AddressSelectPicker1 from '@/views/emis/EmisBaseTools/AddressSelectPicker
|
|||||||
import EmisMonthpayAccountPicker from '@/views/emis/EmisBaseTools/EmisMonthpayAccountPicker.vue';
|
import EmisMonthpayAccountPicker from '@/views/emis/EmisBaseTools/EmisMonthpayAccountPicker.vue';
|
||||||
import WarehouseInNoPicker from '@/views/emis/EmisBaseTools/WarehouseInNoPicker.vue';
|
import WarehouseInNoPicker from '@/views/emis/EmisBaseTools/WarehouseInNoPicker.vue';
|
||||||
|
|
||||||
|
import PayeePicker from '@/views/emis/EmisBaseTools/PayeePicker.vue';
|
||||||
|
import SalemanPicker from '@/views/emis/EmisBaseTools/SalemanPicker.vue';
|
||||||
|
|
||||||
import TransProductCasPicker from '@/views/emis/EmisBaseTools/TransProductCasPicker.vue';
|
import TransProductCasPicker from '@/views/emis/EmisBaseTools/TransProductCasPicker.vue';
|
||||||
import feeItemForm from './feeItemForm.vue';
|
import feeItemForm from './feeItemForm.vue';
|
||||||
|
|
||||||
|
import PdfViewer from '@/components/PdfViewer/index.vue';
|
||||||
|
import PdfUtils from '@/utils/pdfUtils'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "WaybillModify",
|
name: "WaybillEntry",
|
||||||
// props:{
|
// props:{
|
||||||
// billCode:{
|
// billCode:{
|
||||||
// type:String
|
// type:String
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
components: {
|
components: {
|
||||||
|
SalemanPicker,
|
||||||
|
PayeePicker,
|
||||||
|
PdfViewer,
|
||||||
feeItemForm,
|
feeItemForm,
|
||||||
TransProductCasPicker,
|
TransProductCasPicker,
|
||||||
WarehouseInNoPicker,
|
WarehouseInNoPicker,
|
||||||
@ -695,28 +757,24 @@ components: {
|
|||||||
CustomerAddressSimplePicker0,
|
CustomerAddressSimplePicker0,
|
||||||
CustomerAddressSimplePicker1,
|
CustomerAddressSimplePicker1,
|
||||||
GoodsSimplePicker,
|
GoodsSimplePicker,
|
||||||
|
GoodsMultiplePicker,
|
||||||
EmisUserSimplePicker0,
|
EmisUserSimplePicker0,
|
||||||
EmisUserSimplePicker1,
|
EmisUserSimplePicker1,
|
||||||
EmisUserSimplePicker2,
|
EmisUserSimplePicker2,
|
||||||
EmisUserSimplePicker3,
|
EmisUserSimplePicker3,
|
||||||
// CustomerPicker0,
|
EmisSiteSimplePicker,
|
||||||
// CustomerPicker1,
|
|
||||||
// CustomerPicker2,
|
|
||||||
DestinationPicker,
|
DestinationPicker,
|
||||||
TransLinePicker,
|
TransLinePicker,
|
||||||
TransProductPicker,
|
TransProductPicker,
|
||||||
// AreaPicker0,
|
|
||||||
CountryPicker0,
|
CountryPicker0,
|
||||||
CountryPicker1,
|
CountryPicker1,
|
||||||
ProvincePicker1,
|
ProvincePicker1,
|
||||||
CityPicker1,
|
CityPicker1,
|
||||||
DistrictPicker1,
|
DistrictPicker1,
|
||||||
// TownPicker1,
|
|
||||||
CountryPicker2,
|
CountryPicker2,
|
||||||
ProvincePicker2,
|
ProvincePicker2,
|
||||||
CityPicker2,
|
CityPicker2,
|
||||||
DistrictPicker2,
|
DistrictPicker2,
|
||||||
// TownPicker2,
|
|
||||||
},
|
},
|
||||||
dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear',
|
dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear',
|
||||||
'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type',
|
'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type',
|
||||||
@ -731,13 +789,25 @@ data() {
|
|||||||
loading: true,
|
loading: true,
|
||||||
isNeedSave:false,
|
isNeedSave:false,
|
||||||
triggerCount:0,
|
triggerCount:0,
|
||||||
printTypeCheckList:['1','2','5'],
|
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
timer:null,
|
timer:null,
|
||||||
isNeedCalc:false,
|
isNeedCalc:false,
|
||||||
titleSelectAddress:'',
|
titleSelectAddress:'',
|
||||||
openSelectAddress:false,
|
openSelectAddress:false,
|
||||||
|
|
||||||
|
tanexPrinter:null,
|
||||||
|
printerDownUrl:null,
|
||||||
|
printerStatus:0,
|
||||||
|
printerStatusMessage:'打印组件未连接',
|
||||||
|
printerList:[],
|
||||||
|
printTplList:[],
|
||||||
|
selTplName:null,
|
||||||
|
selPrinterName:null,
|
||||||
|
|
||||||
|
openPdfView:false,
|
||||||
|
pdfUrl:null,
|
||||||
|
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
billCode: [
|
billCode: [
|
||||||
@ -911,6 +981,20 @@ data() {
|
|||||||
immediate: false,
|
immediate: false,
|
||||||
deep: true
|
deep: true
|
||||||
},
|
},
|
||||||
|
"form.billCode":{
|
||||||
|
handler (newValue, oldValue) {
|
||||||
|
this.handleGenSubbill();
|
||||||
|
},
|
||||||
|
immediate: false,
|
||||||
|
deep: true
|
||||||
|
},
|
||||||
|
"form.blGenSubbill":{
|
||||||
|
handler (newValue, oldValue) {
|
||||||
|
this.handleGenSubbill();
|
||||||
|
},
|
||||||
|
immediate: false,
|
||||||
|
deep: true
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
activated(){
|
activated(){
|
||||||
@ -922,6 +1006,7 @@ updated(){
|
|||||||
created() {
|
created() {
|
||||||
this.billCode=this.$route.query.billCode;
|
this.billCode=this.$route.query.billCode;
|
||||||
this.initData();
|
this.initData();
|
||||||
|
this.initTanexPrinterSdk();
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -933,6 +1018,104 @@ methods: {
|
|||||||
this.billCode=this.form.billCode;
|
this.billCode=this.form.billCode;
|
||||||
this.initData();
|
this.initData();
|
||||||
},
|
},
|
||||||
|
initTanexPrinterSdk(){
|
||||||
|
this.tanexPrinter = this.$tanexPrinter;
|
||||||
|
|
||||||
|
this.getConfigKey("sys.printer.downurl").then(response => {
|
||||||
|
this.printerDownUrl = response.msg;
|
||||||
|
});
|
||||||
|
this.tanexPrinter.init();
|
||||||
|
this.tanexPrinter.setOnOpen(this.onPrinterOpen);
|
||||||
|
this.tanexPrinter.setOnClose(this.onPrinterClose);
|
||||||
|
this.tanexPrinter.setOnError(this.onPrinterError);
|
||||||
|
// this.tanexPrinter.setOnGetPrinter(this.onGetPrinter);
|
||||||
|
// this.tanexPrinter.setOnGetPrintTpl(this.onGetPrintTpl);
|
||||||
|
},
|
||||||
|
onPrinterOpen(evt){
|
||||||
|
console.log("onPrinterOpen")
|
||||||
|
this.printerStatus = 1;
|
||||||
|
this.printerStatusMessage="打印组件已连接,可以打印.";
|
||||||
|
|
||||||
|
},
|
||||||
|
onPrinterClose(evt){
|
||||||
|
console.log("onPrinterClose")
|
||||||
|
this.printerStatus = 0;
|
||||||
|
this.printerStatusMessage="打印组件已断开!";
|
||||||
|
},
|
||||||
|
onPrinterError(evt){
|
||||||
|
console.log("onPrinterError")
|
||||||
|
this.printerStatus = 0;
|
||||||
|
this.printerStatusMessage="打印组件已断开!";
|
||||||
|
},
|
||||||
|
handleBatchPrint(){
|
||||||
|
|
||||||
|
if(this.form.billCode){
|
||||||
|
// 重要,设置为true才会把右上角X和取消区分开来
|
||||||
|
this.$confirm("确定打印?", "提示", {
|
||||||
|
cancelButtonText: "不打印",
|
||||||
|
confirmButtonText: "确定打印",
|
||||||
|
type: "warning",
|
||||||
|
distinguishCancelAndClose: true,
|
||||||
|
closeOnClickModal: false
|
||||||
|
}).then(() => {
|
||||||
|
// 打印主单,子单
|
||||||
|
let orderList=[];
|
||||||
|
// this.currentSelection.forEach(item=>{
|
||||||
|
// orderList.push(item.billCode);
|
||||||
|
// });
|
||||||
|
// 打印主单
|
||||||
|
orderList.push(this.form.billCode);
|
||||||
|
let selPrinterName=this.tanexPrinter.getDefaultPrinter();
|
||||||
|
let selTplName="探路速运-主单联(通用)";
|
||||||
|
this.tanexPrinter.batchPrint(selTplName,selPrinterName,orderList)
|
||||||
|
// 打印子单
|
||||||
|
orderList=this.form.subBillCode.split(',');
|
||||||
|
|
||||||
|
selTplName="探路速运-子单联(通用)";
|
||||||
|
this.tanexPrinter.batchPrint(selTplName,selPrinterName,orderList)
|
||||||
|
|
||||||
|
}).catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
async handlePrintPreview(){
|
||||||
|
|
||||||
|
if(this.form.billCode){
|
||||||
|
let pdfUrlList=[];
|
||||||
|
let selPrinterName=this.tanexPrinter.getDefaultPrinter();
|
||||||
|
let selTplName="探路速运-主单联(通用)";
|
||||||
|
let url=this.tanexPrinter.getPdfUrl(this.form.billCode,selTplName,selPrinterName);
|
||||||
|
pdfUrlList.push(url)
|
||||||
|
|
||||||
|
// 子单url
|
||||||
|
if(this.form.subBillCode){
|
||||||
|
orderList=this.form.subBillCode.split(',');
|
||||||
|
selTplName="探路速运-子单联(通用)";
|
||||||
|
this.orderList.forEach(item=>{
|
||||||
|
let url=this.tanexPrinter.getPdfUrl(item,selTplName,selPrinterName);
|
||||||
|
pdfUrlList.push(url)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let pdfUtils=new PdfUtils({});
|
||||||
|
const loadingInstance = this.$loading({
|
||||||
|
text: '正在生成预览...'
|
||||||
|
})
|
||||||
|
pdfUtils.mergePdf2(pdfUrlList, (new Date()).getTime()+".pdf" )
|
||||||
|
.then(url=>{
|
||||||
|
loadingInstance.close();
|
||||||
|
this.pdfUrl=url;
|
||||||
|
this.openPdfView = true;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
onSelectMonthUser(item){
|
||||||
|
console.log(item);
|
||||||
|
this.form.payee=item.payee;
|
||||||
|
this.form.salesmen=item.salesmen;
|
||||||
|
},
|
||||||
handleAddFee(){
|
handleAddFee(){
|
||||||
this.triggerCount++;
|
this.triggerCount++;
|
||||||
},
|
},
|
||||||
@ -943,7 +1126,6 @@ methods: {
|
|||||||
this.form.feeItems.push(newItem);
|
this.form.feeItems.push(newItem);
|
||||||
this.handleCalcFeeItem();
|
this.handleCalcFeeItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
deleteFeeItem(row){
|
deleteFeeItem(row){
|
||||||
if(row.blAutoGen==1){
|
if(row.blAutoGen==1){
|
||||||
@ -981,13 +1163,13 @@ methods: {
|
|||||||
},
|
},
|
||||||
handleGenSubbill(value){
|
handleGenSubbill(value){
|
||||||
if(this.form.blGenSubbill==1 && this.form.parcelQty > 0 && this.form.billCode){
|
if(this.form.blGenSubbill==1 && this.form.parcelQty > 0 && this.form.billCode){
|
||||||
// let billSubCodeStr="";
|
let billSubCodeStr="";
|
||||||
// for(let i=1;i<this.form.parcelQty;i++){
|
for(let i=1;i<=this.form.parcelQty;i++){
|
||||||
// let subBillCode = this.form.billCode+""+this.lpadZero(i,3);
|
let subBillCode = this.form.billCode+""+this.lpadZero(i,4);
|
||||||
// billSubCodeStr=billSubCodeStr+subBillCode+";"
|
billSubCodeStr=billSubCodeStr+subBillCode+","
|
||||||
// console.log(billSubCodeStr);
|
console.log(billSubCodeStr);
|
||||||
// }
|
}
|
||||||
let billSubCodeStr = this.form.billCode+"["+this.lpadZero(1,3)+"-"+this.lpadZero(this.form.parcelQty,3)+"]";
|
// let billSubCodeStr = this.form.billCode+"["+this.lpadZero(1,3)+"-"+this.lpadZero(this.form.parcelQty,3)+"]";
|
||||||
console.log(billSubCodeStr);
|
console.log(billSubCodeStr);
|
||||||
this.form.billCodeSub=billSubCodeStr;
|
this.form.billCodeSub=billSubCodeStr;
|
||||||
}else{
|
}else{
|
||||||
@ -1000,7 +1182,7 @@ methods: {
|
|||||||
},
|
},
|
||||||
initData() {
|
initData() {
|
||||||
this.reset();
|
this.reset();
|
||||||
|
this.form.sendDate = parseTime(new Date());
|
||||||
this.form.sendSiteCode=this.$store.getters.ownerSiteCode;
|
this.form.sendSiteCode=this.$store.getters.ownerSiteCode;
|
||||||
this.form.sendSiteName=this.$store.getters.ownerSiteName;
|
this.form.sendSiteName=this.$store.getters.ownerSiteName;
|
||||||
console.log(this.form.sendSiteName)
|
console.log(this.form.sendSiteName)
|
||||||
@ -1014,8 +1196,6 @@ methods: {
|
|||||||
|
|
||||||
this.isNeedSave=true;
|
this.isNeedSave=true;
|
||||||
|
|
||||||
this.form.sendDate = parseTime(new Date());
|
|
||||||
|
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
// console.log(this.dict.type.emis_declare_mode[0]);
|
// console.log(this.dict.type.emis_declare_mode[0]);
|
||||||
@ -1023,19 +1203,22 @@ methods: {
|
|||||||
// this.form.customsEclaration = this.dict.type.emis_declare_mode[0].value;
|
// this.form.customsEclaration = this.dict.type.emis_declare_mode[0].value;
|
||||||
this.form.customsEclaration='1';
|
this.form.customsEclaration='1';
|
||||||
this.form.customsClear='1';
|
this.form.customsClear='1';
|
||||||
this.form.pickupMethod='2';
|
// this.form.pickupMethod='2';
|
||||||
this.form.dispatchMethod='1';
|
this.form.dispatchMethod='1';
|
||||||
// this.form.billWeight=1.0;
|
// this.form.billWeight=1.0;
|
||||||
// this.form.totalVolume=0.0;
|
// this.form.totalVolume=0.0;
|
||||||
this.form.parcelQty=1;
|
this.form.parcelQty=1;
|
||||||
this.form.packType='2';
|
this.form.packType='2';
|
||||||
this.form.blOverWeight='0';
|
this.form.blOverWeight='0';
|
||||||
this.form.blGenSubbill=0;
|
this.form.blGenSubbill=1;
|
||||||
this.form.paymentType='1';
|
this.form.paymentType='1';
|
||||||
this.form.calcFeeType='1';
|
this.form.calcFeeType='1';
|
||||||
this.form.blMessage='1'
|
this.form.blMessage='1'
|
||||||
|
this.form.blAcceptMessage='1'
|
||||||
this.isNeedSave=true;
|
this.isNeedSave=true;
|
||||||
|
this.form.printTypeCheckList=[1,5],
|
||||||
|
|
||||||
|
this.handleGenGoods();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1140,6 +1323,8 @@ methods: {
|
|||||||
meterType:null,
|
meterType:null,
|
||||||
blGenSubbill:null,
|
blGenSubbill:null,
|
||||||
billCodeSub:null,
|
billCodeSub:null,
|
||||||
|
blSpecialQuote:null,
|
||||||
|
blSensitive:null,
|
||||||
};
|
};
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
},
|
},
|
||||||
@ -1147,13 +1332,26 @@ methods: {
|
|||||||
this.form.transLine=item[0];
|
this.form.transLine=item[0];
|
||||||
this.form.productType=item[1];
|
this.form.productType=item[1];
|
||||||
},
|
},
|
||||||
|
onSendSiteSelect(item){
|
||||||
|
if(!item){
|
||||||
|
this.form.sendSiteCode = null;
|
||||||
|
this.form.sendSiteName = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.form.sendSiteCode=item.siteCode;
|
||||||
|
this.form.sendSiteName=item.siteName;
|
||||||
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
realSubmitOrder(this.form).then(response => {
|
realSubmitOrder(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("下单成功");
|
this.$modal.msgSuccess("下单成功");
|
||||||
this.$emit("on-changed");
|
|
||||||
|
// 弹出打印预览界面
|
||||||
|
this.handlePrintPreview();
|
||||||
|
|
||||||
|
// this.$emit("on-changed");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -1249,12 +1447,28 @@ methods: {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.form.goodsInfo = goodsInfo;
|
|
||||||
this.form.parcelQty = totalCargoQty;
|
this.form.parcelQty = totalCargoQty;
|
||||||
|
|
||||||
this.handleGenSubbill();
|
this.handleGenSubbill();
|
||||||
},
|
},
|
||||||
handleCalcFeeItem(val,row){
|
handleCalcFeeItem(val,row){
|
||||||
|
|
||||||
|
let childRealFee=0.0;
|
||||||
|
if(row!=null){
|
||||||
|
|
||||||
|
if(row.calcExp){
|
||||||
|
let expr=row.calcExp+"";
|
||||||
|
expr=expr.replace("s",row.initialWeightFee);
|
||||||
|
expr=expr.replace("d",row.addWeightPrice);
|
||||||
|
expr=expr.replace("w",this.form.settlementWeight);
|
||||||
|
console.log(expr);
|
||||||
|
let childRealFee=parseFloat(eval(expr)).toFixed(2);
|
||||||
|
row.realFee=childRealFee;
|
||||||
|
console.log(childRealFee);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let totalFee=0;
|
let totalFee=0;
|
||||||
this.form.feeItems.forEach(item=>{
|
this.form.feeItems.forEach(item=>{
|
||||||
totalFee=totalFee+parseInt(item.realFee);
|
totalFee=totalFee+parseInt(item.realFee);
|
||||||
@ -1358,7 +1572,43 @@ methods: {
|
|||||||
this.form.dispatchUnderlingSite= item.siteName;
|
this.form.dispatchUnderlingSite= item.siteName;
|
||||||
this.form.dispatchSite= item.siteName;
|
this.form.dispatchSite= item.siteName;
|
||||||
},
|
},
|
||||||
onGoodsChange(goodsName){
|
onGoodsChange(goodsList,selNameStr){
|
||||||
|
this.form.goodsInfo = selNameStr;
|
||||||
|
},
|
||||||
|
|
||||||
|
handleGenGoods(){
|
||||||
|
if(this.form.parcelQty>0){
|
||||||
|
// 新件数大于
|
||||||
|
if(this.form.parcelQty>=this.form.cargoList.length){
|
||||||
|
console.log()
|
||||||
|
let len=this.form.parcelQty-this.form.cargoList.length;
|
||||||
|
for(let i=0;i<len;i++){
|
||||||
|
let cargo={
|
||||||
|
"goodsCode": "",
|
||||||
|
"goodsName": "",
|
||||||
|
"cargoQty": 1,
|
||||||
|
"length": 0,
|
||||||
|
"width": 0,
|
||||||
|
"height": 0,
|
||||||
|
"volume": 0,
|
||||||
|
}
|
||||||
|
this.form.cargoList.push(cargo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
let newList=[];
|
||||||
|
for(let i=0;i<this.form.parcelQty;i++){
|
||||||
|
newList.push(this.form.cargoList[i])
|
||||||
|
}
|
||||||
|
this.form.cargoList=newList;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
this.form.cargoList=[];
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
onGoodsChange_old(goodsName){
|
||||||
if(goodsName&& goodsName!='') {
|
if(goodsName&& goodsName!='') {
|
||||||
// 旧map
|
// 旧map
|
||||||
let nameOldMap = new Map();
|
let nameOldMap = new Map();
|
||||||
|
|||||||
@ -17,7 +17,12 @@
|
|||||||
<el-col :span="18">
|
<el-col :span="18">
|
||||||
<el-form-item label="运单号" prop="billCode" >
|
<el-form-item label="运单号" prop="billCode" >
|
||||||
<div style="display:inline-flex">
|
<div style="display:inline-flex">
|
||||||
<div><el-input v-model="form.billCode" placeholder="运单号" style="font-weight:600;color:black" /></div>
|
<div>
|
||||||
|
<!-- <el-input v-model="form.billCode" placeholder="运单号" style="font-weight:600;color:black" /> -->
|
||||||
|
<el-input v-model="form.billCode" placeholder="单号输入后按回车" @keyup.enter.native="handleScanInput" style="font-weight:600;color:black" >
|
||||||
|
<i slot="suffix" class="iconfont"></i>
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
<div style="padding-left:5px"> <el-checkbox style="font-size:400;margin-right:10px;font-size:10px" @change="checked=>handleBillCodeChange(checked)"><span style="font-size:10px">电子主单</span></el-checkbox></div>
|
<div style="padding-left:5px"> <el-checkbox style="font-size:400;margin-right:10px;font-size:10px" @change="checked=>handleBillCodeChange(checked)"><span style="font-size:10px">电子主单</span></el-checkbox></div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -621,20 +626,20 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24" v-show="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5">
|
<el-col :span="24" v-show="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5">
|
||||||
<el-form-item label="月结账号" prop="thirdCustomerCode" label-width="70px">
|
<el-form-item label="月结账号" prop="thirdCustomerCode" label-width="70px">
|
||||||
<EmisMonthpayAccountPicker v-model="form.custNo"></EmisMonthpayAccountPicker>
|
<EmisMonthpayAccountPicker v-model="form.custNo" @onChange="onSelectMonthUser"></EmisMonthpayAccountPicker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="回款联系人" prop="payee" label-width="80px">
|
<el-form-item label="回款联系人" prop="payee" label-width="80px">
|
||||||
<PayeePicker v-if="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5" :placeholder="$t('回款联系人')" v-model="form.payee" disabled ></PayeePicker>
|
<PayeePicker v-if="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5" :placeholder="$t('回款联系人')" v-model="form.payee" :disabled="true" ></PayeePicker>
|
||||||
<PayeePicker :placeholder="$t('回款联系人')" v-model="form.payee" ></PayeePicker>
|
<PayeePicker v-else :placeholder="$t('回款联系人')" v-model="form.payee" ></PayeePicker>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="销售联系人" prop="salesmen" label-width="80px">
|
<el-form-item label="销售联系人" prop="salesmen" label-width="80px">
|
||||||
<SalemanPicker v-if="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5" :placeholder="$t('销售联系人')" v-model="form.salesmen" disabled ></SalemanPicker>
|
<SalemanPicker v-if="form.paymentType == 2 || form.paymentType == 4 || form.paymentType == 5" :placeholder="$t('销售联系人')" v-model="form.salesmen" :disabled="true" ></SalemanPicker>
|
||||||
<SalemanPicker :placeholder="$t('销售联系人')" v-model="form.salesmen" ></SalemanPicker>
|
<SalemanPicker v-else :placeholder="$t('销售联系人')" v-model="form.salesmen" ></SalemanPicker>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -974,6 +979,20 @@ data() {
|
|||||||
immediate: false,
|
immediate: false,
|
||||||
deep: true
|
deep: true
|
||||||
},
|
},
|
||||||
|
"form.billCode":{
|
||||||
|
handler (newValue, oldValue) {
|
||||||
|
this.handleGenSubbill();
|
||||||
|
},
|
||||||
|
immediate: false,
|
||||||
|
deep: true
|
||||||
|
},
|
||||||
|
"form.blGenSubbill":{
|
||||||
|
handler (newValue, oldValue) {
|
||||||
|
this.handleGenSubbill();
|
||||||
|
},
|
||||||
|
immediate: false,
|
||||||
|
deep: true
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
activated(){
|
activated(){
|
||||||
@ -989,6 +1008,14 @@ created() {
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleScanInput(){
|
||||||
|
if(this.form.billCode==null || this.form.billCode==''){
|
||||||
|
this.$message.error("输入单号后回车");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.billCode=this.form.billCode;
|
||||||
|
this.initData();
|
||||||
|
},
|
||||||
initTanexPrinterSdk(){
|
initTanexPrinterSdk(){
|
||||||
this.tanexPrinter = this.$tanexPrinter;
|
this.tanexPrinter = this.$tanexPrinter;
|
||||||
|
|
||||||
@ -1019,43 +1046,84 @@ methods: {
|
|||||||
this.printerStatusMessage="打印组件已断开!";
|
this.printerStatusMessage="打印组件已断开!";
|
||||||
},
|
},
|
||||||
handleBatchPrint(){
|
handleBatchPrint(){
|
||||||
// 重要,设置为true才会把右上角X和取消区分开来
|
|
||||||
this.$confirm("确定打印?", "提示", {
|
if(this.form.billCode){
|
||||||
cancelButtonText: "不打印",
|
// 重要,设置为true才会把右上角X和取消区分开来
|
||||||
confirmButtonText: "确定打印",
|
this.$confirm("确定打印?", "提示", {
|
||||||
type: "warning",
|
cancelButtonText: "不打印",
|
||||||
distinguishCancelAndClose: true,
|
confirmButtonText: "确定打印",
|
||||||
closeOnClickModal: false
|
type: "warning",
|
||||||
}).then(() => {
|
distinguishCancelAndClose: true,
|
||||||
let orderList=[];
|
closeOnClickModal: false
|
||||||
this.currentSelection.forEach(item=>{
|
}).then(() => {
|
||||||
orderList.push(item.billCode);
|
// 打印主单,子单
|
||||||
});
|
let orderList=[];
|
||||||
this.tanexPrinter.batchPrint(this.selTplName,this.selPrinterName,orderList)
|
// this.currentSelection.forEach(item=>{
|
||||||
}).catch(() => {});
|
// orderList.push(item.billCode);
|
||||||
|
// });
|
||||||
|
// 打印主单
|
||||||
|
orderList.push(this.form.billCode);
|
||||||
|
let selPrinterName=this.tanexPrinter.getDefaultPrinter();
|
||||||
|
let selTplName="探路速运-主单联(通用)";
|
||||||
|
this.tanexPrinter.batchPrint(selTplName,selPrinterName,orderList)
|
||||||
|
|
||||||
|
|
||||||
|
// 打印子单
|
||||||
|
selTplName="探路速运-子单联(通用)";
|
||||||
|
|
||||||
|
let childOrderList=[]
|
||||||
|
orderList=this.form.billCodeSub.split(',');
|
||||||
|
orderList.forEach(item=>{
|
||||||
|
if(item!=null && item!=''){
|
||||||
|
childOrderList.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.tanexPrinter.batchPrint(selTplName,selPrinterName,childOrderList)
|
||||||
|
|
||||||
|
|
||||||
|
}).catch(() => {});
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
async handlePrintPreview(){
|
async handlePrintPreview(){
|
||||||
let pdfUrlList=[];
|
|
||||||
this.currentSelection.forEach(item=>{
|
if(this.form.billCode){
|
||||||
let url=this.tanexPrinter.getPdfUrl(item.billCode,this.selTplName,this.selPrinterName);
|
let pdfUrlList=[];
|
||||||
pdfUrlList.push(url)
|
let selPrinterName=this.tanexPrinter.getDefaultPrinter();
|
||||||
});
|
let selTplName="探路速运-主单联(通用)";
|
||||||
let pdfUtils=new PdfUtils({});
|
let url=this.tanexPrinter.getPdfUrl(this.form.billCode,selTplName,selPrinterName);
|
||||||
const loadingInstance = this.$loading({
|
pdfUrlList.push(url)
|
||||||
text: '正在生成预览...'
|
// 子单url
|
||||||
})
|
if(this.form.billCodeSub){
|
||||||
pdfUtils.mergePdf2(pdfUrlList, (new Date()).getTime()+".pdf" )
|
selTplName="探路速运-子单联(通用)";
|
||||||
.then(url=>{
|
let orderList=this.form.billCodeSub.split(',');
|
||||||
loadingInstance.close();
|
orderList.forEach(item=>{
|
||||||
this.pdfUrl=url;
|
if(item!=null && item!=''){
|
||||||
this.openPdfView = true;
|
let url=this.tanexPrinter.getPdfUrl(item,selTplName,selPrinterName);
|
||||||
})
|
pdfUrlList.push(url)
|
||||||
.catch(error => {
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
let pdfUtils=new PdfUtils({});
|
||||||
|
const loadingInstance = this.$loading({
|
||||||
|
text: '正在生成预览...'
|
||||||
|
})
|
||||||
|
pdfUtils.mergePdf2(pdfUrlList, (new Date()).getTime()+".pdf" )
|
||||||
|
.then(url=>{
|
||||||
|
loadingInstance.close();
|
||||||
|
this.pdfUrl=url;
|
||||||
|
this.openPdfView = true;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
onSelectMonthUser(item){
|
||||||
|
console.log(item);
|
||||||
|
this.form.payee=item.payee;
|
||||||
|
this.form.salesmen=item.salesmen;
|
||||||
|
},
|
||||||
handleAddFee(){
|
handleAddFee(){
|
||||||
this.triggerCount++;
|
this.triggerCount++;
|
||||||
},
|
},
|
||||||
@ -1104,9 +1172,9 @@ methods: {
|
|||||||
handleGenSubbill(value){
|
handleGenSubbill(value){
|
||||||
if(this.form.blGenSubbill==1 && this.form.parcelQty > 0 && this.form.billCode){
|
if(this.form.blGenSubbill==1 && this.form.parcelQty > 0 && this.form.billCode){
|
||||||
let billSubCodeStr="";
|
let billSubCodeStr="";
|
||||||
for(let i=1;i<this.form.parcelQty;i++){
|
for(let i=1;i<=this.form.parcelQty;i++){
|
||||||
let subBillCode = this.form.billCode+""+this.lpadZero(i,4);
|
let subBillCode = this.form.billCode+""+this.lpadZero(i,4);
|
||||||
billSubCodeStr=billSubCodeStr+subBillCode+";"
|
billSubCodeStr=billSubCodeStr+subBillCode+","
|
||||||
console.log(billSubCodeStr);
|
console.log(billSubCodeStr);
|
||||||
}
|
}
|
||||||
// let billSubCodeStr = this.form.billCode+"["+this.lpadZero(1,3)+"-"+this.lpadZero(this.form.parcelQty,3)+"]";
|
// let billSubCodeStr = this.form.billCode+"["+this.lpadZero(1,3)+"-"+this.lpadZero(this.form.parcelQty,3)+"]";
|
||||||
@ -1287,7 +1355,11 @@ methods: {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
realSubmitOrder(this.form).then(response => {
|
realSubmitOrder(this.form).then(response => {
|
||||||
this.$modal.msgSuccess("下单成功");
|
this.$modal.msgSuccess("下单成功");
|
||||||
this.$emit("on-changed");
|
|
||||||
|
// 弹出打印预览界面
|
||||||
|
this.handlePrintPreview();
|
||||||
|
|
||||||
|
// this.$emit("on-changed");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -73,26 +73,51 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
configureWebpack: {
|
configureWebpack: config => {
|
||||||
name: name,
|
// 开发环境不配置
|
||||||
resolve: {
|
if (process.env.NODE_ENV !== 'production') return
|
||||||
alias: {
|
// 生产环境才去配置
|
||||||
'@': resolve('src')
|
return {
|
||||||
}
|
name: name,
|
||||||
},
|
resolve: {
|
||||||
output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.时间戳】
|
alias: {
|
||||||
filename: `static/js/[name].${process.env.VUE_APP_VERSION}.${Timestamp}.js`,
|
'@': resolve('src')
|
||||||
chunkFilename: `static/js/[name].${process.env.VUE_APP_VERSION}.${Timestamp}.js`
|
}
|
||||||
},
|
},
|
||||||
plugins: [
|
output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.时间戳】
|
||||||
new CompressionPlugin({
|
filename: `static/js/[name].${process.env.VUE_APP_VERSION}.${Timestamp}.js`,
|
||||||
test: /\.(js|css|html)?$/i, // 压缩文件格式
|
chunkFilename: `static/js/[name].${process.env.VUE_APP_VERSION}.${Timestamp}.js`
|
||||||
filename: '[path].gz[query]', // 压缩后的文件名
|
},
|
||||||
algorithm: 'gzip', // 使用gzip压缩
|
plugins: [
|
||||||
minRatio: 0.8 // 压缩率小于1才会压缩
|
new CompressionPlugin({
|
||||||
}),
|
test: /\.(js|css|html)?$/i, // 压缩文件格式
|
||||||
],
|
filename: '[path].gz[query]', // 压缩后的文件名
|
||||||
|
algorithm: 'gzip', // 使用gzip压缩
|
||||||
|
minRatio: 0.8 // 压缩率小于1才会压缩
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
// configureWebpack: {
|
||||||
|
// name: name,
|
||||||
|
// resolve: {
|
||||||
|
// alias: {
|
||||||
|
// '@': resolve('src')
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.时间戳】
|
||||||
|
// filename: `static/js/[name].${process.env.VUE_APP_VERSION}.${Timestamp}.js`,
|
||||||
|
// chunkFilename: `static/js/[name].${process.env.VUE_APP_VERSION}.${Timestamp}.js`
|
||||||
|
// },
|
||||||
|
// plugins: [
|
||||||
|
// new CompressionPlugin({
|
||||||
|
// test: /\.(js|css|html)?$/i, // 压缩文件格式
|
||||||
|
// filename: '[path].gz[query]', // 压缩后的文件名
|
||||||
|
// algorithm: 'gzip', // 使用gzip压缩
|
||||||
|
// minRatio: 0.8 // 压缩率小于1才会压缩
|
||||||
|
// }),
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
chainWebpack(config) {
|
chainWebpack(config) {
|
||||||
config.plugins.delete('preload') // TODO: need test
|
config.plugins.delete('preload') // TODO: need test
|
||||||
config.plugins.delete('prefetch') // TODO: need test
|
config.plugins.delete('prefetch') // TODO: need test
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user