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 @@ + +