Commit c60c5e0b authored by dragondean@qq.com's avatar dragondean@qq.com

完善订单列表详情打印

parent cd5759cf
...@@ -22,7 +22,7 @@ export function updateOrder(data) { ...@@ -22,7 +22,7 @@ export function updateOrder(data) {
// 删除订单 // 删除订单
export function deleteOrder(id) { export function deleteOrder(id) {
return request({ return request({
url: '/ecw/order/delete?id=' + id, url: '/ecw/order/delete?orderId=' + id,
method: 'delete' method: 'delete'
}) })
} }
...@@ -139,7 +139,6 @@ export function orderWarehouseIn(data){ ...@@ -139,7 +139,6 @@ export function orderWarehouseIn(data){
} }
// 入仓完成 // 入仓完成
export function orderWarehouseInFinish(data){ export function orderWarehouseInFinish(data){
return request({ return request({
url: '/order/order-warehouse-in/finish', url: '/order/order-warehouse-in/finish',
...@@ -148,3 +147,19 @@ export function orderWarehouseInFinish(data){ ...@@ -148,3 +147,19 @@ export function orderWarehouseInFinish(data){
}) })
} }
//取消订单
export function cancelOrder(orderId){
return request({
url: `/ecw/order/cancel/${orderId}`,
method: 'put',
})
}
// 恢复订单
export function recoveryOrder(orderId){
return request({
url: `/ecw/order/recovery/${orderId}`,
method: 'put',
})
}
<template> <template>
<el-dialog :title="title" visible :before-close="closeDialog" width="1000px"> <el-dialog :title="title" visible :before-close="closeDialog" width="1000px">
<el-result sub-title="加载中" v-if="loading">
<i class="el-icon-loading" slot="icon" style="font-size: 40px" />
</el-result>
<pdf-viewer id="pdfViewer" ref="viewer" v-if="pdfData" :url="pdfData" style="display:block; margin: 0 auto; max-height: 80vh; overflow:auto;" /> <pdf-viewer id="pdfViewer" ref="viewer" v-if="pdfData" :url="pdfData" style="display:block; margin: 0 auto; max-height: 80vh; overflow:auto;" />
<p class="subs" style="text-align:center"> <p class="subs" style="text-align:center">
<el-button type="primary" @click="download" :disabled="!pdfData">下载</el-button> <el-button type="primary" @click="download" :disabled="!pdfData">下载</el-button>
...@@ -13,43 +16,37 @@ import {getLadingBill} from '@/api/ecw/order' ...@@ -13,43 +16,37 @@ import {getLadingBill} from '@/api/ecw/order'
import lodop from '@/utils/lodop' import lodop from '@/utils/lodop'
import PdfViewer from '@/components/PdfViewer' import PdfViewer from '@/components/PdfViewer'
import FileSaver from 'file-saver' import FileSaver from 'file-saver'
const GetBASE64 = (dataArray) => {
var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var strData = "";
for (var i = 0, ii = dataArray.length; i < ii; i += 3) {
if (isNaN(dataArray[i])) break;
var b1 = dataArray[i] & 0xFF, b2 = dataArray[i + 1] & 0xFF, b3 = dataArray[i + 2] & 0xFF;
var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);
var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;
var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;
strData += digits.substring(d1, d1 + 1) + digits.substring(d2, d2 + 1) + digits.substring(d3, d3 + 1) + digits.substring(d4, d4 + 1);
}
return strData;
}
window.GetBASE64 = GetBASE64
export default { export default {
components: {PdfViewer}, components: {PdfViewer},
filters: {parseTime}, filters: {parseTime},
props:{ props:{
orderId: [String, Number] transportType: Number,
tidanNO: [String, Number]
}, },
data(){ data(){
return { return {
show: false, show: false,
detail: null, /* detail: null,
preview: false, preview: false,
billLadingNo: 'TD20220717', billLadingNo: 'TD20220717',
type: 1, type: 1, */
pdfData: null pdfData: null,
loading: false
} }
}, },
computed:{ computed:{
title(){ title(){
let t = '提货单' let t = '提货单'
if(this.detail){ if(this.tidanNO){
t += '-' + this.detail.orderNo t += '-' + this.tidanNO
} }
return t return t
},
type(){
if(this.transportType <= 2) return 1
if(this.transportType == 3) return 3
if(this.transportType == 4) return 2
} }
}, },
created(){ created(){
...@@ -58,13 +55,17 @@ export default { ...@@ -58,13 +55,17 @@ export default {
}, },
methods:{ methods:{
loadData(){ loadData(){
this.loading = true
getLadingBill({ getLadingBill({
billLadingNo: this.billLadingNo, billLadingNo: this.tidanNo,
type: this.type type: this.type
}) })
.then(arrayBuffer => { .then(arrayBuffer => {
this.pdfData = arrayBuffer this.pdfData = arrayBuffer
}) })
.finally(() => {
this.loading = false
})
}, },
closeDialog(){ closeDialog(){
this.show = false this.show = false
...@@ -92,12 +93,9 @@ export default { ...@@ -92,12 +93,9 @@ export default {
LODOP.PREVIEW(); LODOP.PREVIEW();
// LODOP.ADD_PRINT_PDF(0,0,"100%","100%",data); // LODOP.ADD_PRINT_PDF(0,0,"100%","100%",data);
this.$alert('已发起打印任务');
// LODOP.PREVIEW(); // 预览 // LODOP.PREVIEW(); // 预览
/* LODOP.PRINTA(); // 选择打印机 /* LODOP.PRINTA(); // 选择打印机
// 直接打印 */ // 直接打印 */
console.log('打印哦')
}).catch(err => { }).catch(err => {
console.error('lodop异常', err) console.error('lodop异常', err)
alert('请检查LODOP打印控件是否安装并启动'); alert('请检查LODOP打印控件是否安装并启动');
......
...@@ -122,13 +122,16 @@ export default { ...@@ -122,13 +122,16 @@ export default {
LODOP.SET_PRINT_STYLE("FontSize",18); LODOP.SET_PRINT_STYLE("FontSize",18);
LODOP.SET_PRINT_STYLE("Bold",1); LODOP.SET_PRINT_STYLE("Bold",1);
// LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容"); // LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容");
LODOP.SET_PRINT_PAGESIZE(0, 800, 600, "TAG");
for(let i = this.form.start; i <= this.form.end; i ++){ for(let i = this.form.start; i <= this.form.end; i ++){
LODOP.ADD_PRINT_HTM(88,200,350,600, document.getElementById("order-print-tag").innerHTML); LODOP.ADD_PRINT_HTM(0,0,800,600, document.getElementById("order-print-tag").innerHTML);
LODOP.PRINT(); if(i < this.form.end){
LODOP.NewPage()
}
} }
this.$alert('已发起打印任务'); LODOP.PREVIEW();
// LODOP.PREVIEW(); // 预览 // // 预览
/* LODOP.PRINTA(); // 选择打印机 /* LODOP.PRINTA(); // 选择打印机
// 直接打印 */ // 直接打印 */
console.log('打印哦') console.log('打印哦')
......
This diff is collapsed.
...@@ -136,28 +136,54 @@ ...@@ -136,28 +136,54 @@
<el-table-column label="订单状态" align="center" prop="status"> <el-table-column label="订单状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.status | orderStatusFilter(orderStatusList) }}</span> <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <!--操作相关的-->
v-hasPermi="['ecw:order:update']">编辑</el-button> <el-popover
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/warehousing?id=' + scope.row.orderId)" style="margin-left: 10px;"
v-hasPermi="['ecw:order:update']">入仓</el-button> placement="bottom"
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" width="100"
v-hasPermi="['ecw:order:update']">退仓</el-button> trigger="hover">
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/special?id=' + scope.row.orderId)" <el-button type="text" slot="reference">操作</el-button>
<div style=" display:flex; flex-direction:column">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:order:update']">编辑</el-button>
<el-button v-if="[0, 88].indexOf(scope.row.status) > -1" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'deleteOrder')"
v-hasPermi="['ecw:order:delete']">删除</el-button>
<el-button v-if="scope.row.status < 5" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'cancelOrder')">取消订单</el-button>
<el-button v-if="scope.row.status == 88" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'recoveryOrder')">恢复订单</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/fee-application/${scope.row.orderId}`)">费用申请</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;isShow = true" >特需</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/associated-order/${scope.row.orderId}`)" >关联</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/mutex-order/${scope.row.orderId}`)" >互斥</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/special?id=' + scope.row.orderId)"
v-hasPermi="['ecw:order:update']">特价</el-button> v-hasPermi="['ecw:order:update']">特价</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" </div>
v-hasPermi="['ecw:order:delete']">删除</el-button>
</el-popover>
<el-button type="text" size="mini" @click="$router.push(`/order/fee-application/${scope.row.orderId}`)">费用申请</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;isShow = true" >特需</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/associated-order/${scope.row.orderId}`)" >关联</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/mutex-order/${scope.row.orderId}`)" >互斥</el-button>
<!--仓库相关的-->
<el-popover
style="margin-left: 10px;"
placement="bottom"
width="100"
trigger="hover">
<el-button type="text" slot="reference">仓库</el-button>
<div style=" display:flex; flex-direction:column">
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/warehousing?id=' + scope.row.orderId)"
v-hasPermi="['ecw:order:update']">入仓</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:order:update']">退仓</el-button>
</div>
</el-popover>
<!--打印相关的-->
<el-popover <el-popover
style="margin-left: 10px;" style="margin-left: 10px;"
placement="bottom" placement="bottom"
...@@ -166,7 +192,7 @@ ...@@ -166,7 +192,7 @@
<div style=" display:flex; flex-direction:column"> <div style=" display:flex; flex-direction:column">
<el-button size="mini" type="text" @click="printTagOrderId=scope.row.orderId">打印标签</el-button> <el-button size="mini" type="text" @click="printTagOrderId=scope.row.orderId">打印标签</el-button>
<el-button size="mini" type="text" @click="printWarehouseReceiptOrderId=scope.row.orderId">打印入仓单</el-button> <el-button size="mini" type="text" @click="printWarehouseReceiptOrderId=scope.row.orderId">打印入仓单</el-button>
<el-button size="mini" type="text" @click="printLadingBillOrderId=scope.row.orderId">打印提单</el-button> <el-button size="mini" type="text" @click="printLadingBillInfo={tidanNO: scope.row.tidanNo, transportType: scope.row.transportId}" :disabled="!scope.row.tidanNo">打印提单</el-button>
</div> </div>
<el-button type="text" slot="reference">打印</el-button> <el-button type="text" slot="reference">打印</el-button>
</el-popover> </el-popover>
...@@ -178,37 +204,6 @@ ...@@ -178,37 +204,6 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList" /> @pagination="getList" />
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="唛头" prop="marks">
<el-input v-model="form.marks" placeholder="请输入唛头" />
</el-form-item>
<el-form-item label="产品备案属性" prop="productRecord">
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="form.productRecord" clearable />
</el-form-item>
<el-form-item label="控货状态" prop="cargoControlStatus">
<dict-selector :type="DICT_TYPE.CONTROL_GOODS_STATUS" v-model="form.cargoControlStatus" clearable />
</el-form-item>
<el-form-item label="报关类别" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" clearable />
</el-form-item>
<el-form-item label="入仓箱数" prop="sumNum">
<el-input v-model="form.sumNum" placeholder="请输入入仓箱数" />
</el-form-item>
<el-form-item label="入仓方数" prop="sumVolume">
<el-input v-model="form.sumVolume" placeholder="请输入入仓方数" />
</el-form-item>
<el-form-item label="入仓重量" prop="sumWeight">
<el-input v-model="form.sumWeight" placeholder="请输入入仓重量" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<special-needs :show.sync="isShow":order-id="orderId" @determine="getList" ></special-needs> <special-needs :show.sync="isShow":order-id="orderId" @determine="getList" ></special-needs>
<!-- <el-dialog :title="'打印标签'" visible.sync="showPrintTag"> <!-- <el-dialog :title="'打印标签'" visible.sync="showPrintTag">
...@@ -216,7 +211,7 @@ ...@@ -216,7 +211,7 @@
</el-dialog> --> </el-dialog> -->
<print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" /> <print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" />
<print-warehouse-receipt v-if="printWarehouseReceiptOrderId !== null" :order-id="printWarehouseReceiptOrderId" @close="printWarehouseReceiptOrderId=null" /> <print-warehouse-receipt v-if="printWarehouseReceiptOrderId !== null" :order-id="printWarehouseReceiptOrderId" @close="printWarehouseReceiptOrderId=null" />
<print-lading-bill v-if="printLadingBillOrderId !== null" :order-id="printLadingBillOrderId" @close="printLadingBillOrderId=null" /> <print-lading-bill v-if="printLadingBillInfo !== null" v-bind="printLadingBillInfo" @close="printLadingBillInfo=null" />
</div> </div>
</template> </template>
...@@ -234,7 +229,9 @@ import { ...@@ -234,7 +229,9 @@ import {
getOrder, getOrder,
getOrderPage, getOrderPage,
exportOrderExcel, exportOrderExcel,
orderSpecialNeed orderSpecialNeed,
cancelOrder,
recoveryOrder
} from "@/api/ecw/order"; } from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict'; import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import PrintTag from './components/PrintTag' import PrintTag from './components/PrintTag'
...@@ -322,7 +319,7 @@ export default { ...@@ -322,7 +319,7 @@ export default {
printTagOrderId: null, // 显示打印标签的订单ID printTagOrderId: null, // 显示打印标签的订单ID
printWarehouseReceiptOrderId: null, // 打印入仓单的订单ID printWarehouseReceiptOrderId: null, // 打印入仓单的订单ID
printLadingBillOrderId: null, // 打印提单订单ID printLadingBillInfo: null, // 打印提单
isShow:false,//特殊显示 isShow:false,//特殊显示
orderId:undefined, orderId:undefined,
DICT_TYPE, DICT_TYPE,
...@@ -351,7 +348,33 @@ export default { ...@@ -351,7 +348,33 @@ export default {
getTradeCityList().then(res => this.tradeCityList = res.data) getTradeCityList().then(res => this.tradeCityList = res.data)
}, },
methods: { methods: {
oprateOrder(orderId, type){
let actions = {
cancelOrder: {
callable: cancelOrder,
confirm: '确定要取消此订单么?'
},
recoveryOrder: {
callable: recoveryOrder,
confirm: '确定要恢复此订单么?'
},
deleteOrder: {
callable: deleteOrder,
confirm: '确定要删除此订单么?'
}
}
let action = actions[type]
if(!action){
return this.$alert('不支持此操作')
}
this.$confirm(action.confirm)
.then(res => {
return action.callable(orderId)
})
.then(res => {
this.getList()
})
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
......
...@@ -307,7 +307,8 @@ export default { ...@@ -307,7 +307,8 @@ export default {
} }
let data = Object.assign({}, this.form, { let data = Object.assign({}, this.form, {
// lineChannelList: this.selectedRoutes, // lineChannelList: this.selectedRoutes,
specialList: this.specialProducts specialList: this.specialProducts,
isAllProduct: 0
}) })
// 修改的提交 // 修改的提交
...@@ -333,6 +334,7 @@ export default { ...@@ -333,6 +334,7 @@ export default {
if(data.lineChannelList.length < 1){ if(data.lineChannelList.length < 1){
return this.$message.error('请选择需要修改的路线') return this.$message.error('请选择需要修改的路线')
} }
data.productIdList = [this.form.productId]
batchUpdateProductPrice(data).then(response => { batchUpdateProductPrice(data).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.$router.replace('/product/product-price') this.$router.replace('/product/product-price')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment