1
0

YhModalContent.vue 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  1. <script>
  2. import { ylycyhzzqdTc } from "@/api/risk.js";
  3. import punishmentMixin from "@/mixin/unit.js";
  4. import { area } from "@/api/area";
  5. import moment from "moment";
  6. export default {
  7. name: "YhModalContent",
  8. mixins: [punishmentMixin],
  9. data() {
  10. return {
  11. options: [],
  12. fxdjList: [],
  13. tableData: [],
  14. unitList: [],
  15. zqsj: null,
  16. params: {
  17. pageSize: 10,
  18. pageNum: 1,
  19. qx: null,
  20. zdqx: null,
  21. yhxm: null,
  22. pcqk: null,
  23. yhjd: null,
  24. zgsx: null,
  25. fxdjYs: null,
  26. },
  27. total: 0,
  28. search: "",
  29. zdqxOptions: ["用电用气", "消防设施", "生命通道", "消防管理"],
  30. yhxmOptions: [
  31. "室外消火栓系统",
  32. "存在违规设置突出外墙防护网现象",
  33. "无维保单位",
  34. "存在电动自行车违规停放充电现象",
  35. "消防车通道存在堵塞、占用情况",
  36. "火灾自动报警系统",
  37. "室内消火栓系统",
  38. "无管理主体",
  39. "存在可燃雨棚",
  40. "气体灭火系统",
  41. "建筑内疏散通道、安全出口被堵塞、占用或封闭",
  42. "其他",
  43. "自动喷水灭火系统",
  44. "消防车道、消防车救援场地未设置标志标牌、施划标线",
  45. "机械防、排烟系统",
  46. "防火卷帘",
  47. "搭建易燃可燃彩钢板房",
  48. "建筑外墙保温材料",
  49. "电梯线路私接乱拉",
  50. "配建车库违规改变使用功能",
  51. "消防控制室值班人员配备不到位",
  52. "违规设置群租房",
  53. "电缆井内电气线路敷设不规范",
  54. "防火封堵被破坏",
  55. "无",
  56. "违规储存、经营、使用易燃易爆危险品",
  57. "影响灭火救援的装饰、广告牌",
  58. "人员密集场所室内采易燃可燃材料装修",
  59. "燃气管线用具敷设安装不规范",
  60. "住宅部分与非住宅部分共用疏散楼梯建",
  61. "违规使用瓶装液化石油气",
  62. "避难层(间)被占用或擅自改变用途",
  63. ],
  64. pcqkOptions: ["存在", "不存在"],
  65. zgjdOptions: ["待计划整改", "已计划待整改", "已整改"],
  66. zgqxOptions: [
  67. "15日到期整改",
  68. "30日到期整改",
  69. "60日到期整改",
  70. "限期2023年底整改",
  71. "限期2024年底整改",
  72. "限期2025年底整改",
  73. ],
  74. };
  75. },
  76. props: {
  77. qy: String,
  78. default: Object
  79. },
  80. watch: {
  81. default: {
  82. handler() {
  83. let params = {};
  84. if (this.default) {
  85. Object.assign(params, this.default);
  86. } else {
  87. params = {};
  88. }
  89. this.params = params;
  90. this.funList();
  91. },
  92. immediate: true,
  93. deep: true,
  94. }
  95. },
  96. methods: {
  97. funList() {
  98. const params = {};
  99. if (this.params.zdqx) {
  100. params.zdqx = this.params.zdqx.join(",");
  101. }
  102. if (this.params.yhxm) {
  103. params.yhxm = this.params.yhxm.join(",");
  104. } else {
  105. params.yhxm = null;
  106. }
  107. if (this.params.zgjd) {
  108. params.zgjd = this.params.zgjd.join(",");
  109. }
  110. console.log(this.params);
  111. if (this.params.zgsxStr) {
  112. // 计算
  113. let endTime = null;
  114. if (this.params.zgsxStr === "15日到期整改") {
  115. endTime = moment().add(15, "d").format("yyyy-MM-DD");
  116. } else if (this.params.zgsxStr === "30日到期整改") {
  117. endTime = moment().add(30, "d").format("yyyy-MM-DD");
  118. } else if (this.params.zgsxStr === "60日到期整改") {
  119. endTime = moment().add(60, "d").format("yyyy-MM-DD");
  120. } else if (this.params.zgsxStr === "限期2023年底整改") {
  121. endTime = "2023-12-31";
  122. } else if (this.params.zgsxStr === "限期2024年底整改") {
  123. endTime = "2024-12-31";
  124. } else if (this.params.zgsxStr === "限期2025年底整改") {
  125. endTime = "2025-12-31";
  126. }
  127. params.zgsx = moment().format("yyyy-MM-DD") + "," + endTime;
  128. }
  129. if (this.params.fxdjYs) {
  130. params.fxdjYs = this.params.fxdjYs;
  131. } else {
  132. params.fxdjYs = null;
  133. }
  134. if (this.params.gcjzmc) {
  135. params.gcjzmc = this.params.gcjzmc;
  136. } else {
  137. params.gcjzmc = null;
  138. }
  139. if (this.params.qx) {
  140. params.qx = this.params.qx;
  141. } else {
  142. params.qx = null;
  143. }
  144. if (params.yhxm === "") {
  145. params.yhxm = null;
  146. }
  147. if (params.zdqx === "") {
  148. params.zdqx = null;
  149. }
  150. if (params.zgjd === "") {
  151. params.zgjd = null;
  152. }
  153. params.pageNum = this.params.pageNum;
  154. params.pageSize = this.params.pageSize;
  155. console.log(this.params);
  156. console.log(params);
  157. ylycyhzzqdTc(params).then((res) => {
  158. this.tableData = res.data.rows;
  159. this.total = res.data.total;
  160. });
  161. },
  162. handleSizeChange(val) {
  163. this.params.pageSize = val;
  164. this.funList();
  165. },
  166. handleCurrentChange(val) {
  167. this.params.pageNum = val;
  168. this.funList();
  169. },
  170. resetForm() {
  171. this.params = {
  172. pageSize: 10,
  173. pageNum: 1,
  174. qx: null,
  175. zdqx: null,
  176. yhxm: null,
  177. pcqk: null,
  178. yhjd: null,
  179. zgsx: null,
  180. gcjzmc: null,
  181. };
  182. this.funList();
  183. },
  184. },
  185. created() {
  186. // 查询区域
  187. area({
  188. pageNum: 1,
  189. pageSize: 100,
  190. }).then((res) => {
  191. this.options = res.data.rows;
  192. // console.log(this.default);
  193. let params = {};
  194. if (this.default) {
  195. Object.assign(params, this.default);
  196. }
  197. this.params = params;
  198. this.funList();
  199. });
  200. },
  201. };
  202. </script>
  203. <template>
  204. <div>
  205. <!-- 搜索 -->
  206. <div class="maintenance-supervision">
  207. <div class="maintenance-supervision_header">
  208. <el-form class="form" v-model="params">
  209. <!-- 区县 -->
  210. <el-form-item>
  211. <el-select v-model="params.qx" placeholder="请选择">
  212. <el-option
  213. :value="item.areaTitle"
  214. :label="item.areaTitle"
  215. v-for="(item, index) in options"
  216. :key="index"
  217. >
  218. </el-option>
  219. </el-select>
  220. </el-form-item>
  221. <!-- 重点情形 -->
  222. <el-form-item>
  223. <el-select
  224. v-model="params.zdqx"
  225. placeholder="重点情形"
  226. multiple
  227. collapse-tags
  228. >
  229. <el-option
  230. :label="item"
  231. :value="item"
  232. v-for="(item, i) in zdqxOptions"
  233. :key="i"
  234. ></el-option>
  235. </el-select>
  236. </el-form-item>
  237. <!-- 隐患项目 -->
  238. <el-form-item>
  239. <el-select
  240. v-model="params.yhxm"
  241. placeholder="隐患项目"
  242. multiple
  243. collapse-tags
  244. >
  245. <el-option
  246. :label="item"
  247. :value="item"
  248. v-for="(item, i) in yhxmOptions"
  249. :key="i"
  250. ></el-option>
  251. </el-select>
  252. </el-form-item>
  253. <!-- 排查情况 -->
  254. <el-form-item>
  255. <el-select v-model="params.pcqk" placeholder="排查情况">
  256. <el-option
  257. :label="item"
  258. :value="item"
  259. v-for="(item, i) in pcqkOptions"
  260. :key="i"
  261. ></el-option>
  262. </el-select>
  263. </el-form-item>
  264. <!-- 整改进度 -->
  265. <el-form-item>
  266. <el-select
  267. v-model="params.zgjd"
  268. placeholder="整改进度"
  269. multiple
  270. collapse-tags
  271. >
  272. <el-option
  273. :label="item"
  274. :value="item"
  275. v-for="(item, i) in zgjdOptions"
  276. :key="i"
  277. ></el-option>
  278. </el-select>
  279. </el-form-item>
  280. <!-- 整改期限 -->
  281. <el-form-item>
  282. <el-select v-model="params.zgsxStr" placeholder="整改期限">
  283. <el-option
  284. :label="item"
  285. :value="item"
  286. v-for="(item, i) in zgqxOptions"
  287. :key="i"
  288. ></el-option>
  289. </el-select>
  290. </el-form-item>
  291. <!-- 风险等级 -->
  292. <el-form-item>
  293. <el-select v-model="params.fxdjYs" placeholder="风险等级">
  294. <el-option
  295. :value="item.value"
  296. :label="item.lable"
  297. v-for="(item, index) in fxdjLlst"
  298. :key="index"
  299. >
  300. </el-option>
  301. </el-select>
  302. </el-form-item>
  303. <!-- 建筑名称 -->
  304. <el-form-item>
  305. <div class="inp" style="margin-left: 0">
  306. <el-input
  307. v-model="params.gcjzmc"
  308. placeholder="建筑名称"
  309. ></el-input>
  310. </div>
  311. </el-form-item>
  312. <el-form-item>
  313. <el-button @click="funList">搜索</el-button>
  314. <el-button @click="resetForm">重置</el-button>
  315. </el-form-item>
  316. </el-form>
  317. </div>
  318. </div>
  319. <basic-table :data="tableData" style="text-align: center">
  320. <el-table-column type="index" label="序号" width="60"> </el-table-column>
  321. <el-table-column label="区县" width="100" prop="qx"></el-table-column>
  322. <el-table-column
  323. prop="gcjzmc"
  324. label="建筑名称"
  325. min-width="180"
  326. show-overflow-tooltip
  327. >
  328. </el-table-column>
  329. <el-table-column
  330. prop="zdqx"
  331. label="重点情形"
  332. show-overflow-tooltip
  333. min-width="100"
  334. >
  335. </el-table-column>
  336. <el-table-column
  337. label="风险等级"
  338. prop="fxdjYs"
  339. width="180"
  340. show-overflow-tooltip
  341. ></el-table-column>
  342. <el-table-column label="隐患数" show-overflow-tooltip>
  343. <template> 1 </template>
  344. </el-table-column>
  345. <el-table-column
  346. prop="yhxm"
  347. label="隐患项目"
  348. show-overflow-tooltip
  349. min-width="150"
  350. >
  351. </el-table-column>
  352. <el-table-column prop="pcqk" label="排查情况" show-overflow-tooltip>
  353. </el-table-column>
  354. <el-table-column prop="yhjd" label="整改进度" show-overflow-tooltip>
  355. </el-table-column>
  356. <el-table-column
  357. prop="jtqk"
  358. label="具体问题"
  359. show-overflow-tooltip
  360. min-width="150"
  361. >
  362. </el-table-column>
  363. <el-table-column
  364. prop="zgcs"
  365. label="整改措施"
  366. show-overflow-tooltip
  367. min-width="150"
  368. >
  369. </el-table-column>
  370. <el-table-column
  371. prop="zgzrdw"
  372. label="整改单位"
  373. show-overflow-tooltip
  374. min-width="150"
  375. >
  376. </el-table-column>
  377. <el-table-column
  378. prop="zgzrr"
  379. label="整改责任人"
  380. show-overflow-tooltip
  381. min-width="100"
  382. >
  383. </el-table-column>
  384. <el-table-column
  385. prop="zgsx"
  386. label="整改时限"
  387. show-overflow-tooltip
  388. min-width="120"
  389. >
  390. </el-table-column>
  391. <el-table-column
  392. prop="zgzjwy"
  393. label="整改资金"
  394. show-overflow-tooltip
  395. min-width="100"
  396. >
  397. </el-table-column>
  398. <el-table-column
  399. prop="djsj"
  400. label="登记时间"
  401. show-overflow-tooltip
  402. min-width="120"
  403. >
  404. </el-table-column>
  405. <el-table-column
  406. prop="sftxdw"
  407. label="是否提醒单位"
  408. show-overflow-tooltip
  409. min-width="120"
  410. >
  411. </el-table-column>
  412. <el-table-column
  413. prop="sfts"
  414. label="是否推送乡镇街道、公安派出所或者行业部门"
  415. show-overflow-tooltip
  416. min-width="200"
  417. >
  418. </el-table-column>
  419. <el-table-column
  420. prop="yhfj"
  421. label="隐患附件"
  422. show-overflow-tooltip
  423. min-width="100"
  424. >
  425. <template slot-scope="scope">
  426. <a
  427. :href="scope.row.yhfj"
  428. target="_blank"
  429. style="color: #ffffff"
  430. v-if="scope.row.yhfj"
  431. >下载</a
  432. >
  433. </template>
  434. </el-table-column>
  435. </basic-table>
  436. <br />
  437. <basic-pagination
  438. layout="total,->,prev, pager, next, sizes,jumper"
  439. :page-sizes="[10, 20, 50, 100]"
  440. :page-size="params.pageSize"
  441. :current-page="params.PageNum"
  442. :total="total"
  443. @size-change="handleSizeChange"
  444. @current-change="handleCurrentChange"
  445. />
  446. </div>
  447. </template>
  448. <style scoped lang="less">
  449. .maintenance-supervision {
  450. // padding: 10px 10px 0px 20px;
  451. ::v-deep(.el-input__inner) {
  452. width: 200px !important;
  453. border: none;
  454. background: linear-gradient(
  455. 360deg,
  456. rgba(0, 148, 255, 0.5) 0%,
  457. rgba(0, 148, 255, 0.31) 100%
  458. );
  459. color: #fff;
  460. height: 30px !important;
  461. }
  462. ::v-deep(.el-button) {
  463. border: none;
  464. background: linear-gradient(360deg, #0094ff90 0%, #0094ff10 100%);
  465. color: #fff;
  466. }
  467. .maintenance-supervision_header {
  468. display: flex;
  469. flex-wrap: wrap;
  470. justify-content: space-between;
  471. // border-bottom: 1px solid #154956;
  472. padding-bottom: 10px;
  473. font-size: 12px;
  474. color: rgb(79, 149, 186);
  475. // .select-item{
  476. // margin-right: 20px;
  477. // }
  478. }
  479. .btn-item {
  480. margin-bottom: 10px;
  481. }
  482. .warp {
  483. height: 520px;
  484. margin: 0 auto;
  485. overflow: hidden;
  486. .item {
  487. list-style: none;
  488. padding: 0;
  489. margin: 0 auto;
  490. cursor: pointer;
  491. }
  492. }
  493. /deep/.el-input__inner {
  494. background-color: #184254;
  495. width: 150px;
  496. height: 30px;
  497. margin-bottom: 5px;
  498. }
  499. /deep/.el-button {
  500. width: 100px;
  501. height: 32px;
  502. font-size: 14px;
  503. line-height: 2px;
  504. // margin: 0 20px 0 30px;
  505. color: #fff;
  506. border-radius: 5px;
  507. border: none;
  508. }
  509. /deep/.el-button:hover {
  510. color: rgb(80, 147, 224);
  511. }
  512. /deep/.select_btn {
  513. position: absolute;
  514. top: 225px;
  515. right: 320px;
  516. //下拉框
  517. }
  518. /deep/.el-input {
  519. width: 200px;
  520. // margin-left: 20px;
  521. }
  522. .header {
  523. color: #fff;
  524. height: 33px !important;
  525. line-height: 33px !important;
  526. background-color: rgba(0, 163, 255, 0.3) !important;
  527. color: #61dbff;
  528. margin-top: 15px;
  529. margin-bottom: 6px;
  530. }
  531. .row,
  532. li,
  533. a {
  534. display: block;
  535. height: 39px;
  536. line-height: 39px;
  537. margin-bottom: 4px;
  538. display: flex;
  539. justify-content: space-between;
  540. align-items: center;
  541. font-size: 16px;
  542. background-color: rgba(0, 0, 0, 0.2);
  543. .time,
  544. .num,
  545. .person,
  546. .result {
  547. flex: 0.33;
  548. display: flex;
  549. justify-content: center;
  550. align-items: center;
  551. }
  552. .num {
  553. flex: 0.15;
  554. }
  555. }
  556. .inp {
  557. margin-left: 20px;
  558. }
  559. }
  560. .unit-bulid {
  561. display: flex;
  562. justify-content: space-between;
  563. margin-bottom: 20px;
  564. font-size: 18px;
  565. }
  566. .unit-num {
  567. width: 200px;
  568. height: 109px;
  569. border: 1px solid #0463a7;
  570. display: flex;
  571. flex-direction: column;
  572. align-items: center;
  573. justify-items: center;
  574. line-height: 59px;
  575. }
  576. .form {
  577. flex-grow: 1;
  578. flex-wrap: wrap;
  579. width: 80%;
  580. display: flex;
  581. }
  582. ::v-deep(.el-range-separator) {
  583. line-height: 24px !important;
  584. color: #ffffff !important;
  585. }
  586. ::v-deep(.el-date-editor .el-range-input) {
  587. color: #ffffff !important;
  588. }
  589. ::v-deep(.el-date-editor .el-range__icon) {
  590. line-height: 24px !important;
  591. }
  592. ::v-deep(.el-date-editor .el-range__close-icon) {
  593. line-height: 24px !important;
  594. }
  595. .el-select-dropdown__item.hover,
  596. .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover {
  597. background-color: #2f7df2;
  598. }
  599. .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
  600. background-color: #2f7df2 !important;
  601. }
  602. .el-select-dropdown__item.hover span {
  603. color: #ffffff !important;
  604. }
  605. /** 滚动条 */
  606. ::-webkit-scrollbar,
  607. ::-webkit-scrollbar,
  608. ::-webkit-scrollbar,
  609. ::-webkit-scrollbar {
  610. /*滚动条整体样式*/
  611. width: 8px;
  612. /*高宽分别对应横竖滚动条的尺寸*/
  613. height: 8px;
  614. }
  615. ::-webkit-scrollbar-thumb,
  616. ::-webkit-scrollbar-thumb,
  617. ::-webkit-scrollbar-thumb,
  618. ::-webkit-scrollbar-thumb {
  619. /*滚动条里面小方块*/
  620. border-radius: 4px;
  621. /* box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); */
  622. background: rgba(0, 213, 255, 0.73);
  623. opacity: 0.7;
  624. }
  625. ::-webkit-scrollbar-track,
  626. ::-webkit-scrollbar-track,
  627. ::-webkit-scrollbar-track,
  628. ::-webkit-scrollbar-track {
  629. /*滚动条里面轨道*/
  630. /* box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); */
  631. border-radius: 3px;
  632. background: rgba(0, 213, 255, 0.3);
  633. opacity: 0.7;
  634. }
  635. ::v-deep(.el-select__tags) {
  636. max-width: 200px !important;
  637. height: 30px;
  638. overflow: hidden;
  639. .el-tag {
  640. max-width: 120px !important;
  641. }
  642. }
  643. </style>