From 45574a93cd079e20662dd2717765918a0066984f Mon Sep 17 00:00:00 2001 From: 曹睿 <360930172@qq.com> Date: 星期四, 03 七月 2025 10:53:46 +0800 Subject: [PATCH] fix: 修复设备,基础数据分页不显示 --- src/views/equipmentManagement/upkeep/index.vue | 142 ++++++++------- src/views/basicData/supplierManage/index.vue | 6 src/views/basicData/customerFile/index.vue | 4 src/views/basicData/product/index.vue | 5 src/views/equipmentManagement/repair/Modal/RepairModal.vue | 9 src/views/equipmentManagement/ledger/Modal.vue | 9 src/views/equipmentManagement/repair/index.vue | 143 ++++++++------- src/views/equipmentManagement/repair/Form/RepairForm.vue | 6 src/views/equipmentManagement/ledger/index.vue | 172 +++++++++++-------- src/views/equipmentManagement/ledger/Form.vue | 16 + src/views/equipmentManagement/upkeep/Form/PlanForm.vue | 1 11 files changed, 297 insertions(+), 216 deletions(-) diff --git a/src/views/basicData/customerFile/index.vue b/src/views/basicData/customerFile/index.vue index c4fa332..89330c6 100644 --- a/src/views/basicData/customerFile/index.vue +++ b/src/views/basicData/customerFile/index.vue @@ -34,7 +34,6 @@ @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination" - :total="total" ></PIMTable> </div> <el-dialog @@ -312,6 +311,7 @@ const page = reactive({ current: 1, size: 10, + total: 0, }); const total = ref(0); @@ -383,7 +383,7 @@ listCustomer({ ...searchForm.value, ...page }).then((res) => { tableLoading.value = false; tableData.value = res.records; - total.value = res.total; + page.total = res.total; }); }; // 琛ㄦ牸閫夋嫨鏁版嵁 diff --git a/src/views/basicData/product/index.vue b/src/views/basicData/product/index.vue index 6d31b8d..cf83ff4 100644 --- a/src/views/basicData/product/index.vue +++ b/src/views/basicData/product/index.vue @@ -91,7 +91,6 @@ @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination" - :total="total" ></PIMTable> </div> <el-dialog v-model="productDia" title="浜у搧" width="400px"> @@ -221,11 +220,11 @@ const tableData = ref([]); const tableLoading = ref(false); const isShowButton = ref(false); -const total = ref(0); const selectedRows = ref([]); const page = reactive({ current: 1, size: 10, + total: 0, }); const data = reactive({ form: { @@ -382,7 +381,7 @@ }).then((res) => { console.log("res", res); tableData.value = res.records; - total.value = res.total; + page.total = res.total; tableLoading.value = false; }); }; diff --git a/src/views/basicData/supplierManage/index.vue b/src/views/basicData/supplierManage/index.vue index 5aaed78..1412e8e 100644 --- a/src/views/basicData/supplierManage/index.vue +++ b/src/views/basicData/supplierManage/index.vue @@ -35,8 +35,6 @@ :isSelection="true" @selection-change="handleSelectionChange" :tableLoading="tableLoading" - @pagination="pagination" - :total="total" ></PIMTable> </div> <el-dialog @@ -300,8 +298,8 @@ const page = reactive({ current: 1, size: 10, + total: 0, }); -const total = ref(0); // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁 const operationType = ref(""); @@ -359,7 +357,7 @@ listSupplier({ ...searchForm.value, ...page }).then((res) => { tableLoading.value = false; tableData.value = res.data.records; - total.value = res.data.total; + page.total = res.data.total; }); }; const upload = reactive({ diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue index 4b5308b..cb9f7e3 100644 --- a/src/views/equipmentManagement/ledger/Form.vue +++ b/src/views/equipmentManagement/ledger/Form.vue @@ -37,7 +37,9 @@ v-model="form.taxIncludingPriceUnit" placeholder="璇疯緭鍏ュ惈绋庡崟浠�" type="number" + maxlength="10" @change="mathNum" + @input="handleNumberInput" /> </el-form-item> </el-col> @@ -170,8 +172,22 @@ } }; +const handleNumberInput = (value) => { + // 绉婚櫎鎵�鏈夐潪鏁板瓧瀛楃 + let num = value.replace(/[^\d]/g, ""); + + // 闄愬埗闀垮害涓�10 + if (num.length > 10) { + num = num.slice(0, 10); + } + + // 鏇存柊鍊� + form.taxIncludingPriceUnit = num; +}; + defineExpose({ form, loadForm, + resetForm, }); </script> diff --git a/src/views/equipmentManagement/ledger/Modal.vue b/src/views/equipmentManagement/ledger/Modal.vue index 7bfe46c..e9ed16a 100644 --- a/src/views/equipmentManagement/ledger/Modal.vue +++ b/src/views/equipmentManagement/ledger/Modal.vue @@ -1,5 +1,5 @@ <template> - <el-dialog :title="modalOptions.title" v-model="visible"> + <el-dialog :title="modalOptions.title" v-model="visible" @close="close"> <Form ref="formRef"></Form> <template #footer> <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button> @@ -41,12 +41,17 @@ if (code == 200) { emits("success"); ElMessage({ message: "鎿嶄綔鎴愬姛", type: "success" }); - closeModal(); + close(); } else { loading.value = false; } }; +const close = () => { + closeModal(); + formRef.value.resetForm(); +}; + const loadForm = async (id) => { openModal(id); await nextTick(); diff --git a/src/views/equipmentManagement/ledger/index.vue b/src/views/equipmentManagement/ledger/index.vue index 83c416e..fceba64 100644 --- a/src/views/equipmentManagement/ledger/index.vue +++ b/src/views/equipmentManagement/ledger/index.vue @@ -22,10 +22,19 @@ <div> <el-button type="primary" @click="add" icon="Plus"> 鏂板 </el-button> <el-button @click="handleOut" icon="download">瀵煎嚭</el-button> + <el-button + type="danger" + icon="Delete" + :disabled="multipleList.length <= 0" + @click="deleteRow(multipleList.map((item) => item.id))" + > + 鎵归噺鍒犻櫎 + </el-button> </div> </div> <PIMTable rowKey="id" + isSelection :column="columns" :tableData="dataList" :page="{ @@ -33,6 +42,8 @@ size: pagination.pageSize, total: pagination.total, }" + @selection-change="handleSelectionChange" + @pagination="changePage" > <template #operation="{ row }"> <el-button type="primary" text @click="edit(row.id)" icon="editPen"> @@ -55,7 +66,7 @@ <script setup> import { usePaginationApi } from "@/hooks/usePaginationApi"; -import { Search } from "@element-plus/icons-vue"; +// import { Search } from "@element-plus/icons-vue"; import { getLedgerPage, delLedger } from "@/api/equipmentManagement/ledger"; import { onMounted, getCurrentInstance } from "vue"; import Modal from "./Modal.vue"; @@ -65,80 +76,94 @@ name: "璁惧鍙拌处", }); +// 琛ㄦ牸澶氶�夋閫変腑椤� +const multipleList = ref([]); const { proxy } = getCurrentInstance(); const modalRef = ref(); -const { filters, columns, dataList, pagination, getTableData, resetFilters } = - usePaginationApi( - getLedgerPage, +const { + filters, + columns, + dataList, + pagination, + getTableData, + resetFilters, + onCurrentChange, +} = usePaginationApi( + getLedgerPage, + { + searchText: undefined, + }, + [ { - searchText: undefined, + label: "璁惧鍚嶇О", + align: "center", + prop: "deviceName", }, - [ - { - label: "璁惧鍚嶇О", - align: "center", - prop: "deviceName", - }, - { - label: "瑙勬牸鍨嬪彿", - align: "center", - prop: "deviceModel", - }, - { - label: "渚涘簲鍟�", - align: "center", - prop: "supplierName", - }, - { - label: "鍗曚綅", - align: "center", - prop: "unit", - }, - { - label: "鏁伴噺", - align: "center", - prop: "number", - }, - { - label: "鍚◣鍗曚环", - align: "center", - prop: "taxIncludingPriceUnit", - }, - { - label: "鍚◣鎬讳环", - align: "center", - prop: "taxIncludingPriceTotal", - }, - { - label: "绋庣巼", - align: "center", - prop: "taxRate", - }, - { - label: "涓嶅惈绋庢�讳环", - align: "center", - prop: "unTaxIncludingPriceTotal", - }, - { - label: "褰曞叆浜�", - align: "center", - prop: "createUser", - }, - { - label: "褰曞叆鏃ユ湡", - align: "center", - prop: "createTime", - }, - { - fixed: "right", - label: "鎿嶄綔", - dataType: "slot", - slot: "operation", - align: "center", - width: "200px", - }, - ] - ); + { + label: "瑙勬牸鍨嬪彿", + align: "center", + prop: "deviceModel", + }, + { + label: "渚涘簲鍟�", + align: "center", + prop: "supplierName", + }, + { + label: "鍗曚綅", + align: "center", + prop: "unit", + }, + { + label: "鏁伴噺", + align: "center", + prop: "number", + }, + { + label: "鍚◣鍗曚环", + align: "center", + prop: "taxIncludingPriceUnit", + }, + { + label: "鍚◣鎬讳环", + align: "center", + prop: "taxIncludingPriceTotal", + }, + { + label: "绋庣巼", + align: "center", + prop: "taxRate", + }, + { + label: "涓嶅惈绋庢�讳环", + align: "center", + prop: "unTaxIncludingPriceTotal", + }, + { + label: "褰曞叆浜�", + align: "center", + prop: "createUser", + }, + { + label: "褰曞叆鏃ユ湡", + align: "center", + prop: "createTime", + }, + { + fixed: "right", + label: "鎿嶄綔", + dataType: "slot", + slot: "operation", + align: "center", + width: "200px", + }, + ] +); + +// 澶氶�夊悗鍋氫粈涔� +const handleSelectionChange = (selectionList) => { + multipleList.value = selectionList; +}; const add = () => { modalRef.value.openModal(); @@ -146,7 +171,10 @@ const edit = (id) => { modalRef.value.loadForm(id); }; - +const changePage = ({ page }) => { + pagination.currentPage = page; + onCurrentChange(page); +}; const deleteRow = (id) => { ElMessageBox.confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?", "鎻愮ず", { confirmButtonText: "纭畾", diff --git a/src/views/equipmentManagement/repair/Form/RepairForm.vue b/src/views/equipmentManagement/repair/Form/RepairForm.vue index 6ded5fe..fdca0af 100644 --- a/src/views/equipmentManagement/repair/Form/RepairForm.vue +++ b/src/views/equipmentManagement/repair/Form/RepairForm.vue @@ -97,9 +97,9 @@ form.remark = data.remark; }; -onMounted(() => { - loadDeviceName(); -}); +// onMounted(() => { +// loadDeviceName(); +// }); defineExpose({ loadDeviceName, diff --git a/src/views/equipmentManagement/repair/Modal/RepairModal.vue b/src/views/equipmentManagement/repair/Modal/RepairModal.vue index 586960d..3aba5fe 100644 --- a/src/views/equipmentManagement/repair/Modal/RepairModal.vue +++ b/src/views/equipmentManagement/repair/Modal/RepairModal.vue @@ -51,10 +51,17 @@ loading.value = false; }; +const openAdd = async () => { + openModal(); + await nextTick(); + await repairFormRef.value.loadDeviceName(); +}; + const openEdit = async (id) => { const { data } = await getRepairById(id); openModal(id); await nextTick(); + await repairFormRef.value.loadDeviceName(); await repairFormRef.value.setForm(data); }; @@ -64,7 +71,7 @@ }; defineExpose({ - openModal, + openAdd, openEdit, }); </script> diff --git a/src/views/equipmentManagement/repair/index.vue b/src/views/equipmentManagement/repair/index.vue index 2e75914..11679ba 100644 --- a/src/views/equipmentManagement/repair/index.vue +++ b/src/views/equipmentManagement/repair/index.vue @@ -36,6 +36,7 @@ total: pagination.total, }" @selection-change="handleSelectionChange" + @pagination="changePage" > <template #statusRef="{ row }"> <el-tag v-if="row.status === 1" type="success">瀹岀粨</el-tag> @@ -87,72 +88,79 @@ const multipleList = ref([]); // 琛ㄦ牸閽╁瓙 -const { filters, columns, dataList, pagination, getTableData, resetFilters } = - usePaginationApi( - getRepairPage, +const { + filters, + columns, + dataList, + pagination, + getTableData, + resetFilters, + onCurrentChange, +} = usePaginationApi( + getRepairPage, + { + searchText: undefined, + }, + [ { - searchText: undefined, + label: "璁惧鍚嶇О", + align: "center", + prop: "deviceName", }, - [ - { - label: "璁惧鍚嶇О", - align: "center", - prop: "deviceName", - }, - { - label: "瑙勬牸鍨嬪彿", - align: "center", - prop: "deviceModel", - }, - { - label: "鎶ヤ慨鏃ユ湡", - align: "center", - prop: "repairTime", - formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"), - }, - { - label: "鎶ヤ慨浜�", - align: "center", - prop: "repairName", - }, - { - label: "鏁呴殰鐜拌薄", - align: "center", - prop: "remark", - }, - { - label: "缁翠慨浜�", - align: "center", - prop: "maintenanceName", - }, - { - label: "缁翠慨缁撴灉", - align: "center", - prop: "maintenanceResult", - }, - { - label: "缁翠慨鏃ユ湡", - align: "center", - prop: "maintenanceTime", - formatData: (cell) => (cell ? dayjs(cell).format("YYYY-MM-DD") : ""), - }, - { - label: "鐘舵��", - align: "center", - prop: "status", - dataType: "slot", - slot: "statusRef", - }, - { - fixed: "right", - label: "鎿嶄綔", - dataType: "slot", - slot: "operation", - align: "center", - width: "200px", - }, - ] - ); + { + label: "瑙勬牸鍨嬪彿", + align: "center", + prop: "deviceModel", + }, + { + label: "鎶ヤ慨鏃ユ湡", + align: "center", + prop: "repairTime", + formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"), + }, + { + label: "鎶ヤ慨浜�", + align: "center", + prop: "repairName", + }, + { + label: "鏁呴殰鐜拌薄", + align: "center", + prop: "remark", + }, + { + label: "缁翠慨浜�", + align: "center", + prop: "maintenanceName", + }, + { + label: "缁翠慨缁撴灉", + align: "center", + prop: "maintenanceResult", + }, + { + label: "缁翠慨鏃ユ湡", + align: "center", + prop: "maintenanceTime", + formatData: (cell) => (cell ? dayjs(cell).format("YYYY-MM-DD") : ""), + }, + { + label: "鐘舵��", + align: "center", + prop: "status", + dataType: "slot", + slot: "statusRef", + }, + { + fixed: "right", + label: "鎿嶄綔", + dataType: "slot", + slot: "operation", + align: "center", + width: "200px", + }, + ] +); // 澶氶�夊悗鍋氫粈涔� const handleSelectionChange = (selectionList) => { @@ -161,7 +169,7 @@ // 鏂板鎶ヤ慨 const addRepair = () => { - repairModalRef.value.openModal(); + repairModalRef.value.openAdd(); }; // 缂栬緫鎶ヤ慨 @@ -175,6 +183,11 @@ maintainModalRef.value.open(row.id, row); }; +const changePage = ({ page }) => { + pagination.currentPage = page; + onCurrentChange(page); +}; + // 鍗曡鍒犻櫎 const delRepairByIds = async (ids) => { ElMessageBox.confirm("纭鍒犻櫎鎶ヤ慨鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", { diff --git a/src/views/equipmentManagement/upkeep/Form/PlanForm.vue b/src/views/equipmentManagement/upkeep/Form/PlanForm.vue index a2bd2ce..1d94b68 100644 --- a/src/views/equipmentManagement/upkeep/Form/PlanForm.vue +++ b/src/views/equipmentManagement/upkeep/Form/PlanForm.vue @@ -39,6 +39,7 @@ import useFormData from "@/hooks/useFormData"; import { getDeviceLedger } from "@/api/equipmentManagement/ledger"; import { onMounted } from "vue"; +import dayjs from "dayjs"; defineOptions({ name: "璁″垝琛ㄥ崟", diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue index 5d3dcd2..b40da99 100644 --- a/src/views/equipmentManagement/upkeep/index.vue +++ b/src/views/equipmentManagement/upkeep/index.vue @@ -35,6 +35,7 @@ total: pagination.total, }" @selection-change="handleSelectionChange" + @pagination="changePage" > <template #maintenanceResultRef="{ row }"> <el-tag v-if="row.maintenanceResult === 1" type="success"> @@ -100,70 +101,78 @@ }; // 琛ㄦ牸閽╁瓙 -const { filters, columns, dataList, pagination, getTableData, resetFilters } = - usePaginationApi(getUpkeepPage, {}, [ - { - label: "璁惧鍚嶇О", - align: "center", - prop: "deviceName", - }, - { - label: "瑙勬牸鍨嬪彿", - align: "center", - prop: "deviceModel", - }, - { - label: "璁″垝淇濆吇鏃ユ湡", - align: "center", - prop: "maintenancePlanTime", - formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"), - }, - { - label: "褰曞叆浜�", - align: "center", - prop: "createUserName", - }, - { - label: "褰曞叆鏃ユ湡", - align: "center", - prop: "createTime", - formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"), - width: 200, - }, - { - label: "瀹為檯淇濆吇浜�", - align: "center", - prop: "maintenanceActuallyName", - }, - { - label: "瀹為檯淇濆吇鏃ユ湡", - align: "center", - prop: "maintenanceActuallyTime", - formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"), - }, - { - label: "淇濆吇缁撴灉", - align: "center", - prop: "maintenanceResult", - dataType: "slot", - slot: "maintenanceResultRef", - }, - { - label: "鐘舵��", - align: "center", - prop: "status", - dataType: "slot", - slot: "statusRef", - }, - { - fixed: "right", - label: "鎿嶄綔", - dataType: "slot", - slot: "operation", - align: "center", - width: "200px", - }, - ]); +const { + filters, + columns, + dataList, + pagination, + getTableData, + resetFilters, + onCurrentChange, +} = usePaginationApi(getUpkeepPage, {}, [ + { + label: "璁惧鍚嶇О", + align: "center", + prop: "deviceName", + }, + { + label: "瑙勬牸鍨嬪彿", + align: "center", + prop: "deviceModel", + }, + { + label: "璁″垝淇濆吇鏃ユ湡", + align: "center", + prop: "maintenancePlanTime", + formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"), + }, + { + label: "褰曞叆浜�", + align: "center", + prop: "createUserName", + }, + { + label: "褰曞叆鏃ユ湡", + align: "center", + prop: "createTime", + formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"), + width: 200, + }, + { + label: "瀹為檯淇濆吇浜�", + align: "center", + prop: "maintenanceActuallyName", + }, + { + label: "瀹為檯淇濆吇鏃ユ湡", + align: "center", + prop: "maintenanceActuallyTime", + formatData: (cell) => + cell ? dayjs(cell).format("YYYY-MM-DD HH:mm:ss") : "-", + }, + { + label: "淇濆吇缁撴灉", + align: "center", + prop: "maintenanceResult", + dataType: "slot", + slot: "maintenanceResultRef", + }, + { + label: "鐘舵��", + align: "center", + prop: "status", + dataType: "slot", + slot: "statusRef", + }, + { + fixed: "right", + label: "鎿嶄綔", + dataType: "slot", + slot: "operation", + align: "center", + width: "200px", + }, +]); // 鏂板淇濆吇 const addMaintain = () => { @@ -181,6 +190,11 @@ planModalRef.value.openEdit(id); }; +const changePage = ({ page }) => { + pagination.currentPage = page; + onCurrentChange(page); +}; + // 鍗曡鍒犻櫎 const delRepairByIds = async (ids) => { ElMessageBox.confirm("纭鍒犻櫎鎶ヤ慨鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", { -- Gitblit v1.9.3