Commit b4fdb349 authored by dcy's avatar dcy

Merge remote-tracking branch 'origin/dev' into dev

parents cc420c55 54c61d57
import request from '@/utils/request'
// 创建入仓货物详情
export function createOrderWarehouseIn(data) {
return request({
url: '/depository/order-warehouse-in/create',
method: 'post',
data: data
})
}
// 更新入仓货物详情
export function updateOrderWarehouseIn(data) {
return request({
url: '/depository/order-warehouse-in/update',
method: 'put',
data: data
})
}
// 删除入仓货物详情
export function deleteOrderWarehouseIn(id) {
return request({
url: '/depository/order-warehouse-in/delete?id=' + id,
method: 'delete'
})
}
// 获得入仓货物详情
export function getOrderWarehouseIn(id) {
return request({
url: '/depository/order-warehouse-in/get?id=' + id,
method: 'get'
})
}
// 获得入仓货物详情分页
export function getOrderWarehouseInPage(query) {
return request({
url: '/depository/order-warehouse-in/page',
method: 'get',
params: query
})
}
// 导出入仓货物详情 Excel
export function exportOrderWarehouseInExcel(query) {
return request({
url: '/depository/order-warehouse-in/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
import request from '@/utils/request'
// 创建订单异常
export function createOrderException(data) {
return request({
url: '/ecw/order-exception/create',
method: 'post',
data: data
})
}
// 更新订单异常
export function updateOrderException(data) {
return request({
url: '/ecw/order-exception/update',
method: 'put',
data: data
})
}
// 删除订单异常
export function deleteOrderException(id) {
return request({
url: '/ecw/order-exception/delete?id=' + id,
method: 'delete'
})
}
// 获得订单异常
export function getOrderException(id) {
return request({
url: '/ecw/order-exception/get?id=' + id,
method: 'get'
})
}
// 获得订单异常分页
export function getOrderExceptionPage(query) {
return request({
url: '/ecw/order-exception/page',
method: 'get',
params: query
})
}
// 导出订单异常 Excel
export function exportOrderExceptionExcel(query) {
return request({
url: '/ecw/order-exception/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
import request from '@/utils/request'
// 创建收款单
export function createReceipt(data) {
return request({
url: '/ecw/receipt/create',
method: 'post',
data: data
})
}
// 更新收款单
export function updateReceipt(data) {
return request({
url: '/ecw/receipt/update',
method: 'put',
data: data
})
}
// 删除收款单
export function deleteReceipt(id) {
return request({
url: '/ecw/receipt/delete?id=' + id,
method: 'delete'
})
}
// 获得收款单
export function getReceipt(id) {
return request({
url: '/ecw/receipt/get?id=' + id,
method: 'get'
})
}
// 获得收款单分页
export function getReceiptPage(query) {
return request({
url: '/ecw/receipt/page',
method: 'get',
params: query
})
}
// 导出收款单 Excel
export function exportReceiptExcel(query) {
return request({
url: '/ecw/receipt/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -6,16 +6,16 @@
width="600px"
:before-close="handleClose()"
>
<el-tabs v-model="activeName" type="card">
<el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}">
<el-tab-pane :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index">
<div>
<div style="text-align: center">区域</div>
<div style="background-color: #efefef;padding: 10px 10px 0;border: #dcdcdc solid 1px;border-radius: 2px">
<el-row :gutter="10">
<el-row :gutter="20">
<el-col :span="12" v-for="(warehouse, i) in item.children" :key="i">
<div
class="warehouse-block warehouse-block-selected"
:class="{active: selected.find(domain => domain.pid === warehouse.id)}"
class="warehouse-block"
:class="{'warehouse-block-selected': warehouse.selected, 'warehouse-block-active': warehouse.id === activeWarehouse.id}"
@click="handleSelectWarehouse(warehouse)"
>
{{ warehouse.name }}
......@@ -26,10 +26,20 @@
</div>
<div>
<div style="text-align: center">仓位</div>
<div class="position-group">
<div class="position" v-for="position in activeWarehouse.positionList" :key="item.id">
<div
class="position-item"
v-for="item in position.children"
@click="handleSelectPosition(item)"
:class="{'position-item-active': item.selected}">
{{ item.code }}
</div>
</div>
</div>
</div>
<el-divider></el-divider>
已选择:
已选择:{{ selected.join(', ') }}
<el-divider></el-divider>
</el-tab-pane>
</el-tabs>
......@@ -56,11 +66,13 @@ export default {
data() {
return {
opened: false,
key: 0,
orderId: '',
area: [],
activeName: '0',
selected: []
selectedWarehouse: [],
selectedPosition: [],
activeWarehouse: {}
};
},
......@@ -82,7 +94,46 @@ export default {
methods: {
handleClose() {},
handleSelectWarehouse(warehouse) {
console.log(warehouse)
this.activeWarehouse = warehouse
if (!!warehouse.selected) {
warehouse.selected = false
} else {
warehouse.selected = true
// 区域被选,清空该区域下的位置
warehouse.positionList.forEach(g => {
g.children.forEach(k => {
k.selected = false
})
})
}
},
handleSelectPosition(position) {
if (!!position.selected) {
position.selected = false
// 反选位置时,检查父区域下是否所有位置被反选,若是,选父区域
const parentAre = this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId)
if (!parentAre.selected) {
// 检查父区域下是否所有位置被反选
let hasSelected = false
parentAre.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
if (k.selected) hasSelected = true
})
})
// 所有子位置被反选,选父区域
if (!hasSelected) parentAre.selected = true
}
} else {
position.selected = true
// 选位置时,父区域反选
this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId).selected = false
}
}
},
......@@ -92,9 +143,48 @@ export default {
}
getByWarehouseId().then(r => {
this.area = r.data
const area = r.data
area.forEach(e => {
// 仓库
e.children.forEach(f => {
// 区域
f.selected = false
f.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
k.selected = false
})
})
})
})
this.area = area
})
},
computed: {
selected() {
const result = []
this.area.forEach(e => {
// 仓库
e.children.forEach(f => {
// 区域
if (f.selected) result.push(f.code)
f.positionList.forEach(g => {
// 位置
g.children.forEach(k => {
// 子位置
if (k.selected) result.push(k.code)
})
})
})
})
return result
}
}
}
</script>
......@@ -105,14 +195,58 @@ export default {
height: 42px;
line-height: 42px;
text-align: center;
margin-bottom: 10px;
margin-bottom: 15px;
cursor: pointer;
transition: 0.5s;
box-shadow: #bfbfbf 3px 3px 14px 0;
}
.warehouse-block:hover, .warehouse-block .active{
color: #ffffff;
background-color: #388fe5;
.warehouse-block:hover{
opacity: 0.9;
transition: 0.5s;
transform: scale(1.02);
box-shadow: #8f8f8f 7px 5px 14px 0;
}
.warehouse-block-active{
box-shadow: #7e9dbd 7px 5px 14px 0;
transform: scale(1.04);
}
.warehouse-block-selected{
border: #388fe5 solid 5px;
color: #ffffff;
background-color: #4085e3;
}
.position-group{
display: flex;
background-color: #EFEFEF;
border: 1px #EFEFEF solid;
gap: 1px;
min-height: 64px;
}
.position{
width: 20%;
height: 64px;
display: flex;
flex-direction: column;
gap: 1px;
}
.position-item{
width: 100%;
background-color: #FFFFFF;
flex: 1;
cursor: pointer;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
.position-item:hover{
background-color: #d7dbe3;
}
.position-item-active{
background-color: #4085e3;
color: white;
}
.position-item-active:hover{
background-color: #4085e3;
opacity: 0.8;
}
</style>
......@@ -12,7 +12,7 @@ import store from './store'
import router from './router'
import directive from './directive' // directive
import plugins from './plugins' // plugins
import Print from 'vue-print-nb'
import './assets/icons' // icon
import './permission' // permission control
import './tongji' // 百度统计
......@@ -80,6 +80,7 @@ import VueMeta from 'vue-meta'
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
Vue.use(Print)
// Vue.use(hljs.vuePlugin);
// bpmnProcessDesigner 需要引入
......
......@@ -96,6 +96,7 @@ export const DICT_TYPE = {
ECW_IS_BRAND: 'is_brand', // 有无品牌
ECW_OFFER_TYPE: 'offer_type', // 跟进类型
ECW_OFFER_METHOD: 'offer_method', // 跟进方式
ECW_RECEIPT_STATE: 'receipt_state',//收款单状态
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
CUSTOMER_SOURCE: 'customer_source',
......@@ -133,8 +134,13 @@ export const DICT_TYPE = {
ORDER_TYPE: 'order_type', // 订单类型
PRODUCT_RECORD_ATTRIBUTE: 'product_record_attribute', //产品备案属性
CONTROL_GOODS_STATUS: 'control_goods_status', //控货状态
DISBURSEMENT_TYPE: 'disbursement_type', //垫付类型
DISBURSEMENT_TYPE: 'disbursement_type',//垫付类型
DRAWEE: 'drawee', // 付款人
ORDER_STATUS: 'order_status',//订单状态
BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime',//订单日期筛选类别
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
}
/**
......
<template>
<div class="app-container">
<el-card>
<div slot="header" class="card-title">新增收款单</div>
<el-form ref="form" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="3" border>
<el-descriptions-item label="客户" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="customerId" required error="客户不能为空">
<customer-selector v-model="form.customerId" @change="consignor = $event" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="部门" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="departmentId" required error="部门不能为空">
<el-select v-model="form.departmentId" style="width: 300px;" placeholder="请选择部门">
<el-option v-for="item in deptData" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="业务员" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consignorId" required error="客户不能为空">
<el-select v-model="form.salesmanId" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="手续费(RMB)" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="feeRate" required error="手续费不能为空">
<el-input v-model="form.feeRate" placeholder="请输入手续费"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="备注" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="remark" required error="备注不能为空">
<el-input v-model="form.remark" placeholder="备注"></el-input>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
<el-card class="card">
<div slot="header" class="card-title">订单信息</div>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" style="padding: 10px;margin-bottom: 10px;"
>添加未收客户款项</el-button>
</el-col>
<el-table v-loading="loadings" :data="list" border>
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="运输方式" align="center" prop="transportId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="出货渠道" align="center" prop="channelName" />
<el-table-column label="始发地" align="center" prop="toDepartureId" />
<el-table-column label="目的地" align="center" prop="toDepartureId" />
<el-table-column label="品名" align="center" prop="toDepartureId" />
<el-table-column label="箱数" align="center" prop="sumNum" />
<el-table-column label="体积/重量" align="center" prop="sumVolume">
<template slot-scope="scope">
{{scope.row.sumVolume+'/'+scope.row.sumWeight}}
</template>
</el-table-column>
<el-table-column label="收入类型" align="center" prop="sumWeight" />
<el-table-column label="收款类型" align="center" prop="payType" />
<el-table-column label="应收金额" align="center" prop="sumWeight" />
<el-table-column label="收款类型" align="center" prop="payType" />
<el-table-column label="总金额美元" align="center" prop="sumWeight" />
<el-table-column label="总金额RMB" align="center" prop="payType" />
<el-table-column label="实收金额" align="center" prop="actualAmount" />
</el-table>
<el-form ref="forms" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="2" border class="card">
<el-descriptions-item label="收款账户" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="consignorId" required error="请选择收款账户">
<el-select v-model="form.platformAccountId" placeholder="请选择收款账户">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName+'('+item.baAccountNum+')'" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="是否需要开票" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consignorId" required error="请选择是否需要开票">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="form.transportId" />
</el-form-item>
</el-descriptions-item>
</el-descriptions>
<div class="card">
<el-form-item label="收款附件" label-width="120px" style="margin-bottom: 0;width: 33%;display: inline-block" prop="consignorId">
<el-upload
class="upload-demo"
:action="uploadFileUrl"
:headers="headers"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
:on-error="handleUploadError"
:before-remove="beforeRemove"
multiple
>
<el-button size="small" type="primary">上传附件</el-button>
</el-upload>
</el-form-item>
<el-form-item label="水单号:" label-width="120px" style="margin-bottom: 0;width: 31%;margin-left: 2%;display: inline-block" prop="waterBillNo" required error="水单号不能为空">
<el-input v-model="form.waterBillNo" maxlength="200" placeholder="请输入水单号"></el-input>
</el-form-item>
<el-form-item label="实收日期:" label-width="120px" style="margin-bottom: 0;width: 31%;margin-left: 2%;display: inline-block" prop="payedAt" required error="实收日期不能为空">
<el-date-picker clearable v-model="form.payedAt" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择实收日期" />
</el-form-item>
</div>
</el-form>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">保 存</el-button>
<el-button type="primary" @click="submitForm">新 增</el-button>
</div>
<el-dialog :visible.sync="open" title="添加未收客户款项" width="80%" append-to-body>
<div>
<!-- <div slot="header" class="card-title">添加未收客户款项</div> -->
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-row>
<el-form-item label="始发城市">
<el-select v-model="queryParams.departureId" placeholder="请选择始发地">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的城市">
<el-select v-model="queryParams.objectiveId" placeholder="请选择始发地">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="运输方式" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item>
<el-form-item label="出货渠道" >
<el-select v-model="queryParams.channelId" placeholder="请选择出货渠道">
<el-option v-for="item in channelList" :label="item.nameZh" :value="item.channelId" :key="item.channelId"></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="报关方式">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" />
</el-form-item>
<el-form-item label="控货">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" />
</el-form-item>
<el-form-item label="客户名称" >
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
</el-form-item>
</el-row>
<el-form-item label="订单编号" prop="orderNo">
<el-input v-model="queryParams.orderNo" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="自编号" prop="orderNo">
<el-input v-model="queryParams.orderNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button>
</el-form-item>
</el-form>
</el-col>
<el-table v-loading="loadings" :data="orderData" border @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column label="自编号" align="center" prop="orderNo" />
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="运输方式" align="center" prop="transportId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="出货渠道" align="center" prop="channelName" />
<el-table-column label="始发地" align="center" prop="toDepartureId" />
<el-table-column label="目的地" align="center" prop="toDepartureId" />
<el-table-column label="商品信息" align="center" prop="toDepartureId" />
<el-table-column label="箱数" align="center" prop="sumNum" />
<el-table-column label="体积/重量" align="center" prop="weight">
<template slot-scope="scope">
{{scope.row.volume/scope.row.weight}}
</template>
</el-table-column>
<el-table-column label="费用类型" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="单价" align="center" prop="unitPrice" />
<el-table-column label="总金额美元" align="center" prop="totalAmount" />
</el-table>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确认添加</el-button>
<el-button @click="hiddenDialog">取 消</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import { getToken } from "@/utils/auth";
import CustomerSelector from '@/components/CustomerSelector'
import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept"
import {getChannelList} from '@/api/ecw/channel'
import {getTradeCityList} from '@/api/ecw/region'
export default {
name: "CreatCollection",
components: {
CustomerSelector
},
data() {
return {
loadings: false,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/app-api/file/upload", // 上传的图片服务器地址
form:{},
creatorData:[],
list:[],
fileList:[],
orderData:[],
headers: {
Authorization: "Bearer " + getToken(),
},
loading:'',
open:false,
bankData:[],
params:{
page:1,
rows:20,
},
deptData:[],
deptArr:[],
oadings: false,
channelList: [],
queryParams:{
page:1,
rows:20,
},
multipleSelection:[],
tradeCityList:[]
}
},
created() {
let that = this
if(that.$route.query.receiptNo){
this.form.receiptNo = this.$route.query.receiptNo
}
if(that.$route.query.consignorId){
this.queryParams.consignorId = this.$route.query.consignorId
}
if(that.$route.query.writeOffName){
this.form.writeOffName = this.$route.query.writeOffName
}
userList('salesman').then(res =>that.creatorData = res.data)
getChannelList().then(res => that.channelList = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data)
getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
listSimpleDepts().then(res =>{
res.data.forEach((item)=>{
if(item.parentId==0){
that.deptArr.push(item)
}else{
that.deptData.push(item)
}
})
that.deptData.forEach((value)=>{
var dept = that.deptArr.filter(itt=>itt.id==value.parentId)
if(dept.length>0){
value.name =dept[0].name+' | '+ value.name
}
})
})
},
computed:{
expoerCityList(){
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
},
},
methods: {
beforeRemove(file, fileList) {
return this.$confirm(`确定移除?`);
},
handleUploadSuccess(res,file,fileList) {
var arr = []
fileList.forEach((item)=>{
arr.push(item.response.data)
})
this.fileList= arr
console.log(this.fileList)
this.loading.close();
},
handleBeforeUpload() {
this.loading = this.$loading({
lock: true,
text: "上传中",
background: "rgba(0, 0, 0, 0.7)",
});
},
handleUploadError() {
this.$message({
type: "error",
message: "上传失败",
});
this.loading.close();
},
/** 新增按钮操作 */
handleAdd() {
this.open = true;
},
hiddenDialog(){
this.open = false
},
submitForm(){
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.page = 1;
},
},
}
</script>
<style>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 40px;
}
.card-title{
font-size: 18px;
font-weight: bold;
}
</style>
<template>
<div class="app-container">
<el-card>
<div slot="header" class="card-title">请款单</div>
<el-form ref="form" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="3" border class="card">
<el-descriptions-item label="供应商" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="supplierId" required error="供应商不能为空">
<customer-selector v-model="form.supplierId" @change="consignor = $event" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="部门" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="departmentId" required error="部门不能为空">
<el-select v-model="form.departmentId" style="width: 300px;" placeholder="请选择部门">
<el-option v-for="item in deptData" :key="item.id" :label="item.name" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="业务员" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="salesmanId" required error="客户不能为空">
<el-select v-model="form.salesmanId" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="2" border class="card">
<el-descriptions-item label="申请日期" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consignorId" required error="申请日期不能为空">
<el-date-picker clearable v-model="form.followUpTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择申请日期" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="供应商银行账号" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="consignorId" required error="请选择收款账户">
<el-select v-model="form.followUpSalesmanId" placeholder="请选择收款账户">
<el-option v-for="item in bankData" :key="item.id" :label="item.baAccountName+'('+item.baAccountNum+')'" :value="item.id"/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="最后付款日期" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="latestPayAt" required error="最后付款日期不能为空">
<el-date-picker clearable v-model="form.latestPayAt" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择最后付款日期" />
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="结算方式" >
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="settlementType" required error="选择结算方式">
<dict-selector :type="DICT_TYPE.CUSTOMER_BALANCE" v-model="form.settlementType" />
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
<el-card class="card">
<div slot="header" class="card-title">费用信息</div>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" style="padding: 10px;margin-bottom: 10px;"
>添加供应商未付款项</el-button>
</el-col>
<el-table v-loading="loadings" :data="list" border>
<el-table-column label="订单编号" align="center" prop="orderNo" />
<el-table-column label="费用类型" align="center" prop="transportId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="发票号码" align="center" prop="channelName" />
<el-table-column label="应付金额" align="center" prop="toDepartureId" />
<el-table-column label="币种" align="center" prop="toDepartureId" />
<el-table-column label="汇率" align="center" prop="toDepartureId" />
<el-table-column label="税率" align="center" prop="sumNum" />
<el-table-column label="价格合计(RMB)" align="center" prop="payType" />
</el-table>
<el-form ref="forms" :model="form" label-width="120px" label-position="left">
<el-descriptions :column="1" border class="card">
<el-descriptions-item label="账单号" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0;" prop="paymentNo" required error="账单号不能为空">
<el-input v-model="form.paymentNo" placeholder="请输入账单号"></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item label="发票" style="width: 50%;">
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="invoiceStatus" required error="请选择是否开票">
<el-select v-model="form.invoiceStatus" placeholder="请选择是否开票">
<el-option label="未开票" value="0"/>
<el-option label="已开票" value="1"/>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">保 存</el-button>
<el-button type="primary" @click="submitForm">新 增</el-button>
</div>
<el-dialog :visible.sync="open" title="添加未收客户款项" width="80%" append-to-body>
<div>
<!-- <div slot="header" class="card-title">添加未收客户款项</div> -->
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-row>
<el-form-item label="供应商">
<customer-selector v-model="form.supplierId" @change="consignor = $event" />
</el-form-item>
<el-form-item label="始发城市">
<el-select v-model="queryParams.departureId" placeholder="请选择始发地">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的城市">
<el-select v-model="queryParams.objectiveId" placeholder="请选择始发地">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="运输方式" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item>
<el-form-item label="出货渠道" >
<el-select v-model="queryParams.channelId" placeholder="请选择出货渠道">
<el-option v-for="item in channelList" :label="item.nameZh" :value="item.channelId" :key="item.channelId"></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="报关方式">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" />
</el-form-item>
<el-form-item label="控货">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" />
</el-form-item>
<el-form-item label="客户名称" >
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
</el-form-item>
</el-row>
<el-form-item label="订单编号" prop="orderNo">
<el-input v-model="queryParams.orderNo" placeholder="请输入订单编号" clearable/>
</el-form-item>
<el-form-item label="自编号" prop="orderNo">
<el-input v-model="queryParams.orderNo" placeholder="请输入自编号" clearable/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">查询</el-button>
</el-form-item>
</el-form>
</el-col>
<el-table v-loading="loadings" :data="orderData" border @selection-change="handleSelectionChange">>
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column label="自编号" align="center" prop="orderNo" />
<el-table-column label="柜号" align="center" prop="orderNo" />
<el-table-column label="运输方式" align="center" prop="transportId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="出货渠道" align="center" prop="channelName" />
<el-table-column label="始发地" align="center" prop="toDepartureId" />
<el-table-column label="目的地" align="center" prop="toDepartureId" />
<el-table-column label="金额" align="center" prop="totalAmount" />
<el-table-column label="备注" align="center" prop="toDepartureId" />
</el-table>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确认添加</el-button>
<el-button @click="hiddenDialog">取 消</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import { getToken } from "@/utils/auth"
import {getChannelList} from '@/api/ecw/channel'
import CustomerSelector from '@/components/CustomerSelector'
import { getBankAccountPage } from "@/api/ecw/bankAccount"
import { listSimpleDepts } from "@/api/system/dept"
import {getTradeCityList} from '@/api/ecw/region'
export default {
name: "CreatPayment",
components: {
CustomerSelector
},
data() {
return {
orderData:[],
loadings: false,
open:false,
form:{},
creatorData:[],
list:[],
channelList:[],
loading:'',
bankData:[],
params:{
page:1,
rows:20,
},
deptData:[],
deptArr:[],
queryParams:{
page:1,
rows:20,
},
multipleSelection:[],
tradeCityList:[]
}
},
created() {
let that = this
userList('salesman').then(res =>that.creatorData = res.data)
getChannelList().then(res => that.channelList = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data)
getBankAccountPage(that.params).then(res =>that.bankData = res.data.list)
listSimpleDepts().then(res =>{
res.data.forEach((item)=>{
if(item.parentId==0){
that.deptArr.push(item)
}else{
that.deptData.push(item)
}
})
that.deptData.forEach((value)=>{
var dept = that.deptArr.filter(itt=>itt.id==value.parentId)
if(dept.length>0){
value.name =dept[0].name+' | '+ value.name
}
})
})
},
computed:{
expoerCityList(){
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
},
},
methods: {
/** 新增按钮操作 */
handleAdd() {
this.open = true
},
submitForm(){
},
handleQuery(){
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
hiddenDialog(){
this.open = false
}
},
}
</script>
<style>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 40px;
}
.card-title{
font-size: 18px;
font-weight: bold;
}
</style>
<template>
<div class="app-container">
<div slot="header" class="card-title">应付款</div>
<!-- 搜索工作栏 -->
<el-card v-show="showSearch">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px" class="card">
<el-row>
<el-form-item label="柜号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入柜号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="自编号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="订单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="付款单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入付款单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="供应商名称:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入供应商名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="状态:">
<dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="queryParams.control" />
</el-form-item>
<el-form-item label="业务员:">
<el-select v-model="form.salesmanId" placeholder="请选择业务员">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="收款时间:" >
<el-date-picker
v-model="dateType"
type="datetimerange"
range-separator="到"
start-placeholder="请选择日期"
end-placeholder="请选择日期">
</el-date-picker>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="商品名称:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入商品名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="费用类型:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery">查找</el-button>
<el-button style="margin-left:10px" type="success" @click="handleAdd(0)">新增请款单</el-button>
</el-form-item>
</el-row>
</el-form>
</el-card>
<el-table v-loading="loadings" :data="list" border class="card">
<el-table-column label="货柜号" align="center" prop="orderNo" />
<el-table-column label="供应商" align="center" prop="orderNo" />
<el-table-column label="费用类型" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="总金额美元" align="center" prop="totalAmount" />
<el-table-column label="创建时间" align="center" prop="channelName" />
<el-table-column label="创建人" align="center" prop="toDepartureId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="success" @click="open=true">编辑</el-button>
<el-button size="mini" @click="handleAdd(scope.row.consignorId)">请款</el-button>
<el-button size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows"
@pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<el-dialog title="费用登记" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="操作步骤" prop="receiptNo">
<el-input v-model="form.receiptNo" placeholder="请输入收款单号(例:SKD001)" />
</el-form-item>
<el-form-item label="费用类型" prop="departmentId">
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector>
</el-form-item>
<el-form-item label="供应商" prop="departmentName">
<el-input v-model="form.departmentName" placeholder="请输入供应商" />
</el-form-item>
<el-form-item label="金额" prop="salesmanId" style="flex">
<el-input-number v-model="form.num" controls-position="right" :min="1"></el-input-number>
<dict-selector style="width: 120px;" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" v-model="queryParams.feeType"></dict-selector>
</el-form-item>
<el-form-item label="备注" prop="departmentName">
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import { getBankAccountPage } from "@/api/ecw/bankAccount"
import { listSimpleDepts } from "@/api/system/dept"
import {getTradeCityList} from '@/api/ecw/region'
export default {
name: "Payable",
components: {
},
data() {
return {
open:false,
showSearch:true,
loadings: false,
form:{},
creatorData:[],
list:[],
total:0,
dateType:[],
loading:'',
params:{
page:1,
rows:20,
},
queryParams:{
page:1,
rows:20,
},
}
},
created() {
let that = this
userList('salesman').then(res =>that.creatorData = res.data)
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行查询
getReceiptPage(params).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 新增按钮操作 */
handleAdd(id) {
return this.$router.push('creatPayment?consignorId='+id)
},
submitForm(){
this.open = false;
},
/** 取消按钮 */
cancel() {
this.open = false;
},
},
}
</script>
<style>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 40px;
}
.card-title{
font-size: 18px;
font-weight: bold;
}
</style>
<template>
<div class="app-container">
<div slot="header" class="card-title">待收款</div>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8" style="margin-right: 60px;">
<el-button style="float: right;margin-left:10px" type="primary" size="mini" @click="handleAdd(0)">新增收款单</el-button>
<el-button v-if="showSearch" style="float: right;" type="primary" size="mini" icon="el-icon-s-unfold" @click="showSearch=!showSearch"></el-button>
<el-button v-else style="float: right;" type="primary" size="mini" icon="el-icon-s-fold" @click="showSearch=!showSearch"></el-button>
</el-row>
<!-- 搜索工作栏 -->
<el-card v-show="showSearch">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px" class="card">
<el-row>
<el-form-item label="始发城市:">
<el-select v-model="queryParams.departureId" placeholder="请选择始发城市">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的城市:">
<el-select v-model="queryParams.objectiveId" placeholder="请选择目的城市">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="运输方式:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number" />
</el-form-item>
<el-form-item label="控货:">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" />
</el-form-item>
</el-row>
<el-row>
<el-form-item label="订单状态:">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.control" />
</el-form-item>
<el-form-item label="报关方式:">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" />
</el-form-item>
<el-form-item label="订单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="品名:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入品名" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="提单号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入提单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="唛头:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入唛头" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="费用类型:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.feeType"></dict-selector>
</el-form-item>
<el-form-item label="发货人:" prop="consignorId">
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
</el-form-item>
<!-- <el-form-item label="发货人:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入发货人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item> -->
</el-row>
<el-row>
<el-form-item label="收货人:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入收货人" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="自编号:" >
<el-input style="max-width: 188px;" v-model="queryParams.orderNo" placeholder="请输入自编号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<dict-selector :type="DICT_TYPE.BEGINTIME_TYPE_ENDTIME" v-model="queryParams.date"></dict-selector>
<el-date-picker
v-model="dateType"
type="datetimerange"
range-separator="-"
start-placeholder="请选择日期"
end-placeholder="请选择日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
</el-form-item>
</el-row>
</el-form>
</el-card>
<el-table v-loading="loadings" :data="list" border class="card">
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="唛头" align="center" prop="orderNo" />
<el-table-column label="品名" align="center" prop="orderNo" />
<el-table-column label="箱数" align="center" prop="sumNum" />
<el-table-column label="体积/重量" align="center" prop="weight" />
<el-table-column label="发货人" align="center" prop="orderNo" />
<el-table-column label="收货人" align="center" prop="orderNo" />
<el-table-column label="运输方式" align="center" prop="transportId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="出货渠道" align="center" prop="channelName" />
<el-table-column label="始发地" align="center" prop="toDepartureId" />
<el-table-column label="目的地" align="center" prop="toDepartureId" />
<el-table-column label="商品信息" align="center" prop="toDepartureId" />
<el-table-column label="订单状态" align="center" prop="orderStatus">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.orderStatus" />
</template>
</el-table-column>
<el-table-column label="收入类型" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="总金额美元" align="center" prop="totalAmount" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleAdd(scope.row.consignorId)"
>收款</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows"
@pagination="getList"/>
</div>
</template>
<script>
import { userList } from "@/api/system/user"
import {DICT_TYPE} from '@/utils/dict'
import CustomerSelector from '@/components/CustomerSelector'
import {getTradeCityList} from '@/api/ecw/region'
export default {
name: "Receivable",
components: {
CustomerSelector
},
data() {
return {
showSearch:true,
loadings: false,
form:{},
creatorData:[],
list:[],
total:0,
dateType:[],
loading:'',
params:{
page:1,
rows:20,
},
queryParams:{
page:1,
rows:20,
},
tradeCityList:[],
}
},
created() {
let that = this
userList('salesman').then(res =>that.creatorData = res.data)
getTradeCityList().then(res => that.tradeCityList = res.data)
},
computed:{
expoerCityList(){
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
},
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams};
this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime');
// 执行查询
getReceiptPage(params).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 新增按钮操作 */
handleAdd(id) {
return this.$router.push('creatCollection?consignorId='+id)
},
submitForm(){
}
},
}
</script>
<style>
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 40px;
}
.card-title{
font-size: 18px;
font-weight: bold;
}
</style>
......@@ -22,48 +22,48 @@
</div>
<el-descriptions :column="3" border class="card">
<el-descriptions-item label="发货人:">
{{consigneeData[0].name || ''}}
{{consigneeData.length>0?consigneeData[0].name||'':''}}
</el-descriptions-item>
<el-descriptions-item label="手机号:">
{{consigneeData[0].defaultContactPhone || ''}}
{{consigneeData.length>0?consigneeData[0].defaultContactPhone||'':''}}
</el-descriptions-item>
<el-descriptions-item label="联系地址:">
{{consigneeData[0].address || ''}}
{{consigneeData.length>0?consigneeData[0].address||'':''}}
</el-descriptions-item>
<el-descriptions-item label="客户来源:">
{{consigneeData[0].source || ''}}
{{consigneeData.length>0?consigneeData[0].source||'':''}}
</el-descriptions-item>
<el-descriptions-item label="发货人公司名称:">
{{consigneeData[0].company || ''}}
{{consigneeData.length>0?consigneeData[0].company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="社交软件:">
{{consigneeData[0].defaultSocial?consigneeData[0].defaultSocial:''+' '+consigneeData[0].defaultSocialNumber?consigneeData[0].defaultSocialNumber:''}}
{{consigneeData.length>0?consigneeData[0].defaultSocial||'':''+' '+consigneeData.length>0?consigneeData[0].defaultSocialNumber||'':''}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="3" border class="card">
<el-descriptions-item label="收货人:">
{{consigneeData[1].name|| ''}}
{{consigneeData.length>1?consigneeData[1].name||'':''}}
</el-descriptions-item>
<el-descriptions-item label="手机号:">
{{consigneeData[1].defaultContactPhone|| ''}}
{{consigneeData.length>1?consigneeData[1].defaultContactPhone||'':''}}
</el-descriptions-item>
<el-descriptions-item label="联系地址:">
{{consigneeData[1].address|| ''}}
{{consigneeData.length>1?consigneeData[1].address||'':''}}
</el-descriptions-item>
<el-descriptions-item label="客户来源:">
{{consigneeData[1].source|| ''}}
{{consigneeData.length>1?consigneeData[1].source||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货人公司名称:">
{{consigneeData[1].company|| ''}}
{{consigneeData.length>1?consigneeData[1].company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="社交软件:">
{{consigneeData[1].defaultSocial?consigneeData[1].defaultSocial:''+' '+consigneeData[1].defaultSocialNumber?consigneeData[1].defaultSocialNumber:''}}
{{consigneeData.length>1?consigneeData[1].defaultSocial||'':''+' '+consigneeData.length>1?consigneeData[1].defaultSocialNumber||'':''}}
</el-descriptions-item>
</el-descriptions>
<div class="title-font">
<label>始发地:{{list.departureName}}</label>
<label>目的地:{{list.objectiveName}}</label>
<label>始发地:{{list.departureName||''}}</label>
<label>目的地:{{list.objectiveName||''}}</label>
</div>
</div>
......@@ -124,13 +124,13 @@
<div slot="header" class="card-title">费用小计</div>
<el-descriptions border class="card">
<el-descriptions-item label="总件数:">
{{list.estCostVO.totalNum}}
{{list.estCostVO?list.estCostVO.totalNum||'0':0}}
</el-descriptions-item>
<el-descriptions-item label="总货值:">
{{list.estCostVO.totalWorth}}
{{list.estCostVO?list.estCostVO.totalWorth||'0':0}}
</el-descriptions-item>
<el-descriptions-item label="报价费:">
{{list.estCostVO.insuranceFee}}
{{list.estCostVO?list.estCostVO.insuranceFee||'0':0}}
</el-descriptions-item>
</el-descriptions>
<!-- <el-descriptions border class="card">
......
<template>
<div class="app-container">
<el-card class="card">
<div slot="header" class="card-title">订单详情-EC00636U-CNG2506-01</div>
<div slot="header" class="card-title">订单编号:EC00636U</div>
<div slot="header" class="card-title">订单详情{{list.orderNo}}-{{list.orderId}}</div>
<div slot="header" class="card-title">订单编号:{{list.orderNo}}</div>
<el-row :gutter="20">
<el-col :span="12">
<el-descriptions class="margin-top" border title="发货人" :column="2">
<el-descriptions-item label="发货人">kooriookami</el-descriptions-item>
<el-descriptions-item label="发货人电话">18100000000</el-descriptions-item>
<el-descriptions-item label="发货人邮箱">18100000000</el-descriptions-item>
<el-descriptions-item label="发货人">{{list.consignorVO.name}}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{list.consignorVO.phone}}</el-descriptions-item>
<el-descriptions-item label="发货人邮箱">{{list.consignorVO.email}}</el-descriptions-item>
<el-descriptions-item label="发货人公司名称">
<el-tag size="small">学校学校学校学校</el-tag>
<el-tag size="small">{{list.consignorVO.company}}</el-tag>
</el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="12">
<el-descriptions class="margin-top" border title="收货人" :column="2">
<el-descriptions-item label="收货人">kooriookami</el-descriptions-item>
<el-descriptions-item label="收货人电话">18100000000</el-descriptions-item>
<el-descriptions-item label="收货人邮箱">18100000000</el-descriptions-item>
<el-descriptions-item label="收货人">{{list.consigneeVO.name}}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{list.consigneeVO.phone}}</el-descriptions-item>
<el-descriptions-item label="收货人邮箱">{{list.consigneeVO.email}}</el-descriptions-item>
<el-descriptions-item label="收货人公司名称">
<el-tag size="small">学校学校学校学校</el-tag>
<el-tag size="small">{{list.consigneeVO.company}}</el-tag>
</el-descriptions-item>
</el-descriptions>
</el-col>
</el-row>
</el-card>
<el-card class="card">
<div slot="header" class="card-title">物流信息/基础信息</div>
<el-row :gutter="20">
<el-col :span="12">
<el-descriptions class="margin-top" border title="物流信息" :column="2">
<el-descriptions-item label="始发仓">广州仓</el-descriptions-item>
<el-descriptions-item label="目的仓">Dubai</el-descriptions-item>
<el-descriptions-item label="地址" :span="2">广州市白云区鹤边鹤泰二横路民通院内第一栋捷道仓库E&C(收货时间周一至周六10:00-19:30)
</el-descriptions-item>
<el-descriptions-item label="运输方式">海运拼柜</el-descriptions-item>
<el-descriptions-item label="出货渠道">/</el-descriptions-item>
<el-descriptions-item label="始发仓">{{list.logisticsInfoDto.startTitleZh}}</el-descriptions-item>
<el-descriptions-item label="目的仓">{{list.logisticsInfoDto.destTitleZh}}</el-descriptions-item>
<el-descriptions-item label="地址" :span="2">{{list.logisticsInfoDto.startAddressZh}}</el-descriptions-item>
<el-descriptions-item label="运输方式">{{list.logisticsInfoDto.transportId | transportFilter(transportList)}}</el-descriptions-item>
<el-descriptions-item label="出货渠道">{{list.logisticsInfoDto.startTitleZh}}</el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="12">
<el-descriptions class="margin-top" border title="基础信息" :column="2">
<el-descriptions-item label="唛头">kooriookami</el-descriptions-item>
<el-descriptions-item label="送货时间">2022-05-22</el-descriptions-item>
<el-descriptions-item label="是否控货"></el-descriptions-item>
<el-descriptions-item label="填单信息">22箱 1000KG 14</el-descriptions-item>
<el-descriptions-item label="仓库实测">123箱 900Kg 11.23m³</el-descriptions-item>
<el-descriptions-item label="收款数据">123箱 900Kg 11.23m³</el-descriptions-item>
<el-descriptions-item label="入仓类型">一次到齐</el-descriptions-item>
<el-descriptions-item label="单证报关">我司全代</el-descriptions-item>
<el-descriptions-item label="代收货款">是(50000美元)</el-descriptions-item>
<el-descriptions-item label="唛头">{{list.marks}}</el-descriptions-item>
<el-descriptions-item label="送货时间"></el-descriptions-item>
<el-descriptions-item label="是否控货">{{list.isCargoControl?'':''}}</el-descriptions-item>
<el-descriptions-item label="填单信息">{{list.sumNum}}{{list.sumWeight}}Kg {{list.sumVolume}}</el-descriptions-item>
<el-descriptions-item label="仓库实测"></el-descriptions-item>
<el-descriptions-item label="收款数据"></el-descriptions-item>
<el-descriptions-item label="入仓类型"></el-descriptions-item>
<el-descriptions-item label="单证报关">{{list.customsType | customsTypeFilter(customsTypeList)}}</el-descriptions-item>
<el-descriptions-item label="代收货款">{{list.isCollection?'':''}}</el-descriptions-item>
</el-descriptions>
</el-col>
</el-row>
</el-card>
<el-card class="card">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tabs v-model="activeName">
<el-tab-pane label="货物详情" name="first">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="中文品名" />
<el-table-column prop="name" label="英文品名" />
<el-table-column prop="address" label="品牌" />
<el-table-column prop="address" label="填单件数" />
<el-table-column prop="address" label="入仓件数" />
<el-table-column prop="address" label="单位" />
<el-table-column prop="address" label="货值" />
<el-table-column prop="address" label="材质" />
<el-table-column prop="address" label="体积(m3)" />
<el-table-column prop="address" label="重量(kg)" />
<el-table :data="list.orderItemVOList" border style="width: 100%">
<el-table-column prop="prodTitleZh" label="中文品名" />
<el-table-column prop="prodTitleEn" label="英文品名" />
<el-table-column prop="brand" label="品牌" />
<el-table-column prop="num" label="填单件数" />
<el-table-column prop="num" label="入仓件数" />
<el-table-column prop="unit" label="单位" />
<el-table-column prop="worth" label="货值" />
<el-table-column prop="" label="材质" />
<el-table-column prop="volume" label="体积(m3)" />
<el-table-column prop="weight" label="重量(kg)" />
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo"
......@@ -75,16 +73,16 @@
</el-tab-pane>
<el-tab-pane label="订单动态" name="second">
<el-timeline :reverse="true">
<el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.timestamp">
{{ activity.content }}
<el-timeline-item v-for="(activity, index) in list.orderTimeVOList" :key="index" :timestamp="activity.timestamp">
{{ activity.titleZh }}
</el-timeline-item>
</el-timeline>
</el-tab-pane>
<el-tab-pane label="运单资料/提货单" name="three">
<el-descriptions class="margin-top" border title="" :column="3">
<el-descriptions-item label="单票立即转运"></el-descriptions-item>
<el-descriptions-item label="包装类型">纸箱</el-descriptions-item>
<el-descriptions-item label="包装要求备注">多个订单一起打包,不要单独打</el-descriptions-item>
<el-descriptions-item label="单票立即转运">{{list.isSingleTicketTransport?'':''}}</el-descriptions-item>
<el-descriptions-item label="包装类型"></el-descriptions-item>
<el-descriptions-item label="包装要求备注">{{list.remarks}}</el-descriptions-item>
</el-descriptions>
<el-button type="text">查看入仓单</el-button>
<el-button type="text" disabled>
......@@ -109,10 +107,19 @@
<script>
import { getOrder } from '@/api/ecw/order'
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
export default {
name: "detail",
components: {
},
filters: {
customsTypeFilter(e, customsTypeList) {
if (e) return customsTypeList.find(item => item.value == e).label
},
transportFilter(e, transportList) {
if (e) return transportList.find(item => item.value == e).label
}
},
data() {
return {
......@@ -135,15 +142,16 @@ export default {
}, {
content: '创建成功',
timestamp: '2018-04-11'
}]
};
}],
customsTypeList: getDictDatas(DICT_TYPE.ECW_CUSTOMS_TYPE), //报关类型
transportList: getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE), //运输方式
}
},
created() {
if (this.$route.query.orderId) {
this.orderId = this.$route.query.orderId
this.getList();
}
this.getList();
},
methods: {
/** 查询列表 */
......
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-row>
<el-form-item >
<el-select v-model="queryParams.beginCreateTime" style="width: 172px;">
<el-option label="入仓时间" value="0"/>
<el-option label="处理时间" value="1"/>
</el-select>
<el-date-picker
v-model="queryParams.date"
type="datetimerange"
style="margin-left: 10px;"
range-separator="到"
start-placeholder="请选择日期"
end-placeholder="请选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="始发地:">
<el-select v-model="queryParams.startWarehouseId" placeholder="请选择始发地">
<el-option v-for="item in expoerCityList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="目的地:" >
<el-select v-model="queryParams.destWarehouseId" placeholder="请选择目的地">
<el-option v-for="item in importCityList" :label="item.titleZh" :value="item.id" :key="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="运输方式:" >
<dict-selector :type="DICT_TYPE.ECW_TRANSPORT_TYPE" v-model="queryParams.transportId" formatter="number"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="控货:">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" v-model="queryParams.control" @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="异常状态:">
<dict-selector :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" v-model="queryParams.orderExceptionStatus" @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="异常类型" prop="orderExceptionType">
<dict-selector :type="DICT_TYPE.ORDER_ERROR_TYPE" v-model="queryParams.orderExceptionType" @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="订单号" prop="orderNumber">
<el-input v-model="queryParams.orderNumber" placeholder="请输入订单号" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="发货人:" prop="consignorId">
<customer-selector v-model="queryParams.consignorId" @change="consignor = $event" />
</el-form-item>
<el-form-item label="唛头:" prop="marks">
<el-input v-model="queryParams.marks" placeholder="请输入唛头" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="品名:" prop="orderExceptionAmount">
<el-input v-model="queryParams.orderExceptionAmount" placeholder="请输入品名" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="备案:">
<dict-selector :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" v-model="queryParams.productRecord" @keyup.enter.native="handleQuery"/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="跟进业务">
<el-select v-model="queryParams.followUpSalesmanId" placeholder="请选择跟进业务">
<el-option v-for="item in creatorData" :key="item.id" :label="item.nickname" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
</el-form-item>
</el-row>
</el-form>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" border :data="list">
<el-table-column label="序号" align="center" prop="id" type="index">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="订单号" align="center" prop="orderNumber" />
<el-table-column label="唛头" align="center" prop="marks" />
<el-table-column label="总箱数/入仓箱数" align="center" >
<template slot-scope="scope">
<span>{{scope.row.sumNum+'/'+scope.row.sumNum}}</span>
</template>
</el-table-column>
<el-table-column label="体积/重量" align="center">
<template slot-scope="scope">
<span>{{scope.row.sumVolume+"/"+scope.row.sumWeight}}</span>
</template>
</el-table-column>
<el-table-column label="运输方式/目的地" align="center">
<template slot-scope="scope">
<span><dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId"></dict-tag>
{{'/'+importCityName(scope.row.logisticsInfoDto.destWarehouseId)}}</span>
</template>
</el-table-column>
<el-table-column label="控货" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.control" />
</template>
</el-table-column>
<el-table-column label="订单状态" align="center" prop="orderExceptionAmount" >
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="异常状态" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionStatus" />
</template>
</el-table-column>
<el-table-column label="异常类型" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionType" />
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" >处理</el-button>
<el-button size="mini" type="text" icon="el-icon-share">查看</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</div>
</template>
<script>
import {getOrderExceptionPage} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict'
import { userList } from "@/api/system/user"
import CustomerSelector from '@/components/CustomerSelector'
export default {
name: "Exception",
components: {
CustomerSelector
},
data() {
return {
// 遮罩层
loading: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 订单异常列表
list: [],
dateRangeCreateTime: [],
creatorData:[],
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10,
orderId: null,
orderNumber: null,
orderExceptionType: null,
orderExceptionRemark: null,
orderExceptionAmount: null,
orderExceptionAttr: null,
orderExceptionStatus: null,
},
tradeCityList:[],
};
},
created() {
this.getList();
getTradeCityList().then(res => this.tradeCityList = res.data)
userList('salesman').then(res =>this.creatorData = res.data)
},
computed:{
expoerCityList(){
return this.tradeCityList.filter(item => item.type == 2)
},
importCityList(){
return this.tradeCityList.filter(item => item.type == 1)
}
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 处理查询参数
let params = {...this.queryParams}
// 执行查询
getOrderExceptionPage(params).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
importCityName(id){
return this.tradeCityList.filter(item => item.id == id)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRangeCreateTime = [];
this.handleQuery();
},
}
}
</script>
......@@ -17,6 +17,10 @@
<el-form-item label="收货人" prop="consigneeId">
<el-input v-model="queryParams.consigneeId" placeholder="收货人" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="日期筛选">
<dict-selector :type="DICT_TYPE.BEGINTIME_TYPE_ENDTYPE" v-model="dateFilterType" style="width: 220px;margin-right: 0" />
<el-date-picker v-model="dateFilter" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item label="始发地" prop="startWarehouseId">
<el-select v-model="queryParams.startWarehouseId" placeholder="请选择始发地">
......@@ -54,9 +58,9 @@
<el-form-item label="入仓类型" prop="warehouseType">
<dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="queryParams.warehousingType" />
</el-form-item>
<!-- <el-form-item label="跟进客服" prop="">
<customer-selector v-model="" />
</el-form-item> -->
<el-form-item label="跟进客服" >
<customer-selector />
</el-form-item>
<el-form-item label="订单状态" prop="status">
<dict-selector :type="DICT_TYPE.PAY_ORDER_STATUS" v-model="queryParams.status"
@keyup.enter.native="handleQuery" />
......@@ -65,9 +69,9 @@
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="是否齐货" prop="customsType">
<el-form-item label="是否齐货" >
<dict-selector v-model="queryParams.isCargoControl" :type="DICT_TYPE.INFRA_BOOLEAN_STRING" fomatter="bool" />
</el-form-item> -->
</el-form-item>
<el-form-item label="重货比" prop="weightRatio">
<el-input style="width: 100px;" v-model="molecule" placeholder="" clearable @change="moleculeChange"
@keyup.enter.native="handleQuery" />
......@@ -109,7 +113,14 @@
<!-- 列表 -->
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="订单编号" align="center" prop="orderNo" />
<el-table-column label="订单编号" align="center" prop="orderNo" >
<template slot-scope="scope">
<router-link :to="{path: '/order/detail',query: {orderId: scope.row.orderId}}" class="link-type">
<span>{{ scope.row.orderNo }}</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="唛头" align="center" prop="marks" />
<el-table-column label="入仓箱数" align="center" prop="sumNum" />
<el-table-column label="入仓重量" align="center" prop="sumWeight" />
......@@ -130,6 +141,8 @@
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:order:update']">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="$router.push('/order/warehousing?id=' + scope.row.orderId)"
v-hasPermi="['ecw:order:update']">入仓</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:order:update']">退仓</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
......@@ -311,7 +324,9 @@ export default {
tradeCityList: [],
productAttrList: [], // 商品属性
molecule: '', //重货比分子
denominator: '' //重货比分母
denominator: '', //重货比分母
dateFilterType: '', //日期筛选类别
dateFilter: [], //筛选日期
};
},
computed: {
......
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-card>
<div slot="header" class="card-title">报价单详情</div>
<el-descriptions :column="4">
<el-descriptions-item label="唛头">
{{orderData.marks?orderData.marks:''}}
</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">
{{orderData.sumNum?orderData.sumNum:0+'/'+orderData.sumNum?orderData.sumNum:0}}
</el-descriptions-item>
<el-descriptions-item label="订单状态">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="orderData.status" />
</el-descriptions-item>
<el-descriptions-item label="送货日期">
{{orderData.date?orderData.date:''}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="3">
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="orderData.transportId" />
</el-descriptions-item>
<el-descriptions-item label="始发地">
{{importCityName(orderData.startWarehouseId)}}
</el-descriptions-item>
<el-descriptions-item label="目的地">
{{importCityName(orderData.startWarehouseId)}}
</el-descriptions-item>
<el-descriptions-item label="发货人">
{{orderData.consignorVO?orderData.consignorVO.name||'':''}}
</el-descriptions-item>
<el-descriptions-item label="发货公司">
{{orderData.consignorVO?orderData.consignorVO.company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="发货电话">
{{orderData.consignorVO?orderData.consignorVO.phone||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货人">
{{orderData.consigneeVO?orderData.consigneeVO.name||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货公司">
{{orderData.consigneeVO?orderData.consigneeVO.company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货电话">
{{orderData.consigneeVO?orderData.consigneeVO.phone||'':''}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="card">
<!-- 列表 -->
<div slot="header" class="card-title">问题详情</div>
<el-table v-loading="loading" border :data="list">
<el-table-column label="序号" align="center" prop="id" type="index">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="异常类型" align="center" >
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionType" />
</template>
</el-table-column>
<el-table-column label="异常描述" align="center">
<template slot-scope="scope">
<span>{{scope.row.orderExceptionRemark}}</span>
</template>
</el-table-column>
<el-table-column label="金额" align="center" scope="orderExceptionAmount" />
<el-table-column label="异常状态" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_EXCEPTION_STATUS" :value="scope.row.orderExceptionStatus" />
</template>
</el-table-column>
<el-table-column label="附件" align="center">
<template slot-scope="scope">
<span>{{scope.row.orderExceptionRemark}}</span>
</template>
</el-table-column>
<el-table-column label="处理人" align="center" prop="orderExceptionAmount" />
<el-table-column label="处理时间" align="center" prop='orderExceptionTime' />
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" >处理</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
</el-card>
</div>
</template>
<script>
import {getOrderExceptionPage} from "@/api/ecw/orderException"
import {getTradeCityList} from '@/api/ecw/region'
import {DICT_TYPE} from '@/utils/dict'
export default {
name: "Pending",
components: {
},
data() {
return {
// 遮罩层
loading: false,
// 总条数
total: 0,
// 显示搜索条件
showSearch: true,
orderData:{},
// 订单异常列表
list: [],
tradeCityList:[],
queryParams: {
page: 1,
rows: 10,
orderExceptionStatus: 0,
},
};
},
created() {
this.getList();
getTradeCityList().then(res => this.tradeCityList = res.data)
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 执行查询
getOrderExceptionPage(this.queryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.orderData = response.data
this.loading = false;
});
},
importCityName(id){
var arr = this.tradeCityList.filter(item => item.id == id)
return arr.length>0?arr[0].titleZh:''
},
}
}
</script>
<style>
.card-title{
font-size: 18px;
font-weight: bold;
margin-top: 10px;
}
.card{
margin-top: 20px;
}
</style>
<template>
<div class="app-container">
<el-card>
<div slot="header" class="header">
<div class="card-title">新增收款单</div>
<el-button type="primary" icon="el-icon-arrow-left" @click="$router.back()">返回</el-button>
</div>
<el-form :model="orderData" ref="queryForm" size="small" :inline="true" label-width="120px" class="card">
<el-row>
<el-form-item label="订单号:">
{{orderData?orderData.orderNo:''}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="产品名称:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="英文名称:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="运输路线:" >
{{orderData?getRouterNameById(orderData.customerName):''}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="填单参数:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="入仓参数:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row :span="12">
<el-form-item label="异常描述:">
{{orderData.totalMoney}}
</el-form-item>
<el-button type="primary" plain icon="el-icon-plus" style="margin-left: 200px;" @click="handleAdd">新增收款单</el-button>
</el-row>
</el-form>
<el-table v-loading="loading" border :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column label="品名" align="center" prop="goodsType">
<template slot-scope="scope">
{{scope.row.prodTitleZh+'('+scope.row.prodTitleEn+')'}}
</template>
</el-table-column>
<el-table-column label="箱数" prop="num" />
<el-table-column label="体积/重量"prop="volume">
<template slot-scope="scope">
{{scope.row.volume+'/'+scope.row.weight}}
</template>
</el-table-column>
<el-table-column label="收款类型">
<template >
'预付'
</template>
</el-table-column>
<el-table-column label="收入类型">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.feeType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="应收金额" prop="num" />
<el-table-column label="总金额美元" align="center" prop="totalAmount" />
<el-table-column label="总金额RMB" align="center" prop="totalAmount" />
<el-table-column label="实收金额" prop="volume" />
<el-table-column label="付款人" prop="weight" />
<el-table-column label="付款状态" prop="worth">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_RECEIPT_STATE" :value="scope.row.state"></dict-tag>
</template>
</el-table-column>
</el-table>
<el-form :model="orderData" ref="queryForms" size="small" :inline="true" label-width="120px" class="card">
<el-row>
<el-form-item label="应付金额:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="核销金额:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="核销比例:">
{{orderData.totalMoney}}
</el-form-item>
</el-row>
<el-row>
<el-form-item label="处理结果:" >
<el-select v-model="orderData.objectiveId" placeholder="处理结果">
<el-option label="待处理" value="1"></el-option>
<el-option label="不需要预付" value="2"></el-option>
<el-option label="已确认收款" value="3"></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row :span="8">
<el-form-item label="备注:" size="medium">
<el-input style="width: 500px;" type="textarea" v-model="orderData.remark" />
</el-form-item>
</el-row>
</el-form>
</el-card>
<div slot="footer" class="dialog-footer">
<div>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button plain type="primary" @click="submitForm">取消</el-button>
</div>
<el-button type="primary" @click="submitForm">转交</el-button>
</div>
</div>
</template>
<script>
import {DICT_TYPE} from '@/utils/dict'
import {openedRouterList as getOpenedRouterList} from '@/api/ecw/warehouse'
export default {
name: "PrepayDeal",
components: {
},
data() {
return {
// 遮罩层
loading: false,
list: [],
types:'package,bag',
importance:1,
orderData:{},
orderId:0,
//发货/收货人信息
consigneeData:[],
routerList:[],
multipleSelection:[]
};
},
created() {
if(this.$route.query.orderId){
this.orderId = this.$route.query.orderId
this.getList();
}
},
methods: {
/** 查询列表 */
getList() {
let that = this
// that.loading = true;
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
// 获取路线
getOpenedRouterList(){
let params = {}
if(this.list.departureId){
params.startCityId = this.list.departureId
}
if(this.list.objectiveId){
params.destCityId = this.list.objectiveId
}
getOpenedRouterList(params).then(res => this.routerList = res.data)
},
// 根据线路id显示线路名称
getRouterNameById(routerId){
// return routerId => {
let router = this.routerList.find(item => item.id == routerId)
console.log({router})
if(router){
return router.startTitleZh + ' >>>' + router.destTitleZh
}
return '-'
// }
},
submitForm(){
},
/** 跟进按钮操作 */
handleAdd() {
// this.$router.push({
// path: "/offer/logList",
// query:{
// offerId:this.offerId,
// relationId:this.list.consignorId
// }
// });
},
}
};
</script>
<style>
.card-title{
font-size: 18px;
font-weight: bold;
margin-top: 10px;
}
.header{
width: 60%;
display: flex;
align-items: center;
justify-content: space-between;
}
.card{
margin-top: 20px;
}
.dialog-footer{
padding: 40px;
width: 60%;
align-items: center;
display: flex;
justify-content: space-between;
}
</style>
<template>
<div>
<el-dialog
title="入仓-货物入仓"
:visible.sync="opened"
width="960px"
:before-close="handleClose()"
>
<el-descriptions border :column="2">
<el-descriptions-item label="中文品名"></el-descriptions-item>
<el-descriptions-item label="英文品名"></el-descriptions-item>
<el-descriptions-item label="品牌"></el-descriptions-item>
<el-descriptions-item label="是否备案"></el-descriptions-item>
<el-descriptions-item label="填单参数"></el-descriptions-item>
</el-descriptions>
<el-form ref="form" :model="form" label-width="80px" style="margin-top: 20px">
<el-form-item label="材质">
<dict-selector :type="DICT_TYPE.ECW_PRODUCT_MATERIAL" v-model="form.material"></dict-selector>
</el-form-item>
<el-form-item label="入仓时间">
<el-date-picker v-model="form.time" type="datetime" placeholder="请选择入仓时间"></el-date-picker>
</el-form-item>
</el-form>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>入仓记录</span>
<el-button style="float: right;margin-left: 15px" size="mini" type="primary" icon="el-icon-minus" circle></el-button>
<el-button style="float: right" size="mini" type="primary" icon="el-icon-plus" circle></el-button>
</div>
<el-table
:data="[]"
style="width: 100%">
<el-table-column label="箱数">
</el-table-column>
<el-table-column label="包装类型">
</el-table-column>
<el-table-column label="长(cm)">
</el-table-column>
<el-table-column label="款(cm)">
</el-table-column>
<el-table-column label="高(cm)">
</el-table-column>
<el-table-column label="体积(m³)">
</el-table-column>
<el-table-column label="重量(Kg)">
</el-table-column>
<el-table-column label="数量">
</el-table-column>
<el-table-column label="快递单号">
</el-table-column>
</el-table>
</el-card>
<span slot="footer">
<el-button @click="opened = false">关 闭</el-button>
<el-button type="primary" @click="opened = false">提 交</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {getOrderWarehouseIn} from "@/api/ depository/orderWarehouseIn"
import dictSelector from "@/components/DictSelector"
import {DICT_TYPE} from "@/utils/dict"
export default {
name: 'editDialog',
components: {
dictSelector
},
props: {
visible: {
type: Boolean,
default: false
},
id: Number
},
mounted() {
},
data() {
return {
DICT_TYPE,
opened: true,
form: {
material: undefined,
time: 0
},
orderItem: {}
};
},
watch: {
visible(val) {
if (val) {
this.opened = true
if (this.id) {
getOrderWarehouseIn(this.id).then(r => {
this.orderItem = r.data
})
}
} else {
}
},
opened(val) {
if (val) {
} else {
this.$emit('update:visible', false)
}
}
},
methods: {
handleClose() {},
}
}
</script>
<style scoped>
</style>
<template>
<div class="app-container">
<h2>入仓操作-NC1231231N</h2>
<h2>入仓操作-{{ order.orderNo }}</h2>
<order-base-info :order="order"></order-base-info>
<div style="margin-top: 10px">
<span>储位:</span><el-button type="primary" size="mini">选择</el-button>
<div style="margin-top: 20px">
<span>储位:</span><el-button type="primary" size="mini" @click="areaVisible = true">选择</el-button>
</div>
<h2>货物信息</h2>
......@@ -55,7 +55,7 @@
prop="address"
label="操作">
<template v-slot="{row}">
<el-button size="mini" type="text">入仓</el-button>
<el-button size="mini" type="text" @click="handleWarehousing(row.prodId)">入仓</el-button>
<el-button size="mini" type="text">追加</el-button>
<el-button size="mini" type="text">退仓</el-button>
</template>
......@@ -154,33 +154,55 @@
<el-button type="primary">完成入仓</el-button>
</div>
</el-form>
<warehouse-area-dialog :visible.sync="areaVisible"></warehouse-area-dialog>
<edit-dialog :visible.sync="warehousingVisible" :id="warehousingId"></edit-dialog>
</div>
</template>
<script>
import {getCurrencyList} from "@/api/ecw/currency"
import {getOrder} from "@/api/ecw/order"
import orderBaseInfo from "@/views/ecw/order/warehousing/components/orderBaseInfo"
import orderBaseInfo from "@/components/OrderBaseInfo"
import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
import editDialog from '@/views/ecw/order/warehousing/components/editDialog'
export default {
name: "Warehousing",
components: {
orderBaseInfo
orderBaseInfo,
WarehouseAreaDialog,
editDialog
},
mounted() {
if(this.$route.query.id){
this.orderId = this.$route.query.id
getOrder(this.orderId).then(r => this.order = r.data)
}
getCurrencyList().then(res => this.currencyList = res.data)
getOrder(15).then(r => this.order = r.data)
},
data() {
return {
areaVisible: false,
warehousingVisible: false,
form: {
a: '',
b: 3
},
currencyList:[],
order: {}
order: {},
warehousingId: undefined
}
},
methods: {
handleWarehousing(id) {
this.warehousingId = id
this.warehousingVisible = true
}
}
}
......
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