From 02dab18683eab22bf7a37c404a17d9174820f29c Mon Sep 17 00:00:00 2001 From: buhuazhen <hua100783@gmail.com> Date: 星期三, 27 八月 2025 14:22:59 +0800 Subject: [PATCH] :fire: 优化 采购页面添加类型 新增应付页面 --- src/views/procureMent/index.vue | 67 +++++++++++++++++++++++++++++++-- 1 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue index 2dfe17d..d95dcbf 100644 --- a/src/views/procureMent/index.vue +++ b/src/views/procureMent/index.vue @@ -16,9 +16,12 @@ </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="primary" :icon="Plus" @click="handleAddPayable"> + 娣诲姞搴斾粯娆� </el-button> <!-- <el-button type="danger" :icon="Delete" @click="handleDelete" >鍒犻櫎 @@ -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, @@ -77,16 +90,23 @@ } 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 dialogPayableFormVisible = ref(false); const form = ref({ - taxRate: "13" + taxRate: 13, + freight: 20, }); const title = ref(""); // 鐘舵�佸彉閲� @@ -96,6 +116,7 @@ const pageSize = ref(10); const selectedRows = ref([]); const copyForm = ref({}); +const formPayable = ref({}); // 鏌ヨ鍙傛暟 const queryParams = reactive({ searchAll: "", @@ -154,6 +175,7 @@ { 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, @@ -162,6 +184,14 @@ 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 }, ]); @@ -193,6 +223,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澹版槑 @@ -210,7 +262,6 @@ // 瑙﹀彂ref閲岄潰鐨勬柟娉� return; } - console.log(userInfo.value) // 鏂板缓鏃跺垵濮嬪寲琛ㄥ崟 form.value = { supplierName: "", @@ -221,9 +272,11 @@ totalPriceExcludingTax: "", priceIncludingTax: "", totalPriceIncludingTax: "", - taxRate: "13", + 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)); @@ -275,6 +328,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