From dd159ea51a7a77bd8cc00c70c0e900f472fb3395 Mon Sep 17 00:00:00 2001 From: 张诺 <zhang_12370@163.com> Date: 星期四, 05 六月 2025 18:00:17 +0800 Subject: [PATCH] 完善基础管理 供应商、客户、煤种等功能 --- src/views/procureMent/index.vue | 157 +++++++++++++++++++++------------------------------- 1 files changed, 63 insertions(+), 94 deletions(-) diff --git a/src/views/procureMent/index.vue b/src/views/procureMent/index.vue index b04a0f1..038b727 100644 --- a/src/views/procureMent/index.vue +++ b/src/views/procureMent/index.vue @@ -1,78 +1,37 @@ <template> <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-form-item> - <el-form-item label="渚涘簲鍟嗗悕绉�"> - <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-form-item> - <el-form-item label="缁忚惀鍦板潃"> - <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> - <el-button @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> + <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-form-item> + <el-form-item label="渚涘簲鍟嗗悕绉�"> + <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-form-item> + <el-form-item label="缁忚惀鍦板潃"> + <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> + <el-button @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> <el-card> <!-- 鎿嶄綔鎸夐挳鍖� --> <el-row :gutter="24" class="table-toolbar"> - <el-button type="primary" :icon="Plus" @click="handleAdd" - >鏂板缓</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> + </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:dialogFormVisible="dialogFormVisible" - :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="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" /> </div> </template> @@ -84,6 +43,8 @@ import Pagination from "@/components/Pagination"; import ProductionDialog from './components/ProductionDialog.vue'; import { purchaseRegistration } from "@/api/procureMent"; +import useUserStore from '@/store/modules/user' + const { proxy } = getCurrentInstance() const dialogFormVisible = ref(false); const form = ref({}); @@ -94,6 +55,7 @@ const pageNum = ref(1) const pageSize = ref(10); const selectedRows = ref([]); +const copyForm = ref({}); // 鏌ヨ鍙傛暟 const queryParams = reactive({ searchText: "", @@ -113,10 +75,13 @@ // 杩欓噷娣诲姞瀹為檯鐨勬煡璇㈤�昏緫 getList(); }; - +const userStore = useUserStore(); +onMounted(async() => { + let res = await userStore.getInfo() + form.value.registrantId = res.user.userName; // 璁剧疆鐧昏浜篒D +}); // 鍒嗛〉澶勭悊 const handlePagination = (val) => { - console.log("鍒嗛〉鍙傛暟锛�", val); pageNum.value = val.page; pageSize.value = val.limit; queryParams.pageNum = val.page; @@ -127,8 +92,8 @@ // supplier 渚涘簲鍟嗘暟鎹� const columns = ref([ { prop: "supplierName", label: "渚涘簲鍟嗗悕绉�", minWidth: 200 }, - { prop: "unit", label: "鍗曚綅", minWidth: 150 }, { prop: "coal", label: "鐓ょ绫诲瀷", minWidth: 120 }, + { prop: "unit", label: "鍗曚綅", minWidth: 150 }, { prop: "purchaseQuantity", label: "閲囪喘鏁伴噺", minWidth: 100 }, { prop: "priceIncludingTax", label: "鍗曚环锛堝惈绋庯級", minWidth: 150 }, { prop: "totalPriceIncludingTax", label: "鎬讳环锛堝惈绋庯級", minWidth: 100 }, @@ -145,46 +110,52 @@ queryParams[key] = ""; } }); - handleQuery(); }; // 鏂板 const handleAdd = () => { - console.log("鐐瑰嚮鏂板鎸夐挳"); addOrEdit.value = "add"; handleAddEdit(); }; // 鏂板缂栬緫 const handleAddEdit = () => { addOrEdit.value == "add" ? (title.value = "鏂板") : (title.value = "缂栬緫"); - title.value = title.value + "閲囪喘淇℃伅"; - openDialog(); + title.value = title.value + "閲囪喘淇℃伅"; + openDialog(); }; // 鎵撳紑寮圭獥 const openDialog = () => { if (addOrEdit.value === "edit") { // 纭繚澶嶅埗涓�浠芥暟鎹紝閬垮厤鐩存帴寮曠敤 - form.value = JSON.parse(JSON.stringify(form.value)); + copyForm.value = JSON.parse(JSON.stringify(form.value)); dialogFormVisible.value = true; return; } // 鏂板缓鏃跺垵濮嬪寲琛ㄥ崟 form.value = { supplierName: "", - category: "", + coal: "", unit: "", - purchaseAmount: "", - priceBeforeTax: "", - totalBeforeTax: "", - calorificValue: "", - registrant: "", + purchaseQuantity: "", + priceExcludingTax: "", + totalPriceExcludingTax: "", + priceIncludingTax: "", + totalPriceIncludingTax: "", + taxRate: "", + registrantId: "", registrationDate: new Date().toISOString().split('T')[0] - }; dialogFormVisible.value = true; - console.log("openDialog 璁剧疆 dialogFormVisible =", dialogFormVisible.value); + }; + // 鏂板缓鏃朵篃闇�瑕佽缃� copyForm 鐢ㄤ簬閲嶇疆鍔熻兘 + copyForm.value = JSON.parse(JSON.stringify(form.value)); + dialogFormVisible.value = true; }; // 鎻愪氦琛ㄥ崟 -const handleSubmit = () => { - // 鎷垮埌鎻愪氦鏁版嵁 +const handleSubmit = (val) => { + if (val.result.code !== 200) { + ElMessage.error("鎿嶄綔澶辫触锛�" + val.result.msg); + return; + } + ElMessage.success(val.title + val.result.msg); dialogFormVisible.value = false; getList(); }; @@ -194,9 +165,9 @@ }; // 琛ㄦ牸缂栬緫鏂规硶 const handleEdit = (row) => { - form.value = JSON.parse(JSON.stringify(row)); - addOrEdit.value = "edit"; - handleAddEdit() + form.value = JSON.parse(JSON.stringify(row)); + addOrEdit.value = "edit"; + handleAddEdit() }; const handleDelete = () => { if (selectedRows.value.length === 0) { @@ -204,7 +175,7 @@ return; } ElMessageBox.confirm( - `纭鍒犻櫎閫変腑鐨� ${selectedRows.value.length} 鏉℃暟鎹悧锛焋, + `纭畾鍒犻櫎閫変腑鐨勬暟鎹悧锛焋, "鎻愮ず", { confirmButtonText: "纭畾", @@ -236,7 +207,6 @@ }; // 鎴愬姛 const handleSuccess = (val) => { - console.log(val); tableData.value.push(val); // getList(); total.value = tableData.value.length; @@ -251,13 +221,11 @@ pageSize: pageSize.value, ...queryParams }); - console.log("API杩斿洖鏁版嵁:", res); if (res && res.data) { tableData.value = res.data.records || []; total.value = res.data.total || 0; } } catch (error) { - console.error("鑾峰彇鏁版嵁澶辫触:", error); ElMessage.error("鑾峰彇鏁版嵁澶辫触"); } finally { loading.value = false; @@ -267,7 +235,7 @@ </script> <style scoped> -.app-container{ +.app-container { box-sizing: border-box; } .search-form { @@ -310,7 +278,8 @@ } } /* 琛ㄦ牸宸ュ叿鏍� */ -.table-toolbar, .table-toolbar > * { +.table-toolbar, +.table-toolbar>* { margin: 0 0 0 0 !important; } .table-toolbar{ -- Gitblit v1.9.3