From 6e88705bd5b443a259b24c17c8a299765d059d96 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 23 Jul 2026 16:50:41 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
---
applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue | 104 ++++++++++++++++++++++++++++++----------------------
1 files changed, 60 insertions(+), 44 deletions(-)
diff --git a/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue b/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
index 29fff53..0def9b4 100644
--- a/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
+++ b/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
@@ -17,7 +17,7 @@
<div class="val">{{ formData.flyerPhone }}</div>
</el-col>
<el-col :span="12">
- <div class="label">飞行时长</div>
+ <div class="label">飞行时长(小时)</div>
<div class="val">{{ formData.flightHours }}</div>
</el-col>
<el-col :span="12">
@@ -30,13 +30,17 @@
</el-col>
<el-col :span="12">
<div class="label">擅长任务类型</div>
- <div class="val">{{ getDictLabel(formData.skilledTaskType, dictObj.patrolTaskType) }}</div>
+ <div class="val">{{ getTaskTypeLabel(formData.skilledTaskType, workOrderTypeXT) }}</div>
</el-col>
<el-col :span="12">
<div class="label">项目经验</div>
<div class="val">{{ formData.projectExperience }}</div>
</el-col>
<el-col :span="12">
+ <div class="label">飞手地址</div>
+ <div class="val">{{ formData.flyerAddress }}</div>
+ </el-col>
+ <el-col :span="24">
<div class="label">飞手证书</div>
<div class="val">
<el-image
@@ -55,24 +59,38 @@
ref="formRef"
:model="formData"
:rules="rules"
- class="gd-form"
- label-width="160px"
+ class="gd-dialog-form"
+ label-width="auto"
v-else
>
<el-row>
<el-col :span="12">
<el-form-item label="飞手姓名" prop="flyerId">
- <el-select
+ <el-select v-if="dialogType === 'add'"
class="gd-select"
popper-class="gd-select-popper"
v-model="formData.flyerId"
placeholder="请选择"
clearable
@change="handleChange"
- :disabled="dialogType === 'view'"
>
<el-option
v-for="item in flyingHandList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ <el-select v-else
+ class="gd-select"
+ popper-class="gd-select-popper"
+ v-model="formData.flyerId"
+ placeholder="请选择"
+ clearable
+ :disabled="dialogType === 'edit'"
+ >
+ <el-option
+ v-for="item in flyingHandEditList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -86,7 +104,7 @@
class="gd-input"
v-model="formData.flyerPhone"
placeholder="请输入"
- :disabled="dialogType === 'view'"
+ :disabled="true"
/>
</el-form-item>
</el-col>
@@ -97,7 +115,7 @@
v-model.number="formData.flightHours"
placeholder="请输入"
type="number"
- :disabled="dialogType === 'view'"
+ :disabled="true"
/>
</el-form-item>
</el-col>
@@ -141,26 +159,23 @@
</el-col>
<el-col :span="12">
<el-form-item label="擅长任务类型" prop="skilledTaskType">
- <el-select
- class="gd-select"
- popper-class="gd-select-popper"
+ <el-cascader
+ class="gd-cascader"
+ popper-class="gd-cascader-popper"
v-model="formData.skilledTaskType"
+ :options="workOrderTypeXT"
+ :props="{ ...taskTypeCascaderProps, multiple: true }"
placeholder="请选择"
:disabled="dialogType === 'view'"
- >
- <el-option
- v-for="item in dictObj.patrolTaskType"
- :key="item.dictKey"
- :label="item.dictValue"
- :value="item.dictKey"
- />
- </el-select>
+ clearable
+ collapse-tags
+ />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="项目经验" prop="projectExperience">
<el-input
- class="gd-input"
+ class="gd-input-text"
v-model="formData.projectExperience"
placeholder="请输入"
type="textarea"
@@ -169,18 +184,6 @@
/>
</el-form-item>
</el-col>
- <!-- <el-col :span="24" v-if="dialogType === 'view'">
- <el-form-item label="飞手证书" prop="certification">
- <el-image
- v-for="(item, index) in formData.certification"
- :key="index"
- :src="item"
- :preview-src-list="formData.certification"
- class="gd-image"
- style="width: 100px; height: 100px; margin-right: 10px;"
- />
- </el-form-item>
- </el-col> -->
</el-row>
</el-form>
<template #footer>
@@ -201,6 +204,10 @@
import { submitFlyingHand } from './flyingHandApi'
import { ElMessage } from 'element-plus'
import { getDictLabel } from '@ztzf/utils'
+import {
+ getTaskTypeLabel,
+ taskTypeCascaderProps,
+} from '../orderManage/taskTypeOptions'
import { fieldRules } from '@ztzf/utils'
@@ -221,8 +228,11 @@
})
const dictObj = inject('dictObj') // 擅长任务类型
+const workOrderTypeXT = inject('workOrderTypeXT', ref([]))
const flyingHandList = inject('flyingHandList') // 飞手列表
+const flyingHandEditList = inject('flyingHandEditList') // 飞手建档列表
+
const emit = defineEmits(['update:modelValue', 'confirm'])
@@ -254,8 +264,10 @@
projectExperience: '',
technicalStrength: '',
skilledUavType: '',
+ skilledTaskType: [],
certification: [], // 证书
regionCode: '', // 区域编码
+ flyerAddress: '', // 飞手地址
})
const formData = ref(initForm()) // 表单数据
@@ -276,14 +288,14 @@
flyerId: [
{ required: true, message: '请输入', trigger: 'blur' }
],
- flyerPhone: [
- { required: false, message: '请输入', trigger: 'blur' },
- { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
- ],
- flightHours: [
- { required: true, message: '请输入', trigger: 'blur' },
- { type: 'number', min: 0, message: '飞行时长必须大于等于0', trigger: 'blur' }
- ],
+ // flyerPhone: [
+ // { required: true, message: '请输入', trigger: 'blur' },
+ // { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
+ // ],
+ // flightHours: [
+ // { required: true, message: '请输入', trigger: 'blur' },
+ // { type: 'number', min: 0, message: '飞行时长必须大于等于0', trigger: 'blur' }
+ // ],
technicalSkills: [
{ required: true, message: '请选择', trigger: 'change' }
],
@@ -309,7 +321,8 @@
if (newData) {
Object.assign(formData.value, newData)
formData.value.flightHours = Number(newData.flightHours)
- }
+ formData.value.skilledTaskType = newData.skilledTaskType || []
+ }
},
{ deep: true, immediate: true }
)
@@ -325,7 +338,10 @@
const result = flyingHandList.value.find(item => item.id === val) || []
formData.value.flyerName = result.name
formData.value.regionCode = result.regionCode
- formData.value.certification = formData.value.certification.concat(result.licenseFrontFileUrl || [], result.licenseBackFileUrl || [])
+ formData.value.flyerPhone = result.phone
+ formData.value.flightHours = result.duration || 0
+ formData.value.flyerAddress = result.address
+ // formData.value.certification = formData.value.certification.concat(result.licenseFrontFileUrl || [], result.licenseBackFileUrl || [])
}
@@ -341,7 +357,7 @@
projectExperience: '',
technicalStrength: '',
skilledUavType: '',
- skilledTaskType: ''
+ skilledTaskType: []
})
}
@@ -374,4 +390,4 @@
margin-bottom: 20px;
}
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3