|
|
@ -4,24 +4,27 @@
|
|
|
|
* @Description:
|
|
|
|
* @Description:
|
|
|
|
-->
|
|
|
|
-->
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
<div class="ds-bus-table">
|
|
|
|
<div id="ds-fee-info-table" class="ds-bus-table">
|
|
|
|
<a-spin :spinning="loading">
|
|
|
|
<a-spin :spinning="loading">
|
|
|
|
<BasicTable
|
|
|
|
<BasicTable
|
|
|
|
class="ds-table-detail"
|
|
|
|
class="ds-table-detail"
|
|
|
|
:canRowSelect="true"
|
|
|
|
:canRowSelect="true"
|
|
|
|
:scroll="{ x: '100%', y: 400 }"
|
|
|
|
:scroll="{ x: '100%', y: 400 }"
|
|
|
|
:row-selection="{ selectedRowKeys: state.historyRowKeys, onChange: historyChange }"
|
|
|
|
:row-selection="{ selectedRowKeys: state.historyRowKeys, onChange: historyChange }"
|
|
|
|
rowKey="id"
|
|
|
|
rowKey="idIndex"
|
|
|
|
@register="registerTable"
|
|
|
|
@register="registerTable"
|
|
|
|
@row-click="onRowClick"
|
|
|
|
@row-click="onRowClick"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<template #toolbar>
|
|
|
|
<template #toolbar>
|
|
|
|
<div class="flex">
|
|
|
|
<div style="width: 100%;">
|
|
|
|
<h4>结算明细</h4>
|
|
|
|
<BasicForm class="currency-form" @register="registerForm" />
|
|
|
|
<a-button class="ml15" type="link" @click="addInfos">
|
|
|
|
<div class="flex">
|
|
|
|
<span class="iconfont icon-zengjiatianjiajiajian" :style="{ fontSize: '12px' }"></span>
|
|
|
|
<h4>结算明细</h4>
|
|
|
|
增加结算明细
|
|
|
|
<a-button class="ml15" type="link" @click="addInfos">
|
|
|
|
</a-button>
|
|
|
|
<span class="iconfont icon-zengjiatianjiajiajian" :style="{ fontSize: '12px' }"></span>
|
|
|
|
|
|
|
|
增加结算明细
|
|
|
|
|
|
|
|
</a-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<template #right>
|
|
|
|
<template #right>
|
|
|
@ -29,7 +32,7 @@
|
|
|
|
type="vertical"
|
|
|
|
type="vertical"
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
<div class="info">
|
|
|
|
<div class="info">
|
|
|
|
<div style="height: 48px;">
|
|
|
|
<div style="height: 48px; margin-top: 47px;">
|
|
|
|
<a-button type="link" @click="save" style="margin: 8px -10px;">
|
|
|
|
<a-button type="link" @click="save" style="margin: 8px -10px;">
|
|
|
|
<span class="iconfont icon-zengjiatianjiajiajian" :style="{ fontSize: '12px' }"></span>
|
|
|
|
<span class="iconfont icon-zengjiatianjiajiajian" :style="{ fontSize: '12px' }"></span>
|
|
|
|
增加申请费用明细
|
|
|
|
增加申请费用明细
|
|
|
@ -45,27 +48,27 @@
|
|
|
|
<template #footer>
|
|
|
|
<template #footer>
|
|
|
|
<div class="main-statistic">
|
|
|
|
<div class="main-statistic">
|
|
|
|
<span>选中合计:</span>
|
|
|
|
<span>选中合计:</span>
|
|
|
|
<span>
|
|
|
|
<span class="box">
|
|
|
|
<span class="title">未收RMB:</span>
|
|
|
|
<span class="title">未收RMB:</span>
|
|
|
|
<span class="count">{{ rrmb }}</span>
|
|
|
|
<span class="count">{{ rrmb }}</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
<span class="box">
|
|
|
|
<span class="title">未付RMB:</span>
|
|
|
|
<span class="title">未付RMB:</span>
|
|
|
|
<span class="count">{{ prmb }}</span>
|
|
|
|
<span class="count">{{ prmb }}</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
<span class="box">
|
|
|
|
<span class="title">未收USD:</span>
|
|
|
|
<span class="title">未收USD:</span>
|
|
|
|
<span class="count">{{ rusd }}</span>
|
|
|
|
<span class="count">{{ rusd }}</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
<span class="box">
|
|
|
|
<span class="title">未付USD:</span>
|
|
|
|
<span class="title">未付USD:</span>
|
|
|
|
<span class="count">{{ pusd }}</span>
|
|
|
|
<span class="count">{{ pusd }}</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
<span class="box">
|
|
|
|
<span class="title">未收其他:</span>
|
|
|
|
<span class="title">未收其他:</span>
|
|
|
|
<span class="count">{{ rother }}</span>
|
|
|
|
<span class="count">{{ rother }}</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
<span class="box">
|
|
|
|
<span class="title">未付其他:</span>
|
|
|
|
<span class="title">未付其他:</span>
|
|
|
|
<span class="count">{{ pother }}</span>
|
|
|
|
<span class="count">{{ pother }}</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
@ -92,8 +95,9 @@
|
|
|
|
import { onMounted, ref, reactive, watch, defineExpose, defineProps, defineEmits, h } from 'vue'
|
|
|
|
import { onMounted, ref, reactive, watch, defineExpose, defineProps, defineEmits, h } from 'vue'
|
|
|
|
import { BasicTable, useTable } from '/@/components/Table'
|
|
|
|
import { BasicTable, useTable } from '/@/components/Table'
|
|
|
|
import { GetBizList, BizSave } from '../../api'
|
|
|
|
import { GetBizList, BizSave } from '../../api'
|
|
|
|
import { businessColumns, searchFormSchema } from '../columns'
|
|
|
|
import { businessColumns, searchFormSchema, currencyFormSchema } from '../columns'
|
|
|
|
import feeTable from '/@/components/CostEntry/components/feeTable.vue'
|
|
|
|
import feeTable from '/@/components/CostEntry/components/feeTable.vue'
|
|
|
|
|
|
|
|
import { BasicForm, useForm } from '/@/components/Form'
|
|
|
|
import ExchangeRate from './exchangeRate.vue'
|
|
|
|
import ExchangeRate from './exchangeRate.vue'
|
|
|
|
// 引入提示信息
|
|
|
|
// 引入提示信息
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'
|
|
|
@ -131,7 +135,7 @@
|
|
|
|
res.data.forEach((item, index) => {
|
|
|
|
res.data.forEach((item, index) => {
|
|
|
|
item['idIndex'] = item.id + index
|
|
|
|
item['idIndex'] = item.id + index
|
|
|
|
})
|
|
|
|
})
|
|
|
|
if (res?.data?.length) state.historyRowKeys = [res.data[0].id]
|
|
|
|
if (res?.data?.length) state.historyRowKeys = [res.data[0].id + 0]
|
|
|
|
setSelectedRows([res.data[0]])
|
|
|
|
setSelectedRows([res.data[0]])
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
resolve({ data: [...res.data], total: res.count })
|
|
|
|
resolve({ data: [...res.data], total: res.count })
|
|
|
@ -157,6 +161,11 @@
|
|
|
|
canResize: false,
|
|
|
|
canResize: false,
|
|
|
|
immediate: false
|
|
|
|
immediate: false
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
const [registerForm, { validate, getFieldsValue, setFieldsValue }] = useForm({
|
|
|
|
|
|
|
|
labelWidth: 150,
|
|
|
|
|
|
|
|
schemas: currencyFormSchema,
|
|
|
|
|
|
|
|
showActionButtonGroup: false
|
|
|
|
|
|
|
|
})
|
|
|
|
// 费用信息已选项
|
|
|
|
// 费用信息已选项
|
|
|
|
const state = reactive({
|
|
|
|
const state = reactive({
|
|
|
|
historyRowKeys: []
|
|
|
|
historyRowKeys: []
|
|
|
@ -188,7 +197,7 @@
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 行点击事件
|
|
|
|
// 行点击事件
|
|
|
|
const onRowClick = (record) => {
|
|
|
|
const onRowClick = (record) => {
|
|
|
|
state.historyRowKeys = [record?.id]
|
|
|
|
state.historyRowKeys = [record?.idIndex]
|
|
|
|
setSelectedRows([record])
|
|
|
|
setSelectedRows([record])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const feeData = () => {
|
|
|
|
const feeData = () => {
|
|
|
@ -340,10 +349,11 @@
|
|
|
|
diffIds.forEach(item => {
|
|
|
|
diffIds.forEach(item => {
|
|
|
|
// 获取业务类型传给下个子组件
|
|
|
|
// 获取业务类型传给下个子组件
|
|
|
|
let btype = rows.filter(row => {
|
|
|
|
let btype = rows.filter(row => {
|
|
|
|
return item == row.id
|
|
|
|
return item == row.idIndex
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
let customerId = btype[0]?.customerId
|
|
|
|
btype = btype[0]?.businessType
|
|
|
|
btype = btype[0]?.businessType
|
|
|
|
feeTabel.value.init([item], 'apply', btype).then(res => {
|
|
|
|
feeTabel.value.init([item], 'apply', btype, customerId).then(res => {
|
|
|
|
allFeeData[item] = res
|
|
|
|
allFeeData[item] = res
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -355,12 +365,14 @@
|
|
|
|
if (v.length) {
|
|
|
|
if (v.length) {
|
|
|
|
// 获取业务类型传给下个子组件
|
|
|
|
// 获取业务类型传给下个子组件
|
|
|
|
let btype = rows[0].businessType
|
|
|
|
let btype = rows[0].businessType
|
|
|
|
feeTabel.value.init([v[v.length - 1]], 'apply', btype)
|
|
|
|
let customerId = rows[0].customerId
|
|
|
|
|
|
|
|
feeTabel.value.init([v[v.length - 1]], 'apply', btype, customerId)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// 点击单行平行切换
|
|
|
|
// 点击单行平行切换
|
|
|
|
let btype = rows[0].businessType
|
|
|
|
let btype = rows[0].businessType
|
|
|
|
feeTabel.value.init(v, 'apply', btype)
|
|
|
|
let customerId = rows[0].customerId
|
|
|
|
|
|
|
|
feeTabel.value.init(v, 'apply', btype, customerId)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
rrmb.value = 0
|
|
|
|
rrmb.value = 0
|
|
|
|
prmb.value = 0
|
|
|
|
prmb.value = 0
|
|
|
@ -407,13 +419,17 @@
|
|
|
|
.title {
|
|
|
|
.title {
|
|
|
|
font-size: 14px;
|
|
|
|
font-size: 14px;
|
|
|
|
font-weight: 600;
|
|
|
|
font-weight: 600;
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.count {
|
|
|
|
.count {
|
|
|
|
font-size: 14px;
|
|
|
|
font-size: 14px;
|
|
|
|
font-weight: 600;
|
|
|
|
font-weight: 600;
|
|
|
|
color: #257AFA;
|
|
|
|
color: #257AFA;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.box {
|
|
|
|
|
|
|
|
background: #F5F9FC;
|
|
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
|
|
padding: 0 5px;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.ant-table-container {
|
|
|
|
.ant-table-container {
|
|
|
|
height: 400px;
|
|
|
|
height: 400px;
|
|
|
@ -422,7 +438,6 @@
|
|
|
|
height: 364px!important;
|
|
|
|
height: 364px!important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.flex {
|
|
|
|
.flex {
|
|
|
|
height: 48px;
|
|
|
|
|
|
|
|
align-items: center;
|
|
|
|
align-items: center;
|
|
|
|
h4 {
|
|
|
|
h4 {
|
|
|
|
margin-bottom: 0;
|
|
|
|
margin-bottom: 0;
|
|
|
@ -442,5 +457,19 @@
|
|
|
|
margin-bottom: 0;
|
|
|
|
margin-bottom: 0;
|
|
|
|
padding-bottom: 0;
|
|
|
|
padding-bottom: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#ds-fee-info-table {
|
|
|
|
|
|
|
|
.vben-basic-table-header__toolbar {
|
|
|
|
|
|
|
|
>div {
|
|
|
|
|
|
|
|
width: 100%!important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.currency-form {
|
|
|
|
|
|
|
|
background: #ffffff!important;
|
|
|
|
|
|
|
|
padding-left: 0!important;
|
|
|
|
|
|
|
|
.ant-form-item-no-colon {
|
|
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</style>
|