diff --git a/src/api/eam/equipmentRepairJobMain/index.ts b/src/api/eam/equipmentRepairJobMain/index.ts index e06982c20..3e7cad2b0 100644 --- a/src/api/eam/equipmentRepairJobMain/index.ts +++ b/src/api/eam/equipmentRepairJobMain/index.ts @@ -69,6 +69,11 @@ export const createEquipmentRepairJobMain = async (data: EquipmentRepairJobMainV return await request.post({ url: `/eam/equipment-repair-job-main/create`, data }) } +// 维修验证更新工单主 +export const wxVerifyEquipmentRepairJobMain = async (data: EquipmentRepairJobMainVO) => { + return await request.post({ url: `/eam/equipment-repair-job-main/wxVerify`, data }) +} + // 修改维修工单主 export const updateEquipmentRepairJobMain = async (data: EquipmentRepairJobMainVO) => { return await request.put({ url: `/eam/equipment-repair-job-main/update`, data }) diff --git a/src/api/eam/equipmentReportRepairRequest/index.ts b/src/api/eam/equipmentReportRepairRequest/index.ts index 10542bbf9..c804cc467 100644 --- a/src/api/eam/equipmentReportRepairRequest/index.ts +++ b/src/api/eam/equipmentReportRepairRequest/index.ts @@ -77,6 +77,11 @@ export const updateEquipmentReportRepairOrder = async (data: EquipmentReportRepa return await request.post({ url: `/eam/equipment-report-repair-request/updateOrder`, data }) } +// 审核报修工单状态 +export const audiEquipmentReportRepairOrder = async (data: EquipmentReportRepairRequestVO) => { + return await request.post({ url: `/eam/equipment-report-repair-request/audiOrder`, data }) +} + // 完成并创建维修工单 export const createEquipmentWeixiuOrder = async (data: EquipmentReportRepairRequestVO) => { return await request.post({ url: `/eam/equipment-report-repair-request/updateCreateOrder`, data }) diff --git a/src/api/wms/balance/index.ts b/src/api/wms/balance/index.ts index 839ac877a..fbca93edf 100644 --- a/src/api/wms/balance/index.ts +++ b/src/api/wms/balance/index.ts @@ -189,4 +189,8 @@ export const getBalanceByBusinessTypeByItemType = async (params) => { } else { return await request.get({ url: `/wms/balance/pageBusinessTypeToBalance`, params }) } -} \ No newline at end of file +} +// 根据code获取数据列表 +export const getBalanceItemListByCodes = async (data) => { +   return await request.get({ url: `/wms/balance/listByCodes`,data }) + } \ No newline at end of file diff --git a/src/api/wms/business/business.ts b/src/api/wms/business/business.ts new file mode 100644 index 000000000..6329afa0b --- /dev/null +++ b/src/api/wms/business/business.ts @@ -0,0 +1,524 @@ +// 获取供应商列表 +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) => { + if ( + headerItem.field == 'fromPackingNumber' || + headerItem.field == 'packingNumber' || + headerItem.field == 'itemCode' || + headerItem.field == 'packUnit' || + headerItem.field == 'secondPackUnit' || + headerItem.field == 'fromPackUnit' || + headerItem.field == 'toPackUnit'|| + headerItem.field == 'toPackUnit'|| + headerItem.field == 'supplierItemCode' + + ) { + let searchField = headerItem.field + let pageApi = ref() + let params = ref() + + if (val && isString(val)) { + // const obj = props.tableAllSchemas.tableFormColumns.find((item) => item.field == headerItem.field) + if (val.indexOf(',') > -1) { + message.alert('该输入框只能输入一条数据') + row[headerItem.field] = '' + return + } + // 校验 + let params = ref({}) + let searchCondition1 = headerItem.tableForm.searchCondition //获取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] + : row + ? row[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 : '前置条件未选择!' + ) + row[headerItem.field] = '' + return + } + } 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 : '前置条件未选择!' + ) + row[headerItem.field] = '' + return + } + } + } + } else { + params.value[searchCondition1[i].key] = searchCondition1[i].value + } + } + } + } + params.value[headerItem.field] = val?.trim() + // 判断改包装号是否已经添加 + const seen = new Set() + const repeatCode = new Set() + let arr = tableData.map((item) => item[headerItem.field]?.trim()) + arr.forEach((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 ( + headerItem.field == 'fromPackingNumber' || + headerItem.field == 'packingNumber' || + headerItem.field == 'itemCode' + ) { + // 业务 + // 采购退货申请,制品拆解,调拨出库,报废出库申请,合格转隔离,隔离转合格,隔离转报废,合格转报废,报废转隔离,库存移动申请,库存修改申请 + if ( + routeName == 'PurchasereturnRequestMain' || + routeName == 'ProductdismantleRequestMain' || + routeName == 'TransferissueRequestMain' || + routeName == 'ScrapRequestMain' || + routeName == 'OktoholdRequestMain' || + routeName == 'HoldtookRequestMain' || + routeName == 'HoldtoscrapRequestMain' || + routeName == 'OktoscrapRequestMain' || + routeName == 'ScraptoholdRequestMain' || + routeName == 'InventorymoveRequestMain' || + routeName == 'InventorychangeRequestMain' + ) { + // //合格转隔离,隔离转合格,隔离转报废,合格转报废,报废转隔离,库存移动申请参数稍有不同 + // if ( + // routeName == 'OktoholdRequestMain' || + // routeName == 'HoldtookRequestMain' || + // routeName == 'HoldtoscrapRequestMain' || + // routeName == 'OktoscrapRequestMain' || + // routeName == 'ScraptoholdRequestMain' || + // routeName == 'InventorymoveRequestMain' || + // routeName == 'InventorychangeRequestMain' + // ) { + // searchField = 'packingNumber' + // params.value.packingNumber = val?.trim() + // } + // pageApi.value = getBalanceItemListByCodes + } else if ( + routeName == 'RepleinshRequestMain' || + routeName == 'IssueRequestMain' || + routeName == 'InventoryinitRequestMain' + ) { + // 补料申请业务 + pageApi.value = getItemListByCodes + searchField = 'code' + params.value.codes = val?.trim() + } else if ( + routeName == 'ProductionMainAssemble' || + routeName == 'ProductionMainASparePart' || + routeName == 'ProductionMainPredictSparePart' || + routeName == 'ProductreceiptRequestMain' || + routeName == 'ProductreceiptRequestMainA' || + routeName == 'ProductreceiptscrapRequestMain' || + routeName == 'ProductscrapRequestMain' + ) { + // 装配计划,裝配备件计划,预备产件计划,预生产收货申请,装配收货申请,报修收货申请,制品报废申请 + pageApi.value = getProductionLineCodelistByCodes + params.value.productionLineCode= + formRef.formModel.productionLine || formRef.formModel.productionLineCode || row.productionLine || row.productionLineCode, + params.value.itemCodes=val?.trim() + } + } else if ( + headerItem.field == 'packUnit' || + headerItem.field == 'secondPackUnit' || + headerItem.field == 'fromPackUnit' || + headerItem.field == 'toPackUnit' + ) { + searchField = 'packUnit' + //包装规格 + // 预生产收货申请,装配收货申请,报修收货申请,客户退货申请,计划外入库,计划外出库,翻包申请 + if ( + routeName == 'ProductreceiptRequestMain' || + routeName == 'ProductreceiptRequestMainA' || + routeName == 'ProductreceiptscrapRequestMain' || + routeName == 'CustomerreturnRequestMain' || + routeName == 'UnplannedreceiptRequestMain' || + routeName == 'UnplannedissueJobMain' || + routeName == 'PackageoverRequestMain' + ) { + params.value.itemCode= row.itemCode + params.value.packUnit= val?.trim() + pageApi.value = getItemPackageunitListByCodes + } + } else if ( + headerItem.field == 'supplierItemCode' + ) { + // 生产退料申请,隔离退料申请 + if ( + routeName == 'ProductionreturnRequestMain' || + routeName == 'ProductionreturnRequestMainNo' + ) { + searchField = 'supplierCode' + params.value.itemCodes= row.itemCode + params.value.supplierCode= val?.trim() + pageApi.value = getSupplierItemListByCodes + } + } + const list = ref() + // 调取包装接口 + await pageApi.value(params.value).then(async (res) => { + list.value = res ? res : [] + // 只查一条数据,多条数据查询默认显示不存在 + if (res.length == 1) { + callback(searchField,list.value) + } else { + message.alert('代码' + row[headerItem.field] + '没有找到对应数据') + row[headerItem.field] = '' + return + } + }) + } + } +} +export const FormBlur = async (formField, val,routeName,formRef,detailData,formSchema,callback) => { + let pageApi = ref() + let params = ref() + let setV = {} + setV[formField] = '' + if (val && isString(val)) { + if ( + formField == 'supplierCode' || + formField == 'itemCode' || + formField == 'productItemCode' || + formField == 'componentItemCode' || + formField == 'packUnit' || + formField == 'inPackUnit' || + formField == 'fromPackingNumber' + ) { + let searchField = 'code' + if (formField == 'supplierCode') { + params.value = val?.trim() + pageApi.value = getSupplierListByCodes + } else if ( + formField == 'itemCode' || + formField == 'productItemCode' || + formField == 'componentItemCode' + ) { + // 销售价格单 + if (routeName == 'Saleprice') { + params.value = { + customerCode: formRef.formModel.customerCode, + itemCodes: val?.trim() + } + pageApi.value = getCustomerItemListByCodes + searchField = 'itemCode' + }else if (routeName == 'ProductscrapRequestMain') { + // 制品报废申请 + params.value = { + productionLineCode: + detailData.productionLine || detailData.productionLineCode, + itemCodes: val?.trim() + } + pageApi.value = getProductionLineCodelistByCodes + searchField = 'itemCode' + }else { + // params.value = val.trim() + searchField = 'code' + + params.value={ + codes:val?.trim() + } + pageApi.value = getItemListByCodes + } + } else if (formField == 'packUnit') { + if(routeName == 'Itemwarehouse'||routeName == 'Callmaterials'){//物料仓库默认配置,叫料标签 + searchField = 'packUnit' + params.value = { + itemCode: formRef.formModel.itemCode, + packUnit: val?.trim() + } + pageApi.value = getItemPackageunitListByCodes + }else{ + params.value = val?.trim() + pageApi.value = getPackageunitListByCodes + } + } else if (formField == 'inPackUnit') { + params.value = { + itemCode: formRef.formModel.itemCode, + packUnit: val.trim() + } + pageApi.value = getItemPackageunitListByCodes + } + // else if (formField == 'fromPackingNumber') { + // params.value = { + // packingNumber: val?.trim() + // } + // pageApi.value = getBalanceItemListByCodes + // } + let obj = {} + let searchCondition1 = formSchema.find((item) => item.field == formField).componentProps + .searchCondition //获取data.ts参数信息 + // 循环参数设置参数为key:value格式 + if (searchCondition1 && searchCondition1.length > 0) { + for (let i = 0; i < searchCondition1.length; i++) { + if (searchCondition1[i].isMainValue) { + obj[searchCondition1[i].key] = formRef.formModel[searchCondition1[i].value] + ? formRef.formModel[searchCondition1[i].value] + : detailData + ? detailData[searchCondition1[i].value] + : '' + // 是否含有空参数情况 + let isNull = false + if (obj[searchCondition1[i].key] == '' || obj[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.formModel[searchCondition1[i].value] == '' || + formRef.formModel[searchCondition1[i].value] == undefined + ) { + message.warning( + searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!' + ) + return + } + } + } + } else { + obj[searchCondition1[i].key] = searchCondition1[i].value + } + } + } + } + + let obj1 = formSchema.find((item) => item.field == formField) + if (!obj1.componentProps.multiple && val.indexOf(',') > -1) { + message.alert('该输入框只能输入一条数据') + formRef.setValues(setV) + return + } + await pageApi.value(params.value).then((res) => { + let arr1 = val.split(',') + let list = ref([]) + list.value = res + if (list.value?.length == 0) { + message.alert('暂无数据') + formRef.setValues(setV) + return + } + if (arr1.length != list.value.length) { + let arr2 = list.value.map((item) => item.code) + let str = [ + ...arr1.filter((item) => !arr2.includes(item)), + ...arr2.filter((item) => !arr1.includes(item)) + ].join(',') + message.alert('代码' + str + '没有找到对应数据') + formRef.setValues(setV) + return + } + // emit('searchTableSuccess', formField, searchField, list.value, formRef.value, 'form') + callback(searchField,list.value) + }) + } + } +} + +// 根据下方输入框失去焦点校验信息 +export const getListByBottonInput = async (headerItem, val,row,routeName,formRef,detailData,tableData,callback) => { + let pageApi = ref() + let params = ref({}) + let list = ref([]) + let field = 'itemCode' + // scp采购订单 + if(!val)return; + if (routeName == 'PurchaseMain') { + pageApi.value = getSupplierItemListByCodes + params.value = { + supplierCode: formRef.formModel.supplierCode, + itemCodes: val?.trim(), + available: true + } + } else if (routeName == 'ProductionMain') { + pageApi.value = getProductionLineCodelistByCodes + params.value = { + productionLineCode: formRef.formModel.productionLine, + itemCodes: val?.trim() + } + } else if ( + routeName == 'ZZBJDeliverPlanMain' || + routeName == 'DeliverPlanMain' || + routeName == 'DeliverRequestMain' || + routeName == 'ZZBJDeliverRequestMain' + ) { + // 自制备件发货计划,发货计划,成品发货申请,自制备件发货申请 + pageApi.value = getCustomerItemListByCodes + params.value = { + customerCode: formRef.formModel.customerCode, + itemCodes: val?.trim() + } + } + // else if (routeName == 'UnplannedissueRequestMain') { + // // 计划外出库 + // pageApi.value = getBalanceItemListByCodes + // params.value = { + // packingNumber: val?.trim() + // } + // field = 'packingNumber' + // } + else { + params.value.codes = val?.trim() + pageApi.value = getItemListByCodes + } + let searchCondition1 = headerItem.tableForm.searchCondition //获取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 + } + } + } + } + await pageApi.value(params.value).then(async (res) => { + list.value = res ? res : [] + let arr1 = val.split(',').map(item=>item.trim()) + if (arr1.length != res.length) { + let arr2 = res.map((item) => item[field]) + let str = [ + ...arr1.filter((item) => !arr2.includes(item)), + ...arr2.filter((item) => !arr1.includes(item)) + ].join(',') + message.alert('代码' + str + '没有找到对应数据') + return + } else { + let repeatCode = [] + if(tableData.length > 0){ + tableData.forEach((item) => { + const findIndex = arr1.findIndex(valItem=>valItem==item[field]) + if(findIndex > -1){ + arr1.splice(findIndex,1) + repeatCode.push(item.itemCode) + } + }) + } + if(repeatCode.length>0){ + message.warning(`${t('ts.代码')}${repeatCode.join(',')}${t('ts.已经存在')}`); + return; + } + callback(list.value) + } + }) +} diff --git a/src/api/wms/customeritem/index.ts b/src/api/wms/customeritem/index.ts index c4c27e8a7..b9af7035d 100644 --- a/src/api/wms/customeritem/index.ts +++ b/src/api/wms/customeritem/index.ts @@ -72,4 +72,9 @@ export const getPageBusinessTypeToItemCode = async (params) => { } else { return await request.get({ url: `/wms/customeritem/pageBusinessTypeToItemCode`, params }) } -} \ No newline at end of file +} + +// 根据code获取数据列表 +export const getCustomerItemListByCodes = async (data) => { + return await request.get({ url: `/wms/customeritem/listByCodes?itemCodes=` + data.itemCodes + '&customerCode='+data.customerCode + '&businessType='+(data.businessType?data.businessType:'') }) +} diff --git a/src/api/wms/itembasic/index.ts b/src/api/wms/itembasic/index.ts index 25f3566ec..efd0319f0 100644 --- a/src/api/wms/itembasic/index.ts +++ b/src/api/wms/itembasic/index.ts @@ -113,4 +113,9 @@ export const selectConfigToItembasic = async (params) => { // 根据物料代码查计量单位 export const getQueryItemCodeInfo = async (data) => { return await request.post({ url: 'wms/itembasic/queryItemCodeInfo', data }) -} \ No newline at end of file +} +// 根据code获取数据列表 +export const getItemListByCodes = async (params) => { + return await request.get({ url: `/wms/itembasic/listByCodes`,params}) +} + diff --git a/src/api/wms/itempackage/index.ts b/src/api/wms/itempackage/index.ts index 97eb8348e..555a174b0 100644 --- a/src/api/wms/itempackage/index.ts +++ b/src/api/wms/itempackage/index.ts @@ -86,3 +86,7 @@ export const exportItempackaging = async (params) => { export const importTemplate = () => { return request.download({ url: '/wms/itempackage/get-import-template' }) } +// 根据code获取数据列表 +export const getItemPackageunitListByCodes = async (data) => { + return await request.get({ url: `/wms/itempackage/listByCodes?itemCode=` + data.itemCode + '&packUnit='+data.packUnit}) +} diff --git a/src/api/wms/packageunit/index.ts b/src/api/wms/packageunit/index.ts index 940fabef9..fa1718d35 100644 --- a/src/api/wms/packageunit/index.ts +++ b/src/api/wms/packageunit/index.ts @@ -69,3 +69,8 @@ export const exportPackageunit = async (params) => { export const importTemplate = () => { return request.download({ url: '/wms/packageunit/get-import-template' }) } + +// 根据code获取数据列表 +export const getPackageunitListByCodes = async (codes: string) => { + return await request.get({ url: `/wms/packageunit/listByCodes?codes=` + codes }) +} diff --git a/src/api/wms/productionlineitem/index.ts b/src/api/wms/productionlineitem/index.ts index cc9716fe3..0b3b03e20 100644 --- a/src/api/wms/productionlineitem/index.ts +++ b/src/api/wms/productionlineitem/index.ts @@ -67,3 +67,8 @@ export const exportProductionlineitem = async (params) => { export const importTemplate = () => { return request.download({ url: '/wms/productionlineitem/get-import-template' }) } + + +export const getProductionLineCodelistByCodes = (data) => { + return request.get({ url: `/wms/productionlineitem/listByCodes?productionLineCode=`+data.productionLineCode +'&itemCodes='+data.itemCodes}) +} diff --git a/src/api/wms/supplier/index.ts b/src/api/wms/supplier/index.ts index 961d949a0..1287bea73 100644 --- a/src/api/wms/supplier/index.ts +++ b/src/api/wms/supplier/index.ts @@ -93,3 +93,9 @@ export const exportSupplierSCP = async (params) => { export const importTemplate = () => { return request.download({ url: '/wms/supplier/get-import-template' }) } + +// 根据code获取数据列表 +export const getSupplierListByCodes = async (codes: string) => { + return await request.get({ url: `/wms/supplier/listByCodes?codes=` + codes }) +} + diff --git a/src/api/wms/supplierinvoiceRequestMain/index.ts b/src/api/wms/supplierinvoiceRequestMain/index.ts index 5358945de..338cd176e 100644 --- a/src/api/wms/supplierinvoiceRequestMain/index.ts +++ b/src/api/wms/supplierinvoiceRequestMain/index.ts @@ -147,3 +147,8 @@ export const getLoginUserRoleList = async () => { } +// 编辑的时候计算主表系统税额 +export const getTaxAmount = async ({id,taxRate}) => { + return await request.get({ url: `/wms/supplierinvoice-request-main/computeById?id=${id}&taxRate=${taxRate}`}) + +} \ No newline at end of file diff --git a/src/api/wms/supplieritem/index.ts b/src/api/wms/supplieritem/index.ts index e6002d3c7..81cbf3d12 100644 --- a/src/api/wms/supplieritem/index.ts +++ b/src/api/wms/supplieritem/index.ts @@ -99,4 +99,10 @@ export const selectItembasicTypeToSupplieritem = async (params) => { export const getDefaultLocationCode = async(data: SupplieritemVO)=> { return await request.post({ url: `/wms/supplieritem/getDefaultLocationCode`, data }) -} \ No newline at end of file +} + + +// 根据code获取数据列表 +export const getSupplierItemListByCodes = async (data) => { + return await request.get({ url: `/wms/supplieritem/listByCodes?supplierCode=`+data.supplierCode +'&itemCodes='+data.itemCodes }) +} diff --git a/src/components/Annex/src/Annex.vue b/src/components/Annex/src/Annex.vue index 2c7f75bfe..a9f8b472b 100644 --- a/src/components/Annex/src/Annex.vue +++ b/src/components/Annex/src/Annex.vue @@ -3,7 +3,7 @@
-
@@ -56,6 +56,10 @@ const props = defineProps({ return ['apk','doc', 'xls', 'ppt', 'txt', 'pdf','png', 'jpg', 'jpeg'] } }, + fileSize:{ + type:Number, + required: false, + }, showPreview: { type: Boolean, required: false diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue index 6ec7b387c..5444c2218 100644 --- a/src/components/BasicForm/src/BasicForm.vue +++ b/src/components/BasicForm/src/BasicForm.vue @@ -99,6 +99,8 @@ @tableFormSelectOnBlur="tableFormSelectOnBlur" @formFormDateChange="formFormDateChange" @clearInput='clearInput' + @batchAdd="batchAdd" + :routeName="routeName" > @@ -408,7 +412,13 @@ const props = defineProps({ tableFormRules: { type: Object, default: null - } + }, + // 业务名称 + routeName: { + type: String, + required: false, + default: '' + }, }) // 传递给父类 const emit = defineEmits([ @@ -426,7 +436,8 @@ const emit = defineEmits([ 'inputStringBlur', 'tableFormSelectOnBlur', 'formFormDateChange', - 'clearInput' + 'clearInput', + 'batchAdd' ]) // 获取下拉列表 | type = radio | type = select const initSelectOptions = (item) => { @@ -528,8 +539,8 @@ const inpuFocus = (headerItem, row, index)=>{ } // input输入失去焦点事件 -const inputStringBlur = (field, val,row) => { - emit('inputStringBlur', field, val,row) +const inputStringBlur = (headerItem, val,row,index) => { + emit('inputStringBlur', headerItem, val,row,index) } const clearInput= (field, row, index) => { emit('clearInput',field, row, index) @@ -548,10 +559,39 @@ const showTableData = ()=>{ return props.tableData } } +const keyWord = ref('') +console.log(9999,props.tableFields) +const batchAdd = ()=>{ + console.log(keyWord.value) + let field = '' + const itemCodeFields = props.tableFields.find(item=>item.field == 'itemCode') + const supplierFields = props.tableFields.find(item=>item.field == 'supplierCode') + if(itemCodeFields){ + field = itemCodeFields.field + }else { + if(itemCodeFields){ + field = supplierFields.field + } + } +console.log(field) + emit('batchAdd',keyWord.value) +} +const disabledInput=(headerItem)=>{ + if(headerItem.tableForm?.isInpuFocusShow){ + if(headerItem.tableForm?.enterSearch){ + return false + }else{ + return true + } + }else{ + return headerItem?.tableForm?.disabled || true + } +} // setup 语法糖 抛出方法 defineExpose({ TableBaseComponents_Ref, - validateForm + validateForm, + keyWord }) diff --git a/src/views/eam/equipmentInspectionMain/index.vue b/src/views/eam/equipmentInspectionMain/index.vue index ddf2c7985..8148ea401 100644 --- a/src/views/eam/equipmentInspectionMain/index.vue +++ b/src/views/eam/equipmentInspectionMain/index.vue @@ -94,6 +94,7 @@ import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts import * as EquipmentItemApi from "@/api/eam/equipmentAccounts"; import {ToolAccounts} from "@/views/eam/toolAccounts/toolAccounts.data"; import * as ToolItemApi from "@/api/eam/toolAccounts"; +import * as EquipmentSpotCheckMainApi from "@/api/eam/equipmentSpotCheckMain"; defineOptions({ name: 'EquipmentInspectionMain' }) @@ -189,9 +190,10 @@ const isShowEditStatusButton = (row) => { // 列表-操作按钮 const butttondata = (row) => { return [ - defaultButtons.mainListEditBtn({hide: isShowEditStatusButton(row),hasPermi:'eam:equipmentInspectionMain:update'}), // 编辑 + defaultButtons.mainListEditBtn({hide: isShowStatusButton(row,['3','4']),hasPermi:'eam:equipmentInspectionMain:update'}), // 编辑 defaultButtons.mainListReceiveOrderBtn({hide: isShowStatusButton(row,['3']),hasPermi:'eam:equipmentInspectionMain:update'}), // 接单 defaultButtons.mainListExecuteBtn({hide: isShowStatusButton(row,['4']),hasPermi:'eam:equipmentInspectionMain:update'}), // 执行 + defaultButtons.mainListCancelBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:equipmentInspectionMain:update'}), //作废 defaultButtons.mainListFinishBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:equipmentInspectionMain:update'}), // 完成巡检 defaultButtons.mainListValidateBtn({hide: isShowStatusButton(row,['6']),hasPermi:'eam:equipmentInspectionMain:update'}), // 验证 //defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:equipmentInspectionMain:update'}), @@ -213,6 +215,8 @@ const buttonTableClick = async (val, row) => { handleFinish(row) } else if (val == 'validate') { // 验证 handleValidate(row) + } else if (val == 'cancel') { // 作废 + handleCancel(row.id) } } @@ -392,6 +396,26 @@ const handleValidate = async (row) => { } +/** 作废按钮操作 */ +const handleCancel = async (id: number) => { + try { + // 二次确认 + await message.delConfirm('是否作废所选中任务?'); + const params = ref({ + id: '', + status:'', + }) + params.value.id = id + params.value.status = '8' + // 发起 + await EquipmentInspectionMainApi.updateEquipmentInspectionOrder(params.value) + message.success(t('执行成功')) + // 刷新列表 + await getList() + } catch {} +} + + const detailBasicFormOnChange = (field, item) => { //未完成 if(field == 'result' && item == '1'){ diff --git a/src/views/eam/equipmentMaintenanceMain/index.vue b/src/views/eam/equipmentMaintenanceMain/index.vue index 07d7bb31c..08c0f18ec 100644 --- a/src/views/eam/equipmentMaintenanceMain/index.vue +++ b/src/views/eam/equipmentMaintenanceMain/index.vue @@ -104,6 +104,7 @@ import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts import * as EquipmentItemApi from "@/api/eam/equipmentAccounts"; import {ToolAccounts} from "@/views/eam/toolAccounts/toolAccounts.data"; import * as ToolItemApi from "@/api/eam/toolAccounts"; +import * as EquipmentInspectionMainApi from "@/api/eam/equipmentInspectionMain"; defineOptions({ name: 'EquipmentMaintenanceMain' }) @@ -197,9 +198,10 @@ const isShowEditStatusButton = (row) => { // 列表-操作按钮 const butttondata = (row) => { return [ - defaultButtons.mainListEditBtn({hide: isShowEditStatusButton(row),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 编辑 + defaultButtons.mainListEditBtn({hide: isShowStatusButton(row,['3','4']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 编辑 defaultButtons.mainListReceiveOrderBtn({hide: isShowStatusButton(row,['3']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 接单 defaultButtons.mainListExecuteBtn({hide: isShowStatusButton(row,['4']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 执行 + defaultButtons.mainListCancelBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:equipmentMaintenanceMain:update'}), //作废 defaultButtons.mainListFinishBtn({hide: isShowStatusButton(row,['5']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 完成保养 defaultButtons.mainListValidateBtn({hide: isShowStatusButton(row,['6']),hasPermi:'eam:equipmentMaintenanceMain:update'}), // 验证 defaultButtons.mainListEnableBtn({hide:isShowMainButton(row,['FALSE']),hasPermi:'eam:equipmentMaintenanceMain:update'}), @@ -221,6 +223,8 @@ const buttonTableClick = async (val, row) => { handleFinish(row) } else if (val == 'validate') { // 验证 handleValidate(row) + } else if (val == 'cancel') { // 作废 + handleCancel(row.id) } } @@ -391,6 +395,25 @@ const handleValidate = async (row) => { } +/** 作废按钮操作 */ +const handleCancel = async (id: number) => { + try { + // 二次确认 + await message.delConfirm('是否作废所选中任务?'); + const params = ref({ + id: '', + status:'', + }) + params.value.id = id + params.value.status = '8' + // 发起 + await EquipmentMaintenanceMainApi.updateMaintenanceOrder(params.value) + message.success(t('执行成功')) + // 刷新列表 + await getList() + } catch {} +} + /** 启用 */ const handleEnable = async (id: number) => { try { diff --git a/src/views/eam/equipmentRepairJobMain/finishForm1.vue b/src/views/eam/equipmentRepairJobMain/finishForm1.vue index d0b042e01..4f42c446d 100644 --- a/src/views/eam/equipmentRepairJobMain/finishForm1.vue +++ b/src/views/eam/equipmentRepairJobMain/finishForm1.vue @@ -2,29 +2,29 @@ - - - - - + + + + + - - - - - - - - - + + + + + + + + + + + + +