吉安感知网项目-前端
张含笑
2026-01-21 9eb8bb59b802ceef1f52d334c8e577f2bf02c90e
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -11,7 +11,7 @@
         <div class="leftBox">
            <!-- 查看模式 -->
            <div class="detail-container" v-if="dialogReadonly">
               <el-row>
               <el-row class="detail-row-view">
                  <el-col :span="12">
                     <div class="label">巡查任务名称</div>
                     <div class="val">{{ formData.patrolTaskName }}</div>
@@ -45,6 +45,21 @@
                     <div class="val">{{ formData.taskDesc }}</div>
                  </el-col>
               </el-row>
               <template v-if="['6','7','8'].includes(taskStatus)">
                  <div>任务成功({{list.length || 0}}条)</div>
                  <div  style="display: flex">
                     <div v-for="item in list">
                        <el-image
                           v-if="item.resultUrl"
                           :src="item.resultUrl"
                           :preview-src-list="[item.resultUrl]"
                           fit="cover"
                           style="width: 80px; height: 60px"
                           preview-teleported
                        />
                     </div>
                  </div>
               </template>
            </div>
            <!-- 编辑模式 -->
@@ -154,7 +169,7 @@
      </div>
      <template #footer>
         <el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
         <!--         <el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>-->
         <el-button
            class="save-btn"
            color="#4C34FF"
@@ -165,6 +180,20 @@
         >
            确认
         </el-button>
         <template v-if="requester">
<!--            statusChange(6)-->
            <el-button color="#F2F3F5" v-if="taskStatus === '1'">拒绝原因</el-button>
            <el-button color="#F2F3F5" @click="statusChange(3)" v-if="taskStatus === '3'">撤回任务</el-button>
            <el-button color="#F2F3F5" @click="refusalToAccept" v-if="taskStatus === '6'">拒绝验收</el-button>
            <el-button color="#F2F3F5" @click="statusChange(6)" v-if="taskStatus === '6'">验收通过</el-button>
         </template>
         <template v-else>
            <el-button color="#F2F3F5" @click="statusChange(2)" v-if="taskStatus === '0'">拒绝签收</el-button>
            <el-button color="#F2F3F5" @click="statusChange(1)" v-if="taskStatus === '0'">签收</el-button>
            <el-button color="#F2F3F5" @click="statusChange(5)" v-if="taskStatus === '3'">驳回</el-button>
            <el-button color="#F2F3F5" @click="statusChange(4)" v-if="taskStatus === '3'">通过</el-button>
         </template>
      </template>
   </el-dialog>
</template>
@@ -173,11 +202,12 @@
import { computed, ref, onMounted } from 'vue'
import { ElMessage } from 'element-plus'
import { fieldRules, getDictLabel } from '@ztzf/utils'
import { gdPatrolTaskRepublish, gdFlyerPageApi } from './inspectionRequestApi'
import { gdPatrolTaskRepublish, gdFlyerPageApi, gdPatrolTaskAuditApi } from './inspectionRequestApi'
import { gdWorkOrderPageApi } from '../orderManage/orderManageApi'
import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
import { pxToRem } from '@/utils/rem'
import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import { gdTaskResultListApi } from '@/views/orderView/orderManage/clueEvents/achievementApi'
// 初始化表单数据
const initForm = () => ({
@@ -194,7 +224,8 @@
const mapRef = ref(null)
const dictObj = inject('dictObj')
const emit = defineEmits(['success'])
const requester = inject('requester')
const emit = defineEmits(['success','refusalAccept'])
const formRef = ref(null)
const formData = ref(initForm())
const visible = defineModel()
@@ -202,7 +233,7 @@
const submitting = ref(false)
const dialogReadonly = computed(() => dialogMode.value === 'view')
const titleEnum = ref({ edit: '编辑', view: '查看' })
const taskStatus = computed(() => formData.value.taskStatus)
// 下拉选项
const flyerList = ref([])
const deviceList = ref([])
@@ -255,6 +286,19 @@
   flyerList.value = res?.data?.data?.records ?? []
}
// 操作类型:1.同意签收、2.拒绝签收 、3.撤回任务 、4.同意审核、 5.拒绝审核、 6.验收通过、 7.验收拒绝
function statusChange(auditStatus) {
   gdPatrolTaskAuditApi({ auditStatus, id: formData.value.id }).then(res => {
      visible.value = false
      emit('success')
   })
}
function refusalToAccept() {
   emit('refusalAccept',formData.value)
   visible.value = false
}
// 获取设备列表
async function getDeviceList() {
   const res = await gdManageDeviceListApi()
@@ -276,10 +320,22 @@
   }
}
let list = ref([])
// 获取成果列表
async function getList() {
   if (!formData.value?.id) return
   try {
      const res = await gdTaskResultListApi({ patrolTaskId: formData.value.id })
      list.value = res?.data?.data ?? []
   } finally {
   }
}
// 打开弹框
async function open({ mode = 'view', row } = {}) {
   dialogMode.value = mode
   formData.value = { ...initForm(), ...row }
   formData.value = { ...initForm(), ...row };
   ['6','7','8'].includes(row.taskStatus) && getWorkOrderList()
   initMap()
}