feature-JimuReport-1106-yjl
sunzehua 4 weeks ago
commit bcf596338c

@ -246,6 +246,12 @@
deepCopyRow.id = '' deepCopyRow.id = ''
deepCopyRow.feeStatus = 1 deepCopyRow.feeStatus = 1
deepCopyRow.feeStatusText = '录入状态' deepCopyRow.feeStatusText = '录入状态'
deepCopyRow.settlementAmount = null
deepCopyRow.orderInvoiceAmount = null
deepCopyRow.invoiceAmountRest = null
deepCopyRow.invoiceAmount = null
deepCopyRow.auditOperator = null
deepCopyRow.auditDate = null
props.data.push(deepCopyRow) props.data.push(deepCopyRow)
}) })
} }
@ -434,8 +440,9 @@
} }
// //
const withdrawAll = () => { const withdrawAll = () => {
WithdrawBusiness({ id: props.id, businessType: 1 }).then(res => { WithdrawBusiness({ businessId: props.id, businessType: 1, taskTypeName: 'BILL_RECV_AUDIT' }).then(res => {
createMessage.success(res.message)
emits('refresh')
}) })
} }
// //

@ -19,7 +19,7 @@ enum Api {
GetPrintInfo = '/feeApi/FeeRecord/GetPrintInfo', GetPrintInfo = '/feeApi/FeeRecord/GetPrintInfo',
GetFees = '/feeApi/PaymentApplication/GetFees', GetFees = '/feeApi/PaymentApplication/GetFees',
ApplyBusinessAudit = '/feeApi/FeeRecord/ApplyBusinessAudit', ApplyBusinessAudit = '/feeApi/FeeRecord/ApplyBusinessAudit',
WithdrawBusiness = '/feeApi/FeeRecordWithdrawBusiness', WithdrawBusiness = '/feeApi/FeeRecord/WithdrawBusiness',
SubmitWithAudit = '/feeApi/FeeRecord/SubmitWithAudit' SubmitWithAudit = '/feeApi/FeeRecord/SubmitWithAudit'
} }
// 列表 (Auth) // 列表 (Auth)

