Commit 1d040bb3 authored by huhaiqing's avatar huhaiqing

拆单开发

parent 6b5ab41c
...@@ -610,6 +610,20 @@ export function boxUpdate(data) { ...@@ -610,6 +610,20 @@ export function boxUpdate(data) {
}); });
} }
/**
* 拆单审核
*
* @param {*} params
* @returns
*/
export function createApproval(data) {
return request({
url: "/ecw/box-approval/create",
method: "post",
data,
});
}
/***************************** 装柜 end **********************************/ /***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/ /***************************** 卸柜 start **********************************/
......
...@@ -175,7 +175,11 @@ export default { ...@@ -175,7 +175,11 @@ export default {
this.$set(this.dialogCfg, "visible", true); this.$set(this.dialogCfg, "visible", true);
}, },
makeBill(row) { makeBill(row) {
makeBillService({ orderId: row.orderId }).then((res) => { const { bookSeaInfo } = this.shipmentObj;
makeBillService({
orderId: row.orderId,
zgDate: bookSeaInfo.sailTime,
}).then((res) => {
const { data } = res; const { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {}; const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
let billContent = `${titleZh}${contentZh}`, let billContent = `${titleZh}${contentZh}`,
......
<template> <template>
<div class="app-container"> <div class="app-container shipping-split-order">
<!-- 搜索工作栏 -->
<el-card> <el-card>
<div slot="header" class="card-title">拆单申请-{{orderData.orderNo||''}}</div> <div slot="header" class="card-title">拆单申请-{{orderData.orderNo||''}}</div>
<div class="btn-header"> <div class="btn-header">
<span class="card-title">原单信息</span> <span class="card-title">原单信息</span>
<div>
<span v-if="orderData.status==99" class="red">异常无法拆单</span>
<el-button v-else type="primary" @click="addSplit">新建拆单 </el-button>
</div>
</div> </div>
<el-descriptions :column="4"> <el-descriptions :column="4">
<el-descriptions-item label="唛头"> <el-descriptions-item label="唛头">
{{orderData.marks?orderData.marks:''}} {{orderData.marks?orderData.marks:''}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="已箱数/总箱数"> <el-descriptions-item label="已实装箱数/总箱数">
<span>{{orderData.sumNum||0}}/{{orderData.costVO?orderData.costVO.totalNum:0}}</span> <span>{{currRow.installNum||0}}/{{orderData.costVO?orderData.costVO.totalNum:0}}</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="订单状态"> <el-descriptions-item label="订单状态">
<!-- <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" /> -->
{{orderData.status==99?'异常':'正常'}} {{orderData.status==99?'异常':'正常'}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="送货日期"> <el-descriptions-item label="送货日期">
...@@ -55,11 +49,11 @@ ...@@ -55,11 +49,11 @@
{{orderData.consigneeVO?orderData.consigneeVO.company||'':''}} {{orderData.consigneeVO?orderData.consigneeVO.company||'':''}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="收货电话"> <el-descriptions-item label="收货电话">
{{orderData.consigneeVO?(orderData.consigneeVO.phone?(orderData.consigneeVo.countryCode+orderData.consigneeVO.phone):''):''}} {{orderData.consigneeVO?orderData.consigneeVO.phone?orderData.consigneeVO.countryCode+orderData.consigneeVO.phone :'':''}}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
<el-card class="card"> <el-card class="card">
<!-- 列表 --> <!-- 列表 -->
<div slot="header" class="card-title">货物信息</div> <div slot="header" class="card-title">货物信息</div>
...@@ -77,16 +71,21 @@ ...@@ -77,16 +71,21 @@
</el-table-column> </el-table-column>
<el-table-column label="装柜货物属性" align="center" width="600"> <el-table-column label="装柜货物属性" align="center" width="600">
<template slot-scope="scope"> <template slot-scope="scope">
<el-row> <el-row style="text-align:left;">
<span>规格:{{scope.row.boxGauge}}</span> <el-row>
</el-row> <span>规格:{{scope.row.boxGauge}}</span>
<el-row> </el-row>
<span>品牌: <el-row>
<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType" /> <span>品牌:
</span> <dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType" />
<span style="margin-left: 10px;">箱数:{{scope.row.warehouseInInfoVO ? scope.row.warehouseInInfoVO.cartonsNum : 0 }}</span> </span>
<span style="margin-left: 10px;">体积:{{scope.row.warehouseInInfoVO ? scope.row.warehouseInInfoVO.volume : 0 }}</span> <span style="margin-left: 10px;">箱数:{{scope.row.warehouseInInfoVO ? scope.row.warehouseInInfoVO.cartonsNum : 0 }}</span>
<span style="margin-left: 10px;">重量:{{scope.row.warehouseInInfoVO ? scope.row.warehouseInInfoVO.weight : 0 }}kg</span> <span style="margin-left: 10px;">体积:{{scope.row.warehouseInInfoVO ? scope.row.warehouseInInfoVO.volume : 0 }}</span>
<span style="margin-left: 10px;">重量:{{scope.row.warehouseInInfoVO ? scope.row.warehouseInInfoVO.weight : 0 }}kg</span>
</el-row>
<el-row>
<span>计划装柜:无返回</span>
</el-row>
</el-row> </el-row>
</template> </template>
</el-table-column> </el-table-column>
...@@ -102,27 +101,26 @@ ...@@ -102,27 +101,26 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<el-card class="card" v-if="splitData.length>0">
<el-card class="card" v-if="splitData">
<!-- 列表 --> <!-- 列表 -->
<div slot="header" class="card-title">拆单信息</div> <div slot="header" class="card-title">拆单信息</div>
<div v-for="(item, index) in splitData" :key="index"> <div>
<div class="btn-header"> <div class="btn-header">
<div> <div>
<p class="card-info"> <p class="card-info">
<span class="card-title"> <span class="card-title">
{{item.orderNo}} {{splitData.orderNo}}
</span> </span>
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="item.transportId" /> <span>{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:'无'}}</span>
<span>发往:{{importCityName(item.dstWarehouseId)}}</span> <span>发往:{{splitData.dstWarehouseName}}</span>
</p> </p>
</div> </div>
<div> <div>
<el-button v-if="index==0" disabled type="primary" @click="addShop(index)">放入</el-button> <el-button type="primary" @click="addShop">放入</el-button>
<el-button v-if="index!=0" type="primary" @click="addShop(index)">放入</el-button>
<el-button type="primary" plain @click="deleteSplit(item.id)">删除</el-button>
</div> </div>
</div> </div>
<el-table border :data="item.orderSplitItemBackVOList"> <el-table border :data="splitData.orderSplitItemBackVOList">
<el-table-column label="序号" align="center" prop="id" type="index"> <el-table-column label="序号" align="center" prop="id" type="index">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.$index + 1}}</span> <span>{{scope.$index + 1}}</span>
...@@ -155,71 +153,49 @@ ...@@ -155,71 +153,49 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="计划装柜" align="center"> <el-table-column label="计划装柜" align="center">
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="index==0" disabled size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">移出</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">移出</el-button>
<el-button v-else size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">移出</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</el-card> </el-card>
<work-flow xmlkey="split_order" v-model="selectedUsers"></work-flow>
<el-row style="marginTop:15px;">
<work-flow xmlkey="split_order" v-model="selectedUsers"></work-flow>
</el-row>
<div slot="footer" class="card footer_btn" v-if="orderData.status!=99"> <div slot="footer" class="card footer_btn" v-if="orderData.status!=99">
<el-button v-if="orderData.status!=19" type="primary" @click="submitForm">提交申请</el-button> <el-button v-if="orderData.status!=19" type="primary" @click="submitForm">提交申请</el-button>
<el-button v-if="orderData.status!=19" plain type="primary" @click="$emit('closeDialog')">取消</el-button> <el-button v-if="orderData.status!=19" plain type="primary" @click="$emit('closeDialog')">取消</el-button>
<el-button v-if="orderData.status==19" type="primary" disabled>审核中</el-button> <el-button v-if="orderData.status==19" type="primary">审核中</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="cancelSplit">取消审核</el-button> <el-button v-if="orderData.status==19" plain type="primary" @click="cancelSplit">取消审核</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="$emit('closeDialog')">返回</el-button> <el-button v-if="orderData.status==19" plain type="primary" @click="$emit('closeDialog')">返回</el-button>
</div> </div>
<!-- 对话框(添加 / 修改) -->
<el-dialog title="新建拆单" :visible.sync="open" width="400px" append-to-body>
<el-form ref="formSplit" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-form-item label="运输方式">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportId" formatter="number" />
</el-form-item>
</el-row>
<el-row>
<el-form-item label="目的仓库:">
<el-select v-model="form.destWarehouseId" placeholder="请选择目的仓库">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="出货渠道" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'">
<el-select v-model="form.channelId" placeholder="请选择出货渠道">
<el-option :disabled="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'" v-for="item in channelData" :key="item.channelId" :label="item.nameZh" :value="item.channelId" />
</el-select>
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="haddleAdd">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog title="放入品名" :visible.sync="shopOpen" width="400px" append-to-body> <el-dialog title="放入品名" :visible.sync="shopOpen" width="400px" append-to-body>
<el-form ref="shopForm" :model="shopForm" :rules="shopRules" label-width="80px"> <el-form ref="shopForm" :model="shopForm" :rules="shopRules" label-width="100px">
<el-row> <el-row>
<el-form-item label="中文品名:"> <el-form-item label="中文品名:" prop="prodTitleZh">
<el-select v-model="shopForm.prodTitleZh" placeholder="请选择中文品名" @change="changeProdTitleZh"> <el-select v-model="shopForm.prodTitleZh" placeholder="请选择中文品名" @change="changeProdTitleZh">
<el-option v-for="item in orderData.orderItemVOList" :label="item.prodTitleZh" :value="item.prodTitleZh" :key="item.prodTitleZh"></el-option> <el-option v-for="item in orderItems" :label="item.prodTitleZh" :value="item.prodTitleZh" :key="item.prodTitleZh"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="英文品名:"> <el-form-item label="英文品名:" prop="prodTitleEn">
<el-select v-model="shopForm.prodTitleEn" placeholder="请选择英文品名" @change="changeProdTitleEn"> <el-select v-model="shopForm.prodTitleEn" placeholder="请选择英文品名" @change="changeProdTitleEn">
<el-option v-for="item in orderData.orderItemVOList" :label="item.prodTitleEn" :value="item.prodTitleEn" :key="item.prodTitleEn"></el-option> <el-option v-for="item in orderItems" :label="item.prodTitleEn" :value="item.prodTitleEn" :key="item.prodTitleEn"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="剩余箱数:"> <el-form-item label="剩余箱数:">
{{shopForm.sum||0}} {{shopForm.sum||0}}
</el-form-item> </el-form-item>
<el-form-item label="放入箱数:"> <el-form-item label="放入箱数:" prop="num">
<el-input-number v-model="shopForm.num" controls-position="right" :min="1" :max="shopForm.sum"></el-input-number> <el-input-number v-model="shopForm.num" controls-position="right" :min="1" :max="shopForm.sum"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="备注信息:"> <el-form-item label="备注信息:">
...@@ -236,23 +212,22 @@ ...@@ -236,23 +212,22 @@
</template> </template>
<script> <script>
import { getDictData, getDictDatas } from "@/utils/dict";
import { import {
getSplitList, getSplitList,
splitApply,
createSplit, createSplit,
cancelApply, cancelApply,
createSplitItem, createSplitItem,
deleteSplitItem, deleteSplitItem,
deleteSplit,
} from "@/api/ecw/orderHandle"; } from "@/api/ecw/orderHandle";
import { getTradeCityList } from "@/api/ecw/region"; import { getTradeCityList } from "@/api/ecw/region";
import { getChannelList } from "@/api/ecw/channel";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
import { getOrder } from "@/api/ecw/order"; import { getOrder } from "@/api/ecw/order";
import { serviceMsg } from "../../utils";
import { createApproval } from "@/api/ecw/boxSea";
export default { export default {
name: "splitOrder", name: "splitOrder",
inheritAttrs: false,
components: { components: {
WorkFlow, WorkFlow,
}, },
...@@ -261,33 +236,17 @@ export default { ...@@ -261,33 +236,17 @@ export default {
}, },
data() { data() {
return { return {
checked: false,
orderData: {}, orderData: {},
splitData: [], splitData: {},
splitIndex: 0, detail: {},
channelData: [],
tradeCityList: [],
multipleSelection: [],
loading: false, loading: false,
open: false,
form: {},
selectedUsers: [], selectedUsers: [],
shopOpen: false, tradeCityList: [],
shopOpen: false,
orderItems: [],
shopForm: {}, shopForm: {},
// 表单校验 // 表单校验
rules: {
transportId: [
{ required: true, message: "请选择运输方式", trigger: "change" },
],
warehouseIds: [
{ required: true, message: "请选择目的仓库", trigger: "change" },
],
channelId: [
{ required: true, message: "请选择出货渠道", trigger: "change" },
],
},
// 表单校验
shopRules: { shopRules: {
prodTitleZh: [ prodTitleZh: [
{ required: true, message: "请选择中文品名", trigger: "change" }, { required: true, message: "请选择中文品名", trigger: "change" },
...@@ -295,24 +254,19 @@ export default { ...@@ -295,24 +254,19 @@ export default {
prodTitleEn: [ prodTitleEn: [
{ required: true, message: "请选择英文品名", trigger: "change" }, { required: true, message: "请选择英文品名", trigger: "change" },
], ],
num: [{ required: true, message: "请输入箱数", trigger: "change" }],
}, },
queryParams: { queryParams: {
orderId: 96, orderId: 0,
lang: 0, lang: 0,
}, },
query: {
page: 1,
rows: 20,
},
splitItemIndex: 0,
}; };
}, },
created() { created() {
this.getChannel();
getTradeCityList().then((res) => (this.tradeCityList = res.data)); getTradeCityList().then((res) => (this.tradeCityList = res.data));
this.queryParams.orderId = this.currRow.orderId; this.queryParams.orderId = this.currRow.orderId;
this.getList(); this.getOrderDetail();
this.getOrder(); this.getSplit();
}, },
watch: { watch: {
//监听table这个对象 //监听table这个对象
...@@ -334,51 +288,64 @@ export default { ...@@ -334,51 +288,64 @@ export default {
}, },
}, },
}, },
computed: { methods: {
getDictData() { /* 拆箱总数 */
return (type, value) => getDictData(type, value) || {}; totalSplitNum() {
let _total = 0;
const { orderSplitItemBackVOList = [] } = this.splitData;
orderSplitItemBackVOList.forEach((v) => {
_total += Number(v.splitNum);
});
return _total;
}, },
getDictDatas() { /* 打开拆单 */
return getDictDatas; getSplit() {
this.querySplitGoods().then((res) => {
if (res) {
if (this.currRow.goodsList && this.currRow.goodsList.length) {
const [orderItem] = this.currRow.goodsList;
createSplit({
parentOrderId: this.currRow.orderId,
parentOrderNo: this.currRow.orderNo,
dstWarehouseId: orderItem.destWarehouseId,
transportId: orderItem.transportId,
shipmentType: 1,
}).then((res) => {
this.querySplitGoods();
});
}
}
});
}, },
importCityList() { /* 查询拆单项 */
return this.tradeCityList.filter((item) => item.type == 1); querySplitGoods() {
return new Promise((resolve, reject) => {
getSplitList({
lang: 0,
orderId: this.currRow.orderId,
shipmentType: 1,
}).then((res) => {
const { orderSplitBackVOList } = res.data;
if (orderSplitBackVOList && orderSplitBackVOList.length) {
this.orderItems = this.currRow.goodsList ?? [];
// 取拆单项
this.splitData = orderSplitBackVOList.filter(
(item) => !item.isMaster
)[0];
resolve(false);
} else {
resolve(true);
}
});
});
}, },
}, getOrderDetail() {
methods: {
getOrder() {
this.loading = true; this.loading = true;
getOrder(this.queryParams.orderId).then((response) => { getOrder(this.queryParams.orderId).then((response) => {
this.orderData = response.data; this.orderData = response.data;
this.query.destWarehouseId =
response.data.logisticsInfoDto.startWarehouseId;
this.loading = false; this.loading = false;
}); });
}, },
/** 查询列表 */
getList() {
this.loading = true;
// 执行查询
getSplitList(this.queryParams).then((response) => {
this.splitData = response.data;
this.loading = false;
});
},
getChannel() {
getChannelList().then((res) => (this.channelData = res.data));
},
changeDest() {
this.query.warehouseIds = this.form.destWarehouseId;
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (rowIndex == this.orderData.orderItemVOList.length) {
if (columnIndex === 1) {
return [2, 3];
} else if (columnIndex > 1) {
return [0, 0];
}
}
},
getSummaries() { getSummaries() {
const sums = []; const sums = [];
...@@ -390,12 +357,12 @@ export default { ...@@ -390,12 +357,12 @@ export default {
) { ) {
return sums; return sums;
} }
var orderSum = 0; let orderSum = 0;
var orderV = 0; let orderV = 0;
var orderW = 0; let orderW = 0;
var leviteSum = 0; let leviteSum = 0;
var leviteV = 0; let leviteV = 0;
var leviteW = 0; let leviteW = 0;
this.orderData.orderItemVOList.forEach((column, index) => { this.orderData.orderItemVOList.forEach((column, index) => {
orderSum += column.num ?? 0; orderSum += column.num ?? 0;
orderV += column.volume ?? 0; orderV += column.volume ?? 0;
...@@ -422,31 +389,32 @@ export default { ...@@ -422,31 +389,32 @@ export default {
return sums; return sums;
}, },
importCityName(id) { importCityName(id) {
var arr = this.tradeCityList.filter((item) => item.id == id); let arr = this.tradeCityList.filter((item) => item.id == id);
return arr.length > 0 ? arr[0].titleZh : ""; return arr.length > 0 ? arr[0].titleZh : "";
}, },
submitForm() { submitForm() {
var params = { const { shipmentObj } = this.$attrs;
orderId: this.queryParams.orderId, // 创建拆单审核
createApproval({
applyReason: "拆单审核",
approvalStatus: 0,
approvalType: 8,
copyUserId: this.selectedUsers, copyUserId: this.selectedUsers,
}; orderId: this.currRow.orderId,
splitApply(params).then((res) => { shipmentId: shipmentObj.id,
this.$modal.msgSuccess("申请成功"); }).then((res) => {
that.getList(); serviceMsg(res, this).then((res) => {
this.getSplit();
});
}); });
}, },
addShop(index) { addShop() {
this.splitItemIndex = index;
this.shopOpen = true; this.shopOpen = true;
}, },
addSplit() {
this.open = true;
},
changeProdTitleZh() { changeProdTitleZh() {
var list = []; let list = [];
list = this.orderData.orderItemVOList.filter( list = this.currRow.goodsList.filter(
(item) => item.prodTitleZh == this.shopForm.prodTitleZh (item) => item.prodTitleZh == this.shopForm.prodTitleZh
); );
this.shopForm.sum = list[0].num; this.shopForm.sum = list[0].num;
...@@ -454,73 +422,58 @@ export default { ...@@ -454,73 +422,58 @@ export default {
this.shopForm.prodTitleEn = list[0].prodTitleEn; this.shopForm.prodTitleEn = list[0].prodTitleEn;
}, },
changeProdTitleEn() { changeProdTitleEn() {
var list = []; let list = [];
list = this.orderData.orderItemVOList.filter( list = this.orderData.orderItemVOList.filter(
(item) => item.prodTitleEn == this.shopForm.prodTitleEn (item) => item.prodTitleEn == this.shopForm.prodTitleEn
); );
this.shopForm.sum = list[0].num; this.shopForm.sum = list[0].num;
this.shopForm.prodTitleZh = list[0].prodTitleZh; this.shopForm.prodTitleZh = list[0].prodTitleZh;
}, },
haddleAdd() {
let that = this;
if (!that.form.transportId) {
that.$message.error("请选择运输方式");
}
if (!that.form.destWarehouseId) {
that.$message.error("请选择目的仓库");
}
// if(!this.form.channelId){
// this.$modal.msgError("请选择出货渠道");
// }
var params = {
dstWarehouseId: that.form.destWarehouseId,
parentOrderId: that.orderData.orderId,
parentOrderNo: that.orderData.orderNo,
transportId: that.form.transportId,
};
createSplit(params).then((res) => {
that.getList();
});
that.open = false;
},
cancel() {
this.open = false;
this.form = {};
},
shopAdd() { shopAdd() {
this.$refs["shopForm"].validate((valid) => { this.$refs["shopForm"].validate((valid) => {
if (!valid) { if (valid) {
return; // 输入箱数大于实装箱数
const total = this.totalSplitNum();
const canSplitNum = this.currRow.num - this.currRow.installNum;
const remain = canSplitNum - total;
if (this.shopForm.num > remain) {
this.$message.error("放入箱数不能大于总箱数");
return;
}
let params = {
num: this.shopForm.num,
orderItemId: this.shopForm.orderItemId,
orderSplitId: this.splitData.id,
remarks: this.shopForm.remarks,
};
createSplitItem(params).then((res) => {
this.$message.success("放入成功");
this.getSplit();
this.shopForm = {};
});
this.shopOpen = false;
} }
}); });
var params = {
num: this.shopForm.num,
orderItemId: this.shopForm.orderItemId,
orderSplitId: this.splitData[this.splitItemIndex].id,
remarks: this.shopForm.remarks,
};
createSplitItem(params).then((res) => {
this.$message.success("放入成功");
this.getList();
this.shopForm = {};
});
this.shopOpen = false;
}, },
removeShop(id) { removeShop(id) {
let that = this; let that = this;
that.$confirm("是否移除货物吗?").then(function () { that.$confirm("是否移除货物吗?").then(function () {
deleteSplitItem(id).then((res) => { deleteSplitItem(id).then((res) => {
that.$message.success("移除成功"); that.$message.success("移除成功");
that.getList(); that.getSplit();
}); });
}); });
}, },
cancelSplit() { cancelSplit() {
let that = this; const { shipmentObj } = this.$attrs;
that.$confirm("是否取消审核吗?").then(function () { approvalCancel({
cancelApply({ orderId: that.queryParams.orderId }).then((res) => { applyReason: "取消审核",
that.$message.success("取消成功"); id: shipmentObj["cabinetApprovalInfo"].id,
that.getList(); shipmentId: shipmentObj.id,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.$emit("closeDialog");
}); });
}); });
}, },
...@@ -528,43 +481,39 @@ export default { ...@@ -528,43 +481,39 @@ export default {
this.shopOpen = false; this.shopOpen = false;
this.shopForm = {}; this.shopForm = {};
}, },
/** 删除按钮操作 */
deleteSplit(id) {
let that = this;
that.$confirm("是否确认删除新拆的订单吗?").then(function () {
deleteSplit(id).then((res) => {
that.$message.success("删除成功");
that.getList();
});
});
},
}, },
}; };
</script> </script>
<style>
.card-title { <style lang="scss">
font-size: 18px; .shipping-split-order {
font-weight: bold; .card-title {
margin-top: 10px; font-size: 18px;
} font-weight: bold;
.card-info { margin-top: 10px;
font-size: 16px; }
} .card-info {
.card { font-size: 16px;
margin-top: 20px; > span {
} margin-right: 10px;
.btn-header { }
width: 90%; }
display: flex; .card {
align-items: center; margin-top: 20px;
justify-content: space-between; }
margin: 20px 0; .btn-header {
} width: 90%;
.red { display: flex;
color: #ff3430; align-items: center;
font-size: 15px; justify-content: space-between;
} margin: 20px 0;
.footer_btn { }
padding-bottom: 60px; .red {
color: #ff3430;
font-size: 15px;
}
.footer_btn {
padding-bottom: 60px;
}
} }
</style> </style>
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">移出</el-button> <el-button type="text" size="small" @click="moveOut(scope.row)" v-if="!isUnderReview && scope.row.installNum === 0">移出</el-button>
<!-- <el-button type="text" size="small" v-if="isShowSplitOrder(scope.row)" @click="handlerSplitOrder(scope.row, 'splitOrder','拆单')">拆单</el-button> --> <el-button type="text" size="small" v-if="isShowSplitOrder(scope.row)" @click="handlerSplitOrder(scope.row, 'splitOrder','拆单')">拆单</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
</el-row> </el-row>
</template> </template>
<!-- 拆单 --> <!-- 拆单 -->
<splitOrder v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog="closeDialog" /> <splitOrder v-bind="$attrs" :shipmentObj="shipmentObj" v-if="dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible" :currRow="currRow" @closeDialog="closeDialog" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
......
...@@ -2,11 +2,12 @@ ...@@ -2,11 +2,12 @@
<div> <div>
<el-form ref="reviewForm" :model="reviewObj" label-width="120px"> <el-form ref="reviewForm" :model="reviewObj" label-width="120px">
<el-form-item label="申请理由"> <el-form-item label="申请理由">
<el-input v-model="reviewObj.applyReason" type="textarea" rows="2" placeholder="请输入申请理由"></el-input> <el-input v-model="reviewObj.applyReason" type="textarea" rows="2" placeholder="请输入申请理由" :disabled="isReview"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
<el-button type="success" @click="onSubmit">发起申请</el-button> <el-button type="success" @click="onSubmit" :disabled="isReview">发起申请</el-button>
<el-button type="primary" @click="jumpReviewDetail" :disabled="!isReview">审核中</el-button>
<el-button @click="cancel">关闭</el-button> <el-button @click="cancel">关闭</el-button>
</el-row> </el-row>
</div> </div>
...@@ -14,7 +15,7 @@ ...@@ -14,7 +15,7 @@
<script> <script>
import { approvalCreate } from "@/api/ecw/boxSea"; import { approvalCreate } from "@/api/ecw/boxSea";
import { serviceMsg } from "../utils"; import { serviceMsg, toReviewDetail } from "../utils";
/** /**
* 反审 * 反审
...@@ -26,9 +27,29 @@ export default { ...@@ -26,9 +27,29 @@ export default {
return { return {
// 反审对象 // 反审对象
reviewObj: {}, reviewObj: {},
isReview: false,
bpmProcessId: "",
}; };
}, },
created() {
const { currNode, shipmentObj } = this.$attrs;
if (currNode.type === "preinstall") {
this.isReview = shipmentObj["preInstallBackInfo"] ? true : false;
this.bpmProcessId = shipmentObj["preInstallBackInfo"]?.bpmProcessId;
}
if (currNode.type === "unloading") {
this.isReview = shipmentObj["cabinetUnloadBackApprovalInfo"]
? true
: false;
this.bpmProcessId =
shipmentObj["cabinetUnloadBackApprovalInfo"]?.bpmProcessId;
}
},
methods: { methods: {
jumpReviewDetail() {
toReviewDetail.apply(this, [this.bpmProcessId]);
this.$emit("closeDialog");
},
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["reviewForm"].validate((valid) => { this.$refs["reviewForm"].validate((valid) => {
......
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