szh-new
sunzehua 2 months ago
parent 041bef0e4d
commit 31444a5723

@ -166,7 +166,7 @@ export const formSchema: FormSchema[] = [
component: 'ApiSelect', component: 'ApiSelect',
required: false, required: false,
dynamicDisabled: false, dynamicDisabled: false,
colProps: { span: 4 }, colProps: { span: 6 },
componentProps: ({ formModel }) => { componentProps: ({ formModel }) => {
return { return {
api: GetCarrierSelectList, api: GetCarrierSelectList,
@ -178,7 +178,7 @@ export const formSchema: FormSchema[] = [
onChange: (e, obj) => { onChange: (e, obj) => {
if (e && obj) { if (e && obj) {
formModel.carrierId = obj.id formModel.carrierId = obj.id
formModel.carrierCode = obj.codeName formModel.carrierCode = obj.ediCode
} }
if (!e && !obj) { if (!e && !obj) {
formModel.carrierId = '' formModel.carrierId = ''

@ -352,8 +352,8 @@
<a-table :pagination="false" size="small" bordered :data-source="form.ctns" :columns="columns"> <a-table :pagination="false" size="small" bordered :data-source="form.ctns" :columns="columns">
<template #bodyCell="{ column, record, index }"> <template #bodyCell="{ column, record, index }">
<template v-if="column.dataIndex === 'ctnCode'"> <template v-if="column.dataIndex === 'ctnCode'">
<a-select show-search v-model:value="record.ctnCode" @change="handleCtnChange(record)" <a-select show-search @search="handleSearchCtn" v-model:value="record.ctnCode" @change="handleCtnChange(record)"
:filter-option="filterOption" size="small" style="width: 100%"> :filter-option="false" size="small" style="width: 100%">
<a-select-option v-for="(item, index) in ctnallList" :key="index" :value="item.ediCode"> <a-select-option v-for="(item, index) in ctnallList" :key="index" :value="item.ediCode">
{{ item.ctnName }} {{ item.ctnName }}
</a-select-option> </a-select-option>
@ -776,6 +776,11 @@ function getinitInfoMsk() {
mskApiInfo.value = res.data mskApiInfo.value = res.data
}) })
} }
function handleSearchCtn(val){
GetCtnSelectList({queryKey:val}).then(res => {
ctnallList.value = res.data
})
}
const mskType = ref('') const mskType = ref('')
const mskNumber = ref(null) const mskNumber = ref(null)
const mskCopyId = ref('') const mskCopyId = ref('')
@ -796,8 +801,8 @@ function init(id, type, number, copyId) {
if (!id) { if (!id) {
form.value = { form.value = {
ctns: [ ctns: [
{ ctnSufferWeight: 15000, ctnNum: 1, ctnCode: '22G1', ctnName: '20GP' }, { ctnSufferWeight: 15000, ctnNum: 1, ctnCode: '20G0', ctnName: '20GP' },
{ ctnSufferWeight: 15000, ctnNum: 1, ctnCode: '45G11', ctnName: '40HC' } { ctnSufferWeight: 15000, ctnNum: 1, ctnCode: '45G0', ctnName: '40HC' }
], ],
isReefer: false, isReefer: false,
productCode: 'MaerskContract', productCode: 'MaerskContract',
@ -861,7 +866,7 @@ function spotInit(id, type, number, copyId) {
if (!id) { if (!id) {
form.value = { form.value = {
ctns: [ ctns: [
{ ctnSufferWeight: 18000, ctnNum: 1, ctnCode: '45G11', ctnName: '40HC' } { ctnSufferWeight: 18000, ctnNum: 1, ctnCode: '45G0', ctnName: '40HC' }
], ],
isReefer: false, isReefer: false,
productCode: 'MaerskSpot', productCode: 'MaerskSpot',

@ -0,0 +1,27 @@
import { request } from '/@/utils/request'
// 获取列表 (Auth)
export function GetList(parameter) {
return request({
url: '/feeApi/InvoiceApplicationAudit/GetList',
method: 'post',
data: parameter,
})
}
export function InvoiceApplicationGet(parameter) {
return request({
url: '/feeApi/InvoiceApplication/Get',
method: 'get',
params: parameter,
})
}
export function Audit(parameter) {
return request({
url: '/feeApi/InvoiceApplicationAudit/Audit',
method: 'post',
data: parameter,
})
}

@ -0,0 +1,257 @@
import { ref } from 'vue'
import { BasicColumn, FormSchema } from '/@/components/Table'
import { getOptions } from '/@/hooks/dict'
export const billTypeData = [
{ value: '', label: '全部' },
{ value: 1, label: '待审核' },
{ value: 2, label: '已审核' },
]
export const searchFormSchema: FormSchema[] = [
{
field: 'applicationNO',
label: '编号检索',
component: 'Input',
colProps: { span: 4 },
},
{
field: 'applicationNO',
label: '购方抬头',
component: 'Input',
colProps: { span: 4 },
},
{
field: 'createByName',
label: '销方公司',
component: 'Input',
colProps: { span: 4 },
},
{
field: 'applyDate',
label: '开票日期',
component: 'RangePicker',
required: false,
dynamicDisabled: false,
colProps: { span: 4 },
componentProps: {
allowClear: true,
},
},
]
//列表
export const columns: BasicColumn[] = [
{
title: '申请单号',
dataIndex: 'applicationNO',
width: 120,
align: 'left',
},
{
title: '状态',
dataIndex: 'statusText',
width: 70,
align: 'left',
},
{
title: '委托单位',
dataIndex: 'customerName',
width: 100,
align: 'left',
},
{
title: '发票抬头',
dataIndex: 'invoiceHeader',
width: 100,
align: 'left',
},
{
title: '发票币别',
dataIndex: 'currency',
width: 100,
align: 'left',
},
{
title: '申请方式',
dataIndex: 'categoryText',
width: 100,
align: 'left',
},
{
title: '原币金额',
dataIndex: 'originalAmount',
width: 100,
align: 'left',
},
{
title: '申请人',
dataIndex: 'createByName',
width: 100,
align: 'left',
},
{
title: '申请开票日期',
dataIndex: 'applyDate',
width: 100,
align: 'left',
},
{
title: '申请类型',
dataIndex: 'categoryText',
width: 100,
align: 'left',
},
{
title: '申请时间',
dataIndex: 'createTime',
width: 100,
align: 'left',
},
{
title: '开票税率',
dataIndex: 'taxRate',
width: 100,
align: 'left',
},
{
title: '发票号',
dataIndex: 'invoiceNO',
width: 100,
align: 'left',
},
]
//列表
export const detailColumns: BasicColumn[] = [
{
title: '货物或业务应税劳动名称',
dataIndex: 'name',
width: 120,
align: 'left',
},
{
title: '规格型号',
dataIndex: 'specification',
width: 70,
align: 'left',
},
{
title: '单位',
dataIndex: 'unit',
width: 100,
align: 'left',
},
{
title: '数量',
dataIndex: 'quantity',
width: 100,
align: 'left',
},
{
title: '含税单价',
dataIndex: 'taxUnitPrice',
width: 100,
align: 'left',
},
{
title: '单价',
dataIndex: 'unitPrice',
width: 100,
align: 'left',
},
{
title: '金额',
dataIndex: 'amount',
width: 100,
align: 'left',
},
{
title: '税率',
dataIndex: 'taxRate',
width: 100,
align: 'left',
},
{
title: '税额',
dataIndex: 'taxAmount',
width: 100,
align: 'left',
}
]
export const feeColumns: BasicColumn[] = [
{
title: '委托编号',
dataIndex: 'customerNo',
width: 100,
},
{
title: '主提单号',
dataIndex: 'mblno',
width: 100,
},
{
title: '委托单位',
dataIndex: 'customerName',
width: 100,
},
{
title: '开船日期',
dataIndex: 'etd',
width: 150,
},
{
title: '业务来源',
dataIndex: 'sourceName',
width: 80,
},
{
title: '费用名称',
dataIndex: 'feeName',
width: 80,
},
{
title: '收付',
dataIndex: 'feeType',
width: 50,
},
{
title: '申请金额',
dataIndex: 'amount',
width: 80,
},
{
title: '原始币别',
dataIndex: 'originalCurrency',
width: 80,
},
{
title: '原始汇率',
dataIndex: 'originalRate',
width: 80,
},
{
title: '折算汇率',
dataIndex: 'exchangeRate',
width: 80,
},
]
export const feeColumnsSum: BasicColumn[] = [
{
title: '收付',
dataIndex: 'feeType',
width: 100,
},
{
title: '币别',
dataIndex: 'currency',
width: 100,
},
{
title: '金额',
dataIndex: 'amount',
width: 100,
},
]

@ -1,3 +1,74 @@
<template> <template>
123 <div class="main">
<BasicTable class="ds-table" @register="registerTable">
<template #tableTitle>
</template>
<template v-slot:bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction :actions="[
{
icon: 'clarity:note-edit-line',
tooltip: '编辑',
onClick: () => {
GoDetailed(true, record)
},
},
]" />
</template>
</template>
</BasicTable>
</div>
</template> </template>
<script setup lang="ts">
import { ref, reactive, onMounted, defineExpose, computed } from 'vue'
import { GetList, InvoiceApplicationGet, Audit } from './api.js'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { formatParams } from '/@/hooks/web/common'
import { columns, searchFormSchema, detailColumns, feeColumns, feeColumnsSum } from './columns'
import { useMessage } from '/@/hooks/web/useMessage'
const { createMessage } = useMessage()
const [registerTable, { reload, getPaginationRef, getSelectRows, getRawDataSource }] = useTable({
api: async (p) => {
const res: API.DataResult = await GetList(p)
return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count })
})
},
beforeFetch: (p) => {
return formatParams(p)
},
columns,
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
useAdvancedSearch: true,
},
isTreeTable: false,
pagination: true,
striped: true,
useSearchForm: true,
showTableSetting: true,
bordered: true,
showIndexColumn: true,
indexColumnProps: {
width: 60,
},
canResize: true,
immediate: true,
actionColumn: {
width: 80,
title: '操作',
dataIndex: 'action',
fixed: 'right',
},
})
</script>
<style lang="less" scoped>
</style>

@ -19,10 +19,11 @@ export function GetPageAsync(parameter) {
}) })
} }
// 获取所有用户下拉 // 获取所有用户下拉
export function GetUserListAll() { export function GetUserListAll(parameter) {
return request<DataResult>({ return request<DataResult>({
url: '/mainApi/Common/GetUserList', url: '/mainApi/Common/GetUserList',
method: 'get' method: 'get',
params: parameter
}) })
} }

@ -368,7 +368,8 @@
mode="multiple" mode="multiple"
show-search show-search
style="width: 100%; margin-bottom: 30px" style="width: 100%; margin-bottom: 30px"
:filter-option="filterOption" :filter-option="false"
@search="handleSearch"
v-model:value="UserId" v-model:value="UserId"
> >
<a-select-option v-for="item in UserList" :label="item.label" :key="item.value" :value="item.value"> <a-select-option v-for="item in UserList" :label="item.label" :key="item.value" :value="item.value">
@ -759,7 +760,7 @@
createMessage.error('请选择数据') createMessage.error('请选择数据')
return false return false
} }
GetUserListAll().then((res) => { GetUserListAll({queryKey:''}).then((res) => {
UserList.value = res.data UserList.value = res.data
}) })
UserId.value = [] UserId.value = []
@ -955,7 +956,12 @@
fixed: 'right', fixed: 'right',
}, },
}) })
function handleSearch(val) {
GetUserListAll({queryKey:val}).then((res) => {
UserList.value = res.data
})
console.log(val)
}
function handleNext() { function handleNext() {
activeNextKey.value = '' activeNextKey.value = ''
getCurrentTotalStat() getCurrentTotalStat()

Loading…
Cancel
Save