index.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. <template>
  2. <div class="app-container">
  3. <el-form
  4. ref="queryForm"
  5. :model="queryParams"
  6. size="small"
  7. :inline="true"
  8. v-show="showSearch"
  9. >
  10. <el-form-item label="线路名称" prop="lineNm">
  11. <el-input v-model="queryParams.lineNm" placeholder="请输入"></el-input>
  12. </el-form-item>
  13. <el-form-item label="是否检修超期" prop="isMaintOverdue">
  14. <el-checkbox v-model="queryParams.isMaintOverdue"></el-checkbox>
  15. </el-form-item>
  16. <el-form-item label="是否重复停电" prop="isRepeatPoweroff">
  17. <el-checkbox v-model="queryParams.isRepeatPoweroff"></el-checkbox>
  18. </el-form-item>
  19. <!--el-form-item label="电压等级" prop="voltLvlDsc">
  20. <el-input
  21. v-model="queryParams.voltLvlDsc"
  22. placeholder="请输入"
  23. ></el-input>
  24. </el-form-item>
  25. <el-form-item label="所属县公司" prop="stdCountyOrgNm">
  26. <el-input
  27. v-model="queryParams.stdCountyOrgNm"
  28. placeholder="请输入"
  29. ></el-input>
  30. </el-form-item-->
  31. <el-form-item>
  32. <el-button
  33. type="primary"
  34. icon="el-icon-search"
  35. size="mini"
  36. @click="handleQuery"
  37. >搜索</el-button
  38. >
  39. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  40. >重置</el-button
  41. >
  42. </el-form-item>
  43. </el-form>
  44. <el-row :gutter="10" class="mb8">
  45. <right-toolbar
  46. :showSearch.sync="showSearch"
  47. @queryTable="getList"
  48. ></right-toolbar>
  49. </el-row>
  50. <div class="table">
  51. <el-table
  52. v-loading="loading"
  53. :data="dataList"
  54. row-key="id"
  55. :expand-row-keys="expands"
  56. @expand-change="expndChange"
  57. >
  58. <el-table-column type="expand">
  59. <el-table :data="childrenList" v-loading="childrenLoading">
  60. <el-table-column label="序号" width="80" align="center">
  61. <template slot-scope="scope">
  62. {{ scope.$index + 1 }}
  63. </template>
  64. </el-table-column>
  65. <el-table-column
  66. label="线路名称"
  67. align="center"
  68. prop="lineNm"
  69. :show-overflow-tooltip="true"
  70. />
  71. <el-table-column
  72. label="电压等级"
  73. prop="voltLvlDsc"
  74. align="center"
  75. :show-overflow-tooltip="true"
  76. >
  77. </el-table-column>
  78. <el-table-column
  79. label="线路长度(km)"
  80. prop="lineTolLen"
  81. align="center"
  82. :show-overflow-tooltip="true"
  83. >
  84. </el-table-column>
  85. <el-table-column
  86. label="所属市公司"
  87. prop="stdCityOrgNm"
  88. align="center"
  89. :show-overflow-tooltip="true"
  90. />
  91. <el-table-column
  92. label="所属县公司"
  93. prop="stdCountyOrgNm"
  94. align="center"
  95. :show-overflow-tooltip="true"
  96. >
  97. </el-table-column>
  98. <el-table-column
  99. label="所属供电所"
  100. prop="orgNm"
  101. align="center"
  102. :show-overflow-tooltip="true"
  103. />
  104. <el-table-column
  105. label="变电站名称"
  106. prop="subNm"
  107. align="center"
  108. :show-overflow-tooltip="true"
  109. />
  110. <el-table-column
  111. label="停电次数"
  112. prop="poweroffNum"
  113. align="center"
  114. />
  115. <el-table-column
  116. label="无故障持续时间"
  117. prop="faultFreeDuration"
  118. align="center"
  119. :show-overflow-tooltip="true"
  120. >
  121. </el-table-column>
  122. <el-table-column
  123. label="奖励金额"
  124. prop="rewardAmount"
  125. align="center"
  126. :show-overflow-tooltip="true"
  127. >
  128. </el-table-column>
  129. </el-table>
  130. </el-table-column>
  131. <el-table-column prop="" label="序号" width="80" align="center">
  132. <template slot-scope="scope">
  133. {{ scope.row.index }}
  134. </template>
  135. </el-table-column>
  136. <el-table-column
  137. label="线路名称"
  138. align="center"
  139. prop="lineNm"
  140. :show-overflow-tooltip="true"
  141. />
  142. <el-table-column
  143. label="电压等级"
  144. prop="voltLvlDsc"
  145. align="center"
  146. :show-overflow-tooltip="true"
  147. >
  148. </el-table-column>
  149. <el-table-column
  150. label="线路长度(km)"
  151. prop="lineTolLen"
  152. align="center"
  153. :show-overflow-tooltip="true"
  154. >
  155. </el-table-column>
  156. <el-table-column
  157. label="所属市公司"
  158. prop="stdCityOrgNm"
  159. align="center"
  160. :show-overflow-tooltip="true"
  161. />
  162. <el-table-column
  163. label="所属县公司"
  164. prop="stdCountyOrgNm"
  165. align="center"
  166. :show-overflow-tooltip="true"
  167. >
  168. </el-table-column>
  169. <el-table-column
  170. label="所属供电所"
  171. prop="orgNm"
  172. align="center"
  173. :show-overflow-tooltip="true"
  174. />
  175. <el-table-column
  176. label="变电站名称"
  177. prop="subNm"
  178. align="center"
  179. :show-overflow-tooltip="true"
  180. />
  181. <el-table-column label="停电次数" prop="poweroffNum" align="center" />
  182. <el-table-column
  183. label="无故障持续时间"
  184. prop="faultFreeDuration"
  185. align="center"
  186. :show-overflow-tooltip="true"
  187. >
  188. </el-table-column>
  189. <el-table-column
  190. label="奖励金额"
  191. prop="rewardAmount"
  192. align="center"
  193. :show-overflow-tooltip="true"
  194. >
  195. </el-table-column>
  196. </el-table>
  197. <pagination
  198. class="page-box"
  199. v-show="total > 0"
  200. :total="total"
  201. :page.sync="queryParams.pageNum"
  202. :limit.sync="queryParams.pageSize"
  203. @pagination="getList"
  204. />
  205. </div>
  206. </div>
  207. </template>
  208. <script>
  209. import { getWorkPlanList } from "@/api/secure/pdm-work-plan";
  210. import {
  211. selectCompleteList,
  212. selectBranchLineCompleteList,
  213. } from "@/api/powerdistribution/maintenance";
  214. export default {
  215. data() {
  216. return {
  217. dataList: [],
  218. childrenList: [],
  219. // 显示搜索条件
  220. showSearch: true,
  221. // 遮罩层
  222. loading: true,
  223. childrenLoading: true,
  224. total: 0,
  225. // 日期范围
  226. dateRange: [],
  227. // 查询参数
  228. queryParams: {
  229. lineNm: "",
  230. isMaintOverdue: false,
  231. isRepeatPoweroff: false,
  232. pageNum: 1,
  233. pageSize: 10,
  234. },
  235. // 作业类型
  236. workTypeList: [],
  237. // 专业类型
  238. zyTypeList: [],
  239. // 作业单位
  240. workUnitOptions: [],
  241. // 风险类型
  242. exceptionTypeList: [],
  243. expands: [],
  244. };
  245. },
  246. created() {
  247. this.getList();
  248. },
  249. methods: {
  250. async expndChange(row, expandedRows) {
  251. // 先判断该行是否已经展开了
  252. if (!row.expand) {
  253. this.childrenLoading = true;
  254. const data = await selectBranchLineCompleteList({
  255. pageNum: 1,
  256. pageSize: 9999,
  257. blgBigFeederId: row.feederId,
  258. });
  259. this.childrenList = data.rows;
  260. this.childrenLoading = false;
  261. row.expand = true;
  262. this.expands = [row.id];
  263. } else {
  264. row.expand = false;
  265. this.expands = [];
  266. }
  267. },
  268. /** 查询列表 */
  269. getList() {
  270. this.loading = true;
  271. selectCompleteList({ ...this.queryParams }).then((response) => {
  272. this.dataList = response.rows.map((ite, i) => {
  273. ite.hasChildren = true;
  274. ite.children = [];
  275. ite.index =
  276. i + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + 1;
  277. return ite;
  278. });
  279. this.total = response.total;
  280. this.loading = false;
  281. });
  282. },
  283. // async load(tree, treeNode, resolve) {
  284. // const data = await selectBranchLineCompleteList({
  285. // pageNum: 1,
  286. // pageSize: 9999,
  287. // blgBigFeederId: tree.feederId,
  288. // });
  289. // resolve(
  290. // data.rows.map((ite, i) => {
  291. // ite.id = Math.random();
  292. // ite.index = i + 1;
  293. // return ite;
  294. // })
  295. // );
  296. // },
  297. /** 搜索按钮操作 */
  298. handleQuery() {
  299. this.getList();
  300. },
  301. /** 重置按钮操作 */
  302. resetQuery() {
  303. this.queryParams.pageNum = 1;
  304. this.resetForm("queryForm");
  305. this.handleQuery();
  306. },
  307. },
  308. };
  309. </script>
  310. <style lang="scss" scoped>
  311. .table {
  312. height: calc(100% - 150px);
  313. }
  314. ::v-deep {
  315. .el-table {
  316. height: 100%;
  317. width: 100%;
  318. .el-table__body-wrapper {
  319. width: 100% !important;
  320. height: calc(100% - 50px) !important; // 表格高度减去表头的高度
  321. overflow-y: scroll;
  322. }
  323. }
  324. }
  325. </style>