Assign.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <view class="assign-container">
  3. <u-popup :show="popShow" @close="close">
  4. <view class="choose-container" v-if="list.length > 0">
  5. <view class="container-title">当前设备您有以下工单待处理</view>
  6. <u-list height="750rpx" class="u-list">
  7. <u-list-item v-for="(item, index) in list" :key="index">
  8. <CardTime :time="item.createTime" />
  9. <KdCard :orderTitle="orderTitle(item.workOrderType)" :title="item.workOrderCode"
  10. @handleDetail="handleDetail" :status="true" :item="item"
  11. :type="getType(item.workOrderType)" />
  12. </u-list-item>
  13. <u-list-item v-if="list.length === 0">
  14. <view class="nodata"> 暂无数据 </view>
  15. </u-list-item>
  16. </u-list>
  17. <view class="container-button" @click="close">稍候处理</view>
  18. </view>
  19. <u-empty style="padding: 20rpx 0;" textSize="24rpx" text="暂无待处理工单" v-else></u-empty>
  20. </u-popup>
  21. </view>
  22. </template>
  23. <script>
  24. import {
  25. post,
  26. get,
  27. postJ
  28. } from '@/utils/api.js'
  29. import KdCard from '@/pages/home/components/KdCard/index.vue'
  30. import CardTime from '@/pages/home/components/CardTime.vue'
  31. export default {
  32. props:['qrContent','list'],
  33. components: {
  34. KdCard,
  35. CardTime
  36. },
  37. data() {
  38. return {
  39. popShow: false,
  40. }
  41. },
  42. methods: {
  43. open(code) {
  44. this.popShow = true
  45. this.equiCode = code
  46. },
  47. close() {
  48. this.popShow = false
  49. },
  50. getType(workOrderType) {
  51. switch (workOrderType.code) {
  52. case 1:
  53. return 'patrol'
  54. break;
  55. case 2:
  56. return 'maintenance'
  57. break;
  58. case 3:
  59. return 'repair'
  60. break;
  61. default:
  62. break;
  63. }
  64. },
  65. orderTitle(workOrderType) {
  66. switch (workOrderType.code) {
  67. case 1:
  68. return '巡点检工单'
  69. break;
  70. case 2:
  71. return '保养工单'
  72. break;
  73. case 3:
  74. return '维修工单'
  75. break;
  76. default:
  77. break;
  78. }
  79. },
  80. handleDetail(item) {
  81. let url = ''
  82. switch (item.workOrderType.code) {
  83. case 1:
  84. url = '/pages/tour_tally/detail/detail?'
  85. break;
  86. case 2:
  87. url = '/pages/maintenance/detail/detail?'
  88. break;
  89. case 3:
  90. url = '/pages/maintain_service/detail/detail?'
  91. break;
  92. default:
  93. break;
  94. }
  95. if (!url) return
  96. url += `id=${item.id}&workOrderCode=${item.workOrderCode}&BizType=${item.bizType}`
  97. if (item.status.descp == '执行中') {
  98. url += `&qrContent=${this.qrContent}`
  99. }
  100. uni.navigateTo({
  101. url
  102. })
  103. },
  104. }
  105. }
  106. </script>
  107. <style lang="scss" scoped>
  108. .choose-container {
  109. max-height: 70vh;
  110. background: #e7e7e7;
  111. .container-title {
  112. width: 100%;
  113. height: 80rpx;
  114. line-height: 80rpx;
  115. text-align: center;
  116. font-size: 30rpx;
  117. color: #000;
  118. font-weight: bold;
  119. }
  120. .container-scroll {
  121. width: 100%;
  122. max-height: 55vh;
  123. // background:#fff;
  124. .kd-card {
  125. font-size: 28rpx;
  126. color: #333;
  127. background-color: #fff;
  128. border-radius: 8rpx;
  129. word-break: break-all;
  130. width: 98%;
  131. background: #fff;
  132. margin: 0 auto 16rpx;
  133. .status {
  134. font-weight: normal;
  135. }
  136. .card-title {
  137. font-weight: bold;
  138. }
  139. .card-footer,
  140. .card-title {
  141. display: flex;
  142. justify-content: space-between;
  143. padding: 12rpx 16rpx;
  144. }
  145. .card-body {
  146. padding: 0 28rpx;
  147. border-top: 1rpx solid #f2f2f2;
  148. border-bottom: 1rpx solid #f2f2f2;
  149. .card-col {
  150. padding: 8rpx 0;
  151. display: flex;
  152. // line-height: ;
  153. .label {
  154. display: inline-block;
  155. width: 6em;
  156. color: #555;
  157. text-align: right;
  158. margin-right: 14rpx;
  159. }
  160. .content {
  161. flex: 1;
  162. }
  163. }
  164. }
  165. }
  166. }
  167. .container-button {
  168. width: 180rpx;
  169. height: 80rpx;
  170. line-height: 80rpx;
  171. font-size: 32rpx;
  172. border: 1rpx solid #333;
  173. border-radius: 10rpx;
  174. margin: 16rpx auto;
  175. color: #333;
  176. text-align: center;
  177. }
  178. }
  179. </style>