| | |
| | | width="80%" |
| | | > |
| | | <div class="detail-container" style="display: flex"> |
| | | <div class="detail-left" v-if="dialogMode !== 'add' && processList.length"> |
| | | <el-timeline class="gd-timeline"> |
| | | <el-timeline-item |
| | | v-for="(activity, index) in processList" |
| | | :key="index" |
| | | :icon="Check" |
| | | :type="index === processList.length - 1 ? 'success' : 'info'" |
| | | :color="activity.color" |
| | | :hollow="activity.hollow" |
| | | :timestamp="activity.createTime" |
| | | > |
| | | <div class="item-content"> |
| | | <div>{{ activity.operator }}</div> |
| | | <div class="flowName">{{ activity.flowName }}</div> |
| | | </div> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | <div class="processBox"> |
| | | <div class="detail-title">巡查需求记录</div> |
| | | <div class="detail-left" v-if="dialogMode !== 'add' && processList.length"> |
| | | <el-timeline class="gd-timeline"> |
| | | <el-timeline-item |
| | | v-for="(activity, index) in processList" |
| | | :key="index" |
| | | :icon="Check" |
| | | :type="index === processList.length - 1 ? 'success' : 'info'" |
| | | :color="activity.color" |
| | | :hollow="activity.hollow" |
| | | :timestamp="activity.createTime" |
| | | > |
| | | <div class="item-content"> |
| | | <div>{{ activity.operator }}</div> |
| | | <div class="flowName">{{ activity.flowName }}</div> |
| | | </div> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="detail-right"> |
| | |
| | | </div> |
| | | |
| | | <!-- 编辑模式 --> |
| | | <el-form class="gd-dialog-form" v-else ref="formRef" :model="formData" :rules="rules" label-width="110px"> |
| | | <el-form class="gd-dialog-form" v-else ref="formRef" :model="formData" :rules="rules" label-width="130px"> |
| | | <div class="detail-title">巡查任务详情</div> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="巡查任务名称" prop="patrolTaskName"> |
| | |
| | | <el-form-item label="任务执行时间" prop="executeTime"> |
| | | <el-date-picker |
| | | class="gd-date-picker" |
| | | popper-class="gd-date-picker-popper" |
| | | v-model="formData.executeTime" |
| | | type="datetime" |
| | | placeholder="请选择" |
| | |
| | | </template> |
| | | <template v-if="permission.flyOrder_controlReview"> |
| | | <el-button v-if="taskStatus === '3'" @click="addDescription" color="#F2F3F5">驳回</el-button> |
| | | <el-button v-if="taskStatus === '3'" @click="statusChange(4)" color="#4C34FF">同意</el-button> |
| | | <el-button v-if="taskStatus === '3'" @click="statusChange(4)" color="#4C34FF">通过</el-button> |
| | | </template> |
| | | </template> |
| | | <RefuseOrderDialog1 |
| | |
| | | import { computed, ref, onMounted } from 'vue' |
| | | import { ElMessage } from 'element-plus' |
| | | import { fieldRules, flyVisual, getDictLabel } from '@ztzf/utils' |
| | | import { gdPatrolTaskRepublish, gdFlyerPageApi, gdPatrolTaskAuditApi } from './inspectionRequestApi' |
| | | import { |
| | | gdPatrolTaskRepublish, |
| | | gdFlyerPageApi, |
| | | gdPatrolTaskAuditApi, |
| | | gdPatrolTaskDetailApi, |
| | | } from './inspectionRequestApi' |
| | | import { gdWorkOrderFlowListApi, gdWorkOrderFlowPatrolListApi, gdWorkOrderPageApi } from '../orderManage/orderManageApi' |
| | | import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi' |
| | | import { pxToRem } from '@/utils/rem' |
| | |
| | | const getAirName = inject('getAirName') |
| | | |
| | | const gdStatusObj = { |
| | | '0': { reason: '拒绝原因', operationType: '2' }, |
| | | '0': { reason: '拒绝原因', operationType: '2', title: '拒绝签收' }, |
| | | '1': { reason: '拒绝原因' }, |
| | | '2': { reason: '' }, |
| | | '3': { reason: '驳回原因', operationType: '5' }, |
| | | '3': { reason: '驳回原因', operationType: '5', title: '驳回' }, |
| | | '4': { reason: '驳回原因' }, |
| | | '5': { reason: '' }, |
| | | '6': { reason: '拒绝原因' }, |
| | |
| | | row: formData.value, |
| | | type: gdStatusObj[taskStatus.value].operationType, |
| | | formLabel: gdStatusObj[taskStatus.value].reason, |
| | | title: gdStatusObj[taskStatus.value]?.title, |
| | | }) |
| | | }) |
| | | } |
| | |
| | | }) |
| | | // 获取航线详情 |
| | | function getAirDetails() { |
| | | console.log(formData.value) |
| | | queryAirById(formData.value.patrolRouteUrl).then(res => { |
| | | const list = res.data.data.airlineWaypoints |
| | | if (!list.length) return mapRef.value?.flyBoundary() |
| | |
| | | // 打开弹框 |
| | | async function open({ mode = 'view', row } = {}) { |
| | | dialogMode.value = mode |
| | | formData.value = { ...initForm(), ...row } |
| | | ;['6', '7', '8'].includes(row.taskStatus) && getTaskResultList() |
| | | const res = await gdPatrolTaskDetailApi({ id: row.id }) |
| | | formData.value = { ...initForm(), ...res.data.data } |
| | | ;['6', '7', '8'].includes(row.taskStatus) && await getTaskResultList() |
| | | loadList() |
| | | initMap() |
| | | } |
| | | |
| | | const readyMap = () => { |
| | | // mapRef.value?.flyBoundary() |
| | | getAirDetails() |
| | | } |
| | | |
| | |
| | | .item-content { |
| | | position: relative; |
| | | .flowName { |
| | | width: 80px; |
| | | width: 72px; |
| | | position: absolute; |
| | | left: -120px; |
| | | top: 0px; |
| | |
| | | color: #999; |
| | | margin-top: 2px; |
| | | } |
| | | |
| | | .processBox { |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .detail-left { |
| | | height: 100%; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | </style> |