Commit ee723e17 authored by 我在何方's avatar 我在何方
parents 6d36f641 3507247e
...@@ -209,3 +209,13 @@ function jsonToFormData(params) { ...@@ -209,3 +209,13 @@ function jsonToFormData(params) {
} }
return formData; return formData;
} }
// 根据订单ID下载提货单
export function downloadByOrderId(orderId) {
return request({
url: "/shipment/make-bill-of-lading/downloadByOrderId",
method: "get",
params: {orderId},
responseType: 'arraybuffer'
});
}
\ No newline at end of file
...@@ -346,9 +346,9 @@ export function cancelOrderSpecial(orderApprovalId,data) { ...@@ -346,9 +346,9 @@ export function cancelOrderSpecial(orderApprovalId,data) {
} }
// 获得订单特价申请详情 // 获得订单特价申请详情
export function getOrderSpecial(offerProdId, type = 1) { export function getOrderSpecial(orderItemId, type = 1) {
return request({ return request({
url: '/ecw/order/special/info/' + offerProdId + '/' + type, url: '/ecw/order/special/info/' + orderItemId + '/' + type,
method: 'get' method: 'get'
}) })
} }
......
...@@ -2,7 +2,6 @@ import Vue from 'vue' ...@@ -2,7 +2,6 @@ import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
/* Layout */ /* Layout */
import Layout from '@/layout' import Layout from '@/layout'
import query from '@/views/ecw/customer/query'
Vue.use(Router) Vue.use(Router)
......
...@@ -112,6 +112,8 @@ export const DICT_TYPE = { ...@@ -112,6 +112,8 @@ export const DICT_TYPE = {
ECW_PICK_RECURRENT_NUCLEAR_TYPE: 'PICK_RECURRENT_NUCLEAR_TYPE', // 放货反复核类型 ECW_PICK_RECURRENT_NUCLEAR_TYPE: 'PICK_RECURRENT_NUCLEAR_TYPE', // 放货反复核类型
ECW_COST_FEE_TYPE: 'cost_fee_type', // 清单费用类型 ECW_COST_FEE_TYPE: 'cost_fee_type', // 清单费用类型
ECW_PRICE_AUDIT_STATUS: 'price_audit_status', // 路线价格审核状态 ECW_PRICE_AUDIT_STATUS: 'price_audit_status', // 路线价格审核状态
ECW_CANCEL_PICK_TYPE: 'cancel_pick_type', // 取消放货类型
//--------ecw--------- //--------ecw---------
CUSTOMER_STATUS: 'customer_status', CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source', CUSTOMER_SOURCE: 'customer_source',
......
<template> <template>
<div class="app-costForm shippingSea-dialog"> <div class="app-costForm shippingSea-dialog">
<el-form ref="costForm" :model="costObj" label-width="80px"> <el-form ref="costForm" :model="costObj" :rules="rules" label-width="80px">
<el-form-item label="操作步骤"> <el-form-item label="操作步骤" prop="opStepType">
<el-select v-model="costObj.opStepType" placeholder="请选择操作步骤"> <el-select v-model="costObj.opStepType" placeholder="请选择操作步骤">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PROCESS)" :key="type.value" :label="type.label" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PROCESS)" :key="type.value" :label="type.label" :value="type.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="费用类型"> <el-form-item label="费用类型" prop="costType">
<el-select v-model="costObj.costType" placeholder="请选择费用类型"> <el-select v-model="costObj.costType" placeholder="请选择费用类型">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.FEE_TYPE)" :key="type.value" :label="type.label" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE.FEE_TYPE)" :key="type.value" :label="type.label" :value="type.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="供应商"> <el-form-item label="供应商" prop="supplierId">
<el-select v-model="costObj.supplierId" placeholder="请选择供应商"> <el-select v-model="costObj.supplierId" placeholder="请选择供应商">
<el-option v-for="supplier in allSupplier" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option> <el-option v-for="supplier in allSupplier" :key="supplier.id" :label="supplier.companyZh" :value="supplier.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-row class="two-element-formItem"> <el-row class="two-element-formItem">
<el-form-item label="金额"> <el-form-item label="金额" prop="price">
<el-input-number v-model="costObj.price" controls-position="right" :min="1"></el-input-number> <el-input-number v-model="costObj.price" controls-position="right" :min="1"></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="" label-width="0px"> <el-form-item label="" label-width="0px" prop="priceUnit">
<el-select v-model="costObj.priceUnit" placeholder="请选择单位"> <el-select v-model="costObj.priceUnit" placeholder="请选择单位">
<el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PRICE_UNIT)" :key="type.value" :label="type.label" :value="type.value"></el-option> <el-option v-for="type in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_PRICE_UNIT)" :key="type.value" :label="type.label" :value="type.value"></el-option>
</el-select> </el-select>
...@@ -57,6 +57,14 @@ export default { ...@@ -57,6 +57,14 @@ export default {
costObj: {}, costObj: {},
// 供应商 // 供应商
allSupplier: [], allSupplier: [],
rules: {
opStepType: [{ required: true, message: "操作步骤不能为空", trigger: "change" }],
costType: [{ required: true, message: "费用类型不能为空", trigger: "change" }],
supplierId: [{ required: true, message: "供应商不能为空", trigger: "blur" }],
price: [{ required: true, message: "金额不能为空", trigger: "blur" }],
priceUnit: [{ required: true, message: "金额单位不能为空", trigger: "blur" }]
},
}; };
}, },
created() { created() {
......
...@@ -126,9 +126,6 @@ ...@@ -126,9 +126,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="运输方式" prop="transportType"> <el-form-item label="运输方式" prop="transportType">
<!-- <el-radio-group v-model="form.transportType">
<el-radio v-for="dict in transportTypes" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio>
</el-radio-group> -->
<dict-selector :type="DICT_TYPE.TRANSPORT_TYPE" v-model="form.transportType" form-type="radio" /> <dict-selector :type="DICT_TYPE.TRANSPORT_TYPE" v-model="form.transportType" form-type="radio" />
</el-form-item> </el-form-item>
<el-form-item label="出货渠道" prop="shippingChannelId" v-if="form.transportType == 3 || form.transportType == 4"> <el-form-item label="出货渠道" prop="shippingChannelId" v-if="form.transportType == 3 || form.transportType == 4">
...@@ -304,38 +301,62 @@ export default { ...@@ -304,38 +301,62 @@ export default {
this.getList(); this.getList();
}, },
watch:{ watch:{
'form.transportType'(transportId){ 'form.transportType'(){
if(!transportId){ this.getVolume()
this.$set(this.form, 'loadingNumber', 0) },
this.$set(this.form, 'readyWarehousingNumber', 0) 'form.startWarehouseId'(){
this.$set(this.form, 'warehousedNumber', 0) this.getVolume()
this.$set(this.form, 'warehousingNumber', 0) },
'form.destWarehouseId'(){
return this.getVolume()
},
'form.shippingChannelId'(){
console.log('123shippingChannelId')
this.getVolume()
},
'form.warehousedNumber'(){
//在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
},
'form.loadingNumber'(){
//在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
}
},
methods: {
getVolume(){
if(!this.form.transportType || !this.form.startWarehouseId || !this.form.destWarehouseId){
return this.setDefaultVolume()
}
// 空运需要选择渠道
if((this.form.transportType == 3 || this.form.transportType == 4) && !this.form.shippingChannelId){
return this.setDefaultVolume()
}
let data = {
transportId: this.form.transportType,
channelId: this.form.shippingChannelId,
departureId: this.form.startWarehouseId,
objectiveId: this.form.destWarehouseId
} }
// 获得已封柜方数 // 获得已封柜方数
getBoxedVolume({transportId}).then(res => { getBoxedVolume(data).then(res => {
this.$set(this.form, 'loadingNumber', res.data || 0) this.$set(this.form, 'loadingNumber', res.data || 0)
}) })
// 获得待入仓方数 // 获得待入仓方数
getToBeWareHousedVolume({transportId}).then(res => { getToBeWareHousedVolume(data).then(res => {
this.$set(this.form, 'readyWarehousingNumber', res.data || 0) this.$set(this.form, 'readyWarehousingNumber', res.data || 0)
}) })
// 获得已入仓方数 // 获得已入仓方数
getWareHousedVolume({transportId}).then(res => { getWareHousedVolume(data).then(res => {
this.$set(this.form, 'warehousedNumber', res.data || 0) this.$set(this.form, 'warehousedNumber', res.data || 0)
}) })
}, },
'form.warehousedNumber'(){ setDefaultVolume(){
//在仓 = 已入仓-已封柜 this.$set(this.form, 'loadingNumber', 0)
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber)) this.$set(this.form, 'readyWarehousingNumber', 0)
}, this.$set(this.form, 'warehousedNumber', 0)
'form.loadingNumber'(){ this.$set(this.form, 'warehousingNumber', 0)
//在仓 = 已入仓-已封柜
this.$set(this.form, 'warehousingNumber', Decimal(this.form.warehousedNumber).minus(this.form.loadingNumber))
}
}, },
methods: {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
......
...@@ -178,7 +178,8 @@ export default { ...@@ -178,7 +178,8 @@ export default {
const { bookSeaInfo } = this.shipmentObj; const { bookSeaInfo } = this.shipmentObj;
makeBillService({ makeBillService({
orderId: row.orderId, orderId: row.orderId,
zgDate: bookSeaInfo.sailTime, zgDate: '2022-09-27',
// zgDate: bookSeaInfo.sailTime,
}).then((res) => { }).then((res) => {
const { data } = res; const { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {}; const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
<el-form-item label="快递ID" prop="expressId"> <el-form-item label="快递ID" prop="expressId">
<el-input v-model="queryParams.expressId" placeholder="请输入快递ID" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.expressId" placeholder="请输入快递ID" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="到达时间"> <el-form-item label="预计时间">
<el-input v-model="queryParams.dateRangeEtaTime" placeholder="预计到达天数" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.etaTime" placeholder="预计到达天数" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="渠道代理" prop="channelAgent"> <el-form-item label="渠道代理" prop="channelAgent">
<el-input v-model="queryParams.channelAgent" placeholder="请输入渠道代理" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.channelAgent" placeholder="请输入渠道代理" clearable @keyup.enter.native="handleQuery"/>
...@@ -114,10 +114,6 @@ ...@@ -114,10 +114,6 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/> @pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
</el-dialog>
</div> </div>
</template> </template>
...@@ -149,19 +145,7 @@ export default { ...@@ -149,19 +145,7 @@ export default {
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10
nameZh: null,
nameEn: null,
internalNameZh: null,
internalNameEn: null,
typeNumber: null,
warehouseIds: null,
sort: null,
expressId: null,
channelAgent: null,
remarksZh: null,
remarksEn: null,
status: null,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
...@@ -180,8 +164,6 @@ export default { ...@@ -180,8 +164,6 @@ export default {
this.loading = true; this.loading = true;
// 处理查询参数 // 处理查询参数
let params = {...this.queryParams}; let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeEtaTime, 'etaTime');
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行查询 // 执行查询
getChannelPage(params).then(response => { getChannelPage(params).then(response => {
this.list = response.data.list; this.list = response.data.list;
...@@ -189,32 +171,6 @@ export default { ...@@ -189,32 +171,6 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
/** 表单重置 */
reset() {
this.form = {
channelId: undefined,
nameZh: undefined,
nameEn: undefined,
internalNameZh: undefined,
internalNameEn: undefined,
typeNumber: undefined,
code: undefined,
warehouseIds: undefined,
sort: undefined,
expressId: undefined,
etaTime: undefined,
channelAgent: undefined,
remarksZh: undefined,
remarksEn: undefined,
status: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNo = 1; this.queryParams.pageNo = 1;
...@@ -222,9 +178,10 @@ export default { ...@@ -222,9 +178,10 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.dateRangeEtaTime = []; this.queryParams = {
this.dateRangeCreateTime = []; pageNo: 1,
this.resetForm("queryForm"); pageSize: 10
}
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
...@@ -259,7 +216,7 @@ export default { ...@@ -259,7 +216,7 @@ export default {
this.exportLoading = true; this.exportLoading = true;
return exportChannelExcel(params); return exportChannelExcel(params);
}).then(response => { }).then(response => {
this.$download.excel(response, '${table.classComment}.xls'); this.$download.excel(response, '渠道列表.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
} }
......
...@@ -543,6 +543,7 @@ export default { ...@@ -543,6 +543,7 @@ export default {
}, },
/** 取消按钮 */ /** 取消按钮 */
cancel() { cancel() {
this.$tab.closePage()
this.open = false; this.open = false;
this.reset(); this.reset();
}, },
......
...@@ -11,36 +11,50 @@ ...@@ -11,36 +11,50 @@
<el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="客户等级" prop="level"> <el-form-item label="客户等级" prop="level">
<el-select v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small"> <el-select clearable v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
: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="联系方式">
<el-input placeholder="请输入联系方式" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item>
<el-form-item label="客户类别" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector>
</el-form-item>
<el-form-item label="客户经理" prop="customerService">
<el-select clearable v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item label="客户来源" prop="source"> <el-form-item label="客户来源" prop="source">
<el-select v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small"> <el-select clearable v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
: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="source">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select clearable v-model="form.country" placeholder="请选择国家">
<el-option v-for="dict in customerServiceList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small"> <el-select clearable v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
: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="department">
<el-input v-model="queryParams.department" placeholder="请输入部门" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item> </el-form-item>
<el-form-item label="信用等级" prop="department">
<el-select clearable v-model="form.level" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
...@@ -57,36 +71,44 @@ ...@@ -57,36 +71,44 @@
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">导出</el-button> v-hasPermi="['ecw:customer:export']">导出</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-col :span="1.5" >
<el-button :disabled="selectCustomerList.length === 0" type="warning" size="mini" @click="batchTransferShow = true;" :loading="exportLoading"
v-hasPermi="['ecw:customer:export']">批量移交</el-button>
</el-col>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list"> <el-table ref="multipleTable" v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column label="客户编号" align="center" prop="number" /> <el-table-column label="客户编号" align="center" prop="number" />
<el-table-column label="客户名称" align="center" prop="name" /> <el-table-column label="客户名称" align="center" prop="name" />
<el-table-column label="客户等级" align="center" prop="level"> <el-table-column label="客户等级" align="center" prop="vipLevelNameZh">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" /> <dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="国家" align="center" prop="country"> <el-table-column label="信用等级" prop="creditLevelNameZh"></el-table-column>
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template>
</el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</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">
<dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="部门" align="center" prop="department" /> <el-table-column label="主联系人" prop="defaultContactName"></el-table-column>
<el-table-column label="主联系方式" prop="defaultContactPhone"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column>
<el-table-column label="国家" align="center" prop="country" :formatter="countryFormatter"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
...@@ -120,6 +142,7 @@ ...@@ -120,6 +142,7 @@
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/> @pagination="getList"/>
<transfer-customer :show.sync="batchTransferShow" :customer-ids.sync="selectCustomerList"></transfer-customer>
</div> </div>
</template> </template>
...@@ -129,13 +152,18 @@ import { createCustomer, updateCustomer, deleteCustomer, getCustomer,handOverCus ...@@ -129,13 +152,18 @@ import { createCustomer, updateCustomer, deleteCustomer, getCustomer,handOverCus
import { getDictDatas, DICT_TYPE } from '@/utils/dict'; import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import upload from '@/components/ImageUpload' import upload from '@/components/ImageUpload'
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
import transferCustomer from "@/views/ecw/customer/transferCustomer";
export default { export default {
name: "customerToBeAssigned", name: "customerToBeAssigned",
components: { components: {
upload upload,
transferCustomer
}, },
data() { data() {
return { return {
batchTransferShow:false,
getDictDatas, getDictDatas,
DICT_TYPE, DICT_TYPE,
// 遮罩层 // 遮罩层
...@@ -186,9 +214,19 @@ export default { ...@@ -186,9 +214,19 @@ export default {
service:undefined,//客服 service:undefined,//客服
transferData:undefined,//移交数据 transferData:undefined,//移交数据
transferShow:false, transferShow:false,
creditList:[],
selectCustomerList:[],
countryList:[]
}; };
}, },
created() { created() {
getCountryListAll().then(r => {
console.log(r,'国家')
this.countryList = r.data
})
getCreditPage({page:1,rows:999}).then(r => {
this.creditList = r.data.list
})
this.getList(); this.getList();
listServiceUser().then(r=>{ listServiceUser().then(r=>{
console.log(r,'客服'); console.log(r,'客服');
...@@ -199,6 +237,13 @@ export default { ...@@ -199,6 +237,13 @@ export default {
// }) // })
}, },
methods: { methods: {
countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue)
return country?.nameZh
},
handleSelectionChange(val){
this.selectCustomerList = val.map(i => i.id);
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
...@@ -370,6 +415,14 @@ export default { ...@@ -370,6 +415,14 @@ export default {
return '' return ''
} }
} }
},
watch:{
selectCustomerList(val){
if(val.length === 0){
this.getList()
this.$refs.multipleTable.clearSelection();
}
},
} }
}; };
</script> </script>
...@@ -111,9 +111,9 @@ ...@@ -111,9 +111,9 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="运输方式" prop="transportType"> <el-form-item label="运输方式" prop="transportType">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportType" formatter="number"/> <dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="form.transportType" formatter="number" @change="showChannel"/>
</el-form-item> </el-form-item>
<el-form-item label="出货渠道" prop="shippingChannel"> <el-form-item label="出货渠道" prop="shippingChannel" v-if="this.showFlag">
<el-select v-model="form.shippingChannel" placeholder="请选择出货渠道"> <el-select v-model="form.shippingChannel" placeholder="请选择出货渠道">
<el-option v-for="item in channelList" :label="item.nameZh" :value="item.channelId" <el-option v-for="item in channelList" :label="item.nameZh" :value="item.channelId"
:key="item.channelId"></el-option> :key="item.channelId"></el-option>
...@@ -154,6 +154,7 @@ ...@@ -154,6 +154,7 @@
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: true,
showFlag:false,
// 导出遮罩层 // 导出遮罩层
exportLoading: false, exportLoading: false,
// 显示搜索条件 // 显示搜索条件
...@@ -206,8 +207,10 @@ ...@@ -206,8 +207,10 @@
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
deptId: [{required: true, message: "部门ID不能为空", trigger: "blur"}], deptId: [{required: true, message: "部门不能为空", trigger: "blur"}],
targetType: [{required: true, message: "目标类型不能为空", trigger: "change"}], targetType: [{required: true, message: "目标类型不能为空", trigger: "change"}],
targetPeriodName: [{required: true, message: "计算周期不能为空", trigger: "change"}],
transportType: [{required: true, message: "运输方式不能为空", trigger: "change"}],
cubeNum: [{required: true, message: "立方数不能为空", trigger: "blur"}], cubeNum: [{required: true, message: "立方数不能为空", trigger: "blur"}],
} }
}; };
...@@ -279,6 +282,14 @@ ...@@ -279,6 +282,14 @@
} }
}) })
}, },
showChannel(val){
console.log(val);
if(val===3 || val===4){
this.showFlag = true;
} else {
this.showFlag = false;
}
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
......
...@@ -11,36 +11,50 @@ ...@@ -11,36 +11,50 @@
<el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.name" placeholder="请输入客户名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="客户等级" prop="level"> <el-form-item label="客户等级" prop="level">
<el-select v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small"> <el-select clearable v-model="queryParams.level" placeholder="请选择客户等级" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_LEVEL)"
: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="联系方式">
<el-input placeholder="请输入联系方式" v-model="queryParams.defaultContactPhone"></el-input>
</el-form-item>
<el-form-item label="客户类别" prop="level">
<dict-selector :type="DICT_TYPE.CUSTOMER_TYPE" multiple v-model="queryParams.type"></dict-selector>
</el-form-item>
<el-form-item label="客户经理" prop="customerService">
<el-select clearable v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small">
<el-option v-for="dict in customerServiceList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/>
</el-select>
</el-form-item>
<el-form-item label="客户来源" prop="source"> <el-form-item label="客户来源" prop="source">
<el-select v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small"> <el-select clearable v-model="queryParams.source" placeholder="请选择客户来源" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_SOURCE)"
: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="source">
<el-select v-model="queryParams.customerService" placeholder="请选择客户经理" clearable size="small"> <el-select clearable v-model="form.country" placeholder="请选择国家">
<el-option v-for="dict in customerServiceList" <el-option v-for="dict in countryList"
:key="dict.id" :label="dict.nickname" :value="dict.id"/> :key="dict.id" :label="dict.nameZh" :value="parseInt(dict.id)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户状态" prop="status"> <el-form-item label="客户状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small"> <el-select clearable v-model="queryParams.status" placeholder="请选择客户状态" clearable size="small">
<el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)" <el-option v-for="dict in getDictDatas(DICT_TYPE.CUSTOMER_STATUS)"
: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="department">
<el-input v-model="queryParams.department" placeholder="请输入部门" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker clearable v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item> </el-form-item>
<el-form-item label="信用等级" prop="department">
<el-select clearable v-model="form.level" >
<el-option v-for="(item,index) in creditList" :label="item.nameZh" :key="index" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
...@@ -73,29 +87,27 @@ ...@@ -73,29 +87,27 @@
</el-table-column> </el-table-column>
<el-table-column label="客户编号" align="center" prop="number" /> <el-table-column label="客户编号" align="center" prop="number" />
<el-table-column label="客户名称" align="center" prop="name" /> <el-table-column label="客户名称" align="center" prop="name" />
<el-table-column label="客户等级" align="center" prop="level"> <el-table-column label="客户等级" align="center" prop="vipLevelNameZh">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" /> <dict-tag :type="DICT_TYPE.CUSTOMER_LEVEL" :value="scope.row.level" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="国家" align="center" prop="country"> <el-table-column label="信用等级" prop="creditLevelNameZh"></el-table-column>
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.COUNTRY" :value="scope.row.country" />
</template>
</el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</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">
<dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" /> <dict-tag :type="DICT_TYPE.CUSTOMER_STATUS" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="部门" align="center" prop="department" /> <el-table-column label="主联系人" prop="defaultContactName"></el-table-column>
<el-table-column label="主联系方式" prop="defaultContactPhone"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="客户经理" align="center" prop="customerService" :formatter="customerServiceFn">
</el-table-column>
<el-table-column label="国家" align="center" prop="country" :formatter="countryFormatter"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-folder-add" @click="distribution(scope.row)">移交</el-button> <el-button size="mini" type="text" icon="el-icon-folder-add" @click="distribution(scope.row)">移交</el-button>
...@@ -134,6 +146,8 @@ import { createCustomer, updateCustomer, deleteCustomer,handOverCustomer,getPubl ...@@ -134,6 +146,8 @@ import { createCustomer, updateCustomer, deleteCustomer,handOverCustomer,getPubl
import { getDictDatas, DICT_TYPE } from '@/utils/dict'; import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import upload from '@/components/ImageUpload' import upload from '@/components/ImageUpload'
import {listServiceUser} from "@/api/system/user"; import {listServiceUser} from "@/api/system/user";
import {getCountryListAll} from "@/api/ecw/country";
import {getCreditPage} from "@/api/customer/credit";
export default { export default {
name: "customerToBeAssigned", name: "customerToBeAssigned",
components: { components: {
...@@ -193,6 +207,8 @@ export default { ...@@ -193,6 +207,8 @@ export default {
transferShow:false, transferShow:false,
multipleSelection:[], multipleSelection:[],
isBatch:false, isBatch:false,
countryList:[],
creditList:[]
}; };
}, },
created() { created() {
...@@ -201,11 +217,21 @@ export default { ...@@ -201,11 +217,21 @@ export default {
console.log(r,'客服'); console.log(r,'客服');
this.customerServiceList = r.data; this.customerServiceList = r.data;
}) })
getCountryListAll().then(r => {
this.countryList = r.data
})
getCreditPage({page:1,rows:999}).then(r => {
this.creditList = r.data.list
})
// getNodeList().then(r => { // getNodeList().then(r => {
// this.nodeList = r.data // this.nodeList = r.data
// }) // })
}, },
methods: { methods: {
countryFormatter(row, column, cellValue) {
const country = this.countryList.find((e) => e.id === cellValue)
return country?.nameZh
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
......
...@@ -18,17 +18,17 @@ ...@@ -18,17 +18,17 @@
<el-row v-if="!form.charging"> <el-row v-if="!form.charging">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('运费')"> <el-form-item :label="$t('运费')">
{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('清关费')"> <el-form-item :label="$t('清关费')">
{{form.orgClearanceFreight}} {{ currentMap[form.orgClearanceFreightCurrency] }} / {{ unitMap[form.orgClearanceFreightVolume] }} {{form.orgClearanceFreight}} {{ currencyMap[form.clearanceFreightCurrency] }} / {{ unitMap[form.clearanceFreightVolume] }}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item :label="$t('全包价')" v-if="form.charging"> <el-form-item :label="$t('全包价')" v-if="form.charging">
{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item> </el-form-item>
<el-form-item :label="$t('佣金类型')" prop="commissionType"> <el-form-item :label="$t('佣金类型')" prop="commissionType">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" /> <dict-selector :type="DICT_TYPE.COMMISSION_TYPE" v-model="form.commissionType" form-type="radio" />
...@@ -37,36 +37,37 @@ ...@@ -37,36 +37,37 @@
<!-- 明佣或者明佣+暗佣才显示 --> <!-- 明佣或者明佣+暗佣才显示 -->
<el-form-item label="明佣佣金" v-if="form.commissionType == 1 || form.commissionType == 3"> <el-form-item label="明佣佣金" v-if="form.commissionType == 1 || form.commissionType == 3">
<el-input v-model.number="form.lightCommissionAmount" placeholder="" class="w-100"></el-input> <el-input v-model.number="form.lightCommissionAmount" placeholder="" class="w-100"></el-input>
{{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item> </el-form-item>
<!-- 明佣+暗佣才显示 --> <!-- 明佣+暗佣才显示 -->
<el-form-item label="暗佣佣金" v-if="form.commissionType == 3"> <el-form-item label="暗佣佣金" v-if="form.commissionType == 3">
<el-input v-model.number="form.shadeCommissionAmount" placeholder="" class="w-100"></el-input> <el-input v-model.number="form.shadeCommissionAmount" placeholder="" class="w-100"></el-input>
{{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item> </el-form-item>
<!-- 无佣金不显示 --> <!-- 无佣金不显示 -->
<div class="pl-50" v-if="form.commissionType != 0"> <div class="pl-50" v-if="form.commissionType != 0">
<div>{{$l(form, 'prodTitle')}}</div> <div v-if="form.commissionType != 2">{{$l(form, 'prodTitle')}}</div>
<!-- 明佣+暗佣显示 --> <!-- 明佣+暗佣显示 -->
<div v-if="form.commissionType == 3"> <div v-if="form.commissionType == 3">
成本价:{{form.orgSeaFreight}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{$t('成本价')}}{{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</div> </div>
<!-- 暗佣显示 --> <!-- 暗佣显示 -->
<div v-if="form.commissionType == 2"> <div v-if="form.commissionType == 2">
{{$l(form, 'prodTitle')}} {{$l(form, 'prodTitle')}}
<template v-if="darkCommission"> <template v-if="darkCommission">
{{$t('暗佣')}}{{darkCommission}} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }} {{$t('暗佣')}}{{darkCommission}} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</template> </template>
<el-link type="primary" @click.native="$router.push('/customer/customerCommission?customerId=' + customerId)">去设置</el-link> <el-link type="primary" @click.native="$router.push('/customer/customerCommission?customerId=' + customerId)">去设置</el-link>
</div> </div>
<div v-if="form.commissionType == 1 || form.commissionType == 3">销售价:{{form.orgSeaFreight + form.shadeCommissionAmount + form.lightCommissionAmount }} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}</div> <div v-if="form.commissionType == 1 || form.commissionType == 3">{{$t('销售价')}}{{form.orgSeaFreight + form.shadeCommissionAmount + form.lightCommissionAmount }} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}</div>
<div v-if="form.commissionType == 3">实际佣金返点:{{form.shadeCommissionAmount + form.lightCommissionAmount }} {{ currentMap[form.orgSeaFreightCurrency] }} / {{ unitMap[form.orgSeaFreightVolume] }}</div> <div v-if="form.commissionType == 3">{{$t('实际佣金返点')}}{{form.shadeCommissionAmount + form.lightCommissionAmount }} {{ currencyMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}</div>
</div> </div>
<div class="page-title">审批流程</div> <div class="page-title">{{$t('审批流程')}}</div>
<work-flow xmlkey="sheet_sale" v-model="ccIdArr" /> <work-flow xmlkey="sheet_sale" v-model="ccIdArr" />
</el-form> </el-form>
...@@ -139,7 +140,7 @@ export default { ...@@ -139,7 +140,7 @@ export default {
return s ? '' + s + '' : '' return s ? '' + s + '' : ''
} }
}, },
currentMap(){ currencyMap(){
let map = {} let map = {}
this.currencyList.forEach(item => { this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title') map[item.id] = this.$l(item, 'title')
......
...@@ -25,35 +25,40 @@ ...@@ -25,35 +25,40 @@
</div> </div>
<div> <div>
原运费:{{form.seaFreight + currentMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}} 原运费:{{form.seaFreight + currencyMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}}
</div> </div>
<div> <div>
新运费:{{newSeaFreight + currentMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}} 新运费:{{newSeaFreight + currencyMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}}
</div> </div>
<div> <div>
成本价:{{form.orgSeaFreight + currentMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}} 成本价:{{form.orgSeaFreight + currencyMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}}
</div> </div>
<div> <div>
明佣:{{ form.lightCommissionAmount + currentMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}} 明佣:{{ form.lightCommissionAmount + currencyMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}}
</div> </div>
<div> <div>
暗佣:{{form.shadeCommissionAmount + currentMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}} 暗佣:{{form.shadeCommissionAmount + currencyMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}}
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="申请原因" :span="3" v-if="type == 1"> <el-descriptions-item label="申请原因" :span="3" v-if="type == 1">
<div class="item"> <div class="item">
商品:{{$l(form, 'prodTitle')}} 商品:{{$l(form, 'prodTitle')}}
</div> </div>
<template v-if="form.charging">
原全包价:{{form.orgSeaFreight}} {{currencyMap[form.seaFreightCurrency]}} / {{unitMap[form.seaFreightVolume]}},
新全包价:{{form.seaFreight}} {{currencyMap[form.seaFreightCurrency]}} / {{unitMap[form.seaFreightVolume]}}
</template>
<template v-else>
<div> <div>
原运费:{{form.orgSeaFreight + currentMap[form.seaFreight] + '/' + unitMap[form.seaFreight]}} 原运费:{{form.orgSeaFreight}} {{ currencyMap[form.seaFreightCurrency]}} /{{unitMap[form.seaFreightVolume]}}
原清关费:{{form.orgClearanceFreight + currentMap[form.clearanceFreightCurrency] + '/' + unitMap[form.clearanceFreightVolume]}} 原清关费:{{form.orgClearanceFreight}} {{currencyMap[form.clearanceFreightCurrency]}} / {{unitMap[form.clearanceFreightVolume]}}
</div> </div>
<div> <div>
新运费:{{seaFreight + currentMap[form.orgSeaFreightCurrency] + '/' + unitMap[form.orgSeaFreightVolume]}} 新运费:{{form.seaFreight}} {{currencyMap[form.seaFreightCurrency]}} / {{unitMap[form.seaFreightVolume]}}
新清关费:{{form.clearanceFreight + currentMap[form.clearanceFreightCurrency] + '/' + unitMap[form.clearanceFreightVolume]}} 新清关费:{{form.clearanceFreight}} {{currencyMap[form.clearanceFreightCurrency]}} / {{unitMap[form.clearanceFreightVolume]}}
</div> </div>
</template>
</el-descriptions-item> </el-descriptions-item>
<!-- <!--
...@@ -71,10 +76,10 @@ ...@@ -71,10 +76,10 @@
<el-descriptions-item label="是否预付"> <el-descriptions-item label="是否预付">
<dict-tag :type="DICT_TYPE.ECW_PAY_ADVANCE" :value="form.isPayAdvance" /> <dict-tag :type="DICT_TYPE.ECW_PAY_ADVANCE" :value="form.isPayAdvance" />
</el-descriptions-item> --> </el-descriptions-item> -->
<!-- <el-descriptions-item label="旧运费">{{ form.orgSeaFreight }} {{ currentMap[form.orgSeaFreightCurrency] }}/{{ unitMap[form.orgSeaFreightVolume] }}</el-descriptions-item> <!-- <el-descriptions-item label="旧运费">{{ form.orgSeaFreight }} {{ currencyMap[form.orgSeaFreightCurrency] }}/{{ unitMap[form.orgSeaFreightVolume] }}</el-descriptions-item>
<el-descriptions-item label="旧清关费">{{ form.orgClearanceFreight }} {{ currentMap[form.orgClearanceFreightCurrency] }}/{{ unitMap[form.orgClearanceFreightVolume] }}</el-descriptions-item> <el-descriptions-item label="旧清关费">{{ form.orgClearanceFreight }} {{ currencyMap[form.orgClearanceFreightCurrency] }}/{{ unitMap[form.orgClearanceFreightVolume] }}</el-descriptions-item>
<el-descriptions-item label="新运费">{{ form.seaFreight }} {{ currentMap[form.seaFreightCurrency] }}/{{ unitMap[form.seaFreightVolume] }}</el-descriptions-item> <el-descriptions-item label="新运费">{{ form.seaFreight }} {{ currencyMap[form.seaFreightCurrency] }}/{{ unitMap[form.seaFreightVolume] }}</el-descriptions-item>
<el-descriptions-item label="新清关费">{{ form.clearanceFreight }} {{ currentMap[form.clearanceFreightCurrency] }}/{{ unitMap[form.clearanceFreightVolume] }}</el-descriptions-item> --> <el-descriptions-item label="新清关费">{{ form.clearanceFreight }} {{ currencyMap[form.clearanceFreightCurrency] }}/{{ unitMap[form.clearanceFreightVolume] }}</el-descriptions-item> -->
</el-descriptions> </el-descriptions>
</template> </template>
...@@ -112,7 +117,7 @@ export default { ...@@ -112,7 +117,7 @@ export default {
} }
}, },
computed: { computed: {
currentMap(){ currencyMap(){
let map = {} let map = {}
this.currencyList.forEach(item => { this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title') map[item.id] = this.$l(item, 'title')
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('新全包价')" style="width: 400px" prop="clearanceFreight" v-if="form.charging"> <el-form-item :label="$t('新全包价')" style="width: 400px" prop="clearanceFreight" v-if="form.charging">
<el-input v-model="form.seaFreight" type="number" class="w-100" /> <el-input v-model="form.seaFreight" type="number" class="w-100" />
{{ currentMap[form.seaFreightCurrency] }} / {{ unitMap[form.sorgSeaFreightVolume] }} {{ currentMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -120,12 +120,20 @@ ...@@ -120,12 +120,20 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('运费')" width="200px"> <el-table-column :label="$t('运费')" width="200px">
<template slot-scope="scope"> <template slot-scope="{row}">
<div v-if="scope.row.seaFreight"> <template v-if="row.charging ==1">
<div>{{$t('运费')+":"+scope.row.seaFreight}}{{currentcyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}</div> <template v-if="!row.seaFreight">未报价</template>
<div>{{$t('清关费')+':'+scope.row.clearanceFreight}}{{currentcyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}</div> <template>{{$t('全包价')}} {{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}</template>
</template>
<template v-else-if="!row.seaFreight && !row.clearanceFreight">未报价</template>
<template v-else>
<div>
{{$t('运费')}}{{row.oneSeaFreight}} {{currentcyMap[row.seaFreightCurrency]}} / {{unitMap[row.seaFreightVolume]}}
</div> </div>
<div v-else>未报价</div> <div>
{{$t('清关费')}}{{row.oneClearanceFreight}} {{currentcyMap[row.clearanceFreightCurrency]}} / {{unitMap[row.clearanceFreightVolume]}}
</div>
</template>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -532,6 +532,17 @@ export default { ...@@ -532,6 +532,17 @@ export default {
}, },
// 表单校验 // 表单校验
rules: { rules: {
marks: [
{
validator: (rule, value, callback) => {
if(value && !/[a-zA-Z]/.test(value.charAt(0))){
return callback(new Error(this.$t('唛头必须以字母开头')))
}
callback()
},
trigger: 'blur'
}
],
lineId: [{ required: true, message: "请选择线路"}], lineId: [{ required: true, message: "请选择线路"}],
consignorId: [{ required: true, message: "发货人不能为空",}], consignorId: [{ required: true, message: "发货人不能为空",}],
consigneeId: [{ required: true, message: "收货人不能为空"}], consigneeId: [{ required: true, message: "收货人不能为空"}],
......
...@@ -47,26 +47,44 @@ ...@@ -47,26 +47,44 @@
<el-table-column <el-table-column
:label="$t('原价')"> :label="$t('原价')">
<template v-slot="{row}"> <template v-slot="{row}">
<template v-if="!row.originalSeaFreight">未报价</template>
<template v-else-if="row.charging ==1">
{{$t('全包价')}}{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
</template>
<template v-else>
{{$t('运费')}}{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} {{$t('运费')}}{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
{{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.originalClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="成本价"> label="成本价">
<template v-slot="{row}"> <template v-slot="{row}">
{{$t('运费')}}{{ row.seaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} <template v-if="!row.costSeaFreight">未报价</template>
<template v-else-if="row.charging">
{{$t('全包价')}}{{ row.costSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
</template>
<template v-else>
{{$t('运费')}}{{ row.costSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
{{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template> </template>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:label="$t('销售价')"> :label="$t('销售价')">
<template v-slot="{row}"> <template v-slot="{row}">
{{$t('运费')}}{{ row.saleSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} <template v-if="!row.oneSeaFreight">未报价</template>
<template v-else-if="row.charging">
{{$t('全包价')}}{{ row.oneSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
</template>
<template v-else>
{{$t('运费')}}{{ row.oneSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
{{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template> </template>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:label="$t('操作')"> :label="$t('操作')">
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<el-table-column :label="$t('操作')" width="300px"> <el-table-column :label="$t('操作')" width="300px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.status == 1" type="primary" size="mini" @click="editIndex=scope.$index">{{$t('修改')}}</el-button> <el-button v-if="scope.row.status == 1" type="primary" size="mini" @click="editIndex=scope.$index">{{$t('修改')}}</el-button>
<el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancel(scope.row.id)">{{$t('取消')}}</el-button> <el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancelCargoPickId = scope.row.id">{{$t('取消')}}</el-button>
<el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{$t('放货复核')}}</el-button> <el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">{{$t('放货复核')}}</el-button>
<el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button> <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">{{$t('反复核')}}</el-button>
<el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button> <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">{{$t('调货')}}</el-button>
...@@ -111,6 +111,11 @@ ...@@ -111,6 +111,11 @@
:cargo-control-pick-id="cargoControlPickId" :cargo-control-pick-id="cargoControlPickId"
@close="cargoControlPickId=null" @close="cargoControlPickId=null"
@success="onTransferCargoSuccess" /> @success="onTransferCargoSuccess" />
<cancel-cargo v-if="!!cancelCargoPickId"
:order="detail"
:cargo-control-pick-id="cancelCargoPickId"
@close="cancelCargoPickId=null"
@success="onCancelCargoSuccess" />
</div> </div>
</template> </template>
<script> <script>
...@@ -119,10 +124,11 @@ import {createPick, getPickRleaseInfo, review, cancel, cancelApproval} from '@/a ...@@ -119,10 +124,11 @@ import {createPick, getPickRleaseInfo, review, cancel, cancelApproval} from '@/a
import {parseTime} from '@/utils/ruoyi' import {parseTime} from '@/utils/ruoyi'
import Fallback from './components/Fallback' import Fallback from './components/Fallback'
import TransferCargo from '@/views/ecw/order/components/TransferCargo' import TransferCargo from '@/views/ecw/order/components/TransferCargo'
import CancelCargo from './components/CancelCargo.vue'
export default { export default {
filters: {parseTime}, filters: {parseTime},
components: {edit, Fallback, TransferCargo}, components: {edit, Fallback, TransferCargo, CancelCargo, CancelCargo},
data(){ data(){
return { return {
detail: null, detail: null,
...@@ -131,6 +137,7 @@ export default { ...@@ -131,6 +137,7 @@ export default {
editIndex: null, // 修改索引 editIndex: null, // 修改索引
fallbackIndex: null, // 反复核索引 fallbackIndex: null, // 反复核索引
cargoControlPickId: null, // 调货ID cargoControlPickId: null, // 调货ID
cancelCargoPickId: null, // 取消返货ID
} }
}, },
created(){ created(){
...@@ -205,6 +212,10 @@ export default { ...@@ -205,6 +212,10 @@ export default {
onTransferCargoSuccess(){ onTransferCargoSuccess(){
this.cargoControlPickId = null this.cargoControlPickId = null
this.loadData() this.loadData()
},
onCancelCargoSuccess(){
this.cancelCargoPickId = null
this.loadData()
} }
} }
} }
......
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('收货人')"> <el-form-item :label="$t('收货人')">
{{info.consigneeName}} {{detail.consigneeName}}
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('收货人电话')"> <el-form-item :label="$t('收货人电话')">
+{{info.consigneeCountryCode}} {{info.consigneePhone}} +{{detail.consigneeCountryCode}} {{detail.consigneePhone}}
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -21,16 +21,16 @@ ...@@ -21,16 +21,16 @@
{{order.sumNum}} {{order.sumNum}}
</el-form-item> </el-form-item>
<el-form-item :label="$t('取消放货原因')"> <el-form-item :label="$t('取消放货原因')" prop="cancelPickType">
<dict-selector :type="DICT_TYPE.ECW_CANCEL_PICK_TYPE" v-model="formData.cancelPickType" form-type="radio" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('上传凭证')"> <el-form-item :label="$t('上传凭证')">
<image-upload v-model="formData.voucher" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('控货手机号')"> <el-form-item :label="$t('控货手机号')">
+{{info.countryCode}} {{info.phone}} +{{detail.countryCode}} {{detail.phone}}
</el-form-item> </el-form-item>
<el-form-item :label="$t('手机验证码')"> <el-form-item :label="$t('手机验证码')">
<el-input v-model="formData.code" placeholder="" style="width: 100px; margin-right:10px"></el-input> <el-input v-model="formData.code" placeholder="" style="width: 100px; margin-right:10px"></el-input>
...@@ -44,11 +44,6 @@ ...@@ -44,11 +44,6 @@
<el-button type="primary" @click="submit">{{$t('提交申请')}}</el-button> <el-button type="primary" @click="submit">{{$t('提交申请')}}</el-button>
<el-button @click="closeDialog">{{$t('关闭')}}</el-button> <el-button @click="closeDialog">{{$t('关闭')}}</el-button>
</el-form-item> </el-form-item>
<el-form-item label="" style="margin-top:20px">
<el-button type="success" @click="submit">{{$t('提交申请')}}</el-button>
<el-button type="default" @click="closeDialog">{{$t('关闭')}}</el-button>
</el-form-item>
</el-form> </el-form>
</el-dialog> </el-dialog>
</template> </template>
...@@ -57,33 +52,29 @@ import {createPick, getRleaseInfo, seasoningCondimentsSelect, updateApply} from ...@@ -57,33 +52,29 @@ import {createPick, getRleaseInfo, seasoningCondimentsSelect, updateApply} from
import AreaCodeSelector from '@/components/AreaCodeSelector' import AreaCodeSelector from '@/components/AreaCodeSelector'
import SendSmsCode from '@/views/ecw/order/components/SendSmsCode' import SendSmsCode from '@/views/ecw/order/components/SendSmsCode'
import WorkFlow from '@/components/WorkFlow' import WorkFlow from '@/components/WorkFlow'
import ImageUpload from '@/components/ImageUpload'
export default { export default {
props:{ props:{
orderId: [String, Number], order: Object,
cargoControlPickId: Number cargoControlPickId: Number
}, },
components: {AreaCodeSelector, SendSmsCode, WorkFlow}, components: {AreaCodeSelector, SendSmsCode, WorkFlow, ImageUpload},
data(){ data(){
return { return {
show: false, show: false,
detail: null, detail: null,
ccIdArr: [], ccIdArr: [],
formData:{ formData:{
applyType: 10, // 调货审核 applyType: 10, // 取消审核
ccIds: '' ccIds: ''
}, },
rules:{ rules:{
cancelPickType: {required: true, message: this.$t('请选择取消放货类型')},
code: {required: true, message: this.$t('请填写验证码')} code: {required: true, message: this.$t('请填写验证码')}
}, },
orders: [],
selectedOrders:[]
} }
}, },
watch:{ watch:{
'formData.orderIds'(val){
this.selectedOrders = this.orders.filter(item => val.indexOf(item.orderId) > -1)
},
ccIdArr(val){ ccIdArr(val){
this.formData.ccIds = val.join(',') this.formData.ccIds = val.join(',')
} }
...@@ -94,10 +85,7 @@ export default { ...@@ -94,10 +85,7 @@ export default {
}, },
methods:{ methods:{
loadData(){ loadData(){
getRleaseInfo(this.orderId).then(res => this.detail = res.data) getRleaseInfo(this.order.orderId).then(res => this.detail = res.data)
seasoningCondimentsSelect({orderId: this.orderId}).then(res => {
this.orders = res.data
})
}, },
closeDialog(){ closeDialog(){
this.show = false this.show = false
...@@ -112,15 +100,13 @@ export default { ...@@ -112,15 +100,13 @@ export default {
updateApply(Object.assign({ updateApply(Object.assign({
cargoControlPickId: this.cargoControlPickId, cargoControlPickId: this.cargoControlPickId,
orderBackPageVOList: this.selectedOrders, orderBackPageVOList: this.selectedOrders,
orderId: this.orderId orderId: this.order.orderId
}, this.formData)).then(res => { }, this.formData)).then(res => {
this.$message.success(this.$t('操作成功')) this.$message.success(this.$t('操作成功'))
this.show = false this.show = false
this.$emit('success') this.$emit('success')
}) })
}) })
} }
} }
} }
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<!-- 取消放货 --> <!-- 取消放货 -->
<el-descriptions-item label="申请原因" v-if="applyType == 10"> <el-descriptions-item label="申请原因" v-if="applyType == 10">
{{detail.reason}} <dict-tag :type="DICT_TYPE.ECW_CANCEL_PICK_TYPE" :value="detail.cancelPickType" />
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
......
...@@ -16,13 +16,15 @@ import {getLadingBill} from '@/api/ecw/order' ...@@ -16,13 +16,15 @@ import {getLadingBill} from '@/api/ecw/order'
import lodop from '@/utils/lodop' import lodop from '@/utils/lodop'
import PdfViewer from '@/components/PdfViewer' import PdfViewer from '@/components/PdfViewer'
import FileSaver from 'file-saver' import FileSaver from 'file-saver'
import {downloadByOrderId} from '@/api/ecw/box'
export default { export default {
components: {PdfViewer}, components: {PdfViewer},
filters: {parseTime}, filters: {parseTime},
props:{ props:{
transportType: Number, transportType: Number,
tidanNO: [String, Number] // tidanNO: [String, Number],
orderId: String
}, },
data(){ data(){
return { return {
...@@ -56,10 +58,7 @@ export default { ...@@ -56,10 +58,7 @@ export default {
methods:{ methods:{
loadData(){ loadData(){
this.loading = true this.loading = true
getLadingBill({ downloadByOrderId(this.orderId)
billLadingNo: this.tidanNo,
type: this.type
})
.then(arrayBuffer => { .then(arrayBuffer => {
this.pdfData = arrayBuffer this.pdfData = arrayBuffer
}) })
......
<template>
<el-dialog visible :close-on-click-modal="false" :before-close="closeDialog" :title="$t('优惠申请')">
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-form-item :label="$t('商品类型')">
<span>{{ $l(productType, 'title') }}</span>
</el-form-item>
<el-form-item :label="$t('商品名称')">
<span>{{ form.prodTitleZh }}</span>
</el-form-item>
<el-form-item :label="$t('英文名称')">
<span>{{ form.prodTitleEn }}</span>
</el-form-item>
<el-form-item :label="$t('线路')">
<dict-tag :type="DICT_TYPE.TRANSPORT_TYPE" :value="form.transportId" />
{{ channel ? $l(channel, 'title') : '' }}
{{$t("从【{departureName}】发往【{objectiveName}", {departureName: form.departureName, objectiveName: form.objectiveName})}}
</el-form-item>
<el-form-item :label="$t('是否预付')">
<dict-tag :type="DICT_TYPE.ECW_YESNO" :value="form.isPayAdvance" />
</el-form-item>
<el-row v-if="!form.charging">
<el-col :span="12">
<el-form-item :label="$t('旧运费')">
{{form.orgSeaFreight}} {{ currentMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('旧清关费')">
{{form.orgClearanceFreight}} {{ currentMap[form.clearanceFreightCurrency] }} / {{ unitMap[form.clearanceFreightVolume] }}
</el-form-item>
</el-col>
</el-row>
<el-row v-if="!form.charging">
<el-col :span="12">
<el-form-item :label="$t('新运费')" style="width: 400px" prop="seaFreight">
<el-input v-model="form.seaFreight" type="number" class="w-100" />
{{ currentMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('新清关费')" style="width: 400px" prop="clearanceFreight">
<el-input v-model="form.clearanceFreight" type="number" class="w-100" />
{{ currentMap[form.clearanceFreightCurrency] }} / {{ unitMap[form.clearanceFreightVolume] }}
</el-form-item>
</el-col>
</el-row>
<el-form-item :label="$t('旧全包价')" v-if="form.charging">
{{form.orgSeaFreight}} {{ currentMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item>
<el-form-item :label="$t('新全包价')" style="width: 400px" prop="clearanceFreight" v-if="form.charging">
<el-input v-model="form.seaFreight" type="number" class="w-100" />
{{ currentMap[form.seaFreightCurrency] }} / {{ unitMap[form.seaFreightVolume] }}
</el-form-item>
</el-form>
<div class="page-title">审批流程</div>
<work-flow xmlkey="sheet_sale" v-model="ccIdArr" />
<div v-if="!form.applyStatus">
<el-button type="primary" @click="handleSubmit">提交</el-button>
</div>
<div v-else>
<el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
<dict-tag :type="DICT_TYPE.APPLY_STATUS" :value="form.applyStatus" />
</el-button>
</div>
</el-dialog>
</template>
<script>
import {createOrderSpecial, getOrderSpecial} from "@/api/ecw/order"
import {getUnitList} from "@/api/ecw/unit"
import {getChannel, getChannelList} from "@/api/ecw/channel"
import { getCurrencyList } from '@/api/ecw/currency'
import { getProductTypeList, getProductType } from '@/api/ecw/productType'
import WorkFlow from '@/components/WorkFlow'
export default {
name: "specialDiscount",
props: {
orderItemId: Number,
},
components: {
WorkFlow
},
created() {
// 查看详情,列表进来的
if(this.orderItemId){
this.getOrderSpecial()
}
getUnitList().then(res => this.unitList = res.data)
// getChannelList().then(res => this.channelList = res.data)
getCurrencyList().then(res => this.currencyList = res.data)
// getProductTypeList().then(res => this.productTypeList = res.data)
},
data() {
return {
unitList:[],
// channelList:[],
currencyList:[],
// productTypeList:[],
ccIdArr: [],
form: {
type: 1
},
rules:{
seaFreight : {required: true, message: '运费不能为空'},
clearanceFreight: {required: true, message: '清关费不能为空'}
},
productType: null,
channel: null
}
},
watch:{
ccIdArr(){
this.$set(this.form, 'ccIds', this.ccIdArr.join(','))
}
},
methods: {
handleSubmit(){
this.$refs.form.validate().then(res => {
createOrderSpecial(Object.assign({}, this.form, {type: 1})).then(res => {
this.$message.success(this.$t('提交成功'))
this.$emit('success')
})
})
},
getOrderSpecial(){
getOrderSpecial(this.orderItemId).then(r => {
this.form = r.data
getProductType(this.form.productType).then(res => {
this.productType = res.data
})
if(this.form.channelId){
getChannel(this.form.channelId).then(res => {
this.channel = res.data
})
}
})
},
/* getProductTypeNameById(id){
return this.$l(this.productTypeList.find(e => e.id === id), 'title')
}, */
closeDialog(){
this.$emit('close')
}
},
computed: {
// 根据渠道id显示渠道名
getChannelNameById(){
return channelId => {
const s = this.channelList.find(item => item.channelId == channelId) ?. nameZh
return s ? '' + s + '' : ''
}
},
currentMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
}
}
}
</script>
...@@ -45,12 +45,12 @@ ...@@ -45,12 +45,12 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('体积') + '(m³)'"> <el-table-column :label="$t('体积') + '(m³)'">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.sumVolume}} {{releaseVolme(row)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('重量') + '(kg)'"> <el-table-column :label="$t('重量') + '(kg)'">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{row.sumWeight}} {{releaseWeight(row)}}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -80,6 +80,7 @@ import {createPick, getRleaseInfo, seasoningCondimentsSelect, updateApply} from ...@@ -80,6 +80,7 @@ import {createPick, getRleaseInfo, seasoningCondimentsSelect, updateApply} from
import AreaCodeSelector from '@/components/AreaCodeSelector' import AreaCodeSelector from '@/components/AreaCodeSelector'
import SendSmsCode from '@/views/ecw/order/components/SendSmsCode' import SendSmsCode from '@/views/ecw/order/components/SendSmsCode'
import WorkFlow from '@/components/WorkFlow' import WorkFlow from '@/components/WorkFlow'
import Decimal from 'decimal.js'
export default { export default {
props:{ props:{
orderId: [String, Number], orderId: [String, Number],
...@@ -111,6 +112,18 @@ export default { ...@@ -111,6 +112,18 @@ export default {
this.formData.ccIds = val.join(',') this.formData.ccIds = val.join(',')
} }
}, },
computed:{
releaseVolme(){
return row => {
return new Decimal(row.sumVolume).mul(row.releaseNum).div(row.sumNum).toFixed(2)
}
},
releaseWeight(){
return row => {
return new Decimal(row.sumWeight).mul(row.releaseNum).div(row.sumNum).toFixed(2)
}
}
},
created(){ created(){
this.show = true this.show = true
this.loadData() this.loadData()
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-card class="card"> <el-card class="card">
<div slot="header" class="card-title"> <div slot="header" class="card-title">
{{$t('订单编号')}}{{order.orderNo}} {{$t('订单编号')}}{{order.orderNo}}
<template v-if="order.containerNumber">- {{order.containerNumber}}</template> <template v-if="order.tidanNo">- {{order.tidanNo}}</template>
</div> </div>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8" v-if="order.consignorVO"> <el-col :span="8" v-if="order.consignorVO">
......
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
<div>{{fee.seaRMB || 0}}{{$t('人民币')}}</div> <div>{{fee.seaRMB || 0}}{{$t('人民币')}}</div>
<div>{{fee.seaUSD || 0}}{{$t('美元')}}</div> <div>{{fee.seaUSD || 0}}{{$t('美元')}}</div>
</el-descriptions-item> </el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item :label="$t('总清关费')"> <el-descriptions-item :label="$t('总清关费')">
<div>{{fee.clearanceNGN || 0}}{{$t('奈拉')}}</div> <div>{{fee.clearanceNGN || 0}}{{$t('奈拉')}}</div>
<div>{{fee.clearanceRMB || 0}}{{$t('人民币')}}</div> <div>{{fee.clearanceRMB || 0}}{{$t('人民币')}}</div>
...@@ -478,7 +478,11 @@ ...@@ -478,7 +478,11 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('中文品名')" prop="prodTitleZh"></el-table-column> <el-table-column :label="$t('中文品名')" prop="prodTitleZh"></el-table-column>
<el-table-column :label="$t('英文品名')" prop="prodTitleEn"></el-table-column> <el-table-column :label="$t('英文品名')" prop="prodTitleEn"></el-table-column>
<el-table-column :label="$t('品牌')" prop="brand"></el-table-column> <el-table-column :label="$t('品牌')" prop="brand">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" />
</template>
</el-table-column>
<el-table-column :label="$t('件数')" prop="num"></el-table-column> <el-table-column :label="$t('件数')" prop="num"></el-table-column>
<el-table-column :label="$t('重量') + '(kg)'" prop="weight"></el-table-column> <el-table-column :label="$t('重量') + '(kg)'" prop="weight"></el-table-column>
<el-table-column :label="$t('体积') + '(m³)'" prop="volume"></el-table-column> <el-table-column :label="$t('体积') + '(m³)'" prop="volume"></el-table-column>
...@@ -556,6 +560,7 @@ export default { ...@@ -556,6 +560,7 @@ export default {
status:0, status:0,
sendstatus:0, sendstatus:0,
isCargoControl: false, isCargoControl: false,
isCollection: false,
type:[], type:[],
isExternalWarehouse: false, isExternalWarehouse: false,
externalWarehouseDtoList:[{}], externalWarehouseDtoList:[{}],
...@@ -563,7 +568,18 @@ export default { ...@@ -563,7 +568,18 @@ export default {
}, },
// 表单校验 // 表单校验
rules: { rules: {
marks : [{required: true, message: this.$t('请填写唛头')}], marks: [
{required: true, message: this.$t('请填写唛头')},
{
validator: (rule, value, callback) => {
if(!/[a-zA-Z]/.test(value.charAt(0))){
return callback(new Error(this.$t('唛头必须以字母开头')))
}
callback()
},
trigger: 'blur'
}
],
consignorContactsId : [{required: true, message: this.$t('发货人不能为空')}], consignorContactsId : [{required: true, message: this.$t('发货人不能为空')}],
consigneeContactsId : [{required: true, message: this.$t('收货人不能为空')}], consigneeContactsId : [{required: true, message: this.$t('收货人不能为空')}],
transportId : [{required: true, message: this.$t('请选择运输方式')}], transportId : [{required: true, message: this.$t('请选择运输方式')}],
...@@ -820,7 +836,7 @@ export default { ...@@ -820,7 +836,7 @@ export default {
let form = new FormData() let form = new FormData()
form.append('file', e.file) form.append('file', e.file)
orderImport(form).then(res => { orderImport(form).then(res => {
if(!this.importList.length){ if(!res.data.list.length){
return this.$message.error('无有效数据') return this.$message.error('无有效数据')
} }
......
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
<el-input v-model="queryParams.marks" placeholder="唛头" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.marks" placeholder="唛头" clearable @keyup.enter.native="handleQuery" />
</el-form-item> --> </el-form-item> -->
<el-form-item :label="$t('发货人')" prop="consignorId"> <el-form-item :label="$t('发货人')" prop="consignorKey">
<el-input v-model="queryParams.consignorId" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consignorKey" :placeholder="$t('发货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人')" prop="consigneeId"> <el-form-item :label="$t('收货人')" prop="consigneeKey">
<el-input v-model="queryParams.consigneeId" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.consigneeKey" :placeholder="$t('收货人')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label="">
<dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" /> <dict-selector :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" defaultable style="width: 150px; margin-right: 5px" />
...@@ -214,13 +214,13 @@ ...@@ -214,13 +214,13 @@
<el-dropdown-item @click.native="$router.push('/order/special/' + scope.row.orderId)" v-hasPermi="['ecw:order:update']" >{{$t('特价')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/order/special/' + scope.row.orderId)" v-hasPermi="['ecw:order:update']" >{{$t('特价')}}</el-dropdown-item>
</template> </template>
<!-- 确认货 --> <!-- 确认货 -->
<template v-if=" <template v-if="
exclude(scope.row.status, [0,2]) && exclude(scope.row.status, [0,2]) &&
exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) && exclude(scope.row.abnormalState, [1 ,99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) &&
exclude(scope.row.shipmentState, [320,322,323]) exclude(scope.row.shipmentState, [320,322,323])
"> ">
<el-dropdown-item @click.native="$router.push(`/order/release?orderId=${scope.row.orderId}`)" >{{$t('确认')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push(`/order/release?orderId=${scope.row.orderId}`)" >{{$t('确认')}}</el-dropdown-item>
</template> </template>
<!-- 合单,拆单 --> <!-- 合单,拆单 -->
...@@ -254,13 +254,13 @@ ...@@ -254,13 +254,13 @@
include(scope.row.inWarehouseState, [201,202, 208, 202, 210, 202, 211, 202, 213, 214, 215, 216]) || include(scope.row.inWarehouseState, [201,202, 208, 202, 210, 202, 211, 202, 213, 214, 215, 216]) ||
include(scope.row.abnormalState, [99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14]) include(scope.row.abnormalState, [99 ,2 ,3 ,4 ,9 ,10 ,11 ,12 ,14])
"> ">
<el-dropdown-item @click.native="$router.push('/order/warehousing?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓补充')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/order/warehousing-add?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓补充')}}</el-dropdown-item>
</template> </template>
<!-- 入仓修改 --> <!-- 入仓修改 -->
<template v-if=" <template v-if="
include(scope.row.inWarehouseState, [202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206]) include(scope.row.inWarehouseState, [202, 207, 208, 202, 209, 210, 202, 211, 212, 202, 213, 214, 215, 216, 204, 205, 206])
"> ">
<el-dropdown-item @click.native="$router.push('/order/warehousing?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓修改')}}</el-dropdown-item> <el-dropdown-item @click.native="$router.push('/order/warehousing-update?id=' + scope.row.orderId)" v-hasPermi="['ecw:order:update']">{{$t('入仓修改')}}</el-dropdown-item>
</template> </template>
<!-- 退仓 --> <!-- 退仓 -->
...@@ -307,7 +307,7 @@ ...@@ -307,7 +307,7 @@
<!--打印相关的--> <!--打印相关的-->
<el-dropdown> <el-dropdown>
<el-button type="text">{{$t('操作')}}</el-button> <el-button type="text">{{$t('打印')}}</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!-- 打印标签 --> <!-- 打印标签 -->
<template v-if=" <template v-if="
...@@ -328,7 +328,7 @@ ...@@ -328,7 +328,7 @@
</template> </template>
<!-- 打印提单 --> <!-- 打印提单 -->
<el-dropdown-item @click.native="printLadingBillInfo={tidanNO: scope.row.tidanNo, transportType: scope.row.transportId}" :disabled="!scope.row.tidanNo">{{$t('打印提单')}}</el-dropdown-item> <el-dropdown-item @click.native="printLadingBillOrderId=scope.row.orderId" :disabled="!scope.row.tidanNo">{{$t('打印提单')}}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</template> </template>
...@@ -341,7 +341,7 @@ ...@@ -341,7 +341,7 @@
<special-needs :show.sync="isShow" :order-id="orderId" @determine="getList" ></special-needs> <special-needs :show.sync="isShow" :order-id="orderId" @determine="getList" ></special-needs>
<print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" /> <print-tag v-if="printTagOrderId !== null" :order-id="printTagOrderId" @close="printTagOrderId=null" />
<print-warehouse-receipt v-if="printWarehouseReceiptOrderId !== null" :order-id="printWarehouseReceiptOrderId" @close="printWarehouseReceiptOrderId=null" /> <print-warehouse-receipt v-if="printWarehouseReceiptOrderId !== null" :order-id="printWarehouseReceiptOrderId" @close="printWarehouseReceiptOrderId=null" />
<print-lading-bill v-if="printLadingBillInfo !== null" v-bind="printLadingBillInfo" @close="printLadingBillInfo=null" /> <print-lading-bill v-if="printLadingBillOrderId !== null" :order-id="printLadingBillOrderId" @close="printLadingBillOrderId=null" />
<batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/> <batch-pickup v-if="showBatchPickup" @close="onBatchClose" @success="onBatchClose"/>
<withdrawal v-if="show" :dialog-visible="show" :orderId="orderId" ></withdrawal> <withdrawal v-if="show" :dialog-visible="show" :orderId="orderId" ></withdrawal>
<batch-single-application :order-list="orderId" :dialog-visible.sync="warehouseBol"></batch-single-application> <batch-single-application :order-list="orderId" :dialog-visible.sync="warehouseBol"></batch-single-application>
...@@ -430,7 +430,7 @@ export default { ...@@ -430,7 +430,7 @@ export default {
printTagOrderId: null, // 显示打印标签的订单ID printTagOrderId: null, // 显示打印标签的订单ID
printWarehouseReceiptOrderId: null, // 打印入仓单的订单ID printWarehouseReceiptOrderId: null, // 打印入仓单的订单ID
printLadingBillInfo: null, // 打印提单 printLadingBillOrderId: null, // 打印提单的订单ID
showBatchPickup: false, // 是否显示批量提货弹窗 showBatchPickup: false, // 是否显示批量提货弹窗
showMergedLogOrderNo:null, // 显示合单日志订单号 showMergedLogOrderNo:null, // 显示合单日志订单号
showPickupLogOrderNo: null, // 显示提货日志的订单号 showPickupLogOrderNo: null, // 显示提货日志的订单号
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<el-divider></el-divider> <el-divider></el-divider>
<el-form inline label-width="100px"> <el-form inline label-width="100px">
<el-form-item label="订单号"><div class="content"> <el-form-item label="订单号"><div class="content">
<el-input v-model.trim="params.relateOrderNo"></el-input> <el-input v-model.trim="params.mutualOrderNo"></el-input>
</div></el-form-item> </div></el-form-item>
<el-form-item><div class="content"> <el-form-item><div class="content">
<el-button @click="getList">查询</el-button> <el-button @click="getList">查询</el-button>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-form inline label-width="85px" label-position="left"> <el-form inline label-width="85px" label-position="left">
<el-form-item label="订单号"> <el-form-item label="订单号">
<div class="content"> <div class="content">
<el-input v-model.trim="params.relateOrderNo"></el-input> <el-input v-model.trim="params.mutualOrderNo"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
......
...@@ -174,8 +174,11 @@ export default { ...@@ -174,8 +174,11 @@ export default {
}) })
} }
}else{ }else{
return this.$confirm(this.$t('数据缺少orderItemId参数,确定要跳转设置路线价格么?')).then(res => {
let url = '../../lineProject/product-price/edit' let url = '../../lineProject/product-price/edit'
return this.$router.push(url) this.$router.push(url)
})
} }
}else if(row.orderExceptionType == 'order_heavy_cargo_exception'||row.orderExceptionType=='order_bulky_cargo_exception'){ }else if(row.orderExceptionType == 'order_heavy_cargo_exception'||row.orderExceptionType=='order_bulky_cargo_exception'){
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
<el-row type="flex" justify="center"> <el-row type="flex" justify="center">
<el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="16"> <el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="16">
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix" v-if="!readonly"> <div slot="header" class="clearfix">
<span style="font-size: 18px;font-weight: bold">{{ isDiscount ? '折扣管理' : '优惠申请' }}</span> <span style="font-size: 18px;font-weight: bold">{{$t('优惠申请')}}</span>
</div> </div>
<el-form v-if="!readonly" ref="form" :model="form" label-width="80px"> <el-form ref="form" :model="form" label-width="80px">
<el-form-item label="商品类型"> <el-form-item label="商品类型">
<span>{{ getProductAttrNameById(form.prodType) }}</span> <span>{{ getProductAttrNameById(form.prodType) }}</span>
</el-form-item> </el-form-item>
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
</el-form-item> </el-form-item>
<el-form-item label="线路"> <el-form-item label="线路">
{{ `【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)}】${ getChannelNameById(form.channelId) }从【${startTitleZh}】发往【${destTitleZh}】`}} {{ `【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)}】${ getChannelNameById(form.channelId) }从【${startTitleZh}】发往【${destTitleZh}】`}}
</el-form-item> </el-form-item>
<el-form-item label="是否预付"> <el-form-item label="是否预付">
{{ form.isPayAdvance === 0 ? '' : '' }} {{ form.isPayAdvance === 0 ? '' : '' }}
...@@ -48,29 +49,14 @@ ...@@ -48,29 +49,14 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div > <div>
<h2>审批流程</h2> <h2>审批流程</h2>
<work-flow xmlkey="free_apply" v-model="form.channelId" /> <work-flow xmlkey="free_apply" v-model="form.channelId" />
<!-- <div>选择的用户:{{selectedUsers}}</div>-->
</div> </div>
<div v-if="!readonly"> <div>
<el-button type="primary" @click="handleSubmit">提交</el-button> <el-button type="primary" @click="handleSubmit">提交</el-button>
</div> </div>
<el-descriptions border v-if="readonly" :column="1">
<el-descriptions-item label="商品类型">{{ form.productType }}</el-descriptions-item>
<el-descriptions-item label="商品名称">{{ form.prodTitleZh }}</el-descriptions-item>
<el-descriptions-item label="英文名称">{{ form.prodTitleEn }}</el-descriptions-item>
<el-descriptions-item label="线路">
{{ `【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)}】${ getChannelNameById(form.channelId) }从【${startTitleZh}】发往【${destTitleZh}】`}}
</el-descriptions-item>
<el-descriptions-item label="是否预付">{{ form.isPayAdvance === 0 ? '' : '' }}</el-descriptions-item>
<el-descriptions-item label="旧运费">{{ form.orgFreight }} {{ currentMap[form.orgFreightCurrency] }}/{{ unitMap[form.orgFreightVolume] }}</el-descriptions-item>
<el-descriptions-item label="旧清关费">{{ form.orgClearanceFreight }} {{ currentMap[form.orgClearanceFreightCurrency] }}/{{ unitMap[form.orgClearanceFreightVolume] }}</el-descriptions-item>
<el-descriptions-item label="新运费">{{ form.freight }} {{ currentMap[form.freightCurrency] }}/{{ unitMap[form.freightVolume] }}</el-descriptions-item>
<el-descriptions-item label="新清关费">{{ form.clearanceFreight }} {{ currentMap[form.clearanceFreightCurrency] }}/{{ unitMap[form.clearanceFreightVolume] }}</el-descriptions-item>
</el-descriptions>
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card>
<div slot="header" class="card-title">申请特价</div> <div slot="header" class="card-title">{{$t('申请特价')}}</div>
<!-- 列表 --> <!-- 列表 -->
<div class="order-header"> <div class="order-header">
<span style="font-size: 15px;">订单号{{ order.orderNo }}</span> <span style="font-size: 15px;">{{$t('订单号')}}{{ order.orderNo }}</span>
</div> </div>
<el-table v-loading="loading" :data="order.orderItemVOList"> <el-table v-loading="loading" :data="order.orderItemVOList">
<el-table-column label="序号" align="center" prop="id" type="index"></el-table-column> <el-table-column :label="$t('序号')" align="center" prop="id" type="index"></el-table-column>
<el-table-column <el-table-column
prop="prodTitleZh" prop="prodTitleZh"
label="品名"> :label="$t('品名')">
<template v-slot="{row}"> <template v-slot="{row}">
{{ row.prodTitleZh }}/{{ row.prodTitleEn }} {{ row.prodTitleZh }}/{{ row.prodTitleEn }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="prodAttrIds" prop="prodAttrIds"
label="填单货物属性"> :label="$t('填单货物属性')">
<template v-slot="{row}"> <template v-slot="{row}">
品牌:{{ ['无牌', '有牌', '中性'][row.brandType] }}<br> {{$t('品牌')}}<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" /><br>
箱数{{ row.num }}<br> {{$t('箱数')}}{{ row.num }}<br>
体积{{ row.volume }}<br> {{$t('体积')}}{{ row.volume }}<br>
重量{{ row.weight }}Kg {{$t('重量')}}{{ row.weight }}Kg
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="address"
label="入库货物属性"> :label="$t('入库货物属性')">
<template v-slot="{row}"> <template v-slot="{row}">
<!-- // TODO 待测试完善 -->
<template v-if="row.warehouseInInfoVO"> <template v-if="row.warehouseInInfoVO">
品牌:{{ ['无牌', '有牌', '中性'][row.brandType] }}<br> {{$t('品牌')}}<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="row.brandType" /><br>
箱数{{ row.warehouseInInfoVO.cartonsNum }}<br> {{$t('箱数')}}{{ row.warehouseInInfoVO.cartonsNum }}<br>
体积{{ row.warehouseInInfoVO.volume }}<br> {{$t('体积')}}{{ row.warehouseInInfoVO.volume }}<br>
重量{{ row.warehouseInInfoVO.weight }}Kg {{$t('重量')}}{{ row.warehouseInInfoVO.weight }}Kg
</template> </template>
<span v-else>暂时没有入库信息</span> <span v-else>{{$t('暂时没有入库信息')}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="updateTime" prop="updateTime"
:formatter="(_, __, v) => parseTime(v)" :formatter="(_, __, v) => parseTime(v)"
label="最后操作时间"> :label="$t('最后操作时间')">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="原价"> :label="$t('原价')">
<template v-slot="{row}"> <template v-slot="{row}">
运费:{{ row.originalSeaFreight }} {{ currentMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} <template v-if="!row.originalSeaFreight">未报价</template>
<template v-else-if="row.charging ==1">
{{$t('全包价')}}{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
</template>
<template v-else>
{{$t('运费')}}{{ row.originalSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
清关费:{{ row.originalClearanceFreight }} {{ currentMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.originalClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address"
label="成本价"> label="成本价">
<template v-slot="{row}"> <template v-slot="{row}">
运费:{{ row.seaFreight }} {{ currentMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} <template v-if="!row.costSeaFreight">未报价</template>
<template v-else-if="row.charging">
{{$t('全包价')}}{{ row.costSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
</template>
<template v-else>
{{$t('运费')}}{{ row.costSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
清关费:{{ row.clearanceFreight }} {{ currentMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" :label="$t('销售价')">
label="销售价">
<template v-slot="{row}"> <template v-slot="{row}">
运费:{{ row.seaFreight }} {{ currentMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }} <template v-if="!row.oneSeaFreight">未报价</template>
<template v-else-if="row.charging">
{{$t('全包价')}}{{ row.oneSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
</template>
<template v-else>
{{$t('运费')}}{{ row.oneSeaFreight }} {{ currencyMap[row.seaFreightCurrency] }}/{{ unitMap[row.seaFreightVolume] }}
<br> <br>
清关费:{{ row.clearanceFreight }} {{ currentMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }} {{$t('清关费')}}{{ row.oneClearanceFreight }} {{ currencyMap[row.clearanceFreightCurrency] }}/{{ unitMap[row.clearanceFreightVolume] }}
</template>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column-->
<!-- prop="status"-->
<!-- :formatter="(v) => ['取消报价', '特价审批中', '需求确认(草稿)', '跟进中', '赢单', '输单', '报价完成', '审批通过', '审批拒绝'][v.status]"-->
<!-- label="审核状态">-->
<!-- </el-table-column>-->
<el-table-column <el-table-column
prop="address" prop="address"
label="操作"> :label="$t('操作')">
<template v-slot="{row}"> <template v-slot="{row}">
<template v-if="row.originalSeaFreight !== 0 && row.originalClearanceFreight !== 0"> <el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="showDiscountItemId=row.orderItemId">优惠申请</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount/${row.orderItemId}?orderId=${row.orderId}`)">优惠申请</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/specialCommission/${row.orderItemId}`)">佣金规则</el-button> <el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/specialCommission/${row.orderItemId}`)">佣金规则</el-button>
<el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount1/${row.orderItemId}?orderId=${row.orderId}&discount=1`)">管理折扣</el-button> <el-button size="mini" type="text" v-hasPermi="['ecw:order:update']" @click="$router.push(`/order/discount1/${row.orderItemId}?orderId=${row.orderId}&discount=1`)">管理折扣</el-button>
</template> </template>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -95,6 +107,10 @@ ...@@ -95,6 +107,10 @@
<el-button type="primary" @click="$tab.closePage()">关闭窗口</el-button> <el-button type="primary" @click="$tab.closePage()">关闭窗口</el-button>
</div> </div>
</el-card> </el-card>
<special-discount v-if="!!showDiscountItemId" :orderItemId="showDiscountItemId" />
</div> </div>
</template> </template>
...@@ -105,9 +121,12 @@ import {getCurrencyList} from "@/api/ecw/currency" ...@@ -105,9 +121,12 @@ import {getCurrencyList} from "@/api/ecw/currency"
import {getProductAttrList} from "@/api/ecw/productAttr" import {getProductAttrList} from "@/api/ecw/productAttr"
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import {getOrder} from "@/api/ecw/order" import {getOrder} from "@/api/ecw/order"
import SpecialDiscount from '@/views/ecw/order/components/SpecialDiscount.vue'
export default { export default {
name: "OrderSpecial", name: "OrderSpecial",
components: { components: {
SpecialDiscount
}, },
props: { props: {
orderId: [String, Number] orderId: [String, Number]
...@@ -136,7 +155,9 @@ export default { ...@@ -136,7 +155,9 @@ export default {
unitList:[], unitList:[],
currencyList:[], currencyList:[],
productAttrList:[], productAttrList:[],
hasWarehouseInInfo: false hasWarehouseInInfo: false,
showDiscountItemId: null
}; };
}, },
created() { created() {
...@@ -171,7 +192,7 @@ export default { ...@@ -171,7 +192,7 @@ export default {
path:"/order/specialLight/"+this.params.orderId, path:"/order/specialLight/"+this.params.orderId,
}) })
}, },
getProductNamesByIds(ids){ /* getProductNamesByIds(ids){
const result = [] const result = []
ids.split(',').forEach(e => { ids.split(',').forEach(e => {
this.productAttrList.forEach(f => { this.productAttrList.forEach(f => {
...@@ -181,20 +202,20 @@ export default { ...@@ -181,20 +202,20 @@ export default {
}) })
}) })
return result.join(',') return result.join(',')
} } */
}, },
computed: { computed: {
currentMap(){ currencyMap(){
let map = {} let map = {}
this.currencyList.forEach(item => { this.currencyList.forEach(item => {
map[item.id] = item.titleZh map[item.id] = this.$l(item, 'title')
}) })
return map return map
}, },
unitMap(){ unitMap(){
let map = {} let map = {}
this.unitList.forEach(item => { this.unitList.forEach(item => {
map[item.id] = item.titleZh map[item.id] = this.$l(item, 'title')
}) })
return map return map
} }
......
<template> <template>
<div> <div>
<el-dialog <el-dialog
:title="(edit ? '入仓修改' : (warehousing.orderWarehouseInBackItemDoList.length > 0 ? '入仓补充' : '入仓操作')) + ' - ' + warehousing.orderNo" :title="title + ' - ' + warehousing.orderNo"
:visible.sync="opened" :visible.sync="opened"
width="1080px" width="1080px"
> >
...@@ -431,7 +431,7 @@ export default { ...@@ -431,7 +431,7 @@ export default {
opened(val) { opened(val) {
if (val) { if (val) {
this.form.material = this.warehousing.material this.form.material = this.warehousing.material
this.form.brand = this.warehousing.brand this.form.brand = this.warehousing.brand || '0'
this.handleBrandChange(this.form.brand) this.handleBrandChange(this.form.brand)
} else { } else {
this.$emit('update:visible', false) this.$emit('update:visible', false)
...@@ -442,10 +442,12 @@ export default { ...@@ -442,10 +442,12 @@ export default {
this.form.orderWarehouseInItemDoList = [] this.form.orderWarehouseInItemDoList = []
this.form1.orderWarehouseInItemDoList = [] this.form1.orderWarehouseInItemDoList = []
this.activeName = 'first' this.activeName = 'first'
if (!this.edit){
this.handleAdd() this.handleAdd()
this.handleAdd(1) this.handleAdd(1)
} }
} }
}
}, },
methods: { methods: {
...@@ -587,6 +589,9 @@ export default { ...@@ -587,6 +589,9 @@ export default {
}, },
computed: { computed: {
title() {
return this.$route.name
},
brandObject(){ brandObject(){
return this.brandList.find(e => e.id === this.form.brand) || '' return this.brandList.find(e => e.id === this.form.brand) || ''
}, },
......
<template> <template>
<div class="app-container"> <div class="app-container">
<h2>入仓操作-{{ order.orderNo }}</h2> <h2>{{ title }}-{{ order.orderNo }}</h2>
<order-base-info :order="order"></order-base-info> <order-base-info :order="order"></order-base-info>
...@@ -74,15 +74,13 @@ ...@@ -74,15 +74,13 @@
prop="address" prop="address"
label="操作"> label="操作">
<template v-slot="{ row, column, $index }"> <template v-slot="{ row, column, $index }">
<el-button v-if="order.status === 5" size="mini" type="text" @click="handleWarehousing($index)">修改</el-button> <el-button v-if="isEdit" size="mini" type="text" @click="handleWarehousing($index)">修改</el-button>
<template v-else> <template v-else-if="orderItemList[$index] && orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0">
<template v-if="orderItemList[$index] && orderItemList[$index].orderWarehouseInBackItemDoList && orderItemList[$index].orderWarehouseInBackItemDoList.length > 0">
<el-button size="mini" type="text" @click="handleWarehousing($index)">追加</el-button> <el-button size="mini" type="text" @click="handleWarehousing($index)">追加</el-button>
<el-button size="mini" type="text" @click="handleWarehousingReturn(row)">退仓</el-button> <el-button size="mini" type="text" @click="handleWarehousingReturn(row)">退仓</el-button>
</template> </template>
<el-button v-else size="mini" type="text" @click="handleWarehousing($index)">入仓</el-button> <el-button v-else size="mini" type="text" @click="handleWarehousing($index)">入仓</el-button>
</template> </template>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -145,7 +143,7 @@ ...@@ -145,7 +143,7 @@
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :city-id="cityId"></warehouse-area-dialog> :order-id="orderId" :city-id="cityId"></warehouse-area-dialog>
<edit-dialog :customer-id="order.customerId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="order.status === 5"></edit-dialog> <edit-dialog :title="title" :customer-id="order.customerId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit"></edit-dialog>
<!-- 完成入仓 --> <!-- 完成入仓 -->
<el-dialog <el-dialog
...@@ -267,6 +265,16 @@ export default { ...@@ -267,6 +265,16 @@ export default {
}, },
methods: { methods: {
include(){
return (state, arr) => {
return arr.indexOf(state) > -1
}
},
exclude(){
return (state, arr) => {
return arr.indexOf(state) == -1
}
},
handleLabelSubmit(){ handleLabelSubmit(){
orderWarehouseInUpdateLabel({ orderWarehouseInUpdateLabel({
...this.label, ...this.label,
...@@ -367,14 +375,14 @@ export default { ...@@ -367,14 +375,14 @@ export default {
}).then(() => { }).then(() => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '申请退仓成功!' message: '货物退仓成功!'
}); });
getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse()) getOrderWarehouseIn(this.orderId).then(r => this.orderItemList = r.data.reverse())
this.getOrder() this.getOrder()
}) })
}).catch(() => { }).catch(e => {
}); });
} }
}, },
...@@ -398,6 +406,15 @@ export default { ...@@ -398,6 +406,15 @@ export default {
}, },
computed: { computed: {
// isAdd() {
// return this.$route.path === "/order/warehousing-add"
// },
isEdit() {
return this.$route.path === "/order/warehousing-update"
},
title() {
return this.$route.name
},
orderSpecialNeedsDict() { orderSpecialNeedsDict() {
return this.$store.state.dict.dictDatas.order_special_needs return this.$store.state.dict.dictDatas.order_special_needs
}, },
......
...@@ -145,13 +145,17 @@ ...@@ -145,13 +145,17 @@
<el-table-column prop="price" :label="$t('价格')" align="center"> <el-table-column prop="price" :label="$t('价格')" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div v-if="scope.row.priceType == 0">
{{$t('运费')}}:{{ getCurrencySymbol(scope.row.transportPriceUnit) + scope.row.transportPrice}}&nbsp; {{$t('运费')}}:{{ getCurrencySymbol(scope.row.transportPriceUnit) + scope.row.transportPrice}}&nbsp;
{{ getCurrencyTitle(scope.row.transportPriceUnit) + '/' + getUnitTitle(scope.row.transportVolumeUnit)}} {{ getCurrencyTitle(scope.row.transportPriceUnit) + '/' + getUnitTitle(scope.row.transportVolumeUnit)}}
<br /> <br />
{{$t('清关费')}}:{{ getCurrencySymbol(scope.row.clearancePriceUnit) + scope.row.clearancePrice}}&nbsp; {{$t('清关费')}}:{{ getCurrencySymbol(scope.row.clearancePriceUnit) + scope.row.clearancePrice}}&nbsp;
{{ getCurrencyTitle(scope.row.clearancePriceUnit) + '/' + getUnitTitle(scope.row.clearanceVolumeUnit)}} {{ getCurrencyTitle(scope.row.clearancePriceUnit) + '/' + getUnitTitle(scope.row.clearanceVolumeUnit)}}
</div> </div>
<div v-if="scope.row.priceType == 1">
{{$t('全包价')}}:{{ getCurrencySymbol(scope.row.allPriceUnit) + scope.row.allPrice}}&nbsp;
{{ getCurrencyTitle(scope.row.allPriceUnit) + '/' + getUnitTitle(scope.row.allVolumeUnit)}}
</div>
</template> </template>
</el-table-column> </el-table-column>
......
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