From a686251b73f616532d6a9518faad49c7693a6e1c Mon Sep 17 00:00:00 2001 From: lishenao <3065849776@qq.com> Date: 星期二, 01 七月 2025 14:31:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/equipmentManagement/upkeep/index.vue | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 213 insertions(+), 0 deletions(-) diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue new file mode 100644 index 0000000..5d3dcd2 --- /dev/null +++ b/src/views/equipmentManagement/upkeep/index.vue @@ -0,0 +1,213 @@ +<template> + <div class="app-container"> + <div class="table_list"> + <div class="actions"> + <el-text class="mx-1" size="large">璁惧淇濆吇</el-text> + <div> + <el-button + type="primary" + icon="Plus" + :disabled="multipleList.length !== 1" + @click="addMaintain" + > + 鏂板淇濆吇 + </el-button> + <el-button type="success" icon="Van" @click="addPlan"> + 鏂板璁″垝 + </el-button> + <el-button + type="danger" + icon="Delete" + :disabled="multipleList.length <= 0" + > + 鎵归噺鍒犻櫎 + </el-button> + </div> + </div> + <PIMTable + rowKey="id" + isSelection + :column="columns" + :tableData="dataList" + :page="{ + current: pagination.currentPage, + size: pagination.pageSize, + total: pagination.total, + }" + @selection-change="handleSelectionChange" + > + <template #maintenanceResultRef="{ row }"> + <el-tag v-if="row.maintenanceResult === 1" type="success"> + 瀹屽ソ + </el-tag> + <el-tag v-if="row.maintenanceResult === 0" type="danger"> + 缁翠慨 + </el-tag> + </template> + <template #statusRef="{ row }"> + <el-tag v-if="row.status === 1" type="success">瀹岀粨</el-tag> + <el-tag v-if="row.status === 0" type="danger">寰呬繚鍏�</el-tag> + </template> + <template #operation="{ row }"> + <el-button + type="primary" + text + icon="editPen" + @click="editPlan(row.id)" + > + 缂栬緫 + </el-button> + <el-button + type="danger" + text + icon="delete" + @click="delRepairByIds(row.id)" + > + 鍒犻櫎 + </el-button> + </template> + </PIMTable> + </div> + <PlanModal ref="planModalRef" @ok="getTableData" /> + <MaintenanceModal ref="maintainModalRef" @ok="getTableData" /> + </div> +</template> + +<script setup> +import { usePaginationApi } from "@/hooks/usePaginationApi"; +import { getUpkeepPage, delUpkeep } from "@/api/equipmentManagement/upkeep"; +import { onMounted } from "vue"; +import PlanModal from "./Modal/PlanModal.vue"; +import MaintenanceModal from "./Modal/MaintenanceModal.vue"; +import dayjs from "dayjs"; +import { ElMessageBox, ElMessage } from "element-plus"; + +defineOptions({ + name: "璁惧淇濆吇", +}); + +// 璁″垝寮圭獥鎺у埗鍣� +const planModalRef = ref(); +// 淇濆吇寮圭獥鎺у埗鍣� +const maintainModalRef = ref(); + +// 琛ㄦ牸澶氶�夋閫変腑椤� +const multipleList = ref([]); + +// 澶氶�夊悗鍋氫粈涔� +const handleSelectionChange = (selectionList) => { + multipleList.value = selectionList; +}; + +// 琛ㄦ牸閽╁瓙 +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 addMaintain = () => { + const row = multipleList.value[0]; + maintainModalRef.value.open(row.id, row); +}; + +// 鏂板璁″垝 +const addPlan = () => { + planModalRef.value.openModal(); +}; + +// 缂栬緫璁″垝 +const editPlan = (id) => { + planModalRef.value.openEdit(id); +}; + +// 鍗曡鍒犻櫎 +const delRepairByIds = async (ids) => { + ElMessageBox.confirm("纭鍒犻櫎鎶ヤ慨鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(async () => { + const { code } = await delUpkeep(ids); + if (code === 200) { + ElMessage.success("鍒犻櫎鎴愬姛"); + getTableData(); + } + }); +}; + +onMounted(() => { + getTableData(); +}); +</script> + +<style lang="scss" scoped> +.table_list { + margin-top: unset; +} +.actions { + display: flex; + justify-content: space-between; + margin-bottom: 10px; +} +</style> -- Gitblit v1.9.3