From 57e75ea91e7210d058627e7930efc75526dab622 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 22 五月 2026 09:43:09 +0800
Subject: [PATCH] feat(product): 添加产品规格型号向下复制功能 - 在产品树形结构中添加向下复制按钮,仅在层级大于1时显示 - 实现handleDownCopy方法,支持将当前节点规格型号复制到同层级下一个节点 - 添加downCopyProductModel API接口,用于处理向下复制请求 - 添加相应的警告和成功消息提示
---
src/views/basicData/product/index.vue | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/src/views/basicData/product/index.vue b/src/views/basicData/product/index.vue
index d934b08..fa8a203 100644
--- a/src/views/basicData/product/index.vue
+++ b/src/views/basicData/product/index.vue
@@ -44,6 +44,14 @@
</span>
<div>
<el-button
+ v-if="node.level > 1"
+ type="success"
+ link
+ @click="handleDownCopy(node, data)"
+ >
+ 鍚戜笅澶嶅埗
+ </el-button>
+ <el-button
type="primary"
link
@click="openProDia('edit', data)"
@@ -195,6 +203,7 @@
delProductModel,
modelListPage,
productTreeList,
+ downCopyProductModel,
} from "@/api/basicData/product.js";
import ImportExcel from "./ImportExcel/index.vue";
@@ -362,6 +371,34 @@
proxy.$modal.msg("宸插彇娑�");
});
};
+
+// 鍚戜笅澶嶅埗
+const handleDownCopy = (node, data) => {
+ // 鑾峰彇鍚屽眰绾ц妭鐐�
+ const parent = node.parent;
+ const siblings = parent.childNodes || [];
+ // 鎵惧埌褰撳墠鑺傜偣鍦ㄥ悓灞傜骇涓殑绱㈠紩
+ const currentIndex = siblings.findIndex(item => item.data.id === data.id);
+ // 鑾峰彇涓嬩竴琛岃妭鐐�
+ const nextNode = siblings[currentIndex + 1];
+
+ if (!nextNode) {
+ proxy.$modal.msgWarning("褰撳墠鑺傜偣鏄悓灞傜骇鏈�鍚庝竴涓紝娌℃湁涓嬩竴琛屾暟鎹彲澶嶅埗");
+ return;
+ }
+
+ ElMessageBox.confirm("纭灏嗗綋鍓嶈妭鐐圭殑瑙勬牸鍨嬪彿澶嶅埗鍒颁笅涓�琛岃妭鐐癸紵", "鍚戜笅澶嶅埗", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "info",
+ })
+ .then(() => {
+ downCopyProductModel({ productId: data.id, targetProductId: nextNode.data.id }).then(() => {
+ proxy.$modal.msgSuccess("澶嶅埗鎴愬姛");
+ });
+ })
+ .catch(() => {});
+};
// 閫夋嫨浜у搧
const handleNodeClick = (val, node, el) => {
// 鍒ゆ柇鏄惁涓哄彾瀛愯妭鐐�
--
Gitblit v1.9.3