From c4439dd57d5550f9deace69a5facbeb68a81f34e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 20 六月 2025 17:09:00 +0800
Subject: [PATCH] 1.巡检管理-已上传的图片和视频预览
---
src/views/inspectionManagement/index.vue | 181 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 180 insertions(+), 1 deletions(-)
diff --git a/src/views/inspectionManagement/index.vue b/src/views/inspectionManagement/index.vue
index 458acb2..64bc036 100644
--- a/src/views/inspectionManagement/index.vue
+++ b/src/views/inspectionManagement/index.vue
@@ -1,11 +1,190 @@
<template>
<div class="app-container">
-
+ <el-form :inline="true" :model="queryParams" class="search-form">
+ <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.coal"
+ 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-tabs
+ v-model="activeTab"
+ class="info-tabs"
+ @tab-click="handleTabClick"
+ >
+ <el-tab-pane
+ v-for="tab in tabs"
+ :key="tab.name"
+ :label="tab.label"
+ :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>
+ <div>
+ <ETable :loading="tableLoading"
+ :table-data="tableData"
+ :columns="columns"
+ @selection-change="handleSelectionChange"
+ :show-selection="true"
+ :border="true"
+ :maxHeight="480"
+ operationsWidth="130"
+ :operations="['edit', 'viewFile']"
+ @edit="handleAdd"
+ @viewFile="viewFile"
+ ></ETable>
+ </div>
+ <pagination
+ v-if="total>0"
+ :page-num="pageNum"
+ :page-size="pageSize"
+ :total="total"
+ @pagination="handleQuery"
+ :layout="'total, prev, pager, next, jumper'"
+ />
+ </div>
+ </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>
</div>
</template>
<script setup>
+import {Download, Delete, Plus} from "@element-plus/icons-vue";
+import {onMounted, ref} from "vue";
+const { proxy } = getCurrentInstance()
+import Pagination from "@/components/Pagination/index.vue";
+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 ViewFiles from "@/views/inspectionManagement/components/viewFiles.vue";
+const formDia = ref()
+const qrCodeDia = ref()
+const viewFiles = ref()
+// 鏌ヨ鍙傛暟
+const queryParams = reactive({
+ supplierName: "",
+ coal: "",
+})
+// 褰撳墠鏍囩
+const activeTab = ref("task");
+const tabName = ref("task");
+// 鏍囩椤垫暟鎹�
+const tabs = reactive([
+ { name: "task", label: "浠诲姟涓嬪彂" },
+ { name: "qrCode", label: "浜岀淮鐮佺鐞�" },
+]);
+// 琛ㄦ牸
+const selectedRows = ref([]);
+const tableData = 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: "remarks", label: "澶囨敞", minWidth: 150 },
+ { prop: "inspector", label: "鎵ц宸℃浜�", minWidth: 150 },
+ { prop: "registrant", label: "鐧昏浜�", minWidth: 100 },
+ { prop: "createTime", label: "鐧昏鏃ユ湡", minWidth: 100 },
+]);
+
+onMounted(() => {
+ handleTabClick({ props: { name: "task" } });
+});
+// 鏍囩椤电偣鍑�
+const handleTabClick = (tab) => {
+ tabName.value = tab.props.name;
+ tableData.value = [];
+ getList();
+};
+// 鐐瑰嚮鏌ヨ
+const handleQuery = () => {
+ pageNum.value = 1
+ pageSize.value = 10
+ getList()
+}
+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;
+ })
+};
+// 閲嶇疆鏌ヨ
+const resetQuery = () => {
+ Object.keys(queryParams).forEach((key) => {
+ if (key !== "pageNum" && key !== "pageSize") {
+ queryParams[key] = "";
+ }
+ });
+ handleQuery();
+};
+
+// 鏂板銆佺紪杈�
+const handleAdd = (row) => {
+ const type = row === undefined ? 'add' : 'edit'
+ nextTick(() => {
+ if (tabName.value === "task") {
+ formDia.value?.openDialog(type, row)
+ } else {
+ qrCodeDia.value?.openDialog(type, row)
+ }
+ })
+};
+// 鏌ョ湅闄勪欢
+const viewFile = (row) => {
+ nextTick(() => {
+ viewFiles.value?.openDialog(row)
+ })
+}
+// 鍒犻櫎浠诲姟
+const handleDelete = () => {
+ if (selectedRows.value.length === 0) {
+ proxy.$modal.msgWarning("璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁");
+ return;
+ }
+ const deleteIds = selectedRows.value.map(item => item.id);
+ proxy.$modal.confirm('鏄惁纭鍒犻櫎鎵�閫夋暟鎹」锛�').then(function() {
+ return delInspectionTask(deleteIds)
+ }).then(() => {
+ handleQuery()
+ proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+ }).catch(() => {})
+};
+// 閫夋嫨琛�
+const handleSelectionChange = (selection) => {
+ selectedRows.value = selection;
+};
</script>
<style scoped>
--
Gitblit v1.9.3