From 5f6cce2e7d5d752c00ec25b5658857c7e0beea46 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 25 十二月 2025 15:18:32 +0800
Subject: [PATCH] 工艺路线项目页面拖拽排序

---
 src/views/basicData/product/ProductSelectDialog.vue |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/views/basicData/product/ProductSelectDialog.vue b/src/views/basicData/product/ProductSelectDialog.vue
index d4b0119..70d3f3e 100644
--- a/src/views/basicData/product/ProductSelectDialog.vue
+++ b/src/views/basicData/product/ProductSelectDialog.vue
@@ -37,8 +37,10 @@
         :data="tableData"
         height="420"
         highlight-current-row
-        @current-change="onCurrentChange"
+        row-key="id"
+        @selection-change="handleSelectionChange"
     >
+      <el-table-column type="selection" width="55" />
       <el-table-column type="index" label="#" width="60"/>
       <el-table-column prop="productName" label="浜у搧澶х被" min-width="160"/>
       <el-table-column prop="model" label="鍨嬪彿鍚嶇О" min-width="200"/>
@@ -60,7 +62,7 @@
 
     <template #footer>
       <el-button @click="close()">鍙栨秷</el-button>
-      <el-button type="primary" :disabled="!selectedRow" @click="onConfirm">
+      <el-button type="primary" :disabled="multipleSelection.length === 0" @click="onConfirm">
         纭畾
       </el-button>
     </template>
@@ -70,7 +72,7 @@
 <script setup lang="ts">
 import {computed, onMounted, reactive, ref, watch} from "vue";
 import {ElMessage} from "element-plus";
-import {list} from '@/api/basicData/productModel'
+import {productModelList} from '@/api/basicData/productModel'
 
 export type ProductRow = {
   id: number;
@@ -83,10 +85,7 @@
   modelValue: boolean;
 }>();
 
-const emit = defineEmits<{
-  (e: "update:modelValue", v: boolean): void;
-  (e: "confirm", row: ProductRow): void; // 鎶婃暣琛屾暟鎹繑缁欑埗缁勪欢
-}>();
+const emit = defineEmits(['update:modelValue', 'confirm']);
 
 const visible = computed({
   get: () => props.modelValue,
@@ -106,14 +105,14 @@
 const loading = ref(false);
 const tableData = ref<ProductRow[]>([]);
 const total = ref(0);
-const selectedRow = ref<ProductRow | null>(null);
+const multipleSelection = ref<ProductRow[]>([])
 
 function close() {
   visible.value = false;
 }
 
-function onCurrentChange(row: ProductRow | null) {
-  selectedRow.value = row;
+const handleSelectionChange = (val: ProductRow[]) => {
+  multipleSelection.value = val
 }
 
 function onSearch() {
@@ -133,25 +132,25 @@
 }
 
 function onConfirm() {
-  if (!selectedRow.value) {
+  if (multipleSelection.value.length === 0) {
     ElMessage.warning("璇烽�夋嫨涓�鏉′骇鍝�");
     return;
   }
-  emit("confirm", selectedRow.value);
+  emit("confirm", multipleSelection.value);
   close();
 }
 
 async function loadData() {
   loading.value = true;
   try {
-    selectedRow.value = null; // 缈婚〉/鎼滅储鍚庢竻绌洪�夋嫨鏇寸鍚堥鏈�
-    const res = await list({
+    multipleSelection.value = []; // 缈婚〉/鎼滅储鍚庢竻绌洪�夋嫨鏇寸鍚堥鏈�
+    const res = await productModelList({
       productName: query.productName.trim(),
       model: query.model.trim(),
       pageNum: page.pageNum,
       pageSize: page.pageSize,
     });
-    tableData.value = res.list;
+    tableData.value = res.records;
     total.value = res.total;
   } finally {
     loading.value = false;

--
Gitblit v1.9.3