| src/hooks/usePaginationApi.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/collaborativeApproval/approvalProcess/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/equipmentManagement/repair/Form/RepairForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/equipmentManagement/repair/Modal/RepairModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/equipmentManagement/repair/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/hooks/usePaginationApi.jsx
@@ -76,6 +76,7 @@ } async function getTableData() { // 如果这次和上次的filter不同,那么就重置页码 if (!isEqual(unref(filters), lastFilters)) { pagination.currentPage = 1; @@ -87,7 +88,7 @@ current: pagination.currentPage, size: pagination.pageSize }).then(({ code, data, msg, ...rest }) => { if (code == 200) { if (code === 200) { // pagination.currentPage = meta.current_page; // pagination.pageSize = meta.per_page; pagination.total = data.total; @@ -99,7 +100,11 @@ loading.value = false; ElMessage({ message: msg, type: "error" }); } }); }).catch(() => { loading.value = false; ElMessage({ message: msg, type: "error" }); }).finally(() => {}); } function onSizeChange(val) { src/views/collaborativeApproval/approvalProcess/index.vue
@@ -96,14 +96,12 @@ } }, formatType: (params) => { if (params == 0) { if (params === 0) { return "warning"; } else if (params == 1) { return "primary"; } else if (params == 2) { } else if (params === 2) { return "success"; } else if (params == 4) { return ""; } else if (params === 3) { return "danger"; } else { return 'danger'; } src/views/equipmentManagement/repair/Form/RepairForm.vue
@@ -1,8 +1,8 @@ <template> <el-form :model="form" label-width="100px"> <el-form :model="form" ref="formModelRefs" :rules="rules" label-width="100px"> <el-row> <el-col :span="12"> <el-form-item label="设备名称"> <el-form-item label="设备名称" prop="deviceLedgerId"> <el-select v-model="form.deviceLedgerId" @change="setDeviceModel" filterable> <el-option v-for="(item, index) in deviceOptions" @@ -14,7 +14,7 @@ </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="规格型号"> <el-form-item label="规格型号" prop="deviceModel"> <el-input v-model="form.deviceModel" placeholder="请输入规格型号" @@ -23,7 +23,7 @@ </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="报修日期"> <el-form-item label="报修日期" prop="repairTime"> <el-date-picker v-model="form.repairTime" placeholder="请选择报修日期" @@ -36,15 +36,15 @@ </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="报修人"> <el-input v-model="form.repairName" placeholder="请输入报修人" /> <el-form-item label="报修人员" prop="repairName"> <el-input v-model="form.repairName" placeholder="请输入报修人员" /> </el-form-item> </el-col> </el-row> <el-row v-if="id"> <el-col :span="12"> <el-form-item label="报修状态"> <el-select v-model="form.status"> <el-select v-model="form.status" prop="status"> <el-option label="待维修" :value="0"></el-option> <el-option label="完结" :value="1"></el-option> <el-option label="失败" :value="2"></el-option> @@ -53,8 +53,27 @@ </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="报修金额" prop="maintenancePrice"> <el-input-number style="width: 100%" :min="0" v-model="form.maintenancePrice" placeholder="请输入保修金额" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="审批人员" prop="approverId"> <el-select v-model="form.approverId" placeholder="请选择审批人员" clearable> <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" /> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="故障现象"> <el-form-item label="故障现象" prop="remark"> <el-input v-model="form.remark" :rows="2" @@ -68,10 +87,12 @@ </template> <script setup> import {onMounted} from "vue" import dayjs from "dayjs"; import useFormData from "@/hooks/useFormData"; import { getDeviceLedger } from "@/api/equipmentManagement/ledger"; import useUserStore from "@/store/modules/user"; import { userListNoPage } from "@/api/system/user.js"; const { id } = defineProps(["id"]) @@ -81,10 +102,33 @@ const userStore = useUserStore(); const deviceOptions = ref([]); const formModelRefs = ref(null) const userList = ref(null) const loadDeviceName = async () => { const { data } = await getDeviceLedger(); deviceOptions.value = data; }; const rules = { deviceLedgerId: [{ required: true, message: "请选择设备名称", trigger: "change" }], repairTime: [{ required: true, message: "请选择报修日期", trigger: "change" }], repairName: [{ required: true, message: "请输入报修人", trigger: "blur" }], remark: [{ required: true, message: "请输入故障现象", trigger: "blur" }], maintenancePrice: [{ required: true, message: "请输入保修金额", trigger: "blur" }], approverId:[{required: true,message: "请选择审批人", trigger: "change"}] }; // 校验表单是否合规 const submitForm = async () => { if (!formModelRefs.value) return false; try { await formModelRefs.value.validate(); return true; // 表单验证通过 } catch (error) { return false; // 表单验证失败 } }; const { form, resetForm } = useFormData({ @@ -95,6 +139,7 @@ repairName: userStore.nickName, // 报修人 remark: undefined, // 故障现象 status: 0, // 报修状态 maintenancePrice:0, // 保修金额 }); const setDeviceModel = (id) => { @@ -114,17 +159,21 @@ form.repairName = data.repairName; form.remark = data.remark; form.status = data.status; form.maintenancePrice = data.maintenancePrice }; // onMounted(() => { // loadDeviceName(); // }); onMounted(async() => { // loadDeviceName(); let userLists = await userListNoPage(); userList.value = userLists.data; }); defineExpose({ loadDeviceName, resetForm, getForm, setForm, submitForm }); </script> src/views/equipmentManagement/repair/Modal/RepairModal.vue
@@ -38,17 +38,32 @@ } = useModal({ title: "设备报修" }); const sendForm = async () => { loading.value = true; const form = await repairFormRef.value.getForm(); const { code } = id.value ? await editRepair({ id: unref(id), ...form }) : await addRepair(form); if (code == 200) { ElMessage.success(`${id ? "编辑" : "新增"}报修成功`); try { // 开始加载 loading.value = true; // 提交表单并获取校验结果 const submitStatus = await repairFormRef.value.submitForm(); if (!submitStatus) { // 如果表单验证失败,取消加载状态 loading.value = false; return; } // 获取表单数据 const form = await repairFormRef.value.getForm(); // 根据是否有ID决定是编辑还是新增 const { code } = id.value ? await editRepair({ id: unref(id), ...form }) : await addRepair(form); if (code === 200) { ElMessage.success(`${id ? "编辑" : "新增"}报修成功`); emits("ok"); } } catch (error) { } finally { // 无论成功还是失败,都取消加载状态 loading.value = false; closeModal(); emits("ok"); } loading.value = false; }; const openAdd = async () => { src/views/equipmentManagement/repair/index.vue
@@ -71,9 +71,10 @@ <el-button type="primary" icon="Plus" :disabled="multipleList.length !== 1" :disabled="multipleList.length !== 1 || multipleList[0]?.status !== 1" @click="addMaintain" > 新增维修 </el-button> <el-button type="success" icon="Van" @click="addRepair"> @@ -86,7 +87,7 @@ type="danger" icon="Delete" :disabled="multipleList.length <= 0" @click="delRepairByIds(multipleList.map((item) => item.id))" @click="delRepairByIds(multipleList)" > 批量删除 </el-button> @@ -106,9 +107,12 @@ @pagination="changePage" > <template #statusRef="{ row }"> <el-tag v-if="row.status === 2" type="danger">失败</el-tag> <el-tag v-if="row.status === 1" type="success">完结</el-tag> <el-tag v-if="row.status === 0" type="warning">待维修</el-tag> <el-tag v-if="row.status === 5" type="danger">维修失败</el-tag> <el-tag v-if="row.status === 4" type="danger">维修成功</el-tag> <el-tag v-if="row.status === 3" type="danger">维修中</el-tag> <el-tag v-if="row.status === 2" type="danger">审核失败</el-tag> <el-tag v-if="row.status === 1" type="success">审核通过</el-tag> <el-tag v-if="row.status === 0" type="warning">审核中</el-tag> </template> <template #operation="{ row }"> <el-button @@ -116,6 +120,7 @@ text icon="editPen" @click="editRepair(row.id)" :disabled="row.status !== 0" > 编辑 </el-button> @@ -123,7 +128,8 @@ type="danger" text icon="delete" @click="delRepairByIds(row.id)" @click="delRepairByIds(row)" :disabled="row.status !== 0" > 删除 </el-button> @@ -270,6 +276,7 @@ // 新增维修 const addMaintain = () => { const row = multipleList.value[0]; maintainModalRef.value.open(row.id, row); }; @@ -282,15 +289,40 @@ // 单行删除 const delRepairByIds = async (ids) => { let isDel = false if(Array.isArray(ids)){ ids.forEach((item)=>{ if(item.status !== 0){ isDel = true } }) }else{ if(ids.status !== 0){ isDel = true } } if(isDel){ ElMessage.warning("只能删除审核中的报修数据"); return } ElMessageBox.confirm("确认删除报修数据, 此操作不可逆?", "警告", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }).then(async () => { const { code } = await delRepair(ids); let idsList = "" if(Array.isArray(ids)){ idsList = multipleList.value.map((item) => item.id); console.log(idsList) }else{ idsList = ids.id } const { code } = await delRepair(idsList); if (code === 200) { ElMessage.success("删除成功"); getTableData(); await getTableData(); } }); };