index.vue 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085
  1. /**
  2. *@author:Guoxiaohuan
  3. *@date:2020.06.08
  4. *@info 机房信息主页
  5. */
  6. <template>
  7. <div class='compute-box'>
  8. <el-dialog :title='`${systemName}`||"机房"' :visible.sync='visible' :fullscreen='true'>
  9. <div class='compute-span'></div>
  10. <div class='compute-zf' @click='jumpFloor'></div>
  11. <div class='compute-tab'>
  12. <el-tabs v-model='activeName' @tab-click='handleClick'>
  13. <el-tab-pane label='机房布置图' name='1'>
  14. <room-table1 v-if='tableImg.length>=0' :tableImg='tableImg'></room-table1>
  15. </el-tab-pane>
  16. <el-tab-pane label='配电室低压柜及出线明细表' name='2'>
  17. <div class='compute-center'>
  18. <Select
  19. width='200'
  20. @change='Index1'
  21. v-model='floor2'
  22. tipPlace='top'
  23. caption='楼层:'
  24. :selectdata='floorSelect'
  25. :placeholder='"请选择"'
  26. style='margin-right:12px'
  27. ></Select>
  28. <el-input
  29. clearable
  30. @change='Index1'
  31. v-model='ctbhInput'
  32. placeholder='搜索抽屉编号'
  33. size='small'
  34. prefix-icon='el-icon-search'
  35. style='width:200px;margin-right:12px'
  36. ></el-input>
  37. <el-input
  38. clearable
  39. @change='Index1'
  40. v-model='cxggInput'
  41. placeholder='搜索出线规格'
  42. size='small'
  43. prefix-icon='el-icon-search'
  44. style='width:200px;margin-right:12px'
  45. ></el-input>
  46. <el-input
  47. clearable
  48. @change='Index1'
  49. v-model='djbhInput'
  50. placeholder='搜索电井编号'
  51. size='small'
  52. prefix-icon='el-icon-search'
  53. style='width:200px;margin-right:12px'
  54. ></el-input>
  55. <el-input
  56. clearable
  57. @change='Index1'
  58. v-model='kzhlInput'
  59. placeholder='搜索控制回路'
  60. size='small'
  61. prefix-icon='el-icon-search'
  62. style='width:200px;margin-right:12px'
  63. ></el-input>
  64. </div>
  65. <room-table2
  66. v-if='table2.length>=0'
  67. :table2='table2'
  68. :loading='loading1'
  69. :page='page1'
  70. :total='total1'
  71. :size='size1'
  72. @Index1Emit='Index1Emit'
  73. ></room-table2>
  74. </el-tab-pane>
  75. <el-tab-pane label='机房内核心设备' name='3'>
  76. <div class='compute-center'>
  77. <el-input
  78. clearable
  79. placeholder='搜索设备简称'
  80. size='small'
  81. prefix-icon='el-icon-search'
  82. v-model='sbjcInput'
  83. @change='Index2'
  84. style='width:200px;margin-right:12px'
  85. ></el-input>
  86. <el-input
  87. clearable
  88. @change='Index2'
  89. placeholder='搜索品牌、型号'
  90. size='small'
  91. prefix-icon='el-icon-search'
  92. v-model='ppxhInput'
  93. style='width:200px;margin-right:12px'
  94. ></el-input>
  95. <Select
  96. width='200'
  97. @change='Index2'
  98. tipPlace='top'
  99. v-model='floorChange'
  100. caption='楼层:'
  101. :selectdata='floorSelect'
  102. :placeholder='"请选择"'
  103. style='margin-right:12px'
  104. ></Select>
  105. <el-input
  106. clearable
  107. @change='Index2'
  108. placeholder='搜索生产厂商'
  109. size='small'
  110. prefix-icon='el-icon-search'
  111. v-model='sccsInput'
  112. style='width:200px;margin-right:12px'
  113. ></el-input>
  114. </div>
  115. <room-table3
  116. v-if='table3.length>=0'
  117. :table3='table3'
  118. :loading='loading2'
  119. :page='page2'
  120. :total='total2'
  121. :size='size2'
  122. @Index2Emit='Index2Emit'
  123. ></room-table3>
  124. </el-tab-pane>
  125. <el-tab-pane label='维修记录' name='4'>
  126. <div class='compute-center'>
  127. <el-input
  128. clearable
  129. @change='Index3'
  130. placeholder='搜索设备名称、编号'
  131. size='small'
  132. prefix-icon='el-icon-search'
  133. v-model='sbmcInput4'
  134. style='width:200px;margin-right:12px'
  135. ></el-input>
  136. <el-input
  137. clearable
  138. @change='Index3'
  139. placeholder='搜索重要事项记录、描述'
  140. size='small'
  141. prefix-icon='el-icon-search'
  142. v-model='zysxInput4'
  143. style='width:200px;margin-right:12px'
  144. ></el-input>
  145. <Select
  146. @change='Index3'
  147. width='200'
  148. tipPlace='top'
  149. caption='是否更换:'
  150. v-model='sfghSelect'
  151. :selectdata='isReplaceData'
  152. :placeholder='"请选择"'
  153. style='margin-right:12px'
  154. ></Select>
  155. <el-input
  156. clearable
  157. @change='Index3'
  158. placeholder='搜索工单编号'
  159. size='small'
  160. prefix-icon='el-icon-search'
  161. v-model='gdbhInput4'
  162. style='width:200px;margin-right:12px'
  163. ></el-input>
  164. <div class='picker-box'>
  165. <span class='picker-span'>填报日期:</span>
  166. <el-date-picker
  167. style='width:190px'
  168. v-model='tbsjDate'
  169. value-format='yyyyMMdd'
  170. type='daterange'
  171. @change='Index3'
  172. size='mini'
  173. range-separator='-'
  174. start-placeholder
  175. end-placeholder
  176. ></el-date-picker>
  177. </div>
  178. <!-- <p class='input-dialog-p'>填报日期</p>
  179. <p class='input-dialog-p2'>
  180. <el-date-picker
  181. clearable
  182. v-model='tbsjDate'
  183. value-format='yyyyMMdd'
  184. type='daterange'
  185. size='mini'
  186. style='margin-right:12px;width:200px'
  187. range-separator='-'
  188. start-placeholder
  189. end-placeholder
  190. ></el-date-picker>
  191. </p>-->
  192. </div>
  193. <div class='dialog-none'>
  194. <div class='input-dialog'>
  195. <div class='input-dialog-top' @click='show'>
  196. <img src='@/assets/imgs/select.png' />
  197. 筛选
  198. </div>
  199. <div class='input-dialog-form' v-if='dialogFormVisible'>
  200. <p class='input-dialog-p'>验收日期</p>
  201. <p class='input-dialog-p2'>
  202. <el-date-picker
  203. clearable
  204. v-model='yssjDate'
  205. value-format='yyyyMMdd'
  206. type='daterange'
  207. size='mini'
  208. style='margin-right:12px;width:200px'
  209. range-separator='-'
  210. start-placeholder
  211. end-placeholder
  212. ></el-date-picker>
  213. </p>
  214. <!-- <p class='input-dialog-p'>工单编号</p>
  215. <p class='input-dialog-p2'>
  216. <el-input
  217. clearable
  218. placeholder
  219. style='width:200px;'
  220. size='mini'
  221. prefix-icon='el-icon-search'
  222. v-model='gdbhInput4'
  223. ></el-input>
  224. </p>-->
  225. <p class='input-dialog-foot'>
  226. <el-button @click='dialogFormVisible = false' size='mini'>取 消</el-button>
  227. <el-button type='primary' @click='confirm
  228. ' size='mini'>确 定</el-button>
  229. </p>
  230. </div>
  231. </div>
  232. </div>
  233. <room-table4
  234. v-if='table4.length>=0'
  235. :table4='table4'
  236. :loading='loading3'
  237. :page='page3'
  238. :total='total3'
  239. :size='size3'
  240. @Index3Emit='Index3Emit'
  241. ></room-table4>
  242. </el-tab-pane>
  243. <el-tab-pane label='维保记录' name='5'>
  244. <div class='compute-center'>
  245. <el-input
  246. @change='Index4'
  247. clearable
  248. placeholder='搜索设备名称、编号'
  249. size='small'
  250. prefix-icon='el-icon-search'
  251. v-model='sbmcInput5'
  252. style='margin-right:12px;width:220px;'
  253. ></el-input>
  254. <el-input
  255. @change='Index4'
  256. clearable
  257. placeholder='搜索核心维保事项记录描述'
  258. size='small'
  259. prefix-icon='el-icon-search'
  260. v-model='wbsxjlInput5'
  261. style='margin-right:12px;width:220px;'
  262. ></el-input>
  263. <el-input
  264. @change='Index4'
  265. clearable
  266. placeholder='搜索任务编号'
  267. size='small'
  268. prefix-icon='el-icon-search'
  269. v-model='rwbhInput5'
  270. style='margin-right:12px;width:220px;'
  271. ></el-input>
  272. <Select
  273. width='220'
  274. tipPlace='top'
  275. v-model='statuSelect5'
  276. caption='任务状态'
  277. v-if='status.length>0'
  278. :selectdata='status'
  279. :placeholder='"请选择"'
  280. style='margin-right:12px'
  281. ></Select>
  282. <Select
  283. width='220'
  284. tipPlace='top'
  285. v-model='iszcSelect5'
  286. caption='是否正常:'
  287. v-if='zt.length>0'
  288. :selectdata='zt'
  289. :placeholder='"请选择"'
  290. style='margin-right:12px'
  291. ></Select>
  292. </div>
  293. <div class='dialog-none'>
  294. <div class='input-dialog'>
  295. <div class='input-dialog-top' @click='show'>
  296. <img src='@/assets/imgs/select.png' />
  297. 筛选
  298. </div>
  299. <div class='input-dialog-form' v-if='dialogFormVisible'>
  300. <p class='input-dialog-p'>任务开始日期</p>
  301. <p class='input-dialog-p2'>
  302. <el-date-picker
  303. clearable
  304. value-format='yyyyMMdd'
  305. type='daterange'
  306. size='mini'
  307. v-model='rwksrq'
  308. style='width:200px'
  309. range-separator='-'
  310. start-placeholder
  311. end-placeholder
  312. ></el-date-picker>
  313. </p>
  314. <p class='input-dialog-p'>任务完成日期</p>
  315. <p class='input-dialog-p2'>
  316. <el-date-picker
  317. clearable
  318. value-format='yyyyMMdd'
  319. type='daterange'
  320. size='mini'
  321. v-model='rwwcrq'
  322. style='width:200px'
  323. range-separator='-'
  324. start-placeholder
  325. end-placeholder
  326. ></el-date-picker>
  327. </p>
  328. <!-- <el-input
  329. @change='Index4'
  330. clearable
  331. placeholder='异常工单编号'
  332. size='small'
  333. prefix-icon='el-icon-search'
  334. v-model='ycgdbhInput5'
  335. style='margin-right:12px;width:220px;'
  336. ></el-input>-->
  337. <p class='input-dialog-p'>异常工单编号</p>
  338. <p class='input-dialog-p2'>
  339. <el-input
  340. clearable
  341. placeholder='异常工单编号'
  342. size='small'
  343. prefix-icon='el-icon-search'
  344. v-model='ycgdbhInput5'
  345. style='width:200px;'
  346. ></el-input>
  347. </p>
  348. <p class='input-dialog-p'>异常工单填报日期</p>
  349. <p class='input-dialog-p2'>
  350. <el-date-picker
  351. clearable
  352. value-format='yyyyMMdd'
  353. type='daterange'
  354. size='mini'
  355. v-model='ycgdtbsj'
  356. style='width:200px'
  357. range-separator='-'
  358. start-placeholder
  359. end-placeholder
  360. ></el-date-picker>
  361. </p>
  362. <p class='input-dialog-p'>异常工单验收日期</p>
  363. <p class='input-dialog-p2'>
  364. <el-date-picker
  365. clearable
  366. value-format='yyyyMMdd'
  367. type='daterange'
  368. size='mini'
  369. style='width:200px'
  370. range-separator='-'
  371. start-placeholder
  372. end-placeholder
  373. v-model='ycgdyssj'
  374. ></el-date-picker>
  375. </p>
  376. <p class='input-dialog-foot'>
  377. <el-button @click='dialogFormVisible = false' size='mini'>取 消</el-button>
  378. <el-button type='primary' @click='confirm2' size='mini'>确 定</el-button>
  379. </p>
  380. </div>
  381. </div>
  382. </div>
  383. <room-table5
  384. v-if='table5.length>=0'
  385. :table5='table5'
  386. :loading='loading4'
  387. :page='page4'
  388. :total='total4'
  389. :size='size4'
  390. @Index4Emit='Index4Emit'
  391. ></room-table5>
  392. </el-tab-pane>
  393. </el-tabs>
  394. </div>
  395. </el-dialog>
  396. </div>
  397. </template>
  398. <script>
  399. import { queryEquipmentList } from '@/api/equipmentList.js'
  400. import { queryDygjcxline, queryHxsb, queryWxjf, queryWb, querySystem } from '@/api/room.js'
  401. import roomTable1 from './room1'
  402. import roomTable2 from './room2'
  403. import roomTable3 from './room3'
  404. import roomTable4 from './room4'
  405. import roomTable5 from './room5'
  406. import { mapGetters } from 'vuex'
  407. import { querySelect, queryPic } from '@/api/public.js'
  408. import InputDialog from './inputDialog'
  409. export default {
  410. data() {
  411. return {
  412. activeName: '1',
  413. visible: false,
  414. dialogFormVisible: false,
  415. systemName: '',
  416. loading: true,
  417. loading1: true,
  418. loading2: true,
  419. loading3: true,
  420. loading4: true,
  421. table2: [],
  422. table3: [],
  423. table4: [],
  424. table5: [],
  425. //
  426. total: 0,
  427. page: 1,
  428. size: 10,
  429. picFloor: '',
  430. tableImg: [],
  431. //
  432. total1: 0,
  433. page1: 1,
  434. size1: 10,
  435. floor2: '',
  436. ctbhInput: '',
  437. cxggInput: '',
  438. djbhInput: '',
  439. kzhlInput: '',
  440. //
  441. total2: 0,
  442. page2: 1,
  443. size2: 10,
  444. sccsInput: '',
  445. ppxhInput: '',
  446. sbjcInput: '',
  447. floorChange: '',
  448. //
  449. total3: 0,
  450. page3: 1,
  451. size3: 11,
  452. tbsjDate: '',
  453. yssjDate: '',
  454. // 是否更换配件
  455. isReplaceData: [
  456. { id: '1', name: '是' },
  457. { id: '0', name: '否' }
  458. ],
  459. sfghSelect: '',
  460. sbmcInput4: '',
  461. sbbhInput4: '',
  462. zysxInput4: '',
  463. msInput4: '',
  464. gdbhInput4: '',
  465. type1: 'wx',
  466. //
  467. total4: 0,
  468. page4: 1,
  469. size4: 11,
  470. searVal: '',
  471. status: [],
  472. zt: [],
  473. sbmcInput5: '',
  474. sbbhInput5: '',
  475. wbsxjlInput5: '',
  476. rwbhInput5: '',
  477. ycgdbhInput5: '',
  478. ssmsInput5: '',
  479. iszcSelect5: '',
  480. statuSelect5: '',
  481. rwksrq: '',
  482. rwwcrq: '',
  483. ycgdtbsj: '',
  484. ycgdyssj: '',
  485. smsxtArr: []
  486. }
  487. },
  488. components: {
  489. roomTable1,
  490. roomTable2,
  491. roomTable3,
  492. roomTable4,
  493. roomTable5,
  494. InputDialog
  495. },
  496. computed: {
  497. ...mapGetters(['floorSelect'])
  498. },
  499. methods: {
  500. handleClick(tab) {
  501. if (tab.index == '0') {
  502. this.Index()
  503. } else if (tab.index == '1') {
  504. this.Index1()
  505. } else if (tab.index == '2') {
  506. this.Index2()
  507. } else if (tab.index == '3') {
  508. this.Index3()
  509. } else if (tab.index == '4') {
  510. this.Index4()
  511. this.changeSelect()
  512. }
  513. },
  514. show() {
  515. this.dialogFormVisible = !this.dialogFormVisible
  516. },
  517. Index() {
  518. this.picFloor = this.$cookie.get('floorNow')
  519. let getParams = {
  520. typename: '位置布置图',
  521. location: '1809',
  522. module: '1002',
  523. system: '1002',
  524. // floor: this.picFloor,
  525. plazaId: this.$store.state.plazaId
  526. }
  527. queryPic({ getParams }).then(res => {
  528. console.log('机房布置图', res)
  529. this.tableImg = res.data ? res.data : []
  530. })
  531. },
  532. // 明细表
  533. Index1() {
  534. let getParams = {
  535. location: '1890',
  536. plazaId: this.$store.state.plazaId,
  537. page: this.page1,
  538. size: this.size1
  539. }
  540. if (this.floor2) {
  541. getParams.floor = this.floor2
  542. }
  543. if (this.ctbhInput) {
  544. if (getParams.keyword) {
  545. getParams.keyword = `${getParams.keyword + ';' + this.ctbhInput}:drawernum`
  546. } else {
  547. getParams.keyword = `${this.ctbhInput}:drawernum`
  548. }
  549. }
  550. if (this.cxggInput) {
  551. if (getParams.keyword) {
  552. getParams.keyword = `${getParams.keyword + ';' + this.cxggInput}:outspec`
  553. } else {
  554. getParams.keyword = `${this.cxggInput}:outspec`
  555. }
  556. }
  557. if (this.djbhInput) {
  558. if (getParams.keyword) {
  559. getParams.keyword = `${getParams.keyword + ';' + this.djbhInput}:wellnum`
  560. } else {
  561. getParams.keyword = `${this.djbhInput}:wellnum`
  562. }
  563. }
  564. if (this.kzhlInput) {
  565. if (getParams.keyword) {
  566. getParams.keyword = `${getParams.keyword + ';' + this.kzhlInput}:control`
  567. } else {
  568. getParams.keyword = `${this.kzhlInput}:control`
  569. }
  570. }
  571. queryDygjcxline({ getParams }).then(res => {
  572. if (res.result == 'success') {
  573. this.loading1 = false
  574. this.total1 = res.count
  575. this.table2 = res.data ? res.data : []
  576. console.log('明细表', res)
  577. }
  578. })
  579. },
  580. // 核心设备
  581. Index2() {
  582. let postParams = {}
  583. let data = {
  584. location: '1890',
  585. plazaId: this.$store.state.plazaId,
  586. page: this.page2,
  587. size: this.size2
  588. }
  589. if (this.sbjcInput) {
  590. if (data.keyword) {
  591. data.keyword = `${data.keyword + ';' + this.sbjcInput}:sbjc`
  592. } else {
  593. data.keyword = `${this.sbjcInput}:sbjc`
  594. }
  595. }
  596. if (this.ppxhInput) {
  597. if (data.keyword) {
  598. data.keyword = `${data.keyword + ';' + this.ppxhInput}:brand,sbxh`
  599. } else {
  600. data.keyword = `${this.ppxhInput}:brand,sbxh`
  601. }
  602. }
  603. if (this.sccsInput) {
  604. if (data.keyword) {
  605. data.keyword = `${data.keyword + ';' + this.sccsInput}:manufacturer`
  606. } else {
  607. data.keyword = `${this.sccsInput}:manufacturer`
  608. }
  609. }
  610. if (this.floorChange) {
  611. data.floor = this.floorChange
  612. }
  613. queryHxsb({ data, postParams }).then(res => {
  614. console.log('核心设备', res)
  615. this.loading2 = false
  616. this.total2 = res.data.count
  617. this.table3 = res.data.data ? res.data.data : []
  618. })
  619. },
  620. Index1Emit(val) {
  621. this.page1 = val
  622. this.Index1()
  623. },
  624. Index2Emit(val) {
  625. this.page2 = val
  626. this.Index2()
  627. },
  628. Index3Emit(val) {
  629. this.page3 = val
  630. this.Index3()
  631. },
  632. Index4Emit(val) {
  633. this.page4 = val
  634. this.Index4()
  635. },
  636. // 维修
  637. Index3() {
  638. let getParams = {
  639. location: '1890',
  640. // plazaId: '1001145',
  641. plazaId: this.$store.state.plazaId,
  642. page: this.page3,
  643. size: this.size3,
  644. orderBy: 'sjjssj,0;location,1'
  645. }
  646. if (this.sfghSelect) {
  647. getParams.ismodel = this.sfghSelect
  648. }
  649. // 设备名称、编号
  650. if (this.sbmcInput4) {
  651. if (getParams.keyword) {
  652. getParams.keyword = `${getParams.keyword + ';' + this.sbmcInput4}:sbmc`
  653. } else {
  654. getParams.keyword = `${this.sbmcInput4}:sbmc,location`
  655. }
  656. }
  657. // 重要事项记录、描述
  658. if (this.zysxInput4) {
  659. if (getParams.keyword) {
  660. getParams.keyword = `${getParams.keyword + ';' + this.zysxInput4}:matters`
  661. } else {
  662. getParams.keyword = `${this.zysxInput4}:matters,manufacturer`
  663. }
  664. }
  665. // 填报时间
  666. if (this.tbsjDate) {
  667. getParams.reportedbyStartDate = this.tbsjDate[0] + '000000'
  668. getParams.reportedbyEndDate = this.tbsjDate[1] + '000000'
  669. }
  670. // 验收时间
  671. if (this.yssjDate) {
  672. getParams.sjjssjStartDate = this.yssjDate[0] + '000000'
  673. getParams.sjjssjEndDate = this.yssjDate[1] + '000000'
  674. }
  675. queryWxjf({ getParams }).then(res => {
  676. console.log('维修', res)
  677. if (res.result == 'success') {
  678. this.loading3 = false
  679. this.total3 = res.count
  680. this.table4 = res.data ? res.data : []
  681. }
  682. })
  683. },
  684. changeIndex3(val) {
  685. if (val.type == 'wx') {
  686. if (val.msInput4) {
  687. this.msInput4 = val.msInput4
  688. }
  689. if (val.zysxInput4) {
  690. this.zysxInput4 = val.zysxInput4
  691. }
  692. if (val.gdbhInput4) {
  693. this.gdbhInput4 = val.gdbhInput4
  694. }
  695. this.Index3()
  696. }
  697. },
  698. // 维保
  699. Index4() {
  700. let postParams = {}
  701. let data = {
  702. location: '1890',
  703. plazaId: this.$store.state.plazaId,
  704. page: this.page4,
  705. size: this.size4,
  706. orderBy: 'wb_gzglid,0;assetnum,1;reportedby,0;'
  707. }
  708. //
  709. // 任务开始日期
  710. if (this.rwksrq) {
  711. data.sjkssjStartDate = this.rwksrq[0] + '000000'
  712. data.sjkssjEndDate = this.rwksrq[1] + '000000'
  713. }
  714. // 任务完成日期
  715. if (this.rwwcrq) {
  716. data.sjwcsjStartDate = this.rwwcrq[0] + '000000'
  717. data.sjwcsjEndDate = this.rwwcrq[1] + '000000'
  718. }
  719. // 异常工单填报时间
  720. if (this.ycgdtbsj) {
  721. data.reportdateStartDate = this.ycgdtbsj[0] + '000000'
  722. data.reportdateEndDate = this.ycgdtbsj[1] + '000000'
  723. }
  724. // 异常工单验收时间
  725. if (this.ycgdyssj) {
  726. data.sjjssjStartDate = this.ycgdyssj[0] + '000000'
  727. data.sjjssjEndDate = this.ycgdyssj[1] + '000000'
  728. }
  729. //
  730. // 是否正常
  731. if (this.iszcSelect5) {
  732. data.zt = this.iszcSelect5
  733. }
  734. // 任务状态
  735. if (this.statuSelect5) {
  736. data.status = this.statuSelect5
  737. }
  738. if (this.sbmcInput5) {
  739. if (data.keyword) {
  740. data.keyword = `${data.keyword + ';' + this.sbmcInput5}:sbmc,assetnum`
  741. } else {
  742. data.keyword = `${this.sbmcInput5}:sbmc,assetnum`
  743. }
  744. }
  745. if (this.wbsxjlInput5) {
  746. if (data.keyword) {
  747. data.keyword = `${data.keyword + ';' + this.wbsxjlInput5}:matters`
  748. } else {
  749. data.keyword = `${this.wbsxjlInput5}:matters,description`
  750. }
  751. }
  752. if (this.rwbhInput5) {
  753. if (data.keyword) {
  754. data.keyword = `${data.keyword + ';' + this.rwbhInput5}:wb_gzglid`
  755. } else {
  756. data.keyword = `${this.rwbhInput5}:wb_gzglid`
  757. }
  758. }
  759. if (this.ycgdbhInput5) {
  760. if (data.keyword) {
  761. data.keyword = `${data.keyword + ';' + this.ycgdbhInput5}:wonum`
  762. } else {
  763. data.keyword = `${this.ycgdbhInput5}:wonum`
  764. }
  765. }
  766. queryWb({ data, postParams }).then(res => {
  767. console.log('维保', res)
  768. this.loading4 = false
  769. this.total4 = res.data.count
  770. this.table5 = res.data.data ? res.data.data : []
  771. })
  772. },
  773. confirm() {
  774. this.Index3()
  775. },
  776. confirm2() {
  777. this.Index4()
  778. },
  779. changeSelect() {
  780. this.department = []
  781. let postParams = [
  782. {
  783. columnName: { status: 'status', zt: 'zt' },
  784. tableName: 'v_glsms_wbzy'
  785. }
  786. ]
  787. let data = {
  788. plazaId: this.$store.state.plazaId
  789. }
  790. querySelect({ data, postParams }).then(res => {
  791. console.log('下拉框', res)
  792. let status = [],
  793. zt = []
  794. status = res.data.data.v_glsms_wbzy.status ? res.data.data.v_glsms_wbzy.status : []
  795. zt = res.data.data.v_glsms_wbzy.zt ? res.data.data.v_glsms_wbzy.zt : []
  796. if (status.length > 0) {
  797. status.forEach(el => {
  798. let obj = {
  799. id: el.key,
  800. name: el.value
  801. }
  802. this.status.push(obj)
  803. })
  804. }
  805. if (zt.length > 0) {
  806. zt.forEach(el => {
  807. let obj = {
  808. id: el.key,
  809. name: el.value == '正常' ? '是' : '否'
  810. }
  811. this.zt.push(obj)
  812. })
  813. }
  814. })
  815. },
  816. init() {
  817. this.smsxtArr = []
  818. let params = {
  819. getParams: {
  820. locationid: '5209',
  821. plazaId: this.$store.state.plazaId
  822. }
  823. }
  824. querySystem(params).then(res => {
  825. console.log('系统', res.data[0])
  826. this.smsxtArr = res.data[0]
  827. })
  828. },
  829. open(name) {
  830. this.visible = true
  831. this.systemName = name
  832. },
  833. jumpFloor() {
  834. if (location.pathname.split('/')[3] == 'equipment') {
  835. this.$router.push({ path: '/home/floorFunc' })
  836. } else {
  837. this.$router.push({ path: '/home/equipment' })
  838. }
  839. }
  840. },
  841. mounted() {
  842. this.init()
  843. this.Index()
  844. },
  845. watch: {}
  846. }
  847. </script>
  848. <style lang="less" scoped>
  849. .compute-box {
  850. .compute-zf {
  851. width: 15px;
  852. height: 13px;
  853. background: url('../../assets/imgs/zffx.png');
  854. background-repeat: no-repeat;
  855. background-size: 100% 100%;
  856. position: absolute;
  857. right: 74px;
  858. top: 25px;
  859. cursor: pointer;
  860. &::after {
  861. content: '';
  862. position: absolute;
  863. right: -16px;
  864. width: 1px;
  865. height: 16px;
  866. background: rgba(216, 216, 216, 1);
  867. }
  868. }
  869. .picker-box {
  870. display: flex;
  871. align-items: center;
  872. background: #fff;
  873. padding: 0 6px;
  874. border: 1px solid #dcdfe6;
  875. border-radius: 4px;
  876. height: 32px;
  877. box-sizing: border-box;
  878. margin-right: 12px;
  879. .picker-span {
  880. margin-right: 6px;
  881. color: rgba(0, 0, 0, 0.65);
  882. }
  883. }
  884. .compute-span {
  885. width: 100%;
  886. height: 1px;
  887. background: rgba(0, 0, 0, 0.06);
  888. margin-bottom: 20px;
  889. }
  890. .compute-center {
  891. display: flex;
  892. align-items: center;
  893. margin-bottom: 12px;
  894. }
  895. //
  896. .dialog-none {
  897. width: 100px;
  898. position: absolute;
  899. right: 0;
  900. .input-dialog {
  901. .input-dialog-top {
  902. color: #c3c7cb;
  903. cursor: pointer;
  904. position: absolute;
  905. top: -45px;
  906. right: 0px;
  907. }
  908. .input-dialog-form {
  909. padding: 20px 24px;
  910. background: rgba(255, 255, 255, 1);
  911. border-radius: 4px;
  912. border: 1px solid rgba(195, 199, 203, 1);
  913. z-index: 99999;
  914. position: absolute;
  915. top: -20px;
  916. right: 0px;
  917. }
  918. .input-dialog-p {
  919. margin-bottom: 8px;
  920. font-size: 14px;
  921. font-family: MicrosoftYaHei;
  922. color: rgba(100, 108, 115, 1);
  923. line-height: 22px;
  924. }
  925. .input-dialog-p2 {
  926. margin-bottom: 16px;
  927. }
  928. }
  929. .input-dialog-foot {
  930. // margin-bottom: 16px;
  931. display: flex;
  932. justify-content: flex-end;
  933. }
  934. }
  935. .compute-tab {
  936. margin-top: 16px;
  937. padding: 0 24px;
  938. }
  939. }
  940. </style>
  941. <style lang="less">
  942. .compute-box {
  943. .el-dialog {
  944. padding: 16px 20px 20px;
  945. overflow: hidden;
  946. .el-dialog__header {
  947. padding: 0;
  948. font-size: 16px;
  949. font-family: PingFangSC-Medium, PingFang SC;
  950. font-weight: 500;
  951. color: rgba(0, 0, 0, 0.85);
  952. line-height: 24px;
  953. padding-bottom: 16px;
  954. }
  955. }
  956. .compute-tab {
  957. .el-dialog__title {
  958. font-size: 16px;
  959. font-family: PingFangSC-Medium, PingFang SC;
  960. font-weight: 500;
  961. color: rgba(0, 0, 0, 0.85);
  962. line-height: 24px;
  963. }
  964. .el-dialog__body {
  965. padding: 0 24px;
  966. }
  967. .el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),
  968. .el-tabs--bottom .el-tabs__item.is-top:nth-child(2),
  969. .el-tabs--top .el-tabs__item.is-bottom:nth-child(2),
  970. .el-tabs--top .el-tabs__item.is-top:nth-child(2) {
  971. padding-left: 16px;
  972. }
  973. .el-tabs--bottom .el-tabs__item.is-bottom:last-child,
  974. .el-tabs--bottom .el-tabs__item.is-top:last-child,
  975. .el-tabs--top .el-tabs__item.is-bottom:last-child,
  976. .el-tabs--top .el-tabs__item.is-top:last-child {
  977. padding-right: 16px;
  978. }
  979. .el-tabs__nav-wrap::after {
  980. height: 0;
  981. }
  982. .el-tabs__item {
  983. padding: 5px 16px;
  984. height: 30px;
  985. line-height: 22px;
  986. font-size: 14px;
  987. font-family: MicrosoftYaHei;
  988. color: rgba(31, 36, 41, 1);
  989. border: 1px solid rgba(195, 199, 203, 1);
  990. }
  991. .el-tabs,
  992. .el-tabs__content {
  993. height: 800px;
  994. }
  995. .el-tabs__active-bar {
  996. background-color: transparent !important;
  997. }
  998. .is-active {
  999. color: #025baa;
  1000. border-color: #025baa;
  1001. }
  1002. .compute-table {
  1003. .el-table td,
  1004. .el-table th {
  1005. padding: 8px 0;
  1006. }
  1007. }
  1008. }
  1009. .el-input--suffix .el-input__inner {
  1010. padding-right: 20px;
  1011. }
  1012. .el-dialog__wrapper {
  1013. transition-duration: 0.3s;
  1014. }
  1015. .dialog-fade-enter-active {
  1016. animation: none !important;
  1017. }
  1018. .dialog-fade-leave-active {
  1019. transition-duration: 0.15s !important;
  1020. animation: none !important;
  1021. }
  1022. .dialog-fade-enter-active .el-dialog,
  1023. .dialog-fade-leave-active .el-dialog {
  1024. animation-fill-mode: forwards;
  1025. }
  1026. .dialog-fade-enter-active .el-dialog {
  1027. animation-duration: 0.3s;
  1028. animation-name: anim-open;
  1029. animation-timing-function: cubic-bezier(0.6, 0, 0.4, 1);
  1030. }
  1031. .dialog-fade-leave-active .el-dialog {
  1032. animation-duration: 0.3s;
  1033. animation-name: anim-close;
  1034. }
  1035. @keyframes anim-open {
  1036. 0% {
  1037. opacity: 0;
  1038. transform: scale3d(0, 0, 1);
  1039. }
  1040. 100% {
  1041. opacity: 1;
  1042. transform: scale3d(1, 1, 1);
  1043. }
  1044. }
  1045. @keyframes anim-close {
  1046. 0% {
  1047. opacity: 1;
  1048. }
  1049. 100% {
  1050. opacity: 0;
  1051. transform: scale3d(0.5, 0.5, 1);
  1052. }
  1053. }
  1054. .picker-box {
  1055. .el-input__inner {
  1056. border: none;
  1057. }
  1058. .el-range-editor.el-input__inner {
  1059. padding: 3px 0px;
  1060. }
  1061. .el-icon-date {
  1062. display: none;
  1063. }
  1064. .el-range__close-icon {
  1065. position: absolute;
  1066. right: 0px;
  1067. top: 2px;
  1068. }
  1069. .el-range-editor--mini .el-range-input {
  1070. font-size: 14px;
  1071. color: rgb(31, 36, 41);
  1072. }
  1073. }
  1074. }
  1075. </style>