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