UnitInfo.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. <template>
  2. <div class="maintenance-supervision">
  3. <div class="maintenance-supervision_header">
  4. <el-input v-model="search" placeholder="建筑名称"></el-input>
  5. <div>
  6. <el-select v-model="value" placeholder="管理形式">
  7. <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
  8. </el-option>
  9. </el-select>
  10. </div>
  11. <el-button @click="getZjglList">搜索</el-button>
  12. <el-button @click="colos">重置</el-button>
  13. </div>
  14. <div v-if="checked === 0">
  15. <div class="row header">
  16. <span class="num">序号</span>
  17. <span class="time">建筑名称</span>
  18. <span class="person">管理形式</span>
  19. <span class="result">管理单位</span>
  20. </div>
  21. <VueSeamlessScroll :data="ZjglList" :class-option="classOption" class="warp">
  22. <ul class="item">
  23. <li class="row" v-for="(item, index) in ZjglList" :key="index">
  24. <span class="num">{{ index + 1 }}</span>
  25. <span class="time">{{ item.gcjzmc }}</span>
  26. <span class="person">{{ item.xfaqglxs }}</span>
  27. <span class="result" :style="{
  28. color: resultType(item.glzthztjzd),
  29. }">{{ item.glzthztjzd }}</span>
  30. </li>
  31. </ul>
  32. </VueSeamlessScroll>
  33. </div>
  34. <div v-if="checked === 1">
  35. <div class="row header">
  36. <span class="time">检查结束事件</span>
  37. <span class="person">执法机构</span>
  38. <span class="result">检查结果</span>
  39. </div>
  40. <VueSeamlessScroll :data="list2" :class-option="classOption" class="warp">
  41. <ul class="item">
  42. <li class="row" v-for="(item, index) in list2" :key="index">
  43. <span class="time">{{ item[0] }}</span>
  44. <span class="person">{{ item[1] }}</span>
  45. <span class="result" :style="{
  46. color: resultType(item[2]),
  47. }">{{ item[2] }}</span>
  48. </li>
  49. </ul>
  50. </VueSeamlessScroll>
  51. </div>
  52. <div v-if="checked === 2">
  53. <div class="row header">
  54. <span class="time">登记事件</span>
  55. <span class="person">排查人员</span>
  56. <span class="result">是否存在隐患</span>
  57. </div>
  58. <VueSeamlessScroll :data="list3" :class-option="classOption" class="warp">
  59. <ul class="item">
  60. <li class="row" v-for="(item, index) in list3" :key="index">
  61. <span class="time">{{ item[0] }}</span>
  62. <span class="person">{{ item[1] }}</span>
  63. <span class="result" :style="{
  64. color: resultType(item[2]),
  65. }">{{ item[2] }}</span>
  66. </li>
  67. </ul>
  68. </VueSeamlessScroll>
  69. </div>
  70. <div v-if="checked === 3">
  71. <div class="row header">
  72. <span class="time">检查时间</span>
  73. <span class="person">检查人</span>
  74. <span class="result">检查结果</span>
  75. </div>
  76. <VueSeamlessScroll :data="list4" :class-option="classOption" class="warp">
  77. <ul class="item">
  78. <li class="row" v-for="(item, index) in list4" :key="index">
  79. <span class="time">{{ item[0] }}</span>
  80. <span class="person ellipsis">{{ item[1] }}</span>
  81. <span class="result ellipsis">{{ item[2] }}</span>
  82. </li>
  83. </ul>
  84. </VueSeamlessScroll>
  85. </div>
  86. </div>
  87. </template>
  88. <script>
  89. import VueSeamlessScroll from "vue-seamless-scroll";
  90. import { getZjgldwxx} from "@/api/management.js";
  91. export default {
  92. name: "MaintenanceSupervision",
  93. data() {
  94. return {
  95. ZjglList:[],
  96. search: "",
  97. options: [
  98. {
  99. value: '有管理单位 (物业)',
  100. label: '有管理单位 (物业)'
  101. },
  102. {
  103. value: '有管理单位 (非物业)',
  104. label: '有管理单位 (非物业)'
  105. },
  106. {
  107. value: '居民自主管理',
  108. label: '居民自主管理'
  109. },
  110. {
  111. value: '街道社区代表',
  112. label: '街道社区代表'
  113. },
  114. {
  115. value: '其他',
  116. label: '其他'
  117. },
  118. {
  119. value: '无管理主体',
  120. label: '无管理主体'
  121. }
  122. ],
  123. value: "",
  124. checked: 0,
  125. };
  126. },
  127. props: {
  128. qx: String
  129. },
  130. components: {
  131. VueSeamlessScroll,
  132. },
  133. computed: {
  134. classOption() {
  135. return {
  136. singleHeight: 43,
  137. };
  138. },
  139. },
  140. watch: {
  141. qx() {
  142. this.getZjglList()
  143. }
  144. },
  145. methods: {
  146. colos(){
  147. this.search=''
  148. this.value=''
  149. this.getZjglList()
  150. },
  151. change(idx) {
  152. this.checked = idx;
  153. },
  154. resultType(text) {
  155. return {
  156. 合格: "#23f59d",
  157. 不合格: "#df575b",
  158. 是: "#23f59d",
  159. 否: "#df575b",
  160. }[text];
  161. },
  162. // 管理单位信息
  163. getZjglList(){
  164. const params={
  165. pageSize: 100,
  166. pageNum: 1,
  167. qx: this.qx === '重庆市' ? "" : this.qx,
  168. glzthztjzd:this.search,
  169. xfaqglxs:this.value
  170. }
  171. getZjgldwxx(params).then(res=>{
  172. this.ZjglList=res.data.rows
  173. })
  174. }
  175. },
  176. created(){
  177. this.getZjglList()
  178. }
  179. };
  180. </script>
  181. <style scoped lang="less">
  182. .maintenance-supervision {
  183. // padding: 10px 10px 0px 20px;
  184. ::v-deep(.el-input__inner) {
  185. border: none;
  186. background: linear-gradient(360deg, rgba(0, 148, 255, .5) 0%, rgba(0, 148, 255, .31) 100%);
  187. color: #fff;
  188. }
  189. ::v-deep(.el-button) {
  190. border: none;
  191. background: linear-gradient(360deg, #0094ff90 0%, #0094ff10 100%);
  192. color: #fff;
  193. }
  194. .maintenance-supervision_header {
  195. display: flex;
  196. justify-content: space-around;
  197. border-bottom: 1px solid #154956;
  198. padding-bottom: 2px;
  199. margin-top: 15px;
  200. font-size: 12px;
  201. color: rgb(79, 149, 186);
  202. }
  203. .warp {
  204. height: 520px;
  205. margin: 0 auto;
  206. overflow: hidden;
  207. .item {
  208. list-style: none;
  209. padding: 0;
  210. margin: 0 auto;
  211. cursor: pointer;
  212. }
  213. }
  214. .header {
  215. color: #fff;
  216. height: 33px !important;
  217. line-height: 33px !important;
  218. background-color: rgba(0, 163, 255, 0.3) !important;
  219. color: #61dbff;
  220. margin-top: 15px;
  221. margin-bottom: 6px;
  222. }
  223. .row,
  224. li,
  225. a {
  226. display: block;
  227. height: 39px;
  228. line-height: 39px;
  229. margin-bottom: 4px;
  230. display: flex;
  231. justify-content: space-between;
  232. align-items: center;
  233. font-size: 16px;
  234. background-color: rgba(0, 0, 0, 0.2);
  235. .time,
  236. .num,
  237. .person,
  238. .result {
  239. flex: 0.33;
  240. display: flex;
  241. justify-content: center;
  242. align-items: center;
  243. // 超出隐藏
  244. display: inline-block;
  245. overflow: hidden;
  246. text-overflow: ellipsis;
  247. white-space: nowrap;
  248. }
  249. .num {
  250. flex: 0.15;
  251. }
  252. }
  253. }
  254. /deep/.el-input__inner {
  255. background-color: #184254;
  256. width: 120px;
  257. height: 30px;
  258. margin-bottom: 5px;
  259. }
  260. /deep/.el-button {
  261. width: 80px;
  262. height: 32px;
  263. font-size: 14px;
  264. line-height: 2px;
  265. background: #184254;
  266. margin: 0 5px 0 30px;
  267. color: #fff;
  268. border-radius: 5px;
  269. border: none;
  270. }
  271. // /deep/.el-select-dropdown{
  272. // background-color:#184254 !important;
  273. // position: fixed;
  274. // }
  275. /deep/.select_btn {
  276. position: absolute;
  277. top: 225px;
  278. right: 320px;
  279. //下拉框
  280. }
  281. // /deep/.el-select-dropdown{
  282. // border: none;
  283. // background-color: #184254 ;
  284. // }
  285. //输入框
  286. // /deep/.el-input__inner{
  287. // color:#eee;
  288. // border-color: #00fff6;
  289. // background-color: rgba(1, 28, 82, 0.8);
  290. // }
  291. // //聚焦时的样式
  292. // /deep/.el-select .el-input.is-focus .el-input__inner{
  293. // border-color: #0B61AA;
  294. // background-color: rgba(1, 28, 82, 0.8);
  295. // color:#00D3E9;
  296. // }
  297. // //下拉框选中
  298. // /deep/.el-select-dropdown__item{
  299. // color: #eee;
  300. // }
  301. // //鼠标经过下拉框
  302. // /deep/.el-select-dropdown__item.hover,
  303. // /deep/.el-select-dropdown__item:hover{
  304. // color:#00D3E9;
  305. // background-color: #0F3360;
  306. // }
  307. </style>
  308. <style>
  309. .el-select-dropdown.el-popper {
  310. background-color: #4167a0;
  311. color: #fff;
  312. }
  313. .el-popper[x-placement^=bottom] .popper__arrow::after {
  314. border-bottom-color: #4167a0 !important;
  315. }
  316. .el-select-dropdown.el-popper {
  317. border: 1px solid rgba(0, 213, 255, 0.6) !important;
  318. }
  319. .el-select-dropdown.el-popper li.el-select-dropdown__item span {
  320. color: #fff;
  321. }
  322. .el-select-dropdown.el-popper li.el-select-dropdown__item.selected span {
  323. color: #2f7df2;
  324. }
  325. .el-select-dropdown.el-popper .el-select-dropdown__item.hover {
  326. background-color: #2f7df2;
  327. }
  328. .el-select-dropdown.el-popper li.el-select-dropdown__item.hover.selected span {
  329. color: #fff !important;
  330. }
  331. </style>