Commit e6eff34c authored by dcy's avatar dcy

订单特殊,订单费用申请,订单关联

parent 7a487e7e
......@@ -52,3 +52,27 @@ export function exportOrderExcel(query) {
responseType: 'blob'
})
}
//根据订单号获得订单费用申请列表
export function feeApplicationListByOrderId(query){
return request({
url:'/order/fee-application/listByOrderId',
method: 'get',
params: query,
})
}
//费用申请提交
export function feeApplicationCreate(data){
return request({
url:'order/fee-application/create',
method:'post',
data:data,
})
}
// 创建特殊
export function specialNeedCreate(data){
return request({
url:'ecw/order-special-need/create',
method:'post',
data:data,
})
}
......@@ -333,6 +333,7 @@ export const constantRoutes = [
path: 'fee-application/:orderId',
component:()=> import('@/views/ecw/order/feeApplication'),
name: 'feeApplication',
props: true,
meta: {
title: '费用申请',
icon:'',
......
......@@ -143,6 +143,11 @@ export const DICT_TYPE = {
ORDER_ERROR_TYPE:'order_error_type',//订单异常类型
ORDER_EXCEPTION_STATUS:'order_exception_status',//异常订单状态
ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'fee_type',
PAY_TYPE:'pay_type',
RECEIVE_FLAG:'receive_flag',
COMDINED_VALUE_ADDED_FEE:'combined_value_added_fee',
ORDER_SPECIAL_NEEDS:'order_special_needs'
}
/**
......
<template>
<div class="associated-order">
<h1 class="title">
关联订单-ECP0013123N
关联订单-{{orderDetails.orderNo}}
</h1>
<el-divider></el-divider>
<orde-details-form></orde-details-form>
<orde-details-form :details ="orderDetails" ></orde-details-form>
<el-divider></el-divider>
<el-form inline label-width="100px">
<el-form-item label="订单号"><div class="content">
......@@ -75,12 +75,28 @@
<script>
//关联订单
import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm";
import {getOrder} from "@/api/ecw/order";
export default {
name: "associatedOrder",
props:{
orderId:[String,Boolean]
},
components:{
ordeDetailsForm
}
},
data(){
return {
orderDetails:{}
}
},
created() {
getOrder(this.orderId).then( r =>{
if(r.code === 0){
this.orderDetails = r.data;
}
})
},
}
</script>
......
<template functional>
<template>
<div>
<el-form inline label-width="120px" label-position="left" >
<el-row>
<el-col :span="6">
<el-form-item label="唛头"><div class="content"></div></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="已到箱数/总箱数"><div class="content"></div></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="订单状态"><div class="content"></div></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="送货日期"><div class="content"></div></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6"><el-form-item label="运输方式"><div class="content"></div></el-form-item></el-col>
<el-col :span="6"><el-form-item label="出货渠道"><div class="content"></div></el-form-item></el-col>
<el-col :span="6"><el-form-item label="始发地"><div class="content"></div></el-form-item></el-col>
<el-col :span="6"> <el-form-item label="目的地"><div class="content"></div></el-form-item></el-col>
</el-row>
<el-row>
<el-col span="6"><el-form-item label="发货人姓名"><div class="content"></div></el-form-item></el-col>
<el-col span="6"><el-form-item label="发货人公司"><div class="content"></div></el-form-item></el-col>
<el-col span="6"> <el-form-item label="发货人电话"><div class="content"></div></el-form-item></el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="收货人姓名"><div class="content"></div></el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="收货人电话"><div class="content"></div></el-form-item>
</el-col>
<el-col span="6">
<el-form-item label="货人电话"><div class="content"></div></el-form-item>
</el-col>
</el-row>
</el-form>
<el-descriptions class="margin-top" border :column="4">
<el-descriptions-item label="唛头">{{details.marks}}</el-descriptions-item>
<el-descriptions-item label="已到箱数/总箱数">{{details.sumQuantity}}/{{details.sumNum}}</el-descriptions-item>
<el-descriptions-item label="订单状态">{{details.status}}</el-descriptions-item>
<el-descriptions-item label="送货日期">{{}}</el-descriptions-item>
<el-descriptions-item label="运输方式">{{details.transportId}}</el-descriptions-item>
<el-descriptions-item label="出货渠道">{{details.channelId}}</el-descriptions-item>
<el-descriptions-item label="始发地">{{details.logisticsInfoDto.startWarehouseId}}</el-descriptions-item>
<el-descriptions-item label="目的地">{{details.logisticsInfoDto.destWarehouseId}}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{details.consignorVO.customerId}}</el-descriptions-item>
<el-descriptions-item label="发货人公司">{{details.consignorVO.company}}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{details.consignorVO.phone}}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="收货人姓名">{{details.consigneeVO.customerId}}</el-descriptions-item>
<el-descriptions-item label="收货人公司">{{details.consigneeVO.company}}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{details.consigneeVO.phone}}</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
name: "ordeDetailsForm"
}
</script>
<style scoped lang="scss">
v-deep div{
.el-form {
.el-form-item{
.el-form-item__label{
font-size: 12px;
color: red;
props:{
details:{
type:Object,
default:()=>{
return {
logisticsInfoDto:undefined,
consignorVO:undefined,
consigneeVO:undefined,
}
}
}
}
},
},
name: "ordeDetailsForm",
}
</script>
.content{
width: 150px;
height: 30px;
border: 1px solid;
}
</style>
<template>
<div>
<el-dialog center width="50%" :visible="show">
<el-dialog :before-close="()=>{
clearFrom();$emit('update:show',false)
}" center width="80%" :visible.sync="show">
<div class="content">
<el-form label-width="180px" label-position="left">
<el-form-item label="特殊要求"></el-form-item>
<el-form-item label="特殊要求备注"><el-input></el-input></el-form-item>
<el-form-item label="内陆运费垫付预计金额">
<el-row :gutter="20">
<el-col :span="6"><el-input></el-input></el-col>
<el-col :span="3"><el-input></el-input></el-col>
</el-row></el-form-item>
<el-form-item label="付款类型">
<el-input></el-input>
<el-form-item label="特殊要求">
<dict-selector v-model="form.advanceType" formType="radio" :type="DICT_TYPE.ORDER_SPECIAL_NEEDS" ></dict-selector>
</el-form-item>
<el-form-item label="特殊要求备注"><el-input type="textarea" style="width: 300px;" v-model="form.todoDetail"></el-input></el-form-item>
<el-form-item label="内陆运费垫付预计金额" v-if="form.advanceType == 6">
<el-input style="width: 300px;" v-model="form.transFee">
<div style="width: 100px;" slot="append" >
<dict-selector v-model="form.transCurrency" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" ></dict-selector>
</div>
</el-input>
</el-form-item>
<el-form-item label="付款类型" v-if="form.advanceType == 6">
<div style="width: 300px;">
<dict-selector v-model="form.payType" :type="DICT_TYPE.PAY_TYPE" ></dict-selector>
</div>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button>提交</el-button>
<el-button>取消</el-button>
<el-button @click="submit">提交</el-button>
<el-button @click="clearFrom();$emit('update:show',false)">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import {specialNeedCreate} from "@/api/ecw/order";
export default {
name: "specialNeeds",
created() {
this.clearFrom()
},
props:{
orderId:{
type:[String,Number],
},
show:Boolean,
},
data(){
return{
show:true,
getDictDatas,
DICT_TYPE,
form:{},
}
},
methods:{
clearFrom(){
this.form = {
advanceType:undefined,
advanceWho: undefined,
payType: undefined,
todoDetail: undefined,
transCurrency: undefined,
transFee: undefined
}
},
submit(){
specialNeedCreate(this.form).then(r=>{
console.log(r)
if(r.code === 0){
this.clearFrom();
this.$emit('update:show',false)
}
})
},
},
watch:{
orderId(val){
this.form.orderId = val;
},
'form.advanceType'(val){
this.form.transFee = undefined;
this.form.transCurrency = undefined;
this.form.payType = undefined;
}
}
}
......
<template>
<div class="fee-application">
<h1>费用申请-NC1231231
<h1>费用申请-{{orderDetails.orderNo}}
</h1>
<el-divider></el-divider>
<el-form label-width="100px" inline>
<el-form-item label="订单号:"><div class="content"></div></el-form-item>
<el-form-item label="发货人:"><div class="content"></div></el-form-item>
<el-form-item label="唛头"><div class="content"></div></el-form-item>
<el-form-item> <el-button>添加申请</el-button></el-form-item>
<el-form-item label="订单号:"><div class="content">
{{orderDetails.orderNo}}
</div></el-form-item>
<el-form-item label="发货人:"><div class="content">{{orderDetails.consignorVO.name}}</div></el-form-item>
<el-form-item label="唛头"><div class="content">{{orderDetails.marks}}</div></el-form-item>
<el-form-item> <el-button @click="addCost">添加申请</el-button></el-form-item>
</el-form>
<el-table>
<el-table-column label="序号"></el-table-column>
<el-table-column label="费用类型"></el-table-column>
<el-table-column label="金额"></el-table-column>
<el-table-column label="货币类型"></el-table-column>
<el-table-column label="付款类型"></el-table-column>
<el-table-column label="备注"></el-table-column>
<el-table-column label="确认收款"></el-table-column>
<el-table-column label="申请人"></el-table-column>
<el-table-column label="审核人"></el-table-column>
<el-table-column label="操作"></el-table-column>
<el-table :data="list">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="费用类型">
<template v-slot:default="scope">
<dict-selector :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
</template>
</el-table-column>
<el-table-column label="金额">
<template v-slot:default = 'scope'>
<el-input v-model="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column label="货币类型">
<template v-slot:default = 'scope'>
<dict-selector :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" v-model="scope.row.applicationFeeCurrency" />
</template>
</el-table-column>
<el-table-column label="付款类型">
<template v-slot:default = 'scope'>
<dict-selector :type="DICT_TYPE.PAY_TYPE" v-model="scope.row.payType" />
</template>
</el-table-column>
<el-table-column label="备注">
<template v-slot:default="scope">
<el-input v-model="scope.row.remarks" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column label="确认收款">
<template v-slot:default ="scope">
<dict-tag :type="DICT_TYPE.RECEIVE_FLAG" :value="scope.row.receiveFlag" />
</template>
</el-table-column>
<el-table-column label="申请人">
<template v-slot:default ="scope">
{{scope.row.status == 0 ?'未提交': scope.row.applicationAuthor}}
</template>
</el-table-column>
<el-table-column label="审核人">
<template v-slot:default ="scope">
{{scope.row.status == 0 ?'未提交': scope.row.shenhe}}
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot:default = 'scope'>
<el-button type="text" v-if="scope.row.status !== 0">{{status[scope.row.status]}}</el-button>
<el-button type="text" v-if="scope.row.status === 2">修改</el-button>
</template>
</el-table-column>
</el-table>
<div style="text-align: center;margin-top: 20px;">
<el-button style="margin-right: 30px;">提交</el-button>
<el-button style="margin-right: 30px;" @click="submit">提交</el-button>
<el-button>取消</el-button>
</div>
</div>
</template>
<script>
import {getOrder, feeApplicationListByOrderId, feeApplicationCreate} from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import Template from "@/views/cms/template";
let status = {0:'未提交',1:'审核中',2:'审核通过',3:'审核不通'}
export default {
name: "feeApplication"
name: "feeApplication",
components: {Template},
props:{
orderId:[Number, String],
},
data(){
return {
orderDetails:{},
list:[],
DICT_TYPE,
getDictDatas,
status
}
},
created() {
getOrder(this.orderId).then(r =>{
this.orderDetails = r.data
})
this.feeApplicationFn();
},
methods:{
feeApplicationFn(){
feeApplicationListByOrderId({orderId:this.orderId}).then(r => {
console.log(r)
})
},
addCost(){
this.list.push(
{
orderId:this.orderId,
feeType:undefined,//费用申请类型
applicationFee:undefined,//金额
applicationFeeCurrency:undefined,// 费用申请货币类型
remarks:undefined,
receiveFlag:0,
applicationAuthor:undefined,
shenhe:undefined,
status:0,
}
)
},
submit(){
feeApplicationCreate(this.list[0]).then(r=>{
console.log(r);
})
}
}
}
</script>
......
......@@ -147,6 +147,9 @@
v-hasPermi="['ecw:order:update']">退仓</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['ecw:order:delete']">删除</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/fee-application/${scope.row.orderId}`)">费用申请</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;isShow = true" >特殊</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/associated-order/${scope.row.orderId}`)" >关联</el-button>
</template>
</el-table-column>
</el-table>
......@@ -185,6 +188,7 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<special-needs :show.sync="isShow":order-id="orderId" ></special-needs>
</div>
</template>
......@@ -193,13 +197,15 @@ import Selector from '@/components/Selector'
import ProductSelector from '@/components/ProductSelector'
import { getProductAttrList } from '@/api/ecw/productAttr'
import CustomerSelector from '@/components/CustomerSelector'
import specialNeeds from '@/views/ecw/order/components/specialNeeds';
import { getTradeCityList } from '@/api/ecw/region'
import { createOrder, updateOrder, deleteOrder, getOrder, getOrderPage, exportOrderExcel } from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
export default {
name: "Order",
components: {
CustomerSelector, ProductSelector, Selector
CustomerSelector, ProductSelector, Selector,specialNeeds,
},
filters: {
cargoControlStatusFilter(e, cargoControlStatusList) {
......@@ -327,6 +333,8 @@ export default {
denominator: '', //重货比分母
dateFilterType: '', //日期筛选类别
dateFilter: [], //筛选日期
isShow:false,//特殊显示
orderId:undefined,
};
},
computed: {
......
......@@ -10,12 +10,25 @@
<h1>货物信息</h1>
<el-table border >
<el-table-column label="序号"></el-table-column>
<el-table-column label="品名"></el-table-column>
<el-table-column label="填单货物属性"></el-table-column>
<el-table-column label="入库货物属性"></el-table-column>
<el-table-column label="入库统计"></el-table-column>
<el-table-column label="收款货物属性"></el-table-column>
<el-table-column label="最后操作时间"></el-table-column>
<el-table-column label="品名">
<template v-slot:default = "scope">
</template>
</el-table-column>
<el-table-column label="填单货物属性">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="入库货物属性">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="入库统计">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="收款货物属性">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="最后操作时间">
<template v-slot:default = "scope"></template>
</el-table-column>
<el-table-column label="状态"></el-table-column>
</el-table>
<el-row style="margin-top: 20px;line-height: 3;" type="flex" justify="center" align="center">
......
......@@ -434,7 +434,7 @@ export default {
seTupdateBackletter({userId:this.publicObj.id,backLetter:this.guaranteeUrl}).then(r=>{
if(r.code === 0){
this.guaranteeShow = false;
this.guaranteeUrl = true;
this.guaranteeUrl = '';
this.$message.success('保存成功');
}
})
......
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