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

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

parents 30496d46 bf441e68
...@@ -121,3 +121,12 @@ export function getOrderExcptionResult(query) { ...@@ -121,3 +121,12 @@ export function getOrderExcptionResult(query) {
params: query params: query
}) })
} }
// 根据订单ID,异常ID获取价格
export function getOrderExceptionChannelPriceList(data) {
return request({
url: '/order/exception-channel-price/getOrderExceptionChannelPriceList',
method: 'post',
data: data
})
}
\ No newline at end of file
...@@ -3897,5 +3897,6 @@ ...@@ -3897,5 +3897,6 @@
"收费方数": "", "收费方数": "",
"可放入重量": "", "可放入重量": "",
"可放入收费重量": "", "可放入收费重量": "",
"确定注销并退出系统吗?": "Are you sure to log out and exit the system?" "确定注销并退出系统吗?": "Are you sure to log out and exit the system?",
"若线路价格为全包价,输入清关费不生效":"If the line price is all-inclusive, the input of clearance fees will not take effect."
} }
...@@ -403,6 +403,12 @@ export default { ...@@ -403,6 +403,12 @@ export default {
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath path: this.processInstance.processDefinition?.formCustomViewPath
}, },
// 出货批量加价审核
box_batch_markup:{
component: () => import('@/views/ecw/box/components/batchMakeUpDetail.vue'),
processId: this.processInstance.businessKey,
type: this.processInstance.processDefinition?.formCustomViewPath
}
} }
console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim()) console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()] return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
......
<!--批量加价--> <!--批量加价-->
<template> <template>
<div class="app-container"> <div class="app-container">
<div class="page-title">批量加价</div> <div class="page-title">{{$t('批量加价')}}</div>
<div> <div>
运费或全包加价 {{$t('运费或全包加价')}}
<!--货币--> <!--货币-->
<selector v-model="form.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable class="w-100 ml-10" /> <selector v-model="form.freightCurrencyId" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
<!--金额--> <!--金额-->
<el-input type="number" v-model="form.cashCondition" @keyup.native="checkPositive(form, 'cashCondition')" class="w-100 ml-10" /> <el-input type="number" v-model="form.freightFee" @keyup.native="checkPositive(form, 'freightFee')" class="w-100 ml-10" />
<!--单位--> <!--单位-->
<selector v-model="form.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable class="w-100 ml-10" /> <selector v-model="form.freightUnitId" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
</div> </div>
<div class="mt-10"> <div class="mt-10">
清关费加价价 {{$t('清关费加价价')}}
<!--货币--> <!--货币-->
<selector v-model="form.reduceCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable class="w-100 ml-10" /> <selector v-model="form.clearanceCurrencyId" :options="currencyList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
<!--金额--> <!--金额-->
<el-input type="number" v-model="form.cashCondition" @keyup.native="checkPositive(form, 'cashCondition')" class="w-100 ml-10" /> <el-input type="number" v-model="form.clearanceFee" @keyup.native="checkPositive(form, 'clearanceFee')" class="w-100 ml-10" />
<!--单位--> <!--单位-->
<selector v-model="form.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable class="w-100 ml-10" /> <selector v-model="form.clearanceUnitId" :options="unitList" :label-field="$l('title')" value-field="id" defaultable class="w-100 ml-10" />
<span>*{{$t('若线路价格为全包价,输入清关费不生效')}}</span>
</div> </div>
<el-card class="mt-20" v-if="shipmentObj"> <el-card class="mt-20" v-if="shipmentObj">
...@@ -55,16 +56,24 @@ ...@@ -55,16 +56,24 @@
<el-card class="mt-20"> <el-card class="mt-20">
<div slot="header"> <div slot="header">
明细 {{$t('明细')}}
</div> </div>
<div> <div class="flex-row" style="display: flex">
当前部分: <div class="flex-1">
{{$t('当前部分')}}
<el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange"> <el-select :placeholder="$t('请选择')" v-model="sectionId" @change="sectionChange">
<el-option key="0" :label="$t('全部')" value="0"></el-option> <el-option key="0" :label="$t('全部')" :value="0"></el-option>
<el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option> <el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select> </el-select>
</div> </div>
<el-table border :data="orderList" @selection-change="handleSelectionChange" class="mt-10"> <div class="document-status" v-if="sectionObj">
<span>{{$t('单证状态')}}</span>
<template v-for="(item, index) in getDocStatus(sectionObj.sectionOrderList)">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item" :key="index" />
</template>
</div>
</div>
<el-table v-if="sectionObj" border :data="sectionObj.sectionOrderList || []" @selection-change="handleSelectionChange" class="mt-10">
<el-table-column type="selection" width="50"></el-table-column>> <el-table-column type="selection" width="50"></el-table-column>>
<el-table-column align="center" :label="$t('序号')" width="50" prop="tidanNum" /> <el-table-column align="center" :label="$t('序号')" width="50" prop="tidanNum" />
<el-table-column prop="orderNo" :label="$t('订单号')" align="center"> <el-table-column prop="orderNo" :label="$t('订单号')" align="center">
...@@ -76,7 +85,7 @@ ...@@ -76,7 +85,7 @@
<template v-slot="{row}"> <template v-slot="{row}">
<section> <section>
<div v-for="(item, index) in row.goodsList" :key="index"> <div v-for="(item, index) in row.goodsList" :key="index">
{{index+1}}{{item.prodTitleZh}} <div>{{index+1}}{{$l(item, 'prodTitle')}}</div>
</div> </div>
</section> </section>
</template> </template>
...@@ -96,24 +105,27 @@ ...@@ -96,24 +105,27 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="customsFee" :label="$t('报关费用')" align="center"></el-table-column> <el-table-column prop="customsFee" :label="$t('报关费用')" align="center"></el-table-column>
<el-table-column prop="" :label="$t('当前成交价')" align="center" width="120px"> <el-table-column prop="" :label="$t('加价单价')" align="center" width="200px">
<template slot-scope="scope">
// TODO
</template>
</el-table-column>
<el-table-column prop="" :label="$t('加价后成交价')" align="center" width="120px">
<template slot-scope="scope"> <template slot-scope="scope">
// TODO <div>
{{$t('运费')}}{{form.freightFee || 0}}{{ currencyMap[form.freightCurrencyId]}}/{{unitMap[form.freightUnitId]}}
</div>
<div>
{{$t('清关费')}}{{form.clearanceFee || 0}}{{ currencyMap[form.clearanceCurrencyId]}}/{{unitMap[form.clearanceUnitId]}}
</div>
<div>
{{$t('全包价')}}{{form.freightFee || 0}}{{ currencyMap[form.freightCurrencyId]}}/{{unitMap[form.freightUnitId]}}
</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-card class="mt-20"> <el-card class="mt-20">
<work-flow xmlkey="todo"></work-flow> <work-flow xmlkey="shipment_batch_add_price" v-model="form.copyUserId"></work-flow>
</el-card> </el-card>
<div class="mt-20"> <div class="mt-20">
<el-button type="primary" @click="$alert('TODO')">提交审核</el-button> <el-button type="primary" @click="submit">提交审核</el-button>
<el-button type="primary" @click="$alert('TODO')">审核中</el-button> <el-button type="primary" @click="$alert('TODO')">审核中</el-button>
<el-button type="default" @click="$alert('TODO')">取消审核</el-button> <el-button type="default" @click="$alert('TODO')">取消审核</el-button>
</div> </div>
...@@ -128,7 +140,7 @@ import {getChannelList} from "@/api/ecw/channel"; ...@@ -128,7 +140,7 @@ import {getChannelList} from "@/api/ecw/channel";
import {getCabinetPage} from "@/api/ecw/cabinet"; import {getCabinetPage} from "@/api/ecw/cabinet";
import {getWarehouseList} from "@/api/ecw/warehouse"; import {getWarehouseList} from "@/api/ecw/warehouse";
import {getSupplierPage} from "@/api/ecw/supplier"; import {getSupplierPage} from "@/api/ecw/supplier";
import {boxGoodsDetail, getSectionList} from "@/api/ecw/boxSea"; import {boxGoodsDetail, createApproval, getSectionList, loadSecGoodsList} from "@/api/ecw/boxSea";
import {getAbnormalList, getbox, getLogList} from "@/api/ecw/box"; import {getAbnormalList, getbox, getLogList} from "@/api/ecw/box";
import {getTotlContent} from "@/views/ecw/box/shippingSea/utils"; import {getTotlContent} from "@/views/ecw/box/shippingSea/utils";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
...@@ -140,8 +152,9 @@ export default { ...@@ -140,8 +152,9 @@ export default {
return { return {
unitList:[], unitList:[],
currencyList:[], currencyList:[],
form:{}, form:{
orderList:[], copyUserId:[]
},
// 表格多选 // 表格多选
multipleSelection: [], multipleSelection: [],
// 选择的id // 选择的id
...@@ -154,10 +167,42 @@ export default { ...@@ -154,10 +167,42 @@ export default {
shipmentObj: null, shipmentObj: null,
shipmentId: null, shipmentId: null,
// 当前选择的部分 // 当前选择的部分
sectionId: 0 sectionId: 0,
sectionObj: null
} }
}, },
computed:{ computed:{
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
// 订单
orderList(){
let arr = []
this.sectionObj?.sectionOrderList.forEach(item => {
if(!this.sectionId || this.sectionId == item.id){
arr = arr.concat(item.sectionOrderList)
}
})
return arr
},
// 提取部分
sectionNameList(){
let arr = this.sectionObj?.sectionOrderList.map(item => {
return item.sectionName
})
return Array.from(new Set(arr))
},
/* 渠道 */ /* 渠道 */
getShipChannelName() { getShipChannelName() {
return (shippingChannelId) => { return (shippingChannelId) => {
...@@ -182,14 +227,15 @@ export default { ...@@ -182,14 +227,15 @@ export default {
weight: boxStatistics.weight ?? 0, weight: boxStatistics.weight ?? 0,
}); });
} }
return; return 0;
}; };
}, },
/* 获取仓库 */ /* 获取仓库 */
getCityName() { getCityName() {
return (id) => { return (id) => {
let arr = this.warehouseList.filter((item) => item.id == id); if(!this.warehouseList || !this.warehouseList.length) return ''
return arr.length > 0 ? this.$l(arr[0], "title") : this.$t(""); let warehouse = this.warehouseList.find((item) => item.id == id);
return warehouse ? this.$l(warehouse, "title") : this.$t("");
}; };
}, },
// 部分信息 // 部分信息
...@@ -201,6 +247,14 @@ export default { ...@@ -201,6 +247,14 @@ export default {
return getTotlContent(secStatistics); return getTotlContent(secStatistics);
} }
}, },
getDocStatus() {
return (list = []) => {
// 获取类型
let customsTypes = list.map((item) => item.customsType);
// 去重
return Array.from(new Set(customsTypes));
};
},
}, },
created() { created() {
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
...@@ -246,6 +300,10 @@ export default { ...@@ -246,6 +300,10 @@ export default {
const { data } = res; const { data } = res;
this.allSupplier = data.list; this.allSupplier = data.list;
});*/ });*/
/*loadSecGoodsList({shipmentId: this.shipmentId}).then(res => {
this.sectionList = res.data
})*/
this.getBoxGoodsDetail()
}, },
// 出货信息 // 出货信息
getBoxDetail() { getBoxDetail() {
...@@ -287,6 +345,23 @@ export default { ...@@ -287,6 +345,23 @@ export default {
this.sectionObj = res.data; this.sectionObj = res.data;
}); });
}, },
// 提交审核
submit(){
if(!this.form.freightFee && !this.form.clearanceFee){
return this.$message.error(this.$t('运费和清关费不能同时为空'))
}
let data = {
approvalType: 18, // 批量加价
copyUserId: this.form.copyUserId,
details: JSON.stringify(this.form),
shipmentId: this.shipmentId,
orderIds: this.ids
}
createApproval(data).then(() => {
this.$message.success(this.$t('提交成功'))
this.$store.dispatch('tagsView/delCurrentView')
})
}
} }
} }
</script> </script>
......
<template>
<div class="app-approvalShipping">
<h1>{{$t('申请信息')}}{{$t('出货信息')}}</h1>
<el-descriptions :column="6" border>
<el-descriptions-item :label="$t('自编号')">{{boxBackVO.selfNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')">
{{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('柜型')">
{{cabinetLabel}}
</el-descriptions-item>
<el-descriptions-item :label="$t('体积/重量')">
{{getVolumeWeight(loadDetail.totalStatistics)}}
</el-descriptions-item>
<el-descriptions-item :label="$t('货柜状态')">
{{boxBackVO.shipmentStatusText}}
</el-descriptions-item>
</el-descriptions>
<div v-if="approvalInfo.applyReason">
<h1>{{$t('申请原因')}}</h1>
<div>
{{approvalInfo.applyReason}}
</div>
</div>
<el-table :data="loadDetail.sectionOrderList" border class="mt-10">
<el-table-column prop="orderNo" :label="$t('订单号')" align="center">
<template v-slot="{row}">
<el-button type="text" @click="jumpOrderDetail(row)">{{row.orderNo}}</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('货物信息')" align="center" width="500px">
<template v-slot="{row}">
<section>
<div v-for="(item, index) in row.goodsList" :key="index">
<div>{{index+1}}{{item.prodTitleZh}}</div>
<div>{{index+1}}{{item.prodTitleEn}}</div>
</div>
</section>
</template>
</el-table-column>
<el-table-column :label="$t('收费箱数')" align="center" prop="num"></el-table-column>
<el-table-colume :label="$t('收费体积')" align="center" prop="chargeVolume"></el-table-colume>
<el-table-column :label="$t('收费重量')" align="center" prop="chargeWeight"></el-table-column>
<el-table-column :label="$t('原成交单价')" align="center">
<template>
// TODO
</template>
</el-table-column>
<el-table-column :label="$t('新成交单价')" align="center">
<template>
// TODO
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { approvalDetail } from "@/api/ecw/box";
import { getSeaStatus, getTotlContent } from "../shippingSea/utils";
import { getCabinetPage } from "@/api/ecw/cabinet";
import { getChannelList } from "@/api/ecw/channel";
import Decimal from "decimal.js";
import Template from "@/views/cms/template/index.vue";
/**
* 批量加价审核详情
*/
export default {
name: "BatchMakeUpDetail",
components: {Template},
props: {
processId: {
type: [Number, String],
},
type: String,
},
data() {
return {
approvalInfo: {},
boxBackVO: {},
loadDetail: {},
// 柜型
cabinetLabel: "",
//渠道
channelList: [],
// 弹出配置
dialogConfig: {
title: "",
visible: false,
},
srcStrs: [],
};
},
created() {
getChannelList().then((res) => (this.channelList = res.data));
},
methods: {
getTotlContent,
/* 获取详情 */
getApprovalDetail(processId) {
approvalDetail({ approvalId: processId }).then((res) => {
this.approvalInfo = res.data.approvalInfo;
this.boxBackVO = res.data.boxBackVO;
this.loadDetail = res.data.loadDetail;
});
},
/* 获取柜型 */
getCabinetLabel(cabinetId) {
getCabinetPage(null).then((response) => {
const cabinetList = response.data.list;
for (const cabinetItem of cabinetList) {
if (cabinetItem.id == cabinetId) {
this.cabinetLabel = cabinetItem.name;
break;
}
}
});
},
/* 合计 */
calcSum(goodsList) {
let sum = 0;
goodsList.forEach((element) => {
sum = Decimal.add(sum, element.num).toNumber();
});
return sum;
},
/* 跳转订单详情 */
jumpOrderDetail(row) {
this.$router.push("/order/detail?orderId=" + row.orderId);
},
},
watch: {
processId: {
immediate: true,
handler(val) {
this.getApprovalDetail(val);
},
},
boxBackVO(val) {
// 柜型
this.getCabinetLabel(val.cabinetId);
},
},
computed: {
/* 渠道 */
getShipChannelName() {
return (shippingChannelId) => {
for (const channelItem of this.channelList) {
if (channelItem.channelId == shippingChannelId) {
return this.$l(channelItem, "name");
}
}
};
},
/* 体积重量 */
getVolumeWeight() {
return (total) => {
return this.getTotlContent(total);
};
},
/* 是否显示卸柜箱数 */
isShowColumn() {
return (shippingVO) => {
return getSeaStatus(shippingVO) >= 182 ? true : false;
};
},
},
};
</script>
<style lang="scss" scoped>
.el-image {
border-radius: 5px;
background-color: #ebeef5;
box-shadow: 0 0 5px 1px #ccc;
::v-deep .el-image__inner {
transition: all 0.3s;
cursor: pointer;
&:hover {
transform: scale(1.2);
}
}
::v-deep .image-slot {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
color: #909399;
font-size: 30px;
}
}
</style>
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
<el-dropdown-item command="error">{{$t('异常登记')}}</el-dropdown-item> <el-dropdown-item command="error">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost">{{$t('费用登记')}}</el-dropdown-item> <el-dropdown-item command="cost">{{$t('费用登记')}}</el-dropdown-item>
<el-dropdown-item command="batchMarkup">{{$t('批量加价')}}</el-dropdown-item> <el-dropdown-item command="batchMarkup">{{$t('批量加价')}}</el-dropdown-item>
<el-dropdown-item :disabled="scope.row.ldStatus<46" command="editLadingBill">{{$t('编辑提货单')}}</el-dropdown-item> <el-dropdown-item :disabled="scope.row.prStatus<25" command="editLadingBill">{{$t('编辑提货单')}}</el-dropdown-item>
<!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item>--> <!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item>-->
</el-dropdown-menu> </el-dropdown-menu>
......
...@@ -494,7 +494,7 @@ export default { ...@@ -494,7 +494,7 @@ export default {
break; break;
case "router": case "router":
this.$router.push("/boxSea/shippingSea/" + this.shipmentId); this.$router.push("/boxAir/shippingAir/" + this.shipmentId);
break; break;
case "cost": case "cost":
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px"> <el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item :label="$t('代理商Agent')" prop="agentId"> <el-form-item :label="$t('代理商Agent')" prop="agentId">
<supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" @change="changesupplier" /> <supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
<el-button v-hasPermi="['ecw:supplier:query']" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button> <el-button v-hasPermi="['ecw:supplier:query']" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -63,11 +63,9 @@ export default { ...@@ -63,11 +63,9 @@ export default {
this.$emit("closeDialog", type); this.$emit("closeDialog", type);
}, },
SupplierDetail(){ SupplierDetail(){
this.supplierId = this.agentObj.agentId
this.$router.push('/supplier/detail?id='+this.supplierId) this.$router.push('/supplier/detail?id='+this.supplierId)
}, },
changesupplier(val){
this.supplierId = val
}
}, },
}; };
</script> </script>
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
{{getCheckExamineStatus}} {{getCheckExamineStatus}}
</el-form-item> </el-form-item>
</el-form-item> </el-form-item>
<el-form-item v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 1"> <el-form-item v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 1 && shipmentObj.overMachineExamineStatus == 0 && (typeof cusDeclarationObj.id != 'undefined')">
<el-button type="primary" @click="approvalCreate">{{$t('提交删单退场审核')}}</el-button> <el-button type="primary" @click="approvalCreate">{{$t('提交删单退场审核')}}</el-button>
</el-form-item> </el-form-item>
<el-form-item prop="weightMisreport" v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 2"> <el-form-item prop="weightMisreport" v-show="cusDeclarationObj.overMachineStatus == 2 && cusDeclarationObj.overMachineAbnormalStatus == 2">
...@@ -106,11 +106,8 @@ ...@@ -106,11 +106,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button" v-if="inReview">
<el-button type="primary" @click="jumpReviewDetail">{{cusDeclarationObj.dcCheckStatus === '1' ? $t('全部退场审核中') : $t('部分退场审核中')}}</el-button>
<el-button type="primary" plain @click="canclAudit">{{cusDeclarationObj.dcCheckStatus === '1' ? $t('取消全部退场审核') : $t('取消部分退场审核')}}</el-button>
</el-row>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" v-if="inReview" plain @click="canclAudit">{{$t('取消删单退场审核')}}</el-button>
<el-button type="primary" @click="onSubmit(1)" :disabled="isCheckDeal('submit')">{{$t('保存')}}</el-button> <el-button type="primary" @click="onSubmit(1)" :disabled="isCheckDeal('submit')">{{$t('保存')}}</el-button>
<el-button type="success" v-if="!inReview" @click="onSubmit(2)" :disabled="isCheckDeal('submit')">{{$t('提交')}}</el-button> <el-button type="success" v-if="!inReview" @click="onSubmit(2)" :disabled="isCheckDeal('submit')">{{$t('提交')}}</el-button>
<el-button @click="cancel">{{$t('关闭')}}</el-button> <el-button @click="cancel">{{$t('关闭')}}</el-button>
...@@ -289,10 +286,15 @@ export default { ...@@ -289,10 +286,15 @@ export default {
oldData.overDealUser = this.strToArray(oldData.overDealUser) oldData.overDealUser = this.strToArray(oldData.overDealUser)
oldData.overOrders = this.strToArray(oldData.overOrders) oldData.overOrders = this.strToArray(oldData.overOrders)
this.cusDeclarationObj = oldData;console.log(this.cusDeclarationObj.overDealUser) this.cusDeclarationObj = oldData;
if(this.shipmentObj.overMachineExamineStatus == 1){
this.$set(this.cusDeclarationObj, "overMachineStatus", 2)
this.$set(this.cusDeclarationObj, "overMachineAbnormalStatus", 1)
}
}, },
methods: { methods: {
strToArray(str) { strToArray(str) {
if(!str) return []
let array = str?.split(",") ?? [] let array = str?.split(",") ?? []
return array.map(item=>{return Number(item)}) return array.map(item=>{return Number(item)})
}, },
...@@ -369,10 +371,9 @@ export default { ...@@ -369,10 +371,9 @@ export default {
approvalCreate({ approvalCreate({
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
approvalStatus: 0, approvalStatus: 0,
approvalType: 10 approvalType: 11
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel("submit");
}); });
}); });
}, },
...@@ -399,18 +400,18 @@ export default { ...@@ -399,18 +400,18 @@ export default {
} }
// 3.查验状态,查验后放行 直接提交 // 3.查验状态,查验后放行 直接提交
if (dcCheckStatus === "3") { if (dcCheckStatus === "3") {
const { checkExamineStatus } = this.shipmentObj; const { overMachineExamineStatus } = this.shipmentObj;
// 没有退场审核中的状态 // 没有退场审核中的状态
if (checkExamineStatus !== 1) { if (overMachineExamineStatus !== 1) {
this.submitCustomsCreate(operateType); this.submitCustomsCreate(operateType);
return; return;
} }
} }
// 4.查验状态,退场/部分退场 提示 // 4.查验状态,退场/部分退场 提示
if (["1", "2"].includes(dcCheckStatus)) { if (["1", "2"].includes(dcCheckStatus)) {
const { checkExamineStatus } = this.shipmentObj; const { overMachineExamineStatus } = this.shipmentObj;
// 退场审核状态,1-审核中,2-审核成功,3-审核失败,4-取消 // 退场审核状态,1-审核中,2-审核成功,3-审核失败,4-取消
if ([0, 2, 3, 4].includes(checkExamineStatus)) { if ([0, 2, 3, 4].includes(overMachineExamineStatus)) {
this.$modal this.$modal
.confirm(this.$t( .confirm(this.$t(
`您确认提交${ `您确认提交${
...@@ -558,9 +559,10 @@ export default { ...@@ -558,9 +559,10 @@ export default {
}, },
/* 取消审核 */ /* 取消审核 */
canclAudit() { canclAudit() {
console.log(this.shipmentObj)
approvalCancel({ approvalCancel({
applyReason: this.$t("取消审核"), applyReason: this.$t("取消审核"),
id: this.shipmentObj["customsApprovalInfo"].id, id: this.shipmentObj["customsDeleteExitApprovalInfo"].id,
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
...@@ -572,11 +574,11 @@ export default { ...@@ -572,11 +574,11 @@ export default {
}, },
/* 判断查验选择是否禁用 */ /* 判断查验选择是否禁用 */
disabledRadio(item) { disabledRadio(item) {
const { checkExamineStatus, checkDealStatus, customsInfo } = const { overMachineExamineStatus, checkDealStatus, customsInfo } =
this.shipmentObj; this.shipmentObj;
const { dcCheckStatus } = customsInfo ?? {}; // 部分退场状态并且审核通过,退场不可选择 const { dcCheckStatus } = customsInfo ?? {}; // 部分退场状态并且审核通过,退场不可选择
if ( if (
checkExamineStatus === 2 && overMachineExamineStatus === 2 &&
dcCheckStatus === 2 && dcCheckStatus === 2 &&
checkDealStatus === 0 && checkDealStatus === 0 &&
item.value === "1" item.value === "1"
...@@ -627,8 +629,8 @@ export default { ...@@ -627,8 +629,8 @@ export default {
immediate: true, immediate: true,
handler: function (val) { handler: function (val) {
// 监听查验状态变化 // 监听查验状态变化
let { checkExamineStatus } = val; let { overMachineExamineStatus } = val;
if (checkExamineStatus === 1) { if (overMachineExamineStatus === 1) {
// 按钮变成审核中 // 按钮变成审核中
this.inReview = true; this.inReview = true;
} }
...@@ -653,15 +655,15 @@ export default { ...@@ -653,15 +655,15 @@ export default {
computed: { computed: {
/* 获取报关审核退场状态文字 */ /* 获取报关审核退场状态文字 */
getCheckExamineStatus() { getCheckExamineStatus() {
const { checkExamineStatus, checkDealStatus, customsInfo } = const { overMachineExamineStatus, checkDealStatus, customsInfo } =
this.shipmentObj; this.shipmentObj;
const { dcCheckStatus } = customsInfo ?? {}; const { dcCheckStatus } = customsInfo ?? {};
if (checkExamineStatus === 1) { if (overMachineExamineStatus === 1) {
return dcCheckStatus === 1 return dcCheckStatus === 1
? this.$t("退场审核中") ? this.$t("退场审核中")
: this.$t("部分退场审核中"); : this.$t("部分退场审核中");
} }
if (checkExamineStatus === 2 && checkDealStatus === 0) { if (overMachineExamineStatus === 2 && checkDealStatus === 0) {
return dcCheckStatus === 1 return dcCheckStatus === 1
? this.$t("审核通过,退场中") ? this.$t("审核通过,退场中")
: this.$t("审核通过,部分退场中"); : this.$t("审核通过,部分退场中");
...@@ -671,7 +673,7 @@ export default { ...@@ -671,7 +673,7 @@ export default {
/* 判断是否已处理 */ /* 判断是否已处理 */
isCheckDeal() { isCheckDeal() {
return (type) => { return (type) => {
const { checkExamineStatus, checkDealStatus, customsInfo } = const { overMachineExamineStatus, checkDealStatus, customsInfo } =
this.shipmentObj; this.shipmentObj;
const { dcCheckStatus } = customsInfo ?? {}; const { dcCheckStatus } = customsInfo ?? {};
...@@ -679,7 +681,7 @@ export default { ...@@ -679,7 +681,7 @@ export default {
if (type === "status") { if (type === "status") {
// 退场/部分退场 审核通过未处理,禁用 // 退场/部分退场 审核通过未处理,禁用
if ( if (
checkExamineStatus === 2 && overMachineExamineStatus === 2 &&
[1, 2].includes(dcCheckStatus) && [1, 2].includes(dcCheckStatus) &&
checkDealStatus === 0 checkDealStatus === 0
) { ) {
...@@ -692,7 +694,7 @@ export default { ...@@ -692,7 +694,7 @@ export default {
// 退场 审核通过未处理,禁用 // 退场 审核通过未处理,禁用
// 部分退场 审核通过未处理,由 disabledRadio 方法判断 // 部分退场 审核通过未处理,由 disabledRadio 方法判断
if ( if (
checkExamineStatus === 2 && overMachineExamineStatus === 2 &&
[1].includes(dcCheckStatus) && [1].includes(dcCheckStatus) &&
checkDealStatus === 0 checkDealStatus === 0
) { ) {
...@@ -704,7 +706,7 @@ export default { ...@@ -704,7 +706,7 @@ export default {
if (type === "submit") { if (type === "submit") {
const { dcCheckStatus: newCheckStatus } = this.cusDeclarationObj; const { dcCheckStatus: newCheckStatus } = this.cusDeclarationObj;
// 退场/部分退场 审核通过未处理 // 退场/部分退场 审核通过未处理
if (checkExamineStatus === 2 && checkDealStatus === 0) { if (overMachineExamineStatus === 2 && checkDealStatus === 0) {
// 退场,禁用 // 退场,禁用
if (dcCheckStatus === 1) return true; if (dcCheckStatus === 1) return true;
// 部分退场 // 部分退场
......
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 打印标签 --> <!-- 打印标签 -->
<el-dialog :title="$t('集运封箱标签')" :visible.sync="printdialogVisible" width="300px" :modal-append-to-body="false" append-to-body> <el-dialog :title="$t('集运封箱标签')" :visible.sync="printdialogVisible" width="350px" :modal-append-to-body="false" append-to-body>
<print-tag v-if="printdialogVisible" :tagData="tagData" /> <print-tag v-if="printdialogVisible" :tagData="tagData" />
</el-dialog> </el-dialog>
</el-row> </el-row>
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('实装箱数')" align="center" prop="installNum" /> <el-table-column :label="$t('实装箱数')" align="center" prop="installNum" />
<el-table-column :label="$t('卸柜箱数')" align="center" prop="unloadNum" /> <el-table-column :label="$t('到仓箱数')" align="center" prop="unloadNum" />
<el-table-column :label="$t('清关状态')" align="center" prop=""> <el-table-column :label="$t('清关状态')" align="center" prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template> <template slot-scope="scope">{{clearStatus(scope.row)}}</template>
</el-table-column> </el-table-column>
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
</div> </div>
<div class="label-font"> <div class="label-font">
<p> <p>
<span>{{$t('已卸')}}:</span> <span>{{$t('到仓')}}:</span>
<span>{{getUnLoadNumCount}}</span> <span>{{getUnLoadNumCount}}</span>
</p> </p>
</div> </div>
...@@ -263,6 +263,7 @@ export default { ...@@ -263,6 +263,7 @@ export default {
}, },
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
if(this.getUnLoadNumCount>0){
approvalCreate({ approvalCreate({
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
approvalStatus: 0, approvalStatus: 0,
...@@ -273,6 +274,10 @@ export default { ...@@ -273,6 +274,10 @@ export default {
this.cancel(); this.cancel();
}); });
}); });
}else{
this.$message.error(this.$t("货物到仓数小于实装数,请确认"));
}
}, },
/** 取消 */ /** 取消 */
cancel() { cancel() {
......
...@@ -102,7 +102,7 @@ import {getUnitList} from "@/api/ecw/unit" ...@@ -102,7 +102,7 @@ import {getUnitList} from "@/api/ecw/unit"
import { getCurrencyList } from '@/api/ecw/currency' import { getCurrencyList } from '@/api/ecw/currency'
import {getProductAttrList} from '@/api/ecw/productAttr' import {getProductAttrList} from '@/api/ecw/productAttr'
import Decimal from 'decimal.js' import Decimal from 'decimal.js'
import {getExceptionById} from '@/api/ecw/orderException' import {getExceptionById,getOrderExceptionChannelPriceList} from '@/api/ecw/orderException'
export default { export default {
name: 'NotShipingChannel', name: 'NotShipingChannel',
...@@ -147,6 +147,7 @@ export default { ...@@ -147,6 +147,7 @@ export default {
} }
}, },
async created(){ async created(){
await getUnitList().then(res => this.unitList = res.data)
await getCurrencyList().then(res => this.currencyList = res.data) await getCurrencyList().then(res => this.currencyList = res.data)
this.productAttrList = (await getProductAttrList()).data this.productAttrList = (await getProductAttrList()).data
if(this.id){ if(this.id){
...@@ -161,6 +162,7 @@ export default { ...@@ -161,6 +162,7 @@ export default {
if(res.data.orderId){ if(res.data.orderId){
getOrder(res.data.orderId).then(res => { getOrder(res.data.orderId).then(res => {
this.order = res.data this.order = res.data
this.getExceptionPriceList(res.data.orderId)
}) })
} }
}) })
...@@ -182,6 +184,25 @@ export default { ...@@ -182,6 +184,25 @@ export default {
this.channel = res.data this.channel = res.data
}) })
}, },
getExceptionPriceList(orderId){
let that = this
getOrderExceptionChannelPriceList({orderId:orderId,exceptionId:parseInt(that.id)}).then(res=>{
if(res.code==0&&res.data.length>0){
that.order.orderItemVOList.map(v=>{
var item = res.data.find(vs=>vs.orderItemId==v.orderItemId)
if(item){
v.oneSeaFreight = item.freightFee
v.seaFreightCurrency = item.freightCurrencyId
v.seaFreightVolume = item.freightUnitId
v.oneClearanceFreight = item.clearanceFee
v.clearanceFreightCurrency = item.clearanceCurrencyId
v.clearanceFreightVolume = item.clearanceUnitId
}
})
}
})
}
} }
} }
</script> </script>
......
...@@ -832,8 +832,8 @@ export default { ...@@ -832,8 +832,8 @@ export default {
} }
}, },
'form.transportId'(transportId, oldTransportId){ 'form.transportId'(transportId, oldTransportId){
// 海运拼柜给表单默认值 // 空运
if(this.form.transportId == 4){ if(this.form.transportId == 4 || this.form.transportId == 3){
this.$nextTick(() => { this.$nextTick(() => {
this.$set(this, 'form', Object.assign(this.form, { this.$set(this, 'form', Object.assign(this.form, {
doubleClear: 2, doubleClear: 2,
...@@ -854,8 +854,9 @@ export default { ...@@ -854,8 +854,9 @@ export default {
this.$set(this.form, 'channelId', null) this.$set(this.form, 'channelId', null)
} }
// 如果是专线空运默认目的港清关选择我司
if(transportId == 3){ if(transportId == 3){
// 如果是专线空运默认目的港清关选择我司
this.$set(this.form, 'portDestCustomsClear', 1) this.$set(this.form, 'portDestCustomsClear', 1)
} }
......
...@@ -632,9 +632,15 @@ export default { ...@@ -632,9 +632,15 @@ export default {
// 渠道列表,空运需要渠道筛选 // 渠道列表,空运需要渠道筛选
channelList:[], channelList:[],
// 编号搜索条件 // 编号搜索条件
noParam: {}, noParam: {
key: 'numberKey',
value: ''
},
// 商品搜索条件 // 商品搜索条件
prodParam: {} prodParam: {
key: 'prodKey',
value: ''
}
}; };
}, },
watch:{ watch:{
...@@ -877,6 +883,8 @@ export default { ...@@ -877,6 +883,8 @@ export default {
page: 1, page: 1,
rows: 10 rows: 10
} }
this.noParam.value = ''
this.prodParam.value = ''
this.dateFilter = [] this.dateFilter = []
this.handleQuery(); this.handleQuery();
}, },
......
This diff is collapsed.
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