From 6529639243205f10940adeec449ea655fc4bb581 Mon Sep 17 00:00:00 2001 From: ljlong_2630 Date: Thu, 15 Aug 2024 10:56:20 +0800 Subject: [PATCH 01/28] =?UTF-8?q?=E7=BC=BA=E9=99=B7=EF=BC=9AHL-5259?= =?UTF-8?q?=EF=BC=8C=E9=97=AE=E9=A2=98=EF=BC=9A=E5=88=B6=E5=93=81=E6=8A=A5?= =?UTF-8?q?=E5=BA=9F=E8=AE=B0=E5=BD=95=E8=A1=A8=E6=A0=BC=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=A4=87=E6=B3=A8=EF=BC=8C=E8=A1=A5=E5=85=85=EF=BC=9A=E5=B0=86?= =?UTF-8?q?=E5=88=B6=E5=93=81=E6=8A=A5=E5=BA=9F=E7=94=B3=E8=AF=B7=E9=87=8C?= =?UTF-8?q?=E4=B9=9F=E6=B7=BB=E5=8A=A0=E5=A4=87=E6=B3=A8=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6=EF=BC=8C=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productscrapRequestMain/productscrapRequestMain.data.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts index f3ce47a15..56c3800ce 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts @@ -1195,10 +1195,11 @@ export const ProductscrapRequestDetail = useCrudSchemas(reactive([ label: '备注', field: 'remark', sort: 'custom', - isTable: false, + isTable: true, table: { width: 150 }, + isSearch: true, }, { label: '创建时间', From 3a8bf335477ed582881c854e46a6ab12a81a98bd Mon Sep 17 00:00:00 2001 From: wangyufei <2267742828@qq.com> Date: Thu, 15 Aug 2024 13:08:04 +0800 Subject: [PATCH 02/28] =?UTF-8?q?HL-5149=E5=88=B6=E5=93=81=E5=AD=90?= =?UTF-8?q?=E4=BB=B6=E6=8A=A5=E5=BA=9F=E7=94=B3=E8=AF=B7=EF=BC=8C=E7=82=B9?= =?UTF-8?q?=E5=87=BBBom=E5=90=8E=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=B8=8D=E9=9C=80=E8=A6=81=E6=8A=A5=E5=BA=9F=E7=9A=84?= =?UTF-8?q?Bom=E8=AE=B0=E5=BD=95=EF=BC=8C=E5=8F=AF=E4=BB=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9Bom=E6=95=B0=E9=87=8F=EF=BC=8C=E5=85=B6=E5=AE=83?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=B8=8D=E5=85=81=E8=AE=B8=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E7=94=9F=E6=88=90=E7=9A=84=E5=88=B6=E5=93=81=E5=AD=90?= =?UTF-8?q?=E4=BB=B6=E6=8A=A5=E5=BA=9F=E8=AE=B0=E5=BD=95=E4=B8=AD=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=BF=AE=E6=94=B9=E5=90=8E=E7=9A=84Bom=E7=BB=93?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productscrapRequestMain/index.vue | 17 ++++++++++++++++- .../productscrapRequestMain.data.ts | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue b/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue index 93a39b2c9..dd3f32f3d 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue @@ -93,11 +93,13 @@ :isShowButton="false" :isShowReduceButton="false" :isShowFooterButtton="true" + :isShowReduceButtonSelection="true" + @handleDeleteTable="handleDeleteTableBom" + @tableSelectionDelete="tableSelectionDeleteBom" :Butttondata="ButttondataBom" @searchTableSuccess="searchTableBomSuccess" :footButttondata="footButttondata" @footButtonClick="buttonBaseClickBom" - @inputNumberChange="inputNumberChange" /> @@ -283,6 +285,7 @@ const buttonOperationClick = async (row, label, index,isSave = false)=> { item.qty = item.bomQty * row.qty // } const obj = await banchBomPage(row.fromLocationCode, item) + console.log('obj',obj) item.batch = obj.batch }) if(isSave){ @@ -291,6 +294,18 @@ const buttonOperationClick = async (row, label, index,isSave = false)=> { detailBomRef.value.open('create', row, null,'viewDetail')//查看明细数据 } } +// 删除明细 +const handleDeleteTableBom = (item, index) => { + let itemIndex = detatableDataBom.tableList.indexOf(item) + if (itemIndex > -1) { + detatableDataBom.tableList.splice(itemIndex, 1) + } +} + +const tableSelectionDeleteBom = (selection) => { + detatableDataBom.tableList = detatableDataBom.tableList.filter(item => !selection.includes(item)) +} + // 查询页面返回 const searchTableBomSuccess = (formField, searchField, val, formRef, type, row ) => { diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts index 56c3800ce..9d07913a5 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts @@ -1349,7 +1349,7 @@ export const ProdcutscrapBomScrap = useCrudSchemas(reactive([ label: '数量', field: 'qty', tableForm: { - disabled:true, + disabled:false, type: 'InputNumber', min: 0, precision: 6 From 869869fe85cfa504e2ba65b3785da9be83336063 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Thu, 15 Aug 2024 13:07:27 +0800 Subject: [PATCH 03/28] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E5=92=8C=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1=E5=88=87=E5=9B=9E?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=88=B7=E6=96=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/qms/inspectionJob/index.vue | 78 +++++++++++-------- src/views/qms/inspectionJob/inspectionJob.vue | 14 ++++ .../inspectionJob/inspectionJobMain.data.ts | 4 +- .../inspectionJob/inspectionJobProduction.vue | 14 ++++ .../inspectionJob/inspectionJobPurchase.vue | 15 ++++ src/views/qms/inspectionRecord/index.vue | 46 +++++------ .../qms/inspectionRecord/inspectionRecord.vue | 14 ++++ .../inspectionRecordProduction.vue | 14 ++++ .../inspectionRecordPurchase.vue | 14 ++++ 9 files changed, 153 insertions(+), 60 deletions(-) create mode 100644 src/views/qms/inspectionJob/inspectionJob.vue create mode 100644 src/views/qms/inspectionJob/inspectionJobProduction.vue create mode 100644 src/views/qms/inspectionJob/inspectionJobPurchase.vue create mode 100644 src/views/qms/inspectionRecord/inspectionRecord.vue create mode 100644 src/views/qms/inspectionRecord/inspectionRecordProduction.vue create mode 100644 src/views/qms/inspectionRecord/inspectionRecordPurchase.vue diff --git a/src/views/qms/inspectionJob/index.vue b/src/views/qms/inspectionJob/index.vue index b8e167a86..a4d7aaa94 100644 --- a/src/views/qms/inspectionJob/index.vue +++ b/src/views/qms/inspectionJob/index.vue @@ -2,9 +2,10 @@ @@ -124,8 +125,6 @@ import { getReportUrl } from '@/utils/systemParam' import { useUserStore } from '@/store/modules/user' import { formatDate } from '@/utils/formatTime' -// 采购订单 -defineOptions({ name: 'inspectionJobMain' }) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 @@ -181,7 +180,19 @@ const { tableObject, tableMethods } = useTable({ // 获得表格的各种操作 const { getList, setSearchParams } = tableMethods - +const searchParams = (model) => { + if (route.name == 'inspectionJobProduction') { + model.available = 'TRUE' + model.inspectionType = '4' + } else if (route.name == 'inspectionJobPurchase') { + model.available = 'TRUE' + model.inspectionType = '1' + } else { + model.available = 'TRUE' + model.excludeInspectionType = '1,4' + } + setSearchParams(model) +} // 列表头部按钮 const HeadButttondata = [ defaultButtons.defaultExportBtn({ hasPermi: 'qms:inspection-job-main:export' }), // 导出 @@ -453,13 +464,13 @@ const handleImport = () => { const searchFormClick = (searchData) => { let isHave = searchData?.filters?.some((item) => item.column == 'inspectionType') if (!isHave) { - if (route.name == 'inspectionJobProductionMain') { + if (route.name == 'inspectionJobProduction') { searchData.filters.push({ action: '==', column: 'inspectionType', value: '4' }) - } else if (route.name == 'inspectionJobPurchaseMain') { + } else if (route.name == 'inspectionJobPurchase') { searchData.filters.push({ action: '==', column: 'inspectionType', @@ -479,47 +490,48 @@ const searchFormClick = (searchData) => { } getList() // 刷新当前列表 } +const searchRef = ref() +const searchSchema = ref(JSON.parse(JSON.stringify(InspectionJobMain.allSchemas.searchSchema))) +const options = InspectionJobMain.allSchemas.searchSchema.find((item) => item.field == 'inspectionType') /** 初始化 **/ onMounted(async () => { - console.log(11,route.name) - if (route.name == 'inspectionJobProductionMain') { + if (route.name == 'inspectionJobProduction') { tableObject.params = { available: true, inspectionType: '4' } - } else if (route.name == 'inspectionJobPurchaseMain') { + searchSchema.value.forEach((item) => { + if (item.field == 'inspectionType') { + item.componentProps.options=options.componentProps.options?.filter((cur) => cur.value == '4') + } + }) + console.log(999,searchSchema.value) + searchRef.value.setFormValues({ inspectionType: '4' }) + } else if (route.name == 'inspectionJobPurchase') { tableObject.params = { available: true, inspectionType: '1' } + searchSchema.value.forEach((item) => { + if (item.field == 'inspectionType') { + item.componentProps.options = options.componentProps.options?.filter((cur) => cur.value == '1') + } + }) + searchRef.value.setFormValues({ inspectionType: '1' }) } else { tableObject.params = { available: true, excludeInspectionType: '1,4' } + searchSchema.value.forEach((item) => { + if (item.field == 'inspectionType') { + item.componentProps.options = options.componentProps.options?.filter(cur=>cur.value != '1' && cur.value != '4') + } + }) } - - getList() - // importTemplateData.templateUrl = await InspectionJobMainApi.importTemplate() + searchParams(tableObject.params) }) -onActivated(() => { - if (route.name == 'inspectionJobProductionMain') { - tableObject.params = { - available: true, - inspectionType: '4' - } - } else if (route.name == 'inspectionJobPurchaseMain') { - tableObject.params = { - available: true, - inspectionType: '1' - } - } else { - tableObject.params = { - available: true, - excludeInspectionType: '1,4' - } - } - - getList() +defineExpose({ + getList }) diff --git a/src/views/qms/inspectionJob/inspectionJob.vue b/src/views/qms/inspectionJob/inspectionJob.vue new file mode 100644 index 000000000..d56f366d8 --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJob.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/qms/inspectionJob/inspectionJobMain.data.ts b/src/views/qms/inspectionJob/inspectionJobMain.data.ts index 0a89714df..30a62efa2 100644 --- a/src/views/qms/inspectionJob/inspectionJobMain.data.ts +++ b/src/views/qms/inspectionJob/inspectionJobMain.data.ts @@ -272,7 +272,7 @@ export const InspectionJobMain = useCrudSchemas( label: '检验类型', field: 'inspectionType', sort: 'custom', - dictType: DICT_TYPE.INSPECTION_TYPE_NEW, + dictType: DICT_TYPE.INSPECTION_TYPE, dictClass: 'string', isSearch: true, form: { @@ -293,7 +293,7 @@ export const InspectionJobMain = useCrudSchemas( dictClass: 'string', // 默认都是字符串类型其他暂不考虑 isTable: false, isDetail: false, - isSearch: true, + isSearch: false, isTableForm: false, isForm: false }, diff --git a/src/views/qms/inspectionJob/inspectionJobProduction.vue b/src/views/qms/inspectionJob/inspectionJobProduction.vue new file mode 100644 index 000000000..0bbb67e6a --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJobProduction.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/qms/inspectionJob/inspectionJobPurchase.vue b/src/views/qms/inspectionJob/inspectionJobPurchase.vue new file mode 100644 index 000000000..009806780 --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJobPurchase.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/qms/inspectionRecord/index.vue b/src/views/qms/inspectionRecord/index.vue index 2af87c949..636e3e2de 100644 --- a/src/views/qms/inspectionRecord/index.vue +++ b/src/views/qms/inspectionRecord/index.vue @@ -3,8 +3,8 @@ @@ -172,6 +172,19 @@ const { tableObject, tableMethods } = useTable({ // 获得表格的各种操作 const { getList, setSearchParams } = tableMethods +const searchParams = (model) => { + if (route.name == 'inspectionRecordProduction') { + model.available = 'TRUE' + model.inspectionType = '4' + } else if (route.name == 'inspectionRecordPurchase') { + model.available = 'TRUE' + model.inspectionType = '1' + } else { + model.available = 'TRUE' + model.excludeInspectionType = '1,4,11' + } + setSearchParams(model) +} // 列表头部按钮 let HeadButttondata = [ defaultButtons.defaultExportBtn({ hasPermi: 'qms:inspection-recode-main:export' }), // 导出 @@ -431,7 +444,7 @@ const submitFormExecute = async (formType, data) => { const searchFormClick = (searchData) => { let isHave = searchData?.filters?.some((item) => item.column == 'inspectionType') if (!isHave) { - if (route.name == 'inspectionRecordPurchaseMain') { + if (route.name == 'inspectionRecordPurchase') { searchData.filters.push({ action: '==', column: 'inspectionType', @@ -441,7 +454,7 @@ const searchFormClick = (searchData) => { column: 'available', value: true }) - } else if (route.name == 'inspectionRecordProductionMain') { + } else if (route.name == 'inspectionRecordProduction') { searchData.filters.push({ action: '==', column: 'inspectionType', @@ -469,12 +482,12 @@ const searchFormClick = (searchData) => { /** 初始化 **/ onMounted(async () => { - if (route.name == 'inspectionRecordPurchaseMain') { + if (route.name == 'inspectionRecordPurchase') { tableObject.params = { available: true, inspectionType: '1' } - } else if (route.name == 'inspectionRecordProductionMain') { + } else if (route.name == 'inspectionRecordProduction') { tableObject.params = { available: true, inspectionType: '4' @@ -488,24 +501,7 @@ onMounted(async () => { getList() }) -onActivated(() => { - if (route.name == 'inspectionRecordPurchaseMain') { - tableObject.params = { - available: true, - inspectionType: '1' - } - } else if (route.name == 'inspectionRecordProductionMain') { - tableObject.params = { - available: true, - inspectionType: '4' - } - } else { - tableObject.params = { - available: true, - excludeInspectionType: '1,4,11' - } - } - - getList() +defineExpose({ + getList }) diff --git a/src/views/qms/inspectionRecord/inspectionRecord.vue b/src/views/qms/inspectionRecord/inspectionRecord.vue new file mode 100644 index 000000000..59c7d2520 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecord.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/qms/inspectionRecord/inspectionRecordProduction.vue b/src/views/qms/inspectionRecord/inspectionRecordProduction.vue new file mode 100644 index 000000000..1e353a101 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecordProduction.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/views/qms/inspectionRecord/inspectionRecordPurchase.vue b/src/views/qms/inspectionRecord/inspectionRecordPurchase.vue new file mode 100644 index 000000000..8f4d0a7b6 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecordPurchase.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file From 063f1bf4b48507597bb0f043b0d458c5ab9a3884 Mon Sep 17 00:00:00 2001 From: TengXF <302828528@qq.com> Date: Thu, 15 Aug 2024 13:16:06 +0800 Subject: [PATCH 04/28] =?UTF-8?q?HL-5290=20WMS=20=E5=8C=85=E8=A3=85?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=20=E6=96=B0=E5=A2=9E=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E7=9A=84=E5=8C=85=E8=A3=85=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E5=8C=85=E8=A3=85=E5=B7=B2=E5=AD=98=E5=9C=A8=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E6=98=AF=E9=A1=B5=E9=9D=A2=E4=B8=80=E7=9B=B4=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itemManage/packageunit/index.vue | 55 ++++++++++--------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/src/views/wms/basicDataManage/itemManage/packageunit/index.vue b/src/views/wms/basicDataManage/itemManage/packageunit/index.vue index 569282c90..4193df23a 100644 --- a/src/views/wms/basicDataManage/itemManage/packageunit/index.vue +++ b/src/views/wms/basicDataManage/itemManage/packageunit/index.vue @@ -209,33 +209,38 @@ const openForm = (type: string, row?: any) => { // form表单提交 const formsSuccess = async (formType,data) => { - var isHave =Packageunit.allSchemas.formSchema.some(function (item) { - return item.field === 'activeTime' || item.field === 'expireTime'; - }); - if(isHave){ - if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){ - message.error('失效时间要大于生效时间') - return; + try{ + var isHave =Packageunit.allSchemas.formSchema.some(function (item) { + return item.field === 'activeTime' || item.field === 'expireTime'; + }); + if(isHave){ + if(data.activeTime && data.expireTime && data.activeTime >=data.expireTime){ + message.error('失效时间要大于生效时间') + return; + } } + if(data.activeTime==0)data.activeTime = null; + if(data.expireTime==0)data.expireTime = null; + data.parentCode = data.parentCode === '' ? null : data.parentCode; + basicFormRef.value.formLoading = true + if (formType === 'create') { + await PackageunitApi.createPackageunit(data) + message.success(t('common.createSuccess')) + } else { + await PackageunitApi.updatePackageunit(data) + message.success(t('common.updateSuccess')) + } + basicFormRef.value.formLoading = false + basicFormRef.value.dialogVisible = false + if (formType === 'create') { + getList() + }else{ + buttonBaseClick('refresh',null) + } + }catch { + basicFormRef.value.formLoading = false } - if(data.activeTime==0)data.activeTime = null; - if(data.expireTime==0)data.expireTime = null; - data.parentCode = data.parentCode === '' ? null : data.parentCode; - basicFormRef.value.formLoading = true - if (formType === 'create') { - await PackageunitApi.createPackageunit(data) - message.success(t('common.createSuccess')) - } else { - await PackageunitApi.updatePackageunit(data) - message.success(t('common.updateSuccess')) - } - basicFormRef.value.formLoading = false - basicFormRef.value.dialogVisible = false - if (formType === 'create') { - getList() - }else{ - buttonBaseClick('refresh',null) - } + } /** 详情操作 */ From 9d33de9c5d8db67410731b18da054c00277b7484 Mon Sep 17 00:00:00 2001 From: zhaoxuebing <1291173720@qq.com> Date: Thu, 15 Aug 2024 13:17:58 +0800 Subject: [PATCH 05/28] =?UTF-8?q?=E7=BC=BA=E9=99=B7:HL-5291,HL-5016?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productionscrapRecordMain.data.ts | 23 ++++++++++++++++++- .../purchasereceiptRecordMain.data.ts | 5 ++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts b/src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts index 3e5b910f5..0ca439920 100644 --- a/src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts +++ b/src/views/wms/issueManage/productionscrap/productionscrapRecordMain/productionscrapRecordMain.data.ts @@ -595,6 +595,28 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive }, hiddenInMain: true, }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, { label: '从货主代码', field: 'fromOwnerCode', @@ -694,7 +716,6 @@ export const ProductionscrapRecordDetail = useCrudSchemas(reactive width: 150 }, }, - ])) //表单校验 diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts index 2d8d0ba03..3ea07b778 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts @@ -341,12 +341,12 @@ export const PurchasereceiptRecordMain = useCrudSchemas(reactive([ }, { label: '备注', - field: 'remark', + field: 'mainRemark', sort: 'custom', table: { width: 150 }, - isTable:false, + isTable:true, }, { label: '创建者', @@ -1942,6 +1942,7 @@ export const PurchasereceiptRecordDetailPackingNumber = useCrudSchemas(reactive< table: { width: 150 }, + hiddenInMain:true, form: { componentProps: { disabled:true From 7044799b7600f2644a2a431bf045b78befec329a Mon Sep 17 00:00:00 2001 From: wangyufei <2267742828@qq.com> Date: Thu, 15 Aug 2024 13:29:44 +0800 Subject: [PATCH 06/28] =?UTF-8?q?=E8=87=B3=E5=B0=91=E4=BF=9D=E7=95=99?= =?UTF-8?q?=E4=B8=80=E6=9D=A1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productscrap/productscrapRequestMain/index.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue b/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue index dd3f32f3d..f6ccc530c 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/index.vue @@ -296,6 +296,10 @@ const buttonOperationClick = async (row, label, index,isSave = false)=> { } // 删除明细 const handleDeleteTableBom = (item, index) => { + if(detatableDataBom.tableList.length<=1){ + message.error('至少保留一条数据') + return + } let itemIndex = detatableDataBom.tableList.indexOf(item) if (itemIndex > -1) { detatableDataBom.tableList.splice(itemIndex, 1) @@ -303,6 +307,12 @@ const handleDeleteTableBom = (item, index) => { } const tableSelectionDeleteBom = (selection) => { + if(detatableDataBom.tableList.length<=1||detatableDataBom.tableList.length==selection.length){ + message.error('至少保留一条数据') + return + } + + detatableDataBom.tableList = detatableDataBom.tableList.filter(item => !selection.includes(item)) } From 314e2fda4c80f6ceac6878185de7a1d9b7fbf232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B7=BB=E7=A0=96-JAVA=5CAdministrator?= <591141169@qq.com> Date: Thu, 15 Aug 2024 13:37:57 +0800 Subject: [PATCH 07/28] =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=ACQ3=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=8D=95=E4=B8=8A=E4=BC=A0=20HL-5247?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspectionQ3/inspectionQ3Detail/index.ts | 64 ++ .../inspectionQ3/inspectionQ3Main/index.ts | 65 ++ src/views/qms/inspectionQThree/index.vue | 478 ++++++++++++++ .../qms/inspectionQThree/inspectionQ3.data.ts | 618 ++++++++++++++++++ 4 files changed, 1225 insertions(+) create mode 100644 src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts create mode 100644 src/api/qms/inspectionQ3/inspectionQ3Main/index.ts create mode 100644 src/views/qms/inspectionQThree/index.vue create mode 100644 src/views/qms/inspectionQThree/inspectionQ3.data.ts diff --git a/src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts b/src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts new file mode 100644 index 000000000..796b25512 --- /dev/null +++ b/src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface InspectionQ3DetailVO { + id: number + masterId: number + number: string + itemCode: string + qty: number + uom: string + price: number + amount: number + costCode: string + defectCode: string + defectLocation: string + defectType: string + problemReason: string + available: string + deletionTime: Date + deleterId: string + extraProperties: string + concurrencyStamp: number + siteId: string +} + +// 查询Q3通知单子列表 +export const getInspectionQ3DetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/qms/inspection-Q3-detail/senior', data }) + } else { + return await request.get({ url: `/qms/inspection-Q3-detail/page`, params }) + } +} + +// 查询Q3通知单子详情 +export const getInspectionQ3Detail = async (id: number) => { + return await request.get({ url: `/qms/inspection-Q3-detail/get?id=` + id }) +} + +// 新增Q3通知单子 +export const createInspectionQ3Detail = async (data: InspectionQ3DetailVO) => { + return await request.post({ url: `/qms/inspection-Q3-detail/create`, data }) +} + +// 修改Q3通知单子 +export const updateInspectionQ3Detail = async (data: InspectionQ3DetailVO) => { + return await request.put({ url: `/qms/inspection-Q3-detail/update`, data }) +} + +// 删除Q3通知单子 +export const deleteInspectionQ3Detail = async (id: number) => { + return await request.delete({ url: `/qms/inspection-Q3-detail/delete?id=` + id }) +} + +// 导出Q3通知单子 Excel +export const exportInspectionQ3Detail = async (params) => { + return await request.download({ url: `/qms/inspection-Q3-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/inspection-Q3-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/qms/inspectionQ3/inspectionQ3Main/index.ts b/src/api/qms/inspectionQ3/inspectionQ3Main/index.ts new file mode 100644 index 000000000..60c723fd8 --- /dev/null +++ b/src/api/qms/inspectionQ3/inspectionQ3Main/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface InspectionQ3MainVO { + id: number + number: string + q1Number: string + responUser: string + priority: string + handleTime: Date + summaryAmount: number + desc: string + status: string + available: string + deletionTime: Date + deleterId: string + extraProperties: string + concurrencyStamp: number + siteId: string +} + +// 查询Q3通知单主列表 +export const getInspectionQ3MainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/qms/inspection-Q3-main/senior', data }) + } else { + return await request.get({ url: `/qms/inspection-Q3-main/page`, params }) + } +} + +// 查询Q3通知单主详情 +export const getInspectionQ3Main = async (id: number) => { + return await request.get({ url: `/qms/inspection-Q3-main/get?id=` + id }) +} + +// 新增Q3通知单主 +export const createInspectionQ3Main = async (data: InspectionQ3MainVO) => { + return await request.post({ url: `/qms/inspection-Q3-main/create`, data }) +} + +// 修改Q3通知单主 +export const updateInspectionQ3Main = async (data: InspectionQ3MainVO) => { + return await request.put({ url: `/qms/inspection-Q3-main/update`, data }) +} + +// 删除Q3通知单主 +export const deleteInspectionQ3Main = async (id: number) => { + return await request.delete({ url: `/qms/inspection-Q3-main/delete?id=` + id }) +} + +// 导出Q3通知单主 Excel +export const exportInspectionQ3Main = async (params) => { + return await request.download({ url: `/qms/inspection-Q3-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/qms/inspection-Q3-main/get-import-template' }) +} + +// 完成 +export const finishInspectionQ3Main = async (id: number) => { + return await request.get({ url: `/qms/inspection-Q3-main/finish?id=` + id }) +} diff --git a/src/views/qms/inspectionQThree/index.vue b/src/views/qms/inspectionQThree/index.vue new file mode 100644 index 000000000..d49ba7e99 --- /dev/null +++ b/src/views/qms/inspectionQThree/index.vue @@ -0,0 +1,478 @@ + + + diff --git a/src/views/qms/inspectionQThree/inspectionQ3.data.ts b/src/views/qms/inspectionQThree/inspectionQ3.data.ts new file mode 100644 index 000000000..5c8d36532 --- /dev/null +++ b/src/views/qms/inspectionQThree/inspectionQ3.data.ts @@ -0,0 +1,618 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +import * as InspectionQ1Api from '@/api/qms/inspectionQ1' +import { Q1 } from '@/views/qms/inspectionQ1/inspectionQ1.data' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +import * as QadCostcentreApi from '@/api/wms/qadCostcentre' +import { QadCostcentre } from '@/views/wms/basicDataManage/subject/qadCostcentre/qadCostcentre.data' + +const { t } = useI18n() // 国际化 + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'IssueRequest' +} + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +import { fa } from 'element-plus/es/locale' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +/** + * @returns {Array} 发料申请主表 + */ +export const InspectionQ3Main = useCrudSchemas( + reactive([ + { + label: '通知单号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 150, + fixed: 'left' + } + }, + { + label: 'Q1通知单号', + field: 'q1Number', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q1通知单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q1通知单', // 查询弹窗标题 + searchAllSchemas: Q1.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ1Api.getQ1Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '负责用户', + field: 'responUser', + sort: 'custom', + isSearch: false, + table: { + width: 120 + }, + form: { + componentProps: { + value: userStore.getUser.nickname, + disabled: true + } + } + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + dictType: DICT_TYPE.QUALITY_NOTIFICATION_PRIORITY, + dictClass: 'string', + isSearch: false, + isTable: false, + tableForm: { + type: 'Select' + } + }, + { + label: '处理时间', + field: 'handleTime', + isSearch: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '汇总金额', + field: 'summaryAmount', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + isForm: false + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '单价', + field: 'price', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + isTable: true, + isForm: false, + isSearch: false, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + } + }, + { + label: '成本中心代码', + field: 'costCode', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择成本中心', // 输入框占位文本 + searchField: 'costcentreCode', // 查询弹窗赋值字段 + searchTitle: '成本中心信息', // 查询弹窗标题 + searchAllSchemas: QadCostcentre.allSchemas, // 查询弹窗所需类 + searchPage: QadCostcentreApi.getQadCostcentrePage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'costcentreCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + + { + label: '缺陷编码', + field: 'defectCode', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '缺陷位置', + field: 'defectLocation', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '缺陷类型', + field: 'defectType', + sort: 'custom', + isSearch: false, + isForm: false, + form: { + component: 'Select' + } + }, + { + label: '问题原因', + field: 'problemReason', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '描述', + field: 'desc', + sort: 'custom', + isSearch: false, + table: { + width: '150' + }, + form: { + component: 'Input', + componentProps: { + type: 'textarea' + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.PUBLISHE_STATUS, + dictClass: 'string', + isSearch: false, + isForm: false, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: false, + isForm: false, + isTable: false, + isDetail: false + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + } + }, + + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 230, + fixed: 'right' + } + } + ]) +) + +export const InspectionQ3MainRules = reactive({ + workshopCode: [{ required: true, message: '请选择车间代码', trigger: 'change' }], + productionLineCode: [{ required: true, message: '请选择生产线代码', trigger: 'change' }], + // fromWarehouseCode: [ + // { required: true, message: '请选择从仓库代码', trigger: 'change' } + // ], + // dueTime: [ + // { required: true, message: '请选择截止时间', trigger: 'change' } + // ], + remark: [{ max: 50, message: '不得超过50个字符', trigger: 'blur' }] +}) + +/** + * @returns {Array} 发料申请子表 + */ +export const InspectionQ3Detail = useCrudSchemas( + reactive([ + { + label: '通知单号', + field: 'number', + sort: 'custom', + isSearch: false, + isTable: false, + isTableForm: false + }, + { + label: '物料号', + field: 'itemCode', + sort: 'custom', + isTable: false, + isSearch: false, + table: { + width: 150 + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + isTable: false, + + tableForm: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + } + }, + { + label: '单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: false, + isTable: false, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '单价', + field: 'price', + sort: 'custom', + isTable: false, + isSearch: false, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '成本中心代码', + field: 'costCode', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: true, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择成本中心', // 输入框占位文本 + searchField: 'costcentreCode', // 查询弹窗赋值字段 + searchTitle: '成本中心信息', // 查询弹窗标题 + searchAllSchemas: QadCostcentre.allSchemas, // 查询弹窗所需类 + searchPage: QadCostcentreApi.getQadCostcentrePage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'costcentreCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + }, + { + label: '缺陷编码', + field: 'defectCode', + sort: 'custom', + dictType: DICT_TYPE.QMS_Q3_CODE, + dictClass: 'string', + isSearch: true, + isTable: true, + tableForm: { + type: 'Select' + } + }, + { + label: '缺陷位置', + field: 'defectLocation', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: false, + form: { + component: 'Select', + componentProps: { + options: [], + optionsAlias: { + labelField: 'productionLineName', + valueField: 'productionLineCode' + }, + filterable: true + } + } + }, + { + label: '缺陷类型', + field: 'defectType', + sort: 'custom', + isSearch: false, + isTable: false, + form: { + component: 'Select' + } + }, + { + label: '问题原因', + field: 'problemReason', + sort: 'custom', + isSearch: false, + isTable: false, + form: { + component: 'Select' + } + }, + { + label: '操作', + field: 'action', + hiddenInMain: true, + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + }, + isTableForm: false + } + ]) +) + +//表单校验 +export const InspectionQ3DetailRules = reactive({ + itemCode: [{ required: true, message: '请选择物料代码', trigger: 'change' }], + packingNumber: [{ required: true, message: '请输入包装号', trigger: 'blur' }], + batch: [{ required: true, message: '请输入批次', trigger: 'blur' }], + inventoryStatus: [{ required: true, message: '请选择库存状态', trigger: 'change' }], + toLocationCode: [{ required: true, message: '请输入到库位代码', trigger: 'blur' }] +}) From e4a46538d5a722ff5ac6327517c1b18f274ef13a Mon Sep 17 00:00:00 2001 From: wangyufei <2267742828@qq.com> Date: Thu, 15 Aug 2024 14:17:43 +0800 Subject: [PATCH 08/28] =?UTF-8?q?=E8=BE=BE=E6=98=8E--=E5=88=B6=E5=93=81?= =?UTF-8?q?=E5=9B=9E=E6=94=B6=E6=96=B0=E5=A2=9E=E5=8A=A0=E8=BD=A6=E9=97=B4?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E3=80=81=E7=94=9F=E4=BA=A7=E7=BA=BF=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productredressRequestMain/index.vue | 2 +- .../productredressRequestMain.data.ts | 111 +++++++++++++++++- 2 files changed, 111 insertions(+), 2 deletions(-) diff --git a/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue b/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue index fce1bdba6..6f0ab4500 100644 --- a/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue +++ b/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue @@ -119,7 +119,7 @@ defineOptions({ name: 'ProductredressRequestMain' }) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 - +// 制品回收申请 const route = useRoute() // 路由信息 const routeName = ref() routeName.value = route.name diff --git a/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts b/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts index 7ec65d060..044ab68e6 100644 --- a/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts +++ b/src/views/wms/productionManage/productredress/productredressRequestMain/productredressRequestMain.data.ts @@ -1,6 +1,9 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' - +import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' +import * as ProductionlineApi from '@/api/wms/productionline' +import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data' +import * as WorkshopApi from '@/api/wms/workshop' import * as BalanceApi from '@/api/wms/balance' import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' import * as getBusinessTypeApi from '@/api/wms/businesstype/index' @@ -17,6 +20,12 @@ export const ProductredressRequestMainRules = reactive({ autoAgree: [required], autoExecute: [required], directCreateRecord: [required], + workshopCode: [ + { required: true, message: '请选择车间代码', trigger: 'change' } + ], + productionLineCode: [ + { required: true, message: '请选择生产线代码', trigger: 'change' } + ], }) export const ProductredressRequestMain = useCrudSchemas(reactive([ @@ -55,6 +64,106 @@ export const ProductredressRequestMain = useCrudSchemas(reactive([ } } }, + { + label: '车间代码', + field: 'workshopCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, + searchListPlaceholder: '请选择车间', + searchField: 'code', + searchTitle: '车间信息', + searchAllSchemas: Workshop.allSchemas, + searchPage: WorkshopApi.getWorkshopPage, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + } + }, + { + label: '生产线代码', + field: 'productionLineCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择生产线代码', + searchField: 'code', + searchTitle: '生产线信息', + searchAllSchemas: Productionline.allSchemas, + searchPage: ProductionlineApi.getProductionlinePage, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'workshopCode', + value: 'workshopCode', + message: '请填写车间代码!', + isMainValue: true + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, + searchListPlaceholder: '请选择生产线代码', + searchField: 'code', + searchTitle: '生产线信息', + searchAllSchemas: Productionline.allSchemas, + searchPage: ProductionlineApi.getProductionlinePage, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'workshopCode', + value: 'workshopCode', + message: '请填写车间代码!', + isMainValue: true + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + } + }, // { // label: '车间代码', // field: 'workshopCode', From 6b1343f83f17a3115211a57d3b6324e49e88321c Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Thu, 15 Aug 2024 14:26:19 +0800 Subject: [PATCH 09/28] q3 --- .../qms/inspectionQThree/inspectionQ3.data.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/views/qms/inspectionQThree/inspectionQ3.data.ts b/src/views/qms/inspectionQThree/inspectionQ3.data.ts index 5c8d36532..921958451 100644 --- a/src/views/qms/inspectionQThree/inspectionQ3.data.ts +++ b/src/views/qms/inspectionQThree/inspectionQ3.data.ts @@ -390,8 +390,8 @@ export const InspectionQ3Detail = useCrudSchemas( width: 150 }, tableForm: { - enterSearch: true, - isInpuFocusShow: true, + isInpuFocusShow: false, + disabled:true, searchListPlaceholder: '请选择物料代码', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 searchTitle: '物料基础信息', // 查询弹窗标题 @@ -404,6 +404,8 @@ export const InspectionQ3Detail = useCrudSchemas( isMainValue: false } ], + isShowTableFormSearch: true, //tableForm下方是否出现输入框 + isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 verificationParams: [ { key: 'code', @@ -453,11 +455,9 @@ export const InspectionQ3Detail = useCrudSchemas( isTable: false, tableForm: { - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2 - } + type: 'InputNumber', + min: 0, + precision: 2 } }, { From 4f87edc3b35ff8eb905a99f2a71cab3526453657 Mon Sep 17 00:00:00 2001 From: wangyufei <2267742828@qq.com> Date: Thu, 15 Aug 2024 14:28:29 +0800 Subject: [PATCH 10/28] =?UTF-8?q?=E5=9B=BD=E5=BC=BA--=E8=AE=A9=E6=9B=B4?= =?UTF-8?q?=E6=8D=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/purchaseDetail/index.ts | 9 +++++++++ .../purchasereceiptRequestOrderMTypeMain/index.vue | 2 +- .../purchasereceiptRequestMain.data.ts | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/api/wms/purchaseDetail/index.ts b/src/api/wms/purchaseDetail/index.ts index d51ab6b68..e1226b751 100644 --- a/src/api/wms/purchaseDetail/index.ts +++ b/src/api/wms/purchaseDetail/index.ts @@ -55,6 +55,15 @@ export const getPurchaseDetailPageWMS = async (params) => { } } +export const getPurchaseDetailPageWMSTypeM = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchase-detail/seniorM', data }) + } else { + return await request.get({ url: `/wms/purchase-detail/pageM`, params }) + } +} // 查询采购订单子列表 export const getPurchaseDetailPageWMSSpare = async (params) => { diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue index ad1fd9943..4f4ac3d03 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue @@ -518,7 +518,7 @@ const updateTableData = (tableList)=>{ const getSearchTableData = async (number,isEnter=false)=>{ const {tableObject ,tableMethods} = useTable({ defaultParams:{number}, - getListApi: PurchaseDetailApi.getPurchaseDetailPageWMS // 分页接口 + getListApi: PurchaseDetailApi.getPurchaseDetailPageWMSTypeM // 分页接口 }) // 获得表格的各种操作 const { getList:getList1 } = tableMethods diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts index d84f01b0d..6931e94ff 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts @@ -634,7 +634,7 @@ export const PurchasereceiptRequestDetail = useCrudSchemas(reactive Date: Thu, 15 Aug 2024 14:30:20 +0800 Subject: [PATCH 11/28] =?UTF-8?q?=E5=9B=BD=E5=BC=BA=E8=AE=A9=E6=88=91?= =?UTF-8?q?=E5=8E=BB=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchasereceiptRequestOrderMTypeMain/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue index 4f4ac3d03..07b6f32be 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue @@ -348,7 +348,7 @@ const butttondata = (row,$index) => { return [] } return [ - defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['5']),hasPermi:'wms:purchasereceipt-request-main:reAdd'}), //重新添加 + // defaultButtons.mainListReAddBtn({hide:isShowMainButton(row,['5']),hasPermi:'wms:purchasereceipt-request-main:reAdd'}), //重新添加 defaultButtons.mainListSubmitBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchasereceipt-request-main:submit'}), // 提交审批 defaultButtons.mainListTurnDownBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:purchasereceipt-request-main:refused'}), // 驳回 defaultButtons.mainListApproveBtn({hide:isShowMainButton(row,['2']),hasPermi:'wms:purchasereceipt-request-main:agree'}), // 审批通过 From df485333eaed80c0b34e772f1bf52e10253c642a Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Thu, 15 Aug 2024 14:38:13 +0800 Subject: [PATCH 12/28] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=B3=E9=97=AD=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/qms/inspectionRecord/index.vue | 81 ++++++++++++++++-------- 1 file changed, 53 insertions(+), 28 deletions(-) diff --git a/src/views/qms/inspectionRecord/index.vue b/src/views/qms/inspectionRecord/index.vue index 636e3e2de..ed885c7b2 100644 --- a/src/views/qms/inspectionRecord/index.vue +++ b/src/views/qms/inspectionRecord/index.vue @@ -244,6 +244,7 @@ const isShowPackageBtn = (row, val) => { const butttondata = (row) => { return [ // defaultButtons.mainListOrderCOMPLETEBtn({ hide: isShowMainButton(row, ['INCOMPLETE']) }), // 完成 + defaultButtons.mainApplyDecisionBtn({ hide: isShowMainButton(row, null), hasPermi: 'qms:inspection-recode-main:edit' @@ -253,6 +254,10 @@ const butttondata = (row) => { hide: isShowMainButton(row, 'publish'), hasPermi: 'qms:inspection-recode-main:pub' }), // 发布 + defaultButtons.mainListCloseBtn({ + hide: isShowMainButton(row, null), + hasPermi: 'qms:inspection-recode-main:close' + }), // 关闭 defaultButtons.mainListPackageBtn({ hide: isShowPackageBtn(row, ['11']) }), // 包装 // defaultButtons.mainListJobExeBtn({ // hide:row.useDecision, @@ -269,7 +274,9 @@ const useDecisionList = getStrDictOptions(DICT_TYPE.USAGE_DECISION) // const useDecisionList = InspectionRecordMain.allSchemas.formSchema.filter(item=>item.field == "useDecision") // 列表-操作按钮事件 const buttonTableClick = async (val, row) => { - if (val == 'applyDecision') { + if (val == 'mainClose') { + handleOrderClose(row) + } else if (val == 'applyDecision') { // 编辑 // 评估代码值是1,接收时候,使用决策下拉列表是全部合格 if (row.estimateCode == 1) { @@ -366,7 +373,20 @@ const handleOrderPub = async (row: object) => { await getList() } catch {} } - +/** 关闭按钮操作 */ +const handleOrderClose = async (row: object) => { + try { + // 二次确认 + await message.confirm(t('ts.是否关闭所选中数据?')) + row.isPublished = true + row.packageList = await InspectionRecordPackageApi.getInspectionRecordPackageList(row.id) + await InspectionRecordMainApi.updateInspectionRecordMain(row) + message.success(t('ts.关闭成功!')) + await getList() + } catch { + row.isPublished = false + } +} //执行 const execute = async (type: string, row?: number) => { @@ -445,33 +465,38 @@ const searchFormClick = (searchData) => { let isHave = searchData?.filters?.some((item) => item.column == 'inspectionType') if (!isHave) { if (route.name == 'inspectionRecordPurchase') { - searchData.filters.push({ - action: '==', - column: 'inspectionType', - value: '1' - },{ - action: '==', - column: 'available', - value: true - }) - } else if (route.name == 'inspectionRecordProduction') { - searchData.filters.push({ - action: '==', - column: 'inspectionType', - value: '4' - },{ - action: '==', - column: 'available', - value: true - }) - } else { + searchData.filters.push( + { + action: '==', + column: 'inspectionType', + value: '1' + }, + { + action: '==', + column: 'available', + value: true + } + ) + } else if (route.name == 'inspectionRecordProduction') { + searchData.filters.push( + { + action: '==', + column: 'inspectionType', + value: '4' + }, + { + action: '==', + column: 'available', + value: true + } + ) + } else { searchData.filters.push({ - action: 'notIn', - column: 'inspectionType', - value: '1,4,11' - }) - } - + action: 'notIn', + column: 'inspectionType', + value: '1,4,11' + }) + } } tableObject.params = { isSearch: true, From a35a8fa1d57bcdb6c99a96b64e05e4193eae4a7a Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Thu, 15 Aug 2024 14:52:29 +0800 Subject: [PATCH 13/28] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/qms/inspectionRecord/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/qms/inspectionRecord/index.vue b/src/views/qms/inspectionRecord/index.vue index ed885c7b2..a7863738e 100644 --- a/src/views/qms/inspectionRecord/index.vue +++ b/src/views/qms/inspectionRecord/index.vue @@ -255,7 +255,7 @@ const butttondata = (row) => { hasPermi: 'qms:inspection-recode-main:pub' }), // 发布 defaultButtons.mainListCloseBtn({ - hide: isShowMainButton(row, null), + hide: isShowMainButton(row, 'publish'), hasPermi: 'qms:inspection-recode-main:close' }), // 关闭 defaultButtons.mainListPackageBtn({ hide: isShowPackageBtn(row, ['11']) }), // 包装 From 92f96b0be59d794388a4293f8d14415fc0c7e6c6 Mon Sep 17 00:00:00 2001 From: wangyufei <2267742828@qq.com> Date: Thu, 15 Aug 2024 14:54:54 +0800 Subject: [PATCH 14/28] =?UTF-8?q?=E5=9B=BD=E5=BC=BA-=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=95=B0=E4=B8=8D=E5=8F=AF=E7=BC=96=E8=BE=91=20=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E8=AE=A2=E5=8D=95=E6=95=B0=E5=A4=A7=E4=BA=8E=E9=9B=B6?= =?UTF-8?q?=E5=B0=8F=E4=BA=8E1=20=20=E6=94=B6=E8=B4=A7=E6=95=B0=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=AD=89=E4=BA=8E=E8=AE=A2=E5=8D=95=E6=95=B0=20?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E8=AE=A2=E5=8D=95=E6=95=B0=E5=A4=A7=E4=BA=8E?= =?UTF-8?q?1=20=20=E9=BB=98=E8=AE=A4=E6=94=B6=E8=B4=A7=E6=95=B0=E4=B8=BA1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交收货数不能大于订单数,收货数量必须大于0 --- .../index.vue | 11 +++++++++++ .../purchasereceiptRequestMain.data.ts | 18 ++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue index 07b6f32be..ab11f0b25 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue @@ -509,6 +509,12 @@ const updateTableData = (tableList)=>{ //批次 newRow['batch'] = formatDate(newRow['produceDate'],'YYYYMMDD'); newRow['defaultToLocationCode'] =row['defaultLocation'] + if(Number(row['orderQty'])>1){ + newRow['qty'] = 1 + }else{ + newRow['qty'] = row['orderQty'] + } + if(!tableData.value.find((item:object)=>item.poNumber == newRow.poNumber&&item.itemCode == newRow.itemCode&&item.poLine == newRow.poLine&&item.batch == newRow.batch)){ tableData.value.push(newRow) } @@ -734,6 +740,11 @@ const submitForm = async (formType, submitData) => { tableData.value.forEach((row, index) => { row['expireDate'] = row['expireTime']?addDay(row['produceDate'],row['expireTime']).valueOf():dayjs('2099-12-31').valueOf() }) + if(tableData.value.find(item=>item['qty']>item['orderQty'])){ + message.error('收货数不能大于订单数') + return + } + data.subList = tableData.value // 拼接子表数据参数 try { if (formType === 'create') { diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts index 6931e94ff..269ea64da 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts @@ -580,7 +580,13 @@ export const PurchasereceiptRequestMain = useCrudSchemas(reactive( }, } ])) - +function validateQty(rule, value, callback) { + if (value>0) { + callback() + }else{ + callback(new Error('数量必须大于0')) + } +} //表单校验 export const PurchasereceiptRequestMainRules = reactive({ ppNumber: [ @@ -609,7 +615,7 @@ export const PurchasereceiptRequestMainRules = reactive({ ], businessType: [ { required: true, message: '请输入业务类型', trigger: 'blur' } - ], + ] }) /** @@ -844,6 +850,7 @@ export const PurchasereceiptRequestDetail = useCrudSchemas(reactive Date: Thu, 15 Aug 2024 14:55:33 +0800 Subject: [PATCH 15/28] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qms/inspectionQ3/index.ts | 73 --- src/views/qms/inspectionQ3/index.vue | 457 ++++++++----- .../qms/inspectionQ3/inspectionQ3.data.ts | 584 +++++++++++------ src/views/qms/inspectionQThree/index.vue | 478 -------------- .../qms/inspectionQThree/inspectionQ3.data.ts | 618 ------------------ .../scrapRequestMain/scrapRequestMain.data.ts | 106 ++- 6 files changed, 761 insertions(+), 1555 deletions(-) delete mode 100644 src/api/qms/inspectionQ3/index.ts delete mode 100644 src/views/qms/inspectionQThree/index.vue delete mode 100644 src/views/qms/inspectionQThree/inspectionQ3.data.ts diff --git a/src/api/qms/inspectionQ3/index.ts b/src/api/qms/inspectionQ3/index.ts deleted file mode 100644 index a8e1d81b2..000000000 --- a/src/api/qms/inspectionQ3/index.ts +++ /dev/null @@ -1,73 +0,0 @@ -import request from '@/config/axios' - -export interface Q3VO { - id: number - number: string - q1Number: string - itemCode: string - qty: number - code: string - uom: string - desc: string - defectLocation: string - defectType: string - problemReason: string - priority: number - responUser: string - amount: number - costCode: string - handleTime: Date - status: string - available: string - deletionTime: Date - deleterId: string - extraProperties: string - concurrencyStamp: number - siteId: string -} - -// 查询Q3通知单列表 -export const getQ3Page = async (params) => { - if (params.isSearch) { - delete params.isSearch - const data = { ...params } - return await request.post({ url: '/qms/inspectionQ3/senior', data }) - } else { - return await request.get({ url: `/qms/inspectionQ3/page`, params }) - } -} - -// 查询Q3通知单详情 -export const getQ3 = async (id: number) => { - return await request.get({ url: `/qms/inspectionQ3/get?id=` + id }) -} - -// 新增Q3通知单 -export const createQ3 = async (data: Q3VO) => { - return await request.post({ url: `/qms/inspectionQ3/create`, data }) -} - -// 修改Q3通知单 -export const updateQ3 = async (data: Q3VO) => { - return await request.put({ url: `/qms/inspectionQ3/update`, data }) -} - -// 删除Q3通知单 -export const deleteQ3 = async (id: number) => { - return await request.delete({ url: `/qms/inspectionQ3/delete?id=` + id }) -} - -// 导出Q3通知单 Excel -export const exportQ3 = async (params) => { - return await request.download({ url: `/qms/inspectionQ3/export-excel`, params }) -} - -// 下载用户导入模板 -export const importTemplate = () => { - return request.download({ url: '/qms/inspectionQ3/get-import-template' }) -} - -// 完成 -export const finishQ3 = async (id: number) => { - return await request.get({ url: `/qms/inspectionQ3/finish?id=` + id }) -} diff --git a/src/views/qms/inspectionQ3/index.vue b/src/views/qms/inspectionQ3/index.vue index abd156ce2..d49ba7e99 100644 --- a/src/views/qms/inspectionQ3/index.vue +++ b/src/views/qms/inspectionQ3/index.vue @@ -1,26 +1,23 @@