main.data.ts 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363
  1. import { BasicColumn } from '/@/components/Table';
  2. import { FormSchema } from '/@/components/Table';
  3. import { rules } from '/@/utils/helper/validator';
  4. import { reactive } from 'vue';
  5. import type { EChartsOption } from 'echarts';
  6. type CtrlLockOpenType = {
  7. CtrlLockOpen: boolean | undefined;
  8. CtrlExplosionVentOpen: boolean | undefined;
  9. };
  10. export type PointMonitorType = {
  11. valueName: string;
  12. valueCode: string;
  13. value: number | string;
  14. warnMin_201: number | string;
  15. warnMin_104: number | string;
  16. readTime: string;
  17. };
  18. export const columns: BasicColumn[] = [
  19. {
  20. title: '名称',
  21. dataIndex: 'strname',
  22. width: 120,
  23. },
  24. {
  25. title: '安装位置',
  26. dataIndex: 'strinstallpos',
  27. width: 100,
  28. },
  29. {
  30. title: '是否为常闭型',
  31. dataIndex: 'bnormalclose',
  32. width: 100,
  33. // customRender: render.renderAvatar,
  34. },
  35. {
  36. title: '净宽',
  37. dataIndex: 'fclearwidth',
  38. width: 80,
  39. },
  40. {
  41. title: '净高',
  42. dataIndex: 'fclearheight',
  43. width: 100,
  44. },
  45. {
  46. title: '风门道数',
  47. dataIndex: 'ndoorcount',
  48. width: 100,
  49. },
  50. {
  51. title: '所属分站',
  52. width: 150,
  53. dataIndex: 'stationname',
  54. },
  55. {
  56. title: '点表',
  57. width: 100,
  58. dataIndex: 'strtype',
  59. },
  60. {
  61. title: '监测类型',
  62. dataIndex: 'monitorflag',
  63. width: 100,
  64. },
  65. {
  66. title: '是否模拟数据',
  67. dataIndex: 'testflag',
  68. width: 100,
  69. },
  70. ];
  71. export const recycleColumns: BasicColumn[] = [
  72. {
  73. title: '名称',
  74. dataIndex: 'strname',
  75. width: 100,
  76. },
  77. {
  78. title: '是否为常闭型',
  79. dataIndex: 'bnormalclose',
  80. width: 100,
  81. },
  82. ];
  83. export const searchFormSchema: FormSchema[] = [
  84. {
  85. label: '名称',
  86. field: 'strname',
  87. component: 'Input',
  88. colProps: { span: 6 },
  89. },
  90. {
  91. label: '安装位置',
  92. field: 'strinstallpos',
  93. component: 'Input',
  94. colProps: { span: 6 },
  95. },
  96. {
  97. label: '是否为常闭型',
  98. field: 'bnormalclose',
  99. component: 'JDictSelectTag',
  100. componentProps: {
  101. dictCode: 'user_status',
  102. placeholder: '请选择读写类型',
  103. stringToNumber: true,
  104. },
  105. colProps: { span: 6 },
  106. },
  107. ];
  108. export const formSchema: FormSchema[] = [
  109. {
  110. label: '',
  111. field: 'id',
  112. component: 'Input',
  113. show: false,
  114. },
  115. {
  116. label: '名称',
  117. field: 'strname',
  118. component: 'Input',
  119. },
  120. {
  121. label: '安装位置',
  122. field: 'strinstallpos',
  123. component: 'Input',
  124. },
  125. {
  126. label: '是否为常闭型',
  127. field: 'bnormalclose',
  128. component: 'RadioGroup',
  129. defaultValue: 1,
  130. componentProps: () => {
  131. return {
  132. options: [
  133. { label: '是', value: 1, key: '1' },
  134. { label: '否', value: 0, key: '2' },
  135. ],
  136. };
  137. },
  138. },
  139. {
  140. label: '净宽',
  141. field: 'fclearwidth',
  142. component: 'Input',
  143. },
  144. {
  145. label: '净高',
  146. field: 'fclearheight',
  147. component: 'Input',
  148. },
  149. {
  150. label: '风门道数',
  151. field: 'ndoorcount',
  152. component: 'Input',
  153. },
  154. {
  155. label: '所属分站',
  156. field: 'stationname',
  157. component: 'JDictSelectTag',
  158. componentProps: {
  159. dictCode: 'user_status',
  160. placeholder: '请选择状态',
  161. stringToNumber: true,
  162. },
  163. },
  164. {
  165. label: '点表',
  166. field: 'strtype',
  167. component: 'JDictSelectTag',
  168. componentProps: {
  169. dictCode: 'user_status',
  170. placeholder: '请选择状态',
  171. stringToNumber: true,
  172. },
  173. },
  174. {
  175. label: '监测类型',
  176. field: 'monitorflag',
  177. component: 'JDictSelectTag',
  178. componentProps: {
  179. dictCode: 'user_status',
  180. placeholder: '请选择状态',
  181. stringToNumber: true,
  182. },
  183. },
  184. {
  185. label: '是否模拟数据',
  186. field: 'testflag',
  187. component: 'RadioGroup',
  188. defaultValue: 1,
  189. componentProps: () => {
  190. return {
  191. options: [
  192. { label: '是', value: 1, key: '1' },
  193. { label: '否', value: 0, key: '2' },
  194. ],
  195. };
  196. },
  197. },
  198. ];
  199. export const tableColumns = [
  200. {
  201. title: '',
  202. dataIndex: 'isCheck',
  203. customCell: (_, index) => {
  204. if (index % 2 == 0) {
  205. return { rowSpan: 2 };
  206. } else {
  207. return { rowSpan: 0 };
  208. }
  209. },
  210. },
  211. {
  212. title: '安装位置',
  213. dataIndex: 'address',
  214. customCell: (_, index) => {
  215. if (index % 2 == 0) {
  216. return { rowSpan: 2 };
  217. } else {
  218. return { rowSpan: 0 };
  219. }
  220. },
  221. },
  222. {
  223. title: '运行风机',
  224. dataIndex: 'childName',
  225. },
  226. {
  227. title: '风机静压(Pa)',
  228. dataIndex: 'yc2',
  229. },
  230. {
  231. title: '风机全压(Pa)',
  232. dataIndex: 'dqPa',
  233. },
  234. {
  235. title: '电机流量(m³/s)',
  236. dataIndex: 'fanM3',
  237. },
  238. {
  239. title: '电机速度(rpm/s)',
  240. dataIndex: 'fanSD',
  241. },
  242. {
  243. title: '电机电压(V)',
  244. dataIndex: 'fanU',
  245. },
  246. {
  247. title: '电机电流(A)',
  248. dataIndex: 'fanA',
  249. },
  250. {
  251. title: '电机频率(Hz/s)',
  252. dataIndex: 'fanPL',
  253. },
  254. {
  255. title: '电机功率(KW/s)',
  256. dataIndex: 'fanGL',
  257. },
  258. {
  259. title: '振动X1(mm/s)',
  260. dataIndex: 'zdX1',
  261. },
  262. {
  263. title: '振动Y1(mm/s)',
  264. dataIndex: 'zdY1',
  265. },
  266. ];
  267. export const dataColumns = () => {
  268. return [
  269. {
  270. id: 'UXC',
  271. name: '电机轴温设定(℃)',
  272. id2: 'bearingFront2_F1',
  273. },
  274. { id: 'VXC', name: '电机定温设定(℃)', id2: 'bearingBack2_F1' },
  275. {
  276. id: 'WXC',
  277. name: '电机前轴温度(℃)',
  278. id2: 'stator2A_F1',
  279. },
  280. {
  281. id: 'QZC',
  282. name: '电机后轴温度(℃)',
  283. id2: 'stator2B_F1',
  284. },
  285. { id: 'ZCZ1C', name: '电机定子1温度(℃)', id2: 'fIA2_F1' },
  286. { id: 'ZCZ2C', name: '电机定子2温度(℃)', id2: 'fIB2_F1' },
  287. { id: 'FTZ1C', name: '电机定3温度(℃)', id2: 'fIC2_F1' },
  288. ];
  289. };
  290. export const stateColumns = () => {
  291. return [
  292. // {
  293. // id: 'lubeBoxTemperatureF1High',
  294. // name: '润滑站油箱油温高报警',
  295. // flag: false,
  296. // },
  297. {
  298. id: 'lubeBoxTemperatureF1Low',
  299. name: '润滑站1油箱油温低报警',
  300. flag: true,
  301. },
  302. {
  303. id: 'lubeTemperatureF1High',
  304. name: '润滑站1供油油温高报警',
  305. flag: true,
  306. },
  307. // {
  308. // id: 'lubeTemperatureF1Low',
  309. // name: '润滑站1供油油温低报警',
  310. // flag: false,
  311. // },
  312. { id: 'lubePaF1High', name: '润滑站1供油油压高报警', flag: true },
  313. { id: 'lubePaF1Low', name: '润滑站1供油油压低报警', flag: true },
  314. // { id: "ch4_F1High", name: "瓦斯值1高报警", flag: false },
  315. { id: 'singleDoorF1Warn', name: '侧开风门单模报警', flag: true },
  316. { id: 'lubeF1SlightFault', name: '稀油润滑站轻故障', flag: true },
  317. { id: 'lubeF1SevereFault', name: '稀油润滑站重故障', flag: true },
  318. { id: 'f1B1Fault', name: '变频器1故障', flag: true },
  319. { id: 'f1B2Fault', name: '变频器2故障', flag: true },
  320. { id: 'f1Fault', name: '通风机故障', flag: true },
  321. ];
  322. };
  323. export const faultDeviceHeader = [
  324. {
  325. title: '测点名称',
  326. code: 'valueName',
  327. width: '200px',
  328. },
  329. {
  330. title: '实时数据',
  331. code: 'value',
  332. width: '110px',
  333. },
  334. {
  335. title: '预警限值',
  336. code: 'warnMax_104',
  337. width: '110px',
  338. },
  339. {
  340. title: '报警限值',
  341. code: 'warnMax_201',
  342. width: '110px',
  343. },
  344. ];
  345. export const rightFaultDeviceColumns = [
  346. {
  347. title: '中端X',
  348. dataIndex: 'Fault_cd_ZX', // 测点名称
  349. width: 120,
  350. },
  351. {
  352. title: '中端X',
  353. dataIndex: 'Fault_ZX_val', // 中端X实时监测值
  354. width: 120,
  355. },
  356. ];
  357. export const modalTypeArr = {
  358. centerBtnArr: [
  359. {
  360. key: 'startSmoke',
  361. value: '启动/停止',
  362. permission: 'fan:startSmoke',
  363. },
  364. {
  365. key: 'startFan',
  366. value: '启动/停止',
  367. permission: 'fan:startFan',
  368. },
  369. {
  370. key: 'resetFan',
  371. value: '一键复位',
  372. permission: 'fan:resetFan',
  373. },
  374. {
  375. key: 'changeSmoke',
  376. value: '不停风倒机',
  377. permission: 'fan:changeSmoke',
  378. },
  379. {
  380. key: 'changeDirection',
  381. value: '一键反风',
  382. permission: 'fan:changeDirection',
  383. },
  384. {
  385. key: 'frequency',
  386. value: '一键调频',
  387. permission: 'fan:frequency',
  388. },
  389. {
  390. key: 'fbm',
  391. value: '防爆门控制',
  392. permission: 'fan:fbm',
  393. },
  394. {
  395. key: 'kkjc',
  396. value: '工况辅助决策',
  397. permission: 'fan:kkjc',
  398. },
  399. {
  400. key: 'zhlk',
  401. value: '自主联控',
  402. permission: 'fan:zhlk',
  403. },
  404. ],
  405. };
  406. export const fbmControlData = <CtrlLockOpenType>reactive({
  407. CtrlLockOpen: false, // 远程开锁 true 为打开状态, false 为关闭状态
  408. CtrlExplosionVentOpen: false, // 远程开门 true 为打开状态, false 为关闭状态
  409. });
  410. // export const assistanceData = {
  411. // '30': {
  412. // angle: 0,
  413. // Hz: 30.0, //频率
  414. // a: -0.17624, //二次项系数
  415. // b: 34.59747, //一次项系数
  416. // c: 938.98517, //常数项系数
  417. // min: 93.0, //风量下限
  418. // max: 132.0, //风量上限
  419. // },
  420. // '31': {
  421. // angle: 0,
  422. // Hz: 31.0,
  423. // a: -0.17624,
  424. // b: 35.055694,
  425. // c: 851.596922,
  426. // min: 96.1,
  427. // max: 136.4,
  428. // },
  429. // '32': {
  430. // angle: 0,
  431. // Hz: 32.0,
  432. // a: -0.17624,
  433. // b: 35.513918,
  434. // c: 768.749733,
  435. // min: 99.2,
  436. // max: 140.8,
  437. // },
  438. // '33': {
  439. // angle: 0,
  440. // Hz: 33.0,
  441. // a: -0.17624,
  442. // b: 35.972142,
  443. // c: 690.443603,
  444. // min: 102.3,
  445. // max: 145.2,
  446. // },
  447. // '34': {
  448. // angle: 0,
  449. // Hz: 34.0,
  450. // a: -0.17624,
  451. // b: 36.430366,
  452. // c: 616.678531,
  453. // min: 105.4,
  454. // max: 149.6,
  455. // },
  456. // '35': {
  457. // angle: 0,
  458. // Hz: 35.0,
  459. // a: -0.17624,
  460. // b: 36.88859,
  461. // c: 547.454517,
  462. // min: 108.5,
  463. // max: 154.0,
  464. // },
  465. // '36': {
  466. // angle: 0,
  467. // Hz: 36.0,
  468. // a: -0.17624,
  469. // b: 37.346814,
  470. // c: 482.771563,
  471. // min: 111.6,
  472. // max: 158.4,
  473. // },
  474. // '37': {
  475. // angle: 0,
  476. // Hz: 37.0,
  477. // a: -0.17624,
  478. // b: 37.805038,
  479. // c: 422.629667,
  480. // min: 114.7,
  481. // max: 162.8,
  482. // },
  483. // '38': {
  484. // angle: 0,
  485. // Hz: 38.0,
  486. // a: -0.17624,
  487. // b: 38.263262,
  488. // c: 367.028829,
  489. // min: 117.8,
  490. // max: 167.2,
  491. // },
  492. // '39': {
  493. // angle: 0,
  494. // Hz: 39.0,
  495. // a: -0.17624,
  496. // b: 38.721486,
  497. // c: 315.96905,
  498. // min: 120.9,
  499. // max: 171.6,
  500. // },
  501. // '40': {
  502. // angle: 0,
  503. // Hz: 40.0,
  504. // a: -0.17624,
  505. // b: 39.17971,
  506. // c: 269.45033,
  507. // min: 124.0,
  508. // max: 176.0,
  509. // },
  510. // '41': {
  511. // angle: 0,
  512. // Hz: 41.0,
  513. // a: -0.17624,
  514. // b: 39.637934,
  515. // c: 227.472668,
  516. // min: 127.1,
  517. // max: 180.4,
  518. // },
  519. // '42': {
  520. // angle: 0,
  521. // Hz: 42.0,
  522. // a: -0.17624,
  523. // b: 40.096158,
  524. // c: 190.036065,
  525. // min: 130.2,
  526. // max: 184.8,
  527. // },
  528. // '43': {
  529. // angle: 0,
  530. // Hz: 43.0,
  531. // a: -0.17624,
  532. // b: 40.554382,
  533. // c: 157.140521,
  534. // min: 133.3,
  535. // max: 189.2,
  536. // },
  537. // '44': {
  538. // angle: 0,
  539. // Hz: 44.0,
  540. // a: -0.17624,
  541. // b: 41.012606,
  542. // c: 128.786035,
  543. // min: 136.4,
  544. // max: 193.6,
  545. // },
  546. // '45': {
  547. // angle: 0,
  548. // Hz: 45.0,
  549. // a: -0.17624,
  550. // b: 41.47083,
  551. // c: 104.972607,
  552. // min: 139.5,
  553. // max: 198.0,
  554. // },
  555. // '46': {
  556. // angle: 0,
  557. // Hz: 46.0,
  558. // a: -0.17624,
  559. // b: 41.929054,
  560. // c: 85.700239,
  561. // min: 142.6,
  562. // max: 202.4,
  563. // },
  564. // '47': {
  565. // angle: 0,
  566. // Hz: 47.0,
  567. // a: -0.17624,
  568. // b: 42.387278,
  569. // c: 70.968929,
  570. // min: 145.7,
  571. // max: 206.8,
  572. // },
  573. // '48': {
  574. // angle: 0,
  575. // Hz: 48.0,
  576. // a: -0.17624,
  577. // b: 42.845502,
  578. // c: 60.778677,
  579. // min: 148.8,
  580. // max: 211.2,
  581. // },
  582. // '49': {
  583. // angle: 0,
  584. // Hz: 49.0,
  585. // a: -0.17624,
  586. // b: 43.303726,
  587. // c: 55.129484,
  588. // min: 151.9,
  589. // max: 215.6,
  590. // },
  591. // '50': {
  592. // angle: 0,
  593. // Hz: 50.0,
  594. // a: -0.17624,
  595. // b: 43.76195,
  596. // c: 54.02135,
  597. // min: 155.0,
  598. // max: 220.0,
  599. // },
  600. // };
  601. export const assistanceData = {
  602. '30': {
  603. angle: 0,
  604. Hz: 30.0, //频率
  605. a: -0.17624, //二次项系数
  606. b: 43.40947, //一次项系数
  607. c: 97.60705999999982, //常数项系数
  608. min: 93.0, //风量下限
  609. max: 132.0, //风量上限
  610. },
  611. '31': {
  612. angle: 0,
  613. Hz: 31.0,
  614. a: -0.17624,
  615. b: 43.427094,
  616. c: 95.43614590000016,
  617. min: 96.1,
  618. max: 136.4,
  619. },
  620. '32': {
  621. angle: 0,
  622. Hz: 32.0,
  623. a: -0.17624,
  624. b: 43.444718,
  625. c: 93.26435059999994,
  626. min: 99.2,
  627. max: 140.8,
  628. },
  629. '33': {
  630. angle: 0,
  631. Hz: 33.0,
  632. a: -0.17624,
  633. b: 43.462342,
  634. c: 91.09167409999964,
  635. min: 102.3,
  636. max: 145.2,
  637. },
  638. '34': {
  639. angle: 0,
  640. Hz: 34.0,
  641. a: -0.17624,
  642. b: 43.479966000000005,
  643. c: 88.91811639999969,
  644. min: 105.4,
  645. max: 149.6,
  646. },
  647. '35': {
  648. angle: 0,
  649. Hz: 35.0,
  650. a: -0.17624,
  651. b: 43.49759,
  652. c: 86.74367749999965,
  653. min: 108.5,
  654. max: 154.0,
  655. },
  656. '36': {
  657. angle: 0,
  658. Hz: 36.0,
  659. a: -0.17624,
  660. b: 43.515214,
  661. c: 84.56835739999997,
  662. min: 111.6,
  663. max: 158.4,
  664. },
  665. '37': {
  666. angle: 0,
  667. Hz: 37.0,
  668. a: -0.17624,
  669. b: 43.532838,
  670. c: 82.3921561000002,
  671. min: 114.7,
  672. max: 162.8,
  673. },
  674. '38': {
  675. angle: 0,
  676. Hz: 38.0,
  677. a: -0.17624,
  678. b: 43.550462,
  679. c: 80.21507359999941,
  680. min: 117.8,
  681. max: 167.2,
  682. },
  683. '39': {
  684. angle: 0,
  685. Hz: 39.0,
  686. a: -0.17624,
  687. b: 43.568086,
  688. c: 78.0371098999999,
  689. min: 120.9,
  690. max: 171.6,
  691. },
  692. '40': {
  693. angle: 0,
  694. Hz: 40.0,
  695. a: -0.17624,
  696. b: 43.58571,
  697. c: 75.85826499999985,
  698. min: 124.0,
  699. max: 176.0,
  700. },
  701. '41': {
  702. angle: 0,
  703. Hz: 41.0,
  704. a: -0.17624,
  705. b: 43.603334,
  706. c: 73.67853890000015,
  707. min: 127.1,
  708. max: 180.4,
  709. },
  710. '42': {
  711. angle: 0,
  712. Hz: 42.0,
  713. a: -0.17624,
  714. b: 43.620958,
  715. c: 71.4979315999999,
  716. min: 130.2,
  717. max: 184.8,
  718. },
  719. '43': {
  720. angle: 0,
  721. Hz: 43.0,
  722. a: -0.17624,
  723. b: 43.638582,
  724. c: 69.31644309999956,
  725. min: 133.3,
  726. max: 189.2,
  727. },
  728. '44': {
  729. angle: 0,
  730. Hz: 44.0,
  731. a: -0.17624,
  732. b: 43.656206000000005,
  733. c: 67.13407339999958,
  734. min: 136.4,
  735. max: 193.6,
  736. },
  737. '45': {
  738. angle: 0,
  739. Hz: 45.0,
  740. a: -0.17624,
  741. b: 43.67383,
  742. c: 64.9508224999995,
  743. min: 139.5,
  744. max: 198.0,
  745. },
  746. '46': {
  747. angle: 0,
  748. Hz: 46.0,
  749. a: -0.17624,
  750. b: 43.691454,
  751. c: 62.76669039999979,
  752. min: 142.6,
  753. max: 202.4,
  754. },
  755. '47': {
  756. angle: 0,
  757. Hz: 47.0,
  758. a: -0.17624,
  759. b: 43.709078,
  760. c: 60.58167709999998,
  761. min: 145.7,
  762. max: 206.8,
  763. },
  764. '48': {
  765. angle: 0,
  766. Hz: 48.0,
  767. a: -0.17624,
  768. b: 43.726702,
  769. c: 58.39578259999962,
  770. min: 148.8,
  771. max: 211.2,
  772. },
  773. '49': {
  774. angle: 0,
  775. Hz: 49.0,
  776. a: -0.17624,
  777. b: 43.744326,
  778. c: 56.20900689999962,
  779. min: 151.9,
  780. max: 215.6,
  781. },
  782. '50': {
  783. angle: 0,
  784. Hz: 50.0,
  785. a: -0.17624,
  786. b: 43.76195,
  787. c: 54.021349999999984,
  788. min: 155.0,
  789. max: 220.0,
  790. },
  791. };
  792. export const option = reactive<EChartsOption>({
  793. title: {
  794. text: '风机运行工况辅助曲线图',
  795. textStyle: {
  796. color: '#BF954D',
  797. },
  798. left: 'center',
  799. top: 0,
  800. },
  801. // backgroundColor: '#39deff',
  802. tooltip: {
  803. trigger: 'axis',
  804. axisPointer: {
  805. type: 'cross',
  806. label: {
  807. backgroundColor: '#6a7985',
  808. },
  809. },
  810. },
  811. toolbox: {
  812. show: true,
  813. },
  814. grid: {
  815. left: 8,
  816. right: 50,
  817. bottom: 0,
  818. containLabel: true,
  819. },
  820. xAxis: {
  821. type: 'category',
  822. name: 'm³/s',
  823. nameTextStyle: {
  824. fontWeight: 600,
  825. fontSize: 13,
  826. },
  827. splitLine: { show: true, lineStyle: { color: 'rgba(21,80,126,.5)' } },
  828. axisLabel: {
  829. margin: 20,
  830. fontSize: 14,
  831. color: '#f1f1f199',
  832. },
  833. boundaryGap: false,
  834. data: [],
  835. },
  836. yAxis: {
  837. type: 'value',
  838. axisLine: {
  839. show: true,
  840. lineStyle: {
  841. color: '#006c9d',
  842. },
  843. },
  844. splitLine: { show: true, lineStyle: { color: 'rgba(21,80,126,.5)' } },
  845. axisLabel: {
  846. show: true,
  847. fontSize: 14,
  848. formatter: '{value}',
  849. color: '#0071A5',
  850. },
  851. min: 0,
  852. max: 4100,
  853. name: 'Pa',
  854. nameTextStyle: {
  855. fontWeight: 600,
  856. fontSize: 13,
  857. },
  858. },
  859. series: [],
  860. });
  861. export const initData = () => {
  862. const assistanceData = {
  863. '30': {
  864. angle: 0,
  865. Hz: 30.0, //频率
  866. a: -0.17624, //二次项系数
  867. b: 43.40947, //一次项系数
  868. c: 97.60705999999982, //常数项系数
  869. min: 93.0, //风量下限
  870. max: 171.0, //风量上限
  871. },
  872. '31': {
  873. angle: 0,
  874. Hz: 31.0,
  875. a: -0.17624,
  876. b: 43.427094,
  877. c: 95.43614590000016,
  878. min: 96.1,
  879. max: 174.4,
  880. },
  881. '32': {
  882. angle: 0,
  883. Hz: 32.0,
  884. a: -0.17624,
  885. b: 43.444718,
  886. c: 93.26435059999994,
  887. min: 99.2,
  888. max: 177.8,
  889. },
  890. '33': {
  891. angle: 0,
  892. Hz: 33.0,
  893. a: -0.17624,
  894. b: 43.462342,
  895. c: 91.09167409999964,
  896. min: 102.3,
  897. max: 182.2,
  898. },
  899. '34': {
  900. angle: 0,
  901. Hz: 34.0,
  902. a: -0.17624,
  903. b: 43.479966000000005,
  904. c: 88.91811639999969,
  905. min: 105.4,
  906. max: 184.0,
  907. },
  908. '35': {
  909. angle: 0,
  910. Hz: 35.0,
  911. a: -0.17624,
  912. b: 43.49759,
  913. c: 86.74367749999965,
  914. min: 108.5,
  915. max: 185.5,
  916. },
  917. '36': {
  918. angle: 0,
  919. Hz: 36.0,
  920. a: -0.17624,
  921. b: 43.515214,
  922. c: 84.56835739999997,
  923. min: 111.6,
  924. max: 187.0,
  925. },
  926. '37': {
  927. angle: 0,
  928. Hz: 37.0,
  929. a: -0.17624,
  930. b: 43.532838,
  931. c: 82.3921561000002,
  932. min: 114.7,
  933. max: 190.8,
  934. },
  935. '38': {
  936. angle: 0,
  937. Hz: 38.0,
  938. a: -0.17624,
  939. b: 43.550462,
  940. c: 80.21507359999941,
  941. min: 117.8,
  942. max: 192.0,
  943. },
  944. '39': {
  945. angle: 0,
  946. Hz: 39.0,
  947. a: -0.17624,
  948. b: 43.568086,
  949. c: 78.0371098999999,
  950. min: 120.9,
  951. max: 194.6,
  952. },
  953. '40': {
  954. angle: 0,
  955. Hz: 40.0,
  956. a: -0.17624,
  957. b: 43.58571,
  958. c: 75.85826499999985,
  959. min: 123.0,
  960. max: 197.0,
  961. },
  962. '41': {
  963. angle: 0,
  964. Hz: 41.0,
  965. a: -0.17624,
  966. b: 43.603334,
  967. c: 73.67853890000015,
  968. min: 125.1,
  969. max: 199.4,
  970. },
  971. '42': {
  972. angle: 0,
  973. Hz: 42.0,
  974. a: -0.17624,
  975. b: 43.620958,
  976. c: 71.4979315999999,
  977. min: 128.2,
  978. max: 202.8,
  979. },
  980. '43': {
  981. angle: 0,
  982. Hz: 43.0,
  983. a: -0.17624,
  984. b: 43.638582,
  985. c: 69.31644309999956,
  986. min: 130.3,
  987. max: 205.8,
  988. },
  989. '44': {
  990. angle: 0,
  991. Hz: 44.0,
  992. a: -0.17624,
  993. b: 43.656206000000005,
  994. c: 67.13407339999958,
  995. min: 132.4,
  996. max: 208.5,
  997. },
  998. '45': {
  999. angle: 0,
  1000. Hz: 45.0,
  1001. a: -0.17624,
  1002. b: 43.67383,
  1003. c: 64.9508224999995,
  1004. min: 134.5,
  1005. max: 211.8,
  1006. },
  1007. '46': {
  1008. angle: 0,
  1009. Hz: 46.0,
  1010. a: -0.17624,
  1011. b: 43.691454,
  1012. c: 62.76669039999979,
  1013. min: 136.6,
  1014. max: 214.4,
  1015. },
  1016. '47': {
  1017. angle: 0,
  1018. Hz: 47.0,
  1019. a: -0.17624,
  1020. b: 43.709078,
  1021. c: 60.58167709999998,
  1022. min: 138.7,
  1023. max: 218.8,
  1024. },
  1025. '48': {
  1026. angle: 0,
  1027. Hz: 48.0,
  1028. a: -0.17624,
  1029. b: 43.726702,
  1030. c: 58.39578259999962,
  1031. min: 140.8,
  1032. max: 220.2,
  1033. },
  1034. '49': {
  1035. angle: 0,
  1036. Hz: 49.0,
  1037. a: -0.17624,
  1038. b: 43.744326,
  1039. c: 56.20900689999962,
  1040. min: 143.9,
  1041. max: 225.6,
  1042. },
  1043. '50': {
  1044. angle: 0,
  1045. Hz: 50.0,
  1046. a: -0.17624,
  1047. b: 43.76195,
  1048. c: 54.021349999999984,
  1049. min: 146.0,
  1050. max: 230.0,
  1051. },
  1052. };
  1053. const num = 21;
  1054. const a = -0.17624,
  1055. m = 2770.6411125432646,
  1056. n = -124.15442010894235;
  1057. let i = 21;
  1058. const data = [];
  1059. for (const key in assistanceData) {
  1060. i -= 1;
  1061. const p = i;
  1062. const item = assistanceData[key];
  1063. item['b'] = 2 * a * (n + p);
  1064. item['c'] = a * (n + p) * (n + p) + m - i * 50;
  1065. data.push(item);
  1066. }
  1067. console.log(data);
  1068. return data;
  1069. };
  1070. export const fanInfoData = reactive({
  1071. fj: '一号回风井',
  1072. xh: 'FBCDZ No.29',
  1073. gl: '2×500',
  1074. edgl: '740',
  1075. eddy: '10000',
  1076. eddl: '38.4',
  1077. flfw: '110~260',
  1078. fyfw: '200~4100',
  1079. fbdj: 'ExdI',
  1080. ccrq: '2010.07',
  1081. sccj: '南阳防爆',
  1082. tjfs: '变频调节',
  1083. plfw: '30~50',
  1084. });
  1085. export const fanInfo = [
  1086. {
  1087. title: '风井',
  1088. code: 'fj',
  1089. value: '一号回风井',
  1090. },
  1091. {
  1092. title: '型号',
  1093. code: 'xh',
  1094. value: 'FBCDZ No.29',
  1095. },
  1096. {
  1097. title: '功率(kW)',
  1098. code: 'gl',
  1099. value: '2×500',
  1100. },
  1101. {
  1102. title: '额定转速(r/min)',
  1103. code: 'edgl',
  1104. value: '740',
  1105. },
  1106. {
  1107. title: '额定电压(V)',
  1108. code: 'eddy',
  1109. value: '10000',
  1110. },
  1111. {
  1112. title: '额定电流(A)',
  1113. code: 'eddl',
  1114. value: '38.4',
  1115. },
  1116. {
  1117. title: '风量范围(m³/s)',
  1118. code: 'flfw',
  1119. value: '110~260',
  1120. },
  1121. {
  1122. title: '风压范围(Pa)',
  1123. code: 'fyfw',
  1124. value: '200~4100',
  1125. },
  1126. {
  1127. title: '防爆等级',
  1128. code: 'fbdj',
  1129. value: 'ExdI',
  1130. },
  1131. {
  1132. title: '出厂日期',
  1133. code: 'ccrq',
  1134. value: '2010.07',
  1135. },
  1136. {
  1137. title: '生产厂家',
  1138. code: 'sccj',
  1139. value: '南阳防爆',
  1140. },
  1141. {
  1142. title: '调节方式',
  1143. code: 'tjfs',
  1144. value: '变频调节',
  1145. },
  1146. {
  1147. title: '频率可调范围(Hz)',
  1148. code: 'plfw',
  1149. value: '30~50',
  1150. },
  1151. ];
  1152. export const getSchamas = (): FormSchema[] => {
  1153. return [
  1154. {
  1155. field: 'fj',
  1156. component: 'Input',
  1157. label: '风井',
  1158. colProps: {
  1159. span: 6,
  1160. },
  1161. },
  1162. {
  1163. field: 'xh',
  1164. component: 'Input',
  1165. label: '型号',
  1166. colProps: {
  1167. span: 6,
  1168. },
  1169. },
  1170. {
  1171. field: 'gl',
  1172. component: 'Input',
  1173. label: '功率(kW)',
  1174. colProps: {
  1175. span: 6,
  1176. },
  1177. },
  1178. {
  1179. field: 'edgl',
  1180. component: 'Input',
  1181. label: '额定转速(r/min)',
  1182. colProps: {
  1183. span: 6,
  1184. },
  1185. },
  1186. {
  1187. field: 'eddy',
  1188. component: 'Input',
  1189. label: '额定电压(V)',
  1190. colProps: {
  1191. span: 6,
  1192. },
  1193. },
  1194. {
  1195. field: 'eddl',
  1196. component: 'Input',
  1197. label: '额定电流(A)',
  1198. colProps: {
  1199. span: 6,
  1200. },
  1201. },
  1202. {
  1203. field: 'flfw',
  1204. component: 'Input',
  1205. label: '风量范围(m³/s)',
  1206. colProps: {
  1207. span: 6,
  1208. },
  1209. },
  1210. {
  1211. field: 'fyfw',
  1212. component: 'Input',
  1213. label: '风压范围(Pa)',
  1214. colProps: {
  1215. span: 6,
  1216. },
  1217. },
  1218. {
  1219. field: 'fbdj',
  1220. component: 'Select',
  1221. label: '防爆等级',
  1222. colProps: {
  1223. span: 6,
  1224. },
  1225. componentProps: {
  1226. options: [
  1227. {
  1228. label: 'ExdI',
  1229. value: 'ExdI',
  1230. key: '1',
  1231. },
  1232. ],
  1233. },
  1234. },
  1235. {
  1236. field: 'ccrq',
  1237. component: 'Input',
  1238. label: '出厂日期',
  1239. colProps: {
  1240. span: 6,
  1241. },
  1242. },
  1243. {
  1244. field: 'sccj',
  1245. component: 'Input',
  1246. label: '生产厂家',
  1247. colProps: {
  1248. span: 6,
  1249. },
  1250. },
  1251. {
  1252. field: 'tjfs',
  1253. component: 'Select',
  1254. label: '调节方式',
  1255. colProps: {
  1256. span: 6,
  1257. },
  1258. componentProps: {
  1259. options: [
  1260. {
  1261. label: '变频调节',
  1262. value: '变频调节',
  1263. key: '1',
  1264. },
  1265. ],
  1266. },
  1267. },
  1268. {
  1269. field: 'plfw',
  1270. component: 'Input',
  1271. label: '频率可调范围(Hz)',
  1272. colProps: {
  1273. span: 6,
  1274. },
  1275. },
  1276. ];
  1277. };
  1278. export const getSchamas1 = (): FormSchema[] => {
  1279. return [
  1280. {
  1281. field: 'Hz',
  1282. component: 'InputNumber',
  1283. label: '频率(Hz)',
  1284. required: true,
  1285. colProps: {
  1286. span: 6,
  1287. },
  1288. },
  1289. {
  1290. field: 'a',
  1291. component: 'InputNumber',
  1292. label: '二次项系数',
  1293. required: true,
  1294. colProps: {
  1295. span: 6,
  1296. },
  1297. },
  1298. {
  1299. field: 'b',
  1300. component: 'InputNumber',
  1301. label: '一次项系数',
  1302. required: true,
  1303. colProps: {
  1304. span: 6,
  1305. },
  1306. },
  1307. {
  1308. field: 'c',
  1309. component: 'InputNumber',
  1310. label: '常数项系数',
  1311. required: true,
  1312. colProps: {
  1313. span: 6,
  1314. },
  1315. },
  1316. {
  1317. field: 'min',
  1318. component: 'InputNumber',
  1319. label: '风量下限(m³/s)',
  1320. required: true,
  1321. colProps: {
  1322. span: 6,
  1323. },
  1324. },
  1325. {
  1326. field: 'max',
  1327. component: 'InputNumber',
  1328. label: '风量上限(m³/s)',
  1329. required: true,
  1330. colProps: {
  1331. span: 6,
  1332. },
  1333. },
  1334. ];
  1335. };
  1336. export const lineFormData = reactive({
  1337. Hz: null,
  1338. a: null,
  1339. b: null,
  1340. c: null,
  1341. min: null,
  1342. max: null,
  1343. });