From 02409bfbe15f22fc3b5dccadabfd860a660a49d9 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 11 Oct 2025 10:37:14 +0800
Subject: [PATCH] feat: 名称修改
---
src/views/airspace/airspaceEntering.vue | 120 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 69 insertions(+), 51 deletions(-)
diff --git a/src/views/airspace/airspaceEntering.vue b/src/views/airspace/airspaceEntering.vue
index e8bacb2..6a5298a 100644
--- a/src/views/airspace/airspaceEntering.vue
+++ b/src/views/airspace/airspaceEntering.vue
@@ -1,9 +1,9 @@
<template>
<basic-container>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" :permission="permissionList"
- v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" :before-open="beforeOpen"
- @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
- @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+ v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
+ @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
+ @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-button type="primary" icon="el-icon-plus" @click="addAirspace">新增空域</el-button>
</template>
@@ -14,10 +14,16 @@
<template #category="{ row }">
<el-tag>{{ row.categoryName }}</el-tag>
</template>
+
+ <template #menu="{ row }">
+ <el-button type="text" icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
+ <el-button type="text" icon="el-icon-delete" @click="rowDel(row)">删除</el-button>
+ </template>
</avue-crud>
</basic-container>
- <AirspaceMap v-model:show="airspaceMapShow" />
+ <AirspaceMap :title="dialogTitle" :type="dialogType" :curEditRow="curEditRow" v-model:show="airspaceMapShow"
+ @submitClick="searchReset" />
</template>
<script setup>
@@ -28,6 +34,12 @@
editSpotTypeApi,
deleteSpotTypeApi,
} from '@/api/patchManagement/index'
+
+import {
+ airspaceEnteringPage,
+ airspaceEnteringDel
+} from '@/api/airspace/airspace'
+
import { ref, computed, watch } from 'vue'
import { enable, disable } from '@/api/resource/oss'
import { useStore } from 'vuex'
@@ -43,25 +55,24 @@
const creatorOption = ref([])
const loading = ref(true)
const page = ref({
- pageSize: 20,
+ pageSize: 10,
currentPage: 1,
total: 0,
- lotValue: '',
- userName: '',
})
-const selectionList = ref([])
const option = ref({
addBtn: false,
+ editBtn: false,
+ delBtn: false,
tip: false,
searchShow: true,
- searchMenuSpan: 12,
+ searchMenuSpan: 16,
searchMenuPosition: 'right',
border: true,
index: true,
indexLabel: '序号',
indexWidth: 60,
- selection: true,
+ selection: false,
grid: false,
menuWidth: 180,
labelWidth: 100,
@@ -73,10 +84,11 @@
gridBtn: false,
searchShowBtn: false,
columnBtn: false,
+ align: 'center',
column: [
{
label: '名称',
- prop: 'patches_type',
+ prop: 'name',
search: true,
searchSpan: 4,
searchLabelWidth: 54,
@@ -84,7 +96,16 @@
},
{
label: '类型',
- prop: 'patches_type',
+ prop: 'flight_type',
+ type: 'select',
+ dicUrl: `/drone-device-core/airspace/page?current=1&size=10000`,
+ props: {
+ label: 'type_name',
+ value: 'id',
+ },
+ dicFormatter (res) {
+ return res.data.records
+ },
search: true,
searchSpan: 4,
searchLabelWidth: 54,
@@ -92,29 +113,31 @@
},
{
label: '高度',
- prop: 'patches_type',
+ prop: 'height',
rules: [{ required: true, message: '请输入高度', trigger: 'blur' }],
},
{
- label: '面积',
- prop: 'patches_type',
+ label: '面积(㎡)',
+ prop: 'area',
rules: [{ required: true, message: '请输入面积', trigger: 'blur' }],
},
{
label: '管控时段',
- prop: 'patches_type',
- search: true,
- searchSpan: 4,
- rules: [{ required: true, message: '请输入管控时间', trigger: 'blur' }],
+ prop: 'time_period',
+ type: 'daterange',
+ format: 'YYYY-MM-DD',
+ valueFormat: 'YYYY-MM-DD',
+ startPlaceholder: '开始日期',
+ endPlaceholder: '结束日期',
},
{
label: '创建人',
- prop: 'patches_type',
+ prop: 'nick_name',
rules: [{ required: true, message: '请输入创建人', trigger: 'blur' }],
},
{
label: '创建时间',
- prop: 'patches_type',
+ prop: 'create_time',
rules: [{ required: true, message: '请输入创建时间', trigger: 'blur' }],
},
],
@@ -150,7 +173,6 @@
})
}
)
-
// ---------------- computed ----------------
const permission = computed(() => store.getters.permission)
const permissionList = computed(() => ({
@@ -160,15 +182,23 @@
editBtn: validData(permission.value.oss_edit),
}))
-const ids = computed(() => {
- return selectionList.value.map(ele => ele.id).join(',')
-})
-
const airspaceMapShow = ref(false)
+const curEditRow = ref({})
+const dialogTitle = ref('新增空域')
+const dialogType = ref('add')
// ---------------- methods ----------------
const addAirspace = () => {
form.value = {}
+ dialogTitle.value = '新增空域'
+ dialogType.value = 'add'
+ airspaceMapShow.value = true
+}
+
+const handleEdit = (row) => {
+ curEditRow.value = row
+ dialogTitle.value = '编辑空域'
+ dialogType.value = 'edit'
airspaceMapShow.value = true
}
@@ -209,36 +239,23 @@
cancelButtonText: '取消',
type: 'warning',
})
- .then(() => deleteSpotTypeApi([row.id]))
+ .then(() => airspaceEnteringDel(row.id))
.then(() => {
- onLoad(page.value)
ElMessage.success('操作成功!')
+ onLoad(page.value)
})
}
const searchReset = () => {
- page.value.userName = ''
- page.value.lotValue = ''
page.value.currentPage = 1
- page.value.pageSize = 20
+ page.value.pageSize = 10
onLoad(page.value)
}
const searchChange = (params, done) => {
page.value.currentPage = 1
- page.value.lotValue = params.patches_type
- page.value.userName = params.user_name
- onLoad(page.value)
+ onLoad(page.value, params)
done()
-}
-
-const selectionChange = list => {
- // selectionList.value = list
-}
-
-const selectionClear = () => {
- selectionList.value = []
- // crudRef.value.toggleSelection()
}
const handleEnable = row => {
@@ -290,19 +307,20 @@
}
const onLoad = (pageParam, params = {}) => {
- const searchparams = {
+ loading.value = true
+ airspaceEnteringPage({
current: pageParam.currentPage,
size: pageParam.pageSize,
- lotValue: pageParam.lotValue,
- userName: pageParam.userName,
- }
- loading.value = true
- listOfSpotTypesApi(searchparams).then(res => {
+ name: params.name || '',
+ flightType: params.flight_type || '',
+ }).then(res => {
const resData = res.data.data
page.value.total = resData.total
- data.value = resData.records
+ data.value = resData.records.map(item => ({
+ ...item,
+ time_period: item.time_period.split('~'),
+ }))
loading.value = false
- selectionClear()
})
}
--
Gitblit v1.9.3