From 3dcf935e1cefa28229785170787bef351bbcdf4d Mon Sep 17 00:00:00 2001 From: z Date: Mon, 18 May 2026 08:45:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=9F=E6=9D=90=E6=96=99=E6=A3=80=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/RawMaterialInspSaveReqVO.java | 3 - .../inspplanitem/InspPlanItemDO.java | 2 + .../rawmaterialinsp/RawMaterialInspDO.java | 7 +- .../RawMaterialInspDetailDO.java | 3 +- .../RawMaterialInspTotalDO.java | 3 +- .../inspplanitem/InspPlanItemMapper.java | 1 + .../RawMaterialInspTotalMapper.java | 2 +- .../RawMaterialInspServiceImpl.java | 59 ++++- .../src/types/auto-components.d.ts | 107 ++------ .../src/types/auto-imports.d.ts | 2 + mes-ui/mes-ui-admin-vue3/src/utils/dict.ts | 7 + .../views/biz/plan/MaterialSelectDialog.vue | 1 + .../src/views/biz/plan/PlanForm.vue | 19 +- .../src/views/biz/plan/index.vue | 33 +-- .../rawmaterialinsp/MaterialSelectDialog.vue | 2 + .../PurchaseOrderSelectDialog.vue | 5 +- .../rawmaterialinsp/RawMaterialInspForm.vue | 249 ++++++++++++------ .../src/views/biz/rawmaterialinsp/index.vue | 49 ++-- 18 files changed, 325 insertions(+), 229 deletions(-) diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawmaterialinsp/vo/RawMaterialInspSaveReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawmaterialinsp/vo/RawMaterialInspSaveReqVO.java index 9e5990c..6b7d17c 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawmaterialinsp/vo/RawMaterialInspSaveReqVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawmaterialinsp/vo/RawMaterialInspSaveReqVO.java @@ -18,7 +18,6 @@ public class RawMaterialInspSaveReqVO { private String id; @Schema(description = "检验单号,YL+年月日+两位流水号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "检验单号,YL+年月日+两位流水号不能为空") private String checkCode; @Schema(description = "供应商id", example = "15219") @@ -28,7 +27,6 @@ public class RawMaterialInspSaveReqVO { private String supplierSimName; @Schema(description = "物料id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9776") - @NotNull(message = "物料id不能为空") private Integer materialId; @Schema(description = "物料编码") @@ -53,7 +51,6 @@ public class RawMaterialInspSaveReqVO { private BigDecimal sampleQty; @Schema(description = "检验日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "检验日期不能为空") private LocalDate checkDate; @Schema(description = "检验结果(0 合格 1 不合格 2让步接收)") diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/inspplanitem/InspPlanItemDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/inspplanitem/InspPlanItemDO.java index e844757..eeb5964 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/inspplanitem/InspPlanItemDO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/inspplanitem/InspPlanItemDO.java @@ -87,4 +87,6 @@ public class InspPlanItemDO extends BaseDOWithoutLogic { private Integer tolNum; @TableField(exist = false) private String checkMethod; + @TableField(exist = false) + private String formCode; } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsp/RawMaterialInspDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsp/RawMaterialInspDO.java index 91edf2f..b8e63b5 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsp/RawMaterialInspDO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsp/RawMaterialInspDO.java @@ -1,5 +1,6 @@ package com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinsp; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDOWithoutLogic; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinsptotal.RawMaterialInspTotalDO; import lombok.*; @@ -25,13 +26,13 @@ import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class RawMaterialInspDO extends BaseDO { +public class RawMaterialInspDO extends BaseDOWithoutLogic { /** * id */ - @TableId(type = IdType.INPUT) - private String id; + @TableId + private Integer id; /** * 检验单号,YL+年月日+两位流水号 */ diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinspdetail/RawMaterialInspDetailDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinspdetail/RawMaterialInspDetailDO.java index bca7186..4e6a2af 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinspdetail/RawMaterialInspDetailDO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinspdetail/RawMaterialInspDetailDO.java @@ -1,5 +1,6 @@ package com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinspdetail; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDOWithoutLogic; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -20,7 +21,7 @@ import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class RawMaterialInspDetailDO extends BaseDO { +public class RawMaterialInspDetailDO extends BaseDOWithoutLogic { /** * 主键 diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsptotal/RawMaterialInspTotalDO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsptotal/RawMaterialInspTotalDO.java index 30358b6..c80f0cf 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsptotal/RawMaterialInspTotalDO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/dataobject/rawmaterialinsptotal/RawMaterialInspTotalDO.java @@ -1,5 +1,6 @@ package com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinsptotal; +import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDOWithoutLogic; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinspdetail.RawMaterialInspDetailDO; import lombok.*; import java.util.*; @@ -21,7 +22,7 @@ import com.ningxia.yunxi.chemmes.framework.mybatis.core.dataobject.BaseDO; @Builder @NoArgsConstructor @AllArgsConstructor -public class RawMaterialInspTotalDO extends BaseDO { +public class RawMaterialInspTotalDO extends BaseDOWithoutLogic { /** * 主键 diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/inspplanitem/InspPlanItemMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/inspplanitem/InspPlanItemMapper.java index 9e83d32..f23ace9 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/inspplanitem/InspPlanItemMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/inspplanitem/InspPlanItemMapper.java @@ -67,6 +67,7 @@ public interface InspPlanItemMapper extends BaseMapperX { .select("p.test_Num as tolNum") .select("c.item_value_type as itemValueType","c.item_content as itemContent") .select("c.test_num as testNum","c.float_num as floatNum","c.check_method as checkMethod") + .select("p.form_code as formCode") .leftJoin(CheckItemDO.class,"c",CheckItemDO::getId,InspPlanItemDO::getItemId) .leftJoin(InspPlanDO.class,"p",InspPlanDO::getId,InspPlanItemDO::getSchemeId) .leftJoin(MaterialDO.class,"m",MaterialDO::getSchemeId,InspPlanDO::getId) diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawmaterialinsptotal/RawMaterialInspTotalMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawmaterialinsptotal/RawMaterialInspTotalMapper.java index 767adef..8e1455f 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawmaterialinsptotal/RawMaterialInspTotalMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawmaterialinsptotal/RawMaterialInspTotalMapper.java @@ -49,7 +49,7 @@ public interface RawMaterialInspTotalMapper extends BaseMapperX selectByRawMatInspId(String id){ + default List selectByRawMatInspId(Integer id){ MPJLambdaWrapperX query = new MPJLambdaWrapperX<>(); query.selectAll(RawMaterialInspTotalDO.class) .select("c.item_value_type as itemValueType","c.item_content as itemContent") diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawmaterialinsp/RawMaterialInspServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawmaterialinsp/RawMaterialInspServiceImpl.java index 324dac2..bc5dcf3 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawmaterialinsp/RawMaterialInspServiceImpl.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawmaterialinsp/RawMaterialInspServiceImpl.java @@ -1,5 +1,6 @@ package com.ningxia.yunxi.chemmes.module.biz.service.rawmaterialinsp; +import cn.hutool.core.util.StrUtil; import com.ningxia.yunxi.chemmes.module.biz.controller.admin.rawmaterialinsp.vo.RawMaterialInspPageReqVO; import com.ningxia.yunxi.chemmes.module.biz.controller.admin.rawmaterialinsp.vo.RawMaterialInspSaveReqVO; import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinsp.RawMaterialInspDO; @@ -8,10 +9,14 @@ import com.ningxia.yunxi.chemmes.module.biz.dal.dataobject.rawmaterialinsptotal. import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.rawmaterialinsp.RawMaterialInspMapper; import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.rawmaterialinspdetail.RawMaterialInspDetailMapper; import com.ningxia.yunxi.chemmes.module.biz.dal.mysql.rawmaterialinsptotal.RawMaterialInspTotalMapper; +import com.ningxia.yunxi.chemmes.module.system.dal.dataobject.user.AdminUserDO; +import com.ningxia.yunxi.chemmes.module.system.dal.mysql.user.AdminUserMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; + +import static com.ningxia.yunxi.chemmes.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.ningxia.yunxi.chemmes.module.infra.enums.ErrorCodeConstants.*; import java.time.LocalDate; @@ -39,6 +44,8 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { private RawMaterialInspTotalMapper rawMaterialInspTotalMapper; @Resource private RawMaterialInspDetailMapper rawMaterialInspDetailMapper; + @Resource + private AdminUserMapper adminUserMapper; @Override @@ -46,12 +53,16 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { public String createRawMaterialInsp(RawMaterialInspSaveReqVO createReqVO) { // 生成检验单号 String checkCode = generateCheckCode(); - + // 设置检验人信息为当前登录用户 + Long userId = getLoginUserId(); + AdminUserDO adminUserDO = adminUserMapper.selectById(userId); + createReqVO.setCheckUserId(Integer.parseInt(String.valueOf(userId))); + createReqVO.setCheckUserName(adminUserDO.getNickname()); // 1. 插入主表 tqm_raw_material_insp RawMaterialInspDO rawMaterialInsp = BeanUtils.toBean(createReqVO, RawMaterialInspDO.class); rawMaterialInsp.setCheckCode(checkCode); rawMaterialInspMapper.insert(rawMaterialInsp); - String rawMatInspId = rawMaterialInsp.getId(); + Integer rawMatInspId = rawMaterialInsp.getId(); // 2. 循环插入汇总表 tqm_raw_material_insp_total(顺序号由后台生成) List totalList = createReqVO.getRawMaterialInspTotalList(); @@ -61,7 +72,7 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { totalSeq++; // 插入汇总表 RawMaterialInspTotalDO total = RawMaterialInspTotalDO.builder() - .rawMatInspId(rawMatInspId) + .rawMatInspId(String.valueOf(rawMatInspId)) .checkCode(checkCode) .itemId(totalDO.getItemId()) .itemName(totalDO.getItemName()) @@ -74,6 +85,7 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { .seqNo(totalSeq) .inspPlanId(totalDO.getInspPlanId()) .inspPlanItemId(totalDO.getInspPlanItemId()) + .remark(totalDO.getRemark()) .build(); rawMaterialInspTotalMapper.insert(total); Integer totalId = total.getId(); @@ -83,15 +95,19 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { if (detailList != null && !detailList.isEmpty()) { int detailSeq = 0; for (RawMaterialInspDetailDO detailDO : detailList) { + // 只有实测值有数据才插入 + if (StrUtil.isEmpty(detailDO.getActValue())) { + continue; + } detailSeq++; RawMaterialInspDetailDO detail = RawMaterialInspDetailDO.builder() - .rawMatInspId(Integer.parseInt(rawMatInspId)) + .rawMatInspId(rawMatInspId) .matInspTotalId(totalId) .checkCode(checkCode) .actValue(detailDO.getActValue()) .seqNo(detailSeq) - .inspPlanId(detailDO.getInspPlanId()) - .inspPlanItemId(detailDO.getInspPlanItemId()) + .inspPlanId(totalDO.getInspPlanId()) + .inspPlanItemId(totalDO.getInspPlanItemId()) .build(); rawMaterialInspDetailMapper.insert(detail); } @@ -131,7 +147,11 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { validateRawMaterialInspExists(updateReqVO.getId()); String rawMatInspId = updateReqVO.getId(); String checkCode = updateReqVO.getCheckCode(); - + // 设置检验人信息为当前登录用户 + Long userId = getLoginUserId(); + AdminUserDO adminUserDO = adminUserMapper.selectById(userId); + updateReqVO.setCheckUserId(Integer.parseInt(String.valueOf(userId))); + updateReqVO.setCheckUserName(adminUserDO.getNickname()); // 1. 更新主表 tqm_raw_material_insp RawMaterialInspDO updateObj = BeanUtils.toBean(updateReqVO, RawMaterialInspDO.class); rawMaterialInspMapper.updateById(updateObj); @@ -160,6 +180,7 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { .seqNo(totalSeq) .inspPlanId(totalDO.getInspPlanId()) .inspPlanItemId(totalDO.getInspPlanItemId()) + .remark(totalDO.getRemark()) .build(); rawMaterialInspTotalMapper.insert(total); Integer totalId = total.getId(); @@ -169,6 +190,10 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { if (detailList != null && !detailList.isEmpty()) { int detailSeq = 0; for (RawMaterialInspDetailDO detailDO : detailList) { + // 只有实测值有数据才插入 + if (StrUtil.isEmpty(detailDO.getActValue())) { + continue; + } detailSeq++; RawMaterialInspDetailDO detail = RawMaterialInspDetailDO.builder() .rawMatInspId(Integer.parseInt(rawMatInspId)) @@ -176,8 +201,8 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { .checkCode(checkCode) .actValue(detailDO.getActValue()) .seqNo(detailSeq) - .inspPlanId(detailDO.getInspPlanId()) - .inspPlanItemId(detailDO.getInspPlanItemId()) + .inspPlanId(totalDO.getInspPlanId()) + .inspPlanItemId(totalDO.getInspPlanItemId()) .build(); rawMaterialInspDetailMapper.insert(detail); } @@ -189,14 +214,24 @@ public class RawMaterialInspServiceImpl implements RawMaterialInspService { @Override public void deleteRawMaterialInsp(String id) { // 校验存在 - validateRawMaterialInspExists(id); - // 删除 + RawMaterialInspDO rawMaterialInsp = rawMaterialInspMapper.selectById(id); + if (rawMaterialInsp == null) { + throw exception("该检验单不存在,请刷新界面!"); + } + // 校验状态 + if ("2".equals(rawMaterialInsp.getCheckStatus())) { + throw exception("该检验单已确认不允许删除,请刷新界面!"); + } + // 删除子表数据 + rawMaterialInspDetailMapper.deleteByRawMatInspId(id); + rawMaterialInspTotalMapper.deleteByRawMatInspId(id); + // 删除主表 rawMaterialInspMapper.deleteById(id); } private void validateRawMaterialInspExists(String id) { if (rawMaterialInspMapper.selectById(id) == null) { - throw exception("数据不存在"); + throw exception("该检验单不存在,请刷新界面!"); } } diff --git a/mes-ui/mes-ui-admin-vue3/src/types/auto-components.d.ts b/mes-ui/mes-ui-admin-vue3/src/types/auto-components.d.ts index 7d94898..11a8628 100644 --- a/mes-ui/mes-ui-admin-vue3/src/types/auto-components.d.ts +++ b/mes-ui/mes-ui-admin-vue3/src/types/auto-components.d.ts @@ -7,28 +7,15 @@ export {} declare module 'vue' { export interface GlobalComponents { - __init__: typeof import('./../../tests/pages/__init__.py')['default'] - '__init__.cpython314': typeof import('./../../tests/pages/__pycache__/__init__.cpython-314.pyc')['default'] - '.gitignore': typeof import('./../../.pytest_cache/.gitignore')['default'] - AddForm: typeof import('./../../screenshots/add-form.png')['default'] - AddFormFilled: typeof import('./../../screenshots/add-form-filled.png')['default'] - AfterSave: typeof import('./../../screenshots/after-save.png')['default'] AppLinkInput: typeof import('./../components/AppLinkInput/index.vue')['default'] AppLinkSelectDialog: typeof import('./../components/AppLinkInput/AppLinkSelectDialog.vue')['default'] Backtop: typeof import('./../components/Backtop/src/Backtop.vue')['default'] - Base: typeof import('./../../tests/pages/base.py')['default'] - 'Base.cpython314': typeof import('./../../tests/pages/__pycache__/base.cpython-314.pyc')['default'] - CACHEDIR: typeof import('./../../.pytest_cache/CACHEDIR.TAG')['default'] CardTitle: typeof import('./../components/Card/src/CardTitle.vue')['default'] ColorInput: typeof import('./../components/ColorInput/index.vue')['default'] ComponentContainer: typeof import('./../components/DiyEditor/components/ComponentContainer.vue')['default'] ComponentContainerProperty: typeof import('./../components/DiyEditor/components/ComponentContainerProperty.vue')['default'] ComponentLibrary: typeof import('./../components/DiyEditor/components/ComponentLibrary.vue')['default'] - Config: typeof import('./../../tests/config.json')['default'] ConfigGlobal: typeof import('./../components/ConfigGlobal/src/ConfigGlobal.vue')['default'] - Conftest: typeof import('./../../tests/conftest.py')['default'] - 'Conftest.cpython314Pytest9.0.3': typeof import('./../../tests/__pycache__/conftest.cpython-314-pytest-9.0.3.pyc')['default'] - 'Conftest.cpython314Pytest9.0.3.pyc': typeof import('./../../tests/__pycache__/conftest.cpython-314-pytest-9.0.3.pyc.38960')['default'] ContentDetailWrap: typeof import('./../components/ContentDetailWrap/src/ContentDetailWrap.vue')['default'] ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default'] CopperModal: typeof import('./../components/Cropper/src/CopperModal.vue')['default'] @@ -45,13 +32,27 @@ declare module 'vue' { Echart: typeof import('./../components/Echart/src/Echart.vue')['default'] Editor: typeof import('./../components/Editor/src/Editor.vue')['default'] ElAlert: typeof import('element-plus/es')['ElAlert'] + ElAside: typeof import('element-plus/es')['ElAside'] + ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer'] ElAvatar: typeof import('element-plus/es')['ElAvatar'] + ElBadge: typeof import('element-plus/es')['ElBadge'] ElButton: typeof import('element-plus/es')['ElButton'] + ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] ElCard: typeof import('element-plus/es')['ElCard'] + ElCarousel: typeof import('element-plus/es')['ElCarousel'] + ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem'] + ElCascader: typeof import('element-plus/es')['ElCascader'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] ElCol: typeof import('element-plus/es')['ElCol'] + ElCollapse: typeof import('element-plus/es')['ElCollapse'] + ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] + ElCollapseTransition: typeof import('element-plus/es')['ElCollapseTransition'] + ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] + ElContainer: typeof import('element-plus/es')['ElContainer'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] + ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] + ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] ElDrawer: typeof import('element-plus/es')['ElDrawer'] @@ -67,35 +68,47 @@ declare module 'vue' { ElementTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/ElementTask.vue')['default'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElHeader: typeof import('element-plus/es')['ElHeader'] ElIcon: typeof import('element-plus/es')['ElIcon'] + ElImage: typeof import('element-plus/es')['ElImage'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElInput: typeof import('element-plus/es')['ElInput'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElLink: typeof import('element-plus/es')['ElLink'] + ElMain: typeof import('element-plus/es')['ElMain'] ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] + ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] + ElRate: typeof import('element-plus/es')['ElRate'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSkeleton: typeof import('element-plus/es')['ElSkeleton'] + ElSlider: typeof import('element-plus/es')['ElSlider'] + ElSpace: typeof import('element-plus/es')['ElSpace'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTableV2: typeof import('element-plus/es')['ElTableV2'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] + ElText: typeof import('element-plus/es')['ElText'] + ElTimeline: typeof import('element-plus/es')['ElTimeline'] + ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem'] + ElTimePicker: typeof import('element-plus/es')['ElTimePicker'] + ElTimeSelect: typeof import('element-plus/es')['ElTimeSelect'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ElTransfer: typeof import('element-plus/es')['ElTransfer'] + ElTree: typeof import('element-plus/es')['ElTree'] ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] ElUpload: typeof import('element-plus/es')['ElUpload'] Error: typeof import('./../components/Error/src/Error.vue')['default'] - ErrorScreenshot: typeof import('./../../error-screenshot.png')['default'] FlowCondition: typeof import('./../components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue')['default'] Form: typeof import('./../components/Form/src/Form.vue')['default'] - Form_components: typeof import('./../../tests/components/form_components.py')['default'] - 'Form_components.cpython314': typeof import('./../../tests/components/__pycache__/form_components.cpython-314.pyc')['default'] Highlight: typeof import('./../components/Highlight/src/Highlight.vue')['default'] Icon: typeof import('./../components/Icon/src/Icon.vue')['default'] IconSelect: typeof import('./../components/Icon/src/IconSelect.vue')['default'] @@ -104,36 +117,17 @@ declare module 'vue' { Infotip: typeof import('./../components/Infotip/src/Infotip.vue')['default'] InputPassword: typeof import('./../components/InputPassword/src/InputPassword.vue')['default'] InputWithColor: typeof import('./../components/InputWithColor/index.vue')['default'] - Lastfailed: typeof import('./../../.pytest_cache/v/cache/lastfailed')['default'] - Login_page: typeof import('./../../tests/pages/login_page.py')['default'] - 'Login_page.cpython314': typeof import('./../../tests/pages/__pycache__/login_page.cpython-314.pyc')['default'] - 'Login_page.cpython314.pyc': typeof import('./../../tests/pages/__pycache__/login_page.cpython-314.pyc.2012673802768')['default'] - LoginPage: typeof import('./../../login-page.png')['default'] MagicCubeEditor: typeof import('./../components/MagicCubeEditor/index.vue')['default'] - MoneyInput: typeof import('./../views/biz/components/MoneyInput.vue')['default'] - Nodeids: typeof import('./../../.pytest_cache/v/cache/nodeids')['default'] - Order_test_data: typeof import('./../../tests/data/order_test_data.json')['default'] Pagination: typeof import('./../components/Pagination/index.vue')['default'] - PlaywrightTest: typeof import('./../../tests/playwright-test.py')['default'] ProcessDesigner: typeof import('./../components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue')['default'] ProcessPalette: typeof import('./../components/bpmnProcessDesigner/package/palette/ProcessPalette.vue')['default'] ProcessViewer: typeof import('./../components/bpmnProcessDesigner/package/designer/ProcessViewer.vue')['default'] PropertiesPanel: typeof import('./../components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue')['default'] - Prostorage: typeof import('./../api/biz/prostorage/index.ts')['default'] - ProStorageInventorySelectDialog: typeof import('./../views/biz/prostorageinventory/ProStorageInventorySelectDialog.vue')['default'] - Prostoragelog: typeof import('./../api/biz/prostoragelog/index.ts')['default'] - Prostoragemat: typeof import('./../api/biz/prostoragemat/index.ts')['default'] - Pytest: typeof import('./../../pytest.ini')['default'] Qrcode: typeof import('./../components/Qrcode/src/Qrcode.vue')['default'] - README: typeof import('./../../.pytest_cache/README.md')['default'] ReceiveTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue')['default'] - RequirementsTest: typeof import('./../../requirements-test.txt')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterSearch: typeof import('./../components/RouterSearch/index.vue')['default'] RouterView: typeof import('vue-router')['RouterView'] - Sale_order_page: typeof import('./../../tests/pages/sale_order_page.py')['default'] - 'Sale_order_page.cpython314': typeof import('./../../tests/pages/__pycache__/sale_order_page.cpython-314.pyc')['default'] - 'Sale_order_page.cpython314.pyc': typeof import('./../../tests/pages/__pycache__/sale_order_page.cpython-314.pyc.1680447423472')['default'] ScriptTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue')['default'] Search: typeof import('./../components/Search/src/Search.vue')['default'] ShortcutDateRangePicker: typeof import('./../components/ShortcutDateRangePicker/index.vue')['default'] @@ -141,48 +135,6 @@ declare module 'vue' { Sticky: typeof import('./../components/Sticky/src/Sticky.vue')['default'] SummaryCard: typeof import('./../components/SummaryCard/index.vue')['default'] Table: typeof import('./../components/Table/src/Table.vue')['default'] - Test_sale_order: typeof import('./../../tests/test_sale_order.py')['default'] - 'Test_sale_order.cpython314Pytest9.0.3': typeof import('./../../tests/__pycache__/test_sale_order.cpython-314-pytest-9.0.3.pyc')['default'] - 'Test_sale_order.cpython314Pytest9.0.3.pyc': typeof import('./../../tests/__pycache__/test_sale_order.cpython-314-pytest-9.0.3.pyc.16136')['default'] - TestAfterLogin: typeof import('./../../test-after-login.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_basic_150308': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_basic_150308.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_basic_150541': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_basic_150541.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_150346': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_150346.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_150618': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_150618.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_151150': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_151150.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_151240': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_cancel_151240.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_dialog_opens_151141': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_dialog_opens_151141.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_dialog_opens_151231': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_dialog_opens_151231.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_partial_fill_154225': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_partial_fill_154225.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_partial_fill_154326': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_partial_fill_154326.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_151545': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_151545.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_152057': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_152057.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_152324': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_152324.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_152412': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_152412.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153127': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153127.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153158': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153158.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153341': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153341.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153433': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153433.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153706': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153706.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153802': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_success_153802.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_validation_154052': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_validation_154052.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_validation_154215': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_validation_154215.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_validation_154314': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_validation_154314.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_with_all_fields_150342': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_with_all_fields_150342.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_with_all_fields_150615': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderCRUD_test_add_order_with_all_fields_150615.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case0]_150350': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case0]_150350.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case0]_150622': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case0]_150622.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case1]_150353': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case1]_150353.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case1]_150625': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderDataDriven_test_add_order_parametrized[test_case1]_150625.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderLogin_test_login_success_145839': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderLogin_test_login_success_145839.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderLogin_test_login_success_145911': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderLogin_test_login_success_145911.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderSearch_test_reset_search_150305': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderSearch_test_reset_search_150305.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderSearch_test_reset_search_150538': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderSearch_test_reset_search_150538.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_date_range_150232': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_date_range_150232.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_date_range_150505': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_date_range_150505.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_order_no_150159': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_order_no_150159.png')['default'] - 'Tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_order_no_150432': typeof import('./../../tests/screenshots/tests_test_sale_order.py_TestSaleOrderSearch_test_search_by_order_no_150432.png')['default'] - TestScreenshot: typeof import('./../../test-screenshot.png')['default'] Tooltip: typeof import('./../components/Tooltip/src/Tooltip.vue')['default'] UploadFile: typeof import('./../components/UploadFile/src/UploadFile.vue')['default'] UploadFileBatch: typeof import('./../components/UploadFile/src/UploadFileBatch.vue')['default'] @@ -194,7 +146,6 @@ declare module 'vue' { VerifyPoints: typeof import('./../components/Verifition/src/Verify/VerifyPoints.vue')['default'] VerifySlide: typeof import('./../components/Verifition/src/Verify/VerifySlide.vue')['default'] VerticalButtonGroup: typeof import('./../components/VerticalButtonGroup/index.vue')['default'] - 'Workspace.xml': typeof import('./../../.idea/workspace.xml.tmp')['default'] XButton: typeof import('./../components/XButton/src/XButton.vue')['default'] XTextButton: typeof import('./../components/XButton/src/XTextButton.vue')['default'] } diff --git a/mes-ui/mes-ui-admin-vue3/src/types/auto-imports.d.ts b/mes-ui/mes-ui-admin-vue3/src/types/auto-imports.d.ts index f525c74..66aeaec 100644 --- a/mes-ui/mes-ui-admin-vue3/src/types/auto-imports.d.ts +++ b/mes-ui/mes-ui-admin-vue3/src/types/auto-imports.d.ts @@ -7,6 +7,8 @@ export {} declare global { const DICT_TYPE: typeof import('@/utils/dict')['DICT_TYPE'] const EffectScope: typeof import('vue')['EffectScope'] + const ElMessage: typeof import('element-plus/es')['ElMessage'] + const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] const computed: typeof import('vue')['computed'] const createApp: typeof import('vue')['createApp'] const customRef: typeof import('vue')['customRef'] diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index bb488bf..0a9f501 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -251,6 +251,13 @@ export enum DICT_TYPE { KEEP_TYPE='keep_type', // 保管类型 KEEP_MARK='keep_mark', // 保管标识 PLAN_STATUS='plan_status', // 计划状态 + CHECK_STATUS='check_status', // 原材料单据状态 + CHECK_RESULT='check_result', // 原材料检验结果 + BILL_TYPE='bill_type', // 采购订单单据类型 + STOCK_OUT_TYPE='stock_out_type', // 出库类型 + STOCK_OUT_STATUS='stock_out_status', // 出库状态 + DELIVERY_METHOD='delivery_method', // 配送方式 + BILL_STATUS='bill_status', // 单据状态 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/MaterialSelectDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/MaterialSelectDialog.vue index 769481f..7014a26 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/MaterialSelectDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/MaterialSelectDialog.vue @@ -101,6 +101,7 @@ const emit = defineEmits(['confirm']) // 打开弹窗,支持传入已选中的物料进行回显 const open = (selected?: MaterialApi.MaterialVO) => { dialogVisible.value = true + console.log(selected) selectedRow.value = selected || null // 清空所有查询条件 queryParams.matCode = undefined diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanForm.vue index fcf0bbd..362b053 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/PlanForm.vue @@ -233,7 +233,7 @@
保存 下发 - 取消 + 取消
@@ -252,6 +252,7 @@ import {DICT_TYPE, getStrDictOptions} from '@/utils/dict' import MaterialSelectDialog from './MaterialSelectDialog.vue' import ProLineSelectDialog from './ProLineSelectDialog.vue' import dayjs from 'dayjs' +import {useTagsViewStore} from "@/store/modules/tagsView"; const {t} = useI18n() @@ -305,8 +306,8 @@ const openMaterialDialog = () => { if (formData.value.materialId) { materialDialogRef.value?.open({ id: formData.value.materialId, - materialCode: formData.value.matCode, - materialName: formData.value.matName, + matCode: formData.value.materialCode, + matName: formData.value.materialName, spec: formData.value.spec, unit: formData.value.unit }) @@ -478,7 +479,7 @@ const doSave = async (successMsg: string) => { } message.success(successMsg) // 返回列表页 - router.push({ name: 'Plan', query: { refresh: '1' } }) + await goBack() } catch { // validate 校验失败时会 reject,Element Plus 会自动显示红色提示, // API 异常已被 catch 捕获,此处无需额外处理 @@ -486,7 +487,15 @@ const doSave = async (successMsg: string) => { formLoading.value = false } } - +// 返回上一级(列表页),兼容动态路由未加载的情况 +const goBack = async () => { + // 关闭当前页面页签,然后返回生产计划管理页面 + const currentRoute = router.currentRoute.value + const tagsViewStore = useTagsViewStore() + tagsViewStore.delView(currentRoute) + sessionStorage.setItem('NEED_REFRESH_LIST', 'true') + router.replace({ name: 'Plan' }) +} // 重置表单 const resetForm = () => { formData.value = { diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/index.vue index c95374f..2bddaa6 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/plan/index.vue @@ -108,7 +108,11 @@ label="产品名称" align="center" prop="materialName" fixed="left" width="180px"/> - + + + @@ -199,9 +203,9 @@ :formatter="dateFormatter2"/> - + @@ -374,6 +378,8 @@ const resetQuery = () => { /** 添加/修改操作 */ const openForm = (type: string, id?: number) => { + sessionStorage.setItem('NEED_REFRESH_LIST', 'true') + router.push({ name: 'PlanForm', query: { @@ -398,23 +404,18 @@ const handleDelete = async (id: number) => { } catch { } } -/** 从保存/下发/取消返回时刷新数据 */ -const doRefresh = async () => { - if (route.query.refresh === '1') { - await getList() - } -} -onMounted(async () => { - // 加载规格型号下拉数据 + + +/** 初始化与缓存激活 **/ +onActivated(async () => { specList.value = await MaterialApi.getSpecDropdown({}) - doRefresh() -}) -// keep-alive 激活时刷新(从 PlanForm 返回) -onActivated(() => { - if (route.query.refresh === '1') { + // 只有在从表单页面返回时才自动查询 + if (sessionStorage.getItem('NEED_REFRESH_LIST') === 'true') { + sessionStorage.removeItem('NEED_REFRESH_LIST') getList() } }) + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/MaterialSelectDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/MaterialSelectDialog.vue index b7e6a0d..e224eaf 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/MaterialSelectDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/MaterialSelectDialog.vue @@ -99,6 +99,8 @@ const open = (selected?: MaterialApi.MaterialVO) => { selectedRow.value = selected || null queryParams.keyword=undefined, queryParams.pageNo=1 + list.value=[] + total.value=0 // resetQuery() } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/PurchaseOrderSelectDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/PurchaseOrderSelectDialog.vue index 71bd111..729fbd6 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/PurchaseOrderSelectDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/rawmaterialinsp/PurchaseOrderSelectDialog.vue @@ -38,7 +38,7 @@ - + - +