// 获取供应商列表 import { getSupplierListByCodes, importTemplate } from '@/api/wms/supplier' // 获取物料列表 import { getItemListByCodes } from '@/api/wms/itembasic' // 获取供应商物料列表 import { getSupplierItemListByCodes } from '@/api/wms/supplieritem' // 获取生产线物料 import { getProductionLineCodelistByCodes } from '@/api/wms/productionlineitem' // 获取包装规格 import { getPackageunitListByCodes } from '@/api/wms/packageunit' // 获取物料包装规格 import { getItemPackageunitListByCodes } from '@/api/wms/itempackage' // 获取客户物料 import { getCustomerItemListByCodes } from '@/api/wms/customeritem' // 获取库存余额 import { getBalanceItemListByCodes } from '@/api/wms/balance' import { isString } from 'min-dash' const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 /** * 业务组件 * tableFormBlur 表格表单失去焦点时候获取焦点 * FormBlur 表格失去焦点时候获取焦点 */ 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] + '没有找到对应数据') 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) }) } } else { if (val && isString(val)) { await formSchema.verificationPage({ codes:val }).then((res) => { const arr1 = val.split(',') const list = ref([]) 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 = [ ...arr1.filter((item) => !arr2.includes(item)), ...arr2.filter((item) => !arr1.includes(item)) ].join(',') message.alert('代码' + str + '没有找到对应数据') formRef.setValues(setV) return } callback(list.value) }) } } } } catch { message.alert('暂无数据') formRef.setValues(setV) return } } // 根据下方输入框失去焦点校验信息 export const getListByBottonInput = async (headerItem, val, row, routeName, formRef, detailData, tableData, callback) => { const tableFormSchemaObj = headerItem?.tableForm console.log(333, tableFormSchemaObj) if (tableFormSchemaObj.verificationPage && tableFormSchemaObj.verificationParams) { if (!val) return; const params = ref({}) const list = ref([]) const searchCondition1 = headerItem.tableForm.searchCondition //获取data.ts参数信息 const verificationParams = headerItem.tableForm.verificationParams //获取data.ts参数信息 // 循环参数设置参数为key:value格式 if (searchCondition1 && searchCondition1.length > 0) { for (let i = 0; i < searchCondition1.length; i++) { if (searchCondition1[i].isMainValue) { params.value[searchCondition1[i].key] = formRef.formModel[ searchCondition1[i].value ] ? formRef.formModel[searchCondition1[i].value] : detailData ? detailData[searchCondition1[i].value] : '' // 是否含有空参数情况 let isNull = false if ( params.value[searchCondition1[i].key] == '' || params.value[searchCondition1[i].key] == undefined ) { isNull = true } if (isNull) { message.warning( searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!' ) return } } else if (searchCondition1[i].isTableRowValue) { if (searchCondition1[i].required) { if (row[searchCondition1[i].value] == '' || row[searchCondition1[i].value] == undefined) { message.warning( searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!' ) return } } row[searchCondition1[i].value] //查询当前table表数据的值 params.value[searchCondition1[i].key] = row[searchCondition1[i].value] } else { // 扩展 转换为筛选条件进行查询 if (searchCondition1[i].isSearch) { if (searchCondition1[i].isFormModel) { //用formModel中的值 if (searchCondition1[i].required) { if ( formRef.formModel[searchCondition1[i].value] == '' || formRef.formModel[searchCondition1[i].value] == undefined ) { message.warning( searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!' ) return } } } else { params.value[searchCondition1[i].key] = searchCondition1[i].value } } else { params.value[searchCondition1[i].key] = searchCondition1[i].value } } } } if (verificationParams && verificationParams.length > 0) { for (let i = 0; i < verificationParams.length; i++) { console.log(54565, verificationParams[i].key) verificationParams[i].key1 = verificationParams[i].key + 's' params.value[verificationParams[i].key1] = val } } const arr1 = val.split(',').map(item => item.trim()) // 判断代码是否存在 if (!headerItem?.tableForm.isRepeat) { const repeatCode = [] if (tableData.length > 0) { tableData.forEach((item) => { const findIndex = arr1.findIndex(valItem => valItem == item[headerItem.field]) if (findIndex > -1) { arr1.splice(findIndex, 1) repeatCode.push(item[headerItem.field]) } }) } if (repeatCode.length > 0) { message.warning(`${t('ts.代码')}${repeatCode.join(',')}${t('ts.已经存在')}`); return; } } await tableFormSchemaObj.verificationPage(params.value).then(async (res) => { list.value = res ? res : [] if (arr1.length != res.length) { const arr2 = res.map((item) => item[headerItem.tableForm.searchField]) const str = [ ...arr1.filter((item) => !arr2.includes(item)), ...arr2.filter((item) => !arr1.includes(item)) ].join(',') console.log(arr1.filter((item) => arr2.includes(item))) console.log(22, str) if (str) { message.alert('代码' + str + '没有找到对应数据') return } } callback(list.value) }) return } }