WorkTrack.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. <template>
  2. <el-dialog
  3. title="作业轨迹"
  4. :visible.sync="visible"
  5. width="1200px"
  6. append-to-body
  7. @close="handleClose"
  8. >
  9. <div class="track-container">
  10. <el-form size="small" :inline="true">
  11. <el-form-item label="车牌号" prop="vehicleNo">
  12. <el-input
  13. v-model="queryParams.vehicleNo"
  14. placeholder="车牌号"
  15. />
  16. </el-form-item>
  17. <el-form-item label="日期" prop="planDate">
  18. <el-date-picker
  19. v-model="queryParams.planDate"
  20. style="width: 240px; margin-right: 8px"
  21. type="daterange"
  22. range-separator="至"
  23. start-placeholder="开始日期"
  24. end-placeholder="结束日期"
  25. value-format="yyyy-MM-dd"
  26. :clearable="false"
  27. >
  28. </el-date-picker>
  29. </el-form-item>
  30. <el-form-item>
  31. <el-button
  32. type="primary"
  33. icon="el-icon-search"
  34. size="mini"
  35. @click="handleQuery"
  36. >搜索</el-button
  37. >
  38. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
  39. >重置</el-button
  40. >
  41. </el-form-item>
  42. </el-form>
  43. <!--div class="mb20">车牌号:{{ vehicleInfo.vehicleNo }}</div-->
  44. <el-table :data="trackList" border style="width: 100%" v-loading="loading">
  45. <el-table-column
  46. prop="weekPlanNo"
  47. label="周计划编号"
  48. align="center"
  49. width="140"
  50. ></el-table-column>
  51. <el-table-column
  52. prop="projNm"
  53. label="项目名称"
  54. align="center"
  55. :show-overflow-tooltip="true"
  56. ></el-table-column>
  57. <el-table-column
  58. prop="planNm"
  59. label="计划名称"
  60. align="center"
  61. :show-overflow-tooltip="true"
  62. ></el-table-column>
  63. <el-table-column
  64. prop="submitOrgNm"
  65. label="报送单位名称"
  66. align="center"
  67. width="150"
  68. ></el-table-column>
  69. <el-table-column
  70. prop="mgmtOrgNm"
  71. label="管理单位名称"
  72. align="center"
  73. width="150"
  74. ></el-table-column>
  75. <el-table-column
  76. prop="ovhaulConstOrgNm"
  77. label="检修施工单位名称"
  78. align="center"
  79. width="150"
  80. ></el-table-column>
  81. <el-table-column
  82. prop="opMaintOrgNm"
  83. label="运维单位名称"
  84. align="center"
  85. width="150"
  86. ></el-table-column>
  87. <el-table-column
  88. prop="subsOrLineNm"
  89. label="变电站/线路名称"
  90. align="center"
  91. width="150"
  92. ></el-table-column>
  93. <el-table-column
  94. prop="opRiskLvlDsc"
  95. label="作业风险等级"
  96. align="center"
  97. width="120"
  98. ></el-table-column>
  99. <el-table-column
  100. prop="elecgdRiskLvlDsc"
  101. label="电网风险等级"
  102. align="center"
  103. width="120"
  104. ></el-table-column>
  105. <el-table-column
  106. prop="voltLvlDsc"
  107. label="电压等级"
  108. align="center"
  109. width="120"
  110. ></el-table-column>
  111. <el-table-column
  112. prop="majorTypDsc"
  113. label="专业类型"
  114. align="center"
  115. width="100"
  116. ></el-table-column>
  117. <el-table-column
  118. prop="opTypDsc"
  119. label="作业类型"
  120. align="center"
  121. width="100"
  122. ></el-table-column>
  123. <el-table-column
  124. prop="workticketTypDsc"
  125. label="工作票类型"
  126. align="center"
  127. width="150"
  128. ></el-table-column>
  129. <el-table-column
  130. prop="poweroffTypDsc"
  131. label="停电类型"
  132. align="center"
  133. width="100"
  134. ></el-table-column>
  135. <el-table-column
  136. prop="isEnergizedOpDsc"
  137. label="是否带电作业"
  138. align="center"
  139. width="120"
  140. ></el-table-column>
  141. <el-table-column
  142. prop="planStartWkTm"
  143. label="计划开工时间"
  144. align="center"
  145. width="150"
  146. ></el-table-column>
  147. <el-table-column
  148. prop="planEndTm"
  149. label="计划结束时间"
  150. align="center"
  151. width="150"
  152. ></el-table-column>
  153. <el-table-column
  154. prop="opContent"
  155. label="作业内容"
  156. align="center"
  157. :show-overflow-tooltip="true"
  158. ></el-table-column>
  159. <el-table-column
  160. prop="chgSchemeDsc"
  161. label="变更方案"
  162. align="center"
  163. :show-overflow-tooltip="true"
  164. ></el-table-column>
  165. <el-table-column
  166. prop="opAddr"
  167. label="作业地址"
  168. align="center"
  169. width="100"
  170. ></el-table-column>
  171. <el-table-column
  172. prop="cityAdmAddr"
  173. label="市行政地址"
  174. align="center"
  175. width="100"
  176. ></el-table-column>
  177. <el-table-column
  178. prop="countyAdmAddr"
  179. label="县行政地址"
  180. align="center"
  181. width="100"
  182. ></el-table-column>
  183. <el-table-column
  184. prop="detlPos"
  185. label="详细位置"
  186. align="center"
  187. width="100"
  188. ></el-table-column>
  189. <el-table-column
  190. prop="landmarkArchit"
  191. label="标志性建筑"
  192. align="center"
  193. width="120"
  194. ></el-table-column>
  195. <el-table-column
  196. prop="workTeamNm"
  197. label="工作班组名称"
  198. align="center"
  199. width="150"
  200. ></el-table-column>
  201. <el-table-column
  202. prop="workPrincipNm"
  203. label="工作负责人"
  204. align="center"
  205. width="100"
  206. ></el-table-column>
  207. </el-table>
  208. <pagination
  209. v-show="total > 0"
  210. :total="total"
  211. :page.sync="queryParams.pageNum"
  212. :limit.sync="queryParams.pageSize"
  213. @pagination="getTrackInfo"
  214. />
  215. </div>
  216. </el-dialog>
  217. </template>
  218. <script>
  219. import { selectWorkPlanByVchicleNo } from "@/api/powerdistribution/vehicle-monitoring";
  220. import moment from "moment";
  221. export default {
  222. name: "WorkTrack",
  223. props: {
  224. visible: {
  225. type: Boolean,
  226. default: false,
  227. },
  228. vehicleInfo: {
  229. type: Object,
  230. default: () => ({}),
  231. },
  232. },
  233. data() {
  234. return {
  235. loading: true,
  236. trackList: [],
  237. total: 0,
  238. queryParams: {
  239. pageNum: 1,
  240. pageSize: 10,
  241. vehicleNo: "",
  242. vehicleGroup: "",
  243. planDate: [
  244. moment().endOf("day").format("YYYY-MM-DD"),
  245. moment().endOf("day").format("YYYY-MM-DD"),
  246. ],
  247. },
  248. vehicleNo: "",
  249. };
  250. },
  251. watch: {
  252. visible(val) {
  253. if (val) {
  254. this.queryParams = {
  255. pageNum: 1,
  256. pageSize: 10,
  257. vehicleNo: this.vehicleInfo.vehicleNo,
  258. planDate: [
  259. this.vehicleInfo.eventStartDate,this.vehicleInfo.occurDate
  260. ],
  261. // vehicleGroup: this.vehicleInfo.vehicleGroup,
  262. };
  263. this.vehicleNo = this.vehicleInfo.vehicleNo;
  264. this.getTrackInfo();
  265. }
  266. },
  267. },
  268. methods: {
  269. getTrackInfo() {
  270. this.loading = true;
  271. selectWorkPlanByVchicleNo({ ...this.queryParams,
  272. startDate: this.queryParams.planDate[0],
  273. endDate: this.queryParams.planDate[1],}).then((response) => {
  274. this.trackList = response.rows || [];
  275. this.total = response.total;
  276. this.loading=false;
  277. });
  278. },
  279. /** 搜索按钮操作 */
  280. handleQuery() {
  281. this.getTrackInfo();
  282. },
  283. resetQuery() {
  284. this.queryParams = {
  285. pageNum: 1,
  286. pageSize: 10,
  287. vehicleNo: this.vehicleInfo.vehicleNo,
  288. vehicleGroup: "",
  289. planDate: [
  290. ],
  291. };
  292. this.resetForm("queryForm");
  293. this.handleQuery();
  294. },
  295. handleClose() {
  296. this.$emit("update:visible", false);
  297. },
  298. },
  299. };
  300. </script>
  301. <style lang="scss" scoped>
  302. .track-container {
  303. min-height: 400px;
  304. padding: 10px;
  305. .mb20 {
  306. margin-bottom: 20px;
  307. }
  308. ::v-deep {
  309. .el-table {
  310. margin-bottom: 20px;
  311. }
  312. }
  313. }
  314. </style>