From 437a70bd86d8adda3da41853b8b1c2706a22fdd7 Mon Sep 17 00:00:00 2001 From: 张诺 <zhang_12370@163.com> Date: 星期四, 12 六月 2025 18:03:59 +0800 Subject: [PATCH] 优化文档管理及基础信息页面 --- src/views/procureMent/index.vue | 157 +++++++++++++++++++++++++++++++++------------------- 1 files changed, 100 insertions(+), 57 deletions(-) diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue index 5b96d12..0651cd4 100644 --- a/src/views/procureMent/index.vue +++ b/src/views/procureMent/index.vue @@ -2,16 +2,36 @@ <div class="app-container"> <el-form :inline="true" :model="queryParams" class="search-form"> <el-form-item label="鎼滅储"> - <el-input v-model="queryParams.searchText" placeholder="璇疯緭鍏ュ叧閿瘝" clearable :style="{ width: '100%' }" /> + <el-input + v-model="queryParams.searchText" + placeholder="璇疯緭鍏ュ叧閿瘝" + clearable + :style="{ width: '100%' }" + /> </el-form-item> <el-form-item label="渚涘簲鍟嗗悕绉�"> - <el-input v-model="queryParams.supplierName" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" /> + <el-input + v-model="queryParams.supplierName" + placeholder="璇疯緭鍏�" + clearable + :style="{ width: '100%' }" + /> </el-form-item> <el-form-item label="缁熶竴浜鸿瘑鍒彿"> - <el-input v-model="queryParams.identifyNumber" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" /> + <el-input + v-model="queryParams.identifyNumber" + placeholder="璇疯緭鍏�" + clearable + :style="{ width: '100%' }" + /> </el-form-item> <el-form-item label="缁忚惀鍦板潃"> - <el-input v-model="queryParams.address" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" /> + <el-input + v-model="queryParams.address" + placeholder="璇疯緭鍏�" + clearable + :style="{ width: '100%' }" + /> </el-form-item> <el-form-item> <el-button type="primary" @click="handleQuery">鏌ヨ</el-button> @@ -21,17 +41,44 @@ <el-card> <!-- 鎿嶄綔鎸夐挳鍖� --> <el-row :gutter="24" class="table-toolbar"> - <el-button type="primary" :icon="Plus" @click="handleAdd">鏂板缓</el-button> - <el-button type="danger" :icon="Delete" @click="handleDelete">鍒犻櫎</el-button> + <el-button type="primary" :icon="Plus" @click="handleAdd" + >鏂板缓</el-button + > + <el-button type="danger" :icon="Delete" @click="handleDelete" + >鍒犻櫎</el-button + > <!-- <el-button type="info" :icon="Download" @click="handleExport">瀵煎嚭</el-button> --> </el-row> <!-- 琛ㄦ牸缁勪欢 --> - <data-table :loading="loading" :table-data="tableData" :columns="columns" @selection-change="handleSelectionChange" - @edit="handleEdit" @delete="handleDeleteSuccess" :show-selection="true" :border="true" :maxHeight="440" /> - <pagination v-if="total>0" :page="pageNum" :limit="pageSize" :total="total" @pagination="handlePagination" - :layout="'total, prev, pager, next, jumper'" /> - </el-card> <ProductionDialog v-model:copyForm="copyForm" v-model:dialogFormVisible="dialogFormVisible" v-model:form="form" :title="title" @submit="handleSubmit" - @success="handleSuccess" /> + <data-table + :loading="loading" + :table-data="tableData" + :columns="columns" + @selection-change="handleSelectionChange" + @edit="handleEdit" + @delete="handleDeleteSuccess" + :show-selection="true" + :border="true" + :maxHeight="440" + /> + <pagination + v-if="total > 0" + :page="current" + :limit="pageSize" + :total="total" + @pagination="handlePagination" + :layout="'total, prev, pager, next, jumper'" + /> + </el-card> + <ProductionDialog + v-model:copyForm="copyForm" + v-model:dialogFormVisible="dialogFormVisible" + v-model:form="form" + :title="title" + @submit="handleSubmit" + @success="handleSuccess" + ref="productionDialogs" + /> </div> </template> @@ -41,32 +88,18 @@ import { Plus, Edit, Delete, Download } from "@element-plus/icons-vue"; import DataTable from "@/components/Table/ETable.vue"; import Pagination from "@/components/Pagination"; -import ProductionDialog from './components/ProductionDialog.vue'; +import ProductionDialog from "./components/ProductionDialog.vue"; import { purchaseRegistration } from "@/api/procureMent"; -import useUserStore from '@/store/modules/user' -import useDictStore from "@/store/modules/dict"; +import useUserStore from "@/store/modules/user"; // 寮曞叆瀛楀吀鏁版嵁 -const useDictStores = useDictStore(); -useDictStores.setDict({ - id: 1, - name: "鐓ょ绫诲瀷", - type: "coalType", - items: [ - { label: "鏃犵儫鐓�", value: "anthracite" }, - { label: "鐑熺叅", value: "bituminous" }, - { label: "瑜愮叅", value: "lignite" } - ] -}) -console.log(useDictStores.dict); - -const { proxy } = getCurrentInstance() +const { proxy } = getCurrentInstance(); const dialogFormVisible = ref(false); const form = ref({}); const title = ref(""); // 鐘舵�佸彉閲� const loading = ref(false); const total = ref(0); -const pageNum = ref(1) +const current = ref(1); const pageSize = ref(10); const selectedRows = ref([]); const copyForm = ref({}); @@ -76,8 +109,8 @@ supplierName: "", identifyNumber: "", address: "", - pageNum: 1, - pageSize: 10 + current: 1, + pageSize: 10, }); // 鏄惁缂栬緫 const addOrEdit = ref("add"); @@ -92,15 +125,15 @@ const userStore = useUserStore(); // 鑾峰彇鐢ㄦ埛淇℃伅 const userInfo = ref({}); -onMounted(async() => { - let res = await userStore.getInfo() +onMounted(async () => { + let res = await userStore.getInfo(); userInfo.value = res.user; }); // 鍒嗛〉澶勭悊 const handlePagination = (val) => { - pageNum.value = val.page; + current.value = val.page; pageSize.value = val.limit; - queryParams.pageNum = val.page; + queryParams.current = val.page; queryParams.pageSize = val.limit; getList(); }; @@ -122,7 +155,7 @@ // 閲嶇疆鏌ヨ const resetQuery = () => { Object.keys(queryParams).forEach((key) => { - if (key !== "pageNum" && key !== "pageSize") { + if (key !== "current" && key !== "pageSize") { queryParams[key] = ""; } }); @@ -133,9 +166,18 @@ handleAddEdit(); }; // 鏂板缂栬緫 +const productionDialogs = ref(null); // 娣诲姞ref澹版槑 + const handleAddEdit = () => { addOrEdit.value == "add" ? (title.value = "鏂板") : (title.value = "缂栬緫"); title.value = title.value + "閲囪喘淇℃伅"; + + // 姝g‘浣跨敤瀛愮粍浠秗ef + if (productionDialogs.value) { + // 杩欓噷鍙互璋冪敤瀛愮粍浠剁殑鏂规硶 + console.log("瀛愮粍浠跺疄渚�:", productionDialogs.value.getDropdownData()); + } + openDialog(); }; // 鎵撳紑寮圭獥 @@ -144,6 +186,7 @@ // 纭繚澶嶅埗涓�浠芥暟鎹紝閬垮厤鐩存帴寮曠敤 copyForm.value = JSON.parse(JSON.stringify(form.value)); dialogFormVisible.value = true; + // 瑙﹀彂ref閲岄潰鐨勬柟娉� return; } // 鏂板缓鏃跺垵濮嬪寲琛ㄥ崟 @@ -158,7 +201,7 @@ totalPriceIncludingTax: "", taxRate: "", registrantId: userInfo.value.userName, - registrationDate: new Date().toISOString().split('T')[0] + registrationDate: new Date().toISOString().split("T")[0], }; // 鏂板缓鏃朵篃闇�瑕佽缃� copyForm 鐢ㄤ簬閲嶇疆鍔熻兘 copyForm.value = JSON.parse(JSON.stringify(form.value)); @@ -183,22 +226,18 @@ const handleEdit = (row) => { form.value = JSON.parse(JSON.stringify(row)); addOrEdit.value = "edit"; - handleAddEdit() + handleAddEdit(); }; const handleDelete = () => { if (selectedRows.value.length === 0) { ElMessage.warning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁"); return; } - ElMessageBox.confirm( - `纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋, - "鎻愮ず", - { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - } - ) + ElMessageBox.confirm(`纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋, "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) .then(() => { // 妯℃嫙鍒犻櫎鎿嶄綔 tableData.value = tableData.value.filter( @@ -210,15 +249,19 @@ .catch(() => { ElMessage.info("宸插彇娑堝垹闄�"); }); -} +}; const handleDeleteSuccess = (row) => { ElMessage.success("鍒犻櫎鎴愬姛锛�" + row.supplierName); }; // 瀵煎嚭 const handleExport = (row) => { - proxy.download("system/post/export", { - ...queryParams.value - }, `post_${new Date().getTime()}.xlsx`) + proxy.download( + "system/post/export", + { + ...queryParams.value, + }, + `post_${new Date().getTime()}.xlsx` + ); ElMessage.success("瀵煎嚭鏁版嵁锛�" + row.supplierName); }; // 鎴愬姛 @@ -233,9 +276,9 @@ try { // 浼犻�掑垎椤靛弬鏁� let res = await purchaseRegistration({ - pageNum: pageNum.value, + current: current.value, pageSize: pageSize.value, - ...queryParams + ...queryParams, }); if (res && res.data) { tableData.value = res.data.records || []; @@ -295,10 +338,10 @@ } /* 琛ㄦ牸宸ュ叿鏍� */ .table-toolbar, -.table-toolbar>* { +.table-toolbar > * { margin: 0 0 0 0 !important; } -.table-toolbar{ +.table-toolbar { margin-bottom: 20px !important; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3