diff --git a/public/projecthome/active_project_del.png b/public/projecthome/active_project_del.png new file mode 100644 index 0000000..09c78a6 Binary files /dev/null and b/public/projecthome/active_project_del.png differ diff --git a/public/projecthome/active_project_edit.png b/public/projecthome/active_project_edit.png new file mode 100644 index 0000000..ab53b62 Binary files /dev/null and b/public/projecthome/active_project_edit.png differ diff --git a/src/api/demo/projecthome.ts b/src/api/demo/projecthome.ts index 5f7fd39..5bbde2f 100644 --- a/src/api/demo/projecthome.ts +++ b/src/api/demo/projecthome.ts @@ -1,7 +1,11 @@ import { defHttp } from '@/utils/http/axios'; enum Api { GetUavList = '/api/Manage/GetUavList', - AddWorkspace = '/api/Manage/AddWorkspace' + AddWorkspace = '/api/Manage/AddWorkspace', + GetWorkspaceList = '/api/Manage/GetWorkspaceList', + GetWorkSpaceById = '/api/Manage/GetWorkSpaceById', + EditWorkspace = '/api/Manage/EditWorkspace', + DeleteWorkspace = '/api/Manage/DeleteWorkspace', } export function GetUavList(params?) { @@ -15,4 +19,28 @@ export function AddWorkspace(params) { url: Api.AddWorkspace, params }); +} +export function EditWorkspace(params) { + return defHttp.post({ + url: Api.EditWorkspace, + params + }); +} +export function DeleteWorkspace(params: { id: string }) { + return defHttp.post({ + url: `${Api.DeleteWorkspace}?id=${params.id}`, + params, + }); +} +export function GetWorkspaceList(params?) { + return defHttp.get({ + url: Api.GetWorkspaceList, + params + }); +} +export function GetWorkSpaceById(params: { id: string }) { + return defHttp.get({ + url: Api.GetWorkSpaceById, + params + }); } \ No newline at end of file diff --git a/src/views/demo/workmanagement/projecthome/ProjectList/AddProject/index.vue b/src/views/demo/workmanagement/projecthome/ProjectList/AddProject/index.vue index cb53137..5cea3b4 100644 --- a/src/views/demo/workmanagement/projecthome/ProjectList/AddProject/index.vue +++ b/src/views/demo/workmanagement/projecthome/ProjectList/AddProject/index.vue @@ -189,7 +189,7 @@ import { ref, defineProps, defineEmits, onMounted, watch } from "vue" import { CaretDownOutlined } from '@ant-design/icons-vue' import { getAccountList } from '@/api/demo/system'; -import { AddWorkspace } from '@/api/demo/projecthome' +import { AddWorkspace, EditWorkspace } from '@/api/demo/projecthome' import RequestCode from './RequestCode/index.vue' import Weather from './Weather/index.vue' import Record from './Record/index.vue' @@ -202,9 +202,10 @@ import * as mars3d from "mars3d"; import * as Cesium from "mars3d-cesium" import cloneDeep from 'lodash/cloneDeep' import { message } from "ant-design-vue"; +import dayjs from "dayjs"; -const props = defineProps(['addModal', 'modalType','map']) -const emits = defineEmits(['update:addModal']) +const props = defineProps(['addModal', 'modalType','map', 'updateProject']) +const emits = defineEmits(['update:addModal', 'getProjectList']) let graphicLayer watch(() => props.map, (val) => { @@ -229,6 +230,18 @@ watch(() => props.addModal, (newValue) => { let user = userList.value.find(item => item.id == userId) project.value.userIds.push(user) } + }else if(newValue && props.modalType == 'update'){ + let userId = props.updateProject.users.map(item => item.id) + let userlist = userList.value.filter(item => userId.includes(item.id)) + let deviceId = props.updateProject.lasaDronePort.map(item => item.id) + let deviceArray = deviceList.value.filter(item => deviceId.includes(item.id)) + project.value = { + ...props.updateProject.workspace, + requestCodeCutOffTime: props.updateProject.workspace.requestCodeCutOffTime? dayjs(props.updateProject.workspace.requestCodeCutOffTime): '', + userIds: userlist, + lockfly: props.updateProject.lasaSpaceLockFlies, + deviceIds: deviceArray + } } }) @@ -427,12 +440,21 @@ const saveProject = () => { deviceIds: project.value.deviceIds.map(item => item.id), lockfly: project.value.lockfly } - AddWorkspace(result).then(res => { - console.log(res) - message.success('项目添加成功') - childSetting.value.open = false - emits('update:addModal',false) - }) + if(props.modalType == 'insert'){ + AddWorkspace(result).then(res => { + message.success('项目添加成功') + childSetting.value.open = false + emits('update:addModal',false) + emits('getProjectList') + }) + }else if(props.modalType == 'update'){ + EditWorkspace(result).then(res => { + message.success('项目编辑成功') + childSetting.value.open = false + emits('update:addModal',false) + emits('getProjectList') + }) + } } diff --git a/src/views/demo/workmanagement/projecthome/ProjectList/index.vue b/src/views/demo/workmanagement/projecthome/ProjectList/index.vue index 9eb6260..58b743b 100644 --- a/src/views/demo/workmanagement/projecthome/ProjectList/index.vue +++ b/src/views/demo/workmanagement/projecthome/ProjectList/index.vue @@ -9,47 +9,85 @@