Commit e94e2994 authored by dragondean@qq.com's avatar dragondean@qq.com
parents 01b7b634 b44291dd
...@@ -273,6 +273,14 @@ export function getPayableInfoByIds(query) { ...@@ -273,6 +273,14 @@ export function getPayableInfoByIds(query) {
params: query params: query
}) })
} }
//获取佣金应付款详情
export function getCommissionPayable(params){
return request({
url:'/ecw/commission-payable/get',
method:"get",
params
})
}
// 创建付款单 // 创建付款单
export function createPayment(data) { export function createPayment(data) {
...@@ -282,6 +290,14 @@ export function createPayment(data) { ...@@ -282,6 +290,14 @@ export function createPayment(data) {
data: data data: data
}) })
} }
// 创建佣金订单
export function commissionPayment(data){
return request({
url:'/ecw/commission-payment/create',
method:'post',
data
})
}
// 获取付款单列表 // 获取付款单列表
export function getPaymentList(query) { export function getPaymentList(query) {
...@@ -318,6 +334,14 @@ export function updatePayment(data) { ...@@ -318,6 +334,14 @@ export function updatePayment(data) {
data: data data: data
}) })
} }
// 更新佣金付款单
export function commissionPaymentUpdate(data){
return request({
url:'/ecw/commission-payment/update',
method:'put',
data
})
}
// 删除付款单 // 删除付款单
export function deletePayment(id) { export function deletePayment(id) {
...@@ -359,3 +383,218 @@ export function paymentVerifyCancel(id) { ...@@ -359,3 +383,218 @@ export function paymentVerifyCancel(id) {
method: 'GET' method: 'GET'
}) })
} }
//获取佣金应付款
export function payablePage(params){
return request({
url:'/ecw/commission-payable/page',
method:'get',
params
})
}
//获取佣金付款单
export function commissionPaymentPage(params){
return request({
url:'/ecw/commission-payment/page',
method:'get',
params
})
}
// 根据流程主键获取付款单流程审核信息
export function getPaymentApprove(id) {
return request({
url: '/ecw/payment/getPaymentApprove?id='+id,
method: 'GET'
})
}
// 根据流程主键获取收款单流程审核信息
export function getReceiptApprove(id) {
return request({
url: '/ecw/receipt/getReceiptApprove?id='+id,
method: 'GET'
})
}
// 收款单核销
export function financeReceiptWriteOff(query) {
return request({
url: '/ecw/receipt/financeReceiptWriteOff',
method: 'POST',
data: query
})
}
// 收款单银行明细核销
export function financeReceiptItemWriteOff(query) {
return request({
url: '/ecw/receipt-item/financeReceiptItemWriteOff',
method: 'POST',
data: query
})
}
// 收款单银行明细核销反审核
export function financeReceiptItemWriteOffNo(query) {
return request({
url: '/ecw/receipt-item/financeReceiptItemWriteOffNo',
method: 'POST',
data: query
})
}
// 收款单反审核
export function financeApproveNo(query) {
return request({
url: '/ecw/receipt/financeApproveNo',
method: 'POST',
data: query
})
}
// 收款单反核销
export function financeReceiptWriteOffNo(query) {
return request({
url: '/ecw/receipt/financeReceiptWriteOffNo',
method: 'POST',
data: query
})
}
// 收款单取消审核
export function cancelFinanceReceiptApproval(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptApproval',
method: 'POST',
data: query
})
}
// 取消收款单反审核
export function cancelFinanceReceiptApprovalNo(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptApprovalNo',
method: 'POST',
data: query
})
}
// 取消收款单反核销
export function cancelFinanceReceiptWriteOffNo(query) {
return request({
url: '/ecw/receipt/cancelFinanceReceiptWriteOffNo',
method: 'POST',
data: query
})
}
// 取消收款明细核销
export function cancelFinanceReceiptItemWriteOff(query) {
return request({
url: '/ecw/receipt-item/cancelFinanceReceiptItemWriteOff',
method: 'POST',
data: query
})
}
// 取消收款明细反核销
export function cancelFinanceReceiptItemWriteOffNo(query) {
return request({
url: '/ecw/receipt-item/cancelFinanceReceiptItemWriteOffNo',
method: 'POST',
data: query
})
}
// 取消审核
export function cancelFinancePaymentApproval(data){
return request({
url:'/ecw/payment/cancelFinancePaymentApproval',
method:'post',
data
})
}
// 取消付款单反审核
export function cancelFinancePaymentApprovalNo(data){
return request({
url:'/ecw/payment/cancelFinancePaymentApprovalNo',
method:'post',
data
})
}
// 取消付款单核销
export function cancelFinancePaymentWriteOff(data){
return request({
url:'/ecw/payment/cancelFinancePaymentWriteOff',
method:'post',
data
})
}
export function cancelFinancePaymentWriteOffNo(data){
return request({
url:'/ecw/payment/cancelFinancePaymentWriteOffNo',
method:'post',
data
})
}
//删除佣金付款单
export function commissionPaymentDelete(params){
return request({
url:'/ecw/commission-payment/delete',
method:'delete',
params
})
}
//反审核佣金付款单
export function commissionPaymentVerifyCancel(data){
return request({
url:'/ecw/commission-payment/verifyCancel',
method:'post',
data
})
}
// 佣金付款单核销
export function commissionPaymentVerification(data){
return request({
url:'/ecw/commission-payment/verification',
method:'post',
data
})
}
//付款单反核销申请
export function commissionPaymentVerificationCancel(data){
return request({
url:'/ecw/commission-payment/verificationCancel',
method:'post',
data
})
}
// 取消付款单反审核
export function commissionPaymentCancelFinancePaymentApprovalNo(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentApprovalNo',
method:'post',
data
})
}
// 取消付款单核销
export function commissionPaymentCancelFinancePaymentWriteOff(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentWriteOff',
method:'post',
data
})
}
// 取消付款单反核销
export function commissionPaymentCancelFinancePaymentWriteOffNo(data){
return request({
url:'/ecw/commission-payment/cancelFinancePaymentWriteOffNo',
method:'post',
data,
})
}
...@@ -212,6 +212,15 @@ export function saveOrUpdateOrderLocation(data){ ...@@ -212,6 +212,15 @@ export function saveOrUpdateOrderLocation(data){
}) })
} }
// 入仓修改储位
export function updateWarehouseInLocation(data){
return request({
url: '/order/location/update-warehouse-in-location',
method: 'put',
data
})
}
// 获取入仓修改审批单详情-审批使用 // 获取入仓修改审批单详情-审批使用
export function getWarehouseUpdateApprovalInfo(id) { export function getWarehouseUpdateApprovalInfo(id) {
return request({ return request({
...@@ -664,4 +673,4 @@ export function operateLogPage(params){ ...@@ -664,4 +673,4 @@ export function operateLogPage(params){
method: 'get', method: 'get',
params: params params: params
}) })
} }
\ No newline at end of file
<template>
<div>
<div class="area-code">{{ selected.join(', ') }}</div>
<el-button v-show="!readonly" type="primary" size="mini" @click="handleOpen">选择</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
append-to-body
:before-close="handleClose">
<el-tabs v-model="activeName" type="card" @tab-click="activeWarehouse = {}">
<el-tab-pane :label="item.name" :name="'' + index" v-for="(item, index) in area" :key="index">
<div>
<div style="text-align: center">{{$t('区域')}}</div>
<div style="background-color: #efefef;padding: 10px 10px 0;border: #dcdcdc solid 1px;border-radius: 2px">
<el-row :gutter="20">
<el-col :span="12" v-for="warehouse in item.children" :key="warehouse.id">
<div
class="warehouse-block"
:class="{'warehouse-block-selected': warehouse.selected, 'warehouse-block-active': warehouse.id === activeWarehouse.id}"
@click="handleSelectWarehouse(warehouse)"
>
{{ warehouse.name }}
</div>
</el-col>
</el-row>
</div>
</div>
<div>
<div style="text-align: center">{{$t('仓位')}}</div>
<div class="position-group">
<div class="position" v-for="position in activeWarehouse.positionList" :key="position.id" @click="handleSelectPosition(position)">
<template v-if="position.children">
<div
class="position-item"
v-for="item in position.children"
:key="item.id"
@click.stop="handleSelectPositionChild(item)"
:class="{'position-item-active': item.selected}">
{{ item.code }}
</div>
</template>
<template v-else>
<div
class="position-item"
:class="{'position-item-active': position.selected}">
{{ position.code }}
</div>
</template>
</div>
</div>
</div>
<el-divider></el-divider>
{{$t('已选择')}}:{{ selected.join(', ') }}
<el-divider></el-divider>
</el-tab-pane>
</el-tabs>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="handleSave">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {getByWarehouseId} from "@/api/ecw/warehouseArea"
import { updateWarehouseInLocation } from "@/api/ecw/order"
export default {
name: "WarehouseAreaSelect",
props: {
value: {
type: Array,
default: () => []
},
orderId: Number,
orderItemId: Number,
// 入仓记录id
warehouseInId: Number,
warehouseId: {
type: Number,
default: undefined
},
// 是否入仓修改
isEditing: {
type: Boolean,
default: false
},
readonly: {
type: Boolean,
default: false
}
},
data() {
return {
dialogVisible: false,
activeName: '0',
activeWarehouse: {},
area: [],
}
},
mounted() {
this.initArea()
},
computed: {
// code array
selected() {
const result = []
this.area?.forEach(e => {
// 仓库
e.children?.forEach(f => {
// 区域
if (f.selected) result.push(f.code)
else f.positionList?.forEach(g => {
// 位置
if (g.selected) result.push(f.code + g.code)
else if(g.children) g.children?.forEach(k => {
// 子位置
if (k.selected) result.push(f.code + k.code)
})
})
})
})
return result
},
inputValue(){
const result = []
this.area?.forEach(e => {
// 仓库
e.children?.forEach(f => {
// 区域
if (f.selected) result.push({
orderId: this.orderId,
wareId: f.pid,
areaId: f.id
})
else {
f.positionList?.forEach(g => {
// 位置
if (g.selected) result.push({
orderId: this.orderId,
wareId: g.domainId,
areaId: g.areaId,
locationId: g.id
})
else g.children?.forEach(k => {
// 子位置
if (k.selected) result.push({
orderId: this.orderId,
wareId: k.domainId,
areaId: k.areaId,
locationId: k.id
})
})
})
}
})
})
return result
}
},
methods: {
handleOpen(){
this.dialogVisible = true
this.initArea()
},
handleSave(){
this.$emit('input', this.inputValue)
this.dialogVisible = false
if (this.isEditing) {
this.$nextTick(() => {
const data = this.inputValue.map(e => {
return {
...e,
orderItemId: this.orderItemId,
warehouseInId: this.warehouseInId
}
})
updateWarehouseInLocation(data)
})
}
},
handleClose() {
this.dialogVisible = false
},
handleSelectWarehouse(warehouse) {
this.activeWarehouse = warehouse
if (!!warehouse.selected) {
warehouse.selected = false
return
} else if(this.activeWarehouseId !== warehouse.id) {
this.activeWarehouseId = warehouse.id
if (this.inputValue.find(e => e.areaId === warehouse.id)){
return
}
}
warehouse.selected = true
// 区域被选,清空该区域下的位置
if(warehouse.positionList) warehouse.positionList?.forEach(g => {
g.selected = false
g.children?.forEach(k => {
k.selected = false
})
})
},
handleSelectPositionChild(position) {
if (!!position.selected) {
position.selected = false
// 反选位置时,检查父区域下是否所有位置被反选,若是,选父区域
const parentAre = this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId)
if (!parentAre.selected) {
// 检查父区域下是否所有位置被反选
let hasSelected = false
parentAre.positionList?.forEach(g => {
// 位置
g.children?.forEach(k => {
// 子位置
if (k.selected) hasSelected = true
})
})
// 所有子位置被反选,选父区域
if (!hasSelected) parentAre.selected = true
}
} else {
position.selected = true
// 选位置时,父区域反选
this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId).selected = false
}
},
handleSelectPosition(position) {
if (!!position.selected) {
position.selected = false
} else {
position.selected = true
// 选位置时,父区域反选
this.area.find(e => e.id === position.domainId).children.find(f => f.id === position.areaId).selected = false
}
},
initArea(){
return getByWarehouseId({ warehouseId: this.warehouseId }).then(r => {
const area = r.data
area.forEach(e => {
// 仓库
e.children?.forEach(f => {
// 区域
f.selected = this.isSelected(e.id, f.id)
if(f.positionList) f.positionList.forEach(g => {
// 位置
g.selected = this.isSelected(e.id, f.id, g.id)
g.children?.forEach(k => {
// 子位置
k.selected = this.isSelected(e.id, f.id, k.id)
})
})
})
})
this.area = area
})
},
// 用于储位回显选中
isSelected(warehouse, area, position = 0){
return !!this.value.find(e => warehouse === e.wareId && area === e.areaId && position === e.locationId)
},
}
}
</script>
<style scoped>
.area-code{
display: inline-block;
margin-right: 15px;
}
.warehouse-block{
background-color: white;
border-radius: 5px;
height: 42px;
line-height: 42px;
text-align: center;
margin-bottom: 15px;
cursor: pointer;
transition: 0.5s;
box-shadow: #bfbfbf 3px 3px 14px 0;
user-select: none;
}
.warehouse-block:hover{
opacity: 0.9;
transition: 0.5s;
transform: scale(1.02);
box-shadow: #8f8f8f 7px 5px 14px 0;
}
.warehouse-block-active{
box-shadow: #b1a4cb 7px 5px 14px 0;
transform: scale(1.04);
background-color: #9ab7e1;
color: #ffffff;
}
.warehouse-block-selected{
color: #ffffff;
background-color: #4085e3;
}
.position-group{
display: flex;
background-color: #EFEFEF;
border: 1px #EFEFEF solid;
gap: 1px;
min-height: 64px;
flex-flow: wrap;
}
.position{
width: calc(20% - 1px);
height: 64px;
display: flex;
flex-direction: column;
gap: 1px;
user-select: none;
}
.position-item{
width: 100%;
background-color: #FFFFFF;
flex: 1;
cursor: pointer;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
}
.position-item:hover{
background-color: #d7dbe3;
}
.position-item-active{
background-color: #4085e3;
color: white;
}
.position-item-active:hover{
background-color: #4085e3;
opacity: 0.8;
}
</style>
...@@ -194,6 +194,7 @@ export const DICT_TYPE = { ...@@ -194,6 +194,7 @@ export const DICT_TYPE = {
ORDER_SPECIAL_NEEDS:'order_special_needs', // 订单特殊需求 ORDER_SPECIAL_NEEDS:'order_special_needs', // 订单特殊需求
ORDER_ABNORMAL_STATE:'order_abnormal_state', ORDER_ABNORMAL_STATE:'order_abnormal_state',
TARGET_TYPE:'target_type',//部门业绩目标类型 TARGET_TYPE:'target_type',//部门业绩目标类型
RECEIPT_ITEM_STATE:'receipt_item_state',//收款单明细状态
// ========== 出货模块 ========== // ========== 出货模块 ==========
BOX_SHIPPING_TRAILER_STATUS: 'shipping_trailer_status', // 拖车状态 BOX_SHIPPING_TRAILER_STATUS: 'shipping_trailer_status', // 拖车状态
BOX_SHIPPING_CUSTOMS_TYPE: 'shipping_customs_type', // 报关方式 BOX_SHIPPING_CUSTOMS_TYPE: 'shipping_customs_type', // 报关方式
......
...@@ -339,6 +339,48 @@ export default { ...@@ -339,6 +339,48 @@ export default {
id: this.processInstance.businessKey, id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath path: this.processInstance.processDefinition?.formCustomViewPath
}, },
//付款单审核
finance_payment_approve:{
component: () => import('@/views/ecw/financial/components/PaymentApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单审核
finance_receipt_approve:{
component: () => import('@/views/ecw/financial/components/CollectionApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单核销
finance_receipt_write_off:{
component: () => import('@/views/ecw/financial/components/CollectionWriteoff'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单反核销审核
finance_receipt_write_off_no:{
component: () => import('@/views/ecw/financial/components/CollectionApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单核销反审核
finance_receipt_approve_no:{
component: () => import('@/views/ecw/financial/components/CollectionApproval'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单银行实收明细核销
finance_receipt_item_write_off:{
component: () => import('@/views/ecw/financial/components/CollectionBankDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
//收款单银行实收反核销
finance_receipt_item_write_off_no:{
component: () => import('@/views/ecw/financial/components/CollectionBankDetail'),
id: this.processInstance.businessKey,
path: this.processInstance.processDefinition?.formCustomViewPath
},
} }
console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim()) console.log('formCustomViewPath', this.processInstance.processDefinition.formCustomViewPath.trim())
return map[this.processInstance.processDefinition.formCustomViewPath.trim()] return map[this.processInstance.processDefinition.formCustomViewPath.trim()]
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px"> <el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item :label="$t('代理商Agent')" prop="agentId"> <el-form-item :label="$t('代理商Agent')" prop="agentId">
<supplierSelect v-model="agentObj.agentId" :companyType="'1'" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
......
...@@ -26,7 +26,7 @@ export default { ...@@ -26,7 +26,7 @@ export default {
getSuppliers() { getSuppliers() {
if (!this.companyType) return this.allSupplier; if (!this.companyType) return this.allSupplier;
return this.allSupplier.filter((item) => return this.allSupplier.filter((item) =>
item.companyTypes.includes(this.companyType) item.areaType == 1
); );
}, },
}, },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<el-form ref="subMaterialForm" :model="subMaterialObj" label-width="140px"> <el-form ref="subMaterialForm" :model="subMaterialObj" label-width="140px">
<el-form-item :label="$t('代理商AGENT')"> <el-form-item :label="$t('代理商AGENT')">
<supplierSelect v-model="subMaterialObj.agentId" :companyType="'1'" :placeholder="$t('请选择供应商')" :allSupplier="this.$attrs.allSupplier" /> <supplierSelect v-model="subMaterialObj.agentId" :placeholder="$t('请选择供应商')" :allSupplier="this.$attrs.allSupplier" disabled />
</el-form-item> </el-form-item>
<el-form-item :label="$t('提单号M/BL NO.')" class="two-element"> <el-form-item :label="$t('提单号M/BL NO.')" class="two-element">
<el-input v-model="subMaterialObj.blMblNo" :placeholder="$t('请输入提单号')"></el-input> <el-input v-model="subMaterialObj.blMblNo" :placeholder="$t('请输入提单号')"></el-input>
...@@ -24,19 +24,22 @@ ...@@ -24,19 +24,22 @@
<userSelect v-model="subMaterialObj.shipperId" :placeholder="$t('请选择托运人')" :allUsers="this.$attrs.allUsers" /> <userSelect v-model="subMaterialObj.shipperId" :placeholder="$t('请选择托运人')" :allUsers="this.$attrs.allUsers" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('收货人')"> <el-form-item :label="$t('收货人')">
<userSelect v-model="subMaterialObj.consigneeId" :placeholder="$t('请选择收货人')" :allUsers="this.$attrs.allUsers" /> <el-input v-model="subMaterialObj.consigneeName"></el-input>
<!-- <userSelect v-model="subMaterialObj.consigneeId" :placeholder="$t('请选择收货人')" :allUsers="this.$attrs.allUsers" /> -->
</el-form-item> </el-form-item>
<el-form-item :label="$t('通知方')"> <el-form-item :label="$t('通知方')">
<userSelect v-model="subMaterialObj.notifyingId" :placeholder="$t('请选择通知方')" :allUsers="this.$attrs.allUsers" /> <el-input v-model="subMaterialObj.notifyingName"></el-input>
<!-- <userSelect v-model="subMaterialObj.notifyingId" :placeholder="$t('请选择通知方')" :allUsers="this.$attrs.allUsers" /> -->
</el-form-item> </el-form-item>
<el-form-item label="Mark & No."> <el-form-item label="Mark & No.">
<el-input v-model="subMaterialObj.markNo" placeholder="请输入Mark & No."></el-input> <el-input v-model="subMaterialObj.markNo" placeholder="请输入Mark & No."></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('包装数量与单位')" class="two-element"> <el-form-item :label="$t('包装数量与单位')" class="two-element">
<el-input v-model="subMaterialObj.packageNum" :placeholder="$t('请输入包装数量')"></el-input> <el-input v-model="subMaterialObj.packageNum" :placeholder="$t('请输入包装数量')"></el-input>
<el-select v-model="subMaterialObj.packageUnit" :placeholder="$t('请选择单位')"> <!-- <el-select v-model="subMaterialObj.packageUnit" :placeholder="$t('请选择单位')">
<el-option v-for="unit in units" :key="unit.id" :value="unit.id" :label="$l(unit, 'title')"></el-option> <el-option v-for="unit in units" :key="unit.id" :value="unit.id" :label="$l(unit, 'title')"></el-option>
</el-select> </el-select> -->
<el-input v-model="subMaterialObj.packageUnit" :placeholder="$t('请输入包装单位')"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="$t('毛重(KGS)')"> <el-form-item :label="$t('毛重(KGS)')">
<el-input v-model="subMaterialObj.kgs" :placeholder="$t('请输入毛重') + '(KGS)'"></el-input> <el-input v-model="subMaterialObj.kgs" :placeholder="$t('请输入毛重') + '(KGS)'"></el-input>
...@@ -78,6 +81,7 @@ import userSelect from "./common/userSelect.vue"; ...@@ -78,6 +81,7 @@ import userSelect from "./common/userSelect.vue";
import { getUnitList } from "@/api/ecw/unit"; import { getUnitList } from "@/api/ecw/unit";
import { getCabinetPage } from "@/api/ecw/cabinet"; import { getCabinetPage } from "@/api/ecw/cabinet";
import { billCreate } from "@/api/ecw/boxSea"; import { billCreate } from "@/api/ecw/boxSea";
import { getSupplier } from "@/api/ecw/supplier";
import { formatNumberString, constantDict, serviceMsg } from "../utils"; import { formatNumberString, constantDict, serviceMsg } from "../utils";
/** /**
...@@ -120,7 +124,6 @@ export default { ...@@ -120,7 +124,6 @@ export default {
} }
} }
}); });
const voName = this.$attrs.currNode.voName; const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] }; let oldData = { ...this.shipmentObj[voName] };
oldData = formatNumberString(oldData, ["issueType"]); oldData = formatNumberString(oldData, ["issueType"]);
...@@ -128,8 +131,24 @@ export default { ...@@ -128,8 +131,24 @@ export default {
...oldData, ...oldData,
packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit, packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit,
}; };
this.$set(this.subMaterialObj,'agentId',this.shipmentObj.agentInfo?.agentId||undefined)
this.getSup(this.subMaterialObj.agentId)
}, },
methods: { methods: {
getSup(id) {
getSupplier(id).then(response => {
if(response.data.externalBackVO){
this.$set(this.subMaterialObj,'consigneeName',response.data.externalBackVO?.receiveCompanyName||'/')
this.$set(this.subMaterialObj,'notifyingName',response.data.externalBackVO?.notifyCompanyName||'/')
this.$set(this.subMaterialObj,'packageNum',response.data.externalBackVO?.packNum)
this.$set(this.subMaterialObj,'packageUnit',response.data.externalBackVO?.packUnit)
this.$set(this.subMaterialObj,'goodsDesc',response.data.externalBackVO?.goodName+response.data.externalBackVO?.fromNo+response.data.externalBackVO?.baNo)
if(this.subMaterialObj.goodsDesc == null){
this.$set(this.subMaterialObj,'goodsDesc','/')
}
}
})
},
/** 提交 */ /** 提交 */
onSubmit(operateType) { onSubmit(operateType) {
this.$refs["subMaterialForm"].validate((valid) => { this.$refs["subMaterialForm"].validate((valid) => {
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item :label="$t('收款账户')" prop="accountNo"> <el-form-item :label="$t('收款账户')" prop="accountNo">
<span>{{ addForm.accountNo }}</span> <span>{{ addForm.accountNo+'('+addForm.accountName+')' }}</span>
</el-form-item> </el-form-item>
<el-form-item :label="$t('实收日期')" prop="amountDate"> <el-form-item :label="$t('实收日期')" prop="amountDate">
<span>{{ addForm.amountDate }}</span> <span>{{ addForm.amountDate }}</span>
...@@ -23,14 +23,7 @@ ...@@ -23,14 +23,7 @@
<span>{{ addForm.amount }}</span> <span>{{ addForm.amount }}</span>
</el-form-item> </el-form-item>
<el-form-item label-width="0px" prop="currencyId"> <el-form-item label-width="0px" prop="currencyId">
<el-select v-model="addForm.currencyId" :disabled="true"> <span>({{getCurrencyLabel(showCurrencyId)}})</span>
<el-option
v-for="item in currencyList"
:key="item.id"
:label="$i18n.locale=='zh_CN'?item.titleZh:item.titleEn"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item <el-form-item
...@@ -69,7 +62,7 @@ ...@@ -69,7 +62,7 @@
</template> </template>
<script> <script>
import { getReceivableItem ,getInvoicingItem,getReceiptAccountList,getReceiptInfoByIds} from "@/api/ecw/financial"; import { getReceivableItem ,getInvoicingItem,getReceiptAccountList,getReceiptInfoByIds,financeReceiptItemWriteOff} from "@/api/ecw/financial";
import { getCurrencyPage } from "@/api/ecw/currency"; import { getCurrencyPage } from "@/api/ecw/currency";
import WorkFlow from '@/components/WorkFlow/' import WorkFlow from '@/components/WorkFlow/'
import NP from 'number-precision' import NP from 'number-precision'
...@@ -134,6 +127,17 @@ ...@@ -134,6 +127,17 @@
if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn
return '' return ''
}, },
submitForm(){
this.$modal
.confirm(this.$t('您确认要提交审核吗'+'?'))
.then(() => {
financeReceiptItemWriteOff({receiptId:this.id,receiptNo:this.form.receiptNo,receiptItemId:this.bankId}).then(res=>{
this.$message.success(this.$t("提交成功"));
this.$store.dispatch('tagsView/delCurrentView')
});
})
.catch(() => {});
},
handleAddReceiptItem() { handleAddReceiptItem() {
this.surplusData = [] this.surplusData = []
......
<template>
<div style="padding: 20px">
<el-card class="box-card">
<div slot="header" class="clearfix" style="font-size: 20px;">
{{$t('佣金付款单')}}
</div>
<el-form label-width="80px" label-position="left">
<el-row :gutter="30">
<el-col :span="7">
<el-form-item :label="$t('付款单号')">
<el-input></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('客户')">
<el-input v-model="queryParams.searchKey"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('状态')">
<dict-selector :type="DICT_TYPE.ECW_PAYMENT_STATE" v-model="queryParams.state" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item :label="$t('业务员')">
<el-select v-model="queryParams.salesmanName" :placeholder="$t('请选择业务员')">
<el-option
v-for="item in creatorData"
:key="item.id"
:label="item.nickname"
:value="item.nickname"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="7">
<el-form-item :label="$t('创建时间')">
<el-date-picker
v-model="selectDate"
type="datetimerange"
range-separator="至"
:start-placeholder="$t('开始日期')"
:end-placeholder="$t('结束日期')">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('发票状态')">
<el-select
v-model="queryParams.invoiceStatus"
:placeholder="$t('请选择是否开票')">
<el-option :label="$t('未开票')" value="0" />
<el-option :label="$t('已开票')" value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('订单编号')">
<el-input></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button type="primary" @click="getList">{{$t('查找')}}</el-button>
<el-button type="primary">{{$t('新增请款单')}}</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-table :data="list" style="margin-top: 30px">
<el-table-column type="index" :label="$t('序号')"></el-table-column>
<el-table-column prop="customerId" :label="$t('付款单号')"></el-table-column>
<el-table-column prop="customerName" :label="$t('客户')"></el-table-column>
<el-table-column :label="$t('创建时间')">
<template v-slot="{row}">
{{parseTime(row.createTime)}}
</template>
</el-table-column>
<el-table-column :label="$t('最后付款时间')">
<template v-slot="{row}">
{{parseTime(row.latestPayAt)}}
</template>
</el-table-column>
<el-table-column prop="invoiceStatus" :label="$t('发票')">
<template v-slot="{row}">
{{row.invoiceStatus ? $t('已开票') : $t('未开票')}}
</template>
</el-table-column>
<el-table-column :label="$t('状态')" prop="state" >
<template slot-scope="scope">
<dict-tag
:type="DICT_TYPE.ECW_PAYMENT_STATE"
:value="scope.row.state"
/>
</template>
</el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot="{row}">
<el-button type="text" v-if="[0,2].includes(row.state)" >{{$t('编辑')}}</el-button>
<el-button type="text" @click="deleteFn(row)" v-if="[0,2].includes(row.state)" > {{$t('删除')}}</el-button>
<el-button type="text" v-if="[3,4].includes(row.state)" >{{$t('审核详情')}}</el-button>
<el-button type="text" v-if="[1,3,5].includes(row.state)" @click="bridgeFn('取消审核',7, row, '取消审核' )" >{{$t('取消审核')}}</el-button>
<el-button type="text" v-if="[5,6].includes(row.state)" @click="bridgeFn('付款单反审核', 1, row, '提交反审核',)" >{{$t('反审核')}}</el-button>
<el-button type="text" v-if="[5].includes(row.state)" @click="bridgeFn('付款单核销申请', 2, row, '提交核销')" >{{$t('核销')}}</el-button>
<el-button type="text" v-if="[5,6].includes(row.state)" >{{$t('打印')}}</el-button>
<el-button type="text" v-if="[8].includes(row.state)" @click="bridgeFn('付款单反核销申请', 3, row, '提交方核销')" >{{$t('反核销')}}</el-button>
<el-button type="text" v-if="[4,7].includes(row.state)" @click="bridgeFn('取消反核销',4, row, '提交取消反核销' )" >{{$t('取消反核销')}}</el-button>
<el-button type="text" @click="bridgeFn('取消付款单核销',5, row, '取消付款单核销' )" > {{$t('取消核销')}} </el-button>
<el-button type="text" @click="bridgeFn('取消付款反单核销',6, row, '取消付款反单核销' )" > {{$t('取消反核销')}} </el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
<!--对话框 审核 -->
<el-dialog width="30%" :title="paymentTitle" :visible.sync="paymentShow">
<div class="cancel_content">
<span>{{ $t('申请理由') }}</span>
<el-input type="textarea" :rows="6" v-model="paymentValue" :placeholder="$t('请输入取消理由')"></el-input>
</div>
<span slot="footer" class="dialog-footers">
<el-button type="primary" @click="cancelWriteOffClick()">{{ $t(butTitle) }}</el-button>
<el-button @click="paymentShow = false">{{ $t('取消') }}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {listSimpleUsers} from "@/api/system/user";
import {
commissionPaymentCancelFinancePaymentApprovalNo,
commissionPaymentCancelFinancePaymentWriteOff,
commissionPaymentCancelFinancePaymentWriteOffNo,
commissionPaymentDelete,
commissionPaymentPage,
commissionPaymentVerification,
commissionPaymentVerificationCancel,
commissionPaymentVerifyCancel
} from "@/api/ecw/financial";
import {parseTime} from "../../../utils/ruoyi";
export default {
name: "commission-Payment",
created() {
// 业务员
listSimpleUsers().then((res) => (this.creatorData = res.data));
this.getList();
},
data(){
return {
queryParams:{
invoiceStatus:null,
state:null,
salesmanName:null,
searchKey:null,
page:1,
rows:10,
},
selectDate:[],
creatorData:[],
list:[],
total:0,
paymentRow:{},
paymentIndex:0,
paymentTitle:'',
butTitle:'',
paymentShow:false,
paymentValue:''
}
},
methods:{
parseTime,
getList(){
commissionPaymentPage(this.queryParams).then(r => {
this.list = r.data.list
this.total = r.data.total
})
},
// 删除
deleteFn(row){
this.$confirm(this.$t('是否删除此条佣金付款单'), this.$t('提示'), {
confirmButtonText: this.$t('确定'),
cancelButtonText: this.$t('取消'),
type: 'warning'
}).then(() => {
commissionPaymentDelete({id:row.id}).then(r => {
this.$message({
type: 'success',
message:this.$t('删除成功!')
});
this.getList();
})
}).catch(() => {
this.$message({
type: 'info',
message: this.$t('已取消删除')
});
});
},
bridgeFn(title, index ,row, butTitle = '提交'){
this.paymentTitle = title;
this.butTitle = butTitle;
this.paymentIndex = index;
this.paymentRow = row;
this.paymentShow = true;
},
//提交
cancelWriteOffClick(){
if(!this.paymentValue) return this.$message.warning(this.$t('请输入理由!'))
let resolve = ()=>{
this.getList();
this.paymentShow = false;
this.paymentValue = ''
this.$message.success(this.$t('操作成功!'));
}
let reject = ()=>{
this.paymentShow = false;
}
let p = {
"paymentId": this.paymentRow.id,
"paymentNo": this.paymentRow.paymentNo,
"remark":this.paymentValue,
}
switch (this.paymentIndex){
case 1:
commissionPaymentVerifyCancel(p).then(resolve, reject)
break;
case 2:
commissionPaymentVerification(p).then(resolve, reject)
break;
case 3:
commissionPaymentVerificationCancel(p).then(resolve, reject)
break;
case 4:
commissionPaymentCancelFinancePaymentApprovalNo(p).then(resolve, reject)
break;
case 5:
commissionPaymentCancelFinancePaymentWriteOff(p).then(resolve, reject)
break
case 6:
commissionPaymentCancelFinancePaymentWriteOffNo(p).then(resolve, reject)
break
case 7:
}
}
}
}
</script>
<style scoped>
</style>
<template>
<div style="padding: 20px">
<el-card class="box-card">
<div slot="header" class="clearfix" style="font-size: 20px;">
{{$t('应付款佣金')}}
</div>
<el-form label-width="80px" inline>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="$t('订单号')">
<el-input v-model="queryParams.orderNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('客户')">
<el-input v-model="queryParams.customerName"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('始发仓')">
<el-select
v-model="queryParams.startWarehouseId"
:placeholder="$t('请选择始发仓')"
clearable
>
<el-option
v-for="item in exportWarehouseList"
:label="$l(item, 'title')"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('目的仓')">
<el-select
v-model="queryParams.destWarehouseId"
:placeholder="$t('请选择目的仓')"
clearable
>
<el-option
v-for="item in importWarehouseList"
:label="$l(item, 'title')"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="$t('运输方式')">
<dict-selector
:type="DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model="queryParams.transportId"
formatter="number"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('佣金类型')">
<dict-selector
:type="DICT_TYPE.COMMISSION_TYPE"
v-model="queryParams.feeType"
formatter="number"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('状态')">
<el-select clearable v-model="queryParams.state">
<el-option v-for="(item) in STATE" :label="$t(item.title)" :value="item.value" :key="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" @click="getList">{{$t('查找')}}</el-button>
<el-button type="primary" @click="$router.push({path:'/financial/commission-requestFunds',query:{payableId:0}})" >{{$t('新增请款单')}}</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-table :data="list" style="margin-top: 30px">
<el-table-column :label="$t('订单编号')" prop="orderNo" ></el-table-column>
<el-table-column :label="$t('客户名称')" prop="customerName" ></el-table-column>
<el-table-column :label="$t('订单编号')" prop="payableNo" ></el-table-column>
<el-table-column :label="$t('佣金类型')">
<template v-slot="{row}">
<dict-tag
:type="DICT_TYPE.COMMISSION_TYPE"
:value="row.feeType"
></dict-tag>
</template>
</el-table-column>
<el-table-column :label="$t('金额')" prop="totalAmount">
</el-table-column>
<el-table-column :label="$t('应付生成时间')"></el-table-column>
<el-table-column :label="$t('状态')">
<template v-slot="{row}">
{{$t(STATE.find(r => r.value === row.state).title)}}
</template>
</el-table-column>
<el-table-column :label="$t('付款单号')" prop="paymentNo"></el-table-column>
<el-table-column :label="$t('备注')" prop="remark" ></el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot="{row}">
<el-button type="text" @click="$router.push({path:'/financial/commission-requestFunds',query:{payableId:row.id}})" >{{$t('请款')}}</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
</div>
</template>
<script>
import {getWarehouseList} from "@/api/ecw/warehouse";
import item from "@/layout/components/Sidebar/Item.vue";
import {payablePage} from "@/api/ecw/financial";
import Template from "@/views/cms/template/index.vue";
export default {
// 应付款佣金
name: "commission-payable",
components: {Template},
created() {
getWarehouseList().then(res => this.warehouseList = res.data)
this.getList()
},
data(){
return {
STATE:[
{
value:0,
title:'未付款',
},
{
value:1,
title:'付款中',
},
{
value:2,
title:'已付款',
}
],
warehouseList:[],
queryParams:{
rows:10,
page:1,
orderNo:'',
customerName:'',
startWarehouseId:'',
destWarehouseId:'',
feeType:'',
state:''
},
list:[],
total:0
}
},
computed:{
exportWarehouseList(){
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter(item => item.tradeType == 2 || item.tradeType == 3)
},
importWarehouseList(){
return this.warehouseList.filter(item => item.tradeType == 1 || item.tradeType == 3)
},
},
methods:{
getList(){
payablePage(this.queryParams).then(r =>{
this.list = r.data.list
this.total = r.data.total
})
}
},
}
</script>
<style scoped>
</style>
This diff is collapsed.
<template>
<div class="app-container">
<el-descriptions :column="5" >
<el-descriptions-item :label="$t('收款单编号')">{{ form.receiptNo }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户')">{{ form.customerName }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">
<template >
<span>{{ parseTime(form.createTime, '{y}-{m}-{d}') }}</span>
</template></el-descriptions-item>
<el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item>
<el-descriptions-item :label="$t('期望收款金额')">
<template>
<div v-for="itemAmount in collectionAmount" :key="itemAmount.currencyNameZh">{{ itemAmount.amount}}{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}</div>
</template>
</el-descriptions-item>
</el-descriptions>
<div class="btn">
<el-button
size="mini"
type="primary"
@click="$router.push('/financial/receiptDetail?id=' + receiptId)"
>{{ $t('查看收款单')}}</el-button>
</div>
</div>
</template>
<script>
import {
getReceiptInfoByIds,
getInvoicingItem,
getReceiptAccountList,
getReceiptApprove
} from "@/api/ecw/financial";
import { getCurrencyPage } from "@/api/ecw/currency";
import NP from 'number-precision'
export default {
props:{
id: [String, Number]
},
data() {
return {
form: {},
collectionAmount: [],
currencyList:[],
list:[],
receiptId:0
}
},
watch:{
id(){
this.getCurrencyData()
},
currencyList(){
this.getData()
},
form(){
this.getListData()
},
list(){
this.getCollectionData()
}
},
created() {
if(this.id){
this.getCurrencyData()
}
},
methods: {
getData(){
console.log(this.id)
getReceiptApprove(this.id).then(res => {
if(res.data.receiptId){
this.receiptId = res.data.receiptId
this.getReceiptInfo()
}
})
},
// 获取汇率
getCurrencyData(){
getCurrencyPage(this.params).then(res => {this.currencyList = res.data.list})
},
getReceiptInfo(){
getReceiptInfoByIds({ id: this.receiptId }).then(res => {
this.form = res.data
})
},
getListData(){
getInvoicingItem({ id: this.receiptId }).then(res => {
this.list = [...res.data]
})
},
getCollectionData(){
getReceiptAccountList({ id: this.receiptId }).then(res => {
var n
// 收款总计
var amountList =[]
this.currencyList.forEach((item,index)=>{
var nairaListByList = this.list.filter(v => v.currencyId === item.id)
if(nairaListByList.length>0){
var discountNaira = nairaListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
n = res.data.find(v => v.currencyId == item.id)
n && (n.discountTotal = discountNaira)
}
var dollarList = res.data.filter(v => v.collectionCurrencyId == item.id)
if(dollarList.length>0){
var dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount), 0).toFixed(2)
amountList.push({currencyId:item.id,currencyNameEn:item.titleEn,currencyNameZh:item.titleZh,amount:dollar})
}
})
this.$set(this,'collectionAmount',amountList)
})
}
}
}
</script>
<style scoped lang="scss">
.btn{
margin-top: 20px;
}
.app-container {
::v-deep .el-descriptions-item__label {
font-size:16px;
font-weight:600;
}
::v-deep .el-descriptions-item__content {
font-size:16px;
font-weight:600;
}
}
</style>
This diff is collapsed.
<template>
<div>
<div class="app-container">
<el-descriptions :column="5" >
<el-descriptions-item :label="$t('收款单编号')">{{ form.receiptNo }}</el-descriptions-item>
<el-descriptions-item :label="$t('客户')">{{ form.customerName }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">
<template >
<span>{{ parseTime(form.createTime, '{y}-{m}-{d}') }}</span>
</template></el-descriptions-item>
<el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item>
<el-descriptions-item :label="$t('期望收款金额')">
<template>
<div v-for="itemAmount in collectionAmount" :key="itemAmount.currencyNameZh">{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}: {{ itemAmount.amount}}</div>
</template>
</el-descriptions-item>
</el-descriptions>
</div>
<el-descriptions :column="3" border>
<el-descriptions-item >
<template slot="label">
{{ $t('实收已核销总金额') }}
<span :title="$t('所有银行收款明细中状态为已核销的实收金额,币种根据实收币种分类统计')"><i class="el-icon-question"></i></span>
</template>
<template v-if="!Object.keys(writeOffTotal).length">
0
</template>
<div v-else>
<div v-for="(amount, currency) in writeOffTotal" :key="currency">
{{amount}}{{getCurrencyLabel(currency)}}
</div>
</div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
{{ $t('核销基准币种已核销总金额') }}{{getCurrencyLabel(showCurrencyId)}}
<span :title="$t('为了方便统计收款单核销比例,将所有银行收款明细中状态为已核销的实收金额,转换为核销基准币种的金额累加')"><i class="el-icon-question"></i></span>
</template>
{{ writeOffAmount}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
{{ $t('总核销比例') }}{{getCurrencyLabel(showCurrencyId)}}
<span :title="$t('总核销比例=核销基准币种已核销总金额/核销基准币种应收总金额')"><i class="el-icon-question"></i></span>
</template>
{{ WriteOffProportion }}%
</el-descriptions-item>
</el-descriptions>
<div class="btn">
<el-button
size="mini"
type="primary"
@click="$router.push('/financial/receiptDetail?id=' + receiptId)"
>{{ $t('查看收款单')}}</el-button>
</div>
</div>
</template>
<script>
import { getCustomer } from '@/api/ecw/customer'
import {
getReceiptInfoByIds,
getInvoicingItem,
getReceiptAccountList,
getReceivableItem,
getReceiptApprove
} from "@/api/ecw/financial";
import { getCurrencyPage } from "@/api/ecw/currency";
import NP from 'number-precision'
export default {
props:{
id: [String, Number]
},
data() {
return {
form: {},
collectionAmount: [],
currencyList:[],
list:[],
writeOffAmounts:0,
detailed:[],
showCurrencyId:0,
receiptId:0
}
},
watch:{
id(){
this.getCurrencyData()
},
currencyList(){
this.getData()
},
form(){
this.getListData()
},
list(){
this.getList()
this.getCollectionData()
}
},
created() {
if(this.id){
this.getCurrencyData()
}
},
computed: {
// 已核销总金额
writeOffTotal(){
let total = {}
this.detailed.forEach(item => {
if(item.status){
if(!total[item.currencyId]){
total[item.currencyId] = item.amount
}else total[item.currencyId] = NP.plus(total[item.currencyId], item.amount)
}
})
return total
},
// 已核销总金额
writeOffAmount(){
let total = 0
this.detailed.forEach(item => {
if(item.status){
total = NP.plus(total, item.writeOffAmount)
}
})
return total.toFixed(2)
},
WriteOffProportion(){
let total = 0
if(!this.writeOffAmounts) return 0
let amountTotal = this.writeOffAmounts
this.detailed.forEach(item => {
if(item.status){
total = NP.plus(total, item.writeOffAmount)
}
})
let portion = NP.divide(total,amountTotal)
return (portion*100).toFixed(2)
}
},
methods: {
getData(){
getReceiptApprove(this.id).then(res => {
if(res.data.receiptId){
this.receiptId = res.data.receiptId
this.getReceiptInfo()
}
})
},
getList() {
getReceivableItem({ id: this.receiptId }).then(res => {
this.detailed = res.data.map(v => ({
...v,
amountDate: this.parseTime(v.amountDate, '{y}-{m}-{d}'),
accountNo: +v.accountNo,
rate:parseFloat(v.rate).toFixed(6),
attr: v.attr ? v.attr.split(',').map(t => ({ name: t.slice(t.lastIndexOf('/') + 1), url: t })) : []
}))
})
},
// 获取汇率
getCurrencyData(){
getCurrencyPage(this.params).then(res => {this.currencyList = res.data.list})
},
getReceiptInfo(){
getReceiptInfoByIds({ id: this.receiptId }).then(res => {
this.form = res.data
getCustomer(this.form.customerId).then(res => {
this.form.customerName = res?.data?.name
})
})
},
getListData(){
getInvoicingItem({ id: this.receiptId }).then(res => {
this.list = [...res.data]
let fieldList = [];
let groupList=[];
this.list.map((element)=>{
if(fieldList.indexOf(element['currencyId'])===-1){
fieldList.push(element['currencyId'])
}
})
for(let i=0;i<fieldList.length;i++){
let arr = this.list.filter((element)=>{
return element['currencyId']===fieldList[i];
})
groupList.push({
currencyId:arr[0].currencyId,
list:arr
})
}
this.showCurrencyId = 1
if (groupList.length === 1) this.showCurrencyId = groupList[0].currencyId
})
},
getCollectionData(){
getReceiptAccountList({ id: this.receiptId }).then(res => {
var n
// 收款总计
var amountList =[]
this.currencyList.forEach((item,index)=>{
var nairaListByList = this.list.filter(v => v.currencyId === item.id)
if(nairaListByList.length>0){
var discountNaira = nairaListByList.reduce((total, currentValue) => NP.plus(total, currentValue.discountTotal || 0), 0)
n = res.data.find(v => v.currencyId == item.id)
n && (n.discountTotal = discountNaira)
}
var dollarList = res.data.filter(v => v.collectionCurrencyId == item.id)
if(dollarList.length>0){
var dollar = dollarList.reduce((total, currentValue) => NP.plus(total, currentValue.collectionAmount), 0).toFixed(2)
amountList.push({currencyId:item.id,currencyNameEn:item.titleEn,currencyNameZh:item.titleZh,amount:dollar})
}
})
this.writeOffAmounts = res.data.reduce((total, currentValue) => NP.plus(total, currentValue.writeOffAmount || 0), 0),
console.log(this.writeOffAmounts)
this.$set(this,'collectionAmount',amountList)
})
},
getCurrencyLabel(id){
var label = this.currencyList.filter(item=>item.id == id)
if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn
return ''
},
}
}
</script>
<style scoped lang="scss">
.btn{
margin-top: 20px;
}
.app-container {
::v-deep .el-descriptions-item__label {
font-size:16px;
font-weight:600;
}
::v-deep .el-descriptions-item__content {
font-size:16px;
font-weight:600;
}
}
</style>
<template>
<div class="app-container">
<el-descriptions :column="5" >
<el-descriptions-item :label="$t('付款单编号')">{{ form.paymentNo }}</el-descriptions-item>
<el-descriptions-item :label="$t('供应商名称')">{{ form.supplierName }}</el-descriptions-item>
<el-descriptions-item :label="$t('创建时间')">
<template >
<span>{{ parseTime(form.createTime, '{y}-{m}-{d}') }}</span>
</template></el-descriptions-item>
<el-descriptions-item :label="$t('业务员')">{{ form.salesmanName }}</el-descriptions-item>
<el-descriptions-item :label="$t('付款金额')">{{paymentMoney}}{{$t('人民币')}}</el-descriptions-item>
</el-descriptions>
<div class="btn">
<el-button
size="mini"
type="primary"
@click="$router.push('/financial/paymentDetail?id=' + paymentId)"
>{{ $t('查看付款单')}}</el-button>
</div>
</div>
</template>
<script>
import {
getPaymentApprove,
getPaymentInfoByIds,
getPaymentItem
} from "@/api/ecw/financial";
export default {
props:{
id: [String, Number]
},
data() {
return {
form: {},
list:[],
paymentId:0,
paymentMoney:0
}
},
watch:{
id(){
this.getData()
},
form(){
this.getListData()
},
},
created() {
if(this.id){
this.getData()
}
},
methods: {
getData(){
getPaymentApprove(this.id).then(res => {
if(res.data.paymentId){
this.paymentId = res.data.paymentId
this.getPayableInfo()
}
})
},
getPayableInfo(){
getPaymentInfoByIds({ id: this.paymentId }).then(res => {
this.form = res.data
})
},
getListData(){
getPaymentItem({ id: this.paymentId }).then(res => {
this.list = [...res.data]
const t = this.list.map(v => v.total).reduce((prev, curr) => {
return parseFloat(prev) + parseFloat(curr);
}, 0)
this.paymentMoney = t
})
},
}
}
</script>
<style scoped lang="scss">
.btn{
margin-top: 20px;
}
.app-container {
::v-deep .el-descriptions-item__label {
font-size:16px;
font-weight:600;
}
::v-deep .el-descriptions-item__content {
font-size:16px;
font-weight:600;
}
}
</style>
This diff is collapsed.
...@@ -248,17 +248,35 @@ ...@@ -248,17 +248,35 @@
</el-descriptions> </el-descriptions>
</el-form> </el-form>
</el-card> </el-card>
<!-- <div slot="header" class="bpm-title">{{ $t('审核流程') }}</div> <div slot="header" class="bpm-title">{{ $t('审核流程') }}</div>
<work-flow xmlkey="merge_order" v-model="selectedUsers"></work-flow> <work-flow xmlkey="merge_order" v-model="form.copyUserList"></work-flow>
<div slot="footer" style="margin: 20px 0"> <div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="submitForm(0)">{{$t('提交审核')}}</el-button> <el-button v-if="id==0||form.state==0" type="primary" @click="submitForm(1)">{{$t('提交申请')}}</el-button>
<el-button type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{ $t('关闭') }}</el-button> <el-button v-if="id==0||form.state==0" type="primary" @click="submitForm(0)">{{ $t('保存草稿') }}</el-button>
</div> --> <el-button v-if="form.state==1" type="primary" @click="$router.push(`/bpm/process-instance/detail?id=`+bpmId)">{{$t('审核中')}}</el-button>
<div slot="footer" style="margin: 20px 0"> <!-- <el-button v-if="form.state==1" plain type="primary" @click="dialogVisible = true">{{$t('取消审核')}}</el-button> -->
<el-button plain type="primary" @click="$store.dispatch('tagsView/delCurrentView')">{{$t('返回')}}</el-button>
</div>
<!-- <div slot="footer" style="margin: 20px 0">
<el-button type="primary" @click="submitDraft">{{ $t('保 存') }}</el-button> <el-button type="primary" @click="submitDraft">{{ $t('保 存') }}</el-button>
<el-button type="primary" @click="submitForm">{{id==0?$t('新增'):$t('编辑')}}</el-button> <el-button type="primary" @click="submitForm">{{id==0?$t('新增'):$t('编辑')}}</el-button>
</div> </div> -->
<el-dialog
:title="$t('提示')"
:visible.sync="dialogVisible"
width="30%">
<span class="cancel_notice">{{$t('付款单申请正在审核中,你确定取消付款单申请吗?')}}</span>
<div class="cancel_content">
<span>{{$t('取消原因:')}}</span>
<el-input v-model="reason" :placeholder="$t('请输入取消原因')"></el-input>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{$t('取消')}}</el-button>
<el-button type="primary" @click="cancelApproval">{{$t('确定')}}</el-button>
</span>
</el-dialog>
<el-dialog <el-dialog
:visible.sync="open" :visible.sync="open"
:title="$t('添加未付供应商款项')" :title="$t('添加未付供应商款项')"
...@@ -455,6 +473,7 @@ export default { ...@@ -455,6 +473,7 @@ export default {
channelList: [], channelList: [],
loading: "", loading: "",
bankData: [], bankData: [],
reason:'',
params: { params: {
page: 1, page: 1,
rows: 20, rows: 20,
...@@ -470,7 +489,8 @@ export default { ...@@ -470,7 +489,8 @@ export default {
allSupplier: [], allSupplier: [],
currencyList: [], currencyList: [],
warehouseList:[], warehouseList:[],
selectedUsers:[] selectedUsers:[],
dialogVisible:false
}; };
}, },
async created() { async created() {
...@@ -587,12 +607,13 @@ export default { ...@@ -587,12 +607,13 @@ export default {
handleAdd() { handleAdd() {
this.open = true; this.open = true;
}, },
submitForm() { submitForm(addType) {
this.$refs.form.validate ((valid)=>{ this.$refs.form.validate ((valid)=>{
if (valid) { if (valid) {
this.$refs.forms.validate((val) => { this.$refs.forms.validate((val) => {
if (val) { if (val) {
const params = {...this.form} const params = {...this.form}
params.addType = addType
if (this.list && this.list.length > 0) { if (this.list && this.list.length > 0) {
params.payableReqVOList = [...this.list] params.payableReqVOList = [...this.list]
}else{ }else{
...@@ -605,7 +626,7 @@ export default { ...@@ -605,7 +626,7 @@ export default {
} }
if (this.id && this.id !== '0') { if (this.id && this.id !== '0') {
updatePayment(params).then(res => { updatePayment(params).then(res => {
this.$modal.msgSuccess(this.$t('修改成功')); this.$modal.msgSuccess(this.$t('申请成功'));
this.$router.back(); this.$router.back();
}) })
} else { } else {
...@@ -696,6 +717,9 @@ export default { ...@@ -696,6 +717,9 @@ export default {
this.list = this.multipleSelection this.list = this.multipleSelection
} }
this.open = false; this.open = false;
},
cancelApproval(){
}, },
convertCurrency(money) { convertCurrency(money) {
//汉字的数字 //汉字的数字
......
This diff is collapsed.
This diff is collapsed.
...@@ -245,6 +245,7 @@ ...@@ -245,6 +245,7 @@
:limit.sync="queryParams.rows" :limit.sync="queryParams.rows"
@pagination="getList" @pagination="getList"
/> />
</div> </div>
</template> </template>
...@@ -260,7 +261,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse' ...@@ -260,7 +261,7 @@ import {getWarehouseList} from '@/api/ecw/warehouse'
export default { export default {
name: "EcwFinancialReceivable", name: "EcwFinancialReceivable",
components: { components: {
CustomerSelector, CustomerSelector
}, },
data() { data() {
return { return {
......
...@@ -97,6 +97,7 @@ ...@@ -97,6 +97,7 @@
:type="DICT_TYPE.ECW_RECEIPT_STATE" :type="DICT_TYPE.ECW_RECEIPT_STATE"
:value="scope.row.state" :value="scope.row.state"
/> />
<span v-if="scope.row.remark&&(scope.row.state==1 || scope.row.state ==3 || scope.row.state==8)" :title="scope.row.remark"><i class="el-icon-question"></i></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('是否开票')" align="center"> <el-table-column :label="$t('是否开票')" align="center">
...@@ -117,7 +118,7 @@ ...@@ -117,7 +118,7 @@
@click="verificationCancelClick(scope.row)" @click="verificationCancelClick(scope.row)"
>{{ $t('查看')}}</el-button> >{{ $t('查看')}}</el-button>
<el-button <el-button
v-if="scope.row.state === 0 || scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" v-if="scope.row.state === 0"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:edit']" v-hasPermi="['ecw:voucher:edit']"
...@@ -136,9 +137,49 @@ ...@@ -136,9 +137,49 @@
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:cancelWriteOff']" v-hasPermi="['ecw:voucher:cancelWriteOff']"
@click="verificationCancelClick(scope.row)" @click="writeOffShow(2,scope.$index)"
>{{ $t('反核销') }}</el-button >{{ $t('反核销') }}</el-button
> >
<el-button
v-if="scope.row.state == 1"
size="mini"
type="text"
v-hasPermi="['ecw:voucher:cancelWriteOff']"
@click="writeOffShow(1,scope.$index)"
>{{ $t('反审核') }}</el-button
>
<el-button
v-if="scope.row.state == 7"
size="mini"
type="text"
v-hasPermi="['ecw:vocher:cancelAppoval']"
@click="cancelClick(scope.$index,1)"
>{{ $t('取消审核') }}</el-button
>
<el-button
v-if="scope.row.state == 11"
size="mini"
type="text"
v-hasPermi="['ecw:vocher:cancelWriteOfflNo']"
@click="cancelClick(scope.$index,3)"
>{{ $t('取消反核销审核') }}</el-button
>
<el-button
v-if="scope.row.state == 9"
size="mini"
type="text"
v-hasPermi="['ecw:vocher:cancelAppovalNo']"
@click="cancelClick(scope.$index,2)"
>{{ $t('取消反审核') }}</el-button
>
<el-button
size="mini"
type="text"
v-if="scope.row.state == 9 || scope.row.state == 7 || scope.row.state == 11|| scope.row.state == 10"
v-hasPermi="['ecw:voucher:cancelWriteOff']"
@click="$router.push(`/bpm/process-instance/detail?id=`+scope.row.bmpId)"
>{{ $t('审核详情') }}</el-button
>
<el-button <el-button
v-if="scope.row.state == 5" v-if="scope.row.state == 5"
size="mini" size="mini"
...@@ -148,9 +189,9 @@ ...@@ -148,9 +189,9 @@
>{{ $t('开票') }}</el-button >{{ $t('开票') }}</el-button
> >
<el-button v-if="scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" v-hasPermi="['ecw:voucher:payment']" size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ $t('收款') }}</el-button> <el-button v-if="scope.row.state == 1 || scope.row.state == 2 || scope.row.state == 3" v-hasPermi="['ecw:voucher:payment']" size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ $t('收款') }}</el-button>
<el-button v-if="[0,1,2].indexOf(scope.row.state) > -1" size="mini" type="text" v-hasPermi="['ecw:voucher:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button> <el-button v-if="scope.row.state == 0" size="mini" type="text" v-hasPermi="['ecw:voucher:delete']" @click="deleteClick(scope.row)">{{ $t('删除') }}</el-button>
<el-button <el-button
v-if="scope.row.state != 0" v-if="scope.row.state != 0 && scope.row.state != 7 && scope.row.state != 11 && scope.row.state != 8 && scope.row.state != 9"
size="mini" size="mini"
type="text" type="text"
@click="toprint(scope.row.id)" @click="toprint(scope.row.id)"
...@@ -158,7 +199,7 @@ ...@@ -158,7 +199,7 @@
>{{ $t('打印') }}</el-button >{{ $t('打印') }}</el-button
> >
<el-button <el-button
v-if="scope.row.state != 0" v-if="scope.row.state != 0 && scope.row.state != 7 && scope.row.state != 11 && scope.row.state != 8 && scope.row.state != 9"
size="mini" size="mini"
type="text" type="text"
v-hasPermi="['ecw:voucher:derive']" v-hasPermi="['ecw:voucher:derive']"
...@@ -201,6 +242,33 @@ ...@@ -201,6 +242,33 @@
> >
</div> </div>
</el-dialog> </el-dialog>
<el-dialog
:title="writeOffType==1?$t('收款单反审核'):$t('收款单反核销')"
:visible.sync="dialogVisible"
width="30%">
<div class="cancel_content">
<span>{{$t('申请理由')}}</span>
<el-input type="textarea" :rows ="6" v-model="reason" :placeholder="$t('请输入理由')"></el-input>
</div>
<span slot="footer" class="dialog-footers">
<el-button v-if="writeOffType==1" type="primary" @click="writeOffClick()">{{$t('提交反审核')}}</el-button>
<el-button v-else type="primary" @click="writeOffClick()">{{$t('提交反核销')}}</el-button>
<el-button @click="dialogVisible = false">{{$t('取消')}}</el-button>
</span>
</el-dialog>
<el-dialog
:title="cancelTitle"
:visible.sync="cancelShow"
width="30%">
<div class="cancel_content">
<span>{{$t('申请理由')}}</span>
<el-input type="textarea" :rows ="6" v-model="cancelReason" :placeholder="$t('请输入取消理由')"></el-input>
</div>
<span slot="footer" class="dialog-footers">
<el-button type="primary" @click="cancelWriteOffClick()">{{$t('提交')}}</el-button>
<el-button @click="cancelShow = false">{{$t('取消')}}</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
...@@ -213,7 +281,12 @@ import { ...@@ -213,7 +281,12 @@ import {
// receiptVerification, // receiptVerification,
// receiptVerificationCancel, // receiptVerificationCancel,
receiptExportExcel, receiptExportExcel,
deleteReceipt deleteReceipt,
financeReceiptWriteOffNo,
financeApproveNo,
cancelFinanceReceiptApproval,
cancelFinanceReceiptApprovalNo,
cancelFinanceReceiptWriteOffNo
} from "@/api/ecw/financial"; } from "@/api/ecw/financial";
export default { export default {
...@@ -258,6 +331,15 @@ export default { ...@@ -258,6 +331,15 @@ export default {
}, },
dateFilter:[], dateFilter:[],
downloading: false, // 导出状态 downloading: false, // 导出状态
dialogVisible:false,
reason:'',
writeOffType:1,
writeOffIndex:0,
cancelShow:false,
cancelTitle:'',
cancelReason:'',
cancelIndex:0,
selectIndex:0
}; };
}, },
activated(){ activated(){
...@@ -313,6 +395,84 @@ export default { ...@@ -313,6 +395,84 @@ export default {
// }) // })
// .catch(() => {}); // .catch(() => {});
}, },
//显示取消审核弹窗
cancelClick(index,type){
this.selectIndex = index
this.cancelIndex = type
this.cancelReason = ''
if(this.cancelIndex==1){
this.cancelTitle = this.$t('取消审核')
}else if(this.cancelIndex == 2){
this.cancelTitle = this.$t('取消反审核')
}else{
this.cancelTitle = this.$t('取消反核销审核')
}
this.cancelShow = true
},
//取消审核
cancelWriteOffClick(){
if(!this.cancelReason){
this.$modal.msgError(this.$t('请输入申请理由'));
return
}
var receiptId = this.list[this.selectIndex].id
if(this.cancelIndex==1){
cancelFinanceReceiptApproval({receiptId:receiptId,remark:this.cancelReason}).then(res=>{
this.cancelShow = false
this.getList();
this.$message.success(this.$t("提交成功"));
});
}else if(this.cancelIndex ==2){
cancelFinanceReceiptApprovalNo({receiptId:receiptId,remark:this.cancelReason}).then(res=>{
this.cancelShow = false
this.getList();
this.$message.success(this.$t("提交成功"));
});
}else{
cancelFinanceReceiptWriteOffNo({receiptId:receiptId,remark:this.cancelReason}).then(res=>{
this.cancelShow = false
this.getList();
this.$message.success(this.$t("提交成功"));
});
}
},
writeOffClick(){
if(!this.reason){
this.$modal.msgError(this.$t('请输入申请理由'));
return
}
const receiptIdData = this.list[this.writeOffIndex]
if(this.writeOffType==1){
this.$modal
.confirm(this.$t('您确认要反审核吗')+'?')
.then(()=>{
financeApproveNo({receiptId:receiptIdData.id,receiptNo:receiptIdData.receiptNo,remark:this.reason}).then(res=>{
this.getList();
this.$message.success(this.$t("提交成功"));
this.dialogVisible = false
// this.$store.dispatch('tagsView/delCurrentView')
});
})
.catch(() => {this.dialogVisible = false});
}else{
this.$modal
.confirm(this.$t('您确认要反核销吗')+'?')
.then(()=>{
financeReceiptWriteOffNo({receiptId:receiptIdData.id,receiptNo:receiptIdData.receiptNo,remark:this.reason}).then(res=>{
this.getList();
this.$message.success(this.$t("提交成功"));
this.dialogVisible = false
// this.$store.dispatch('tagsView/delCurrentView')
});
})
.catch(() => {this.dialogVisible = false});
}
},
deleteClick(row) { deleteClick(row) {
const id = row.id; const id = row.id;
this.$modal.confirm(this.$t('是否确认删除该收款单')+'?').then(function() { this.$modal.confirm(this.$t('是否确认删除该收款单')+'?').then(function() {
...@@ -349,6 +509,13 @@ export default { ...@@ -349,6 +509,13 @@ export default {
this.open = true; this.open = true;
this.exportId = id; this.exportId = id;
}, },
//显示反审核反核销弹窗
writeOffShow(type,index){
this.writeOffType = type
this.writeOffIndex = index
this.reason = ''
this.dialogVisible = true
},
submitForm(type) { submitForm(type) {
this.downloading = true this.downloading = true
receiptExportExcel({ id: this.exportId, billType: type }).then((response) => { receiptExportExcel({ id: this.exportId, billType: type }).then((response) => {
...@@ -377,8 +544,22 @@ export default { ...@@ -377,8 +544,22 @@ export default {
justify-content: space-between; justify-content: space-between;
height: 160px; height: 160px;
} }
.dialog-footers{
display: flex;
align-items: center;
justify-content: space-between;
}
.card-title { .card-title {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
} }
.cancel_content{
display: flex;
flex-direction: column;
}
.cancel_content span{
font-size: 16px;
font-weight:600;
margin-bottom:10px
}
</style> </style>
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item :label="$t('日期筛选')"> <el-form-item :label="$t('日期筛选')">
<dict-selector defaultable :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" class="w-100 mr-10" /> <dict-selector defaultable :type="DICT_TYPE.ECW_BEGINTIME_TYPE_ENDTIME" v-model="dateFilterType" class="w-100 mr-10" />
<el-date-picker v-model="dateFilter" type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"></el-date-picker> <el-date-picker v-model="dateFilter" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" value-format="yyyy-MM-dd HH:mm:ss" @change="handleQuery"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发仓')" prop="startWarehouseId"> <el-form-item :label="$t('始发仓')" prop="startWarehouseId">
<el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')" clearable @change="handleQuery"> <el-select v-model="queryParams.startWarehouseId" :placeholder="$t('请选择始发地')" clearable @change="handleQuery">
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<el-form-item :label="$t('报关方式')" prop="customsType"> <el-form-item :label="$t('报关方式')" prop="customsType">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable @change="handleQuery" /> <dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="queryParams.customsType" clearable @change="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('唛头')" prop="marks"> <el-form-item :label="$t('唛头')" prop="marks">
<el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.marks" :placeholder="$t('唛头')" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<!-- 列表 --> <!-- 列表 -->
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
<dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" /> <dict-tag v-else :type="DICT_TYPE.CONTROL_GOODS_STATUS" :value="row.cargoControlStatus" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px"> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<!--控货中,已入仓--> <!--控货中,已入仓-->
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> --> <!-- <el-button type="text" size="mini" @click="toDetail(scope.row)" >{{$t('查看')}}</el-button> -->
<el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{$t('调货')}}</el-button> <el-button type="text" size="mini" @click="cargoTransfer(scope.row)" v-hasPermi="['ecw:cargo_control:cargo_transfer']">{{$t('调货')}}</el-button>
<el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{$t('反复核')}}</el-button> <el-button type="text" size="mini" @click="showFallbackOrder=scope.row" v-if="scope.row.isReleaseAfterGoods" v-hasPermi="['ecw:cargo_control:fallback']">{{$t('反复核')}}</el-button>
</template> </template>
<el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button> <el-button type="text" size="mini" @click="toDetail(scope.row)" v-hasPermi="['ecw:cargo_control:show']">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -262,7 +262,7 @@ export default { ...@@ -262,7 +262,7 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
......
...@@ -36,6 +36,14 @@ ...@@ -36,6 +36,14 @@
<el-table-column :label="$t('入仓时间')" prop="inTime" > <el-table-column :label="$t('入仓时间')" prop="inTime" >
<template slot-scope="{row}">{{row.inTime|parseTime}}</template> <template slot-scope="{row}">{{row.inTime|parseTime}}</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('储位')" prop="orderLocationBackVOList" >
<template slot-scope="{row}">
<warehouse-area-select
v-model="row.orderLocationBackVOList"
readonly
:order-id="orderId"></warehouse-area-select>
</template>
</el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
</template> </template>
...@@ -43,7 +51,11 @@ ...@@ -43,7 +51,11 @@
import { getOrder, getOrderWarehouseIn } from '@/api/ecw/order' import { getOrder, getOrderWarehouseIn } from '@/api/ecw/order'
import { DICT_TYPE } from '@/utils/dict' import { DICT_TYPE } from '@/utils/dict'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
export default { export default {
components: {
WarehouseAreaSelect
},
filters: {parseTime}, filters: {parseTime},
props:{ props:{
order: Object, // order 和 orderId 二选一 order: Object, // order 和 orderId 二选一
...@@ -73,7 +85,7 @@ export default { ...@@ -73,7 +85,7 @@ export default {
return this.$l(this.orderItem, 'prodTitle') + ' - ' + this.$t('入仓记录') return this.$l(this.orderItem, 'prodTitle') + ' - ' + this.$t('入仓记录')
} }
}, },
created(){ created(){
this.show = true this.show = true
if(!this.order && this.orderId){ if(!this.order && this.orderId){
...@@ -95,4 +107,4 @@ export default { ...@@ -95,4 +107,4 @@ export default {
} }
} }
} }
</script> </script>
\ No newline at end of file
...@@ -200,6 +200,14 @@ ...@@ -200,6 +200,14 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" :label="$t('储位')">
<template slot-scope="{row}">
<warehouse-area-select
v-model="row.warehouseInInfoVO.orderLocationBackVOList"
readonly
:order-id="orderId"></warehouse-area-select>
</template>
</el-table-column>
<el-table-column prop="" :label="$t('快递单号')"> <el-table-column prop="" :label="$t('快递单号')">
<template slot-scope="{row}"> <template slot-scope="{row}">
{{ row.expressNo }} {{ row.expressNo }}
...@@ -325,7 +333,7 @@ ...@@ -325,7 +333,7 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" class="page-title">优惠详情</div> <div v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" class="page-title">优惠详情</div>
<el-table v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" :data="feeDetail.coupons"> <el-table v-if="feeDetail && feeDetail.coupons && feeDetail.coupons.length" :data="feeDetail.coupons">
<el-table-column label="优惠ID" prop="couponId"></el-table-column> <el-table-column label="优惠ID" prop="couponId"></el-table-column>
...@@ -369,11 +377,12 @@ import {listByIds} from '@/api/ecw/region' ...@@ -369,11 +377,12 @@ import {listByIds} from '@/api/ecw/region'
import WarehouseDetail from './components/WarehouseDetail'; import WarehouseDetail from './components/WarehouseDetail';
import {getProductBrank} from '@/api/ecw/productBrank' import {getProductBrank} from '@/api/ecw/productBrank'
import { parseTime } from '@/utils/ruoyi'; import { parseTime } from '@/utils/ruoyi';
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
export default { export default {
name: "detail", name: "detail",
components: { components: {
PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail PrintWarehouseReceipt, PrintLadingBill, WarehouseDetail, WarehouseAreaSelect
}, },
filters: { filters: {
customsTypeFilter(e, customsTypeList) { customsTypeFilter(e, customsTypeList) {
......
...@@ -189,6 +189,7 @@ ...@@ -189,6 +189,7 @@
<el-button v-else-if="scope.row.orderExceptionType=='order_no_quote_exception'" v-hasPermi="['ecw:exception:noQuote']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_no_quote_exception'" v-hasPermi="['ecw:exception:noQuote']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='not_customer_service_exception'" v-hasPermi="['ecw:exception:notCustomer']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row.orderId)">{{$t('处理')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -126,6 +126,7 @@ ...@@ -126,6 +126,7 @@
<el-button v-else-if="scope.row.orderExceptionType=='order_no_quote_exception'" v-hasPermi="['ecw:exception:noQuote']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_no_quote_exception'" v-hasPermi="['ecw:exception:noQuote']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_bulky_cargo_exception'" v-hasPermi="['ecw:exception:bulkyCargo']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button> <el-button v-else-if="scope.row.orderExceptionType=='order_pick_up_exception'" v-hasPermi="['ecw:exception:pickUp']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
<el-button v-else-if="scope.row.orderExceptionType=='not_customer_service_exception'" v-hasPermi="['ecw:exception:notCustomer']" size="mini" type="text" icon="el-icon-edit" @click="handEdit(scope.row)">{{$t('处理')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<order-base-info :order="order"></order-base-info> <order-base-info :order="order"></order-base-info>
<div style="margin-top: 20px"> <div style="margin-top: 20px;display: none">
<span>{{$t('储位')}}{{ ($refs.area ? $refs.area.selected : []).join(',') }}</span> <span>{{$t('储位')}}{{ ($refs.area ? $refs.area.selected : []).join(',') }}</span>
<el-button type="primary" size="mini" @click="areaVisible = true" style="margin-left: 15px">{{$t('选择')}}</el-button> <el-button type="primary" size="mini" @click="areaVisible = true" style="margin-left: 15px">{{$t('选择')}}</el-button>
</div> </div>
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
<warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList" <warehouse-area-dialog ref="area" :visible.sync="areaVisible" v-model="form.orderLocationCreateReqVOList"
:order-id="orderId" :warehouse-id="warehouseId" :is-editing="isEdit"></warehouse-area-dialog> :order-id="orderId" :warehouse-id="warehouseId" :is-editing="isEdit"></warehouse-area-dialog>
<edit-dialog :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit" :is-jiyun="order.type.indexOf('1') !== -1"></edit-dialog> <edit-dialog :order="order" :title="title" :order-id="order.orderId" :visible.sync="warehousingVisible" :warehousing="warehousing" :edit="isEdit" :is-jiyun="order.type && order.type.indexOf('1') !== -1"></edit-dialog>
<!-- 完成入仓 --> <!-- 完成入仓 -->
<el-dialog <el-dialog
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('创建时间')"> <el-form-item :label="$t('创建时间')">
<el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" <el-date-picker v-model="dateRangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" /> type="daterange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('搜索') }}</el-button> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{ $t('搜索') }}</el-button>
......
...@@ -255,6 +255,7 @@ ...@@ -255,6 +255,7 @@
<el-form-item :label="$t('港口优势条件')" prop="portConditions" label-width="250"> <el-form-item :label="$t('港口优势条件')" prop="portConditions" label-width="250">
<dict-selector v-model="formData.resourceVO.portConditions" type="port_conditions" /> <dict-selector v-model="formData.resourceVO.portConditions" type="port_conditions" />
</el-form-item> </el-form-item>
<el-button style="margin-left: 30px;" type="text" v-hasPermi="['ecw:dock:create']" @click="portVisible=true">{{$t('新增港口')}}</el-button>
</div> </div>
<div> <div>
<el-form-item :label="$t('订舱公司')" prop="bookCompany" label-width="250"> <el-form-item :label="$t('订舱公司')" prop="bookCompany" label-width="250">
...@@ -305,6 +306,7 @@ ...@@ -305,6 +306,7 @@
<el-option v-for="(item) in airPort" :key="item.id" :label="$l(item, 'title')" :value="item.id"></el-option> <el-option v-for="(item) in airPort" :key="item.id" :label="$l(item, 'title')" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-button style="margin-left: 30px;" type="text" v-hasPermi="['ecw:dock:create']" @click="portVisible=true">{{$t('新增港口')}}</el-button>
</div> </div>
<div> <div>
<el-form-item :label="$t('空运优势航空公司')" prop="airCompany" label-width="250"> <el-form-item :label="$t('空运优势航空公司')" prop="airCompany" label-width="250">
...@@ -519,10 +521,78 @@ ...@@ -519,10 +521,78 @@
>{{ $t('返回') }}</el-button> >{{ $t('返回') }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 对话框(添加港口) -->
<el-dialog :title="$t('新增港口')" :visible.sync="portVisible" width="500px" append-to-body>
<el-form ref="portForm" :model="portForm" :rules="portRules" label-width="80px">
<el-form-item :label="$t('中文名称')" prop="titleZh">
<el-input v-model="portForm.titleZh" :placeholder="$t('请输入中文名称')" />
</el-form-item>
<el-form-item :label="$t('英文名称')" prop="titleEn">
<el-input v-model="portForm.titleEn" :placeholder="$t('请输入英文名称')" />
</el-form-item>
<el-form-item :label="$t('排序')" prop="sort">
<el-input v-model="portForm.sort" :placeholder="$t('请输入排序')" />
</el-form-item>
<el-form-item :label="$t('国家')" prop="countryId">
<el-select v-model="portForm.countryId" :placeholder="$t('请选择国家')" @change="changeCountry">
<el-option
v-for="item in treeList"
:key="item.id"
:label="$l(item,'title')"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('省')" prop="provinceId">
<el-select v-model="portForm.provinceId" :placeholder="$t('请选择省')" @change="changeProvince">
<el-option
v-for="item in portProvinceList"
:key="item.id"
:label="$l(item,'title')"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('城市')" prop="cityId">
<el-select v-model="portForm.cityId" :placeholder="$t('请选择城市')" @change="changeCity">
<el-option
v-for="item in portCityList"
:key="item.id"
:label="$l(item,'title')"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('港口类型')" prop="portType">
<el-select v-model="portForm.portType" :placeholder="$t('请选择')">
<el-option v-for="dict in portTypeDatas" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('码头编号')" prop="number">
<el-input v-model="portForm.number" :placeholder="$t('请输入码头编号')" />
</el-form-item>
<el-form-item :label="$t('码头类型')" prop="type">
<el-input v-model="portForm.type" :placeholder="$t('请输入码头类型')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addPort">{{$t('确 定')}}</el-button>
<el-button @click="portVisible=false">{{$t('取 消')}}</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { createSupplier, updateSupplier, getSupplier, createFileNo, updateFileNo, getFileNoPage} from "@/api/ecw/supplier"; import { createSupplier, updateSupplier, getSupplier, createFileNo, updateFileNo, getFileNoPage} from "@/api/ecw/supplier";
import { createDock } from "@/api/ecw/dock";
import upload from '@/components/ImageUpload' import upload from '@/components/ImageUpload'
import { getListTree } from "@/api/ecw/region"; import { getListTree } from "@/api/ecw/region";
import AreaSelector from '@/components/AreaSelector' import AreaSelector from '@/components/AreaSelector'
...@@ -531,6 +601,7 @@ import Selector from '@/components/Selector' ...@@ -531,6 +601,7 @@ import Selector from '@/components/Selector'
import {validatePwd} from '@/api/ecw/busiPwd' import {validatePwd} from '@/api/ecw/busiPwd'
import SuppliersSelector from '@/components/SuppliersSelector' import SuppliersSelector from '@/components/SuppliersSelector'
import { getDockPage } from "@/api/ecw/dock"; import { getDockPage } from "@/api/ecw/dock";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
export default { export default {
components: {upload, AreaSelector, Selector, SuppliersSelector}, components: {upload, AreaSelector, Selector, SuppliersSelector},
props: [], props: [],
...@@ -598,7 +669,16 @@ export default { ...@@ -598,7 +669,16 @@ export default {
baNo: [{required: true,message: this.$t('请输入BA NO'),trigger: 'blur'}], baNo: [{required: true,message: this.$t('请输入BA NO'),trigger: 'blur'}],
}, },
showFileNoDialog: false, showFileNoDialog: false,
addFileNoShow: false addFileNoShow: false,
portForm: {},
portVisible: false,
// 表单校验
portRules: {
titleZh: [{ required: true, message: this.$t("中文名称不能为空"), trigger: "blur" }],
titleEn: [{ required: true, message: this.$t("英文名称不能为空"), trigger: "blur" }],
sort: [{ required: true, message: this.$t("排序不能为空"), trigger: "blur" }]
},
portTypeDatas: getDictDatas(DICT_TYPE.ECW_PORT_TYPE)
} }
}, },
computed: { computed: {
...@@ -613,6 +693,26 @@ export default { ...@@ -613,6 +693,26 @@ export default {
let country = this.treeList.find(item => item.id == this.fileNoForm.country) let country = this.treeList.find(item => item.id == this.fileNoForm.country)
return country && country.children || [] return country && country.children || []
}, },
portProvinceList(){
if(!this.portForm.countryId) return []
let country = this.treeList.find(item => item.id == this.portForm.countryId)
return country && country.children || []
},
portCityList(){
if(!this.portProvinceList.length) return []
let province = this.portProvinceList.find(item => item.id == this.portForm.provinceId)
return province && province.children || []
},
portTypeName() {
return portType => {
for(let index in this.portTypeDatas) {
let portTypeItem = this.portTypeDatas[index];
if(portTypeItem.value == portType) {
return this.$l(portTypeItem,'label');
}
}
}
},
}, },
watch: { watch: {
'formData.country'(country){ 'formData.country'(country){
...@@ -637,10 +737,7 @@ export default { ...@@ -637,10 +737,7 @@ export default {
getCurrencyList().then(res => { getCurrencyList().then(res => {
this.currencyList = res.data this.currencyList = res.data
}) })
// 码头 this.getDock()
getDockPage({ pageNo: "1", pageSize: "10000" }).then((res) => {
this.allDocks = res.data.list;
});
this.getFile() this.getFile()
// 回显数据需要在加载了地区数据之后,否则无法正常回显 // 回显数据需要在加载了地区数据之后,否则无法正常回显
...@@ -702,6 +799,12 @@ export default { ...@@ -702,6 +799,12 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
getDock() {
// 码头
getDockPage({ pageNo: "1", pageSize: "10000" }).then((res) => {
this.allDocks = res.data.list;
});
},
strToArray(val) { strToArray(val) {
if(!val || val == '') { if(!val || val == '') {
return [] return []
...@@ -875,7 +978,52 @@ export default { ...@@ -875,7 +978,52 @@ export default {
resourceVO: {}, resourceVO: {},
externalVO: {} externalVO: {}
} }
} },
changeCountry(countryId) {
for(let index in this.treeList) {
let country = this.treeList[index];
if(country.id == countryId) {
this.portForm.countryZh = country.titleZh;
this.portForm.countryEn = country.titleEn;
return;
}
}
},
changeProvince(provinceId) {
for(let index in this.portProvinceList) {
let province = this.portProvinceList[index];
if(province.id == provinceId) {
this.portForm.provinceZh = province.titleZh;
this.portForm.provinceEn = province.titleEn;
return;
}
}
},
changeCity(cityId) {
for(let index in this.portCityList) {
let city = this.portCityList[index];
if(city.id == cityId) {
this.portForm.cityZh = city.titleZh;
this.portForm.cityEn = city.titleEn;
return;
}
}
},
addPort() {
this.$refs["portForm"].validate(valid => {
if (!valid) {
return;
}
// 添加的提交
createDock(this.portForm).then(response => {
this.$modal.msgSuccess(this.$t("新增成功"));
this.portVisible = false;
this.getDock()
});
});
},
} }
} }
......
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