Commit 7a97d657 authored by Marcus's avatar Marcus

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

parents c6afaddd 2fd54c8f
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token' const TokenKey = 'Jd-Admin-Token'
export function getToken() { export function getToken() {
return Cookies.get(TokenKey) return Cookies.get(TokenKey)
......
...@@ -233,7 +233,10 @@ export const DICT_TYPE = { ...@@ -233,7 +233,10 @@ export const DICT_TYPE = {
SETTLEMENT_STATUS: 'settlement_status', // 结算状态 SETTLEMENT_STATUS: 'settlement_status', // 结算状态
APP_TYPE:"app_type", //系统类型 APP_TYPE:"app_type", //系统类型
AIR_SHIPMENT_PROCESS:'air_shipment_process' AIR_SHIPMENT_PROCESS:'air_shipment_process',
AIR_CUSTOM_CLEARANCE:'air_custom _clearance', //渠道清关费
AIR_COMMODITY_CUSTOM_CLEARANCE:'air_commodity_custom _clearance'//商品渠道清关费,
} }
/** /**
......
<template> <template>
<div> <div>
<el-form ref="cusClearanceForm" :rules="rules" :model="cusClearanceObj" label-width="120px"> <el-form
ref="cusClearanceForm"
:rules="rules"
:model="cusClearanceObj"
label-width="160px"
>
<el-form-item :label="$t('清关情况')" prop="arriveType"> <el-form-item :label="$t('清关情况')" prop="arriveType">
<el-radio-group v-model="cusClearanceObj.clearanceType"> <el-radio-group v-model="cusClearanceObj.clearanceType">
<el-radio :label="0">{{ $t('一次清关') }}</el-radio> <el-radio :label="0">{{ $t("一次清关") }}</el-radio>
<el-radio :label="1">{{ $t('多次清关') }}</el-radio> <el-radio :label="1">{{ $t("多次清关") }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item :label="$t('选择订单')" prop="clearanceOrderIdList" v-show="cusClearanceObj.clearanceType == 1"> <el-form-item
<el-select v-model="cusClearanceObj.clearanceOrderIdList" multiple filterable clearable reserve-keyword :filter-method="filterOrder" :placeholder="$t('请输入订单号、提单号、唛头')" @change="selectOrderId"> :label="$t('选择订单')"
<el-option v-for="item in statusOrderList" :key="item.orderId" :label="item.orderNo + ' ' + item.clear + ' ' + item.arrival" :value="item.orderId"> </el-option> prop="clearanceOrderIdList"
</el-select> v-show="cusClearanceObj.clearanceType == 1"
>
<span v-for="order in selectOrders" :key="order.id"
>{{ order.orderNo }}
</span>
<el-button type="primary" @click="orderdialogVisible = true">{{
$t("订单列表")
}}</el-button>
</el-form-item> </el-form-item>
<el-form-item :label="$t('已清关订单')" v-show="cusClearanceObj.clearanceType == 1"> <el-form-item
<span v-for="order in cusClearanceObj.clearanceOrderList" :key="order.id">{{ order.orderNo }} </span> :label="$t('已清关订单')"
v-show="cusClearanceObj.clearanceType == 1"
>
<span
v-for="order in cusClearanceObj.clearanceOrderList"
:key="order.id"
>{{ order.orderNo }}
</span>
</el-form-item> </el-form-item>
<div v-if="cusClearanceObj.clearanceOrderIdList.length > 0"> <div>
<el-form ref="airArrivalForm" :rules="airArrivalrules" :model="airArrivalInfo" label-width="120px"> <el-form
ref="airArrivalForm"
:rules="airArrivalrules"
:model="airArrivalInfo"
label-width="160px"
>
<el-form-item :label="$t('实际二程起飞时间')" prop="actSecondTime"> <el-form-item :label="$t('实际二程起飞时间')" prop="actSecondTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airArrivalInfo.actSecondTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker
type="datetime"
:placeholder="$t('请选择日期')"
v-model="airArrivalInfo.actSecondTime"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('预计到港时间')" prop="estTime"> <el-form-item :label="$t('预计到港时间')" prop="estTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airArrivalInfo.estTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker
type="datetime"
:placeholder="$t('请选择日期')"
v-model="airArrivalInfo.estTime"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('实际到港时间')" prop="actTime"> <el-form-item :label="$t('实际到港时间')" prop="actTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="airArrivalInfo.actTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker
type="datetime"
:placeholder="$t('请选择日期')"
v-model="airArrivalInfo.actTime"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<el-form-item :label="$t('预计清关时间')" prop="clEstTime"> <el-form-item :label="$t('预计清关时间')" prop="clEstTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="cusClearanceObj.clEstTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker
type="datetime"
:placeholder="$t('请选择日期')"
v-model="cusClearanceObj.clEstTime"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('清关时间')" prop="clClearTime"> <el-form-item :label="$t('清关时间')" prop="clClearTime">
<el-date-picker type="datetime" :placeholder="$t('请选择日期')" v-model="cusClearanceObj.clClearTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> <el-date-picker
<p class="message-area" v-show="showMsg">{{ $t('清关时间与预计时间不符,如有异常请登记') }}</p> type="datetime"
:placeholder="$t('请选择日期')"
v-model="cusClearanceObj.clClearTime"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<p class="message-area" v-show="showMsg">
{{ $t("清关时间与预计时间不符,如有异常请登记") }}
</p>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="primary" @click="onSubmit(1)">{{ $t('保存') }}</el-button> <el-button type="primary" @click="onSubmit(1)">{{
<el-button type="success" @click="onSubmit(2)">{{ $t('提交') }}</el-button> $t("保存")
<el-button @click="cancel">{{ $t('关闭') }}</el-button> }}</el-button>
<el-button type="primary" @click="exceptionReg" :disabled="!showMsg">{{ $t('异常登记') }}</el-button> <el-button type="success" @click="onSubmit(2)">{{
$t("提交")
}}</el-button>
<el-button @click="cancel">{{ $t("关闭") }}</el-button>
<el-button type="primary" @click="exceptionReg" :disabled="!showMsg">{{
$t("异常登记")
}}</el-button>
</el-row> </el-row>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="$t('票异常')" :visible.sync="dialogVisible" width="700px" :modal-append-to-body="false" append-to-body destroy-on-close> <el-dialog
custom-class="shipping-dialog"
:title="$t('票异常')"
:visible.sync="dialogVisible"
width="700px"
:modal-append-to-body="false"
append-to-body
destroy-on-close
>
<regError @closeDialog="dialogVisible = false" v-bind="$attrs" /> <regError @closeDialog="dialogVisible = false" v-bind="$attrs" />
</el-dialog> </el-dialog>
<!-- 订单列表 -->
<el-dialog
:fullscreen="true"
:title="$t('选择订单')"
:visible.sync="orderdialogVisible"
:modal-append-to-body="false"
append-to-body
destroy-on-close
>
<el-row :gutter="10">
<el-col :span="7">
{{ $t("关键字:") }}
<el-input
style="width: 300px"
v-model="orderKeyword"
:placeholder="$t('请输入订单号、提单号、唛头')"
/>
</el-col>
<el-col :span="7">
{{ $t("到港状态") }}
<el-select v-model="orderPortStatus">
<el-option :value="0" :label="$t('未到港')" />
<el-option :value="1" :label="$t('已到港')" />
</el-select>
</el-col>
<el-col :span="7">
{{ $t("清关状态") }}
<el-select v-model="orderCustomsClearanceStatus">
<el-option :value="0" :label="$t('未清关')" />
<el-option :value="1" :label="$t('已清关')" />
</el-select>
</el-col>
<el-col :span="3">
<el-button type="primary" @click="searchOrderList">
{{ $t("查询") }}</el-button
>
</el-col>
</el-row>
<div style="margin-top: 10px">
<el-button type="primary" @click="multipleSelect">
{{ $t("批量选择") }}
</el-button>
</div>
<el-table
style="margin-top: 10px"
:data="statusOrderList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column :label="$t('序号')" type="index" width="50">
</el-table-column>
<el-table-column :label="$t('订单号')" prop="orderNo" />
<el-table-column :label="$t('唛头')" prop="marks" />
<el-table-column :label="$t('提单号')" prop="tidanNo" />
<el-table-column width="150" :label="$t('总箱数/入仓箱数')" prop="" />
<el-table-column :label="$t('体积/重量')" prop="" />
<el-table-column :label="$t('清关状态')" prop="clear" />
<el-table-column :label="$t('到港状态')" prop="arrival" />
<el-table-column :label="$t('控货')" prop="" />
<el-table-column :label="$t('订单状态')" prop="" />
<el-table-column :label="$t('操作')">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
@click="selectOrder(scope.row)"
>{{ $t("选择") }}</el-button
>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import regError from '../../regError' import regError from "../../regError";
import dayjs from 'dayjs' import dayjs from "dayjs";
import { clearanceCreate } from '@/api/ecw/boxSea' import { clearanceCreate } from "@/api/ecw/boxSea";
import { shipmentOrderList } from '@/api/ecw/boxAir' import { shipmentOrderList } from "@/api/ecw/boxAir";
import { formatDateStr, serviceMsg, formatDate } from '../utils' import { formatDateStr, serviceMsg, formatDate } from "../utils";
import { updateOrderArrival } from '@/api/ecw/boxAir' import { updateOrderArrival } from "@/api/ecw/boxAir";
import search from "bpmn-js/lib/features/search";
/** /**
* 清关 * 清关
*/ */
export default { export default {
name: 'cusClearance', name: "cusClearance",
inheritAttrs: false, inheritAttrs: false,
components: { components: {
regError regError,
}, },
data() { data() {
return { return {
...@@ -76,188 +214,346 @@ export default { ...@@ -76,188 +214,346 @@ export default {
cusClearanceObj: {}, cusClearanceObj: {},
// 校验 // 校验
rules: { rules: {
clEstTime: [{ required: true, message: this.$t('必填'), trigger: 'change' }], clEstTime: [
clClearTime: [{ required: true, message: this.$t('必填'), trigger: 'change' }] { required: true, message: this.$t("必填"), trigger: "change" },
],
clClearTime: [
{ required: true, message: this.$t("必填"), trigger: "change" },
],
}, },
airArrivalrules: { airArrivalrules: {
actSecondTime: [{ required: true, message: this.$t('必填'), trigger: 'change' }], actSecondTime: [
actTime: [{ required: true, message: this.$t('必填'), trigger: 'change' }] { required: true, message: this.$t("必填"), trigger: "change" },
],
actTime: [
{ required: true, message: this.$t("必填"), trigger: "change" },
],
}, },
// 弹窗配置 // 弹窗配置
dialogVisible: false, dialogVisible: false,
// 提示消息 // 提示消息
showMsg: false, showMsg: false,
orderList: [], orderList: [],
orderListFilter: [],
arrivalOrderList: [], arrivalOrderList: [],
clearanceOrderList: [], clearanceOrderList: [],
airArrivalInfo: {} airArrivalInfo: {},
} orderdialogVisible: false,
selectOrders: [],
multipleSelectOrder: [],
orderKeyword: null,
orderPortStatus: null,
orderCustomsClearanceStatus: null,
};
}, },
created() { created() {
const voName = this.$attrs.currNode.voName const voName = this.$attrs.currNode.voName;
let oldData = { ...this.$attrs.shipmentObj[voName] } let oldData = { ...this.$attrs.shipmentObj[voName] };
oldData = formatDateStr(oldData, ['clEstTime']) oldData = formatDateStr(oldData, ["clEstTime"]);
oldData = formatDateStr(oldData, ['clClearTime'], 'YYYY-MM-DD HH:mm:ss') oldData = formatDateStr(oldData, ["clClearTime"], "YYYY-MM-DD HH:mm:ss");
this.cusClearanceObj = oldData this.cusClearanceObj = oldData;
if (!this.cusClearanceObj.clearanceType) this.$set(this.cusClearanceObj, 'clearanceType', 0) if (!this.cusClearanceObj.clearanceType)
this.$set(this.cusClearanceObj, 'clearanceOrderIdList', []) this.$set(this.cusClearanceObj, "clearanceType", 0);
if (typeof this.$attrs.shipmentObj.airArrivalInfo?.arrivalOrderList != 'undefined' && this.$attrs.shipmentObj.airArrivalInfo.arrivalOrderList) this.arrivalOrderList = this.$attrs.shipmentObj.airArrivalInfo.arrivalOrderList this.$set(this.cusClearanceObj, "clearanceOrderIdList", []);
if (typeof this.$attrs.shipmentObj.clearanceInfo?.clearanceOrderList != 'undefined' && this.$attrs.shipmentObj.clearanceInfo.clearanceOrderList) this.clearanceOrderList = this.$attrs.shipmentObj.clearanceInfo.clearanceOrderList if (
typeof this.$attrs.shipmentObj.airArrivalInfo?.arrivalOrderList !=
"undefined" &&
this.$attrs.shipmentObj.airArrivalInfo.arrivalOrderList
)
this.arrivalOrderList =
this.$attrs.shipmentObj.airArrivalInfo.arrivalOrderList;
if (
typeof this.$attrs.shipmentObj.clearanceInfo?.clearanceOrderList !=
"undefined" &&
this.$attrs.shipmentObj.clearanceInfo.clearanceOrderList
)
this.clearanceOrderList =
this.$attrs.shipmentObj.clearanceInfo.clearanceOrderList;
shipmentOrderList(this.$attrs.shipmentObj.id).then((r) => { shipmentOrderList(this.$attrs.shipmentObj.id).then((r) => {
this.orderList = r.data this.orderList = r.data;
this.orderListFilter = r.data });
})
}, },
watch: { watch: {
// 预计清关时间 // 预计清关时间
'cusClearanceObj.clEstTime'(val) { "cusClearanceObj.clEstTime"(val) {
this.compareDate(val, this.cusClearanceObj.clClearTime) this.compareDate(val, this.cusClearanceObj.clClearTime);
}, },
// 清关时间 // 清关时间
'cusClearanceObj.clClearTime'(val) { "cusClearanceObj.clClearTime"(val) {
this.compareDate(this.cusClearanceObj.clEstTime, val) this.compareDate(this.cusClearanceObj.clEstTime, val);
}, },
'cusClearanceObj.clearanceType'(val) { "cusClearanceObj.clearanceType"(val) {
if (val == 1) { if (val == 1) {
this.$set(this.cusClearanceObj, 'clEstTime', null) this.$set(this.cusClearanceObj, "clEstTime", null);
this.$set(this.cusClearanceObj, 'clClearTime', null) this.$set(this.cusClearanceObj, "clClearTime", null);
} else { } else {
let oldData = { ...this.$attrs.shipmentObj[this.$attrs.currNode.voName] } let oldData = {
oldData = formatDateStr(oldData, ['clEstTime', 'clClearTime'], 'YYYY-MM-DD HH:mm:ss') ...this.$attrs.shipmentObj[this.$attrs.currNode.voName],
this.$set(this.cusClearanceObj, 'clClearTime', oldData.clClearTime) };
this.$set(this.cusClearanceObj, 'clEstTime', oldData.clEstTime) oldData = formatDateStr(
oldData,
["clEstTime", "clClearTime"],
"YYYY-MM-DD HH:mm:ss"
);
this.$set(this.cusClearanceObj, "clClearTime", oldData.clClearTime);
this.$set(this.cusClearanceObj, "clEstTime", oldData.clEstTime);
} }
} },
}, },
computed: { computed: {
statusOrderList() { statusOrderList() {
let data = [] let data = [];
this.orderListFilter.forEach((item) => { this.orderList.forEach((item) => {
let json = { let json = {
orderId: item.orderId, orderId: item.orderId,
orderNo: item.orderNo, orderNo: item.orderNo,
tidanNo: item.tidanNo, tidanNo: item.tidanNo,
marks: item.marks marks: item.marks,
} };
let clearindex = this.cusClearanceObj.clearanceOrderList ? this.cusClearanceObj.clearanceOrderList.findIndex((p) => p.orderId == item.orderId) : -1 let clearindex = this.cusClearanceObj.clearanceOrderList
? this.cusClearanceObj.clearanceOrderList.findIndex(
(p) => p.orderId == item.orderId
)
: -1;
if (clearindex != -1) { if (clearindex != -1) {
json.clear = this.$t('已清关') json.clear = this.$t("已清关");
json.clearValue = 1;
} else { } else {
json.clear = this.$t('未清关') json.clear = this.$t("未清关");
json.clearValue = 0;
} }
let arrivalindex = this.arrivalOrderList ? this.arrivalOrderList.findIndex((p) => p.orderId == item.orderId) : -1 let arrivalindex = this.arrivalOrderList
? this.arrivalOrderList.findIndex((p) => p.orderId == item.orderId)
: -1;
if (arrivalindex != -1) { if (arrivalindex != -1) {
json.arrival = this.$t('已到港') json.arrival = this.$t("已到港");
json.arrivalValue = 1;
} else { } else {
json.arrival = this.$t('未到港') json.arrival = this.$t("未到港");
json.arrivalValue = 0;
} }
data.push(json) data.push(json);
}) });
return data return data;
} },
}, },
methods: { methods: {
formatDate, formatDate,
filterOrder(val) { searchOrderList() {
if (val != '') { if (this.orderKeyword && this.orderKeyword != "") {
this.orderListFilter = this.orderList.filter((item) => { this.statusOrderList = this.statusOrderList.filter((item) => {
return item.orderNo&&item.orderNo.indexOf(val) > -1 || item.tidanNo&&item.tidanNo.indexOf(val) > -1 || item.marks&&item.marks.indexOf(val) > -1 return (
}) (item.orderNo && item.orderNo.indexOf(this.orderKeyword) > -1) ||
} else { (item.tidanNo && item.tidanNo.indexOf(this.orderKeyword) > -1) ||
this.orderListFilter = this.orderList (item.marks && item.marks.indexOf(this.orderKeyword) > -1)
);
});
} }
if (this.orderPortStatus != null) {
this.statusOrderList = this.statusOrderList.filter((item) => {
return item.arrivalValue == this.orderPortStatus;
});
}
if (this.orderCustomsClearanceStatus != null) {
console.log(
this.statusOrderList,
"333",
this.orderCustomsClearanceStatus
);
this.statusOrderList = this.statusOrderList.filter((item) => {
return item.clearValue == this.orderCustomsClearanceStatus;
});
}
console.log(this.statusOrderList, "222");
}, },
selectOrderId(val) { selectOrderId(val) {
if (val.length == 1) { if (val.length == 1) {
let arr = this.arrivalOrderList.find((item) => item.orderId == val[0]) let arr = this.arrivalOrderList.find((item) => item.orderId == val[0]);
if (arr) {
this.$set(
this.airArrivalInfo,
"actSecondTime",
formatDate(arr.actSecondTime)
);
this.$set(this.airArrivalInfo, "estTime", formatDate(arr.estTime));
this.$set(this.airArrivalInfo, "actTime", formatDate(arr.actTime));
}
let clear = this.clearanceOrderList.find(
(item) => item.orderId == val[0]
);
if (clear) {
this.$set(
this.cusClearanceObj,
"clEstTime",
formatDate(clear.clEstTime)
);
this.$set(
this.cusClearanceObj,
"clClearTime",
formatDate(clear.clClearTime)
);
}
} else {
this.$set(this.airArrivalInfo, "actSecondTime", null);
this.$set(this.airArrivalInfo, "estTime", null);
this.$set(this.airArrivalInfo, "actTime", null);
this.$set(this.cusClearanceObj, "clEstTime", null);
this.$set(this.cusClearanceObj, "clClearTime", null);
}
},
selectOrder(val) {
this.selectOrders = [];
this.selectOrders.push(val);
let arr = this.arrivalOrderList.find(
(item) => item.orderId == val.orderId
);
if (arr) {
this.$set(
this.airArrivalInfo,
"actSecondTime",
formatDate(arr.actSecondTime)
);
this.$set(this.airArrivalInfo, "estTime", formatDate(arr.estTime));
this.$set(this.airArrivalInfo, "actTime", formatDate(arr.actTime));
}
let clear = this.clearanceOrderList.find(
(item) => item.orderId == val.orderId
);
console.log(clear, 111);
if (clear) {
this.$set(
this.cusClearanceObj,
"clEstTime",
formatDate(clear.clEstTime)
);
this.$set(
this.cusClearanceObj,
"clClearTime",
formatDate(clear.clClearTime)
);
}
this.orderdialogVisible = false;
},
handleSelectionChange(val) {
this.multipleSelectOrder = val;
},
multipleSelect() {
if (this.multipleSelectOrder.length == 0) {
this.$message.error(this.$t("请先选择订单"));
return;
}
this.selectOrders = [];
this.selectOrders = this.multipleSelectOrder;
if (this.multipleSelectOrder.length == 1) {
let arr = this.arrivalOrderList.find(
(item) => item.orderId == this.multipleSelectOrder[0].orderId
);
if (arr) { if (arr) {
this.$set(this.airArrivalInfo, 'actSecondTime', formatDate(arr.actSecondTime)) this.$set(
this.$set(this.airArrivalInfo, 'estTime', formatDate(arr.estTime)) this.airArrivalInfo,
this.$set(this.airArrivalInfo, 'actTime', formatDate(arr.actTime)) "actSecondTime",
formatDate(arr.actSecondTime)
);
this.$set(this.airArrivalInfo, "estTime", formatDate(arr.estTime));
this.$set(this.airArrivalInfo, "actTime", formatDate(arr.actTime));
} }
let clear = this.clearanceOrderList.find((item) => item.orderId == val[0]) let clear = this.clearanceOrderList.find(
if(clear){ (item) => item.orderId == this.multipleSelectOrder[0].orderId
this.$set(this.cusClearanceObj, 'clEstTime', formatDate(clear.clEstTime)) );
this.$set(this.cusClearanceObj, 'clClearTime', formatDate(clear.clClearTime)) if (clear) {
this.$set(
this.cusClearanceObj,
"clEstTime",
formatDate(clear.clEstTime)
);
this.$set(
this.cusClearanceObj,
"clClearTime",
formatDate(clear.clClearTime)
);
} }
} else { } else {
this.$set(this.airArrivalInfo, 'actSecondTime', null) this.$set(this.airArrivalInfo, "actSecondTime", null);
this.$set(this.airArrivalInfo, 'estTime', null) this.$set(this.airArrivalInfo, "estTime", null);
this.$set(this.airArrivalInfo, 'actTime', null) this.$set(this.airArrivalInfo, "actTime", null);
this.$set(this.cusClearanceObj, 'clEstTime', null) this.$set(this.cusClearanceObj, "clEstTime", null);
this.$set(this.cusClearanceObj, 'clClearTime', null) this.$set(this.cusClearanceObj, "clClearTime", null);
} }
this.orderdialogVisible = false;
}, },
getClAgent(type) { getClAgent(type) {
const agentId = this.$attrs.shipmentObj.agentInfo.agentId const agentId = this.$attrs.shipmentObj.agentInfo.agentId;
if (type === 'label') { if (type === "label") {
const selected = this.$attrs.allSupplier.find((item) => item.id === agentId) const selected = this.$attrs.allSupplier.find(
return this.$l(selected, 'company') ?? agentId (item) => item.id === agentId
);
return this.$l(selected, "company") ?? agentId;
} }
return agentId return agentId;
}, },
// 时间比较 // 时间比较
compareDate(clEstTime, clClearTime) { compareDate(clEstTime, clClearTime) {
this.showMsg = false this.showMsg = false;
let date1 = null, let date1 = null,
date2 = null date2 = null;
if (clEstTime) date1 = dayjs(clEstTime) if (clEstTime) date1 = dayjs(clEstTime);
if (clClearTime) date2 = dayjs(clClearTime) if (clClearTime) date2 = dayjs(clClearTime);
if (date1 && date2 && !date2.isSame(date1)) { if (date1 && date2 && !date2.isSame(date1)) {
this.showMsg = true this.showMsg = true;
} }
}, },
// 异常登记 // 异常登记
exceptionReg() { exceptionReg() {
this.dialogVisible = true this.dialogVisible = true;
}, },
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
this.$refs['cusClearanceForm'].validate((valid) => { this.$refs["cusClearanceForm"].validate((valid) => {
if (valid) { if (valid) {
if (this.cusClearanceObj.clearanceType == 1 && this.cusClearanceObj.clearanceOrderIdList.length > 0) { if (
this.$refs['airArrivalForm'].validate((arrvalid) => { this.cusClearanceObj.clearanceType == 1 &&
this.cusClearanceObj.clearanceOrderIdList.length > 0
) {
this.$refs["airArrivalForm"].validate((arrvalid) => {
if (arrvalid) { if (arrvalid) {
updateOrderArrival({ updateOrderArrival({
...this.airArrivalInfo, ...this.airArrivalInfo,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
orderIdList: this.cusClearanceObj.clearanceOrderIdList orderIdList: this.cusClearanceObj.clearanceOrderIdList,
}).then(() => { }).then(() => {
clearanceCreate({ clearanceCreate({
...this.cusClearanceObj, ...this.cusClearanceObj,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
clAgentId: this.getClAgent(), clAgentId: this.getClAgent(),
operateType operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel('submit') this.cancel("submit");
}) });
}) });
}) });
} }
}) });
} else { } else {
clearanceCreate({ clearanceCreate({
...this.cusClearanceObj, ...this.cusClearanceObj,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
clAgentId: this.getClAgent(), clAgentId: this.getClAgent(),
operateType operateType,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then(() => { serviceMsg(res, this).then(() => {
this.cancel('submit') this.cancel("submit");
}) });
}) });
} }
} }
}) });
}, },
/** 取消 */ /** 取消 */
cancel(type) { cancel(type) {
this.$emit('closeDialog', type) this.$emit("closeDialog", type);
} },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -184,6 +184,10 @@ export default { ...@@ -184,6 +184,10 @@ export default {
case "cusDeclaration": case "cusDeclaration":
this.$set(this.dialogConfig, "width", "700px"); this.$set(this.dialogConfig, "width", "700px");
break; break;
// 清关
case "cusClearance":
this.$set(this.dialogConfig, "width", "700px");
break;
// AGENT // AGENT
case "agent": case "agent":
this.$set(this.dialogConfig, "title", this.$t("代理商设置")); this.$set(this.dialogConfig, "title", this.$t("代理商设置"));
......
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
<template v-if="!readonly"> <template v-if="!readonly">
<el-row type="flex" align="align" :gutter="10" > <el-row type="flex" align="align" :gutter="10" >
<el-col :span="6">{{$t('空运订单重量上限')}}(kg)</el-col> <el-col :span="6">{{$t('空运订单重量上限')}}(kg)</el-col>
<el-col :span="6" ><el-input v-model="value1.airWeightLimit"></el-input></el-col> <el-col :span="6" >
<el-input-number v-model="value1.airWeightLimit" controls-position="right" :max="screenCom"></el-input-number>
<!-- <el-input type="number" :max="2000" v-model="value1.airWeightLimit"></el-input>-->
</el-col>
<el-col :span="6"> <el-col :span="6">
<slot></slot> <slot></slot>
</el-col> </el-col>
...@@ -61,6 +64,7 @@ import CurrencySelect from "@/views/ecw/channel/componrnts/currency-select.vue"; ...@@ -61,6 +64,7 @@ import CurrencySelect from "@/views/ecw/channel/componrnts/currency-select.vue";
import {getUnitList} from "@/api/ecw/unit"; import {getUnitList} from "@/api/ecw/unit";
import WeightSelect from "@/views/ecw/channel/componrnts/weight-select.vue"; import WeightSelect from "@/views/ecw/channel/componrnts/weight-select.vue";
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import {getDictDatas} from "@/utils/dict";
export default { export default {
props:{ props:{
value:{ value:{
...@@ -76,6 +80,8 @@ export default { ...@@ -76,6 +80,8 @@ export default {
name: "packaging-type", name: "packaging-type",
components: {Template, WeightSelect, CurrencySelect}, components: {Template, WeightSelect, CurrencySelect},
created() { created() {
console.log(this.getDictDatas(this.DICT_TYPE.AIR_CUSTOM_CLEARANCE),'123')
getCurrencyPage(this.params).then(res => this.currencyList = res.data.list) getCurrencyPage(this.params).then(res => this.currencyList = res.data.list)
getUnitList().then(res => this.unitList = res.data) getUnitList().then(res => this.unitList = res.data)
}, },
...@@ -90,6 +96,18 @@ export default { ...@@ -90,6 +96,18 @@ export default {
} }
}, },
computed:{
screenCom(){
let num = undefined
if(this.keyArr === 'channelPriceStepClearanceList'){
num = this.getDictDatas(this.DICT_TYPE.AIR_CUSTOM_CLEARANCE)[0]?.value
}else {
num = this.getDictDatas(this.DICT_TYPE. AIR_COMMODITY_CUSTOM_CLEARANCE)[0]?.value
}
return +num
}
},
mounted() { mounted() {
this.value1 = this.value this.value1 = this.value
this.$nextTick(()=>{ this.$nextTick(()=>{
......
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<packaging-type v-if="form.channelPackagingList.length" v-model="form.channelPackagingList[index]"> <packaging-type v-if="form.channelPackagingList.length" v-model="form.channelPackagingList[index]">
<el-button :disabled="form.channelPackagingList.length === 1" @click="deleteFn(index)" type="danger">删除包装类型{{index + 1}}</el-button> <el-button :disabled="form.channelPackagingList.length === 1" @click="deleteFn(index)" type="danger">删除包装类型{{index + 1}}</el-button>
</packaging-type> </packaging-type>
</el-col> </el-col>
......
...@@ -19,12 +19,6 @@ ...@@ -19,12 +19,6 @@
</el-select> --> </el-select> -->
<dict-selector :type="DICT_TYPE.CUSTOMER_ESOURCE_TYPE" v-model="queryParams.customerType" :placeholder="$t('请选择资源类型')" clearable ></dict-selector> <dict-selector :type="DICT_TYPE.CUSTOMER_ESOURCE_TYPE" v-model="queryParams.customerType" :placeholder="$t('请选择资源类型')" clearable ></dict-selector>
</el-form-item> </el-form-item>
<!-- <el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item> -->
<!-- <el-form-item prop="customerService"> <!-- <el-form-item prop="customerService">
<el-select clearable v-model="queryParams.customerService" clearable size="small"> <el-select clearable v-model="queryParams.customerService" clearable size="small">
<el-option :label="$t('下单时间')" value="createTime"/> <el-option :label="$t('下单时间')" value="createTime"/>
...@@ -39,6 +33,31 @@ ...@@ -39,6 +33,31 @@
<!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>--> <!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-form-item :label="$t('报价单号')" prop="key">
<el-input v-model="queryParams.number" :placeholder="$t('请输入报价单号')" clearable/>
</el-form-item>
<el-form-item :label="$t('客户名称')" prop="key">
<el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable/>
</el-form-item>
<el-form-item :label="$t('联系方式')" prop="key">
<el-input v-model="queryParams.phoneNew" :placeholder="$t('请输入联系方式')" clearable/>
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('始发仓')" prop="destinationId">
<el-select v-model="queryParams.originId" :placeholder="$t('请选择始发仓')" clearable>
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的仓')" prop="destinationId">
<el-select :multiple="true" v-model="queryParams.destinationId" multiple :placeholder="$t('请选择目的仓')" clearable>
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</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 type="primary" icon="el-icon-search" @click="resetQuery">{{$t('重置')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="resetQuery">{{$t('重置')}}</el-button>
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExportDetail" :loading="exportLoading" v-hasPermi="['ecw:achievement:export']">{{ $t('导出明细') }}</el-button> <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExportDetail" :loading="exportLoading" v-hasPermi="['ecw:achievement:export']">{{ $t('导出明细') }}</el-button>
...@@ -129,7 +148,8 @@ ...@@ -129,7 +148,8 @@
import {getChannelList} from '@/api/ecw/channel'; import {getChannelList} from '@/api/ecw/channel';
import dayjs from "dayjs"; import dayjs from "dayjs";
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import {getWarehouseList} from '@/api/ecw/warehouse'
export default { export default {
name: "EcwDepttargetAllachievement", name: "EcwDepttargetAllachievement",
components: {}, components: {},
...@@ -204,7 +224,8 @@ ...@@ -204,7 +224,8 @@
sumVolume:0, sumVolume:0,
sumNum:0, sumNum:0,
}, },
myAchievementData:{} myAchievementData:{},
warehouseList:[]
}; };
}, },
computed: { computed: {
...@@ -218,7 +239,14 @@ ...@@ -218,7 +239,14 @@
} }
return '/' return '/'
} }
} },
exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
},
importWarehouseList(){
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3)
},
}, },
activated() { activated() {
this.getChannelList(); this.getChannelList();
...@@ -230,6 +258,7 @@ ...@@ -230,6 +258,7 @@
listServiceUser().then(r=>{ listServiceUser().then(r=>{
this.customerServiceList = r.data; this.customerServiceList = r.data;
}) })
getWarehouseList().then(res => this.warehouseList = res.data)
}, },
methods: { methods: {
getChannelList() { getChannelList() {
......
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
import {listDept, listSimpleDepts} from "@/api/system/dept"; import {listDept, listSimpleDepts} from "@/api/system/dept";
import {getChannelList} from '@/api/ecw/channel'; import {getChannelList} from '@/api/ecw/channel';
import dayjs from "dayjs"; import dayjs from "dayjs";
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi';
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
export default { export default {
...@@ -234,7 +234,8 @@ import { parseTime } from '@/utils/ruoyi'; ...@@ -234,7 +234,8 @@ import { parseTime } from '@/utils/ruoyi';
cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}], cubeNum: [{required: true, message: this.$t("立方数不能为空"), trigger: "blur"}],
startTime: [{required: true, message: this.$t("起始时间不能为空"), trigger: "change"}], startTime: [{required: true, message: this.$t("起始时间不能为空"), trigger: "change"}],
endTime: [{required: true, message: this.$t("截止时间不能为空"), trigger: "change"}], endTime: [{required: true, message: this.$t("截止时间不能为空"), trigger: "change"}],
} },
}; };
}, },
computed: { computed: {
......
...@@ -39,6 +39,31 @@ ...@@ -39,6 +39,31 @@
<!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>--> <!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-form-item :label="$t('报价单号')" prop="key">
<el-input v-model="queryParams.number" :placeholder="$t('请输入报价单号')" clearable/>
</el-form-item>
<el-form-item :label="$t('客户名称')" prop="key">
<el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable/>
</el-form-item>
<el-form-item :label="$t('联系方式')" prop="key">
<el-input v-model="queryParams.phoneNew" :placeholder="$t('请输入联系方式')" clearable/>
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('始发仓')" prop="destinationId">
<el-select v-model="queryParams.originId" :placeholder="$t('请选择始发仓')" clearable>
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的仓')" prop="destinationId">
<el-select :multiple="true" v-model="queryParams.destinationId" multiple :placeholder="$t('请选择目的仓')" clearable>
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</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 type="primary" icon="el-icon-search" @click="resetQuery">{{$t('重置')}}</el-button> <el-button type="primary" icon="el-icon-search" @click="resetQuery">{{$t('重置')}}</el-button>
<!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
...@@ -125,6 +150,7 @@ ...@@ -125,6 +150,7 @@
import {getChannelList} from '@/api/ecw/channel'; import {getChannelList} from '@/api/ecw/channel';
import dayjs from "dayjs"; import dayjs from "dayjs";
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import {getWarehouseList} from '@/api/ecw/warehouse'
export default { export default {
name: "EcwDepttargetMyachievement", name: "EcwDepttargetMyachievement",
...@@ -200,7 +226,8 @@ ...@@ -200,7 +226,8 @@
sumVolume:0, sumVolume:0,
sumNum:0, sumNum:0,
}, },
myAchievementData:{} myAchievementData:{},
warehouseList:[]
}; };
}, },
computed: { computed: {
...@@ -214,7 +241,14 @@ ...@@ -214,7 +241,14 @@
} }
return '/' return '/'
} }
} },
exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
},
importWarehouseList(){
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3)
},
}, },
activated() { activated() {
this.getChannelList(); this.getChannelList();
......
...@@ -39,6 +39,31 @@ ...@@ -39,6 +39,31 @@
<!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>--> <!-- <el-date-picker v-model="queryParams.endStartTime" :placeholder="$t('请选择结束时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-form-item :label="$t('报价单号')" prop="key">
<el-input v-model="queryParams.number" :placeholder="$t('请输入报价单号')" clearable/>
</el-form-item>
<el-form-item :label="$t('客户名称')" prop="key">
<el-input v-model="queryParams.name" :placeholder="$t('请输入客户名称')" clearable/>
</el-form-item>
<el-form-item :label="$t('联系方式')" prop="key">
<el-input v-model="queryParams.phoneNew" :placeholder="$t('请输入联系方式')" clearable/>
</el-form-item>
<el-form-item :label="$t('客户经理')" prop="customerService">
<el-select clearable v-model="queryParams.customerService" :placeholder="$t('请选择客户经理')" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('始发仓')" prop="destinationId">
<el-select v-model="queryParams.originId" :placeholder="$t('请选择始发仓')" clearable>
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的仓')" prop="destinationId">
<el-select :multiple="true" v-model="queryParams.destinationId" multiple :placeholder="$t('请选择目的仓')" clearable>
<el-option v-for="item in importWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</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 type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
>{{$t('导出')}}</el-button> --> >{{$t('导出')}}</el-button> -->
...@@ -125,7 +150,8 @@ ...@@ -125,7 +150,8 @@
import {getChannelList} from '@/api/ecw/channel'; import {getChannelList} from '@/api/ecw/channel';
import dayjs from "dayjs"; import dayjs from "dayjs";
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import {getWarehouseList} from '@/api/ecw/warehouse'
export default { export default {
name: "EcwDepttargetMydeptachievement", name: "EcwDepttargetMydeptachievement",
components: {}, components: {},
...@@ -200,7 +226,8 @@ ...@@ -200,7 +226,8 @@
sumVolume:0, sumVolume:0,
sumNum:0, sumNum:0,
}, },
myAchievementData:{} myAchievementData:{},
warehouseList:[]
}; };
}, },
computed: { computed: {
...@@ -214,7 +241,14 @@ ...@@ -214,7 +241,14 @@
} }
return '/' return '/'
} }
} },
exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
},
importWarehouseList(){
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3)
},
}, },
created() { created() {
this.getChannelList(); this.getChannelList();
......
...@@ -141,9 +141,10 @@ ...@@ -141,9 +141,10 @@
<div> <div>
{{$t('运费')}}{{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}} {{$t('运费')}}{{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
</div> </div>
<div> <div v-if="row.oneClearanceFreight">
{{$t('清关费')}}{{row.oneClearanceFreight}} {{currentcyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}} {{$t('清关费')}}{{row.oneClearanceFreight}} {{currentcyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}
</div> </div>
<div v-else>{{$t('清关费未报价')}}</div>
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
</el-row> </el-row>
<el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType!='goods_add_exception'"> <el-row v-if="orderExceptionData.orderExceptionType=='order_pay_exception'||orderExceptionData.orderExceptionType!='goods_add_exception'">
<el-form-item :label="$t('收费参数')+':'"> <el-form-item :label="$t('收费参数')+':'">
<span>{{orderData.sumNum||0}}{{$t('')}} {{orderData.wvolume||0}}m³ {{orderData.vweight||0}}Kg {{orderData.sumQuantity||0}}{{$t('')}}</span> <span>{{shopData.num||0}}{{$t('')}} {{shopData.wvolume||0}}m³ {{shopData.vweight||0}}Kg {{shopData.warehouseInInfoVO ? shopData.warehouseInInfoVO.quantityAll : shopData.quantity}}{{$t('')}}</span>
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
...@@ -1196,9 +1196,13 @@ ...@@ -1196,9 +1196,13 @@
} }
} }
if((this.orderExceptionData.orderExceptionType=='not_shipping_channel_exception')||this.orderExceptionData.orderExceptionType=='line_loop_exception'){ if((this.orderExceptionData.orderExceptionType=='not_shipping_channel_exception')||this.orderExceptionData.orderExceptionType=='line_loop_exception'){
this.handlerParams.orderItemVOList = this.orderData.orderItemVOList if(this.orderExceptionData.orderExceptionType=='line_loop_exception'){
this.handlerParams.orderItemVOList = this.loopOrderItem
}else{
this.handlerParams.orderItemVOList = this.orderData.orderItemVOList
}
this.handlerParams.channelPriceList = [] this.handlerParams.channelPriceList = []
this.orderData.orderItemVOList.map(v=>{ this.handlerParams.orderItemVOList.map(v=>{
var listItem = { var listItem = {
orderId:v.orderId, orderId:v.orderId,
orderItemId:v.orderItemId, orderItemId:v.orderItemId,
......
<template> <template>
<div v-if="order"> <div v-if="order" style="width: 1120px">
<div class="wrapper flex w-1000 pb-20" style="margin:auto"> <div style="display: flex;justify-content: space-around;margin-top: 30px;">
<div class="icon"> <div class="el-icon-check" style="font-size: 100px;color: #67C23A;" />
<img src="../../../assets/svg/success.svg" /> <div>
</div> <el-row>
<div class="flex-1"> <span style="font-weight: bold;font-size: 18px;">{{ $t('新建订单成功') }}</span>
<div class="title">{{$t('新建订单成功')}}</div> </el-row>
<div class="line bold font-lg">{{$t('订单号')}}{{order.orderNo}}</div> <el-row style="margin-top: 10px;">
<div class="line">{{$t('唛头')}}{{order.marks}}</div> <span style="font-size: 16px; font-weight: bold; color: #666;">{{ $t('您的订舱号') }}{{ order.orderNo }}</span>
</el-row>
<el-row style="margin-top: 10px;">
<span style="font-size: 14px;color: #666;">{{ $t('唛头') }}{{ order.marks }}</span>
</el-row>
<el-row v-if="order.channelId" style="margin-top: 10px;">
<span style="font-size: 14px;color: #666;">{{ $t('出货渠道') }}{{ order.channelName }}</span>
</el-row>
<el-row style="margin-top: 10px;">
<span style="font-size: 14px;color: #666;">{{ $t('路线') }}{{ $l(order.logisticsInfoDto, 'startTitle') }} >> {{ $l(order.logisticsInfoDto, 'destTitle') }}</span>
</el-row>
<el-row style="margin-top: 10px;">
<span style="font-size: 14px;color: #666;">{{ $t('单证报关') }}<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /></span>
</el-row>
<el-row style="margin-top: 10px;">
<span style="font-size: 14px;color: #666;">{{ $t('是否控货') }}<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCargoControl" /></span>
</el-row>
<div class="flex"> <el-row style="margin-top: 10px;">
<div class="line flex-1">{{$t('运输方式')}}<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" /></div> <span style="font-size: 14px;color: #666;">
<div class="line flex-1" v-if="order.channelName">{{$t('出货渠道')}}{{order.channelName}}</div> {{ $t('商品列表') }}
</div> <span v-for="(item, index) in order.orderItemVOList" :key="index">
<div class="flex"> {{ $l(item, 'prodTitle') }}
<div class="line flex-1">{{$t('路线')}}{{$l(order.logisticsInfoDto, 'startTitle')}} >> {{$l(order.logisticsInfoDto, 'destTitle')}}</div> <template v-if="index < order.orderItemVOList.length - 1">{{ $t('') }}</template>
<div class="line flex-1">{{$t('单证报关')}}<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="order.customsType" /></div> </span>
</div> </span>
<div class="line">{{$t('控货')}}<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="order.isCargoControl" /></div> </el-row>
<el-row style="margin-top: 10px;">
<span style="font-size: 14px;color: #666;">{{ $t('总件数') }}:{{ order.costVO.totalNum }}</span>
</el-row>
<div class="line">{{$t('商品列表')}} <el-row style="margin-top: 30px;">
<span v-for="(item, index) in order.orderItemVOList" :key="index"> <span style="font-size: 14px;color: #666;">{{ $t('仓库地址') }}:{{ order.logisticsInfoDto.startAddressZh }}</span>
{{$l(item, 'prodTitle')}} </el-row>
<template v-if="index < order.orderItemVOList.length - 1">{{ $t('') }}</template> <el-row style="margin-top: 10px;">
</span> <span style="font-size: 14px;color: #666;">{{ $t('仓库电话') }}:{{ order.logisticsInfoDto.startTell }}</span>
</div> </el-row>
<div class="line">{{$t('总件数')}}:{{order.costVO.totalNum}}</div> <el-row style="margin-top: 10px;">
</div> <span style="font-size: 14px;color: #666;">{{ $t('为保证入仓数据准确性,入仓请带上一份装箱单(品名,件数,毛重,尺寸方数,是否有牌)') }}</span>
</div> </el-row>
<div class="w-800" style="margin: auto"> <el-row style="margin-top: 20px;">
<div class="line mt-20">{{$t('仓库地址')}}:{{$l(order.logisticsInfoDto, 'startAddress')}}</div> <span style="text-decoration: underline;font-size: 14px;color: #999;">{{ $t('您的订单已提交,谢谢您选择捷道物流!') }}</span>
<div class="line">{{$t('仓库电话')}}: {{order.logisticsInfoDto.startTell}}</div> </el-row>
<!-- v1.7新增 -->
<div class="line">{{$t('为保证入仓数据准确性,入仓请带上一份装箱单(品名,件数,毛重,尺寸方数,是否有牌)')}}</div>
<div class="line"></div>
<div class="line">{{$t('您的订单已提交,谢谢您选择捷道物流!')}}</div>
</div> </div>
</div>
<div class="actions mt-50"> <div class="actions mt-50">
<el-button type="primary" @click="$redirect('detail?orderId=' + order.orderId)">{{$t('查看订单')}}</el-button> <el-button type="primary" @click="$redirect('detail?orderId=' + order.orderId)">{{$t('查看订单')}}</el-button>
<el-button type="warning" @click="showNotice = true">{{$t('入仓须知')}}</el-button> <el-button type="warning" @click="showNotice = true">{{$t('入仓须知')}}</el-button>
<el-button type="info" @click="$redirect('create')">{{$t('再来一单')}}</el-button> <el-button type="info" @click="$redirect('create')">{{$t('再来一单')}}</el-button>
<el-button class="copy-btn" :data-clipboard-text="orderInfoForCopy">{{$t('复制订单信息')}}</el-button>
</div> </div>
<el-dialog :title="$t('查看须知')" :visible.sync="showNotice" width="700px"> <el-dialog :title="$t('查看须知')" :visible.sync="showNotice" width="700px">
...@@ -56,6 +73,9 @@ import {getOrder} from '@/api/ecw/order' ...@@ -56,6 +73,9 @@ import {getOrder} from '@/api/ecw/order'
import FileSaver from 'file-saver' import FileSaver from 'file-saver'
import {dataURLtoBlob} from '@/utils/index' import {dataURLtoBlob} from '@/utils/index'
import NeedKnow from '@/components/NeedKnow' import NeedKnow from '@/components/NeedKnow'
import ClipboardJS from "clipboard";
let clipboard;
export default { export default {
components: {NeedKnow}, components: {NeedKnow},
...@@ -66,16 +86,32 @@ export default { ...@@ -66,16 +86,32 @@ export default {
// noticeUrl: 'http://v4.groupage.cn/Public/images/notice.png' // noticeUrl: 'http://v4.groupage.cn/Public/images/notice.png'
} }
}, },
created(){ computed:{
this.loadData() orderInfoForCopy(){
return `订单号:${this.order.orderNo}\n唛头:${this.order.marks}\n提货点:${this.order.logisticsInfoDto?.destTitleZh}\n送货地址:${this.order.logisticsInfoDto?.startAddressZh}`
}
},
async created(){
await this.loadData()
await this.$nextTick()
clipboard = new ClipboardJS('.copy-btn')
clipboard.on('success', () => {
this.$message.success(this.$t('复制成功'))
})
clipboard.on('error', () => {
this.$message.error(this.$t('复制失败'))
})
},
destroyed() {
clipboard.destroy()
}, },
methods:{ methods:{
loadData(){ async loadData(){
getOrder(this.$route.query.orderId) await getOrder(this.$route.query.orderId)
.then(res => { .then(res => {
this.order = res.data this.order = res.data
}) })
} }
} }
} }
</script> </script>
......
...@@ -27,7 +27,7 @@ export default { ...@@ -27,7 +27,7 @@ export default {
</div> </div>
<div> <div>
<span>联系电话{{index + 1}}</span> <span>联系电话{{index + 1}}</span>
<span>+{{item.split('(@)')[0]}}</span> <span>{{item.split('(@)')[0]}}</span>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
...@@ -38,7 +38,7 @@ export default { ...@@ -38,7 +38,7 @@ export default {
</div> </div>
<div style="white-space: normal;"> <div style="white-space: normal;">
<span>联系电话:</span> <span>联系电话:</span>
<span>+{{phoneList[0] ? phoneList[0].split('(@)')[0] : ''}}</span> <span>{{phoneList[0] ? phoneList[0].split('(@)')[0] : ''}}</span>
<el-button v-if="phoneList.length > 1" @click="show = true;" style="margin-left: 10px;" size="mini" type="text" >更多</el-button> <el-button v-if="phoneList.length > 1" @click="show = true;" style="margin-left: 10px;" size="mini" type="text" >更多</el-button>
</div> </div>
</div> </div>
......
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