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 | 72 ++++++++++++++++++++++++++++++++++-- 1 files changed, 68 insertions(+), 4 deletions(-) diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue index ee9d5c5..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,15 +90,24 @@ } 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); @@ -94,6 +116,7 @@ const pageSize = ref(10); const selectedRows = ref([]); const copyForm = ref({}); +const formPayable = ref({}); // 鏌ヨ鍙傛暟 const queryParams = reactive({ searchAll: "", @@ -110,6 +133,8 @@ // 鏂规硶瀹氫箟 const handleQuery = () => { loading.value = true; + current.value = 1; + pageSize.value = 10; // 杩欓噷娣诲姞瀹為檯鐨勬煡璇㈤�昏緫 getList(); }; @@ -150,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, @@ -158,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 }, ]); @@ -189,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澹版槑 @@ -206,7 +262,6 @@ // 瑙﹀彂ref閲岄潰鐨勬柟娉� return; } - console.log(userInfo.value) // 鏂板缓鏃跺垵濮嬪寲琛ㄥ崟 form.value = { supplierName: "", @@ -217,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)); @@ -262,6 +319,7 @@ }); const handleDeleteSuccess = (row) => { ElMessage.success("鍒犻櫎鎴愬姛锛�" + row.supplierName); + handleQuery() }; // 鎴愬姛 const handleSuccess = (val) => { @@ -270,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