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 | 134 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 103 insertions(+), 31 deletions(-) diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue index f692780..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,17 +80,34 @@ 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, getCoalInfoList, + 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); @@ -88,6 +116,7 @@ const pageSize = ref(10); const selectedRows = ref([]); const copyForm = ref({}); +const formPayable = ref({}); // 鏌ヨ鍙傛暟 const queryParams = reactive({ searchAll: "", @@ -104,10 +133,12 @@ // 鏂规硶瀹氫箟 const handleQuery = () => { loading.value = true; + current.value = 1; + pageSize.value = 10; // 杩欓噷娣诲姞瀹為檯鐨勬煡璇㈤�昏緫 getList(); }; -const userStore = useUserStore(); + // 鑾峰彇鐢ㄦ埛淇℃伅 const userInfo = ref({}); onMounted(async () => { @@ -134,6 +165,14 @@ }, }, { + prop: "type", + label: "鐓ゆ枡绫诲瀷", + minWidth: 120, + formatter: (row) => { + return row.type === 1 ? "鎴愬搧" : "鍘熸枡"; + }, + }, + { prop: "coalId", label: "鐓ょ绫诲瀷", minWidth: 120, @@ -144,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 }, ]); @@ -177,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澹版槑 @@ -204,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)); @@ -238,30 +316,18 @@ addOrEdit.value = "viewRow"; handleAddEdit(); }; -const handleDelete = () => { - if (selectedRows.value.length === 0) { - ElMessage.warning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁"); - return; - } - ElMessageBox.confirm(`纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋, "鎻愮ず", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning", - }) - .then(() => { - // 妯℃嫙鍒犻櫎鎿嶄綔 - tableData.value = tableData.value.filter( - (item) => !selectedRows.value.includes(item) - ); - total.value = tableData.value.length; - ElMessage.success("鍒犻櫎鎴愬姛"); - }) - .catch(() => { - ElMessage.info("宸插彇娑堝垹闄�"); - }); -}; +// 浣跨敤鍒犻櫎缁勫悎寮忓嚱鏁� - 绠�鍖栫増鏈� +const { handleDeleteBatch: handleDelete } = useDelete({ + deleteApi: delPR, + selectedRows, + tableData, + total, + confirmText: "纭畾鍒犻櫎閫変腑鐨勯噰璐褰曞悧锛�", + useLocalUpdate: true +}); const handleDeleteSuccess = (row) => { ElMessage.success("鍒犻櫎鎴愬姛锛�" + row.supplierName); + handleQuery() }; // 鎴愬姛 const handleSuccess = (val) => { @@ -270,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