diff --git a/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue
new file mode 100644
index 00000000..e65a6990
--- /dev/null
+++ b/src/views/ContainerManagement/RentOneWay/TenantAuditStepModal.vue
@@ -0,0 +1,938 @@
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+ 删除
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 仅保存
+ 保存并关闭
+
+
+
+
+
+
diff --git a/src/views/ContainerManagement/RentOneWay/api.ts b/src/views/ContainerManagement/RentOneWay/api.ts
new file mode 100644
index 00000000..f18de517
--- /dev/null
+++ b/src/views/ContainerManagement/RentOneWay/api.ts
@@ -0,0 +1,119 @@
+// @ts-ignore
+import { request } from '/@/utils/request'
+import { DataResult, PageRequest } from '/@/api/model/baseModel'
+enum Api {
+ list = '/containerManagementApi/CM_RentOut/GetCM_RentOutList',
+ edit = '/containerManagementApi/CM_RentOut/EditCM_RentOut',
+ info = '/containerManagementApi/CM_RentOut/GetCM_RentOut',
+ del = '/containerManagementApi/CM_RentOut/DeleteCM_RentOut',
+
+ listDetail = '/containerManagementApi/CM_RentOut_Detail/GetCM_RentOut_DetailList',
+ editDetail = '/containerManagementApi/CM_RentOut_Detail/EditCM_RentOut_Detail',
+ delDetail = '/containerManagementApi/CM_RentOut_Detail/DeleteCM_RentOut_Detail',
+
+ // Confirm = '/containerManagementApi/CM_RentOut/CM_RentOut_Confirm',
+ // Cancel = '/containerManagementApi/CM_RentOut/CM_RentOut_Cancel',
+ // MakeFee = '/containerManagementApi/CM_RentOut/CM_RentOut_MakeFee',
+
+ // DetailView = '/containerManagementApi/CM_RentOut/CM_RentOut_Detail_View',
+ // AddCtn = '/containerManagementApi/CM_RentOut/CM_RentOut_AddCtn',
+
+}
+// 列表 (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,
+ })
+}
+
+// // 租箱租入明细视图 (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',
+// data,
+// })
+// }
+// // 租箱租入_确认 (Auth)
+// export function ApiConfirm(data: PageRequest) {
+// return request({
+// url: Api.Confirm,
+// method: 'post',
+// data,
+// })
+// }
+// // 租箱租入_取消 (Auth)
+// export function ApiCancel(data: PageRequest) {
+// return request({
+// url: Api.Cancel,
+// method: 'post',
+// data,
+// })
+// }
\ No newline at end of file
diff --git a/src/views/ContainerManagement/RentOneWay/columns.tsx b/src/views/ContainerManagement/RentOneWay/columns.tsx
new file mode 100644
index 00000000..da0a3005
--- /dev/null
+++ b/src/views/ContainerManagement/RentOneWay/columns.tsx
@@ -0,0 +1,499 @@
+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: 'rentCustomerName',
+ 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: 'accdate',
+ sorter: true,
+ width: 200,
+ },
+ {
+ title: '备注',
+ dataIndex: 'remark',
+ sorter: true,
+ width: 200,
+ },
+]
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'billno',
+ label: '租箱业务号',
+ component: 'Input',
+ colProps: { span: 4 },
+ },
+ {
+ field: 'rentCustomerName',
+ 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: 102,
+ 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: 2,
+ dynamicDisabled: ({ values }) => {
+ return !!values.id
+ },
+ 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(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,
+ dynamicDisabled: ({ values }) => {
+ return !!values.id
+ },
+ 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: 'rentCustomerId',
+ label: '租箱客户',
+ component: 'Input',
+ colProps: { span: 6 },
+ show: false,
+ },
+ {
+ field: 'rentCustomerName',
+ label: '租箱客户',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'tradingAgency' },
+ 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.rentCustomerId = obj.id
+ }
+ if (!e && !obj) {
+ formModel.rentCustomerId = ''
+ }
+ },
+ }
+ },
+ },
+ {
+ 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: 'rentCustomerName',
+ 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/RentOneWay/index.vue b/src/views/ContainerManagement/RentOneWay/index.vue
new file mode 100644
index 00000000..90f2cbb1
--- /dev/null
+++ b/src/views/ContainerManagement/RentOneWay/index.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ 新建
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue b/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue
new file mode 100644
index 00000000..e65a6990
--- /dev/null
+++ b/src/views/ContainerManagement/RentOut/TenantAuditStepModal.vue
@@ -0,0 +1,938 @@
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+ 删除
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 仅保存
+ 保存并关闭
+
+
+
+
+
+
diff --git a/src/views/ContainerManagement/RentOut/api.ts b/src/views/ContainerManagement/RentOut/api.ts
new file mode 100644
index 00000000..f18de517
--- /dev/null
+++ b/src/views/ContainerManagement/RentOut/api.ts
@@ -0,0 +1,119 @@
+// @ts-ignore
+import { request } from '/@/utils/request'
+import { DataResult, PageRequest } from '/@/api/model/baseModel'
+enum Api {
+ list = '/containerManagementApi/CM_RentOut/GetCM_RentOutList',
+ edit = '/containerManagementApi/CM_RentOut/EditCM_RentOut',
+ info = '/containerManagementApi/CM_RentOut/GetCM_RentOut',
+ del = '/containerManagementApi/CM_RentOut/DeleteCM_RentOut',
+
+ listDetail = '/containerManagementApi/CM_RentOut_Detail/GetCM_RentOut_DetailList',
+ editDetail = '/containerManagementApi/CM_RentOut_Detail/EditCM_RentOut_Detail',
+ delDetail = '/containerManagementApi/CM_RentOut_Detail/DeleteCM_RentOut_Detail',
+
+ // Confirm = '/containerManagementApi/CM_RentOut/CM_RentOut_Confirm',
+ // Cancel = '/containerManagementApi/CM_RentOut/CM_RentOut_Cancel',
+ // MakeFee = '/containerManagementApi/CM_RentOut/CM_RentOut_MakeFee',
+
+ // DetailView = '/containerManagementApi/CM_RentOut/CM_RentOut_Detail_View',
+ // AddCtn = '/containerManagementApi/CM_RentOut/CM_RentOut_AddCtn',
+
+}
+// 列表 (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,
+ })
+}
+
+// // 租箱租入明细视图 (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',
+// data,
+// })
+// }
+// // 租箱租入_确认 (Auth)
+// export function ApiConfirm(data: PageRequest) {
+// return request({
+// url: Api.Confirm,
+// method: 'post',
+// data,
+// })
+// }
+// // 租箱租入_取消 (Auth)
+// export function ApiCancel(data: PageRequest) {
+// return request({
+// url: Api.Cancel,
+// method: 'post',
+// data,
+// })
+// }
\ No newline at end of file
diff --git a/src/views/ContainerManagement/RentOut/columns.tsx b/src/views/ContainerManagement/RentOut/columns.tsx
new file mode 100644
index 00000000..da0a3005
--- /dev/null
+++ b/src/views/ContainerManagement/RentOut/columns.tsx
@@ -0,0 +1,499 @@
+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: 'rentCustomerName',
+ 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: 'accdate',
+ sorter: true,
+ width: 200,
+ },
+ {
+ title: '备注',
+ dataIndex: 'remark',
+ sorter: true,
+ width: 200,
+ },
+]
+
+export const searchFormSchema: FormSchema[] = [
+ {
+ field: 'billno',
+ label: '租箱业务号',
+ component: 'Input',
+ colProps: { span: 4 },
+ },
+ {
+ field: 'rentCustomerName',
+ 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: 102,
+ 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: 2,
+ dynamicDisabled: ({ values }) => {
+ return !!values.id
+ },
+ 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(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,
+ dynamicDisabled: ({ values }) => {
+ return !!values.id
+ },
+ 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: 'rentCustomerId',
+ label: '租箱客户',
+ component: 'Input',
+ colProps: { span: 6 },
+ show: false,
+ },
+ {
+ field: 'rentCustomerName',
+ label: '租箱客户',
+ component: 'ApiSelect',
+ required: false,
+ dynamicDisabled: false,
+ colProps: { span: 6 },
+ componentProps: ({ formModel }) => {
+ return {
+ allowClear: true,
+ showSearch: true,
+ api: GetClientListByCode,
+ params: { code: 'tradingAgency' },
+ 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.rentCustomerId = obj.id
+ }
+ if (!e && !obj) {
+ formModel.rentCustomerId = ''
+ }
+ },
+ }
+ },
+ },
+ {
+ 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: 'rentCustomerName',
+ 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/RentOut/index.vue b/src/views/ContainerManagement/RentOut/index.vue
new file mode 100644
index 00000000..90f2cbb1
--- /dev/null
+++ b/src/views/ContainerManagement/RentOut/index.vue
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ 新建
+
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+