From 834c77e1c1132352d1d1aa61551f3bf46894172d Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期四, 11 十二月 2025 16:20:46 +0800
Subject: [PATCH] Merge branch 'dev_RT_AY' of http://114.132.189.42:9002/r/product-inventory-management into dev_RT_AY

---
 src/views/basicData/product/index.vue |   76 +++++++++++++++++++++++++++++++++-----
 1 files changed, 66 insertions(+), 10 deletions(-)

diff --git a/src/views/basicData/product/index.vue b/src/views/basicData/product/index.vue
index 6d31b8d..9cc2a83 100644
--- a/src/views/basicData/product/index.vue
+++ b/src/views/basicData/product/index.vue
@@ -40,7 +40,13 @@
         >
           <template #default="{ node, data }">
             <div class="custom-tree-node">
-              <span>{{ node.label }}</span>
+              <span class="tree-node-content">
+                <el-icon class="orange-icon">
+                  <component :is="data.children && data.children.length > 0
+                  ? node.expanded ? 'FolderOpened' : 'Folder' : 'Tickets'" />
+                </el-icon>
+                {{ data.label }}
+              </span>
               <div>
                 <el-button
                   type="primary"
@@ -49,7 +55,7 @@
                 >
                   缂栬緫
                 </el-button>
-                <el-button type="primary" link @click="openProDia('add', data)">
+                <el-button type="primary" link @click="openProDia('add', data)" :disabled="node.level >= 3">
                   娣诲姞浜у搧
                 </el-button>
                 <el-button
@@ -91,10 +97,9 @@
         @selection-change="handleSelectionChange"
         :tableLoading="tableLoading"
         @pagination="pagination"
-        :total="total"
       ></PIMTable>
     </div>
-    <el-dialog v-model="productDia" title="浜у搧" width="400px">
+    <el-dialog v-model="productDia" title="浜у搧" width="400px" @keydown.enter.prevent>
       <el-form
         :model="form"
         label-width="140px"
@@ -109,6 +114,7 @@
                 v-model="form.productName"
                 placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
                 clearable
+                @keydown.enter.prevent
               />
             </el-form-item>
           </el-col>
@@ -126,6 +132,7 @@
       title="瑙勬牸鍨嬪彿"
       width="400px"
       @close="closeModelDia"
+      @keydown.enter.prevent
     >
       <el-form
         :model="modelForm"
@@ -141,6 +148,7 @@
                 v-model="modelForm.model"
                 placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
                 clearable
+                @keydown.enter.prevent
               />
             </el-form-item>
           </el-col>
@@ -152,10 +160,29 @@
                 v-model="modelForm.unit"
                 placeholder="璇疯緭鍏ュ崟浣�"
                 clearable
+                @keydown.enter.prevent
               />
             </el-form-item>
           </el-col>
         </el-row>
+<!--        <el-row>-->
+<!--          <el-col :span="24">-->
+<!--            <el-form-item label="缁戝畾鏈哄櫒锛�" prop="speculativeTradingName">-->
+<!--              <el-select-->
+<!--                v-model="modelForm.speculativeTradingName"-->
+<!--                placeholder="璇烽�夋嫨缁戝畾鏈哄櫒"-->
+<!--                multiple-->
+<!--                clearable-->
+<!--                style="width: 100%"-->
+<!--              >-->
+<!--                <el-option label="鐐掓満1" value="鐐掓満1" />-->
+<!--                <el-option label="鐐掓満2" value="鐐掓満2" />-->
+<!--                <el-option label="鐐掓満3" value="鐐掓満3" />-->
+<!--                <el-option label="鐐掓満4" value="鐐掓満4" />-->
+<!--              </el-select>-->
+<!--            </el-form-item>-->
+<!--          </el-col>-->
+<!--        </el-row>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -203,6 +230,10 @@
     label: "鍗曚綅",
     prop: "unit",
   },
+  // {
+  //   label: "缁戝畾鏈哄櫒",
+  //   prop: "speculativeTradingName",
+  // },
   {
     dataType: "action",
     label: "鎿嶄綔",
@@ -221,11 +252,11 @@
 const tableData = ref([]);
 const tableLoading = ref(false);
 const isShowButton = ref(false);
-const total = ref(0);
 const selectedRows = ref([]);
 const page = reactive({
   current: 1,
   size: 10,
+  total: 0,
 });
 const data = reactive({
   form: {
@@ -237,10 +268,14 @@
   modelForm: {
     model: "",
     unit: "",
+    speculativeTradingName: [],
   },
   modelRules: {
-    model: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    model: [
+      { required: true, message: "璇疯緭鍏�", trigger: "blur" }
+    ],
     unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    speculativeTradingName: [{ required: true, message: "璇烽�夋嫨缁戝畾鏈哄櫒", trigger: "change" }],
   },
 });
 const { form, rules, modelForm, modelRules } = toRefs(data);
@@ -277,10 +312,15 @@
   modelOperationType.value = type;
   modelDia.value = true;
   modelForm.value.model = "";
-  modelForm.value.model = "";
+  modelForm.value.unit = "";
+  modelForm.value.speculativeTradingName = [];
   modelForm.value.id = "";
   if (type === "edit") {
     modelForm.value = { ...data };
+    // 濡傛灉鍚庣杩斿洖鐨勬槸瀛楃涓诧紝闇�瑕佽浆鎹负鏁扮粍
+    if (data.speculativeTradingName && typeof data.speculativeTradingName === 'string') {
+      modelForm.value.speculativeTradingName = data.speculativeTradingName.split(',');
+    }
   }
 };
 // 鎻愪氦浜у搧鍚嶇О淇敼
@@ -310,6 +350,7 @@
   proxy.$refs.formRef.resetFields();
   productDia.value = false;
 };
+
 // 鍒犻櫎浜у搧
 const remove = (node, data) => {
   let ids = [];
@@ -348,8 +389,13 @@
 const submitModelForm = () => {
   proxy.$refs.modelFormRef.validate((valid) => {
     if (valid) {
-      modelForm.value.productId = currentId.value;
-      addOrEditProductModel(modelForm.value).then((res) => {
+      // 灏嗛�変腑鐨勬満鍣ㄦ暟缁勮浆鎹负閫楀彿鍒嗛殧鐨勫瓧绗︿覆
+      const submitData = {
+        ...modelForm.value,
+        productId: currentId.value,
+        speculativeTradingName: modelForm.value.speculativeTradingName.join(',')
+      };
+      addOrEditProductModel(submitData).then((res) => {
         proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
         closeModelDia();
         getModelList();
@@ -382,7 +428,7 @@
   }).then((res) => {
     console.log("res", res);
     tableData.value = res.records;
-    total.value = res.total;
+    page.total = res.total;
     tableLoading.value = false;
   });
 };
@@ -477,4 +523,14 @@
   font-size: 14px;
   padding-right: 8px;
 }
+.tree-node-content {
+  display: flex;
+  align-items: center; /* 鍨傜洿灞呬腑 */
+  height: 100%;
+}
+.orange-icon {
+  color: orange;
+  font-size: 18px;
+  margin-right: 8px; /* 鍥炬爣涓庢枃瀛椾箣闂村姞鐐归棿璺� */
+}
 </style>

--
Gitblit v1.9.3