diff --git a/src/design/public.less b/src/design/public.less index aec647b3..0727729e 100644 --- a/src/design/public.less +++ b/src/design/public.less @@ -135,7 +135,7 @@ h5 { } .ds-detail-box { - margin: 0 0 0 20px; + margin: 0 20px; } .flex { diff --git a/src/views/baseinfo/formset/index.vue b/src/views/baseinfo/formset/index.vue index 652798bf..211f7f7a 100644 --- a/src/views/baseinfo/formset/index.vue +++ b/src/views/baseinfo/formset/index.vue @@ -88,6 +88,7 @@ // 任务状态字典 const taskTypeDict = ref([]) getDictOption('SeaTaskType').then((res) => { + res.unshift({ label: '默认', value: 'NORMAL' }) taskTypeDict.value = res }) const [registerModal, { openModal }] = useModal() diff --git a/src/views/finance/paymentSettlement/api.ts b/src/views/finance/paymentSettlement/api.ts index 2962b2dc..1296c0f0 100644 --- a/src/views/finance/paymentSettlement/api.ts +++ b/src/views/finance/paymentSettlement/api.ts @@ -9,8 +9,10 @@ import { DataResult, PageRequest } from '/@/api/model/baseModel' enum Api { list = '/feeApi/PaymentSettlement/GetList', edit = '/mainApi/MappingYard/EditMappingYard', - info = '/mainApi/MappingYard/GetMappingYardInfo', - delete = '/mainApi/MappingYard/BatchDelMappingYard' + info = '/feeApi/PaymentSettlement/Get', + delete = '/mainApi/MappingYard/BatchDelMappingYard', + GetApplicationList = '/feeApi/PaymentSettlement/GetApplicationList', + GetApplicationDetailsById = '/feeApi/PaymentSettlement/GetApplicationDetailsById' } // 列表 (Auth) export function GetList(data: PageRequest) { @@ -29,11 +31,11 @@ export function EditMappingYard(data: PageRequest) { }) } // 详情 (Auth) -export function GetMappingYardInfo(query) { +export function Get(params) { return request({ url: Api.info, method: 'get', - params: query + params }) } @@ -44,4 +46,21 @@ export function BatchDelMappingYard(data: PageRequest) { method: 'post', data }) -} \ No newline at end of file +} + +// 付费申请通过列表 +export function GetApplicationList(data: PageRequest) { + return request({ + url: Api.GetApplicationList, + method: 'post', + data + }) +} + +export function GetApplicationDetailsById(params) { + return request({ + url: Api.GetApplicationDetailsById, + method: 'get', + params + }) +} diff --git a/src/views/finance/paymentSettlement/detail/columns.tsx b/src/views/finance/paymentSettlement/detail/columns.tsx new file mode 100644 index 00000000..b6c52c41 --- /dev/null +++ b/src/views/finance/paymentSettlement/detail/columns.tsx @@ -0,0 +1,528 @@ +/* + * @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 { useRoute } from 'vue-router' +const route = useRoute() +import { GetClientListByCode, getOrgList, GetClientBank, GetFeeCurrencySelectList } from '/@/api/common' +// 引入字典数据 +import { getDictOption } from '/@/utils/dictUtil' +import { placeholderSign } from 'element-plus/es/components/table-v2/src/private' + +// 业务表格列 +export const businessColumns: BasicColumn[] = [ + { + title: '申请单号', + dataIndex: 'applicationNO', + width: 120, + align: 'left' + }, + { + title: '状态', + dataIndex: 'statusText', + width: 100, + align: 'left' + }, + { + title: '结算单位', + dataIndex: 'customerName', + width: 120, + align: 'left' + }, + { + title: '客户银行', + dataIndex: 'customerBankName', + width: 120, + align: 'left' + }, + { + title: '银行账号', + dataIndex: 'customerAccount', + width: 120, + align: 'left' + }, + { + title: 'RMB申请金额', + dataIndex: 'amountRMB', + width: 100, + align: 'left' + }, + { + title: 'RMB未结金额', + dataIndex: 'unSettledRMB', + width: 100, + align: 'left' + }, + { + title: 'RMB本次结算', + dataIndex: 'settlementRMB', + width: 100, + align: 'left' + }, + { + title: 'USD申请金额', + dataIndex: 'amountUSD', + width: 100, + align: 'left' + }, + { + title: 'USD未结金额', + dataIndex: 'unSettledUSD', + width: 100, + align: 'left' + }, + { + title: 'USD本次结算', + dataIndex: 'settlementUSD', + width: 100, + align: 'left' + }, + { + title: '申请日期', + dataIndex: 'createTime', + width: 100, + align: 'left' + }, + { + title: '申请人', + dataIndex: 'createByName', + width: 100, + align: 'left' + }, + { + title: '申请支付日期', + dataIndex: 'paymentDate', + width: 100, + align: 'left' + }, + { + title: '结算方式', + dataIndex: 'settlementTypeName', + width: 100, + align: 'left' + }, + { + title: '审核实付金额', + dataIndex: 'payAmount', + width: 100, + align: 'left' + }, + { + title: '审核时间', + dataIndex: 'auditTime', + width: 100, + align: 'left' + }, + { + title: '审核人', + dataIndex: 'auditerName', + width: 100, + align: 'left' + }, + { + title: '所属分部', + dataIndex: 'saleDeptName', + width: 120, + align: 'left' + } +] + +// 费用表格 +export const feeColumns: BasicColumn[] = [ + +] + +export const formSchema: FormSchema[] = [ + { + field: 'id', + label: 'id', + component: 'Input', + show: false + }, + { + field: 'customerName', + label: '结算单位', + component: 'ApiSelect', + required: false, + dynamicDisabled: ({ values }) => { + return !!values.id + }, + colProps: { span: 4 }, + componentProps: ({ formModel }) => { + return { + api: GetClientListByCode, + labelField: 'pinYinCode', + valueField: 'shortName', + showName: 'shortName', + resultField: 'data', + immediate: false, + onChange: (e, obj) => { + if (e && obj) { + formModel.customerId = obj.id + } + if (!e && !obj) { + formModel.customerId = '' + } + }, + } + } + }, + { + label: '', + field: 'customerId', + component: 'Input', + show: false + }, + { + field: 'settlementDate', + label: '结算日期', + component: 'DatePicker', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: { + allowClear: true + } + }, + { + label: '结算人id', + field: 'settlerId', + component: 'Input', + show: false, + }, + { + label: '结算人', + field: 'settlerName', + component: 'Input', + required: false, + colProps: { span: 4 }, + dynamicDisabled: true + }, + { + field: 'currency', + label: '币别/金额', + component: 'Input', + dynamicDisabled: true, + colProps: { span: 4 } + }, + { + field: 'settlementTypeId', + label: '结算方式', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + 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: 'exchangeRate', + label: '汇率', + component: 'InputNumber', + dynamicDisabled: true, + colProps: { span: 4 }, + componentProps: { + min: 0, + precision: 6 + } + }, + { + field: 'line1', + component: 'Divider', + colProps: { + span: 24 + } + }, + { + field: 'customerBankName', + label: '客户银行', + component: 'ApiSelect', + required: false, + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: ({ formModel }) => { + return { + api: GetClientBank, + params: { + id: formModel.customerId + }, + labelField: 'bankName', + valueField: 'id', + resultField: 'data', + immediate: false, + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }, + onChange: (e, obj) => { + console.log(obj) + if (e && obj) { + formModel.customerBankId = obj.value + formModel.customerAccount = obj.bankAccountNo + } + if (!e && !obj) { + formModel.customerBankId = null + formModel.customerBankName = null + formModel.customerAccount = null + } + } + } + } + }, + { + field: 'customerBankId', + label: '', + component: 'Input', + show: false + }, + { + field: 'customerAccount', + label: '银行账号', + component: 'Input', + required: false, + dynamicDisabled: false, + colProps: { span: 4 } + }, + { + field: 'relativeNO', + label: '相关号码', + component: 'InputNumber', + dynamicDisabled: true, + colProps: { span: 4 } + }, + { + field: 'ledgerVoucherNO', + label: '总账凭证号', + component: 'InputNumber', + dynamicDisabled: true, + colProps: { span: 4 } + }, + { + label: '所属分部', + field: 'saleOrgName', + component: 'ApiSelect', + required: false, + colProps: { span: 4 }, + calssName: 'saleOrgId', + componentProps: ({ formModel }) => { + return { + api: getOrgList, + labelField: 'label', + valueField: 'id', + resultField: 'data', + immediate: false, + onChange: (e, obj) => { + if (e && obj) { + formModel.saleOrgName = obj.label + formModel.saleOrgId = obj.id + } + if (!e && !obj) { + formModel.saleOrgName = null + formModel.saleOrgId = null + } + } + } + }, + }, + { + field: 'saleDeptId', + label: '', + component: 'Input', + show: false, + }, + { + field: 'invoiceNO', + label: '发票号', + component: 'InputNumber', + colProps: { span: 4 }, + componentProps: { + min: 0, + precision: 2 + } + }, + { + field: 'invoiceDate', + label: '发票日期', + component: 'DatePicker', + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: { + showTime: true, + allowClear: true, + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD' + } + }, + { + field: 'invoiceAmount', + label: '发票金额', + component: 'InputNumber', + colProps: { span: 4 }, + componentProps: { + min: 0, + precision: 2 + } + }, +// { +// field: 'currency', +// label: '币别', +// component: 'ApiSelect', +// required: false, +// dynamicDisabled: ({ values }) => { +// return !!values.id +// }, +// defaultValue: null, +// colProps: { span: 4 }, +// componentProps: () => { +// return { +// option: optionsStore.getOptionsByCode('GetFeeCurrencySelectList'), +// labelField: 'name', +// valueField: 'codeName', +// placeholder: '原币申请', +// resultField: 'data', +// immediate: false, +// filterOption: (input: string, option: any) => { +// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 +// } +// } +// } +// }, + { + field: 'line2', + component: 'Divider', + colProps: { + span: 24 + } + }, + { + field: 'note', + label: '备注', + component: 'InputTextArea', + required: false, + // defaultValue: '', + colProps: { span: 12 }, + componentProps: { + autoSize: { minRows: 3, maxRows: 3 }, + } + } +] +export const searchFormSchema: FormSchema[] = [ + { + label: '费用对象', + field: 'customerId', + component: 'ApiSelect', + dynamicDisabled: false, + colProps: { span: 4 }, + componentProps: () => { + return { + api: GetClientListByCode, + labelField: 'pinYinCode', + showName: 'shortName', + valueField: 'id', + resultField: 'data', + immediate: false + } + } + }, + { + label: '编号查询', + field: 'mblno:hblno:debitNo:hblno:bookingNO:customerNo', + component: 'Input', + dynamicDisabled: false, + colProps: { span: 4 } + }, + { + label: '编号查询', + field: 'mblno:hblno:debitNo', + component: 'Input', + dynamicDisabled: false, + colProps: { span: 4 } + }, + { + field: 'accountDate', + label: '会计期间', + component: 'DatePicker', + colProps: { span: 4 }, + componentProps: { + allowClear: true, + valueFormat: 'YYYY-MM' + } + }, + { + field: 'isInvoice', + label: '是否开票', + component: 'Select', + colProps: { span: 4 }, + componentProps: { + options: [ + { label: '是', value: true }, + { label: '否', value: false } + ] + } + }, + { + field: 'isAdvancedPay', + label: '是否垫付', + component: 'Select', + colProps: { span: 4 }, + componentProps: { + options: [ + { label: '是', value: true }, + { label: '否', value: false } + ] + } + }, + { + label: '所属分部', + field: 'saleOrgId', + component: 'ApiSelect', + required: false, + colProps: { span: 4 }, + componentProps: () => { + return { + api: getOrgList, + labelField: 'label', + valueField: 'id', + resultField: 'data', + immediate: false + } + } + } +] + +export const currencyFormSchema: FormSchema[] = [ + { + field: 'currency', + label: '结算币别:', + defaultValue: null, + component: 'ApiSelect', + colProps: { span: 5 }, + placeholder: '原币结算', + componentProps: () => { + return { + allowClear: true, + showSearch: true, + option: optionsStore.getOptionsByCode('GetFeeCurrencySelectList'), + labelField: 'codeName', + valueField: 'codeName', + filterOption: (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 + } + } + } + } +] diff --git a/src/views/finance/paymentSettlement/detail/components/applyInfo.vue b/src/views/finance/paymentSettlement/detail/components/applyInfo.vue new file mode 100644 index 00000000..11cf6380 --- /dev/null +++ b/src/views/finance/paymentSettlement/detail/components/applyInfo.vue @@ -0,0 +1,193 @@ + + + + + \ No newline at end of file diff --git a/src/views/finance/paymentSettlement/detail/components/applyInfoColumns.tsx b/src/views/finance/paymentSettlement/detail/components/applyInfoColumns.tsx new file mode 100644 index 00000000..199e1925 --- /dev/null +++ b/src/views/finance/paymentSettlement/detail/components/applyInfoColumns.tsx @@ -0,0 +1,106 @@ +/* + * @Author: lijingjia lijj_xl@163.com + * @Date: 2024-06-21 16:59:01 + * @Description: + */ +import { commentProps } from 'ant-design-vue/lib/comment' +import { BasicColumn, FormSchema } from '/@/components/Table' +export const columns: BasicColumn[] = [ + { + title: '委托编号', + dataIndex: 'customerNo', + width: 120, + }, + { + title: '主提单号', + dataIndex: 'mblno', + width: 120, + }, + { + title: '委托单位', + dataIndex: 'customerName', + width: 140, + }, + { + title: '开船日期', + dataIndex: 'etd', + width: 90, + }, + { + title: '业务来源', + dataIndex: 'sourceName', + width: 120, + }, + { + title: '费用名称', + dataIndex: 'feeName', + width: 150, + }, + { + title: '收付', + dataIndex: 'feeType', + width: 80, + customRender: ({ text }) => { + if (text === 1) { + return '应收' + } else if (text === 2) { + return '应付' + } + return text + }, + }, + { + title: '费用对象', + dataIndex: 'customerName', + width: 110, + }, + { + title: '申请金额', + dataIndex: 'amount', + width: 100, + }, + { + title: '原始币别', + dataIndex: 'originalCurrency', + width: 100, + }, +// { +// title: '原始汇率', +// dataIndex: 'originalCurrency', +// width: 200, +// }, + { + title: '折算汇率', + dataIndex: 'exchangeRate', + width: 100, + }, + { + 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 } + } +] diff --git a/src/views/finance/paymentSettlement/detail/components/businessTable.vue b/src/views/finance/paymentSettlement/detail/components/businessTable.vue new file mode 100644 index 00000000..155e9ea7 --- /dev/null +++ b/src/views/finance/paymentSettlement/detail/components/businessTable.vue @@ -0,0 +1,388 @@ + + + + + \ No newline at end of file diff --git a/src/views/finance/paymentSettlement/detail/components/feeTable.vue b/src/views/finance/paymentSettlement/detail/components/feeTable.vue new file mode 100644 index 00000000..8053701b --- /dev/null +++ b/src/views/finance/paymentSettlement/detail/components/feeTable.vue @@ -0,0 +1,88 @@ + + + + + \ No newline at end of file diff --git a/src/views/finance/paymentSettlement/detail/index.vue b/src/views/finance/paymentSettlement/detail/index.vue index 5c84faa8..2b44aa05 100644 --- a/src/views/finance/paymentSettlement/detail/index.vue +++ b/src/views/finance/paymentSettlement/detail/index.vue @@ -11,8 +11,7 @@ code="sea_freight_export" name="hyck" :save="save" - :submit="submit" - :delete="deleteItem" + :delete="deleteRow" :showBtns="['create', 'save', 'delete', 'print']" layout="horizontal" > @@ -42,55 +41,76 @@ --> +
+ +
+ +
+ +
+ +
+
+ + + + +