Commit ffbd8b5c authored by 我在何方's avatar 我在何方

添加收款单UI

parent 583b15cb
...@@ -25,7 +25,13 @@ export function deleteOrderException(id) { ...@@ -25,7 +25,13 @@ export function deleteOrderException(id) {
method: 'delete' method: 'delete'
}) })
} }
// 获得订单异常
export function getExceptionById(id){
return request({
url: '/ecw/order-exception/getExceptionById?id=' + id,
method: 'get'
})
}
// 获得订单异常 // 获得订单异常
export function getOrderException(id) { export function getOrderException(id) {
return request({ return request({
...@@ -34,6 +40,14 @@ export function getOrderException(id) { ...@@ -34,6 +40,14 @@ export function getOrderException(id) {
}) })
} }
// 根据订单ID获取所有的订单异常列表
export function getExceptionListByOrderId(id) {
return request({
url: '/ecw/order-exception/getExceptionListByOrderId?orderId=' + id,
method: 'get'
})
}
// 获得订单异常分页 // 获得订单异常分页
export function getOrderExceptionPage(query) { export function getOrderExceptionPage(query) {
return request({ return request({
...@@ -52,3 +66,12 @@ export function exportOrderExceptionExcel(query) { ...@@ -52,3 +66,12 @@ export function exportOrderExceptionExcel(query) {
responseType: 'blob' responseType: 'blob'
}) })
} }
//根据异常ID进行异常处理
export function handlerExceptionByExceptionId(data){
return request({
url: '/ecw/order-exception/handlerExceptionByExceptionId',
method: 'post',
data: data
})
}
...@@ -140,6 +140,7 @@ export const DICT_TYPE = { ...@@ -140,6 +140,7 @@ export const DICT_TYPE = {
BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime',//订单日期筛选类别 BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime',//订单日期筛选类别
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型 ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态 ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
PAYMENT_TYPE:'payment_type',//收款类型
} }
......
const lodop = function(){
return new Promise((resolve, reject) => {
if(!window.getLodop){
var hm = document.createElement("script");
hm.src = "/static/LodopFuncs.js";
hm.onload = function(){
console.log('lodop.js已加载')
// 加载js文件后会自动链接ws,等一会再操作
setTimeout(res => {
resolve(getLodop())
}, 500)
}
hm.onerror = function(err){
reject(err)
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
}else resolve(getLodop())
})
}
export default lodop
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<div slot="header" class="card-title">新增收款单</div> <div v-if="id" slot="header" class="card-title">新增收款单</div>
<div v-else slot="header" class="card-title">新增收款单</div>
<el-form ref="form" :model="form" label-width="120px" label-position="left"> <el-form ref="form" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="3" border> <el-descriptions :column="3" border>
<el-descriptions-item label="客户" > <el-descriptions-item label="客户" >
...@@ -243,21 +244,22 @@ ...@@ -243,21 +244,22 @@
rows:20, rows:20,
}, },
multipleSelection:[], multipleSelection:[],
tradeCityList:[] tradeCityList:[],
id:0
} }
}, },
created() { created() {
let that = this let that = this
if(that.$route.query.receiptNo){ if(that.$route.query.id){
this.form.receiptNo = this.$route.query.receiptNo this.id = this.$route.query.id
}
if(that.$route.query.consignorId){
this.queryParams.consignorId = this.$route.query.consignorId
}
if(that.$route.query.writeOffName){
this.form.writeOffName = this.$route.query.writeOffName
} }
// if(that.$route.query.consignorId){
// this.queryParams.consignorId = this.$route.query.consignorId
// }
// if(that.$route.query.writeOffName){
// this.form.writeOffName = this.$route.query.writeOffName
// }
userList('salesman').then(res =>that.creatorData = res.data) userList('salesman').then(res =>that.creatorData = res.data)
getChannelList().then(res => that.channelList = res.data) getChannelList().then(res => that.channelList = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data) getTradeCityList().then(res => that.tradeCityList = res.data)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-card> <el-card>
<div slot="header" class="card-title">请款单</div> <div slot="header" class="card-title">请款单</div>
<el-form ref="form" :model="form" label-width="120px" label-position="left"> <el-form ref="form" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="3" border class="card"> <el-descriptions :column="3" class="card" border>
<el-descriptions-item label="供应商" > <el-descriptions-item label="供应商" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="supplierId" required error="供应商不能为空"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="supplierId" required error="供应商不能为空">
<customer-selector v-model="form.supplierId" @change="consignor = $event" /> <customer-selector v-model="form.supplierId" @change="consignor = $event" />
...@@ -18,32 +18,32 @@ ...@@ -18,32 +18,32 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="业务员" > <el-descriptions-item label="业务员" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="salesmanId" required error="客户不能为空"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="salesmanId" required error="客户不能为空">
<el-select v-model="form.salesmanId" placeholder="请选择业务员"> <el-select v-model="form.salesmanName" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/> <el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.nickname"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> <el-descriptions-item label="申请日期" >
<el-descriptions :column="2" border class="card"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consignorId" required error="申请日期不能为空">
<el-descriptions-item label="申请日期" > <el-date-picker clearable v-model="form.applicationAt" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择申请日期" />
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consignorId" required error="申请日期不能为空">
<el-date-picker clearable v-model="form.followUpTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择申请日期" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="供应商银行账号" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="consignorId" required error="请选择收款账户">
<el-select v-model="form.followUpSalesmanId" placeholder="请选择收款账户">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName+'('+item.baAccountNum+')'" :value="item.id"/>
</el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="供应商银行账号" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="consignorId" required error="请选择收款账户">
<el-select v-model="form.supplierId" placeholder="请选择收款账户">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName+'('+item.baAccountNum+')'" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="3" class="card" border>
<el-descriptions-item label="最后付款日期" > <el-descriptions-item label="最后付款日期" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="latestPayAt" required error="最后付款日期不能为空"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="latestPayAt" required error="最后付款日期不能为空">
<el-date-picker clearable v-model="form.latestPayAt" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择最后付款日期" /> <el-date-picker clearable v-model="form.latestPayAt" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择最后付款日期" />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="结算方式" > <el-descriptions-item label="结算方式" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="settlementType" required error="选择结算方式"> <el-form-item label="" label-width="0" style="margin-bottom: 0" required error="选择结算方式">
<dict-selector :type="DICT_TYPE.CUSTOMER_BALANCE" v-model="form.settlementType" /> <dict-selector :type="DICT_TYPE.CUSTOMER_BALANCE" v-model="form.settlementType" />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
...@@ -72,14 +72,14 @@ ...@@ -72,14 +72,14 @@
<el-table-column label="价格合计(RMB)" align="center" prop="payType" /> <el-table-column label="价格合计(RMB)" align="center" prop="payType" />
</el-table> </el-table>
<el-form ref="forms" :model="form" label-width="120px" label-position="left"> <el-form ref="forms" :model="form" label-width="120px" label-position="left" style="width: 50%;">
<el-descriptions :column="1" border class="card"> <el-descriptions :column="1" class="card" border>
<el-descriptions-item label="账单号" style="width: 50%;"> <el-descriptions-item label="账单号">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="paymentNo" required error="账单号不能为空"> <el-form-item label="" label-width="0" style="margin-bottom: 0;" required error="账单号不能为空">
<el-input v-model="form.paymentNo" placeholder="请输入账单号"></el-input> <el-input v-model="form.accountNumber" placeholder="请输入账单号"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="发票" style="width: 50%;"> <el-descriptions-item label="发票">
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="invoiceStatus" required error="请选择是否开票"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="invoiceStatus" required error="请选择是否开票">
<el-select v-model="form.invoiceStatus" placeholder="请选择是否开票"> <el-select v-model="form.invoiceStatus" placeholder="请选择是否开票">
<el-option label="未开票" value="0"/> <el-option label="未开票" value="0"/>
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-col> </el-col>
<el-table v-loading="loadings" :data="orderData" border @selection-change="handleSelectionChange">> <el-table v-loading="loadings" :data="orderData" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"> <el-table-column type="selection" width="55">
</el-table-column> </el-table-column>
<el-table-column label="自编号" align="center" prop="orderNo" /> <el-table-column label="自编号" align="center" prop="orderNo" />
......
<template>
<div class="app-container">
<div slot="header" class="card-title">开票</div>
<!-- 搜索工作栏 -->
<el-card class="card">
<el-form ref="queryForm" size="small" :inline="true" label-width="100px" class="card">
<el-form-item label="发票号码:" >
{{invoiceData.sn}}
</el-form-item>
<el-form-item label="开票类型:" >
<dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="invoiceData.invoicingTypeId" />
</el-form-item>
</el-form>
</el-card>
<el-card class="card">
<div slot="header" class="card-title">开票资料</div>
<el-table v-loading="loading" :data="invoiceData.info" border class="card">
<el-table-column label="发票抬头" align="center" prop="taxpayer" />
<el-table-column label="纳税人识别号" align="center" prop="taxpayer" />
<el-table-column label="地址" align="center" prop="orderNo" />
<el-table-column label="开户行" align="center" prop="customerName" />
<el-table-column label="税率" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.taxRate" type="number" min="0"></el-input>
</template>
</el-table-column>
<el-table-column label="项目" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.projectName" type="text"></el-input>
</template>
</el-table-column>
</el-table>
</el-card>
<el-card class="card">
<el-table v-loading="loading" :data="invoiceData.list" border class="card" show-summary :summary-method="getSummaries">
<el-table-column label="订单号" align="center" prop="orderSn" />
<el-table-column label="品名" align="center" prop="prodName" />
<el-table-column label="箱数" align="center" prop="num" />
<el-table-column label="体积/重量" align="center">
<template slot-scope="scope">
<span>{{scope.row.volume+"m³/"+scope.row.weight+"kg"}}</span>
</template>
</el-table-column>
<el-table-column label="费用类型" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="单价" align="center" prop="num" />
<el-table-column label="金额" align="center" prop="num" />
<el-table-column label="税额" align="center" prop="num" />
<el-table-column label="价税合计" align="center" prop="num" />
<div slot="append" class="lastRow">
<div>收款人</div>
<div>111</div>
<div>核销人</div>
<div>222</div>
<div>开票人</div>
<div>333</div>
<div></div>
<div>价税合计大写</div>
<div>444</div>
</div>
</el-table>
</el-card>
<el-descriptions class="card" style="width: 50%;">
<el-descriptions-item label="备注" >
<el-input v-model="invoiceData.remarks" type="text" placeholder="" clearable></el-input>
</el-descriptions-item>
</el-descriptions>
<div slot="footer" class="card">
<el-button type="primary" @click="submitForm">确定</el-button>
</div>
</div>
</template>
<script>
import {DICT_TYPE} from '@/utils/dict'
export default {
name: "OpenInvoice",
components: {
},
data() {
return {
loading: false,
invoiceData:{},
}
},
created() {
let that = this
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 处理查询参数
getReceiptPage().then(response => {
this.invoiceData = response.data;
if(!this.invoiceData.info||this.invoiceData.info.length==0){
this.$modal.msgError("客户开票资料不能为空,请完善客户开票信息");
}
this.loading = false;
});
},
submitForm(){
this.open = false;
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总价';
return;
}else if(index<6){
sums[index] = 'N/A';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += '';
} else {
sums[index] = 'N/A';
}
});
return sums;
}
},
}
</script>
<style>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
height: 160px;
}
.card-title{
font-size: 18px;
font-weight: bold;
}
.lastRow{
border-top:1px solid #dfe6ec;
display: flex;
width: 100%;
height: 44px;
text-align: center;
align-items: center;
}
.lastRow div{
flex:1;
height: 44px;
line-height: 44px;
border-right:1px solid #dfe6ec;
}
</style>
...@@ -11,27 +11,38 @@ ...@@ -11,27 +11,38 @@
<el-form-item label="自编号:" > <el-form-item label="自编号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery"/> <el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="订单号:" > <!-- <el-form-item label="订单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/> <el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> -->
<el-form-item label="始发城市:">
<el-select v-model="queryParams.departureId" placeholder="请选择始发城市">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的城市:">
<el-select v-model="queryParams.objectiveId" placeholder="请选择目的城市">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="运输方式:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item>
</el-row> </el-row>
<el-row>
<el-form-item label="付款单号:" > <!-- <el-form-item label="付款单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入付款单号" clearable @keyup.enter.native="handleQuery"/> <el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入付款单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item> -->
<el-form-item label="供应商名称:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入供应商名称" clearable @keyup.enter.native="handleQuery"/> <!-- <el-form-item label="状态:">
</el-form-item>
<el-form-item label="状态:">
<dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="queryParams.control" /> <dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="queryParams.control" />
</el-form-item> </el-form-item>
<el-form-item label="业务员:"> <el-form-item label="业务员:">
<el-select v-model="form.salesmanId" placeholder="请选择业务员"> <el-select v-model="form.salesmanId" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/> <el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
</el-row>
<el-row> <!-- <el-row>
<el-form-item label="收款时间:" > <el-form-item label="收款时间:" >
<el-date-picker <el-date-picker
v-model="dateType" v-model="dateType"
...@@ -41,10 +52,13 @@ ...@@ -41,10 +52,13 @@
end-placeholder="请选择日期"> end-placeholder="请选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-row> </el-row> -->
<el-row> <el-row>
<el-form-item label="商品名称:" > <!-- <el-form-item label="商品名称:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入商品名称" clearable @keyup.enter.native="handleQuery"/> <el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入商品名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> -->
<el-form-item label="供应商名称:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入供应商名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="费用类型:" > <el-form-item label="费用类型:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector>
...@@ -57,6 +71,7 @@ ...@@ -57,6 +71,7 @@
</el-form> </el-form>
</el-card> </el-card>
<el-table v-loading="loadings" :data="list" border class="card"> <el-table v-loading="loadings" :data="list" border class="card">
<el-table-column label="自编号" align="center" prop="orderNo" />
<el-table-column label="货柜号" align="center" prop="orderNo" /> <el-table-column label="货柜号" align="center" prop="orderNo" />
<el-table-column label="供应商" align="center" prop="orderNo" /> <el-table-column label="供应商" align="center" prop="orderNo" />
<el-table-column label="费用类型" align="center" prop="feeType"> <el-table-column label="费用类型" align="center" prop="feeType">
...@@ -64,9 +79,9 @@ ...@@ -64,9 +79,9 @@
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="总金额美元" align="center" prop="totalAmount" /> <el-table-column label="金额" align="center" prop="totalAmount" />
<el-table-column label="创建时间" align="center" prop="channelName" /> <!-- <el-table-column label="创建时间" align="center" prop="channelName" />
<el-table-column label="创建人" align="center" prop="toDepartureId" /> <el-table-column label="创建人" align="center" prop="toDepartureId" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="success" @click="open=true">编辑</el-button> <el-button size="mini" type="success" @click="open=true">编辑</el-button>
...@@ -99,8 +114,8 @@ ...@@ -99,8 +114,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="cancel">取 消</el-button> <el-button plain @click="cancel">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
...@@ -109,9 +124,8 @@ ...@@ -109,9 +124,8 @@
<script> <script>
import { userList } from "@/api/system/user" import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
import { getBankAccountPage } from "@/api/ecw/bankAccount" import {getTradeCityList} from '@/api/ecw/region'
import { listSimpleDepts } from "@/api/system/dept"
import {getTradeCityList} from '@/api/ecw/region'
export default { export default {
name: "Payable", name: "Payable",
components: { components: {
...@@ -122,6 +136,7 @@ ...@@ -122,6 +136,7 @@
open:false, open:false,
showSearch:true, showSearch:true,
loadings: false, loadings: false,
tradeCityList:[],
form:{}, form:{},
creatorData:[], creatorData:[],
list:[], list:[],
...@@ -138,9 +153,18 @@ ...@@ -138,9 +153,18 @@
}, },
} }
}, },
computed:{
expoerCityList(){
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
},
},
created() { created() {
let that = this let that = this
userList('salesman').then(res =>that.creatorData = res.data) userList('salesman').then(res =>that.creatorData = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data)
}, },
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
......
<template>
<div class="app-container" >
<div id="print" class="card">
<div class="card-title">收款单</div>
<div class="card">
<el-descriptions :column="2">
<el-descriptions-item label="部门" >
{{form?form.departmentName:''}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="2">
<el-descriptions-item label="收款单号">
{{form?form.receiptNo:''}}
</el-descriptions-item>
<el-descriptions-item label="收款日期">
{{form?form.payedAt:''}}
</el-descriptions-item>
<el-descriptions-item label="客户名称">
{{form?form.customerName:''}}
</el-descriptions-item>
<el-descriptions-item label="收款户名" >
{{form?form.platformAccount:''}}
</el-descriptions-item>
<el-descriptions-item label="银行名称">
{{form?form.accountBank:''}}
</el-descriptions-item>
<el-descriptions-item label="银行账号" >
{{form?form.salesmanName:''}}
</el-descriptions-item>
<el-descriptions-item label="水单号">
{{form?form.customerName:''}}
</el-descriptions-item>
<el-descriptions-item label="手续费" >
{{form?form.salesmanName:''}}
</el-descriptions-item>
<el-descriptions-item label="备注" >
{{form?form.remark:''}}
</el-descriptions-item>
</el-descriptions>
</div>
<el-table v-loading="loadings" :data="list" border class="card" :header-cell-style="{background:'#fff'}">
<el-table-column label="序号" align="center" min-width="80">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column min-width="120" label="订单号" align="center" prop="orderNo" />
<el-table-column label="收入类型" align="center" min-width="180">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="scope.row.paymentType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="品名" align="center" prop="orderNo" min-width="220" />
<el-table-column label="汇率" align="center" prop="totalAmount" min-width="80" />
<el-table-column label="总金额" align="center" prop="toDepartureId" min-width="120" />
<el-table-column label="实收金额" align="center" prop="toDepartureId" min-width="200"/>
<div slot="append" class="lastRow">
<div style="min-width: 200px;width: 20%;">合计(大写)</div>
<div style="min-width: 400px;width: 40%;">111</div>
<div style="min-width: 200px;width: 20%;">价税合计</div>
<div style="min-width: 200px;width: 20%;">444</div>
</div>
</el-table>
<div class="card">
<el-descriptions :column="4">
<el-descriptions-item label="主管">
</el-descriptions-item>
<el-descriptions-item label="会计" >
</el-descriptions-item>
<el-descriptions-item label="出纳">
</el-descriptions-item>
<el-descriptions-item label="经手人" >
</el-descriptions-item>
</el-descriptions>
</div>
</div>
<div slot="footer" class="card">
<el-button type="primary" @click="print">确订打印</el-button>
</div>
</div>
</template>
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import CustomerSelector from '@/components/CustomerSelector'
import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept"
import { getReceipt} from "@/api/ecw/receipt";
import lodop from '@/utils/lodop'
export default {
name: "PrintVoucher",
components: {
CustomerSelector
},
data() {
return {
loadings: false,
form:{},
title:'收款单',
creatorData:[],
list:[],
fileList:[],
bankData:[],
params:{
page:1,
rows:20,
},
deptData:[],
deptArr:[],
id:0
}
},
created() {
let that = this
if(that.$route.query.id){
that.id = that.$route.query.id
that.getCollectionData()
}
userList('salesman').then(res =>that.creatorData = res.data)
getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
listSimpleDepts().then(res =>{
res.data.forEach((item)=>{
if(item.parentId==0){
that.deptArr.push(item)
}else{
that.deptData.push(item)
}
})
that.deptData.forEach((value)=>{
var dept = that.deptArr.filter(itt=>itt.id==value.parentId)
if(dept.length>0){
value.name =dept[0].name+' | '+ value.name
}
})
})
},
methods: {
getCollectionData(){
let that = this
getReceipt({id:that.id}).then(res =>{
that.form = res.data
})
},
print(){
lodop().then(LODOP => {
LODOP.PRINT_INIT(this.title);
LODOP.SET_PRINT_STYLE("FontSize",18);
LODOP.SET_PRINT_STYLE("Bold",1);
// LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容");
LODOP.ADD_PRINT_HTM("10mm", "10mm", "RightMargin:10mm", "BottomMargin:10mm", document.getElementById("print").innerHTML);
LODOP.PRINT();
// this.$alert('已发起打印任务');
// LODOP.PREVIEW(); // 预览
/* LODOP.PRINTA(); // 选择打印机
// 直接打印 */
console.log('打印哦')
}).catch(err => {
console.error('lodop异常', err)
alert('请检查LODOP打印控件是否安装并启动');
})
}
},
}
</script>
<style scoped>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 40px;
}
.card-title{
font-size: 18px;
font-weight: bold;
text-align: center;
}
.header{
display: flex;
align-items: center;
justify-content: space-between;
}
.lastRow{
border-top:1px solid #dfe6ec;
display: flex;
width: 100%;
height: 44px;
text-align: center;
align-items: center;
}
.lastRow div{
height: 44px;
line-height: 44px;
border-right:1px solid #dfe6ec;
}
</style>
<template>
<div class="app-container">
<div slot="header" class="card-title">收款单</div>
<!-- 搜索工作栏 -->
<el-card v-show="showSearch" class="card">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px" class="card">
<el-row :span="24">
<el-form-item label="收款单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.receiptNo" placeholder="请输入收款单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="客户名称:" >
<customer-selector v-model="queryParams.customerId" @change="consignor = $event" />
</el-form-item>
<el-form-item label="状态:" >
<dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="queryParams.state" />
</el-form-item>
<el-form-item label="业务员:">
<el-select v-model="queryParams.salesmanId" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select>
</el-form-item>
</el-row>
<el-row :span="24">
<el-col style="width: 592px;">
<el-form-item label="创建时间:" >
<el-date-picker
v-model="queryParams.beginCreateTime"
type="datetimerange"
range-separator="到"
start-placeholder="请选择日期"
end-placeholder="请选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-form-item label="自编号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="订单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
</el-row>
<el-row :span="24">
<el-form-item label="商品名称:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入商品名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="费用类型:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector>
</el-form-item>
<el-form-item label="收款类型:" >
<dict-selector :type="DICT_TYPE.PAYMENT_TYPE" v-model="queryParams.paymentType"></dict-selector>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery">查找</el-button>
</el-form-item>
</el-row>
</el-form>
</el-card>
<el-table v-loading="loadings" :data="list" border class="card">
<el-table-column label="序号" align="center" prop="id" type="index">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="收款单号" align="center" prop="receiptNo" />
<el-table-column label="自编号" align="center" prop="orderNo" />
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="客户名称" align="center" prop="customerName" />
<el-table-column label="金额" align="center" prop="totalAmount" />
<el-table-column label="币种" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" :value="scope.row.currencyId" />
</template>
</el-table-column>
<el-table-column label="汇率" align="center" prop="totalAmount" />
<el-table-column label="实收日期" align="center" prop="channelName" />
<el-table-column label="业务员" align="center" prop="toDepartureId" />
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="scope.row.state" />
</template>
</el-table-column>
<el-table-column label="是否开票" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isCargoControl" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="primary">核销</el-button>
<el-button size="mini" type="primary">反核销</el-button>
<el-button size="mini" type="primary">开票</el-button>
<el-button size="mini" @click="handleAdd(scope.row.id)">编辑</el-button>
<el-button size="mini" type="danger">删除</el-button>
<el-button size="mini" type="primary">打印</el-button>
<el-button size="mini" type="success" @click="open=true">导出订单</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows"
@pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<el-dialog title="费用登记" :visible.sync="open" width="500px" style="margin-top: 20vh !important;" append-to-body>
<div slot="header" class="card-title" style='border-bottom: 2px solid #f8f8f8;'>
<span>导出账单</span>
<i class="el-icon-close" @click="cancel"></i>
</div>
<div class="dialog-footer">
<el-button type="primary" style="width: 130px;" @click="submitForm">国内账单</el-button>
<el-button plain type="primary" style="width: 130px;margin: 0;" @click="submitForm">Debite note</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import CustomerSelector from '@/components/CustomerSelector'
export default {
name: "Voucher",
components: {
CustomerSelector
},
data() {
return {
open:false,
showSearch:true,
loadings: false,
form:{},
creatorData:[],
list:[],
total:0,
dateType:[],
loading:'',
params:{
page:1,
rows:20,
},
// 查询参数
queryParams: {
page: 1,
rows: 10,
dateType:null,
date:null,
originId:null,
destinationId:null,
transportId:null,
isCargoControl:null,
orderExceptionStatus:null,
orderExceptionType:null,
orderNo:null,
consignorId:null,
marks:null,
prodId:null,
productRecord:null,
followUpSalesmanId:null
},
}
},
created() {
let that = this
userList('salesman').then(res =>that.creatorData = res.data)
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行查询
getReceiptPage(params).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
// this.getList();
},
/** 新增按钮操作 */
handleAdd(id) {
return this.$router.push('creatCollection?id='+id)
},
submitForm(){
this.open = false;
},
/** 取消按钮 */
cancel() {
this.open = false;
},
},
}
</script>
<style>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
height: 160px;
}
.card-title{
font-size: 18px;
font-weight: bold;
}
</style>
...@@ -204,7 +204,7 @@ ...@@ -204,7 +204,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card class="card"> <el-card class="card" :column="4">
<div slot="header" class="card-title">通用信息</div> <div slot="header" class="card-title">通用信息</div>
<el-descriptions > <el-descriptions >
<el-descriptions-item label="唛头1"> <el-descriptions-item label="唛头1">
...@@ -214,7 +214,7 @@ ...@@ -214,7 +214,7 @@
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="list.customsType"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="list.customsType"></dict-tag>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="4"> <el-descriptions :column="4">
<el-descriptions-item label="预计结束时间"> <el-descriptions-item label="预计结束时间">
{{list.stopTime}} {{list.stopTime}}
</el-descriptions-item> </el-descriptions-item>
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
<el-rate v-model="list.importance"></el-rate> <el-rate v-model="list.importance"></el-rate>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions > <el-descriptions :column="4">
<el-descriptions-item label="价格有效期"> <el-descriptions-item label="价格有效期">
{{list.startTime}} 至 {{list.endTime}} {{list.startTime}} 至 {{list.endTime}}
</el-descriptions-item> </el-descriptions-item>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-row> <el-row>
<el-form-item > <el-form-item >
<el-select v-model="queryParams.beginCreateTime" style="width: 172px;"> <el-select v-model="queryParams.dateType" style="width: 172px;">
<el-option label="入仓时间" value="0"/> <el-option label="入仓时间" value="0"/>
<el-option label="处理时间" value="1"/> <el-option label="处理时间" value="1"/>
</el-select> </el-select>
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="始发地:"> <el-form-item label="始发地:">
<el-select v-model="queryParams.startWarehouseId" placeholder="请选择始发地"> <el-select v-model="queryParams.originId" placeholder="请选择始发地">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="目的地:" > <el-form-item label="目的地:" >
<el-select v-model="queryParams.destWarehouseId" placeholder="请选择目的地"> <el-select v-model="queryParams.destinationId" placeholder="请选择目的地">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id" ></el-option> <el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id" ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -33,27 +33,27 @@ ...@@ -33,27 +33,27 @@
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="控货:"> <el-form-item label="控货:">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.ECW_YESNO" v-model="queryParams.isCargoControl" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="异常状态:"> <el-form-item label="异常状态:">
<dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="异常类型" prop="orderExceptionType"> <el-form-item label="异常类型">
<dict-selector :type="DICT_TYPE.ORDER_ERROR_TYPE" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.ORDER_ERROR_TYPE" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="订单号" prop="orderNumber"> <el-form-item label="订单号">
<el-input v-model="queryParams.orderNumber" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.orderNo" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="发货人:" prop="consignorId"> <el-form-item label="发货人:">
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" /> <customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
</el-form-item> </el-form-item>
<el-form-item label="唛头:" prop="marks"> <el-form-item label="唛头:">
<el-input v-model="queryParams.marks" placeholder="请输入唛头" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.marks" placeholder="请输入唛头" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="品名:" prop="orderExceptionAmount"> <el-form-item label="品名:" prop="prodId">
<el-input v-model="queryParams.orderExceptionAmount" placeholder="请输入品名" clearable @keyup.enter.native="handleQuery"/> <product-selector v-model="queryParams.prodId" @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="备案:"> <el-form-item label="备案:">
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/>
...@@ -67,6 +67,7 @@ ...@@ -67,6 +67,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="reset">重置</el-button>
</el-form-item> </el-form-item>
</el-row> </el-row>
</el-form> </el-form>
...@@ -84,32 +85,36 @@ ...@@ -84,32 +85,36 @@
<span>{{scope.$index + 1}}</span> <span>{{scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单号" align="center" prop="orderNumber" /> <el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="唛头" align="center" prop="marks" /> <el-table-column label="唛头" align="center" >
<template slot-scope="scope">
<span>{{scope.row.marks||''}}</span>
</template>
</el-table-column>
<el-table-column label="总箱数/入仓箱数" align="center" > <el-table-column label="总箱数/入仓箱数" align="center" >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.sumNum+'/'+scope.row.sumNum}}</span> <span>{{scope.row.totalBox+'箱/'+scope.row.warehousingBox+""}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="体积/重量" align="center"> <el-table-column label="体积/重量" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.sumVolume+"/"+scope.row.sumWeight}}</span> <span>{{scope.row.volume+"m³/"+scope.row.weight+"kg"}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="运输方式/目的地" align="center"> <el-table-column label="运输方式/目的地" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag> <span><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
{{'/'+importCityName(scope.row.logisticsInfoDto.destWarehouseId)}}</span> {{'/'+scope.row.destinationZh}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="控货" align="center"> <el-table-column label="控货" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.control" /> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isCargoControl" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="订单状态" align="center" prop="orderExceptionAmount" > <el-table-column label="订单状态" align="center" prop="orderExceptionAmount" >
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.orderStatus" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="异常状态" align="center"> <el-table-column label="异常状态" align="center">
...@@ -119,18 +124,18 @@ ...@@ -119,18 +124,18 @@
</el-table-column> </el-table-column>
<el-table-column label="异常类型" align="center"> <el-table-column label="异常类型" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionType" /> <dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="scope.row.orderExceptionType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" >处理</el-button> <el-button v-if="scope.row.orderExceptionStatus<2" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">处理</el-button>
<el-button size="mini" type="text" icon="el-icon-share">查看</el-button> <el-button size="mini" type="text" icon="el-icon-share" @click="handEdit(scope.row.orderId)">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<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.page" :limit.sync="queryParams.rows"
@pagination="getList"/> @pagination="getList"/>
</div> </div>
</template> </template>
...@@ -141,11 +146,12 @@ import {getTradeCityList} from '@/api/ecw/region' ...@@ -141,11 +146,12 @@ import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
import { userList } from "@/api/system/user" import { userList } from "@/api/system/user"
import CustomerSelector from '@/components/CustomerSelector' import CustomerSelector from '@/components/CustomerSelector'
import ProductSelector from '@/components/ProductSelector'
export default { export default {
name: "Exception", name: "Exception",
components: { components: {
CustomerSelector CustomerSelector,ProductSelector
}, },
data() { data() {
return { return {
...@@ -161,15 +167,22 @@ export default { ...@@ -161,15 +167,22 @@ export default {
creatorData:[], creatorData:[],
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNo: 1, page: 1,
pageSize: 10, rows: 10,
orderId: null, dateType:null,
orderNumber: null, date:null,
orderExceptionType: null, originId:null,
orderExceptionRemark: null, destinationId:null,
orderExceptionAmount: null, transportId:null,
orderExceptionAttr: null, isCargoControl:null,
orderExceptionStatus: null, orderExceptionStatus:null,
orderExceptionType:null,
orderNo:null,
consignorId:null,
marks:null,
prodId:null,
productRecord:null,
followUpSalesmanId:null
}, },
tradeCityList:[], tradeCityList:[],
}; };
...@@ -200,19 +213,41 @@ export default { ...@@ -200,19 +213,41 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
/** 表单重置 */
reset() {
this.queryParams = {
page: 1,
rows: 10,
dateType:undefined,
date:undefined,
originId:undefined,
destinationId:undefined,
transportId:undefined,
isCargoControl:undefined,
orderExceptionStatus:undefined,
orderExceptionType:undefined,
orderNo:undefined,
consignorId:undefined,
marks:undefined,
prodId:undefined,
productRecord:undefined,
followUpSalesmanId:undefined
};
this.resetForm("queryForm");
},
importCityName(id){ importCityName(id){
return this.tradeCityList.filter(item => item.id == id) return this.tradeCityList.filter(item => item.id == id)
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNo = 1; this.queryParams.page = 1;
this.getList(); this.getList();
}, },
/** 重置按钮操作 */ handEdit(id){
resetQuery() { this.$router.push({
this.dateRangeCreateTime = []; path:"./pending?id="+id,
this.handleQuery(); })
}, }
} }
} }
</script> </script>
...@@ -2,28 +2,28 @@ ...@@ -2,28 +2,28 @@
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-card> <el-card>
<div slot="header" class="card-title">报价单详情</div> <div slot="header" class="card-title">查看</div>
<el-descriptions :column="4"> <el-descriptions :column="4">
<el-descriptions-item label="唛头"> <el-descriptions-item label="唛头">
{{orderData.marks?orderData.marks:''}} {{orderData.marks?orderData.marks:''}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数"> <el-descriptions-item label="已到箱数/总箱数">
{{orderData.sumNum?orderData.sumNum:0+'/'+orderData.sumNum?orderData.sumNum:0}} {{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.num:0}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="订单状态"> <el-descriptions-item label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" /> <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="送货日期"> <el-descriptions-item label="送货日期">
{{orderData.date?orderData.date:''}} <span v-if="orderData">{{orderData.status>=5?(orderData.orderItemVOList.length>0?orderData.orderItemVOList[0].warehouseInInfoVO.inTime:''):(orderData.consigneeVO?orderData.consigneeVO.deliveryDate:'')}}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="始发地"> <el-descriptions-item label="始发地">
{{importCityName(orderData.startWarehouseId)}} {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:''}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="目的地"> <el-descriptions-item label="目的地">
{{importCityName(orderData.startWarehouseId)}} {{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destTitleZh:''}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="4"> <el-descriptions :column="4">
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</el-table-column> </el-table-column>
<el-table-column label="异常类型" align="center" > <el-table-column label="异常类型" align="center" >
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionType" /> <dict-tag :type="DICT_TYPE.ORDER_ERROR_TYPE" :value="scope.row.orderExceptionType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="异常描述" align="center"> <el-table-column label="异常描述" align="center">
...@@ -83,21 +83,19 @@ ...@@ -83,21 +83,19 @@
<el-table-column label="处理时间" align="center" prop='orderExceptionTime' /> <el-table-column label="处理时间" align="center" prop='orderExceptionTime' />
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" >处理</el-button> <el-button size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.id,scope.row.orderExceptionType)">处理</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</el-card> </el-card>
</div> </div>
</template> </template>
<script> <script>
import {getOrderExceptionPage} from "@/api/ecw/orderException" import {getExceptionListByOrderId} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region' import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order'
export default { export default {
name: "Pending", name: "Pending",
...@@ -108,23 +106,21 @@ export default { ...@@ -108,23 +106,21 @@ export default {
return { return {
// 遮罩层 // 遮罩层
loading: false, loading: false,
// 总条数
total: 0,
// 显示搜索条件 // 显示搜索条件
showSearch: true, showSearch: true,
orderData:{}, orderData:{},
// 订单异常列表 // 订单异常列表
list: [], list: [],
tradeCityList:[], tradeCityList:[],
queryParams: { orderId:0
page: 1,
rows: 10,
orderExceptionStatus: 0,
},
}; };
}, },
created() { created() {
this.getList(); if(this.$route.query.id){
this.orderId = this.$route.query.id
this.getList()
this.getOrders()
}
getTradeCityList().then(res => this.tradeCityList = res.data) getTradeCityList().then(res => this.tradeCityList = res.data)
}, },
methods: { methods: {
...@@ -132,17 +128,28 @@ export default { ...@@ -132,17 +128,28 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
// 执行查询 // 执行查询
getOrderExceptionPage(this.queryParams).then(response => { getExceptionListByOrderId(this.orderId).then(response => {
this.list = response.data.list; this.list = response.data;
this.total = response.data.total;
this.orderData = response.data
this.loading = false; this.loading = false;
}); });
}, },
getOrders(){
getOrder(this.orderId).then(response => {
this.orderData = response.data
});
},
importCityName(id){ importCityName(id){
var arr = this.tradeCityList.filter(item => item.id == id) var arr = this.tradeCityList.filter(item => item.id == id)
return arr.length>0?arr[0].titleZh:'' return arr.length>0?arr[0].titleZh:''
}, },
handEdit(id, type){
// if(type == 3){
this.$router.push({
path:"/order/prepayDeal?id="+id,
})
// }
}
} }
} }
</script> </script>
...@@ -150,7 +157,7 @@ export default { ...@@ -150,7 +157,7 @@ export default {
.card-title{ .card-title{
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
margin-top: 10px; margin-top: 10px;
} }
.card{ .card{
margin-top: 20px; margin-top: 20px;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<div slot="header" class="header"> <div slot="header" class="header">
<div class="card-title">新增收款单</div> <div class="card-title">查看</div>
<el-button type="primary" icon="el-icon-arrow-left" @click="$router.back()">返回</el-button> <el-button type="primary" icon="el-icon-arrow-left" @click="$router.back()">返回</el-button>
</div> </div>
<el-form :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card"> <el-form :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card">
...@@ -23,27 +23,28 @@ ...@@ -23,27 +23,28 @@
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="运输路线:" > <el-form-item label="运输路线:" >
{{orderData?getRouterNameById(orderData.customerName):''}} <span v-if="orderData"><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /></span>
{{orderData?getRouterNameById(orderData.lineId):''}}
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="填单参数:"> <el-form-item label="填单参数:">
{{orderData.totalMoney}} {{(orderData.sumNum||0)+''+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg'}}
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="入仓参数:"> <el-form-item label="入仓参数:">
{{orderData.totalMoney}} {{(orderData.sumNum||0)+''+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg'}}
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row :span="12"> <el-row :span="12">
<el-form-item label="异常描述:"> <el-form-item label="异常描述:">
{{orderData.totalMoney}} {{orderData.totalMoney||''}}
</el-form-item> </el-form-item>
<el-button type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button> <el-button type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
</el-row> </el-row>
</el-form> </el-form>
<el-table v-loading="loading" border :data="list" @selection-change="handleSelectionChange"> <el-table v-loading="loading" border :data="orderData.orderItemVOList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"> <el-table-column type="selection" width="55">
</el-table-column> </el-table-column>
<el-table-column label="品名" align="center" prop="goodsType"> <el-table-column label="品名" align="center" prop="goodsType">
...@@ -52,7 +53,7 @@ ...@@ -52,7 +53,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="箱数" prop="num" /> <el-table-column label="箱数" prop="num" />
<el-table-column label="体积/重量"prop="volume"> <el-table-column label="体积/重量">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.volume+'/'+scope.row.weight}} {{scope.row.volume+'/'+scope.row.weight}}
</template> </template>
...@@ -71,7 +72,11 @@ ...@@ -71,7 +72,11 @@
<el-table-column label="总金额美元" align="center" prop="totalAmount" /> <el-table-column label="总金额美元" align="center" prop="totalAmount" />
<el-table-column label="总金额RMB" align="center" prop="totalAmount" /> <el-table-column label="总金额RMB" align="center" prop="totalAmount" />
<el-table-column label="实收金额" prop="volume" /> <el-table-column label="实收金额" prop="volume" />
<el-table-column label="付款人" prop="weight" /> <el-table-column label="付款人">
<template slot-scope="scope">
<span>{{srope.row.consigneeVO.name}}(收货人)</span>
</template>
</el-table-column>
<el-table-column label="付款状态" prop="worth"> <el-table-column label="付款状态" prop="worth">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="scope.row.state"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="scope.row.state"></dict-tag>
...@@ -96,16 +101,15 @@ ...@@ -96,16 +101,15 @@
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="处理结果:" > <el-form-item label="处理结果:" >
<el-select v-model="orderData.objectiveId" placeholder="处理结果"> <el-select v-model="handlerParams.orderExceptionHandlerResult">
<el-option label="待处理" value="1"></el-option> <el-option v-for="dict in this.getDictDatas('order_pay_exception_result')"
<el-option label="不需要预付" value="2"></el-option> :key="dict.value" :label="dict.label" :value="dict.value"/>
<el-option label="已确认收款" value="3"></el-option> </el-select>
</el-select>
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row :span="8"> <el-row :span="8">
<el-form-item label="备注:" size="medium"> <el-form-item label="备注:" size="medium">
<el-input style="width: 500px;" type="textarea" v-model="orderData.remark" /> <el-input style="width: 500px;" type="textarea" v-model="handlerParams.orderExceptionHandlerRemark" />
</el-form-item> </el-form-item>
</el-row> </el-row>
</el-form> </el-form>
...@@ -113,7 +117,7 @@ ...@@ -113,7 +117,7 @@
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<div> <div>
<el-button type="primary" @click="submitForm">提交</el-button> <el-button type="primary" @click="submitForm">提交</el-button>
<el-button plain type="primary" @click="submitForm">取消</el-button> <el-button plain type="primary" @click="$router.back()">取消</el-button>
</div> </div>
<el-button type="primary" @click="submitForm">转交</el-button> <el-button type="primary" @click="submitForm">转交</el-button>
</div> </div>
...@@ -122,7 +126,10 @@ ...@@ -122,7 +126,10 @@
<script> <script>
import {DICT_TYPE} from '@/utils/dict' import {DICT_TYPE} from '@/utils/dict'
import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse' import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse'
import {getOrder} from '@/api/ecw/order'
import {getExceptionById,handlerExceptionByExceptionId} from "@/api/ecw/orderException"
export default { export default {
name: "PrepayDeal", name: "PrepayDeal",
components: { components: {
...@@ -132,28 +139,45 @@ ...@@ -132,28 +139,45 @@
return { return {
// 遮罩层 // 遮罩层
loading: false, loading: false,
list: [], orderExceptionData: {},
types:'package,bag', types:'package,bag',
importance:1, importance:1,
orderData:{}, orderData:{
},
orderId:0, orderId:0,
orderExceptionId:0,
handlerParams:{
orderExceptionId:0
},
//发货/收货人信息 //发货/收货人信息
consigneeData:[], consigneeData:[],
routerList:[], routerList:[],
multipleSelection:[] multipleSelection:[],
}; };
}, },
created() { created() {
if(this.$route.query.orderId){ if(this.$route.query.id){
this.orderId = this.$route.query.orderId this.orderExceptionId = this.$route.query.id
this.getList(); this.handlerParams.orderExceptionId = this.$route.query.id
this.getList()
} }
}, },
methods: { methods: {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
let that = this let that = this
// that.loading = true; that.loading = true;
getExceptionById(that.orderExceptionId).then(response => {
that.orderExceptionData = response.data;
that.loading = false;
that.orderId = response.data.orderId
that.getOrderData()
});
},
getOrderData(){
getOrder(this.orderId).then(response => {
this.orderData = response.data
});
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val; this.multipleSelection = val;
...@@ -175,23 +199,27 @@ ...@@ -175,23 +199,27 @@
let router = this.routerList.find(item => item.id == routerId) let router = this.routerList.find(item => item.id == routerId)
console.log({router}) console.log({router})
if(router){ if(router){
return router.startTitleZh + ' >>>' + router.destTitleZh return ' 从【'+router.startTitleZh + '】发往【' + router.destTitleZh+''
} }
return '-' return ''
// } // }
}, },
submitForm(){ submitForm(){
handlerExceptionByExceptionId(that.orderExceptionId).then(response => {
that.orderExceptionData = response.data;
that.loading = false;
that.orderId = response.data.orderId
this.getOrderData()
});
}, },
/** 跟进按钮操作 */ /** 跟进按钮操作 */
handleAdd() { handleAdd() {
// this.$router.push({ this.$router.push({
// path: "/offer/logList", path: "/financial/creatCollection",
// query:{ query:{
// offerId:this.offerId, orderId:this.orderId,
// relationId:this.list.consignorId }
// } });
// });
}, },
} }
......
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