Commit 45f2ffc8 authored by dragondean@qq.com's avatar dragondean@qq.com

解决商品列表冲突

parents 91131da6 0e1f7431
...@@ -740,6 +740,72 @@ export function extraCostList(params) { ...@@ -740,6 +740,72 @@ export function extraCostList(params) {
/***************************** 报关费用 end **********************************/ /***************************** 报关费用 end **********************************/
/***************************** 理货 start **********************************/
/**
* 理货列表
*
* @export
* @param {*} data
* @return {*}
*/
export function getTallyList(data) {
return request({
url: "/shipment/box/tallyList",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/**
* 理货移出
*
* @export
* @param {*} data
* @return {*}
*/
export function tallyRemove(data) {
return request({
url: "/ecw/box-preload-goods/remove",
method: "post",
data,
});
}
/**
* 理货
*
* @export
* @param {*} data
* @return {*}
*/
export function tallyLocationUpdate(data) {
return request({
url: "/shipment/box/batchOrderLocationUpdate",
method: "post",
data,
});
}
/**
* 理货提交
*
* @export
* @param {*} data
* @return {*}
*/
export function tallyCommit(data) {
return request({
url: "/shipment/box/tallyCommit",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/***************************** 理货 end **********************************/
function jsonToFormData(params) { function jsonToFormData(params) {
const formData = new FormData(); const formData = new FormData();
for (const [key, value] of Object.entries(params)) { for (const [key, value] of Object.entries(params)) {
......
...@@ -35,10 +35,11 @@ export function getWarehouseArea(id) { ...@@ -35,10 +35,11 @@ export function getWarehouseArea(id) {
} }
// 获得仓库查询库域 // 获得仓库查询库域
export function getByWarehouseId() { export function getByWarehouseId(params) {
return request({ return request({
url: '/ecw/warehouse-area/getByWarehouseId', url: '/ecw/warehouse-area/getByWarehouseId',
method: 'get' method: 'get',
params
}) })
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<el-descriptions border v-if="order.orderId"> <el-descriptions border v-if="order.orderId">
<el-descriptions-item label="唛头">{{ order.marks }}</el-descriptions-item> <el-descriptions-item label="唛头">{{ order.marks }}</el-descriptions-item>
<el-descriptions-item label="已到箱数">{{ order.sumNum }}</el-descriptions-item> <el-descriptions-item label="已到箱数/总箱数">{{ order.sumNum }}/{{ order.costVO.totalNum }}</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="订单状态"><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="送货时间">{{ order.consigneeVO && order.consigneeVO.deliveryDate || '' }}</el-descriptions-item>
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
:visible.sync="opened" :visible.sync="opened"
width="600px" width="600px"
:before-close="handleClose()" :before-close="handleClose()"
v-bind="$attrs"
> >
<el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}"> <el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}">
<el-tab-pane :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index"> <el-tab-pane :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index">
...@@ -62,7 +63,11 @@ export default { ...@@ -62,7 +63,11 @@ export default {
default: false default: false
}, },
value: Array, value: Array,
orderId: Number orderId: Number,
cityId: {
type: Number,
default: undefined
}
}, },
data() { data() {
...@@ -81,6 +86,25 @@ export default { ...@@ -81,6 +86,25 @@ export default {
visible(val) { visible(val) {
if (val) { if (val) {
this.opened = true this.opened = true
getByWarehouseId({cityId: this.cityId}).then(r => {
const area = r.data
area.forEach(e => {
// 仓库
e.children.forEach(f => {
// 区域
f.selected = false
if(f.positionList) f.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
k.selected = false
})
})
})
})
this.area = area
})
} else { } else {
} }
}, },
...@@ -143,28 +167,7 @@ export default { ...@@ -143,28 +167,7 @@ export default {
}, },
mounted() { mounted() {
if (this.visible) { console.log('area dialog mounted')
this.opened = true
}
getByWarehouseId().then(r => {
const area = r.data
area.forEach(e => {
// 仓库
e.children.forEach(f => {
// 区域
f.selected = false
if(f.positionList) f.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
k.selected = false
})
})
})
})
this.area = area
})
}, },
computed: { computed: {
......
...@@ -3,6 +3,12 @@ ...@@ -3,6 +3,12 @@
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="运输方式" prop="transportType">
<el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small">
<el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="自编号" prop="selfNo"> <el-form-item label="自编号" prop="selfNo">
<el-input v-model="queryParams.selfNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.selfNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
...@@ -43,9 +49,10 @@ ...@@ -43,9 +49,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="运输方式" prop="transportType"> <el-form-item label="国家">
<el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small"> <el-select v-model="queryParams.countryId" placeholder="请选择国家">
<el-option v-for="dict in transportTypes" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="item in countryList" :key="item.id" :label="item.titleZh" :value="item.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -154,6 +161,7 @@ ...@@ -154,6 +161,7 @@
import { deletebox, getbox, getboxPage, exportboxExcel } from "@/api/ecw/box"; import { deletebox, getbox, getboxPage, exportboxExcel } from "@/api/ecw/box";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
import { getWarehouseList } from "@/api/ecw/warehouse"; import { getWarehouseList } from "@/api/ecw/warehouse";
import { getListTree } from "@/api/ecw/region";
import costForm from "./costForm.vue"; import costForm from "./costForm.vue";
import regError from "./regError.vue"; import regError from "./regError.vue";
import editForm from "./editForm.vue"; import editForm from "./editForm.vue";
...@@ -202,6 +210,8 @@ export default { ...@@ -202,6 +210,8 @@ export default {
cabinetList: [], cabinetList: [],
warehouseList: [], warehouseList: [],
transportTypes: [], transportTypes: [],
//国家信息列表
countryList: [],
}; };
}, },
computed: { computed: {
...@@ -235,8 +245,15 @@ export default { ...@@ -235,8 +245,15 @@ export default {
this.cabinetList = response.data.list; this.cabinetList = response.data.list;
}); });
this.getList(); this.getList();
this.getCountryList();
}, },
methods: { methods: {
/* 国家 */
getCountryList() {
getListTree({ treeType: 1 }).then((response) => {
this.countryList = response.data;
});
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
......
...@@ -217,7 +217,6 @@ export default { ...@@ -217,7 +217,6 @@ export default {
editForm, editForm,
}, },
created() { created() {
console.log();
this.transportTypes = this.getDictDatas( this.transportTypes = this.getDictDatas(
this.DICT_TYPE.ECW_TRANSPORT_TYPE this.DICT_TYPE.ECW_TRANSPORT_TYPE
).filter((item) => item.value == "1" || item.value == "2"); ).filter((item) => item.value == "1" || item.value == "2");
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(boxBackVO.shippingChannelId)}} {{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> </el-descriptions-item> -->
<el-descriptions-item label="柜型"> <el-descriptions-item label="柜型">
{{cabinetLabel}} {{cabinetLabel}}
</el-descriptions-item> </el-descriptions-item>
...@@ -24,10 +24,10 @@ ...@@ -24,10 +24,10 @@
<el-button type="primary" @click="showOrder">订单列表</el-button> <el-button type="primary" @click="showOrder">订单列表</el-button>
</el-row> </el-row>
<div> <div v-if="boxBackVO.preInstallInfo && boxBackVO.preInstallInfo.applyReason">
<p>申请原因</p> <p>申请原因</p>
<div> <div>
{{boxBackVO.preInstallInfo ? boxBackVO.preInstallInfo.applyReason : ''}} {{boxBackVO.preInstallInfo.applyReason}}
</div> </div>
</div> </div>
...@@ -37,9 +37,9 @@ ...@@ -37,9 +37,9 @@
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="boxBackVO.transportType" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道"> <!-- <el-descriptions-item label="出货渠道">
{{getShipChannelName(boxBackVO.shippingChannelId)}} {{getShipChannelName(boxBackVO.shippingChannelId)}}
</el-descriptions-item> </el-descriptions-item> -->
<el-descriptions-item label="柜型"> <el-descriptions-item label="柜型">
{{cabinetLabel}} {{cabinetLabel}}
</el-descriptions-item> </el-descriptions-item>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-form-item label="订舱公司"> <el-form-item label="订舱公司">
<supplierSelect v-model="bookingObj.spaceCompanyId" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="bookingObj.spaceCompanyId" :companyType="'1'" placeholder="请选择订舱公司" :allSupplier="this.$attrs.allSupplier" />
</el-form-item> </el-form-item>
<el-form-item label="预计驳船时间" prop="bargeTime"> <el-form-item label="预计驳船时间">
<el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker> <el-date-picker type="date" placeholder="请选择日期" value-format="yyyy-MM-dd" v-model="bookingObj.bargeTime"></el-date-picker>
</el-form-item> </el-form-item>
...@@ -110,7 +110,6 @@ export default { ...@@ -110,7 +110,6 @@ export default {
bookingObj: {}, bookingObj: {},
// 校验 // 校验
rules: { rules: {
bargeTime: [{ required: true, message: "必填", trigger: "change" }],
sailTime: [{ required: true, message: "必填", trigger: "change" }], sailTime: [{ required: true, message: "必填", trigger: "change" }],
}, },
}; };
......
...@@ -68,7 +68,11 @@ export default { ...@@ -68,7 +68,11 @@ export default {
"ldBoxTime", "ldBoxTime",
"ldOutWarehouseTime", "ldOutWarehouseTime",
]); ]);
this.cabinetObj = oldData; this.cabinetObj = {
...oldData,
ldWarehouseType:
oldData.ldWarehouseType === 0 ? undefined : oldData.ldWarehouseType,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
...@@ -315,7 +315,7 @@ export default { ...@@ -315,7 +315,7 @@ export default {
orderId: item.orderId, orderId: item.orderId,
}; };
if (type === "all") { if (type === "all") {
params.orderItemIdList = item.orderItemList.map( params.orderItemIdList = item.boxOrderItemList.map(
(data) => data.orderItemId (data) => data.orderItemId
); );
} else { } else {
......
...@@ -108,7 +108,11 @@ export default { ...@@ -108,7 +108,11 @@ export default {
"cdAgentlistType", "cdAgentlistType",
"cdSoncapType", "cdSoncapType",
]); ]);
this.cDocObj = oldData; this.cDocObj = {
...oldData,
cdOutBillType:
oldData.cdOutBillType === 0 ? undefined : oldData.cdOutBillType,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable> <el-select filterable :value="value === 0 ? undefined : 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-option v-for="dock in getDock" :key="dock.id" :label="dock.titleZh" :value="dock.id"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable> <el-select filterable :value="value === 0 ? undefined : 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-option v-for="supplier in getSuppliers" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<el-select filterable :value="value" @change="change" v-bind="$attrs" clearable> <el-select filterable :value="value === 0 ? undefined : 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-option v-for="user in getUser" :key="user.id" :value="user.id" :label="user.nickname"></el-option>
</el-select> </el-select>
</template> </template>
......
<template> <template>
<div> <div>
<el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclarationObj" label-width="120px"> <el-form ref="cusDeclarationForm" :rules="rules" :model="cusDeclarationObj" label-width="120px">
<el-form-item label="单证要求">无返回 <el-button type="primary" style="margin-left:10px;" @click="downloadVGM">VGM声明</el-button> <el-form-item label="单证要求">
<template v-for="(item, index) in cusDeclarationObj.documentInfo">
<dict-tag :type="DICT_TYPE.ECW_CUSTOMS_TYPE" :value="item" :key="index" />
</template>
<el-button type="primary" style="margin-left:10px;" @click="downloadVGM">{{getButtonLabel(cusDeclarationObj.documentInfo)}}</el-button>
</el-form-item> </el-form-item>
<el-form-item label="柜重" prop="dcBoxWgt"> <el-form-item label="柜重" prop="dcBoxWgt">
<el-input v-model="cusDeclarationObj.dcBoxWgt" placeholder="请输入柜重" clearable /> <el-input v-model="cusDeclarationObj.dcBoxWgt" placeholder="请输入柜重" clearable />
...@@ -171,8 +175,12 @@ export default { ...@@ -171,8 +175,12 @@ export default {
}; };
}, },
created() { created() {
const voName = this.$attrs.currNode.voName; const { currNode, shipmentObj } = this.$attrs;
let oldData = { ...this.$attrs.shipmentObj[voName] }; const { voName } = currNode;
let oldData = {
...shipmentObj[voName],
documentInfo: shipmentObj.documentInfo?.split(",") ?? [],
};
oldData = formatDateStr(oldData, [ oldData = formatDateStr(oldData, [
"dcCutOffTime", "dcCutOffTime",
"dcCheckTime", "dcCheckTime",
...@@ -186,6 +194,10 @@ export default { ...@@ -186,6 +194,10 @@ export default {
this.cusDeclarationObj = oldData; this.cusDeclarationObj = oldData;
}, },
methods: { methods: {
getButtonLabel(documentInfo = []) {
const newList = Array.from(new Set(documentInfo));
return newList.length > 2 ? "混合报关" : "VGM声明";
},
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
this.$refs["cusDeclarationForm"].validate((valid) => { this.$refs["cusDeclarationForm"].validate((valid) => {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<userSelect v-model="subMaterialObj.notifyingId" placeholder="请选择通知方" :allUsers="this.$attrs.allUsers" /> <userSelect v-model="subMaterialObj.notifyingId" placeholder="请选择通知方" :allUsers="this.$attrs.allUsers" />
</el-form-item> </el-form-item>
<el-form-item label="Mark & No."> <el-form-item label="Mark & No.">
<el-input v-model="subMaterialObj.markNo"></el-input> <el-input v-model="subMaterialObj.markNo" placeholder="请输入Mark & No."></el-input>
</el-form-item> </el-form-item>
<el-form-item label="包装数量与单位" class="two-element"> <el-form-item label="包装数量与单位" class="two-element">
<el-input v-model="subMaterialObj.packageNum" placeholder="请输入包装数量"></el-input> <el-input v-model="subMaterialObj.packageNum" placeholder="请输入包装数量"></el-input>
...@@ -124,7 +124,10 @@ export default { ...@@ -124,7 +124,10 @@ export default {
const voName = this.$attrs.currNode.voName; const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] }; let oldData = { ...this.shipmentObj[voName] };
oldData = formatNumberString(oldData, ["issueType"]); oldData = formatNumberString(oldData, ["issueType"]);
this.subMaterialObj = oldData; this.subMaterialObj = {
...oldData,
packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit,
};
}, },
methods: { methods: {
/** 提交 */ /** 提交 */
......
<template>
<div class="shipping-batchTally">
<el-row v-if="$attrs.type === 'batchTally'">
<el-button type="text" size="small" @click="()=>openStorage('all')">批量修改储位</el-button>
</el-row>
<el-scrollbar viewClass="tally-list">
<el-row class="tally-detail" v-for="(item, index) in storageList" :key="item.id">
<div class="status-number">{{++index}}</div>
<div class="detail-info">
<div>入仓单号:{{item.orderNo}}</div>
<div>入仓统计:{{getTotlContent(item)}}</div>
<div class="detail-modify">
<el-tooltip effect="dark" :content="item.positionNo" placement="top">
<div>储位:{{item.positionNo}}</div>
</el-tooltip>
<el-button type="text" size="small" @click="()=>openStorage('single', item)">修改</el-button>
</div>
</div>
</el-row>
</el-scrollbar>
<el-row class="operate-button">
<el-button size="small" type="primary" @click="tallyModify">确定</el-button>
<el-button size="small" @click="$emit('closeDialog')">关闭</el-button>
</el-row>
<warehouse-area-dialog ref="area" :visible.sync="visible" v-model="storageSpaces" :order-id="orderId" :modal-append-to-body=false append-to-body v-if="visible" />
</div>
</template>
<script>
import { getTotlContent, serviceMsg } from "../../utils";
import WarehouseAreaDialog from "@/components/WarehouseAreaDialog";
import { deepClone } from "@/utils";
import { tallyLocationUpdate } from "@/api/ecw/boxSea";
export default {
name: "batchTally",
inheritAttrs: false,
components: { WarehouseAreaDialog },
props: {
tallyRows: Array,
},
data() {
return {
visible: false,
// 储位
storageSpaces: [],
// 订单ID
orderId: -1,
// 仓位数据
storageList: deepClone(this.tallyRows),
};
},
methods: {
getTotlContent,
// 打开储位
openStorage(type, item) {
if (type === "all") {
this.orderId = -1;
} else {
this.orderId = item.orderId;
}
this.visible = true;
},
// 修改储位
tallyModify() {
// 查找数据中存在storageList的订单
let orderLocationList = [];
this.storageList.forEach((item) => {
const { storageList } = item;
if (storageList && storageList.length) {
storageList.forEach((sItem) => {
orderLocationList.push({
...sItem,
orderId: item.orderId,
});
});
}
});
if (orderLocationList.length === 0) {
this.$message.error("没有需要修改储位的订单");
return;
}
tallyLocationUpdate({
shipmentId: this.$attrs.shipmentObj.id,
orderLocationList,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.$emit("closeDialog", "query");
});
});
},
},
watch: {
storageSpaces(val) {
let newList = [];
const { selected = [] } = this.$refs.area;
// 批量修改储位
if (this.orderId === -1) {
newList = this.storageList.map((item) => {
item.positionNo = selected.join(",");
item.storageList = val;
return item;
});
} else {
newList = this.storageList.map((item) => {
if (item.orderId === this.orderId) {
item.positionNo = selected.join(",");
item.storageList = val;
}
return item;
});
}
this.storageList = newList;
},
},
};
</script>
<style lang="scss">
.shipping-batchTally {
.el-scrollbar__wrap {
max-height: 500px;
.tally-list {
.tally-detail {
display: flex;
padding: 10px 0px;
border-bottom: 1px solid rgb(223, 230, 236);
.status-number {
width: 26px;
height: 26px;
border: 1px solid #ccc;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-right: 20px;
}
.detail-info {
> div {
height: 30px;
line-height: 30px;
}
.detail-modify {
display: flex;
align-items: center;
> :first-child {
width: 150px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
margin-right: 10px;
}
}
}
}
> .tally-detail:last-child {
border-bottom: none;
}
}
}
}
</style>
<template>
<div class="shipping-tally">
<el-row type="flex" style="margin-top: 15px; margin-bottom: 15px" justify="center">
<el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="22">
<el-card>
<el-descriptions :column="4" border>
<el-descriptions-item label="自编号">
{{shipmentObj.selfNo}}
</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="shipmentObj.transportType" />
</el-descriptions-item>
<el-descriptions-item label="始发地">
{{getCityName(shipmentObj.startWarehouseId)}}
</el-descriptions-item>
<el-descriptions-item label="目的地">
{{getCityName(shipmentObj.destWarehouseId)}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-row style="margin-top: 15px">
<el-row>
<el-button size="small" type="primary" @click="()=>tallyClick('batch')">批量理货</el-button>
<el-button size="small" type="primary" @click="()=>removeClick('batch')">批量移出</el-button>
</el-row>
<el-row style="margin-top: 5px">
<el-table border :data="tallyList" @select="checkboxSelect" @select-all="checkboxSelect" max-height="600px">
<el-table-column type="selection" align="center" width="55" fixed="left" />
<el-table-column type="index" align="center" label="序号" width="50" />
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="商品信息" width="250px" align="center" prop="prodTitleZh">
</el-table-column>
<el-table-column label="备案" align="center" prop="productRecord">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :value="row.productRecord" />
</template>
</el-table-column>
<el-table-column label="箱数" align="center" prop="num" />
<el-table-column label="纸箱尺寸" align="center" prop="boxGauge">
</el-table-column>
<el-table-column label="体积" align="center" prop="volume">
</el-table-column>
<el-table-column label="重量" align="center" prop="weight">
</el-table-column>
<el-table-column label="数量(个)" align="center" prop="quantity"></el-table-column>
<el-table-column label="储位" align="center" prop="positionNo" width="250px"></el-table-column>
<el-table-column label="状态" align="center" prop="tallyStatus">
<template slot-scope="scope">
{{scope.row.tallyStatus === 1 ? '已理货' : '未理货'}}
</template>
</el-table-column>
<el-table-column label="理货时间" align="center" prop="tallyTime">
<template slot-scope="scope">
{{formatDate(scope.row.tallyTime,'YYYY-MM-DD HH:mm:ss')}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click="tallyClick('single',scope.row)">理货</el-button>
<el-button type="text" size="small" @click="removeClick('single',scope.row)">移出</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
</el-row>
<el-row style="margin-top: 15px" class="operate-button">
<el-button size="small" type="primary" @click="tallyFinish">完成理货</el-button>
<el-button size="small" @click="cancel">取消</el-button>
</el-row>
</el-col>
</el-row>
<!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" :title="dialogConfig.title" :visible.sync="dialogConfig.dialogVisible" :fullscreen="dialogConfig.fullscreen" :width="dialogConfig.width" :modal-append-to-body=false append-to-body>
<batchTally v-if="dialogConfig.dialogVisible" v-bind="$attrs" @closeDialog="closeDialog" :type="dialogConfig.type" :tallyRows="tallyRows" :shipmentObj="shipmentObj" />
</el-dialog>
</div>
</template>
<script>
import batchTally from "./batchTally.vue";
import { getTallyList, tallyRemove, tallyCommit } from "@/api/ecw/boxSea";
import { formatDate, serviceMsg } from "../../utils";
export default {
name: "tally",
inheritAttrs: false,
components: {
batchTally,
},
props: {
shipmentObj: Object,
},
data() {
return {
tallyList: [],
// 理货数据
tallyRows: [],
// 勾选行
selectedRows: [],
// 弹窗配置
dialogConfig: {
title: "",
dialogVisible: false,
width: "30%",
type: "",
fullscreen: false,
},
};
},
created() {
this.getList();
},
methods: {
// 格式化日期
formatDate,
// 查询理货列表
getList() {
getTallyList({ shipmentId: this.shipmentObj.id }).then((res) => {
let list = [];
res.data.forEach((item) => {
item.orderItemList.forEach((oItem) => {
list.push({
...oItem,
positionNo: item.positionNo,
tallyStatus: item.tallyStatus,
tallyTime: item.tallyTime,
});
});
});
this.tallyList = list;
});
},
// 选中
checkboxSelect(selection) {
this.selectedRows = selection;
},
// 理货点击
tallyClick(type, data) {
if (type === "batch") {
if (this.selectedRows.length === 0) {
this.$message.error("请选择需要理货的订单");
return;
}
this.tallyRows = this.selectedRows;
this.showDialog("batchTally");
} else {
this.tallyRows = [data];
this.showDialog("singleTally");
}
},
// 移出点击
removeClick(type, data) {
let orderNos = [],
orderIds = [];
if (type === "batch") {
if (this.selectedRows.length === 0) {
this.$message.error("请选择需要移出的订单");
return;
}
orderNos = this.selectedRows.map((item) => item.orderNo);
orderIds = this.selectedRows.map((item) => item.orderId);
} else {
orderNos = [data.orderNo];
orderIds = [data.orderId];
}
let msgTitle = `您确定要将 ${orderNos.join("")} 移出 ${
this.shipmentObj.selfNo
} 吗?`;
this.$confirm(msgTitle, "提示", {
type: "warning",
})
.then((_) => {
tallyRemove({
orderIdLIst: orderIds,
shipmentId: this.shipmentObj.id,
}).then((res) => {
serviceMsg(res, this).then(() => {
this.getList();
});
});
})
.catch((_) => {});
},
// 关闭弹窗
closeDialog(type) {
this.$set(this.dialogConfig, "dialogVisible", false);
if (type === "query") {
this.getList();
}
},
// 打开弹窗
showDialog(type) {
switch (type) {
case "batchTally":
this.$set(this.dialogConfig, "title", "批量理货");
this.$set(this.dialogConfig, "width", "500px");
break;
case "singleTally":
this.$set(this.dialogConfig, "title", "理货确认");
this.$set(this.dialogConfig, "width", "500px");
break;
}
this.$set(this.dialogConfig, "type", type);
this.$set(this.dialogConfig, "dialogVisible", true);
},
/** 取消 */
cancel(type) {
this.$emit("closeDialog", type);
},
// 理货完成
tallyFinish() {
tallyCommit({ shipmentId: this.shipmentObj.id }).then((res) => {
serviceMsg(res, this).then(() => {
this.$emit("closeDialog", "submit");
});
});
},
},
computed: {
/* 获取仓库 */
getCityName() {
return (id) => {
let arr = this.$attrs.warehouseList.filter((item) => item.id == id);
return arr.length > 0 ? arr[0].titleZh : "";
};
},
},
};
</script>
<style lang="scss" scoped>
</style>
...@@ -5,29 +5,19 @@ ...@@ -5,29 +5,19 @@
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">自编号:</p> <p class="label-font">自编号:</p>
<p class="label-font">{{selfNo}}</p> <p class="label-font">{{selfNo}}</p>
<el-input v-model="labelNo" <el-input v-model="labelNo" placeholder="请输入标签号"></el-input>
placeholder="请输入标签号"></el-input>
<div> <div>
<el-button type="primary" <el-button type="primary" @click="modifyBatchUnload">批量输入</el-button>
@click="modifyBatchUnload">批量输入</el-button> <el-button type="primary" @click="modifyAllUnload">一键卸柜</el-button>
<el-button type="primary"
@click="modifyAllUnload">一键卸柜</el-button>
</div> </div>
</el-row> </el-row>
<!-- 当前部分 --> <!-- 当前部分 -->
<el-row class="number-area"> <el-row class="number-area">
<p class="label-font">当前部分:</p> <p class="label-font">当前部分:</p>
<el-select placeholder="请选择" <el-select placeholder="请选择" v-model="sectionId" @change="sectionChange">
v-model="sectionId" <el-option key="0" label="全部" value="0"></el-option>
@change="sectionChange"> <el-option v-for="item in sectionList" :key="item.id" :label="item.title" :value="item.id"></el-option>
<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> </el-select>
<p> <p>
{{getSectionInfo}} {{getSectionInfo}}
...@@ -36,58 +26,32 @@ ...@@ -36,58 +26,32 @@
<!-- 表格 --> <!-- 表格 -->
<el-row class="table-area"> <el-row class="table-area">
<el-table v-loading="loading" <el-table v-loading="loading" :data="pageData.sectionOrderList" border>
:data="pageData.sectionOrderList" <el-table-column label="序号" type="index" align="center" width="50" />
border> <el-table-column label="订单号" align="center" prop="orderNo">
<el-table-column label="序号"
type="index"
align="center"
width="50" />
<el-table-column label="订单号"
align="center"
prop="orderNo">
<template slot-scope="scope"> <template slot-scope="scope">
<a href="javascript:void(0);" <a href="javascript:void(0);" class="order-href">{{ scope.row.orderNo }}</a>
class="order-href">{{ scope.row.orderNo }}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="商品信息" <el-table-column label="商品信息" align="center" prop="goodsList">
align="center"
prop="goodsList">
<template slot-scope="scope"> <template slot-scope="scope">
<section class="table-goodList"> <section class="table-goodList">
<div v-for="(item, index) in scope.row.goodsList" <div v-for="(item, index) in scope.row.goodsList" :key="index" class="goodList-div">
:key="index"
class="goodList-div">
<p>{{index+1}}{{item.prodTitleZh}}</p> <p>{{index+1}}{{item.prodTitleZh}}</p>
</div> </div>
</section> </section>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="实装箱数" <el-table-column label="实装箱数" align="center" prop="installNum" />
align="center" <el-table-column label="卸柜箱数" align="center" prop="unloadNum" />
prop="installNum" /> <el-table-column label="清关状态" align="center" prop="">
<el-table-column label="卸柜箱数"
align="center"
prop="unloadNum" />
<el-table-column label="清关状态"
align="center"
prop="">
<template slot-scope="scope">{{clearStatus(scope.row)}}</template> <template slot-scope="scope">{{clearStatus(scope.row)}}</template>
</el-table-column> </el-table-column>
<el-table-column label="体积" <el-table-column label="体积" align="center" prop="volume" />
align="center" <el-table-column label="重量" align="center" prop="weight" />
prop="volume" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="重量"
align="center"
prop="weight" />
<el-table-column label="操作"
align="center"
class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="danger" <el-button type="danger" size="small" @click="openError(scope.row)">异常</el-button>
size="small"
@click="openError(scope.row)">异常</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -110,21 +74,12 @@ ...@@ -110,21 +74,12 @@
</el-row> </el-row>
<el-row> <el-row>
<el-button type="success" <el-button type="success" @click="onSubmit">卸柜完成</el-button>
@click="onSubmit">卸柜完成</el-button>
</el-row> </el-row>
<!-- 对话框 --> <!-- 对话框 -->
<el-dialog custom-class="shipping-dialog" <el-dialog custom-class="shipping-dialog" title="异常" :visible.sync="dialogVisible" width="600px" :modal-append-to-body=false append-to-body>
title="异常" <unloadingError v-if="dialogVisible" @closeDialog="closeDialog" v-bind="$attrs" :currRow="currRow" />
:visible.sync="dialogVisible"
width="600px"
:modal-append-to-body=false
append-to-body>
<unloadingError v-if="dialogVisible"
@closeDialog="closeDialog"
v-bind="$attrs"
:currRow="currRow" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -188,6 +143,7 @@ export default { ...@@ -188,6 +143,7 @@ export default {
}); });
}, },
methods: { methods: {
getTotlContent,
/* 获取卸柜数据 */ /* 获取卸柜数据 */
getLoadGoodsList() { getLoadGoodsList() {
this.loading = true; this.loading = true;
...@@ -208,7 +164,7 @@ export default { ...@@ -208,7 +164,7 @@ export default {
return; return;
} }
batchUnload({ batchUnload({
orderNo: this.labelNo, orderNumCode: this.labelNo,
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
...@@ -247,9 +203,9 @@ export default { ...@@ -247,9 +203,9 @@ export default {
this.$emit("closeStart"); this.$emit("closeStart");
}, },
/* 关闭弹窗 */ /* 关闭弹窗 */
closeDialog() { closeDialog(type) {
this.dialogVisible = false; this.dialogVisible = false;
this.getLoadGoodsList(); if (type === "query") this.getLoadGoodsList();
}, },
/* 打开异常 */ /* 打开异常 */
openError(row) { openError(row) {
......
...@@ -62,7 +62,7 @@ export default { ...@@ -62,7 +62,7 @@ export default {
shipmentId: this.$attrs.shipmentObj.id, shipmentId: this.$attrs.shipmentObj.id,
}).then((res) => { }).then((res) => {
serviceMsg(res, this).then((res) => { serviceMsg(res, this).then((res) => {
this.$emit("closeDialog"); this.$emit("closeDialog", "query");
}); });
}); });
} }
......
...@@ -42,7 +42,8 @@ import arrivalWidget from "./nodePage/arrival.vue"; ...@@ -42,7 +42,8 @@ import arrivalWidget from "./nodePage/arrival.vue";
import cusClearanceWidget from "./nodePage/cusClearance.vue"; import cusClearanceWidget from "./nodePage/cusClearance.vue";
import unloadingWidget from "./nodePage/unloading/index.vue"; import unloadingWidget from "./nodePage/unloading/index.vue";
import settlementWidget from "./nodePage/settlement.vue"; import settlementWidget from "./nodePage/settlement.vue";
import ReviewWidget from "./nodePage/review.vue"; import reviewWidget from "./nodePage/review.vue";
import tallyWidget from "./nodePage/tally/index.vue";
/** /**
* 海运流程图 * 海运流程图
...@@ -67,7 +68,8 @@ export default { ...@@ -67,7 +68,8 @@ export default {
cusClearanceWidget, cusClearanceWidget,
unloadingWidget, unloadingWidget,
settlementWidget, settlementWidget,
ReviewWidget, reviewWidget,
tallyWidget,
}, },
props: { props: {
shipmentObj: Object, shipmentObj: Object,
...@@ -137,12 +139,16 @@ export default { ...@@ -137,12 +139,16 @@ export default {
case "agent": case "agent":
this.$set(this.dialogConfig, "title", "代理商设置"); this.$set(this.dialogConfig, "title", "代理商设置");
break; break;
// 理货
case "tally":
this.$set(this.dialogConfig, "fullscreen", true);
break;
// 预装 // 预装
case "preinstall": case "preinstall":
// 预装反审 // 预装反审
const preStatus = this.shipmentObj[node.keyName]; const preStatus = this.shipmentObj[node.keyName];
if ([24, 25].includes(preStatus)) { if ([25].includes(preStatus)) {
this.currentComponent = `ReviewWidget`; this.currentComponent = `reviewWidget`;
this.$set(this.dialogConfig, "width", "700px"); this.$set(this.dialogConfig, "width", "700px");
this.$set(this.dialogConfig, "title", "预装反审"); this.$set(this.dialogConfig, "title", "预装反审");
} else { } else {
...@@ -153,8 +159,8 @@ export default { ...@@ -153,8 +159,8 @@ export default {
case "unloading": case "unloading":
// 卸柜反审 // 卸柜反审
const unStatus = this.shipmentObj[node.keyName]; const unStatus = this.shipmentObj[node.keyName];
if ([184, 185].includes(unStatus)) { if ([186].includes(unStatus)) {
this.currentComponent = `ReviewWidget`; this.currentComponent = `reviewWidget`;
this.$set(this.dialogConfig, "width", "700px"); this.$set(this.dialogConfig, "width", "700px");
this.$set(this.dialogConfig, "title", "卸柜反审"); this.$set(this.dialogConfig, "title", "卸柜反审");
} }
...@@ -223,7 +229,8 @@ export default { ...@@ -223,7 +229,8 @@ export default {
.shipping-chart { .shipping-chart {
display: flex; display: flex;
padding: 10px 10px; padding: 10px 10px;
min-width: 1320px; min-width: 1300px;
width: max-content;
.chart-nodes { .chart-nodes {
display: flex; display: flex;
......
<template> <template>
<div class="app-seaStepDetail"> <div class="app-seaStepDetail">
<el-scrollbar :vertical="true" viewClass="shipping-step"> <el-scrollbar :vertical="true" viewClass="shipping-step">
<!-- <div class="shipping-step"> -->
<template v-for="(step, index) in flatSeaStep"> <template v-for="(step, index) in flatSeaStep">
<div :key="index" v-if="shipmentObj[step.voName] && columnsMapping[step.voName]" class="step-table"> <div :key="index" v-if="shipmentObj[step.voName] && columnsMapping[step.voName]" class="step-table">
<div class="step-title">{{step.title}}</div> <div class="step-title">{{step.title}}</div>
...@@ -11,7 +10,6 @@ ...@@ -11,7 +10,6 @@
</div> </div>
</div> </div>
</template> </template>
<!-- </div> -->
</el-scrollbar> </el-scrollbar>
</div> </div>
</template> </template>
...@@ -64,9 +62,13 @@ export default { ...@@ -64,9 +62,13 @@ export default {
case "billingMethod": case "billingMethod":
val = this.getConstant(type, String(val)); val = this.getConstant(type, String(val));
break; break;
case "user":
val = this.getUser(val);
break;
} }
} }
return val;
return val === 0 ? "" : val;
}, },
getSupplier(id) { getSupplier(id) {
return ( return (
...@@ -81,6 +83,11 @@ export default { ...@@ -81,6 +83,11 @@ export default {
this.$attrs.warehouseList.find((item) => item.id === id)?.titleZh ?? id this.$attrs.warehouseList.find((item) => item.id === id)?.titleZh ?? id
); );
}, },
getUser(id) {
return (
this.$attrs.allUsers.find((item) => item.id === id)?.nickname ?? id
);
},
getDict(code, id) { getDict(code, id) {
return ( return (
this.getDictDatas(code).find((item) => item.value === id)?.label ?? id this.getDictDatas(code).find((item) => item.value === id)?.label ?? id
......
...@@ -139,6 +139,7 @@ export default { ...@@ -139,6 +139,7 @@ export default {
} }
} }
.operate-button { .operate-button {
padding-top: 10px;
text-align: center; text-align: center;
} }
.two-element { .two-element {
......
...@@ -17,6 +17,9 @@ function getStatusName(statu) { ...@@ -17,6 +17,9 @@ function getStatusName(statu) {
statusName.set(24, "预装审核失败"); statusName.set(24, "预装审核失败");
statusName.set(25, "预装审核成功"); statusName.set(25, "预装审核成功");
statusName.set(2111, "未理货");
statusName.set(2112, "已理货");
statusName.set(31, "未派车"); statusName.set(31, "未派车");
statusName.set(32, "已派车"); statusName.set(32, "已派车");
...@@ -99,7 +102,7 @@ function seaBaseData() { ...@@ -99,7 +102,7 @@ function seaBaseData() {
], ],
[ [
{ {
title: "预装", title: "排单",
imgSrc: { imgSrc: {
start: require("@/assets/images/shipping/yz-start.png"), start: require("@/assets/images/shipping/yz-start.png"),
wait: require("@/assets/images/shipping/yz-wait.png"), wait: require("@/assets/images/shipping/yz-wait.png"),
...@@ -118,6 +121,39 @@ function seaBaseData() { ...@@ -118,6 +121,39 @@ function seaBaseData() {
end: [25], end: [25],
}, },
}, },
{
title: "AGENT",
imgSrc: {
start: require("@/assets/images/shipping/agent-start.png"),
wait: require("@/assets/images/shipping/agent-wait.png"),
end: require("@/assets/images/shipping/agent-end.png"),
},
type: "agent",
voName: "agentInfo",
currStatus: "start",
},
],
[
{
title: "理货",
imgSrc: {
start: require("@/assets/images/shipping/lh-start.png"),
wait: require("@/assets/images/shipping/lh-wait.png"),
end: require("@/assets/images/shipping/lh-end.png"),
},
type: "tally",
dataKey: "16", // 字典数据键值
/**
* 理货状态:2111、未理货;2112、已理货
*/
voName: "tallyInfo",
keyName: "tyStatus",
status: {
start: [2111],
wait: [],
end: [2112],
},
},
{ {
title: "拖车", title: "拖车",
imgSrc: { imgSrc: {
...@@ -138,17 +174,6 @@ function seaBaseData() { ...@@ -138,17 +174,6 @@ function seaBaseData() {
end: [32], end: [32],
}, },
}, },
{
title: "AGENT",
imgSrc: {
start: require("@/assets/images/shipping/agent-start.png"),
wait: require("@/assets/images/shipping/agent-wait.png"),
end: require("@/assets/images/shipping/agent-end.png"),
},
type: "agent",
voName: "agentInfo",
currStatus: "start",
},
], ],
[ [
{ {
...@@ -510,6 +535,17 @@ function getColmnMapping() { ...@@ -510,6 +535,17 @@ function getColmnMapping() {
key: "operator", key: "operator",
}, },
], ],
tallyInfo: [
{
title: "完成理货时间",
key: "tyTime",
type: "datetime",
},
{
title: "业务员",
key: "tyOperator",
},
],
agentInfo: [ agentInfo: [
{ {
title: "代理商", title: "代理商",
...@@ -618,6 +654,7 @@ function getColmnMapping() { ...@@ -618,6 +654,7 @@ function getColmnMapping() {
{ {
title: "通知方", title: "通知方",
key: "notifyingId", key: "notifyingId",
type: "user",
}, },
{ {
title: "提单备注", title: "提单备注",
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
:key="item.id" :label="item.nickname" :value="item.id" /> :key="item.id" :label="item.nickname" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注"/> <el-input v-model="form.remarks" placeholder="请输入备注"/>
</el-form-item> </el-form-item>
...@@ -61,7 +61,7 @@ export default { ...@@ -61,7 +61,7 @@ export default {
props:{ props:{
default: Object, default: Object,
}, },
data(){ data(){
return { return {
show: true, show: true,
...@@ -77,9 +77,9 @@ export default { ...@@ -77,9 +77,9 @@ export default {
type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }], type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }],
createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }], createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }], source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }],
customerService: [{ required: true, message: "跟进客服不能为空", trigger: "blur" }], customerService: [{ required: true, message: "客户经理不能为空", trigger: "blur" }],
status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }], status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }],
founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }], founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }],
}, },
serviceUserList: [], serviceUserList: [],
countryList: [], countryList: [],
...@@ -132,4 +132,4 @@ export default { ...@@ -132,4 +132,4 @@ export default {
.quick-create-customer .el-form-item{ .quick-create-customer .el-form-item{
margin-bottom: 22px; margin-bottom: 22px;
} }
</style> </style>
\ No newline at end of file
...@@ -102,8 +102,8 @@ ...@@ -102,8 +102,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="form.customerService" placeholder="请选择跟进客服"> <el-select v-model="form.customerService" placeholder="请选择客户经理">
<el-option v-for="item in serviceUserList" <el-option v-for="item in serviceUserList"
:key="item.id" :label="item.nickname" :value="item.id" /> :key="item.id" :label="item.nickname" :value="item.id" />
</el-select> </el-select>
...@@ -459,7 +459,7 @@ export default { ...@@ -459,7 +459,7 @@ export default {
type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }], type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }],
createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }], createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }], source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }],
customerService: [{ required: true, message: "跟进客服不能为空", trigger: "blur" }], customerService: [{ required: true, message: "客户经理不能为空", trigger: "blur" }],
status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }], status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }],
founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }], founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }],
}, },
......
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择跟进客服" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" /> <dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="跟进客服" align="center" prop="customerService" :formatter="customerServiceFn"> <el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column> </el-table-column>
<el-table-column label="客户状态" align="center" prop="status"> <el-table-column label="客户状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -211,8 +211,8 @@ ...@@ -211,8 +211,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="form.customerService" placeholder="请选择跟进客服"> <el-select v-model="form.customerService" placeholder="请选择客户经理">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" /> :key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select> </el-select>
...@@ -519,7 +519,7 @@ export default { ...@@ -519,7 +519,7 @@ export default {
type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }], type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }],
// createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }], // createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }], source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }],
customerService: [{ required: true, message: "跟进客服不能为空", trigger: "blur" }], customerService: [{ required: true, message: "客户经理不能为空", trigger: "blur" }],
status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }], status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }],
founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }], founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }],
}, },
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<el-descriptions-item label="客户类别">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_TYPE, customer.type) }}</el-descriptions-item> <el-descriptions-item label="客户类别">{{ getDictDataLabel(DICT_TYPE.CUSTOMER_TYPE, customer.type) }}</el-descriptions-item>
<!-- <el-descriptions-item label="联系方式">{{ customer }}</el-descriptions-item>--> <!-- <el-descriptions-item label="联系方式">{{ customer }}</el-descriptions-item>-->
<el-descriptions-item label="推介人">{{ promoter }}</el-descriptions-item> <el-descriptions-item label="推介人">{{ promoter }}</el-descriptions-item>
<el-descriptions-item label="跟进客服">{{ customerService }}</el-descriptions-item> <el-descriptions-item label="客户经理">{{ customerService }}</el-descriptions-item>
<el-descriptions-item label="公司名称">{{ customer.company }}</el-descriptions-item> <el-descriptions-item label="公司名称">{{ customer.company }}</el-descriptions-item>
<el-descriptions-item label="联系地址">{{ customer.address }}</el-descriptions-item> <el-descriptions-item label="联系地址">{{ customer.address }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ parseTime(customer.createTime) }}</el-descriptions-item> <el-descriptions-item label="创建时间">{{ parseTime(customer.createTime) }}</el-descriptions-item>
......
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择跟进客服" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" /> <dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="跟进客服" align="center" prop="customerService" :formatter="customerServiceFn"> <el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column> </el-table-column>
<el-table-column label="客户状态" align="center" prop="status"> <el-table-column label="客户状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -193,8 +193,8 @@ ...@@ -193,8 +193,8 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="form.customerService" placeholder="请选择跟进客服"> <el-select v-model="form.customerService" placeholder="请选择客户经理">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" /> :key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select> </el-select>
...@@ -291,8 +291,8 @@ ...@@ -291,8 +291,8 @@
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="openHandOver" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="openHandOver" width="500px" append-to-body>
<el-form ref="handOverForm" :model="handOverForm" :rules="rules" label-width="80px"> <el-form ref="handOverForm" :model="handOverForm" :rules="rules" label-width="80px">
<el-form-item label="跟进客服" prop="customerServiceId"> <el-form-item label="客户经理" prop="customerServiceId">
<el-select v-model="handOverForm.customerServiceId" placeholder="请选择跟进客服" clearable filterable> <el-select v-model="handOverForm.customerServiceId" placeholder="请选择客户经理" clearable filterable>
<el-option v-for="user in serviceStaffOptions" <el-option v-for="user in serviceStaffOptions"
:key="user.id" :value="user.id" :key="user.id" :value="user.id"
:label="user.nickname" /> :label="user.nickname" />
......
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择跟进客服" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" /> <dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="跟进客服" align="center" prop="customerService" :formatter="customerServiceFn"> <el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column> </el-table-column>
<el-table-column label="客户状态" align="center" prop="status"> <el-table-column label="客户状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -176,7 +176,7 @@ export default { ...@@ -176,7 +176,7 @@ export default {
type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }], type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }],
// createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }], // createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }], source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }],
customerService: [{ required: true, message: "跟进客服不能为空", trigger: "blur" }], customerService: [{ required: true, message: "客户经理不能为空", trigger: "blur" }],
status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }], status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }],
founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }], founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }],
}, },
...@@ -332,7 +332,7 @@ export default { ...@@ -332,7 +332,7 @@ export default {
}, },
transferFn(){ transferFn(){
if(!this.service){ if(!this.service){
return this.$message.warning('请选择跟进客服'); return this.$message.warning('请选择客户经理');
} }
handOverCustomer({ handOverCustomer({
customerServiceId:this.service, customerServiceId:this.service,
......
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="跟进客服" prop="customerService"> <el-form-item label="客户经理" prop="customerService">
<el-select v-model="queryParams.customerService" placeholder="请选择跟进客服" clearable size="small"> <el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="dict.label" :value="dict.value"/> :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select> </el-select>
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" /> <dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="跟进客服" align="center" prop="customerService" :formatter="customerServiceFn"> <el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column> </el-table-column>
<el-table-column label="客户状态" align="center" prop="status"> <el-table-column label="客户状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -181,7 +181,7 @@ export default { ...@@ -181,7 +181,7 @@ export default {
type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }], type: [{ required: true, message: "客户类别不能为空", trigger: "blur" }],
// createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }], // createTime: [{ required: true, message: "创建时间不能为空", trigger: "blur" }],
source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }], source: [{ required: true, message: "客户来源不能为空", trigger: "blur" }],
customerService: [{ required: true, message: "跟进客服不能为空", trigger: "blur" }], customerService: [{ required: true, message: "客户经理不能为空", trigger: "blur" }],
status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }], status: [{ required: true, message: "客户状态不能为空", trigger: "blur" }],
founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }], founder: [{ required: true, message: "创建人不能为空", trigger: "blur" }],
}, },
...@@ -365,7 +365,7 @@ export default { ...@@ -365,7 +365,7 @@ export default {
}, },
transferFn(val){ transferFn(val){
if(!this.service){ if(!this.service){
return this.$message.warning('请选择跟进客服'); return this.$message.warning('请选择客户经理');
} }
handOverCustomer({ handOverCustomer({
customerServiceId:this.service, customerServiceId:this.service,
......
<template> <template>
<div> <div>
<el-dialog :before-close="()=>{ <el-dialog :before-close="()=>{$emit('update:show',false)
clearFrom();$emit('update:show',false)
}" center width="80%" :visible.sync="show"> }" center width="80%" :visible.sync="show">
<div class="content"> <div class="content">
<el-form label-width="180px" label-position="left"> <el-form label-width="180px" label-position="left">
<el-form-item label="特殊要求"> <el-form-item label="特殊要求">
<dict-selector v-if="show" v-model="form.advanceType" multiple formType="checkbox" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" ></dict-selector> <dict-selector v-if="show" v-model="advanceType" multiple formType="checkbox" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" ></dict-selector>
</el-form-item> </el-form-item>
<el-form-item label="特殊要求备注"><el-input type="textarea" style="width: 300px;" v-model="form.todoDetail"></el-input></el-form-item> <el-form-item label="特殊要求备注"><el-input type="textarea" style="width: 300px;" v-model="todoDetail"></el-input></el-form-item>
<el-form-item label="内陆运费垫付预计金额" v-if="form.advanceType.indexOf('6') > -1"> <el-form-item v-for="(item,index) in this.getDictDatas(this.DICT_TYPE.ORDER_SPECIAL_NEEDS)" v-if="advanceType.indexOf(item.value) > -1" :key="item.value" :label="item.label + '预计金额'">
<el-input style="width: 300px;" v-model="form.transFee"> <el-input style="width: 300px;" v-model="specialNeedsList[index].transFee">
<div style="width: 100px;" slot="append" > <div style="width: 100px;" slot="append" >
<dict-selector v-model="form.transCurrency" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" ></dict-selector> <dict-selector v-model="specialNeedsList[index].transCurrency" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" ></dict-selector>
</div> </div>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="付款类型" v-if="form.advanceType.indexOf('6') > -1"> <el-form-item label="付款类型">
<div style="width: 300px;"> <dict-selector placeholder="请选择付款类型" v-model="payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-selector>
<dict-selector v-model="form.payType" :type="DICT_TYPE.PAYMENT_TYPE" ></dict-selector>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="submit">提交</el-button> <el-button @click="submit">提交</el-button>
<el-button @click="clearFrom();$emit('update:show',false)">取消</el-button> <el-button @click="$emit('update:show',false)">取消</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
...@@ -36,9 +33,6 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict'; ...@@ -36,9 +33,6 @@ import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import {specialNeedCreate} from "@/api/ecw/order"; import {specialNeedCreate} from "@/api/ecw/order";
export default { export default {
name: "specialNeeds", name: "specialNeeds",
created() {
this.clearFrom()
},
props:{ props:{
orderId:{ orderId:{
type:[String,Number], type:[String,Number],
...@@ -50,23 +44,21 @@ export default { ...@@ -50,23 +44,21 @@ export default {
getDictDatas, getDictDatas,
DICT_TYPE, DICT_TYPE,
form:{}, form:{},
advanceType:[],
specialNeedsList:[],
todoDetail:'',
payType:''
} }
}, },
methods:{ methods:{
clearFrom(){
this.form = {
advanceType:[],
advanceWho: undefined,
payType: undefined,
todoDetail: undefined,
transCurrency: undefined,
transFee: undefined
}
},
submit(){ submit(){
specialNeedCreate([{orderId:this.orderId, ...this.form}]).then(r=>{ this.specialNeedsList.forEach(i => {
i.todoDetail = this.todoDetail
i.payType = this.payType
})
let p = this.specialNeedsList.filter(i => this.advanceType.indexOf(i.advanceType) > -1)
specialNeedCreate(p).then(r=>{
if(r.code === 0){ if(r.code === 0){
this.clearFrom();
this.$emit('update:show',false) this.$emit('update:show',false)
this.$emit('determine') this.$emit('determine')
this.$message.success('提交成功'); this.$message.success('提交成功');
...@@ -75,10 +67,20 @@ export default { ...@@ -75,10 +67,20 @@ export default {
}, },
}, },
watch:{ watch:{
'form.advanceType'(val){ show(val){
this.form.transFee = undefined; if(val){
this.form.transCurrency = undefined; this.getDictDatas(this.DICT_TYPE.ORDER_SPECIAL_NEEDS).forEach(r => {
this.form.payType = undefined; this.specialNeedsList.push({
advanceType:r.value,
orderId:this.orderId,
transFee:'',//预计金额
transCurrency:'',//运输费币种
})
})
}else {
this.specialNeedsList = []
this.advanceType = []
}
} }
} }
} }
......
...@@ -69,7 +69,24 @@ ...@@ -69,7 +69,24 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-descriptions v-else :column="4" border> <el-descriptions v-else-if="type === 2" :column="4" border>
<el-descriptions-item label="订单号">{{FeeDetails.orderBackVO.orderNo}}</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="FeeDetails.orderBackVO.transportId"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="出货方式">
{{selectChannel(FeeDetails.channelId)}}
</el-descriptions-item>
<el-descriptions-item label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_ABNORMAL_STATE" :value="FeeDetails.orderBackVO.abnormalState"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="唛头">
{{FeeDetails.orderBackVO.marks}}
</el-descriptions-item>
<el-descriptions-item label="始发仓">{{FeeDetails.startWarehouse}}</el-descriptions-item>
<el-descriptions-item label="目的仓">{{FeeDetails.destWarehouse}}</el-descriptions-item>
</el-descriptions>
<el-descriptions v-else-if="type === 3" :column="4" border>
<el-descriptions-item label="订单号">{{FeeDetails.orderNo}}</el-descriptions-item> <el-descriptions-item label="订单号">{{FeeDetails.orderNo}}</el-descriptions-item>
<el-descriptions-item label="运输方式"> <el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="FeeDetails.transportId"></dict-tag> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="FeeDetails.transportId"></dict-tag>
...@@ -83,8 +100,8 @@ ...@@ -83,8 +100,8 @@
<el-descriptions-item label="唛头"> <el-descriptions-item label="唛头">
{{FeeDetails.marks}} {{FeeDetails.marks}}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="始发仓">{{FeeDetails.startWarehouse}}</el-descriptions-item> <el-descriptions-item label="始发仓">{{FeeDetails.logisticsInfoDto.startTitleZh}}</el-descriptions-item>
<el-descriptions-item label="目的仓">{{FeeDetails.destWarehouse}}</el-descriptions-item> <el-descriptions-item label="目的仓">{{FeeDetails.logisticsInfoDto.destTitleZh}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<div v-if="type === 1"> <div v-if="type === 1">
<p> <p>
...@@ -134,7 +151,10 @@ export default { ...@@ -134,7 +151,10 @@ export default {
name: "warehouseDetails", name: "warehouseDetails",
data(){ data(){
return{ return{
FeeDetails:{}, FeeDetails:{
orderBackVO:{},
logisticsInfoDto:{}
},
transfer:{}, transfer:{},
warehouseList:[], warehouseList:[],
channelList:[], channelList:[],
...@@ -189,6 +209,7 @@ export default { ...@@ -189,6 +209,7 @@ export default {
// 费用申请 // 费用申请
applicationGetOrderByProcessId({processId:this.processInstanceID}).then(r => { applicationGetOrderByProcessId({processId:this.processInstanceID}).then(r => {
this.FeeDetails = r.data this.FeeDetails = r.data
console.log(this.FeeDetails,'FeeDetails')
}) })
break; break;
case 3: case 3:
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<el-descriptions-item label="中文品名">{{ warehousing.prodTitleZh }}</el-descriptions-item> <el-descriptions-item label="中文品名">{{ warehousing.prodTitleZh }}</el-descriptions-item>
<el-descriptions-item label="英文品名">{{ warehousing.prodTitleEn }}</el-descriptions-item> <el-descriptions-item label="英文品名">{{ warehousing.prodTitleEn }}</el-descriptions-item>
<el-descriptions-item label="品牌"> <el-descriptions-item label="品牌">
<span v-if="warehousing.orderWarehouseInBackItemDoList && warehousing.orderWarehouseInBackItemDoList.length">{{ form.brand || '' }}</span> <span v-if="warehousing.orderWarehouseInBackItemDoList && warehousing.orderWarehouseInBackItemDoList.length">{{ form.brand ? brand : '' }}</span>
<el-select <el-select
v-else v-model="form.brand" v-else v-model="form.brand"
placeholder="可修改" placeholder="可修改"
...@@ -316,6 +316,15 @@ export default { ...@@ -316,6 +316,15 @@ export default {
}, },
isBeian(){ isBeian(){
return this.brandList.find(e => e.titleZh === this.form.brand) ? '有备案' : '无备案' return this.brandList.find(e => e.titleZh === this.form.brand) ? '有备案' : '无备案'
},
brand(){
if (!!this.form.brand){
const brand = this.brandList.find(e => e.id === this.form.brand)
if (brand) {
return brand.titleZh
}
}
return ''
} }
} }
} }
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<el-table-column <el-table-column
label="填单货物属性"> label="填单货物属性">
<template v-slot="{row}"> <template v-slot="{row}">
品牌:{{ row.brand ? '' : '' }}<br> 品牌:{{ row.brand !== '0' ? '' : '' }}<br>
箱数:{{ row.num }}<br> 箱数:{{ row.num }}<br>
体积:{{ row.volume }}<br> 体积:{{ row.volume }}<br>
重量:{{ row.weight }}Kg 重量:{{ row.weight }}Kg
...@@ -34,10 +34,10 @@ ...@@ -34,10 +34,10 @@
<el-table-column <el-table-column
label="入库货物属性"> label="入库货物属性">
<template v-slot="{row}"> <template v-slot="{row}">
品牌:{{ row.brand ? '' : '' }}<br> 品牌:{{ row.brand !== '0' ? '' : '' }}<br>
箱数:{{ row.num }}<br> 箱数:{{ row.warehouseInInfoVO.cartonsNum }}<br>
体积:{{ row.volume }}<br> 体积:{{ row.warehouseInInfoVO.volume }}<br>
重量:{{ row.weight }}Kg 重量:{{ row.warehouseInInfoVO.weight }}Kg
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -58,6 +58,7 @@ ...@@ -58,6 +58,7 @@
v-slot="{row}" v-slot="{row}"
label="状态"> label="状态">
<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}"/> <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}"/>
<span class="red" v-if="row.warehouseInInfoVO && row.warehouseInInfoVO.cartonsNumDiff">{{ row.warehouseInInfoVO.cartonsNumDiff }}箱</span>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
...@@ -104,7 +105,8 @@ ...@@ -104,7 +105,8 @@
</div> </div>
</el-form> </el-form>
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" :order-id="orderId"></warehouse-area-dialog> <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :city-id="cityId"></warehouse-area-dialog>
<edit-dialog :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="order.status === 5"></edit-dialog> <edit-dialog :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="order.status === 5"></edit-dialog>
...@@ -194,7 +196,7 @@ export default { ...@@ -194,7 +196,7 @@ export default {
if(this.$route.query.id){ if(this.$route.query.id){
this.orderId = parseInt(this.$route.query.id || undefined) this.orderId = parseInt(this.$route.query.id || undefined)
getOrder(this.orderId).then(r => this.order = r.data) getOrder(this.orderId).then(r => this.order = r.data)
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data) getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse())
getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data) getSpecialListByOrderId(this.orderId).then(r => this.specialList = r.data)
listByOrderId({ orderId: this.orderId }).then(r => this.form.orderLocationCreateReqVOList = r.data) listByOrderId({ orderId: this.orderId }).then(r => this.form.orderLocationCreateReqVOList = r.data)
} }
...@@ -242,7 +244,7 @@ export default { ...@@ -242,7 +244,7 @@ export default {
p.manualExceptionType = this.form.manualExceptionType p.manualExceptionType = this.form.manualExceptionType
} }
orderWarehouseInFinish(p).then(r => { orderWarehouseInFinish(p).then(r => {
if (r.data) { if (r.code === 0) {
this.escapeBol = false; this.escapeBol = false;
this.$confirm( this.$confirm(
'该订单已成功入仓,是否打印?', '该订单已成功入仓,是否打印?',
...@@ -290,7 +292,7 @@ export default { ...@@ -290,7 +292,7 @@ export default {
warehousingVisible(val) { warehousingVisible(val) {
if (!val){ if (!val){
getOrder(this.orderId).then(r => this.order = r.data) getOrder(this.orderId).then(r => this.order = r.data)
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data) getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse())
} }
}, },
orderSpecialNeeds(val){ orderSpecialNeeds(val){
...@@ -317,6 +319,9 @@ export default { ...@@ -317,6 +319,9 @@ export default {
} }
}) })
return result return result
},
cityId(){
return this.order?.departureVO?.departureId
} }
} }
} }
......
...@@ -178,12 +178,13 @@ ...@@ -178,12 +178,13 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="否预约入仓" prop="needBook">
<el-form-item label="是否预约入仓" prop="needBook">
<el-radio v-model.number="form.needBook" :label="1"></el-radio> <el-radio v-model.number="form.needBook" :label="1"></el-radio>
<el-radio v-model.number="form.needBook" :label="0"></el-radio> <el-radio v-model.number="form.needBook" :label="0"></el-radio>
</el-form-item> </el-form-item>
<el-form-item label="每日入仓上限" prop="dayLimit"> <el-form-item label="每日入仓上限" prop="dayLimit" v-if="form.needBook==1">
<el-input v-model.number="form.dayLimit" type="number"> <el-input v-model.number="form.dayLimit" type="number">
<template slot="append">立方米</template> <template slot="append">立方米</template>
</el-input> </el-input>
...@@ -264,10 +265,10 @@ export default { ...@@ -264,10 +265,10 @@ export default {
titleZh: [{ required: true, message: "中文标题不能为空", trigger: "blur" }], titleZh: [{ required: true, message: "中文标题不能为空", trigger: "blur" }],
titleEn: [{ required: true, message: "英文标题不能为空", trigger: "blur" }], titleEn: [{ required: true, message: "英文标题不能为空", trigger: "blur" }],
materialType: [{ required: true, message: "商品材质不能为空", trigger: "blur" }], materialType: [{ required: true, message: "商品材质不能为空", trigger: "blur" }],
packaging: [{ required: true, message: "包装要求不能为空", trigger: "blur" }], // packaging: [{ required: true, message: "包装要求不能为空", trigger: "blur" }],
containerLocation: [{ required: true, message: "默认货柜位置不能为空", trigger: "blur" }], // containerLocation: [{ required: true, message: "默认货柜位置不能为空", trigger: "blur" }],
square: [{ required: true, message: "默认方数不能为空", trigger: "blur" }], // square: [{ required: true, message: "订单方数上线不能为空", trigger: "blur" }],
needBook: [{ required: true, message: "预约入仓不能为空", trigger: "blur" }], // needBook: [{ required: true, message: "是否预约入仓不能为空", trigger: "blur" }],
}, },
CommonStatusEnum: CommonStatusEnum, CommonStatusEnum: CommonStatusEnum,
...@@ -391,6 +392,7 @@ export default { ...@@ -391,6 +392,7 @@ export default {
auditStatus: undefined, auditStatus: undefined,
status: undefined, status: undefined,
requirements: 0, requirements: 0,
needBook: 0
}; };
this.resetForm("form"); this.resetForm("form");
}, },
......
...@@ -144,13 +144,13 @@ ...@@ -144,13 +144,13 @@
</el-form-item> </el-form-item>
<el-form-item label="证件正面照" prop="img1"> <el-form-item label="证件正面照" prop="img1">
<div> <div>
<el-input style="margin-bottom: 20px" v-model="IdDetails.img1"></el-input> <el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img1"></el-input>
<ImageUpload :isShowTip="false" v-model="IdDetails.img1" :limit="1"></ImageUpload> <ImageUpload :isShowTip="false" v-model="IdDetails.img1" :limit="1"></ImageUpload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="证件背面照" prop="img2"> <el-form-item label="证件背面照" prop="img2">
<div> <div>
<el-input style="margin-bottom: 20px" v-model="IdDetails.img2"></el-input> <el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img2"></el-input>
<ImageUpload :isShowTip="false" :limit="1" v-model="IdDetails.img2"></ImageUpload> <ImageUpload :isShowTip="false" :limit="1" v-model="IdDetails.img2"></ImageUpload>
</div> </div>
</el-form-item> </el-form-item>
...@@ -189,12 +189,12 @@ ...@@ -189,12 +189,12 @@
</el-form-item> </el-form-item>
<el-form-item label="证件照" prop="img1"> <el-form-item label="证件照" prop="img1">
<div> <div>
<el-input style="margin-bottom: 20px" v-model="enterpriseFrom.img1"></el-input> <el-input readonly style="margin-bottom: 20px" v-model="enterpriseFrom.img1"></el-input>
<ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img1"></ImageUpload> <ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img1"></ImageUpload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="附件"> <el-form-item label="附件">
<el-input v-model="enterpriseFrom.img2"></el-input> <el-input readonly v-model="enterpriseFrom.img2"></el-input>
<ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img2"></ImageUpload> <ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img2"></ImageUpload>
</el-form-item> </el-form-item>
<el-form-item label="审核状态">{{getDictDatas(DICT_TYPE.AUDIT_STATUS)[enterpriseFrom.status].label}}</el-form-item> <el-form-item label="审核状态">{{getDictDatas(DICT_TYPE.AUDIT_STATUS)[enterpriseFrom.status].label}}</el-form-item>
...@@ -244,7 +244,7 @@ import FileUpload from "@/components/FileUpload" ...@@ -244,7 +244,7 @@ import FileUpload from "@/components/FileUpload"
import ImageUpload from "@/components/ImageUpload"; import ImageUpload from "@/components/ImageUpload";
import uploadImage from "@/components/UploadImage"; import uploadImage from "@/components/UploadImage";
import {CommonStatusEnum} from "@/utils/constants"; import {CommonStatusEnum} from "@/utils/constants";
import {changeUserStatus} from "@/api/system/user"; import {changeUserStatus, listServiceUser, listSimpleUsers} from "@/api/system/user";
let stateId = { let stateId = {
0:'审核中', 0:'审核中',
...@@ -492,11 +492,12 @@ export default { ...@@ -492,11 +492,12 @@ export default {
userCardAuthId:this.IdDetails.id, userCardAuthId:this.IdDetails.id,
auditRemark:this.IdDetails.auditRemark auditRemark:this.IdDetails.auditRemark
} }
if(val === 3){ if(val === 2){
p.auditRemark = undefined p.auditRemark = undefined
} }
memberUserAuditIdCard(p).then(r => { memberUserAuditIdCard(p).then(r => {
if(r.code === 0){ if(r.code === 0){
this.$message.success('修改成功');
this.getList() this.getList()
this.getIdentityDetails() this.getIdentityDetails()
} }
...@@ -509,7 +510,7 @@ export default { ...@@ -509,7 +510,7 @@ export default {
userCardAuthId:this.enterpriseFrom.id, userCardAuthId:this.enterpriseFrom.id,
auditRemark:this.enterpriseFrom.auditRemark auditRemark:this.enterpriseFrom.auditRemark
} }
if(val === 3){ if(val === 2){
p.auditRemark = undefined p.auditRemark = undefined
} }
memberUserAuditEnterprise(p).then(r => { memberUserAuditEnterprise(p).then(r => {
...@@ -520,67 +521,77 @@ export default { ...@@ -520,67 +521,77 @@ export default {
}) })
}, },
setMemberUserUpdateIdCard(){ setMemberUserUpdateIdCard(){
this.$refs.formId.validate(valid =>{ this.$refs.formId.validate(async valid =>{
if(valid){ let p ={
let p ={ cardNumber:this.IdDetails.cardNumber,
cardNumber:this.IdDetails.cardNumber, cardType:this.IdDetails.cardType,
cardType:this.IdDetails.cardType, img1:this.IdDetails.img1,
img1:this.IdDetails.img1, img2:this.IdDetails.img2,
img2:this.IdDetails.img2, name:this.IdDetails.name,
name:this.IdDetails.name, userCardAuthId:this.IdDetails.id,
userCardAuthId:this.IdDetails.id, };
auditPass:this.IdDetails.status === 3 ? true : false, if(valid && this.IdDetails.status === 3){
} ; let res = await new Promise((resolve)=>{
memberUserUpdateIdCard(p).then(r => { this.$confirm('是否要将当前状态修改为审核成功?', '状态修改', {
if(r.code === 0){ confirmButtonText: '确定',
if(this.IdDetails.status === 3){ cancelButtonText: '取消',
this.$confirm('是否要将当前状态修改为审核成功?', '状态修改', { type: 'warning'
confirmButtonText: '确定', }).then(r =>{
cancelButtonText: '取消', resolve(r)
type: 'warning' }).catch((r)=>{
}).then(() => { resolve(r)
this.idCardAuditFn(2); })
}).catch(() => { })
this.getIdentityDetails() p.auditPass = res === 'confirm' ? true : false;
}); } else if(valid) {
} p.auditPass = false;
this.getList() } else {
this.$message.success('修改成功'); return
}
})
} }
memberUserUpdateIdCard(p).then(r => {
if(r.code === 0){
this.$message.success('修改成功')
if(p.auditPass === true ){
this.getIdentityDetails()
}
this.getList()
}
})
}) })
}, },
setMemberUserUpdateEnterprise(){ setMemberUserUpdateEnterprise(){
this.$refs.formEnter.validate(valid =>{ this.$refs.formEnter.validate(async valid =>{
if(valid){ let p = {
let p = { cardNumber:this.enterpriseFrom.cardNumber,
cardNumber:this.enterpriseFrom.cardNumber, img1:this.enterpriseFrom.img1,
img1:this.enterpriseFrom.img1, img2:this.enterpriseFrom.img2,
img2:this.enterpriseFrom.img2, legalName:this.enterpriseFrom.legalName,
legalName:this.enterpriseFrom.legalName, name:this.enterpriseFrom.name,
name:this.enterpriseFrom.name, userEnterpriseAuthId:this.enterpriseFrom.id,
userEnterpriseAuthId:this.enterpriseFrom.id, }
auditPass:this.enterpriseFrom.status === 3 ? true : false, if(valid && this.enterpriseFrom.status === 3){
} let res = await new Promise((resolve)=>{
memberUserUpdateEnterprise(p).then(r =>{ this.$confirm('是否要将当前状态修改为审核成功?', '状态修改', {
if(r.code === 0){ confirmButtonText: '确定',
if(this.enterpriseFrom.status === 3){ cancelButtonText: '取消',
this.$confirm('是否要将当前状态修改为审核成功?', '状态修改', { type: 'warning'
confirmButtonText: '确定', }).then(r =>resolve(r)).catch(r => resolve(r))
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.certificateVerificationFn(2);
}).catch(() => {
this.getEnterpriseFn();
});
}
this.getList()
this.$message.success('修改成功');
}
}) })
p.auditPass = res === 'confirm' ? true : false;
}else if(valid){
p.auditPass = false;
}else {
return
} }
memberUserUpdateEnterprise(p).then(r =>{
if(r.code === 0){
if(p.auditPass === 3){
this.getEnterpriseFn();
}
this.getList()
this.$message.success('修改成功');
}
})
}) })
}, },
authentication(row){ authentication(row){
...@@ -608,10 +619,9 @@ export default { ...@@ -608,10 +619,9 @@ export default {
console.log(r); console.log(r);
if(r.code === 0){ if(r.code === 0){
this.$message.success('添加成功!'); this.$message.success('添加成功!');
this.enterpriseFrom.status = 3 this.enterpriseFrom.status = 2
this.enterpriseFrom.auditTime = new Date().getTime() this.enterpriseFrom.auditTime = new Date().getTime()
this.getEnterpriseFn();
} }
}) })
} }
......
...@@ -54,8 +54,8 @@ ...@@ -54,8 +54,8 @@
</el-table-column> </el-table-column>
<el-table-column label="标题中文" align="center" prop="titleZh" /> <el-table-column label="标题中文" align="center" prop="titleZh" />
<el-table-column label="标题英文" align="center" prop="titleEn" /> <el-table-column label="标题英文" align="center" prop="titleEn" />
<el-table-column label="内容中文" align="center" prop="contentZh" /> <!-- <el-table-column label="内容中文" align="center" prop="contentZh" />-->
<el-table-column label="内容英语" align="center" prop="contentEn" /> <!-- <el-table-column label="内容英语" align="center" prop="contentEn" />-->
<el-table-column label="状态" align="center" prop="status"> <el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.NEED_KNOW_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.NEED_KNOW_STATUS" :value="scope.row.status" />
......
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select @change="changList" v-model="form.postIds" multiple placeholder="请选择"> <el-select v-model="form.postIds" multiple placeholder="请选择">
<el-option <el-option
v-for="item in postOptions" v-for="item in postOptions"
:key="item.id" :key="item.id"
...@@ -369,6 +369,18 @@ export default { ...@@ -369,6 +369,18 @@ export default {
// 根据名称筛选部门树 // 根据名称筛选部门树
deptName(val) { deptName(val) {
this.$refs.tree.filter(val); this.$refs.tree.filter(val);
},
'form.postIds'(val){
let codes = this.postOptions.filter(i => {
if(val.indexOf(i.id) > -1) return i
}).map(v => v.code).join(',');
if(codes){
userList(codes).then(r => {
this.followUpList = r.data;
})
}else {
this.followUpList = [];
}
} }
}, },
created() { created() {
...@@ -652,20 +664,7 @@ export default { ...@@ -652,20 +664,7 @@ export default {
children: node.children children: node.children
} }
}, },
changList(e){ },
let codes = this.postOptions.filter(i => {
if( e.indexOf(i.id) > -1) return i.code
}).map(v => v.code).join(',');
if(codes){
userList(codes).then(r => {
console.log(r,'r');
this.followUpList = r.data;
})
}else {
this.followUpList = [];
}
},
}
}; };
</script> </script>
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