md
This commit is contained in:
parent
a2b76d32d2
commit
0d1ba882ae
@ -2771,7 +2771,9 @@
|
|||||||
--editor-toolbar-base-offset:105px;
|
--editor-toolbar-base-offset:105px;
|
||||||
|
|
||||||
--main-color:rgb(12 12 13);
|
--main-color:rgb(12 12 13);
|
||||||
--body-bg-color:rgb(212 212 215);
|
/* --body-bg-color:rgb(212 212 215); */
|
||||||
|
--body-bg-color: #282829;
|
||||||
|
|
||||||
--progressBar-color:rgb(10 132 255);
|
--progressBar-color:rgb(10 132 255);
|
||||||
--progressBar-bg-color:rgb(221 221 222);
|
--progressBar-bg-color:rgb(221 221 222);
|
||||||
--progressBar-blend-color:rgb(116 177 239);
|
--progressBar-blend-color:rgb(116 177 239);
|
||||||
@ -2782,7 +2784,8 @@
|
|||||||
|
|
||||||
--sidebar-narrow-bg-color:rgb(212 212 215 / 0.9);
|
--sidebar-narrow-bg-color:rgb(212 212 215 / 0.9);
|
||||||
--sidebar-toolbar-bg-color:rgb(245 246 247);
|
--sidebar-toolbar-bg-color:rgb(245 246 247);
|
||||||
--toolbar-bg-color:rgb(249 249 250);
|
/* --toolbar-bg-color:rgb(249 249 250); */
|
||||||
|
--toolbar-bg-color:#fff;
|
||||||
--toolbar-border-color:rgb(184 184 184);
|
--toolbar-border-color:rgb(184 184 184);
|
||||||
--toolbar-box-shadow:0 1px 0 var(--toolbar-border-color);
|
--toolbar-box-shadow:0 1px 0 var(--toolbar-border-color);
|
||||||
--toolbar-border-bottom:none;
|
--toolbar-border-bottom:none;
|
||||||
@ -3130,6 +3133,7 @@ body{
|
|||||||
.editorParamsToolbar{
|
.editorParamsToolbar{
|
||||||
position:relative;
|
position:relative;
|
||||||
height:32px;
|
height:32px;
|
||||||
|
/* background-color:var(--toolbar-bg-color); */
|
||||||
background-color:var(--toolbar-bg-color);
|
background-color:var(--toolbar-bg-color);
|
||||||
box-shadow:var(--toolbar-box-shadow);
|
box-shadow:var(--toolbar-box-shadow);
|
||||||
border-bottom:var(--toolbar-border-bottom);
|
border-bottom:var(--toolbar-border-bottom);
|
||||||
|
|||||||
@ -276,7 +276,7 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<span data-l10n-id="pdfjs-toggle-sidebar-button-label">Toggle Sidebar</span>
|
<span data-l10n-id="pdfjs-toggle-sidebar-button-label">Toggle Sidebar</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="toolbarButtonSpacer"></div>
|
<div class="toolbarButtonSpacer"></div>
|
||||||
<button id="viewFind" class="toolbarButton" title="Find in Document" tabindex="12" data-l10n-id="pdfjs-findbar-button" aria-expanded="false" aria-controls="findbar">
|
<button id="viewFind" style="display: none;" class="toolbarButton" title="Find in Document" tabindex="12" data-l10n-id="pdfjs-findbar-button" aria-expanded="false" aria-controls="findbar">
|
||||||
<span data-l10n-id="pdfjs-findbar-button-label">Find</span>
|
<span data-l10n-id="pdfjs-findbar-button-label">Find</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="splitToolbarButton hiddenSmallView">
|
<div class="splitToolbarButton hiddenSmallView">
|
||||||
@ -293,7 +293,8 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
</span>
|
</span>
|
||||||
<span id="numPages" class="toolbarLabel"></span>
|
<span id="numPages" class="toolbarLabel"></span>
|
||||||
</div>
|
</div>
|
||||||
<div id="toolbarViewerRight">
|
<!-- style="display: none;" -->
|
||||||
|
<div id="toolbarViewerRight" style="display: none;">
|
||||||
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
|
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
|
||||||
<button id="editorHighlight" class="toolbarButton" hidden="true" disabled="disabled" title="Highlight" role="radio" aria-checked="false" aria-controls="editorHighlightParamsToolbar" tabindex="31" data-l10n-id="pdfjs-editor-highlight-button">
|
<button id="editorHighlight" class="toolbarButton" hidden="true" disabled="disabled" title="Highlight" role="radio" aria-checked="false" aria-controls="editorHighlightParamsToolbar" tabindex="31" data-l10n-id="pdfjs-editor-highlight-button">
|
||||||
<span data-l10n-id="pdfjs-editor-highlight-button-label">Highlight</span>
|
<span data-l10n-id="pdfjs-editor-highlight-button-label">Highlight</span>
|
||||||
|
|||||||
@ -20,11 +20,11 @@ export function realMatchWaybill() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取总的可以使用面单数
|
// 获取总的可以使用面单数
|
||||||
export function getTotalAvailablePag() {
|
export function getTotalAvailablePag(useSiteCode,prefix) {
|
||||||
return request({
|
return request({
|
||||||
url: '/emis/common/getTotalAvailablePag',
|
url: '/emis/common/getTotalAvailablePag',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: {}
|
data: {sendSiteCode:useSiteCode,prefix:prefix}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import pdf from 'vue-pdf'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "PdfViewer",
|
name: "PdfViewer",
|
||||||
@ -23,22 +22,14 @@ export default {
|
|||||||
required: false
|
required: false
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
|
||||||
pdf
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
},
|
|
||||||
created () {
|
created () {
|
||||||
},
|
},
|
||||||
destroyed () {
|
|
||||||
},
|
|
||||||
mounted () {
|
mounted () {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isExit: false,
|
isExit: false,
|
||||||
value: 1,
|
value: 1,
|
||||||
src: this.pdfUrl,
|
|
||||||
pdfLoadUrl:null,
|
pdfLoadUrl:null,
|
||||||
currentPage: 0,
|
currentPage: 0,
|
||||||
pageCount: 0,
|
pageCount: 0,
|
||||||
@ -48,91 +39,23 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
pdfUrl(newVal) {
|
pdfUrl(newVal) {
|
||||||
console.log(this.pdfUrl)
|
this.showPdfViewer();
|
||||||
if(this.pdfUrl){
|
},
|
||||||
// this.src=this.pdfUrl;
|
|
||||||
this.pdfLoadUrl='/static/pdfjs/4.2.67/web/viewer.html?file=' + encodeURIComponent(this.pdfUrl)
|
|
||||||
console.log(this.pdfLoadUrl)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.loadPdfHandler();
|
this.showPdfViewer();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async loadPdfHandler () {
|
showPdfViewer(){
|
||||||
console.log(this.pdfUrl)
|
this.pdfLoadUrl='/static/pdfjs/4.2.67/web/viewer.html?file=' + encodeURIComponent(this.pdfUrl)+"&t="+new Date().getTime()
|
||||||
this.pdfLoadUrl = pdf.createLoadingTask(this.pdfUrl);
|
console.log(this.pdfLoadUrl)
|
||||||
console.log(this.pdfLoadUrl)
|
|
||||||
this.pdfLoadUrl.promise.then(pdf => {
|
|
||||||
this.pageCount = pdf.numPages
|
|
||||||
console.log(this.pageCount)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
|
|
||||||
// pdf加载时
|
|
||||||
// loadPdfHandler() {
|
|
||||||
// this.value = this.currentPage = 1 // 加载的时候先加载第一页
|
|
||||||
// },
|
|
||||||
// 第一页
|
|
||||||
FirstPage() {
|
|
||||||
this.value = this.currentPage = 1
|
|
||||||
this.isExit = false
|
|
||||||
},
|
|
||||||
// 最后一页
|
|
||||||
lastPage() {
|
|
||||||
this.value = this.currentPage = this.pageCount
|
|
||||||
this.isExit = false
|
|
||||||
},
|
|
||||||
// 改变PDF页码,val 传过来区分上一页下一页的值,0 上一页,1 下一页
|
|
||||||
changePdfPage(val) {
|
|
||||||
if (val === 0 && this.currentPage > 1) {
|
|
||||||
this.currentPage--
|
|
||||||
}
|
|
||||||
if (val === 1 && this.currentPage < this.pageCount) {
|
|
||||||
this.currentPage++
|
|
||||||
}
|
|
||||||
this.value = this.currentPage
|
|
||||||
this.isExit = false
|
|
||||||
},
|
|
||||||
// 页码选择
|
|
||||||
pageSelect() {
|
|
||||||
this.currentPage = this.value
|
|
||||||
this.isExit = false
|
|
||||||
},
|
|
||||||
// 控制下拉选择框显示隐藏
|
|
||||||
setIsExit() {
|
|
||||||
this.isExit = true
|
|
||||||
},
|
|
||||||
// 放大
|
|
||||||
scaleD() {
|
|
||||||
this.scale += 5
|
|
||||||
this.$refs.pdf.$el.style.width = parseInt(this.scale) + '%'
|
|
||||||
},
|
|
||||||
// 缩小
|
|
||||||
scaleX() {
|
|
||||||
if (this.scale === 100) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.scale += -5
|
|
||||||
this.$refs.pdf.$el.style.width = parseInt(this.scale) + '%'
|
|
||||||
},
|
|
||||||
// 顺时针
|
|
||||||
clock() {
|
|
||||||
this.pageRotate += 90
|
|
||||||
},
|
|
||||||
// 逆时针
|
|
||||||
counterClock() {
|
|
||||||
this.pageRotate -= 90
|
|
||||||
},
|
},
|
||||||
// 下载
|
// 下载
|
||||||
downPDF() {
|
downPDF() {
|
||||||
var url = this.src
|
|
||||||
var tempLink = document.createElement('a')
|
var tempLink = document.createElement('a')
|
||||||
tempLink.style.display = 'none'
|
tempLink.style.display = 'none'
|
||||||
tempLink.href = url
|
tempLink.href = this.pdfUrl
|
||||||
tempLink.setAttribute('download', (new Date()).getTime()+'.pdf')
|
tempLink.setAttribute('download', (new Date()).getTime()+'.pdf')
|
||||||
// console.log(typeof tempLink.download,11111);
|
|
||||||
if (typeof tempLink.download === 'undefined') {
|
if (typeof tempLink.download === 'undefined') {
|
||||||
tempLink.setAttribute('target', '_blank')
|
tempLink.setAttribute('target', '_blank')
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,6 +46,7 @@ class TanexPrinterSdk {
|
|||||||
onGetPrinterCallback =[];
|
onGetPrinterCallback =[];
|
||||||
onGetPrintTplCallback =[];
|
onGetPrintTplCallback =[];
|
||||||
onBatchGetPDFCallback = [];
|
onBatchGetPDFCallback = [];
|
||||||
|
onBatchGetPDFCompleteCallback = [];
|
||||||
|
|
||||||
// 自定义 回调函数
|
// 自定义 回调函数
|
||||||
callbacks ={}
|
callbacks ={}
|
||||||
@ -96,10 +97,22 @@ class TanexPrinterSdk {
|
|||||||
|
|
||||||
setOnOpen(callback){
|
setOnOpen(callback){
|
||||||
this.onOpenCallback.push(callback);
|
this.onOpenCallback.push(callback);
|
||||||
|
|
||||||
|
if(this.connected){
|
||||||
|
if(callback!=null){
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setOnClose(callback){
|
setOnClose(callback){
|
||||||
this.onCloseCallback.push(callback);
|
this.onCloseCallback.push(callback);
|
||||||
|
|
||||||
|
if(!this.connected){
|
||||||
|
if(callback!=null){
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setOnError(callback){
|
setOnError(callback){
|
||||||
@ -108,17 +121,31 @@ class TanexPrinterSdk {
|
|||||||
|
|
||||||
setOnGetPrinter(callback){
|
setOnGetPrinter(callback){
|
||||||
this.onGetPrinterCallback.push(callback);
|
this.onGetPrinterCallback.push(callback);
|
||||||
|
if(this.connected){
|
||||||
|
if(callback!=null){
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setOnGetPrintTpl(callback){
|
setOnGetPrintTpl(callback){
|
||||||
this.onGetPrintTplCallback.push(callback);
|
this.onGetPrintTplCallback.push(callback);
|
||||||
|
if(this.connected){
|
||||||
|
if(callback!=null){
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 只支持一个事件响应
|
// 只支持一个事件响应
|
||||||
setOnBatchGetPDF(callback){
|
setOnBatchGetPDF(callback,completeCallback){
|
||||||
// this.onBatchGetPDFCallback.push(callback);
|
// this.onBatchGetPDFCallback.push(callback);
|
||||||
this.onBatchGetPDFCallback=[];
|
this.onBatchGetPDFCallback=[];
|
||||||
this.onBatchGetPDFCallback.push(callback);
|
this.onBatchGetPDFCallback.push(callback);
|
||||||
|
|
||||||
|
this.onBatchGetPDFCompleteCallback=[];
|
||||||
|
this.onBatchGetPDFCompleteCallback.push(completeCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取打印机列表
|
// 获取打印机列表
|
||||||
@ -160,6 +187,31 @@ class TanexPrinterSdk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
batchGetPDFAdv(printDataList,billCount,callback){
|
||||||
|
if(printDataList&&printDataList.length>0){
|
||||||
|
if(callback){
|
||||||
|
this.setOnBatchGetPDF(callback);
|
||||||
|
}
|
||||||
|
// 超时计算
|
||||||
|
|
||||||
|
this.sendBatchGetPDFAdvCMD(printDataList,billCount);
|
||||||
|
this.recievePdfFileTimer = setTimeout(function(){
|
||||||
|
if(this.onBatchGetPDFCallback){
|
||||||
|
if(this.onBatchGetPDFCallback.length>0){
|
||||||
|
this.onBatchGetPDFCallback.forEach(callback=>{
|
||||||
|
if(callback!=null){
|
||||||
|
callback([],false,"打印超时");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
clearTimeout(this.recievePdfFileTimer);
|
||||||
|
}, 6000)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 批量打印
|
// 批量打印
|
||||||
batchPrint(tplCode,printerName,orderList){
|
batchPrint(tplCode,printerName,orderList){
|
||||||
if(tplCode&&printerName&&orderList&&orderList.length>0){
|
if(tplCode&&printerName&&orderList&&orderList.length>0){
|
||||||
@ -167,6 +219,13 @@ class TanexPrinterSdk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 高级打印接口,多个模版
|
||||||
|
batchPrintAdv(printDataList){
|
||||||
|
if(printDataList&&printDataList.length>0){
|
||||||
|
this.sendBatchPrintAdvCMD(printDataList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
refreshPrintTpl(){
|
refreshPrintTpl(){
|
||||||
this.sendRefreshPrintTplListCMD();
|
this.sendRefreshPrintTplListCMD();
|
||||||
}
|
}
|
||||||
@ -191,6 +250,56 @@ class TanexPrinterSdk {
|
|||||||
this.send(JSON.stringify(printCmd),null);
|
this.send(JSON.stringify(printCmd),null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sendBatchPrintAdvCMD(printDataList){
|
||||||
|
// {"CMD":"batchPrint","status":"1","Data":["DT20210901001","DT20210901002"]}
|
||||||
|
var printCmd={};
|
||||||
|
printCmd['RequestId']=this.getRequestId();
|
||||||
|
printCmd['CMD']="batchPrint";
|
||||||
|
printCmd['Status']="1";
|
||||||
|
if(printDataList && printDataList.length>0){
|
||||||
|
printCmd['Data']=printDataList
|
||||||
|
this.send(JSON.stringify(printCmd),null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"tplCode":tplCode,
|
||||||
|
"printerName":printerName,
|
||||||
|
"orderList":orderList.toString()
|
||||||
|
}
|
||||||
|
]
|
||||||
|
*/
|
||||||
|
// if(orderList!=null && orderList.length>0){
|
||||||
|
// let printData=[{
|
||||||
|
// "tplCode":tplCode,
|
||||||
|
// "printerName":printerName,
|
||||||
|
// "orderList":orderList.toString()
|
||||||
|
// }]
|
||||||
|
// printCmd['Data']=printData
|
||||||
|
// // console.log(JSON.stringify(printCmd));
|
||||||
|
// this.send(JSON.stringify(printCmd),null);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
sendBatchGetPDFAdvCMD(printDataList,billCount){
|
||||||
|
// {"CMD":"batchGetPDF","status":"1","Data":["DT20210901001","DT20210901002"]}
|
||||||
|
var printCmd={};
|
||||||
|
printCmd['RequestId']=this.getRequestId();
|
||||||
|
printCmd['CMD']="batchGetPDF";
|
||||||
|
printCmd['Status']="1";
|
||||||
|
if(printDataList && printDataList.length>0){
|
||||||
|
printCmd['Data']=printDataList
|
||||||
|
this.sendPdfFileListCount = billCount;
|
||||||
|
this.send(JSON.stringify(printCmd),null);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sendBatchPrintCMD(tplCode,printerName,orderList){
|
sendBatchPrintCMD(tplCode,printerName,orderList){
|
||||||
// {"CMD":"batchPrint","status":"1","Data":["DT20210901001","DT20210901002"]}
|
// {"CMD":"batchPrint","status":"1","Data":["DT20210901001","DT20210901002"]}
|
||||||
var printCmd={};
|
var printCmd={};
|
||||||
@ -198,11 +307,11 @@ class TanexPrinterSdk {
|
|||||||
printCmd['CMD']="batchPrint";
|
printCmd['CMD']="batchPrint";
|
||||||
printCmd['Status']="1";
|
printCmd['Status']="1";
|
||||||
if(orderList!=null && orderList.length>0){
|
if(orderList!=null && orderList.length>0){
|
||||||
let printData={
|
let printData=[{
|
||||||
"tplCode":tplCode,
|
"tplCode":tplCode,
|
||||||
"printerName":printerName,
|
"printerName":printerName,
|
||||||
"orderList":orderList.toString()
|
"orderList":orderList.toString()
|
||||||
}
|
}]
|
||||||
printCmd['Data']=printData
|
printCmd['Data']=printData
|
||||||
// console.log(JSON.stringify(printCmd));
|
// console.log(JSON.stringify(printCmd));
|
||||||
this.send(JSON.stringify(printCmd),null);
|
this.send(JSON.stringify(printCmd),null);
|
||||||
@ -216,17 +325,17 @@ class TanexPrinterSdk {
|
|||||||
printCmd['CMD']="batchGetPDF";
|
printCmd['CMD']="batchGetPDF";
|
||||||
printCmd['Status']="1";
|
printCmd['Status']="1";
|
||||||
if(orderList!=null && orderList.length>0){
|
if(orderList!=null && orderList.length>0){
|
||||||
let printData={
|
let printData=[{
|
||||||
"tplCode":tplCode,
|
"tplCode":tplCode,
|
||||||
"printerName":printerName,
|
"printerName":printerName,
|
||||||
"orderList":orderList.toString()
|
"orderList":orderList.toString()
|
||||||
}
|
}]
|
||||||
|
|
||||||
this.recievePdfFileList = []
|
this.recievePdfFileList = []
|
||||||
this.sendPdfFileListCount = orderList.length;
|
this.sendPdfFileListCount = orderList.length;
|
||||||
|
|
||||||
printCmd['Data']=printData
|
printCmd['Data']=printData
|
||||||
console.log(JSON.stringify(printCmd));
|
// console.log(JSON.stringify(printCmd));
|
||||||
this.send(JSON.stringify(printCmd),null);
|
this.send(JSON.stringify(printCmd),null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -516,7 +625,7 @@ class TanexPrinterSdk {
|
|||||||
|
|
||||||
// 发送数据的方法
|
// 发送数据的方法
|
||||||
send(data) {
|
send(data) {
|
||||||
console.log("send:"+data)
|
// console.log("send:"+data)
|
||||||
if (this.getWSReadyState() === this.WS_OPEN ) {
|
if (this.getWSReadyState() === this.WS_OPEN ) {
|
||||||
this.sendRetryCount = 0
|
this.sendRetryCount = 0
|
||||||
this.ws.send(data)
|
this.ws.send(data)
|
||||||
|
|||||||
@ -87,7 +87,7 @@
|
|||||||
|
|
||||||
let queryParams = {
|
let queryParams = {
|
||||||
pageNum:1,
|
pageNum:1,
|
||||||
pageSize:50,
|
pageSize:100,
|
||||||
countryCode:this.countryCode,
|
countryCode:this.countryCode,
|
||||||
regionCode:key,
|
regionCode:key,
|
||||||
regionType:1
|
regionType:1
|
||||||
|
|||||||
@ -9,41 +9,44 @@
|
|||||||
<el-tag type="danger" >{{ printerStatusMessage }}</el-tag>
|
<el-tag type="danger" >{{ printerStatusMessage }}</el-tag>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="printerStatus==1" style="display: inline-flex;">
|
<div v-if="printerStatus==1" style="display: inline-flex;">
|
||||||
<div style="font-size: 12px; line-height: 28px;font-weight: 600;">模板:</div>
|
<div v-if="isShowPinters==1" style="font-size: 12px; line-height: 28px;font-weight: 600;">模板:</div>
|
||||||
<div>
|
<div v-if="isShowTpl==1" style="width: 150px;">
|
||||||
<el-select v-model="selTplCode" size="mini" placeholder="选择打印模板" clearable filterable>
|
<el-select v-model="selTplCode" size="mini" placeholder="选择打印模板" clearable filterable>
|
||||||
<template slot="prefix">
|
<template slot="prefix">
|
||||||
<span style="padding: 5px;line-height: 28px;font-size: 16px;color: rgb(111 111 111);cursor: pointer;" @click="refreshPrintTpl()">
|
<span style="padding: 5px;line-height: 28px;font-size: 16px;color: rgb(111 111 111);cursor: pointer;" @click="refreshPrintTpl()">
|
||||||
<i class="el-icon-refresh"></i>
|
<i class="el-icon-refresh"></i>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in printTplList"
|
v-for="item in printTplList"
|
||||||
:key="item.tplCode"
|
:key="item.tplCode"
|
||||||
:label="item.tplName"
|
:label="item.tplName"
|
||||||
:value="item.tplCode"
|
:value="item.tplCode"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="selTplCode=='TAN-GC-130'" class="subBillRange" style="display: inline-flex;font-size: 12px; line-height: 28px; font-weight: 600;">
|
<div v-if="selTplCode=='TAN-GC-130' && isShowSubBillRange" class="subBillRange" style="display: inline-flex;font-size: 12px; line-height: 28px; font-weight: 600;">
|
||||||
<span >子单:
|
<span >子单范围:
|
||||||
<el-input size="mini" style="width:40px" v-model="subBillStart" type="text" maxlength="4" ></el-input>
|
<el-input size="mini" style="width:40px" v-model="subBillStart" type="text" maxlength="4" ></el-input>
|
||||||
-
|
-
|
||||||
<el-input size="mini" style="width:40px" v-model="subBillEnd" type="text" maxlength="4" ></el-input>
|
<el-input size="mini" style="width:40px" v-model="subBillEnd" type="text" maxlength="4" ></el-input>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="font-size: 12px;line-height: 28px;font-weight: 600;">打印机:</div>
|
<div v-if="isShowPinters==1" style="font-size: 12px;line-height: 28px;font-weight: 600;">打印机:</div>
|
||||||
<div>
|
<div v-if="isShowPinters==1" style="width: 150px;">
|
||||||
<el-select v-model="selPrinterName" size="mini" placeholder="打印机" clearable filterable>
|
<el-select v-model="selPrinterName" size="mini" placeholder="打印机" clearable filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in printerList"
|
v-for="item in printerList"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="printerStatus==1" style="display: inline-flex;">
|
||||||
|
<span style="color: green;font-weight: 600;font-size:13px;">【Printer Online】</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="printerStatus==0" style="display: inline-flex;">
|
<div v-if="printerStatus==0" style="display: inline-flex;">
|
||||||
<a :href="printerDownUrl" style="color: blue;font-weight: 600;font-size:13px;text-decoration: underline">下载打印组件</a>
|
<a :href="printerDownUrl" style="color: blue;font-weight: 600;font-size:13px;text-decoration: underline">下载打印组件</a>
|
||||||
@ -55,7 +58,7 @@
|
|||||||
|
|
||||||
<el-dialog class="printPreDialog" title="预览" :visible.sync="openPdfView" width="95%" :close-on-click-modal="false" v-dialogDrag append-to-body>
|
<el-dialog class="printPreDialog" title="预览" :visible.sync="openPdfView" width="95%" :close-on-click-modal="false" v-dialogDrag append-to-body>
|
||||||
<div style="height: 1600px;width:100%;overflow: auto;">
|
<div style="height: 1600px;width:100%;overflow: auto;">
|
||||||
<PdfViewer :pdfUrl="pdfUrl" style="width:100%" @onPrint="batchPrint" ></PdfViewer>
|
<PdfViewer :pdfUrl="pdfUrl" style="width:100%" @onPrint="onPdfViewPrint" ></PdfViewer>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
@ -76,12 +79,27 @@
|
|||||||
mixins: [emitter],
|
mixins: [emitter],
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
type: [String],
|
type: [Number],
|
||||||
required: false
|
required: false
|
||||||
},
|
},
|
||||||
placeholder:{
|
placeholder:{
|
||||||
type: [String],
|
type: [String],
|
||||||
required: false
|
required: false
|
||||||
|
},
|
||||||
|
isShowPinters:{
|
||||||
|
type: [Boolean],
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
isShowTpl:{
|
||||||
|
type: [Boolean],
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
isShowSubBillRange:{
|
||||||
|
type: [Boolean],
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -120,7 +138,7 @@
|
|||||||
this.initTanexPrinterSdk();
|
this.initTanexPrinterSdk();
|
||||||
},
|
},
|
||||||
beforeDestroy(){
|
beforeDestroy(){
|
||||||
this.tanexPrinter.close();
|
// this.tanexPrinter.close();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initTanexPrinterSdk(){
|
initTanexPrinterSdk(){
|
||||||
@ -142,17 +160,20 @@
|
|||||||
onPrinterOpen(evt){
|
onPrinterOpen(evt){
|
||||||
// console.log("onPrinterOpen")
|
// console.log("onPrinterOpen")
|
||||||
this.printerStatus = 1;
|
this.printerStatus = 1;
|
||||||
|
this.$emit("input",this.printerStatus);
|
||||||
this.printerStatusMessage="打印组件已连接,可以打印.";
|
this.printerStatusMessage="打印组件已连接,可以打印.";
|
||||||
|
|
||||||
},
|
},
|
||||||
onPrinterClose(evt){
|
onPrinterClose(evt){
|
||||||
// console.log("onPrinterClose")
|
// console.log("onPrinterClose")
|
||||||
this.printerStatus = 0;
|
this.printerStatus = 0;
|
||||||
|
this.$emit("input",this.printerStatus);
|
||||||
this.printerStatusMessage="打印组件已断开!";
|
this.printerStatusMessage="打印组件已断开!";
|
||||||
},
|
},
|
||||||
onPrinterError(evt){
|
onPrinterError(evt){
|
||||||
// console.log("onPrinterError")
|
// console.log("onPrinterError")
|
||||||
this.printerStatus = 0;
|
this.printerStatus = 0;
|
||||||
|
this.$emit("input",this.printerStatus);
|
||||||
this.printerStatusMessage="打印组件已断开!";
|
this.printerStatusMessage="打印组件已断开!";
|
||||||
},
|
},
|
||||||
onGetPrinter(msg){
|
onGetPrinter(msg){
|
||||||
@ -170,6 +191,9 @@
|
|||||||
|
|
||||||
this.selTplCode=this.printTplList[0].tplCode;
|
this.selTplCode=this.printTplList[0].tplCode;
|
||||||
},
|
},
|
||||||
|
getDefaultPrinter(){
|
||||||
|
return this.tanexPrinter.getDefaultPrinter();
|
||||||
|
},
|
||||||
refreshPrintTpl(){
|
refreshPrintTpl(){
|
||||||
this.printTplList=[];
|
this.printTplList=[];
|
||||||
this.selTplCode=null;
|
this.selTplCode=null;
|
||||||
@ -178,53 +202,82 @@
|
|||||||
lpadZero(val,len) {
|
lpadZero(val,len) {
|
||||||
return (new Array(len + 1).join('0') + val).slice(-len);
|
return (new Array(len + 1).join('0') + val).slice(-len);
|
||||||
},
|
},
|
||||||
batchPrint(orderList){
|
/*
|
||||||
|
高级批量打印
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"tplCode":tplCode,
|
||||||
|
"printerName":printerName,
|
||||||
|
"orderList":orderList.toString()
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
batchPrintAdv(printDataList){
|
||||||
|
this.tanexPrinter.batchPrintAdv(printDataList);
|
||||||
|
},
|
||||||
|
|
||||||
|
batchPrint(orderList,tplCode){
|
||||||
let that = this;
|
let that = this;
|
||||||
let newOrderList=[];
|
let newOrderList=[];
|
||||||
if(orderList){
|
if(orderList){
|
||||||
this.orderList=[...orderList]
|
this.orderList=[...orderList]
|
||||||
}
|
}
|
||||||
|
|
||||||
// 打印子单
|
if(tplCode){
|
||||||
if(this.selTplCode=="TAN-GC-130"){
|
this.selTplCode=tplCode
|
||||||
for(let i=0;i<this.orderList.length;i++){
|
|
||||||
let billCode=this.orderList[i];
|
|
||||||
// 循环子单范围
|
|
||||||
for(let i=this.subBillStart;i<=this.subBillEnd;i++){
|
|
||||||
let subBillCode = billCode+""+this.lpadZero(i,4);
|
|
||||||
newOrderList.push(subBillCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
newOrderList=[...orderList];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newOrderList=[...orderList];
|
||||||
|
|
||||||
that.tanexPrinter.batchPrint(that.selTplCode,that.selPrinterName,newOrderList)
|
that.tanexPrinter.batchPrint(that.selTplCode,that.selPrinterName,newOrderList)
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
printPreview(orderList){
|
printPreviewAdv(printDataList,billCount){
|
||||||
|
let that = this;
|
||||||
|
const loadingInstance = this.$loading({
|
||||||
|
text: '正在生成预览...'
|
||||||
|
})
|
||||||
|
this.tanexPrinter.batchGetPDFAdv(printDataList,billCount,function(pdfList,success,erroMsg){
|
||||||
|
// console.log(erroMsg);
|
||||||
|
if(success){
|
||||||
|
const pdfDataList=[...pdfList];
|
||||||
|
let pdfUtils=new PdfUtils({});
|
||||||
|
pdfUtils.mergePdf3(pdfDataList, (new Date()).getTime()+".pdf",false )
|
||||||
|
.then(url=>{
|
||||||
|
loadingInstance.close();
|
||||||
|
that.pdfUrl=url;
|
||||||
|
that.openPdfView = true;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
// console.log(error)
|
||||||
|
that.$modal.msgError("打印出错:"+erroMsg);
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
that.$modal.msgError("打印出错:"+erroMsg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
printPreview(orderList,tplCode,subStart,subEnd){
|
||||||
let that = this;
|
let that = this;
|
||||||
let newOrderList=[];
|
let newOrderList=[];
|
||||||
if(orderList){
|
if(orderList){
|
||||||
this.orderList=[...orderList]
|
this.orderList=[...orderList]
|
||||||
}
|
}
|
||||||
|
|
||||||
// 打印子单
|
if(tplCode){
|
||||||
if(this.selTplCode=="TAN-GC-130"){
|
this.selTplCode=tplCode
|
||||||
for(let i=0;i<this.orderList.length;i++){
|
|
||||||
let billCode=this.orderList[i];
|
|
||||||
// 循环子单范围
|
|
||||||
for(let i=this.subBillStart;i<=this.subBillEnd;i++){
|
|
||||||
let subBillCode = billCode+""+this.lpadZero(i,4);
|
|
||||||
newOrderList.push(subBillCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
newOrderList=[...orderList];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(subStart){
|
||||||
|
this.subBillStart=subStart;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(subEnd){
|
||||||
|
this.subBillEnd=subEnd;
|
||||||
|
}
|
||||||
|
newOrderList=[...orderList];
|
||||||
|
|
||||||
const loadingInstance = this.$loading({
|
const loadingInstance = this.$loading({
|
||||||
text: '正在生成预览...'
|
text: '正在生成预览...'
|
||||||
})
|
})
|
||||||
@ -278,6 +331,7 @@
|
|||||||
if(success){
|
if(success){
|
||||||
const pdfDataList=[...pdfList];
|
const pdfDataList=[...pdfList];
|
||||||
let pdfUtils=new PdfUtils({});
|
let pdfUtils=new PdfUtils({});
|
||||||
|
// for()
|
||||||
pdfUtils.mergePdf3(pdfDataList, (new Date()).getTime()+".pdf",true )
|
pdfUtils.mergePdf3(pdfDataList, (new Date()).getTime()+".pdf",true )
|
||||||
}else{
|
}else{
|
||||||
that.$modal.msgError("下载出错:"+erroMsg);
|
that.$modal.msgError("下载出错:"+erroMsg);
|
||||||
@ -285,6 +339,11 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 响应PDF预览
|
||||||
|
onPdfViewPrint(){
|
||||||
|
this.$emit("onPrint");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,9 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<XdPageContainer class="app-container">
|
<XdPageContainer class="app-container">
|
||||||
|
|
||||||
<SearchForm slot="pageHeader" class="queryForm" :model="queryParams" ref="queryForm" size="mini" :maxShow="9" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
|
<SearchForm slot="pageHeader" class="queryForm" :model="queryParams" ref="queryForm" size="mini" :maxShow="9" label-width="100px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
|
||||||
|
<!-- <el-row :gutter="10">
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6"><div class="grid-content bg-purple">123</div></el-col>
|
||||||
|
<el-col :xs="8" :sm="6" :md="8" :lg="8" :xl="6"><div class="grid-content bg-purple-light">123</div></el-col>
|
||||||
|
<el-col :xs="8" :sm="6" :md="8" :lg="8" :xl="6"><div class="grid-content bg-purple">123</div></el-col>
|
||||||
|
<el-col :xs="8" :sm="6" :md="8" :lg="8" :xl="6"><div class="grid-content bg-purple-light">123</div></el-col>
|
||||||
|
</el-row> -->
|
||||||
|
|
||||||
|
|
||||||
<!-- label-width="100px" -->
|
<!-- label-width="100px" -->
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
<el-col :span="6">
|
<!-- :span="6" -->
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="" prop="billCode">
|
<el-form-item label="" prop="billCode">
|
||||||
@ -25,31 +35,31 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
|
<el-form-item label="寄件网点" prop="productType">
|
||||||
|
<EmisSiteSimplePicker1 v-model="queryParams.sendSiteCode" ></EmisSiteSimplePicker1>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="目的网点" prop="dispatchUnderlingSiteCode">
|
||||||
|
<EmisSiteSimplePicker2 v-model="queryParams.dispatchUnderlingSiteCode" ></EmisSiteSimplePicker2>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="寄件网点" prop="productType">
|
<el-form-item label="月结客户" prop="custNo">
|
||||||
<EmisSiteSimplePicker1 v-model="queryParams.sendSiteCode" ></EmisSiteSimplePicker1>
|
<EmisMonthpayAccountPicker v-model="queryParams.custNo" @onChange="handleQuery"></EmisMonthpayAccountPicker>
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="目的网点" prop="dispatchUnderlingSiteCode">
|
|
||||||
<EmisSiteSimplePicker2 v-model="queryParams.dispatchUnderlingSiteCode" ></EmisSiteSimplePicker2>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="月结客户" prop="custNo">
|
|
||||||
<EmisMonthpayAccountPicker v-model="queryParams.custNo" @onChange="handleQuery"></EmisMonthpayAccountPicker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="付款方式" prop="paymentType" >
|
|
||||||
<el-select clearable 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>
|
||||||
|
<el-form-item label="付款方式" prop="paymentType" >
|
||||||
|
<el-select clearable 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-col>
|
||||||
|
|
||||||
</el-col>
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="线路" prop="transLineType">
|
<el-form-item label="线路" prop="transLineType">
|
||||||
<TransLinePicker v-model="queryParams.transLineType" isInitiated="true" @onChange="handleQuery"></TransLinePicker>
|
<TransLinePicker v-model="queryParams.transLineType" isInitiated="true" @onChange="handleQuery"></TransLinePicker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -59,8 +69,6 @@
|
|||||||
|
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
@ -83,7 +91,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
<el-col :span="6">
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
<el-form-item label="寄件人" prop="sendName">
|
<el-form-item label="寄件人" prop="sendName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.sendName"
|
v-model="queryParams.sendName"
|
||||||
@ -131,7 +139,7 @@
|
|||||||
|
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
|
|
||||||
<el-form-item label="收件人" prop="receiveName">
|
<el-form-item label="收件人" prop="receiveName">
|
||||||
<el-input
|
<el-input
|
||||||
@ -176,7 +184,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
|
|
||||||
<!-- <el-form-item label="运单状态" prop="siteType">
|
<!-- <el-form-item label="运单状态" prop="siteType">
|
||||||
<el-select v-model="queryParams.waybillStatus" placeholder="运单状态" clearable filterable>
|
<el-select v-model="queryParams.waybillStatus" placeholder="运单状态" clearable filterable>
|
||||||
@ -249,7 +257,7 @@
|
|||||||
|
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="6">
|
||||||
|
|
||||||
<el-form-item label="问题件方式" prop="pickupMethod">
|
<el-form-item label="问题件方式" prop="pickupMethod">
|
||||||
<el-select clearable="" v-model="queryParams.params.problemQueryType" placeholder="请选择">
|
<el-select clearable="" v-model="queryParams.params.problemQueryType" placeholder="请选择">
|
||||||
@ -555,6 +563,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import 'element-ui/lib/theme-chalk/display.css';
|
||||||
import { listEmisWaybill, getEmisWaybill, delEmisWaybill, addEmisWaybill, updateEmisWaybill } from "@/api/emis/emisWaybill";
|
import { listEmisWaybill, getEmisWaybill, delEmisWaybill, addEmisWaybill, updateEmisWaybill } from "@/api/emis/emisWaybill";
|
||||||
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
|
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
|
||||||
// import emisWaybillView from '@/views/emis/emisWaybill/emisWaybillView';
|
// import emisWaybillView from '@/views/emis/emisWaybill/emisWaybillView';
|
||||||
|
|||||||
@ -257,7 +257,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<TanexPrinterPanel ref="tanexPrinter"></TanexPrinterPanel>
|
<TanexPrinterPanel ref="tanexPrinter" :isShowPinters="true" :isShowTpl="true" :isShowSubBillRange="true" @onPrint="handleBatchPrint"></TanexPrinterPanel>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,22 +4,30 @@
|
|||||||
<el-collapse v-model="activeNames">
|
<el-collapse v-model="activeNames">
|
||||||
<el-collapse-item title="" name="1">
|
<el-collapse-item title="" name="1">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div class="form-group-title"><span class="title">{{ $t('发货信息') }}</span></div>
|
<div style="display:inline-flex">
|
||||||
|
<div class="form-group-title"><span class="title">{{ $t('发货信息') }}</span></div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
|
|
||||||
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;">
|
||||||
|
|
||||||
|
|
||||||
<!-- 运单录入 -->
|
<!-- 运单录入 -->
|
||||||
|
<!-- <el-col :span="4">
|
||||||
|
<el-form-item label="寄件网点" prop="sendSiteCode">
|
||||||
|
<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-col> -->
|
||||||
|
|
||||||
|
|
||||||
<el-col :span="6" v-if="action=='add'">
|
<el-col :span="6" v-if="action=='add'">
|
||||||
<el-form-item :label="$t('发货时间')" prop="sendDate">
|
<el-form-item :label="$t('发货时间')" prop="sendDate">
|
||||||
<el-input v-model="form.sendDate" placeholder="" readonly="" disabled />
|
<el-input v-model="form.sendDate" placeholder="" readonly="" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12" v-if="action=='add'">
|
<el-col :span="18" v-if="action=='add'">
|
||||||
<el-form-item label="运单号" prop="billCode" >
|
<el-form-item label="运单号" prop="billCode" >
|
||||||
<div style="display:inline-flex">
|
<div style="display:inline-flex">
|
||||||
<div>
|
<div>
|
||||||
@ -33,19 +41,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6" v-if="action=='add'">
|
|
||||||
<div v-if="totalAvailablePag.mainHasCnt>0" style="display:inline-flex;font-size: 15px;font-weight: 700;">
|
|
||||||
<div>
|
|
||||||
主单剩余:<el-tag type="info">{{ totalAvailablePag.mainHasCnt }}</el-tag>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
子单剩余:<el-tag type="info">{{ totalAvailablePag.subHasCnt }}</el-tag>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-else >
|
|
||||||
<div @click="handleApplyPag" style="font-size: 15px;font-weight: 700;color:red;cursor: pointer;">主单余量:0,请立即【<span style="color:blue">申购</span>】</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<!-- 运单录入 end -->
|
<!-- 运单录入 end -->
|
||||||
|
|
||||||
<!-- 运单修改 -->
|
<!-- 运单修改 -->
|
||||||
@ -150,32 +146,9 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="寄件网点" prop="sendSiteCode">
|
|
||||||
<!-- <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-col>
|
|
||||||
|
|
||||||
<el-col :span="18" v-if="action=='add'">
|
|
||||||
<el-form-item label="打印选项:" prop="printTypeCheckList" style="display:inline-flex">
|
|
||||||
<div>
|
|
||||||
<el-checkbox-group v-model="form.printTypeCheckList">
|
|
||||||
<el-checkbox :key="1" :label="1" >
|
|
||||||
<span >寄件网点存根联</span>
|
|
||||||
</el-checkbox>
|
|
||||||
<el-checkbox :key="5" :label="5" >
|
|
||||||
<span >子单</span>
|
|
||||||
</el-checkbox>
|
|
||||||
</el-checkbox-group>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<TanexPrinterPanel ref="tanexPrinter" ></TanexPrinterPanel>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}">
|
<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}">
|
||||||
<el-form-item label="寄件客户" prop="customerCode">
|
<el-form-item label="寄件客户" prop="customerCode">
|
||||||
@ -184,6 +157,48 @@
|
|||||||
</el-col> -->
|
</el-col> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<div v-if="action=='add'" style="position: absolute;right: 80px;top: 60px;z-index: 9999;">
|
||||||
|
<div v-if="totalAvailablePag.mainHasCnt>0" style="display:inline-flex;font-size: 15px;font-weight: 700;">
|
||||||
|
|
||||||
|
<div style="width:230px">
|
||||||
|
<el-form-item prop="sendSiteCode">
|
||||||
|
<span slot="label" style="color:gray">寄件网点:</span>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div style="margin-left: 12px;">
|
||||||
|
主单剩余:<span>{{ totalAvailablePag.mainHasCnt }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
子单剩余:<span>{{ totalAvailablePag.subHasCnt }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else >
|
||||||
|
<div @click="handleApplyPag" style="font-size: 15px;font-weight: 700;color:red;cursor: pointer;">主单余量:0,请立即【<span style="color:blue">申购</span>】</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="action=='add'" style="position: absolute;right: 80px;top: 260px;z-index: 1;">
|
||||||
|
<el-form-item label="打印选项:" prop="printTypeCheckList">
|
||||||
|
<div style="display:inline-flex">
|
||||||
|
<div>
|
||||||
|
<el-checkbox-group v-model="form.printTypeCheckList">
|
||||||
|
<el-checkbox :key="1" :label="1" >
|
||||||
|
<span >寄件网点存根联</span>
|
||||||
|
</el-checkbox>
|
||||||
|
<el-checkbox :key="5" :label="5" >
|
||||||
|
<span >子单</span>
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
|
<div style="margin-left:10px">
|
||||||
|
<TanexPrinterPanel ref="tanexPrinter" v-model="printerStatus" @onPrint="handleBatchPrint"></TanexPrinterPanel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="" name="2">
|
<el-collapse-item title="" name="2">
|
||||||
@ -839,6 +854,7 @@ data() {
|
|||||||
isNeedCalc:false,
|
isNeedCalc:false,
|
||||||
titleSelectAddress:'',
|
titleSelectAddress:'',
|
||||||
openSelectAddress:false,
|
openSelectAddress:false,
|
||||||
|
printerStatus:0,
|
||||||
|
|
||||||
// 可用面单数
|
// 可用面单数
|
||||||
totalAvailablePag:{
|
totalAvailablePag:{
|
||||||
@ -1023,8 +1039,8 @@ methods: {
|
|||||||
this.initData();
|
this.initData();
|
||||||
},
|
},
|
||||||
// 初始化可用面单数量
|
// 初始化可用面单数量
|
||||||
initGetTotalAvailablePag(){
|
initGetTotalAvailablePag(useSiteCode){
|
||||||
getTotalAvailablePag().then(response => {
|
getTotalAvailablePag(useSiteCode,"T7080").then(response => {
|
||||||
let dataMap=response.data;
|
let dataMap=response.data;
|
||||||
this.totalAvailablePag.mainHasCnt=dataMap["1001"];
|
this.totalAvailablePag.mainHasCnt=dataMap["1001"];
|
||||||
this.totalAvailablePag.subHasCnt=dataMap["1002"];
|
this.totalAvailablePag.subHasCnt=dataMap["1002"];
|
||||||
@ -1061,29 +1077,41 @@ methods: {
|
|||||||
distinguishCancelAndClose: true,
|
distinguishCancelAndClose: true,
|
||||||
closeOnClickModal: false
|
closeOnClickModal: false
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
|
||||||
|
let printDataList=[]
|
||||||
// 打印主单,子单
|
// 打印主单,子单
|
||||||
let orderList=[];
|
let orderList=[];
|
||||||
// this.currentSelection.forEach(item=>{
|
|
||||||
// orderList.push(item.billCode);
|
|
||||||
// });
|
|
||||||
// 打印主单
|
|
||||||
orderList.push(this.form.billCode);
|
orderList.push(this.form.billCode);
|
||||||
let selPrinterName=this.tanexPrinter.getDefaultPrinter();
|
let mainBillItem ={
|
||||||
let selTplName="探路速运-主单联(通用)";
|
"tplCode":"TAN-GM-130",
|
||||||
this.tanexPrinter.batchPrint(selTplName,selPrinterName,orderList)
|
"printerName":this.$refs.tanexPrinter.getDefaultPrinter(),
|
||||||
|
"orderList":orderList.toString()
|
||||||
|
}
|
||||||
|
printDataList.push(mainBillItem);
|
||||||
|
|
||||||
// 打印子单
|
// 打印子单
|
||||||
selTplName="探路速运-子单联(通用)";
|
// tplCode="探路速运-子单联(通用)";
|
||||||
|
// tplCode="TAN-GC-130";
|
||||||
|
|
||||||
let childOrderList=[]
|
let childOrderList=[]
|
||||||
orderList=this.form.billCodeSub.split(',');
|
let subBillArr=this.form.billCodeSub.split(',');
|
||||||
orderList.forEach(item=>{
|
|
||||||
|
for(let i=0;i<subBillArr.length&&i<50;i++){
|
||||||
|
let item=subBillArr[i];
|
||||||
if(item!=null && item!=''){
|
if(item!=null && item!=''){
|
||||||
childOrderList.push(item);
|
childOrderList.push(item);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
this.tanexPrinter.batchPrint(selTplName,selPrinterName,childOrderList)
|
|
||||||
|
let subBillItem ={
|
||||||
|
"tplCode":"TAN-GC-130",
|
||||||
|
"printerName":this.$refs.tanexPrinter.getDefaultPrinter(),
|
||||||
|
"orderList":childOrderList.toString()
|
||||||
|
}
|
||||||
|
printDataList.push(subBillItem);
|
||||||
|
|
||||||
|
// 直接打印主子单
|
||||||
|
this.$refs.tanexPrinter.batchPrintAdv(printDataList)
|
||||||
|
|
||||||
|
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
@ -1108,34 +1136,45 @@ methods: {
|
|||||||
|
|
||||||
if(this.printerStatus == 1){
|
if(this.printerStatus == 1){
|
||||||
if(this.form.billCode){
|
if(this.form.billCode){
|
||||||
let pdfUrlList=[];
|
|
||||||
let selPrinterName=this.tanexPrinter.getDefaultPrinter();
|
let billCount=1;
|
||||||
let selTplName="探路速运-主单联(通用)";
|
|
||||||
let url=this.tanexPrinter.getPdfUrl(this.form.billCode,selTplName,selPrinterName);
|
let printDataList=[]
|
||||||
pdfUrlList.push(url)
|
// 打印主单,子单
|
||||||
// 子单url
|
let orderList=[];
|
||||||
if(this.form.billCodeSub){
|
orderList.push(this.form.billCode);
|
||||||
selTplName="探路速运-子单联(通用)";
|
let mainBillItem ={
|
||||||
let orderList=this.form.billCodeSub.split(',');
|
"tplCode":"TAN-GM-130",
|
||||||
orderList.forEach(item=>{
|
"printerName":this.$refs.tanexPrinter.getDefaultPrinter(),
|
||||||
if(item!=null && item!=''){
|
"orderList":orderList.toString()
|
||||||
let url=this.tanexPrinter.getPdfUrl(item,selTplName,selPrinterName);
|
}
|
||||||
pdfUrlList.push(url)
|
printDataList.push(mainBillItem);
|
||||||
}
|
|
||||||
});
|
// 打印子单
|
||||||
|
// tplCode="探路速运-子单联(通用)";
|
||||||
|
// tplCode="TAN-GC-130";
|
||||||
|
|
||||||
|
let childOrderList=[]
|
||||||
|
let subBillArr=this.form.billCodeSub.split(',');
|
||||||
|
|
||||||
|
for(let i=0;i<subBillArr.length&&i<7;i++){
|
||||||
|
let item=subBillArr[i];
|
||||||
|
if(item!=null && item!=''){
|
||||||
|
childOrderList.push(item);
|
||||||
|
billCount=billCount+1;
|
||||||
}
|
}
|
||||||
let pdfUtils=new PdfUtils({});
|
}
|
||||||
const loadingInstance = this.$loading({
|
|
||||||
text: '正在生成预览...'
|
let subBillItem ={
|
||||||
})
|
"tplCode":"TAN-GC-130",
|
||||||
pdfUtils.mergePdf2(pdfUrlList, (new Date()).getTime()+".pdf" )
|
"printerName":this.$refs.tanexPrinter.getDefaultPrinter(),
|
||||||
.then(url=>{
|
"orderList":childOrderList.toString()
|
||||||
loadingInstance.close();
|
}
|
||||||
this.pdfUrl=url;
|
printDataList.push(subBillItem);
|
||||||
this.openPdfView = true;
|
|
||||||
})
|
// 预览主子单
|
||||||
.catch(error => {
|
this.$refs.tanexPrinter.printPreviewAdv(printDataList,billCount)
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -1227,8 +1266,7 @@ methods: {
|
|||||||
initData() {
|
initData() {
|
||||||
this.reset();
|
this.reset();
|
||||||
|
|
||||||
// 获取可用运单数
|
|
||||||
this.initGetTotalAvailablePag();
|
|
||||||
|
|
||||||
if(this.billCode && this.billCode!=undefined) {
|
if(this.billCode && this.billCode!=undefined) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
@ -1247,6 +1285,8 @@ methods: {
|
|||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.form.sendDate = parseTime(new Date());
|
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;
|
||||||
@ -1269,6 +1309,9 @@ methods: {
|
|||||||
this.isNeedSave=true;
|
this.isNeedSave=true;
|
||||||
this.form.printTypeCheckList=[1,5],
|
this.form.printTypeCheckList=[1,5],
|
||||||
|
|
||||||
|
// 获取可用运单数
|
||||||
|
this.initGetTotalAvailablePag(this.form.sendSiteCode);
|
||||||
|
|
||||||
this.handleInitGenGoods();
|
this.handleInitGenGoods();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1395,6 +1438,11 @@ methods: {
|
|||||||
}
|
}
|
||||||
this.form.sendSiteCode=item.siteCode;
|
this.form.sendSiteCode=item.siteCode;
|
||||||
this.form.sendSiteName=item.siteName;
|
this.form.sendSiteName=item.siteName;
|
||||||
|
|
||||||
|
this.initGetTotalAvailablePag(this.form.sendSiteCode);
|
||||||
|
this.calcBillFee();
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
@ -1426,8 +1474,8 @@ methods: {
|
|||||||
realSaveOrderInfo(){
|
realSaveOrderInfo(){
|
||||||
|
|
||||||
// 调整包装类型为多选
|
// 调整包装类型为多选
|
||||||
if(this.form.packType){
|
if(this.form.packType&&this.form.packType.length>0){
|
||||||
this.form.packType=this.form.packType.join(",");
|
this.form.packType=this.form.packType.join(",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user