Commit 1ea36fb9 authored by 邓春圆's avatar 邓春圆

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

parents 86cc2695 d4efe0fc
......@@ -44,7 +44,7 @@
<el-table-column :label="$t('储位')" align="center" prop="positionNo" width="250px">
<template slot-scope="{ row }">
<div v-for="item in row.orderItemDOS" :key="item.orderItemId">
{{ notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)) }}
{{ (item.warehouseInInfoVO&&item.warehouseInInfoVO.orderLocationMergeVOSet)?notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)):'' }}
</div>
</template>
</el-table-column>
......
......@@ -43,7 +43,7 @@
<el-table-column :label="$t('储位')" align="center" prop="positionNo" width="250px">
<template slot-scope="{ row }">
<div v-for="item in row.orderItemDOS" :key="item.orderItemId">
{{ notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)) }}
{{ (item.warehouseInInfoVO&&item.warehouseInInfoVO.orderLocationMergeVOSet)?notset(getpositionNo(item.warehouseInInfoVO.orderLocationMergeVOSet)):'' }}
</div>
</template>
</el-table-column>
......
<template>
<div>
<div class="wrapper">
<template v-if="!readonly">
<el-row type="flex" align="align" :gutter="10" >
<el-col :span="6">空运订单重量上限(kg)</el-col>
<el-col :span="6">{{$t('空运订单重量上限')}}(kg)</el-col>
<el-col :span="6" ><el-input v-model="value1.airWeightLimit"></el-input></el-col>
<el-col :span="6">
<slot></slot>
</el-col>
</el-row>
<h1>空运清关费</h1>
<h1>{{$t('空运清关费')}}</h1>
</template>
<div v-for="(item ,index) in value1[keyArr]">
<el-row :gutter="10">
<el-col :span="4">
第{{index + 1 }}阶梯定价方案
<el-col :span="5">
{{$t('第{index}阶梯定价方案', {index: index+1})}}
</el-col>
<el-col :span="6" v-if="!readonly">
<el-button type="primary" @click="addInterval" v-if="index === 0" >
添加区间
{{$t('添加区间')}}
</el-button>
<el-button type="danger" @click="deleteFn(index)" v-else>
删除
{{$t('删除')}}
</el-button>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="3">
第{{index + 1}}阶梯
<el-col :span="5">
{{$t('第{index}阶梯', {index: index+1})}}
</el-col>
<el-col :span="9">
<el-col :span="15">
<div style="display: flex;align-items: center;">
<el-input v-model="item.startNum"></el-input> - <el-input v-model="item.endNum" ></el-input > /
<el-input v-model="item.startNum" class="mr-10"></el-input>
<span class="mr-10">-</span>
<el-input v-model="item.endNum" class="mr-10"></el-input >
<span class="mr-10">/</span>
<weight-select @change="changeWeight" :disabled="index > 0" v-model="item.weightUnit" :options="unitList"></weight-select>
</div>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="3" >
空运清关费
<el-col :span="5" >
{{$t('空运清关费')}}
</el-col>
<el-col :span="9">
<el-col :span="15">
<div style="display: flex;align-items: center;">
<el-input v-model="item.clearancePrice"></el-input>
<currency-select @change="setCurrency" :disabled="index > 0" :options="currencyList" v-model="item.clearancePriceUnit"></currency-select>
/ <weight-select :disabled="index > 0" @change="setAirFreightWeight" :options="unitList" v-model="item.clearanceVolumeUnit"></weight-select>
<el-input v-model="item.clearancePrice" class="mr-10"></el-input>
<currency-select class="mr-10" @change="setCurrency" :disabled="index > 0" :options="currencyList" v-model="item.clearancePriceUnit"></currency-select>
<span class="mr-10">/</span>
<weight-select :disabled="index > 0" @change="setAirFreightWeight" :options="unitList" v-model="item.clearanceVolumeUnit"></weight-select>
</div>
</el-col>
</el-row>
......@@ -153,6 +157,9 @@ export default {
</script>
<style scoped>
.wrapper{
font-size: 14px;
}
.el-row {
margin-bottom: 10px;
display: flex;
......
......@@ -1103,11 +1103,11 @@ export default {
this.form.prodCreateReqVOList.forEach(item => {
let tmp = {...item}
tmp.prodAttrIds = tmp.prodAttrArr.join(',')
if(!tmp.volume)tmp.volume = 1
if(!tmp.weight)tmp.weight = 1
if(!tmp.quantity)tmp.quantity = 1
if(!tmp.num)tmp.num = 1
if(!tmp.worth)tmp.worth = 1
if(!tmp.volume)tmp.volume = 0
if(!tmp.weight)tmp.weight = 0
if(!tmp.quantity)tmp.quantity = 0
if(!tmp.num)tmp.num = 0
if(!tmp.worth)tmp.worth = 0
arr.push(tmp)
})
return arr
......
......@@ -81,7 +81,7 @@
<el-descriptions-item :label="$t('运输方式')" >
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, order.transportId).cssClass == 'channel'":label="$t('出货渠道')" >{{channelName}}</el-descriptions-item>
<el-descriptions-item v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, order.transportId).cssClass == 'channel'":label="$t('出货渠道')" >{{order.channelName}}</el-descriptions-item>
</el-descriptions>
</el-card>
......@@ -164,6 +164,36 @@
</el-descriptions>
</el-card>
<el-card class="card" v-if="[3,4].indexOf(+order.transportId) > -1">
<el-descriptions class="mr-10" border :title="$t('空运专线')" :column="2" :labelStyle="{width:'110px'}" :contentStyle="{width:'150px'}">
<el-descriptions-item :label="$t('是否双清')">
<dict-tag :type="DICT_TYPE.ECW_DOUBLE_CLEAR" :value="order.doubleClear" />
</el-descriptions-item>
<el-descriptions-item :label="$t('航空公司')">
{{ order.companyName||'' }}
</el-descriptions-item>
<el-descriptions-item :label="$t('清关证书')">
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('清关证书备注')">
{{ order.customsClearCertRemarks }}
</el-descriptions-item>
<el-descriptions-item :label="$t('是否拆包')">
{{order.isUnpack? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('单票立刻转运')">
{{order.isSingleTicketTransport? this.$t('是'):this.$t('否')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('特殊要求')">
<template v-if="order.packageType">
<dict-tag v-for="packageType in order.packageType.split(',').filter(item => !!item)" class="mr-10" :key="packageType" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" :value="packageType" />
</template>
</el-descriptions-item>
<el-descriptions-item :label="$t('特殊要求备注')">
{{order.packageRemarks}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="card">
<el-tabs v-model="activeName">
<el-tab-pane :label="$t('货物详情')" name="first">
......@@ -179,6 +209,11 @@
<dict-tag v-else :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" />
</template>
</el-table-column>
<el-table-column prop="brand" :label="$t('特性')" width="90px">
<template slot-scope="{row}">
{{showAttrText(row.warehouseInInfoVO ? row.warehouseInProdAttrIds : row.prodAttrIds)}}
</template>
</el-table-column>
<el-table-column prop="num" :label="$t('填单件数')" width="90px"/>
<el-table-column prop="sumNum" :label="$t('入仓件数')" width="90px">
<template slot-scope="{row}">
......@@ -415,7 +450,12 @@
</div>
</el-col>
<el-col :span="12" v-if="feeDetail.charging != 1">
<div>{{$t('清关费')}}</div>
<div>
{{$t('清关费')}}
<template v-if="order.transportId == 3 || order.transportId == 4">
{{$t('来自{source}', {source: feeDetail.airClearanceSource + feeDetail.sourceName})}}
</template>
</div>
<div v-for="item in feeDetail.clearance">
{{item.label}}: {{item.value}}
<template v-if="item.currency">
......@@ -493,6 +533,8 @@ import FeeDetail from "@/views/ecw/order/components/FeeDetail.vue";
import PackHistory from './components/PackHistory';
import PackHistoryDetail from './components/PackHistoryDetail';
import {getOfferCheck} from '@/api/ecw/offer'
import {getSupplier} from "@/api/ecw/supplier";
import {getProductAttrList} from "@/api/ecw/productAttr";
export default {
name: "detail",
......@@ -549,7 +591,7 @@ export default {
showFeeSummary: false, // 是否显示费用汇总
shopPackId:null,//显示打包历史的ID
packAfterData:null,//显示打包历史详情
attrList: []
}
},
computed:{
......@@ -585,6 +627,18 @@ export default {
// 判断用户是否有查看客户详情的权限
hasCustomerDetailPermi(){
return checkPermi(['ecw:customer:index-query'])
},
// 显示特性
showAttrText(){
return ids => {
if(!ids) return ''
ids = !Array.isArray(ids) ? ids.split(',') : ids
const attrMap = {}
this.attrList.forEach(item => {
attrMap[item.id] = this.$l(item, 'attrName')
})
return ids.map(id => attrMap[id]).join(',')
}
}
},
watch:{
......@@ -596,9 +650,6 @@ export default {
this.loadLogs()
}
},
'order.channelId'(){
this.getChannel()
},
'order.consigneeVO'(val){
if(!val) return '-'
listByIds({ids: [val.country, val.province, val.city].join(',')}).then(res => {
......@@ -620,6 +671,10 @@ export default {
getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data)
getProductAttrList().then(response => {
this.attrList = response.data;
})
},
methods: {
checkPermi, // 检查权限
......@@ -636,6 +691,11 @@ export default {
handleChange(val){
this.showText = val.length>0? this.$t('隐藏') : this.$t('显示更多')
},
getAirCompany(){
getSupplier(this.order.airlineCompany).then(res => {
this.$set(this.order,'companyName',this.$l(res.data,'company'))
})
},
//订单信息显示更多
consigneeChange(){
this.showMore = !this.showMore;
......@@ -721,8 +781,16 @@ export default {
label: this.$t('价格更新时间'),
value: parseTime(row.updateTime)
})
this.feeDetail = {freight, clearance, charging: row.charging, coupons: row.couponInfoVOList}
this.feeDetail = {
freight,
clearance,
charging:
row.charging,
coupons: row.couponInfoVOList,
airClearanceSource: row.airClearanceSource == 1 ? this.$t('商品') : this.$t('渠道'), // 空运清关费来源:1 商品 2 渠道
airClearanceInfo: JSON.parse(row.airClearanceInfo), //空运清关费来源数据详情,
sourceName: row.airClearanceSource == 1 ? this.$l(row, 'prodTitle') : this.order?.channelName
}
},
closeFeeDetail(){
this.showFeeDetailDialog = null
......@@ -734,7 +802,7 @@ export default {
// 执行查询
getOrder(that.orderId).then(response => {
that.order = response.data;
// this.loadBrand()
if(that.order.airlineCompany) that.getAirCompany()
});
},
/* loadBrands(){
......@@ -751,12 +819,12 @@ export default {
})
})
}, */
getChannel(){
/*getChannel(){
if(!this.order || !this.order.channelId || this.order.transportId == 1 || this.order.transportId == 2) return
getChannel(this.order.channelId).then(res => {
this.channelName = res.data.nameZh
})
},
},*/
loadFeeList(){
getReceivableListByOrderId({id: this.orderId}).then(res => {
this.feeList = res.data
......
......@@ -1464,10 +1464,10 @@ export default {
let arr = []
this.form.orderItemVOList.forEach(item => {
let tmp = {...item}
if(!tmp.volume)tmp.volume = 1
if(!tmp.weight)tmp.weight = 1
if(!tmp.quantity)tmp.quantity = 1
if(!tmp.num)tmp.num = 1
if(!tmp.volume)tmp.volume = 0
if(!tmp.weight)tmp.weight = 0
if(!tmp.quantity)tmp.quantity = 0
if(!tmp.num)tmp.num = 0
tmp.orderType = item.orderItemType
arr.push(tmp)
})
......
......@@ -108,6 +108,13 @@
<el-option :label="$t('自有仓')" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('特需')" prop="packageType">
<el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable >
<template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)">
<el-option :label="$l(item, 'label')" :value="item.value"></el-option>
</template>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="">
......@@ -273,10 +280,12 @@ import {listServiceUser,userList} from "@/api/system/user"
import CustomerSelector from '@/components/CustomerSelector'
import ProductSelector from '@/components/ProductSelector'
import {getWarehouseList} from '@/api/ecw/warehouse'
import Template from "@/views/cms/template/index.vue";
export default {
name: "EcwOrderException",
components: {
Template,
CustomerSelector,ProductSelector
},
data() {
......@@ -343,6 +352,10 @@ export default {
this.list = []
// 处理查询参数
let params = {...this.queryParams}
if(params.packageTypeArr && params.packageTypeArr.length){
params.packageType = params.packageTypeArr.join(',')
delete params.packageTypeArr
}
// 执行查询
getOrderExceptionPage(params).then(response => {
this.list = response.data.list;
......
......@@ -95,6 +95,13 @@
<el-form-item :label="$t('出货渠道')" prop="number">
<selector :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector>
</el-form-item>
<el-form-item :label="$t('特需')" prop="packageType">
<el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable >
<template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)">
<el-option :label="$l(item, 'label')" :value="item.value"></el-option>
</template>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -171,7 +178,19 @@
{{scope.row.statusMsg}}
</template>
</el-table-column>
<el-table-column :label="$t('预计运费/清关费')" align="center" prop="status">
<template slot-scope="{row}">
<div v-if="row.costVO">
<template v-for="item in row.costVO.feeDtoList">
<div v-if="[1,2].indexOf(item.feeType) > -1">
{{item.feeType == 1 ? $t('运费'):$t('清关费')}}
{{item.amount}}
{{currencyMap[item.currencyId]}}
</div>
</template>
</div>
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width actions" width="150px">
<template slot-scope="scope">
<el-button type="text" @click="setCanShipment(scope.row)" v-hasPermi="['ecw:order:peddingList:can_shipment']">{{$t('可出')}}</el-button>
......@@ -237,9 +256,11 @@ import { getCurrencyPage } from "@/api/ecw/currency";
import SplitRevoke from "@/views/ecw/order/components/SplitRevoke";
import {getChannelList} from "@/api/ecw/channel";
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload";
import Template from "@/views/cms/template/index.vue";
export default {
name: "EcwPeddingList",
components: {
Template,
UserSelector,
FeeApplication,
BatchSingleApplication,
......@@ -331,6 +352,13 @@ export default {
}
let queryParams = Object.assign({}, this.queryParams, timeParams)
return queryParams
},
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
}
},
activated(){
......@@ -348,8 +376,12 @@ export default {
/** 查询列表 */
getList() {
this.loading = true;
const query = {...this.combinedQueryParams}
if(query.packageTypeArr && query.packageTypeArr.length){
query.packageType = query.packageTypeArr.join(',')
}
// 执行查询
waitingShipmentPage(this.combinedQueryParams).then(response => {
waitingShipmentPage(query).then(response => {
// 部分情况下,订单后面的操作下拉菜单会显示按钮,但是下来没有选项,在elTable组件更新的时候会导致渲染错误,所以要在更新渲染前清空一次list让table彻底重新渲染,避免部分更新导致异常
this.list = []
this.$nextTick(() => {
......
......@@ -95,6 +95,13 @@
<el-form-item :label="$t('出货渠道')" prop="number">
<selector :options="channelList" :label-field="$l('name')" value-field="channelId" v-model="queryParams.channelId"></selector>
</el-form-item>
<el-form-item :label="$t('特需')" prop="packageType">
<el-select v-model="queryParams.packageTypeArr" multiple :placeholder="$t('请选择')" clearable >
<template v-for="item in getDictDatas(DICT_TYPE.ORDER_SPECIAL_NEEDS)">
<el-option :label="$l(item, 'label')" :value="item.value"></el-option>
</template>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
......@@ -213,9 +220,11 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
import { getCurrencyPage } from "@/api/ecw/currency";
import SplitRevoke from "@/views/ecw/order/components/SplitRevoke";
import {getChannelList} from "@/api/ecw/channel";
import Template from "@/views/cms/template/index.vue";
export default {
name: "EcwOrderStockinglist",
components: {
Template,
UserSelector,
FeeApplication,
BatchSingleApplication,
......@@ -305,8 +314,12 @@ export default {
/** 查询列表 */
getList() {
this.loading = true;
const query = {...this.combinedQueryParams}
if(query.packageTypeArr && query.packageTypeArr.length){
query.packageType = query.packageTypeArr.join(',')
}
// 执行查询
canShipmentPage(this.combinedQueryParams).then(response => {
canShipmentPage(query).then(response => {
// 部分情况下,订单后面的操作下拉菜单会显示按钮,但是下来没有选项,在elTable组件更新的时候会导致渲染错误,所以要在更新渲染前清空一次list让table彻底重新渲染,避免部分更新导致异常
this.list = []
this.$nextTick(() => {
......
......@@ -5,7 +5,7 @@
<img src="../../../assets/svg/success.svg" />
</div>
<div class="flex-1">
<div class="title">{{$t('增订单生成成功')}}</div>
<div class="title">{{$t('建订单成功')}}</div>
<div class="line bold font-lg">{{$t('订单号')}}{{order.orderNo}}</div>
<div class="line">{{$t('唛头')}}{{order.marks}}</div>
......@@ -17,6 +17,7 @@
<div class="line flex-1">{{$t('路线')}}{{$l(order.logisticsInfoDto, 'startTitle')}} >> {{$l(order.logisticsInfoDto, 'destTitle')}}</div>
<div class="line flex-1">{{$t('单证报关')}}<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /></div>
</div>
<div class="line">{{$t('控货')}}<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCargoControl" /></div>
<div class="line">{{$t('商品列表')}}
<span v-for="(item, index) in order.orderItemVOList" :key="index">
......
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