| | |
| | | <!-- 操作按钮区域 --> |
| | | <view class="action-buttons" v-if="taskDetail"> |
| | | <!-- 待处理状态: 显示出发、取消、强制完成 --> |
| | | <template v-if="taskDetail.taskStatus === 'PENDING'"> |
| | | <template v-if="taskDetail.taskStatus === 'PENDING' "> |
| | | <button |
| | | v-if="isCurrentUserAssignee()" |
| | | v-if="canOperateTask()" |
| | | class="action-btn primary" |
| | | @click="handleDepartAction()" |
| | | > |
| | |
| | | 取消 |
| | | </button> |
| | | <button |
| | | v-if="isCurrentUserAssignee() && showForceCompleteFeature()" |
| | | v-if="canOperateTask() && showForceCompleteFeature()" |
| | | class="action-btn force-complete" |
| | | @click="showForceCompleteTimeDialog()" |
| | | > |
| | |
| | | |
| | | <!-- 出发中状态: 显示已到达、强制结束 --> |
| | | <template v-else-if="taskDetail.taskStatus === 'DEPARTING'"> |
| | | <template v-if="isCurrentUserAssignee()"> |
| | | <template v-if="canOperateTask()"> |
| | | <button |
| | | class="action-btn primary" |
| | | @click="handleTaskAction('arrive')" |
| | |
| | | |
| | | <!-- 已到达状态: 显示已返程 --> |
| | | <template v-else-if="taskDetail.taskStatus === 'ARRIVED'"> |
| | | <template v-if="isCurrentUserAssignee()"> |
| | | <template v-if="canOperateTask()"> |
| | | <button |
| | | class="action-btn primary" |
| | | @click="handleTaskAction('return')" |
| | |
| | | |
| | | <!-- 返程中状态: 显示已完成 --> |
| | | <template v-else-if="taskDetail.taskStatus === 'RETURNING'"> |
| | | <template v-if="isCurrentUserAssignee()"> |
| | | <template v-if="canOperateTask()"> |
| | | <button |
| | | class="action-btn primary" |
| | | @click="handleTaskAction('complete')" |
| | | > |
| | | 已完成 |
| | | </button> |
| | | </template> |
| | | </template> |
| | | |
| | | <!-- 处理中状态: 显示强制完成、取消 --> |
| | | <template v-else-if="taskDetail.taskStatus === 'IN_PROGRESS'"> |
| | | <template v-if="canOperateTask()"> |
| | | <button |
| | | class="action-btn primary" |
| | | @click="handleTaskAction('arrive')" |
| | | > |
| | | 已到达 |
| | | </button> |
| | | <button |
| | | v-if="showForceCompleteFeature()" |
| | | class="action-btn force-complete" |
| | | @click="showForceCompleteTimeDialog()" |
| | | > |
| | | 强制完成 |
| | | </button> |
| | | </template> |
| | | </template> |
| | | |
| | |
| | | const list = (this.taskDetail && Array.isArray(this.taskDetail.assignees)) ? this.taskDetail.assignees : [] |
| | | return list.some(a => a && (a.userId === userId || a.oaUserId === userId)) |
| | | }, |
| | | |
| | | // 是否当前用户可以操作任务(执行人或管理员) |
| | | canOperateTask() { |
| | | // 检查是否是管理员(canViewAllConsult === '1') |
| | | |
| | | const canViewAllConsult = this.$store && this.$store.state && this.$store.state.user && this.$store.state.user.canViewAllConsult |
| | | console.log("当前用户是否是管理员:", canViewAllConsult) |
| | | if (canViewAllConsult === '1') { |
| | | return true |
| | | } |
| | | // 检查是否是任务执行人 |
| | | return this.isCurrentUserAssignee() |
| | | }, |
| | | |
| | | // 是否多人执行 |
| | | isMultipleAssignees() { |