@@ -261,11 +273,7 @@
-
-
-
-
-
+
@@ -292,7 +300,7 @@
-
@@ -643,6 +694,7 @@ import EmisUserSimplePicker0 from '@/views/emis/EmisBaseTools/EmisUserSimplePick
import EmisUserSimplePicker1 from '@/views/emis/EmisBaseTools/EmisUserSimplePicker.vue';
import EmisUserSimplePicker2 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 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 GoodsSimplePicker from '@/views/emis/EmisBaseTools/GoodsSimplePicker.vue';
+import GoodsMultiplePicker from '@/views/emis/EmisBaseTools/GoodsMultiplePicker.vue';
+
import CustomerAddressSimplePicker0 from '@/views/emis/EmisBaseTools/CustomerAddressSimplePicker.vue';
import CustomerAddressSimplePicker1 from '@/views/emis/EmisBaseTools/CustomerAddressSimplePicker.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 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 feeItemForm from './feeItemForm.vue';
+import PdfViewer from '@/components/PdfViewer/index.vue';
+import PdfUtils from '@/utils/pdfUtils'
export default {
- name: "WaybillModify",
+ name: "WaybillEntry",
// props:{
// billCode:{
// type:String
// }
// },
components: {
+ SalemanPicker,
+ PayeePicker,
+ PdfViewer,
feeItemForm,
TransProductCasPicker,
WarehouseInNoPicker,
@@ -695,28 +757,24 @@ components: {
CustomerAddressSimplePicker0,
CustomerAddressSimplePicker1,
GoodsSimplePicker,
+ GoodsMultiplePicker,
EmisUserSimplePicker0,
EmisUserSimplePicker1,
EmisUserSimplePicker2,
EmisUserSimplePicker3,
- // CustomerPicker0,
- // CustomerPicker1,
- // CustomerPicker2,
+ EmisSiteSimplePicker,
DestinationPicker,
TransLinePicker,
TransProductPicker,
- // AreaPicker0,
CountryPicker0,
CountryPicker1,
ProvincePicker1,
CityPicker1,
DistrictPicker1,
- // TownPicker1,
CountryPicker2,
ProvincePicker2,
CityPicker2,
DistrictPicker2,
- // TownPicker2,
},
dicts: ['emis_qujian_fangshi','emis_declare_mode','emis_customs_clear',
'emis_tab_packing_type','emis_tab_dispatch_mode','emis_payment_type',
@@ -731,13 +789,25 @@ data() {
loading: true,
isNeedSave:false,
triggerCount:0,
- printTypeCheckList:['1','2','5'],
// 表单参数
form: {},
timer:null,
isNeedCalc:false,
titleSelectAddress:'',
openSelectAddress:false,
+
+ tanexPrinter:null,
+ printerDownUrl:null,
+ printerStatus:0,
+ printerStatusMessage:'打印组件未连接',
+ printerList:[],
+ printTplList:[],
+ selTplName:null,
+ selPrinterName:null,
+
+ openPdfView:false,
+ pdfUrl:null,
+
// 表单校验
rules: {
billCode: [
@@ -911,6 +981,20 @@ data() {
immediate: false,
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(){
@@ -922,6 +1006,7 @@ updated(){
created() {
this.billCode=this.$route.query.billCode;
this.initData();
+ this.initTanexPrinterSdk();
},
methods: {
@@ -933,6 +1018,104 @@ methods: {
this.billCode=this.form.billCode;
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(){
this.triggerCount++;
},
@@ -943,7 +1126,6 @@ methods: {
this.form.feeItems.push(newItem);
this.handleCalcFeeItem();
}
-
},
deleteFeeItem(row){
if(row.blAutoGen==1){
@@ -981,13 +1163,13 @@ methods: {
},
handleGenSubbill(value){
if(this.form.blGenSubbill==1 && this.form.parcelQty > 0 && this.form.billCode){
- // let billSubCodeStr="";
- // for(let i=1;i {
if (valid) {
realSubmitOrder(this.form).then(response => {
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.handleGenSubbill();
},
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;
this.form.feeItems.forEach(item=>{
totalFee=totalFee+parseInt(item.realFee);
@@ -1358,7 +1572,43 @@ methods: {
this.form.dispatchUnderlingSite= 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
-
+
+
+
+
+
+
handleBillCodeChange(checked)">电子主单
@@ -621,20 +626,20 @@
-
+
-
-
+
+
-
-
+
+
@@ -974,6 +979,20 @@ data() {
immediate: false,
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(){
@@ -989,6 +1008,14 @@ created() {
},
methods: {
+ handleScanInput(){
+ if(this.form.billCode==null || this.form.billCode==''){
+ this.$message.error("输入单号后回车");
+ return;
+ }
+ this.billCode=this.form.billCode;
+ this.initData();
+ },
initTanexPrinterSdk(){
this.tanexPrinter = this.$tanexPrinter;
@@ -1019,43 +1046,84 @@ methods: {
this.printerStatusMessage="打印组件已断开!";
},
handleBatchPrint(){
- // 重要,设置为true才会把右上角X和取消区分开来
- this.$confirm("确定打印?", "提示", {
- cancelButtonText: "不打印",
- confirmButtonText: "确定打印",
- type: "warning",
- distinguishCancelAndClose: true,
- closeOnClickModal: false
- }).then(() => {
- let orderList=[];
- this.currentSelection.forEach(item=>{
- orderList.push(item.billCode);
- });
- this.tanexPrinter.batchPrint(this.selTplName,this.selPrinterName,orderList)
- }).catch(() => {});
+
+ 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)
+
+
+ // 打印子单
+ 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(){
- let pdfUrlList=[];
- this.currentSelection.forEach(item=>{
- let url=this.tanexPrinter.getPdfUrl(item.billCode,this.selTplName,this.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 => {
- });
+
+ 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.billCodeSub){
+ selTplName="探路速运-子单联(通用)";
+ let orderList=this.form.billCodeSub.split(',');
+ orderList.forEach(item=>{
+ if(item!=null && 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(){
this.triggerCount++;
},
@@ -1104,9 +1172,9 @@ methods: {
handleGenSubbill(value){
if(this.form.blGenSubbill==1 && this.form.parcelQty > 0 && this.form.billCode){
let billSubCodeStr="";
- for(let i=1;i
{
this.$modal.msgSuccess("下单成功");
- this.$emit("on-changed");
+
+ // 弹出打印预览界面
+ this.handlePrintPreview();
+
+ // this.$emit("on-changed");
});
}
});
diff --git a/vue.config.js b/vue.config.js
index 42d9e621..7484e74d 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -73,26 +73,51 @@ module.exports = {
}
}
},
- 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才会压缩
- }),
- ],
+ configureWebpack: config => {
+ // 开发环境不配置
+ if (process.env.NODE_ENV !== 'production') return
+ // 生产环境才去配置
+ return {
+ 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才会压缩
+ }),
+ ]
+ }
},
+ // 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) {
config.plugins.delete('preload') // TODO: need test
config.plugins.delete('prefetch') // TODO: need test