Commit 2bb0f0fc authored by dragondean@qq.com's avatar dragondean@qq.com

Merge branch 'release'

# Conflicts:
#	src/views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
#	src/views/ecw/financial/creatCollection.vue
#	src/views/ecw/order/splitApply.vue
parents 08b6cfdb 7338569c
......@@ -46,11 +46,20 @@ export default {
align-items: center;
justify-content: center;
}
.flex-between{
display: flex;
justify-content: space-between;
}
.empty-placeholder{
padding: 50px;
text-align: center;
}
$sizes: 0, 10,20,30,50,100,150,200,300,500,800,1000;
/*给el-input-number一个紧凑的样式*/
.el-input-number.is-controls-right.tight .el-input__inner{
padding-right: 30px;
padding-left: 5px;
}
$sizes: 0, 10,20,30,50,75,100,150,200,300,500,800,1000;
@for $i from 1 through length($sizes){
$item: nth($sizes, $i);
.ml-#{$item}{
......
......@@ -343,3 +343,10 @@ export function updateUrl(data) {
data,
});
}
export function dealCustomsSplitNotify(notifyId){
return request({
url: `/shipment/box/dealCustomsSplitNotify?notifyId=${notifyId}`,
method: "get",
})
}
......@@ -48,7 +48,9 @@ export function getCustomerPage(query) {
return request({
url: '/ecw/customer/page',
method: 'get',
params: query
params: query,
timeout: 60000
})
}
/**
......
......@@ -25,7 +25,8 @@ export function getCustomerPage(query) {
return request({
url: '/ecw/indirect-customer/page',
method: 'get',
params: query
params: query,
timeout: 30000
})
}
......@@ -53,4 +54,4 @@ export function deleteIndirectCustomer(id) {
url: '/ecw/indirect-customer/delete?id=' + id,
method: 'delete'
})
}
\ No newline at end of file
}
......@@ -52,6 +52,8 @@ export default {
this.list.unshift(res.data)
this.index = 0
})
}else{
this.index = index
}
},
remoteMethod(keyword){
......@@ -61,6 +63,9 @@ export default {
getCustomerSelect(params)
.then(res => this.list = res.data.list)
.finally(() => this.loading = false)
},
reset(){
this.index=null
}
}
}
......
......@@ -79,7 +79,9 @@ export default {
if(index < 0){
getProduct(this.value).then(res => {
this.list.unshift(res.data)
this.index = 0
this.$nextTick(() => {
this.index = 0
})
})
}else this.index = index
},
......
......@@ -142,7 +142,8 @@ export default {
if (f.selected) result.push({
orderId: this.orderId,
wareId: f.pid,
areaId: f.id
areaId: f.id,
locationName: f.code
})
else {
f.positionList?.forEach(g => {
......@@ -151,7 +152,8 @@ export default {
orderId: this.orderId,
wareId: g.domainId,
areaId: g.areaId,
locationId: g.id
locationId: g.id,
locationName: f.code + g.code
})
else g.children?.forEach(k => {
// 子位置
......@@ -159,7 +161,8 @@ export default {
orderId: this.orderId,
wareId: k.domainId,
areaId: k.areaId,
locationId: k.id
locationId: k.id,
locationName: f.code + k.code
})
})
})
......@@ -285,7 +288,10 @@ export default {
},
// 用于储位回显选中
isSelected(warehouse, area, position = 0){
return !!this.value.find(e => warehouse === e.wareId && area === e.areaId && (position === e.locationId || undefined === e.locationId))
return !!this.value.find(e => {
// 最后一个条件不能用!e.locationId来判断,会导致选择了没有locationId的全部被选中,上次改这里忘记什么原因了,下次复现再来调整
return warehouse === e.wareId && area === e.areaId && (position === e.locationId || e.locationId == undefined)
})
},
}
}
......
......@@ -94,10 +94,14 @@ export default {
}
},
created() {
// 未避免频繁内存溢出,减少请求记录感染,开发的时候不轮询消息
if(process.env.NODE_ENV != 'development'){
setInterval(() => {
this.updateMessage()
}, 10000)
}
this.updateMessage()
setInterval(() => {
this.updateMessage()
}, 10000)
},
components: {
Breadcrumb,
......
......@@ -281,6 +281,11 @@ export default {
component: "BoxSplitDetail",
id: this.processInstance.businessKey,
},
// 退场拆单,跟出货装柜拆单一样
exit_split: {
component: "BoxSplitDetail",
id: this.processInstance.businessKey,
},
merge_detail: {
component: "MergeDetail",
id: this.processInstance.businessKey,
......
......@@ -2,13 +2,13 @@
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item :label="$t('流程编号')" prop="processId">
<el-form-item :label="$t('流程编号')" prop="instanceId">
<el-input v-model="queryParams.instanceId" :placeholder="$t('请输入流程编号')" clearable/>
</el-form-item>
<el-form-item :label="$t('流程名称')" prop="processName">
<el-input v-model="queryParams.processName" :placeholder="$t('请输入任务名称')" clearable/>
</el-form-item>
<el-form-item :label="$t('流程分类')" prop="processName">
<el-form-item :label="$t('流程分类')" prop="categoryId">
<el-select v-model="queryParams.categoryId" :placeholder="$t('请选择流程分类')" clearable>
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BPM_MODEL_CATEGORY)"
:key="dict.value" :label="$l(dict, 'label')" :value="dict.value"/>
......
......@@ -198,7 +198,7 @@ import {
getbox,
getboxPage,
exportboxExcel,
getNoticeList,
getNoticeList, dealCustomsSplitNotify,
} from "@/api/ecw/box";
import {
downloadFile,
......@@ -426,7 +426,7 @@ export default {
}
},
/** 查看按钮操作 */
handleCommand(row, command) {
async handleCommand(row, command) {
this.$set(this.dialogCfg, "fullscreen", false);
switch (command) {
......@@ -513,6 +513,9 @@ export default {
if ([5, 6, 7].includes(noticeType)) {
this.$router.push("/boxSea/query/" + row.id);
}
if([9].includes(noticeType)){
await dealCustomsSplitNotify(row.notifyId)
}
this.closeDialog();
break;
}
......
......@@ -264,6 +264,7 @@ export default {
},
methods: {
getCustomsOrderList(dcCustomsType) {
if(dcCustomsType) dcCustomsType = ''
customsOrderList({
shipmentId: this.shipmentObj.id,
customsTypes: dcCustomsType === "3" ? "2,3" : dcCustomsType,
......
......@@ -796,7 +796,7 @@ export default {
},
/* 获取参数 */
getParams() {
const { rucangtime = [] } = this.queryParams;
let rucangtime = this.queryParams.rucangtime?this.queryParams.rucangtime:[]
return {
...this.queryParams,
...this.$attrs.params,
......
......@@ -178,7 +178,7 @@ export default {
list.push({
...oItem,
warehouseInInfo,
multiSpecification: item.multiSpecification,
multiSpecification: oItem.multiSpecification,
positionNo: oItem.positionNo,
tallyStatus: item.tallyStatus,
tallyTime: item.tallyTime,
......
......@@ -19,6 +19,7 @@
>
<span style="margin-right:20px"><span style="color: #ff4949;">*</span>{{$t('客户')}}</span>
<customer-selector
ref="customer"
v-model="form.customerId"
@change="customerChange"
/>
......@@ -762,6 +763,7 @@ export default {
codePage: {
pageNo: 1,
pageSize: 100
},
pages:1
};
......@@ -772,10 +774,11 @@ export default {
this.id = this.$route.query.id;
this.getReceivableData()
}
console.log(this.$route.query.receiptId)
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.getReceivableInfo()
}else{
this.removeData()
}
},
directives: {
......@@ -907,8 +910,8 @@ export default {
setTimeout(() => {
getBankAccountPage(this.codePage).then(res => {
this.codeLoading = false
this.pages = res.data.pages
this.bankData = this.bankData.concat(res.data.list)
this.pages = (res.data.total/this.codePage.pageSize)+1
})
}, 200)
},
......@@ -1223,7 +1226,7 @@ export default {
return NP.divide(this.currencyList.find(v => v.titleEn === 'NGN').huilv, 100).toFixed(6)
},
customerChange(value) {
if (this.flag) {
if (this.flag||!value) {
this.flag = false
return
}
......@@ -1492,6 +1495,19 @@ export default {
this.queryParams.page = 1;
this.getList()
},
//清空数据
removeData(){
console.log(this.form)
this.$refs.customer.reset()
this.list = []
for(var i in this.form){
if(i=='receiptAccountList'){
this.$set(this.form,i,[])
}else{
this.$set(this.form,i,'')
}
}
}
},
};
</script>
......
......@@ -46,35 +46,51 @@
<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" />
</template>
</el-table-column>
<el-table-column :label="$t('体积')">
<el-table-column :label="$t('入仓体积')">
<template slot-scope="{row}">{{row.volume}}</template>
</el-table-column>
<el-table-column :label="$t('重量')">
<el-table-column :label="$t('收费体积')">
<template slot-scope="{row}">{{row.chargeVolume}}</template>
</el-table-column>
<el-table-column :label="$t('入仓重量')">
<template slot-scope="{row}">{{row.weight}}kg</template>
</el-table-column>
<el-table-column :label="$t('收费重量')">
<template slot-scope="{row}">{{row.chargeWeight}}kg</template>
</el-table-column>
<el-table-column :label="$t('箱数')">
<template slot-scope="{row}">{{row.num}}</template>
<template slot-scope="{row}">
<el-button type="text" @click="showWarehouseRecord(row)">{{row.num}}</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('数量')">
<template slot-scope="{row}">{{row.quantity}}</template>
</el-table-column>
<el-table-column :label="$t('货值')">
<template slot-scope="{row}">{{row.worth}}{{$t('')}}</template>
</el-table-column>
</el-table>
</template>
<warehouse-record v-if="currentWarehouseRecord" :list="currentWarehouseRecord" append-to-body @close="currentWarehouseRecord=null"></warehouse-record>
</div>
</template>
<script>
import {getOrder} from '@/api/ecw/order'
import {getBoxApproval} from '@/api/ecw/box'
import {getChannel} from '@/api/ecw/channel'
import WarehouseRecord from "@/views/ecw/order/splitApply/components/WarehouseRecord";
export default {
props:{
components: {WarehouseRecord},
props:{
id: [String, Number]
},
data(){
return {
detail: null,
order: null,
channel: null
channel: null,
// 查看入仓记录的条目
currentWarehouseRecord: null
}
},
watch:{
......@@ -110,6 +126,12 @@ export default {
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
},
showWarehouseRecord(row){
if(!row.specsRecordVOList){
return this.$message.info(this.$t('暂无入仓记录'))
}
this.currentWarehouseRecord = row.specsRecordVOList
}
}
}
......@@ -122,4 +144,4 @@ export default {
font-weight: bold;
}
}
</style>
\ No newline at end of file
</style>
......@@ -46,31 +46,45 @@
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('体积')">
<template slot-scope="{row}">{{row.volume}}</template>
</el-table-column>
<el-table-column :label="$t('重量')">
<template slot-scope="{row}">{{row.weight}}kg</template>
</el-table-column>
<el-table-column :label="$t('箱数')">
<template slot-scope="{row}">{{row.num}}</template>
</el-table-column>
<el-table-column :label="$t('数量')">
<template slot-scope="{row}">{{row.quantity}}</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template slot-scope="{row}">{{row.remark}}</template>
</el-table-column>
<el-table-column :label="$t('入仓体积')">
<template slot-scope="{row}">{{row.volume}}</template>
</el-table-column>
<el-table-column :label="$t('收费体积')">
<template slot-scope="{row}">{{row.chargeVolume}}</template>
</el-table-column>
<el-table-column :label="$t('入仓重量')">
<template slot-scope="{row}">{{row.weight}}kg</template>
</el-table-column>
<el-table-column :label="$t('收费重量')">
<template slot-scope="{row}">{{row.chargeWeight}}kg</template>
</el-table-column>
<el-table-column :label="$t('箱数')">
<template slot-scope="{row}">
<el-button type="text" @click="showWarehouseRecord(row)">{{row.num}}</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('数量')">
<template slot-scope="{row}">{{row.quantity}}</template>
</el-table-column>
<el-table-column :label="$t('货值')">
<template slot-scope="{row}">{{row.worth}}{{$t('')}}</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template slot-scope="{row}">{{row.remark}}</template>
</el-table-column>
</el-table>
</template>
<warehouse-record v-if="currentWarehouseRecord" :list="currentWarehouseRecord" append-to-body @close="currentWarehouseRecord=null"></warehouse-record>
</div>
</template>
<script>
import {getApproval, getOrder} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getSplitList} from '@/api/ecw/orderHandle'
import WarehouseRecord from "@/views/ecw/order/splitApply/components/WarehouseRecord";
export default {
props:{
components: {WarehouseRecord},
props:{
id: [String, Number]
},
data(){
......@@ -78,7 +92,9 @@ export default {
detail: null,
order: null,
channel: null,
orderSplitBackVOList: []
// orderSplitBackVOList: [],
// 查看入仓记录的条目
currentWarehouseRecord: null
}
},
watch:{
......@@ -86,7 +102,7 @@ export default {
this.getData()
},
detail(){
this.getSplit()
// this.getSplit()
this.getOrder()
},
order(){
......@@ -95,6 +111,11 @@ export default {
}
}
},
computed:{
orderSplitBackVOList(){
return this.detail ? this.detail.orderSplitBackVOList : []
}
},
created(){
if(this.id){
this.getData()
......@@ -106,12 +127,12 @@ export default {
this.detail = JSON.parse(res.data.details)
})
},
getSplit(){
/*getSplit(){
getSplitList({orderId: this.detail.orderId, lang: this.$i18n.locale.toLowerCase().indexOf('zh') > -1 ? 0 : 1 }).then(res => {
console.log('getSplitList', res)
this.orderSplitBackVOList = res.data.orderSplitBackVOList
})
},
},*/
getOrder(){
getOrder(this.detail.orderId).then(res => {
this.order = res.data
......@@ -121,7 +142,13 @@ export default {
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
},
showWarehouseRecord(row){
if(!row.specsRecordVOList){
return this.$message.info(this.$t('暂无入仓记录'))
}
this.currentWarehouseRecord = row.specsRecordVOList
}
}
}
</script>
......@@ -133,4 +160,4 @@ export default {
font-weight: bold;
}
}
</style>
\ No newline at end of file
</style>
......@@ -2,7 +2,7 @@
<div>
<el-descriptions class="margin-top" border :column="4">
<el-descriptions-item :label="$t('唛头')">{{details.marks}}</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">{{details.sumNum || 0}}/{{details.costVO ? details.costVO.totalNum : 0}}</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">{{details.sumNum || 0}}/{{details.sumNum || 0 }}</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="details.status" />
</el-descriptions-item>
......
......@@ -29,7 +29,8 @@
<el-table-column
:label="$t('入仓统计')">
<template v-slot="{row}">
<div>总箱数:{{row.totalNum}}</div>
<div>总箱数:{{row.sumNum}}</div>
<div>体积:{{row.sumVolume}}CBM </div>
<div>重量:{{row.sumWeight}}kg</div>
</template>
......
This diff is collapsed.
<template>
<!-- 拆单入仓记录 -->
<el-dialog :title="$t('入仓记录')" :visible="show" :before-close="closeDialog" :close-on-click-modal="false" width="1000px" :append-to-body="appendToBody">
<el-table :data="list">
<el-table-column type="index" :label="$t('序号')" />
<el-table-column :label="$t('箱数')" prop="num" />
<el-table-column :label="$t('入仓类型')" prop="specificationType">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" />
</template>
</el-table-column>
<el-table-column :label="$t('包装类型')" prop="unit">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="row.unit" />
</template>
</el-table-column>
<el-table-column :label="$t('长')" prop="boxGauge">
<template slot-scope="{row}">
{{row.boxGauge.split('*')[0]}}
</template>
</el-table-column>
<el-table-column :label="$t('宽')" prop="boxGauge" >
<template slot-scope="{row}">
{{row.boxGauge.split('*')[1]}}
</template>
</el-table-column>
<el-table-column :label="$t('高')" prop="boxGauge" >
<template slot-scope="{row}">
{{row.boxGauge.split('*')[2]}}
</template>
</el-table-column>
<el-table-column :label="$t('体积') + '(m³)'" prop="volume" />
<el-table-column :label="$t('重量') + '(kg)'" prop="weight" />
<el-table-column :label="$t('数量(个)')" prop="quantity" />
<el-table-column :label="$t('入仓快递单号')" prop="expressNo" />
<el-table-column :label="$t('首次入仓时间')" prop="inTime" >
<template slot-scope="{row}">{{row.inTime|parseTime}}</template>
</el-table-column>
<el-table-column :label="$t('储位')" prop="orderLocationBackVOList" >
<template slot-scope="{row}">
<!--{{getLocationName(row.orderLocationList)}}-->
<warehouse-area-select
v-model="row.orderLocationList"
readonly
:warehouse-id="warehouseId"
></warehouse-area-select>
</template>
</el-table-column>
</el-table>
</el-dialog>
</template>
<script>
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect/index.vue";
import {parseTime} from "@/utils/ruoyi";
export default {
name: "WarehouseRecord",
components: {WarehouseAreaSelect},
filters: {parseTime},
props:{
list:{
type: Array,
default: []
},
warehouseId: Number,
appendToBody: Boolean
},
data(){
return {
show: false
}
},
mounted() {
this.show = true
},
methods:{
parseTime,
// 获取储位名称
getLocationName(locationArr){
if(!locationArr || !locationArr.length) return ''
let arr = []
locationArr.forEach(item => {
arr.push(`${item.areaName}${item.locationName || ''}`)
})
return Array.from(new Set(arr)).join(",")
},
closeDialog(){
this.show = false
this.$emit('close');
},
}
}
</script>
<style scoped>
</style>
......@@ -18,7 +18,12 @@
</el-table-column>
<el-table-column :label="$t('填单货物属性')">
<template v-slot="{row}">
<div>{{$t('品牌')}}:无</div><div>{{$t('箱数')}}{{row.num}}</div><div>{{$t('体积')}}{{ row.volume }}</div><div>{{$t('重量')}}{{row.weight}}Kg</div>
<div>{{$t('品牌')}}{{(brandList.find(item => item.id == row.brand) || {}).titleZh}} <span v-if="!row.brand">
{{$t('')}}
</span> </div>
<div>{{$t('箱数')}}{{row.num}}</div>
<div>{{$t('体积')}}{{ row.volume }}m³</div>
<div>{{$t('重量')}}{{row.weight}}Kg</div>
</template>
</el-table-column>
<el-table-column :label="$t('入库货物属性')">
......@@ -26,13 +31,18 @@
<div v-for="(item,index) in row.orderWarehouseInBackItemDoList" :key="index">
<div>{{$t('规格')}}{{item.boxGauge.split('*').map(item =>`${item}cm`).join('*')}}</div>
<div>
<div>{{$t('品牌')}}{{(brandList.find(item => item.id == row.brand) || {}).titleZh}}</div>
<div>{{$t('品牌')}}{{(brandList.find(item => item.id == row.brand) || {}).titleZh}}
<span v-if="!row.brand">
{{$t('')}}
</span></div>
<div>{{$t('箱数')}}{{item.cartonsNum}}</div>
<div>{{$t('体积')}}{{item.volume}} CMB</div>
<div>{{$t('重量')}}{{item.weight}}KG</div>
</div>
</div>
<p v-if="row.orderWarehouseInBackItemDoList.length === 0">
{{$t('暂无货物入库信息')}}
</p>
</template>
</el-table-column>
<el-table-column :label="$t('最后操作时间')">
......@@ -42,7 +52,7 @@
</el-table-column>
<el-table-column :label="$t('状态')">
<template v-slot="{row}">
{{calculationStatus(row.cartonsNumDiff)}}
{{calculationStatus(row)}}
</template>
</el-table-column>
</el-table>
......@@ -265,13 +275,19 @@ export default {
},
calculationStatus(){
return (val)=>{
if(val > 0){
return `${this.$t('多')}${val}${this.$t('箱')}`
}else if(val < 0){
return `${this.$t('少')}${Math.abs(val)}${this.$t('箱')}`
}else {
return this.$t('准确到齐')
}
let des = ''
switch (val.diffType) {
case 2 :
des = `${this.$t('多了')}${val.cartonsNumDiff}${this.$t('箱')}`
break
case 3 :
des = `${this.$t('少了')}${val.cartonsNumDiff}${this.$t('箱')}`
break
case 4 :
des = this.$t('准确到齐')
break
}
return des
}
}
},
......@@ -373,11 +389,13 @@ export default {
volume += Number(i.volume)
num += Number(i.num)
weight += Number(i.weight)
i.orderWarehouseInBackItemDoList.forEach(m => {
Wvolume += Number(m.volume || 0)
Wnum += Number(m.cartonsNum || 0)
Wweight += Number(m.weight || 0)
})
if(i.orderWarehouseInBackItemDoList){
i.orderWarehouseInBackItemDoList.forEach(m => {
Wvolume += Number(m.volume || 0)
Wnum += Number(m.cartonsNum || 0)
Wweight += Number(m.weight || 0)
})
}
})
let text = `${this.$t('下单统计')}:${num}${this.$t('箱')} ${volume.toFixed(2)}m³ ${weight.toFixed(2)}Kg`
let text2 =` ${this.$t('入仓统计')}:${Wnum}${this.$t('箱')} ${Wvolume.toFixed(2)}m³ ${Wweight.toFixed(2)}Kg`
......
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