viewtask.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <template>
  2. <!-- 临时任务详情 -->
  3. <view class="u-p-l-30 u-p-r-30">
  4. <u-cell-group>
  5. <u-cell-item :arrow="false" :title-style="{fontSize:'28rpx',fontWeight: '600',color:'#333333',position: 'relative',
  6. left: '-26rpx'}" title="任务名称">
  7. <view class="item" slot="right-icon">{{taskdetail.title}}</view>
  8. </u-cell-item>
  9. <u-cell-item :arrow="false" :title-style="{fontSize:'28rpx',fontWeight: '600',color:'#333333',position: 'relative',
  10. left: '-26rpx'}" title="任务类型">
  11. <view class="item" slot="right-icon">{{typeList[taskdetail.type]}}</view>
  12. </u-cell-item>
  13. <u-cell-item :arrow="false" :title-style="{fontSize:'28rpx',fontWeight: '600',color:'#333333',position: 'relative',
  14. left: '-26rpx'}" title="发起人 ">
  15. <view class="item" slot="right-icon">{{taskdetail.username}}</view>
  16. </u-cell-item>
  17. <u-cell-item :arrow="false" :title-style="{fontSize:'28rpx',fontWeight: '600',color:'#333333',position: 'relative',
  18. left: '-26rpx'}" title="执行人 ">
  19. <view class="item" slot="right-icon">
  20. {{executorsName}}
  21. </view>
  22. </u-cell-item>
  23. <u-cell-item :arrow="false" :title-style="{fontSize:'28rpx',fontWeight: '600',color:'#333333',position: 'relative',
  24. left: '-26rpx'}" title="发起时间 ">
  25. <view class="item" slot="right-icon">{{publishTime}}</view>
  26. </u-cell-item>
  27. <u-cell-item :arrow="false" :title-style="{fontSize:'28rpx',fontWeight: '600',color:'#333333',position: 'relative',
  28. left: '-26rpx'}" title="完成时间 ">
  29. <view class="item" slot="right-icon">{{finishTime}}</view>
  30. </u-cell-item>
  31. </u-cell-group>
  32. <view class="m-w">
  33. <view class="task-content"> 任务内容</view>
  34. <view class="span-textce">
  35. <textarea disabled="disabled" v-model="taskdetail.content" style="width: 100%; height: 100%;"></textarea>
  36. </view>
  37. </view>
  38. <view class="m-w">
  39. <view class="task-content"> 任务图片</view>
  40. <view class="span-textce u-flex">
  41. <view v-if="taskdetail.executorimgs != null" class="u-m-r-8 " v-for="(item,index) in taskdetail.executorimgs" :key="index">
  42. <u-image @click="previewImg(item)" :src="item" width="100" height="100"></u-image>
  43. </view>
  44. <block v-if="taskdetail.executorimgs == null">
  45. 暂无图片
  46. </block>
  47. </view>
  48. </view>
  49. <view class="u-flex u-row-between u-m-t-62 u-p-b-32">
  50. <navigator hover-class="none" :url="`../feebacklist/feebacklist?id=${taskdetail.id}&title=${taskdetail.title}`"
  51. class="btn">反馈</navigator>
  52. <block v-if="taskdetail.status==1">
  53. <view class="btn" @click="sumok(1)" style="background: #4A8BFF;">完成</view>
  54. <view class="btn" @click="sumok(2)" style="background: #939393;">取消</view>
  55. </block>
  56. </view>
  57. <u-toast ref="viewToast" />
  58. </view>
  59. </template>
  60. <script>
  61. import {
  62. taskupdate,
  63. taklist
  64. } from '@/api/index.js'
  65. import dayjs from "dayjs";
  66. export default {
  67. data() {
  68. return {
  69. taskdetail: "",
  70. executorsName:'',
  71. typeList: ["", "一般任务", "较急任务", "紧急任务"]
  72. }
  73. },
  74. onLoad() {
  75. // 从仓库获取 taskdatail 数据并处理
  76. let taskdetail = this.$store.state.user.taskdetail
  77. // 图片
  78. if(taskdetail.images != '') {
  79. taskdetail.executorimgs = taskdetail.images.split(',')
  80. taskdetail.executornames = (taskdetail.executors.map((index) => {
  81. return index
  82. })).toString()
  83. } else{
  84. taskdetail.executorimgs = null
  85. }
  86. // 执行人
  87. if(taskdetail.executors.length == 1) {
  88. this.executorsName = taskdetail.executors[0]
  89. } else if(taskdetail.executors.length > 1) {
  90. this.executorsName = taskdetail.executors.join('、')
  91. } else {
  92. this.executorsName = '未选择执行人员'
  93. }
  94. this.taskdetail = taskdetail
  95. },
  96. methods: {
  97. // 点击图片事件
  98. previewImg(logourl) {
  99. let _this = this;
  100. let imgsArray = [];
  101. imgsArray[0] = logourl
  102. uni.previewImage({
  103. current: 0,
  104. urls: imgsArray
  105. });
  106. },
  107. sumok(status) {
  108. taskupdate({
  109. id: this.taskdetail.id,
  110. status
  111. })
  112. .then(({
  113. code,
  114. message
  115. }) => {
  116. this.$refs.viewToast.show({
  117. title: code == 200 ? '操作成功' : message,
  118. type: code == 200 ? 'success' : 'info',
  119. callback: () => {
  120. if (code == 200) {
  121. uni.navigateBack(1)
  122. }
  123. }
  124. })
  125. })
  126. }
  127. },
  128. // 计算属性
  129. computed: {
  130. // 计算出开始时间和结束时间(格式转换)
  131. finishTime() {
  132. return dayjs(this.taskdetail.finishTime).format("YYYY-MM-DD HH:mm:ss")
  133. },
  134. publishTime() {
  135. return dayjs(this.taskdetail.publishTime).format("YYYY-MM-DD HH:mm:ss")
  136. },
  137. }
  138. }
  139. </script>
  140. <style>
  141. .item {
  142. position: relative;
  143. right: -26rpx;
  144. }
  145. .task-content {
  146. font-size: 28rpx;
  147. font-family: Microsoft YaHei-3970(82674968);
  148. font-weight: 400;
  149. color: #333333;
  150. margin-top: 28rpx;
  151. }
  152. .span-textce {
  153. width: 690rpx;
  154. height: 160rpx;
  155. border: 1rpx solid #AAAAAA;
  156. border-radius: 4rpx;
  157. margin-top: 24rpx;
  158. padding: 20rpx;
  159. }
  160. .btn {
  161. flex: 1;
  162. margin: 10rpx;
  163. height: 90rpx;
  164. background: #FFA11A;
  165. border-radius: 4rpx;
  166. font-size: 28rpx;
  167. font-family: Microsoft YaHei-3970(82674968);
  168. font-weight: bold;
  169. color: #FFFFFF;
  170. text-align: center;
  171. line-height: 90rpx;
  172. }
  173. </style>