Commit cbea982d authored by 邓春圆's avatar 邓春圆

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

parents 3f6c4215 0f521f96
...@@ -1032,3 +1032,10 @@ export function getOrderItemCommonAttr(orderId, excludeOrderWarehouseInId){ ...@@ -1032,3 +1032,10 @@ export function getOrderItemCommonAttr(orderId, excludeOrderWarehouseInId){
params: {orderId, excludeOrderWarehouseInId} params: {orderId, excludeOrderWarehouseInId}
}) })
} }
//退仓品名列表
export function getOrderItemDeleted(orderId){
return request({
url: '/ecw/order/order-item-info-when-warehouse-in-deleted/' + orderId,
method: 'get',
})
}
...@@ -204,6 +204,7 @@ export default { ...@@ -204,6 +204,7 @@ export default {
this.getOpenedRouterList() this.getOpenedRouterList()
}, },
importCity(){ importCity(){
this.getChannelList()
this.getOpenedRouterList() this.getOpenedRouterList()
}, },
selectedRoutes(val){ selectedRoutes(val){
...@@ -246,7 +247,7 @@ export default { ...@@ -246,7 +247,7 @@ export default {
} }
}, },
async created(){ async created(){
this.channelList = (await getChannelList()).data this.getChannelList()
this.tradeCityList = (await getTradeCityList()).data this.tradeCityList = (await getTradeCityList()).data
// 路线需要过滤失效的进出口城市,所以在程序加载后再加载路线 // 路线需要过滤失效的进出口城市,所以在程序加载后再加载路线
await this.getOpenedRouterList() await this.getOpenedRouterList()
...@@ -268,6 +269,12 @@ export default { ...@@ -268,6 +269,12 @@ export default {
this.inited = true this.inited = true
}, },
methods:{ methods:{
async getChannelList(){
let query = {
cityId: this.importCity
}
this.channelList = (await getChannelList(query)).data
},
getAttrList(){ getAttrList(){
getProductAttrList().then(res => { getProductAttrList().then(res => {
this.attrList = res.data this.attrList = res.data
......
...@@ -318,6 +318,119 @@ ...@@ -318,6 +318,119 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="$t('退仓品名')" name="six">
<el-table :data="orderItemDeletedData" border style="width: 100%">
<el-table-column :label="$t('序号')" width="90px">
<template slot-scope="scope">{{scope.$index + 1}}</template>
</el-table-column>
<el-table-column prop="prodTitleZh" :label="$t('中文品名')" />
<el-table-column prop="prodTitleEn" :label="$t('英文品名')" />
<el-table-column prop="brand" :label="$t('品牌')" width="90px">
<template slot-scope="{row}">
<template v-if="row.brandName">{{row.brandName}}</template>
<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}">
<el-link type="primary" @click.native="showWarehouseLogs(row)">{{row.warehouseInInfoVO ? row.warehouseInInfoVO.cartonsNum : 0}}</el-link>
<div v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.isMultiSpecification">({{$t('多规格')}})</div>
</template>
</el-table-column>
<el-table-column prop="unit" :label="$t('单位')" width="90px">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="row.unit" />
</template>
</el-table-column>
<el-table-column prop="worth" :label="$t('货值')" width="120px"/>
<el-table-column prop="" :label="$t('材质')">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" :value="row.material" />
</template>
</el-table-column>
<el-table-column prop="volume" :label="$t('体积') + '(m³)'" width="90px">
<template slot-scope="{row}">
{{row.warehouseInInfoVO ? row.warehouseInInfoVO.volume : row.volume}}
</template>
</el-table-column>
<el-table-column prop="weight" :label="$t('重量') + '(kg)'" width="90px">
<template slot-scope="{row}">
{{row.warehouseInInfoVO ? row.warehouseInInfoVO.weight : row.weight}}
</template>
</el-table-column>
<el-table-column prop="warehouseInInfoVO.quantityAll" :label="$t('数量') + '(个)'" width="90px">
<template slot-scope="{row}">
{{row.warehouseInInfoVO ? row.warehouseInInfoVO.quantityAll : row.quantity}}
</template>
</el-table-column>
<el-table-column prop="weight" :label="$t('收费重量') + '(kg)'" width="100px">
<template slot-scope="{row}">
{{row.chargeWeight}}
</template>
</el-table-column>
<el-table-column prop="volume" :label="$t('收费方数') + '(m³)'" width="100px">
<template slot-scope="{row}">
{{row.chargeVolume}}
</template>
</el-table-column>
<el-table-column prop="" :label="$t('费用类型')">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_PAY_ADVANCE" :value="row.isPayAdvance" />
</template>
</el-table-column>
<el-table-column prop="" :label="$t('用途')">
<template slot-scope="{row}">
<div v-if="row.usageIds">
<div v-for="(item,index) in row.usageIds.split(',')">
<dict-tag :type="DICT_TYPE.OREER_ITEM_USAGE" :value="item" />
<span v-if="(index+1)!=row.usageIds.split(',').length">,</span>
</div>
</div>
<div v-else></div>
</template>
</el-table-column>
<el-table-column prop="" :label="$t('成交单价')" width="220px">
<template slot-scope="{row}">
<template v-if="row.charging ==1">
<template v-if="!row.originalSeaFreight">{{ $t('未报价') }}</template>
<el-link type="primary" @click="showFeeDetail(row, 'clearance')" v-else>{{$t('全包价')}} {{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</el-link>
</template>
<template v-else-if="!row.originalSeaFreight && !row.originalClearanceFreight">{{ $t('未报价') }}</template>
<template v-else>
<el-link type="primary" @click="showFeeDetail(row, 'freight')">
{{$t('运费')}}{{row.oneSeaFreight}} {{currencyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
</el-link>
<el-link type="primary" @click="showFeeDetail(row, 'clearance')">
{{$t('清关费')}}{{row.oneClearanceFreight}} {{currencyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}
</el-link >
</template>
</template>
</el-table-column>
<el-table-column prop="" :label="$t('储位')">
<template slot-scope="{row}">
<template v-if="row.warehouseInInfoVO">
{{getLocationName(row.warehouseInInfoVO.orderLocationMergeVOSet)}}
</template>
</template>
</el-table-column>
<el-table-column prop="" :label="$t('填单快递单号')">
<template slot-scope="{row}">
<!-- 这里不知道什么原因被改成了入仓单号,现根据bug单改成填单快递单号,如需更改请注明缘由
https://zentao.test.jdshangmen.com/bug-view-2645.html -->
{{ row.expressNo }}
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane :label="$t('订单动态')" name="second"> <el-tab-pane :label="$t('订单动态')" name="second">
<el-timeline v-if="order.orderTimeVOList && order.orderTimeVOList.length" :reverse="true"> <el-timeline v-if="order.orderTimeVOList && order.orderTimeVOList.length" :reverse="true">
<el-timeline-item v-for="(activity, index) in order.orderTimeVOList" :key="index" :timestamp="parseTime(activity.businessTime)"> <el-timeline-item v-for="(activity, index) in order.orderTimeVOList" :key="index" :timestamp="parseTime(activity.businessTime)">
...@@ -533,7 +646,7 @@ ...@@ -533,7 +646,7 @@
</template> </template>
<script> <script>
import {getOrder, operateLogPage} from '@/api/ecw/order' import {getOrder, operateLogPage,getOrderItemDeleted} from '@/api/ecw/order'
import { getDictDatas, DICT_TYPE, getDictData } from '@/utils/dict'; import { getDictDatas, DICT_TYPE, getDictData } from '@/utils/dict';
import PrintWarehouseReceipt from './components/PrintWarehouseReceipt' import PrintWarehouseReceipt from './components/PrintWarehouseReceipt'
import PrintLadingBill from './components/PrintLadingBill' import PrintLadingBill from './components/PrintLadingBill'
...@@ -611,7 +724,8 @@ export default { ...@@ -611,7 +724,8 @@ export default {
showFeeSummary: false, // 是否显示费用汇总 showFeeSummary: false, // 是否显示费用汇总
shopPackId:null,//显示打包历史的ID shopPackId:null,//显示打包历史的ID
packAfterData:null,//显示打包历史详情 packAfterData:null,//显示打包历史详情
attrList: [] attrList: [],
orderItemDeletedData:[],//退仓品名
} }
}, },
computed:{ computed:{
...@@ -687,6 +801,7 @@ export default { ...@@ -687,6 +801,7 @@ export default {
this.orderId = this.$route.query.orderId this.orderId = this.$route.query.orderId
this.getOrder(); this.getOrder();
this.getOfferNumber() this.getOfferNumber()
this.getOrderItemDeleted()
} }
getCurrencyList().then(res => this.currencyList = res.data) getCurrencyList().then(res => this.currencyList = res.data)
...@@ -844,6 +959,14 @@ export default { ...@@ -844,6 +959,14 @@ export default {
if(that.order.airlineCompany) that.getAirCompany() if(that.order.airlineCompany) that.getAirCompany()
}); });
}, },
//退仓品名
getOrderItemDeleted(){
let that = this
// 执行查询
getOrderItemDeleted(that.orderId).then(response => {
that.orderItemDeletedData = response.data;
});
},
/* loadBrands(){ /* loadBrands(){
let brandIds = [] let brandIds = []
this.form.orderItemVOList.forEach(item => { this.form.orderItemVOList.forEach(item => {
......
...@@ -88,19 +88,6 @@ ...@@ -88,19 +88,6 @@
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" formatter="number" <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" formatter="number"
clearable/> clearable/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('出货渠道')" prop="channelId" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'">
<!--嵌套一个form来脱离disabled控制-->
<el-form>
<selector
v-model="form.channelId"
:options="channelList"
value-field="channelId"
:label-field="$l(null, 'name')"
clearable
></selector>
</el-form>
</el-form-item>
</div> </div>
<div class="form-section"> <div class="form-section">
<el-form-item :label="$t('始发城市')" prop="departureId" :disabled="false"> <el-form-item :label="$t('始发城市')" prop="departureId" :disabled="false">
...@@ -126,6 +113,20 @@ ...@@ -126,6 +113,20 @@
</option> </option>
</select> </select>
</div> </div>
<div class="form-section mt-10">
<el-form-item :label="$t('出货渠道')" prop="channelId" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'">
<!--嵌套一个form来脱离disabled控制-->
<el-form>
<selector
v-model="form.channelId"
:options="channelList"
value-field="channelId"
:label-field="$l(null, 'name')"
clearable
></selector>
</el-form>
</el-form-item>
</div>
<!--目的港清关:选择专线空运才显示,默认选中我司 <!--目的港清关:选择专线空运才显示,默认选中我司
我司选中后,按钮下方显示“多票”和“单票”的操作,默认选中多票。 我司选中后,按钮下方显示“多票”和“单票”的操作,默认选中多票。
客户选中后,按钮下方显示“单票”的操作,默认选中,无需点击--> 客户选中后,按钮下方显示“单票”的操作,默认选中,无需点击-->
......
...@@ -121,9 +121,9 @@ export default { ...@@ -121,9 +121,9 @@ export default {
// 如果某条入仓记录下的箱明细被全部选中了,则需要将他的快递单号和影像带过去 // 如果某条入仓记录下的箱明细被全部选中了,则需要将他的快递单号和影像带过去
const expressNos = [] const expressNos = []
const pictureUrls = [] const pictureUrls = []
this.orderItemDetails.forEach(warehouseIn => { this.orderItemDetails.forEach((warehouseIn, index) => {
// 本条入仓记录被选中的明细数 // 本条入仓记录被选中的明细数
const selectedCount = arr.filter(item => item.warehouseInId == warehouseIn.id).length const selectedCount = this.multipleSelection.filter(item => item.warehouseInId == warehouseIn.id).length
if(selectedCount == warehouseIn.orderWarehouseInCommonAttrVOList?.length){ if(selectedCount == warehouseIn.orderWarehouseInCommonAttrVOList?.length){
if(warehouseIn.expressNo){ if(warehouseIn.expressNo){
expressNos.push(warehouseIn.expressNo) expressNos.push(warehouseIn.expressNo)
......
...@@ -727,8 +727,9 @@ export default { ...@@ -727,8 +727,9 @@ export default {
if(window.ChooseOrderProductsExpressNos?.length){ if(window.ChooseOrderProductsExpressNos?.length){
// 去重追加 // 去重追加
window.ChooseOrderProductsExpressNos?.forEach(no => { window.ChooseOrderProductsExpressNos?.forEach(no => {
if(row.expressNo.indexOf(no) === -1){ if(!row.expressNo || row.expressNo.indexOf(no) === -1){
row.expressNo += "," + no if(row.expressNo?.length) row.expressNo += ","
row.expressNo += no
} }
}) })
......
...@@ -65,6 +65,12 @@ ...@@ -65,6 +65,12 @@
<span style="margin-right:10px">{{(orderData.vweight||0)+'kg '}}</span> <span style="margin-right:10px">{{(orderData.vweight||0)+'kg '}}</span>
<span>{{(orderData.sumQuantity||0) +$t('')}}</span> <span>{{(orderData.sumQuantity||0) +$t('')}}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('重货标准')" v-if="type=='order_heavy_cargo_exception'">
{{orderData.orgWeightUnit||$t('')}}
</el-descriptions-item>
<el-descriptions-item :label="$t('泡货标准')" v-else>
{{orderData.orgVolumeUnit||$t('')}}
</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
...@@ -134,7 +140,11 @@ ...@@ -134,7 +140,11 @@
<el-descriptions-item :label="$t('处理时间')"> <el-descriptions-item :label="$t('处理时间')">
{{parseTime(handlerParams.handlerTime)}} {{parseTime(handlerParams.handlerTime)}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :label="$t('处理结果')"> <el-descriptions-item :label="$t('处理结果')" v-if="type=='order_heavy_cargo_exception'">
<span v-if="handlerParams.handlerResult=='general_cargo'">{{$t('设为普货')}}</span>
<span v-else-if="handlerParams.handlerResult=='process'">{{$t('设为已处理')}}</span>
</el-descriptions-item>
<el-descriptions-item :label="$t('处理结果')" v-if="type!='order_heavy_cargo_exception'">
<span v-if="handlerParams.handlerResult=='general_cargo'">{{$t('设为免泡')}}</span> <span v-if="handlerParams.handlerResult=='general_cargo'">{{$t('设为免泡')}}</span>
<span v-else-if="handlerParams.handlerResult=='process'">{{$t('设为全泡')}}</span> <span v-else-if="handlerParams.handlerResult=='process'">{{$t('设为全泡')}}</span>
<span v-else>{{$t('设为半抛')}}</span> <span v-else>{{$t('设为半抛')}}</span>
...@@ -146,9 +156,16 @@ ...@@ -146,9 +156,16 @@
</el-card> </el-card>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<div v-if="list.orderExceptionStatus!=2"> <div v-if="list.orderExceptionStatus!=2">
<div v-if="type=='order_heavy_cargo_exception'">
<el-button type="primary" @click="submit('general_cargo')">{{$t('设为普货')}}</el-button>
<el-button plain type="primary" @click="submit('process')">{{$t('设为已处理')}}</el-button>
</div>
<div v-else>
<el-button type="primary" @click="submit('general_cargo')">{{$t('设为免泡')}}</el-button> <el-button type="primary" @click="submit('general_cargo')">{{$t('设为免泡')}}</el-button>
<el-button plain type="primary" @click="submit('process')">{{$t('设为全泡')}}</el-button> <el-button plain type="primary" @click="submit('process')">{{$t('设为全泡')}}</el-button>
<el-button v-if="type!='order_heavy_cargo_exception'" plain type="primary" @click="submit('half_throw')">{{$t('设为半抛')}}</el-button> <el-button plain type="primary" @click="submit('half_throw')">{{$t('设为半抛')}}</el-button>
</div>
</div> </div>
<div v-else> <div v-else>
<el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button> <el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
......
...@@ -470,7 +470,7 @@ export default { ...@@ -470,7 +470,7 @@ export default {
}, },
// 获得用语提交的阶梯价副本 // 获得用语提交的阶梯价副本
getPriceList(stepList){ getPriceList(stepList, prefix){
if(!stepList?.length) return [] if(!stepList?.length) return []
let stepPriceList = JSON.parse(JSON.stringify(stepList)) let stepPriceList = JSON.parse(JSON.stringify(stepList))
stepPriceList.forEach((item, index) => { stepPriceList.forEach((item, index) => {
...@@ -481,7 +481,10 @@ export default { ...@@ -481,7 +481,10 @@ export default {
return p return p
}) })
}) })
return stepPriceList // 240121应老王要求,未设置价格的不提交
return stepPriceList.filter(item => {
return !!item[`${prefix}Price`]
})
}, },
// 非阶梯价格更新单位 // 非阶梯价格更新单位
handleFormUnitChange(data){ handleFormUnitChange(data){
...@@ -571,12 +574,12 @@ export default { ...@@ -571,12 +574,12 @@ export default {
// 全包价 // 全包价
if(this.form.priceType == 1) { if(this.form.priceType == 1) {
data.fullPriceStepList = this.getPriceList(this.form.fullPriceStepList) data.fullPriceStepList = this.getPriceList(this.form.fullPriceStepList, 'all')
delete data.clearancePriceStepList delete data.clearancePriceStepList
delete data.freightPriceStepList delete data.freightPriceStepList
}else{ }else{
data.clearancePriceStepList = this.getPriceList(this.form.clearancePriceStepList) data.clearancePriceStepList = this.getPriceList(this.form.clearancePriceStepList, 'clearance')
data.freightPriceStepList = this.getPriceList(this.form.freightPriceStepList) data.freightPriceStepList = this.getPriceList(this.form.freightPriceStepList, 'transport')
delete data.fullPriceStepList delete data.fullPriceStepList
} }
......
...@@ -313,7 +313,12 @@ export default { ...@@ -313,7 +313,12 @@ export default {
item[data.field] = data.value item[data.field] = data.value
if(item.packagingList?.length){ if(item.packagingList?.length){
item.packagingList.forEach(p => { item.packagingList.forEach(p => {
p[data.field] = data.value if(data.field.indexOf("PriceUnit") > -1){
p['packagingPriceUnit'] = data.value
}
if(data.field.indexOf("VolumeUnit") > -1){
p['packagingVolumeUnit'] = data.value
}
}) })
} }
if(item.specialList?.length){ if(item.specialList?.length){
...@@ -336,7 +341,10 @@ export default { ...@@ -336,7 +341,10 @@ export default {
return p return p
}) })
}) })
return stepPriceList // 240121应老王要求,未设置价格的不提交
return stepPriceList.filter(item => {
return !!item[`${prefix}Price`]
})
}, },
submitForm() { submitForm() {
...@@ -376,12 +384,12 @@ export default { ...@@ -376,12 +384,12 @@ export default {
// 全包价 // 全包价
if(this.form.priceType == 1) { if(this.form.priceType == 1) {
data.fullPriceStepList = this.getPriceList(this.form.fullPriceStepList) data.fullPriceStepList = this.getPriceList(this.form.fullPriceStepList, 'all')
delete data.clearancePriceStepList delete data.clearancePriceStepList
delete data.freightPriceStepList delete data.freightPriceStepList
}else{ }else{
data.clearancePriceStepList = this.getPriceList(this.form.clearancePriceStepList) data.clearancePriceStepList = this.getPriceList(this.form.clearancePriceStepList, 'clearance')
data.freightPriceStepList = this.getPriceList(this.form.freightPriceStepList) data.freightPriceStepList = this.getPriceList(this.form.freightPriceStepList, 'transport')
delete data.fullPriceStepList delete data.fullPriceStepList
} }
......
...@@ -343,21 +343,6 @@ export default { ...@@ -343,21 +343,6 @@ export default {
}, },
stepPrice(val){ stepPrice(val){
this.$set(this.form, 'stepPrice', val ? 1 : 0) this.$set(this.form, 'stepPrice', val ? 1 : 0)
},
selectedRoutes(routers) {
let transportIds = []
routers.forEach(item => {
item.shippingChannelId = item.channelId
transportIds.push(+item.transportId)
})
// 如果只选择了空运(3),则默认体积单位改成千克
transportIds = new Set(transportIds)
console.log(transportIds)
window.transportIds = transportIds
if(transportIds.size == 1 && transportIds.has(3)){
this.setDefaultVolumeUnit(6)
}else this.setDefaultVolumeUnit(7)
} }
}, },
async created() { async created() {
......
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