inspection-list.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. <!--
  2. * @Title:
  3. * @Description: 巡检上报列表
  4. * @Author: swp
  5. * @Date: 2022-08-24 10:49:21
  6. * @LastEditors:
  7. * @LastEditTime: 2022-08-24 10:49:21
  8. -->
  9. <template>
  10. <view class="wrap">
  11. <uni-nav-bar dark :fixed="true" backgroundColor="#3F9EFF" statusBar="false" left-icon="left" left-text="返回"
  12. @clickLeft="toBack">
  13. <view class="nav-title">
  14. <text>{{title}}</text>
  15. </view>
  16. </uni-nav-bar>
  17. <view class="container">
  18. <!-- <uni-section title="任务统计" type="circle">
  19. </uni-section> -->
  20. <uni-section title="查询条件" type="circle">
  21. <view class="search-block">
  22. <view style="margin-top: 10px;padding-left: 10px;padding-right: 10px;margin-bottom: 10px;">
  23. <view class="select-checkbox">
  24. <uni-data-checkbox v-model="inspectionStatusOption" :localdata="inspectionStatusItems">
  25. </uni-data-checkbox>
  26. </view>
  27. </view>
  28. <view class="submit-btn">
  29. <button type="default" @click="search">查 询</button>
  30. </view>
  31. </view>
  32. </uni-section>
  33. <uni-section title="巡检任务信息" type="circle">
  34. <uni-list>
  35. <uni-list-item v-for="(item,index) in list" :key="item.id">
  36. <template v-slot:body>
  37. <uni-collapse v-if="index ==0" @change="change">
  38. <uni-collapse-item :open="true" :show-animation="true" title-border="none"
  39. :border="false">
  40. <template v-slot:title>
  41. <view class="list-item-block">
  42. <view class="items-line">
  43. <!-- <image class="item-title-run-status-icon"
  44. style="box-shadow:0 0 2px 2px lightblue"
  45. src="/static/images/list/inspection_item.png" mode="widthFix">
  46. </image> -->
  47. <uni-icons class="input-uni-icon" type="compose" size="18"
  48. color="lightblue" />
  49. <text class="item-title-rtu-name">{{item.inspectionTitle}}</text>
  50. </view>
  51. <view v-if="item.inspectionStatus==0" class="items-line"
  52. style="padding-left: 0px;">
  53. <uni-icons class="input-uni-icon" type="gear" size="18"
  54. color="lightblue" />
  55. <!-- <text class="item-text-lable">巡检状态:</text> -->
  56. <text class="item-text-content" style="color:red;">待巡检</text>
  57. </view>
  58. <view v-else-if="item.inspectionStatus==2" class="items-line"
  59. style="padding-left: 0px;">
  60. <!-- <text class="item-text-lable">巡检状态:</text> -->
  61. <uni-icons class="input-uni-icon" type="gear" size="18"
  62. color="lightblue" />
  63. <text class="item-text-content" style="color:orange;">待审批</text>
  64. </view>
  65. <view v-else-if="item.inspectionStatus==3" class="items-line"
  66. style="padding-left: 0px;">
  67. <!-- <text class="item-text-lable">巡检状态:</text> -->
  68. <uni-icons class="input-uni-icon" type="gear" size="18"
  69. color="lightblue" />
  70. <text class="item-text-content" style="color:green;">已完结</text>
  71. </view>
  72. </view>
  73. </template>
  74. <view class="list-item-block">
  75. <view v-if="item.inspectionStatus==0" class="items-line" style="height: 50px;">
  76. <view v-if="item.planScheduledType ==1" class="items-line">
  77. <text class="item-text-lable">完成时限:</text>
  78. <text class="item-text-content"
  79. style="color:gray;">{{item.inspectionCompleteTime}}</text>
  80. </view>
  81. <view v-else-if="item.planScheduledType ==2" class="items-line">
  82. <text class="item-text-lable">巡检日期:</text>
  83. <text class="item-text-content"
  84. style="color:gray;">{{item.inspectionDate}}</text>
  85. </view>
  86. </view>
  87. <view v-else-if="item.inspectionStatus==2" class="items-line">
  88. <uni-list style="width: 100%;">
  89. <uni-list-item v-for="reportItem in item.reportList"
  90. :key="reportItem.id" showArrow clickable
  91. @click="toReportDetail(reportItem)">
  92. <template v-slot:body>
  93. <view class="list-item-block">
  94. <view class="items-line">
  95. <text class="item-text-lable">处理人:</text>
  96. <text
  97. class="item-text-content-ellipsis">{{reportItem.servicePersonName}}</text>
  98. </view>
  99. <view class="items-line">
  100. <text class="item-text-lable">处理时间:</text>
  101. <text
  102. class="item-text-content-ellipsis">{{reportItem.createTime}}</text>
  103. </view>
  104. <view class="items-line">
  105. <text class="item-text-lable">巡检内容:</text>
  106. <text
  107. class="item-text-content-ellipsis">{{reportItem.inspectionDesc}}</text>
  108. </view>
  109. </view>
  110. </template>
  111. </uni-list-item>
  112. </uni-list>
  113. </view>
  114. <view v-else-if="item.inspectionStatus==3" class="items-line">
  115. <uni-list style="width: 100%;">
  116. <uni-list-item v-for="reportItem in item.reportList"
  117. :key="reportItem.id" showArrow clickable
  118. @click="toReportDetail(reportItem)">
  119. <template v-slot:body>
  120. <view class="list-item-block">
  121. <view class="items-line">
  122. <text class="item-text-lable">处理人:</text>
  123. <text
  124. class="item-text-content-ellipsis">{{reportItem.servicePersonName}}</text>
  125. </view>
  126. <view class="items-line">
  127. <text class="item-text-lable">处理时间:</text>
  128. <text
  129. class="item-text-content-ellipsis">{{reportItem.createTime}}</text>
  130. </view>
  131. <view class="items-line">
  132. <text class="item-text-lable">巡检内容:</text>
  133. <text
  134. class="item-text-content-ellipsis">{{reportItem.inspectionDesc}}</text>
  135. </view>
  136. </view>
  137. </template>
  138. </uni-list-item>
  139. </uni-list>
  140. </view>
  141. </view>
  142. </uni-collapse-item>
  143. </uni-collapse>
  144. <uni-collapse v-else @change="change">
  145. <uni-collapse-item :title="item.inspectionTitle" :show-animation="true"
  146. title-border="none" :border="false">
  147. <template v-slot:title>
  148. <view class="list-item-block">
  149. <view class="items-line">
  150. <!-- <image class="item-title-run-status-icon"
  151. style="box-shadow:0 0 2px 2px lightblue"
  152. src="/static/images/list/inspection_item.png" mode="widthFix">
  153. </image> -->
  154. <uni-icons class="input-uni-icon" type="compose" size="18"
  155. color="lightblue" />
  156. <text class="item-title-rtu-name">{{item.inspectionTitle}}</text>
  157. </view>
  158. <view v-if="item.inspectionStatus==0" class="items-line"
  159. style="padding-left: 0px;">
  160. <!-- <text class="item-text-lable">巡检状态:</text> -->
  161. <uni-icons class="input-uni-icon" type="gear" size="18"
  162. color="lightblue" />
  163. <text class="item-text-content" style="color:red;">待巡检</text>
  164. </view>
  165. <view v-else-if="item.inspectionStatus==2" class="items-line"
  166. style="padding-left: 0px;">
  167. <!-- <text class="item-text-lable">巡检状态:</text> -->
  168. <uni-icons class="input-uni-icon" type="gear" size="18"
  169. color="lightblue" />
  170. <text class="item-text-content" style="color:orange;">待审批</text>
  171. </view>
  172. <view v-else-if="item.inspectionStatus==3" class="items-line"
  173. style="padding-left: 0px;">
  174. <!-- <text class="item-text-lable">巡检状态:</text> -->
  175. <uni-icons class="input-uni-icon" type="gear" size="18"
  176. color="lightblue" />
  177. <text class="item-text-content" style="color:green;">已完结</text>
  178. </view>
  179. </view>
  180. </template>
  181. <view class="list-item-block">
  182. <view v-if="item.inspectionStatus==0" class="items-line" style="height: 50px;">
  183. <view v-if="item.planScheduledType ==1" class="items-line">
  184. <text class="item-text-lable">完成时限:</text>
  185. <text class="item-text-content"
  186. style="color:gray;">{{item.inspectionCompleteTime}}</text>
  187. </view>
  188. <view v-else-if="item.planScheduledType ==2" class="items-line">
  189. <text class="item-text-lable">巡检日期:</text>
  190. <text class="item-text-content"
  191. style="color:gray;">{{item.inspectionDate}}</text>
  192. </view>
  193. </view>
  194. <view v-else-if="item.inspectionStatus==2" class="items-line">
  195. <uni-list style="width: 100%;">
  196. <uni-list-item v-for="reportItem in item.reportList"
  197. :key="reportItem.id" showArrow clickable
  198. @click="toReportDetail(reportItem)">
  199. <template v-slot:body>
  200. <view class="list-item-block">
  201. <view class="items-line">
  202. <text class="item-text-lable">处理人:</text>
  203. <text
  204. class="item-text-content-ellipsis">{{reportItem.servicePersonName}}</text>
  205. </view>
  206. <view class="items-line">
  207. <text class="item-text-lable">处理时间:</text>
  208. <text
  209. class="item-text-content-ellipsis">{{reportItem.createTime}}</text>
  210. </view>
  211. <view class="items-line">
  212. <text class="item-text-lable">巡检内容:</text>
  213. <text
  214. class="item-text-content-ellipsis">{{reportItem.inspectionDesc}}</text>
  215. </view>
  216. </view>
  217. </template>
  218. </uni-list-item>
  219. </uni-list>
  220. </view>
  221. <view v-else-if="item.inspectionStatus==3" class="items-line">
  222. <uni-list style="width: 100%;">
  223. <uni-list-item v-for="reportItem in item.reportList"
  224. :key="reportItem.id" showArrow clickable
  225. @click="toReportDetail(reportItem)">
  226. <template v-slot:body>
  227. <view class="list-item-block">
  228. <view class="items-line">
  229. <text class="item-text-lable">处理人:</text>
  230. <text
  231. class="item-text-content-ellipsis">{{reportItem.servicePersonName}}</text>
  232. </view>
  233. <view class="items-line">
  234. <text class="item-text-lable">处理时间:</text>
  235. <text
  236. class="item-text-content-ellipsis">{{reportItem.createTime}}</text>
  237. </view>
  238. <view class="items-line">
  239. <text class="item-text-lable">巡检内容:</text>
  240. <text
  241. class="item-text-content-ellipsis">{{reportItem.inspectionDesc}}</text>
  242. </view>
  243. </view>
  244. </template>
  245. </uni-list-item>
  246. </uni-list>
  247. </view>
  248. </view>
  249. </uni-collapse-item>
  250. </uni-collapse>
  251. </template>
  252. </uni-list-item>
  253. </uni-list>
  254. </uni-section>
  255. <uni-group>
  256. <view class="pagination-block">
  257. <uni-pagination show-icon :page-size="pageSize" :current="pageCurrent" :total="total"
  258. @change="pageChange" />
  259. </view>
  260. </uni-group>
  261. </view>
  262. </view>
  263. </template>
  264. <script>
  265. import {
  266. role
  267. } from "@/api/role.js";
  268. import http from '@/http/api.js';
  269. export default {
  270. components: {
  271. },
  272. onLoad(option) {
  273. this.planId = option.planId;
  274. this.query['inspectionPlanId'] = this.planId;
  275. this.getPage();
  276. },
  277. data() {
  278. return {
  279. title: '巡检任务信息',
  280. planId: '',
  281. inspectionStatusItems: [{
  282. 'value': 0,
  283. 'text': '全部'
  284. }, {
  285. 'value': 1,
  286. 'text': '待巡检'
  287. }, {
  288. 'value': 2,
  289. 'text': '待审批'
  290. }, {
  291. 'value': 3,
  292. 'text': '已完结'
  293. }],
  294. inspectionStatusOption: 0,
  295. list: [],
  296. pageSize: 10,
  297. // 当前页
  298. pageCurrent: 1,
  299. // 数据总量
  300. total: 0,
  301. query: {},
  302. inputStyles: {
  303. color: '#808080',
  304. borderColor: '#d3d3d3'
  305. },
  306. value: ['0'],
  307. }
  308. },
  309. computed: {},
  310. onShow() {},
  311. methods: {
  312. toBack() {
  313. uni.navigateBack({
  314. delta: 1
  315. })
  316. },
  317. onBackPress() {
  318. // #ifdef APP-PLUS
  319. plus.key.hideSoftKeybord();
  320. // #endif
  321. },
  322. change(e) {
  323. console.log(e);
  324. },
  325. // 分页触发
  326. pageChange(e) {
  327. this.pageCurrent = e.current;
  328. this.getPage()
  329. },
  330. //录入查询
  331. search() {
  332. this.pageCurrent = 1;
  333. let params = {};
  334. this.getPage(params);
  335. },
  336. getPage(params = {}) {
  337. let that = this;
  338. const current = this.pageCurrent;
  339. const size = this.pageSize;
  340. params['inspectionStatusOption'] = this.inspectionStatusOption;
  341. let postData = Object.assign(params, this.query);
  342. http.request({
  343. url: '/galaxy-business/equipment/inspection/page',
  344. method: 'GET',
  345. params: {
  346. current,
  347. size,
  348. },
  349. data: postData,
  350. }).then(res => {
  351. if (res.data != null) {
  352. if (res.data.records != null) {
  353. that.list = res.data.records;
  354. }
  355. this.total = res.data.total;
  356. }
  357. }).catch(err => {
  358. console.log(err)
  359. })
  360. },
  361. toReportDetail(reportItem){
  362. let url = '/pages/equipment-inspection/inspection-report-detail?id=' + reportItem.id;
  363. uni.navigateTo({
  364. url: url
  365. })
  366. },
  367. }
  368. }
  369. </script>
  370. <style>
  371. /* page {
  372. background-color: rgb(240, 242, 244);
  373. } */
  374. </style>
  375. <style lang="scss" scoped>
  376. .line {
  377. display: flex;
  378. flex-direction: column;
  379. justify-content: flex-start;
  380. }
  381. .line .lineText {
  382. margin-left: 10px;
  383. margin-right: 0px;
  384. display: flex;
  385. flex-direction: row;
  386. justify-content: flex-start;
  387. }
  388. .line .lineText .inspectionCount {
  389. color: dodgerblue;
  390. font-size: 0.7rem;
  391. }
  392. .line .lineText .content {
  393. margin-left: 10px;
  394. color: gray;
  395. font-size: 0.7rem;
  396. }
  397. </style>