吉安感知网项目-前端
chenyao
2026-04-08 0bdbb3fce49bb4e8266a9e5cb4cf6a903e88223d
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">{{ getDictLabel(formData.skilledTaskType, dictObj.workOrderType) }}</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>
@@ -149,7 +167,7 @@
                     :disabled="dialogType === 'view'"
                  >
                     <el-option
                        v-for="item in dictObj.patrolTaskType"
                        v-for="item in dictObj.workOrderType"
                        :key="item.dictKey"
                        :label="item.dictValue"
                        :value="item.dictKey"
@@ -160,7 +178,7 @@
            <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 +187,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>
@@ -223,6 +229,8 @@
const dictObj = inject('dictObj') // 擅长任务类型
const flyingHandList = inject('flyingHandList') // 飞手列表
const flyingHandEditList = inject('flyingHandEditList') // 飞手建档列表
const emit = defineEmits(['update:modelValue', 'confirm'])
@@ -256,6 +264,7 @@
   skilledUavType: '',
   certification: [], // 证书
   regionCode: '', // 区域编码
   flyerAddress: '', // 飞手地址
})
const formData = ref(initForm()) // 表单数据
@@ -276,14 +285,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 +318,7 @@
      if (newData) {
         Object.assign(formData.value, newData)
         formData.value.flightHours = Number(newData.flightHours)
      }
      }
   },
   { deep: true, immediate: true }
)
@@ -325,7 +334,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 || [])
}
@@ -374,4 +386,4 @@
      margin-bottom: 20px;
   }
}
</style>
</style>