@ -97,11 +97,13 @@
} }
// (Auth) // (Auth)
const getFees = async (id, businessType, customerId) => { const getFees = async (id, businessType, customerId) => {
const postData = [{ const postData = {
items: [{
id, id,
businessType, businessType,
customerId customerId
}] }]
}
loading.value = true loading.value = true
await GetFees(postData).then(res => { await GetFees(postData).then(res => {
const { data } = res const { data } = res

@ -1212,7 +1212,8 @@
allSave, allSave,
getUnitList, getUnitList,
initData, initData,
validate validate,
init
}) })
</script> </script>

@ -48,6 +48,8 @@
import FeeTable from './feeTable.vue' import FeeTable from './feeTable.vue'
// //
import FeeStatistic from './feeStatistic.vue' import FeeStatistic from './feeStatistic.vue'
import { useMessage } from '/@/hooks/web/useMessage'
const { createMessage } = useMessage()
import { ApplyBusinessAudit } from './api' import { ApplyBusinessAudit } from './api'
const props = defineProps({ const props = defineProps({
details: { type: [Object, Array] }, details: { type: [Object, Array] },
@ -85,8 +87,10 @@
rtb.value.allSave(true) rtb.value.allSave(true)
ptb.value.allSave(true) ptb.value.allSave(true)
setTimeout(() => { setTimeout(() => {
ApplyBusinessAudit({ id: props.details.id, businessType: 1 }).then(res => { ApplyBusinessAudit({ businessId: props.details.id, businessType: 1, taskTypeName: 'BILL_RECV_AUDIT' }).then(res => {
console.log(res) createMessage.success(res.message)
rtb.value.init()
ptb.value.init()
}, 1000) }, 1000)
}) })
} }

@ -7,7 +7,8 @@
<a-spin :spinning="loading"> <a-spin :spinning="loading">
<div class="ds-approve-fee-table-sf"> <div class="ds-approve-fee-table-sf">
<div class="fee-check-opt"> <div class="fee-check-opt">
<h4>应收应付费用</h4> <h4>{{ status == 'BILL_RECV_AUDIT' ? '应收费用确认' : '应收应付费用' }}</h4>
<span v-if="!status">
<a-dropdown> <a-dropdown>
<template #overlay> <template #overlay>
<a-menu> <a-menu>
@ -54,6 +55,7 @@
<span class="iconfont icon-renwu_" :style="{fontSize: '13px'}"></span> <span class="iconfont icon-renwu_" :style="{fontSize: '13px'}"></span>
本票审核 本票审核
</a-button> </a-button>
</span>
<!-- <FeeActionBar <!-- <FeeActionBar
></FeeActionBar> --> ></FeeActionBar> -->
</div> </div>
@ -134,7 +136,7 @@
</a-spin> </a-spin>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive, defineProps, watch, defineExpose, defineEmits } from 'vue' import { ref, defineExpose } from 'vue'
import { BasicTable, useTable } from '/@/components/Table' import { BasicTable, useTable } from '/@/components/Table'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
import { GetFees, Audit, SetInvoiceEnabled, AuditByBiz } from '../api' import { GetFees, Audit, SetInvoiceEnabled, AuditByBiz } from '../api'
@ -145,6 +147,11 @@
import FeeRejectModal from './feeRejectModal.vue' import FeeRejectModal from './feeRejectModal.vue'
import { formatTableData } from '/@/hooks/web/common' import { formatTableData } from '/@/hooks/web/common'
import emitter from '/@/utils/Bus' import emitter from '/@/utils/Bus'
import { useRoute } from 'vue-router'
const route = useRoute()
//
const status = route.query.status
console.log(route)
const { createMessage } = useMessage() const { createMessage } = useMessage()
// //
const check = ref(true) const check = ref(true)
@ -169,31 +176,31 @@
{ {
title: v == 1 ? '应收' : '应付', title: v == 1 ? '应收' : '应付',
align: 'center', align: 'center',
width: 200, width: 400,
children: [ children: [
{ {
dataIndex: 'RMB', dataIndex: 'RMB',
title: 'RMB', title: 'RMB',
align: 'left', align: 'left',
minWidth: 80 minWidth: 70
}, },
{ {
dataIndex: 'USD', dataIndex: 'USD',
title: 'USD', title: 'USD',
align: 'left', align: 'left',
minWidth: 80 minWidth: 70
}, },
{ {
dataIndex: 'other', dataIndex: 'other',
title: '其他币别', title: '其他币别',
align: 'left', align: 'left',
minWidth: 80 minWidth: 70
}, },
{ {
dataIndex: 'customerFullName', dataIndex: 'customerFullName',
title: '客户名称', title: '客户名称',
align: 'left', align: 'left',
minWidth: 80 minWidth: 150
}, },
{ {
dataIndex: 'feeStatusText', dataIndex: 'feeStatusText',
@ -205,19 +212,19 @@
dataIndex: 'unitPrice', dataIndex: 'unitPrice',
title: '单价', title: '单价',
align: 'left', align: 'left',
width: 100 width: 70
}, },
{ {
dataIndex: 'quantity', dataIndex: 'quantity',
title: '数量', title: '数量',
align: 'left', align: 'left',
width: 50 width: 40
}, },
{ {
dataIndex: 'exchangeRate', dataIndex: 'exchangeRate',
title: '汇率', title: '汇率',
align: 'left', align: 'left',
width: 50 width: 40
} }
] ]
} }

@ -62,7 +62,7 @@
</template> </template>
</BasicTable> </BasicTable>
<!-- 费用组件 --> <!-- 费用组件 -->
<FeeTable ref="mainFeeTable"></FeeTable> <FeeTable ref="mainFeeTable" :status="status"></FeeTable>
<!-- 费用统计 --> <!-- 费用统计 -->
<div class="fee-statistic"> <div class="fee-statistic">
<span class="item">RMB利润<span class="item-val" :class="{ warnText: statisticData.profitCNY < 0 }">{{ statisticData.profitCNY }}</span></span> <span class="item">RMB利润<span class="item-val" :class="{ warnText: statisticData.profitCNY < 0 }">{{ statisticData.profitCNY }}</span></span>
@ -71,6 +71,14 @@
<span class="item">合计利润<span class="item-val" :class="{ warnText: statisticData.payableTotal < 0 }">{{ statisticData.payableTotal }}</span></span> <span class="item">合计利润<span class="item-val" :class="{ warnText: statisticData.payableTotal < 0 }">{{ statisticData.payableTotal }}</span></span>
<span class="item">利润率<span class="item-val">{{ statisticData.profitMargin }}</span></span> <span class="item">利润率<span class="item-val">{{ statisticData.profitMargin }}</span></span>
</div> </div>
<ApproveBtns
agreeText="费用确认"
rejectText="驳回"
:approve="approveDc"
:id="route.query.id"
businessType="1"
>
</ApproveBtns>
<!-- <Statistic v-show="busId.length" :id="busId"></Statistic> --> <!-- <Statistic v-show="busId.length" :id="busId"></Statistic> -->
<!-- 完整费用弹窗 --> <!-- 完整费用弹窗 -->
<a-modal <a-modal
@ -96,10 +104,14 @@
import FeeTable from './components/feeTable.vue' import FeeTable from './components/feeTable.vue'
// import Statistic from './components/Statistic.vue' // import Statistic from './components/Statistic.vue'
import MainActionBar from './components/mainActionBar.vue' import MainActionBar from './components/mainActionBar.vue'
//
import ApproveBtns from '/@/components/ApproveBtns/index.vue'
import { formatTableData } from '/@/hooks/web/common' import { formatTableData } from '/@/hooks/web/common'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
const route = useRoute() const route = useRoute()
const { createMessage } = useMessage() const { createMessage } = useMessage()
//
const status = route.query.status
// //
const visible = ref(false) const visible = ref(false)
// loading // loading
@ -202,11 +214,16 @@
} }
const mainApprove = () => { const mainApprove = () => {
}
//
const approveDc = () => {
} }
onMounted(() => { onMounted(() => {
// id // id
if (route.query.id) { if (route.query.id) {
mainFeeTable.value.init({ id: route.query.id, businessType: 1 }) mainFeeTable.value.init({ id: route.query.id, businessType: 1 })
getStatistic({ id: route.query.id, businessType: 1 })
} else { } else {
reload() reload()
} }

@ -627,10 +627,9 @@ export const currencyFormSchema: FormSchema[] = [
{ {
field: 'currency', field: 'currency',
label: '结算币别:', label: '结算币别:',
defaultValue: null, defaultValue: 'RMB',
component: 'ApiSelect', component: 'ApiSelect',
colProps: { span: 5 }, colProps: { span: 5 },
placeholder: '原币结算',
componentProps: () => { componentProps: () => {
return { return {
allowClear: true, allowClear: true,

@ -253,7 +253,8 @@
const addInfos = async (type) => { const addInfos = async (type) => {
const selectRows = getSelectRows() const selectRows = getSelectRows()
// //
const currency = getFieldsValue().currency const currency = props.formData.currency
console.log(currency)
if (selectRows.length == 0) { if (selectRows.length == 0) {
return createMessage.warning('没有选择要添加的业务!') return createMessage.warning('没有选择要添加的业务!')
} }
@ -264,6 +265,8 @@
documents: getSelectRows() documents: getSelectRows()
} }
if (!currency) { if (!currency) {
console.log(postData)
return
loading.value = true loading.value = true
Save(postData).then(async (res) => { Save(postData).then(async (res) => {
loading.value = false loading.value = false
@ -277,6 +280,7 @@
loading.value = false loading.value = false
}) })
} else { } else {
return
// //
props.setFieldsValue({ props.setFieldsValue({
currency currency
@ -290,6 +294,7 @@
customerId: item.customerId customerId: item.customerId
} }
}) })
console.log(postCurrency)
const items = await GetExchanges(postCurrency).then(res => { const items = await GetExchanges(postCurrency).then(res => {
return res.data return res.data
}) })

@ -22,11 +22,11 @@
class="action-divider" class="action-divider"
/> />
<div style="padding-top: 8px;"> <div style="padding-top: 8px;">
<a-button type="link" @click="kfz"> <a-button type="link" @click="create('free')">
<span class="iconfont icon-lirun"></span> <span class="iconfont icon-lirun"></span>
新建自由结算 新建自由结算
</a-button> </a-button>
<a-button type="link" @click="create"> <a-button type="link" @click="create('apply')">
<span class="iconfont icon-shenpi-pizhun"></span> <span class="iconfont icon-shenpi-pizhun"></span>
新建申请结算 新建申请结算
</a-button> </a-button>
@ -132,8 +132,8 @@
go(`/payment-settlement/detail?id=${row.id}`) go(`/payment-settlement/detail?id=${row.id}`)
} }
// //
const create = () => { const create = (v) => {
go(`/payment-settlement/create`) go(`/payment-settlement/create?type=${v}`)
} }
onMounted(() => { onMounted(() => {
// //

@ -17,10 +17,10 @@
> >
<template #toolbar> <template #toolbar>
<div class="flex" style="width: 100%;"> <div class="flex" style="width: 100%;">
<h4 style="width: 80px;">结算明细</h4> <h4 style="width: 80px;">申请明细</h4>
<a-button class="ml15" type="link" @click="addInfos"> <a-button class="ml15" type="link" @click="addInfos">
<span class="iconfont icon-zengjiatianjiajiajian" :style="{ fontSize: '12px' }"></span> <span class="iconfont icon-zengjiatianjiajiajian" :style="{ fontSize: '12px' }"></span>
添加结算明细 添加申请明细
</a-button> </a-button>
<BasicForm <BasicForm
class="currency-form" class="currency-form"
@ -214,6 +214,12 @@
const save = () => { const save = () => {
// //
feeTableData.value = feeTabel.value.selectfeeData feeTableData.value = feeTabel.value.selectfeeData
// id
if (feeTableData.value && feeTableData.value.length) {
feeTableData.value.forEach(item => {
item.id = 0
})
}
if (feeTableData.value.length == 0) { if (feeTableData.value.length == 0) {
return createMessage.warning('请选择要申请的费用明细!') return createMessage.warning('请选择要申请的费用明细!')
} }

@ -52,7 +52,7 @@
<a-modal <a-modal
class="fee-modal" class="fee-modal"
v-model:visible="visible" v-model:visible="visible"
title="添加支付结算明细" title="添加付费申请信息"
width="90%" width="90%"
@ok="handleOk" @ok="handleOk"
> >

@ -1180,12 +1180,14 @@
break break
case 'FEE_AUDIT': case 'FEE_AUDIT':
case 'BILL_RECV_AUDIT':
// //
go({ go({
path: '/approve-fee', path: '/approve-fee',
query: { query: {
id: data.ouT_BS_NO, id: data.ouT_BS_NO,
btype: 1, btype: 1,
status: data.tasK_TYPE
}, },
}) })
break break

Loading…
Cancel
Save