From 5d4292c6a09c7ce585179eda1e2f77b72a259210 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Thu, 11 Jul 2024 17:44:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=B1=E5=8E=BB=E7=84=A6=E7=82=B9=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BasicForm/src/BasicForm.vue | 170 +++++++++++++----- .../itemManage/bom/bom.data.ts | 22 ++- 2 files changed, 141 insertions(+), 51 deletions(-) diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue index e162d86d9..0d0a1d608 100644 --- a/src/components/BasicForm/src/BasicForm.vue +++ b/src/components/BasicForm/src/BasicForm.vue @@ -844,79 +844,171 @@ const onBlur = async (field, e) => { let formSchemaObj = formSchema.value.find((item) => item.field == field)?.componentProps if (formSchemaObj?.enterSearch) { - if (formSchemaObj.verificationPage) { - let searchCondition1 = formSchema.value.find((item) => item.field == field).componentProps - .searchCondition //获取data.ts参数信息 - let verificationParams = formSchema.value.find((item) => item.field == field).componentProps - .verificationParams //获取失去焦点参数信息 + if (formSchemaObj.searchPage) { + //获取data.ts参数信息 + let searchCondition = + formSchema.value.find((item) => item.field == field)?.componentProps?.searchCondition || [] + //获取失去焦点参数信息 + let verificationParams = + formSchema.value.find((item) => item.field == field)?.componentProps?.verificationParams || + [] console.log('走新方法啦') + searchCondition = [...searchCondition, ...verificationParams] if (e && isString(e)) { let setV = {} setV[field] = '' let params = {} // 循环参数设置参数为key:value格式 - if (searchCondition1 && searchCondition1.length > 0) { - for (let i = 0; i < searchCondition1.length; i++) { - if (searchCondition1[i].isMainValue) { - params[searchCondition1[i].key] = formRef.value.formModel[searchCondition1[i].value] - ? formRef.value.formModel[searchCondition1[i].value] + // if (searchCondition1 && searchCondition1.length > 0) { + // for (let i = 0; i < searchCondition1.length; i++) { + // searchCondition1[i].isSearch = true + // if (searchCondition1[i].isMainValue) { + // params[searchCondition1[i].key] = formRef.value.formModel[searchCondition1[i].value] + // ? formRef.value.formModel[searchCondition1[i].value] + // : props.detailData + // ? props.detailData[searchCondition1[i].value] + // : '' + // // 是否含有空参数情况 + // let isNull = false + // if (params[searchCondition1[i].key] == '' || params[searchCondition1[i].key] == undefined) { + // isNull = true + // } + // if (isNull) { + // message.warning( + // searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!' + // ) + // return + // } + // } else { + // // 扩展 转换为筛选条件进行查询 + // if (searchCondition1[i].isSearch) { + // if (searchCondition1[i].isFormModel) { + // //用formModel中的值 + // if (searchCondition1[i].required) { + // if ( + // formRef.value.formModel[searchCondition1[i].value] == '' || + // formRef.value.formModel[searchCondition1[i].value] == undefined + // ) { + // message.warning( + // searchCondition1[i].message + // ? searchCondition1[i].message + // : '前置条件未选择!' + // ) + // return + // } + // } + // } + // params[searchCondition1[i].key] = searchCondition1[i].value + // } else { + // params[searchCondition1[i].key] = searchCondition1[i].value + // } + // } + // } + // } + // 判断查询条件中,是否存在指向主表的数据 + const _searchCondition = {} + if (searchCondition && searchCondition.length > 0) { + // 转换筛选条件所需 + let filters: any[] = [] + for (var i = 0; i < searchCondition.length; i++) { + // searchCondition.forEach((item) => { + // 查询条件为主表某字段,需要赋值主表数据,数据来源是详情的,赋值需要从row中获取 + if (searchCondition[i].isMainValue) { + _searchCondition[searchCondition[i].key] = formRef.value.formModel[ + searchCondition[i].value + ] + ? formRef.value.formModel[searchCondition[i].value] : props.detailData - ? props.detailData[searchCondition1[i].value] + ? props.detailData[searchCondition[i].value] + : // : row + // ? row[searchCondition[i].value] + e + ? e.trim() : '' // 是否含有空参数情况 let isNull = false - if (params[searchCondition1[i].key] == '' || params[searchCondition1[i].key] == undefined) { + if ( + _searchCondition[searchCondition[i].key] == '' || + _searchCondition[searchCondition[i].key] == undefined + ) { isNull = true } if (isNull) { message.warning( - searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!' + searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' ) return } - } else { + } + // else if (searchCondition[i].isTableRowValue) { + // if (searchCondition[i].required) { + // if (row[searchCondition[i].value] == '' || row[searchCondition[i].value] == undefined) { + // message.warning( + // searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' + // ) + // return + // } + // } + // row[searchCondition[i].value] + // //查询当前table表数据的值 + // _searchCondition[searchCondition[i].key] = row[searchCondition[i].value] + // } + else { // 扩展 转换为筛选条件进行查询 - if (searchCondition1[i].isSearch) { - if (searchCondition1[i].isFormModel) { + if (searchCondition[i].isSearch) { + if (searchCondition[i].isFormModel) { //用formModel中的值 - if (searchCondition1[i].required) { + if (searchCondition[i].required) { if ( - formRef.value.formModel[searchCondition1[i].value] == '' || - formRef.value.formModel[searchCondition1[i].value] == undefined + formRef.value.formModel[searchCondition[i].value] == '' || + formRef.value.formModel[searchCondition[i].value] == undefined ) { message.warning( - searchCondition1[i].message - ? searchCondition1[i].message - : '前置条件未选择!' + searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' ) return } } + filters.push({ + action: searchCondition[i].action, + column: searchCondition[i].key, + value: formRef.value.formModel[searchCondition[i].value] + ? formRef.value.formModel[searchCondition[i].value] + : e.trim() + }) + } else { + filters.push({ + action: searchCondition[i].action, + column: searchCondition[i].key, + value: searchCondition[i].value + }) } - params[searchCondition1[i].key] = searchCondition1[i].value } else { - params[searchCondition1[i].key] = searchCondition1[i].value + _searchCondition[searchCondition[i].key] = searchCondition[i].value } } } - } - // 循环参数设置参数为key:value格式 - if (verificationParams && verificationParams.length > 0) { - for (let i = 0; i < verificationParams.length; i++) { - params[verificationParams[i].key] = e?.trim() + if (filters.length > 0) { + _searchCondition.isSearch = true + _searchCondition.filters = filters } } - console.log(333,params) + let obj = { + by: 'ASC', + pageNo: 1, + pageSize: 20 + } + params = { ..._searchCondition, ...obj } + // console.log(333,params) if (!formSchemaObj?.multiple && e.indexOf(',') > -1) { message.alert('该输入框只能输入一条数据') formRef.value.setValues(setV) return } - await formSchemaObj.verificationPage(params).then((res) => { + await formSchemaObj.searchPage(params).then((res) => { let arr1 = e.split(',') let list = ref([]) - list.value = res - console.log(222, list.value) + list.value = res.list if (list.value?.length == 0) { message.alert('暂无数据') formRef.value.setValues(setV) @@ -932,19 +1024,7 @@ const onBlur = async (field, e) => { formRef.value.setValues(setV) return } - // emit('searchTableSuccess', formField, searchField, list.value, formRef.value, 'form') - // callback(list.value) }) - // emit( - // 'onBlur', - // field, - // e, - // formSchemaObj.componentProps.searchField, - // formSchemaObj, - // formRef.value, - // 'form', - // obj - // ) } } else { if ( diff --git a/src/views/wms/basicDataManage/itemManage/bom/bom.data.ts b/src/views/wms/basicDataManage/itemManage/bom/bom.data.ts index e8729c17f..31f22135a 100644 --- a/src/views/wms/basicDataManage/itemManage/bom/bom.data.ts +++ b/src/views/wms/basicDataManage/itemManage/bom/bom.data.ts @@ -32,10 +32,13 @@ export const Bom = useCrudSchemas(reactive([ searchTitle: '物料基础信息', // 查询弹窗标题 searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 searchPage: ItembasicApi.selectItembasicPageToFgAndSemibasicPage, // 查询弹窗所需分页方法 - verificationPage: ItembasicApi.getItemListByCodes, // 失去焦点校验输入框的数据内容存在 verificationParams: [{ - key: 'codes', + key: 'code', + action: '==', value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true }], // 失去焦点校验参数 } } @@ -58,10 +61,13 @@ export const Bom = useCrudSchemas(reactive([ searchTitle: '物料基础信息', // 查询弹窗标题 searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 searchPage: ItembasicApi.selectTypeToItembasic, // 查询弹窗所需分页方法 - verificationPage: ItembasicApi.getItemListByCodes, // 失去焦点校验输入框的数据内容存在 verificationParams: [{ - key: 'codes', + key: 'code', + action: '==', value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true }], // 失去焦点校验参数 } } @@ -114,12 +120,16 @@ export const Bom = useCrudSchemas(reactive([ searchCondition: [{ key: 'available', value: 'TRUE', - isMainValue: false + isMainValue: false, }], verificationPage: ProcessApi.getProcessByCodes, // 失去焦点校验输入框的数据内容存在 verificationParams: [{ - key: 'codes', + key: 'code', + action: '==', value: '', + isMainValue: false, + isSearch: 'true', + isFormModel:true }], // 失去焦点校验参数 } }