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

Merge remote-tracking branch 'origin/release2.2' into release2.2

parents 947a14a5 06ec585a
...@@ -62,7 +62,14 @@ export function getReceivableDiscountLogById(query) { ...@@ -62,7 +62,14 @@ export function getReceivableDiscountLogById(query) {
params: query params: query
}) })
} }
// 根据订单ID获得需要预付应收款列表
export function getReceivableByOrderId(query) {
return request({
url: '/ecw/receivable/getReceivableByOrderId',
method: 'get',
params: query
})
}
// 根据订单ID获得需要预付应收款列表 // 根据订单ID获得需要预付应收款列表
export function getFirstReceivableListByOrderId(query) { export function getFirstReceivableListByOrderId(query) {
return request({ return request({
......
...@@ -748,4 +748,36 @@ export function splitItemUpdate(data){ ...@@ -748,4 +748,36 @@ export function splitItemUpdate(data){
data data
}) })
} }
// 上传报关资料
export function warehousePictureCreate(data) {
return request({
url: '/order/warehouse-picture/create',
method: 'post',
data
})
}
// 删除报关资料
export function warehousePictureDelete(id) {
return request({
url: '/order/warehouse-picture/delete?id=' + id,
method: 'delete'
})
}
//上传
export function uploadFile(data) {
return request({
url: '/infra/file/up',
method: 'post',
data: data
})
}
/*根据订单ID查询目的国*/
export function getDestCountryByOrderId(params){
return request({
url: '/ecw/order/getDestCountryByOrderId',
method: 'get',
params:params
})
}
...@@ -56,7 +56,14 @@ export function getOrderExceptionPage(query) { ...@@ -56,7 +56,14 @@ export function getOrderExceptionPage(query) {
params: query params: query
}) })
} }
// 获得新订单异常分页
export function getExceptionPage(query) {
return request({
url: '/ecw/order-exception/exceptionPage',
method: 'get',
params: query
})
}
// 导出订单异常 Excel // 导出订单异常 Excel
export function exportOrderExceptionExcel(query) { export function exportOrderExceptionExcel(query) {
return request({ return request({
......
...@@ -518,7 +518,7 @@ ...@@ -518,7 +518,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户名称')"> <el-form-item :label="$t('客户名称')">
<customer-selector <customer-selector
v-model="queryParams.consignorId" v-model="queryParams.customerId"
@change="consignor = $event" @change="consignor = $event"
/> />
</el-form-item> </el-form-item>
...@@ -696,10 +696,10 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount"; ...@@ -696,10 +696,10 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept"; import { listSimpleDepts } from "@/api/system/dept";
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import { getTradeCityList } from "@/api/ecw/region"; import { getTradeCityList } from "@/api/ecw/region";
import { createReceipt,getFirstReceivableListByOrderId, getReceivableList, getReceivableItemDetail, getReceiptInfoByIds, getReceiptAccountList, getInvoicingItem, updateReceipt, updateReceivableDiscountById, getReceivableDiscountLogById } from "@/api/ecw/financial"; import { createReceipt,getReceivableByOrderId, getReceivableList, getReceivableItemDetail, getReceiptInfoByIds, getReceiptAccountList, getInvoicingItem, updateReceipt, updateReceivableDiscountById, getReceivableDiscountLogById } from "@/api/ecw/financial";
import {getCustomer} from '@/api/ecw/customer' import {getCustomer} from '@/api/ecw/customer'
import NP from 'number-precision' import NP from 'number-precision'
import {getOrder} from '@/api/ecw/order' import {getOrder,getDestCountryByOrderId} from '@/api/ecw/order'
import { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import { getExchangeRatePage } from "@/api/ecw/exchangeRate"; import { getExchangeRatePage } from "@/api/ecw/exchangeRate";
import ret from "bluebird/js/release/util"; import ret from "bluebird/js/release/util";
...@@ -769,8 +769,7 @@ export default { ...@@ -769,8 +769,7 @@ export default {
}, },
pages:1, pages:1,
rateList:[], rateList:[]
orderNo:null
}; };
}, },
activated(){ activated(){
...@@ -782,11 +781,29 @@ export default { ...@@ -782,11 +781,29 @@ export default {
if (this.$route.query.receiptId && this.$route.query.receiptId != 0) { if (this.$route.query.receiptId && this.$route.query.receiptId != 0) {
this.receiptId = this.$route.query.receiptId; this.receiptId = this.$route.query.receiptId;
this.orderNo = this.$route.query.orderNo||'';
this.getReceivableInfo() this.getReceivableInfo()
}else{ }else{
this.removeData() this.removeData()
} }
if (this.$route.query.orderId) {
getReceivableByOrderId({orderId:this.$route.query.orderId}).then(response => {
this.list = [...response.data]
this.list.map(v=>{
if(!v.taxPoint){
v.taxAmount = v.totalAmount
}
})
this.calculation()
getOrder(this.$route.query.orderId).then(response => {
// console.log(response.data)
if(response.data.customerId) this.$set(this.form,'customerId',response.data.customerId)
})
getDestCountryByOrderId({orderId:this.$route.query.orderId}).then(response => {
// console.log(response.data)
if(response.data) this.$set(this.queryParams,'destCountry',response.data)
})
})
}
getUserProfile().then(res => { getUserProfile().then(res => {
this.discountForm.author = res.data.username this.discountForm.author = res.data.username
this.form.departmentId = res.data.deptId this.form.departmentId = res.data.deptId
...@@ -821,7 +838,7 @@ export default { ...@@ -821,7 +838,7 @@ export default {
getWarehouseList().then(res => this.warehouseList = res.data) getWarehouseList().then(res => this.warehouseList = res.data)
let that = this; let that = this;
if (that.$route.query.orderId) { if (that.$route.query.orderId) {
await getFirstReceivableListByOrderId({id:that.$route.query.orderId}).then(response => { await getReceivableByOrderId({orderId:that.$route.query.orderId}).then(response => {
this.list = [...response.data] this.list = [...response.data]
this.list.map(v=>{ this.list.map(v=>{
if(!v.taxPoint){ if(!v.taxPoint){
...@@ -830,10 +847,12 @@ export default { ...@@ -830,10 +847,12 @@ export default {
}) })
this.calculation() this.calculation()
getOrder(that.$route.query.orderId).then(response => { getOrder(that.$route.query.orderId).then(response => {
// console.log(response.data)
if(response.data.customerId) this.$set(this.form,'customerId',response.data.customerId) if(response.data.customerId) this.$set(this.form,'customerId',response.data.customerId)
}) })
}) })
getDestCountryByOrderId({orderId:this.$route.query.orderId}).then(response => {
if(response.data) this.$set(this.queryParams,'destCountry',response.data)
})
} }
if (that.$route.query.id) { if (that.$route.query.id) {
this.flag = true this.flag = true
...@@ -842,7 +861,6 @@ export default { ...@@ -842,7 +861,6 @@ export default {
} }
if (that.$route.query.receiptId && that.$route.query.receiptId !== '0') { if (that.$route.query.receiptId && that.$route.query.receiptId !== '0') {
this.receiptId = this.$route.query.receiptId; this.receiptId = this.$route.query.receiptId;
this.orderNo = this.$route.query.orderNo||'';
this.getReceivableInfo() this.getReceivableInfo()
} }
...@@ -980,7 +998,7 @@ export default { ...@@ -980,7 +998,7 @@ export default {
}) })
}, },
getReceivableInfo(){ getReceivableInfo(){
getReceivableItemDetail({ id: this.receiptId,orderNo:this.orderNo }).then(res => { getReceivableItemDetail({ id: this.receiptId}).then(res => {
this.list = res.data this.list = res.data
this.list.map(v=>{ this.list.map(v=>{
if(!v.taxPoint){ if(!v.taxPoint){
...@@ -1365,13 +1383,13 @@ export default { ...@@ -1365,13 +1383,13 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.queryParams.consignorId=this.form.customerId this.queryParams.customerId=this.form.customerId
this.multipleSelection = this.list this.multipleSelection = this.list
this.open = true; this.open = true;
}, },
hiddenDialog() { hiddenDialog() {
this.open = false; this.open = false;
this.queryParams.consignorId='' this.queryParams.customerId=''
}, },
changePlatformAccountId(platformAccountId,index){ changePlatformAccountId(platformAccountId,index){
this.form.receiptAccountList[index].platformAccountId = platformAccountId this.form.receiptAccountList[index].platformAccountId = platformAccountId
......
...@@ -351,7 +351,8 @@ export default { ...@@ -351,7 +351,8 @@ export default {
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd(row) { handleAdd(row) {
return this.$router.push("creatCollection?receiptId=" + row.id+'&orderNo='+row.orderNo); if(!row) return this.$router.push("creatCollection");
return this.$router.push("creatCollection?orderId=" + row.orderId);
}, },
submitForm() {}, submitForm() {},
}, },
......
<template>
<el-dialog
:title="title"
visible
:before-close="closeDialog"
:close-on-click-modal="false"
width="800px"
>
<div v-for="item in fileList" :key="item.id" class="file-list">
<span>{{ getFileName(item.url) }}</span>
<div @click="deleteFile(item.id)">{{ $t('删除') }}</div>
<div @click="downloadFile(item.url)">{{ $t('下载') }}</div>
</div>
<div style="margin-top: 30px;display:flex;">
<el-upload action="#" accept="png" :http-request="requestUpload" :show-file-list="false" :before-upload="beforeUploadimg1">
<el-button size="small">
{{ $t('上传新附件') }}
<i class="el-icon-upload el-icon--right" />
</el-button>
</el-upload>
<el-button style="margin-left: 60px;" @click="closeDialog">{{ $t('返回') }}</el-button>
</div>
</el-dialog>
</template>
<script>
import { warehousePictureList, warehousePictureCreate, warehousePictureDelete,uploadFile } from '@/api/ecw/order'
export default {
props: {
orderId: [String, Number],
orderNo: [String, Number]
},
data() {
return {
show: false,
detail: null,
fileList: []
}
},
computed: {
title() {
let t = this.$t('报关资料')
if (this.orderNo) {
t += '-' + this.orderNo
}
return t
}
},
created() {
this.show = true
this.loadData()
},
methods: {
loadData() {
warehousePictureList({ bizId: this.orderId, type: 6 }).then((res) => {
this.fileList = res.data
})
},
getFileName(url) {
if (!url) return '/'
var file = url.split('/')
return file[file.length - 1]
},
closeDialog() {
this.show = false
this.$emit('close')
},
// 覆盖默认的上传行为
requestUpload() {
},
// 上传预处理
beforeUploadimg1(file) {
if (this.fileList.length >= 10) {
this.$message.error(this.$t('您最多上传10个附件'))
}
console.log(file)
var type = file.name.split('.')
if (['xls', 'doc', 'ppt', 'txt', 'pdf', 'jpg', 'png', 'jpeg', 'docx', 'xlsx'].indexOf(type[type.length - 1]) === -1) {
this.$message.error(this.$t('附件仅限doc/xls/ppt/txt/pdf/jpg/png/jpeg/docx/xlsx格式'))
} else {
// 上传
const formData = new FormData()
formData.append('file', file)
formData.append('path', this.uuid())
uploadFile(formData).then(response => {
if (response.data) {
this.createImage(response.data)
}
})
}
},
createImage(url) {
warehousePictureCreate({ bizId: this.orderId, type: 6, url: url }).then(res => {
this.$message.success(this.$t('上传成功'))
this.loadData()
})
},
downloadFile(url) {
window.open(url, '_self')
},
deleteFile(id) {
this.$confirm(this.$t('确定删除附件吗?')).then(function() {
return warehousePictureDelete(id)
}).then(() => {
this.loadData()
this.$message({
message: this.$t('删除成功'),
type: 'success'
})
}).catch(() => {})
},
uuid() {
var s = []
var hexDigits = '0123456789abcdef'
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1)
}
s[14] = '4' // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1) // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = '-'
var uuid = s.join('')
return uuid
}
}
}
</script>
<style lang="scss" scoped>
.title {
font-size: 16px;
margin: 20px 0;
display: flex;
align-items: center;
&:before {
content: '';
width: 5px;
height: 15px;
background: #666;
margin-right: 10px;
}
}
.file-list{
display: flex;
align-items: center;
color: #297CE7;
margin-left: 30px;
font-size:16px;
margin-bottom:10px;
div{
cursor: pointer;
margin-left: 30px;
}
}
</style>
...@@ -247,6 +247,7 @@ ...@@ -247,6 +247,7 @@
<el-button v-hasPermi="['ecw:order:show_receipt']" type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState == 0 && order.shipmentState == 0">{{$t('查看入仓单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_receipt']" type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState == 0 && order.shipmentState == 0">{{$t('查看入仓单')}}</el-button>
<el-button v-hasPermi="['ecw:order:show_landing']" type="text" @click.native="showLadingBill=true" :disabled="!order.ladingState">{{$t('查看提货单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_landing']" type="text" @click.native="showLadingBill=true" :disabled="!order.ladingState">{{$t('查看提货单')}}</el-button>
<el-button v-hasPermi="['ecw:order:show_packing']" :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">{{$t('装箱单')}}</el-button> <el-button v-hasPermi="['ecw:order:show_packing']" :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">{{$t('装箱单')}}</el-button>
<el-button v-hasPermi="['ecw:order:show_customs']" type="text" @click="showDeclaration=true">{{$t('查看报关资料')}}</el-button>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('费用明细')" name="four"> <el-tab-pane :label="$t('费用明细')" name="four">
<el-table :data="feeList"> <el-table :data="feeList">
...@@ -416,6 +417,8 @@ ...@@ -416,6 +417,8 @@
<!--日志详情--> <!--日志详情-->
<operate-log-detail v-if="showLogDetailId" :log-id="showLogDetailId" @close="showLogDetailId=null"></operate-log-detail> <operate-log-detail v-if="showLogDetailId" :log-id="showLogDetailId" @close="showLogDetailId=null"></operate-log-detail>
<!-- 报关资料 -->
<declaration-documents v-if="showDeclaration" :order-id="order.orderId" :order-no="order.orderNo" @close="showDeclaration=false" />
</div> </div>
</template> </template>
...@@ -436,11 +439,12 @@ import { parseTime } from '@/utils/ruoyi'; ...@@ -436,11 +439,12 @@ import { parseTime } from '@/utils/ruoyi';
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect" import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import {checkPermi} from '@/utils/permission' import {checkPermi} from '@/utils/permission'
import OperateLogDetail from "@/views/ecw/order/components/OprateLogDetail"; import OperateLogDetail from "@/views/ecw/order/components/OprateLogDetail";
import DeclarationDocuments from './components/DeclarationDocuments';
export default { export default {
name: "detail", name: "detail",
components: { components: {
OperateLogDetail, OperateLogDetail,
PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect,DeclarationDocuments
}, },
filters: { filters: {
customsTypeFilter(e, customsTypeList) { customsTypeFilter(e, customsTypeList) {
...@@ -484,7 +488,8 @@ export default { ...@@ -484,7 +488,8 @@ export default {
showText:this.$t('显示更多'), showText:this.$t('显示更多'),
showMore:false, showMore:false,
consigneeText:this.$t('更多'), consigneeText:this.$t('更多'),
showLogDetailId: null, // 显示日志详情的ID showLogDetailId: null, // 显示日志详情的ID,
showDeclaration:false //显示报关资料
} }
}, },
computed:{ computed:{
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
<el-date-picker clearable v-model="queryParams.endCreateTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('请选择结束日期')" /> <el-date-picker clearable v-model="queryParams.endCreateTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('请选择结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发仓')" prop="destinationId"> <el-form-item :label="$t('始发仓')" prop="destinationId">
<el-select v-model="queryParams.originId" :placeholder="$t('请选择始发仓')" clearable> <el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发仓')" clearable>
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的仓')" prop="destinationId"> <el-form-item :label="$t('目的仓')" prop="destinationId">
<el-select v-model="queryParams.destinationId" :placeholder="$t('请选择目的仓')" clearable> <el-select v-model="queryParams.pdaDestWareIds" multiple :placeholder="$t('请选择目的仓')" clearable>
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -35,6 +35,15 @@ ...@@ -35,6 +35,15 @@
<el-form-item :label="$t('运输方式')+':'" > <el-form-item :label="$t('运输方式')+':'" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :clearable="true" v-model="queryParams.transportId" /> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :clearable="true" v-model="queryParams.transportId" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单状态')" prop="status">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status"
@keyup.enter.native="handleQuery" clearable />
</el-form-item>
<!-- <el-form-item :label="$t('跟进客服')" prop="destinationId">
<el-select v-model="queryParams.destinationId" multiple :placeholder="$t('请选择目的仓')" clearable>
<el-option v-for="item in followUserList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item> -->
</el-row> </el-row>
<el-row> <el-row>
<el-form-item :label="$t('控货')+':'"> <el-form-item :label="$t('控货')+':'">
...@@ -44,7 +53,7 @@ ...@@ -44,7 +53,7 @@
<dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :clearable="true" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :clearable="true" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('异常类型')+':'"> <el-form-item :label="$t('异常类型')+':'">
<dict-selector :type="DICT_TYPE.ORDER_ERROR_TYPE" :clearable="true" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/> <dict-selector :multiple="true" :type="DICT_TYPE.ORDER_ERROR_TYPE" :clearable="true" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('订单号')+':'"> <el-form-item :label="$t('订单号')+':'">
<el-input v-model="queryParams.orderNo" :placeholder="$t('请输入订单号')" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.orderNo" :placeholder="$t('请输入订单号')" clearable @keyup.enter.native="handleQuery"/>
...@@ -75,7 +84,7 @@ ...@@ -75,7 +84,7 @@
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :clearable="true" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/> <dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :clearable="true" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('客户经理')+':'"> <el-form-item :label="$t('客户经理')+':'">
<el-select v-model="queryParams.salesmanId" :placeholder="$t('请选择跟进业务')" clearable> <el-select v-model="queryParams.salesmanId" multiple :placeholder="$t('请选择跟进业务')" clearable>
<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>
...@@ -206,7 +215,7 @@ ...@@ -206,7 +215,7 @@
</template> </template>
<script> <script>
import {getOrderExceptionPage, exportExcel} from "@/api/ecw/orderException" import {getExceptionPage,getOrderExceptionPage, exportExcel} 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 { userList } from "@/api/system/user" // import { userList } from "@/api/system/user"
......
...@@ -8,7 +8,10 @@ ...@@ -8,7 +8,10 @@
<el-form v-if="orderData" :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card"> <el-form v-if="orderData" :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card">
<el-row> <el-row>
<el-form-item :label="$t('订单号')+':'"> <el-form-item :label="$t('订单号')+':'">
{{orderData.orderNo || ''}} <router-link :to="{path: '/order/detail',query: {orderId: orderData.orderId}}" class="link-type">
<span>{{orderData.orderNo || ''}}</span>
</router-link>
</el-form-item> </el-form-item>
</el-row> </el-row>
<div v-if="shopData&&orderExceptionData.orderExceptionType!='goods_add_exception'"> <div v-if="shopData&&orderExceptionData.orderExceptionType!='goods_add_exception'">
......
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