From 9784608d75f5dddb88875686556b10723773bde8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=83=9C=E6=A5=A0?= <2792649152@qq.com> Date: Mon, 27 Nov 2023 09:46:56 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=A6=81=E8=B4=A7=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchasePlanMain/index.vue | 87 ++++++++++++++----- .../purchasePlanMain/purchasePlanMain.data.ts | 54 +++++------- 2 files changed, 85 insertions(+), 56 deletions(-) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue index 83b94b08a..ccbfc53f6 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue @@ -81,6 +81,7 @@ import { PurchasePlanMain,PurchasePlanMainRules,PurchasePlanDetail,PurchasePlanD import * as PurchasePlanMainApi from '@/api/wms/purchasePlanMain' import * as PurchasePlanDetailApi from '@/api/wms/purchasePlanDetail' import * as defaultButtons from '@/utils/disposition/defaultButtons' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' // 要货计划 defineOptions({ name: 'PurchasePlanMain' }) @@ -100,13 +101,21 @@ const updataTableColumns = (val) => { // 查询页面返回 const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => { - nextTick(() => { + nextTick(async() => { if (type == 'tableForm') { // 明细查询页赋值 row[formField] = val[0][searchField] row['itemCode'] = val[0]['code'] row['poNumber'] = val[0]['number'] row['poLine'] = val[0]['lineNumber'] + await PurchaseDetailApi.getPurchaseDetailPage({ + number: row['poNumber'], + lineNumber: row['poLine'], + }).then(res => { + if(res.list.length == 1) { + row['itemCode'] = res.list[0].itemCode + } + }) } else { const setV = {} setV[formField] = val[0][searchField] @@ -116,13 +125,20 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => } // 查询页面返回——详情 const searchTableSuccessDetail = (formField, searchField, val, formRef ) => { - nextTick(() => { + nextTick(async() => { const setV = {} setV[formField] = val[0][searchField] - setV['itemCode'] = val[0]['code'] setV['poNumber'] = val[0]['number'] setV['poLine'] = val[0]['lineNumber'] - formRef.setValues(setV) + await PurchaseDetailApi.getPurchaseDetailPage({ + number: setV['poNumber'], + lineNumber: setV['poLine'], + }).then(res => { + if(res.list.length == 1) { + setV['itemCode'] = res.list[0].itemCode + formRef.setValues(setV) + } + }) }) } @@ -178,17 +194,17 @@ const isShowMainButton = (row,val) => { // 列表-操作按钮 const butttondata = (row) => { - return [ - defaultButtons.mainListPurchasePlanModBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_REJECTED'])}), // 修改 - defaultButtons.mainListPurchasePlanWitBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_PUBLISHED'])}), // 下架 - defaultButtons.mainListPurchasePlanRejBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_PUBLISHED'])}), // 不接受 - defaultButtons.mainListPurchasePlanAccBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_PUBLISHED'])}), // 接受 - defaultButtons.mainListPurchasePlanPubBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_READY'])}), // 发布 - defaultButtons.mainListPurchasePlanCloBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_READY'])}), // 关闭 - defaultButtons.mainListPurchasePlanOpeBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_CLOSED'])}), // 打开 - defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_READY']),hasPermi:'wms:purchase-plan-main:update'}), // 编辑 - defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['PLAN_PURCHASE_READY']),hasPermi:'wms:purchase-plan-main:delete'}), // 删除 - ] + return [ + defaultButtons.mainListPurchasePlanModBtn({hide:isShowMainButton(row,['5'])}), // 修改 + defaultButtons.mainListPurchasePlanWitBtn({hide:isShowMainButton(row,['3'])}), // 下架 + defaultButtons.mainListPurchasePlanRejBtn({hide:isShowMainButton(row,['3'])}), // 不接受 + defaultButtons.mainListPurchasePlanAccBtn({hide:isShowMainButton(row,['3'])}), // 接受 + defaultButtons.mainListPurchasePlanPubBtn({hide:isShowMainButton(row,['1'])}), // 发布 + defaultButtons.mainListPurchasePlanCloBtn({hide:isShowMainButton(row,['1'])}), // 关闭 + defaultButtons.mainListPurchasePlanOpeBtn({hide:isShowMainButton(row,['2'])}), // 打开 + defaultButtons.mainListEditBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchase-plan-main:update'}), // 编辑 + defaultButtons.mainListDeleteBtn({hide:isShowMainButton(row,['1']),hasPermi:'wms:purchase-plan-main:delete'}), // 删除 + ] } @@ -278,8 +294,21 @@ const handleDeleteTable = (item, index) => { // 主子数据 提交 const submitForm = async (formType, data) => { - data.subList = tableData.value // 拼接子表数据参数 - try { + data.subList = [] + for(let item of tableData.value) { + await PurchaseDetailApi.getPurchaseDetailPage({ + number: item.poNumber, + lineNumber: item.poLine + }).then(res => { + if(item.planQty > res.list[0].orderQty-res.list[0].plannedQty){ + message.error('要货计划数量不得大于订单数量-已计划数量') + } else { + data.subList.push(item) // 拼接子表数据参数 + } + }) + } + if(data.subList.length == tableData.value.length){ + try { if (formType === 'create') { await PurchasePlanMainApi.createPurchasePlanMain(data) message.success(t('common.createSuccess')) @@ -294,12 +323,24 @@ const submitForm = async (formType, data) => { formRef.value.formLoading = false } } +formRef.value.formLoading = false +} -// 子表新增校验 -const detailValidate = (data) => { - console.log(300, data) - message.warning('错了吧,') - return false +// 子表新增/编辑校验 +const detailValidate = async (data) => { + let tag = false + await PurchaseDetailApi.getPurchaseDetailPage({ + number: data.poNumber, + lineNumber: data.poLine + }).then(res => { + if(data.planQty > res.list[0].orderQty-res.list[0].plannedQty){ + message.error('要货计划数量不得大于订单数量-已计划数量') + tag = false + } else { + tag = true + } + }) + return tag } /** 导入 */ @@ -333,4 +374,4 @@ onMounted(async () => { getList() importTemplateData.templateUrl = await PurchasePlanMainApi.importTemplate() }) - + \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts index e6e26b3f0..dc1864644 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts @@ -2,8 +2,6 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import * as SupplierApi from '@/api/wms/supplier' import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' -import * as SupplieritemApi from '@/api/wms/supplieritem' -import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' import * as PurchaseMainApi from '@/api/wms/purchaseMain' import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' import { PurchaseDetail, PurchaseMain } from '../purchaseMain/purchaseMain.data' @@ -98,7 +96,7 @@ export const PurchasePlanMain = useCrudSchemas(reactive([ width: 150 }, form: { - value: 'PLAN_PURCHASE_READY', + value: '1', componentProps: { disabled: true } @@ -332,7 +330,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ searchAllSchemas: PurchaseDetail.allSchemas, searchPage: PurchaseDetailApi.getPurchaseDetailPage, searchCondition: [{ - key:'lineNumber', + key:'number', value:'poNumber', isMainValue: true }] @@ -361,33 +359,12 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ width: 150 }, form: { - // labelMessage: '信息提示说明!!!', componentProps: { - isSearchList: true, - searchListPlaceholder: '请选择供应商物品', - searchField: 'code', - searchTitle: '供应商物品信息', - searchAllSchemas: Supplieritem.allSchemas, - searchPage: SupplieritemApi.getSupplieritemPage, - searchCondition: [{ - key:'supplierCode', - value:'supplierCode', - isMainValue: true - }] + disabled: true } }, tableForm: { - isInpuFocusShow: true, - searchListPlaceholder: '请选择供应商物品', - searchField: 'code', - searchTitle: '供应商物品信息', - searchAllSchemas: Supplieritem.allSchemas, - searchPage: SupplieritemApi.getSupplieritemPage, - searchCondition: [{ - key:'supplierCode', - value:'supplierCode', - isMainValue: true - }] + disabled: true } }, { @@ -445,6 +422,13 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ min: 1, precision: 6 }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + } }, { label: '计量单位', @@ -513,6 +497,12 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ table: { width: 150 }, + tableForm:{ + type:'Select', + default: 'TRUE', + inactiveValue: 'FALSE', + activeValue: 'TRUE' + }, form: { component: 'Switch', value: 'TRUE', @@ -520,9 +510,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ inactiveValue: 'FALSE', activeValue: 'TRUE' } - }, - isTableForm: false, - isForm: false + } }, { label: '操作', @@ -539,9 +527,9 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ //表单校验 export const PurchasePlanDetailRules = reactive({ - available: [ - { required: true, message: '请选择是否可用', trigger: 'change' } - ], + // available: [ + // { required: true, message: '请选择是否可用', trigger: 'change' } + // ], poNumber: [ { required: true, message: '请选择采购订单号', trigger: 'change' } ], From ce46a44b8d9c4326e4ece8838c62bde5eca3a975 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Mon, 27 Nov 2023 09:57:35 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ImportForm/src/ImportForm.vue | 132 ++++++++++++------- 1 file changed, 83 insertions(+), 49 deletions(-) diff --git a/src/components/ImportForm/src/ImportForm.vue b/src/components/ImportForm/src/ImportForm.vue index 9a1e25366..362fe8d0a 100644 --- a/src/components/ImportForm/src/ImportForm.vue +++ b/src/components/ImportForm/src/ImportForm.vue @@ -1,16 +1,41 @@