From 10d02eb2acb831a39a112bd314ac9f56498ebcb9 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Tue, 30 Jul 2024 15:51:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E8=AE=A1=E5=88=92=E5=A4=B1?= =?UTF-8?q?=E5=8E=BB=E7=84=A6=E7=82=B9=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/business/inputBlur.ts | 528 ++++++++------- .../BasicForm/src/BasicFormWmsCount.vue | 620 +++++++++++------- src/components/Form/src/Form.vue | 2 +- .../src/TableFormCountPlan.vue | 12 +- .../count/countPlanMain/countPlanMain.data.ts | 35 +- 5 files changed, 697 insertions(+), 500 deletions(-) diff --git a/src/api/wms/business/inputBlur.ts b/src/api/wms/business/inputBlur.ts index d656865a9..9fb2ca26e 100644 --- a/src/api/wms/business/inputBlur.ts +++ b/src/api/wms/business/inputBlur.ts @@ -25,231 +25,36 @@ const { t } = useI18n() // 国际化 export const tableFormBlurVer = async (headerItem, val, row, index, routeName, formRef, detailData, tableData, callback) => { try { - if (headerItem?.tableForm?.searchPage && headerItem?.tableForm?.verificationParams) { - if (val && isString(val)) { - if (val.indexOf(',') > -1) { - message.alert('该输入框只能输入一条数据') - row[headerItem.field] = '' - return - } - // 校验 - const params = ref({}) - const filters: any[] = [] - const searchCondition = headerItem.tableForm.searchCondition //获取data.ts参数信息 - const verificationParams = headerItem.tableForm.verificationParams //获取data.ts参数信息 - // 循环参数设置参数为key:value格式 - if (searchCondition && searchCondition.length > 0) { - for (let i = 0; i < searchCondition.length; i++) { - if (searchCondition[i].isMainValue) { - params.value[searchCondition[i].key] = formRef.formModel[ - searchCondition[i].value - ] - ? formRef.formModel[searchCondition[i].value] - : detailData - ? detailData[searchCondition[i].value] - : row - ? row[searchCondition[i].value] - : '' - // 是否含有空参数情况 - let isNull = false - if ( - params.value[searchCondition[i].key] == '' || - params.value[searchCondition[i].key] == undefined - ) { - isNull = true - } - if (isNull) { - message.warning( - searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' - ) - row[headerItem.field] = '' - return - } - filters.push({ - action: searchCondition[i].action || '==', - column: searchCondition[i].key, - value: formRef.formModel[ - searchCondition[i].value - ] - ? formRef.formModel[searchCondition[i].value] - : detailData - ? detailData[searchCondition[i].value] - : row - ? row[searchCondition[i].value] - : '' - }) - } 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 : '前置条件未选择!' - ) - row[headerItem.field] = '' - return - } - } - //查询当前table表数据的值 - filters.push({ - action: searchCondition[i].action || '==', - column: searchCondition[i].key, - value: row[searchCondition[i].value] - }) - } else { - // 扩展 转换为筛选条件进行查询 - if (searchCondition[i].isSearch) { - if (searchCondition[i].isFormModel) { - //用formModel中的值 - if (searchCondition[i].required) { - if ( - formRef.formModel[searchCondition[i].value] == '' || - formRef.formModel[searchCondition[i].value] == undefined - ) { - message.warning( - searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' - ) - row[headerItem.field] = '' - return - } - } - filters.push({ - action: searchCondition[i].action || '==', - column: searchCondition[i].key, - value: formRef.formModel[searchCondition[i].value] - }) - } else { - filters.push({ - action: searchCondition[i].action || '==', - column: searchCondition[i].key, - value: searchCondition[i].value - }) - } - } else { - filters.push({ - action: searchCondition[i].action || '==', - column: searchCondition[i].key, - value: searchCondition[i].value - }) - } - } - } - } - if (verificationParams && verificationParams.length > 0) { - // 转换筛选条件所需 - for (let i = 0; i < verificationParams.length; i++) { - // 扩展 转换为筛选条件进行查询 - if (verificationParams[i].isSearch) { - if (verificationParams[i].isFormModel) { - filters.push({ - action: verificationParams[i].action, - column: verificationParams[i].key, - value: formRef.formModel[verificationParams[i].value] - ? formRef.formModel[verificationParams[i].value] - : val.trim() - }) - } else { - filters.push({ - action: searchCondition[i].action || '==', - column: searchCondition[i].key, - value: searchCondition[i].value - }) - } - } else { - params[verificationParams[i].key] = verificationParams[i].value - } - } - } - // 判断改包装号是否已经添加 - const seen = new Set() - const repeatCode = new Set() - const arr = tableData.map((item) => item[headerItem.field]?.trim()) - arr.forEach((item) => { - if (item) { - if (seen.has(item)) { - repeatCode.add(item) - } else { - seen.add(item) - } - } - }) - const arr1 = Array.from(repeatCode) - if (arr1.length > 0) { - message.warning(`${arr1.join(',')}${t('ts.已经存在')}`) - row[headerItem.field] = '' - return - } - if (filters.length > 0) { - params.value.isSearch = true - params.value.filters = filters - } - const obj = { - by: 'ASC', - pageNo: 1, - pageSize: 20 - } - params.value = { - isSearch: params.value.isSearch, - filters: params.value.filters, - ...obj - } - const list = ref() - // 调取包装接口 - await headerItem.tableForm.searchPage(params.value).then(async (res) => { - - list.value = res?.list?.length > 0 ? res.list.slice(0, 1) : [] - // 只查一条数据,多条数据查询默认显示不存在 - if (list.value?.length == 0) { - message.alert('代码' + row[headerItem.field] + '没有找到对应数据') + if (headerItem?.tableForm?.searchPage && headerItem?.tableForm?.verificationParams) { + if (val && isString(val)) { + if (val.indexOf(',') > -1) { + message.alert('该输入框只能输入一条数据') row[headerItem.field] = '' return } - callback(list.value) - }) - } - } - } catch { - message.warning('暂无数据') - row[headerItem.field] = '' - return - } -} -export const FormBlur = async (field, val, routeName, formRef, detailData, formSchema, callback) => { - const setV = {} - setV[field] = '' - try { - if (formSchema.searchPage && formSchema.verificationParams) { - //获取data.ts参数信息 - const searchCondition = formSchema?.searchCondition || [] - //获取失去焦点参数信息 - const verificationParams = formSchema?.verificationParams || - [] - console.log('走新方法啦') - // searchCondition = [...searchCondition, ...verificationParams] - - if (val && isString(val)) { - - let params = {} - const _searchCondition = {} + // 校验 + const params = ref({}) const filters: any[] = [] + const searchCondition = headerItem.tableForm.searchCondition //获取data.ts参数信息 + const verificationParams = headerItem.tableForm.verificationParams //获取data.ts参数信息 + // 循环参数设置参数为key:value格式 if (searchCondition && searchCondition.length > 0) { - // 转换筛选条件所需 for (let i = 0; i < searchCondition.length; i++) { - // searchCondition.forEach((item) => { - // 查询条件为主表某字段,需要赋值主表数据,数据来源是详情的,赋值需要从row中获取 if (searchCondition[i].isMainValue) { - _searchCondition[searchCondition[i].key] = formRef.formModel[ + params.value[searchCondition[i].key] = formRef.formModel[ searchCondition[i].value ] ? formRef.formModel[searchCondition[i].value] : detailData ? detailData[searchCondition[i].value] - : // : row - // ? row[searchCondition[i].value] - '' + : row + ? row[searchCondition[i].value] + : '' // 是否含有空参数情况 let isNull = false if ( - _searchCondition[searchCondition[i].key] == '' || - _searchCondition[searchCondition[i].key] == undefined + params.value[searchCondition[i].key] == '' || + params.value[searchCondition[i].key] == undefined ) { isNull = true } @@ -257,30 +62,39 @@ export const FormBlur = async (field, val, routeName, formRef, detailData, formS message.warning( searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' ) - formRef.setValues(setV) + row[headerItem.field] = '' return } filters.push({ action: searchCondition[i].action || '==', column: searchCondition[i].key, - value: formRef.formModel[searchCondition[i].value] + value: formRef.formModel[ + searchCondition[i].value + ] + ? formRef.formModel[searchCondition[i].value] + : detailData + ? detailData[searchCondition[i].value] + : row + ? row[searchCondition[i].value] + : '' }) - } - - // 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 { + } 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 : '前置条件未选择!' + ) + row[headerItem.field] = '' + return + } + } + //查询当前table表数据的值 + filters.push({ + action: searchCondition[i].action || '==', + column: searchCondition[i].key, + value: row[searchCondition[i].value] + }) + } else { // 扩展 转换为筛选条件进行查询 if (searchCondition[i].isSearch) { if (searchCondition[i].isFormModel) { @@ -293,7 +107,7 @@ export const FormBlur = async (field, val, routeName, formRef, detailData, formS message.warning( searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' ) - formRef.setValues(setV) + row[headerItem.field] = '' return } } @@ -334,48 +148,261 @@ export const FormBlur = async (field, val, routeName, formRef, detailData, formS }) } else { filters.push({ - action: verificationParams[i].action, - column: verificationParams[i].key, - value: verificationParams[i].value + action: searchCondition[i].action || '==', + column: searchCondition[i].key, + value: searchCondition[i].value }) } } else { - _searchCondition[verificationParams[i].key] = verificationParams[i].value + params[verificationParams[i].key] = verificationParams[i].value } } } - console.log(filters) + // 判断改包装号是否已经添加 + const seen = new Set() + const repeatCode = new Set() + const arr = tableData.map((item) => item[headerItem.field]?.trim()) + arr.forEach((item) => { + if (item) { + if (seen.has(item)) { + repeatCode.add(item) + } else { + seen.add(item) + } + } + }) + const arr1 = Array.from(repeatCode) + if (arr1.length > 0) { + message.warning(`${arr1.join(',')}${t('ts.已经存在')}`) + row[headerItem.field] = '' + return + } if (filters.length > 0) { - _searchCondition.isSearch = true - _searchCondition.filters = filters + params.value.isSearch = true + params.value.filters = filters } - console.log(4545, _searchCondition) const obj = { by: 'ASC', pageNo: 1, pageSize: 20 } - console.log(888, _searchCondition) - params = { - isSearch: _searchCondition.isSearch, - filters: _searchCondition.filters, + params.value = { + isSearch: params.value.isSearch, + filters: params.value.filters, ...obj } - // console.log(333,params) - if (!formSchema?.multiple && val.indexOf(',') > -1) { - message.alert('该输入框只能输入一条数据') - formRef.setValues(setV) - return + const list = ref() + // 调取包装接口 + await headerItem.tableForm.searchPage(params.value).then(async (res) => { + + list.value = res?.list?.length > 0 ? res.list.slice(0, 1) : [] + // 只查一条数据,多条数据查询默认显示不存在 + if (list.value?.length == 0) { + message.alert('代码' + row[headerItem.field] + '没有找到对应数据') + row[headerItem.field] = '' + return + } + callback(list.value) + }) + } + } + } catch { + message.warning('暂无数据') + row[headerItem.field] = '' + return + } +} +export const FormBlur = async (field, val, routeName, formRef, detailData, formSchema, callback) => { + const setV = {} + setV[field] = '' + try { + if (formSchema.searchPage && formSchema.verificationParams) { + if (!formSchema.multiple) { + //获取data.ts参数信息 + const searchCondition = formSchema?.searchCondition || [] + //获取失去焦点参数信息 + const verificationParams = formSchema?.verificationParams || + [] + console.log('走新方法啦') + // searchCondition = [...searchCondition, ...verificationParams] + + if (val && isString(val)) { + let params = {} + const _searchCondition = {} + const filters: any[] = [] + if (searchCondition && searchCondition.length > 0) { + // 转换筛选条件所需 + for (let i = 0; i < searchCondition.length; i++) { + // searchCondition.forEach((item) => { + // 查询条件为主表某字段,需要赋值主表数据,数据来源是详情的,赋值需要从row中获取 + if (searchCondition[i].isMainValue) { + _searchCondition[searchCondition[i].key] = formRef.formModel[ + searchCondition[i].value + ] + ? formRef.formModel[searchCondition[i].value] + : detailData + ? detailData[searchCondition[i].value] + : // : row + // ? row[searchCondition[i].value] + '' + // 是否含有空参数情况 + let isNull = false + if ( + _searchCondition[searchCondition[i].key] == '' || + _searchCondition[searchCondition[i].key] == undefined + ) { + isNull = true + } + if (isNull) { + message.warning( + searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' + ) + formRef.setValues(setV) + return + } + filters.push({ + action: searchCondition[i].action || '==', + column: searchCondition[i].key, + value: formRef.formModel[searchCondition[i].value] + }) + } + + // 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 (searchCondition[i].isSearch) { + if (searchCondition[i].isFormModel) { + //用formModel中的值 + if (searchCondition[i].required) { + if ( + formRef.formModel[searchCondition[i].value] == '' || + formRef.formModel[searchCondition[i].value] == undefined + ) { + message.warning( + searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!' + ) + formRef.setValues(setV) + return + } + } + filters.push({ + action: searchCondition[i].action || '==', + column: searchCondition[i].key, + value: formRef.formModel[searchCondition[i].value] + }) + } else { + filters.push({ + action: searchCondition[i].action || '==', + column: searchCondition[i].key, + value: searchCondition[i].value + }) + } + } else { + filters.push({ + action: searchCondition[i].action || '==', + column: searchCondition[i].key, + value: searchCondition[i].value + }) + } + } + } + } + if (verificationParams && verificationParams.length > 0) { + // 转换筛选条件所需 + for (let i = 0; i < verificationParams.length; i++) { + // 扩展 转换为筛选条件进行查询 + if (verificationParams[i].isSearch) { + if (verificationParams[i].isFormModel) { + filters.push({ + action: verificationParams[i].action, + column: verificationParams[i].key, + value: formRef.formModel[verificationParams[i].value] + ? formRef.formModel[verificationParams[i].value] + : val.trim() + }) + } else { + filters.push({ + action: verificationParams[i].action, + column: verificationParams[i].key, + value: verificationParams[i].value + }) + } + } else { + _searchCondition[verificationParams[i].key] = verificationParams[i].value + } + } + } + console.log(filters) + if (filters.length > 0) { + _searchCondition.isSearch = true + _searchCondition.filters = filters + } + const obj = { + by: 'ASC', + pageNo: 1, + pageSize: 20 + } + params = { + isSearch: _searchCondition.isSearch, + filters: _searchCondition.filters, + ...obj + } + // console.log(333,params) + if (!formSchema?.multiple && val.indexOf(',') > -1) { + message.alert('该输入框只能输入一条数据') + formRef.setValues(setV) + return + } + await formSchema.searchPage(params).then((res) => { + const arr1 = val.split(',') + const list = ref([]) + list.value = res?.list?.length > 0 ? res.list.slice(0, 1) : [] + if (list.value?.length == 0) { + message.alert('暂无数据') + formRef.setValues(setV) + return + } + if (arr1.length != list.value.length) { + const arr2 = list.value.map((item) => item.code) + const str = [ + ...arr1.filter((item) => !arr2.includes(item)), + ...arr2.filter((item) => !arr1.includes(item)) + ].join(',') + message.alert('代码' + str + '没有找到对应数据') + formRef.setValues(setV) + return + } + callback(list.value) + }) + } - await formSchema.searchPage(params).then((res) => { + } else { + if (val && isString(val)) { + await formSchema.verificationPage({ + codes:val + }).then((res) => { const arr1 = val.split(',') const list = ref([]) - list.value = res?.list?.length > 0 ? res.list.slice(0, 1) : [] + list.value = res?.length > 0 ? res : [] if (list.value?.length == 0) { message.alert('暂无数据') formRef.setValues(setV) return } + console.log(arr1) + console.log(list.value) if (arr1.length != list.value.length) { const arr2 = list.value.map((item) => item.code) const str = [ @@ -388,6 +415,7 @@ export const FormBlur = async (field, val, routeName, formRef, detailData, formS } callback(list.value) }) + } } } } catch { @@ -396,7 +424,7 @@ export const FormBlur = async (field, val, routeName, formRef, detailData, formS return } - + } // 根据下方输入框失去焦点校验信息 @@ -511,7 +539,7 @@ export const getListByBottonInput = async (headerItem, val, row, routeName, form return } } - + callback(list.value) }) return diff --git a/src/components/BasicForm/src/BasicFormWmsCount.vue b/src/components/BasicForm/src/BasicFormWmsCount.vue index 9b7543781..398f38994 100644 --- a/src/components/BasicForm/src/BasicFormWmsCount.vue +++ b/src/components/BasicForm/src/BasicFormWmsCount.vue @@ -6,142 +6,155 @@ :close-on-click-modal="false" :vLoading="formLoading" > - -