Commit 2a96bde2 authored by dragondean@qq.com's avatar dragondean@qq.com
parents 7073c288 8013b41e
......@@ -334,6 +334,21 @@ export function approvalCreate(data) {
});
}
/**
* 取消审核
*
* @export
* @param {*} data
* @return {*}
*/
export function approvalCancel(data) {
return request({
url: `/ecw/box-approval/cancel`,
method: "delete",
data,
});
}
/**
* 异常登记
*
......
import request from '@/utils/request'
// 根据合并订单编号(或订单号)获得已合单列表和待合单列表
export function getMergeListByOrderNo(query){
return request({
url:'/order/merge/getMergeListByOrderNo',
method: 'get',
params: query,
})
}
//创建订单合单申请
export function createMerge(data) {
return request({
url: '/order/merge/create',
method: 'post',
data: data
})
}
// 取消订单拆单
export function cancelMerge(data) {
return request({
url: '/order/merge/cancel',
method: 'delete',
data:data
})
}
//拆单申请提交
export function splitApply(data) {
return request({
url: '/order/split/apply',
method: 'put',
data: data
})
}
// 创建订单拆单
export function createSplit(data) {
return request({
url: '/order/split/create',
method: 'post',
data: data
})
}
// 更新订单拆单
export function updateSplit(data) {
return request({
url: '/order/split/update',
method: 'put',
data: data
})
}
// 删除订单拆单
export function deleteSplit(id) {
return request({
url: '/order/split/delete?id=' + id,
method: 'delete'
})
}
//取消申请拆单
export function cancelApply(data) {
return request({
url: '/order/split/cancel-apply',
method: 'put',
data:data
})
}
// 获得订单拆单
export function getSplit(id) {
return request({
url: '/order/split/get?id=' + id,
method: 'get'
})
}
// 获得订单拆单分页
export function getSplitPage(query) {
return request({
url: '/order/split/page',
method: 'get',
params: query
})
}
// 导出订单拆单 Excel
export function exportSplitExcel(query) {
return request({
url: '/order/split/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
//通过订单号获取拆单列表和拆单项明细
export function getSplitList(query) {
return request({
url: '/order/split/list-by-order-id',
method: 'get',
params: query
})
}
// 创建订单拆单项 - 放入
export function createSplitItem(data) {
return request({
url: '/order/split-item/create',
method: 'post',
data: data
})
}
// 删除订单拆单项
export function deleteSplitItem(id) {
return request({
url: '/order/split-item/delete?id=' + id,
method: 'delete'
})
}
......@@ -3,7 +3,7 @@
<el-descriptions border v-if="order.orderId">
<el-descriptions-item label="唛头">{{ order.marks }}</el-descriptions-item>
<el-descriptions-item label="已到箱数">{{ order.sumNum }}</el-descriptions-item>
<el-descriptions-item label="订单状态"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" /></el-descriptions-item>
<el-descriptions-item label="订单状态"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" :class="{red: order.status === 1, green: order.status === 5 || order.status === 2}" /></el-descriptions-item>
<el-descriptions-item label="送货时间">{{ order.consigneeVO && order.consigneeVO.deliveryDate || '' }}</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag>
......@@ -41,6 +41,12 @@ export default {
}
</script>
<style scoped>
<style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red{
color: $--color-danger;
}
.green{
color: $--color-success;
}
</style>
......@@ -280,11 +280,10 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
this.$modal
.confirm('是否确认删除出货编号为"' + id + '"的数据项?')
.confirm(`是否确认删除出货编号为 ${row.selfNo} 的数据项?`)
.then(function () {
return deletebox(id);
return deletebox(row.id);
})
.then(() => {
this.getList();
......
......@@ -9,9 +9,7 @@
<el-button size="small" @click="handleCommand('router')">操作</el-button>
<el-button type="primary" size="small" @click="handleCommand('error')">异常登记</el-button>
<el-button type="primary" size="small" @click="handleCommand('cost')">费用登记</el-button>
<el-popconfirm title="确定是否删除" @confirm="handleCommand('delete')" style="marginLeft:10px;">
<el-button type="danger" size="small" slot="reference">删除</el-button>
</el-popconfirm>
<el-button type="danger" size="small" @click="handleCommand('delete')">删除</el-button>
</div>
</div>
<el-card style="margin-top: 15px">
......@@ -22,10 +20,10 @@
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="shipmentObj.transportType" />
</el-descriptions-item>
<el-descriptions-item label="出货渠道" v-if="shipmentObj.transportType !== '2'">
<!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(shipmentObj.shippingChannelId)}}
</el-descriptions-item>
<el-descriptions-item label="柜型" v-if="shipmentObj.transportType === '2'">
</el-descriptions-item> -->
<el-descriptions-item label="柜型">
{{getCabinetLabel(shipmentObj.cabinetId)}}
</el-descriptions-item>
<el-descriptions-item label="状态">
......@@ -66,7 +64,11 @@
</div>
<el-table :data="sectionObj.sectionOrderList" style="width: 100%" border>
<el-table-column type="index" align="center" label="序号" width="50" />
<el-table-column prop="orderNo" label="订单号" align="center"></el-table-column>
<el-table-column prop="orderNo" label="订单号" align="center">
<template v-slot="scope">
<a href="javascript:void(0)" @click="jumpOrderDetail(scope.row)">{{ scope.row.orderNo }}</a>
</template>
</el-table-column>
<el-table-column prop="goodsList" label="货物信息" width="250px" align="center">
<template v-slot="{row}">
<section>
......@@ -354,6 +356,13 @@ export default {
});
});
},
/* 跳转订单详情 */
jumpOrderDetail(row) {
this.$router.push({
path: "/order/detail",
query: { orderId: row.orderId },
});
},
// 事件执行
handleCommand(type) {
switch (type) {
......@@ -378,11 +387,28 @@ export default {
this.$set(this.dialogConfig, "type", "error");
break;
case "delete":
deletebox(this.shipmentId).then((res) => {
this.$modal
.confirm(
`是否确认删除出货编号为 ${this.shipmentObj.selfNo} 的数据项?`
)
.then(() => {
return deletebox(this.shipmentId);
})
.then((res) => {
serviceMsg(res, this).then((res) => {
// 获取当前path
const currPath = this.$router.currentRoute.path;
// 根据path获取view
const view = this.visitedViews.find(
(item) => item.path === currPath
);
if (view) {
this.$store.dispatch("tagsView/delView", view);
this.$router.push("/shipment/boxSea");
}
});
});
})
.catch(() => {});
break;
}
},
......@@ -404,6 +430,9 @@ export default {
formatDate,
},
computed: {
visitedViews() {
return this.$store.state.tagsView.visitedViews;
},
// 单证状态
getDocStatus() {
return (list = []) => {
......
......@@ -204,7 +204,7 @@ export default {
/* 是否显示卸柜箱数 */
isShowColumn() {
return (shippingVO) => {
return getSeaStatus(shippingVO) >= 142 ? true : false;
return getSeaStatus(shippingVO) >= 182 ? true : false;
};
},
},
......
<template>
<el-select filterable :value="value" @change="change" v-bind="$attrs">
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="dock in getDock" :key="dock.id" :label="dock.titleZh" :value="dock.id"></el-option>
</el-select>
</template>
......
<template>
<el-select filterable :value="value" @change="change" v-bind="$attrs">
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="supplier in getSuppliers" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option>
</el-select>
</template>
......
<template>
<el-select filterable :value="value" @change="change" v-bind="$attrs">
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable>
<el-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option>
</el-select>
</template>
......@@ -12,7 +12,7 @@ export default {
name: "userSelect",
inheritAttrs: false,
props: {
value: Number,
value: Number | Array,
allUsers: Array,
},
model: {
......
......@@ -260,7 +260,7 @@
</el-card>
<!-- 操作员 -->
<el-row style="margin-top: 15px">
<el-row style="margin-top: 15px" v-show="!isAudit">
<el-row>
<el-form ref="operatorForm" :model="operatorData" size="small" :inline="true" label-width="120px" :rules="rules">
<el-form-item label="目的地操作员" prop="noticeUser">
......@@ -268,10 +268,37 @@
</el-form-item>
</el-form>
</el-row>
<el-row style="margin-top: 10px">
<el-row>
<el-button type="primary" @click="onSubmit">提交申请</el-button>
</el-row>
</el-row>
<!-- 审核流程 -->
<el-row class="process-area" v-show="isAudit">
<div class="process">
<div>审批流程</div>
<div>流程图</div>
</div>
<!-- <div class="copy-user">
<div>
<label class="el-form-item__label">抄送</label>
<userSelect v-model="copyUser" placeholder="请选择抄送人" :allUsers="this.$attrs.allUsers" size="small" multiple collapse-tags />
</div>
<div>
<label class="el-form-item__label">抄送人</label>
<div class="copyUser-tag">
<el-tag v-for="user in copyUsers" :key="user.id" closable @close="removeCopyUser(user)">
{{user.nickname}}
</el-tag>
</div>
</div>
</div> -->
<div>
<el-button type="primary" :disabled=true>审核中</el-button>
<el-button type="primary" @click="canclAudit">取消审核</el-button>
<el-button type="primary" @click="closeDialog">返回</el-button>
</div>
</el-row>
</div>
</template>
......@@ -285,6 +312,7 @@ import {
createGoods,
deleteGoods,
approvalCreate,
approvalCancel,
} from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue";
import { formatDate, getTotlContent, serviceMsg } from "../utils";
......@@ -336,6 +364,10 @@ export default {
},
// 出货信息
shipmentObj: this.$attrs.shipmentObj,
// 抄送人
copyUser: undefined,
// 抄送人数组
copyUsers: [],
};
},
computed: {
......@@ -351,6 +383,11 @@ export default {
(item) => item.tradeType == "1" || item.type == "3"
);
},
/* 是否审核中 */
isAudit() {
const { currNode, shipmentObj } = this.$attrs;
return shipmentObj[currNode.keyName] === 23;
},
},
created() {
// 查询待预装
......@@ -504,7 +541,7 @@ export default {
orderId: item.orderId,
};
if (type === "all") {
params.orderItemIdList = item.orderItemList.map(
params.orderItemIdList = item.boxOrderItemList.map(
(data) => data.orderItemId
);
} else {
......@@ -544,6 +581,7 @@ export default {
this.pageParam.pageNo = 1;
this.getPreLoad();
},
/* 获取参数 */
getParams() {
const { rucangtime = [] } = this.queryParams;
return {
......@@ -556,6 +594,39 @@ export default {
: rucangtime[1],
};
},
/* 删除抄送人 */
removeCopyUser(user) {
this.copyUser = this.copyUser.filter((id) => id !== user.id);
},
/* 关闭弹框 */
closeDialog() {
this.$emit("closeDialog");
},
/* 取消审核 */
canclAudit() {
const { currNode, shipmentObj } = this.$attrs;
const { voName } = currNode;
approvalCancel({
id: shipmentObj[voName].id,
shipmentId: shipmentObj.id,
applyReason: "取消审核",
}).then((res) => {
serviceMsg(res, this).then(() => {
this.$emit("closeDialog", "submit");
});
});
},
},
watch: {
copyUser(val) {
const { allUsers } = this.$attrs;
let users = [];
for (const id of val) {
const user = allUsers.find((item) => item.id === id);
if (user) users.push(user);
}
this.copyUsers = users;
},
},
};
</script>
......@@ -638,6 +709,7 @@ export default {
}
.preinstall-card {
min-height: 550px;
.el-card__body {
height: 100%;
......@@ -646,5 +718,39 @@ export default {
}
}
}
.process-area {
margin-top: 15px;
padding-bottom: 30px;
.process {
display: flex;
flex-direction: column;
> :first-child {
color: #606266;
font-weight: bolder;
font-size: 16px;
}
> :last-child {
height: 300px;
}
}
.copy-user {
margin-bottom: 15px;
> div {
display: flex;
align-items: center;
}
> :last-child {
.copyUser-tag {
display: flex;
flex-wrap: wrap;
> span {
margin-right: 10px;
}
}
}
}
}
}
</style>
......@@ -61,7 +61,7 @@ export default {
if (operateType === 2) {
const { keyName } = this.$attrs.currNode;
const ulStatus = this.$attrs.shipmentObj[keyName];
if (ulStatus !== 145) {
if (ulStatus !== 185) {
this.$message.error("请先通过卸柜审批");
return;
}
......@@ -95,7 +95,7 @@ export default {
isStartUnloading() {
const { currNode, shipmentObj } = this.$attrs;
const status = shipmentObj[currNode.keyName];
return status === 146 ? true : false;
return status === 186 ? true : false;
},
},
};
......
......@@ -15,12 +15,12 @@
<!-- 当前部分 -->
<el-row class="number-area">
<p class="label-font">当前部分:</p>
<el-select v-model="currPart" placeholder="请选择当前部分">
<el-select placeholder="请选择" v-model="sectionId" @change="sectionChange">
<el-option key="0" label="全部" value="0"></el-option>
<el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<p>
<span>无返回 箱</span>
<span>无返回 m3</span>
<span>无返回 kg</span>
{{getSectionInfo}}
</p>
</el-row>
......@@ -94,8 +94,9 @@ import {
batchUnload,
allUnload,
approvalCreate,
getSectionList,
} from "@/api/ecw/boxSea";
import { serviceMsg } from "../../utils";
import { serviceMsg, getTotlContent } from "../../utils";
/**
* 开始卸柜
......@@ -120,18 +121,36 @@ export default {
selfNo: this.$attrs.shipmentObj.selfNo,
// 当前行
currRow: {},
// 部分
sectionList: [],
// 已选部分
sectionId: "0",
// 部分订单商品
sectionObj: {
secStatistics: {},
sectionOrderList: [],
totalStatistics: {},
},
};
},
created() {
this.getLoadGoodsList();
// 部分
getSectionList({ shipmentId: this.$attrs.shipmentObj.id }).then((res) => {
this.sectionList = res.data.map((item, index) => {
return {
...item,
title: `第${index + 1}部分`,
};
});
});
},
methods: {
/* 获取卸柜数据 */
getLoadGoodsList(params) {
getLoadGoodsList() {
this.loading = true;
params = {
secId: 0,
...params,
let params = {
secId: this.sectionId,
shipmentId: this.$attrs.shipmentObj.id,
};
loadGoodsList(params).then((res) => {
......@@ -208,6 +227,21 @@ export default {
return "未清关";
}
},
// 部分切换
sectionChange() {
this.getLoadGoodsList();
},
},
computed: {
// 部分信息
getSectionInfo() {
const { totalStatistics, secStatistics } = this.pageData;
if (!this.sectionId) {
return getTotlContent(totalStatistics);
} else {
return getTotlContent(secStatistics);
}
},
},
};
</script>
......
......@@ -5,13 +5,10 @@
<div v-for="(nodes,index) in seaBaseData" :key="index" class="chart-nodes">
<div class="node-area">
<div v-for="node in nodes" :key="node.title" @click="nodeClick(index, node)" class="node-div">
<template v-if="!node.unNode">
<div v-show="isShowAgent(node.type)">
<img :src="getImgSrc(node)" alt="">
<p>{{node.title}}</p>
</template>
<template v-else-if="node.unNode">
<el-button type="primary" @click="nodeClick(index, node)" style="width:100px;">{{node.title}}</el-button>
</template>
</div>
</div>
</div>
<div class="arrow-area" v-if="index !== (seaBaseData.length-1)">
......@@ -77,6 +74,7 @@ export default {
seaBaseData: Array,
},
data() {
console.log(this.$store.state.user);
return {
// 弹窗配置
dialogConfig: {
......@@ -94,6 +92,20 @@ export default {
};
},
created() {},
computed: {
isShowAgent() {
return (type) => {
if (type === "agent") {
const { preInstallInfo } = this.shipmentObj;
const user = this.$store.state.user;
if (preInstallInfo && preInstallInfo.noticeUser === user.id)
return true;
return false;
}
return true;
};
},
},
methods: {
/** 关闭弹窗 */
closeDialog(type) {
......@@ -130,7 +142,7 @@ export default {
case "preinstall":
// 预装反审
const preStatus = this.shipmentObj[node.keyName];
if ([23, 24].includes(preStatus)) {
if ([24, 25].includes(preStatus)) {
this.currentComponent = `ReviewWidget`;
this.$set(this.dialogConfig, "width", "700px");
this.$set(this.dialogConfig, "title", "预装反审");
......@@ -142,7 +154,7 @@ export default {
case "unloading":
// 卸柜反审
const unStatus = this.shipmentObj[node.keyName];
if ([144, 145].includes(unStatus)) {
if ([184, 185].includes(unStatus)) {
this.currentComponent = `ReviewWidget`;
this.$set(this.dialogConfig, "width", "700px");
this.$set(this.dialogConfig, "title", "卸柜反审");
......
......@@ -12,9 +12,10 @@ function getStatusName(statu) {
statusName.set(12, "已订舱");
statusName.set(21, "未预装");
statusName.set(22, "预装审核中");
statusName.set(23, "预装审核失败");
statusName.set(24, "预装审核成功");
statusName.set(22, "预装中");
statusName.set(23, "预装审核中");
statusName.set(24, "预装审核失败");
statusName.set(25, "预装审核成功");
statusName.set(31, "未派车");
statusName.set(32, "已派车");
......@@ -54,16 +55,16 @@ function getStatusName(statu) {
statusName.set(131, "未清关");
statusName.set(132, "已清关");
statusName.set(141, "未卸柜");
statusName.set(142, "卸柜中");
statusName.set(143, "卸柜审核中");
statusName.set(144, "卸柜审核失败");
statusName.set(145, "卸柜审核成功");
statusName.set(146, "已卸柜");
statusName.set(181, "未卸柜");
statusName.set(182, "卸柜中");
statusName.set(183, "卸柜审核中");
statusName.set(184, "卸柜审核失败");
statusName.set(185, "卸柜审核成功");
statusName.set(186, "已卸柜");
statusName.set(151, "未结算");
statusName.set(152, "结算中");
statusName.set(153, "已结算");
statusName.set(191, "未结算");
statusName.set(192, "结算中");
statusName.set(193, "已结算");
return statusName.get(statu);
}
......@@ -107,14 +108,14 @@ function seaBaseData() {
type: "preinstall",
dataKey: "2", // 字典数据键值
/**
* 预装状态:21、未预装;22、预装审核中;23、预装审核失败;24、预装审核成功
* 预装状态:21、未预装;22、预装中;23、预装审核中;24、预装审核失败;25、预装审核成功
*/
voName: "preInstallInfo",
keyName: "prStatus",
status: {
start: [21],
wait: [22, 23],
end: [24],
wait: [22, 23, 24],
end: [25],
},
},
{
......@@ -374,14 +375,14 @@ function seaBaseData() {
type: "unloading",
dataKey: "14", // 字典数据键值
/**
* 卸柜状态:141、未卸柜;142、卸柜中;143、卸柜审核中;144、卸柜审核失败;145、卸柜审核成功;146、已卸柜
* 卸柜状态:181、未卸柜;182、卸柜中;183、卸柜审核中;184、卸柜审核失败;185、卸柜审核成功;186、已卸柜
*/
voName: "cabinetUnloadInfo",
keyName: "ulStatus",
status: {
start: [141],
wait: [142, 143, 144, 145],
end: [146],
start: [181],
wait: [182, 183, 184, 185],
end: [186],
},
},
],
......@@ -396,14 +397,14 @@ function seaBaseData() {
type: "settlement",
dataKey: "15", // 字典数据键值
/**
* 结算状态:151、未结算;152、结算中;153、已结算
* 结算状态:191、未结算;192、结算中;193、已结算
*/
voName: "settlementInfo",
keyName: "slStatus",
status: {
start: [151],
wait: [152],
end: [153],
start: [191],
wait: [192],
end: [193],
},
},
],
......
......@@ -14,7 +14,8 @@
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" />
</el-descriptions-item>
<el-descriptions-item label="送货日期">
<span v-if="orderData">{{orderData.status>=5?(orderData.orderItemVOList.length>0?orderData.orderItemVOList[0].warehouseInInfoVO.firstInTime:''):(orderData.consigneeVO?orderData.consigneeVO.deliveryDate:'')}}</span>
{{orderData.consigneeVO?orderData.consigneeVO.deliveryDate||'':''}}
<!-- <span v-if="orderData">{{orderData.status>=5?(orderData.orderItemVOList.length>0?parseTime(orderData.orderItemVOList[0].warehouseInInfoVO.firstInTime):''):(orderData.consigneeVO?orderData.consigneeVO.deliveryDate:'')}}</span> -->
</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
......@@ -82,7 +83,11 @@
</template>
</el-table-column>
<el-table-column label="处理人" align="center" prop="userName" />
<el-table-column label="处理时间" align="center" prop='handlerTime' />
<el-table-column label="处理时间" align="center">
<template slot-scope="scope">
<span>{{parseTime(scope.row.handlerTime)}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.orderExceptionStatus>0">已完成</el-tag>
......
......@@ -26,7 +26,7 @@
<el-row>
<el-form-item label="运输路线:" >
<span v-if="orderData"><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" /></span>
{{orderData?getRouterNameById(orderData.lineId):''}}
{{orderData?getRouterNameById():''}}
</el-form-item>
</el-row>
<div v-if="orderExceptionData.orderExceptionType!=3||orderExceptionData.orderExceptionType!=9||orderExceptionData.orderExceptionType!=10||orderExceptionData.orderExceptionType!=11">
......@@ -174,7 +174,6 @@
<script>
import FileUpload from '@/components/FileUpload'
import {getDictData, getDictDatas} from '@/utils/dict'
import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse'
import {getOrder} from '@/api/ecw/order'
import {getExceptionById,handlerExceptionByExceptionId,getOrderItemById} from "@/api/ecw/orderException"
......@@ -240,27 +239,12 @@
handleSelectionChange(val) {
this.multipleSelection = val;
},
// 获取路线
getOpenedRouterList(){
let params = {}
if(this.list.departureId){
params.startCityId = this.list.departureId
}
if(this.list.objectiveId){
params.destCityId = this.list.objectiveId
}
getOpenedRouterList(params).then(res => this.routerList = res.data)
},
// 根据线路id显示线路名称
getRouterNameById(routerId){
// return routerId => {
let router = this.routerList.find(item => item.id == routerId)
console.log({router})
if(router){
return ' 从【'+router.startTitleZh + '】发往【' + router.destTitleZh+''
getRouterNameById(){
if(this.orderData.logisticsInfoDto) {
return ' 从【'+this.orderData.logisticsInfoDto.startTitleZh + '】发往【' + this.orderData.logisticsInfoDto.destTitleZh+''
}
return ''
// }
},
submitForm(){
console.log(this.handlerParams)
......
This diff is collapsed.
This diff is collapsed.
......@@ -20,7 +20,7 @@
v-for="item in brandList"
:key="item.id"
:label="item.titleZh"
:value="item.titleZh">
:value="item.id">
</el-option>
</el-select>
</el-descriptions-item>
......@@ -61,37 +61,39 @@
<el-table-column label="长(cm)">
<template v-slot="{r,c,$index}">
<span v-if="tableData[$index].id">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[0] : '' }}</span>
<el-input v-else v-model="tableData[$index].boxGauge1" placeholder=""></el-input>
<el-input v-else v-model.number="tableData[$index].boxGauge1" placeholder="" @blur="handleVolume($index)"></el-input>
</template>
</el-table-column>
<el-table-column label="宽(cm)">
<template v-slot="{r,c,$index}">
<span v-if="tableData[$index].id">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[1] : '' }}</span>
<el-input v-else v-model="tableData[$index].boxGauge2" placeholder=""></el-input>
<el-input v-else v-model.number="tableData[$index].boxGauge2" placeholder="" @blur="handleVolume($index)"></el-input>
</template>
</el-table-column>
<el-table-column label="高(cm)">
<template v-slot="{r,c,$index}">
<span v-if="tableData[$index].id">{{ tableData[$index].boxGauge ? tableData[$index].boxGauge.split('*')[2] : '' }}</span>
<el-input v-else v-model="tableData[$index].boxGauge3" placeholder=""></el-input>
<el-input v-else v-model.number="tableData[$index].boxGauge3" placeholder="" @blur="handleVolume($index)"></el-input>
</template>
</el-table-column>
<el-table-column label="体积(m³)">
<template v-slot="{r,c,$index}">
<span v-if="tableData[$index].id">{{ tableData[$index].volume }}</span>
<el-input v-else v-model="tableData[$index].volume" placeholder=""></el-input>
<el-input v-else v-model.number="tableData[$index].volume" placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="重量(Kg)">
<template v-slot="{r,c,$index}">
<span v-if="tableData[$index].id">{{ tableData[$index].weight }}</span>
<el-input v-else v-model="tableData[$index].weight" placeholder=""></el-input>
<el-input v-else v-model.number="tableData[$index].weight" placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="数量">
<template v-slot="{r,c,$index}">
<span v-if="tableData[$index].id">{{ tableData[$index].quantityAll }}</span>
<el-input v-else v-model="tableData[$index].quantityAll" placeholder=""></el-input>
<el-input v-else v-model.number="tableData[$index].quantityAll" placeholder="">
<template slot="append"></template>
</el-input>
</template>
</el-table-column>
<el-table-column label="快递单号">
......@@ -145,6 +147,9 @@ export default {
mounted() {
getProductBrankPage({pageSize: 100000}).then(r => {
this.brandList = r.data.list.map(e => {
if(e.id){
e.id = e.id.toString()
}
const boxGauge = e.boxGauge
if (boxGauge && boxGauge.length > 0) {
const boxGaugeList = boxGauge.split('*')
......@@ -204,6 +209,14 @@ export default {
},
methods: {
handleVolume(index){
const {boxGauge1, boxGauge2, boxGauge3} = this.tableData[index]
if (boxGauge1 && boxGauge2 && boxGauge3) {
this.tableData[index].volume = ((boxGauge1 * boxGauge2 * boxGauge3) / 1000000).toFixed(2)
} else {
this.tableData[index].volume = 0
}
},
handleSubmit() {
const orderWarehouseInItemDoList = this.form.orderWarehouseInItemDoList.map(e => {
return {
......
......@@ -47,17 +47,17 @@
{{ row.warehouseInInfoVO ? row.warehouseInInfoVO.expressNo : '' }}
</el-table-column>
<el-table-column
prop="updateTime"
prop="createTime"
label="最后操作时间">
<template v-slot="{row}">
{{ row.updateTime }}
{{ parseTime(row.createTime) }}
</template>
</el-table-column>
<el-table-column
prop="diffType"
v-slot="{row}"
label="状态">
<dict-tag :type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS" :value="row.warehouseInInfoVO && row.warehouseInInfoVO.diffType" />
<dict-tag v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.diffType" :type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS" :value="row.warehouseInInfoVO.diffType" class="red" :class="{green: row.warehouseInInfoVO.diffType === 4}"/>
</el-table-column>
<el-table-column
prop="address"
......@@ -149,6 +149,7 @@ import {DICT_TYPE} from "@/utils/dict"
import PrintTag from "@/views/ecw/order/components/PrintTag"
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt"
import imageUpload from "@/components/ImageUpload";
import {parseTime} from "@/utils/ruoyi"
export default {
name: "Warehousing",
......@@ -174,6 +175,7 @@ export default {
data() {
return {
parseTime,
DICT_TYPE,
areaVisible: false,
finishVisible: false,
......@@ -290,6 +292,12 @@ export default {
}
</script>
<style scoped>
<style scoped lang="scss">
@import "src/assets/styles/element-variables";
.red{
color: $--color-danger;
}
.green{
color: $--color-success;
}
</style>
......@@ -156,6 +156,13 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="跟单客服">
<el-select v-model="form.customerServiceId" placeholder="请选择">
<el-option v-for="dict in followUpList" :key="parseInt(dict.id)" :label="dict.nickname" :value="parseInt(dict.id)"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
......@@ -231,7 +238,7 @@ import {
importTemplate,
listUser,
resetUserPwd,
updateUser
updateUser, userList
} from "@/api/system/user";
import {getToken} from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
......@@ -309,7 +316,7 @@ export default {
username: undefined,
mobile: undefined,
status: undefined,
deptId: undefined
deptId: undefined,
},
// 列信息
columns: [
......@@ -355,6 +362,7 @@ export default {
// 数据字典
statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS),
sexDictDatas: getDictDatas(DICT_TYPE.SYSTEM_USER_SEX),
followUpList:[],
};
},
watch: {
......@@ -369,6 +377,9 @@ export default {
this.getConfigKey("sys.user.init-password").then(response => {
this.initPassword = response.msg;
});
userList('documentary customer service').then(r => {
this.followUpList = r.data;
})
},
methods: {
// 更多操作
......@@ -462,7 +473,8 @@ export default {
status: "0",
remark: undefined,
postIds: [],
roleIds: []
roleIds: [],
customerServiceId:undefined
};
this.resetForm("form");
},
......
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