This commit is contained in:
guoyue 2022-08-01 16:22:24 +08:00
commit c5d7351809
31 changed files with 1482 additions and 759 deletions

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian
* @Date: 2022-04-11 10:11:40
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-28 20:14:40
* @LastEditTime: 2022-08-01 14:42:22
* @Description: 告诉大家这是什么
-->
<!DOCTYPE html>
@ -45,9 +45,9 @@
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.166:8888/renren-admin';
// window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
// window.SITE_CONFIG['apiURL'] = 'http://10.16.5.35:8888/renren-admin';
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.236:8888/renren-admin';
window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
window.SITE_CONFIG['previewUrl'] = 'http://localhost:8080/';
window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
// WebSocket地址
window.SITE_CONFIG['socketURL'] ='ws://localhost:8080/renren-admin/websocket';
</script>

View File

@ -755,6 +755,9 @@ export default {
if (!this.submitFrom.deptContacts) {
this.notFilled.push('部门联系人')
}
if (!this.submitFrom.deptId) {
this.notFilled.push('归属部门')
}
if (!this.submitFrom.deptPhone) {
this.notFilled.push('部门联系人电话')
}

View File

@ -680,6 +680,9 @@ export default {
if (!this.submitFrom.shareCondition) {
this.notFilled.push('共享条件')
}
if (!this.submitFrom.deptId) {
this.notFilled.push('归属部门')
}
if (!this.submitFrom.deptContacts) {
this.notFilled.push('部门联系人')
}

View File

@ -13,6 +13,7 @@
<el-form-item>
<el-button @click="flashTableData">查询</el-button>
<el-button @click="resetTableData">重置</el-button>
<el-button type="primary" @click="addTask">任务新增</el-button>
</el-form-item>
</el-form>
<el-table row-key="id" :data="dataList" border style="width: 100%;">
@ -129,7 +130,9 @@ export default {
return '未知状态'
},
addTask () {
window.open('http://10.132.191.54:10219/skyline/auth/third/client/view')
},
//
resetTableData () {
this.queryData.keyworld = ''

View File

@ -2,7 +2,7 @@
<div class="wrapper">
<el-form :model="dataView">
<div v-for="(item, index) in dataView.children" :key="item">
<div class="dataTitle">{{ item.name }}</div>
<!-- <div class="dataTitle">{{ item.name }}</div> -->
<div v-for="itemson in item.children" :key="itemson.name">
<div class="dataTitleSon">
{{ itemson.name }}
@ -21,7 +21,14 @@
:label="
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
"
v-show="!(itemsonson.name==='平台地址'|| itemsonson.name==='SDK安装包' || itemsonson.name==='接口请求方式' || itemsonson.name==='服务接口')"
v-show="
!(
itemsonson.name === '平台地址' ||
itemsonson.name === 'SDK安装包' ||
itemsonson.name === '接口请求方式' ||
itemsonson.name === '服务接口'
)
"
>
<div
class="videoAndImgCss"
@ -40,33 +47,37 @@
v-for="multipleAdditionsItem in itemsonson.note1"
:key="multipleAdditionsItem"
>
<el-tooltip placement="top">
<div slot="content"> {{
multipleAdditionsItem.question ||
multipleAdditionsItem.type ||
multipleAdditionsItem.name
}}</div>
<el-tooltip placement="top">
<div slot="content">
{{
multipleAdditionsItem.question ||
multipleAdditionsItem.type ||
multipleAdditionsItem.name
}}
</div>
<div>
{{
multipleAdditionsItem.question ||
multipleAdditionsItem.type ||
multipleAdditionsItem.name
}}
</div>
{{
multipleAdditionsItem.question ||
multipleAdditionsItem.type ||
multipleAdditionsItem.name
}}
</div>
</el-tooltip>
<el-tooltip placement="top">
<div slot="content">{{
multipleAdditionsItem.answer ||
multipleAdditionsItem.price ||
multipleAdditionsItem.img
}}</div>
<div slot="content">
{{
multipleAdditionsItem.answer ||
multipleAdditionsItem.price ||
multipleAdditionsItem.img
}}
</div>
<div>
{{
multipleAdditionsItem.answer ||
multipleAdditionsItem.price ||
multipleAdditionsItem.img
}}
</div>
{{
multipleAdditionsItem.answer ||
multipleAdditionsItem.price ||
multipleAdditionsItem.img
}}
</div>
</el-tooltip>
<el-tooltip placement="top">
<div slot="content">{{ multipleAdditionsItem.desc }}</div>
@ -78,9 +89,9 @@
<el-tooltip v-else placement="top">
<div slot="content">{{ itemsonson.note1 }}</div>
<el-input
v-model="itemsonson.note1"
disabled="disabled"
></el-input>
v-model="itemsonson.note1"
disabled="disabled"
></el-input>
</el-tooltip>
</el-form-item>
<el-form-item
@ -89,15 +100,23 @@
:label="
itemsonson.type != ' multipleAdditions' ? itemsonson.name : ''
"
v-show="((itemsonson.name==='平台地址'&&showDocking)|| (itemsonson.name==='SDK安装包'&&showSDK) || (itemsonson.name==='接口请求方式'&&showInterface) || (itemsonson.name==='服务接口'&&showInterface))"
v-show="
(itemsonson.name === '平台地址' && showDocking) ||
(itemsonson.name === 'SDK安装包' && showSDK) ||
(itemsonson.name === '接口请求方式' && showInterface) ||
(itemsonson.name === '服务接口' && showInterface)
"
>
<el-input
<el-input
v-model="itemsonson.note1"
disabled="disabled"
></el-input>
</el-form-item>
</div>
<div v-else-if="itemson.name === '算法优势'">
<div
v-else-if="itemson.name === '算法优势'"
style="margin-bottom: 20px"
>
<div
v-for="itemDataForm in dataForm.infoList"
:key="itemDataForm.attrType"
@ -121,7 +140,10 @@
</div>
</div>
</div>
<div v-else-if="itemson.name === '应用场景'">
<div
v-else-if="itemson.name === '应用场景'"
style="margin-bottom: 20px"
>
<div
v-for="itemDataForm in dataForm.infoList"
:key="itemDataForm.attrType"
@ -146,7 +168,10 @@
</div>
</div>
</div>
<div v-else-if="itemson.name === '功能介绍'">
<div
v-else-if="itemson.name === '功能介绍'"
style="margin-bottom: 20px"
>
<div
v-for="itemDataForm in dataForm.infoList"
:key="itemDataForm.attrType"
@ -224,34 +249,34 @@ export default {
itemViewSon.children.map((itemSon, indexSon) => {
// console.log('itemSon', itemSon)
if (itemSon.name.indexOf('描述') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.description
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.description
} else if (itemSon.name.indexOf('名称') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.name
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.name
} else if (itemSon.name.indexOf('能力类型') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.type
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.type
} else if (itemSon.name.indexOf('共享条件') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.shareCondition
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.shareCondition
} else if (itemSon.name === '部门联系人') {
console.log('itemSon.name', itemSon.name)
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.deptContacts
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.deptContacts
} else if (itemSon.name.indexOf('属部门') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.unit
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.unit
} else if (itemSon.name === '部门联系人电话') {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.deptPhone
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.deptPhone
} else if (
itemSon.name === '关联组件信息' &&
item.attrType === '关联组件信息'
@ -300,42 +325,42 @@ export default {
itemViewSon.children.map((itemSon, indexSon) => {
console.log('itemSon', itemSon)
if (itemSon.name.indexOf('描述') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.description
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.description
} else if (itemSon.name.indexOf('名称') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.name
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.name
} else if (itemSon.name.indexOf('共享条件') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.shareCondition
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.shareCondition
} else if (itemSon.name.indexOf('共享方式') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.shareMode
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.shareMode
} else if (itemSon.name.indexOf('共享类型') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.shareType
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.shareType
} else if (itemSon.name === '部门联系人') {
console.log('itemSon.name', itemSon.name)
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.deptContacts
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.deptContacts
} else if (itemSon.name.indexOf('属部门') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.unit
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.unit
} else if (itemSon.name === '部门联系人电话') {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.deptPhone
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.deptPhone
} else if (itemSon.name.indexOf('接口请求方式') != -1) {
this.dataView.children[indexView].children[indexViewSon].children[
indexSon
].note1 = this.dataForm.apiMethodType
this.dataView.children[indexView].children[
indexViewSon
].children[indexSon].note1 = this.dataForm.apiMethodType
} else if (
itemSon.name === '来源应用' &&
item.attrType === '来源应用'
@ -375,11 +400,11 @@ export default {
this.dataView
)
// -使-3
this.dataView.children.map(val => {
this.dataView.children.map((val) => {
if (val.name === '部署与使用') {
val.children.map(val => {
val.children.map((val) => {
if (val.name === '使用方式') {
val.children.map(val => {
val.children.map((val) => {
if (val.name === '使用方式') {
if (val.note1 === 'SDK') {
this.showSDK = true
@ -482,7 +507,7 @@ export default {
color: #333333;
font-size: 22px;
margin-bottom: 20px;
background: url("~@/assets/img/sj-jx.png") no-repeat;
background: url('~@/assets/img/sj-jx.png') no-repeat;
background-position-x: 15px;
}
.multipleAdditionsClass {

View File

@ -1,19 +1,21 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-28 14:32:04
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-01 11:02:21
* @Description: 数据资源参数配置
*/
//const newLocation = 'qingdao'
const newLocation = 'qingdao'
// const newLocation = 'baotou'
const newLocation = 'xihaian'
// const newLocation = 'xihaian'
//
const whoShow = {}
const launchedDataNumObject = {}
//
const navListManagement = {}
//
const uavAndIndividualSoldier = {}
//
const infrastructure = {}
//
@ -149,6 +151,341 @@ else if (newLocation === 'baotou') {
// xihaian
else if (newLocation === 'xihaian') {
whoShow.itShowXiHaiAn = true
infrastructure.deptName = '西海岸新区大数据发展'
// infrastructure.deptId = '1067246875800000066'
uavAndIndividualSoldier.num = 4
uavAndIndividualSoldier.uavList = [
{
name: '经纬 M300 RTK-1',
url: '',
details: [
{
name: '飞行器',
attribute: {
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
对称电机轴距: '895 mm',
'重量(含下置单云台支架):空机重量(不含电池)':
'3.6 kg空机重量含双电池6.3 kg',
单云台减震球最大负重: '930g',
最大起飞重量: '9 kg',
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
'发射功率EIRP':
'2.4000-2.4835 GHz29.5 dBmFCC、18.5dBmCE、18.5 dBmSRRC、18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC、12.5dBmCE、28.5 dBmSRRC',
'悬停精度P-GPS':
'垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
'RTK 位置精度':
'在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
最大倾斜下降速度: 'S 模式7 m/s',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大飞行海拔高度:
'5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大飞行时间: '55 min',
'适配 DJI 云台':
'禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
支持云台安装方式:
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'IP 防护等级': 'IP45',
GNSS: 'GPS+GLONASS+BeiDou+Galileo',
工作环境温度: '-20°C 至 50°C',
},
},
{
name: '遥控器',
attribute: {
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'最大信号有效距离(无干扰、无遮挡)':
'NCC/FCC15 km、CE/MIC8 km、SRRC8 km',
'等效全向辐射功率EIRP':
'2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC',
外置电池:
'名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C',
内置电池:
'类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)',
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C',
},
},
{
name: '视觉系统',
attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境:
'表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
},
},
{
name: '红外感知系统',
attribute: {
障碍物感知范围: '0.1-8 m',
FOV: '30°±15°',
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
},
},
{
name: '上下补光灯',
attribute: {
有效照明距离: '5 m',
},
},
{
name: 'FPV摄像头',
attribute: {
分辨率: '960p',
FOV: '145°',
帧率: '30 fps',
},
},
{
name: '智能飞行电池',
attribute: {
型号: 'TB60',
容量: '5935 mAh',
电压: '52.8 V',
电池类型: 'LiPo 12S',
能量: '274 Wh',
电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃',
充电环境温度:
'-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间:
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
},
},
{
name: 'BS60智能电池箱',
attribute: {
外形尺寸: '501×403×252 mm',
空箱重量: '8.37 kg',
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
输入电压: '100-120 VAC50-60 Hz / 220-240 VAC50-60 Hz',
最大输入功率: '1070 W',
输出功率: '100-120 V750 W、220-240 V992 W',
工作环境温度: '-20℃ 至 40℃',
},
},
],
},
{
name: '经纬 M300 RTK-2',
url: '',
details: [
{
name: '飞行器',
attribute: {
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
对称电机轴距: '895 mm',
'重量(含下置单云台支架):空机重量(不含电池)':
'3.6 kg空机重量含双电池6.3 kg',
单云台减震球最大负重: '930g',
最大起飞重量: '9 kg',
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
'发射功率EIRP':
'2.4000-2.4835 GHz29.5 dBmFCC、18.5dBmCE、18.5 dBmSRRC、18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC、12.5dBmCE、28.5 dBmSRRC',
'悬停精度P-GPS':
'垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
'RTK 位置精度':
'在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
最大倾斜下降速度: 'S 模式7 m/s',
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
最大飞行海拔高度:
'5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
最大可承受风速: '15m/s起飞及降落阶段为12m/s',
最大飞行时间: '55 min',
'适配 DJI 云台':
'禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
支持云台安装方式:
'下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'IP 防护等级': 'IP45',
GNSS: 'GPS+GLONASS+BeiDou+Galileo',
工作环境温度: '-20°C 至 50°C',
},
},
{
name: '遥控器',
attribute: {
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
'最大信号有效距离(无干扰、无遮挡)':
'NCC/FCC15 km、CE/MIC8 km、SRRC8 km',
'等效全向辐射功率EIRP':
'2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC',
外置电池:
'名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C',
内置电池:
'类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)',
续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
'USB-A 接口供电电压/电流': '5 V / 1.5 A',
工作环境温度: '-20° 至 40° C',
},
},
{
name: '视觉系统',
attribute: {
障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
FOV: '前后下65°H50°V、左右上75°H60°V',
使用环境:
'表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
},
},
{
name: '红外感知系统',
attribute: {
障碍物感知范围: '0.1-8 m',
FOV: '30°±15°',
使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
},
},
{
name: '上下补光灯',
attribute: {
有效照明距离: '5 m',
},
},
{
name: 'FPV摄像头',
attribute: {
分辨率: '960p',
FOV: '145°',
帧率: '30 fps',
},
},
{
name: '智能飞行电池',
attribute: {
型号: 'TB60',
容量: '5935 mAh',
电压: '52.8 V',
电池类型: 'LiPo 12S',
能量: '274 Wh',
电池整体重量: '约 1.35 kg',
工作环境温度: '-20℃ 至 50℃',
理想存放环境温度: '22℃ 至 30℃',
充电环境温度:
'-20°C 至 40°C当环境温度低于 5°C时电池会启动自加热功能在低温环境下充电有可能会降低电池使用寿命',
充电时间:
'使用 BS60 智能电池箱时,使用 220 V 电源:完全充满两块 TB60 智能飞行电池约需 60 分钟,从 20% 充到 90% 约需 30 分钟;使用 110 V 电源:完全充满两块 TB60 智能飞行电池约需 70 分钟,从 20% 充到 90% 约需 40 分钟',
},
},
{
name: 'BS60智能电池箱',
attribute: {
外形尺寸: '501×403×252 mm',
空箱重量: '8.37 kg',
可放置物品: 'TB60 智能飞行电池 8 块、WB37 智能电池 4 块',
输入电压: '100-120 VAC50-60 Hz / 220-240 VAC50-60 Hz',
最大输入功率: '1070 W',
输出功率: '100-120 V750 W、220-240 V992 W',
工作环境温度: '-20℃ 至 40℃',
},
},
],
},
]
uavAndIndividualSoldier.individualSoldier = [
{
name: 'T950天通-1',
type: '单兵设备',
details: {
基本信息: {
外观设计: '172X81X15.7(不含天线)336g',
操作系统: 'Android P',
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头:
'后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万',
传感器相关:
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h',
},
制式频段: {
卫星频段: '天通一号卫星',
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1N28N41, N78N79',
双卡: '双nano卡(卫星卡+运营商全网通卡)',
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
VOLTE: '支持',
},
IO接口: {
USB接口类型: 'TYPE-C USB3.0支持OTG功能',
耳机接口: '3.5mm,美标',
存储卡: '支持TF卡扩展',
},
其它功能: {
蓝牙: 'V5.0',
定位: 'GPS、北斗混合定位、单北斗模式',
NFC: '支持',
充电方式: '三种充电方式(线充、座充、磁吸充电)',
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
},
环境适应性: {
工作温度: '-20°~ 60°',
存储温度: '-40°~ 80°',
高温高湿: '(95±3)%(≧40°)24小时',
防护等级: 'IP68',
},
},
},
{
name: 'T950天通-2',
type: '单兵设备',
details: {
基本信息: {
外观设计: '172X81X15.7(不含天线)336g',
操作系统: 'Android P',
CPU: '展锐 Makalu T7510;虎贲T710+春藤IVY510',
存储: '标配:6GB ROM +128G RAM',
显示屏: '6.52吋水滴屏;HD+1600*720(20:9)',
后置摄像头:
'后置为4800万主摄+200万微距+200万红外三摄组合支持闪光灯',
前置摄像头: '1600万',
传感器相关:
'指纹|光线传感器|距离传感器|加速度传感器|地磁传感器|陀螺仪|气压传感器',
WLAN: '802.11a/b/g/n/AC 支持MIMO',
电池: '6000mAh@3.8V内置不可拆卸支持18W快充',
工作时间: '待机时长180h卫星通话时长16h',
},
制式频段: {
卫星频段: '天通一号卫星',
频段: '2G:GSM 850/900/1800/1900;3G:WCDMA850/900/1900/2100;4G:TD-LTE B38/39/40/41;4G:FDD-LTE B1/3/5/7/8;5G: N1N28N41, N78N79',
双卡: '双nano卡(卫星卡+运营商全网通卡)',
CA: 'B1+B3 下行 2CA(电信);B40/41带内上下行 2CA',
VOLTE: '支持',
},
IO接口: {
USB接口类型: 'TYPE-C USB3.0支持OTG功能',
耳机接口: '3.5mm,美标',
存储卡: '支持TF卡扩展',
},
其它功能: {
蓝牙: 'V5.0',
定位: 'GPS、北斗混合定位、单北斗模式',
NFC: '支持',
充电方式: '三种充电方式(线充、座充、磁吸充电)',
按键: '开机键、音量+/-、 SOS(侧面)、PTT按键',
},
环境适应性: {
工作温度: '-20°~ 60°',
存储温度: '-40°~ 80°',
高温高湿: '(95±3)%(≧40°)24小时',
防护等级: 'IP68',
},
},
},
]
navListManagement.navList = [
{ name: '共享门户', key: 'home' },
{ name: '能力集市', key: 'DetailsPageconetent' },
@ -164,7 +501,7 @@ else if (newLocation === 'xihaian') {
footerDataList.footerList = {
company: {
left: '青岛西海岸新区大数据发展促进局建设',
right: 'v0.8.1.5',
right: 'v0.8.3.3',
},
address: [
{

View File

@ -122,6 +122,9 @@
})
break
case '基础设施':
if (uavAndIndividualSoldier.num) {
val.count = val.count - 0 + uavAndIndividualSoldier.num
}
dataList.value.dataList.push({
organization: '个',
type: '基础设施',

View File

@ -85,7 +85,7 @@
import * as moment from 'moment'
import * as echarts from 'echarts'
import { applyAmount, trafficStatistics } from '@/api/abilityStatistics'
const quarter = ref(['近七天', '近14天', '月度'])
const quarter = ref(['近七天', '近十四天', '月度'])
let startDate = ref('')
let endDate = ref('')
@ -128,7 +128,7 @@
hebdomad()
swtichname.value = '日'
break
case '近14天':
case '近十四天':
fortnight()
swtichname.value = '14日'
break

View File

@ -1,8 +1,8 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-06-19 10:15:33
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-22 17:03:21
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-30 17:33:54
* @Description: 告诉大家这是什么
-->
<template>
@ -87,6 +87,11 @@
myDataList.value.forEach((val) => {
const obj = res.data.data.filter((item) => item.type === val.title)[0]
if (obj) {
if (obj.type == '视频资源数量') {
if (uavAndIndividualSoldier.num) {
obj.amount = obj.amount - 0 + uavAndIndividualSoldier.num
}
}
val.snum = obj.amount
}
})

View File

@ -429,6 +429,9 @@
if (!dataFrom.value.shareCondition) {
notFilled.value.push('共享条件')
}
if (!dataFrom.value.deptId) {
notFilled.value.push('归属部门')
}
if (!dataFrom.value.deptContacts) {
notFilled.value.push('部门联系人')
}
@ -677,7 +680,9 @@
break
case '归属部门':
dataFrom.value.deptId = obj.attrValue
dataFrom.value.deptName = obj.attrValueTwo.label
if (obj.attrValueTwo) {
dataFrom.value.deptName = obj.attrValueTwo.label
}
break
case '部门联系人':
dataFrom.value.deptContacts = obj.attrValue

View File

@ -323,6 +323,9 @@
if (!dataFrom.value.description) {
notFilled.value.push('应用描述')
}
if (!dataFrom.value.deptId) {
notFilled.value.push('归属部门')
}
if (!dataFrom.value.deptContacts) {
notFilled.value.push('部门联系人')
}
@ -522,7 +525,9 @@
break
case '归属部门':
dataFrom.value.deptId = obj.attrValue
dataFrom.value.deptName = obj.attrValueTwo.label
if (obj.attrValueTwo) {
dataFrom.value.deptName = obj.attrValueTwo.label
}
break
case '部门联系人':
dataFrom.value.deptContacts = obj.attrValue

View File

@ -399,6 +399,9 @@
if (!dataFrom.value.shareCondition) {
notFilled.value.push('共享条件')
}
if (!dataFrom.value.deptId) {
notFilled.value.push('归属部门')
}
if (!dataFrom.value.deptContacts) {
notFilled.value.push('部门联系人')
}
@ -600,7 +603,9 @@
break
case '归属部门':
dataFrom.value.deptId = obj.attrValue
dataFrom.value.deptName = obj.attrValueTwo.label
if (obj.attrValueTwo) {
dataFrom.value.deptName = obj.attrValueTwo.label
}
break
case '部门联系人':
dataFrom.value.deptContacts = obj.attrValue

View File

@ -398,6 +398,9 @@
if (!dataFrom.value.shareCondition) {
notFilled.value.push('共享条件')
}
if (!dataFrom.value.deptId) {
notFilled.value.push('归属部门')
}
if (!dataFrom.value.deptContacts) {
notFilled.value.push('部门联系人')
}
@ -599,7 +602,9 @@
break
case '归属部门':
dataFrom.value.deptId = obj.attrValue
dataFrom.value.deptName = obj.attrValueTwo.label
if (obj.attrValueTwo) {
dataFrom.value.deptName = obj.attrValueTwo.label
}
break
case '部门联系人':
dataFrom.value.deptContacts = obj.attrValue

View File

@ -298,6 +298,9 @@
if (!dataFrom.value.shareCondition) {
notFilled.value.push('共享条件')
}
if (!dataFrom.value.deptId) {
notFilled.value.push('归属部门')
}
if (!dataFrom.value.deptContacts) {
notFilled.value.push('部门联系人')
}
@ -496,7 +499,9 @@
break
case '归属部门':
dataFrom.value.deptId = obj.attrValue
dataFrom.value.deptName = obj.attrValueTwo.label
if (obj.attrValueTwo) {
dataFrom.value.deptName = obj.attrValueTwo.label
}
break
case '部门联系人':
dataFrom.value.deptContacts = obj.attrValue

View File

@ -477,6 +477,8 @@
:render="(item) => item.title"
@change="handleChangeOther"
@selectChange="handleSelectChangeOther"
show-search
:filter-option="filterOptionTransfer"
/>
</div>
</a-modal>
@ -927,7 +929,7 @@
mockDataOther.value.push({
key: val.id,
title: val.name,
description: val.id,
description: val.name,
})
})
})
@ -948,7 +950,7 @@
mockDataOther.value.push({
key: val.id,
title: val.name,
description: val.id,
description: val.name,
})
})
})
@ -978,6 +980,11 @@
console.log('targetSelectedKeys: ', targetSelectedKeys, sourceSelectedKeys)
}
const filterOptionTransfer = (inputValue, option) => {
console.log(option, 'option')
return option.description.indexOf(inputValue) > -1
}
const handleOk = (e) => {
console.log(e)
visibleAssociatedApplicationOther.value = false

View File

@ -85,7 +85,9 @@
display: flex;
align-items: center;
margin-bottom: 20px;
line-height: 20px;
div:last-child {
line-height: 34px;
}
}
.content-bottom {
display: flex;

View File

@ -89,7 +89,9 @@
display: flex;
align-items: center;
margin-bottom: 20px;
line-height: 20px;
div:last-child {
line-height: 34px;
}
}
.content-bottom {

View File

@ -85,7 +85,9 @@
display: flex;
align-items: center;
margin-bottom: 0.2rem;
line-height: 0.2rem;
div:last-child {
line-height: 0.34rem;
}
}
.content-bottom {
display: flex;

View File

@ -85,7 +85,9 @@
display: flex;
align-items: center;
margin-bottom: 20px;
line-height: 20px;
div:last-child {
line-height: 34px;
}
}
.content-bottom {
display: flex;

View File

@ -85,7 +85,9 @@
display: flex;
align-items: center;
margin-bottom: 0.2rem;
line-height: 0.2rem;
div:last-child {
line-height: 34px;
}
}
.content-bottom {
display: flex;

View File

@ -31,7 +31,7 @@
? 'kfzj'
: val.componentType == '业务组件'
? 'ywzj'
: ''
: 'znsf'
"
></div>
<div class="text">

View File

@ -269,14 +269,14 @@
class="resultListSearchInput"
/>
<button class="button-reset" @click="chongzhi()">重置</button>
<button
<!-- <button
v-if="Cardsname == '应用资源'"
class="button-reset"
@click="applyAll()"
style="margin-left: 0.1rem"
>
全部申请
</button>
</button> -->
<div class="hengxian"></div>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -151,7 +151,7 @@
// eslint-disable-next-line no-undef
const navList = ref(navListManagement.navList)
console.log('navList------------>', navList);
console.log('navList------------>', navList)
const props = defineProps({
showView: { type: String, default: '' },
@ -422,6 +422,9 @@
padding: 0 0.04rem 0 0.1rem;
border-left: 0.01rem solid #666;
}
.icon {
cursor: pointer;
}
}
}
.white {
@ -430,6 +433,9 @@
.name {
color: #0058e1;
}
.icon {
cursor: pointer;
}
.nav {
color: #000;
}

View File

@ -32,7 +32,7 @@
<video-surveillance></video-surveillance>
</div>
<!-- 功能行 -->
<div class="infrastructrue-content">
<div class="infrastructrue-content" v-if="!wrjFlag">
<!-- 表格数据统计 -->
<div class="contentNum">
<p>
@ -78,7 +78,7 @@
</div>
</div>
<!-- 表格 -->
<div class="infrastructrue-table">
<div class="infrastructrue-table" v-if="!wrjFlag">
<a-table
class="ant-table-striped"
:dataSource="dataSource"
@ -114,10 +114,39 @@
</template>
</a-table>
</div>
<div class="infrastructrue-table" v-else-if="isXiHaiAn && wrjFlag">
<a-table
class="ant-table-striped"
:dataSource="dataSource2"
:columns="columns2"
:scroll="{ y: tableHeight }"
rowKey="channelId"
:rowClassName="
(record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:pagination="dataSource2.length"
>
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'operation'">
<a
@click="goToWrj(record)"
style="margin-right: 10px"
v-if="record.type !== '单兵设备'"
>
控制台
</a>
<a @click="goToApply(record)" style="margin-right: 10px" v-else>
申请
</a>
<a @click="showWrj(record)">详情</a>
</template>
</template>
</a-table>
</div>
<a-modal
v-model:visible="visible"
title="视频预览"
:width="750"
:width="950"
destroyOnClose
>
<template #footer></template>
@ -127,6 +156,63 @@
</div>
</div>
</a-modal>
<a-modal
wrapClassName="wrj"
v-model:visible="wrjVisible"
:width="1000"
:title="wrjName + '详情'"
@ok="wrjVisible = false"
>
<template v-if="dataSource2[0].type !== '单兵设备'">
<div v-for="wrj in wrjData" :key="wrj.name">
<div
style="
font-size: 20px;
font-weight: 600;
margin: 10px 0;
text-align: center;
"
>
{{ wrj.name }}
</div>
<div
style="padding: 0 30px"
v-for="(value, key) in wrj.attribute"
:key="value"
>
{{ key + '' + value }}
</div>
</div>
</template>
<template v-else>
<div v-for="(db, key) in wrjData" :key="key">
<template v-if="typeof db == 'object'">
<div
style="
font-size: 20px;
font-weight: 600;
margin: 10px 0;
text-align: center;
"
>
{{ key }}
</div>
<div
style="padding: 0 30px"
v-for="(value, key2) in db"
:key="value"
>
{{ key2 + '' + value }}
</div>
</template>
<template v-else>
<div style="padding: 0 30px">
{{ key + '' + db }}
</div>
</template>
</div>
</template>
</a-modal>
</div>
</template>
<script setup>
@ -231,6 +317,43 @@
content: [],
},
])
const wrjVisible = ref(false)
const wrjName = ref('')
const wrjData = ref([])
const showWrj = (data) => {
wrjName.value = data.wrjName
wrjData.value = data.details
wrjVisible.value = true
}
const goToWrj = (data) => {
window.open(data.url)
}
const goToApply = (data) => {
console.log(data, dept)
let arr = [
{
arr: [
{
description:
'申请单兵手持便携终端,提告前端人员执法透明度,加强执法人员与指挥中心实时沟通。',
resourceId: 'dbsb',
resourceName: data.wrjName,
type: '单兵设备',
},
],
deptId: dept.deptId,
deptName: dept.deptName,
},
]
localStorage.setItem('applyList', JSON.stringify(arr))
router.push({
path: '/apply',
})
}
if (whoShow1.value.itShowXiHaiAn) {
tabList.value[0].content.push('无人机')
tabList.value[0].content.push('单兵设备')
}
const openVideo = (id) => {
console.log('打开视频', id)
const param = {
@ -288,12 +411,14 @@
tableHeight.value = 600
showMap.value = false
dataSource.value = []
dataSource2.value = []
pagination.value.total = 0
tabList.value[1].title = '云资源分类'
} else if (name == '感知资源') {
tableHeight.value = 330
showMap.value = true
dataSource.value = []
dataSource2.value = []
pagination.value.total = 0
}
clickList.value[indexFather].content.splice(
@ -302,12 +427,15 @@
)
} else {
if (name == '视频资源') {
wrjFlag.value = false
tableHeight.value = 330
showMap.value = true
tabList.value[1].content = []
clickList.value[1].content = []
tabList.value[1].title = '视频标签'
clickList.value[indexFather].content[0] = name
dataSource.value = []
dataSource2.value = []
getCameraAllLabel().then((res) => {
res.data.data.forEach((val) => {
tabList.value[1].content.push({
@ -328,6 +456,7 @@
tableHeight.value = 600
showMap.value = false
dataSource.value = []
dataSource2.value = []
pagination.value.total = 0
clickList.value[1].content = []
tabList.value[1].title = '云资源分类'
@ -342,6 +471,7 @@
'负载均衡',
'公网IP',
]
wrjFlag.value = false
} else if (name == '感知资源') {
tableHeight.value = 330
showMap.value = true
@ -351,6 +481,46 @@
clickList.value[indexFather].content[0] = name
tabList.value[1].content = []
dataSource.value = []
dataSource2.value = []
wrjFlag.value = false
} else if (name == '无人机') {
tableHeight.value = 600
showMap.value = false
dataSource.value = []
dataSource2.value = []
pagination.value.total = 0
clickList.value[1].content = []
clickList.value[indexFather].content[0] = name
tabList.value[1].title = ''
tabList.value[1].content = []
uavAndIndividualSoldier.uavList.map((wrj) => {
dataSource2.value.push({
wrjName: wrj.name,
wrjState: '已申请',
url: wrj.url,
details: wrj.details,
})
})
wrjFlag.value = true
} else if (name == '单兵设备') {
tableHeight.value = 600
showMap.value = false
dataSource.value = []
dataSource2.value = []
pagination.value.total = 0
clickList.value[1].content = []
clickList.value[indexFather].content[0] = name
tabList.value[1].title = ''
tabList.value[1].content = []
uavAndIndividualSoldier.individualSoldier.map((db) => {
dataSource2.value.push({
wrjName: db.name,
wrjState: '未申请',
details: db.details,
type: db.type,
})
})
wrjFlag.value = true
} else {
clickList.value[indexFather].content.push(name)
}
@ -374,9 +544,12 @@
// }
if (name == '云资源' || name == '感知资源') {
dataSource.value = []
dataSource2.value = []
pagination.value.total = 0
} else {
getCamera()
if (name !== '无人机' && name !== '单兵设备') {
getCamera()
}
}
}
//
@ -430,6 +603,8 @@
// const addShopCar = () => {
// console.log('')
// }
const isXiHaiAn = whoShow1.value.itShowXiHaiAn
const wrjFlag = ref(false)
const getCamera = () => {
console.log('初始化调用')
console.log('不选左侧树的时候不调用接口', mapSearchParam.value)
@ -491,6 +666,7 @@
}
//
const dataSource = ref([])
const dataSource2 = ref([])
const columns = ref([
{
title: '名称',
@ -510,6 +686,25 @@
key: 'channelId',
},
])
const columns2 = ref([
{
title: '名称',
dataIndex: 'wrjName',
key: 'wrjName',
},
{
title: '申请状态',
dataIndex: 'wrjState',
width: '60%',
key: 'wrjState',
},
{
title: '操作',
dataIndex: 'operation',
width: '20%',
key: 'wrjName',
},
])
// const allClick = ref([])
const onSelectChange = (record, selected, selectedRows, nativeEvent) => {
console.log('hahhahah', record, selected, selectedRows, nativeEvent)
@ -710,3 +905,11 @@
}
}
</style>
<style lang="less">
.wrj {
.ant-modal-body {
height: 700px !important;
overflow-y: scroll !important;
}
}
</style>

View File

@ -521,7 +521,7 @@
#contain {
.searchPoint {
position: absolute;
z-index: 1000;
z-index: 800;
top: 0.1rem;
right: 0.1rem;
border-radius: 4px;

View File

@ -171,6 +171,16 @@
num: res.data.data[key],
})
}
if (uavAndIndividualSoldier.num) {
jcList.value.push({
name: '无人机',
num: uavAndIndividualSoldier.uavList.length,
})
jcList.value.push({
name: '单兵设备',
num: uavAndIndividualSoldier.individualSoldier.length,
})
}
})
} else {
pageWithAttrs(paramsGetResources).then((res) => {

View File

@ -75,6 +75,9 @@
break
case '基础设施':
jcNum.value = val.count
if (uavAndIndividualSoldier.num) {
jcNum.value = jcNum.value - 0 + uavAndIndividualSoldier.num
}
break
case '数据资源':
sjNum.value = val.count

View File

@ -384,7 +384,6 @@
height: 2.2rem;
padding-top: 0.49rem;
}
background: #f3f5f9;
border: #eaedf2 0.01rem solid;
}
@ -516,7 +515,8 @@
.content > div {
height: 4.8rem;
width: 3.1rem;
margin-right: 0.2rem;
margin-right: 0.1rem;
background: #f3f5f9;
}
.fixedmount {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-28 14:13:22
* @LastEditTime: 2022-08-01 10:49:31
* @Description:我的申请 能力申请 查看详情
-->
<template>
@ -357,10 +357,10 @@
-webkit-box-orient: vertical;
word-break: break-all;
}
.result:hover {
color: #0058e1;
cursor: pointer;
}
// .result:hover {
// color: #0058e1;
// cursor: pointer;
// }
}
}
}

View File

@ -64,13 +64,13 @@
{{ item.cameraList ? item.system : item.title }}
</template>
<div class="content-body-title">
<span
<!-- <span
v-if="item.cameraList && item.ended"
@click="showVideoList(item)"
>
名称{{ item.cameraList ? item.system : item.title }}
</span>
<span v-else>
</span> -->
<span>
名称{{ item.cameraList ? item.system : item.title }}
</span>
<div></div>