main.data.ts 25 KB

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