From 4a716a9b964f760ee414f48a6998f6728b3a5c8d Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 01 七月 2025 16:39:41 +0800 Subject: [PATCH] 1.巡检管理频次选择逻辑修改 --- src/views/inspectionManagement/index.vue | 181 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 152 insertions(+), 29 deletions(-) diff --git a/src/views/inspectionManagement/index.vue b/src/views/inspectionManagement/index.vue index bb313fd..028a3f5 100644 --- a/src/views/inspectionManagement/index.vue +++ b/src/views/inspectionManagement/index.vue @@ -1,17 +1,17 @@ <template> <div class="app-container"> <el-form :inline="true" :model="queryParams" class="search-form"> - <el-form-item label="渚涘簲鍟嗗悕绉�"> + <el-form-item label="浠诲姟鍚嶇О"> <el-input - v-model="queryParams.supplierName" + v-model="queryParams.taskName" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" /> </el-form-item> - <el-form-item label="鐓ょ"> + <el-form-item label="璁惧鍚嶇О"> <el-input - v-model="queryParams.coal" + v-model="queryParams.deviceName" placeholder="璇疯緭鍏�" clearable :style="{ width: '100%' }" @@ -36,22 +36,55 @@ :name="tab.name" /> </el-tabs> - <!-- 鎿嶄綔鎸夐挳鍖� --> - <el-space> - <el-button type="primary" :icon="Plus" @click="handleAdd">鏂板缓</el-button> - <el-button type="danger" :icon="Delete" @click="handleDelete">鍒犻櫎</el-button> - <el-button type="info" plain :icon="Download">瀵煎嚭</el-button> - </el-space> + <div style="display: flex;flex-direction: row;justify-content: space-between;" v-if="tabName === 'task'"> + <el-radio-group v-model="activeRadio" @change="radioChange"> + <el-radio-button v-for="tab in radios" + :key="tab.name" + :label="tab.label" + :value="tab.name"/> + </el-radio-group> + <!-- 鎿嶄綔鎸夐挳鍖� --> + <el-space v-if="activeRadio !== 'task'"> + <el-button type="primary" :icon="Plus" @click="handleAdd">鏂板缓</el-button> + <el-button type="danger" :icon="Delete" @click="handleDelete">鍒犻櫎</el-button> + <!-- <el-button type="info" plain :icon="Download">瀵煎嚭</el-button> --> + </el-space> + </div> <div> <div> <ETable :loading="tableLoading" :table-data="tableData" - :columns="columns" + :columns="tableColumns" @selection-change="handleSelectionChange" :show-selection="true" :border="true" - :maxHeight="480" - @edit="handleAdd"></ETable> + style="width: 100%;height: calc(100vh - 30em)" + operationsWidth="130" + :operations="operationsArr" + @edit="handleAdd" + @viewFile="viewFile" + v-if="tabName === 'task'" + ></ETable> + <el-table ref="table" :data="tableData" height="480" v-loading="tableLoading" border v-else style="width: 100%;height: calc(100vh - 25em)"> + <el-table-column label="搴忓彿" type="index" width="60" align="center" /> + <el-table-column prop="deviceName" label="璁惧鍚嶇О" :show-overflow-tooltip="true"> + <template #default="scope"> + {{scope.row.qrCode.deviceName}} + </template> + </el-table-column> + <el-table-column prop="location" label="鎵�鍦ㄤ綅缃弿杩�" :show-overflow-tooltip="true"> + <template #default="scope"> + {{scope.row.qrCode.location}} + </template> + </el-table-column> + <el-table-column prop="scanner" label="宸℃浜�"></el-table-column> + <el-table-column prop="scanTime" label="宸℃鏃堕棿"></el-table-column> + <el-table-column fixed="right" label="鎿嶄綔"> + <template #default="scope"> + <el-button link type="primary" @click="handleAdd(scope.row)">鏌ョ湅闄勪欢</el-button> + </template> + </el-table-column> + </el-table> </div> <pagination v-if="total>0" @@ -65,6 +98,8 @@ </el-card> <form-dia ref="formDia" @closeDia="handleQuery"></form-dia> <qr-code-dia ref="qrCodeDia" @closeDia="handleQuery"></qr-code-dia> + <view-files ref="viewFiles"></view-files> + <view-qr-code-files ref="viewQrCodeFiles"></view-qr-code-files> </div> </template> @@ -76,41 +111,79 @@ import ETable from "@/components/Table/ETable.vue"; import FormDia from "@/views/inspectionManagement/components/formDia.vue"; import QrCodeDia from "@/views/inspectionManagement/components/qrCodeDia.vue"; -import {delInspectionTask, inspectionTaskList} from "@/api/inspectionManagement/index.js"; +import { + delInspectionTask, + delTimingTask, + inspectionTaskList, + timingTaskList +} from "@/api/inspectionManagement/index.js"; +import ViewFiles from "@/views/inspectionManagement/components/viewFiles.vue"; +import {delQrCode, qrCodeList, qrCodeScanRecordList} from "@/api/inspectionUpload/index.js"; +import ViewQrCodeFiles from "@/views/inspectionManagement/components/viewQrCodeFiles.vue"; const formDia = ref() const qrCodeDia = ref() +const viewFiles = ref() +const viewQrCodeFiles = ref() // 鏌ヨ鍙傛暟 const queryParams = reactive({ - supplierName: "", - coal: "", + taskName: "", + deviceName: "", }) // 褰撳墠鏍囩 const activeTab = ref("task"); const tabName = ref("task"); // 鏍囩椤垫暟鎹� const tabs = reactive([ - { name: "task", label: "浠诲姟涓嬪彂" }, + { name: "task", label: "鐢熶骇宸℃" }, + { name: "qrCodeScanRecord", label: "鐜板満宸℃璁板綍" }, +]); +// 鍗曢�夋 +const activeRadio = ref("taskManage"); +const radios = reactive([ + { name: "taskManage", label: "瀹氭椂浠诲姟绠$悊" }, + { name: "task", label: "瀹氭椂浠诲姟璁板綍" }, { name: "qrCode", label: "浜岀淮鐮佺鐞�" }, ]); // 琛ㄦ牸 const selectedRows = ref([]); const tableData = ref([]); +const operationsArr = ref([]); +const tableColumns = ref([]); const tableLoading = ref(false); const total = ref(0); const pageNum = ref(1); const pageSize = ref(10); const columns = ref([ { prop: "taskName", label: "宸℃浠诲姟鍚嶇О", minWidth: 160 }, - { prop: "port", label: "鍦扮偣", minWidth: 120 }, + { prop: "inspectionLocation", label: "鍦扮偣", minWidth: 120 }, { prop: "remarks", label: "澶囨敞", minWidth: 150 }, { prop: "inspector", label: "鎵ц宸℃浜�", minWidth: 150 }, + { prop: "frequencyType", label: "棰戞", minWidth: 150, + formatter: (row, column, cellValue) => { + if (cellValue === 'DAILY') { + return '姣忔棩'; + } else if (cellValue === 'MONTHLY') { + return '姣忔湀'; + } else if (cellValue === 'WEEKLY') { + return '姣忓懆'; + } else { + return '瀛e害' + } + }}, + { prop: "frequencyDetail", label: "寮�濮嬫棩鏈熶笌鏃堕棿", minWidth: 150 }, { prop: "registrant", label: "鐧昏浜�", minWidth: 100 }, { prop: "createTime", label: "鐧昏鏃ユ湡", minWidth: 100 }, ]); +const columns1 = ref([ + { prop: "deviceName", label: "璁惧鍚嶇О", minWidth: 160 }, + { prop: "location", label: "鎵�鍦ㄤ綅缃弿杩�", minWidth: 120 }, + { prop: "createBy", label: "鍒涘缓鑰�", minWidth: 100 }, + { prop: "createTime", label: "鍒涘缓鏃堕棿", minWidth: 100 }, +]); onMounted(() => { - handleTabClick({ props: { name: "task" } }); + radioChange('taskManage'); }); // 鏍囩椤电偣鍑� const handleTabClick = (tab) => { @@ -118,6 +191,19 @@ tableData.value = []; getList(); }; +const radioChange = (value) => { + if (value === "taskManage") { + tableColumns.value = columns.value; + operationsArr.value = ['edit'] + } else if (value === "task") { + tableColumns.value = columns.value; + operationsArr.value = ['viewFile'] + } else { + tableColumns.value = columns1.value; + operationsArr.value = ['edit'] + } + getList(); +} // 鐐瑰嚮鏌ヨ const handleQuery = () => { pageNum.value = 1 @@ -126,12 +212,35 @@ } const getList = () => { tableLoading.value = true; - inspectionTaskList({...queryParams, size: pageSize.value, current: pageNum.value}).then(res => { - console.log(res) - tableLoading.value = false; - tableData.value = res.data.records; - total.value = res.data.total; - }) + if (tabName.value === 'task') { + if (activeRadio.value === "task") { + inspectionTaskList({...queryParams, size: pageSize.value, current: pageNum.value}).then(res => { + tableLoading.value = false; + tableData.value = res.data.records; + total.value = res.data.total; + }) + } else if (activeRadio.value === "qrCode") { + qrCodeList({...queryParams, size: pageSize.value, current: pageNum.value}).then(res => { + tableLoading.value = false; + tableData.value = res.data.records; + total.value = res.data.total; + }) + } else { + timingTaskList({...queryParams, size: pageSize.value, current: pageNum.value}).then(res => { + tableLoading.value = false; + tableData.value = res.data.records; + total.value = res.data.total; + }) + } + } else { + qrCodeScanRecordList({size: pageSize.value, current: pageNum.value}).then(res => { + tableLoading.value = false; + tableData.value = res.data.records; + total.value = res.data.total; + }) + } + + }; // 閲嶇疆鏌ヨ const resetQuery = () => { @@ -147,13 +256,23 @@ const handleAdd = (row) => { const type = row === undefined ? 'add' : 'edit' nextTick(() => { - if (tabName.value === "task") { - formDia.value?.openDialog(type, row) + if (tabName.value === 'task') { + if (activeRadio.value === "taskManage") { + formDia.value?.openDialog(type, row) + } else if (activeRadio.value === "qrCode") { + qrCodeDia.value?.openDialog(type, row) + } } else { - qrCodeDia.value?.openDialog(type, row) + viewQrCodeFiles.value?.openDialog(row) } }) }; +// 鏌ョ湅闄勪欢 +const viewFile = (row) => { + nextTick(() => { + viewFiles.value?.openDialog(row) + }) +} // 鍒犻櫎浠诲姟 const handleDelete = () => { if (selectedRows.value.length === 0) { @@ -162,7 +281,11 @@ } const deleteIds = selectedRows.value.map(item => item.id); proxy.$modal.confirm('鏄惁纭鍒犻櫎鎵�閫夋暟鎹」锛�').then(function() { - return delInspectionTask(deleteIds) + if (activeRadio.value === "taskManage") { + return delTimingTask(deleteIds) + } else { + return delQrCode(deleteIds) + } }).then(() => { handleQuery() proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛") -- Gitblit v1.9.3