Merge branch 'zth' into dev

szh-new
张同海 3 months ago
commit b1f7c07ccd

@ -153,8 +153,8 @@ export const columns: BasicColumn[] = [
width: 200, width: 200,
}, },
{ {
title: '生产日期', title: '生产日期',
dataIndex: '', dataIndex: 'productionDate',
sorter: true, sorter: true,
width: 200, width: 200,
}, },

@ -43,7 +43,7 @@
</div> </div>
</div> </div>
<div class="SearchBox"> <div class="SearchBox">
<BasicForm class="Form" @register="registerSearchBoxForm" /> <BasicForm class="Form" @register="registerSearchBoxForm" :disabledDate="disabledDate" />
<div class="ButtonBox"> <div class="ButtonBox">
<a-button size="default" @click="handleReset" :disabled="!rowId"> 重置 </a-button> <a-button size="default" @click="handleReset" :disabled="!rowId"> 重置 </a-button>
<a-button <a-button
@ -137,6 +137,15 @@
@click="handleSave(true)" @click="handleSave(true)"
>保存并关闭</a-button >保存并关闭</a-button
> >
<a-button
pre-icon="ant-design:check-circle-outlined"
type="primary"
:loading="loading"
:disabled="!rowId"
@click="MakeFee()"
>
生成费用
</a-button>
</template> </template>
</BasicModal> </BasicModal>
</template> </template>
@ -178,7 +187,7 @@
const loading = ref(false) const loading = ref(false)
const rowId = ref('') const rowId = ref('')
const height = ref(300) const height = ref(300)
const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({ const [registerForm, { resetFields, setFieldsValue, getFieldsValue, validate }] = useForm({
labelWidth: 100, labelWidth: 100,
schemas: formSchema, schemas: formSchema,
showActionButtonGroup: false, showActionButtonGroup: false,
@ -192,6 +201,7 @@
Viewlist.value.splice(0) Viewlist.value.splice(0)
list.value.splice(0) list.value.splice(0)
if (unref(isUpdate)) { if (unref(isUpdate)) {
// setModalProps({ confirmLoading: true }); // setModalProps({ confirmLoading: true });
rowId.value = data.record.id rowId.value = data.record.id
@ -199,8 +209,6 @@
if (res.succeeded) { if (res.succeeded) {
allCheck.value = false allCheck.value = false
someCheck.value = false someCheck.value = false
console.log(res.data)
setFieldsValue({ setFieldsValue({
...res.data, ...res.data,
}) })
@ -209,19 +217,69 @@
ViewlallCheck.value = false ViewlallCheck.value = false
ViewlsomeCheck.value = false ViewlsomeCheck.value = false
resetSearchBoxFields() resetSearchBoxFields()
GetViewListDetail( GetViewListDetail(null, res.data)
`[{ FieldName: 'Pid', FieldValue: '${rowId.value}', ConditionalType: 1 }]`,
)
} }
} else { } else {
setFieldsValue({})
rowId.value = '' rowId.value = ''
} }
setModalProps({ loading: false }) setModalProps({ loading: false })
}) })
function GetViewListDetail(queryCondition) { function GetViewListDetail(data, resData) {
console.log(data, resData)
let queryCondition: any = []
if (getFieldsValue().customerId || resData.customerId) {
queryCondition.push({
ConditionalList: [
{
Key: 0,
Value: {
FieldName: 'oldContainerOwnerId',
FieldValue: getFieldsValue().customerId || resData.customerId,
ConditionalType: 0,
},
},
{
Key: 1,
Value: {
FieldName: 'rentCustomerId',
FieldValue: getFieldsValue().customerId || resData.customerId,
ConditionalType: 0,
},
},
],
})
}
if (getFieldsValue().billStartDate || resData.billStartDate) {
queryCondition.push({
ConditionalList: [
{
Key: 0,
Value: { FieldName: 'dropoffdate', FieldValue: 'null', ConditionalType: 0 },
},
{
Key: 1,
Value: {
FieldName: 'dropoffdate',
FieldValue: getFieldsValue().billStartDate || resData.billStartDate,
ConditionalType: 3,
},
},
],
})
}
if (data) {
data.forEach((item) => {
queryCondition.push(item)
})
}
ApiDetailView({ ApiDetailView({
queryCondition, queryCondition: JSON.stringify(queryCondition),
pageCondition: { pageIndex: 1, pageSize: 999, sortConditions: [] }, pageCondition: { pageIndex: 1, pageSize: 999, sortConditions: [] },
}).then((res) => { }).then((res) => {
Viewlist.value.splice(0) Viewlist.value.splice(0)
@ -245,7 +303,6 @@
list.value.splice(0) list.value.splice(0)
let Arr = ['pickupDate', 'dropoffDate', 'feeStartDate', 'bsdate'] let Arr = ['pickupDate', 'dropoffDate', 'feeStartDate', 'bsdate']
res.data.forEach((item) => { res.data.forEach((item) => {
console.log(item)
Arr.forEach((e) => { Arr.forEach((e) => {
if (item[e]) { if (item[e]) {
item[e] = item[e].split(' ')[0] item[e] = item[e].split(' ')[0]
@ -255,6 +312,11 @@
}) })
}) })
} }
function MakeFee() {
ApiMakeFee({ id: rowId.value }).then((res) => {
notification.success({ message: res.message, duration: 3 })
})
}
async function handleSave(exit) { async function handleSave(exit) {
try { try {
const values = await validate() const values = await validate()
@ -579,6 +641,8 @@
} }
} }
//--------------------------------------- tab1 View --------------------------------------- //--------------------------------------- tab1 View ---------------------------------------
const disabledDate = ref(['2024/08/10', '2024/08/20'])
const [ const [
registerSearchBoxForm, registerSearchBoxForm,
{ resetFields: resetSearchBoxFields, validate: validateSearchBox }, { resetFields: resetSearchBoxFields, validate: validateSearchBox },
@ -785,15 +849,10 @@
Object.keys(values).forEach((item) => { Object.keys(values).forEach((item) => {
if (values[item]) { if (values[item]) {
console.log(values[item].split(',')) console.log(values[item].split(','))
ApiData.push({ FieldName: item, FieldValue: values[item], ConditionalType: 5 })
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)) GetViewListDetail(ApiData, null)
} }
function ViewTableAdd() { function ViewTableAdd() {
let ApiData: any = { id: rowId.value, ids: [] } let ApiData: any = { id: rowId.value, ids: [] }
@ -814,9 +873,7 @@
ViewlsomeCheck.value = false ViewlsomeCheck.value = false
GetListDetail() GetListDetail()
resetSearchBoxFields() resetSearchBoxFields()
GetViewListDetail( GetViewListDetail(null, null)
`[{ FieldName: 'Pid', FieldValue: '${rowId.value}', ConditionalType: 1 }]`,
)
} }
// getData(false) // getData(false)
notification.success({ message: res.message, duration: 3 }) notification.success({ message: res.message, duration: 3 })

@ -13,7 +13,7 @@ enum Api {
// Confirm = '/containerManagementApi/CM_RentIn/CM_RentIn_Confirm', // Confirm = '/containerManagementApi/CM_RentIn/CM_RentIn_Confirm',
// Cancel = '/containerManagementApi/CM_RentIn/CM_RentIn_Cancel', // Cancel = '/containerManagementApi/CM_RentIn/CM_RentIn_Cancel',
// MakeFee = '/containerManagementApi/CM_RentIn/CM_RentIn_MakeFee', MakeFee = '/containerManagementApi/CM_CustFeeDui/CM_CustFeeDui_MakeFee',
DetailView = '/containerManagementApi/CM_CustFeeDui/GetVW_CM_FeeBase_Detail', DetailView = '/containerManagementApi/CM_CustFeeDui/GetVW_CM_FeeBase_Detail',
AddCtn = '/containerManagementApi/CM_CustFeeDui/AddVW_CM_FeeBase_Detail', AddCtn = '/containerManagementApi/CM_CustFeeDui/AddVW_CM_FeeBase_Detail',

@ -1,6 +1,7 @@
import { ref } from 'vue' 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 dayjs from 'dayjs'
import { GetCtnSelectList, GetClientListByCode } from '/@/api/common' import { GetCtnSelectList, GetClientListByCode } 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' import { useOptionsStore } from '/@/store/modules/options'
@ -24,6 +25,7 @@ const usedStateList = [
value: 'new', value: 'new',
}, },
] ]
const billEndDate = ref()
// 业务类型字典 // 业务类型字典
const businessTypeDict = ref([]) const businessTypeDict = ref([])
getDictOption('CM_BusinessType').then((res) => { getDictOption('CM_BusinessType').then((res) => {
@ -101,8 +103,26 @@ export const columns: BasicColumn[] = [
}, },
}, },
{ {
title: '费用状态??', title: '应收费用状态',
dataIndex: 'billno', dataIndex: 'arFeeStatusName',
sorter: true,
width: 150,
},
{
title: '应付费用状态',
dataIndex: 'apFeeStatusName',
sorter: true,
width: 150,
},
{
title: '应收开票状态',
dataIndex: 'arInvoiceStatusName',
sorter: true,
width: 150,
},
{
title: '应付开票状态',
dataIndex: 'apInvoiceStatusName',
sorter: true, sorter: true,
width: 150, width: 150,
}, },
@ -276,12 +296,27 @@ export const formSchema: FormSchema[] = [
colProps: { span: 6 }, colProps: { span: 6 },
defaultValue: '', defaultValue: '',
required: true, required: true,
componentProps: {
showTime: false, componentProps: ({ formModel }) => {
allowClear: true, return {
valueFormat: 'YYYY-MM-DD', showTime: false,
format: 'YYYY-MM-DD', allowClear: true,
style: 'width:100%', valueFormat: 'YYYY-MM-DD',
format: 'YYYY-MM-DD',
style: 'width:100%',
onChange: (e, obj) => {
if (e && obj) {
setTimeout(() => {
billEndDate.value = formModel.billEndDate
}, 100)
}
if (!obj && !e) {
setTimeout(() => {
billEndDate.value = ''
}, 100)
}
},
}
}, },
}, },
{ {
@ -344,30 +379,6 @@ export const formSchema: FormSchema[] = [
] ]
export const formSearchBoxSchema: FormSchema[] = [ export const formSearchBoxSchema: FormSchema[] = [
{
field: 'ctnBizstateId',
label: '业务信息',
component: 'ApiSelect',
required: 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: 'feestartdate', field: 'feestartdate',
label: '按日明细', label: '按日明细',
@ -380,6 +391,9 @@ export const formSearchBoxSchema: FormSchema[] = [
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
style: 'width:100%', style: 'width:100%',
disabledDate: (current) => {
return current && current <= dayjs(billEndDate.value).subtract(0, 'day')
},
}, },
}, },
] ]

@ -2,7 +2,8 @@
import { request } from '/@/utils/request' import { request } from '/@/utils/request'
import { DataResult, PageRequest } from '/@/api/model/baseModel' import { DataResult, PageRequest } from '/@/api/model/baseModel'
enum Api { enum Api {
list = '/containerManagementApi/CM_State_Change/GetCM_State_ChangeList', list = '/containerManagementApi/CM_CurrentState/GetCM_CurrentStateList',
Changelist = '/containerManagementApi/CM_State_Change/GetCM_State_ChangeList',
edit = '/containerManagementApi/CM_State_Change/EditCM_State_Change', edit = '/containerManagementApi/CM_State_Change/EditCM_State_Change',
multiEdit = '/containerManagementApi/CM_State_Change/CM_State_Change_Multi', multiEdit = '/containerManagementApi/CM_State_Change/CM_State_Change_Multi',
Changeinfo = '/containerManagementApi/CM_State_Change/GetCM_State_Change', Changeinfo = '/containerManagementApi/CM_State_Change/GetCM_State_Change',
@ -16,6 +17,14 @@ enum Api {
ExistList = '/mainApi/CodeCtn/GetExistCodeCtnList', ExistList = '/mainApi/CodeCtn/GetExistCodeCtnList',
Import = '/mainApi/CodeCtn/ImportCodeCtn', Import = '/mainApi/CodeCtn/ImportCodeCtn',
} }
// 列表 (Auth)
export function ApiList(data: PageRequest) {
return request<DataResult>({
url: Api.list,
method: 'post',
data,
})
}
// 批量上线 (Auth) // 批量上线 (Auth)
export function ApiOnLine(data: PageRequest) { export function ApiOnLine(data: PageRequest) {
return request<DataResult>({ return request<DataResult>({
@ -35,7 +44,7 @@ export function ApiOffLine(data: PageRequest) {
// 列表 (Auth) // 列表 (Auth)
export function ApiChangeList(data: PageRequest) { export function ApiChangeList(data: PageRequest) {
return request<DataResult>({ return request<DataResult>({
url: Api.list, url: Api.Changelist,
method: 'post', method: 'post',
data, data,
}) })

@ -17,7 +17,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref } from 'vue' import { ref } from 'vue'
import { BasicTable, useTable } from '/@/components/Table' import { BasicTable, useTable } from '/@/components/Table'
import { ApiChangeList, ApiChangeDel, ApiOnLine, ApiOffLine } from './api' import { ApiList, ApiOnLine, ApiOffLine } from './api'
import { columns, searchFormSchema } from './columns' import { columns, searchFormSchema } from './columns'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage() const { notification } = useMessage()
@ -26,7 +26,7 @@
const [registerTable, { reload, getSelectRows }] = useTable({ const [registerTable, { reload, getSelectRows }] = useTable({
title: '', title: '',
api: async (p) => { api: async (p) => {
const res: API.DataResult = await ApiChangeList(p) const res: API.DataResult = await ApiList(p)
return new Promise((resolve) => { return new Promise((resolve) => {
resolve({ data: [...res.data], total: res.count }) resolve({ data: [...res.data], total: res.count })
}) })

@ -140,6 +140,7 @@
DeleteInvoiceHeader, DeleteInvoiceHeader,
cbDelete, cbDelete,
} from './api' } from './api'
import { GetClientSourceDetailSelectList } from '/@/views/operation/seaexport/api/BookingLedger'
import ClientAccountDateModal from './ClientAccountDateModal.vue' import ClientAccountDateModal from './ClientAccountDateModal.vue'
import { useMessage } from '/@/hooks/web/useMessage' import { useMessage } from '/@/hooks/web/useMessage'
const { notification } = useMessage() const { notification } = useMessage()
@ -179,11 +180,12 @@
console.log(nval, oval) console.log(nval, oval)
} }
}) })
const [registerForm1, { resetFields, getFieldsValue, setFieldsValue, validate }] = useForm({ const [registerForm1, { resetFields, getFieldsValue, setFieldsValue, validate, updateSchema }] =
labelWidth: 100, useForm({
schemas: formSchema, labelWidth: 100,
showActionButtonGroup: false, schemas: formSchema,
}) showActionButtonGroup: false,
})
const [ const [
registerForm2, registerForm2,
{ {
@ -333,6 +335,30 @@
await setFieldsValue({ await setFieldsValue({
...res.data, ...res.data,
}) })
let Arr: any = []
await GetClientSourceDetailSelectList({ id: res.data.sourceId }).then((res) => {
res.data.forEach((item) => {
Arr.push({ label: item.detailName, value: item.id })
})
})
updateSchema({
label: '来源明细',
field: 'sourceDetailId',
component: 'Select',
required: false,
dynamicDisabled: ({ values }) => {
return !values.sourceId
},
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: Arr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
})
activeKey.value = '2' activeKey.value = '2'
await setFieldsValue1({ await setFieldsValue1({
...res.data, ...res.data,

@ -19,7 +19,10 @@ import {
getDeptList, getDeptList,
GetFeeCurrencySelectList, GetFeeCurrencySelectList,
} from '/@/api/common' } from '/@/api/common'
import { GetClientSourceDetailSelectList } from '/@/views/operation/seaexport/api/BookingLedger'
import { getOrgTree } from '/@/api/system/org' import { getOrgTree } from '/@/api/system/org'
import { useOptionsStore } from '/@/store/modules/options'
const optionsStore = useOptionsStore()
let ClientFrtList = [] let ClientFrtList = []
const res: API.DataResult = await getClientFrtSelectList() const res: API.DataResult = await getClientFrtSelectList()
if (res.succeeded) { if (res.succeeded) {
@ -550,12 +553,12 @@ export const formSchema: FormSchema[] = [
{ {
field: 'codeName', field: 'codeName',
label: '助记码', label: '助记码',
required: true, // required: true,
component: 'Input', component: 'Input',
defaultValue: '', defaultValue: '',
// dynamicDisabled: ({ values }) => { dynamicDisabled: ({ values }) => {
// return values.id != '' return true
// }, },
colProps: { span: 4 }, colProps: { span: 4 },
}, },
{ {
@ -736,26 +739,95 @@ export const formSchema: FormSchema[] = [
}, },
}, },
{ {
field: 'divider-selects', field: 'divider-selects2',
component: 'Divider', component: 'Divider',
label: '业务属性及干系人', label: '业务属性及干系人',
colProps: { span: 24 }, colProps: { span: 24 },
}, },
// {
// field: 'sourceId',
// label: '业务来源',
// component: 'Select',
// colProps: { span: 4 },
// defaultValue: '',
// componentProps: {
// options: ClientSourceList,
// allowClear: true,
// showSearch: true,
// filterOption: (input: string, option: any) => {
// return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
// },
// },
// },
{ {
field: 'sourceId',
label: '业务来源', label: '业务来源',
component: 'Select', field: 'sourceId',
component: 'ApiSelect',
required: false,
dynamicDisabled: false,
// defaultValue: '',
colProps: { span: 4 }, colProps: { span: 4 },
defaultValue: '', componentProps: ({ formActionType, formModel }) => {
componentProps: { return {
options: ClientSourceList, allowClear: true,
allowClear: true, showSearch: true,
showSearch: true, option: optionsStore.getOptionsByCode('GetClientSourceSelectList'),
filterOption: (input: string, option: any) => { labelField: 'sourceName',
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0 valueField: 'id',
}, filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
onChange: async (e, obj) => {
// if (e && obj) {
// formModel.sourceCode = obj.sourceCode
// }
// if (!e && !obj) {
// formModel.sourceCode = null
// }
if (e) {
if (formActionType) {
const { updateSchema } = formActionType
let Arr: any = []
await GetClientSourceDetailSelectList({ id: e }).then((res) => {
res.data.forEach((item) => {
Arr.push({ label: item.detailName, value: item.id })
})
})
updateSchema({
label: '来源明细',
field: 'sourceDetailId',
component: 'Select',
required: false,
dynamicDisabled: ({ values }) => {
return !values.sourceId
},
colProps: { span: 4 },
componentProps: {
allowClear: true,
options: Arr,
showSearch: true,
filterOption: (input: string, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
},
})
}
}
formModel.sourceDetailId = ''
},
}
}, },
}, },
{
label: '来源明细',
field: 'sourceDetailId',
component: 'Select',
required: false,
dynamicDisabled: ({ values }) => {
return !values.sourceId
},
colProps: { span: 4 },
},
{ {
field: 'saleId', field: 'saleId',
label: '揽货人', label: '揽货人',

@ -20,13 +20,13 @@ export const columns: BasicColumn[] = [
// width: 150, // width: 150,
// }, // },
{ {
title: '客户参数类', title: '客户参数类',
dataIndex: 'paramType', dataIndex: 'paramName',
width: 150, width: 150,
}, },
{ {
title: '客户参数名称', title: '客户参数名称',
dataIndex: 'paramName', dataIndex: 'itemName',
width: 200, width: 200,
}, },
{ {
@ -38,7 +38,7 @@ export const columns: BasicColumn[] = [
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{ {
field: 'paramName', field: 'itemName',
label: '客户参数名称', label: '客户参数名称',
colProps: { span: 6 }, colProps: { span: 6 },
component: 'Input', component: 'Input',
@ -70,11 +70,12 @@ export const formSchema: FormSchema[] = [
GetTenantParamDataSelectList({ code: e }).then((res) => { GetTenantParamDataSelectList({ code: e }).then((res) => {
itemNameOption.value = res.data itemNameOption.value = res.data
}) })
if (obj) { if (e && obj) {
formModel.paramName = obj.label formModel.paramName = obj.label
formModel.paramId = obj.id formModel.paramId = obj.id
formModel.paramType = obj.type formModel.paramType = obj.type
} else { }
if (!e && !obj) {
formModel.paramName = '' formModel.paramName = ''
formModel.paramId = '' formModel.paramId = ''
formModel.paramType = '' formModel.paramType = ''

Loading…
Cancel
Save