吉安感知网项目-前端
张含笑
2026-01-29 ec2ff7ebf2f4b1baa9fb931d0e6fcf7134106f51
Merge remote-tracking branch 'origin/master'
6 files modified
66 ■■■■ changed files
applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue 26 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js 11 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue 4 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/flyingHand/index.vue 6 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue 1 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue 18 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
@@ -13,6 +13,7 @@
                        <el-input class="command-input" v-model="formData.disposeWay" maxlength="200" type="textarea" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <div v-if="checkAreaBind" class="warning-text"> 注:该设备已绑定区域,报废设备该区域无法正常使用,是否报废?</div>
            </el-row>
        </el-form>
        <template #footer>
@@ -35,7 +36,7 @@
import { computed, ref } from 'vue'
import { ElMessage } from 'element-plus'
import { fieldRules } from '@ztzf/utils'
import { fwDeviceScrapSaveApi } from '@/views/basicManage/deviceStock/fwDeviceScrapApi'
import { fwDeviceScrapSaveApi,fivDevicelcheckAreaBindApi } from '@/views/basicManage/deviceStock/fwDeviceScrapApi'
import dayjs from 'dayjs'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
@@ -105,9 +106,30 @@
    dialogMode.value = mode || 'add'
    visible.value = true
    formData.value.deviceId = row.id
    getCheckAreaBind()
}
const checkAreaBind = ref(false)
function getCheckAreaBind() {
    fivDevicelcheckAreaBindApi({
        deviceId: formData.value.deviceId
    }).then(res => {
        checkAreaBind.value = res.data.data
    })
}
onMounted(() => {})
onMounted(() => {
    getCheckAreaBind()
})
defineExpose({ open })
</script>
<style scoped lang="scss">
.warning-text {
    width: 100%;
    color: red;
    font-size: 14px;
    text-align: center;
    margin: -10px 0 10px 0;
}
</style>
applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js
@@ -26,3 +26,14 @@
        params,
    })
}
// 设置区域绑定校验
export const fivDevicelcheckAreaBindApi = params => {
    return request({
        url: `/drone-fw/device/fwDevice/checkAreaBind`,
        method: 'get',
        params,
    })
}
applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
@@ -30,7 +30,7 @@
      </el-col>
      <el-col :span="12">
        <div class="label">擅长任务类型</div>
        <div class="val">{{ getDictLabel(formData.skilledTaskType, dictObj.skilledTaskType) }}</div>
        <div class="val">{{ getDictLabel(formData.skilledTaskType, dictObj.patrolTaskType) }}</div>
      </el-col>
      <el-col :span="12">
        <div class="label">项目经验</div>
@@ -149,7 +149,7 @@
                            :disabled="dialogType === 'view'"
                        >
                            <el-option
                                v-for="item in dictObj.skilledTaskType"
                                v-for="item in dictObj.patrolTaskType"
                                :key="item.dictKey"
                                :label="item.dictValue"
                                :value="item.dictKey"
applications/task-work-order/src/views/orderView/flyingHand/index.vue
@@ -72,7 +72,7 @@
                    </el-table-column>
                    <el-table-column prop="skilledTaskType" show-overflow-tooltip label="擅长任务类型">
                        <template v-slot="{ row }">
                            {{ getDictLabel(row.skilledTaskType, dictObj.skilledTaskType) }}
                            {{ getDictLabel(row.skilledTaskType, dictObj.patrolTaskType) }}
                        </template>
                    </el-table-column>
                    <el-table-column label="操作" class-name="operation-btns" width="180">
@@ -136,7 +136,7 @@
const flyingHandData = ref({})
const dictObj = ref({
    skilledTaskType: [], // 擅长任务类型
    patrolTaskType: [], // 擅长任务类型
    skilledUavType: [], // 擅长机型
    technicalStrength: [] // 技术特长
})
@@ -212,7 +212,7 @@
// 获取字典
function getDictList() {
    getDictionaryByCode('skilledTaskType,skilledUavType,technicalStrength').then(res => {
    getDictionaryByCode('patrolTaskType,skilledUavType,technicalStrength').then(res => {
        dictObj.value = res.data.data
    })
}
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
@@ -286,6 +286,7 @@
async function getFlyerList(index, skilledTaskType) {
    const res = await gdFlyerPageApi({
        size: 999,
        current: 1,
        skilledTaskType,
    })
    flyerListMap.value[index] = res?.data?.data?.records ?? []
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -134,6 +134,7 @@
                                    v-model="formData.patrolRouteUrl"
                                    placeholder="请选择"
                                    clearable
                                    @change="getAirDetails"
                                >
                                    <el-option v-for="item in routeOptions" :key="item.id" :label="item.name" :value="item.id" />
                                </el-select>
@@ -371,7 +372,7 @@
// 获取飞手列表
async function getFlyerList() {
    const res = await gdFlyerPageApi({ size: 999 })
    const res = await gdFlyerPageApi({ size: 999,current: 1 })
    flyerList.value = res?.data?.data?.records ?? []
}
@@ -531,7 +532,20 @@
            }
  }
}
.imgBox {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    > div {
        width: calc((100% - 40px) / 5); /* 5列布局,减去4个10px间隙 */
        height: 110px;
        flex-shrink: 0;
    }
    .el-image {
        width: 100%;
        height: 100%;
    }
}
:deep(.el-timeline-item__timestamp) {
  font-size: 12px;
  color: #999;