西海岸bug修复

This commit is contained in:
wuhongjian 2022-11-26 18:39:45 +08:00
parent ea3f9b693a
commit 555672eeb8
9 changed files with 790 additions and 642 deletions

View File

@ -2,490 +2,536 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23 * @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-13 20:53:24 * @LastEditTime: 2022-11-26 13:57:51
* @Description: 数据资源参数配置 * @Description: 数据资源参数配置
*/ */
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
const newLocation = CONFIGITEM.version const newLocation = CONFIGITEM.version
// const newLocation = 'baotou' // const newLocation = 'baotou'
// const newLocation = 'xihaian' // const newLocation = 'xihaian'
// //
const whoShow = {} const whoShow = {}
const launchedDataNumObject = {} const launchedDataNumObject = {}
// //
const navListManagement = {} const navListManagement = {}
// //
const uavAndIndividualSoldier = {} const uavAndIndividualSoldier = {}
// //
const infrastructure = {} const infrastructure = {}
// //
const mapTestNum = {} const mapTestNum = {}
// //
const footerDataList = {} const footerDataList = {}
// 西-- // 西--
const xhaHasPermissionUser = {} const xhaHasPermissionUser = {}
// qingdao // qingdao
if (newLocation !== 'baotou' && newLocation !== 'xihaian') { if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
whoShow.itShowQingDao = true whoShow.itShowQingDao = true
infrastructure.deptName = '青岛市大数据发展管理局' infrastructure.deptName = '青岛市大数据发展管理局'
infrastructure.deptId = '1067246875800000066' infrastructure.deptId = '1067246875800000066'
navListManagement.navList = [ navListManagement.navList = [
{ name: '共享门户', key: 'home' }, { name: '共享门户', key: 'home' },
{ name: '能力集市', key: 'DetailsPageconetent', innerKey: 'algorithmCompare' }, {
// { name: '', key: 'capabilityCloud' }, name: '能力集市',
{ name: '能力统计', key: 'abilityStatistics' }, key: 'DetailsPageconetent',
// { name: '', key: 'developmentGuide' }, innerKey: 'algorithmCompare',
{ name: '新手指南', key: 'instructionManual' }, },
{ name: '需求中心', key: 'demandCenter' }, { name: '能力云图', key: 'capabilityCloud' },
// { name: '', key: 'personalCenter' }, { name: '能力统计', key: 'abilityStatistics' },
// { name: '', key: 'mapTest' }, // { name: '', key: 'developmentGuide' },
// { name: '', key: 'houtaiguanli' }, { name: '新手指南', key: 'instructionManual' },
// { name: '', key: 'assignCase' }, { name: '需求中心', key: 'demandCenter' },
{ name: '融合服务', key: 'integrationServices' }, // { name: '', key: 'personalCenter' },
{ name: 'CIM专区', key: 'cimSpecialArea' }, // { name: '', key: 'mapTest' },
] // { name: '', key: 'houtaiguanli' },
footerDataList.footerList = { // { name: '', key: 'assignCase' },
company: { { name: '融合服务', key: 'integrationServices' },
left: '青岛市大数据发展管理局', { name: 'CIM专区', key: 'cimSpecialArea' },
right: '政府标识码3702000106', ]
}, footerDataList.footerList = {
address: [{ company: {
name: '邮编: 266071', left: '青岛市大数据发展管理局',
value: 'Email: QDDSJJ@qingdao.shandong.cn', right: '政府标识码3702000106',
}, },
{ address: [
name: '版权所有:青岛市大数据发展管理局', {
value: '地址山东省青岛市香港中路17号市级机关三号办公楼', name: '邮编: 266071',
}, value: 'Email: QDDSJJ@qingdao.shandong.cn',
{ },
name: '电话0532-85912587', {
value: '传真0532-85912181', name: '版权所有:青岛市大数据发展管理局',
}, value: '地址山东省青岛市香港中路17号市级机关三号办公楼',
], },
} {
mapTestNum.lsNum = [{ name: '电话0532-85912587',
name: '基础设施', value: '传真0532-85912181',
key: 'lsjcss', },
num: '20135个', ],
}, }
{ mapTestNum.lsNum = [
name: '数据资源', {
key: 'lsjcss', name: '基础设施',
num: '857项', key: 'lsjcss',
}, num: '20135个',
{ },
name: '应用资源', {
key: 'lsjcss', name: '数据资源',
num: '28个', key: 'lsjcss',
}, num: '857项',
] },
mapTestNum.xhaNum = [{ {
name: '基础设施', name: '应用资源',
key: 'xhajcss', key: 'lsjcss',
num: '35282个', num: '28个',
}, },
{ ]
name: '数据资源', mapTestNum.xhaNum = [
key: 'xhajcss', {
num: '11项', name: '基础设施',
}, key: 'xhajcss',
{ num: '35282个',
name: '应用资源', },
key: 'xhajcss', {
num: '23个', name: '数据资源',
}, key: 'xhajcss',
{ num: '11项',
name: '组件服务', },
key: 'xhazjfw', {
num: '8个', name: '应用资源',
}, key: 'xhajcss',
] num: '23个',
},
{
name: '组件服务',
key: 'xhazjfw',
num: '8个',
},
]
} }
// baotou // baotou
else if (newLocation === 'baotou') { else if (newLocation === 'baotou') {
whoShow.itShowBaoTou = true whoShow.itShowBaoTou = true
launchedDataNumObject.launchedDataNum = [{ launchedDataNumObject.launchedDataNum = [
num: 10372, {
}, num: 10372,
{ },
num: 1080, {
}, num: 1080,
{ },
num: 976, {
}, num: 976,
] },
navListManagement.navList = [ ]
{ name: '共享门户', key: 'home' }, navListManagement.navList = [
{ name: '能力集市', key: 'DetailsPageconetent' }, { name: '共享门户', key: 'home' },
{ name: '能力云图', key: 'capabilityCloud' }, { name: '能力集市', key: 'DetailsPageconetent' },
{ name: '能力统计', key: 'abilityStatistics' }, { name: '能力云图', key: 'capabilityCloud' },
// { name: '', key: 'developmentGuide' }, { name: '能力统计', key: 'abilityStatistics' },
{ name: '需求中心', key: 'demandCenter' }, // { name: '', key: 'developmentGuide' },
// { name: '', key: 'personalCenter' }, { name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'mapTest' }, // { name: '', key: 'personalCenter' },
// { name: '', key: 'houtaiguanli' }, // { name: '', key: 'mapTest' },
{ name: '赋能案例', key: 'assignCase' }, // { name: '', key: 'houtaiguanli' },
] { name: '赋能案例', key: 'assignCase' },
footerDataList.footerList = { ]
company: { footerDataList.footerList = {
left: '包头市工业和信息化局大数据中心建设', company: {
right: '海信网络科技股份有限公司', left: '包头市工业和信息化局大数据中心建设',
}, right: '海信网络科技股份有限公司',
address: [{ },
name: '蒙ICP备05003330-1号', address: [
value: '政府标识码1502000040', {
}, name: '蒙ICP备05003330-1号',
{ value: '政府标识码1502000040',
name: '版权所有:包头市工业和信息化局大数据中心', },
value: '地址内蒙古自治区包头市九原区开元大街1号', {
}, name: '版权所有:包头市工业和信息化局大数据中心',
{ value: '地址内蒙古自治区包头市九原区开元大街1号',
name: '电话0472-5618235', },
value: '传真0472-5618235', {
}, name: '电话0472-5618235',
], value: '传真0472-5618235',
} },
],
}
} }
// xihaian // xihaian
else if (newLocation === 'xihaian') { else if (newLocation === 'xihaian') {
whoShow.itShowXiHaiAn = true whoShow.itShowXiHaiAn = true
infrastructure.deptName = '西海岸新区大数据发展' infrastructure.deptName = '西海岸新区大数据发展'
// infrastructure.deptId = '1067246875800000066' // infrastructure.deptId = '1067246875800000066'
uavAndIndividualSoldier.num = 4 uavAndIndividualSoldier.num = 4
uavAndIndividualSoldier.uavList = [{ uavAndIndividualSoldier.uavList = [
name: '经纬 M300 RTK-1', {
url: '', name: '经纬 M300 RTK-1',
details: [{ url: '',
name: '飞行器', details: [
attribute: { {
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××', name: '飞行器',
对称电机轴距: '895 mm', attribute: {
'重量(含下置单云台支架):空机重量(不含电池)': '3.6 kg空机重量含双电池6.3 kg', 尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××',
单云台减震球最大负重: '930g', 对称电机轴距: '895 mm',
最大起飞重量: '9 kg', '重量(含下置单云台支架):空机重量(不含电池)':
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz', '3.6 kg空机重量含双电池6.3 kg',
'发射功率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', 单云台减震球最大负重: '930g',
'悬停精度P-GPS': '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)', 最大起飞重量: '9 kg',
'RTK 位置精度': '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直', 工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz',
最大旋转角速度: '俯仰轴300°/s、航向轴100°/s', '发射功率EIRP':
最大俯仰角度: '30° P模式且前视视觉系统启用25°', '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',
最大上升速度: 'S 模式6 m/s、P 模式5 m/s', '悬停精度P-GPS':
'最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s', '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)',
最大倾斜下降速度: 'S 模式7 m/s', 'RTK 位置精度':
最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s', '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直',
最大飞行海拔高度: '5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg', 最大旋转角速度: '俯仰轴300°/s、航向轴100°/s',
最大可承受风速: '15m/s起飞及降落阶段为12m/s', 最大俯仰角度: '30° P模式且前视视觉系统启用25°',
最大飞行时间: '55 min', 最大上升速度: 'S 模式6 m/s、P 模式5 m/s',
'适配 DJI 云台': '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1', '最大下降速度(垂直)': 'S 模式5 m/s、P 模式4 m/s',
支持云台安装方式: '下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台', 最大倾斜下降速度: 'S 模式7 m/s',
'IP 防护等级': 'IP45', 最大水平飞行速度: 'S 模式23 m/s、P 模式17 m/s',
GNSS: 'GPS+GLONASS+BeiDou+Galileo', 最大飞行海拔高度:
工作环境温度: '-20°C 至 50°C', '5000 m2110 桨叶起飞重量≤7 kg/ 7000 m2195 高原静音桨叶起飞重量≤7 kg',
}, 最大可承受风速: '15m/s起飞及降落阶段为12m/s',
}, 最大飞行时间: '55 min',
{ '适配 DJI 云台':
name: '遥控器', '禅思 XT2、禅思 XT S、禅思 Z30、禅思 H20、禅思 H20T、DJI P1、DJI L1',
attribute: { 支持云台安装方式:
工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz', '下置单云台、上置单云台、下置双云台、下置单云台+上置单云台、下置双云台+上置单云台',
'最大信号有效距离(无干扰、无遮挡)': 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km', 'IP 防护等级': 'IP45',
'等效全向辐射功率EIRP': '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC', GNSS: 'GPS+GLONASS+BeiDou+Galileo',
外置电池: '名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C', 工作环境温度: '-20°C 至 50°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', name: '遥控器',
url: '', attribute: {
details: [{ 工作频率: '2.4000-2.4835 GHz、5.725-5.850 GHz',
name: '飞行器', '最大信号有效距离(无干扰、无遮挡)':
attribute: { 'NCC/FCC15 km、CE/MIC8 km、SRRC8 km',
尺寸: '尺寸展开不包含桨叶810×670×430 mm××尺寸折叠包含桨叶430×420×430 mm××', '等效全向辐射功率EIRP':
对称电机轴距: '895 mm', '2.4000-2.4835 GHz29.5 dBmFCC18.5dBmCE、18.5 dBmSRRC18.5dBmMIC5.725-5.850 GHz28.5 dBmFCC12.5dBmCE、20.5 dBmSRRC',
'重量(含下置单云台支架):空机重量(不含电池)': '3.6 kg空机重量含双电池6.3 kg', 外置电池:
单云台减震球最大负重: '930g', '名称WB37 智能电池容量4920 mAh电压7.6 V电池类型LiPo能量37.39 Wh充电时间使用 BS60 智能电池箱70 分钟15°C 至 45°C130 分钟0°C 至 15°C',
最大起飞重量: '9 kg', 内置电池:
工作频率: '2.4000-2.4835 GHz5.725-5.850 GHz', '类型18650 锂离子电池 5000 mAh @ 7.2 V充电方式使用规格为 12V/2A 的 USB 充电器额定功率17 W充电时间2 小时 15 分钟使用规格为12V/2A 的 USB 充电器)',
'发射功率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', 续航时间: '内置电池:约 2.5 小时内置电池+外置电池:约 4.5 小时',
'悬停精度P-GPS': '垂直±0.1 m视觉定位正常工作时、±0.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时水平±0.3 m视觉定位正常工作时、±1.5 mGPS 正常工作时、±0.1 mRTK 定位正常工作时)', 'USB-A 接口供电电压/电流': '5 V / 1.5 A',
'RTK 位置精度': '在 RTK FIX 时1 cm+1 ppm水平、1.5 cm + 1 ppm垂直', 工作环境温度: '-20° 至 40° C',
最大旋转角速度: '俯仰轴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', name: '视觉系统',
type: '单兵设备', attribute: {
details: { 障碍物感知范围: '前后左右0.7-40 m、上下0.6-30 m',
基本信息: { FOV: '前后下65°H50°V、左右上75°H60°V',
外观设计: '172X81X15.7(不含天线)336g', 使用环境:
操作系统: 'Android P', '表面有丰富纹理,光照条件充足(>15 lux室内日光灯正常照射环境',
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: '红外感知系统',
{ name: '共享门户', key: 'home' }, attribute: {
{ name: '能力集市', key: 'DetailsPageconetent' }, 障碍物感知范围: '0.1-8 m',
{ name: '能力云图', key: 'capabilityCloud' }, FOV: '30°±15°',
{ name: '能力统计', key: 'abilityStatistics' }, 使用环境: '漫反射,大尺寸,高反射率(反射率>10%)障碍物',
// { name: '', key: 'developmentGuide' }, },
{ name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' },
{ name: '赋能案例', key: 'assignCase' },
]
footerDataList.footerList = {
company: {
left: '青岛西海岸新区大数据发展促进局建设',
// eslint-disable-next-line no-undef
right: CONFIGITEM.vNum,
}, },
address: [{ {
name: '鲁IC备00000000号', name: '上下补光灯',
value: '政府标识码3702000106', attribute: {
}, 有效照明距离: '5 m',
{ },
name: '版权所有:青岛西海岸新区大数据发展促进局', },
value: '地址青岛市西海岸新区长江中路369号', {
}, name: 'FPV摄像头',
{ attribute: {
name: '电话0532-86986596', 分辨率: '960p',
value: '传真0532-86986596', FOV: '145°',
}, 帧率: '30 fps',
], },
} },
xhaHasPermissionUser.list = [ {
'xihaian01', name: '智能飞行电池',
'xihaian02', attribute: {
'xihaian03', 型号: 'TB60',
'xihaian04', 容量: '5935 mAh',
'admin', 电压: '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' },
{ name: '能力云图', key: 'capabilityCloud' },
{ name: '能力统计', key: 'abilityStatistics' },
// { name: '', key: 'developmentGuide' },
{ name: '需求中心', key: 'demandCenter' },
// { name: '', key: 'personalCenter' },
// { name: '', key: 'mapTest' },
// { name: '', key: 'houtaiguanli' },
{ name: '赋能案例', key: 'assignCase' },
]
footerDataList.footerList = {
company: {
left: '青岛西海岸新区大数据发展促进局建设',
// eslint-disable-next-line no-undef
right: CONFIGITEM.vNum,
},
address: [
{
name: '鲁IC备00000000号',
value: '政府标识码3702000106',
},
{
name: '版权所有:青岛西海岸新区大数据发展促进局',
value: '地址青岛市西海岸新区长江中路369号',
},
{
name: '电话0532-86986596',
value: '传真0532-86986596',
},
],
}
xhaHasPermissionUser.list = [
'xihaian01',
'xihaian02',
'xihaian03',
'xihaian04',
'admin',
]
} }

View File

@ -92,9 +92,9 @@ instance.interceptors.request.use(
*/ */
instance.interceptors.response.use( instance.interceptors.response.use(
(response) => { (response) => {
console.log('接口返回', response) // console.log('', response)
console.log('接口返回headers', response.headers) // console.log('headers', response.headers)
console.log('接口返回REDIRECT', response.headers.redirect) // console.log('REDIRECT', response.headers.redirect)
response['Access-Control-Expose-Headers'] = 'redirect' response['Access-Control-Expose-Headers'] = 'redirect'
const { code, message } = response.data const { code, message } = response.data
@ -154,14 +154,14 @@ instance.interceptors.response.use(
// } // }
}, },
(error) => { (error) => {
console.log('接口error', error) // console.log('error', error)
if (loadingInstance) loadingInstance.close() if (loadingInstance) loadingInstance.close()
const { response, myMessage } = error const { response, myMessage } = error
if (error.response) { if (error.response) {
console.log('接口返回', response) // console.log('', response)
console.log('接口返回headers', response.headers) // console.log('headers', response.headers)
console.log('接口返回REDIRECT', response.headers.redirect) // console.log('REDIRECT', response.headers.redirect)
const { status, data } = response const { status, data } = response
handleCode(status, data.msg || myMessage, response.headers.redirect) handleCode(status, data.msg || myMessage, response.headers.redirect)

View File

@ -296,17 +296,29 @@
const num = ref(0) const num = ref(0)
// //
const expireDateOptions = [ const expireDateOptions = [
{
value: moment().add(7, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '7天',
},
{ {
value: moment().add(30, 'days').format('YYYY-MM-DD HH:mm:ss'), value: moment().add(30, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '30天', label: '1个月',
}, },
{ {
value: moment().add(60, 'days').format('YYYY-MM-DD HH:mm:ss'), value: moment().add(180, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '60天', label: '6个月',
}, },
{ {
value: moment().add(90, 'days').format('YYYY-MM-DD HH:mm:ss'), value: moment().add(365, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '90天', label: '1年',
},
{
value: moment().add(730, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '2年',
},
{
value: moment().add(1095, 'days').format('YYYY-MM-DD HH:mm:ss'),
label: '3年',
}, },
] ]
const apiURL = window.SITE_CONFIG.apiURL const apiURL = window.SITE_CONFIG.apiURL

View File

@ -2,10 +2,10 @@
海康H5Player 海康H5Player
--> -->
<template> <template>
<div id="player" style="width: 800px; height: 600px; z-index: 9999"></div> <div :id="videoId" style="width: 800px; height: 600px; z-index: 9999"></div>
</template> </template>
<script> <script>
const IS_MOVE_DEVICE = document.body.clientWidth < 992 // // const IS_MOVE_DEVICE = document.body.clientWidth < 992 //
const MSE_IS_SUPPORT = !!window.MediaSource // mse const MSE_IS_SUPPORT = !!window.MediaSource // mse
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
@ -16,6 +16,10 @@
type: String, type: String,
default: '', default: '',
}, },
videoId: {
type: String,
default: 'player',
},
index: { index: {
type: Number, type: Number,
default: 0, default: 0,
@ -24,11 +28,16 @@
type: Boolean, type: Boolean,
default: false, default: false,
}, },
unStopable: {
type: Boolean,
default: false,
},
}, },
data() { data() {
return { return {
player: null, player: null,
splitNum: 1, splitNum: 1,
realTime: true,
mseSupport: MSE_IS_SUPPORT, mseSupport: MSE_IS_SUPPORT,
// tabActive: MSE_IS_SUPPORT ? 'mse' : 'decoder', // tabActive: MSE_IS_SUPPORT ? 'mse' : 'decoder',
tabActive: 'decoder', tabActive: 'decoder',
@ -65,8 +74,13 @@
mybus.emit('closeLoading', true) mybus.emit('closeLoading', true)
this.createPlayer() this.createPlayer()
this.arrangeWindow() this.arrangeWindow()
if (this.unStopable) {
this.videoPlay(this.videoUrl, 0)
} else {
this.realplay(this.videoUrl, 0)
}
//videoUrl this.realplay(this.videoUrl,0);//index //videoUrl this.realplay(this.videoUrl,0);//index
this.realplay(this.videoUrl, 0)
//this.realplay('wss://10.134.135.44:6014/proxy/10.10.20.14:559/openUrl/y3mFfcA',0); //this.realplay('wss://10.134.135.44:6014/proxy/10.10.20.14:559/openUrl/y3mFfcA',0);
}, },
watch: { watch: {
@ -76,7 +90,16 @@
console.log('oldVal:', oldVal) console.log('oldVal:', oldVal)
console.log('newVal:', newVal) console.log('newVal:', newVal)
if (newVal) { if (newVal) {
this.realplay(newVal, 0) if (!this.player) {
setTimeout(() => {
this.init()
this.createPlayer()
this.arrangeWindow()
this.realplay(newVal, 0)
}, 1000)
} else {
this.realplay(newVal, 0)
}
} }
}, },
// //
@ -92,12 +115,13 @@
}) })
}, },
createPlayer() { createPlayer() {
//console.log('this.index',this.index); console.log('初始化id', this.videoId)
this.player = new window.JSPlugin({ this.player = new window.JSPlugin({
//szId: 'player'+this.index, //szId: 'player'+this.index,
szId: 'player', szId: this.videoId,
szBasePath: '/util/', //public/jsjs szBasePath: '/util/', //public/jsjs
iMaxSplit: 4, iMaxSplit: 4,
iWidth: '800px',
iCurrentSplit: 4, iCurrentSplit: 4,
openDebug: true, openDebug: true,
oStyle: { oStyle: {
@ -141,8 +165,10 @@
iWidth, iWidth,
iHeight iHeight
) )
// //
that.pausePlay(iWndIndex) if (!that.realTime) {
that.pausePlay(iWndIndex)
}
mybus.emit('closeLoading', false) mybus.emit('closeLoading', false)
}, },
performanceLack: function () { performanceLack: function () {
@ -165,10 +191,13 @@
// //
// //
realplay(playURL, index1) { realplay(playURL, index1) {
this.realTime = false
mybus.emit('closeLoading', true) mybus.emit('closeLoading', true)
setTimeout(() => {
mybus.emit('closeLoading', false)
}, 3000)
this.mode = 0 //0 1 this.mode = 0 //0 1
const { player, mode, urls } = this, const { player, mode, urls } = this
index = player.currentWindowIndex
// playURL = this.realplay // playURL = this.realplay
console.log('视频播放地址', playURL) console.log('视频播放地址', playURL)
// const startTime = { // const startTime = {
@ -195,6 +224,40 @@
} }
) )
}, },
videoPlay(playURL, index1) {
let that = this
this.realTime = true
mybus.emit('closeLoading', true)
setTimeout(() => {
mybus.emit('closeLoading', false)
if (!that.unStopable) {
message.warning('预览将在2s后停止')
setTimeout(() => {
that.stopAllPlay()
}, 6000)
}
}, 3000)
this.mode = 0 //0 1
const { player, mode, urls } = this
// playURL = this.realplay
console.log('视频播放地址', playURL)
// const startTime = {
// startTime: ,
// }
// const endTime = {
// endTime: ,
// }
player.JS_Play(playURL, { playURL, mode }, index1).then(
() => {
console.log('realplay success')
// 6s
},
(e) => {
console.error(e)
// message.error(':' + e)
}
)
},
// //
stopAllPlay() { stopAllPlay() {
this.player.JS_StopRealPlayAll().then( this.player.JS_StopRealPlayAll().then(
@ -210,12 +273,15 @@
}, },
// //
pausePlay(index) { pausePlay(index) {
let that = this
this.player.JS_Pause(index).then( this.player.JS_Pause(index).then(
() => { () => {
console.log('暂停成功') console.log('暂停成功')
}, },
(e) => { (e) => {
console.error(e) console.error(e)
//
that.videoPlay(that.videoUrl, 0)
} }
) )
}, },

View File

@ -1,12 +1,12 @@
<!-- <!--
* @Author: Light * @Author: Light
* @Date: 2022-11-18 11:53:43 * @Date: 2022-11-18 11:53:43
* @LastEditors: Light * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-11-25 20:05:47 * @LastEditTime: 2022-11-26 16:30:51
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
<div class="infrastructureApplication" v-if="showFlag"> <div class="infrastructureApplication" v-show="showFlag">
<div class="top"> <div class="top">
<a-list size="small" bordered :data-source="dataList.toBeApplied"> <a-list size="small" bordered :data-source="dataList.toBeApplied">
<template #renderItem="{ item }"> <template #renderItem="{ item }">
@ -47,7 +47,7 @@
</div> </div>
<a-tag <a-tag
color="cyan" color="cyan"
style="margin-right: 0" style="margin-right: 0; cursor: pointer"
@click="selectItem(item)" @click="selectItem(item)"
> >
{{ {{
@ -88,6 +88,7 @@
</div> </div>
</div> </div>
<a-modal <a-modal
v-if="!dataList.selectItem.cameraInfo"
:width="800" :width="800"
v-model:visible="visible" v-model:visible="visible"
title="撤销申请" title="撤销申请"
@ -110,28 +111,27 @@
</a-table> </a-table>
</a-modal> </a-modal>
<a-modal <a-modal
v-if="dataList.selectItem.cameraInfo" v-else
v-model:visible="showVisible" v-model:visible="showVisible"
:title="dataList.selectItem.cameraInfo.channelName" :title="dataList.selectItem.cameraInfo.channelName"
:footer="null" :footer="null"
:width="845"
destroyOnClose
@cancel="clear" @cancel="clear"
> >
<div style="width: 100%; display: flex; justify-content: center"> <div
<div style="width: 100%; height: 100%; position: relative"> style="
<div class="waterMark waterMark-left-top"> width: 800px;
{{ userInfo.usernameShow }} height: 600px;
</div> display: flex;
<div class="waterMark waterMark-right-top"> justify-content: center;
{{ userInfo.realNameShow }} "
</div> >
<div class="waterMark waterMark-left-bottom"> <h5-player
{{ userInfo.usernameShow }} videoId="preview"
</div> unStopable="true"
<div class="waterMark waterMark-right-bottom"> :video-url="videoUrl"
{{ userInfo.realNameShow }} ></h5-player>
</div>
<h5-player :video-url="videoUrl"></h5-player>
</div>
</div> </div>
</a-modal> </a-modal>
</template> </template>
@ -209,6 +209,10 @@
} }
} }
const apply = () => { const apply = () => {
if (dataList.toBeApplied.length === 0) {
message.warning('待申请列表为空!')
return
}
let obj = { let obj = {
arr: [ arr: [
{ {
@ -286,6 +290,7 @@
getVideoUrl(item.cameraInfo) getVideoUrl(item.cameraInfo)
} else { } else {
dataList.selectItem = {} dataList.selectItem = {}
message.info('请耐心等待审核通过')
showVisible.value = false showVisible.value = false
} }
} }
@ -347,8 +352,10 @@
//console.log('555555rrrrr',res) //console.log('555555rrrrr',res)
if (res.data.data) { if (res.data.data) {
videoUrl.value = res.data.data.url videoUrl.value = res.data.data.url
showVisible.value = true
} else {
message.warning('申请内容已失效,请撤销后重新进行申请!')
} }
showVisible.value = true
}) })
} }
mybus.on('selectCamera', (obj) => { mybus.on('selectCamera', (obj) => {

View File

@ -691,6 +691,7 @@
import { Form } from 'ant-design-vue' import { Form } from 'ant-design-vue'
import moment from 'moment' import moment from 'moment'
import { useStore } from 'vuex' import { useStore } from 'vuex'
import debounce from 'lodash/debounce'
const store = useStore() const store = useStore()
const username = store.getters['user/username'] const username = store.getters['user/username']
const props = defineProps({ const props = defineProps({
@ -1971,20 +1972,71 @@
const wrjFlag = ref(false) const wrjFlag = ref(false)
// 西-loading // 西-loading
const loadingCamera = ref(false) const loadingCamera = ref(false)
const getCamera = (flag, str) => { const getCamera = debounce(
loadingCamera.value = true function (flag, str) {
if (flag) { loadingCamera.value = true
mapSearchParam.value.cameraName = str if (flag) {
} mapSearchParam.value.cameraName = str
console.log('初始化调用', flag) }
console.log( console.log('初始化调用', flag)
'不选左侧树的时候不调用接口', console.log(
mapSearchParam.value, '不选左侧树的时候不调用接口',
selectType.value mapSearchParam.value,
) selectType.value
if (!whoShow1.value.itShowXiHaiAn) { )
if (selectType.value == '视频资源') { if (!whoShow1.value.itShowXiHaiAn) {
getCameraByParentId(mapSearchParam.value) if (selectType.value == '视频资源') {
getCameraByParentId(mapSearchParam.value)
.then((res) => {
console.log('res--查询摄像头---------->', res)
loadingCamera.value = false
dataSource.value = res.data.data
pagination.value.total = res.data.count
})
.catch((err) => {
loadingCamera.value = false
message.error(err)
})
} else {
loadingCamera.value = false
}
} else {
let params = {
regionId:
mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051',
// pageNum: mapSearchParam.value.pageNum,
// pageSize: mapSearchParam.value.pageSize,
longitude: mapSearchParam.value.gpsX || '',
latitude: mapSearchParam.value.gpsY || '',
radius: mapSearchParam.value.radius || '',
name: mapSearchParam.value.cameraName,
type: mapSearchParam.value.type,
borderPolygonList: mapSearchParam.value.borderPolygonList || [],
}
// todo-
// if (
// params.regionId === '70be8c5b664f4bcf869d82f2e8335051' &&
// !params.name &&
// !params.longitude
// ) {
// params.status = ''
// }
let paramsFather = ''
let i = 1
for (var key in params) {
if (params[key] === '') {
delete params[key]
} else {
if (i != 1) {
paramsFather += `&${key}=` + params[key]
i += 1
} else if (i == 1) {
paramsFather += `${key}=` + params[key]
i += 1
}
}
}
getCameraByCondition(params)
.then((res) => { .then((res) => {
console.log('res--查询摄像头---------->', res) console.log('res--查询摄像头---------->', res)
loadingCamera.value = false loadingCamera.value = false
@ -1995,58 +2047,11 @@
loadingCamera.value = false loadingCamera.value = false
message.error(err) message.error(err)
}) })
} else {
loadingCamera.value = false
} }
} else { },
let params = { 1000,
regionId: { leading: true, trailing: false }
mapSearchParam.value.parentId || '70be8c5b664f4bcf869d82f2e8335051', )
// pageNum: mapSearchParam.value.pageNum,
// pageSize: mapSearchParam.value.pageSize,
longitude: mapSearchParam.value.gpsX || '',
latitude: mapSearchParam.value.gpsY || '',
radius: mapSearchParam.value.radius || '',
name: mapSearchParam.value.cameraName,
type: mapSearchParam.value.type,
borderPolygonList: mapSearchParam.value.borderPolygonList || [],
}
// todo-
// if (
// params.regionId === '70be8c5b664f4bcf869d82f2e8335051' &&
// !params.name &&
// !params.longitude
// ) {
// params.status = ''
// }
let paramsFather = ''
let i = 1
for (var key in params) {
if (params[key] === '') {
delete params[key]
} else {
if (i != 1) {
paramsFather += `&${key}=` + params[key]
i += 1
} else if (i == 1) {
paramsFather += `${key}=` + params[key]
i += 1
}
}
}
getCameraByCondition(params)
.then((res) => {
console.log('res--查询摄像头---------->', res)
loadingCamera.value = false
dataSource.value = res.data.data
pagination.value.total = res.data.count
})
.catch((err) => {
loadingCamera.value = false
message.error(err)
})
}
}
defineExpose({ defineExpose({
getCamera, getCamera,
reSetSearch, reSetSearch,

View File

@ -121,6 +121,7 @@ import { ElMessage } from 'element-plus'
selectByChannelName, selectByChannelName,
} from '@/api/videoSurveillance' } from '@/api/videoSurveillance'
import { getCameraByCondition,getListForPOI,CameraConditionPlaceType } from '@/api/file' import { getCameraByCondition,getListForPOI,CameraConditionPlaceType } from '@/api/file'
import debounce from 'lodash/debounce'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import * as turf from '@turf/turf'; import * as turf from '@turf/turf';
@ -378,7 +379,7 @@ import { ElMessage } from 'element-plus'
} }
}) })
}, },
getCameraByParentId(type,dataName) { getCameraByParentId : debounce(function(type,dataName) {
if (!this.whoShow1.itShowXiHaiAn) { if (!this.whoShow1.itShowXiHaiAn) {
getCameraByParentId(this.mapSearchParam).then((res) => { getCameraByParentId(this.mapSearchParam).then((res) => {
console.log('根据parent查询摄像头', res.data.data) console.log('根据parent查询摄像头', res.data.data)
@ -436,7 +437,7 @@ import { ElMessage } from 'element-plus'
}) })
} }
}, }, 1000, { 'leading': true, 'trailing': false }),
// //
initAddressMatchService() { initAddressMatchService() {
this.L = window.L || {} this.L = window.L || {}
@ -534,7 +535,7 @@ import { ElMessage } from 'element-plus'
cb([]) cb([])
} }
}, },
getCameraAllPage(page) { getCameraAllPage: debounce(function(page) {
let params = { let params = {
regionId: "70be8c5b664f4bcf869d82f2e8335051", regionId: "70be8c5b664f4bcf869d82f2e8335051",
borderPolygonList: [] borderPolygonList: []
@ -546,7 +547,7 @@ import { ElMessage } from 'element-plus'
// let t2 = new Date().getTime(); // let t2 = new Date().getTime();
// console.log("#############" + (t2 - t1)); // console.log("#############" + (t2 - t1));
}) })
}, },1000, { 'leading': true, 'trailing': false }),
getCameraAllLabel() {}, getCameraAllLabel() {},
tabChange(item) { tabChange(item) {
if (this.checkboxGroup.indexOf(item.labelName) !== -1) { if (this.checkboxGroup.indexOf(item.labelName) !== -1) {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44 * @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-26 18:15:01 * @LastEditTime: 2022-11-26 14:47:12
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -146,12 +146,12 @@
</div> </div>
<div></div> <div></div>
<a-button <a-button
type="primary" type="primary"
v-if="item.approveStatus === '通过'" v-if="item.approveStatus === '通过'"
@click.stop="switchFunction(item)" @click.stop="switchFunction(item)"
> >
查看详情 查看详情
</a-button> </a-button>
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> --> <!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
</div> </div>
<div class="ability-bottom"> <div class="ability-bottom">
@ -172,7 +172,6 @@
> >
附件下载 附件下载
</a-button> </a-button>
</div> </div>
</div> </div>
</div> </div>
@ -225,50 +224,56 @@
style="cursor: pointer" style="cursor: pointer"
@click=" @click="
openView( openView(
'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' + val.channelCode+'&protocol=wss&transmode=1&streamType=1' 'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' +
val.channelCode +
'&protocol=wss&transmode=1&streamType=1'
) )
" "
> >
{{ 'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' + val.channelCode+'&protocol=wss&transmode=1&streamType=1' }} {{
'http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=' +
val.channelCode +
'&protocol=wss&transmode=1&streamType=1'
}}
</span> </span>
</div> </div>
</div> </div>
<div class="button-bottom" v-if="item.approveStatus == '通过'"> <div class="button-bottom" v-if="item.approveStatus == '通过'">
<a <a
style=" style="
display: inline-block; display: inline-block;
width: 88px; width: 88px;
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
text-align: center; text-align: center;
background: #40a9ff; background: #40a9ff;
border-radius: 5px; border-radius: 5px;
font-size: 14px; font-size: 14px;
color: #fff; color: #fff;
cursor:pointer; cursor: pointer;
" "
href="/static/download/InstallRootCert.exe" href="/static/download/InstallRootCert.exe"
> >
证书下载 证书下载
</a> </a>
<span <span
style=" style="
display: inline-block; display: inline-block;
width: 88px; width: 88px;
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
text-align: center; text-align: center;
background: #40a9ff; background: #40a9ff;
border-radius: 5px; border-radius: 5px;
font-size: 14px; font-size: 14px;
color: #fff; color: #fff;
margin-left:40px; margin-left: 40px;
cursor:pointer; cursor: pointer;
" "
@click="downLoadClient()" @click="downLoadClient()"
> >
客户端下载 客户端下载
</span> </span>
</div> </div>
</div> </div>
</div> </div>
@ -280,7 +285,7 @@
wrapClassName="single-preview-modal" wrapClassName="single-preview-modal"
v-model:visible="visible" v-model:visible="visible"
title="视频预览" title="视频预览"
:width="1000" :width="850"
destroyOnClose destroyOnClose
> >
<template #footer></template> <template #footer></template>
@ -300,7 +305,11 @@
{{ userInfo.realNameShow }} {{ userInfo.realNameShow }}
</div> </div>
<!-- <vue3VideoPlay v-bind="options" /> --> <!-- <vue3VideoPlay v-bind="options" /> -->
<h5-player :video-url="videoUrl"></h5-player> <h5-player
unStopable="true"
:video-id="videoId"
:video-url="videoUrl"
></h5-player>
</div> </div>
</div> </div>
</a-modal> </a-modal>
@ -315,7 +324,7 @@
import { getStreamByChannelCode } from '@/api/videoSurveillance' import { getStreamByChannelCode } from '@/api/videoSurveillance'
import { getUser } from '@/api/home' import { getUser } from '@/api/home'
import H5Player from '@/views/home/components/H5Player.vue' import H5Player from '@/views/home/components/H5Player.vue'
import {getCameraLiveStream} from '@/api/file' import { getCameraLiveStream } from '@/api/file'
const router = useRouter() const router = useRouter()
const backUrl = ref(window.SITE_CONFIG.apiURL + '/') const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
const props = defineProps({ const props = defineProps({
@ -323,6 +332,7 @@
}) })
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
let visible = ref(false) let visible = ref(false)
const videoId = ref('111111111111')
const options = reactive({ const options = reactive({
width: '912px', // width: '912px', //
height: '513px', // height: '513px', //
@ -359,7 +369,7 @@
dept.deptName = infrastructure.deptName dept.deptName = infrastructure.deptName
} }
const showThis = () => { const showThis = () => {
console.log('props.refObj.enclosure',props.refObj); console.log('props.refObj.enclosure', props.refObj)
window.open( window.open(
window.SITE_CONFIG.previewUrl + window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' + 'hisense_office/onlinePreview?url=' +
@ -367,9 +377,10 @@
) )
} }
// //
const downLoadClient = () => { const downLoadClient = () => {
let url = "https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=10"; let url =
window.open( url, '_blank') 'https://open.hikvision.com/download/5c67f1e2f05948198c909700?type=10'
window.open(url, '_blank')
} }
const showArr = ref([]) const showArr = ref([])
console.log(props.refObj, '=====================================') console.log(props.refObj, '=====================================')
@ -515,19 +526,19 @@
} }
} }
const videoUrl = ref('') const videoUrl = ref('')
// //
const getVideoUrl = (data) =>{ const getVideoUrl = (data) => {
debugger debugger
let param = data; let param = data
getCameraLiveStream(param).then((res) => { getCameraLiveStream(param).then((res) => {
//console.log('555555rrrrr',res) //console.log('555555rrrrr',res)
if(res.data.data){ if (res.data.data) {
videoUrl.value = res.data.data.url; videoUrl.value = res.data.data.url
}
visible.value = true
})
} }
visible.value = true
})
}
// //
const openVideo = (item) => { const openVideo = (item) => {
console.log('打开视频', item) console.log('打开视频', item)
@ -578,7 +589,7 @@
}) })
} }
const openView = (url) => { const openView = (url) => {
console.log('valval',url); console.log('valval', url)
//http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=37021100421318000090&protocol=wss&transmode=1&streamType=1 //http://10.134.135.92:9537/data_service/getCamera/getCameraLiveStream?cameraIndexCode=37021100421318000090&protocol=wss&transmode=1&streamType=1
window.open(url, '_blank') window.open(url, '_blank')
} }
@ -628,9 +639,9 @@
width: 2.5rem; width: 2.5rem;
} }
} }
.downButton{ .downButton {
display: flex; display: flex;
justify-content: normal; justify-content: normal;
} }
} }
} }
@ -658,7 +669,7 @@
.box { .box {
margin-left: 0.1rem; margin-left: 0.1rem;
.ability { .ability {
height: 2.0rem; height: 2rem;
display: flex; display: flex;
border-bottom: 1px #eee solid; border-bottom: 1px #eee solid;
padding: 0.1rem 0; padding: 0.1rem 0;
@ -766,7 +777,7 @@
position: relative; position: relative;
} }
} }
.button-bottom{ .button-bottom {
margin-top: 0; margin-top: 0;
margin-bottom: 10px; margin-bottom: 10px;
} }

View File

@ -29,8 +29,8 @@ const productionGzipExtensions = [
'ico', 'ico',
] ]
// gzip // gzip
// const isPro = process.env.NODE_ENV === 'production' const isPro = process.env.NODE_ENV === 'production'
const isPro = false // const isPro = false
if (donation) donationConsole() if (donation) donationConsole()
const { version, author } = require('./package.json') const { version, author } = require('./package.json')
const Webpack = require('webpack') const Webpack = require('webpack')