From 437a70bd86d8adda3da41853b8b1c2706a22fdd7 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期四, 12 六月 2025 18:03:59 +0800
Subject: [PATCH] 优化文档管理及基础信息页面

---
 src/views/procureMent/index.vue |  157 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 100 insertions(+), 57 deletions(-)

diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue
index 5b96d12..0651cd4 100644
--- a/src/views/procureMent/index.vue
+++ b/src/views/procureMent/index.vue
@@ -2,16 +2,36 @@
   <div class="app-container">
     <el-form :inline="true" :model="queryParams" class="search-form">
       <el-form-item label="鎼滅储">
-        <el-input v-model="queryParams.searchText" placeholder="璇疯緭鍏ュ叧閿瘝" clearable :style="{ width: '100%' }" />
+        <el-input
+          v-model="queryParams.searchText"
+          placeholder="璇疯緭鍏ュ叧閿瘝"
+          clearable
+          :style="{ width: '100%' }"
+        />
       </el-form-item>
       <el-form-item label="渚涘簲鍟嗗悕绉�">
-        <el-input v-model="queryParams.supplierName" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" />
+        <el-input
+          v-model="queryParams.supplierName"
+          placeholder="璇疯緭鍏�"
+          clearable
+          :style="{ width: '100%' }"
+        />
       </el-form-item>
       <el-form-item label="缁熶竴浜鸿瘑鍒彿">
-        <el-input v-model="queryParams.identifyNumber" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" />
+        <el-input
+          v-model="queryParams.identifyNumber"
+          placeholder="璇疯緭鍏�"
+          clearable
+          :style="{ width: '100%' }"
+        />
       </el-form-item>
       <el-form-item label="缁忚惀鍦板潃">
-        <el-input v-model="queryParams.address" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" />
+        <el-input
+          v-model="queryParams.address"
+          placeholder="璇疯緭鍏�"
+          clearable
+          :style="{ width: '100%' }"
+        />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="handleQuery">鏌ヨ</el-button>
@@ -21,17 +41,44 @@
     <el-card>
       <!-- 鎿嶄綔鎸夐挳鍖� -->
       <el-row :gutter="24" class="table-toolbar">
-        <el-button type="primary" :icon="Plus" @click="handleAdd">鏂板缓</el-button>
-        <el-button type="danger" :icon="Delete" @click="handleDelete">鍒犻櫎</el-button>
+        <el-button type="primary" :icon="Plus" @click="handleAdd"
+          >鏂板缓</el-button
+        >
+        <el-button type="danger" :icon="Delete" @click="handleDelete"
+          >鍒犻櫎</el-button
+        >
         <!-- <el-button type="info" :icon="Download" @click="handleExport">瀵煎嚭</el-button> -->
       </el-row>
       <!-- 琛ㄦ牸缁勪欢 -->
-      <data-table :loading="loading" :table-data="tableData" :columns="columns" @selection-change="handleSelectionChange"
-        @edit="handleEdit" @delete="handleDeleteSuccess" :show-selection="true" :border="true" :maxHeight="440" />
-      <pagination v-if="total>0" :page="pageNum" :limit="pageSize" :total="total" @pagination="handlePagination"
-        :layout="'total, prev, pager, next, jumper'" />
-    </el-card>    <ProductionDialog v-model:copyForm="copyForm" v-model:dialogFormVisible="dialogFormVisible" v-model:form="form" :title="title" @submit="handleSubmit"
-      @success="handleSuccess" />
+      <data-table
+        :loading="loading"
+        :table-data="tableData"
+        :columns="columns"
+        @selection-change="handleSelectionChange"
+        @edit="handleEdit"
+        @delete="handleDeleteSuccess"
+        :show-selection="true"
+        :border="true"
+        :maxHeight="440"
+      />
+      <pagination
+        v-if="total > 0"
+        :page="current"
+        :limit="pageSize"
+        :total="total"
+        @pagination="handlePagination"
+        :layout="'total, prev, pager, next, jumper'"
+      />
+    </el-card>
+    <ProductionDialog
+      v-model:copyForm="copyForm"
+      v-model:dialogFormVisible="dialogFormVisible"
+      v-model:form="form"
+      :title="title"
+      @submit="handleSubmit"
+      @success="handleSuccess"
+      ref="productionDialogs"
+    />
   </div>
 </template>
 
@@ -41,32 +88,18 @@
 import { Plus, Edit, Delete, Download } from "@element-plus/icons-vue";
 import DataTable from "@/components/Table/ETable.vue";
 import Pagination from "@/components/Pagination";
-import ProductionDialog from './components/ProductionDialog.vue';
+import ProductionDialog from "./components/ProductionDialog.vue";
 import { purchaseRegistration } from "@/api/procureMent";
-import useUserStore from '@/store/modules/user'
-import useDictStore from "@/store/modules/dict";
+import useUserStore from "@/store/modules/user";
 // 寮曞叆瀛楀吀鏁版嵁
-const useDictStores = useDictStore();
-useDictStores.setDict({
-  id: 1,
-  name: "鐓ょ绫诲瀷",
-  type: "coalType",
-  items: [
-    { label: "鏃犵儫鐓�", value: "anthracite" },
-    { label: "鐑熺叅", value: "bituminous" },
-    { label: "瑜愮叅", value: "lignite" }
-  ]
-})
-console.log(useDictStores.dict);
-
-const { proxy } = getCurrentInstance()
+const { proxy } = getCurrentInstance();
 const dialogFormVisible = ref(false);
 const form = ref({});
 const title = ref("");
 // 鐘舵�佸彉閲�
 const loading = ref(false);
 const total = ref(0);
