From dd159ea51a7a77bd8cc00c70c0e900f472fb3395 Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期四, 05 六月 2025 18:00:17 +0800
Subject: [PATCH] 完善基础管理 供应商、客户、煤种等功能

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

diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue
index b04a0f1..038b727 100644
--- a/src/views/procureMent/index.vue
+++ b/src/views/procureMent/index.vue
@@ -1,78 +1,37 @@
 <template>
   <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-form-item>
-        <el-form-item label="渚涘簲鍟嗗悕绉�">
-          <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-form-item>
-        <el-form-item label="缁忚惀鍦板潃">
-          <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>
-          <el-button @click="resetQuery">閲嶇疆</el-button>
-        </el-form-item>
-      </el-form>
+    <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-form-item>
+      <el-form-item label="渚涘簲鍟嗗悕绉�">
+        <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-form-item>
+      <el-form-item label="缁忚惀鍦板潃">
+        <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>
+        <el-button @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
     <el-card>
       <!-- 鎿嶄綔鎸夐挳鍖� -->
       <el-row :gutter="24" class="table-toolbar">
-        <el-button type="primary" :icon="Plus" @click="handleAdd"
-          >鏂板缓</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> 
+      </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:dialogFormVisible="dialogFormVisible"
-        :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="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" />
   </div>
 </template>
 
@@ -84,6 +43,8 @@
 import Pagination from "@/components/Pagination";
 import ProductionDialog from './components/ProductionDialog.vue';
 import { purchaseRegistration } from "@/api/procureMent";
+import useUserStore from '@/store/modules/user'
+
 const { proxy } = getCurrentInstance()
 const dialogFormVisible = ref(false);
 const form = ref({});
@@ -94,6 +55,7 @@
 const pageNum = ref(1)
 const pageSize = ref(10);
 const selectedRows = ref([]);
+const copyForm = ref({});
 // 鏌ヨ鍙傛暟
 const queryParams = reactive({
   searchText: "",
@@ -113,10 +75,13 @@
   // 杩欓噷娣诲姞瀹為檯鐨勬煡璇㈤�昏緫
   getList();
 };
-
+const userStore = useUserStore();
+onMounted(async() => {
+  let res = await userStore.getInfo()
+  form.value.registrantId = res.user.userName; // 璁剧疆鐧昏浜篒D
+});
 // 鍒嗛〉澶勭悊
 const handlePagination = (val) => {
-  console.log("鍒嗛〉鍙傛暟锛�", val);
   pageNum.value = val.page;
   pageSize.value = val.limit;
   queryParams.pageNum = val.page;
@@ -127,8 +92,8 @@
 // supplier 渚涘簲鍟嗘暟鎹�
 const columns = ref([
   { prop: "supplierName", label: "渚涘簲鍟嗗悕绉�", minWidth: 200 },
-  { prop: "unit", label: "鍗曚綅", minWidth: 150 },
   { prop: "coal", label: "鐓ょ绫诲瀷", minWidth: 120 },
+  { prop: "unit", label: "鍗曚綅", minWidth: 150 },
   { prop: "purchaseQuantity", label: "閲囪喘鏁伴噺", minWidth: 100 },
   { prop: "priceIncludingTax", label: "鍗曚环锛堝惈绋庯級", minWidth: 150 },
   { prop: "totalPriceIncludingTax", label: "鎬讳环锛堝惈绋庯級", minWidth: 100 },
@@ -145,46 +110,52 @@
       queryParams[key] = "";
     }
   });
-  handleQuery();
 };
 // 鏂板
 const handleAdd = () => {
-  console.log("鐐瑰嚮鏂板鎸夐挳");
   addOrEdit.value = "add";
   handleAddEdit();
 };
 // 鏂板缂栬緫
 const handleAddEdit = () => {
   addOrEdit.value == "add" ? (title.value = "鏂板") : (title.value = "缂栬緫");
-    title.value = title.value + "閲囪喘淇℃伅";
-    openDialog();
+  title.value = title.value + "閲囪喘淇℃伅";
+  openDialog();
 };
 // 鎵撳紑寮圭獥
 const openDialog = () => {
   if (addOrEdit.value === "edit") {
     // 纭繚澶嶅埗涓�浠芥暟鎹紝閬垮厤鐩存帴寮曠敤
-    form.value = JSON.parse(JSON.stringify(form.value));
+    copyForm.value = JSON.parse(JSON.stringify(form.value));
     dialogFormVisible.value = true;
     return;
   }
   // 鏂板缓鏃跺垵濮嬪寲琛ㄥ崟
   form.value = {
     supplierName: "",
-    category: "",
+    coal: "",
     unit: "",
-    purchaseAmount: "",
-    priceBeforeTax: "",
-    totalBeforeTax: "",
-    calorificValue: "",
-    registrant: "",
+    purchaseQuantity: "",
+    priceExcludingTax: "",
+    totalPriceExcludingTax: "",
+    priceIncludingTax: "",
+    totalPriceIncludingTax: "",
+    taxRate: "",
+    registrantId: "",
     registrationDate: new Date().toISOString().split('T')[0]
-  };  dialogFormVisible.value = true;
-  console.log("openDialog 璁剧疆 dialogFormVisible =", dialogFormVisible.value);
+  };
+  // 鏂板缓鏃朵篃闇�瑕佽缃� copyForm 鐢ㄤ簬閲嶇疆鍔熻兘
+  copyForm.value = JSON.parse(JSON.stringify(form.value));
+  dialogFormVisible.value = true;
 };
 
 // 鎻愪氦琛ㄥ崟
