From 4cc27f93a1901e12eb12a198029911c483dd991f Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 27 八月 2025 14:30:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_JLMY' into dev_JLMY

---
 src/views/procureMent/index.vue |  101 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 92 insertions(+), 9 deletions(-)

diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue
index 5427783..55fd34f 100644
--- a/src/views/procureMent/index.vue
+++ b/src/views/procureMent/index.vue
@@ -16,13 +16,16 @@
     </el-form>
     <el-card>
       <!-- 鎿嶄綔鎸夐挳鍖� -->
-      <el-row :gutter="24" class="table-toolbar">
+      <el-row :gutter="24" class="table-toolbar" justify="space-between">
         <el-button type="primary" :icon="Plus" @click="handleAdd"
           >鏂板缓
         </el-button>
-        <el-button type="danger" :icon="Delete" @click="handleDelete"
-          >鍒犻櫎
+        <el-button type="primary" :icon="Plus" @click="handleAddPayable">
+          娣诲姞搴斾粯娆�
         </el-button>
+        <!-- <el-button type="danger" :icon="Delete" @click="handleDelete"
+          >鍒犻櫎
+        </el-button> -->
       </el-row>
       <!-- 琛ㄦ牸缁勪欢 -->
       <data-table
@@ -59,6 +62,14 @@
       @success="handleSuccess"
       ref="productionDialogs"
     />
+    <PayableDialog
+        v-model:dialogPayableFormVisible="dialogPayableFormVisible"
+        v-model:form="formPayable"
+        :title="title"
+        @submit="handleSubmit"
+        @success="payableHandleSuccess"
+        ref="productionDialogs">
+    </PayableDialog>>
   </div>
 </template>
 
@@ -69,6 +80,8 @@
 import DataTable from "@/components/Table/ETable.vue";
 import Pagination from "@/components/Pagination";
 import ProductionDialog from "./components/ProductionDialog.vue";
+import PayableDialog from "../payable/components/PayableDialog.vue";
+
 import {
   purchaseRegistration,
   getSupplyList,
@@ -76,12 +89,25 @@
   delPR
 } from "@/api/procureMent";
 import { useDelete } from "@/hooks/useDelete";
-
+const userStore = useUserStore();
+const dictStore = useDictStore()
 import useUserStore from "@/store/modules/user";
+import useDictStore from "@/store/modules/dict"
+
+let userList = ref([]);
+userStore.getUserList().then((res) => {
+  userList.value = res;
+});
+
 // 寮曞叆瀛楀吀鏁版嵁
+
 const { proxy } = getCurrentInstance();
 const dialogFormVisible = ref(false);
-const form = ref({});
+const dialogPayableFormVisible = ref(false);
+const form = ref({
+  taxRate: 13,
+  freight: 20,
+});
 const title = ref("");
 // 鐘舵�佸彉閲�
 const loading = ref(false);
@@ -90,6 +116,7 @@
 const pageSize = ref(10);
 const selectedRows = ref([]);
 const copyForm = ref({});
