07/15
parent
7e6621f4e3
commit
4be3791139
@ -0,0 +1,56 @@
|
||||
// @ts-ignore
|
||||
import { request } from '/@/utils/request'
|
||||
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||
enum Api {
|
||||
list = '/financeApi/BusinessLocking/GetBusinessLockingList',
|
||||
|
||||
BLocking = '/financeApi/BusinessLocking/BusinessLocking',
|
||||
BUnLocking = '/financeApi/BusinessLocking/BusinessUnLocking',
|
||||
|
||||
FLocking = '/financeApi/BusinessLocking/FeeLocking',
|
||||
FUnLocking = '/financeApi/BusinessLocking/FeeUnLocking',
|
||||
}
|
||||
// 列表 (Auth)
|
||||
export function ApiList(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.list,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 业务锁定 (Auth)
|
||||
export function ApiBLocking(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.BLocking,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 业务解除锁定 (Auth)
|
||||
export function ApiBUnLocking(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.BUnLocking,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 费用锁定 (Auth)
|
||||
export function ApiFLocking(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.FLocking,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 费用解除锁定 (Auth)
|
||||
export function ApiFUnLocking(data: PageRequest) {
|
||||
return request<DataResult>({
|
||||
url: Api.FUnLocking,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
@ -0,0 +1,487 @@
|
||||
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||
import { Tag } from 'ant-design-vue'
|
||||
export const columns: BasicColumn[] = [
|
||||
{
|
||||
title: '主提单号',
|
||||
dataIndex: 'mblno',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '是否业务锁定',
|
||||
dataIndex: 'isBusinessLocking',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
if (text) {
|
||||
return <Tag color="success">是</Tag>
|
||||
} else {
|
||||
return <Tag color="error">否</Tag>
|
||||
}
|
||||
return text
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '是否费用锁定',
|
||||
dataIndex: 'isFeeLocking',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
customRender: ({ text }) => {
|
||||
if (text) {
|
||||
return <Tag color="success">是</Tag>
|
||||
} else {
|
||||
return <Tag color="error">否</Tag>
|
||||
}
|
||||
return text
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '单据类型',
|
||||
dataIndex: 'businessTypeName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '业务状态',
|
||||
dataIndex: 'businessStatus',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
|
||||
{
|
||||
title: '分提单号',
|
||||
dataIndex: 'hblno',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '委托编号',
|
||||
dataIndex: 'customerNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '委托单位',
|
||||
dataIndex: 'customerName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '装运方式',
|
||||
dataIndex: 'blType',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '场站',
|
||||
dataIndex: 'yard',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '船名',
|
||||
dataIndex: 'vessel',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '航次',
|
||||
dataIndex: 'voyno',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '开船日期',
|
||||
dataIndex: 'etd',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '预抵日期',
|
||||
dataIndex: 'eta',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: 'ATD',
|
||||
dataIndex: 'atd',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: 'ATA',
|
||||
dataIndex: 'ata',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '截港日期',
|
||||
dataIndex: 'closingDate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '收货地',
|
||||
dataIndex: 'receiptPlace',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '装货港',
|
||||
dataIndex: 'loadPort',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '卸货港',
|
||||
dataIndex: 'dischargePort',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '目的地',
|
||||
dataIndex: 'destination',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '签单方式',
|
||||
dataIndex: 'issueType',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '运输条款 ',
|
||||
dataIndex: 'service',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '箱号封号',
|
||||
dataIndex: 'cntrSealNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '品名',
|
||||
dataIndex: 'goodsName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '件数',
|
||||
dataIndex: 'pkgs',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '包装',
|
||||
dataIndex: 'kindPkgs',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '毛重',
|
||||
dataIndex: 'kgs',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '尺码',
|
||||
dataIndex: 'cbm',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '箱TEU',
|
||||
dataIndex: 'teu',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '集装箱',
|
||||
dataIndex: 'cntrTotal',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '客服',
|
||||
dataIndex: 'customerService',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '外国客服',
|
||||
dataIndex: 'foreignCustomerService',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '航线',
|
||||
dataIndex: 'lane',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '揽货人',
|
||||
dataIndex: 'sale',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '船公司',
|
||||
dataIndex: 'carrier',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '货代公司',
|
||||
dataIndex: 'forwarder',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '承运车队',
|
||||
dataIndex: 'trucker',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '发票号',
|
||||
dataIndex: 'invoiceNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '危险品分类',
|
||||
dataIndex: 'dangerClass',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '报关票数',
|
||||
dataIndex: 'customsNum',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '运费协议号',
|
||||
dataIndex: 'contractNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '订舱编号',
|
||||
dataIndex: 'bookingNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '是否生成凭证',
|
||||
dataIndex: 'isVoucher',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '凭证号',
|
||||
dataIndex: 'voucherNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '单证',
|
||||
dataIndex: 'doc',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '截单日期',
|
||||
dataIndex: 'closeDocDate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: 'MBL付费方式',
|
||||
dataIndex: 'mblFrt',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '结算方式',
|
||||
dataIndex: 'stlName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '月结算时间',
|
||||
dataIndex: 'stlDate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '订舱编号',
|
||||
dataIndex: 'orderNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '服务合同号',
|
||||
dataIndex: 'serviceContractNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '申请放箱号',
|
||||
dataIndex: 'applyNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '报关单号',
|
||||
dataIndex: 'customNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '商检单号',
|
||||
dataIndex: 'inspectionNo',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '商检日期',
|
||||
dataIndex: 'inspectionDate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '贸易条款',
|
||||
dataIndex: 'tradeTerm',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '船代',
|
||||
dataIndex: 'shipAgency',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '是否打印小票',
|
||||
dataIndex: 'isPrintReceipt',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '交货日期',
|
||||
dataIndex: 'deliveryDate',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
dataIndex: 'createTime',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '销售人',
|
||||
dataIndex: 'saleName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '操作人员',
|
||||
dataIndex: 'operatorName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '应收开票状态',
|
||||
dataIndex: 'arInvoiceStatus',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '应付开票状态',
|
||||
dataIndex: 'apInvoiceStatus',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '应收对账状态',
|
||||
dataIndex: 'arCheckStatus',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
|
||||
{
|
||||
title: '整单费用状态时间',
|
||||
dataIndex: 'billFeeStatusTime',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '业务锁定人',
|
||||
dataIndex: 'businessLockingUserName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '业务锁定时间',
|
||||
dataIndex: 'businessLockingTime',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '业务解锁人',
|
||||
dataIndex: 'businessUnLockingUserName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '业务解锁时间',
|
||||
dataIndex: 'businessUnLockingTime',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '费用锁定人',
|
||||
dataIndex: 'feeLockingUserName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '费用锁定时间',
|
||||
dataIndex: 'feeLockingTime',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '用解锁人',
|
||||
dataIndex: 'feeUnLockingUserName',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: '费用解锁时间',
|
||||
dataIndex: 'feeUnLockingTime',
|
||||
sorter: true,
|
||||
width: 150,
|
||||
},
|
||||
]
|
||||
|
||||
export const searchFormSchema: FormSchema[] = [
|
||||
{
|
||||
field: 'mblno',
|
||||
label: '主提单号',
|
||||
component: 'Input',
|
||||
colProps: { span: 6 },
|
||||
},
|
||||
]
|
@ -0,0 +1,160 @@
|
||||
<template>
|
||||
<div>
|
||||
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handleAudit">
|
||||
<template #tableTitle>
|
||||
<a-button type="link" @click="BLocking">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
业务锁定
|
||||
</a-button>
|
||||
<a-button type="link" @click="BUnLocking">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
解除业务锁定
|
||||
</a-button>
|
||||
<a-button type="link" @click="FLocking">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
费用锁定
|
||||
</a-button>
|
||||
<a-button type="link" @click="FUnLocking">
|
||||
<span class="iconfont icon-new_document"></span>
|
||||
解除费用锁定
|
||||
</a-button>
|
||||
</template>
|
||||
</BasicTable>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { BasicTable, useTable } from '/@/components/Table'
|
||||
import { ApiList, ApiBLocking, ApiBUnLocking, ApiFLocking, ApiFUnLocking } from './api'
|
||||
import { columns, searchFormSchema } from './columns'
|
||||
import { useMessage } from '/@/hooks/web/useMessage'
|
||||
const { notification } = useMessage()
|
||||
const [registerTable, { reload, getSelectRows }] = useTable({
|
||||
title: '业务锁定列表',
|
||||
api: async (p) => {
|
||||
const res: API.DataResult = await ApiList(p)
|
||||
return new Promise((resolve) => {
|
||||
resolve({ data: [...res.data], total: res.count })
|
||||
})
|
||||
},
|
||||
beforeFetch: (p) => {
|
||||
const postParam: API.PageRequest = {
|
||||
queryCondition: '',
|
||||
pageCondition: {
|
||||
pageIndex: p.current,
|
||||
pageSize: p.pageSize,
|
||||
sortConditions: [],
|
||||
},
|
||||
}
|
||||
if (p.field) {
|
||||
postParam.pageCondition.sortConditions = [
|
||||
{
|
||||
sortField: p.field,
|
||||
listSortDirection: p.order == 'ascend' ? 0 : 1,
|
||||
},
|
||||
]
|
||||
} else {
|
||||
postParam.pageCondition.sortConditions = []
|
||||
}
|
||||
let condition: API.ConditionItem[] = []
|
||||
if (!!p.mblno) {
|
||||
condition.push({
|
||||
FieldName: 'mblno',
|
||||
FieldValue: p.mblno,
|
||||
ConditionalType: 1,
|
||||
})
|
||||
}
|
||||
postParam.queryCondition = JSON.stringify(condition)
|
||||
return postParam
|
||||
},
|
||||
columns,
|
||||
formConfig: {
|
||||
labelWidth: 120,
|
||||
schemas: searchFormSchema,
|
||||
},
|
||||
isTreeTable: false,
|
||||
pagination: true,
|
||||
striped: true,
|
||||
useSearchForm: true,
|
||||
showTableSetting: true,
|
||||
bordered: true,
|
||||
showIndexColumn: true,
|
||||
indexColumnProps: {
|
||||
width: 60,
|
||||
},
|
||||
canResize: true,
|
||||
resizeHeightOffset: 35,
|
||||
immediate: true,
|
||||
})
|
||||
function BLocking() {
|
||||
if (getSelectRows().length) {
|
||||
const ids = getSelectRows().map((res) => {
|
||||
return res.id
|
||||
})
|
||||
const ApiData = {
|
||||
ids,
|
||||
}
|
||||
ApiBLocking(ApiData).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
reload()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notification.warning({ message: '请至少选择一条数据', duration: 3 })
|
||||
}
|
||||
}
|
||||
function BUnLocking() {
|
||||
if (getSelectRows().length) {
|
||||
const ids = getSelectRows().map((res) => {
|
||||
return res.id
|
||||
})
|
||||
const ApiData = {
|
||||
ids,
|
||||
}
|
||||
ApiBUnLocking(ApiData).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
reload()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notification.warning({ message: '请至少选择一条数据', duration: 3 })
|
||||
}
|
||||
}
|
||||
function FLocking() {
|
||||
if (getSelectRows().length) {
|
||||
const ids = getSelectRows().map((res) => {
|
||||
return res.id
|
||||
})
|
||||
const ApiData = {
|
||||
ids,
|
||||
}
|
||||
ApiFLocking(ApiData).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
reload()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notification.warning({ message: '请至少选择一条数据', duration: 3 })
|
||||
}
|
||||
}
|
||||
function FUnLocking() {
|
||||
if (getSelectRows().length) {
|
||||
const ids = getSelectRows().map((res) => {
|
||||
return res.id
|
||||
})
|
||||
const ApiData = {
|
||||
ids,
|
||||
}
|
||||
ApiFUnLocking(ApiData).then((res) => {
|
||||
if (res.succeeded) {
|
||||
notification.success({ message: res.message, duration: 3 })
|
||||
reload()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
notification.warning({ message: '请至少选择一条数据', duration: 3 })
|
||||
}
|
||||
}
|
||||
</script>
|
@ -1,4 +1,33 @@
|
||||
|
||||
Could not convert string to boolean: 1. Path 'smtpSSL', line 1, position 171
|
||||
Could not convert string to boolean: 1. Path 'useImap', line 1, position 90
|
||||
Could not convert string to boolean: 1. Path 'receiveSSL', line 1, position 125.
|
||||
[
|
||||
{
|
||||
"ConditionalList": [
|
||||
{
|
||||
"Key": 1,
|
||||
"Value": { "FieldName": "MBLNO", "FieldValue": "contains", "ConditionalType": "1" }
|
||||
},
|
||||
{
|
||||
"Key": 1,
|
||||
"Value": { "FieldName": "Id", "FieldValue": "contains", "ConditionalType": "1" }
|
||||
},
|
||||
{
|
||||
"Key": 1,
|
||||
"Value": {
|
||||
"ConditionalList": [
|
||||
{
|
||||
"Key": 1,
|
||||
"Value": { "FieldName": "Id", "FieldValue": "contains", "ConditionalType": "1" }
|
||||
},
|
||||
{
|
||||
"Key": 1,
|
||||
"Value": {
|
||||
"FieldName": "AgentContent",
|
||||
"FieldValue": "equal",
|
||||
"ConditionalType": "123"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
Loading…
Reference in New Issue