Commit 9d7e2f8d authored by huyf's avatar huyf

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

parents 0cadbfc7 b0b46e09
......@@ -355,14 +355,14 @@ export function abnormalCreate(data) {
* 获得已预装部分列表
*
* @export
* @param {*} params
* @param {*} data
* @return {*}
*/
export function secGoodsList(params) {
export function secGoodsList(data) {
return request({
url: "/ecw/box-preload-goods/secGoodsList",
method: "get",
params,
method: "post",
data,
});
}
......@@ -370,14 +370,14 @@ export function secGoodsList(params) {
* 获得预装分页
*
* @export
* @param {*} params
* @param {*} data
* @return {*}
*/
export function preloadPage(params) {
export function preloadPage(data) {
return request({
url: "/ecw/box-preload-goods/preloadPage",
method: "get",
params,
method: "post",
data,
});
}
......@@ -396,6 +396,37 @@ export function createSection(data) {
});
}
/**
* 查询出货单下的所有部分列表
*
* @export
* @param {*} data
* @return {*}
*/
export function getSectionList(params) {
return request({
url: "/ecw/box-preload-section/list",
method: "get",
params,
});
}
/**
* 装柜订单明细
*
* @export
* @param {*} data
* @return {*}
*/
export function boxGoodsDetail(data) {
return request({
url: "/ecw/box-preload-goods/boxGoodsDetail",
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: jsonToFormData(data),
});
}
/**
* 删除预装部分
*
......
......@@ -80,4 +80,72 @@ export function getPaymentList(query) {
method: 'get',
params: query
})
}
\ No newline at end of file
}
// 获取付款单详情
export function getPaymentInfoByIds(query) {
return request({
url: '/ecw/payment/get',
method: 'get',
params: query
})
}
// 获得付款单付款明细
export function getPaymentItem(query) {
return request({
url: '/ecw/payment/getPaymentItem',
method: 'get',
params: query
})
}
// 更新付款单
export function updatePayment(data) {
return request({
url: '/ecw/payment/update',
method: 'put',
data: data
})
}
// 删除付款单
export function deletePayment(id) {
return request({
url: '/ecw/payment/delete?id=' + id,
method: 'delete'
})
}
// 审核付款单
export function paymentVerify(query) {
return request({
url: '/ecw/payment/verify',
method: 'post',
data: query
})
}
// 核销付款单
export function paymentVerification(id) {
return request({
url: '/ecw/payment/verification/' + id,
method: 'GET'
})
}
// 反核销付款单
export function paymentVerificationCancel(id) {
return request({
url: '/ecw/payment/verificationCancel/' + id,
method: 'GET'
})
}
// 反审核付款单
export function paymentVerifyCancel(id) {
return request({
url: '/ecw/payment/verifyCancel/' + id,
method: 'GET'
})
}
......@@ -279,6 +279,13 @@ export function feeApplicationGet(params){
params
})
}
export function getAdjustInfo(params){
return request({
url:'/order/order-warehouse-in/get-adjust-info',
method:'get',
params,
})
}
export function warehouseAdjustArrived(data){
return request({
url:'/order/order-warehouse-in/warehouse-adjust-arrived',
......
import request from '@/utils/request'
// 创建需知
export function createNeedKnow(data) {
return request({
url: '/system/need-know/create',
method: 'post',
data: data
})
}
// 更新需知
export function updateNeedKnow(data) {
return request({
url: '/system/need-know/update',
method: 'put',
data: data
})
}
// 删除需知
export function deleteNeedKnow(id) {
return request({
url: '/system/need-know/delete?id=' + id,
method: 'delete'
})
}
// 获得需知
export function getNeedKnow(id) {
return request({
url: '/system/need-know/get?id=' + id,
method: 'get'
})
}
// 获得需知分页
export function getNeedKnowPage(query) {
return request({
url: '/system/need-know/page',
method: 'get',
params: query
})
}
// 导出需知 Excel
export function exportNeedKnowExcel(query) {
return request({
url: '/system/need-know/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -4,36 +4,38 @@
<el-descriptions-item label="唛头">{{ order.marks }}</el-descriptions-item>
<el-descriptions-item label="已到箱数">{{ order.sumNum }}</el-descriptions-item>
<el-descriptions-item label="订单状态"><dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="order.status" /></el-descriptions-item>
<el-descriptions-item label="送货时间">todo</el-descriptions-item>
<el-descriptions-item label="送货时间">{{ order.consigneeVO && order.consigneeVO.deliveryDate || '' }}</el-descriptions-item>
<el-descriptions-item label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.logisticsInfoDto.transportId"></dict-tag>
</el-descriptions-item>
<el-descriptions-item label="始发地">{{ order.logisticsInfoDto.startWarehouseId }}</el-descriptions-item>
<el-descriptions-item label="目的地">{{ order.logisticsInfoDto.destWarehouseId }}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{ order.consignorVO && order.consignorVO.name}}</el-descriptions-item>
<el-descriptions-item label="始发地">{{ order.logisticsInfoDto.startAddressZh || '' }}</el-descriptions-item>
<el-descriptions-item label="目的地">{{ order.logisticsInfoDto.destTitleZh || '' }}</el-descriptions-item>
<el-descriptions-item label="发货人姓名">{{ order.consignorVO && order.consignorVO.name || ''}}</el-descriptions-item>
<el-descriptions-item label="发货人公司">{{ order.consignorVO && order.consignorVO.company || '' }}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{ order.consignorVO && order.consignorVO.phone }}</el-descriptions-item>
<el-descriptions-item label="收货人姓名">{{ order.consigneeVO && order.consigneeVO.name}}</el-descriptions-item>
<el-descriptions-item label="收货人公司">{{ order.consigneeVO && order.consigneeVO.company }}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{ order.consigneeVO && order.consigneeVO.phone }}</el-descriptions-item>
<el-descriptions-item label="入仓类型">{{ order.warehouseType }}</el-descriptions-item>
<el-descriptions-item label="发货人电话">{{ order.consignorVO && order.consignorVO.phone || '' }}</el-descriptions-item>
<el-descriptions-item label="收货人姓名">{{ order.consigneeVO && order.consigneeVO.name || ''}}</el-descriptions-item>
<el-descriptions-item label="收货人公司">{{ order.consigneeVO && order.consigneeVO.company || '' }}</el-descriptions-item>
<el-descriptions-item label="收货人电话">{{ order.consigneeVO && order.consigneeVO.phone || '' }}</el-descriptions-item>
<el-descriptions-item label="入仓类型">{{ getDictDataLabel(DICT_TYPE.ECW_WAREHOUSING_TYPE, order.warehouseType) }}</el-descriptions-item>
<el-descriptions-item label="订单号">{{ order.orderNo }}</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
import {DICT_TYPE} from "@/utils/dict"
import {DICT_TYPE, getDictDataLabel} from "@/utils/dict"
export default {
name: "orderBaseInfo",
props: {
order: Object
},
data () {
return {
DICT_TYPE
DICT_TYPE,
getDictDataLabel
}
}
}
......
<template>
<el-select
v-model="index"
filterable
clearable
remote
reserve-keyword
placeholder="请选择"
:loading="loading">
<el-option
v-for="(item, index) in list"
:key="item.id"
:label="`${item.nickname}`"
:value="index">
</el-option>
</el-select>
</template>
<script>
import {getCustomerContactsSelect, getCustomerContacts} from '@/api/ecw/customerContacts'
import {listSimpleUsers} from '@/api/system/user'
export default {
props:{
value: [String, Number]
},
data(){
return {
index: null,
list:[],
loading: false,
size: 20
}
},
watch:{
index(val){
this.$emit('input', val !== null ? this.list[val].id : null)
this.$emit('change', val !== null ? this.list[val]: null)
},
value(val){
// this.init()
}
},
created(){
listSimpleUsers().then(res => {
this.list = res.data
})
// this.init()
},
methods:{
/* init(){
console.log('初始化联系人选择', this.value)
if(!this.value) return
let index = this.list.findIndex(item => item.customerContactsId == this.value)
if(index < 0){
getCustomerContactsSelect({ids: this.value}).then(res => {
if(!res.data || !res.data.length){
return this.$message.error('联系人信息获取失败')
}
this.list.unshift(res.data[0])
this.index = 0
})
}
}, */
/* remoteMethod(keyword){
let params = {
size: this.size
}
params.searchKey = keyword
this.loading = true
getCustomerContactsSelect(params)
.then(res => this.list = res.data)
.finally(() => this.loading = false)
} */
}
}
</script>
\ No newline at end of file
......@@ -308,30 +308,6 @@ export const constantRoutes = [
noCache:true,
}
},
{
path: 'batch-single-application',
component:(resolve)=> require(['@/views/ecw/order/batchSingleApplication'],resolve),
name: 'batchSingleApplication',
props: route => ({orderList:route.query.list}),
meta: {
title: '批量调仓申请',
icon:'',
activeMenu: '/order/batchSingleApplication',
noCache:true
}
},
{
path: 'fee-application/:orderId',
component:(resolve)=> require(['@/views/ecw/order/feeApplication'],resolve),
name: 'feeApplication',
props: true,
meta: {
title: '费用申请',
icon:'',
activeMenu: '/order/feeApplication'
}
},
{
path: 'mutex-order/:orderId',
component:()=> import('@/views/ecw/order/mutexOrder'),
......@@ -387,13 +363,13 @@ export const constantRoutes = [
hidden: true,
redirect: 'noredirect',
children: [
/* {
path: 'query/:boxId(\\d+)',
{
path: 'query/:shipmentId(\\d+)',
component: (resolve) => import('@/views/ecw/box/query'),
props: true,
name: 'boxQuery',
meta: {title: '出货详情', icon: '', activeMenu: '/shipment/box'}
}, */
name: 'shippingDetail',
meta: {title: '出货详情', icon: '', activeMenu: '/shipment/boxDetail'}
},
{
path: 'shippingSea/:shipmentId(\\d+)',
component: (resolve) => import('@/views/ecw/box/shippingSea/shippingSea'),
......
......@@ -103,6 +103,7 @@ export const DICT_TYPE = {
ECW_BEGINTIME_TYPE_ENDTIME: 'begintime_type_endtime', // 时间筛选字段(订单)
ECW_CUSTOM_DRAWEE: 'custom_drawee', // 自定义付款人费用类型
ECW_IS_DRAFT: 'is_draft', // 草稿发布状态
ECW_PAYMENT_STATE: 'payment_state',//付款单状态
ECW_PRICE_TYPE: 'price_type',
//--------ecw---------
CUSTOMER_STATUS: 'customer_status',
......@@ -163,8 +164,9 @@ export const DICT_TYPE = {
ORDER_COD_EXCEPTION_RESULT:'order_cod_exception_result',//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT:'order_other_exception_result',//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT:'order_bulky_cargo_exception_result',//泡货异常处理结果
PAYMENT_TYPE:'payment_type',//收款类型
NEED_KNOW_TYPE:'need_know_type',//需知类型
NEED_KNOW_STATUS:'need_know_status',//需知状态
ECASH_INIT:'ecash_init', //e-cash
FEE_TYPE:'receivable_fee_type',
......
......@@ -62,6 +62,62 @@
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='warehouse_transfer'"><!--调仓申请-->
<warehouseDetails :processId="this.processInstance.businessKey" :type="1" ></warehouseDetails>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='container_modify'"><!--出货审核-柜子修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='trailer_modify'"><!--出货审核-拖车修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='ship_modify'"><!--出货审核-配船修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='ship_modify'"><!--出货审核-配船修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='customs_declare_modify'"><!--出货审核-报关修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='arrival_modify'"><!--出货审核-到港修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='customs_clearance_modify'"><!--出货审核-清关修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='customs_exit_part'"><!--出货审核-报关部分退场审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='customs_exit_all'"><!--出货审核-报关退场审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='start_port_modify'"><!--出货审核-起运修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='book_space_modify'"><!--出货审核-订舱修改审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='sorting_apply_no'"><!--出货审核-分拣反审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='sorting_apply'"><!--出货审核-分拣审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='unload_container_no'"><!--出货审核-卸柜反审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='unload_container'"><!--出货审核-卸柜审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='close_container'"><!--出货审核-封柜审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='shipment_preassemble_no'"><!--出货审核-预装反审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-if="this.processInstance.processDefinition.formCustomViewPath=='shipment_preassemble'"><!--出货审核-预装审核-->
<shippingDetail :processId="this.processInstance.businessKey"></shippingDetail>
</div>
<div v-else>
<router-link :to="this.processInstance.processDefinition.formCustomViewPath + '?id='
+ this.processInstance.businessKey">
......
......@@ -20,7 +20,7 @@
</el-select>
</el-form-item>
<el-row class="two-element">
<el-row class="two-element-formItem">
<el-form-item label="金额">
<el-input-number v-model="costObj.price" controls-position="right" :min="1"></el-input-number>
</el-form-item>
......@@ -36,7 +36,7 @@
</el-form-item>
</el-form>
<div slot="footer" class="operate-button">
<div class="operate-button">
<el-button type="primary" @click="submit">确定</el-button>
<el-button @click="$emit('closeDialog')">取消</el-button>
</div>
......@@ -84,25 +84,3 @@ export default {
},
};
</script>
<style lang="scss">
// 海运操作统一弹窗样式
.app-costForm {
// 页面内元素弹窗form控件宽度设置
.el-form-item__content {
> div:not(.el-input-number) {
width: 100%;
}
}
.operate-button {
text-align: center;
}
.two-element {
display: flex;
> :last-child {
width: 100%;
margin-left: 10px;
}
}
}
</style>
<template>
<div class="app-container">
<div class="app-container shipping-sea">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
......@@ -45,8 +45,8 @@
:key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="运输方式" prop="transportType">
<el-select v-model="queryParams.transportType" placeholder="请选择运输方式" clearable size="small">
<el-option v-for="dict in transportTypes"
......@@ -54,7 +54,7 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
......@@ -79,7 +79,11 @@
<!-- 列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="自编号" align="center" prop="selfNo"/>
<el-table-column label="自编号" align="center" prop="selfNo">
<template slot-scope="scope">
<el-button type="text" @click="handleCommand(scope.row, 'detail')">{{ scope.row.selfNo }}</el-button>
</template>
</el-table-column>
<el-table-column label="柜号" align="center" prop="cubNo"/>
<el-table-column label="柜型" align="center" prop="cabinetId">
<template slot-scope="scope">
......@@ -100,15 +104,15 @@
<dict-tag :type="DICT_TYPE.BOX_SHIPMENT_STATUS" :value="scope.row.boxStatus"/>
</template>
</el-table-column>
<el-table-column label="日期" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ new Date(scope.row.createTime).format('yyyy-MM-dd') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope">
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)">
<el-dropdown trigger="click" @command="(command)=>handleCommand(scope.row, command)" style="marginRight:10px;">
<el-button type="primary">
操作<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
......@@ -120,6 +124,20 @@
<el-dropdown-item command="delete">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown trigger="click">
<el-button type="primary">
下载<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="">预装单</el-dropdown-item>
<el-dropdown-item command="">已装单</el-dropdown-item>
<el-dropdown-item command="">应收汇总表</el-dropdown-item>
<el-dropdown-item command="">agent list</el-dropdown-item>
<el-dropdown-item command="">son cap</el-dropdown-item>
<el-dropdown-item command="">提货单</el-dropdown-item>
<el-dropdown-item command="">提单Copy</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
......@@ -128,7 +146,7 @@
@pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body class="shippingSea-dialog">
<template v-if="dialogType === 'edit' || dialogType === 'add'">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
......@@ -155,9 +173,9 @@
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<div class="operate-button">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
......@@ -165,6 +183,9 @@
<template v-if="dialogType === 'cost'">
<costForm v-if="open" @closeDialog="closeDialog" :currRow="currRow"/>
</template>
<template v-if="dialogType === 'error'">
<regError v-if="open" @closeDialog="closeDialog" :shipmentObj="currRow"/>
</template>
</el-dialog>
</div>
</template>
......@@ -173,13 +194,15 @@
import {createbox, updatebox, deletebox, getbox, getboxPage, exportboxExcel} from "@/api/ecw/box";
import {getCabinetPage} from "@/api/ecw/cabinet";
import { getWarehouseList } from "@/api/ecw/warehouse"
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
import { DICT_TYPE } from '@/utils/dict';
import costForm from './costForm.vue'
import regError from './regError.vue'
export default {
name: "box",
components: {
costForm
costForm,
regError
},
data() {
return {
......@@ -266,7 +289,7 @@
created() {
this.transportTypes = this.transportTypes.filter(item => item.value == '1' || item.value == '2');
getWarehouseList().then(res => this.warehouseList = res.data);
getCabinetPage(null).then(response => {
......@@ -275,7 +298,6 @@
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
......@@ -390,13 +412,6 @@
closeDialog() {
this.open = false;
},
/* 费用登记 */
createCost(row) {
this.title = '费用登记'
this.dialogType = 'cost';
this.open = true;
this.currRow = row;
},
/** 查看按钮操作 */
handleCommand(row, command) {
switch (command) {
......@@ -413,10 +428,53 @@
break;
case 'cost':
this.createCost(row);
this.title = '费用登记'
this.dialogType = 'cost';
this.open = true;
this.currRow = row;
break;
case 'error':
this.title = '异常登记'
this.dialogType = 'error';
this.open = true;
this.currRow = row;
break;
case 'detail':
this.$router.push('/boxSea/query/' + row.id)
break;
}
},
}
};
</script>
<style lang="scss">
// 海运操作统一弹窗样式
.shippingSea-dialog {
// 页面内元素弹窗form控件宽度设置
.el-form-item__content {
> div:not(.el-input-number) {
width: 100%;
}
}
.operate-button {
text-align: center;
}
.two-element-formItem {
display: flex;
> :last-child {
width: 100%;
margin-left: 10px;
}
}
.two-element {
.el-form-item__content {
display: flex;
> :last-child {
margin-left: 10px;
}
}
}
}
</style>
This diff is collapsed.
......@@ -18,6 +18,7 @@
<el-date-picker type="date" placeholder="请选择日期" v-model="errorObj.abnStartTime" value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker type="date" placeholder="请选择日期" v-model="errorObj.abnEndTime" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="是否更新订单状态">
<el-radio-group v-model="errorObj.orderStatus">
<el-radio v-for="item in status" :key="item.value" :label="item.value">{{item.label}}</el-radio>
......@@ -65,7 +66,7 @@ export default {
},
created() {
const { currNode } = this.$attrs;
this.errorObj = { opStep: currNode.dataKey };
this.errorObj = { opStep: currNode?.dataKey ?? undefined };
},
methods: {
/** 提交 */
......
......@@ -73,7 +73,7 @@
<section class="table-goodList">
<div>合计:{{calcSum(row.goodsList)}}</div>
<div v-for="(item, index) in row.goodsList" :key="index" class="goodList-div">
{{item.volume}}{{item.weight}}kg
{{getTotlContent(item,['volume','weight'])}}
</div>
</section>
</template>
......@@ -90,7 +90,11 @@
<script>
import { approvalDetail } from "@/api/ecw/box";
import { getSeaStatus, getStatusName } from "./shippingSea/utils";
import {
getSeaStatus,
getStatusName,
getTotlContent,
} from "./shippingSea/utils";
import { getCabinetPage } from "@/api/ecw/cabinet";
import { getChannelList } from "@/api/ecw/channel";
......@@ -123,6 +127,7 @@ export default {
getChannelList().then((res) => (this.channelList = res.data));
},
methods: {
getTotlContent,
/* 获取详情 */
getApprovalDetail(processId) {
approvalDetail({ approvalId: processId }).then((res) => {
......@@ -144,7 +149,11 @@ export default {
},
/* 打开订单列表 */
showOrder() {
this.$set(this.dialogConfig, "title", `${this.boxBackVO.selfNo} 订单列表`);
this.$set(
this.dialogConfig,
"title",
`${this.boxBackVO.selfNo} 订单列表`
);
this.$set(this.dialogConfig, "visible", true);
},
/* 合计 */
......@@ -190,9 +199,7 @@ export default {
/* 体积重量 */
getVolumeWeight() {
return (total) => {
return `${total?.num ?? 0} ${total?.volume ?? 0}m³ ${
total?.weight ?? 0
}kg`;
return this.getTotlContent(total);
};
},
/* 是否显示卸柜箱数 */
......
......@@ -30,7 +30,7 @@
</template>
<script>
import regError from "./regError";
import regError from "../../regError";
import dayjs from "dayjs";
import { arrivalCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatDateStr } from "../utils";
......
......@@ -11,9 +11,7 @@
</div>
<div>
<template v-if="item.secStatistics">
<p>{{item.secStatistics.num}}</p>
<p>{{item.secStatistics.volume}}</p>
<p>{{item.secStatistics.weight}}Kg</p>
{{getTotlContent(item.secStatistics)}}
</template>
</div>
</el-row>
......@@ -54,29 +52,29 @@
<dict-tag :type="DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE" :value="item.productRecord" />
</p>
<p>其他:<span>{{item.num}}</span><span>{{item.volume}}</span><span>{{item.weight}}Kg</span></p>
<p>其他:{{getTotlContent(item)}}</p>
</div>
</section>
</template>
</el-table-column>
<el-table-column label="计划箱数" align="center" prop="num">
<template slot-scope="scope">
{{ scope.row.num }}
{{getTotlContent(scope.row,['num'])}}
</template>
</el-table-column>
<el-table-column label="实装箱数" align="center" prop="installNum">
<template slot-scope="scope">
{{ scope.row.installNum }}
{{ scope.row.installNum }}
</template>
</el-table-column>
<el-table-column label="体积" align="center" prop="volume">
<template slot-scope="scope">
{{ scope.row.volume }}
{{getTotlContent(scope.row,['volume'])}}
</template>
</el-table-column>
<el-table-column label="重量" align="center" prop="weight">
<template slot-scope="scope">
{{ scope.row.weight }} Kg
{{getTotlContent(scope.row,['weight'])}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
......@@ -97,14 +95,15 @@
<el-col :span="6" class="totle-info">
<div class="count-info">
<p>总计:
<!-- <span>{{sumData.count.num}}箱</span><span>{{sumData.count.volume}}m³</span><span>{{sumData.count.weight}}Kg</span> -->111
无返回
<!-- <span>{{sumData.count.num}}箱</span><span>{{sumData.count.volume}}m³</span><span>{{sumData.count.weight}}Kg</span> -->
</p>
</div>
<div>
<p>容量:</p>
<p>111</p>
<p>无返回</p>
</div>
<div>已装0</div>
<div>已装 无返回 </div>
</el-col>
</el-row>
......@@ -204,6 +203,7 @@ import {
boxUpdate,
approvalCreate,
} from "@/api/ecw/boxSea";
import { getTotlContent } from "../../utils";
/**
* 开始装柜
......@@ -268,6 +268,7 @@ export default {
});
},
methods: {
getTotlContent,
/* 装柜部分列表 */
getLoadSecGoodsList() {
loadSecGoodsList({ shipmentId: this.shipmentObj.id }).then((res) => {
......@@ -275,7 +276,7 @@ export default {
this.listData = data.map((item, index) => {
return {
...item,
title: `第 ${++index} 部分`,
title: `第${++index}部分`,
};
});
if (this.listData.length) {
......
......@@ -28,9 +28,7 @@
</el-collapse-transition>
<div class="part-secGoog">
<template>
<p>{{item.secStatistics ? item.secStatistics.num : 0}}</p>
<p>{{item.secStatistics ? item.secStatistics.volume : 0}}</p>
<p>{{item.secStatistics ? item.secStatistics.weight : 0}}Kg</p>
{{getTotlContent(item.secStatistics)}}
</template>
</div>
</el-row>
......@@ -95,12 +93,12 @@
<el-table-column label="箱数" align="center" prop="num" width="120" />
<el-table-column label="体积" align="center" prop="volume" width="120">
<template slot-scope="scope">
<p v-if="scope.row.volume">{{scope.row.volume}}</p>
<p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p>
</template>
</el-table-column>
<el-table-column label="重量" align="center" prop="weight" width="120">
<template slot-scope="scope">
<p v-if="scope.row.weight">{{scope.row.weight}}kg</p>
<p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p>
</template>
</el-table-column>
<el-table-column label="预装柜" align="center" prop="" width="120">
......@@ -151,7 +149,7 @@ import {
createGoods,
remove,
} from "@/api/ecw/boxSea";
import { formatDate } from "../../utils";
import { formatDate, getTotlContent } from "../../utils";
/**
* 补单
*/
......@@ -197,7 +195,7 @@ export default {
}
return {
...item,
title: `第 ${++index} 部分`,
title: `第${++index}部分`,
};
});
......@@ -324,6 +322,7 @@ export default {
.catch((_) => {});
},
formatDate,
getTotlContent,
},
computed: {
/** 目的地 */
......
......@@ -26,7 +26,7 @@
</template>
<script>
import regError from "./regError";
import regError from "../../regError";
import dayjs from "dayjs";
import { clearanceCreate, serviceMsg } from "@/api/ecw/boxSea";
import { formatDateStr } from "../utils";
......
......@@ -30,7 +30,7 @@
</template>
<script>
import regError from "./regError";
import regError from "../../regError";
import { shippingCreate, serviceMsg } from "@/api/ecw/boxSea";
import dayjs from "dayjs";
import { formatDateStr } from "../utils";
......
......@@ -11,7 +11,7 @@
</el-select>
</el-form-item>
<el-form-item label="目的地" prop="destWarehouseIdList">
<el-select v-model="queryParams.destWarehouseIdList" placeholder="请选择目的地" multiple>
<el-select v-model="queryParams.destWarehouseIdList" placeholder="请选择目的地" multiple clearable>
<el-option v-for="item in importWarehouseList" :label="item.titleZh" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
......@@ -108,11 +108,7 @@
<el-row class="preinstall-title">
<div class="pre-part-info">
<p>{{index+1}}部分</p>
<p>
<span>{{part.secStatistics ? part.secStatistics.num : 0}}</span>
<span>{{part.secStatistics ? part.secStatistics.volume : 0}}</span>
<span>{{part.secStatistics ? part.secStatistics.weight : 0}}kg</span>
</p>
<p>{{getTotlContent(part.secStatistics)}}</p>
</div>
<div class="table-button">
<el-button type="danger" size="small" @click="deletePart(part)">删除部分</el-button>
......@@ -131,8 +127,8 @@
<el-table-column label="箱数" align="center" prop="num" />
<el-table-column label="体积/重量/重货比" align="center" width="140" prop="volumeWeight">
<template slot-scope="scope">
<p v-if="scope.row.volume">{{scope.row.volume}}</p>
<p v-if="scope.row.weight">{{scope.row.weight}}kg</p>
<p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p>
<p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p>
</template>
</el-table-column>
<el-table-column label="报关方式" align="center" prop="customsType" width="120">
......@@ -169,15 +165,15 @@
<div class="preinstall-title preinstalled">
<div class="red-label">
<p>筛选后待预装数量:</p>
<p>{{unloadStatistics.num}}箱</p>
<p>{{getTotlContent(unloadStatistics,['num'])}}</p>
</div>
<div class="red-label">
<p>方数:</p>
<p>{{unloadStatistics.volume}}m³</p>
<p>{{getTotlContent(unloadStatistics,['volume'])}}</p>
</div>
<div class="red-label">
<p>重量:</p>
<p>{{unloadStatistics.weight}}kg</p>
<p>{{getTotlContent(unloadStatistics,['weight'])}}</p>
</div>
</div>
</el-row>
......@@ -225,8 +221,8 @@
<el-table-column label="箱数" align="center" prop="num" />
<el-table-column label="体积/重量" align="center" prop="volumeWeight">
<template slot-scope="scope">
<p v-if="scope.row.volume">{{scope.row.volume}}</p>
<p v-if="scope.row.weight">{{scope.row.weight}}kg</p>
<p v-if="scope.row.volume">{{getTotlContent(scope.row,['volume'])}}</p>
<p v-if="scope.row.weight">{{getTotlContent(scope.row,['weight'])}}</p>
</template>
</el-table-column>
<el-table-column label="报关方式" align="center" prop="">
......@@ -284,7 +280,8 @@ import {
approvalCreate,
} from "@/api/ecw/boxSea";
import userSelect from "./common/userSelect.vue";
import { formatDate } from "../utils";
import { formatDate, getTotlContent } from "../utils";
import dayjs from "dayjs";
/**
* 预装
......@@ -354,6 +351,7 @@ export default {
},
methods: {
formatDate,
getTotlContent,
/* 获取城市 */
importCityName(id) {
var arr = this.$attrs.warehouseList.filter((item) => item.id == id);
......@@ -370,7 +368,6 @@ export default {
let params = this.getParams();
// 已预装单号
params.orderNo = params.preOrderNo;
delete params.preOrderNo;
params.shipmentId = this.shipmentObj.id;
secGoodsList(params).then((res) => {
this.preList = res.data;
......@@ -384,7 +381,6 @@ export default {
let params = this.getParams();
// 订单号
params.orderNo = params.toBePreOrderNo;
delete params.toBePreOrderNo;
preloadPage({ ...params, ...this.pageParam }).then((res) => {
const { data } = res;
this.toBePreList = data.dataList?.list ?? [];
......@@ -438,7 +434,10 @@ export default {
if (column.property === "volumeWeight") {
const volume = this.calcSum("volume", data);
const weight = this.calcSum("weight", data);
sums[index] = `${volume ?? 0}m³ ${weight ?? 0}kg`;
sums[index] = getTotlContent({ volume, weight }, [
"volume",
"weight",
]);
}
});
......@@ -540,11 +539,14 @@ export default {
},
getParams() {
const { rucangtime = [] } = this.queryParams;
delete this.queryParams.rucangtime;
return {
...this.queryParams,
rucangTimeStart: rucangtime[0],
rucangTimeEnd: rucangtime[1],
rucangTimeStart: rucangtime[0]
? dayjs(rucangtime[0]).format("YYYY-MM-DD 00:00:00")
: rucangtime[0],
rucangTimeEnd: rucangtime[1]
? dayjs(rucangtime[1]).format("YYYY-MM-DD 23:59:59")
: rucangtime[1],
};
},
},
......
......@@ -859,11 +859,24 @@ function formatDateStr(obj, keys, format = "YYYY-MM-DD") {
return obj;
}
/**
* 格式化日期
*
* @param {*} date
* @param {string} [format="YYYY-MM-DD"]
* @return {*}
*/
function formatDate(date, format = "YYYY-MM-DD") {
if (!date) return date;
return dayjs(date).format(format);
}
/**
* 获取海运流程状态
*
* @param {*} val
* @return {*}
*/
function getSeaStatus(val) {
let currNodeStatus = 11,
isBreak = false,
......@@ -896,6 +909,29 @@ function getSeaStatus(val) {
return currNodeStatus;
}
/**
* 组装统计信息文字
*
* @param {*} total
* @param {string} [keys=["num", "volume", "weight"]]
* @return {*}
*/
function getTotlContent(total, keys = ["num", "volume", "weight"]) {
let content = [];
for (const key of keys) {
if (key === "num") {
content.push(`${total?.num ?? 0}`);
}
if (key === "volume") {
content.push(`${total?.volume ?? 0}m³`);
}
if (key === "weight") {
content.push(`${total?.weight ?? 0}kg`);
}
}
return content.join(" ");
}
export const fileTypes = [
"doc",
"xls",
......@@ -917,4 +953,5 @@ export {
formatDateStr,
formatNumberString,
formatDate,
getTotlContent,
};
......@@ -404,7 +404,7 @@
border
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="selection" width="55" :reserve-selection="true"> </el-table-column>
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="唛头" align="center" prop="marks" />
<el-table-column label="品名" align="center" prop="title">
......
......@@ -162,7 +162,7 @@
size="mini"
@click="handleAdd"
style="padding: 10px; margin-bottom: 10px"
>添加供应商未付款项</el-button
>添加未付供应商款项</el-button
>
</el-col>
<el-table v-loading="loadings" :data="list" border :show-summary="!!list.length" :summary-method="getSummaries">
......@@ -175,15 +175,27 @@
></dict-tag>
</template>
</el-table-column>
<el-table-column label="发票号码" align="center" prop="invoiceNumber" />
<el-table-column label="发票号码" align="center" prop="invoiceNumber">
<template slot-scope="scope">
<el-input v-model="scope.row.invoiceNumber"></el-input>
</template>
</el-table-column>
<el-table-column label="应付金额" align="center" prop="totalAmount" />
<el-table-column label="币种" align="center" prop="currencyId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template>
</el-table-column>
<el-table-column label="汇率" align="center" prop="exchangeRate" />
<el-table-column label="税率" align="center" prop="taxRate" />
<el-table-column label="汇率" align="center" prop="exchangeRate">
<template slot-scope="scope">
<el-input v-model="scope.row.exchangeRate"></el-input>
</template>
</el-table-column>
<el-table-column label="税率%" align="center" prop="taxRate" >
<template slot-scope="scope">
<el-input v-model="scope.row.taxRate" @keyup.native="scope.row.taxRate = oninput(scope.row.taxRate)"></el-input>
</template>
</el-table-column>
<el-table-column label="价税合计(RMB)" align="center" prop="total" />
</el-table>
......@@ -232,12 +244,12 @@
</el-form>
</el-card>
<div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="submitForm">保 存</el-button>
<el-button type="primary" @click="submitDraft">保 存</el-button>
<el-button type="primary" @click="submitForm">新 增</el-button>
</div>
<el-dialog
:visible.sync="open"
title="添加未收客户款项"
title="添加未付供应商款项"
width="80%"
append-to-body
@open="openDialog"
......@@ -356,7 +368,7 @@
@selection-change="handleSelectionChange"
row-key="id"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column type="selection" width="55" :reserve-selection="true"> </el-table-column>
<el-table-column label="自编号" align="center" prop="payableNo" />
<el-table-column label="货柜号" align="center" prop="containerNo" />
<el-table-column label="供应商" align="center" prop="supplierName" />
......@@ -383,7 +395,7 @@
@pagination="getList"
/>
<!-- </el-card> -->
<div slot="footer" class="dialog-footer">
<div slot="footer" style="margin: 20px 0; text-align: center;">
<el-button type="primary" @click="saveSelectList">确认添加</el-button>
<el-button @click="hiddenDialog">取 消</el-button>
</div>
......@@ -402,7 +414,7 @@ import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept";
import { getTradeCityList } from "@/api/ecw/region";
import { getSupplierPage } from "@/api/ecw/supplier";
import { getPayableList, getPayableInfoByIds, createPayment } from "@/api/ecw/financial"
import { getPayableList, getPayableInfoByIds, createPayment, getPaymentInfoByIds, getPaymentItem, updatePayment } from "@/api/ecw/financial"
export default {
name: "CreatPayment",
components: {
......@@ -411,6 +423,7 @@ export default {
data() {
return {
id: 0,
payableId: 0,
orderData: [],
total: 0,
loadings: false,
......@@ -418,6 +431,7 @@ export default {
form: {},
creatorData: [],
list: [],
defaultList: [],
channelList: [],
loading: "",
bankData: [],
......@@ -438,13 +452,29 @@ export default {
},
created() {
let that = this;
if (that.$route.query.id && that.$route.query.id !== '0') {
this.id = this.$route.query.id;
getPayableInfoByIds({ id: this.id }).then(res => {
if (that.$route.query.payableId && that.$route.query.payableId !== '0') {
this.payableId = this.$route.query.payableId;
getPayableInfoByIds({ id: this.payableId }).then(res => {
this.list = [{...res.data}]
this.$set(this.form, 'supplierId', res.data.supplierId)
})
}
if (that.$route.query.id && that.$route.query.id !== '0') {
this.id = this.$route.query.id;
getPaymentInfoByIds({ id: this.id }).then(res => {
this.form = {
...res.data,
latestPayAt: this.parseTime(res.data.latestPayAt, '{y}-{m}-{d}'),
applicationAt: this.parseTime(res.data.applicationAt, '{y}-{m}-{d}'),
supplierBankAccount: Number(res.data.supplierBankAccount),
invoiceStatus: String(res.data.invoiceStatus),
}
})
getPaymentItem({ id: this.id }).then(res => {
this.list = [...res.data]
this.defaultList = [...res.data]
})
}
userList("salesman").then((res) => (that.creatorData = res.data));
getChannelList().then((res) => (that.channelList = res.data));
getTradeCityList().then((res) => (that.tradeCityList = res.data));
......@@ -524,14 +554,41 @@ export default {
if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list]
}
createPayment(params).then(res => {
this.$modal.msgSuccess("新增成功");
})
if (params.payableReqVOList.length === 0) {
this.$modal.msgError("请选择供应商未付款项");
return
}
if (this.id && this.id !== '0') {
updatePayment(params).then(res => {
this.$modal.msgSuccess("修改成功");
this.$router.back();
})
} else {
createPayment(params).then(res => {
this.$modal.msgSuccess("新增成功");
this.$router.back();
})
}
}
})
}
})
},
submitDraft() {
this.$refs.form.validate ((valid)=>{
if (valid) {
const params = {...this.form}
if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list]
}
if (params.payableReqVOList.length === 0) {
this.$modal.msgError("请选择供应商未付款项");
return
}
// console.log(params, '-----params---------')
}
})
},
selectChange(val) {
const t = this.allSupplier.find(v => v.id == val)
t && (this.form.supplierName = t.companyZh)
......@@ -544,7 +601,11 @@ export default {
this.open = false;
},
saveSelectList() {
this.list = this.multipleSelection
if (this.id && this.id !== '0') {
this.list = [...this.defaultList, ...this.multipleSelection]
} else {
this.list = this.multipleSelection
}
this.open = false;
},
convertCurrency(money) {
......@@ -638,6 +699,34 @@ export default {
},
openDialog() {
this.getList()
},
oninput(num) {
let str = num
let len1 = str.substr(0, 1)
let len2 = str.substr(1, 1)
//如果第一位是0,第二位不是点,就用数字把点替换掉
if (str.length > 1 && len1 == 0 && len2 != '.') {
str = str.substr(1, 1)
}
//第一位不能是.
if (len1 == '.') {
str = ''
}
//限制只能输入一个小数点
if (str.indexOf('.') != -1) {
let str_ = str.substr(str.indexOf('.') + 1)
if (str_.indexOf('.') != -1) {
str = str.substr(0, str.indexOf('.') + str_.indexOf('.') + 1)
} else {
// if (str_.length > 2) {
// str = str.substr(0, str.indexOf('.') + 1) + str_.substr(0, 2)
// }
}
}
//正则替换
str = str.replace(/[^\d^\.]+/g, '') // 保留数字和小数点
// str = str.replace(/\.\d\d\d$/,'') // 小数点后只能输两位
return str
}
},
};
......
......@@ -290,7 +290,7 @@ export default {
},
/** 新增按钮操作 */
handleAdd(id) {
return this.$router.push("creatPayment?id=" + id);
return this.$router.push("creatPayment?payableId=" + id);
},
submitEditForm() {
const params = {
......@@ -328,10 +328,6 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
// deletePayable({ id: row.id }).then(res => {
// this.getList()
// this.$modal.msgSuccess("删除成功");
// })
},
},
};
......
<template>
<div class="app-container examine-wrap">
<el-card>
<div slot="header" class="card-title">审核请款单</div>
<el-descriptions :column="3" class="card" border>
<el-descriptions-item label="供应商">
{{ detail.supplierName }}
</el-descriptions-item>
<el-descriptions-item label="部门">
{{ findDepartmentName(detail.departmentId) }}
</el-descriptions-item>
<el-descriptions-item label="业务员">
{{ detail.salesmanName }}
</el-descriptions-item>
<el-descriptions-item label="申请日期">
{{ detail.applicationAt }}
</el-descriptions-item>
<el-descriptions-item label="供应商银行账号" style="width: 50%">
{{ findBank(detail.supplierBankAccount) }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="3" class="card" border>
<el-descriptions-item label="最后付款日期">
{{ detail.latestPayAt }}
</el-descriptions-item>
<el-descriptions-item label="结算方式">
<!-- {{ detail.settlementType }} -->
<dict-tag :type="DICT_TYPE.CUSTOMER_BALANCE" :value="detail.settlementType"></dict-tag>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="card">
<div slot="header" class="card-title">费用信息</div>
<el-table v-loading="loadings" :data="list" border :show-summary="!!list.length" :summary-method="getSummaries">
<el-table-column label="自编号" align="center" prop="payableNo" />
<el-table-column label="费用类型" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag
:type="DICT_TYPE.FEE_TYPE"
:value="scope.row.feeType"
></dict-tag>
</template>
</el-table-column>
<el-table-column label="发票号码" align="center" prop="invoiceNumber">
<!-- <template slot-scope="scope">
<el-input v-model="scope.row.invoiceNumber"></el-input>
</template> -->
</el-table-column>
<el-table-column label="应付金额" align="center" prop="totalAmount" />
<el-table-column label="币种" align="center" prop="currencyId">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.BOX_SHIPPING_PRICE_UNIT" :value="scope.row.currencyId" />
</template>
</el-table-column>
<el-table-column label="汇率" align="center" prop="exchangeRate">
<!-- <template slot-scope="scope">
<el-input v-model="scope.row.exchangeRate"></el-input>
</template> -->
</el-table-column>
<el-table-column label="税率" align="center" prop="taxRate" >
<!-- <template slot-scope="scope">
<el-input v-model="scope.row.taxRate"></el-input>
</template> -->
</el-table-column>
<el-table-column label="价税合计(RMB)" align="center" prop="total" />
</el-table>
<el-descriptions :column="1" class="card" border>
<el-descriptions-item label="账单号">
{{ detail.accountNumber }}
</el-descriptions-item>
<el-descriptions-item label="发票">
{{ detail.invoiceStatus == 0 ? '未开票' : '已开票' }}
</el-descriptions-item>
<el-descriptions-item label="审核备注">
<el-input type="textarea" :rows="2" v-model="notes">
</el-input>
</el-descriptions-item>
</el-descriptions>
</el-card>
<div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="examine('y')">审核通过</el-button>
<el-button type="danger" @click="examine('n')">审核驳回</el-button>
</div>
</div>
</template>
<script>
import { getBankAccountPage } from "@/api/ecw/bankAccount";
import { listSimpleDepts } from "@/api/system/dept";
import { getPaymentInfoByIds, getPaymentItem, paymentVerify } from "@/api/ecw/financial"
export default {
name: "CreatPayment",
components: {
// CustomerSelector
},
data() {
return {
id: 0,
loadings: false,
detail: {},
list: [],
bankData: [],
params: {
page: 1,
rows: 20,
},
deptData: [],
deptArr: [],
notes: ''
};
},
created() {
let that = this;
if (that.$route.query.id && that.$route.query.id !== '0') {
this.id = this.$route.query.id;
getPaymentInfoByIds({ id: this.id }).then(res => {
this.detail = {
...res.data,
latestPayAt: this.parseTime(res.data.latestPayAt, '{y}-{m}-{d}'),
applicationAt: this.parseTime(res.data.applicationAt, '{y}-{m}-{d}'),
supplierBankAccount: Number(res.data.supplierBankAccount),
invoiceStatus: String(res.data.invoiceStatus),
}
})
getPaymentItem({ id: this.id }).then(res => {
this.list = [...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;
}
});
});
},
methods: {
getSummaries(param) {
const { columns, data } = param;
const sums = new Array(columns.length).map(v => '');
const index = sums.length - 1
sums[index - 1] = '价税合计大写'
const t = data.map(v => v.total).reduce((prev, curr) => {
return prev + curr;
}, 0)
sums[index] = this.convertCurrency(t)
return sums;
},
examine(status) {
const params = {
notes: this.notes,
paymentId: this.detail.id,
verifyStatus: status
}
paymentVerify(params).then(res => {
this.$modal.msgSuccess("操作成功");
this.$router.back();
})
},
convertCurrency(money) {
//汉字的数字
var cnNums = new Array('', '', '', '', '', '', '', '', '', '');
//基本单位
var cnIntRadice = new Array('', '', '', '');
//对应整数部分扩展单位
var cnIntUnits = new Array('', '', '亿', '');
//对应小数部分单位
var cnDecUnits = new Array('', '', '', '');
//整数金额时后面跟的字符
var cnInteger = '';
//整型完以后的单位
var cnIntLast = '';
//最大处理的数字
var maxNum = 999999999999999.9999;
//金额整数部分
var integerNum;
//金额小数部分
var decimalNum;
//输出的中文金额字符串
var chineseStr = '';
//分离金额后用的数组,预定义
var parts;
// 传入的参数为空情况
if(money === '') {
return '';
}
money = parseFloat(money)
if(money >= maxNum){
return ''
}
// 传入的参数为0情况
if (money === 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger;
return chineseStr
}
// 转为字符串
money = money.toString();
// indexOf 检测某字符在字符串中首次出现的位置 返回索引值(从0 开始) -1 代表无
if (money.indexOf('.') == -1) {
integerNum = money;
decimalNum = ''
}else{
parts = money.split('.');
integerNum = parts[0];
decimalNum = parts[1].substr(0,4);
}
//转换整数部分
if(parseInt(integerNum,10) > 0){
let zeroCount = 0;
let IntLen = integerNum.length
for(let i = 0; i < IntLen; i++){
let n = integerNum.substr(i,1);
let p = IntLen - i - 1;
let q = p / 4;
let m = p % 4;
if( n == '0'){
zeroCount ++ ;
}else{
if(zeroCount > 0){
chineseStr += cnNums[0]
}
zeroCount = 0;
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
if(m == 0 && zeroCount < 4){
chineseStr += cnIntUnits[q];
}
}
// 最后+ 元
chineseStr += cnIntLast;
}
// 转换小数部分
if(decimalNum != ''){
let decLen = decimalNum.length;
for(let i = 0; i <decLen; i++){
let n = decimalNum.substr(i,1);
if(n != '0'){
chineseStr += cnNums[Number(n)] + cnDecUnits[i]
}
}
}
if(chineseStr == ''){
chineseStr += cnNums[0] + cnIntLast + cnInteger;
}else if(decimalNum == ''){
chineseStr += cnInteger;
}
return chineseStr
},
findDepartmentName(val) {
return this.deptData.find(v => v.id == val) ? this.deptData.find(v => v.id == val).name : ''
},
findBank(val) {
const t = this.bankData.find(v => v.id == val)
return t ? t.baAccountName + '(' + t.baAccountNum + ')' : ''
}
},
};
</script>
<style lang="scss" scoped>
.examine-wrap {
::v-deep .is-bordered-label {
width: 200px;
}
}
.card {
margin-top: 20px;
}
.dialog-footer {
padding: 40px;
}
.card-title {
font-size: 18px;
font-weight: bold;
}
</style>
......@@ -53,7 +53,7 @@
</el-select>
</el-form-item>
<el-form-item label="状态:">
<dict-selector :type="DICT_TYPE.ECW_RECEIPT_STATE" v-model="queryParams.state" />
<dict-selector :type="DICT_TYPE.ECW_PAYMENT_STATE" v-model="queryParams.state" />
</el-form-item>
</el-row>
<el-row :span="24">
......@@ -101,12 +101,12 @@
<el-table-column label="供应商" align="center" prop="supplierName" />
<el-table-column label="创建时间" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="最后付款时间" align="center" prop="latestPayAt">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.latestPayAt) }}</span>
<span>{{ parseTime(scope.row.latestPayAt, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="发票" align="center" prop="invoiceStatus">
......@@ -116,11 +116,10 @@
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<span>{{ stateMap(scope.row.state) }}</span>
<!-- <dict-tag
:type="DICT_TYPE.ECW_RECEIPT_STATE"
<dict-tag
:type="DICT_TYPE.ECW_PAYMENT_STATE"
:value="scope.row.state"
/> -->
/>
</template>
</el-table-column>
<el-table-column
......@@ -130,16 +129,16 @@
>
<template slot-scope="scope">
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" @click="handleAdd(scope.row.id)" type="text">编辑</el-button>
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" type="text">审核</el-button>
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" type="text" @click="examineClick(scope.row.id)">审核</el-button>
<el-button v-if="scope.row.state == 2" size="mini" type="text">反审核</el-button>
<el-button v-if="scope.row.state == 2" size="mini" type="text">核销</el-button>
<el-button v-if="scope.row.state == 2" size="mini" type="text" @click="verifyCancelClick(scope.row)">反审核</el-button>
<el-button v-if="scope.row.state == 2" size="mini" type="text" @click="verificationClick(scope.row)">核销</el-button>
<el-button v-if="scope.row.state == 4" size="mini" type="text">反核销</el-button>
<el-button v-if="scope.row.state == 4" size="mini" type="text" @click="verificationCancelClick(scope.row)">反核销</el-button>
<!-- <el-button v-if="scope.row.state == 3" size="mini" type="text">开票</el-button> -->
<el-button size="mini" type="text" @click="toprint(scope.row.id)">打印</el-button>
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" type="text">删除</el-button>
<el-button v-if="scope.row.state == 1 || scope.row.state == 3" size="mini" type="text" @click="deleteClick(scope.row)">删除</el-button>
<!-- <el-button size="mini" type="text" @click="open = true">导出订单</el-button> -->
</template>
</el-table-column>
......@@ -189,7 +188,7 @@ import { userList } from "@/api/system/user";
import { DICT_TYPE } from "@/utils/dict";
import CustomerSelector from "@/components/CustomerSelector";
import { getSupplierPage } from "@/api/ecw/supplier";
import { getPaymentList } from "@/api/ecw/financial"
import { getPaymentList, deletePayment, paymentVerification, paymentVerificationCancel, paymentVerifyCancel } from "@/api/ecw/financial"
export default {
name: "paymentVoucher",
......@@ -268,17 +267,56 @@ export default {
case 2:
return '已审核待核销'
case 3:
return '已核销'
case 4:
return '审批驳回'
case 4:
return '已核销'
}
},
/** 新增按钮操作 */
handleAdd(id) {
return this.$router.push("creatCollection?id=" + id);
return this.$router.push("creatPayment?id=" + id);
},
examineClick(id) {
return this.$router.push("paymentExamine?id=" + id);
},
deleteClick(row) {
const id = row.id;
this.$modal.confirm('是否确认删除该应付款?').then(function() {
return deletePayment(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
verificationClick(row) {
const id = row.id;
this.$modal.confirm('您确认要核销吗?').then(function() {
return paymentVerification(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("核销成功");
}).catch(() => {});
},
verificationCancelClick(row) {
const id = row.id;
this.$modal.confirm('您确认要反核销吗?').then(function() {
return paymentVerificationCancel(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("反核销成功");
}).catch(() => {});
},
verifyCancelClick(row) {
const id = row.id;
this.$modal.confirm('您确认要反审核吗?').then(function() {
return paymentVerifyCancel(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("反审核成功");
}).catch(() => {});
},
toprint(id) {
return this.$router.push("printVoucher?id=" + id);
return this.$router.push("printPaymentVoucher?id=" + id);
},
submitForm() {
this.open = false;
......
This diff is collapsed.
<template>
<div class="batch-single-application">
<h1 class="title">调仓申请</h1>
<el-table :data="list">
<el-table-column label="订单编号" prop="orderNo"></el-table-column>
<el-table-column label="唛头" prop="marks"></el-table-column>
<el-table-column label="已到箱数/总箱数">
<template v-slot = {row}>
{{row.sumQuantity || 0}}/{{row.totalNum}}
</template>
</el-table-column>
<el-table-column label="下单统计">
<template v-slot="{row}">
<div v-if="row.costVO">
箱数:{{row.costVO.totalNum}}
{{row.costVO.totalVolume}}
{{row.costVO.totalWeight}}kg
</div>
</template>
</el-table-column>
<el-table-column label="入仓统计" width="150">
<template v-slot="{row}">
<div>总箱数:{{row.sumNum || 0}}</div>
<div>体积:{{row.sumVolume || 0}}CBM</div>
<div>重量:{{row.sumWeight || 0}}KG</div>
</template>
</el-table-column>
<el-table-column label="入仓时间">
<el-dialog
:visible.sync="dialogVisible"
width="80%"
:before-close="()=>{
$emit('update:dialogVisible',false)
}">
<div class="batch-single-application">
<h1 class="title">调仓申请</h1>
<el-table :data="list">
<el-table-column label="订单编号" prop="orderNo"></el-table-column>
<el-table-column label="唛头" prop="marks"></el-table-column>
<el-table-column label="已到箱数/总箱数">
<template v-slot = {row}>
{{row.sumQuantity || 0}}/{{row.totalNum}}
</template>
</el-table-column>
<el-table-column label="下单统计">
<template v-slot="{row}">
<div v-if="row.costVO">
箱数:{{row.costVO.totalNum}}
{{row.costVO.totalVolume}}
{{row.costVO.totalWeight}}kg
</div>
</template>
</el-table-column>
<el-table-column label="入仓统计" width="150">
<template v-slot="{row}">
<div>总箱数:{{row.sumNum || 0}}</div>
<div>体积:{{row.sumVolume || 0}}CBM</div>
<div>重量:{{row.sumWeight || 0}}KG</div>
</template>
</el-table-column>
<el-table-column label="入仓时间">
</el-table-column>
<el-table-column label="运输方式">
<template v-slot = {row}>
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="出货渠道">
</el-table-column>
<el-table-column label="运输方式">
<template v-slot = {row}>
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId"></dict-tag>
</template>
</el-table-column>
<el-table-column label="出货渠道">
</el-table-column>
<!-- <el-table-column label="始发仓" prop="startWarehouseName"></el-table-column>-->
<el-table-column label="目的地" prop="objectiveName"></el-table-column>
<el-table-column label="发货人">
<template v-slot="{row}">
<div>
<p>
</p>
</div>
</template>
</el-table-column>
<el-table-column label="收货人">
<template v-slot="{row}">
<div>
<p>
{{row.consigneeName}}
</p>
<p>
{{row.consigneePhone}}
</p>
</div>
</template>
</el-table-column>
</el-table>
<div style="display: flex;justify-content:center; margin-top: 20px">
<div style="width: 200px; margin: 0 10px">
{{list[0].startWarehouseName}}
</el-table-column>
<!-- <el-table-column label="始发仓" prop="startWarehouseName"></el-table-column>-->
<el-table-column label="目的地" prop="objectiveName"></el-table-column>
<el-table-column label="发货人">
<template v-slot="{row}">
<div>
<div>
<p>
{{row.consignorName}}
</p>
<p>
</p>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="收货人">
<template v-slot="{row}">
<div>
<p>
{{row.consigneeName}}
</p>
<p>
{{row.consigneePhone}}
</p>
</div>
</template>
</el-table-column>
<el-table-column>
<template v-slot="{row}">
<el-button type="text" v-if="row.inWarehouseState === 10">
取消调仓
</el-button>
</template>
</el-table-column>
</el-table>
<div style="display: flex;justify-content:center; margin-top: 20px">
<div style="width: 200px; margin: 0 10px">
{{ list[0] && list[0].startWarehouseName ? list[0].startWarehouseName : '' }}
</div>
<div style="width: 200px;">
<el-select v-model="params.warehouseInId">
<el-option v-for="(item ,index) in availableWarehouse" :value="item.id" :label="item.titleZh" :key="index"></el-option>
</el-select>
</div>
</div>
<div style="width: 200px;">
<el-select v-model="params.warehouseInId">
<el-option v-for="(item ,index) in availableWarehouse" :value="item.id" :label="item.titleZh" :key="index"></el-option>
</el-select>
<el-divider></el-divider>
<h1 class="title">
审批流程
</h1>
<div style="padding: 20px">
<work-flow xmlkey="warehouse_transfer" v-model="params.copyUserId" />
</div>
<div style="text-align: center">
<el-button style="margin-right: 50px" v-if="adjustmentBol" >审核中</el-button>
<el-button v-else style="margin-right: 50px" @click="submit" :disabled="isSubmit">提交申请</el-button>
<el-button @click="$emit('update:dialogVisible',false)">取消</el-button>
</div>
<!-- <warehouseDetails></warehouseDetails>-->
</div>
<el-divider></el-divider>
<h1 class="title">
审批流程
</h1>
<div style="padding: 20px">
<work-flow xmlkey="warehouse_transfer" v-model="params.copyUserId" />
</div>
<div style="text-align: center">
<el-button style="margin-right: 50px" @click="submit" :disabled="isSubmit">提交申请</el-button>
<el-button @click="$router.push('/order/order')">取消</el-button>
</div>
<!-- <warehouseDetails></warehouseDetails>-->
</div>
</el-dialog>
</template>
<script>
......@@ -95,20 +115,30 @@ import {getProcessDefinitionBpmnXMLByKey} from "@/api/bpm/definition";
import warehouseDetails from "@/views/ecw/order/components/warehouseDetails";
import {getOrderPage} from "@/api/ecw/order";
import workFlow from "@/components/WorkFlow";
import Template from "@/views/cms/template";
export default {
name: "batchSingleApplication",
props:{
orderList:String,
orderList:[String,Number],
dialogVisible:{
type:Boolean,
default:false,
}
},
components:{
Template,
warehouseDetails,
workFlow
},
created() {
getOrderPage({orderIdList:this.orderList}).then(r =>{
this.list = r.data.list
warehouseAdjustmentList({id:this.list[0].startWarehouseId}).then( r => this.availableWarehouse = r.data)
})
watch:{
dialogVisible(val){
if(val){
getOrderPage({orderIdList:this.orderList}).then(r =>{
this.list = r.data.list
warehouseAdjustmentList({id:this.list[0].startWarehouseId}).then( r => this.availableWarehouse = r.data)
})
}
}
},
computed:{
isSubmit(){
......@@ -120,6 +150,9 @@ export default {
if(this.list.every(e => e.status === 5) && [...new Set(l)].length === 1) flag = false
}
return flag;
},
adjustmentBol(){
return this.list.some(e => e.inWarehouseState === 10)
}
},
data(){
......@@ -146,6 +179,7 @@ export default {
this.params.orderNo = this.list[0].orderNo
orderWarehouseInAdjustApply(this.params).then( r=>{
if(r.code === 0){
this.$emit('update:dialogVisible',false)
this.$message.success('调仓成功');
}
})
......
......@@ -4,7 +4,7 @@
<el-form-item label="订单号" prop="field101">
111
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="收货人" prop="field104">
......@@ -20,11 +20,11 @@
<el-form-item label="总控货箱数" prop="field105">
111
</el-form-item>
<el-form-item label="原放货箱数" prop="field106">
111
</el-form-item>
<el-form-item label="现放货箱数" prop="field106">
<el-input v-model="formData.cnt" placeholder=""></el-input>
</el-form-item>
......@@ -32,22 +32,22 @@
<el-form-item label="备注" prop="field106">
<el-input v-model="formData.cnt" placeholder=""></el-input>
</el-form-item>
<el-form-item label="控货手机号" prop="field106">
13000000000
</el-form-item>
<el-form-item label="手机验证码" prop="field106">
<el-input v-model="formData.cnt" placeholder="" style="width: 100px; margin-right:10px"></el-input>
<el-button type="default">获取验证码</el-button>
</el-form-item>
</el-form-item>
<div class="title">审批流程</div>
<work-flow bmpkey="free_apple" />
<el-form-item label="">
<el-button type="primary" @click="$alert('// TODO')">提交申请</el-button>
<el-button @click="closeDialog">关闭</el-button>
</el-form-item>
</el-form-item>
</el-form>
<div v-else>
<release-agreement />
......@@ -86,13 +86,13 @@ export default {
},
methods:{
loadData(){
},
closeDialog(){
this.show = false
this.$emit('close');
},
}
}
</script>
......@@ -110,4 +110,4 @@ export default {
margin-right:10px;
}
}
</style>
\ No newline at end of file
</style>
<template>
<div class="fee-application">
<h1>费用申请-{{orderDetails.orderNo}}
</h1>
<el-divider></el-divider>
<el-form label-width="100px" inline>
<el-form-item label="订单号:"><div class="content">
<el-dialog :visible.sync="dialogVisible" width="80%" :before-close="()=>{
$emit('update:dialogVisible',false)
}">
<div class="fee-application">
<h1>费用申请-{{orderDetails.orderNo}}
</h1>
<el-divider></el-divider>
<el-form label-width="100px" inline>
<el-form-item label="订单号:"><div class="content">
{{orderDetails.orderNo}}
</div></el-form-item>
<el-form-item label="发货人:"><div class="content">{{orderDetails.consignorVO ? 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 :data="list">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="费用类型">
</div></el-form-item>
<el-form-item label="发货人:"><div class="content">{{orderDetails.consignorVO ? 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 :data="list">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="费用类型">
<template v-slot:default = "scope">
<dict-selector :disabled="isModify[forbidden(scope.row)]" :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 :disabled="isModify[forbidden(scope.row)]" v-model="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column label="货币类型">
<template v-slot:default = 'scope'>
<dict-selector :disabled="isModify[forbidden(scope.row)]" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" v-model="scope.row.applicationFeeCurrency" />
</template>
</el-table-column>
<el-table-column label="付款类型">
<template v-slot = {row}>
<dict-selector :disabled="isModify[forbidden(row)]" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
</template>
</el-table-column>
<el-table-column label="备注">
<template v-slot:default="scope">
<el-input :disabled="isModify[forbidden(scope.row)]" 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="申请人">
</el-table-column>
<el-table-column label="金额">
<template v-slot:default = 'scope'>
<el-input :disabled="isModify[forbidden(scope.row)]" v-model="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column label="货币类型">
<template v-slot:default = 'scope'>
<dict-selector :disabled="isModify[forbidden(scope.row)]" :type="DICT_TYPE.COMMISSION_CURRENCY_TYPE" v-model="scope.row.applicationFeeCurrency" />
</template>
</el-table-column>
<el-table-column label="付款类型">
<template v-slot = {row}>
<dict-selector :disabled="isModify[forbidden(row)]" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
</template>
</el-table-column>
<el-table-column label="备注">
<template v-slot:default="scope">
<el-input :disabled="isModify[forbidden(scope.row)]" 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'>
<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" @click="modify(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
<div style="padding: 20px">
<work-flow xmlkey="free_apply" v-model="selectedUsers" />
</div>
<div style="text-align: center;margin-top: 20px;">
<el-button style="margin-right: 30px;" @click="submit">提交</el-button>
<el-button>取消</el-button>
</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" @click="modify(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
<div style="padding: 20px">
<work-flow xmlkey="free_apply" v-model="selectedUsers" />
</div>
<div style="text-align: center;margin-top: 20px;">
<el-button style="margin-right: 30px;" @click="submit">提交</el-button>
<el-button>取消</el-button>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
......@@ -75,6 +80,10 @@ export default {
components: {Template,workFlow},
props:{
orderId:[Number, String],
dialogVisible:{
type:Boolean,
default:false,
}
},
data(){
return {
......@@ -89,12 +98,6 @@ export default {
}
},
created() {
getOrder(this.orderId).then(r =>{
if(r.code === 0){
this.orderDetails = r.data
}
})
this.getOrderList()
this.getDictDatas(this.DICT_TYPE.AUDIT_STATUS).forEach( e =>{
this.STATUS[e.value] = e.label
})
......@@ -128,11 +131,10 @@ export default {
this.isModifyIf = false;
},
submit(){
if(this.isModifyIf){
applicationUpdate({...this.list[this.isModify.findIndex(e => e === false)],status:1}).then(r => {
if(r.code === 0){
this.getOrderList();
this.$emit('update:dialogVisible',false)
this.$message.success('修改成功');
}
})
......@@ -140,7 +142,7 @@ export default {
if(this.list[this.list.length - 1].status === 0){
feeApplicationCreate( {...this.list[this.list.length - 1],status:1,copyUserId:this.selectedUsers}).then(r=>{
if(r.code === 0){
this.getOrderList();
this.$emit('update:dialogVisible',false)
this.$message.success('添加成功');
this.selectedUsers = [];
}
......@@ -163,6 +165,18 @@ export default {
this.isModifyIf = true;
this.$set(this.isModify, this.list.findIndex(e => e.id = row.id), false )
},
},
watch:{
dialogVisible(val){
if(val){
this.getOrderList()
getOrder(this.orderId).then(r =>{
if(r.code === 0){
this.orderDetails = r.data
}
})
}
},
}
}
</script>
......
......@@ -4,7 +4,7 @@
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="编号" prop="orderNo">
<el-input v-model="queryParams.orderNo" placeholder="请输入订单号、唛头、提单号" clearable @keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.numberKey" placeholder="请输入订单号、唛头、提单号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<!-- <el-form-item label="唛头" prop="marks">
<el-input v-model="queryParams.marks" placeholder="唛头" clearable @keyup.enter.native="handleQuery" />
......@@ -50,7 +50,7 @@
</el-form-item> -->
<el-form-item label="商品" prop="tidanNo">
<el-input v-model="queryParams.product" placeholder="请输入商品类型、品名或品牌" clearable @keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.prodKey" placeholder="请输入商品类型、品名或品牌" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="控货" prop="isCargoControl">
......@@ -60,8 +60,7 @@
<dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="queryParams.warehousingType" />
</el-form-item>
<el-form-item label="客户经理" >
<!-- <customer-selector /> -->
// TODO
<user-selector v-model="queryParams.salesmanId" />
</el-form-item>
<el-form-item label="订单状态" prop="status">
<dict-selector :type="DICT_TYPE.ORDER_STATUS" v-model="queryParams.status"
......@@ -103,7 +102,7 @@
v-hasPermi="['ecw:order:create']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-setting" size="mini" @click="handleEdit" :disabled="multiple">批量调仓
<el-button type="primary" plain icon="el-icon-setting" size="mini" @click="handleEdit" :disabled="!batchWarehouseAdjustment">批量调仓
</el-button>
<el-button type="primary" plain icon="el-icon-setting" size="mini" @click="showBatchPickup=true">批量提货
</el-button>
......@@ -170,7 +169,7 @@
<el-button v-if="scope.row.status < 5" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'cancelOrder')">取消订单</el-button>
<el-button v-if="scope.row.status == 88" size="mini" type="text" icon="el-icon-delete" @click="oprateOrder(scope.row.orderId, 'recoveryOrder')">恢复订单</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="feeApplicationBol = true; orderId = 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>
<el-button type="text" size="mini" @click="$router.push(`/order/mutex-order/${scope.row.orderId}`)" >互斥</el-button>
......@@ -204,7 +203,7 @@
v-hasPermi="['ecw:order:update']">入仓</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="show = true;orderId = scope.row.orderId; "
v-hasPermi="['ecw:order:update']">退仓</el-button>
<el-button type="text" v-if="scope.row.status === 5" size="mini" @click="$router.push({path:'/order/batch-single-application',query:{list:scope.row.orderId}})" >调仓</el-button>
<el-button type="text" size="mini" @click="orderId = scope.row.orderId;warehouseBol=true;">调仓</el-button>
<el-button type="text" size="mini" @click="$router.push({path:'/order/transfer-warehousing/' + scope.row.orderId + '/' + 1 })" >调拨出仓</el-button>
<el-button type="text" size="mini" @click="$router.push({path:'/order/transfer-to-warehouse/' + scope.row.orderId + '/' + 2 })" >调拨到仓</el-button>
</div>
......@@ -242,6 +241,8 @@
<print-lading-bill v-if="printLadingBillInfo !== null" v-bind="printLadingBillInfo" @close="printLadingBillInfo=null" />
<batch-pickup v-if="showBatchPickup" @close="showBatchPickup=false"/>
<withdrawal v-if="show" :dialog-visible="show" :orderId="orderId" ></withdrawal>
<batch-single-application :order-list="orderId" :dialog-visible.sync="warehouseBol"></batch-single-application>
<fee-application :order-id="orderId" :dialog-visible.sync="feeApplicationBol"></fee-application>
</div>
</template>
......@@ -270,9 +271,15 @@ import PrintWarehouseReceipt from './components/PrintWarehouseReceipt'
import PrintLadingBill from './components/PrintLadingBill'
import BatchPickup from './components/BatchPickup'
import withdrawal from "@/views/ecw/order/withdrawal";
import UserSelector from '@/components/UserSelector'
import BatchSingleApplication from "@/views/ecw/order/batchSingleApplication";
import FeeApplication from "@/views/ecw/order/feeApplication";
export default {
name: "Order",
components: {
UserSelector,
FeeApplication,
BatchSingleApplication,
CustomerSelector, ProductSelector, Selector,specialNeeds,PrintTag, PrintWarehouseReceipt, PrintLadingBill, BatchPickup,withdrawal
},
props: {
......@@ -354,7 +361,9 @@ export default {
getDictDatas */
adjustmentList:[],
show:false,
warehouseBol:false,//调仓申请
feeApplicationBol:false,//费用申请
multipleSelection:[]
};
},
computed: {
......@@ -371,7 +380,11 @@ export default {
timeParams['end' + this.dateFilterType] = this.dateFilter[1]
}
return Object.assign({}, this.queryParams, timeParams)
}
},
batchWarehouseAdjustment(){
return this.multipleSelection.length > 0 && this.multipleSelection.every(e => e.status === 5)
},
},
created() {
this.getList();
......@@ -459,15 +472,14 @@ export default {
},
// 表格多选
handleSelectionChange(selection) {
this.multipleSelection = selection
this.ids = selection.map(item => item.orderId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
handleEdit() {
this.$router.push({
path:'/order/batch-single-application',
query:{list:this.ids.join(',')}
})
this.warehouseBol = true
this.orderId = this.ids.join(',')
},
moleculeChange() { },
denominatorChange() { },
......
......@@ -8,7 +8,7 @@
<el-divider content-position="left">
货物信息
</el-divider>
<el-table :data="orderDetails.orderItemVOList ? orderDetails.orderItemVOList : [] ">
<el-table :data=" orderDetails.orderItemVOList && orderDetails.orderItemVOList.length > 0 ? orderDetails.orderItemVOList : [] ">
<el-table-column type="index" label="序号"></el-table-column>
<el-table-column label="品名">
<template v-slot="{row}">
......@@ -31,16 +31,20 @@
<template v-slot="{row}">
<el-descriptions size="mini" :column="4">
<el-descriptions-item label="品牌">{{ row.brand }}</el-descriptions-item>
<el-descriptions-item label="箱数"> {{ row.warehouseInInfoVO.cartonsNum }}</el-descriptions-item>
<el-descriptions-item label="体积">{{ row.warehouseInInfoVO.volume }}</el-descriptions-item>
<el-descriptions-item label="重量"> {{ row.warehouseInInfoVO.weight }}</el-descriptions-item>
<el-descriptions-item label="箱数"> {{ row.warehouseInInfoVO ? row.warehouseInInfoVO.cartonsNum :'' }}</el-descriptions-item>
<el-descriptions-item label="体积">{{ row.warehouseInInfoVO ? row.warehouseInInfoVO.volume :'' }}</el-descriptions-item>
<el-descriptions-item label="重量"> {{row.warehouseInInfoVO ? row.warehouseInInfoVO.weight : '' }}</el-descriptions-item>
</el-descriptions>
</template>
</el-table-column>
<el-table-column label="最后操作时间"></el-table-column>
<el-table-column label="最后操作时间">
<template v-slot="{row}">
{{parseTime(row.createTime)}}
</template>
</el-table-column>
<el-table-column label="状态">
<template v-slot="{row}">
<dict-tag :value="row.warehouseInInfoVO.diffType" :type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS"/>
<dict-tag :value=" row.warehouseInInfoVO ? row.warehouseInInfoVO.diffType :''" :type="DICT_TYPE.ORDER_WAREHOUSE_IN_STATUS"/>
</template>
</el-table-column>
</el-table>
......@@ -49,12 +53,12 @@
</el-divider>
<el-table :data="warehouseList" v-if="type == 2">
<el-table-column label="调仓编号" prop="id"></el-table-column>
<el-table-column label="调出仓库" prop="warehouseOutId" ></el-table-column>
<el-table-column label="调入仓库" prop="warehouseInId"></el-table-column>
<el-table-column label="申请人"></el-table-column>
<el-table-column label="调出仓库" prop="warehouseOutName" ></el-table-column>
<el-table-column label="调入仓库" prop="warehouseInName"></el-table-column>
<el-table-column label="申请人" prop="creator"></el-table-column>
<el-table-column label="申请时间">
<template v-slot="{row}">
{{parseTime(row.createTime)}}
</template>
</el-table-column>
<el-table-column label="状态">
......@@ -72,7 +76,9 @@
</el-table>
<el-descriptions style="margin-top: 20px" :column="4" border>
<el-descriptions-item label="集运仓库">{{ warehouseDetails.warehouseOutName }}</el-descriptions-item>
<el-descriptions-item label="储位">{{}}</el-descriptions-item>
<el-descriptions-item label="储位">
<div v-for="item in storageSpaceList" style="display: flex;"><div>{{item.warehouseName}}</div><div>{{item.regionName}} 区</div></div>
</el-descriptions-item>
<el-descriptions-item label="调拨目标仓">{{ warehouseDetails.warehouseInName }}</el-descriptions-item>
<el-descriptions-item label="物流公司">
<el-select v-model="params.logisticsCompany" >
......@@ -110,7 +116,7 @@
</el-form-item>
</el-form>
<div>
<el-button v-if="type === 1" @click="submit">确认出仓</el-button>
<el-button v-if="type == 1" @click="submit">确认出仓</el-button>
<el-button v-else @click="submit2">确认到仓</el-button>
<el-button @click="$router.back()">返回</el-button>
</div>
......@@ -120,6 +126,7 @@
<script>
import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm";
import {
getAdjustInfo,
getOrder, listByOrderId,
orderWarehouseInGetAdjustInfo,
orderWarehousePicturePage, warehouseAdjustArrived, warehouseAdjustPage,
......@@ -129,6 +136,7 @@ import Template from "@/views/cms/template";
import {DICT_TYPE} from '@/utils/dict';
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index";
import {getSupplierPage} from "@/api/ecw/supplier";
import {getByWarehouseId} from "@/api/ecw/warehouseArea";
let STATUS = {1:'审核中', 2:'已通过', 3:'已拒绝', 4:'已出仓', 5:'已到仓'}
export default {
name: "transferWarehousing",
......@@ -157,7 +165,8 @@ export default {
phone: "",
urls: []
},
expressList:[]
expressList:[],
storageSpaceList:[],
}
},
created() {
......@@ -171,14 +180,33 @@ export default {
}
})
if(this.type == 2){
warehouseAdjustPage({rows:100,orderId:this.orderId}).then(r => {
this.warehouseList = r.data.list
getAdjustInfo({orderId:this.orderId,lang:0}).then(r => {
this.warehouseList = r.data
})
}
orderWarehouseInGetAdjustInfo({orderId: this.orderId, lang: 0}).then(r => {
this.warehouseDetails = r.data[0]
listByOrderId({orderId:this.orderId}).then(r => {
console.log(r,'r')
listByOrderId({orderId:this.orderId}).then(res => {
if(res.code === 0){
getByWarehouseId().then(r =>{
let obj = [];
res.data.forEach(item => {
r.data.forEach(itemm => {
if(item.wareId === itemm.id){
itemm.children.forEach(itemmm => {
if(itemmm.id === item.areaId){
obj.push({
warehouseName:itemm.name,
regionName:itemmm.name
})
}
})
}
})
})
this.storageSpaceList = obj;
})
}
})
this.params.phone = this.warehouseDetails.phone;
this.params.logisticsNo = this.warehouseDetails.logisticsNo;
......@@ -205,12 +233,10 @@ export default {
},
submit2(){
warehouseAdjustArrived(this.params).then(r => {
{
if(r.code === 0){
this.$message.success('调到仓成功');
this.$router.back();
}
}
})
}
},
......
......@@ -103,14 +103,16 @@
<div style="text-align: center">在完成入仓前,您还可以</div>
<div style="text-align: center;padding: 15px 0">
<el-button type="info" @click="areaVisible = true">选择储位</el-button>
<el-button type="info" @click="isShowPrint = true">打印标签</el-button>
<el-button type="info" @click="isShowPrintTag = true">打印标签</el-button>
</div>
<div style="text-align: center">
<el-button type="primary" @click="handleSubmit()">确 定</el-button>
</div>
</el-dialog>
<print-tag v-if="isShowPrint" :order-id="orderId" @close="isShowPrint = false"></print-tag>
<print-tag v-if="isShowPrintTag" :order-id="orderId" @close="isShowPrintTag = false"></print-tag>
<print-warehouse-receipt v-if="isShowPrint" :order-id="orderId" @close="isShowPrint = false" />
</div>
</template>
......@@ -128,6 +130,7 @@ import WarehouseAreaDialog from '@/components/WarehouseAreaDialog'
import editDialog from '@/views/ecw/order/warehousing/components/editDialog'
import {DICT_TYPE} from "@/utils/dict"
import PrintTag from "@/views/ecw/order/components/PrintTag"
import PrintWarehouseReceipt from "@/views/ecw/order/components/PrintWarehouseReceipt"
export default {
name: "Warehousing",
......@@ -136,7 +139,8 @@ export default {
orderBaseInfo,
WarehouseAreaDialog,
editDialog,
PrintTag
PrintTag,
PrintWarehouseReceipt
},
mounted() {
......@@ -166,6 +170,7 @@ export default {
orderItemList: [],
specialList: [],
warehousing: undefined,
isShowPrintTag: false,
isShowPrint: false
}
},
......@@ -182,10 +187,12 @@ export default {
'该订单已成功入仓,是否打印?',
'货物已入仓',
{
confirmButtonClass: '',
confirmButtonText: '',
cancelButtonText: ''
}
).then().catch(() => {
).then(() => {
this.isShowPrint = true
}).catch(() => {
// this.$store.dispatch('tagsView/delVisitedView')
this.$message.success('入仓成功')
})
......
This diff is collapsed.
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