+const formPayable = ref({});
 // 鏌ヨ鍙傛暟
 const queryParams = reactive({
   searchAll: "",
@@ -106,10 +133,12 @@
 // 鏂规硶瀹氫箟
 const handleQuery = () => {
   loading.value = true;
+	current.value = 1;
+	pageSize.value = 10;
   // 杩欓噷娣诲姞瀹為檯鐨勬煡璇㈤�昏緫
   getList();
 };
-const userStore = useUserStore();
+
 // 鑾峰彇鐢ㄦ埛淇℃伅
 const userInfo = ref({});
 onMounted(async () => {
@@ -136,6 +165,14 @@
     },
   },
   {
+    prop: "type",
+    label: "鐓ゆ枡绫诲瀷",
+    minWidth: 120,
+    formatter: (row) => {
+      return row.type === 1 ? "鎴愬搧" : "鍘熸枡";
+    },
+  },
+  {
     prop: "coalId",
     label: "鐓ょ绫诲瀷",
     minWidth: 120,
@@ -146,9 +183,24 @@
   { prop: "purchaseQuantity", label: "閲囪喘鏁伴噺", minWidth: 100 },
   { prop: "priceIncludingTax", label: "鍗曚环锛堝惈绋庯級", minWidth: 150 },
   { prop: "totalPriceIncludingTax", label: "鎬讳环锛堝惈绋庯級", minWidth: 100 },
+  { prop: "freight", label: "杩愯垂", minWidth: 100 },
   { prop: "taxRate", label: "绋庣巼", minWidth: 100 },
   { prop: "priceExcludingTax", label: "涓嶅惈绋庡崟浠�", minWidth: 100 },
-  { prop: "registrantId", label: "鐧昏浜�", minWidth: 100 },
+  { prop: "registrantId", label: "鐧昏浜�", minWidth: 100,
+    formatter: (row) => {
+      // 鍖归厤鐢ㄦ埛淇℃伅
+      const user = userList.value.find((user) => user.userId === row.registrantId);
+      return user ? user.nickName : "鏈煡鐢ㄦ埛";
+    },
+  },
+  { prop: "purchaseType", label: "绫诲瀷", minWidth: 100 ,
+    formatter: (row) => {
+      if (row.purchaseType == null) {
+        return ""
+      }
+      const dictItem = dictStore.getDictDataByTypeAndValue("purchase_type", row.purchaseType);
+      return dictItem ? dictItem.label : "";    }
+  },
   { prop: "registrationDate", label: "鐧昏鏃ユ湡", minWidth: 100 },
 ]);
 
@@ -179,6 +231,28 @@
   addOrEdit.value = "add";
   handleAddEdit();
 };
+const handleAddPayable = () => {
+  // 鍙湁閫夋嫨涓�琛岀殑鏃跺�欒繘琛屾搷浣�
+
+  if (selectedRows.value.length !== 1) {
+    ElMessage.error("璇烽�変腑涓�琛岃繘琛屽~鍐�")
+    return
+  }
+
+  formPayable.value = {
+    purchaseRegistrationId: selectedRows.value[0].id,
+    registrantId: userInfo.value.userId,
+    ticketNo:"",
+    paymentAmount:"",
+    payableType:"",
+    attachUpload:"",
+    registrationDate: new Date().toISOString().split("T")[0],
+    fileList:[]
+  }
+  dialogPayableFormVisible.value = true
+
+};
+
 // 鏂板缂栬緫
 const productionDialogs = ref(null); // 娣诲姞ref澹版槑
 
@@ -206,9 +280,11 @@
     totalPriceExcludingTax: "",
     priceIncludingTax: "",
     totalPriceIncludingTax: "",
-    taxRate: "",
-    registrantId: userInfo.value.userName,
+    taxRate: 13,
+    freight:20,
+    registrantId: userInfo.value.userId,
     registrationDate: new Date().toISOString().split("T")[0],
+    purchaseType: ""
   };
   // 鏂板缓鏃朵篃闇�瑕佽缃� copyForm 鐢ㄤ簬閲嶇疆鍔熻兘
   copyForm.value = JSON.parse(JSON.stringify(form.value));
@@ -251,6 +327,7 @@
 });
 const handleDeleteSuccess = (row) => {
   ElMessage.success("鍒犻櫎鎴愬姛锛�" + row.supplierName);
+	handleQuery()
 };
 // 鎴愬姛
 const handleSuccess = (val) => {
@@ -259,6 +336,12 @@
   total.value = tableData.value.length;
   ElMessage.success("鎿嶄綔鎴愬姛");
 };
+
+const payableHandleSuccess = (val) => {
+  ElMessage.success("鎿嶄綔鎴愬姛");
+  dialogPayableFormVisible.value = false;
+}
+
 const getList = async () => {
   loading.value = true;
   try {

--
Gitblit v1.9.3