|
|
@ -1,7 +1,27 @@
|
|
|
|
|
|
|
|
import { ref } from 'vue'
|
|
|
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
|
|
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
|
|
|
import { Tag } from 'ant-design-vue'
|
|
|
|
import { Tag } from 'ant-design-vue'
|
|
|
|
import { GetCtnSelectList } from '/@/api/common'
|
|
|
|
import { GetCtnSelectList } from '/@/api/common'
|
|
|
|
import { GetDeptList } from '/@/views/operation/seaexport/api/BookingLedger'
|
|
|
|
import { GetDeptList } from '/@/views/operation/seaexport/api/BookingLedger'
|
|
|
|
|
|
|
|
import { useOptionsStore } from '/@/store/modules/options'
|
|
|
|
|
|
|
|
const optionsStore = useOptionsStore()
|
|
|
|
|
|
|
|
// 字典
|
|
|
|
|
|
|
|
import { getDictOption } from '/@/utils/dictUtil'
|
|
|
|
|
|
|
|
// 新旧箱数据
|
|
|
|
|
|
|
|
const usedStateList = [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
label: '',
|
|
|
|
|
|
|
|
value: '',
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
label: 'used',
|
|
|
|
|
|
|
|
value: 'used',
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
label: 'new',
|
|
|
|
|
|
|
|
value: 'new',
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]
|
|
|
|
export const columns: BasicColumn[] = [
|
|
|
|
export const columns: BasicColumn[] = [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: '集装箱号',
|
|
|
|
title: '集装箱号',
|
|
|
@ -16,8 +36,14 @@ export const columns: BasicColumn[] = [
|
|
|
|
width: 150,
|
|
|
|
width: 150,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: '集装箱类型',
|
|
|
|
title: '是否上线',
|
|
|
|
dataIndex: 'ctnType',
|
|
|
|
dataIndex: 'isOnline',
|
|
|
|
|
|
|
|
sorter: true,
|
|
|
|
|
|
|
|
width: 200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
title: '变动来源',
|
|
|
|
|
|
|
|
dataIndex: 'changeSource',
|
|
|
|
sorter: true,
|
|
|
|
sorter: true,
|
|
|
|
width: 200,
|
|
|
|
width: 200,
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -75,12 +101,6 @@ export const columns: BasicColumn[] = [
|
|
|
|
sorter: true,
|
|
|
|
sorter: true,
|
|
|
|
width: 200,
|
|
|
|
width: 200,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
|
|
|
|
title: '是否上线',
|
|
|
|
|
|
|
|
dataIndex: 'isOnline',
|
|
|
|
|
|
|
|
sorter: true,
|
|
|
|
|
|
|
|
width: 200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: '空重箱',
|
|
|
|
title: '空重箱',
|
|
|
|
dataIndex: 'isHeavy',
|
|
|
|
dataIndex: 'isHeavy',
|
|
|
@ -131,7 +151,7 @@ export const columns: BasicColumn[] = [
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: '状态时间',
|
|
|
|
title: '状态时间',
|
|
|
|
dataIndex: 'stateTime',
|
|
|
|
dataIndex: 'changeTime',
|
|
|
|
sorter: true,
|
|
|
|
sorter: true,
|
|
|
|
width: 200,
|
|
|
|
width: 200,
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -194,27 +214,70 @@ export const formSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'isOnline',
|
|
|
|
field: 'isOnline',
|
|
|
|
label: '是否上线',
|
|
|
|
label: '是否上线',
|
|
|
|
component: 'RadioButtonGroup',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
defaultValue: true,
|
|
|
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
componentProps: {
|
|
|
|
defaultValue: '',
|
|
|
|
options: [
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
{ label: '是', value: true },
|
|
|
|
return {
|
|
|
|
{ label: '否', value: false },
|
|
|
|
api: () => {
|
|
|
|
],
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
|
|
getDictOption('CM_IsOnlineEnum').then((res) => {
|
|
|
|
|
|
|
|
resolve(res)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
|
|
|
formModel.defaultDebitName = obj?.label || ''
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'changeSource',
|
|
|
|
field: 'changeSource',
|
|
|
|
label: '变动来源',
|
|
|
|
label: '变动来源',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
api: () => {
|
|
|
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
|
|
getDictOption('CM_ChangeSource').then((res) => {
|
|
|
|
|
|
|
|
resolve(res)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
|
|
|
formModel.defaultDebitName = obj?.label || ''
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'usedState',
|
|
|
|
field: 'usedState',
|
|
|
|
label: '新旧箱',
|
|
|
|
label: '新旧箱',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'Select',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
componentProps: {
|
|
|
|
|
|
|
|
options: usedStateList,
|
|
|
|
|
|
|
|
allowClear: true,
|
|
|
|
|
|
|
|
showSearch: true,
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnOwner',
|
|
|
|
field: 'ctnOwner',
|
|
|
@ -251,15 +314,56 @@ export const formSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnSource',
|
|
|
|
field: 'ctnSource',
|
|
|
|
label: '箱来源',
|
|
|
|
label: '箱来源',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
|
|
|
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
api: () => {
|
|
|
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
|
|
getDictOption('CM_CtnSource').then((res) => {
|
|
|
|
|
|
|
|
resolve(res)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
|
|
|
formModel.defaultDebitName = obj?.label || ''
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnBizState',
|
|
|
|
field: 'ctnBizState',
|
|
|
|
label: '箱业务状态',
|
|
|
|
label: '箱业务状态',
|
|
|
|
component: 'InputNumber',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
api: () => {
|
|
|
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
|
|
getDictOption('CM_CtnBizState').then((res) => {
|
|
|
|
|
|
|
|
resolve(res)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
|
|
|
formModel.defaultDebitName = obj?.label || ''
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'billno',
|
|
|
|
field: 'billno',
|
|
|
@ -277,8 +381,29 @@ export const formSchema: FormSchema[] = [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnState',
|
|
|
|
field: 'ctnState',
|
|
|
|
label: '箱状态',
|
|
|
|
label: '箱状态',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: ({ formModel }) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
api: () => {
|
|
|
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
|
|
getDictOption('CM_CtnState').then((res) => {
|
|
|
|
|
|
|
|
resolve(res)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
labelField: 'label',
|
|
|
|
|
|
|
|
valueField: 'value',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onChange: (v, obj) => {
|
|
|
|
|
|
|
|
formModel.defaultDebitName = obj?.label || ''
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnBreakState',
|
|
|
|
field: 'ctnBreakState',
|
|
|
@ -286,24 +411,52 @@ export const formSchema: FormSchema[] = [
|
|
|
|
component: 'Input',
|
|
|
|
component: 'Input',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'isHeavy',
|
|
|
|
field: 'isHeavy',
|
|
|
|
label: '空重箱',
|
|
|
|
label: '空重箱',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'Switch',
|
|
|
|
|
|
|
|
defaultValue: false,
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
componentProps: {
|
|
|
|
|
|
|
|
checkedChildren: '是',
|
|
|
|
|
|
|
|
unCheckedChildren: '否',
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'portid',
|
|
|
|
field: 'portid',
|
|
|
|
label: '当前港口',
|
|
|
|
label: '当前港口',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
required: false,
|
|
|
|
|
|
|
|
componentProps: ({}) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetClientPortSelectList'),
|
|
|
|
|
|
|
|
labelField: 'portName',
|
|
|
|
|
|
|
|
valueField: 'id',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'depot',
|
|
|
|
field: 'depot',
|
|
|
|
label: '码头或场站',
|
|
|
|
label: '码头或场站',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'ApiSelect',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
required: false,
|
|
|
|
|
|
|
|
componentProps: ({}) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetYardClientList'),
|
|
|
|
|
|
|
|
labelField: 'shortName',
|
|
|
|
|
|
|
|
valueField: 'id',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'vehicleName',
|
|
|
|
field: 'vehicleName',
|
|
|
@ -317,40 +470,74 @@ export const formSchema: FormSchema[] = [
|
|
|
|
component: 'Input',
|
|
|
|
component: 'Input',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// field: 'customerName',
|
|
|
|
|
|
|
|
// label: '业务委托单位',
|
|
|
|
|
|
|
|
// component: 'Input',
|
|
|
|
|
|
|
|
// colProps: { span: 6 },
|
|
|
|
|
|
|
|
// },
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'customerName',
|
|
|
|
|
|
|
|
label: '业务委托单位',
|
|
|
|
label: '业务委托单位',
|
|
|
|
component: 'Input',
|
|
|
|
field: 'customerName',
|
|
|
|
|
|
|
|
component: 'ApiSelect',
|
|
|
|
|
|
|
|
required: false,
|
|
|
|
|
|
|
|
dynamicDisabled: false,
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
componentProps: ({}) => {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
option: optionsStore.getOptionsByCode('GetControllerClientList'),
|
|
|
|
|
|
|
|
labelField: 'shortName',
|
|
|
|
|
|
|
|
valueField: 'codeName',
|
|
|
|
|
|
|
|
resultField: 'data',
|
|
|
|
|
|
|
|
filterOption: (input: string, option: any) => {
|
|
|
|
|
|
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'etd',
|
|
|
|
field: 'etd',
|
|
|
|
label: 'ETD',
|
|
|
|
label: 'ETD',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'DatePicker',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: {
|
|
|
|
|
|
|
|
showTime: true,
|
|
|
|
|
|
|
|
style: 'width:100%',
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'eta',
|
|
|
|
field: 'eta',
|
|
|
|
label: 'ETA',
|
|
|
|
label: 'ETA',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'DatePicker',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: {
|
|
|
|
|
|
|
|
showTime: true,
|
|
|
|
|
|
|
|
style: 'width:100%',
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'changeTime',
|
|
|
|
field: 'changeTime',
|
|
|
|
label: '状态时间',
|
|
|
|
label: '状态时间',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'DatePicker',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
|
|
|
|
defaultValue: '',
|
|
|
|
|
|
|
|
componentProps: {
|
|
|
|
|
|
|
|
showTime: true,
|
|
|
|
|
|
|
|
style: 'width:100%',
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnWeight',
|
|
|
|
field: 'ctnWeight',
|
|
|
|
label: '箱皮重',
|
|
|
|
label: '箱皮重',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'InputNumber',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
field: 'ctnValue_Base',
|
|
|
|
field: 'ctnValue_Base',
|
|
|
|
label: '箱初期成本',
|
|
|
|
label: '箱初期成本',
|
|
|
|
component: 'Input',
|
|
|
|
component: 'InputNumber',
|
|
|
|
colProps: { span: 6 },
|
|
|
|
colProps: { span: 6 },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]
|
|
|
|
]
|
|
|
|