yxpoint.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907
  1. <template>
  2. <div class="devicemenu">
  3. <el-space wrap :size="10">
  4. <el-input
  5. v-model="state.SearchVal"
  6. placeholder="筛选"
  7. style="width: 180px"
  8. size="mini"
  9. />
  10. <el-button class="buttons" size="mini" round @click="search"
  11. >查询</el-button
  12. >
  13. <el-button
  14. class="buttons"
  15. size="mini"
  16. round
  17. @click="handleEdit(state.addFormData)"
  18. :disabled="desc.code == ''"
  19. >新增</el-button
  20. >
  21. <el-upload
  22. class="upload-demo"
  23. :disabled="desc.code == ''"
  24. :action="`${$store.state.baseURL}/device/input`"
  25. :show-file-list="false"
  26. :on-success="handleSuccess"
  27. :on-progress="handleProgress"
  28. :on-error="handleError"
  29. >
  30. <el-button :disabled="desc.code == ''" class="buttons" size="mini" round
  31. >导入</el-button
  32. >
  33. </el-upload>
  34. <el-button
  35. class="buttons"
  36. size="mini"
  37. round
  38. @click="export2Excel"
  39. :disabled="desc.code == ''"
  40. >导出</el-button
  41. >
  42. </el-space>
  43. </div>
  44. <div class="yxpoint-table">
  45. <el-table
  46. :data="state.pointTableData"
  47. stripe
  48. :height="`calc(100% - 45px)`"
  49. style="width: 100%; height: calc(100% - 45px)"
  50. >
  51. <el-table-column type="index" width="50" />
  52. <el-table-column prop="metricCode" label="测点编码"></el-table-column>
  53. <el-table-column label="名称">
  54. <template #default="scope">
  55. <el-popover
  56. placement="right"
  57. popper-class="point-popover"
  58. :width="260"
  59. trigger="click"
  60. >
  61. <template #reference>
  62. <el-button
  63. type="text"
  64. :style="`color: ${
  65. $store.state.theme ? '#1890ff' : '#47aee7'
  66. } !important`"
  67. size="small"
  68. @click="handleClick(scope)"
  69. >{{ scope.row.name }}</el-button
  70. >
  71. </template>
  72. <el-table
  73. size="mini"
  74. :data="scope.row.deviceModelMetrics"
  75. max-height="400px"
  76. >
  77. <el-table-column
  78. property="deviceModel"
  79. label="机型"
  80. align="center"
  81. ></el-table-column>
  82. <el-table-column
  83. property="uniformCode"
  84. label="统一编码"
  85. align="center"
  86. ></el-table-column>
  87. <el-table-column
  88. property="multiplier"
  89. label="倍率"
  90. align="center"
  91. ></el-table-column>
  92. </el-table>
  93. </el-popover>
  94. </template>
  95. </el-table-column>
  96. <el-table-column
  97. v-for="(item, index) in state.tableHeader"
  98. :key="index"
  99. :prop="item.code"
  100. :label="item.text"
  101. >
  102. <template #default="{ row }">
  103. {{ row[item.code] ? row[item.code] : "--" }}
  104. </template>
  105. </el-table-column>
  106. <el-table-column label="操作" width="180" align="center">
  107. <template #default="scope">
  108. <el-button
  109. type="text"
  110. :style="`color: ${
  111. $store.state.theme ? '#1890ff' : '#47aee7'
  112. } !important`"
  113. @click="handleEdit(scope.row)"
  114. >编辑</el-button
  115. >
  116. <el-button
  117. type="text"
  118. :style="`color: #f25656 !important`"
  119. @click="handleDelete(scope.row)"
  120. >删除</el-button
  121. >
  122. </template>
  123. </el-table-column>
  124. </el-table>
  125. <div class="pagination">
  126. <el-pagination
  127. class="b"
  128. layout="total, sizes, prev, pager, next"
  129. :page-sizes="[19, 50, 100, 200, 500]"
  130. @size-change="
  131. (value) => {
  132. query.limit = value;
  133. query.page = 1;
  134. getPoint(desc);
  135. }
  136. "
  137. :current-page="query.page"
  138. :page-size="query.limit"
  139. :total="pageTotal"
  140. @current-change="handlePageChange"
  141. ></el-pagination>
  142. </div>
  143. </div>
  144. <!-- 传感点编辑弹出框 -->
  145. <el-dialog v-model="editVisible" width="40%">
  146. <el-form :model="editFormData" label-width="80px">
  147. <el-form-item label="编码">
  148. <el-input v-model="editFormData.metricCode"></el-input>
  149. </el-form-item>
  150. <el-row :gutter="24">
  151. <el-col :span="12">
  152. <el-form-item label="名称">
  153. <el-input v-model="editFormData.name"></el-input>
  154. </el-form-item>
  155. </el-col>
  156. <el-col :span="12">
  157. <el-form-item label="英文名称">
  158. <el-input v-model="editFormData.enname"></el-input>
  159. </el-form-item>
  160. </el-col>
  161. </el-row>
  162. <el-row :gutter="24">
  163. <el-col :span="12">
  164. <el-form-item label="标准单位">
  165. <el-input v-model="editFormData.unitname"></el-input>
  166. </el-form-item>
  167. </el-col>
  168. <el-col :span="12">
  169. <el-form-item label="单位名称">
  170. <el-input v-model="editFormData.unitnamecn"></el-input>
  171. </el-form-item>
  172. </el-col>
  173. </el-row>
  174. <el-form-item label="描述">
  175. <el-input
  176. v-model="editFormData.description"
  177. :rows="3"
  178. type="textarea"
  179. clearable
  180. ></el-input>
  181. </el-form-item>
  182. <el-row :gutter="24">
  183. <el-col :span="12">
  184. <el-form-item label="数据类型">
  185. <el-select v-model="editFormData.categorydata" placeholder="Select">
  186. <el-option
  187. v-for="item in state.categorydataoptions"
  188. :key="item"
  189. :label="item"
  190. :value="item"
  191. >
  192. </el-option>
  193. </el-select>
  194. </el-form-item>
  195. </el-col>
  196. <el-col :span="12">
  197. <el-form-item label="结构">
  198. <el-cascader
  199. v-model="editFormData.structureCode"
  200. :options="cascaderdata"
  201. :props="{ checkStrictly: true, emitPath: false }"
  202. clearable
  203. />
  204. </el-form-item>
  205. </el-col>
  206. </el-row>
  207. <el-row :gutter="24">
  208. <el-col :span="12">
  209. <el-form-item label="物理类型">
  210. <el-input v-model="editFormData.categorysci"></el-input>
  211. </el-form-item>
  212. </el-col>
  213. <el-col :span="12">
  214. <el-form-item label="系统分类">
  215. <el-input v-model="editFormData.categorysys"></el-input>
  216. </el-form-item>
  217. </el-col>
  218. </el-row>
  219. <el-form-item label="适配机型" class="deviceModelClass">
  220. <el-select
  221. v-model="state.deviceModelSel"
  222. style="margin-right: 20px"
  223. placeholder="新增机型"
  224. size="mini"
  225. >
  226. <el-option
  227. v-for="item in state.deviceModel"
  228. :key="item.code"
  229. :label="item.code"
  230. :value="item.code"
  231. >
  232. </el-option>
  233. </el-select>
  234. <el-button
  235. v-show="state.deviceModelSel != ''"
  236. size="mini"
  237. class="buttons"
  238. round
  239. @click="deviceModelAdd()"
  240. >新增机型
  241. </el-button>
  242. <el-table
  243. :data="editFormData.deviceModelMetrics"
  244. style="width: 100%; margin-top: 10px"
  245. max-height="200px"
  246. >
  247. <el-table-column prop="deviceModel" label="机型" />
  248. <el-table-column label="倍率">
  249. <template #default="scope">
  250. <el-input v-model="scope.row.multiplier" size="mini" />
  251. </template>
  252. </el-table-column>
  253. <el-table-column label="统一编码">
  254. <template #default="scope">
  255. <el-input v-model="scope.row.uniformCode" size="mini" />
  256. </template>
  257. </el-table-column>
  258. </el-table>
  259. </el-form-item>
  260. </el-form>
  261. <template #footer>
  262. <span class="footerButton">
  263. <el-button size="mini" round @click="editVisible = false"
  264. >取 消</el-button
  265. >
  266. <el-button size="mini" round @click="saveEdit">确 定</el-button>
  267. </span>
  268. </template>
  269. </el-dialog>
  270. </template>
  271. <script setup>
  272. import { ref, onMounted, inject, reactive, watch } from "vue";
  273. import { ElMessageBox, ElMessage } from "element-plus";
  274. import {
  275. point,
  276. metrics,
  277. delmetrics,
  278. device_list,
  279. getWtModel,
  280. } from "@/api/zhbj/index.js";
  281. import { outExportExcel } from "@/tools/excel/exportExcel.js"; //引入文件
  282. onMounted(() => {
  283. getPoint(desc.value);
  284. getDeviceModel();
  285. getequipmentmodel_list();
  286. });
  287. let editFormData = ref({});
  288. let editVisible = ref(false); //传感点
  289. let desc = inject("desc");
  290. let treeId = inject("treeId");
  291. let cascaderdata = inject("cascaderdata");
  292. watch(
  293. () => treeId,
  294. (newV, old) => {
  295. state.addFormData.structureCode = desc.value.code;
  296. getPoint(desc.value);
  297. },
  298. {
  299. deep: true,
  300. }
  301. );
  302. let state = reactive({
  303. tableHeader: [
  304. { text: "单位", code: "unitName" },
  305. { text: "测点类型", code: "categoryData" },
  306. { text: "物理类型", code: "categorysci" },
  307. { text: "数据类型", code: "categorysci" },
  308. { text: "描述", code: "description" },
  309. ],
  310. pointTableData: [
  311. {
  312. id: "1156264805150367744",
  313. deviceId: "windturbine",
  314. structureCode: "101010213",
  315. metricCode: "AI0002",
  316. name: "风机故障2",
  317. enname: "",
  318. unitName: "",
  319. unitNamecn: "",
  320. categoryData: "AI",
  321. categorysci: "",
  322. categorysys: null,
  323. categoryres1: null,
  324. categoryres2: null,
  325. categoryres3: null,
  326. categoryres4: null,
  327. categoryres5: null,
  328. description: "风机故障2",
  329. deviceModelMetrics: null,
  330. },
  331. {
  332. id: "1155576066015109120",
  333. deviceId: "windturbine",
  334. structureCode: "101010213",
  335. metricCode: "AI0002",
  336. name: "风机故障2",
  337. enname: "",
  338. unitName: "",
  339. unitNamecn: "",
  340. categoryData: "AI",
  341. categorysci: "",
  342. categorysys: null,
  343. categoryres1: null,
  344. categoryres2: null,
  345. categoryres3: null,
  346. categoryres4: null,
  347. categoryres5: null,
  348. description: "风机故障2",
  349. deviceModelMetrics: null,
  350. },
  351. {
  352. id: "1160891964355649536",
  353. deviceId: "windturbine",
  354. structureCode: "101010213",
  355. metricCode: "AI0002",
  356. name: "风机故障2",
  357. enname: "",
  358. unitName: "",
  359. unitNamecn: "",
  360. categoryData: "AI",
  361. categorysci: "",
  362. categorysys: null,
  363. categoryres1: null,
  364. categoryres2: null,
  365. categoryres3: null,
  366. categoryres4: null,
  367. categoryres5: null,
  368. description: "风机故障2",
  369. deviceModelMetrics: null,
  370. },
  371. {
  372. id: "1155913526452559872",
  373. deviceId: "windturbine",
  374. structureCode: "101010213",
  375. metricCode: "AI0002",
  376. name: "风机故障2",
  377. enname: "",
  378. unitName: "",
  379. unitNamecn: "",
  380. categoryData: "AI",
  381. categorysci: "",
  382. categorysys: null,
  383. categoryres1: null,
  384. categoryres2: null,
  385. categoryres3: null,
  386. categoryres4: null,
  387. categoryres5: null,
  388. description: "风机故障2",
  389. deviceModelMetrics: null,
  390. },
  391. {
  392. id: "1155913553241579520",
  393. deviceId: "windturbine",
  394. structureCode: "101010213",
  395. metricCode: "AI0002",
  396. name: "风机故障2",
  397. enname: "",
  398. unitName: "",
  399. unitNamecn: "",
  400. categoryData: "AI",
  401. categorysci: "",
  402. categorysys: null,
  403. categoryres1: null,
  404. categoryres2: null,
  405. categoryres3: null,
  406. categoryres4: null,
  407. categoryres5: null,
  408. description: "风机故障2",
  409. deviceModelMetrics: null,
  410. },
  411. {
  412. id: "1156259746740051968",
  413. deviceId: "windturbine",
  414. structureCode: "101010213",
  415. metricCode: "AI0002",
  416. name: "风机故障2",
  417. enname: "",
  418. unitName: "",
  419. unitNamecn: "",
  420. categoryData: "AI",
  421. categorysci: "",
  422. categorysys: null,
  423. categoryres1: null,
  424. categoryres2: null,
  425. categoryres3: null,
  426. categoryres4: null,
  427. categoryres5: null,
  428. description: "风机故障2",
  429. deviceModelMetrics: null,
  430. },
  431. {
  432. id: "1156267504902217728",
  433. deviceId: "windturbine",
  434. structureCode: "101010213",
  435. metricCode: "AI0002",
  436. name: "风机故障2",
  437. enname: "",
  438. unitName: "",
  439. unitNamecn: "",
  440. categoryData: "AI",
  441. categorysci: "",
  442. categorysys: null,
  443. categoryres1: null,
  444. categoryres2: null,
  445. categoryres3: null,
  446. categoryres4: null,
  447. categoryres5: null,
  448. description: "风机故障2",
  449. deviceModelMetrics: null,
  450. },
  451. {
  452. id: "1160891930474061824",
  453. deviceId: "windturbine",
  454. structureCode: "101010213",
  455. metricCode: "AI0002",
  456. name: "风机故障2",
  457. enname: "",
  458. unitName: "",
  459. unitNamecn: "",
  460. categoryData: "AI",
  461. categorysci: "",
  462. categorysys: null,
  463. categoryres1: null,
  464. categoryres2: null,
  465. categoryres3: null,
  466. categoryres4: null,
  467. categoryres5: null,
  468. description: "风机故障2",
  469. deviceModelMetrics: null,
  470. },
  471. {
  472. id: "1156260274253471744",
  473. deviceId: "windturbine",
  474. structureCode: "101010213",
  475. metricCode: "AI0002",
  476. name: "风机故障2",
  477. enname: "",
  478. unitName: "",
  479. unitNamecn: "",
  480. categoryData: "AI",
  481. categorysci: "",
  482. categorysys: null,
  483. categoryres1: null,
  484. categoryres2: null,
  485. categoryres3: null,
  486. categoryres4: null,
  487. categoryres5: null,
  488. description: "风机故障2",
  489. deviceModelMetrics: null,
  490. },
  491. {
  492. id: "1156267544110571520",
  493. deviceId: "windturbine",
  494. structureCode: "101010213",
  495. metricCode: "AI0002",
  496. name: "风机故障2",
  497. enname: "",
  498. unitName: "",
  499. unitNamecn: "",
  500. categoryData: "AI",
  501. categorysci: "",
  502. categorysys: null,
  503. categoryres1: null,
  504. categoryres2: null,
  505. categoryres3: null,
  506. categoryres4: null,
  507. categoryres5: null,
  508. description: "风机故障2",
  509. deviceModelMetrics: null,
  510. },
  511. {
  512. id: "1156260130451759104",
  513. deviceId: "windturbine",
  514. structureCode: "101010213",
  515. metricCode: "AI0002",
  516. name: "风机故障2",
  517. enname: "",
  518. unitName: "",
  519. unitNamecn: "",
  520. categoryData: "AI",
  521. categorysci: "",
  522. categorysys: null,
  523. categoryres1: null,
  524. categoryres2: null,
  525. categoryres3: null,
  526. categoryres4: null,
  527. categoryres5: null,
  528. description: "风机故障2",
  529. deviceModelMetrics: null,
  530. },
  531. {
  532. id: "1156265364842487808",
  533. deviceId: "windturbine",
  534. structureCode: "101010213",
  535. metricCode: "AI0002",
  536. name: "风机故障2",
  537. enname: "",
  538. unitName: "",
  539. unitNamecn: "",
  540. categoryData: "AI",
  541. categorysci: "",
  542. categorysys: null,
  543. categoryres1: null,
  544. categoryres2: null,
  545. categoryres3: null,
  546. categoryres4: null,
  547. categoryres5: null,
  548. description: "风机故障2",
  549. deviceModelMetrics: null,
  550. },
  551. {
  552. id: "1155576093894647808",
  553. deviceId: "windturbine",
  554. structureCode: "101010213",
  555. metricCode: "AI0002",
  556. name: "风机故障2",
  557. enname: "",
  558. unitName: "",
  559. unitNamecn: "",
  560. categoryData: "AI",
  561. categorysci: "",
  562. categorysys: null,
  563. categoryres1: null,
  564. categoryres2: null,
  565. categoryres3: null,
  566. categoryres4: null,
  567. categoryres5: null,
  568. description: "风机故障2",
  569. deviceModelMetrics: null,
  570. },
  571. {
  572. id: "1155803930232758272",
  573. deviceId: "windturbine",
  574. structureCode: "101010213",
  575. metricCode: "AI0003",
  576. name: "风机故障3",
  577. enname: "",
  578. unitName: "",
  579. unitNamecn: "",
  580. categoryData: "AI",
  581. categorysci: "",
  582. categorysys: null,
  583. categoryres1: null,
  584. categoryres2: null,
  585. categoryres3: null,
  586. categoryres4: null,
  587. categoryres5: null,
  588. description: "风机故障3",
  589. deviceModelMetrics: null,
  590. },
  591. {
  592. id: "1155803963267096576",
  593. deviceId: "windturbine",
  594. structureCode: "101010213",
  595. metricCode: "AI0003",
  596. name: "风机故障3",
  597. enname: "",
  598. unitName: "",
  599. unitNamecn: "",
  600. categoryData: "AI",
  601. categorysci: "",
  602. categorysys: null,
  603. categoryres1: null,
  604. categoryres2: null,
  605. categoryres3: null,
  606. categoryres4: null,
  607. categoryres5: null,
  608. description: "风机故障3",
  609. deviceModelMetrics: null,
  610. },
  611. {
  612. id: "1155911734918520832",
  613. deviceId: "windturbine",
  614. structureCode: "101010213",
  615. metricCode: "AI0005",
  616. name: "风机故障5",
  617. enname: "",
  618. unitName: "",
  619. unitNamecn: "",
  620. categoryData: "AI",
  621. categorysci: "",
  622. categorysys: null,
  623. categoryres1: null,
  624. categoryres2: null,
  625. categoryres3: null,
  626. categoryres4: null,
  627. categoryres5: null,
  628. description: "风机故障5",
  629. deviceModelMetrics: null,
  630. },
  631. {
  632. id: "1155911780854538240",
  633. deviceId: "windturbine",
  634. structureCode: "101010213",
  635. metricCode: "AI0005",
  636. name: "风机故障5",
  637. enname: "",
  638. unitName: "",
  639. unitNamecn: "",
  640. categoryData: "AI",
  641. categorysci: "",
  642. categorysys: null,
  643. categoryres1: null,
  644. categoryres2: null,
  645. categoryres3: null,
  646. categoryres4: null,
  647. categoryres5: null,
  648. description: "风机故障5",
  649. deviceModelMetrics: null,
  650. },
  651. {
  652. id: "6",
  653. deviceId: "windturbine",
  654. structureCode: "101010213",
  655. metricCode: "AI0006",
  656. name: "风机故障6",
  657. enname: "",
  658. unitName: "",
  659. unitNamecn: "",
  660. categoryData: "AI",
  661. categorysci: "",
  662. categorysys: null,
  663. categoryres1: null,
  664. categoryres2: null,
  665. categoryres3: null,
  666. categoryres4: null,
  667. categoryres5: null,
  668. description: "风机故障6",
  669. deviceModelMetrics: null,
  670. },
  671. {
  672. id: "7",
  673. deviceId: "windturbine",
  674. structureCode: "101010213",
  675. metricCode: "AI0007",
  676. name: "风机故障7",
  677. enname: "",
  678. unitName: "",
  679. unitNamecn: "",
  680. categoryData: "AI",
  681. categorysci: "",
  682. categorysys: null,
  683. categoryres1: null,
  684. categoryres2: null,
  685. categoryres3: null,
  686. categoryres4: null,
  687. categoryres5: null,
  688. description: "风机故障7",
  689. deviceModelMetrics: null,
  690. },
  691. ],
  692. SearchVal: "",
  693. selectPoint: "",
  694. selectModel: "",
  695. modelList: [],
  696. categorydataoptions: ["AI", "DI", "CI"],
  697. addFormData: {
  698. categorydata: "AI",
  699. categoryres1: null,
  700. categoryres2: null,
  701. categoryres3: null,
  702. categoryres4: null,
  703. categoryres5: null,
  704. categorysci: null,
  705. categorysys: null,
  706. description: null,
  707. deviceId: "windturbine",
  708. enname: null,
  709. id: null,
  710. metricCode: "",
  711. name: "",
  712. structureCode: "",
  713. unitname: null,
  714. unitnamecn: null,
  715. deviceModelMetrics: [],
  716. },
  717. });
  718. const query = reactive({
  719. page: 1,
  720. limit: 19,
  721. });
  722. let pageTotal = ref(0);
  723. const search = async () => {
  724. getPoint(desc.value);
  725. };
  726. // getPoint
  727. const getPoint = async (node) => {
  728. const res = await point(
  729. node.code,
  730. query.page,
  731. query.limit,
  732. state.selectPoint,
  733. state.SearchVal,
  734. "windturbine",
  735. state.selectModel
  736. );
  737. pageTotal.value = res.total;
  738. state.pointTableData = res.records
  739. ?.sort((a, b) => {
  740. return a.id - b.id;
  741. })
  742. .map((item, index) => {
  743. return { ...item, index: index + 1 };
  744. });
  745. };
  746. // 机型
  747. const getequipmentmodel_list = async () => {
  748. const { data } = await getWtModel();
  749. state.modelList = data;
  750. };
  751. // 测点 编辑
  752. const handleEdit = (row) => {
  753. if (!row.deviceModelMetrics) {
  754. row.deviceModelMetrics = [];
  755. }
  756. editFormData.value = row;
  757. editVisible.value = true;
  758. };
  759. //测点 add
  760. const postmetrics = async () => {
  761. const res = await metrics(editFormData.value);
  762. if (res.code == 200) {
  763. ElMessage.success(`操作成功!`);
  764. editVisible.value = false;
  765. } else {
  766. ElMessage.success(res.msg);
  767. }
  768. getPoint(desc.value);
  769. };
  770. // 保存编辑
  771. const saveEdit = async () => {
  772. postmetrics();
  773. };
  774. // 测点 删除
  775. const handleDelete = (row) => {
  776. // 二次确认删除
  777. ElMessageBox.confirm("确定要删除吗?", "提示", {
  778. type: "warning",
  779. })
  780. .then(async () => {
  781. const res = await delmetrics(row.id);
  782. if (res == 1) {
  783. ElMessage.success(`删除成功!`);
  784. } else {
  785. ElMessage.success("删除失败");
  786. }
  787. getPoint(desc.value);
  788. })
  789. .catch(() => {});
  790. };
  791. //deviceModelAdd 新增机型
  792. const deviceModelAdd = async () => {
  793. if (state.deviceModelSel == "") return;
  794. let obj = {
  795. deviceId: editFormData.value.deviceId,
  796. deviceModel: state.deviceModelSel,
  797. id: null,
  798. metricCode: editFormData.value.metricCode,
  799. multiplier: 0,
  800. uniformCode: "",
  801. };
  802. editFormData.value.deviceModelMetrics.push(obj);
  803. };
  804. //getDeviceModel
  805. const getDeviceModel = async () => {
  806. const res = await device_list();
  807. state.deviceModel = res;
  808. };
  809. // 分页导航
  810. const handlePageChange = (val) => {
  811. query.page = val;
  812. getPoint(desc.value);
  813. };
  814. // 批量导入
  815. const handleSuccess = (response, file, fileList) => {
  816. ElMessage.success("导入成功!");
  817. getPoint(desc.value);
  818. };
  819. const handleProgress = (response, file, fileList) => {};
  820. const handleError = (response, file, fileList) => {
  821. ElMessage.success("导入失败!");
  822. };
  823. // 批量导出
  824. const export2Excel = async () => {
  825. const tableData = await point(
  826. desc.value.code,
  827. 1,
  828. 99999999,
  829. state.selectPoint,
  830. state.SearchVal,
  831. "windturbine",
  832. state.selectModel
  833. );
  834. ElMessage.success(`导出成功!`);
  835. const tableHeader = [
  836. "上级结构编码",
  837. "测点编码",
  838. "名称",
  839. "英文名称",
  840. "单位",
  841. "测点类型",
  842. "物理类型",
  843. "描述",
  844. ];
  845. const tableKey = [
  846. "structureCode",
  847. "metricCode",
  848. "name",
  849. "enname",
  850. "unitname",
  851. "categorydata",
  852. "categorysci",
  853. "description",
  854. ];
  855. outExportExcel(tableHeader, tableKey, tableData.records, "测点导出excel");
  856. };
  857. const handleClick = ({ row }) => {};
  858. </script>
  859. <style lang="less" scoped>
  860. .buttons {
  861. background-color: rgba(5, 187, 76, 0.2);
  862. border: 1px solid #3b6c53;
  863. color: #b3b3b3;
  864. font-size: 14px;
  865. &:hover {
  866. background-color: rgba(5, 187, 76, 0.5);
  867. color: #ffffff;
  868. }
  869. }
  870. .yxpoint-table {
  871. height: calc(100% - 39px);
  872. }
  873. .pagination {
  874. margin-top: 15px;
  875. }
  876. </style>
  877. <style lang="less">
  878. .point-popover {
  879. &.is-light {
  880. background: #081410;
  881. }
  882. .el-table {
  883. background: transparent;
  884. & th.el-table__cell {
  885. background: transparent;
  886. }
  887. & tr {
  888. background-color: transparent;
  889. }
  890. &::before {
  891. background-color: transparent;
  892. }
  893. }
  894. .el-popper__arrow::before {
  895. background: #081410 !important;
  896. border: 1px solid #081410 !important;
  897. }
  898. }
  899. </style>