-const handleSubmit = () => {
-  // 鎷垮埌鎻愪氦鏁版嵁
+const handleSubmit = (val) => {
+  if (val.result.code !== 200) {
+    ElMessage.error("鎿嶄綔澶辫触锛�" + val.result.msg);
+    return;
+  }
+  ElMessage.success(val.title + val.result.msg);
   dialogFormVisible.value = false;
   getList();
 };
@@ -194,9 +165,9 @@
 };
 // 琛ㄦ牸缂栬緫鏂规硶
 const handleEdit = (row) => {
-    form.value = JSON.parse(JSON.stringify(row));
-    addOrEdit.value = "edit";
-    handleAddEdit()
+  form.value = JSON.parse(JSON.stringify(row));
+  addOrEdit.value = "edit";
+  handleAddEdit()
 };
 const handleDelete = () => {
   if (selectedRows.value.length === 0) {
@@ -204,7 +175,7 @@
     return;
   }
   ElMessageBox.confirm(
-    `纭鍒犻櫎閫変腑鐨� ${selectedRows.value.length} 鏉℃暟鎹悧锛焋,
+    `纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋,
     "鎻愮ず",
     {
       confirmButtonText: "纭畾",
@@ -236,7 +207,6 @@
 };
 // 鎴愬姛
 const handleSuccess = (val) => {
-  console.log(val);
   tableData.value.push(val);
   // getList();
   total.value = tableData.value.length;
@@ -251,13 +221,11 @@
       pageSize: pageSize.value,
       ...queryParams
     });
-    console.log("API杩斿洖鏁版嵁:", res);
     if (res && res.data) {
       tableData.value = res.data.records || [];
       total.value = res.data.total || 0;
     }
   } catch (error) {
-    console.error("鑾峰彇鏁版嵁澶辫触:", error);
     ElMessage.error("鑾峰彇鏁版嵁澶辫触");
   } finally {
     loading.value = false;
@@ -267,7 +235,7 @@
 </script>
 
 <style scoped>
-.app-container{
+.app-container {
   box-sizing: border-box;
 }
 .search-form {
@@ -310,7 +278,8 @@
   }
 }
 /* 琛ㄦ牸宸ュ叿鏍� */
-.table-toolbar, .table-toolbar > * {
+.table-toolbar,
+.table-toolbar>* {
   margin: 0 0 0 0 !important;
 }
 .table-toolbar{

--
Gitblit v1.9.3