hsqHome.data.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. import { getAssetURL } from '/@/utils/ui';
  2. import type {LaserActionItem, DeviceNode, DeviceGroup, AlarmFormState, AlarmReportFieldItem, AngleState, StatsCount,
  3. AngleField, PresetToolbarItem } from
  4. './components/type'
  5. /** Tab 标签项数据结构 */
  6. interface TabItem {
  7. key: string
  8. label: string
  9. }
  10. /** 镜头控制项(变焦/聚焦/光圈)数据结构 */
  11. interface LensControl {
  12. key: string
  13. icon: string
  14. /** + 按钮提示 */
  15. plusTip: string
  16. /** − 按钮提示 */
  17. minusTip: string
  18. }
  19. //设备状态总览
  20. export let option = [
  21. {
  22. label: '在线设备',
  23. value: 'onlineNum',
  24. },
  25. {
  26. label: '离线设备',
  27. value: 'offlineNum',
  28. },
  29. {
  30. label: '故障设备',
  31. value: 'faultNum',
  32. },
  33. {
  34. label: '报警设备',
  35. value: 'alarmNum',
  36. },
  37. ]
  38. //实时温度曲线
  39. export const chartConfig: any = {
  40. type: 'line_area',
  41. grid: {
  42. top: 25,
  43. left: 25,
  44. bottom: 10,
  45. right: 25,
  46. },
  47. legend: { show: true },
  48. xAxis: [{ show: true }],
  49. yAxis: [{ show: true, name: '(℃)', position: 'left', nameTextStyle: { color: '#fff', fontSize: 12, lineHeight: 2, } }],
  50. series: [
  51. {
  52. label: '平均温度',
  53. readFrom: '',
  54. xprop: 'pos',
  55. yprop: 'value',
  56. color: ['rgba(52, 193, 248,.8)', 'rgba(52, 193, 248,.2)'],
  57. },
  58. ],
  59. };
  60. //设备状态表格
  61. export let deviceColumns: any[] = [
  62. {
  63. name: '设备名称',
  64. prop: 'strname',
  65. },
  66. {
  67. name: '在线状态',
  68. prop: 'netStatus',
  69. },
  70. {
  71. name: '温度(‌℃‌)',
  72. //prop: 'syswarnLevel',
  73. prop: 'avg'
  74. },
  75. ]
  76. //快捷操作
  77. export let quickOption = [
  78. { label: '系统运行时间', value: 'time', iconName: 'time-run' },
  79. { label: '数据刷新', value: 'sjsx', iconName: 'data-reset' },
  80. { label: '网络延迟', value: 'wlyc', iconName: 'internet-on' },
  81. ]
  82. export let btnOption = [
  83. { firstLabel: '报警确认', secondLabel: '视屏调取', thirdLabel: '联动控制' },
  84. { firstLabel: '数据导出', secondLabel: '生成报表', thirdLabel: '定位追踪' },
  85. { firstLabel: '声光关闭', secondLabel: '应急广播', thirdLabel: '系统设置' },
  86. ]
  87. //报警监控
  88. export let alarmOption = [
  89. {
  90. label: '今日报警',
  91. value: 'dayWarn',
  92. },
  93. {
  94. label: '已处理',
  95. value: 'warnOk',
  96. },
  97. {
  98. label: '未处理',
  99. value: 'warnUnOk',
  100. },
  101. ]
  102. //区域温度统计
  103. export let chartTempConfig: any = {
  104. type: 'bar_cylinder_wide',
  105. readFrom: '',
  106. grid: {
  107. top: 40,
  108. left: 50,
  109. bottom: 14,
  110. right: 50,
  111. },
  112. legend: { show: false },
  113. xAxis: [{ show: true }],
  114. yAxis: [{ show: true, name: '', position: 'left' }],
  115. series: [{ readFrom: '', xprop: 'x', yprop: 'y', label: '温度' }],
  116. }
  117. //export let envOption = [
  118. // { label: '环境温度', value: 'tempHj', unit: '℃' },
  119. // { label: '风速风向', value: 'fsfx', unit: 'm/s' },
  120. // { label: '温度', value: 'temp', unit: '%' },
  121. // { label: 'CO浓度', value: 'coval', unit: 'ppm' },
  122. // { label: 'CO2浓度', value: 'co2val', unit: 'ppm' },
  123. // { label: 'O2浓度', value: 'o2val', unit: '%' },
  124. // { label: 'Ch4浓度', value: 'ch4val', unit: '%' },
  125. // { label: '粉尘浓度', value: 'fcnd', unit: 'mg/m³' },
  126. // { label: '烟雾指数', value: 'ywzs', unit: '' },
  127. // { label: '地表温度', value: 'tempDb', unit: '℃' },
  128. //]
  129. //用户列表
  130. export let optionUser = [
  131. { label: '用户账号', value: 'username' },
  132. { label: '用户姓名', value: 'realname' },
  133. { label: '所属角色', value: 'userRolesStr' },
  134. { label: '部门', value: 'orgCodeTxt' },
  135. { label: '手机号', value: 'phone' },
  136. { label: '状态', value: 'status_dictText' },
  137. ]
  138. //日志审计
  139. export let logbtnOption = [
  140. { label: '登录日志', value: 'login' },
  141. { label: '操作日志', value: 'operate' },
  142. { label: '浏览日志', value: 'look' },
  143. ]
  144. export let titleOption = [
  145. { label: '操作人ID', value: 'userid' },
  146. { label: '操作人', value: 'username' },
  147. { label: '日志内容', value: 'logContent' },
  148. { label: 'IP', value: 'ip' },
  149. { label: '创建时间', value: 'createTime' },
  150. { label: '日志类型', value: 'logType_dictText' },
  151. ]
  152. export let titleLookOption = [
  153. { label: '操作人ID', value: 'userid' },
  154. { label: '操作人', value: 'username' },
  155. { label: '日志内容', value: 'logContent' },
  156. { label: 'IP', value: 'ip' },
  157. { label: '创建时间', value: 'createTime' },
  158. ]
  159. //今日登录统计
  160. export let dayLoginConfig: any = {
  161. type: 'bar_cylinder_wide',
  162. readFrom: '',
  163. grid: {
  164. top: 55,
  165. left: 20,
  166. bottom: 25,
  167. right: 20,
  168. },
  169. legend: { show: false },
  170. xAxis: [{ show: true }],
  171. yAxis: [{ show: true, name: '', position: 'left' }],
  172. series: [{ readFrom: '', xprop: 'x', yprop: 'y', label: '次数' }],
  173. }
  174. //报警列表表头
  175. export let warnTitle = [
  176. { label: '设备名称', value: 'deviceName' },
  177. { label: '报警类型', value: 'eventTypeC' },
  178. { label: '模式', value: 'mode_dictText' },
  179. { label: '时间', value: 'createTime' },
  180. { label: '操作', value: 'operation' },
  181. ]
  182. export let alarmColumns: any[] = [
  183. {
  184. name: '设备名称',
  185. prop: 'deviceName',
  186. },
  187. {
  188. name: '报警类型',
  189. prop: 'eventTypeC',
  190. },
  191. {
  192. name: '模式',
  193. prop: 'mode_dictText',
  194. },
  195. {
  196. name: '时间',
  197. prop: 'createTime',
  198. },
  199. ]
  200. export let dscAlarmLogColumns: any[] = [
  201. {
  202. name: '设备名称',
  203. prop: 'deviceName',
  204. },
  205. {
  206. name: '安装位置',
  207. prop: 'devicePos',
  208. },
  209. {
  210. name: '报警类型',
  211. prop: 'eventTypeC',
  212. },
  213. {
  214. name: '红外类型',
  215. prop: 'irModel',
  216. },
  217. {
  218. name: '模式',
  219. prop: 'mode',
  220. },
  221. {
  222. name: '红外水平像素',
  223. prop: 'numOfIrHorPixs',
  224. },
  225. {
  226. name: '红外垂直像素',
  227. prop: 'numOfIrVerPixs',
  228. },
  229. {
  230. name: '云台水平角',
  231. prop: 'ptzHorAngle',
  232. },
  233. {
  234. name: '云台垂直角',
  235. prop: 'ptzVerAngle',
  236. },
  237. ]
  238. //联动规则配置
  239. export let warnTableConfig: any = {
  240. readFrom: '',
  241. type: 'C',
  242. tableReadFrom: 'warnInfo',
  243. columns: [
  244. {
  245. name: '报警条目',
  246. prop: 'alarmName',
  247. },
  248. {
  249. name: '预警等级',
  250. prop: 'alarmLevel',
  251. },
  252. {
  253. name: '所属系统',
  254. prop: 'systemType_dictText',
  255. },
  256. {
  257. name: '预警类型',
  258. prop: 'alarmType_dictText',
  259. },
  260. {
  261. name: '创建人',
  262. prop: 'createBy',
  263. },
  264. {
  265. name: '操作',
  266. prop: 'operation',
  267. },
  268. ],
  269. }
  270. export let warnTableConfigD: any = {
  271. readFrom: '',
  272. type: 'D',
  273. }
  274. //视频预览-报警列表表头
  275. export let videoColumns: any[] = [
  276. {
  277. name: '设备号',
  278. prop: 'preset',
  279. },
  280. {
  281. name: '设备名称',
  282. prop: 'deviceName',
  283. },
  284. {
  285. name: '设备安装位置',
  286. prop: 'devicePos',
  287. },
  288. {
  289. name: '报警类型',
  290. prop: 'eventTypeC',
  291. },
  292. //{
  293. //name: '红外类型',
  294. //prop: 'irModel',
  295. //},
  296. {
  297. name: '模式',
  298. prop: 'modeC',
  299. },
  300. {
  301. name: '红外水平像素数量',
  302. prop: 'numOfIrHorPixs',
  303. },
  304. {
  305. name: '红外垂直像素数量',
  306. prop: 'numOfIrVerPixs',
  307. },
  308. {
  309. name: '云台水平角',
  310. prop: 'ptzHorAngle',
  311. },
  312. {
  313. name: '云台垂直角',
  314. prop: 'ptzVerAngle',
  315. },
  316. {
  317. name: '测温标记',
  318. prop: 'tempFlag',
  319. },
  320. ]
  321. /**视频预览-Tab 标签列表 */
  322. export const tabs: TabItem[] = [
  323. { key: 'device', label: '设备' },
  324. { key: 'stats', label: '统计' },
  325. { key: 'advanced', label: '高级' },
  326. { key: 'angle', label: '角度' },
  327. { key: 'preset', label: '预置位' },
  328. ]
  329. /**云台控制-功能 Tab 列表:云台控制 / 红外控制 / 激光 / 透雾 */
  330. export const tabsPtz: TabItem[] = [
  331. { key: 'ptz', label: '云台控制' },
  332. { key: 'ir', label: '红外控制' },
  333. { key: 'laser', label: '激光' },
  334. { key: 'defog', label: '透雾' },
  335. ]
  336. /**云台控制 - 镜头控制项:变焦、聚焦、光圈 */
  337. export const lensControls: LensControl[] = [
  338. {
  339. key: 'zoom',
  340. plusTip: '焦距变大',
  341. minusTip: '焦距变小',
  342. icon: `<svg viewBox="0 0 24 24" width="18"
  343. height="18"><circle cx="10" cy="10" r="6" fill="none" stroke="#fff" stroke-width="1.6"/><path d="M14.5 14.5 L20 20" stroke="#fff" stroke-width="1.8" stroke-linecap="round"/><path d="M10 7.5 V12.5 M7.5 10 H12.5" stroke="#fff" stroke-width="1.5" stroke-linecap="round"/></svg>`,
  344. },
  345. {
  346. key: 'focus',
  347. plusTip: '焦点前调',
  348. minusTip: '焦点后调',
  349. icon: `<svg viewBox="0 0 24 24" width="18"
  350. height="18"><rect x="3" y="7" width="12" height="10" rx="1.5" fill="none" stroke="#fff" stroke-width="1.5"/><circle cx="9" cy="12" r="2.5" fill="none" stroke="#fff" stroke-width="1.4"/><path d="M15 9.5 L21 7 V17 L15 14.5 Z" fill="none" stroke="#fff" stroke-width="1.4" stroke-linejoin="round"/></svg>`,
  351. },
  352. {
  353. key: 'iris',
  354. plusTip: '光圈扩大',
  355. minusTip: '光圈缩小',
  356. icon: `<svg viewBox="0 0 24 24" width="18"
  357. height="18"><circle cx="12" cy="12" r="8" fill="none" stroke="#fff" stroke-width="1.4"/><path d="M12 4 L14.5 10.5 L21 12 L14.5 13.5 L12 20 L9.5 13.5 L3 12 L9.5 10.5 Z" fill="none" stroke="#fff" stroke-width="1.2" stroke-linejoin="round"/></svg>`,
  358. },
  359. ]
  360. export let picList = [
  361. { src: getAssetURL('home-container/configurable/hsq/4-1.png'), label: '1.报警触发' },
  362. { src: getAssetURL('home-container/configurable/hsq/6-1.png'), label: '2.系统确认' },
  363. { src: getAssetURL('home-container/configurable/hsq/6-2.png'), label: '3.通知值班' },
  364. { src: getAssetURL('home-container/configurable/hsq/4-4.png'), label: '4.现场处置' },
  365. { src: getAssetURL('home-container/configurable/hsq/4-5.png'), label: '5.确认解除' },
  366. ]
  367. /** 处置流程按钮 */
  368. export const actionBtns = [
  369. { key: 2, label: '系统确认' },
  370. { key: 3, label: '通知值班' },
  371. { key: 4, label: '现场处置' },
  372. { key: 5, label: '确认解除' },
  373. ]
  374. export let navList =[
  375. { label: '光谱摄像机', value: 'duaSpeCamera' },
  376. { label: '火灾探测器', value: 'imgFireDet' }
  377. ]
  378. export let titleList =[
  379. { label: '用户', value: 'username' },
  380. { label: '操作设备', value: 'devicename' },
  381. { label: '操作记录', value: 'strremark' },
  382. { label: '登录IP', value: 'ip' },
  383. { label: '时间', value: 'updateTime' },
  384. ]
  385. /** 角度默认值(刷新时恢复) */
  386. export const ANGLE_DEFAULT: AngleState = {
  387. hMin: 0,
  388. hMax: 360,
  389. vMin: 90,
  390. vMax: 180,
  391. }
  392. export const angleFields: AngleField[] = [
  393. { label: '水平扫描角度:', minKey: 'hMin', maxKey: 'hMax' },
  394. { label: '垂直扫描角度:', minKey: 'vMin', maxKey: 'vMax' },
  395. ]
  396. /** 多选框提示:第一个可见光取流,第二个红外取流 */
  397. export const checkTips = ['可见光取流', '红外取流'] as const
  398. /** 告警上报字段(全部可手动输入修改) */
  399. export const alarmReportFieldList: AlarmReportFieldItem[] = [
  400. { key: 'deviceId', label: '设备号', placeholder: '请输入设备号' },
  401. { key: 'deviceName', label: '设备名', placeholder: '请输入设备名' },
  402. { key: 'longitude', label: '设备经度', placeholder: '请输入设备经度' },
  403. { key: 'latitude', label: '设备纬度', placeholder: '请输入设备纬度' },
  404. { key: 'operator', label: '操作员', placeholder: '请输入操作员' },
  405. { key: 'remark', label: '备注', placeholder: '请输入备注' },
  406. ]
  407. /** 预置位工具栏:图标对应 assets/icons 下 1.svg ~ 6.svg */
  408. export const presetToolbarItems: PresetToolbarItem[] = [
  409. { key: 'refresh', icon: '1', title: '刷新' },
  410. { key: 'link', icon: '2', title: '关联' },
  411. { key: 'config', icon: '3', title: '配置' },
  412. { key: 'export', icon: '4', title: '导出' },
  413. { key: 'clear', icon: '5', title: '清空' },
  414. { key: 'delete', icon: '6', title: '删除' },
  415. ]
  416. /** 预置位表格列 */
  417. export const presetColumns = [
  418. { key: 'id', label: '编号' },
  419. { key: 'name', label: '名称' },
  420. { key: 'action', label: '操作' },
  421. ] as const
  422. /** 预置位空表占位行数(对齐设计稿斑马纹区域) */
  423. export const PRESET_EMPTY_ROW_COUNT = 8
  424. /** 激光操作:开/关激光、补光、爆闪 */
  425. export const laserActions: LaserActionItem[] = [
  426. { key: 'laserOn', label: '开激光' },
  427. { key: 'laserOff', label: '关激光' },
  428. { key: 'laserFillLight', label: '补光' },
  429. { key: 'laserStrobe', label: '开爆闪' },
  430. ]