-const pageNum = ref(1)
+const current = ref(1);
 const pageSize = ref(10);
 const selectedRows = ref([]);
 const copyForm = ref({});
@@ -76,8 +109,8 @@
   supplierName: "",
   identifyNumber: "",
   address: "",
-  pageNum: 1,
-  pageSize: 10
+  current: 1,
+  pageSize: 10,
 });
 // 鏄惁缂栬緫
 const addOrEdit = ref("add");
@@ -92,15 +125,15 @@
 const userStore = useUserStore();
 // 鑾峰彇鐢ㄦ埛淇℃伅
 const userInfo = ref({});
-onMounted(async() => {
-  let res = await userStore.getInfo()
+onMounted(async () => {
+  let res = await userStore.getInfo();
   userInfo.value = res.user;
 });
 // 鍒嗛〉澶勭悊
 const handlePagination = (val) => {
-  pageNum.value = val.page;
+  current.value = val.page;
   pageSize.value = val.limit;
-  queryParams.pageNum = val.page;
+  queryParams.current = val.page;
   queryParams.pageSize = val.limit;
   getList();
 };
@@ -122,7 +155,7 @@
 // 閲嶇疆鏌ヨ
 const resetQuery = () => {
   Object.keys(queryParams).forEach((key) => {
-    if (key !== "pageNum" && key !== "pageSize") {
+    if (key !== "current" && key !== "pageSize") {
       queryParams[key] = "";
     }
   });
@@ -133,9 +166,18 @@
   handleAddEdit();
 };
 // 鏂板缂栬緫
+const productionDialogs = ref(null); // 娣诲姞ref澹版槑
+
 const handleAddEdit = () => {
   addOrEdit.value == "add" ? (title.value = "鏂板") : (title.value = "缂栬緫");
   title.value = title.value + "閲囪喘淇℃伅";
+  
+  // 姝g‘浣跨敤瀛愮粍浠秗ef
+  if (productionDialogs.value) {
+    // 杩欓噷鍙互璋冪敤瀛愮粍浠剁殑鏂规硶
+    console.log("瀛愮粍浠跺疄渚�:", productionDialogs.value.getDropdownData());
+  }
+  
   openDialog();
 };
 // 鎵撳紑寮圭獥
@@ -144,6 +186,7 @@
     // 纭繚澶嶅埗涓�浠芥暟鎹紝閬垮厤鐩存帴寮曠敤
     copyForm.value = JSON.parse(JSON.stringify(form.value));
     dialogFormVisible.value = true;
+    // 瑙﹀彂ref閲岄潰鐨勬柟娉�
     return;
   }
   // 鏂板缓鏃跺垵濮嬪寲琛ㄥ崟
@@ -158,7 +201,7 @@
     totalPriceIncludingTax: "",
     taxRate: "",
     registrantId: userInfo.value.userName,
-    registrationDate: new Date().toISOString().split('T')[0]
+    registrationDate: new Date().toISOString().split("T")[0],
   };
   // 鏂板缓鏃朵篃闇�瑕佽缃� copyForm 鐢ㄤ簬閲嶇疆鍔熻兘
   copyForm.value = JSON.parse(JSON.stringify(form.value));
@@ -183,22 +226,18 @@
 const handleEdit = (row) => {
   form.value = JSON.parse(JSON.stringify(row));
   addOrEdit.value = "edit";
-  handleAddEdit()
+  handleAddEdit();
 };
 const handleDelete = () => {
   if (selectedRows.value.length === 0) {
     ElMessage.warning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁");
     return;
   }
-  ElMessageBox.confirm(
-    `纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋,
-    "鎻愮ず",
-    {
-      confirmButtonText: "纭畾",
-      cancelButtonText: "鍙栨秷",
-      type: "warning"
-    }
-  )
+  ElMessageBox.confirm(`纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋, "鎻愮ず", {
+    confirmButtonText: "纭畾",
+    cancelButtonText: "鍙栨秷",
+    type: "warning",
+  })
     .then(() => {
       // 妯℃嫙鍒犻櫎鎿嶄綔
       tableData.value = tableData.value.filter(
@@ -210,15 +249,19 @@
     .catch(() => {
       ElMessage.info("宸插彇娑堝垹闄�");
     });
-}
+};
 const handleDeleteSuccess = (row) => {
   ElMessage.success("鍒犻櫎鎴愬姛锛�" + row.supplierName);
 };
 // 瀵煎嚭
 const handleExport = (row) => {
-  proxy.download("system/post/export", {
-    ...queryParams.value
-  }, `post_${new Date().getTime()}.xlsx`)
+  proxy.download(
+    "system/post/export",
+    {
+      ...queryParams.value,
+    },
+    `post_${new Date().getTime()}.xlsx`
+  );
   ElMessage.success("瀵煎嚭鏁版嵁锛�" + row.supplierName);
 };
 // 鎴愬姛
@@ -233,9 +276,9 @@
   try {
     // 浼犻�掑垎椤靛弬鏁�
     let res = await purchaseRegistration({
-      pageNum: pageNum.value,
+      current: current.value,
       pageSize: pageSize.value,
-      ...queryParams
+      ...queryParams,
     });
     if (res && res.data) {
       tableData.value = res.data.records || [];
@@ -295,10 +338,10 @@
 }
 /* 琛ㄦ牸宸ュ叿鏍� */
 .table-toolbar,
-.table-toolbar>* {
+.table-toolbar > * {
   margin: 0 0 0 0 !important;
 }
-.table-toolbar{
+.table-toolbar {
   margin-bottom: 20px !important;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3