From 0ad2c4106d6f570e0ca63c8fe5093e6f97492534 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期六, 11 十月 2025 17:44:10 +0800
Subject: [PATCH] yys 1.修改销售出库-煤种选中问题 2.采购管理增加车牌字段
---
src/views/procureMent/index.vue | 150 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 116 insertions(+), 34 deletions(-)
diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue
index 2949e2b..28883ed 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
@@ -35,7 +38,11 @@
@delete="handleDeleteSuccess"
:show-selection="true"
:border="true"
- style="width: 100%;height: calc(100vh - 26em)"
+ style="width: 100%; height: calc(100vh - 26em)"
+ @viewRow="handleView"
+ :operations="['edit', 'viewRow']"
+ :operationsWidth="200"
+ :show-overflow-tooltip="false"
/>
<pagination
v-if="total > 0"
@@ -55,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>
@@ -65,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);
@@ -84,6 +116,7 @@
const pageSize = ref(10);
const selectedRows = ref([]);
const copyForm = ref({});
+const formPayable = ref({});
// 鏌ヨ鍙傛暟
const queryParams = reactive({
searchAll: "",
@@ -100,10 +133,12 @@
// 鏂规硶瀹氫箟
const handleQuery = () => {
loading.value = true;
+ current.value = 1;
+ pageSize.value = 10;
// 杩欓噷娣诲姞瀹為檯鐨勬煡璇㈤�昏緫
getList();
};
-const userStore = useUserStore();
+
// 鑾峰彇鐢ㄦ埛淇℃伅
const userInfo = ref({});
onMounted(async () => {
@@ -130,6 +165,14 @@
},
},
{
+ prop: "type",
+ label: "鐓ゆ枡绫诲瀷",
+ minWidth: 120,
+ formatter: (row) => {
+ return row.type === 1 ? "鎴愬搧" : "鍘熸枡";
+ },
+ },
+ {
prop: "coalId",
label: "鐓ょ绫诲瀷",
minWidth: 120,
@@ -140,9 +183,25 @@
{ prop: "purchaseQuantity", label: "閲囪喘鏁伴噺", minWidth: 100 },
{ prop: "priceIncludingTax", label: "鍗曚环锛堝惈绋庯級", minWidth: 150 },
{ prop: "totalPriceIncludingTax", label: "鎬讳环锛堝惈绋庯級", minWidth: 100 },
+ { prop: "licensePlate", 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 },
]);
@@ -150,7 +209,7 @@
const MatchQuery = (data, name) => {
const list = name === "supplyRes" ? supplyRes.value.data : coalRes.value.data;
const item = list.find((items) => items.id == data);
- return item ? item.coal || item.supplierName : "";
+ return item ? item.coal || item.supplierName : "";
};
// 鑾峰彇渚涘簲鍟嗗垪琛�
const supplyRes = ref([]);
@@ -173,17 +232,39 @@
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澹版槑
const handleAddEdit = () => {
- addOrEdit.value == "add" ? (title.value = "鏂板") : (title.value = "缂栬緫");
+ addOrEdit.value == "add" ? (title.value = "鏂板") : addOrEdit.value == "viewRow" ? (title.value = "鏌ョ湅") : (title.value = "缂栬緫");
title.value = title.value + "閲囪喘淇℃伅";
openDialog();
};
// 鎵撳紑寮圭獥
const openDialog = () => {
- if (addOrEdit.value === "edit") {
+ if (addOrEdit.value === "edit" || addOrEdit.value === "viewRow") {
// 纭繚澶嶅埗涓�浠芥暟鎹紝閬垮厤鐩存帴寮曠敤
copyForm.value = JSON.parse(JSON.stringify(form.value));
dialogFormVisible.value = true;
@@ -200,9 +281,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));
@@ -229,30 +312,23 @@
addOrEdit.value = "edit";
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 handleView = (row) => {
+ form.value = JSON.parse(JSON.stringify(row));
+ addOrEdit.value = "viewRow";
+ handleAddEdit();
};
+// 浣跨敤鍒犻櫎缁勫悎寮忓嚱鏁� - 绠�鍖栫増鏈�
+const { handleDeleteBatch: handleDelete } = useDelete({
+ deleteApi: delPR,
+ selectedRows,
+ tableData,
+ total,
+ confirmText: "纭畾鍒犻櫎閫変腑鐨勯噰璐褰曞悧锛�",
+ useLocalUpdate: true
+});
const handleDeleteSuccess = (row) => {
ElMessage.success("鍒犻櫎鎴愬姛锛�" + row.supplierName);
+ handleQuery()
};
// 鎴愬姛
const handleSuccess = (val) => {
@@ -261,6 +337,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