海运出询
parent
8338128cec
commit
a83e434770
@ -0,0 +1,260 @@
|
|||||||
|
/*
|
||||||
|
* @Description: 费用代码设置tsx
|
||||||
|
* @Author: lijj
|
||||||
|
* @Date: 2024-04-25 15:48:33
|
||||||
|
*/
|
||||||
|
import { ref, h, ComponentOptions, resolveComponent } from 'vue'
|
||||||
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||||
|
import { useOptionsStore } from '/@/store/modules/options'
|
||||||
|
const optionsStore = useOptionsStore()
|
||||||
|
// 引入字典数据
|
||||||
|
import { getDictOption } from '/@/utils/dictUtil'
|
||||||
|
|
||||||
|
// 业务表格列
|
||||||
|
export const businessColumns: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: '委托编号',
|
||||||
|
dataIndex: 'customerNo',
|
||||||
|
width: 150,
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '主提单号',
|
||||||
|
dataIndex: 'mblno',
|
||||||
|
width: 150,
|
||||||
|
align: 'left'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '结算单位',
|
||||||
|
dataIndex: 'customerName',
|
||||||
|
width: 150,
|
||||||
|
align: 'left'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export const formSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'applicationNO',
|
||||||
|
label: '申请编号',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '自动生成',
|
||||||
|
colProps: { span: 3 },
|
||||||
|
// render: ({ model, field }) => {
|
||||||
|
// return h(resolveComponent('span') as ComponentOptions, {
|
||||||
|
// value: model[field]
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
label: '状态',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '自动生成',
|
||||||
|
colProps: { span: 3 },
|
||||||
|
// render: ({ model, field }) => {
|
||||||
|
// return h(resolveComponent('span') as ComponentOptions, {
|
||||||
|
// value: model[field]
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'customerId',
|
||||||
|
label: '结算对象',
|
||||||
|
component: 'ApiSelect',
|
||||||
|
required: false,
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: () => {
|
||||||
|
return {
|
||||||
|
option: optionsStore.getOptionsByCode('GetClientListByCode'),
|
||||||
|
labelField: 'shortName',
|
||||||
|
valueField: 'id',
|
||||||
|
resultField: 'data',
|
||||||
|
immediate: false,
|
||||||
|
filterOption: (input: string, option: any) => {
|
||||||
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'customerBankId',
|
||||||
|
label: '结算对象账户',
|
||||||
|
component: 'ApiSelect',
|
||||||
|
required: false,
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: () => {
|
||||||
|
return {
|
||||||
|
option: optionsStore.getOptionsByCode('getClientBankList'),
|
||||||
|
labelField: 'bankName',
|
||||||
|
valueField: 'id',
|
||||||
|
resultField: 'data',
|
||||||
|
immediate: false,
|
||||||
|
filterOption: (input: string, option: any) => {
|
||||||
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'customerBank',
|
||||||
|
label: '结算对象账号',
|
||||||
|
component: 'Input',
|
||||||
|
required: false,
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'createTime',
|
||||||
|
label: '申请日期',
|
||||||
|
component: 'DatePicker',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'currency',
|
||||||
|
label: '币别',
|
||||||
|
component: 'ApiSelect',
|
||||||
|
required: false,
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: () => {
|
||||||
|
return {
|
||||||
|
option: optionsStore.getOptionsByCode('GetFeeCurrencySelectList'),
|
||||||
|
labelField: 'name',
|
||||||
|
valueField: 'id',
|
||||||
|
resultField: 'data',
|
||||||
|
immediate: false,
|
||||||
|
filterOption: (input: string, option: any) => {
|
||||||
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'amountRMB',
|
||||||
|
label: 'RMB金额',
|
||||||
|
component: 'InputNumber',
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: {
|
||||||
|
min: 0,
|
||||||
|
precision: 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'amountUSD',
|
||||||
|
label: 'USD金额',
|
||||||
|
component: 'InputNumber',
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: {
|
||||||
|
min: 0,
|
||||||
|
precision: 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'amountOther',
|
||||||
|
label: '其他外币金额',
|
||||||
|
component: 'InputNumber',
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: {
|
||||||
|
min: 0,
|
||||||
|
precision: 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'amountUSD',
|
||||||
|
label: '计划结算RMB',
|
||||||
|
component: 'InputNumber',
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'amountOther',
|
||||||
|
label: '计划结算USD',
|
||||||
|
component: 'InputNumber',
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'settlementType',
|
||||||
|
label: '结算方式',
|
||||||
|
component: 'ApiSelect',
|
||||||
|
required: false,
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 },
|
||||||
|
componentProps: () => {
|
||||||
|
return {
|
||||||
|
option: optionsStore.getOptionsByCode('GetClientStlModeSelectList'),
|
||||||
|
labelField: 'stlName',
|
||||||
|
valueField: 'id',
|
||||||
|
resultField: 'data',
|
||||||
|
immediate: false,
|
||||||
|
filterOption: (input: string, option: any) => {
|
||||||
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'paymentDate',
|
||||||
|
label: '申请支付日期',
|
||||||
|
component: 'DatePicker',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'createBy',
|
||||||
|
label: '申请人',
|
||||||
|
component: 'Input',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'createBy',
|
||||||
|
label: '计划结算其他',
|
||||||
|
component: 'Input',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 3 }
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
label: '费用对象',
|
||||||
|
field: 'customerId',
|
||||||
|
component: 'ApiSelect',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 4 },
|
||||||
|
componentProps: () => {
|
||||||
|
return {
|
||||||
|
option: optionsStore.getOptionsByCode('GetClientListByCode'),
|
||||||
|
immediate: false,
|
||||||
|
labelField: 'shortName',
|
||||||
|
valueField: 'codeName',
|
||||||
|
resultField: 'data',
|
||||||
|
filterOption: (input: string, option: any) => {
|
||||||
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '主提单号',
|
||||||
|
field: 'mblno',
|
||||||
|
component: 'Input',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 4 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '主提单号',
|
||||||
|
field: 'mblno',
|
||||||
|
component: 'Input',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 4 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '对账编号',
|
||||||
|
field: 'debitNo',
|
||||||
|
component: 'Input',
|
||||||
|
dynamicDisabled: false,
|
||||||
|
colProps: { span: 4 }
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,123 @@
|
|||||||
|
<!--
|
||||||
|
* @Description: 操作管理 -> 付费申请 -> 申请明细
|
||||||
|
* @Author: lijj
|
||||||
|
* @Date: 2024-06-20 11:54:04
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<div class="ds-pay-apply-detail-fee-info">
|
||||||
|
<a-tabs v-model:activeKey="activeKey">
|
||||||
|
<a-tab-pane key="2" tab="费用明细">
|
||||||
|
<div>
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<template #toolbar>
|
||||||
|
<a-button type="primary" @click="add"> 新建 </a-button>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
</div>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="3" tab="附件上传" force-render>
|
||||||
|
<DsFile
|
||||||
|
ref="dsFile"
|
||||||
|
:id='id'
|
||||||
|
/>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { onMounted, ref, defineEmits, defineProps, watch } from 'vue'
|
||||||
|
import { BasicTable, useTable } from '/@/components/Table'
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage'
|
||||||
|
import { columns, searchFormSchema } from './applyInfoColumns'
|
||||||
|
// 引入附近上传组件
|
||||||
|
import DsFile from "/@/components/File/index.vue"
|
||||||
|
const { createMessage } = useMessage()
|
||||||
|
const emit = defineEmits(['add'])
|
||||||
|
const activeKey = ref('2')
|
||||||
|
const props = defineProps({
|
||||||
|
feeData: {
|
||||||
|
type: Array
|
||||||
|
},
|
||||||
|
// 业务id
|
||||||
|
id: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const [registerTable, { reload, getForm, getPaginationRef, getSelectRows, getDataSource, setTableData }] = useTable({
|
||||||
|
title: '',
|
||||||
|
api: async (p) => {
|
||||||
|
const res = await GetList(p)
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
resolve({ data: [...res.data], total: res.count })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
beforeFetch: () => {
|
||||||
|
var currentPageInfo: any = getPaginationRef()
|
||||||
|
var data = getForm().getFieldsValue()
|
||||||
|
const postParam = {
|
||||||
|
queryCondition: '',
|
||||||
|
pageCondition: {
|
||||||
|
pageIndex: currentPageInfo.current,
|
||||||
|
pageSize: currentPageInfo.pageSize,
|
||||||
|
sortConditions: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
let condition: API.ConditionItem[] = []
|
||||||
|
if (!!data.UserName) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'UserName',
|
||||||
|
FieldValue: data.UserName,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.UserCode) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'UserCode',
|
||||||
|
FieldValue: data.UserCode,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
postParam.queryCondition = JSON.stringify(condition)
|
||||||
|
// console.log(postParam);
|
||||||
|
return postParam
|
||||||
|
},
|
||||||
|
columns,
|
||||||
|
isTreeTable: false,
|
||||||
|
pagination: true,
|
||||||
|
striped: false,
|
||||||
|
useSearchForm: false,
|
||||||
|
showTableSetting: true,
|
||||||
|
bordered: true,
|
||||||
|
showIndexColumn: true,
|
||||||
|
canResize: false,
|
||||||
|
rowSelection: { type: 'checkbox' },
|
||||||
|
immediate: false
|
||||||
|
})
|
||||||
|
// 添加明细
|
||||||
|
const add = () => {
|
||||||
|
emit('add')
|
||||||
|
}
|
||||||
|
const tableData = ref([])
|
||||||
|
watch(
|
||||||
|
() => props.feeData,
|
||||||
|
(list) => {
|
||||||
|
console.log(list)
|
||||||
|
setTableData([...list])
|
||||||
|
}
|
||||||
|
)
|
||||||
|
onMounted(() => {
|
||||||
|
//初始化
|
||||||
|
// reload()
|
||||||
|
})
|
||||||
|
function handleSuccess() {
|
||||||
|
// reload()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
.ds-pay-apply {
|
||||||
|
.vben-basic-table-header__toolbar {
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* @Author: lijingjia lijj_xl@163.com
|
||||||
|
* @Date: 2024-06-21 16:59:01
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||||
|
export const columns: BasicColumn[] = [
|
||||||
|
{
|
||||||
|
title: '委托编号',
|
||||||
|
dataIndex: 'customerNo',
|
||||||
|
width: 130,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '主提单号',
|
||||||
|
dataIndex: 'mblno',
|
||||||
|
width: 130,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '委托单位',
|
||||||
|
dataIndex: 'customerName',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '开船日期',
|
||||||
|
dataIndex: 'etd',
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '业务来源',
|
||||||
|
dataIndex: 'sourceName',
|
||||||
|
width: 130,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '费用名称',
|
||||||
|
dataIndex: 'feeName',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '收付',
|
||||||
|
dataIndex: 'billType',
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '费用对象',
|
||||||
|
dataIndex: 'customerName',
|
||||||
|
width: 110,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '申请金额',
|
||||||
|
dataIndex: 'amount',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '原始币别',
|
||||||
|
dataIndex: 'originalCurrency',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '原始汇率',
|
||||||
|
// dataIndex: 'originalCurrency',
|
||||||
|
// width: 200,
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '折算汇率',
|
||||||
|
dataIndex: 'exchangeRate',
|
||||||
|
width: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '原始金额',
|
||||||
|
dataIndex: 'originalAmount',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: '进项/销项税率',
|
||||||
|
// dataIndex: 'originalCurrency',
|
||||||
|
// width: 200,
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '揽货人',
|
||||||
|
dataIndex: 'note',
|
||||||
|
width: 110,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '所属分部',
|
||||||
|
dataIndex: 'createTime',
|
||||||
|
width: 120,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'CountryName',
|
||||||
|
label: '国家名称',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 6 }
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,136 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: lijingjia lijj_xl@163.com
|
||||||
|
* @Date: 2024-06-24 10:08:36
|
||||||
|
* @Description:
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<data>
|
||||||
|
<a-button type="link" @click="addInfos">增加结算明细</a-button>
|
||||||
|
</data>
|
||||||
|
<BasicTable
|
||||||
|
:canRowSelect="true"
|
||||||
|
:scroll="{ x: '100%', y: 188 }"
|
||||||
|
:row-selection="{ selectedRowKeys: state.historyRowKeys, onChange: historyChange }"
|
||||||
|
rowKey="id"
|
||||||
|
@register="registerTable"
|
||||||
|
@row-click="onRowClick"
|
||||||
|
>
|
||||||
|
</BasicTable>
|
||||||
|
<div class="info">
|
||||||
|
<h2 style="padding-left: 20px; font-weight: 600;">费用明细</h2>
|
||||||
|
<feeTable
|
||||||
|
ref="feeTabel"
|
||||||
|
></feeTable>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { onMounted, ref, reactive, watch, defineExpose } from 'vue'
|
||||||
|
import { BasicTable, useTable } from '/@/components/Table'
|
||||||
|
import { GetBizList } from '../../api'
|
||||||
|
import { businessColumns, searchFormSchema } from '../columns'
|
||||||
|
import feeTable from '/@/components/CostEntry/components/feeTable.vue'
|
||||||
|
const [registerTable, { reload, getForm, getPaginationRef }] = useTable({
|
||||||
|
api: async (p) => {
|
||||||
|
const res = await GetBizList(p)
|
||||||
|
if (res?.data?.length) state.historyRowKeys = [res.data[0].id]
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
resolve({ data: [...res.data], total: res.count })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
beforeFetch: () => {
|
||||||
|
var currentPageInfo: any = getPaginationRef()
|
||||||
|
var data = getForm().getFieldsValue()
|
||||||
|
const postParam = {
|
||||||
|
queryCondition: '',
|
||||||
|
pageCondition: {
|
||||||
|
pageIndex: currentPageInfo.current,
|
||||||
|
pageSize: currentPageInfo.pageSize,
|
||||||
|
sortConditions: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
let condition: API.ConditionItem[] = []
|
||||||
|
if (!!data.customerNo) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'customerNo',
|
||||||
|
FieldValue: data.customerNo,
|
||||||
|
ConditionalType: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.Etd) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'Etd',
|
||||||
|
FieldValue: data.Etd[0],
|
||||||
|
ConditionalType: 3
|
||||||
|
})
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'Etd',
|
||||||
|
FieldValue: data.Etd[1],
|
||||||
|
ConditionalType: 5
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.loadPort) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'loadPort',
|
||||||
|
FieldValue: data.loadPort,
|
||||||
|
ConditionalType: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!!data.dischargePort) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'dischargePort',
|
||||||
|
FieldValue: data.dischargePort,
|
||||||
|
ConditionalType: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
postParam.queryCondition = JSON.stringify(condition)
|
||||||
|
return postParam
|
||||||
|
},
|
||||||
|
columns: businessColumns,
|
||||||
|
formConfig: {
|
||||||
|
labelWidth: 120,
|
||||||
|
schemas: searchFormSchema
|
||||||
|
},
|
||||||
|
isTreeTable: false,
|
||||||
|
pagination: true,
|
||||||
|
striped: false,
|
||||||
|
useSearchForm: true,
|
||||||
|
showTableSetting: false,
|
||||||
|
bordered: true,
|
||||||
|
showIndexColumn: true,
|
||||||
|
canResize: false,
|
||||||
|
immediate: false
|
||||||
|
})
|
||||||
|
// 开关控制器
|
||||||
|
const visible = ref(false)
|
||||||
|
// 费用信息已选项
|
||||||
|
const state = reactive({
|
||||||
|
historyRowKeys: []
|
||||||
|
})
|
||||||
|
const feeTabel = ref(null)
|
||||||
|
const historyChange = (v) => {
|
||||||
|
state.historyRowKeys = v
|
||||||
|
}
|
||||||
|
// 行点击事件
|
||||||
|
const onRowClick = (record) => {
|
||||||
|
state.historyRowKeys = [record?.id]
|
||||||
|
}
|
||||||
|
const feeData = () => {
|
||||||
|
return feeTabel.value.selectfeeData
|
||||||
|
}
|
||||||
|
const addInfos = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
watch(() => state.historyRowKeys, (v) => {
|
||||||
|
if (v.length == 1) feeTabel.value.init(v, 'apply')
|
||||||
|
})
|
||||||
|
onMounted(() => {
|
||||||
|
//初始化
|
||||||
|
reload()
|
||||||
|
})
|
||||||
|
defineExpose({
|
||||||
|
feeData
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,139 @@
|
|||||||
|
<!--
|
||||||
|
* @Description: 操作管理 -> 付费申请 -> 详情布局
|
||||||
|
* @Author: lijj
|
||||||
|
* @Date: 2024-06-20 11:54:04
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<div class="ds-pay-apply-detail ds-detail-box">
|
||||||
|
<div>
|
||||||
|
<a-button @click="save">保存</a-button>
|
||||||
|
</div>
|
||||||
|
<!-- 表单区域 -->
|
||||||
|
<BasicForm @register="registerForm" />
|
||||||
|
<!-- 申请明细 -->
|
||||||
|
<div>
|
||||||
|
<ApplyInfo
|
||||||
|
@add="add"
|
||||||
|
:feeData="feeData"
|
||||||
|
></ApplyInfo>
|
||||||
|
</div>
|
||||||
|
<a-modal
|
||||||
|
class="fee-modal"
|
||||||
|
v-model:visible="visible"
|
||||||
|
title="添加支付结算明细"
|
||||||
|
width="90%"
|
||||||
|
okText="添加申请费用明细"
|
||||||
|
@ok="handleOk"
|
||||||
|
>
|
||||||
|
<!-- 业务表格 -->
|
||||||
|
<BusinessTable
|
||||||
|
ref="busTable"
|
||||||
|
></BusinessTable>
|
||||||
|
</a-modal>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { onMounted, ref } from 'vue'
|
||||||
|
import { BasicTable, useTable } from '/@/components/Table'
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage'
|
||||||
|
import { BasicForm, useForm } from '/@/components/Form'
|
||||||
|
import ApplyInfo from './components/applyInfo.vue'
|
||||||
|
// 业务表格
|
||||||
|
import BusinessTable from './components/businessTable.vue'
|
||||||
|
const { createMessage } = useMessage()
|
||||||
|
const visible = ref(false)
|
||||||
|
import { formSchema } from './columns'
|
||||||
|
const [registerForm, { validate }] = useForm({
|
||||||
|
labelWidth: 150,
|
||||||
|
schemas: formSchema,
|
||||||
|
showActionButtonGroup: false
|
||||||
|
})
|
||||||
|
const busTable = ref(null)
|
||||||
|
const feeData = ref([])
|
||||||
|
const handleOk = () => {
|
||||||
|
feeData.value = busTable.value.feeData()
|
||||||
|
visible.value = false
|
||||||
|
}
|
||||||
|
// const [registerTable, { reload, getForm, getPaginationRef, getSelectRows }] = useTable({
|
||||||
|
// title: '',
|
||||||
|
// api: async (p) => {
|
||||||
|
// const res = await GetList(p)
|
||||||
|
// return new Promise((resolve) => {
|
||||||
|
// resolve({ data: [...res.data], total: res.count })
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
// beforeFetch: () => {
|
||||||
|
// var currentPageInfo: any = getPaginationRef()
|
||||||
|
// var data = getForm().getFieldsValue()
|
||||||
|
// const postParam = {
|
||||||
|
// queryCondition: '',
|
||||||
|
// pageCondition: {
|
||||||
|
// pageIndex: currentPageInfo.current,
|
||||||
|
// pageSize: currentPageInfo.pageSize,
|
||||||
|
// sortConditions: [],
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
// let condition: API.ConditionItem[] = []
|
||||||
|
// if (!!data.UserName) {
|
||||||
|
// condition.push({
|
||||||
|
// FieldName: 'UserName',
|
||||||
|
// FieldValue: data.UserName,
|
||||||
|
// ConditionalType: 1,
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// if (!!data.UserCode) {
|
||||||
|
// condition.push({
|
||||||
|
// FieldName: 'UserCode',
|
||||||
|
// FieldValue: data.UserCode,
|
||||||
|
// ConditionalType: 1,
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// postParam.queryCondition = JSON.stringify(condition)
|
||||||
|
// // console.log(postParam);
|
||||||
|
// return postParam
|
||||||
|
// },
|
||||||
|
// columns,
|
||||||
|
// formConfig: {
|
||||||
|
// labelWidth: 120,
|
||||||
|
// schemas: searchFormSchema,
|
||||||
|
// },
|
||||||
|
// isTreeTable: false,
|
||||||
|
// pagination: true,
|
||||||
|
// striped: false,
|
||||||
|
// useSearchForm: true,
|
||||||
|
// showTableSetting: true,
|
||||||
|
// bordered: true,
|
||||||
|
// showIndexColumn: true,
|
||||||
|
// canResize: false,
|
||||||
|
// rowSelection: { type: 'checkbox' },
|
||||||
|
// immediate: false
|
||||||
|
// })
|
||||||
|
// 打开添加明细弹窗
|
||||||
|
const add = () => {
|
||||||
|
visible.value = true
|
||||||
|
}
|
||||||
|
// 保存
|
||||||
|
const save = () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
//初始化
|
||||||
|
// reload()
|
||||||
|
})
|
||||||
|
function handleSuccess() {
|
||||||
|
// reload()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
.ds-pay-apply {
|
||||||
|
.vben-basic-table-header__toolbar {
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.fee-modal {
|
||||||
|
.ant-modal-body {
|
||||||
|
padding-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue