From 89380e6260a75d1d3b94de687ebcc2f50d50659d Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 03 Feb 2026 15:44:33 +0800
Subject: [PATCH] feat:环境变量配置调整
---
applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue | 163 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 127 insertions(+), 36 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 61aa55f..1f1580c 100644
--- a/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
+++ b/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
@@ -7,21 +7,72 @@
destroy-on-close
:close-on-click-modal="false"
>
+ <el-row class="detail-row-view" v-if="dialogType === 'view'">
+ <el-col :span="12">
+ <div class="label">飞手姓名</div>
+ <div class="val">{{ formData.flyerName }}</div>
+ </el-col>
+ <el-col :span="12">
+ <div class="label">飞手电话</div>
+ <div class="val">{{ formData.flyerPhone }}</div>
+ </el-col>
+ <el-col :span="12">
+ <div class="label">飞行时长</div>
+ <div class="val">{{ formData.flightHours }}</div>
+ </el-col>
+ <el-col :span="12">
+ <div class="label">技术特长</div>
+ <div class="val">{{ getDictLabel(formData.technicalStrength, dictObj.technicalStrength) }}</div>
+ </el-col>
+ <el-col :span="12">
+ <div class="label">擅长机型</div>
+ <div class="val">{{ getDictLabel(formData.skilledUavType, dictObj.skilledUavType) }}</div>
+ </el-col>
+ <el-col :span="12">
+ <div class="label">擅长任务类型</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
+ 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;"
+ />
+ </div>
+ </el-col>
+ </el-row>
+
<el-form
ref="formRef"
:model="formData"
:rules="rules"
- class="gd-form"
+ class="gd-dialog-form"
label-width="160px"
+ v-else
>
<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
@@ -38,7 +89,7 @@
<el-input
class="gd-input"
v-model="formData.flyerPhone"
- placeholder="请输入飞手电话"
+ placeholder="请输入"
:disabled="dialogType === 'view'"
/>
</el-form-item>
@@ -48,7 +99,7 @@
<el-input
class="gd-input"
v-model.number="formData.flightHours"
- placeholder="请输入飞行时长"
+ placeholder="请输入"
type="number"
:disabled="dialogType === 'view'"
/>
@@ -60,7 +111,7 @@
class="gd-select"
popper-class="gd-select-popper"
v-model="formData.technicalStrength"
- placeholder="请选择技术特长"
+ placeholder="请选择"
:disabled="dialogType === 'view'"
>
<el-option
@@ -78,7 +129,8 @@
class="gd-select"
popper-class="gd-select-popper"
v-model="formData.skilledUavType"
- placeholder="请选择擅长机型"
+ placeholder="请选择"
+ :disabled="dialogType === 'view'"
clearable
@change="handleSearch"
>
@@ -97,11 +149,11 @@
class="gd-select"
popper-class="gd-select-popper"
v-model="formData.skilledTaskType"
- placeholder="请选择擅长任务类型"
+ placeholder="请选择"
:disabled="dialogType === 'view'"
>
<el-option
- v-for="item in dictObj.skilledTaskType"
+ v-for="item in dictObj.workOrderType"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
@@ -114,7 +166,7 @@
<el-input
class="gd-input"
v-model="formData.projectExperience"
- placeholder="请输入项目经验"
+ placeholder="请输入"
type="textarea"
rows="3"
:disabled="dialogType === 'view'"
@@ -124,13 +176,14 @@
</el-row>
</el-form>
<template #footer>
- <el-button @click="handleClose">取消</el-button>
+ <el-button v-if="dialogType !== 'view'" color="#F2F3F5" @click="handleClose">取消</el-button>
<el-button
v-if="dialogType !== 'view'"
type="primary"
+ color="#4C34FF"
@click="handleSubmit"
>
- 确定
+ 保存
</el-button>
</template>
</el-dialog>
@@ -139,6 +192,9 @@
import { ref, reactive, computed, watch, inject } from 'vue'
import { submitFlyingHand } from './flyingHandApi'
import { ElMessage } from 'element-plus'
+import { getDictLabel } from '@ztzf/utils'
+
+import { fieldRules } from '@ztzf/utils'
const props = defineProps({
modelValue: {
@@ -170,46 +226,70 @@
const dialogTitle = computed(() => {
switch (props.dialogType) {
case 'add':
- return '添加飞手信息'
+ return '飞手建档'
case 'edit':
- return '编辑飞手信息'
+ return '编辑'
case 'view':
- return '查看飞手信息'
+ return '查看'
default:
return '飞手信息'
}
})
const formRef = ref(null)
-const formData = reactive({
+
+const initForm = () => ({
flyerName: '',
+ flyerId: '',
flyerPhone: '',
flightHours: 0,
projectExperience: '',
technicalStrength: '',
- skilledUavType: ''
+ skilledUavType: '',
+ certification: [], // 证书
+ regionCode: '', // 区域编码
})
+const formData = ref(initForm()) // 表单数据
+
+
+// const rules = {
+// flyerId: fieldRules(true),
+// flyerPhone: fieldRules(true, 50),
+// flightHours: fieldRules(true, 50),
+// technicalSkills: fieldRules(true, 50),
+// skilledTaskType: fieldRules(true),
+// projectExperience: fieldRules(true),
+// technicalStrength: fieldRules(true),
+// skilledUavType: fieldRules(true, 50),
+// }
+
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' }
+ ],
+ skilledUavType: [
+ { required: true, message: '请选择', trigger: 'change' }
]
}
@@ -217,8 +297,10 @@
watch(
() => props.flyingHandData,
(newData) => {
+ formData.value = initForm()
if (newData) {
- Object.assign(formData, newData)
+ Object.assign(formData.value, newData)
+ formData.value.flightHours = Number(newData.flightHours)
}
},
{ deep: true, immediate: true }
@@ -230,19 +312,28 @@
resetForm()
}
+// 处理选择飞手姓名
+function handleChange(val) {
+ 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 || [])
+}
+
+
+
// 重置表单
function resetForm() {
formRef.value?.resetFields()
// 重置为默认值
- Object.assign(formData, {
- name: '',
- phone: '',
+ Object.assign(formData.value, {
+ flyerName: '',
+ flyerPhone: '',
flightHours: 0,
projectExperience: '',
- technicalSkills: '',
- technicalExpertise: '',
- goodAtAircraftType: '',
- goodAtTaskType: ''
+ technicalStrength: '',
+ skilledUavType: '',
+ skilledTaskType: ''
})
}
@@ -255,10 +346,10 @@
try {
if (props.dialogType === 'add') {
- await submitFlyingHand(formData)
+ await submitFlyingHand(formData.value)
ElMessage.success('添加成功')
} else if (props.dialogType === 'edit') {
- await submitFlyingHand(formData)
+ await submitFlyingHand(formData.value)
ElMessage.success('编辑成功')
}
emit('confirm')
@@ -275,4 +366,4 @@
margin-bottom: 20px;
}
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3