overDetail.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <template>
  2. <!-- #ifdef H5 -->
  3. <zj-page-layout
  4. :isScroll="true"
  5. :hasFooter="false"
  6. :refresherTriggered="refresherTriggered"
  7. @refresherrefresh="refresherrefresh"
  8. >
  9. <view class="list-container">
  10. <view class="item" v-for="(item, index) in dataList" :key="index">
  11. <view class="row">
  12. <view class="label">采集时间</view>
  13. <view class="value">{{ item.giveTime }}</view>
  14. </view>
  15. <view class="row">
  16. <view class="label">采集状态</view>
  17. <view class="value">{{ item.status | statusFilter }}</view>
  18. </view>
  19. <view class="row">
  20. <view class="label">主工程师</view>
  21. <view class="value">{{ item.workerName }}</view>
  22. </view>
  23. <view class="row" v-if="item.pgOrderWorkers.filter(o => !o.isMaster).length">
  24. <view class="label">辅工程师</view>
  25. <view class="value">{{
  26. item.pgOrderWorkers
  27. .filter(o => !o.isMaster)
  28. .map(o => o.workerName)
  29. .join(',')
  30. }}</view>
  31. </view>
  32. <view class="row">
  33. <view class="label">采集图片</view>
  34. <view class="images">
  35. <view class="it" v-for="(it, idx) in item.pgOrderProductDetails" :key="idx">
  36. <image :src="it.fileUrl" mode="aspectFill"></image>
  37. <view class="text">{{ it.fileName }}</view>
  38. </view>
  39. </view>
  40. </view>
  41. </view>
  42. </view>
  43. <Loading :type="2" :loadStatus="loadStatus" :dataList="dataList" />
  44. </zj-page-layout>
  45. <!-- #endif -->
  46. <!-- #ifndef H5 -->
  47. <web-view
  48. :src="webViewHref(`/packageWorkorder/pages/overDetail`, pam, crossPagePam)"
  49. @message="crossPage.$listener"
  50. ></web-view>
  51. <!-- #endif -->
  52. </template>
  53. <script>
  54. // #ifdef H5
  55. export default {
  56. filters: {
  57. statusFilter(val) {
  58. const MAP = {
  59. WAIT: '待采集',
  60. WAIT_SAVE: '待完善',
  61. OK: '已采集',
  62. }
  63. return MAP[val]
  64. }
  65. },
  66. data() {
  67. return {
  68. loadStatus: 1,
  69. refresherTriggered: false,
  70. dataList: [],
  71. }
  72. },
  73. async onLoad({id}) {
  74. this.id = id;
  75. this.getList();
  76. },
  77. methods: {
  78. refresherrefresh(e) {
  79. this.refresherTriggered = true;
  80. this.getList();
  81. },
  82. getList() {
  83. this.$api.post('/changeOrder/productDetailList', {
  84. workerOrderId: this.id,
  85. }).then(res => {
  86. this.dataList = res.data;
  87. }).finally(res => {
  88. this.loadStatus = 0;
  89. this.refresherTriggered = false;
  90. })
  91. },
  92. }
  93. }
  94. // #endif
  95. // #ifndef H5
  96. export default {
  97. data() {
  98. return {
  99. pam: {},
  100. }
  101. },
  102. onLoad(pam) {
  103. this.pam = pam;
  104. }
  105. }
  106. // #endif
  107. </script>
  108. <style lang="scss" scoped>
  109. .list-container {
  110. .item {
  111. margin-top: 30rpx;
  112. background: #ffffff;
  113. padding: 30rpx;
  114. }
  115. .row {
  116. display: flex;
  117. margin-top: 20rpx;
  118. &:first-child {
  119. margin-top: 0;
  120. }
  121. .label {
  122. font-size: 28rpx;
  123. color: $sec-font;
  124. margin-right: 20rpx;
  125. flex-shrink: 0;
  126. }
  127. .value {
  128. font-size: 28rpx;
  129. }
  130. .images {
  131. display: flex;
  132. flex-wrap: wrap;
  133. .it {
  134. margin-bottom: 20rpx;
  135. margin-right: 20rpx;
  136. display: flex;
  137. flex-direction: column;
  138. align-items: center;
  139. image {
  140. width: 120rpx;
  141. height: 120rpx;
  142. display: block;
  143. }
  144. .text {
  145. font-size: 24rpx;
  146. color: $sec-font;
  147. margin-top: 8rpx;
  148. }
  149. }
  150. }
  151. }
  152. }
  153. </style>