From ed11371f7f98b0bf4a4212f4311bb39996fdd3be Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期二, 27 十月 2026 14:29:06 +0800
Subject: [PATCH] fix(环保门禁): 上传返回的 fileName 缺 /profile 前缀、url 拼错(IP后无斜杠),前端自己规范成 /profile/upload/... 相对路径
---
src/views/environmentAccess/accessManagement/index.vue | 523 +++++++++++++++++++++++----------------------------------
1 files changed, 209 insertions(+), 314 deletions(-)
diff --git a/src/views/environmentAccess/accessManagement/index.vue b/src/views/environmentAccess/accessManagement/index.vue
index 587dc78..830964c 100644
--- a/src/views/environmentAccess/accessManagement/index.vue
+++ b/src/views/environmentAccess/accessManagement/index.vue
@@ -1,347 +1,242 @@
<template>
<div class="app-container">
- <el-form :model="filters" :inline="true">
- <el-form-item label="闂ㄧ鍚嶇О">
- <el-input
- v-model="filters.name"
- style="width: 240px"
- placeholder="璇疯緭鍏ラ棬绂佸悕绉�"
- clearable
- :prefix-icon="Search"
- @change="getTableData"
- />
- </el-form-item>
- <el-form-item label="闂ㄧ鐘舵��">
- <el-select
- v-model="filters.status"
- style="width: 240px"
- placeholder="璇烽�夋嫨闂ㄧ鐘舵��"
- clearable
- @change="getTableData"
- >
- <el-option label="姝e父" value="1"></el-option>
- <el-option label="寮傚父" value="0"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍖哄煙">
- <el-input
- v-model="filters.area"
- style="width: 240px"
- placeholder="璇疯緭鍏ュ尯鍩�"
- clearable
- :prefix-icon="Search"
- @change="getTableData"
- />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="getTableData">鎼滅储</el-button>
- <el-button @click="resetFilters">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div class="table_list">
- <div class="actions">
- <div></div>
+ <el-tabs v-model="activeTab" @tab-change="handleTabChange">
+ <el-tab-pane label="杩涘嚭鍘傝溅杈�" name="1" />
+ <el-tab-pane label="鍘傚唴杞﹁締浣跨敤" name="2" />
+ <el-tab-pane label="闈為亾璺Щ鍔ㄦ満姊�" name="3" />
+ <el-tab-pane label="璁惧鏁呴殰" name="defect" />
+ </el-tabs>
+
+ <!-- 杞﹁締/鏈烘 -->
+ <template v-if="activeTab !== 'defect'">
+ <div class="search_form">
<div>
- <el-button type="primary" @click="add" icon="Plus"> 鏂板 </el-button>
- <el-button type="danger" icon="Delete" :disabled="multipleList.length <= 0" @click="batchDelete">鎵归噺鍒犻櫎</el-button>
+ <span class="search_title">杞︾墝/鏈烘缂栧彿锛�</span>
+ <el-input v-model="searchForm.plateNo" style="width: 200px" placeholder="璇疯緭鍏�" clearable @change="handleQuery" />
+ <span class="search_title ml10">浣跨敤浜猴細</span>
+ <el-input v-model="searchForm.driverName" style="width: 160px" placeholder="璇疯緭鍏�" clearable @change="handleQuery" />
+ <span class="search_title ml10">鏃堕棿锛�</span>
+ <el-date-picker v-model="searchForm.dateRange" type="daterange" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+ start-placeholder="寮�濮�" end-placeholder="缁撴潫" clearable @change="changeRange" />
+ <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
+ </div>
+ <div>
+ <el-button type="primary" @click="openForm('add')">鏂板</el-button>
+ <el-button type="danger" plain @click="handleDelete">鍒犻櫎</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"
- @pagination="changePage"
- >
- </PIMTable>
- </div>
- <!-- 鏂板缂栬緫寮圭獥 -->
- <el-dialog v-model="dialogVisible" :title="dialogTitle" width="600px">
- <el-form :model="formData" label-width="100px">
- <el-form-item label="闂ㄧ鍚嶇О" required>
- <el-input v-model="formData.name" placeholder="璇疯緭鍏ラ棬绂佸悕绉�"></el-input>
- </el-form-item>
- <el-form-item label="鍖哄煙" required>
- <el-input v-model="formData.area" placeholder="璇疯緭鍏ュ尯鍩�"></el-input>
- </el-form-item>
- <el-form-item label="浣嶇疆" required>
- <el-input v-model="formData.location" placeholder="璇疯緭鍏ュ叿浣撲綅缃�"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵��" required>
- <el-select v-model="formData.status" placeholder="璇烽�夋嫨鐘舵��">
- <el-option label="姝e父" value="1"></el-option>
- <el-option label="寮傚父" value="0"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鎻忚堪">
- <el-input v-model="formData.description" type="textarea" rows="3" placeholder="璇疯緭鍏ユ弿杩颁俊鎭�"></el-input>
- </el-form-item>
+ <div class="table_list">
+ <PIMTable rowKey="id" :column="vehicleColumns" :tableData="tableData" :page="page" :isSelection="true"
+ @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination"></PIMTable>
+ </div>
+ </template>
+
+ <!-- 璁惧鏁呴殰 -->
+ <template v-else>
+ <div class="search_form">
+ <div>
+ <span class="search_title">璁惧鍙拌处ID锛�</span>
+ <el-input v-model="defectSearch.deviceLedgerId" style="width: 200px" placeholder="璇疯緭鍏�" clearable @change="handleQuery" />
+ <el-button type="primary" @click="handleQuery" style="margin-left: 10px">鎼滅储</el-button>
+ </div>
+ <div>
+ <el-button type="primary" @click="openDefect('add')">鏂板</el-button>
+ <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
+ </div>
+ </div>
+ <div class="table_list">
+ <PIMTable rowKey="id" :column="defectColumns" :tableData="tableData" :page="page" :isSelection="true"
+ @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination"></PIMTable>
+ </div>
+ </template>
+
+ <!-- 杞﹁締寮圭獥 -->
+ <el-dialog v-model="dialogVisible" :title="operationType === 'add' ? '鏂板' : '缂栬緫'" width="60%" @close="closeDia">
+ <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+ <el-row :gutter="30">
+ <el-col :span="12"><el-form-item label="杞︾墝/鏈烘缂栧彿锛�" prop="plateNo"><el-input v-model="form.plateNo" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ <el-col :span="12"><el-form-item label="杞﹁締/鏈烘鍨嬪彿锛�" prop="vehicleModel"><el-input v-model="form.vehicleModel" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12"><el-form-item label="浣跨敤浜猴細" prop="driverName"><el-input v-model="form.driverName" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ <el-col :span="12"><el-form-item label="鑱旂郴鐢佃瘽锛�" prop="driverPhone"><el-input v-model="form.driverPhone" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12"><el-form-item label="鐢ㄩ�旓細" prop="usePurpose"><el-input v-model="form.usePurpose" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ <el-col :span="12"><el-form-item label="鏃堕棿锛�" prop="occurTime">
+ <el-date-picker v-model="form.occurTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨" style="width:100%" />
+ </el-form-item></el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12" v-if="activeTab === '1'"><el-form-item label="鏂瑰悜锛�" prop="direction">
+ <el-select v-model="form.direction" placeholder="璇烽�夋嫨" style="width:100%">
+ <el-option label="杩涘巶" :value="1" /><el-option label="鍑哄巶" :value="0" />
+ </el-select>
+ </el-form-item></el-col>
+ <el-col :span="12"><el-form-item label="鐘舵�侊細" prop="status"><el-input v-model="form.status" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="24"><el-form-item label="澶囨敞锛�" prop="remark"><el-input v-model="form.remark" type="textarea" :rows="2" placeholder="璇疯緭鍏�" /></el-form-item></el-col>
+ </el-row>
</el-form>
<template #footer>
- <span class="dialog-footer">
- <el-button @click="dialogVisible = false">鍙栨秷</el-button>
- <el-button type="primary" @click="saveData">纭畾</el-button>
- </span>
+ <el-button type="primary" @click="submitForm">纭</el-button>
+ <el-button @click="closeDia">鍙栨秷</el-button>
+ </template>
+ </el-dialog>
+
+ <!-- 璁惧鏁呴殰寮圭獥 -->
+ <el-dialog v-model="defectVisible" :title="defectType === 'add' ? '鏂板璁惧鏁呴殰' : '缂栬緫璁惧鏁呴殰'" width="50%">
+ <el-form :model="defectForm" label-width="140px" label-position="top">
+ <el-form-item label="璁惧鍙拌处ID锛�"><el-input-number v-model="defectForm.deviceLedgerId" :min="0" style="width:100%" /></el-form-item>
+ <el-form-item label="缂洪櫡鎻忚堪锛�"><el-input v-model="defectForm.defectDescription" type="textarea" :rows="3" /></el-form-item>
+ <el-form-item label="鐘舵�侊細">
+ <el-select v-model="defectForm.status" style="width:100%">
+ <el-option label="鏈秷闄�" value="0" /><el-option label="宸叉秷闄�" value="1" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="娑堥櫎鏃堕棿锛�"><el-date-picker v-model="defectForm.eliminateTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" style="width:100%" /></el-form-item>
+ </el-form>
+ <template #footer>
+ <el-button type="primary" @click="submitDefect">纭</el-button>
+ <el-button @click="defectVisible = false">鍙栨秷</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup>
-import { ref, reactive, computed, onMounted } from 'vue';
-import { Search, Plus, Delete } from '@element-plus/icons-vue';
-import { ElMessage, ElMessageBox } from 'element-plus';
-import dayjs from 'dayjs';
+import { Search } from "@element-plus/icons-vue";
+import { ref, reactive, toRefs, onMounted, getCurrentInstance } from "vue";
+import { ElMessageBox } from "element-plus";
+import {
+ listVehicle, addVehicle, updateVehicle, deleteVehicle,
+ listDefect, addDefect, updateDefect, deleteDefect,
+} from "@/api/environmentAccess/accessVehicle.js";
-// 瀹氫箟鍋囨暟鎹�
-const mockData = [
- { id: 1, name: '涓滈棬闂ㄧ', area: '鐢熶骇鍖�', location: '涓滈棬鍏ュ彛', status: '1', lastUpdate: '2025-12-30 08:30:00', description: '涓昏鐢ㄤ簬鍛樺伐涓婁笅鐝�氳' },
- { id: 2, name: '瑗块棬闂ㄧ', area: '浠撳偍鍖�', location: '瑗块棬鍏ュ彛', status: '1', lastUpdate: '2025-12-30 09:15:00', description: '涓昏鐢ㄤ簬鐗╂祦杞﹁締閫氳' },
- { id: 3, name: '鍗楅棬闂ㄧ', area: '鍔炲叕鍖�', location: '鍗楅棬鍏ュ彛', status: '0', lastUpdate: '2025-12-30 10:20:00', description: '涓昏鐢ㄤ簬璁垮閫氳锛屽綋鍓嶆晠闅�' },
- { id: 4, name: '鍖楅棬闂ㄧ', area: '鐢熶骇鍖�', location: '鍖楅棬鍏ュ彛', status: '1', lastUpdate: '2025-12-30 11:45:00', description: '涓昏鐢ㄤ簬鍘熸潗鏂欒繍杈撹溅杈嗛�氳' },
- { id: 5, name: '涓帶瀹ら棬绂�', area: '涓帶鍖�', location: '涓帶瀹ら棬鍙�', status: '1', lastUpdate: '2025-12-30 13:20:00', description: '浠呴檺鎺堟潈浜哄憳杩涘叆' },
-];
+const { proxy } = getCurrentInstance();
+const activeTab = ref("1");
-// 鍝嶅簲寮忔暟鎹�
-const filters = reactive({
- name: '',
- status: '',
- area: ''
-});
+const dirText = (d) => (d == 1 ? "杩涘巶" : d == 0 ? "鍑哄巶" : "");
+const defectStatusText = (s) => (s == 0 ? "鏈秷闄�" : s == 1 ? "宸叉秷闄�" : (s ?? ""));
-const dataList = ref([]);
-const pagination = reactive({
- currentPage: 1,
- pageSize: 10,
- total: 0
-});
+const vehicleColumns = ref([
+ { label: "杞︾墝/鏈烘缂栧彿", prop: "plateNo" },
+ { label: "杞﹁締/鏈烘鍨嬪彿", prop: "vehicleModel" },
+ { label: "浣跨敤浜�", prop: "driverName" },
+ { label: "鑱旂郴鐢佃瘽", prop: "driverPhone", width: 140 },
+ { label: "鐢ㄩ��", prop: "usePurpose" },
+ { label: "鏃堕棿", prop: "occurTime", width: 170 },
+ { label: "鏂瑰悜", prop: "direction", width: 80, dataType: "tag", formatData: (p) => dirText(p), formatType: () => "primary" },
+ { label: "鐘舵��", prop: "status", width: 90 },
+ { label: "澶囨敞", prop: "remark", showOverflowTooltip: true },
+ {
+ dataType: "action", label: "鎿嶄綔", align: "center", fixed: "right", width: 100,
+ operation: [{ name: "缂栬緫", type: "text", clickFun: (row) => openForm("edit", row) }],
+ },
+]);
-const multipleList = ref([]);
+const defectColumns = ref([
+ { label: "璁惧鍙拌处ID", prop: "deviceLedgerId", width: 120 },
+ { label: "缂洪櫡鎻忚堪", prop: "defectDescription", showOverflowTooltip: true },
+ { label: "鐘舵��", prop: "status", width: 100, dataType: "tag", formatData: (p) => defectStatusText(p), formatType: (p) => (p == 1 ? "success" : "danger") },
+ { label: "娑堥櫎鏃堕棿", prop: "eliminateTime", width: 170 },
+ { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 170 },
+ {
+ dataType: "action", label: "鎿嶄綔", align: "center", fixed: "right", width: 100,
+ operation: [{ name: "缂栬緫", type: "text", clickFun: (row) => openDefect("edit", row) }],
+ },
+]);
+
+const data = reactive({ searchForm: { plateNo: "", driverName: "", dateRange: [], entryDateStart: "", entryDateEnd: "" } });
+const { searchForm } = toRefs(data);
+const defectSearch = ref({ deviceLedgerId: "" });
+
+const tableData = ref([]);
+const selectedRows = ref([]);
+const tableLoading = ref(false);
+const page = reactive({ current: 1, size: 100, total: 0 });
+
+// 杞﹁締寮圭獥
const dialogVisible = ref(false);
-const dialogTitle = ref('鏂板闂ㄧ');
-const formData = reactive({
- id: '',
- name: '',
- area: '',
- location: '',
- status: '1',
- description: ''
-});
+const operationType = ref("add");
+const formRef = ref();
+const form = ref({});
+const rules = { plateNo: [{ required: true, message: "璇疯緭鍏ヨ溅鐗�/鏈烘缂栧彿", trigger: "blur" }] };
-// 琛ㄦ牸鍒楅厤缃�
-const columns = [
- {
- label: '闂ㄧ鍚嶇О',
- align: 'center',
- prop: 'name',
- },
- {
- label: '鍖哄煙',
- align: 'center',
- prop: 'area',
- },
- {
- label: '浣嶇疆',
- align: 'center',
- prop: 'location',
- },
- {
- label: '鐘舵��',
- align: 'center',
- prop: 'status',
- formatter: (row) => {
- return row.status === '1' ? '<el-tag type="success">姝e父</el-tag>' : '<el-tag type="danger">寮傚父</el-tag>';
- }
- },
- {
- label: '鏈�鍚庢洿鏂�',
- align: 'center',
- prop: 'lastUpdate',
- },
- {
- label: '鎻忚堪',
- align: 'center',
- prop: 'description',
- },
- {
- dataType: 'action',
- label: '鎿嶄綔',
- align: 'center',
- fixed: 'right',
- width: 140,
- operation: [
- {
- name: '缂栬緫',
- type: 'text',
- clickFun: (row) => {
- edit(row);
- },
- },
- {
- name: '鍒犻櫎',
- type: 'text',
- clickFun: (row) => {
- deleteRow(row.id);
- },
- },
- ],
- },
-];
+// 鏁呴殰寮圭獥
+const defectVisible = ref(false);
+const defectType = ref("add");
+const defectForm = ref({});
-// 杩囨护鍚庣殑鏁版嵁
-const filteredData = computed(() => {
- return mockData.filter(item => {
- const nameMatch = !filters.name || item.name.includes(filters.name);
- const statusMatch = !filters.status || item.status === filters.status;
- const areaMatch = !filters.area || item.area.includes(filters.area);
- return nameMatch && statusMatch && areaMatch;
- });
-});
-
-// 鑾峰彇琛ㄦ牸鏁版嵁
-const getTableData = () => {
- pagination.total = filteredData.value.length;
- const start = (pagination.currentPage - 1) * pagination.pageSize;
- const end = start + pagination.pageSize;
- dataList.value = filteredData.value.slice(start, end);
+const changeRange = (v) => {
+ searchForm.value.entryDateStart = v?.[0] || "";
+ searchForm.value.entryDateEnd = v?.[1] || "";
+ getList();
};
+const handleTabChange = () => { page.current = 1; getList(); };
+const handleQuery = () => { page.current = 1; getList(); };
+const pagination = (obj) => { page.current = obj.page; page.size = obj.limit; getList(); };
+const handleSelectionChange = (s) => { selectedRows.value = s; };
-// 閲嶇疆杩囨护鍣�
-const resetFilters = () => {
- filters.name = '';
- filters.status = '';
- filters.area = '';
- pagination.currentPage = 1;
- getTableData();
-};
-
-// 鍒嗛〉鍙樺寲
-const changePage = ({ page, limit }) => {
- pagination.currentPage = page;
- pagination.pageSize = limit;
- getTableData();
-};
-
-// 澶氶�夊鐞�
-const handleSelectionChange = (selectionList) => {
- multipleList.value = selectionList;
-};
-
-// 鏂板
-const add = () => {
- dialogTitle.value = '鏂板闂ㄧ';
- formData.id = '';
- formData.name = '';
- formData.area = '';
- formData.location = '';
- formData.status = '1';
- formData.description = '';
- dialogVisible.value = true;
-};
-
-// 缂栬緫
-const edit = (row) => {
- dialogTitle.value = '缂栬緫闂ㄧ';
- formData.id = row.id;
- formData.name = row.name;
- formData.area = row.area;
- formData.location = row.location;
- formData.status = row.status;
- formData.description = row.description;
- dialogVisible.value = true;
-};
-
-// 淇濆瓨鏁版嵁
-const saveData = () => {
- if (!formData.name || !formData.area || !formData.location) {
- ElMessage.warning('璇峰~鍐欏繀濉瓧娈�');
- return;
- }
-
- const currentTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
- if (formData.id) {
- // 缂栬緫
- const index = mockData.findIndex(item => item.id === formData.id);
- if (index !== -1) {
- mockData[index] = {
- ...formData,
- lastUpdate: currentTime
- };
- ElMessage.success('缂栬緫鎴愬姛');
- }
+const getList = () => {
+ tableLoading.value = true;
+ if (activeTab.value === "defect") {
+ listDefect({ ...defectSearch.value, ...page }).then((res) => {
+ tableLoading.value = false;
+ tableData.value = res.data.records;
+ page.total = res.data.total;
+ }).catch(() => { tableLoading.value = false; });
} else {
- // 鏂板
- const newId = Math.max(...mockData.map(item => item.id), 0) + 1;
- mockData.unshift({
- ...formData,
- id: newId,
- lastUpdate: currentTime
- });
- ElMessage.success('鏂板鎴愬姛');
+ const p = { ...searchForm.value, vehicleType: Number(activeTab.value), ...page };
+ delete p.dateRange;
+ listVehicle(p).then((res) => {
+ tableLoading.value = false;
+ tableData.value = res.data.records;
+ page.total = res.data.total;
+ }).catch(() => { tableLoading.value = false; });
}
- dialogVisible.value = false;
- getTableData();
};
-// 鍒犻櫎
-const deleteRow = (id) => {
- ElMessageBox.confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ラ棬绂佽褰�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- const index = mockData.findIndex(item => item.id === id);
- if (index !== -1) {
- mockData.splice(index, 1);
- ElMessage.success('鍒犻櫎鎴愬姛');
- getTableData();
- }
- }).catch(() => {});
+const openForm = (type, row) => {
+ operationType.value = type;
+ form.value = type === "add" ? { vehicleType: Number(activeTab.value) } : { ...row };
+ dialogVisible.value = true;
+};
+const closeDia = () => { proxy.resetForm("formRef"); dialogVisible.value = false; };
+const submitForm = () => {
+ formRef.value.validate((valid) => {
+ if (!valid) return;
+ form.value.vehicleType = Number(activeTab.value);
+ const p = operationType.value === "add" ? addVehicle(form.value) : updateVehicle(form.value);
+ p.then(() => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); closeDia(); getList(); });
+ });
};
-// 鎵归噺鍒犻櫎
-const batchDelete = () => {
- if (multipleList.value.length === 0) {
- ElMessage.warning('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁');
- return;
- }
-
- ElMessageBox.confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎鎵�閫夐棬绂佽褰�, 鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }).then(() => {
- const ids = multipleList.value.map(item => item.id);
- mockData.forEach((item, index) => {
- if (ids.includes(item.id)) {
- mockData.splice(index, 1);
- }
- });
- ElMessage.success('鍒犻櫎鎴愬姛');
- getTableData();
- multipleList.value = [];
- }).catch(() => {});
+const openDefect = (type, row) => {
+ defectType.value = type;
+ defectForm.value = type === "add" ? { status: "0" } : { ...row };
+ defectVisible.value = true;
+};
+const submitDefect = () => {
+ const p = defectType.value === "add" ? addDefect(defectForm.value) : updateDefect(defectForm.value);
+ p.then(() => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); defectVisible.value = false; getList(); });
};
-// 鍒濆鍖栨暟鎹�
-onMounted(() => {
- getTableData();
-});
+const handleDelete = () => {
+ if (!selectedRows.value.length) { proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁"); return; }
+ const ids = selectedRows.value.map((i) => i.id);
+ ElMessageBox.confirm("鏄惁纭鍒犻櫎锛�", "鍒犻櫎", { confirmButtonText: "纭", cancelButtonText: "鍙栨秷", type: "warning" })
+ .then(() => {
+ const p = activeTab.value === "defect" ? deleteDefect(ids) : deleteVehicle(ids);
+ p.then(() => { proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); getList(); });
+ }).catch(() => {});
+};
+
+onMounted(() => { getList(); });
</script>
-<style lang="scss" scoped>
-.table_list {
- margin-top: unset;
-}
-.actions {
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
-}
+<style scoped lang="scss">
+.ml10 { margin-left: 10px; }
+.table_list { margin-top: unset; }
</style>
--
Gitblit v1.9.3