Commit 5b817927 authored by zhoutong's avatar zhoutong
parents 1d085a1b 158299af
......@@ -331,6 +331,50 @@ export function settlementCreate(data) {
});
}
/**
* 空运出货
*
* @export
* @param {*} data
* @return {*}
*/
export function airShipmentCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-air-shipment/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-air-shipment/create",
method: "post",
data,
});
}
/**
* 空运出仓
*
* @export
* @param {*} data
* @return {*}
*/
export function airCheckoutCreate(data) {
if (data.id) {
return request({
url: "/ecw/box-air-checkout/update",
method: "put",
data,
});
}
return request({
url: "/ecw/box-air-checkout/create",
method: "post",
data,
});
}
/**
* 出货审核
*
......
<template>
<div>
<el-form ref="airCheckoutForm" :model="airCheckoutObj" :rules="rules" label-width="80px">
<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-form-item>
<el-form-item :label="$t('出仓影像')">
<ImageUpload :limit="1" :isShowTip=false v-model="airCheckoutObj.checkoutFiles" />
</el-form-item>
<el-form-item :label="$t('备注')">
<el-input type="textarea" :rows ="6" v-model="airCheckoutObj.remark" :placeholder="$t('备注')"></el-input>
</el-form-item>
</el-form>
<el-row class="operate-button">
<el-button type="primary" @click="onSubmit(1)">{{$t('保存')}}</el-button>
<el-button type="success" @click="onSubmit(2)">{{$t('提交')}}</el-button>
<el-button @click="cancel">{{$t('关闭')}}</el-button>
</el-row>
</div>
</template>
<script>
import { airCheckoutCreate } from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue";
import ImageUpload from "@/components/ImageUpload";
import { constantDict, formatDateStr, formatNumberString, serviceMsg } from "../utils";
/**
* 驳船
*/
export default {
name: "checkout",
inheritAttrs: false,
components: { userSelect, ImageUpload },
data() {
return {
// 空运出货对象
airCheckoutObj: {},
// 校验
rules: {
//deliverType: [{ required: true, message: this.$t("必填"), trigger: "change" }],
},
};
},
created() {
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.$attrs.shipmentObj[voName] };
oldData = formatDateStr(oldData, ["checkoutTime"]);
this.airCheckoutObj = oldData;
},
methods: {
/** 提交 */
onSubmit(operateType) {
this.$refs["airCheckoutForm"].validate((valid) => {
if (valid) {
airCheckoutCreate({
...this.airCheckoutObj,
shipmentId: this.$attrs.shipmentObj.id,
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel(type) {
this.$emit("closeDialog", type);
},
},
};
</script>
<style lang="scss" scoped>
</style>
<template>
<div>
<el-form ref="airShipmentForm" :model="airShipmentObj" :rules="rules" label-width="80px">
<el-form-item :label="$t('')" prop="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-group>
</el-form-item>
<div v-show="airShipmentObj.deliverType === '1'">
<el-form-item :label="$t('送货时间')">
<el-date-picker type="datetime" :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" :placeholder="$t('请输入送货地址')"></el-input>
</el-form-item>
<el-form-item :label="$t('车牌')">
<el-input v-model="airShipmentObj.licensePlate" :placeholder="$t('请输入车牌')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机')">
<el-input v-model="airShipmentObj.driver" :placeholder="$t('请输入司机')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机联系方式')">
<el-input v-model="airShipmentObj.driverPhone" :placeholder="$t('请输入司机联系方式')"></el-input>
</el-form-item>
</div>
<div v-show="airShipmentObj.deliverType === '2'">
<el-form-item :label="$t('自提时间')">
<el-date-picker type="datetime" :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" :placeholder="$t('请输入自提地址')"></el-input>
</el-form-item>
<el-form-item :label="$t('车牌')">
<el-input v-model="airShipmentObj.licensePlate" :placeholder="$t('请输入车牌')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机')">
<el-input v-model="airShipmentObj.driver" :placeholder="$t('请输入司机')"></el-input>
</el-form-item>
<el-form-item :label="$t('司机联系方式')">
<el-input v-model="airShipmentObj.driverPhone" :placeholder="$t('请输入司机联系方式')"></el-input>
</el-form-item>
</div>
</el-form>
<el-row class="operate-button">
<el-button type="primary" @click="onSubmit(1)">{{$t('保存')}}</el-button>
<el-button type="success" @click="onSubmit(2)">{{$t('提交')}}</el-button>
<el-button @click="cancel">{{$t('关闭')}}</el-button>
</el-row>
</div>
</template>
<script>
import { airShipmentCreate } from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue";
import { constantDict, formatDateStr, formatNumberString, serviceMsg } from "../utils";
/**
* 驳船
*/
export default {
name: "shipment",
inheritAttrs: false,
components: { userSelect },
data() {
return {
// 空运出货对象
airShipmentObj: {},
// 送货方式
deliverTypes: constantDict.deliverType,
// 校验
rules: {
deliverType: [{ required: true, message: this.$t("必填"), trigger: "change" }],
},
};
},
created() {
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.$attrs.shipmentObj[voName] };
oldData = formatDateStr(oldData, ["deliverTime"]);
oldData = formatNumberString(oldData, ["deliverType"]);
this.airShipmentObj = oldData;
console.log(this.airShipmentObj)
},
methods: {
/** 提交 */
onSubmit(operateType) {
this.$refs["airShipmentForm"].validate((valid) => {
if (valid) {
airShipmentCreate({
...this.airShipmentObj,
shipmentId: this.$attrs.shipmentObj.id,
operateType,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.cancel("submit");
});
});
}
});
},
/** 取消 */
cancel(type) {
this.$emit("closeDialog", type);
},
},
};
</script>
<style lang="scss" scoped>
</style>
......@@ -45,6 +45,8 @@ import twoWayArrivalWidget from "./nodePage/twoWayArrival.vue";
import unloadingWidget from "./nodePage/unloading/index.vue";
import settlementWidget from "./nodePage/settlement.vue";
import reviewWidget from "./nodePage/review.vue";
import shipmentWidget from "./nodePage/shipment.vue";
import checkoutWidget from "./nodePage/checkout.vue";
import tallyWidget from "./nodePage/tally/index.vue";
import mergePkgWidget from "./nodePage/mergePkg/index.vue";
import {checkPermi} from '@/utils/permission'
......@@ -74,6 +76,8 @@ export default {
twoWayArrivalWidget,
unloadingWidget,
settlementWidget,
shipmentWidget,
checkoutWidget,
reviewWidget,
tallyWidget,
mergePkgWidget
......
......@@ -104,17 +104,17 @@ function airBaseData() {
wait: require("@/assets/images/shipping/zg-wait.png"),
end: require("@/assets/images/shipping/zg-end.png"),
},
type: "cabinet",
type: "shipment",
dataKey: "4", // 字典数据键值
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功;47、已封柜,待出仓
* 出货状态:171、待出货 172、已出货
*/
voName: "cabinetInfo",
keyName: "ldStatus",
voName: "boxAirShipmentBackVO",
keyName: "airShipmentStatus",
status: {
start: [41],
wait: [42, 43, 44, 45, 46],
end: [47],
start: [171],
wait: [],
end: [172],
},
},
{
......@@ -124,17 +124,17 @@ function airBaseData() {
wait: require("@/assets/images/shipping/zg-wait.png"),
end: require("@/assets/images/shipping/zg-end.png"),
},
type: "cabinet",
dataKey: "4", // 字典数据键值
type: "checkout",
dataKey: "5", // 字典数据键值
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功;47、已封柜,待出仓
* 出仓状态:221、未出仓 222、已出仓
*/
voName: "cabinetInfo",
keyName: "ldStatus",
voName: "boxAirCheckoutBackVO",
keyName: "checkoutStatus",
status: {
start: [41],
wait: [42, 43, 44, 45, 46],
end: [47],
start: [221],
wait: [],
end: [222],
},
},
],
......@@ -1186,6 +1186,17 @@ const constantDict = {
label: i18n.$t("已做"),
},
],
deliverType: [
{
value: "1",
label: i18n.$t("送货上门"),
},
{
value: "2",
label: i18n.$t("供应商自提"),
},
],
};
/**
......
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