OrderTask.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <view class="marginTop">
  3. <u-list>
  4. <u-list-item v-for="(item, index) in list" :key="index" v-show="list.length !== 0">
  5. <view class="card_box" @click="goDetail(item)">
  6. <view class="item_box flex_between">
  7. <view class="rx-sc">
  8. <view class="round">{{ Number(index) + 1 }}</view>
  9. <view class="orderId">{{ item.code }}</view>
  10. </view>
  11. <view class="state">{{ dict.status[item.status] }}</view>
  12. </view>
  13. <view class="item_box rx-bc">
  14. <view class="item_one perce50 rx-sc">
  15. <view class="lable">任务类型:</view>
  16. <view>{{ getDict('logistic_delivery_type', item.taskType) }}</view>
  17. </view>
  18. </view>
  19. <view class="item_box rx-bc">
  20. <view class="item_one perce50 rx-sc">
  21. <view class="lable">任务名称:</view>
  22. <view>{{ item.taskCode }}</view>
  23. </view>
  24. </view>
  25. <div v-if="type == 2">
  26. <view class="item_box rx-bc">
  27. <view class="item_one perce50 rx-sc">
  28. <view class="lable">开始时间:</view>
  29. <view>{{ item.realStartTime }}</view>
  30. </view>
  31. </view>
  32. <view class="item_box rx-bc">
  33. <view class="item_one perce50 rx-sc">
  34. <view class="lable">完成时间:</view>
  35. <view>{{ item.realEndTime }}</view>
  36. </view>
  37. </view>
  38. </div>
  39. <div v-else>
  40. <view class="item_box rx-bc">
  41. <view class="item_one perce50 rx-sc">
  42. <view class="lable">应开工时间:</view>
  43. <view>{{ item.planTimeStart }}</view>
  44. </view>
  45. </view>
  46. <view class="item_box rx-bc">
  47. <view class="item_one perce50 rx-sc">
  48. <view class="lable">应完成时间:</view>
  49. <view>{{ item.planTimeEnd }}</view>
  50. </view>
  51. </view>
  52. </div>
  53. </view>
  54. </u-list-item>
  55. <u-list-item v-if="list.length === 0">
  56. <view style='margin-top: 20vh;'>
  57. <u-empty iconSize='150' textSize='32' text='暂无数据'></u-empty>
  58. </view>
  59. </u-list-item>
  60. </u-list>
  61. </view>
  62. </template>
  63. <script>
  64. export default {
  65. props: {
  66. type: {
  67. type: [String, Number]
  68. },
  69. list: {
  70. type: Array,
  71. default: () => []
  72. },
  73. dictList: {
  74. type: Object,
  75. default: () => {}
  76. },
  77. },
  78. computed: {
  79. getDict() {
  80. return (dictName, val) => {
  81. let find = this.dictList[dictName].find(item => item[val]) || {}
  82. return find[val] ? find[val] : ''
  83. }
  84. }
  85. },
  86. data() {
  87. return {
  88. dict: {
  89. status: {
  90. 0: '待接收',
  91. 1: '执行中',
  92. 2: '已完成'
  93. },
  94. //紧急程度
  95. urgent: {
  96. 1: '普通',
  97. 2: '紧急',
  98. 3: '重要'
  99. }
  100. }
  101. }
  102. },
  103. methods: {
  104. goDetail(item) {
  105. item.dictList = this.dictList
  106. let jsonItem = JSON.stringify(item)
  107. uni.navigateTo({
  108. url: `/pages/dispatchManage/taskWork/detail?item=${jsonItem}`
  109. })
  110. },
  111. isClass() {
  112. switch (String(this.type)) {
  113. case '0':
  114. return 'd1'
  115. break
  116. case '1':
  117. return 'd2'
  118. break
  119. case '3':
  120. return 'd3'
  121. break
  122. default:
  123. break
  124. }
  125. }
  126. }
  127. }
  128. </script>
  129. <style lang="scss" scoped>
  130. .marginTop {
  131. border-top: 20rpx solid $page-bg;
  132. }
  133. .card_box {
  134. width: 750rpx;
  135. padding: 16rpx 32rpx;
  136. box-sizing: border-box;
  137. border-bottom: 2rpx solid #E1E1E1;
  138. .item_box {
  139. margin-top: 10rpx;
  140. .round {
  141. width: 40rpx;
  142. height: 40rpx;
  143. line-height: 40rpx;
  144. border-radius: 50%;
  145. background: $theme-color;
  146. color: #fff;
  147. text-align: center;
  148. font-size: 20rpx;
  149. }
  150. .orderId {
  151. color: #000;
  152. font-family: PingFang HK;
  153. font-size: 28rpx;
  154. font-style: normal;
  155. font-weight: 600;
  156. margin-left: 16rpx;
  157. }
  158. .item_one {
  159. width: 100%;
  160. font-size: 26rpx;
  161. font-style: normal;
  162. font-weight: 400;
  163. line-height: 38rpx;
  164. word-wrap: break-word;
  165. }
  166. .perce50 {
  167. width: 100%;
  168. }
  169. }
  170. .flex_between {
  171. display: flex;
  172. justify-content: space-between;
  173. }
  174. }
  175. .state {
  176. font-size: 28rpx;
  177. background-color: $page-bg;
  178. display: inline-block;
  179. padding: 2px 5px;
  180. border-radius: 18rpx;
  181. }
  182. </style>