添加项目组件

main
zhufu 3 months ago
parent e1c29bd6f7
commit b113366dbe

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

@ -0,0 +1,476 @@
<template>
<div class="add-project">
<div class="title">
<div class="title-span">项目设置</div>
<div class="close-add-modal"></div>
</div>
<div class="add-project-interval"></div>
<div class="add-project-content">
<div class="add-project-title">
<div class="require-mark">*</div>
<div class="add-project-title-content">项目名称项目ID:HERK3Q)</div>
</div>
<div class="add-project-name-input-div">
<a-input class="add-project-name-input" />
</div>
<div class="add-project-title">
<div class="add-project-title-content">项目简介</div>
</div>
<div class="add-project-info-div">
<a-textarea class="add-project-info" :autoSize="false" />
</div>
<div class="add-project-title" style="justify-content: space-between;margin-bottom: 7px;">
<div style="display: flex;align-items: center;">
<div class="require-mark">*</div>
<div class="add-project-title-content">项目作业中心点</div>
<div class="hint"></div>
</div>
<div style="display: flex;align-items: center;">
<div class="location-icon"></div>
<div class="location-span">设置项目中心点</div>
</div>
</div>
<div class="lng-lat">经纬度22.578074372° N113.909930055°E</div>
<div class="setting-item">
<div class="setting-label-div">
<div class="setting-label">申请码加入项目</div>
</div>
<div class="setting-value-div">
<div>已开启</div>
<div class="arrow-icon"></div>
</div>
</div>
<div class="setting-item">
<div class="setting-label-div">
<div class="setting-label">天气阻飞设置</div>
</div>
<div class="setting-value-div">
<div>已开启</div>
<div class="arrow-icon"></div>
</div>
</div>
<div class="setting-item">
<div class="setting-label-div">
<div class="setting-label">多机安全起降</div>
<div class="hint"></div>
</div>
<div class="setting-value-div">
<a-switch class="setting-switch" v-model:checked="checked" />
</div>
</div>
<div class="setting-item">
<div class="setting-label-div">
<div class="setting-label">录制设置</div>
</div>
<div class="setting-value-div">
<div>未开启</div>
<div class="arrow-icon"></div>
</div>
</div>
<div class="setting-item">
<div class="setting-label-div">
<div class="setting-label">分享设置</div>
</div>
<div class="setting-value-div">
<div class="arrow-icon"></div>
</div>
</div>
<div class="setting-item">
<div class="setting-label-div">
<div class="setting-label">设备直传</div>
<div class="hint"></div>
</div>
<div class="setting-value-div">
<a-switch class="setting-switch" v-model:checked="checked" />
</div>
</div>
<div class="setting-item" style="margin-bottom: 12px;">
<div class="setting-label-div">
<div class="setting-label">设备直传-计划设置</div>
<div class="hint"></div>
</div>
<div class="setting-value-div">
<a-switch class="setting-switch" v-model:checked="checked" />
</div>
</div>
<div class="setting-list-item" style="margin-bottom: 15px;">
<div class="setting-list-title-div">
<div class="setting-list-title">项目成员</div>
<div class="setting-list-add">
<div class="add-icon"></div>
添加成员
</div>
</div>
<div class="setting-table-title-div">
<div class="table-title-item" style="width: 119px;">
人员项目呼号
<div class="sort-icon"></div>
</div>
<div class="table-title-item" style="width: 94px;">
项目角色
<div class="hint" style="margin-left: 4px;"></div>
</div>
<div class="table-title-item" style="width: 57px;border-right: 0px;">编辑</div>
</div>
<div class="setting-table-item">
<div class="table-item-col" style="width: 119px;padding-left: 12px; justify-content: start;">
1
<div class="user-icon"></div>
</div>
<div class="table-item-col" style="width: 94px;">
项目管理员
<CaretDownOutlined />
</div>
<div class="table-item-col" style="width: 57px;">
<div class="list-edit" style="margin-right: 7px;"></div>
<div class="list-del list-del-disable"></div>
</div>
</div>
</div>
<div class="setting-list-item" style="margin-bottom: 15px;">
<div class="setting-list-title-div">
<div class="setting-list-title">项目设备</div>
<div class="setting-list-add">
<div class="add-icon"></div>
添加飞行器
</div>
</div>
<div class="setting-table-title-div">
<div class="table-title-item" style="width: 119px;">
人员项目呼号
<div class="sort-icon"></div>
</div>
<div class="table-title-item" style="width: 94px;">
设备型号
</div>
<div class="table-title-item" style="width: 57px;border-right: 0px;">编辑</div>
</div>
<div class="setting-table-item">
<div class="table-item-col" style="width: 119px;padding-left: 12px; justify-content: start;">
M30T
<div class="time-icon"></div>
</div>
<div class="table-item-col" style="width: 94px;">
M30T
</div>
<div class="table-item-col" style="width: 57px;">
<div class="list-edit" style="margin-right: 7px;"></div>
<div class="list-del"></div>
</div>
</div>
<div class="setting-table-item">
<div class="table-item-col" style="width: 119px;padding-left: 12px; justify-content: start;">
M105
<div class="time-icon"></div>
</div>
<div class="table-item-col" style="width: 94px;">
M350 RTK
</div>
<div class="table-item-col" style="width: 57px;">
<div class="list-edit" style="margin-right: 7px;"></div>
<div class="list-del"></div>
</div>
</div>
</div>
</div>
<div class="save-button">完成</div>
</div>
</template>
<script setup lang="ts">
import { ref } from "vue"
import { CaretDownOutlined } from '@ant-design/icons-vue'
const checked = ref(false)
</script>
<style lang="scss" scoped>
.add-project{
position: absolute;
top: 0px;
left: 349px;
width: 300px;
height: 937px;
max-height: calc(100vh - 144px);
background: rgba(13, 14, 21, 0.8);
box-shadow: 0px 10px 30px 0px rgba(0,0,6,0.15), inset 0px 0px 36px 0px rgba(58,87,232,0.73);
border-radius: 6px;
backdrop-filter: blur(3px);
padding: 10px 14px;
.hint{
width: 12px;
height: 12px;
background-image: url('/public/projecthome/hint.png');
background-size: 100% 100%;
margin-left: 6px;
}
.title{
display: flex;
justify-content: space-between;
align-items: center;
height: 37px;
margin-bottom: 7px;
.title-span{
font-family: 'PingFangSC-Medium';
font-weight: 500;
font-size: 16px;
color: #FFFFFF;
line-height: 33px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
}
.close-add-modal{
width: 20px;
height: 20px;
background-image: url('/public/projecthome/close_button.png');
background-size: 100% 100%;
}
}
.add-project-interval{
height: 1px;
box-shadow: 0px 10px 30px 0px rgba(0,0,6,0.15);
border: 1px solid #4E5778;
margin-left: -14px;
margin-right: -14px;
opacity: 0.2;
margin-bottom: 16px;
}
.add-project-content{
max-height: calc(100% - 105px);
overflow: auto;
scrollbar-width: none;
::-webkit-scrollbar {
width: 0;
height: 0;
}
}
.add-project-title{
display: flex;
align-items: center;
font-family: 'PingFangSC-Medium';
font-weight: 500;
font-size: 13px;
margin-bottom: 9px;
line-height: 20px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
.require-mark{
display: flex;
align-items: center;
color: #F1752C;
}
.add-project-title-content{
color: #ffffff;
}
.location-icon{
width: 20px;
height: 20px;
background-image: url('/public/projecthome/location_icon.png');
background-size: 100% 100%;
margin-right: 4px;
}
.location-span{
color: #0A99EB;
}
}
.add-project-name-input-div{
margin-bottom: 13px;
.add-project-name-input{
height: 30px;
background: #151823;
box-shadow: 0px 10px 30px 0px rgba(0,0,6,0.15);
border-radius: 2px;
border: 1px solid #3B4154;
color: #FFFFFF;
line-height: 18px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
font-family: 'PingFangSC-Regular';
font-weight: 400;
font-size: 13px;
}
}
.add-project-info-div{
height: 92px;
margin-bottom: 10px;
.add-project-info{
height: 92px;
background: #151823;
box-shadow: 0px 10px 30px 0px rgba(0,0,6,0.15);
border-radius: 2px;
border: 1px solid #3B4154;
font-family: 'PingFangSC-Regular';
font-weight: 400;
font-size: 13px;
color: #FFFFFF;
line-height: 18px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
}
}
.lng-lat{
font-family: 'PingFangSC-Regular';
font-weight: 400;
font-size: 12px;
color: #858DA1;
line-height: 17px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
margin-bottom: 17px;
}
.setting-item{
height: 30px;
display: flex;
align-items: center;
justify-content: space-between;
font-family: 'PingFangSC-Medium';
font-weight: 500;
font-size: 13px;
color: #FFFFFF;
line-height: 18px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
margin-bottom: 10px;
.setting-label-div{
display: flex;
align-items: center;
}
.setting-value-div{
display: flex;
align-items: center;
.arrow-icon{
width: 8px;
height: 12px;
background-image: url('/public/projecthome/arrow_icon.png');
background-size: 100% 100%;
margin-left: 8px;
}
.setting-switch{
min-width: 40px;
width: 40px;
height: 21px;
background: #ccc;
}
:deep(.ant-switch-checked){
background: #2941B0;
}
}
}
.setting-list-item{
.setting-list-title-div{
display: flex;
justify-content: space-between;
align-items: center;
line-height: 18px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
font-size: 13px;
margin-bottom: 9px;
.setting-list-title{
font-family: 'PingFangSC-Medium';
font-weight: 500;
color: #FFFFFF;
line-height: 18px;
}
.setting-list-add{
display: flex;
align-items: center;
font-family: 'PingFangSC-Regular';
font-weight: 400;
color: #3A57E8;
.add-icon{
width: 16px;
height: 16px;
background-image: url('/public/projecthome/setting_list_add.png');
background-size: 100% 100%;
margin-right: 8px;
}
}
}
.setting-table-title-div{
display: flex;
height: 30px;
background: #2D3342;
border-radius: 2px 2px 0px 0px;
border-top: 1px solid #444B5F;
border-left: 1px solid #444B5F;
border-right: 1px solid #444B5F;
font-family: 'PingFangSC-Regular';
font-weight: 400;
font-size: 13px;
color: #FFFFFF;
line-height: 18px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
.table-title-item{
display: flex;
align-items: center;
justify-content: center;
border-right: 1px solid #444B5F;
.sort-icon{
width: 11px;
height: 14px;
background-image: url('/public/projecthome/table_sort_icon.png');
background-size: 100% 100%;
margin-left: 2px;
}
}
}
.setting-table-item{
display: flex;
height: 35px;
border-bottom: 1px solid #444B5F ;
border-left: 1px solid #444B5F ;
border-right: 1px solid #444B5F ;
font-family: 'PingFangSC-Regular';
font-weight: 400;
font-size: 12px;
color: #FFFFFF;
line-height: 17px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
.table-item-col{
display: flex;
align-items: center;
justify-content: center;
.user-icon{
width: 14px;
height: 14px;
background-image: url('/public/projecthome/user_icon.png');
background-size: 100% 100%;
margin-left: 3px;
}
.time-icon{
width: 16px;
height: 16px;
background-image: url('/public/projecthome/time_icon.png');
background-size: 100% 100%;
margin-left: 4px;
}
.list-edit{
width: 13px;
height: 13px;
background-image: url('/public/projecthome/list_edit.png');
background-size: 100% 100%;
}
.list-del{
width: 16px;
height: 16px;
background-image: url('/public/projecthome/list_del.png');
background-size: 100% 100%;
}
.list-del-disable{
background-image: url('/public/projecthome/list_del_disable.png');
}
}
}
}
.save-button{
display: flex;
align-items: center;
justify-content: center;
height: 40px;
background: #3A57E8;
box-shadow: 0px 10px 30px 0px rgba(0,0,6,0.15);
border-radius: 4px;
font-family: 'PingFangSC-Medium';
font-weight: 500;
font-size: 16px;
color: #FFFFFF;
line-height: 33px;
text-shadow: 0px 10px 30px rgba(0,0,6,0.15);
cursor: pointer;
}
}
</style>

@ -5,7 +5,7 @@
<div class="title-icon"></div>
<div class="title-span">项目列表</div>
</div>
<div class="add"></div>
<div class="add" @click="addProject"></div>
</div>
<div class="interval"></div>
<div class="list">
@ -34,11 +34,19 @@
<div class="item-bottom-interval"></div>
</div>
</div>
<!-- 添加项目组件 -->
<AddProject />
</div>
</template>
<script setup lang="ts">
import {} from "vue"
import AddProject from './AddProject/index.vue'
import { ref } from "vue"
const addModal = ref(false)
const addProject = () => {
addModal.value = true
}
</script>
<style lang="scss" scoped>

Loading…
Cancel
Save