Commit e70fde74 authored by dcy's avatar dcy

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/utils/dict.js
parents d102cf79 65154a1c
......@@ -25,7 +25,13 @@ export function deleteOrderException(id) {
method: 'delete'
})
}
// 获得订单异常
export function getExceptionById(id){
return request({
url: '/ecw/order-exception/getExceptionById?id=' + id,
method: 'get'
})
}
// 获得订单异常
export function getOrderException(id) {
return request({
......@@ -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) {
return request({
......@@ -52,3 +66,12 @@ export function exportOrderExceptionExcel(query) {
responseType: 'blob'
})
}
//根据异常ID进行异常处理
export function handlerExceptionByExceptionId(data){
return request({
url: '/ecw/order-exception/handlerExceptionByExceptionId',
method: 'post',
data: data
})
}
......@@ -127,7 +127,7 @@ export const DICT_TYPE = {
COMMISSION_TYPE: 'commission_type',//佣金类型
COMMISSION_DARK_TYPE: 'commission_dark_type',//暗涌类型
COMMISSION_CURRENCY_TYPE: 'commission_currency_type',//佣金货币类型
COMMISSION_UNIT: 'commission_unit',//佣金货物单位
// COMMISSION_UNIT: 'commission_unit',//佣金货物单位
ECW_PORT_TYPE: 'port_type', //港口类型
CERTIFICATE_TYPE: 'certificate_type',//证件类型
//customer
......@@ -143,6 +143,8 @@ export const DICT_TYPE = {
BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime',//订单日期筛选类别
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
PAYMENT_TYPE:'payment_type',//收款类型
ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'fee_type',
PAY_TYPE:'pay_type',
......@@ -150,6 +152,8 @@ export const DICT_TYPE = {
COMDINED_VALUE_ADDED_FEE:'combined_value_added_fee',
ORDER_SPECIAL_NEEDS:'order_special_needs',
ORDER_ABNORMAL_STATE:'order_abnormal_state'
ORDER_SPECIAL_NEEDS:'order_special_needs'
}
/**
......
......@@ -18,4 +18,5 @@ const lodop = function(){
}else resolve(getLodop())
})
}
export default lodop
\ No newline at end of file
export default lodop
......@@ -101,11 +101,11 @@
<el-form-item label="英文内容" prop="contentEn">
<editor v-model="form.contentEn" :min-height="150"/>
</el-form-item>
<el-form-item label="WEB端广告图片" prop="bannerUrlWeb">
<el-form-item label="WEB端广告图片(建议尺寸210*902)" prop="bannerUrlWeb">
<el-col :span="8">
<el-input v-model="form.bannerUrlWeb" placeholder="请上传WEB端广告图片" />
</el-col>
<el-upload action="#" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUploadWeb">
<el-button size="small">
上传图片
......@@ -113,7 +113,7 @@
</el-button>
</el-upload>
</el-form-item>
<el-form-item label="APP端广告图片" prop="bannerUrlApp">
<el-form-item label="APP端广告图片(建议尺寸688*294)" prop="bannerUrlApp">
<el-col :span="8">
<el-input v-model="form.bannerUrlApp" placeholder="请上传APP端广告图片" />
</el-col>
......
<template>
<div class="app-container">
<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-descriptions :column="3" border>
<el-descriptions-item label="客户" >
......@@ -243,21 +244,22 @@
rows:20,
},
multipleSelection:[],
tradeCityList:[]
tradeCityList:[],
id:0
}
},
created() {
let that = this
if(that.$route.query.receiptNo){
this.form.receiptNo = this.$route.query.receiptNo
}
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.id){
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
// }
userList('salesman').then(res =>that.creatorData = res.data)
getChannelList().then(res => that.channelList = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data)
......
......@@ -3,7 +3,7 @@
<el-card>
<div slot="header" class="card-title">请款单</div>
<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-form-item label="" label-width="0" style="margin-bottom: 0" prop="supplierId" required error="供应商不能为空">
<customer-selector v-model="form.supplierId" @change="consignor = $event" />
......@@ -18,32 +18,32 @@
</el-descriptions-item>
<el-descriptions-item label="业务员" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="salesmanId" required error="客户不能为空">
<el-select v-model="form.salesmanId" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
<el-select v-model="form.salesmanName" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.nickname"/>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="2" border class="card">
<el-descriptions-item label="申请日期" >
<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-descriptions-item label="申请日期" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consignorId" required error="申请日期不能为空">
<el-date-picker clearable v-model="form.applicationAt" 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.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-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-form-item>
</el-descriptions-item>
<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" />
</el-form-item>
</el-descriptions-item>
......@@ -72,14 +72,14 @@
<el-table-column label="价格合计(RMB)" align="center" prop="payType" />
</el-table>
<el-form ref="forms" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="1" border class="card">
<el-descriptions-item label="账单号" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="paymentNo" required error="账单号不能为空">
<el-input v-model="form.paymentNo" placeholder="请输入账单号"></el-input>
<el-form ref="forms" :model="form" label-width="120px" label-position="left" style="width: 50%;">
<el-descriptions :column="1" class="card" border>
<el-descriptions-item label="账单号">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" required error="账单号不能为空">
<el-input v-model="form.accountNumber" placeholder="请输入账单号"></el-input>
</el-form-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-select v-model="form.invoiceStatus" placeholder="请选择是否开票">
<el-option label="未开票" value="0"/>
......@@ -146,7 +146,7 @@
</el-form-item>
</el-form>
</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>
<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 @@
<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-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-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 label="运输方式:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item>
</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-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 label="状态:">
</el-form-item> -->
<!-- <el-form-item label="状态:">
<dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="queryParams.control" />
</el-form-item>
<el-form-item label="业务员:">
<el-select v-model="form.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>
</el-form-item> -->
<!-- <el-row>
<el-form-item label="收款时间:" >
<el-date-picker
v-model="dateType"
......@@ -41,10 +52,13 @@
end-placeholder="请选择日期">
</el-date-picker>
</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-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 label="费用类型:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector>
......@@ -57,6 +71,7 @@
</el-form>
</el-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="feeType">
......@@ -64,9 +79,9 @@
<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="totalAmount" />
<el-table-column label="创建时间" align="center" prop="channelName" />
<el-table-column label="创建人" align="center" prop="toDepartureId" />
<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" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="success" @click="open=true">编辑</el-button>
......@@ -99,8 +114,8 @@
</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>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button plain @click="cancel">关闭</el-button>
</div>
</el-dialog>
</div>
......@@ -109,9 +124,8 @@
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import { getBankAccountPage } from "@/api/ecw/bankAccount"
import { listSimpleDepts } from "@/api/system/dept"
import {getTradeCityList} from '@/api/ecw/region'
import {getTradeCityList} from '@/api/ecw/region'
export default {
name: "Payable",
components: {
......@@ -122,6 +136,7 @@
open:false,
showSearch:true,
loadings: false,
tradeCityList:[],
form:{},
creatorData:[],
list:[],
......@@ -138,9 +153,18 @@
},
}
},
computed:{
expoerCityList(){
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
},
},
created() {
let that = this
userList('salesman').then(res =>that.creatorData = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data)
},
methods: {
/** 查询列表 */
......
<template>
<div class="app-container" >
<div id="print" style="font-size: 18px;">
<div style="text-align: center;font-weight: bold;font-size: 20px;">收款单</div>
<div style="margin-top: 20px;">
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">部门:</span><span>{{form?form.departmentName:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">收款单号:</span><span>{{form?form.receiptNo:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">收款日期:</span><span>{{form?form.payedAt:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">客户名称:</span><span>{{form?form.customerName:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">收款户名:</span><span>{{form?form.platformAccount:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">银行名称:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">银行账号:</span><span>{{form?form.accountBank:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;margin-bottom: 10px;">
<div style="flex:1"><span style="width: 120px;text-align: right;">水单号:</span><span>{{form?form.accountBank:''}}</span></div>
<div style="flex:1"><span style="width: 120px;text-align: right;">手续费:</span><span>{{form?form.accountBank:''}}</span></div>
</div>
<div style="display: flex;width: 80%;align-items: center;">
<div style="flex:1"><span style="width: 120px;text-align: right;">备注:</span><span>{{form?form.accountBank:''}}</span></div>
</div>
</div>
<table border="1" style="margin-top: 20px;width: 100%;text-align: center;border-collapse: collapse; ">
<tr>
<th style="width: 8%;">序号</th>
<th style="width: 12%;">订单号</th>
<th style="width: 18%;">收入类型</th>
<th style="width: 22%;">品名</th>
<th style="width: 8%;">汇率</th>
<th style="width: 12%;">总金额</th>
<th style="width: 20%;">实收金额</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
<tr>
<td colspan="2">合计(大写)</td>
<td colspan="2">$80</td>
<td colspan="2">价税合计</td>
<td>$80</td>
</tr>
</table>
<!-- <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 style="margin-top: 20px;">
<div style="display: flex;width: 100%;align-items: center;">
<div style="flex:1"><span style="width: 120px;">主管:</span></div>
<div style="flex:1"><span style="width: 120px;">会计:</span></div>
<div style="flex:1"><span style="width: 120px;">出纳:</span></div>
<div style="flex:1"><span style="width: 120px;">经手人:</span></div>
</div>
</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();
LODOP.SET_PRINT_STYLE("FontSize",18);
LODOP.SET_PRINT_STYLE("Bold",1);
// LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印页面部分内容");
// var stylePrint = "<style>table th,td{padding:0;margin:0;border:1px solid #000000;border-collapse:collapse;}</style>"
var htmlContent = "<body>"+document.getElementById("print").innerHTML+"</body>"
LODOP.ADD_PRINT_HTM("6mm", "6mm", "RightMargin:6mm", "BottomMargin:6mm", htmlContent);
LODOP.PRINT();
// this.$alert('已发起打印任务');
// LODOP.PREVIEW(); // 预览
/* LODOP.PRINTA(); // 选择打印机
// 直接打印 */
console.log('打印哦')
}).catch(err => {
console.error('lodop异常', err)
alert('请检查LODOP打印控件是否安装并启动');
})
}
},
}
</script>
<style scoped id="printStyle">
.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 v-if="scope.row.state==1" size="mini" type="primary">核销</el-button>
<el-button v-if="scope.row.state>1" size="mini" type="primary">反核销</el-button>
<el-button v-if="scope.row.state==3" 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" @click="toprint(scope.row.id)">打印</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)
},
toprint(id){
return this.$router.push('printVoucher?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 @@
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="card">
<el-card class="card" :column="4">
<div slot="header" class="card-title">通用信息</div>
<el-descriptions >
<el-descriptions-item label="唛头1">
......@@ -214,7 +214,7 @@
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="list.customsType"></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4">
<el-descriptions :column="4">
<el-descriptions-item label="预计结束时间">
{{list.stopTime}}
</el-descriptions-item>
......@@ -228,7 +228,7 @@
<el-rate v-model="list.importance"></el-rate>
</el-descriptions-item>
</el-descriptions>
<el-descriptions >
<el-descriptions :column="4">
<el-descriptions-item label="价格有效期">
{{list.startTime}} 至 {{list.endTime}}
</el-descriptions-item>
......
......@@ -4,7 +4,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-row>
<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="1"/>
</el-select>
......@@ -18,12 +18,12 @@
</el-date-picker>
</el-form-item>
<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-select>
</el-form-item>
<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-select>
</el-form-item>
......@@ -33,27 +33,27 @@
</el-row>
<el-row>
<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 label="异常状态:">
<dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/>
</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"/>
</el-form-item>
<el-form-item label="订单号" prop="orderNumber">
<el-input v-model="queryParams.orderNumber" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
<el-form-item label="订单号">
<el-input v-model="queryParams.orderNo" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="发货人:" prop="consignorId">
<el-form-item label="发货人:">
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
</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-form-item>
<el-form-item label="品名:" prop="orderExceptionAmount">
<el-input v-model="queryParams.orderExceptionAmount" placeholder="请输入品名" clearable @keyup.enter.native="handleQuery"/>
<el-form-item label="品名:" prop="prodId">
<product-selector v-model="queryParams.prodId" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="备案:">
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/>
......@@ -67,6 +67,7 @@
</el-form-item>
<el-form-item>
<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-row>
</el-form>
......@@ -84,32 +85,36 @@
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="订单号" align="center" prop="orderNumber" />
<el-table-column label="唛头" align="center" prop="marks" />
<el-table-column label="订单号" align="center" prop="orderNo" />
<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" >
<template slot-scope="scope">
<span>{{scope.row.sumNum+'/'+scope.row.sumNum}}</span>
<span>{{scope.row.totalBox+'箱/'+scope.row.warehousingBox+""}}</span>
</template>
</el-table-column>
<el-table-column label="体积/重量" align="center">
<template slot-scope="scope">
<span>{{scope.row.sumVolume+"/"+scope.row.sumWeight}}</span>
<span>{{scope.row.volume+"m³/"+scope.row.weight+"kg"}}</span>
</template>
</el-table-column>
<el-table-column label="运输方式/目的地" align="center">
<template slot-scope="scope">
<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>
</el-table-column>
<el-table-column label="控货" align="center">
<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>
</el-table-column>
<el-table-column label="订单状态" align="center" prop="orderExceptionAmount" >
<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>
</el-table-column>
<el-table-column label="异常状态" align="center">
......@@ -119,18 +124,18 @@
</el-table-column>
<el-table-column label="异常类型" align="center">
<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>
</el-table-column>
<el-table-column label="操作" align="center">
<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-share">查看</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" @click="handEdit(scope.row.orderId)">查看</el-button>
</template>
</el-table-column>
</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"/>
</div>
</template>
......@@ -141,11 +146,12 @@ import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict'
import { userList } from "@/api/system/user"
import CustomerSelector from '@/components/CustomerSelector'
import ProductSelector from '@/components/ProductSelector'
export default {
name: "Exception",
components: {
CustomerSelector
CustomerSelector,ProductSelector
},
data() {
return {
......@@ -161,15 +167,22 @@ export default {
creatorData:[],
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
orderId: null,
orderNumber: null,
orderExceptionType: null,
orderExceptionRemark: null,
orderExceptionAmount: null,
orderExceptionAttr: null,
orderExceptionStatus: null,
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
},
tradeCityList:[],
};
......@@ -200,19 +213,41 @@ export default {
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){
return this.tradeCityList.filter(item => item.id == id)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.queryParams.page = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRangeCreateTime = [];
this.handleQuery();
},
handEdit(id){
this.$router.push({
path:"./pending?id="+id,
})
}
}
}
</script>
......@@ -2,28 +2,28 @@
<div class="app-container">
<!-- 搜索工作栏 -->
<el-card>
<div slot="header" class="card-title">报价单详情</div>
<div slot="header" class="card-title">查看</div>
<el-descriptions :column="4">
<el-descriptions-item label="唛头">
{{orderData.marks?orderData.marks:''}}
</el-descriptions-item>
<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 label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" />
</el-descriptions-item>
<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 label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item>
<el-descriptions-item label="始发地">
{{importCityName(orderData.startWarehouseId)}}
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:''}}
</el-descriptions-item>
<el-descriptions-item label="目的地">
{{importCityName(orderData.startWarehouseId)}}
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.destTitleZh:''}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4">
......@@ -60,7 +60,7 @@
</el-table-column>
<el-table-column label="异常类型" align="center" >
<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>
</el-table-column>
<el-table-column label="异常描述" align="center">
......@@ -83,21 +83,19 @@
<el-table-column label="处理时间" align="center" prop='orderExceptionTime' />
<el-table-column label="操作" align="center">
<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>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</el-card>
</div>
</template>
<script>
import {getOrderExceptionPage} from "@/api/ecw/orderException"
import {getExceptionListByOrderId} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict'
import {getOrder} from '@/api/ecw/order'
export default {
name: "Pending",
......@@ -108,23 +106,21 @@ export default {
return {
// 遮罩层
loading: false,
// 总条数
total: 0,
// 显示搜索条件
showSearch: true,
orderData:{},
// 订单异常列表
list: [],
tradeCityList:[],
queryParams: {
page: 1,
rows: 10,
orderExceptionStatus: 0,
},
orderId:0
};
},
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)
},
methods: {
......@@ -132,17 +128,28 @@ export default {
getList() {
this.loading = true;
// 执行查询
getOrderExceptionPage(this.queryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.orderData = response.data
getExceptionListByOrderId(this.orderId).then(response => {
this.list = response.data;
this.loading = false;
});
},
getOrders(){
getOrder(this.orderId).then(response => {
this.orderData = response.data
});
},
importCityName(id){
var arr = this.tradeCityList.filter(item => item.id == id)
return arr.length>0?arr[0].titleZh:''
},
handEdit(id, type){
// if(type == 3){
this.$router.push({
path:"/order/prepayDeal?id="+id,
})
// }
}
}
}
</script>
......@@ -150,7 +157,7 @@ export default {
.card-title{
font-size: 18px;
font-weight: bold;
margin-top: 10px;
margin-top: 10px;
}
.card{
margin-top: 20px;
......
......@@ -2,7 +2,7 @@
<div class="app-container">
<el-card>
<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>
</div>
<el-form :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card">
......@@ -23,27 +23,28 @@
</el-row>
<el-row>
<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-row>
<el-row>
<el-form-item label="填单参数:">
{{orderData.totalMoney}}
{{(orderData.sumNum||0)+''+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg'}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="入仓参数:">
{{orderData.totalMoney}}
{{(orderData.sumNum||0)+''+(orderData.sumVolume||0)+''+(orderData.sumWeight||0)+'kg'}}
</el-form-item>
</el-row>
<el-row :span="12">
<el-form-item label="异常描述:">
{{orderData.totalMoney}}
{{orderData.totalMoney||''}}
</el-form-item>
<el-button type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
</el-row>
</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>
<el-table-column label="品名" align="center" prop="goodsType">
......@@ -52,7 +53,7 @@
</template>
</el-table-column>
<el-table-column label="箱数" prop="num" />
<el-table-column label="体积/重量"prop="volume">
<el-table-column label="体积/重量">
<template slot-scope="scope">
{{scope.row.volume+'/'+scope.row.weight}}
</template>
......@@ -71,7 +72,11 @@
<el-table-column label="总金额美元" align="center" prop="totalAmount" />
<el-table-column label="总金额RMB" align="center" prop="totalAmount" />
<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">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="scope.row.state"></dict-tag>
......@@ -96,16 +101,15 @@
</el-row>
<el-row>
<el-form-item label="处理结果:" >
<el-select v-model="orderData.objectiveId" placeholder="处理结果">
<el-option label="待处理" value="1"></el-option>
<el-option label="不需要预付" value="2"></el-option>
<el-option label="已确认收款" value="3"></el-option>
</el-select>
<el-select v-model="handlerParams.orderExceptionHandlerResult">
<el-option v-for="dict in this.getDictDatas('order_pay_exception_result')"
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
</el-row>
<el-row :span="8">
<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-row>
</el-form>
......@@ -113,7 +117,7 @@
<div slot="footer" class="dialog-footer">
<div>
<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>
<el-button type="primary" @click="submitForm">转交</el-button>
</div>
......@@ -122,7 +126,10 @@
<script>
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 {
name: "PrepayDeal",
components: {
......@@ -132,28 +139,45 @@
return {
// 遮罩层
loading: false,
list: [],
orderExceptionData: {},
types:'package,bag',
importance:1,
orderData:{},
orderData:{
},
orderId:0,
orderExceptionId:0,
handlerParams:{
orderExceptionId:0
},
//发货/收货人信息
consigneeData:[],
routerList:[],
multipleSelection:[]
multipleSelection:[],
};
},
created() {
if(this.$route.query.orderId){
this.orderId = this.$route.query.orderId
this.getList();
if(this.$route.query.id){
this.orderExceptionId = this.$route.query.id
this.handlerParams.orderExceptionId = this.$route.query.id
this.getList()
}
},
methods: {
/** 查询列表 */
getList() {
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) {
this.multipleSelection = val;
......@@ -175,23 +199,27 @@
let router = this.routerList.find(item => item.id == routerId)
console.log({router})
if(router){
return router.startTitleZh + ' >>>' + router.destTitleZh
return ' 从【'+router.startTitleZh + '】发往【' + router.destTitleZh+''
}
return '-'
return ''
// }
},
submitForm(){
handlerExceptionByExceptionId(that.orderExceptionId).then(response => {
that.orderExceptionData = response.data;
that.loading = false;
that.orderId = response.data.orderId
this.getOrderData()
});
},
/** 跟进按钮操作 */
handleAdd() {
// this.$router.push({
// path: "/offer/logList",
// query:{
// offerId:this.offerId,
// relationId:this.list.consignorId
// }
// });
this.$router.push({
path: "/financial/creatCollection",
query:{
orderId:this.orderId,
}
});
},
}
......
......@@ -35,6 +35,7 @@
<el-table v-loading="loading" :data="list">
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="短信签名" align="center" prop="signature" />
<el-table-column label="英文短信签名" align="center" prop="signatureEn" />
<el-table-column label="渠道编码" align="center" prop="code">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE" :value="scope.row.code"/>
......@@ -73,6 +74,9 @@
<el-form-item label="短信签名" prop="signature">
<el-input v-model="form.signature" placeholder="请输入短信签名" />
</el-form-item>
<el-form-item label="英文短信签名" prop="signatureEn">
<el-input v-model="form.signatureEn" placeholder="请输入英文短信签名" />
</el-form-item>
<el-form-item label="渠道编码" prop="code">
<el-input v-model="form.code" placeholder="请输入渠道编码" />
</el-form-item>
......@@ -138,6 +142,7 @@ export default {
// 表单校验
rules: {
signature: [{ required: true, message: "短信签名不能为空", trigger: "blur" }],
signatureEn: [{ required: true, message: "英文短信签名不能为空", trigger: "blur" }],
code: [{ required: true, message: "渠道编码不能为空", trigger: "blur" }],
status: [{ required: true, message: "启用状态不能为空", trigger: "blur" }],
apiKey: [{ required: true, message: "短信 API 的账号不能为空", trigger: "blur" }],
......@@ -171,6 +176,7 @@ export default {
this.form = {
id: undefined,
signature: undefined,
signatureEn: undefined,
code: undefined,
status: undefined,
remark: undefined,
......
......@@ -21,6 +21,9 @@
<el-form-item label="短信 API 的模板编号" prop="apiTemplateId">
<el-input v-model="queryParams.apiTemplateId" placeholder="请输入短信 API 的模板编号" clearable size="small" @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="短信 API 的模板编号" prop="apiTemplateIdEn">
<el-input v-model="queryParams.apiTemplateIdEn" placeholder="请输入英文短信 API 的模板编号" clearable size="small" @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="短信渠道" prop="channelId">
<el-select v-model="queryParams.channelId" placeholder="请选择短信渠道" clearable>
<el-option v-for="channel in channelOptions"
......@@ -55,7 +58,8 @@
<el-table v-loading="loading" :data="list">
<el-table-column label="模板编码" align="center" prop="code" />
<el-table-column label="模板名称" align="center" prop="name" />
<el-table-column label="模板内容" align="center" prop="content" width="300" />
<el-table-column label="中文API模板编号" align="center" prop="apiTemplateId" width="120" />
<el-table-column label="中文模板内容" align="center" prop="content" width="200" />
<el-table-column label="短信类型" align="center" prop="type">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE" :value="scope.row.type"/>
......@@ -66,8 +70,8 @@
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="短信 API 的模板编号" align="center" prop="apiTemplateId" width="180" />
<el-table-column label="英文API模板编号" align="center" prop="apiTemplateIdEn" width="120" />
<el-table-column label="英文模板内容" align="center" prop="contentEn" width="100" />
<el-table-column label="短信渠道" align="center" width="120">
<template slot-scope="scope">
<div>{{ formatChannelSignature(scope.row.channelId) }}</div>
......@@ -79,6 +83,8 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-share" @click="handleSendSms(scope.row)"
......@@ -116,23 +122,25 @@
<el-form-item label="模板名称" prop="name">
<el-input v-model="form.name" placeholder="请输入模板名称" />
</el-form-item>
<el-form-item label="模板内容" prop="content">
<el-input type="textarea" v-model="form.content" placeholder="请输入模板内容" />
</el-form-item>
<el-form-item label="英文模板内容" prop="content">
<el-input type="textarea" v-model="form.contentEn" placeholder="请输入模板内容" />
</el-form-item>
<el-form-item label="开启状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="parseInt(dict.value)">{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="短信 API 模板编号" prop="apiTemplateId">
<el-form-item label="中文短信API模板编号" prop="apiTemplateId">
<el-input v-model="form.apiTemplateId" placeholder="请输入短信 API 的模板编号" />
</el-form-item>
<el-form-item label="短信 API 英文模板编号" prop="apiTemplateId">
<el-input v-model="form.apiTemplateIdEn" placeholder="请输入短信 API 的英文模板编号" />
<el-form-item label="模板内容" prop="content">
<el-input type="textarea" v-model="form.content" placeholder="请输入模板内容" />
</el-form-item>
<el-form-item label="英文短信API模板编号" prop="apiTemplateIdEn">
<el-input v-model="form.apiTemplateIdEn" placeholder="请输入英文短信API模板编号" />
</el-form-item>
<el-form-item label="英文模板内容" prop="contentEn">
<el-input type="textarea" v-model="form.contentEn" placeholder="请输入英文模板内容" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
......@@ -150,6 +158,22 @@
<el-form-item label="模板内容" prop="content">
<el-input v-model="sendSmsForm.content" type="textarea" placeholder="请输入模板内容" readonly />
</el-form-item>
<el-form-item label="英文模板内容" prop="contentEn">
<el-input v-model="sendSmsForm.contentEn" type="textarea" placeholder="请输入英文模板内容" readonly />
</el-form-item>
<!-- <el-table-column-->
<!-- prop="areaCode"-->
<!-- label="区号">-->
<!-- <template v-slot:header>-->
<!-- 区号 <span style="color: #ff0000">*</span>-->
<!-- </template>-->
<!--&lt;!&ndash; <template v-slot="{row}">&ndash;&gt;-->
<!-- <el-select v-model="areaCode" placeholder="请选择区号" filterable>-->
<!-- <el-option v-for="(item, index) in countryList"-->
<!-- :key="index" :label="item.nameShort + item.nameZh + '(' + item.tel + ')'" :value="item.tel" />-->
<!-- </el-select>-->
<!--&lt;!&ndash; </template>&ndash;&gt;-->
<!-- </el-table-column>-->
<el-form-item label="手机号" prop="mobile">
<el-input v-model="sendSmsForm.mobile" placeholder="请输入手机号" />
</el-form-item>
......@@ -170,6 +194,7 @@
import { createSmsTemplate, updateSmsTemplate, deleteSmsTemplate, getSmsTemplate, getSmsTemplatePage,
exportSmsTemplateExcel, sendSms } from "@/api/system/sms/smsTemplate";
import { getSimpleSmsChannels } from "@/api/system/sms/smsChannel";
import {getCountryListAll} from "@/api/ecw/country";
export default {
name: "SmsTemplate",
......@@ -199,6 +224,7 @@ export default {
code: null,
content: null,
apiTemplateId: null,
apiTemplateIdEn: null,
channelId: null,
},
// 表单参数
......@@ -210,11 +236,15 @@ export default {
code: [{ required: true, message: "模板编码不能为空", trigger: "blur" }],
name: [{ required: true, message: "模板名称不能为空", trigger: "blur" }],
content: [{ required: true, message: "模板内容不能为空", trigger: "blur" }],
apiTemplateId: [{ required: true, message: "短信 API 的模板编号不能为空", trigger: "blur" }],
contentEn: [{ required: true, message: "英文模板内容不能为空", trigger: "blur" }],
apiTemplateId: [{ required: true, message: "中文短信API的模板编号不能为空", trigger: "blur" }],
apiTemplateIdEn: [{ required: true, message: "英文短信API的模板编号不能为空", trigger: "blur" }],
channelId: [{ required: true, message: "短信渠道编号不能为空", trigger: "change" }],
},
// 短信渠道
channelOptions: [],
countryList: [],
areaCode:"",
// 发送短信
sendSmsOpen: false,
sendSmsForm: {
......@@ -233,6 +263,10 @@ export default {
getSimpleSmsChannels().then(response => {
this.channelOptions = response.data;
})
getCountryListAll().then(r => {
this.countryList = r.data
})
},
methods: {
/** 查询列表 */
......@@ -349,6 +383,7 @@ export default {
this.resetSendSms(row);
// 设置参数
this.sendSmsForm.content = row.content;
this.sendSmsForm.contentEn = row.contentEn;
this.sendSmsForm.params = row.params;
this.sendSmsForm.templateCode = row.code;
this.sendSmsForm.templateParams = row.params.reduce(function(obj, item) {
......
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