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

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

parents 699e01d1 91a7422f
...@@ -183,6 +183,8 @@ export const DICT_TYPE = { ...@@ -183,6 +183,8 @@ export const DICT_TYPE = {
ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果 ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果 ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果 ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果
ORDER_QUERY_PROD_FIELD: 'order_query_prod_field',//订单查询产品字段
ORDER_QUERY_NO_FIELD: 'order_query_no_field',//订单查询非产品字段
NEED_KNOW_TYPE:'need_know_type',//需知类型 NEED_KNOW_TYPE:'need_know_type',//需知类型
NEED_KNOW_STATUS:'need_know_status',//需知状态 NEED_KNOW_STATUS:'need_know_status',//需知状态
MANUAL_EXCEPTION_TYPE:'manual_exception_type', MANUAL_EXCEPTION_TYPE:'manual_exception_type',
...@@ -223,6 +225,7 @@ export const DICT_TYPE = { ...@@ -223,6 +225,7 @@ export const DICT_TYPE = {
BOX_SHIPPING_ERROR_TYPE: "shipping_error_type",// 起运异常状态 BOX_SHIPPING_ERROR_TYPE: "shipping_error_type",// 起运异常状态
BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态 BOX_ARRIVAL_ERROR_TYPE: "arrival_error_type",// 到港异常状态
APP_TYPE:"app_type", //系统类型 APP_TYPE:"app_type", //系统类型
AIR_SHIPMENT_PROCESS:'air_shipment_process' AIR_SHIPMENT_PROCESS:'air_shipment_process'
} }
......
...@@ -396,7 +396,13 @@ export default { ...@@ -396,7 +396,13 @@ export default {
split_revoke:{ split_revoke:{
component: () => import("@/views/ecw/order/components/SplitRevokeDetail"), component: () => import("@/views/ecw/order/components/SplitRevokeDetail"),
id: this.processInstance.businessKey id: this.processInstance.businessKey
} },
// 不可出渠道异常审核
not_shiping_channel:{
component: () => import('@/views/ecw/order/components/NotShipingChannel'),
id: this.processInstance.businessKey,
path: 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()]
......
...@@ -26,17 +26,22 @@ ...@@ -26,17 +26,22 @@
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BOX_SHIPMENT_STATUS)" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value" /> <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BOX_SHIPMENT_STATUS)" :key="dict.value" :label="$l(dict, 'label')" :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-row>
<el-form-item label="" prop="date"> <el-form-item :label="$t('时间')" prop="date">
<el-select v-model="queryParams.dateType" :placeholder="$t('请选择时间类型')" clearable size="small"> <el-select v-model="queryParams.dateType" :placeholder="$t('请选择时间类型')" clearable size="small">
<el-option v-for="item in dateTypes" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in dateTypes" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="">
<el-form-item label=""> <el-date-picker v-model="queryParams.dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" start-:placeholder="$t('开始日期')" end-:placeholder="$t('结束日期')" />
<el-date-picker v-model="queryParams.dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" start-:placeholder="$t('开始日期')" end-:placeholder="$t('结束日期')" /> </el-form-item>
</el-form-item> <el-form-item :label="$t('提单制作')" prop="ladingBillStatus">
<el-select v-model="queryParams.ladingBillStatus" :placeholder="$t('请选择提单制作状态')" clearable size="small">
<el-option v-for="(item,index) in ladingBillStatusData" :key="index" :label="item" :value="index">
</el-option>
</el-select>
</el-form-item>
</el-row>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('搜索') }}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('搜索') }}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('重置') }}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{ $t('重置') }}</el-button>
...@@ -86,6 +91,12 @@ ...@@ -86,6 +91,12 @@
<el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" /> <el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" />
<el-table-column :label="$t('提单状态')" align="center" prop="ladingBillStatus" width="180">
<template slot-scope="scope">
<span>{{ ladingBillStatusData[scope.row.ladingBillStatus] }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('日期')" align="center" prop="createTime" width="180"> <el-table-column :label="$t('日期')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span> <span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span>
...@@ -267,7 +278,12 @@ export default { ...@@ -267,7 +278,12 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
] ]
} },
ladingBillStatusData: [
this.$t("未完成"),
this.$t("部分完成"),
this.$t("已完成"),
],
} }
}, },
computed: { computed: {
......
...@@ -56,6 +56,14 @@ ...@@ -56,6 +56,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('提单制作')" prop="ladingBillStatus">
<el-select v-model="queryParams.ladingBillStatus" :placeholder="$t('请选择提单制作状态')" clearable size="small">
<el-option v-for="(item,index) in ladingBillStatusData" :key="index" :label="item" :value="index">
</el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
...@@ -107,6 +115,13 @@ ...@@ -107,6 +115,13 @@
<el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" /> <el-table-column :label="$t('状态')" align="center" prop="shipmentStatusText" />
<el-table-column :label="$t('提单状态')" align="center" prop="ladingBillStatus" width="180">
<template slot-scope="scope">
<span>{{ ladingBillStatusData[scope.row.ladingBillStatus] }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('日期')" align="center" prop="createTime" width="180"> <el-table-column :label="$t('日期')" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span> <span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd hh:mm:ss') }}</span>
...@@ -268,6 +283,11 @@ export default { ...@@ -268,6 +283,11 @@ export default {
// 通知列表 // 通知列表
noticeList: [], noticeList: [],
allUsers: [], allUsers: [],
ladingBillStatusData: [
this.$t("未完成"),
this.$t("部分完成"),
this.$t("已完成"),
],
}; };
}, },
computed: { computed: {
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<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">
<supplierSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" /> <supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" @change="changesupplier" />
<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>
<el-row class="operate-button"> <el-row class="operate-button">
...@@ -14,7 +15,7 @@ ...@@ -14,7 +15,7 @@
<script> <script>
import { agentSet } from "@/api/ecw/boxSea"; import { agentSet } from "@/api/ecw/boxSea";
import supplierSelect from "./common/supplierSelect.vue"; import supplierOutSelect from "./common/supplierOutSelect.vue";
import { formatStringNumber, serviceMsg } from "../utils"; import { formatStringNumber, serviceMsg } from "../utils";
/** /**
* agent * agent
...@@ -22,7 +23,7 @@ import { formatStringNumber, serviceMsg } from "../utils"; ...@@ -22,7 +23,7 @@ import { formatStringNumber, serviceMsg } from "../utils";
export default { export default {
name: "agent", name: "agent",
inheritAttrs: false, inheritAttrs: false,
components: { supplierSelect }, components: { supplierOutSelect },
data() { data() {
return { return {
// agent对象 // agent对象
...@@ -31,6 +32,7 @@ export default { ...@@ -31,6 +32,7 @@ export default {
rules: { rules: {
agentId: [{ required: true, message: this.$t("必填"), trigger: "change" }], agentId: [{ required: true, message: this.$t("必填"), trigger: "change" }],
}, },
supplierId: 0
}; };
}, },
created() { created() {
...@@ -60,6 +62,12 @@ export default { ...@@ -60,6 +62,12 @@ export default {
cancel(type) { cancel(type) {
this.$emit("closeDialog", type); this.$emit("closeDialog", type);
}, },
SupplierDetail(){
this.$router.push('/supplier/detail?id='+this.supplierId)
},
changesupplier(val){
this.supplierId = val
}
}, },
}; };
</script> </script>
......
<template> <template>
<div> <div>
<el-form ref="airCheckoutForm" :model="airCheckoutObj" :rules="rules" label-width="80px"> <el-form ref="airCheckoutForm" :model="airCheckoutObj" :rules="rules" label-width="100px">
<el-form-item :label="$t('')" prop="deliverType">
<el-radio-group v-model="airShipmentObj.deliverType" :disabled="true">
<el-radio v-for="item in deliverTypes" :key="item.value" :label="item.value">{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
<div v-show="airShipmentObj.deliverType === '1'">
<el-form-item :label="$t('送货时间')" >
<el-date-picker type="datetime" :disabled="true" :placeholder="$t('请选择日期')" v-model="airShipmentObj.deliverTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item :label="$t('送货地址')">
<el-input v-model="airShipmentObj.deliverAddress" :disabled="true" :placeholder="$t('请输入送货地址')"></el-input>
</el-form-item>
<el-form-item :label="$t('车牌')">
<el-input v-model="airShipmentObj.licensePlate" :disabled="true" :placeholder="$t('请输入车牌')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机')">
<el-input v-model="airShipmentObj.driver" :disabled="true" :placeholder="$t('请输入司机')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机联系方式')">
<el-input v-model="airShipmentObj.driverPhone" :disabled="true" :placeholder="$t('请输入司机联系方式')"></el-input>
</el-form-item>
</div>
<div v-show="airShipmentObj.deliverType === '2'">
<el-form-item :label="$t('自提时间')">
<el-date-picker type="datetime" :disabled="true" :placeholder="$t('请选择日期')" v-model="airShipmentObj.deliverTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item :label="$t('自提地址')">
<el-input v-model="airShipmentObj.deliverAddress" :disabled="true" :placeholder="$t('请输入自提地址')"></el-input>
</el-form-item>
<el-form-item :label="$t('车牌')">
<el-input v-model="airShipmentObj.licensePlate" :disabled="true" :placeholder="$t('请输入车牌')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机')">
<el-input v-model="airShipmentObj.driver" :disabled="true" :placeholder="$t('请输入司机')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机联系方式')">
<el-input v-model="airShipmentObj.driverPhone" :disabled="true" :placeholder="$t('请输入司机联系方式')"></el-input>
</el-form-item>
</div>
<el-form-item :label="$t('出仓日期')"> <el-form-item :label="$t('出仓日期')">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airCheckoutObj.checkoutTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airCheckoutObj.checkoutTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item> </el-form-item>
...@@ -39,8 +94,13 @@ export default { ...@@ -39,8 +94,13 @@ export default {
components: { userSelect, ImageUpload }, components: { userSelect, ImageUpload },
data() { data() {
return { return {
// 空运出对象 // 空运出对象
airCheckoutObj: {}, airCheckoutObj: {},
// 空运出货对象
airShipmentObj: {},
// 送货方式
deliverTypes: constantDict.deliverType,
// 校验 // 校验
rules: { rules: {
//deliverType: [{ required: true, message: this.$t("必填"), trigger: "change" }], //deliverType: [{ required: true, message: this.$t("必填"), trigger: "change" }],
...@@ -52,6 +112,11 @@ export default { ...@@ -52,6 +112,11 @@ export default {
let oldData = { ...this.$attrs.shipmentObj[voName] }; let oldData = { ...this.$attrs.shipmentObj[voName] };
oldData = formatDateStr(oldData, ["checkoutTime"]); oldData = formatDateStr(oldData, ["checkoutTime"]);
this.airCheckoutObj = oldData; this.airCheckoutObj = oldData;
let shipmentdData = { ...this.$attrs.shipmentObj["boxAirShipmentBackVO"] };
shipmentdData = formatDateStr(shipmentdData, ["deliverTime"]);
shipmentdData = formatNumberString(shipmentdData, ["deliverType"]);
this.airShipmentObj = shipmentdData;
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
<template>
<div>
<el-select
filterable
:value="value === 0 ? undefined : value"
@change="change"
v-bind="$attrs"
clearable
>
<el-option
v-for="supplier in getSuppliers"
:key="supplier.id"
:label="$t('公司名称:')+$l(supplier, 'company')+$t(',地址:')+supplier.externalBackVO.receiveAddress+$t(',邮箱:')+supplier.externalBackVO.receiveEmail+$t(',品名:')+supplier.externalBackVO.goodName+$t(',From M No:')+supplier.externalBackVO
.fromNo+$t(',BA No:')+supplier.externalBackVO
.baNo"
:value="supplier.id"
></el-option>
</el-select>
</div>
</template>
<script>
/**
* 供应商
*/
export default {
name: "supplierSelect",
props: {
companyType: String,
value: Number,
allSupplier: Array,
areaType: {
type: Number,
default: 0
},
},
model: {
prop: "value",
event: "change",
},
data() {
return {};
},
computed: {
getSuppliers() {
let allSupplier = this.allSupplier.filter(
(item) => item.areaType == this.areaType
);
allSupplier.forEach(map=>{
map.externalBackVO.receiveAddress = map.externalBackVO.receiveAddress?map.externalBackVO.receiveAddress: ''
map.externalBackVO.receiveEmail = map.externalBackVO.receiveEmail?map.externalBackVO.receiveEmail:''
map.externalBackVO.goodName = map.externalBackVO.goodName?map.externalBackVO.goodName:''
map.externalBackVO.fromNo = map.externalBackVO.fromNo?map.externalBackVO.fromNo:''
map.externalBackVO.baNo = map.externalBackVO.baNo?map.externalBackVO.baNo:''
})
if(this.areaType == 1 || !this.companyType) return allSupplier;
return allSupplier.filter((item) =>
item.companyTypes.includes(this.companyType)
);
},
},
methods: {
change(val) {
this.$emit("change", val);
},
},
};
</script>
<template> <template>
<div> <div>
<el-form ref="airShipmentForm" :model="airShipmentObj" :rules="rules" label-width="80px"> <el-form ref="airShipmentForm" :model="airShipmentObj" :rules="rules" label-width="100px">
<el-form-item :label="$t('')" prop="deliverType"> <el-form-item :label="$t('')" prop="deliverType">
<el-radio-group v-model="airShipmentObj.deliverType"> <el-radio-group v-model="airShipmentObj.deliverType">
<el-radio v-for="item in deliverTypes" :key="item.value" :label="item.value">{{item.label}}</el-radio> <el-radio v-for="item in deliverTypes" :key="item.value" :label="item.value">{{item.label}}</el-radio>
......
...@@ -144,6 +144,7 @@ export default { ...@@ -144,6 +144,7 @@ export default {
return; return;
} }
if (currIndex > this.currIndex) { if (currIndex > this.currIndex) {
console.log(currIndex,this.currIndex)
this.$message.error(this.errorMsg); this.$message.error(this.errorMsg);
return; return;
} }
...@@ -240,15 +241,14 @@ export default { ...@@ -240,15 +241,14 @@ export default {
continue; continue;
} }
//合包非必须步骤
if (type === "mergePkg"){
++nodeIndex;
}
const { start, wait, end } = status; const { start, wait, end } = status;
if (start.includes(val[keyName])) { if (start.includes(val[keyName])) {
node.currStatus = "start"; node.currStatus = "start";
if (type === "mergePkg"){
++nodeIndex;
continue;
}
} }
if (start.includes(val[keyName]) && val[voName]) { if (start.includes(val[keyName]) && val[voName]) {
......
<!--拆单审核中的申请信息部分-->
<template>
<div v-if="order">
<el-descriptions :column="4" v-if="order" :colon="false">
<el-descriptions-item :label="$t('订单号')">{{order.orderNo}}</el-descriptions-item>
<el-descriptions-item :label="$t('运输方式')">
<dict-tag class="mr-10" :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item>
<el-descriptions-item :label="$t('出货方式')">
{{channel ? channel.nameZh : '/'}}
</el-descriptions-item>
<el-descriptions-item :label="$t('订单状态')">
{{order.statusMsg}}
</el-descriptions-item>
<el-descriptions-item :label="$t('唛头')">{{order.marks}}</el-descriptions-item>
<el-descriptions-item :label="$t('始发仓')">
{{order.logisticsInfoDto.startTitleZh}}
</el-descriptions-item>
<el-descriptions-item :label="$t('目的仓')" :span="2">
{{order.logisticsInfoDto.destAddressZh}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions v-if="order" :colon="false">
<el-descriptions-item :label="$t('申请理由')" :span="2">
{{$l(orderExceptionData.orderExceptionDescVO, 'desc')}}
</el-descriptions-item>
</el-descriptions>
<el-table border :data="order.orderItemVOList">
<el-table-column :label="$t('序号')" align="center" prop="id" type="index">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column :label="$t('中文名')" align="center" prop="prodTitleZh" min-width="60" />
<el-table-column :label="$t('英文名')" align="center" prop="prodTitleEn" min-width="60" />
<el-table-column :label="$t('品牌')" align="center" min-width="50" prop="brandType">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType"></dict-tag>
</template>
</el-table-column>
<el-table-column :label="$t('填单箱数')" prop="num" min-width="60" />
<!-- v2.0 入仓特性异常 -->
<el-table-column :label="$t('填单特性')" prop="prodAttrIds" min-width="100">
<template slot-scope="scope">
{{getProdAtrr(scope.row.prodAttrIds)}}
</template>
</el-table-column>
<el-table-column :label="$t('入仓箱数')" min-width="60">
<template slot-scope="scope">
{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.cartonsNum:0}}
</template>
</el-table-column>
<!-- v2.0 入仓特性异常 -->
<el-table-column :label="$t('入仓特性')" prop="num" min-width="100">
<template slot-scope="scope">
{{scope.row.warehouseInInfoVO&&scope.row.warehouseInInfoVO.prodAttrIds?getProdAtrr(scope.row.warehouseInInfoVO.prodAttrIds):''}}
</template>
</el-table-column>
<el-table-column :label="$t('方数')" prop="volume" min-width="50">
<template slot-scope="scope">
{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.volume:0}}
</template>
</el-table-column>
<el-table-column :label="$t('重量')" prop="weight" min-width="50">
<template slot-scope="scope">
{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.weight:0}}
</template>
</el-table-column>
<el-table-column :label="$t('数量')" prop="quantity" min-width="50">
<template slot-scope="scope">
{{scope.row.warehouseInInfoVO?scope.row.warehouseInInfoVO.quantityAll:0}}
</template>
</el-table-column>
<el-table-column :label="$t('货值')" prop="worth" min-width="50" />
<el-table-column :label="$t('运费/全包价')" prop="quantity" min-width="160">
<template slot-scope="scope" >
<div v-if="scope.row.charging ==1" class="channel">
<span v-if="!scope.row.oneSeaFreight">{{$t('全包价')}}:{{$t('未报价')}}</span>
<span v-else>{{$t('全包价')}}:{{scope.row.oneSeaFreight}} {{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
</div>
<div v-else class="channel">
<span v-if="!scope.row.oneSeaFreight">{{$t('运费')}}:{{$t('未报价')}}</span>
<span v-else>{{$t('运费')}}:{{scope.row.oneSeaFreight}} {{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</span>
</div>
</template>
</el-table-column>
<el-table-column :label="$t('清关费')" prop="quantity" min-width="160">
<template slot-scope="scope">
<div class="channel">
<span v-if="!scope.row.oneClearanceFreight">{{$t('未报价')}}</span>
<span v-else>{{scope.row.oneClearanceFreight}} {{currencyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import {getOrder} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getUnitList} from "@/api/ecw/unit"
import { getCurrencyList } from '@/api/ecw/currency'
import {getProductAttrList} from '@/api/ecw/productAttr'
import Decimal from 'decimal.js'
import {getExceptionById} from '@/api/ecw/orderException'
export default {
name: 'NotShipingChannel',
props:{
id: [String, Number],
path: String
},
data(){
return {
orderExceptionData: null,
order: null,
channel: null,
unitList:[],
currencyList:[],
detail:null
}
},
watch:{
id(){
this.getData()
},
order(){
if(this.order.channelId){
this.getChannel()
}
},
},
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
}
},
async created(){
await getCurrencyList().then(res => this.currencyList = res.data)
this.productAttrList = (await getProductAttrList()).data
if(this.id){
this.getData()
}
},
methods:{
Decimal,
getData(){
getExceptionById(this.id).then(res => {
this.orderExceptionData = res.data
if(res.data.orderId){
getOrder(res.data.orderId).then(res => {
this.order = res.data
})
}
})
},
getProdAtrr(ids){
if(!ids) return ''
let attr = []
let attrIds = ids.split(',')
this.productAttrList.forEach(item=>{
if(attrIds.indexOf(item.id) > -1||attrIds.indexOf(item.id+'')>-1){
attr.push(this.$l(item, 'attrName'))
}
})
return attr.join(',')
},
getChannel(){
getChannel(this.order.channelId).then(res => {
this.channel = res.data
})
},
}
}
</script>
<style scoped lang="scss">
.title{
padding: 10px 0;
span{
font-size: 14px;
font-weight: bold;
}
}
.bold{
font-weight: bold;
}
::v-deep .prepay_exception_detail .el-form-item{
margin-bottom: 0;
}
</style>
...@@ -77,7 +77,8 @@ import lodop from '@/utils/lodop' ...@@ -77,7 +77,8 @@ import lodop from '@/utils/lodop'
export default { export default {
filters: {parseTime}, filters: {parseTime},
props:{ props:{
orderId: [String, Number] orderId: [String, Number],
warehouseInNum: Number
}, },
data(){ data(){
return { return {
...@@ -116,7 +117,9 @@ export default { ...@@ -116,7 +117,9 @@ export default {
loadData(){ loadData(){
printTag(this.orderId).then(res => { printTag(this.orderId).then(res => {
this.$set(this, 'tags', res.data) this.$set(this, 'tags', res.data)
this.form.start = res.data[0].num // this.form.start = res.data[0].num
// 起始标签为入仓数 + 1
this.form.start = this.warehouseInNum + 1
this.form.end = res.data[res.data.length-1].num this.form.end = res.data[res.data.length-1].num
}) })
}, },
...@@ -126,9 +129,10 @@ export default { ...@@ -126,9 +129,10 @@ export default {
this.$emit('close'); this.$emit('close');
}, },
showPreview(){ showPreview(){
/* 2023-07-17 要求不限制范围
if(this.form.end > this.tags[this.tags.length-1].num){ if(this.form.end > this.tags[this.tags.length-1].num){
return this.$message.error(this.$t('结束标签不对')) return this.$message.error(this.$t('结束标签不对'))
} }*/
if(!this.printTags.length){ if(!this.printTags.length){
return this.$message.error(this.$t('指定区域无可打印标签')) return this.$message.error(this.$t('指定区域无可打印标签'))
} }
......
...@@ -414,26 +414,26 @@ ...@@ -414,26 +414,26 @@
</el-col> </el-col>
</el-row> </el-row>
<div v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" class="page-title">优惠详情</div> <div v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" class="page-title">{{$t('优惠详情')}}</div>
<el-table v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" :data="feeDetail.coupons"> <el-table v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" :data="feeDetail.coupons">
<el-table-column label="优惠ID" prop="couponId"></el-table-column> <el-table-column :label="$t('优惠ID')" prop="couponId"></el-table-column>
<el-table-column label="优惠名称"> <el-table-column :label="$t('优惠名称')">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ $l(row, 'title') }} {{ $l(row, 'title') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="类型"> <el-table-column :label="$t('类型')">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_COUPON_TYPE" :value="row.type" ></dict-tag> <dict-tag :type="DICT_TYPE.ECW_COUPON_TYPE" :value="row.type" ></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="运费优惠"> <el-table-column :label="$t('运费优惠')">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ row.freightReduceAmount}} {{ row.freightReduceAmount}}
{{currencyMap[row.freightReduceCurrencyId]}} {{currencyMap[row.freightReduceCurrencyId]}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="清关费优惠"> <el-table-column :label="$t('清关费优惠')">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ row.clearanceReduceAmount}} {{ row.clearanceReduceAmount}}
{{ currencyMap[row.clearanceReduceCurrencyId] }} {{ currencyMap[row.clearanceReduceCurrencyId] }}
......
...@@ -224,7 +224,7 @@ ...@@ -224,7 +224,7 @@
<dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGING_TYPE" defaultable :disabled="!canAddProduct || !productEditable" /> <dict-selector v-model="row.unit" :type="DICT_TYPE.ECW_PACKAGING_TYPE" defaultable :disabled="!canAddProduct || !productEditable" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('数量') + '(个)'" width="120px"> <el-table-column :label="`${$t('数量')}(${$t('个')})`" width="120px">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input v-model="row.quantity" @keyup.native="checkPositiveInterge(row, 'quantity')" :disabled="!canAddProduct || !productEditable" /> <el-input v-model="row.quantity" @keyup.native="checkPositiveInterge(row, 'quantity')" :disabled="!canAddProduct || !productEditable" />
</template> </template>
...@@ -407,7 +407,7 @@ ...@@ -407,7 +407,7 @@
<dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.harvestMethod" :filter="item => item.value == 1 || homeDeliveryService" defaultable :disabled="false" /> <dict-selector :type="DICT_TYPE.ECW_HARVEST_METHOD" v-model="form.harvestMethod" :filter="item => item.value == 1 || homeDeliveryService" defaultable :disabled="false" />
</el-form-item> </el-form-item>
</div> </div>
<div v-if="homeDeliveryService && form.harvestMethod == 2"> <div v-if="homeDeliveryService && +form.harvestMethod === 2">
<el-form-item :label="$t('收货地区')" prop="country"> <el-form-item :label="$t('收货地区')" prop="country">
<area-selector <area-selector
:country="form.consigneeVO ? form.consigneeVO.country : undefined" :country="form.consigneeVO ? form.consigneeVO.country : undefined"
...@@ -595,7 +595,8 @@ let makeDefaultFormData = () => { ...@@ -595,7 +595,8 @@ let makeDefaultFormData = () => {
isExternalWarehouse: false, isExternalWarehouse: false,
externalWarehouseDtoList:[], externalWarehouseDtoList:[],
orderItemVOList:[], orderItemVOList:[],
drawee: 2 drawee: 2,
harvestMethod: "1"
} }
} }
window.Decimal = Decimal window.Decimal = Decimal
......
...@@ -4,7 +4,11 @@ ...@@ -4,7 +4,11 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item :label="$t('编号')" prop="orderNo"> <el-form-item :label="$t('编号')" prop="orderNo">
<el-input v-model="queryParams.numberKey" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="noParam.value" :placeholder="$t('请输入订单号、唛头、提单号')" clearable @keyup.enter.native="handleQuery">
<template slot="prepend">
<dict-selector :type="DICT_TYPE.ORDER_QUERY_NO_FIELD" defaultable v-model="noParam.key" class="w-50" />
</template>
</el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item :label="$t('唛头')" prop="marks"> <!-- <el-form-item :label="$t('唛头')" prop="marks">
<el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" />
...@@ -54,7 +58,11 @@ ...@@ -54,7 +58,11 @@
</el-form-item> --> </el-form-item> -->
<el-form-item :label="$t('商品')" prop="tidanNo"> <el-form-item :label="$t('商品')" prop="tidanNo">
<el-input v-model="queryParams.prodKey" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="prodParam.value" :placeholder="$t('请输入商品类型、品名或品牌')" clearable @keyup.enter.native="handleQuery">
<template slot="prepend">
<dict-selector :type="DICT_TYPE.ORDER_QUERY_PROD_FIELD" defaultable v-model="prodParam.key" class="w-50" />
</template>
</el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货')" prop="isCargoControl"> <el-form-item :label="$t('控货')" prop="isCargoControl">
...@@ -330,6 +338,9 @@ ...@@ -330,6 +338,9 @@
<template v-if="scope.row.parentOrderId && scope.row.status < 11"> <template v-if="scope.row.parentOrderId && scope.row.status < 11">
<el-dropdown-item @click.native="splitRevoke(scope.row)" v-hasPermi="['ecw:order:split_revoke']">{{$t('撤销拆单')}}</el-dropdown-item> <el-dropdown-item @click.native="splitRevoke(scope.row)" v-hasPermi="['ecw:order:split_revoke']">{{$t('撤销拆单')}}</el-dropdown-item>
</template> </template>
<template v-if="scope.row.parentOrderId">
<el-dropdown-item @click.native="$router.push('./detail?orderId=' + scope.row.parentOrderId)">{{$t('查看母订单')}}</el-dropdown-item>
</template>
<!-- 合单日志,提货日志 --> <!-- 合单日志,提货日志 -->
...@@ -454,7 +465,7 @@ ...@@ -454,7 +465,7 @@
exclude(scope.row.status, [0]) && exclude(scope.row.status, [0]) &&
exclude(scope.row.abnormalState, [5,6,7,8]) exclude(scope.row.abnormalState, [5,6,7,8])
"> ">
<el-dropdown-item @click.native="printTagOrderId=scope.row.orderId" v-hasPermi="['ecw:order:print_tag']">{{$t('打印标签')}}</el-dropdown-item> <el-dropdown-item @click.native="printTag(scope.row)" v-hasPermi="['ecw:order:print_tag']">{{$t('打印标签')}}</el-dropdown-item>
</template> </template>
<!-- 打印入仓单 --> <!-- 打印入仓单 -->
...@@ -480,7 +491,7 @@ ...@@ -480,7 +491,7 @@
@pagination="getList" /> @pagination="getList" />
<special-needs :orderNo="orderNo" :show.sync="isShow" :currency="JSON.stringify(currencyList)" :order-id="orderId" @determine="getList" ></special-needs> <special-needs :orderNo="orderNo" :show.sync="isShow" :currency="JSON.stringify(currencyList)" :order-id="orderId" @determine="getList" ></special-needs>
<print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" /> <print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" :warehouse-in-num="printTagWarehouseInNum" />
<print-warehouse-receipt v-if="printWarehouseReceiptOrderId !== null" :order-id="printWarehouseReceiptOrderId" @close="printWarehouseReceiptOrderId=null" /> <print-warehouse-receipt v-if="printWarehouseReceiptOrderId !== null" :order-id="printWarehouseReceiptOrderId" @close="printWarehouseReceiptOrderId=null" />
<print-lading-bill v-if="printLadingBillOrderId !== null" :order-id="printLadingBillOrderId" @close="printLadingBillOrderId=null" /> <print-lading-bill v-if="printLadingBillOrderId !== null" :order-id="printLadingBillOrderId" @close="printLadingBillOrderId=null" />
<batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/> <batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/>
...@@ -541,9 +552,11 @@ import {getWarehouseList} from '@/api/ecw/warehouse' ...@@ -541,9 +552,11 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
import { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import SplitRevoke from "@/views/ecw/order/components/SplitRevoke"; import SplitRevoke from "@/views/ecw/order/components/SplitRevoke";
import {getChannelList} from "@/api/ecw/channel"; import {getChannelList} from "@/api/ecw/channel";
import Template from "@/views/cms/template/index.vue";
export default { export default {
name: "EcwOrderIndex", name: "EcwOrderIndex",
components: { components: {
Template,
UserSelector, UserSelector,
FeeApplication, FeeApplication,
BatchSingleApplication, BatchSingleApplication,
...@@ -592,6 +605,7 @@ export default { ...@@ -592,6 +605,7 @@ export default {
dateFilter: [], //筛选日期 dateFilter: [], //筛选日期
printTagOrderId: null, // 显示打印标签的订单ID printTagOrderId: null, // 显示打印标签的订单ID
printTagWarehouseInNum: 0, // 打印标签的订单入仓箱数
printWarehouseReceiptOrderId: null, // 打印入仓单的订单ID printWarehouseReceiptOrderId: null, // 打印入仓单的订单ID
printLadingBillOrderId: null, // 打印提单的订单ID printLadingBillOrderId: null, // 打印提单的订单ID
showBatchPickup: false, // 是否显示批量提货弹窗 showBatchPickup: false, // 是否显示批量提货弹窗
...@@ -616,7 +630,11 @@ export default { ...@@ -616,7 +630,11 @@ export default {
splitRevokeOrderId: null, // 撤销拆单的订单ID splitRevokeOrderId: null, // 撤销拆单的订单ID
// 渠道列表,空运需要渠道筛选 // 渠道列表,空运需要渠道筛选
channelList:[] channelList:[],
// 编号搜索条件
noParam: {},
// 商品搜索条件
prodParam: {}
}; };
}, },
watch:{ watch:{
...@@ -663,6 +681,12 @@ export default { ...@@ -663,6 +681,12 @@ export default {
if(this.transportId){ if(this.transportId){
queryParams.transportId = this.transportId queryParams.transportId = this.transportId
} }
if(this.noParam.value){
queryParams[this.noParam.key] = this.noParam.value
}
if(this.prodParam.value){
queryParams[this.prodParam.key] = this.prodParam.value
}
return queryParams return queryParams
}, },
/*batchWarehouseAdjustment(){ /*batchWarehouseAdjustment(){
...@@ -917,6 +941,11 @@ export default { ...@@ -917,6 +941,11 @@ export default {
onBatchClose(){ onBatchClose(){
this.showBatchPickup = false this.showBatchPickup = false
this.handleQuery() this.handleQuery()
},
// 打印标签
printTag(order){
this.printTagOrderId=order.orderId
this.printTagWarehouseInNum = order.sumNum
} }
} }
}; };
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<el-descriptions-item :label="$t('运输方式')"> <el-descriptions-item :label="$t('运输方式')">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
<!-- v2.0空运专线,显示出货渠道 --> <!-- v2.0空运专线,显示出货渠道 -->
<span v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, orderData.transportId).cssClass == 'channel'" style="margin-left:10px">{{$t('出货渠道')}}:{{channelName}}</span> <span v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, orderData.transportId).cssClass == 'channel'" style="margin-left:10px">{{$t('出货渠道')}}:{{orderData.channelName}}</span>
</el-descriptions-item> </el-descriptions-item>
<!-- v2.0空运专线,显示出货渠道 --> <!-- v2.0空运专线,显示出货渠道 -->
<!-- <el-descriptions-item :label="$t('出货渠道')" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, orderData.transportId).cssClass == 'channel'"> <!-- <el-descriptions-item :label="$t('出货渠道')" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, orderData.transportId).cssClass == 'channel'">
......
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