md
This commit is contained in:
parent
dfda93000c
commit
3d72755b46
240
src/utils/TanexPrinterSdk.js
Normal file
240
src/utils/TanexPrinterSdk.js
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
'use strict'
|
||||||
|
/*
|
||||||
|
TanexPrinterSdk
|
||||||
|
|
||||||
|
getPrinterList: 获取打印机列表
|
||||||
|
getPrinterTplList: 获取打印模版列表
|
||||||
|
batchPrint:发送打印
|
||||||
|
getPrinterVer:获取打印组件版本信息
|
||||||
|
|
||||||
|
printerIsRead:打印机已经OK的信号
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
import { getToken } from '@/utils/auth'
|
||||||
|
|
||||||
|
class TanexPrinterSdk {
|
||||||
|
VERSION="1.0.0"
|
||||||
|
MAX_SENT_RETRY_COUNT = 9;
|
||||||
|
// WS_URL = "ws://127.0.0.1:17080";
|
||||||
|
WS_URL = "ws://192.168.88.100:17080";
|
||||||
|
AUTH_TOKEN=null;
|
||||||
|
|
||||||
|
WS_INIT = 0;
|
||||||
|
WS_OPEN = 1;
|
||||||
|
WS_CLOSING = 2;
|
||||||
|
WS_CLOSE = 3;
|
||||||
|
|
||||||
|
// 和服务端连接的socket对象
|
||||||
|
ws = null;
|
||||||
|
// WS 回调函数
|
||||||
|
onOpen =null;
|
||||||
|
onClose = null;
|
||||||
|
onError =null;
|
||||||
|
onMessage = null;
|
||||||
|
|
||||||
|
// 自定义 回调函数
|
||||||
|
callbacks ={}
|
||||||
|
|
||||||
|
// 标识:是否连接成功 , 记录重试的次数,重新连接尝试的次数
|
||||||
|
connected = false;
|
||||||
|
printerIsRead = false;
|
||||||
|
sendRetryCount = 0;
|
||||||
|
connectRetryCount = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// static instance = null;
|
||||||
|
// static getInstance() {
|
||||||
|
// if (!this.instance) {
|
||||||
|
// this.instance = new TanexPrinterSdk()
|
||||||
|
// }
|
||||||
|
// return this.instance
|
||||||
|
// }
|
||||||
|
|
||||||
|
initSdk(callbacks){
|
||||||
|
this.token=getToken();
|
||||||
|
this.callbacks=callbacks;
|
||||||
|
|
||||||
|
this.onOpen=callbacks['onOpen'];
|
||||||
|
this.onClose=callbacks['onClose'];
|
||||||
|
this.onError=callbacks['onError'];
|
||||||
|
|
||||||
|
this.connect();
|
||||||
|
this.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
sendToken(){
|
||||||
|
// {"CMD":"setToken","status":"1","Data":"token"}
|
||||||
|
var printCmd={};
|
||||||
|
printCmd['CMD']="setToken";
|
||||||
|
printCmd['Status']="1";
|
||||||
|
printCmd['Data']=getToken();
|
||||||
|
console.log(JSON.stringify(printCmd));
|
||||||
|
this.send(JSON.stringify(printCmd),null);
|
||||||
|
}
|
||||||
|
|
||||||
|
batchPrint(tplName,printerName,orderList){
|
||||||
|
// {"CMD":"batchPrint","status":"1","Data":["DT20210901001","DT20210901002"]}
|
||||||
|
var printCmd={};
|
||||||
|
printCmd['CMD']="batchPrint";
|
||||||
|
printCmd['Status']="1";
|
||||||
|
if(orderList!=null && orderList.length>0){
|
||||||
|
let printData={
|
||||||
|
"tplName":tplName,
|
||||||
|
"printerName":printerName,
|
||||||
|
"orderList":orderList.toString()
|
||||||
|
}
|
||||||
|
printCmd['Data']=printData
|
||||||
|
console.log(JSON.stringify(printCmd));
|
||||||
|
this.send(JSON.stringify(printCmd),null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getPrinterList(callback){
|
||||||
|
// {"CMD":"getPrinterList","status":"1","Data":""}
|
||||||
|
var printCmd={};
|
||||||
|
printCmd['CMD']="getPrinterList";
|
||||||
|
printCmd['Status']="1";
|
||||||
|
printCmd['Data']="";
|
||||||
|
console.log(JSON.stringify(printCmd));
|
||||||
|
this.send(JSON.stringify(printCmd),callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
getPrinterTplList(callback){
|
||||||
|
// {"CMD":"getPrinterTplList","status":"1","Data":""}
|
||||||
|
var printCmd={};
|
||||||
|
printCmd['CMD']="getPrinterTplList";
|
||||||
|
printCmd['Status']="1";
|
||||||
|
printCmd['Data']="";
|
||||||
|
console.log(JSON.stringify(printCmd));
|
||||||
|
this.send(JSON.stringify(printCmd),callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 连接服务器的方法
|
||||||
|
connect() {
|
||||||
|
// 连接服务器
|
||||||
|
if (!window.WebSocket) {
|
||||||
|
console.log('您的浏览器不支持WebSocket');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.ws || this.getWSReadyState() === this.WS_CLOSING || this.getWSReadyState() === this.WS_CLOSE) {
|
||||||
|
try {
|
||||||
|
this.ws = new WebSocket(this.WS_URL);
|
||||||
|
|
||||||
|
this.ws.onerror = () => {
|
||||||
|
console.log("ws onerror!");
|
||||||
|
if(this.onError!=null){
|
||||||
|
this.onError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.ws.onopen = () => {
|
||||||
|
console.log("ws onopen!");
|
||||||
|
|
||||||
|
this.connected = true
|
||||||
|
this.connectRetryCount = 0
|
||||||
|
|
||||||
|
if(this.onOpen != null){
|
||||||
|
this.onOpen()
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sendToken();
|
||||||
|
// this.getPrinterList();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.ws.onclose = () => {
|
||||||
|
console.log("ws onclose!");
|
||||||
|
|
||||||
|
this.connected = false;
|
||||||
|
this.connectRetryCount++;
|
||||||
|
|
||||||
|
if(this.onClose != null){
|
||||||
|
this.onClose()
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
this.connect()
|
||||||
|
}, 500 * this.connectRetryCount)
|
||||||
|
};
|
||||||
|
|
||||||
|
this.ws.onmessage = e => {
|
||||||
|
console.log('ws onmessage:' + e.data)
|
||||||
|
|
||||||
|
if (e.data.charAt(0) === "{") {
|
||||||
|
var msg = this.jsonToObj(e.data);
|
||||||
|
if(msg["CMD"]=='printerIsRead'){
|
||||||
|
printerIsRead=true;
|
||||||
|
}else{
|
||||||
|
if (this.callbacks[msg["CMD"]]) {
|
||||||
|
this.callbacks[msg["CMD"]](msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console("数据格式非法:" + e.data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} catch (ex) {
|
||||||
|
debugger
|
||||||
|
if (console && console.log) {
|
||||||
|
console.log(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.ws;
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonToObj(json){
|
||||||
|
return JSON.parse(json)
|
||||||
|
}
|
||||||
|
|
||||||
|
objToJson(obj){
|
||||||
|
return JSON.stringify(obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* readyState->0:尚未建立连接;1:已经建立连接;2:正在关闭;3:已经关闭或不可用
|
||||||
|
* @param thisWs
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
getWSReadyState() {
|
||||||
|
if (this.ws.readyState !== undefined) {
|
||||||
|
return this.ws.readyState;
|
||||||
|
}
|
||||||
|
return this.WS_INIT;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 发送数据的方法
|
||||||
|
send(data) {
|
||||||
|
if (this.getWSReadyState() === this.WS_OPEN ) {
|
||||||
|
this.sendRetryCount = 0
|
||||||
|
this.ws.send(data)
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
console.log("Ws is abnormal,send faild!!")
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭socket连接
|
||||||
|
close() {
|
||||||
|
if (this.ws) {
|
||||||
|
this.ws.close();
|
||||||
|
this.connected = false; // 更新连接状态
|
||||||
|
clearInterval(this.heartbeatInterval); // 清除心跳检测定时器
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 开启心跳检测
|
||||||
|
start() {
|
||||||
|
this.heartbeatInterval = setInterval(() => {
|
||||||
|
this.data = {type: "ping"};
|
||||||
|
this.send(JSON.stringify(this.data));
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default TanexPrinterSdk;
|
||||||
121
src/utils/TnPrinterSdk copy.js
Normal file
121
src/utils/TnPrinterSdk copy.js
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
import { Message } from 'element-ui'
|
||||||
|
import { getToken } from '@/utils/auth'
|
||||||
|
let websock = null
|
||||||
|
let messageCallback = null
|
||||||
|
let errorCallback = null
|
||||||
|
let wsUrl = ''
|
||||||
|
let tryTime = 0
|
||||||
|
// 与后端的协商,websocket请求需要带上token参数
|
||||||
|
/*
|
||||||
|
命令名称:
|
||||||
|
command
|
||||||
|
getPrinterList: 获取打印机列表
|
||||||
|
getPrinterTplList: 获取打印模版列表
|
||||||
|
sendPrinterTplList: 获取打印模版列表
|
||||||
|
|
||||||
|
sendToPrint:发送打印
|
||||||
|
getPrinterVer:获取打印组件版本信息
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 接收ws后端返回的数据
|
||||||
|
function websocketonmessage (e) {
|
||||||
|
messageCallback(JSON.parse(e.data))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发起websocket连接
|
||||||
|
* @param {Object} agentData 需要向后台传递的参数数据
|
||||||
|
*/
|
||||||
|
function websocketSend (agentData) {
|
||||||
|
// 加延迟是为了尽量让ws连接状态变为OPEN
|
||||||
|
setTimeout(() => {
|
||||||
|
// 添加状态判断,当为OPEN时,发送消息
|
||||||
|
if (websock.readyState === websock.OPEN) { // websock.OPEN = 1
|
||||||
|
// 发给后端的数据需要字符串化
|
||||||
|
websock.send(JSON.stringify(agentData))
|
||||||
|
}
|
||||||
|
if (websock.readyState === websock.CLOSED) { // websock.CLOSED = 3
|
||||||
|
console.log('websock.readyState=3')
|
||||||
|
Message.error('ws连接异常,请稍候重试')
|
||||||
|
errorCallback()
|
||||||
|
}
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭ws连接
|
||||||
|
function websocketclose (e) {
|
||||||
|
// e.code === 1000 表示正常关闭。 无论为何目的而创建, 该链接都已成功完成任务。
|
||||||
|
// e.code !== 1000 表示非正常关闭。
|
||||||
|
if (e && e.code !== 1000) {
|
||||||
|
Message.error('ws连接异常,请稍候重试')
|
||||||
|
errorCallback()
|
||||||
|
// // 如果需要设置异常重连则可替换为下面的代码,自行进行测试
|
||||||
|
// if (tryTime < 10) {
|
||||||
|
// setTimeout(function() {
|
||||||
|
// websock = null
|
||||||
|
// tryTime++
|
||||||
|
// initWebSocket()
|
||||||
|
// console.log(`第${tryTime}次重连`)
|
||||||
|
// }, 3 * 1000)
|
||||||
|
//} else {
|
||||||
|
// Message.error('重连失败!请稍后重试')
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 建立ws连接
|
||||||
|
function websocketOpen (e) {
|
||||||
|
// console.log('ws连接成功')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化weosocket
|
||||||
|
function initWebSocket () {
|
||||||
|
if (typeof (WebSocket) === 'undefined') {
|
||||||
|
Message.error('您的浏览器不支持WebSocket,无法获取数据')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
const token = 'X-Token=' + getToken()
|
||||||
|
// ws请求完整地址
|
||||||
|
const requstWsUrl = wsUrl + '?' + token
|
||||||
|
websock = new WebSocket(requstWsUrl)
|
||||||
|
|
||||||
|
websock.onmessage = function (e) {
|
||||||
|
websocketonmessage(e)
|
||||||
|
}
|
||||||
|
websock.onopen = function () {
|
||||||
|
websocketOpen()
|
||||||
|
}
|
||||||
|
websock.onerror = function () {
|
||||||
|
Message.error('ws连接异常,请稍候重试')
|
||||||
|
errorCallback()
|
||||||
|
}
|
||||||
|
websock.onclose = function (e) {
|
||||||
|
websocketclose(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发起websocket请求函数
|
||||||
|
* @param {string} url ws连接地址
|
||||||
|
* @param {Object} agentData 传给后台的参数
|
||||||
|
* @param {function} successCallback 接收到ws数据,对数据进行处理的回调函数
|
||||||
|
* @param {function} errCallback ws连接错误的回调函数
|
||||||
|
*/
|
||||||
|
export function sendWebsocket (url, agentData, successCallback, errCallback) {
|
||||||
|
wsUrl = url
|
||||||
|
initWebSocket()
|
||||||
|
messageCallback = successCallback
|
||||||
|
errorCallback = errCallback
|
||||||
|
websocketSend(agentData)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关闭websocket函数
|
||||||
|
*/
|
||||||
|
export function closeWebsocket () {
|
||||||
|
if (websock) {
|
||||||
|
websock.close() // 关闭websocket
|
||||||
|
websock.onclose() // 关闭websocket
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
1331
src/views/emis/emisWaybill/emisWaybillRecord copy.vue
Normal file
1331
src/views/emis/emisWaybill/emisWaybillRecord copy.vue
Normal file
File diff suppressed because it is too large
Load Diff
797
src/views/emis/emisWaybill/waybillIsPrinted.vue
Normal file
797
src/views/emis/emisWaybill/waybillIsPrinted.vue
Normal file
@ -0,0 +1,797 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<SearchForm :model="queryParams" ref="queryForm" size="mini" :maxShow="5" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
|
||||||
|
<el-form-item label="" prop="billCode">
|
||||||
|
<div slot="label">
|
||||||
|
<el-radio-group class="query-label" v-model="queryParams.params.queryOrderType">
|
||||||
|
<el-radio label="1">运单号</el-radio>
|
||||||
|
<el-radio label="0">订单号</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.billCode"
|
||||||
|
:placeholder="$t('多个流水号逗号或换行隔开')"
|
||||||
|
clearable
|
||||||
|
type="textarea"
|
||||||
|
rows="2"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<el-form-item label="收件人" prop="receiveName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.receiveName"
|
||||||
|
:placeholder="$t('收件人')"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="收件电话" prop="receiveMobile">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.receiveMobile"
|
||||||
|
:placeholder="$t('收件电话')"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="收件公司" prop="receiveCompany">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.receiveCompany"
|
||||||
|
:placeholder="$t('收件公司')"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="目的国" prop="receiveCountry">
|
||||||
|
<CountryPicker0 v-model="queryParams.receiveCountry" :placeholder="$t('目的国')" @onChange="handleQuery"></CountryPicker0>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="寄件人" prop="sendName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.sendName"
|
||||||
|
:placeholder="$t('寄件人')"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="寄件人电话" prop="sendMobile">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.sendMobile"
|
||||||
|
:placeholder="$t('寄件人电话')"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="寄件公司" prop="sendCompany">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.sendCompany"
|
||||||
|
:placeholder="$t('寄件公司')"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="寄件国" prop="sendCountry">
|
||||||
|
<CountryPicker1 v-model="queryParams.sendCountry" :placeholder="$t('目的国')" @onChange="handleQuery"></CountryPicker1>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="运单状态" prop="siteType">
|
||||||
|
<el-select v-model="queryParams.waybillStatus" placeholder="运单状态" clearable filterable>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.emis_waybill_status"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="报关方式" prop="customsEclaration">
|
||||||
|
<el-select v-model="queryParams.customsEclaration" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.emis_declare_mode"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="清关方式" prop="customsClear">
|
||||||
|
<el-select v-model="queryParams.customsClear" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.emis_customs_clear"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="付款方式" prop="paymentType" label-width="70px">
|
||||||
|
<el-select v-model="queryParams.paymentType" placeholder="请选择">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.emis_payment_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="" prop="dateTimeRange">
|
||||||
|
<div slot="label">
|
||||||
|
<el-radio-group class="query-label" v-model="queryParams.params.queryOrderDateType">
|
||||||
|
<el-radio label="1">下单时间</el-radio>
|
||||||
|
<el-radio label="0">录单时间</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
<elDateAdvPicker clearable v-model="dateTimeRange" @dateTimeChange="onDateSelect" ></elDateAdvPicker>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</SearchForm>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<el-tag type="danger" v-if="printerStatus==0">{{ printerStatusMessage }}</el-tag>
|
||||||
|
<el-tag type="success" v-if="printerStatus==1">{{ printerStatusMessage }}</el-tag>
|
||||||
|
</div>
|
||||||
|
<XdTable v-loading="loading"
|
||||||
|
border stripe
|
||||||
|
size="small"
|
||||||
|
:data="emisWaybillList"
|
||||||
|
:showSearch.sync="showSearch"
|
||||||
|
:queryParams="queryParams"
|
||||||
|
:total="total"
|
||||||
|
@queryTable="getList"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
@sort-change="handleSortChange"
|
||||||
|
>
|
||||||
|
|
||||||
|
<div slot="toolbar">
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-print"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleBatchPrint"
|
||||||
|
>批量打印</el-button>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleView"
|
||||||
|
>查看</el-button>
|
||||||
|
</el-col> -->
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handlePrintPreview"
|
||||||
|
>预览面单</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDownPDF"
|
||||||
|
>下载pdf</el-button>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<div style="display: inline-flex;">
|
||||||
|
<div style="font-size: 12px;
|
||||||
|
line-height: 28px;
|
||||||
|
font-weight: 600;">选择打印模板:</div>
|
||||||
|
<div>
|
||||||
|
<el-select v-model="selTplName" size="mini" placeholder="选择打印模板" clearable filterable>
|
||||||
|
<el-option
|
||||||
|
v-for="item in printTplList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
|
||||||
|
<div style="display: inline-flex;">
|
||||||
|
<div style="font-size: 12px;
|
||||||
|
line-height: 28px;
|
||||||
|
font-weight: 600;">选择打印机:</div>
|
||||||
|
<div>
|
||||||
|
<el-select v-model="selPrinterName" size="mini" placeholder="选择打印机" clearable filterable>
|
||||||
|
<el-option
|
||||||
|
v-for="item in printerList"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['emis:emisWaybill:export']"
|
||||||
|
>导出</el-button>
|
||||||
|
</el-col> -->
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<!--
|
||||||
|
<el-table-column label="序号" align="center" min-width="60">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-text="getIndex(scope.$index)"> </span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- <el-table-column :label="$t('订单号')" align="center" prop="orderSn" min-width="100" /> -->
|
||||||
|
<el-table-column :label="$t('运单号')" align="center" prop="billCode" width="120" :show-overflow-tooltip="true">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<router-link :to="'/d24/waybillManagement/waybillEntry?billCode=' + scope.row.billCode" class="link-type">
|
||||||
|
<span>{{ scope.row.billCode }}</span>
|
||||||
|
</router-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="$t('打印状态')" align="center" prop="blPrint" width="100" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-tag type="success" v-if="scope.row.blPrint==1">已打印</el-tag>
|
||||||
|
<el-tag type="info" v-else>待打印</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="$t('打印时间')" align="center" prop="printDate" width="170" />
|
||||||
|
<el-table-column :label="$t('打印次数')" align="center" prop="printCount" width="80" />
|
||||||
|
<el-table-column :label="$t('打印人')" align="center" prop="printManName" width="100" />
|
||||||
|
|
||||||
|
<!-- <el-table-column :label="$t('订单号')" align="center" prop="orderSn" width="100" :show-overflow-tooltip="true"/> -->
|
||||||
|
<el-table-column :label="$t('进仓单号')" align="center" prop="warehouseInNo" width="100" :show-overflow-tooltip="true"/>
|
||||||
|
<!-- <el-table-column :label="$t('子单号,逗号隔开')" align="center" prop="billCodeSub" min-width="100" /> -->
|
||||||
|
<!-- <el-table-column :label="$t('订单状态')" align="center" prop="orderStatus" min-width="100" /> -->
|
||||||
|
<el-table-column :label="$t('运单状态')" align="center" prop="waybillStatus" width="100" >
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.emis_waybill_status" :value="scope.row.waybillStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="$t('物流信息')" align="center" prop="lastTraceInfo" width="100" />
|
||||||
|
|
||||||
|
<el-table-column :label="$t('国家')" align="center" prop="receiveCountryName" width="100" />
|
||||||
|
<el-table-column :label="$t('线路')" align="center" prop="transLineTypeName" min-width="100" />
|
||||||
|
<el-table-column :label="$t('产品类型')" align="center" prop="productTypeName" min-width="100" />
|
||||||
|
<el-table-column :label="$t('时效')" align="center" prop="timeType" min-width="100" />
|
||||||
|
<el-table-column :label="$t('计泡比例')" align="center" prop="meterType" min-width="100" />
|
||||||
|
|
||||||
|
</XdTable>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<el-dialog :title="titleView" :visible.sync="openView" width="60%" :close-on-click-modal="false" v-dialogDrag append-to-body>
|
||||||
|
<emisWaybillView :id="id" ></EmisWaybillView>
|
||||||
|
</el-dialog>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- <el-dialog :title="titlePdfView" :visible.sync="openPdfView" width="60%" :close-on-click-modal="false" v-dialogDrag append-to-body>
|
||||||
|
<div>
|
||||||
|
<pdf ref="pdf" :src="pdfUrl"></pdf>
|
||||||
|
</div>
|
||||||
|
</el-dialog> -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listEmisWaybill, getEmisWaybill, delEmisWaybill, addEmisWaybill, updateEmisWaybill } from "@/api/emis/emisWaybill";
|
||||||
|
import emisWaybillForm from '@/views/emis/emisWaybill/emisWaybillForm';
|
||||||
|
import elDateAdvPicker from '@/components/DatePickerAdv/elDateAdvPicker';
|
||||||
|
import CountryPicker0 from '@/views/emis/EmisBaseTools/CountryPicker.vue';
|
||||||
|
import CountryPicker1 from '@/views/emis/EmisBaseTools/CountryPicker.vue';
|
||||||
|
// import pdf from 'vue-pdf'
|
||||||
|
|
||||||
|
import TanexPrinterSdk from '@/utils/TanexPrinterSdk'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "WaybillIsPrinted",
|
||||||
|
components: { elDateAdvPicker,emisWaybillForm,CountryPicker0,CountryPicker1 },
|
||||||
|
dicts: ['emis_waybill_status','emis_declare_mode','emis_customs_clear','emis_payment_type','emis_print_type'
|
||||||
|
],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 创建时间搜索
|
||||||
|
dateTimeRange:[],
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 运单列表表格数据
|
||||||
|
emisWaybillList: [],
|
||||||
|
|
||||||
|
currentId:null,
|
||||||
|
openForm: false,
|
||||||
|
titleForm: "",
|
||||||
|
|
||||||
|
tanexPrinter:null,
|
||||||
|
printerStatus:0,
|
||||||
|
printerStatusMessage:'打印组件未连接',
|
||||||
|
printerList:[],
|
||||||
|
printTplList:[],
|
||||||
|
selTplName:null,
|
||||||
|
selPrinterName:null,
|
||||||
|
currentSelection:[],
|
||||||
|
|
||||||
|
// 弹出展示层
|
||||||
|
id:null,
|
||||||
|
titleView:"",
|
||||||
|
openView: false,
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeOrderDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeEstimateDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangePickStartDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangePickFinishDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeDispFdDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeRegisterDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeSendDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeProduceBillDate: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeCreateTime: [],
|
||||||
|
// 更新网点时间范围
|
||||||
|
daterangeUpdateTime: [],
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
orderSn: null,
|
||||||
|
billCode: null,
|
||||||
|
billCodeSub: null,
|
||||||
|
orderStatus: null,
|
||||||
|
waybillStatus: null,
|
||||||
|
orderType: null,
|
||||||
|
orderDate: null,
|
||||||
|
customerCode: null,
|
||||||
|
customerName: null,
|
||||||
|
receiveCustomerCode: null,
|
||||||
|
receiveCustomerName: null,
|
||||||
|
thirdCustomerCode: null,
|
||||||
|
thirdCustomerName: null,
|
||||||
|
receiveName: null,
|
||||||
|
receiveCompany: null,
|
||||||
|
receiveMobile: null,
|
||||||
|
receiveTel: null,
|
||||||
|
receiveCountry: null,
|
||||||
|
receiveProvince: null,
|
||||||
|
receiveCity: null,
|
||||||
|
receiveCounty: null,
|
||||||
|
receiveTown: null,
|
||||||
|
receiveAddress: null,
|
||||||
|
receivePostcode: null,
|
||||||
|
receivePcd: null,
|
||||||
|
sendName: null,
|
||||||
|
sendCompany: null,
|
||||||
|
sendMobile: null,
|
||||||
|
sendTel: null,
|
||||||
|
sendCountry: null,
|
||||||
|
sendProvince: null,
|
||||||
|
sendCity: null,
|
||||||
|
sendCounty: null,
|
||||||
|
sendTown: null,
|
||||||
|
sendAddress: null,
|
||||||
|
sendPostcode: null,
|
||||||
|
sendPcd: null,
|
||||||
|
paymentType: null,
|
||||||
|
calcFeeType: null,
|
||||||
|
custNo: null,
|
||||||
|
transLineType: null,
|
||||||
|
productType: null,
|
||||||
|
timeType: null,
|
||||||
|
meterType: null,
|
||||||
|
customsClear: null,
|
||||||
|
customsEclaration: null,
|
||||||
|
estimateDate: null,
|
||||||
|
packType: null,
|
||||||
|
dispatchMethod: null,
|
||||||
|
pickupMethod: null,
|
||||||
|
pickStartDate: null,
|
||||||
|
pickFinishDate: null,
|
||||||
|
pickFailReason: null,
|
||||||
|
intoWarehouseCode: null,
|
||||||
|
intoWarehouseName: null,
|
||||||
|
intoWarehouseAddress: null,
|
||||||
|
intoWarehouseContact: null,
|
||||||
|
intoWarehousePhone: null,
|
||||||
|
intoWarehouseBillCode: null,
|
||||||
|
warehouseInNo: null,
|
||||||
|
customerDeliveryBeginTime: null,
|
||||||
|
customerDeliveryEndTime: null,
|
||||||
|
goodsType: null,
|
||||||
|
goodsInfo: null,
|
||||||
|
goodsPics: null,
|
||||||
|
blPrepareInFreight: null,
|
||||||
|
prepareInEstFee: null,
|
||||||
|
prepareInRealFee: null,
|
||||||
|
prepareInExpress: null,
|
||||||
|
prepareInBillCode: null,
|
||||||
|
prepareInRemark: null,
|
||||||
|
prepareInSupplier: null,
|
||||||
|
totalWeight: null,
|
||||||
|
totalVolume: null,
|
||||||
|
parcelQty: null,
|
||||||
|
billWeight: null,
|
||||||
|
volumeWeight: null,
|
||||||
|
currency: null,
|
||||||
|
settlementWeight: null,
|
||||||
|
feeWeight: null,
|
||||||
|
freight: null,
|
||||||
|
blOverLong: null,
|
||||||
|
blBill: null,
|
||||||
|
blOverWeight: null,
|
||||||
|
overWeightNumber: null,
|
||||||
|
feeRemaker: null,
|
||||||
|
thirdCode: null,
|
||||||
|
realValue: null,
|
||||||
|
blInsure: null,
|
||||||
|
insureValue: null,
|
||||||
|
insureValueCurrency: null,
|
||||||
|
insureFeeCurrency: null,
|
||||||
|
insureFee: null,
|
||||||
|
insureRemark: null,
|
||||||
|
insureSiteCode: null,
|
||||||
|
insureDate: null,
|
||||||
|
blPrint: null,
|
||||||
|
printManCode: null,
|
||||||
|
printSite: null,
|
||||||
|
printDate: null,
|
||||||
|
printCount: null,
|
||||||
|
blDispFd: null,
|
||||||
|
transferCode: null,
|
||||||
|
transferBillcode: null,
|
||||||
|
dispFdDate: null,
|
||||||
|
dispFdReason: null,
|
||||||
|
currentSiteCode: null,
|
||||||
|
lastSiteCode: null,
|
||||||
|
registerSiteCode: null,
|
||||||
|
registerDate: null,
|
||||||
|
registerManCode: null,
|
||||||
|
takePieceEmployeeCode: null,
|
||||||
|
sendSiteCode: null,
|
||||||
|
sendDate: null,
|
||||||
|
dispatchManCode: null,
|
||||||
|
dispatchDate: null,
|
||||||
|
dispatchSiteCode: null,
|
||||||
|
produceBillDate: null,
|
||||||
|
produceBillSiteCode: null,
|
||||||
|
produceBillManCode: null,
|
||||||
|
destinationCode: null,
|
||||||
|
destinationProvince: null,
|
||||||
|
destinationCity: null,
|
||||||
|
destinationCounty: null,
|
||||||
|
dispatchUnderlingSiteCode: null,
|
||||||
|
destinationCenterCode: null,
|
||||||
|
marketManCode: null,
|
||||||
|
payee: null,
|
||||||
|
salesmen: null,
|
||||||
|
operateEmployeeCode: null,
|
||||||
|
blIsQuestion: null,
|
||||||
|
problemType: null,
|
||||||
|
problemCause: null,
|
||||||
|
problemDelayDays: null,
|
||||||
|
blMessage: null,
|
||||||
|
blAcceptMessage: null,
|
||||||
|
blGenSubbill: null,
|
||||||
|
signMan: null,
|
||||||
|
signManCode: null,
|
||||||
|
signSiteCode: null,
|
||||||
|
signDate: null,
|
||||||
|
billPicSendRmk: null,
|
||||||
|
billPicDispatchRmk: null,
|
||||||
|
timezoneOffset: null,
|
||||||
|
delFlag: null,
|
||||||
|
remark: null,
|
||||||
|
params:{
|
||||||
|
queryOrderType:1,
|
||||||
|
queryOrderDateType:1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.initTanexPrinterSdk();
|
||||||
|
},
|
||||||
|
beforeDestroy(){
|
||||||
|
this.tanexPrinter.close();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initTanexPrinterSdk(){
|
||||||
|
// this.tanexPrinter = TanexPrinterSdk.getInstance();
|
||||||
|
this.tanexPrinter = new TanexPrinterSdk();
|
||||||
|
// openCallback, closeCallback,errorCallback,messageCallback
|
||||||
|
//tanexPrinterIns
|
||||||
|
|
||||||
|
let callbacks={
|
||||||
|
onOpen: this.onPrinterOpen,
|
||||||
|
onClose: this.onPrinterClose,
|
||||||
|
onError: this.onPrinterError,
|
||||||
|
getPrinterList:this.onGetPrinterList,
|
||||||
|
getPrinterTplList:this.onGetPrinterTplList
|
||||||
|
}
|
||||||
|
this.tanexPrinter.initSdk(callbacks);
|
||||||
|
},
|
||||||
|
onPrinterOpen(evt){
|
||||||
|
console.log("onPrinterOpen")
|
||||||
|
// this.tanexPrinter.sendToken();
|
||||||
|
this.tanexPrinter.getPrinterList();
|
||||||
|
this.tanexPrinter.getPrinterTplList();
|
||||||
|
|
||||||
|
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="打印组件已断开!";
|
||||||
|
},
|
||||||
|
|
||||||
|
onGetPrinterList(msg){
|
||||||
|
console.log("onGetPrinterList")
|
||||||
|
if(msg){
|
||||||
|
this.printerList=[];
|
||||||
|
msg.Data.printerList.forEach(item=>{
|
||||||
|
let optionItem={
|
||||||
|
label:item,
|
||||||
|
value:item
|
||||||
|
}
|
||||||
|
this.printerList.push(optionItem);
|
||||||
|
this.selPrinterName=msg.Data.defaultPrinter;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onGetPrinterTplList(msg){
|
||||||
|
console.log("onGetPrinterTplList")
|
||||||
|
if(msg){
|
||||||
|
this.printTplList=[];
|
||||||
|
msg.Data.tplList.forEach(item=>{
|
||||||
|
let optionItem={
|
||||||
|
label:item,
|
||||||
|
value:item
|
||||||
|
}
|
||||||
|
this.printTplList.push(optionItem);
|
||||||
|
this.selTplName=this.printTplList[0].value;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
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(() => {});
|
||||||
|
|
||||||
|
},
|
||||||
|
handlePrintPreview(){
|
||||||
|
|
||||||
|
},
|
||||||
|
handleDownPDF(){
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 查询运单列表列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
this.queryParams.params = {};
|
||||||
|
listEmisWaybill(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
|
||||||
|
this.emisWaybillList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onDateSelect(value){
|
||||||
|
console.log("date picker---->", value)
|
||||||
|
this.dateTimeRange=value;
|
||||||
|
// scanDate
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.currentSelection=selection;
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length!==1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
// 排序 查询字段是表格中字段名字 动态取值排序顺序
|
||||||
|
handleSortChange(column) {
|
||||||
|
this.queryParams.orderByColumn = column.prop;
|
||||||
|
this.queryParams.isAsc = column.order;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd(row) {
|
||||||
|
this.currentId=null;
|
||||||
|
this.openForm= true;
|
||||||
|
this.titleForm = "新增";
|
||||||
|
},
|
||||||
|
handleShowMoreInput(){
|
||||||
|
this.moreInputVisible = !this.moreInputVisible;
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.currentId= row.id;
|
||||||
|
this.openForm = true;
|
||||||
|
this.titleForm = "修改";
|
||||||
|
},
|
||||||
|
handleView(row) {
|
||||||
|
this.id=row.id;
|
||||||
|
this.titleView="查看";
|
||||||
|
this.openView=true;
|
||||||
|
// this.router.push({ path: '/emis/emisWaybill/viewDetail', query: { id: row.id }})
|
||||||
|
},
|
||||||
|
handleFormChanged(){
|
||||||
|
this.openForm = false;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
cancelForm(){
|
||||||
|
this.openForm = false;
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.id || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除').then(function() {
|
||||||
|
return delEmisWaybill(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
// this.download('emis/emisWaybill/export', {
|
||||||
|
// ...this.queryParams
|
||||||
|
// }, `emisWaybill_${new Date().getTime()}.xlsx`)
|
||||||
|
const loadingInstance = this.$loading({
|
||||||
|
text: '正在导出...'
|
||||||
|
})
|
||||||
|
var qParam = {...this.queryParams};
|
||||||
|
qParam.pageNum=1;
|
||||||
|
qParam.pageSize=5000;
|
||||||
|
|
||||||
|
listEmisWaybill(this.addDateRange(qParam, this.dateTimeRange)).then(response => {
|
||||||
|
this.downloadLoading = false
|
||||||
|
if (response.code === 200) {
|
||||||
|
const curList = response.rows
|
||||||
|
import('@/vendor/Export2Excel').then(excel => {
|
||||||
|
const tHeader = ['id','订单号','客户单号,合同号','运单号','子单号,逗号隔开','订单状态','运单状态','订单类型','下单时间','客户ID','客户编号2502021','客户名称','收件客户编号2502021','收件客户客户名称','第三方客户客户编号','第三方客户客户名称','wx','收货人名','收货公司','收货人手机号','收货人电话','收货人国家','省','市','区','县','收货地址','邮编','寄件人省市区名称,逗号分隔','寄件人名','寄件公司','寄件人手机号','寄件人电话','寄件人国家','寄件省','寄件市','寄件区','寄件县','寄件地址','寄件邮编','发件人省市区名称,逗号分隔','支付方式','计费方式','支付月结编号','快递线路','快递产品类型','时效','计泡比例','清关方式','报关方式','预计到达时间','包装类型','派件方式:1-送货上门','取件方式:1-上门取件','预计上门取件开始时间','预计上门取件结束时间','取货失败原因','入仓代码','入仓名称','入仓地址','入仓联系人','入仓联系人电话','入仓单号','实际进仓单关联','客户发货开始时间','客户发货截止时间','货物大类','货物描述','货物图片,逗号隔开','预入仓代垫运费','预入仓代垫运费','预入仓实际运费','预入仓快递公司','预入仓快递单号','预入仓自定义标识','预入仓供应商','总重量','总体积','件数','实际重量','体积重量','费用币种','结算重量','计费重量','运费','是否超长','是否出账','账单备注','是否超重','超重重量','费用备注','三段码','实际货值','是否投保','投保货值','投保货值币种','保费币种','保费','保险备注','保险站点代码','投保日期','是否打印','打印人编号','打印站点','打印时间','打印次数','是否同行转单','转单代码','转单单号','转单时间','转单原因','当前网点编号','下一网点编号','上一网点点号','寄件站点代码','寄件日期','寄件人编号','取件员代码','发件网点代码','发货时间','派件人代码','派件时间','派件网点代码','生成账单时间','生成账单站点代码','生成账单人代码','目的地编号','目的省','目的城市','目的国家','目的地网点代码','目的地财务中心代码','业务人代码','销售回款人','销售联系人','操作员代码','是否问题件','问题件类型','问题件原因','问题件延期天数','是否备注消息','是否发送收件人短信','是否生成子单','签收人','签收人代码','签收站点代码','签收时间','揽收图片备注','签收底单图片','时区偏差','删除标志(0代表存在','创建者','创建时间','更新者','更新时间','备注','创建网点','更新网点',];
|
||||||
|
const filterVal = ['id','orderSn','custOrderId','billCode','billCodeSub','orderStatus','waybillStatus','orderType','orderDate','userId','customerCode','customerName','receiveCustomerCode','receiveCustomerName','thirdCustomerCode','thirdCustomerName','openId','receiveName','receiveCompany','receiveMobile','receiveTel','receiveCountry','receiveProvince','receiveCity','receiveCounty','receiveTown','receiveAddress','receivePostcode','receivePcd','sendName','sendCompany','sendMobile','sendTel','sendCountry','sendProvince','sendCity','sendCounty','sendTown','sendAddress','sendPostcode','sendPcd','paymentType','calcFeeType','custNo','transLineType','productType','timeType','meterType','customsClear','customsEclaration','estimateDate','packType','dispatchMethod','pickupMethod','pickStartDate','pickFinishDate','pickFailReason','intoWarehouseCode','intoWarehouseName','intoWarehouseAddress','intoWarehouseContact','intoWarehousePhone','intoWarehouseBillCode','warehouseInNo','customerDeliveryBeginTime','customerDeliveryEndTime','goodsType','goodsInfo','goodsPics','blPrepareInFreight','prepareInEstFee','prepareInRealFee','prepareInExpress','prepareInBillCode','prepareInRemark','prepareInSupplier','totalWeight','totalVolume','parcelQty','billWeight','volumeWeight','currency','settlementWeight','feeWeight','freight','blOverLong','blBill','blBillText','blOverWeight','overWeightNumber','feeRemaker','thirdCode','realValue','blInsure','insureValue','insureValueCurrency','insureFeeCurrency','insureFee','insureRemark','insureSiteCode','insureDate','blPrint','printManCode','printSite','printDate','printCount','blDispFd','transferCode','transferBillcode','dispFdDate','dispFdReason','currentSiteCode','nextSiteCode','lastSiteCode','registerSiteCode','registerDate','registerManCode','takePieceEmployeeCode','sendSiteCode','sendDate','dispatchManCode','dispatchDate','dispatchSiteCode','produceBillDate','produceBillSiteCode','produceBillManCode','destinationCode','destinationProvince','destinationCity','destinationCounty','dispatchUnderlingSiteCode','destinationCenterCode','marketManCode','payee','salesmen','operateEmployeeCode','blIsQuestion','problemType','problemCause','problemDelayDays','blMessage','blAcceptMessage','blGenSubbill','signMan','signManCode','signSiteCode','signDate','billPicSendRmk','billPicDispatchRmk','timezoneOffset','delFlag','createBy','createTime','updateBy','updateTime','remark','createSite','updateSite',];
|
||||||
|
const data = this.formatJson(filterVal, curList, response.rows)
|
||||||
|
excel.export_json_to_excel({
|
||||||
|
header: tHeader,
|
||||||
|
data,
|
||||||
|
filename: '运单列表',
|
||||||
|
autoWidth: true
|
||||||
|
})
|
||||||
|
loadingInstance.close()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
formatJson(filterVal, jsonData, resData) {
|
||||||
|
let index = 0
|
||||||
|
return jsonData.map(v => filterVal.map(j => {
|
||||||
|
if (j === 'index') {
|
||||||
|
return ++index
|
||||||
|
}
|
||||||
|
if (j === 'status') {
|
||||||
|
var statusStr='xxx'
|
||||||
|
if(v[j] == 10){
|
||||||
|
statusStr='xxx'
|
||||||
|
}
|
||||||
|
return statusStr;
|
||||||
|
}
|
||||||
|
return v[j]
|
||||||
|
}))
|
||||||
|
},
|
||||||
|
/** 列索引函数 */
|
||||||
|
getIndex($index) {
|
||||||
|
return (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
|
||||||
|
},
|
||||||
|
/** 时间搜索响应函数 */
|
||||||
|
dateTimeChange(value){
|
||||||
|
this.dateTimeRange=value;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
.el-divider{
|
||||||
|
margin-top: 0px;
|
||||||
|
background: 0 0;
|
||||||
|
border-top: 1px solid #E6EBF5;
|
||||||
|
}
|
||||||
|
.el-divider__text {
|
||||||
|
color: #0955ee;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.query-label {
|
||||||
|
.el-radio{
|
||||||
|
display: block;
|
||||||
|
line-height: 23px;
|
||||||
|
white-space: normal;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue
Block a user