diff --git a/src/views/ContainerManagement/CurrentState/columns.tsx b/src/views/ContainerManagement/CurrentState/columns.tsx
index 9f813d3d..a1df805c 100644
--- a/src/views/ContainerManagement/CurrentState/columns.tsx
+++ b/src/views/ContainerManagement/CurrentState/columns.tsx
@@ -123,8 +123,8 @@ export const columns: BasicColumn[] = [
width: 150,
},
{
- title: '运输工具',
- dataIndex: 'vehicleName',
+ title: '船名航次',
+ dataIndex: 'vesselVoyno',
sorter: true,
width: 200,
},
@@ -636,8 +636,8 @@ export const formSchema: FormSchema[] = [
},
},
{
- field: 'vehicleName',
- label: '运输工具',
+ field: 'vesselVoyno',
+ label: '船名航次',
component: 'Input',
colProps: { span: 6 },
},
diff --git a/src/views/ContainerManagement/CustFeeDui/TenantAuditStepModal.vue b/src/views/ContainerManagement/CustFeeDui/TenantAuditStepModal.vue
new file mode 100644
index 00000000..83bd68f5
--- /dev/null
+++ b/src/views/ContainerManagement/CustFeeDui/TenantAuditStepModal.vue
@@ -0,0 +1,881 @@
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+ 删除
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认执行
+
+
+ 取消执行
+
+ 取消
+ 仅保存
+ 保存并关闭
+
+ 生成费用
+
+
+
+
+
+
diff --git a/src/views/ContainerManagement/CustFeeDui/api.ts b/src/views/ContainerManagement/CustFeeDui/api.ts
new file mode 100644
index 00000000..961999cf
--- /dev/null
+++ b/src/views/ContainerManagement/CustFeeDui/api.ts
@@ -0,0 +1,127 @@
+// @ts-ignore
+import { request } from '/@/utils/request'
+import { DataResult, PageRequest } from '/@/api/model/baseModel'
+enum Api {
+ list = '/containerManagementApi/CM_RentIn/GetCM_RentInList',
+ edit = '/containerManagementApi/CM_RentIn/EditCM_RentIn',
+ info = '/containerManagementApi/CM_RentIn/GetCM_RentIn',
+ del = '/containerManagementApi/CM_RentIn/DeleteCM_RentIn',
+
+ listDetail = '/containerManagementApi/CM_RentIn_Detail/GetCM_RentIn_DetailList',
+ editDetail = '/containerManagementApi/CM_RentIn_Detail/EditCM_RentIn_Detail',
+ delDetail = '/containerManagementApi/CM_RentIn_Detail/DeleteCM_RentIn_Detail',
+
+ Confirm = '/containerManagementApi/CM_RentIn/CM_RentIn_Confirm',
+ Cancel = '/containerManagementApi/CM_RentIn/CM_RentIn_Cancel',
+ MakeFee = '/containerManagementApi/CM_RentIn/CM_RentIn_MakeFee',
+
+ DetailView = '/containerManagementApi/CM_RentIn/CM_RentIn_Detail_View',
+ AddCtn = '/containerManagementApi/CM_RentIn/CM_RentIn_AddCtn',
+
+}
+// 租箱租入明细视图 (Auth)
+export function ApiDetailView(data: PageRequest) {
+ return request({
+ url: Api.DetailView,
+ method: 'post',
+ data,
+ })
+}
+// 租箱租入退租_添加 (Auth)
+export function ApiAddCtn(data: PageRequest) {
+ return request({
+ url: Api.AddCtn,
+ method: 'post',
+ data,
+ })
+}
+// 租箱租入_生成费用 (Auth)
+export function ApiMakeFee(data: PageRequest) {
+ return request({
+ url: Api.MakeFee,
+ method: 'post',
+ headers:{
+ 'Content-Type':'application/json-patch+json'
+ },
+ data,
+ })
+}
+// 租箱租入_确认 (Auth)
+export function ApiConfirm(data: PageRequest) {
+ return request({
+ url: Api.Confirm,
+ method: 'post',
+ headers:{
+ 'Content-Type':'application/json-patch+json'
+ },
+ data,
+ })
+}
+// 租箱租入_取消 (Auth)
+export function ApiCancel(data: PageRequest) {
+ return request({
+ url: Api.Cancel,
+ method: 'post',
+ headers:{
+ 'Content-Type':'application/json-patch+json'
+ },
+ data,
+ })
+}
+// 列表 (Auth)
+export function ApiList(data: PageRequest) {
+ return request({
+ url: Api.list,
+ method: 'post',
+ data,
+ })
+}
+// 编辑 (Auth)
+export function ApiEdit(data: PageRequest) {
+ return request({
+ url: Api.edit,
+ method: 'post',
+ data,
+ })
+}
+// 详情 (Auth)
+export function ApiInfo(query) {
+ return request({
+ url: Api.info,
+ method: 'get',
+ params: query,
+ })
+}
+// 删除 (Auth)
+export function ApiDel(data: PageRequest) {
+ return request({
+ url: Api.del,
+ method: 'post',
+ data,
+ })
+}
+
+// 列表详情 (Auth)
+export function ApiListDetail(data: PageRequest) {
+ return request({
+ url: Api.listDetail,
+ method: 'post',
+ data,
+ })
+}
+// // 编辑详情 (Auth)
+// export function ApiEditDetail(data: PageRequest) {
+// return request({
+// url: Api.editDetail,
+// method: 'post',
+// data,
+// })
+// }
+// 删除详情 (Auth)
+export function ApiDelDetail(data: PageRequest) {
+ return request({
+ url: Api.delDetail,
+ method: 'post',
+ data,
+ })
+}
\ No newline at end of file
diff --git a/src/views/ContainerManagement/CustFeeDui/columns.tsx b/src/views/ContainerManagement/CustFeeDui/columns.tsx
new file mode 100644
index 00000000..fffb35e5
--- /dev/null
+++ b/src/views/ContainerManagement/CustFeeDui/columns.tsx
@@ -0,0 +1,488 @@
+import { ref } from 'vue'
+import { BasicColumn, FormSchema } from '/@/components/Table'
+import { Tag } from 'ant-design-vue'
+import { GetCtnSelectList, GetClientListByCode } from '/@/api/common'
+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',
+ },
+]
+// 业务类型字典
+const businessTypeDict = ref([])
+getDictOption('CM_BusinessType').then((res) => {
+ businessTypeDict.value = res
+})
+// 租箱类型字典
+const rentTypeIdDict = ref([])
+getDictOption('CM_RentType').then((res) => {
+ rentTypeIdDict.value = res
+})
+
+export const columns: BasicColumn[] = [
+ {
+ title: '租箱业务号',
+ dataIndex: 'billno',
+ sorter: true,
+ width: 150,
+ },
+ {
+ title: '业务类型',
+ dataIndex: 'businessType',
+ sorter: true,
+ width: 150,
+ customRender: ({ text }) => {
+ let RData = '-'
+ businessTypeDict.value.forEach((item: any) => {
+ if (text == item.value) {
+ RData = item.label
+ }
+ })
+ return RData
+ },
+ },
+ {
+ title: '租箱业务',
+ dataIndex: 'rentDirect',
+ sorter: true,
+ width: 150,
+ },
+ {
+ title: '租箱类型',
+ dataIndex: 'rentTypeId',
+ sorter: true,
+ width: 150,
+ customRender: ({ text }) => {
+ let RData = '-'
+ rentTypeIdDict.value.forEach((item: any) => {
+ if (text == item.value) {
+ RData = item.label
+ }
+ })
+ return RData
+ },
+ },
+ {
+ title: '业务状态',
+ dataIndex: 'billState',
+ sorter: true,
+ width: 200,
+ },
+ {
+ title: '原箱主',
+ dataIndex: 'oldContainerOwner',
+ sorter: true,
+ width: 200,
+ },
+ {
+ title: '业务日期',
+ dataIndex: 'bsdate',
+ sorter: true,
+ width: 200,
+ },
+ {
+ title: '会计期间',
+ dataIndex: 'accdate',
+ sorter: true,
+ width: 200,
+ },
+ {
+ title: '业务锁定',
+ dataIndex: 'isBusinessLocking',
+ sorter: true,
+ width: 200,
+ customRender: ({ text }) => {
+ if (text) {
+ return 是
+ } else {
+ return 否
+ }
+ return text
+ },
+ },
+ {
+ title: '费用锁定',
+ dataIndex: 'isFeeLocking',
+ sorter: true,
+ width: 200,
+ customRender: ({ text }) => {
+ if (text) {
+ return 是
+ } else {
+ return 否
+ }
+ return text
+ },
+ },
+ {
+ title: '备注',
+ dataIndex: 'remark',
+ sorter: true,
+ width: 200,
+ },
+]
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'billno',
+ label: '租箱业务号',
+ component: 'Input',
+ colProps: { span: 4 },
+ },
+ {
+ field: 'oldContainerOwner',
+ label: '原箱主',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 4 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'leasing' },
+ labelField: 'pinYinCode',
+ showName: 'shortName',
+ valueField: 'shortName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+
+ {
+ field: 'rentDirectId',
+ label: '租箱业务',
+ component: 'ApiSelect',
+ colProps: { span: 4 },
+ componentProps: ({}) => {
+ return {
+ api: () => {
+ return new Promise((resolve) => {
+ getDictOption('CM_RentDirect').then((res) => {
+ let data: any = []
+ res.forEach((item) => {
+ item.value = parseInt(item.value)
+ if (!item.label.indexOf('租入')) {
+ data.push(item)
+ }
+ })
+ resolve(data)
+ })
+ })
+ },
+ labelField: 'label',
+ valueField: 'value',
+ resultField: 'data',
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ field: 'etd',
+ label: 'ETD',
+ component: 'DatePicker',
+ colProps: { span: 4 },
+ defaultValue: '',
+ componentProps: {
+ showTime: true,
+ style: 'width:100%',
+ },
+ },
+ {
+ field: 'eta',
+ label: 'ETA',
+ component: 'DatePicker',
+ colProps: { span: 4 },
+ defaultValue: '',
+ componentProps: {
+ showTime: true,
+ style: 'width:100%',
+ },
+ },
+]
+export const formSchema: FormSchema[] = [
+ {
+ label: '',
+ field: 'id',
+ component: 'Input',
+ defaultValue: '',
+ show: false,
+ },
+ {
+ field: 'businessType',
+ label: '业务类型',
+ component: 'ApiSelect',
+ colProps: { span: 6 },
+ defaultValue: 101,
+ dynamicDisabled: ({}) => {
+ return true
+ },
+ componentProps: ({}) => {
+ return {
+ api: () => {
+ return new Promise((resolve) => {
+ getDictOption('CM_BusinessType').then((res) => {
+ res.forEach((item) => {
+ item.value = parseInt(item.value)
+ })
+ resolve(res)
+ })
+ })
+ },
+ labelField: 'label',
+ valueField: 'value',
+ resultField: 'data',
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+
+ {
+ field: 'rentDirectId',
+ label: '租箱业务',
+ component: 'ApiSelect',
+ colProps: { span: 6 },
+ defaultValue: 0,
+ componentProps: ({ formModel, formActionType }) => {
+ return {
+ api: () => {
+ return new Promise((resolve) => {
+ getDictOption('CM_RentDirect').then((res) => {
+ let data: any = []
+ res.forEach((item) => {
+ console.log(item)
+ item.value = parseInt(item.value)
+ if (!item.label.indexOf('租入')) {
+ data.push(item)
+ }
+ })
+ resolve(data)
+ })
+ })
+ },
+ labelField: 'label',
+ valueField: 'value',
+ resultField: 'data',
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ onChange: (e, obj) => {
+ formActionType ? formActionType.submit() : null
+ if (e && obj) {
+ formModel.rentDirect = obj.label
+ } else {
+ formModel.rentDirect = ''
+ }
+ },
+ }
+ },
+ },
+ {
+ field: 'rentTypeId',
+ label: '租箱类型',
+ component: 'ApiSelect',
+ colProps: { span: 6 },
+ defaultValue: 1,
+ componentProps: ({}) => {
+ return {
+ api: () => {
+ return new Promise((resolve) => {
+ getDictOption('CM_RentType').then((res) => {
+ res.forEach((item) => {
+ item.value = parseInt(item.value)
+ })
+ resolve(res)
+ })
+ })
+ },
+ labelField: 'label',
+ valueField: 'value',
+ resultField: 'data',
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ field: 'billState',
+ label: '业务状态',
+ component: 'Input',
+ colProps: { span: 6 },
+ dynamicDisabled: ({}) => {
+ return true
+ },
+ },
+ {
+ field: 'oldContainerOwnerId',
+ label: '原箱主',
+ component: 'Input',
+ colProps: { span: 6 },
+ show: false,
+ },
+ {
+ field: 'oldContainerOwner',
+ label: '原箱主',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'leasing' },
+ labelField: 'pinYinCode',
+ showName: 'shortName',
+ valueField: 'shortName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ onChange: (e, obj) => {
+ if (e && obj) {
+ formModel.oldContainerOwnerId = obj.id
+ }
+ if (!e && !obj) {
+ formModel.oldContainerOwnerId = ''
+ }
+ },
+ }
+ },
+ },
+ {
+ field: 'bsdate',
+ label: '业务日期',
+ component: 'DatePicker',
+ colProps: { span: 6 },
+ defaultValue: '',
+ componentProps: {
+ allowClear: true,
+ valueFormat: 'YYYY-MM-DD 00:00:00',
+ style: 'width:100%',
+ },
+ },
+ {
+ field: 'accdate',
+ label: '会计期间',
+ component: 'MonthPicker',
+ colProps: { span: 6 },
+ defaultValue: '',
+ componentProps: {
+ showTime: true,
+ allowClear: true,
+ valueFormat: 'YYYY-MM',
+ format: 'YYYY-MM',
+ },
+ },
+ {
+ field: 'isBusinessLocking',
+ label: '业务锁定',
+ component: 'Switch',
+ defaultValue: false,
+ colProps: { span: 6 },
+ componentProps: {
+ checkedChildren: '是',
+ unCheckedChildren: '否',
+ },
+ },
+ {
+ field: 'isFeeLocking',
+ label: '费用锁定',
+ component: 'Switch',
+ defaultValue: false,
+ colProps: { span: 6 },
+ componentProps: {
+ checkedChildren: '是',
+ unCheckedChildren: '否',
+ },
+ },
+ {
+ field: 'remark',
+ label: '备注',
+ component: 'Input',
+ colProps: { span: 24 },
+ },
+]
+
+export const formSearchBoxSchema: FormSchema[] = [
+ {
+ field: 'oldContainerOwner',
+ label: '原箱主',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'leasing' },
+ labelField: 'pinYinCode',
+ showName: 'shortName',
+ valueField: 'shortName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ field: 'ctnall',
+ label: '箱型',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: () => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetCtnSelectList,
+ params: { code: 'leasing' },
+ labelField: 'ctnName',
+ showName: 'ctnName',
+ valueField: 'ctnName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ field: 'cntrno',
+ label: '箱号',
+ component: 'Input',
+ colProps: { span: 10 },
+ },
+]
diff --git a/src/views/ContainerManagement/CustFeeDui/index.vue b/src/views/ContainerManagement/CustFeeDui/index.vue
new file mode 100644
index 00000000..b41a886b
--- /dev/null
+++ b/src/views/ContainerManagement/CustFeeDui/index.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ 新建
+
+
+
+
+ 删除
+
+
+
+
+ 确认执行
+
+
+
+ 取消确认
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue
index c5e8e2a1..5b51db29 100644
--- a/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue
+++ b/src/views/ContainerManagement/RentIn/TenantAuditStepModal.vue
@@ -28,7 +28,7 @@
-
+
保存
@@ -50,6 +50,15 @@
+
@@ -105,6 +114,24 @@
+
+ 确认执行
+
+
+ 取消执行
+
生成费用
@@ -150,7 +177,7 @@
import { registerAllModules } from 'handsontable/registry'
registerAllModules()
import 'handsontable/dist/handsontable.full.css'
- import { formSchema } from './columns'
+ import { formSchema, formSearchBoxSchema } from './columns'
import {
GetCtnSelectList,
GetClientPortSelectList,
@@ -163,6 +190,8 @@
ApiMakeFee,
ApiDetailView,
ApiAddCtn,
+ ApiConfirm,
+ ApiCancel,
} from './api'
import { GetClientListByCode } from '/@/api/common'
import { useMessage } from '/@/hooks/web/useMessage'
@@ -172,6 +201,7 @@
import DsFile from '/@/components/File/index.vue'
// 应收表格组件
import FeeTable from '/@/components/CostEntry/feeTable.vue'
+ import { json } from 'stream/consumers'
// 声明Emits
const emit = defineEmits(['success', 'register'])
const isUpdate = ref(true)
@@ -184,6 +214,7 @@
showActionButtonGroup: false,
submitFunc: submit,
})
+
const TotTableType = ref(false)
async function submit() {
const values = await validate()
@@ -213,7 +244,10 @@
})
submit()
GetListDetail()
- GetViewListDetail()
+ ViewlallCheck.value = false
+ ViewlsomeCheck.value = false
+ handleReset()
+ GetViewListDetail('[]')
}
} else {
rowId.value = ''
@@ -221,9 +255,9 @@
setModalProps({ loading: false })
})
- function GetViewListDetail() {
+ function GetViewListDetail(queryCondition) {
ApiDetailView({
- queryCondition: '[]',
+ queryCondition,
pageCondition: { pageIndex: 1, pageSize: 999, sortConditions: [] },
}).then((res) => {
Viewlist.value.splice(0)
@@ -237,10 +271,23 @@
queryCondition: `[{ FieldName: 'Pid', FieldValue: '${rowId.value}', ConditionalType: 1 }]`,
pageCondition: { pageIndex: 1, pageSize: 999, sortConditions: [] },
}).then((res) => {
+ console.log(res)
+
list.value.splice(0)
res.data.forEach((item) => {
list.value.push(item)
})
+ // ------------------
+ // list.value.splice(0)
+ // let Arr = ['pickupDate', 'dropoffDate', 'feeStartDate', 'bsdate']
+ // res.data.forEach((item) => {
+ // console.log(item)
+ // Arr.forEach((e) => {
+ // console.log(item, item[e], item[e].split(' '))
+ // item[e] = item[e].split(' ')[0]
+ // })
+ // list.value.push(item)
+ // })
})
}
function MakeFee() {
@@ -248,6 +295,16 @@
notification.success({ message: res.message, duration: 3 })
})
}
+ function Confirm() {
+ ApiConfirm(rowId.value).then((res) => {
+ notification.success({ message: res.message, duration: 3 })
+ })
+ }
+ function Cancel() {
+ ApiCancel(rowId.value).then((res) => {
+ notification.success({ message: res.message, duration: 3 })
+ })
+ }
async function handleSave(exit) {
try {
const values = await validate()
@@ -495,7 +552,7 @@
source: async (query, process) => {
const results = await optionsStore.getOptionsByCodeAsync('GetFeeCurrencySelectList')
const dict = results.map((item: any) => {
- return item.description
+ return item.codeName
})
process(dict)
},
@@ -572,9 +629,9 @@
data: 'mblno',
},
{
- title: '运输工具',
+ title: '船名航次',
width: 120,
- data: 'vehicleName',
+ data: 'vesselVoyno',
},
]
const settings = {
@@ -675,6 +732,15 @@
}
}
//--------------------------------------- tab1 View ---------------------------------------
+ const [
+ registerSearchBoxForm,
+ { resetFields: resetSearchBoxFields, validate: validateSearchBox },
+ ] = useForm({
+ labelWidth: 100,
+ schemas: formSearchBoxSchema,
+ showActionButtonGroup: false,
+ submitFunc: submit,
+ })
const Viewlist = ref([])
// 全部勾选
const ViewlallCheck = ref(false)
@@ -748,13 +814,35 @@
// 定义所有单元格发生变化的回调处理
async afterChange(changes, source) {},
}
+ function handleReset() {
+ resetSearchBoxFields()
+ handleSearch()
+ }
+ async function handleSearch() {
+ const values = await validateSearchBox()
+ console.log(values)
+ let ApiData: any = []
+ Object.keys(values).forEach((item) => {
+ if (values[item]) {
+ console.log(values[item].split(','))
+
+ if (item == 'cntrno') {
+ ApiData.push({ FieldName: item, FieldValue: values[item], ConditionalType: 15 })
+ } else {
+ ApiData.push({ FieldName: item, FieldValue: values[item], ConditionalType: 1 })
+ }
+ }
+ })
+ GetViewListDetail(JSON.stringify(ApiData))
+ }
function ViewTableAdd() {
- let ApiData: any = { ids: [] }
- list.value.forEach((e: any, i) => {
+ let ApiData: any = { id: rowId.value, ids: [] }
+ Viewlist.value.forEach((e: any, i) => {
if (e.selected) {
- list.value.splice(i, 1)
+ ApiData.ids.push(e.id)
}
})
+ console.log(ApiData.ids)
if (ApiData.ids.length) {
ApiAddCtn(ApiData).then(async (res) => {
if (res.succeeded) {
@@ -762,14 +850,12 @@
if (res.succeeded) {
allCheck.value = false
someCheck.value = false
- setFieldsValue({
- ...res.data,
- })
ViewlallCheck.value = false
ViewlsomeCheck.value = false
submit()
GetListDetail()
- GetViewListDetail()
+ handleReset()
+ GetViewListDetail('[]')
}
// getData(false)
notification.success({ message: res.message, duration: 3 })
@@ -796,4 +882,13 @@
position: absolute;
left: 15px;
}
+ .SearchBox {
+ display: flex;
+ .Form {
+ flex: 1;
+ }
+ .mt-4 {
+ margin-left: 10px;
+ }
+ }
diff --git a/src/views/ContainerManagement/RentIn/columns.tsx b/src/views/ContainerManagement/RentIn/columns.tsx
index 0868725a..17bb78b0 100644
--- a/src/views/ContainerManagement/RentIn/columns.tsx
+++ b/src/views/ContainerManagement/RentIn/columns.tsx
@@ -22,6 +22,17 @@ const usedStateList = [
value: 'new',
},
]
+// 业务类型字典
+const businessTypeDict = ref([])
+getDictOption('CM_BusinessType').then((res) => {
+ businessTypeDict.value = res
+})
+// 租箱类型字典
+const rentTypeIdDict = ref([])
+getDictOption('CM_RentType').then((res) => {
+ rentTypeIdDict.value = res
+})
+
export const columns: BasicColumn[] = [
{
title: '租箱业务号',
@@ -34,6 +45,15 @@ export const columns: BasicColumn[] = [
dataIndex: 'businessType',
sorter: true,
width: 150,
+ customRender: ({ text }) => {
+ let RData = '-'
+ businessTypeDict.value.forEach((item: any) => {
+ if (text == item.value) {
+ RData = item.label
+ }
+ })
+ return RData
+ },
},
{
title: '租箱业务',
@@ -43,9 +63,18 @@ export const columns: BasicColumn[] = [
},
{
title: '租箱类型',
- dataIndex: 'rentType',
+ dataIndex: 'rentTypeId',
sorter: true,
width: 150,
+ customRender: ({ text }) => {
+ let RData = '-'
+ rentTypeIdDict.value.forEach((item: any) => {
+ if (text == item.value) {
+ RData = item.label
+ }
+ })
+ return RData
+ },
},
{
title: '业务状态',
@@ -109,30 +138,54 @@ export const columns: BasicColumn[] = [
export const searchFormSchema: FormSchema[] = [
{
- field: 'CtnName',
+ field: 'billno',
label: '租箱业务号',
component: 'Input',
colProps: { span: 4 },
},
{
- field: 'CtnName',
+ field: 'oldContainerOwner',
label: '原箱主',
- component: 'Input',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
colProps: { span: 4 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'leasing' },
+ labelField: 'pinYinCode',
+ showName: 'shortName',
+ valueField: 'shortName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
},
{
- field: 'rentDirect',
+ field: 'rentDirectId',
label: '租箱业务',
component: 'ApiSelect',
colProps: { span: 4 },
- defaultValue: '',
- componentProps: ({ formModel }) => {
+ componentProps: ({}) => {
return {
api: () => {
return new Promise((resolve) => {
getDictOption('CM_RentDirect').then((res) => {
- resolve(res)
+ let data: any = []
+ res.forEach((item) => {
+ item.value = parseInt(item.value)
+ if (!item.label.indexOf('租入')) {
+ data.push(item)
+ }
+ })
+ resolve(data)
})
})
},
@@ -142,7 +195,6 @@ export const searchFormSchema: FormSchema[] = [
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
- onChange: (v, obj) => {},
}
},
},
@@ -182,7 +234,10 @@ export const formSchema: FormSchema[] = [
label: '业务类型',
component: 'ApiSelect',
colProps: { span: 6 },
- defaultValue: '',
+ defaultValue: 101,
+ dynamicDisabled: ({}) => {
+ return true
+ },
componentProps: ({}) => {
return {
api: () => {
@@ -210,16 +265,20 @@ export const formSchema: FormSchema[] = [
label: '租箱业务',
component: 'ApiSelect',
colProps: { span: 6 },
- defaultValue: '',
+ defaultValue: 0,
componentProps: ({ formModel, formActionType }) => {
return {
api: () => {
return new Promise((resolve) => {
getDictOption('CM_RentDirect').then((res) => {
+ let data: any = []
res.forEach((item) => {
item.value = parseInt(item.value)
+ if (!item.label.indexOf('租入')) {
+ data.push(item)
+ }
})
- resolve(res)
+ resolve(data)
})
})
},
@@ -245,7 +304,7 @@ export const formSchema: FormSchema[] = [
label: '租箱类型',
component: 'ApiSelect',
colProps: { span: 6 },
- defaultValue: '',
+ defaultValue: 1,
componentProps: ({}) => {
return {
api: () => {
@@ -272,6 +331,9 @@ export const formSchema: FormSchema[] = [
label: '业务状态',
component: 'Input',
colProps: { span: 6 },
+ dynamicDisabled: ({}) => {
+ return true
+ },
},
{
field: 'oldContainerOwnerId',
@@ -319,8 +381,8 @@ export const formSchema: FormSchema[] = [
colProps: { span: 6 },
defaultValue: '',
componentProps: {
- showTime: true,
allowClear: true,
+ valueFormat: 'YYYY-MM-DD 00:00:00',
style: 'width:100%',
},
},
@@ -366,3 +428,60 @@ export const formSchema: FormSchema[] = [
colProps: { span: 24 },
},
]
+
+export const formSearchBoxSchema: FormSchema[] = [
+ {
+ field: 'oldContainerOwner',
+ label: '原箱主',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'leasing' },
+ labelField: 'pinYinCode',
+ showName: 'shortName',
+ valueField: 'shortName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ field: 'ctnall',
+ label: '箱型',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: () => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetCtnSelectList,
+ params: { code: 'leasing' },
+ labelField: 'ctnName',
+ showName: 'ctnName',
+ valueField: 'ctnName',
+ resultField: 'data',
+ immediate: false,
+ filterOption: (input: string, option: any) => {
+ return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ },
+ }
+ },
+ },
+ {
+ field: 'cntrno',
+ label: '箱号',
+ component: 'Input',
+ colProps: { span: 10 },
+ },
+]
diff --git a/src/views/ContainerManagement/StateChange/columns.tsx b/src/views/ContainerManagement/StateChange/columns.tsx
index bb8f27dd..97cf9271 100644
--- a/src/views/ContainerManagement/StateChange/columns.tsx
+++ b/src/views/ContainerManagement/StateChange/columns.tsx
@@ -452,8 +452,8 @@ export const formSchema: FormSchema[] = [
},
},
{
- field: 'vehicleName',
- label: '运输工具',
+ field: 'vesselVoyno',
+ label: '船名航次',
component: 'Input',
colProps: { span: 6 },
},
diff --git a/src/views/ContainerManagement/asd.json b/src/views/ContainerManagement/asd.json
index c7c8c409..ea8b37f6 100644
--- a/src/views/ContainerManagement/asd.json
+++ b/src/views/ContainerManagement/asd.json
@@ -1,62 +1,103 @@
{
- "id": "",
- "cntrno": "080801,080802",
- "isOnlineId": "0",
- "changeSourceId": "1",
- "usedState": "used",
- "ctnSourceId": "1",
- "ctnBizState": "短租租出",
- "ctnBizStateId": "6",
- "billno": "WebTest001",
- "ctnReleaseNo": "WebTest001",
- "ctnStateId": "1",
- "ctnBreakState": "WebTest001",
- "isHeavy": true,
- "port": "NINGBO",
- "portid": "1816754346457698304",
- "depot": "昭阳国际",
- "vehicleName": "WebTest001",
- "ctnall": "22G0",
- "mblno": "WebTest001",
- "customerName": "青岛东胜",
- "customerId": "QDDS",
- "etd": "2024-08-08T00:53:55.980Z",
- "eta": "2024-08-08T00:54:08.455Z",
- "changeTime": "2024-08-08T00:54:10.015Z",
- "ctnWeight": 666,
- "ctnValue_Base": 666
- }
-
-
- {
- "id": "1821349203675320320",
- "cntrno": "080801",
- "ctnCode": null,
- "ctnall": "22G0",
- "usedState": "used",
- "ctnOwner": null,
- "ctnSourceId": 1,
- "ctnSource": "短租租入",
- "ctnBizStateId": 6,
- "ctnBizState": "短租租出",
- "billno": "WebTest001",
- "ctnReleaseNo": null,
- "ctnStateId": 1,
- "ctnState": "可用",
- "ctnBreakState": "WebTest001",
- "isOnlineId": 0,
- "isOnline": "待上线",
- "isHeavy": true,
- "portid": "1816754346457698304",
- "port": null,
- "depot": "昭阳国际",
- "vehicleName": "WebTest001",
- "mblno": "WebTest001",
- "customerId": "",
- "customerName": "青岛东胜",
- "etd": "2024-08-08 00:53:55",
- "eta": "2024-08-08 00:54:08",
- "stateTime": "2024-08-08 00:54:10",
- "ctnWeight": 0,
- "ctnValue_Base": 0
- },
\ No newline at end of file
+ "id": "1823192191728750592",
+ "businessType": 101,
+ "rentDirectId": 0,
+ "rentTypeId": 1,
+ "billState": null,
+ "oldContainerOwnerId": "1790269205392789504",
+ "oldContainerOwner": "青岛东胜",
+ "bsdate": "2024-08-13 00:00:00",
+ "accdate": "2024-11",
+ "isBusinessLocking": false,
+ "isFeeLocking": false,
+ "remark": "测试租入1",
+ "bodyList": [
+ {
+ "id": "1823193258684190720",
+ "pid": "1823192191728750592",
+ "cntrno": "RENTIN002",
+ "ctnCode": "22G0",
+ "ctnall": "20GP",
+ "oldContainerOwnerId": "1790269205392789504",
+ "oldContainerOwner": null,
+ "rentDirectId": 0,
+ "rentDirect": "租入",
+ "rentTypeId": 1,
+ "rentType": "长租",
+ "ctnReleaseNo": "releaseno001",
+ "bsdate": "2024-08-13 06:03:27",
+ "feeStartDate": "2024-08-13",
+ "currency": "USD",
+ "dailyRate": 0,
+ "pickupFee": 0,
+ "pickupDate": "2024-08-05",
+ "dropoffFee": 0,
+ "dropoffDate": "2024-08-06",
+ "pickupPortid": "1816307156580962304",
+ "pickupPortCode": "AUSYD",
+ "pickupPort": "SYDNEY, AUSTRALIA",
+ "dropoffPortid": "1795717773662490624",
+ "dropoffPortCode": "1212",
+ "dropoffPort": "Test001",
+ "mblno": "2214",
+ "vehicleName": "2214",
+ "rentDetailId": "",
+ "selected": false
+ },
+ {
+ "id": "1823192516082667520",
+ "pid": "1823192191728750592",
+ "cntrno": "RENTIN001",
+ "ctnCode": "22G0",
+ "ctnall": "20GP",
+ "oldContainerOwnerId": "1790269205392789504",
+ "oldContainerOwner": null,
+ "rentDirectId": 0,
+ "rentDirect": "租入",
+ "rentTypeId": 1,
+ "rentType": "长租",
+ "ctnReleaseNo": "releaseno001",
+ "bsdate": "2024-08-13",
+ "feeStartDate": "2024-08-01 00:00:00",
+ "currency": "美元",
+ "dailyRate": 2,
+ "pickupFee": 10,
+ "pickupDate": "2024-08-01 00:00:00",
+ "dropoffFee": 10,
+ "dropoffDate": "2024-08-02",
+ "pickupPortid": "1816306937097228288",
+ "pickupPortCode": "CNTAO",
+ "pickupPort": "QINGDAO,CHINA",
+ "dropoffPortid": "1816306937097228288",
+ "dropoffPortCode": "CNTAO",
+ "dropoffPort": "QINGDAO,CHINA",
+ "mblno": "MBLNO0001",
+ "vehicleName": "船名/航次RentIn1",
+ "rentDetailId": "",
+ "selected": false
+ },
+ {
+ "selected": false,
+ "pickupDate": "2024-08-13",
+ "dropoffDate": "2024-08-13",
+ "feeStartDate": "2024-08-13",
+ "bsdate": "2024-08-13",
+ "cntrno": "RENTIN002",
+ "ctnall": "20RF",
+ "ctnCode": "22R0",
+ "ctnReleaseNo": "releaseno001",
+ "currency": "日元",
+ "dailyRate": 2,
+ "pickupFee": 10,
+ "dropoffFee": 10,
+ "dropoffPort": "CALLAO",
+ "dropoffPortid": "1763399503139966976",
+ "dropoffPortCode": "2123",
+ "mblno": "MBLNO0001",
+ "vehicleName": "2214",
+ "pickupPort": "Test001",
+ "pickupPortid": "1795717773662490624",
+ "pickupPortCode": "1212"
+ }
+ ]
+}
diff --git a/src/views/ContainerManagement/dsxxcl/columns.tsx b/src/views/ContainerManagement/dsxxcl/columns.tsx
index fedfd82d..573223b5 100644
--- a/src/views/ContainerManagement/dsxxcl/columns.tsx
+++ b/src/views/ContainerManagement/dsxxcl/columns.tsx
@@ -108,8 +108,8 @@ export const columns: BasicColumn[] = [
width: 200,
},
{
- title: '运输工具',
- dataIndex: 'vehicleName',
+ title: '船名航次',
+ dataIndex: 'vesselVoyno',
sorter: true,
width: 200,
},
diff --git a/src/views/ContainerManagement/qbxdtbdrz/columns.tsx b/src/views/ContainerManagement/qbxdtbdrz/columns.tsx
index caaa7c95..a42edb3c 100644
--- a/src/views/ContainerManagement/qbxdtbdrz/columns.tsx
+++ b/src/views/ContainerManagement/qbxdtbdrz/columns.tsx
@@ -91,8 +91,8 @@ export const columns: BasicColumn[] = [
width: 200,
},
{
- title: '运输工具',
- dataIndex: 'vehicleName',
+ title: '船名航次',
+ dataIndex: 'vesselVoyno',
sorter: true,
width: 200,
},
@@ -407,8 +407,8 @@ export const formSchema: FormSchema[] = [
},
},
{
- field: 'vehicleName',
- label: '运输工具',
+ field: 'vesselVoyno',
+ label: '船名航次',
component: 'Input',
colProps: { span: 6 },
},