Commit 4bdadadf authored by dragondean@qq.com's avatar dragondean@qq.com

合并订单编辑,fix合并冲突

parents b63fc958 fd79416a
......@@ -143,3 +143,12 @@ export function getCityData(query) {
params: query
})
}
// 获取仓库区域并行国家、城市、仓库列表
export function getGuojiaAndShiAndWarehouseList(query = {}) {
return request({
url: '/app-api/ecw/warehouse/getGuojiaAndShiAndWarehouseList',
method: 'get',
params: query
})
}
......@@ -568,11 +568,11 @@ export default {
consignorPhone: '发货人电话',
consignorEmail: '发货人邮箱',
consigneeName: '收货人',
consigneeCompany: '收货人公司名称',
consigneeNameEn: '收货人英文名称',
consigneeCompanyEn: '收货人公司英文名称',
consigneeEmail: '收货人邮箱',
consigneePhone: '收货人电话',
consigneeCompany: '公司名称',
consigneeNameEn: '英文名称',
consigneeCompanyEn: '公司英文名称',
consigneeEmail: '邮箱',
consigneePhone: '电话',
marks: '唛头',
isCargoControl: '是否控货',
baseInfo: '基础',
......
<script>
export default {
props: {
title: String,
langKey: String
}
}
</script>
<template>
<div style="display: flex">
<div
style="
width: 6px;
height: 26px;
background: #659fd5;
border-radius: 0px 6px 6px 0px;
"
/>
<span
style="
font-size: 22px;
font-weight: 500;
color: #333;
line-height: 26px;
margin-left: 5px;
"
>
<slot>{{ title || $t(langKey) }}</slot>
</span>
</div>
</template>
<style scoped>
</style>
......@@ -16,7 +16,7 @@
"
>{{ $t("delivery.header") }}</span>
</div>
<div style="display: flex; align-items: flex-end; margin-top: 5px">
<div style="display: flex; align-items: flex-end; margin-top: 5px; margin-bottom: 20px">
<div style="width: 75px; height: 4px; background: #396fff" />
<div
style="
......@@ -27,33 +27,21 @@
"
/>
</div>
<el-form ref="form" :model="form" :rules="rules">
<el-form-item
v-if="
selectedRouter &&
(routeOtherServices.indexOf('1') > -1 ||
routeOtherServices.indexOf('4') > -1)
"
:label="$t('delivery.header')"
style="margin-top: 30px"
>
<el-checkbox-group v-model="form.type">
<el-checkbox
v-if="
(!selectedRouter || routeOtherServices.indexOf('1') > -1) && false
"
label="1"
>{{ $t("delivery.orderType1") }}</el-checkbox>
<el-checkbox
v-if="!selectedRouter || routeOtherServices.indexOf('2') > -1"
label="2"
>{{ $t("delivery.orderType2") }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<section-title lang-key="delivery.header">
{{$t('delivery.consigneeName')}}
<el-radio-group v-if="noConsignee" v-model="hasConsignee">
<el-radio :label="true">{{$t('')}}</el-radio>
<el-radio :label="false">{{$t('')}}</el-radio>
</el-radio-group>
</section-title>
<!--收货人-->
<el-row :gutter="20" style="margin-top: 30px">
<el-col :span="12">
<el-form-item
:label="$t('delivery.consigneeName')"
:label="$t('名称')"
prop="consigneeName"
>
<el-input
......@@ -68,68 +56,71 @@
>{{ $t("delivery.openConsignee") }}</el-button>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('orderdetail.consigneeNameEn')"
prop="consigneeNameEn"
>
<el-input
v-model="form.consigneeNameEn"
:placeholder="$t('delivery.consigneeNameNoticeEn')"
style="width: 200px"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" style="margin-top: 30px">
<el-col :span="12">
<el-col :span="10">
<el-form-item
:label="$t('delivery.consigneePhone')"
prop="consigneePhone"
:label="$t('delivery.consigneePhone')"
prop="consigneePhone"
>
<el-select
v-model="form.countryCode"
style="width: 100px"
@change="(val) => changeArea(val, form.consigneePhone)"
v-model="form.countryCode"
style="width: 100px"
@change="(val) => changeArea(val, form.consigneePhone)"
>
<el-option
v-for="item in countryList"
:key="item.id"
:label="'+' + item.tel"
:value="item.tel"
v-for="item in countryList"
:key="item.id"
:label="'+' + item.tel"
:value="item.tel"
>
<span>{{ "+" + item.tel + " " + $l(item, "name") }}</span>
</el-option>
</el-select>
<el-input
v-model="form.consigneePhone"
:placeholder="$t('delivery.consigneePhoneNotice')"
style="width: 180px"
@blur="(val) => changeArea(form.countryCode, form.consigneePhone)"
v-model="form.consigneePhone"
:placeholder="$t('delivery.consigneePhoneNotice')"
style="width: 180px"
@blur="(val) => changeArea(form.countryCode, form.consigneePhone)"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="2">
<el-button circle icon="el-icon-circle-plus" v-if="!showFullConsignee" @click="showFullConsignee=true"></el-button>
<el-button circle icon="el-icon-remove" v-else @click="showFullConsignee=false"></el-button>
</el-col>
</el-row>
<el-row :gutter="5" v-if="showFullConsignee">
<el-col :span="6">
<el-form-item
:label="$t('orderdetail.consigneeNameEn')"
prop="consigneeNameEn"
>
<el-input
v-model="form.consigneeNameEn"
:placeholder="$t('delivery.consigneeNameNoticeEn')"
style="width: 200px"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('delivery.consigneeCompany')">
<el-input
v-model="form.consigneeCompany"
:placeholder="$t('delivery.consigneeCompanyNotice')"
style="width: 200px"
style="width: 150px"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-col :span="6">
<el-form-item :label="$t('orderdetail.consigneeCompanyEn')">
<el-input
v-model="form.consigneeCompanyEn"
:placeholder="$t('delivery.consigneeCompanyNoticeEn')"
style="width: 200px"
style="width: 150px"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="Email">
<el-input
v-model="form.consigneeEmail"
......@@ -139,7 +130,11 @@
</el-form-item>
</el-col>
</el-row>
<el-card>
<template #header>
<section-title :title="$t('运输')"></section-title>
</template>
<el-descriptions :column="2" border>
<el-descriptions-item
:label="$t('delivery.transport')"
......@@ -165,7 +160,8 @@
</el-form-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="2" border>
<el-descriptions :column="3" border>
<!--始发城市-->
<el-descriptions-item
:label="$t('delivery.departure')"
label-style="width:100px"
......@@ -195,6 +191,40 @@
</el-select>
</el-form-item>
</el-descriptions-item>
<!--目的国-->
<el-descriptions-item
:label="$t('delivery.objective')"
label-style="width:100px"
>
<span
slot="label"
><span style="color: red">*</span>{{ $t("目的国") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="destCountryId"
required
:error="$t('请选择目的国')"
>
<el-select
v-model="form.destCountryId"
:placeholder="$t('请选择目的国')"
clearable
@change="handleChangeDestCountry"
>
<el-option
v-for="item in showDestCountryLis"
:key="item.guojia"
:label="$l(item, 'guojiaName')"
:value="item.guojia"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<!--目的城市-->
<el-descriptions-item
:label="$t('delivery.objective')"
label-style="width:100px"
......@@ -214,19 +244,22 @@
v-model="form.objectiveId"
:placeholder="$t('delivery.objectiveNotice')"
clearable
@change="handleChangeDestCity"
>
<el-option
v-for="item in importCityList"
:key="item.id"
:label="$l(item, 'title')"
:value="item.id"
v-for="item in showDestCityList"
:key="item.shi"
:label="$l(item, 'shiName')"
:value="item.shi"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<!--路线-->
<el-descriptions-item
:label="$t('delivery.router')"
:span="2"
:span="3"
label-style="width:100px"
>
<span
......@@ -247,11 +280,10 @@
/>
</el-col>
<el-col :span="12">
<select v-model="form.lineId" size="5" style="min-width: 300px">
<select v-model="form.lineId" size="5" style="min-width: 300px" @change="handleChangeLineId">
<template v-for="item in routerList">
<option :key="item.id" :value="item.id">
{{ $l(item, "startTitle") }} >>
{{ $l(item, "destTitle") }}
{{ $l(item, "startTitle") }} >> {{ $l(item, "destTitle") }}
</option>
</template>
</select>
......@@ -286,11 +318,24 @@
/>
</el-form-item>
</el-descriptions-item>
<!--服务-->
<el-descriptions-item :label="$t('服务')"
v-if="selectedRouter && (routeOtherServices.indexOf('1') > -1 || routeOtherServices.indexOf('4') > -1)">
<el-checkbox-group v-model="form.type">
<el-checkbox label="1"
v-if="(!selectedRouter || routeOtherServices.indexOf('1') > -1)"
>{{ $t("delivery.orderType1") }}</el-checkbox>
<el-checkbox label="2"
v-if="!selectedRouter || routeOtherServices.indexOf('2') > -1"
>{{ $t("delivery.orderType2") }}</el-checkbox>
</el-checkbox-group>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="mt-10">
<div slot="header" class="card-title">
<div style="display: flex">
<!--<div style="display: flex">
<div
style="
width: 6px;
......@@ -308,7 +353,8 @@
margin-left: 5px;
"
>{{ $t("delivery.goods") }}</span>
</div>
</div>-->
<section-title :title='$t("delivery.goods")'></section-title>
<div>
<el-button
type="primary"
......@@ -677,135 +723,13 @@
</el-descriptions>
</el-card>
<el-card v-if="false" class="mt-10">
<div slot="header" class="card-title">
<div style="display: flex">
<div
style="
width: 6px;
height: 26px;
background: #659fd5;
border-radius: 0px 6px 6px 0px;
"
/>
<span
style="
font-size: 22px;
font-weight: 500;
color: #333;
line-height: 26px;
margin-left: 5px;
"
>预计费用</span>
</div>
</div>
<el-descriptions :column="5" border>
<el-descriptions-item label="保价费">
{{ fee.insuranceFee || 0 }} 人民币
</el-descriptions-item>
<el-descriptions-item label="总运费">
<div>{{ fee.seaNGN || 0 }}奈拉</div>
<div>{{ fee.seaRMB || 0 }}人民币</div>
<div>{{ fee.seaUSD || 0 }}美元</div>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item label="总清关费">
<div>{{ fee.clearanceNGN || 0 }}奈拉</div>
<div>{{ fee.clearanceRMB || 0 }}人民币</div>
<div>{{ fee.clearanceUSD || 0 }}美元</div>
</el-descriptions-item>
<el-descriptions-item label="其他费用">
<!--TODO 缺少其他费用字段-->
<el-input
v-model="form.otherFee"
placeholder=""
style="width: 100px"
/>
<selector
v-model="form.otherFeeCurrencyId"
:options="currencyList"
label-field="titleZh"
value-field="id"
defaultable
style="width: 100px"
/>
</el-descriptions-item>
<el-descriptions-item label="原价" :span="2">
<!--TODO 缺少字段-->
<div>{{ fee.clearanceNGN || 0 }}奈拉</div>
<div>{{ fee.clearanceRMB || 0 }}人民币</div>
<div>{{ fee.clearanceUSD || 0 }}美元</div>
</el-descriptions-item>
</el-descriptions>
<div class="card-title" style="padding: 20px 0">
<div style="display: flex">
<div
style="
width: 6px;
height: 26px;
background: #659fd5;
border-radius: 0px 6px 6px 0px;
"
/>
<span
style="
font-size: 22px;
font-weight: 500;
color: #333;
line-height: 26px;
margin-left: 5px;
"
>优惠信息</span>
</div>
</div>
<el-row
v-for="(item, index) in getDictDatas(DICT_TYPE.ECW_COUPON_TYPE)"
:key="item.value"
:gutter="10"
>
<el-col :span="4">{{ index + 1 }}.{{ item.label }}</el-col>
<el-col :span="6">
<!-- <el-select placeholder="">
</el-select> -->
</el-col>
<el-col :span="4">-10美元</el-col>
<el-col :span="6">有效期:永久有效</el-col>
</el-row>
<el-descriptions :column="1" border>
<el-descriptions-item label="优惠合计">
1233.1美元
</el-descriptions-item>
<el-descriptions-item label="预计费用" />
</el-descriptions>
</el-card>
<el-card class="mt-10">
<div slot="header" class="card-title">
<div style="display: flex">
<div
style="
width: 6px;
height: 26px;
background: #659fd5;
border-radius: 0px 6px 6px 0px;
"
/>
<span
style="
font-size: 22px;
font-weight: 500;
color: #333;
line-height: 26px;
margin-left: 5px;
"
>{{ $t("delivery.common") }}</span>
</div>
<section-title :title='$t("delivery.common")'></section-title>
</div>
<el-descriptions :column="2" border>
<el-descriptions :column="3" border>
<!--唛头-->
<el-descriptions-item :label="$t('delivery.marks')">
<span
slot="label"
......@@ -821,296 +745,406 @@
<el-input v-model="form.marks" placeholder="" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.isCargoControl')">
<!--单证报关-->
<el-descriptions-item :label="$t('delivery.customsType')" :span="2">
<span
slot="label"
slot="label"
><span style="color: red">*</span>
{{ $t("delivery.isCargoControl") }}
{{ $t("delivery.customsType") }}
<el-tooltip
:content="$t('delivery.isCargoControlNotice')"
placement="top"
:content="$t('delivery.customsTypeNotice')"
placement="top"
>
<i class="el-icon-question" />
</el-tooltip>
</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="isCargoControl"
required
label=""
label-width="0"
style="margin-bottom: 0"
prop="customsType"
required
>
<dict-selector
v-model="form.isCargoControl"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter="bool"
form-type="radio"
v-model="form.customsType"
:type="DICT_TYPE.ECW_CUSTOMS_TYPE"
defaultable
form-type="radio"
/>
</el-form-item>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item
v-if="collectionProxy"
:label="$t('delivery.isCollection')"
>
<!--控货-->
<el-descriptions-item :label="$t('delivery.isCargoControl')">
<span
slot="label"
><span style="color: red">*</span>{{ $t("delivery.isCollection") }}</span>
><span style="color: red">*</span>
{{ $t("delivery.isCargoControl") }}
<el-tooltip
:content="$t('delivery.isCargoControlNotice')"
placement="top"
>
<i class="el-icon-question" />
</el-tooltip>
</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="isCollection"
prop="isCargoControl"
required
>
<dict-selector
v-model="form.isCollection"
v-model="form.isCargoControl"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter="bool"
form-type="radio"
@input="selectCollectionProxy"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
v-if="collectionProxy && showCollectionProxy"
:label="$t('delivery.collectionProxy')"
>
<el-input-number
v-model="form.collectionProxy"
min="0"
:controls="false"
style="width: 200px"
/>
<selector
v-model="form.collectionProxyCurrency"
:options="currencyList"
label-field="titleZh"
value-field="id"
defaultable
style="width: 100px"
/>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.customsType')" :span="2">
<!--付款人-->
<el-descriptions-item :label="$t('delivery.drawee')" :span="2">
<span
slot="label"
><span style="color: red">*</span>
{{ $t("delivery.customsType") }}
<el-tooltip
:content="$t('delivery.customsTypeNotice')"
placement="top"
>
<i class="el-icon-question" />
</el-tooltip>
</span>
slot="label"
><span style="color: red">*</span>{{ $t("delivery.drawee") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="customsType"
required
label=""
label-width="0"
style="margin-bottom: 0"
prop="drawee"
required
>
<dict-selector
v-model="form.customsType"
:type="DICT_TYPE.ECW_CUSTOMS_TYPE"
defaultable
form-type="radio"
v-model="form.drawee"
:type="DICT_TYPE.DRAWEE"
:filter="(e) => e.value == '1' || e.value == '2'"
defaultable
form-type="radio"
/>
</el-form-item>
<!--自定义付款人-->
<div v-if="form.drawee == 3">
<template v-for="(item, index) in customDraweeList" v-key="index">
<el-form-item :key="index" :label="item.label">
<dict-selector
v-model="item.value"
:type="DICT_TYPE.DRAWEE"
:filter="(e) => e.value == '1' || e.value == '2'"
form-type="radio"
/>
</el-form-item>
</template>
</div>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.issuingMethod')">
<!--入仓类型-->
<el-descriptions-item :label="$t('delivery.warehouseType')">
<span
slot="label"
><span style="color: red">*</span>{{ $t("delivery.issuingMethod") }}</span>
slot="label"
><span style="color: red">*</span>{{ $t("delivery.warehouseType") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="issuingMethod"
required
label=""
label-width="0"
style="margin-bottom: 0"
prop="warehouseType"
required
>
<dict-selector
v-model="form.issuingMethod"
:type="DICT_TYPE.ECW_SUING_METHOD"
defaultable
form-type="radio"
v-model="form.warehouseType"
:type="DICT_TYPE.ECW_WAREHOUSING_TYPE"
defaultable
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('外部仓')" :span="2">
<el-form-item prop="isExternalWarehouse">
<el-checkbox label="" v-model="form.isExternalWarehouse" @change="form.isExternalWarehouse=$event" :disabled="false"></el-checkbox>
</el-form-item>
<div v-if="form.isExternalWarehouse">
<div v-for="(item, index) in form.externalWarehouseDtoList" class="" :key="index"
style="border-bottom: 1px solid #ccc; margin-bottom: 10px">
<div class="flex-1">
<el-form-item :label="$t('装货时间')"
:prop="'externalWarehouseDtoList.' + index + '.estLoadingTime'"
:rules="{
required: true, message: '装货时间不能为空', trigger: 'blur'
}"
>
<el-date-picker v-model="item.estLoadingTime" value-format="yyyy-MM-dd HH:mm:ss" class="w-200"></el-date-picker>
</el-form-item>
</div>
<div class="flex-1">
<el-form-item :label="$t('装货地址')"
:prop="'externalWarehouseDtoList.' + index + '.loadingAddress'"
:rules="{
required: true, message: '装货地址不能为空', trigger: 'blur'
}"
>
<el-input v-model="item.loadingAddress" placeholder="" class="w-200"></el-input>
</el-form-item>
</div>
</div>
<div>
<el-button size="mini" type="primary" icon="el-icon-plus" @click="form.externalWarehouseDtoList.push({})"></el-button>
<el-button size="mini" type="danger" icon="el-icon-delete" :disabled="form.externalWarehouseDtoList.length <= 1"
@click="form.externalWarehouseDtoList.splice(form.externalWarehouseDtoList.length-1, 1)"></el-button>
</div>
</div>
</el-descriptions-item>
<!--预计送货日期-->
<el-descriptions-item :label="$t('delivery.deliveryDate')">
<span
slot="label"
slot="label"
><span style="color: red">*</span>{{ $t("delivery.deliveryDate") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="deliveryDate"
required
:error="$t('delivery.deliveryDateRules')"
label=""
label-width="0"
style="margin-bottom: 0"
prop="deliveryDate"
required
:error="$t('delivery.deliveryDateRules')"
>
<el-date-picker
v-model="form.deliveryDate"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="form.deliveryDate"
value-format="yyyy-MM-dd HH:mm:ss"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.warehouseType')">
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item
v-if="collectionProxy"
:label="$t('delivery.isCollection')"
:span="2"
>
<span
slot="label"
><span style="color: red">*</span>{{ $t("delivery.warehouseType") }}</span>
><span style="color: red">*</span>{{ $t("delivery.isCollection") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="warehouseType"
prop="isCollection"
required
>
<dict-selector
v-model="form.warehouseType"
:type="DICT_TYPE.ECW_WAREHOUSING_TYPE"
defaultable
v-model="form.isCollection"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter="bool"
form-type="radio"
@input="selectCollectionProxy"
/>
</el-form-item>
<!--代收货款金额-->
<el-form-item
v-if="collectionProxy && showCollectionProxy"
:label="$t('delivery.collectionProxy')"
>
<el-input-number
v-model="form.collectionProxy"
min="0"
:controls="false"
style="width: 200px"
/>
<selector
v-model="form.collectionProxyCurrency"
:options="currencyList"
label-field="titleZh"
value-field="id"
defaultable
style="width: 100px"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item v-else :span="2"><!--占位--></el-descriptions-item>
<!--收货方式-->
<el-descriptions-item :label="$t('delivery.harvestMethod')">
<span
slot="label"
slot="label"
><span style="color: red">*</span>{{ $t("delivery.harvestMethod") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="harvestMethod"
required
label=""
label-width="0"
style="margin-bottom: 0"
prop="harvestMethod"
required
>
<dict-selector
v-model="form.harvestMethod"
:type="DICT_TYPE.ECW_HARVEST_METHOD"
:filter="(item) => item.value == 1 || homeDeliveryService"
defaultable
v-model="form.harvestMethod"
:type="DICT_TYPE.ECW_HARVEST_METHOD"
:filter="(item) => item.value == 1 || homeDeliveryService"
defaultable
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :span="2"><!--报价单字段已在群里确认不需要--></el-descriptions-item>
<!--收货地址-->
<el-descriptions-item
v-if="homeDeliveryService && form.harvestMethod == 2"
:label="$t('delivery.deliveryaddress')"
:span="2"
>
v-if="homeDeliveryService && form.harvestMethod == 2"
:label="$t('delivery.deliveryaddress')">
<span
slot="label"
slot="label"
><span style="color: red">*</span>{{ $t("delivery.deliveryaddress") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="city"
label=""
label-width="0"
style="margin-bottom: 0"
prop="city"
>
<area-selector
:country="
:country="
form.consigneeVO ? form.consigneeVO.country : undefined
"
:province="
:province="
form.consigneeVO ? form.consigneeVO.province : undefined
"
:city="form.consigneeVO ? form.consigneeVO.city : undefined"
@countryChange="onAreaChange('country', $event)"
@provinceChange="onAreaChange('province', $event)"
@cityChange="onAreaChange('city', $event)"
:city="form.consigneeVO ? form.consigneeVO.city : undefined"
@countryChange="onAreaChange('country', $event)"
@provinceChange="onAreaChange('province', $event)"
@cityChange="onAreaChange('city', $event)"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
v-if="homeDeliveryService && form.harvestMethod == 2"
:label="$t('delivery.addressdetail')"
:span="2"
v-if="homeDeliveryService && form.harvestMethod == 2"
:label="$t('delivery.addressdetail')"
:span="2"
>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="consigneeAddress"
required
label=""
label-width="0"
style="margin-bottom: 0"
prop="consigneeAddress"
required
>
<el-input v-model="form.consigneeAddress" placeholder="" />
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="mt-10">
<template #header>
<section-title :title="$t('其他')"></section-title>
</template>
<el-descriptions :column="2" label-style="width: 120px" border>
<el-descriptions-item>
<span
slot="label"
>
{{ $t("delivery.packageType") }}
<el-tooltip
:content="$t('delivery.packageTypeNotice')"
placement="top"
>
<i class="el-icon-question" />
</el-tooltip>
</span>
<!--特殊要求 / 包装类型-->
<el-form-item prop="packageType">
<dict-selector
v-model="form.packageType"
form-type="checkbox"
:type="DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('特殊要求备注')">
<!--包装备注-->
<el-form-item prop="packageRemarks">
<el-input v-model="form.packageRemarks" type="textarea" class="w-200" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :span="2" :label="$t('delivery.number')">
<!--快递单号-->
<el-form-item prop="number">
<el-input
v-model="form.number"
:placeholder="$t('delivery.numberNotice')"
>
<el-button
slot="append"
type="primary"
@click="getOrderCourierNumber"
>{{ $t("delivery.getNumber") }}</el-button>
</el-input>
</el-form-item>
</el-descriptions-item>
<template v-if="isAir">
<el-descriptions-item :label="$t('delivery.customsClearCert')">
<!--清关证书-->
<el-form-item prop="customsClearCert">
<dict-selector
v-model="form.customsClearCert"
form-type="radio"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter="bool"
defaultable
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.clearCertRemark')">
<!--清关证书备注-->
<el-form-item prop="remarks">
<el-input v-model="form.remarks" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.isUnpack')">
<!--是否拆包-->
<el-form-item prop="isUnpack">
<dict-selector
v-model="form.isUnpack"
form-type="radio"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter="bool"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item :label="$t('delivery.isSingleTicketTransport')">
<!--单票立刻转运-->
<el-form-item prop="isSingleTicketTransport">
<dict-selector
v-model="form.isSingleTicketTransport"
form-type="radio"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter="bool"
/>
<span style="margin-left: 10px; color: red">{{
$t("delivery.notice")
}}</span>
</el-form-item>
</el-descriptions-item>
</template>
<el-descriptions-item :label="$t('delivery.drawee')" :span="2">
<!--出单方式,新的原型没有提现,暂时隐藏显示-->
<el-descriptions-item :label="$t('delivery.issuingMethod')" v-false>
<span
slot="label"
><span style="color: red">*</span>{{ $t("delivery.drawee") }}</span>
><span style="color: red">*</span>{{ $t("delivery.issuingMethod") }}</span>
<el-form-item
label=""
label-width="0"
style="margin-bottom: 0"
prop="drawee"
prop="issuingMethod"
required
>
<dict-selector
v-model="form.drawee"
:type="DICT_TYPE.DRAWEE"
:filter="(e) => e.value == '1' || e.value == '2'"
v-model="form.issuingMethod"
:type="DICT_TYPE.ECW_SUING_METHOD"
defaultable
form-type="radio"
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
v-if="form.drawee == 3"
:label="$t('delivery.customDraweeList')"
:span="2"
>
<template v-for="(item, index) in customDraweeList" v-key="index">
<el-form-item :key="index" :label="item.label">
<dict-selector
v-model="item.value"
:type="DICT_TYPE.DRAWEE"
:filter="(e) => e.value == '1' || e.value == '2'"
form-type="radio"
/>
</el-form-item>
</template>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card v-if="transport" class="mt-10">
<div slot="header" class="card-title">
<div style="display: flex">
<div
style="
width: 6px;
height: 26px;
background: #659fd5;
border-radius: 0px 6px 6px 0px;
"
/>
<span
style="
font-size: 22px;
font-weight: 500;
color: #333;
line-height: 26px;
margin-left: 5px;
"
>{{ $l(transport, "label") }}</span>
</div>
</div>
<el-form-item :label="$t('delivery.number')">
<el-input
v-model="form.number"
:placeholder="$t('delivery.numberNotice')"
>
<el-button
slot="append"
type="primary"
@click="getOrderCourierNumber"
>{{ $t("delivery.getNumber") }}</el-button>
</el-input>
</el-form-item>
<!--下面这部分根据原型没有展示,暂时隐藏-->
<el-card v-if="false" class="mt-10">
<!--是否双清-->
<el-form-item
v-if="[2, 3, 4].indexOf(+form.transportId) > -1"
:label="$t('delivery.doubleClear')"
......@@ -1128,82 +1162,16 @@
>
<supplier-selector v-model="form.airlineCompany" company-type="10" />
</el-form-item-->
<!--船公司-->
<el-form-item
v-if="[2].indexOf(+form.transportId) > -1"
:label="$t('delivery.shippingCompany')"
>
<supplier-selector v-model="form.shippingCompany" company-type="9" />
</el-form-item>
<el-form-item
v-if="[2, 3, 4].indexOf(+form.transportId) > -1"
:label="$t('delivery.customsClearCert')"
>
<dict-selector
v-model="form.customsClearCert"
form-type="radio"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter="bool"
defaultable
/>
</el-form-item>
<el-form-item
v-if="[2, 3, 4].indexOf(+form.transportId) > -1"
:label="$t('delivery.clearCertRemark')"
>
<el-input v-model="form.remarks" />
</el-form-item>
<el-form-item
v-if="[3, 4].indexOf(+form.transportId) > -1"
:label="$t('delivery.isUnpack')"
>
<dict-selector
v-model="form.isUnpack"
form-type="radio"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter="bool"
/>
</el-form-item>
<el-form-item
v-if="[3, 4].indexOf(+form.transportId) > -1"
:label="$t('delivery.isSingleTicketTransport')"
>
<dict-selector
v-model="form.isSingleTicketTransport"
form-type="radio"
:type="DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter="bool"
/>
<span style="margin-left: 10px; color: red">{{
$t("delivery.notice")
}}</span>
</el-form-item>
<el-form-item :label="$t('delivery.packageType')">
<template #label>
{{ $t("delivery.packageType") }}
</template>
<el-tooltip
:content="$t('delivery.packageTypeNotice')"
placement="top"
style="margin-right: 15px"
>
<i class="el-icon-question" />
</el-tooltip>
<dict-selector
v-model="form.packageType"
form-type="checkbox"
:type="DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
</el-form-item>
<el-form-item :label="$t('delivery.packageRemarks')">
<el-input v-model="form.packageRemarks" />
</el-form-item>
</el-card>
<el-form-item label="">
<el-form-item label="" class="mt-20">
<el-button
v-if="form.status == 0 || editFlag"
type="primary"
......@@ -1547,7 +1515,7 @@ import {
getData,
getOpenedRouterList,
validatorPhone,
checkKycStatus
checkKycStatus, getListTree, getWarehouseTreeList, getGuojiaAndShiAndWarehouseList
} from '@/api/data'
import {
getCustomerList,
......@@ -1573,9 +1541,11 @@ import AreaSelector from '@/components/AreaSelector'
import DictTag from '@/components/DictTag'
import SupplierSelector from '@/components/SupplierSelector'
import Pagination from '@/components/Pagination'
import SectionTitle from '@/views/jiedao/profile/components/SectionTitle.vue'
export default {
name: 'OrderEdit',
components: {
SectionTitle,
ProductSelector,
DictSelector,
Selector,
......@@ -1601,7 +1571,12 @@ export default {
return {
validatorPositiveNumber,
// customDraweeList: [],
// 国家区号列表,用于电话的区号选择
countryList: [],
// 目的国家,用于线路筛选
destCountryList: [],
// 目的城市
destCityList: [],
customerList: [], // 客户信息
productAttrList: [], // 商品属性
channelList: [], // 出货取到
......@@ -1617,6 +1592,7 @@ export default {
couponList: [],
fee: {}, // 费用
form: {
destCountryId: null,
countryCode: '86',
status: 0,
consigneeName: '',
......@@ -1632,7 +1608,8 @@ export default {
isUnpack: false,
drawee: 2,
type: [],
orderItemVOList: []
orderItemVOList: [],
externalWarehouseDtoList:[]
},
// 总条数
total: 0,
......@@ -1680,7 +1657,7 @@ export default {
],
marks: [
{ required: true, message: this.$t('delivery.marksRules') },
{ pattern: /[A-z]/, message: this.$t('delivery.marksRules1') }
// { pattern: /[A-z]/, message: this.$t('delivery.marksRules1') }
],
departureId: [
{ required: true, message: this.$t('delivery.departureRules') }
......@@ -1735,19 +1712,27 @@ export default {
exportLoading: false, // 装下单模板下载状态
importList: [],
noticeVisble: false,
noticeVisble1: false
noticeVisble1: false,
// 有无收货人
hasConsignee: true,
// 显示完整收货人信息
showFullConsignee: false,
// 仓库区域树形列表
warehouseTreeList: [],
// 选择的路线对象
selectedRouter: null
}
},
computed: {
exportCityList() {
return this.tradeCityList.filter(
(item) => item.type == 2 || item.type == 3
)
return this.tradeCityList.filter((item) => {
return item.type == 2 || item.type == 3
})
},
importCityList() {
return this.tradeCityList.filter(
(item) => item.type == 1 || item.type == 3
)
return this.tradeCityList.filter((item) => {
return item.type == 1 || item.type == 3
})
},
exportCityIds() {
const ids = []
......@@ -1783,11 +1768,11 @@ export default {
})
return data
},
selectedRouter() {
/* selectedRouter() {
// otherService 1 送货上门,2非控货订单代收货款
if (!this.form.lineId) return null
return this.routerList.find((item) => item.id == this.form.lineId)
},
}, */
// 送货上门
homeDeliveryService() {
return (
......@@ -1868,6 +1853,24 @@ export default {
// return false
// }
return true
},
// 当前用户信息
userInfo() {
return this.$store.getters.loginUser || {}
},
noConsignee() {
return this.userInfo.noConsignee || false
},
isAir() {
return [3, 4].indexOf(+this.form.transportId) > -1
},
// 显示的目的国
showDestCountryLis(){
return this.destCountryList
},
showDestCityList(){
if(!this.form.destCountryId) return this.destCityList
return this.destCityList.filter(item => item.guojia === this.form.destCountryId) || []
}
},
watch: {
......@@ -1879,9 +1882,9 @@ export default {
this.getOpenedRouterList()
},
// 目的地
'form.objectiveId'() {
/* 'form.objectiveId'() {
this.getOpenedRouterList()
},
}, */
'form.transportId'() {
this.getOpenedRouterList()
},
......@@ -1903,8 +1906,9 @@ export default {
async 'form.lineId'(lineId) {
const router = this.routerList.find((item) => item.id == lineId)
if (!router) return
this.$set(this.form, 'departureId', router.startCityId)
/* this.$set(this.form, 'departureId', router.startCityId)
this.$set(this.form, 'objectiveId', router.destCityId)
this.form.destCountryId = router.destCountryId */
this.calculationPrice()
this.getIdCardData()
await this.getChannelList()
......@@ -1913,8 +1917,22 @@ export default {
'form.harvestMethod'(harvestMethod) {
console.log(harvestMethod)
},
// 服务
'form.type'(type){
if(type.indexOf('2') > -1){
this.$alert(this.$t('如需海外仓服务,请联系客服,服务热线:400-900-9962'))
}
},
'form.isExternalWarehouse'(isExternalWarehouse){
// 勾选外部仓则添加一个默认的,取消则删除默认的空的
if(!isExternalWarehouse){
this.$set(this.form, 'externalWarehouseDtoList', [])
}else if(!this.form.externalWarehouseDtoList || !this.form.externalWarehouseDtoList.length){
this.$set(this.form, 'externalWarehouseDtoList', [{}])
}
},
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
selectedRouter(val) {
async selectedRouter(val) {
if (!val) return;
['1', '4'].forEach((service) => {
if (
......@@ -1979,6 +1997,9 @@ export default {
getCountryList().then((r) => {
this.countryList = r.data
})
getListTree({treeType: 1}).then(res => {
this.dstCountryList = res.data
})
getData({ page: 1, rows: 100, dictType: 'transport_type' }).then((r) => {
this.transportTypeList = r.data.list
})
......@@ -1994,6 +2015,12 @@ export default {
await this.getTradeCity()
await this.getChannelList()
getCurrencyList().then((res) => (this.currencyList = res.data))
getGuojiaAndShiAndWarehouseList({tradeType: 1}).then(res => {
this.destCountryList = res.data.guojiaList
this.destCityList = res.data.shiList
// this.destWarehoustList = res.data.warehouseList
})
},
methods: {
async getTradeCity() {
......@@ -2001,7 +2028,20 @@ export default {
if (this.form.channelId) {
query.channelId = this.form.channelId
}
if(this.destCountryId){
query.destCountryId = this.destCountryId
}
this.tradeCityList = (await getTradeCityList(query)).data
await this.$nextTick()
// 如果已选中的城市不在列表中则清空
if(this.form.departureId && this.importCityList.findIndex(item => item.id == this.form.departureId) < 0){
this.form.objectiveId = null
}
// 如果只有一个城市则选中
if(this.importCityList.length === 1){
this.form.objectiveId = this.importCityList[0].id
}
},
async getChannelList() {
const query = {
......@@ -2295,6 +2335,9 @@ export default {
if (this.form.channelId) {
params.channelId = this.form.channelId
}
if(this.form.destCountryId){
params.destCountryId = this.form.destCountryId
}
await this.$nextTick()
getOpenedRouterList(params).then((res) => {
this.routerList = res.data.filter((item) => {
......@@ -2303,6 +2346,12 @@ export default {
this.importCityIds.indexOf(item.destCityId) > -1
)
})
return this.$nextTick()
}).then(() =>{
// 如果已选中的路线不在列表中则清空
if(this.form.lineId && this.routerList.findIndex(item => item.id == this.form.lineId) < 0){
this.form.lineId = null
}
})
},
// 计算体积
......@@ -2337,6 +2386,47 @@ export default {
this.couponList = res.data
})
},
// 切换目的国
handleChangeDestCountry(val) {
console.log("handleChangeDestCountry", val)
this.form.destCountryId = val
if(this.form.destCountryId){
this.form.objectiveId = null
this.form.lineId = null
this.selectedRouter = null
this.getOpenedRouterList()
}
},
// 切换目的城市
handleChangeDestCity(val){
this.form.objectiveId = val
if(this.form.objectiveId){
this.form.lineId = null
this.selectedRouter = null
this.form.destCountryId = this.destCityList.find(item => item.shi === val)?.guojia
this.getOpenedRouterList()
}
},
// 切换路线
setLineId(lineId){
this.form.lineId = lineId
this.handleChangeLineId()
},
// 切换线路回调
async handleChangeLineId(){
await this.$nextTick()
this.selectedRouter = this.routerList.find(item => item.id === this.form.lineId)
console.log("handleChangeLineId",
"路线", this.form.lineId,
"目的市", this.selectedRouter?.destCityId,
"目的国", this.selectedRouter?.destCountryId,
"始发市", this.selectedRouter?.startCityId)
if(this.form.lineId){
this.form.objectiveId = this.selectedRouter?.destCityId
this.form.destCountryId = this.selectedRouter?.destCountryId
this.form.departureId = this.selectedRouter?.startCityId
}
},
/** 提交按钮 */
submitForm(status, flag = true) {
this.$refs['form'].validate(async(valid, errors) => {
......@@ -2477,7 +2567,9 @@ export default {
font-weight: 500;
color: #ffffff;
}
::v-deep .el-descriptions-item__content .el-form-item{
margin-bottom: 0;
}
.card-title {
display: flex;
justify-content: space-between;
......
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