| | |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="飞手姓名" prop="flyerName"> |
| | | <el-form-item label="飞手姓名" prop="flyerId"> |
| | | <el-select |
| | | class="gd-select" |
| | | popper-class="gd-select-popper" |
| | | v-model="formData.flyerName" |
| | | placeholder="请选择飞手姓名" |
| | | v-model="formData.flyerId" |
| | | placeholder="请选择" |
| | | clearable |
| | | @change="handleChange" |
| | | :disabled="dialogType === 'view'" |
| | | > |
| | | <el-option |
| | |
| | | <el-input |
| | | class="gd-input" |
| | | v-model="formData.flyerPhone" |
| | | placeholder="请输入飞手电话" |
| | | placeholder="请输入" |
| | | :disabled="dialogType === 'view'" |
| | | /> |
| | | </el-form-item> |
| | |
| | | <el-input |
| | | class="gd-input" |
| | | v-model.number="formData.flightHours" |
| | | placeholder="请输入飞行时长" |
| | | placeholder="请输入" |
| | | type="number" |
| | | :disabled="dialogType === 'view'" |
| | | /> |
| | |
| | | class="gd-select" |
| | | popper-class="gd-select-popper" |
| | | v-model="formData.technicalStrength" |
| | | placeholder="请选择技术特长" |
| | | placeholder="请选择" |
| | | :disabled="dialogType === 'view'" |
| | | > |
| | | <el-option |
| | |
| | | class="gd-select" |
| | | popper-class="gd-select-popper" |
| | | v-model="formData.skilledUavType" |
| | | placeholder="请选择擅长机型" |
| | | placeholder="请选择" |
| | | :disabled="dialogType === 'view'" |
| | | clearable |
| | | @change="handleSearch" |
| | | > |
| | |
| | | class="gd-select" |
| | | popper-class="gd-select-popper" |
| | | v-model="formData.skilledTaskType" |
| | | placeholder="请选择擅长任务类型" |
| | | placeholder="请选择" |
| | | :disabled="dialogType === 'view'" |
| | | > |
| | | <el-option |
| | |
| | | <el-input |
| | | class="gd-input" |
| | | v-model="formData.projectExperience" |
| | | placeholder="请输入项目经验" |
| | | placeholder="请输入" |
| | | type="textarea" |
| | | rows="3" |
| | | :disabled="dialogType === 'view'" |
| | | /> |
| | | </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> |
| | |
| | | import { ref, reactive, computed, watch, inject } from 'vue' |
| | | import { submitFlyingHand } from './flyingHandApi' |
| | | import { ElMessage } from 'element-plus' |
| | | |
| | | import { fieldRules } from '@ztzf/utils' |
| | | |
| | | const props = defineProps({ |
| | | modelValue: { |
| | |
| | | const formRef = ref(null) |
| | | const formData = reactive({ |
| | | flyerName: '', |
| | | flyerId: '', |
| | | flyerPhone: '', |
| | | flightHours: 0, |
| | | projectExperience: '', |
| | | technicalStrength: '', |
| | | skilledUavType: '' |
| | | skilledUavType: '', |
| | | certification: [], // 证书 |
| | | }) |
| | | |
| | | const rules = { |
| | | flyerName: [ |
| | | { required: true, message: '请输入飞手姓名', trigger: 'blur' } |
| | | flyerId: [ |
| | | { required: true, message: '请输入', trigger: 'blur' } |
| | | ], |
| | | flyerPhone: [ |
| | | { required: false, message: '请输入飞手电话', trigger: 'blur' }, |
| | | { required: false, message: '请输入', trigger: 'blur' }, |
| | | { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' } |
| | | ], |
| | | flightHours: [ |
| | | { required: true, message: '请输入飞行时长', trigger: 'blur' }, |
| | | { required: true, message: '请输入', trigger: 'blur' }, |
| | | { type: 'number', min: 0, message: '飞行时长必须大于等于0', trigger: 'blur' } |
| | | ], |
| | | technicalSkills: [ |
| | | { required: true, message: '请选择技术特长', trigger: 'change' } |
| | | { required: true, message: '请选择', trigger: 'change' } |
| | | ], |
| | | skilledTaskType: [ |
| | | { required: true, message: '请选择擅长任务类型', trigger: 'change' } |
| | | { required: true, message: '请选择', trigger: 'change' } |
| | | ], |
| | | projectExperience: [ |
| | | { required: true, message: '请输入项目经验', trigger: 'blur' } |
| | | { required: true, message: '请输入', trigger: 'blur' } |
| | | ], |
| | | technicalStrength: [ |
| | | { required: true, message: '请选择技术特长', trigger: 'change' } |
| | | { required: true, message: '请选择', trigger: 'change' } |
| | | ], |
| | | skilledUavType: [ |
| | | { required: true, message: '请选择擅长机型', trigger: 'change' } |
| | | { required: true, message: '请选择', trigger: 'change' } |
| | | ] |
| | | } |
| | | |
| | |
| | | (newData) => { |
| | | if (newData) { |
| | | Object.assign(formData, newData) |
| | | formData.flightHours = Number(newData.flightHours) |
| | | } |
| | | }, |
| | | { deep: true, immediate: true } |
| | |
| | | resetForm() |
| | | } |
| | | |
| | | // 处理选择飞手姓名 |
| | | function handleChange(val) { |
| | | const result = flyingHandList.value.find(item => item.id === val) || [] |
| | | formData.flyerName = result.name |
| | | formData.certification = formData.certification.concat(result.licenseFrontFileUrl || [], result.licenseBackFileUrl || []) |
| | | } |
| | | |
| | | |
| | | |
| | | // 重置表单 |
| | | function resetForm() { |
| | | formRef.value?.resetFields() |