qsh 1 week ago
parent f507214116
commit ef263219ac
  1. 13
      src/api/uav/regiest.js
  2. 396
      src/views/JoinUs/Station/index.vue

@ -16,6 +16,13 @@ export const auditStation = async (data) => {
})
}
// 机构详情
export const stationDetail = async (id) => {
return await request.get({
url: `/admin-api/applet/wrj/school/get/${id}`
})
}
// 修改机构
export const updateStation = async (data) => {
return await request.post({
@ -46,3 +53,9 @@ export const updateTeacher = async (data) => {
data
})
}
// export const getCarTypeList = async () => {
// return await request.get({
// url: 'https://cloud.ahfkbg.com/wrj-api/wrjSchoolDriverType/list'
// })
// }

@ -99,21 +99,22 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训项目-多旋翼" prop="dxy">
<el-checkbox-group v-model="form.dxy">
<el-checkbox
v-for="item in driverOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
<el-col :span="12" v-for="(it, index) in form.modelList" :key="index">
<el-form-item :label="`培训项目-${it.modelName}`" prop="dxy">
<!-- <el-checkbox-group> -->
<el-checkbox
v-for="item in it.schoolTypeList"
v-model="item.checked"
:checked="item.checked"
:key="item.schoolTypeId"
:value="item.schoolTypeId"
>
{{ item.typeName }}
</el-checkbox>
<!-- </el-checkbox-group> -->
</el-form-item>
</el-col>
<el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="培训项目-垂直起降" prop="czqj">
<el-checkbox-group v-model="form.czqj">
<el-checkbox
@ -154,7 +155,7 @@
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="8">
<el-form-item label="合格证图片" prop="certs">
<UploadImgs v-model="form.certs" height="100px" width="100px" />
@ -171,31 +172,29 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="优势标签" prop="schoolTagList">
<el-checkbox-group v-model="form.schoolTagList">
<el-checkbox
v-for="item in goodOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
<el-form-item label="优势标签">
<el-checkbox
v-for="item in form.schoolTagList"
v-model="item.checked"
:checked="item.checked"
:key="item.id"
:value="item.id"
>
{{ item.tag }}
</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="其他服务" prop="schoolServiceList">
<el-checkbox-group v-model="form.schoolServiceList">
<el-checkbox
v-for="item in serviceOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
<el-checkbox
v-for="item in form.schoolServiceList"
v-model="item.checked"
:checked="item.checked"
:key="item.id"
:value="item.id"
>
{{ item.serviceName }}
</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
@ -213,8 +212,8 @@
<el-row>
<el-divider direction="horizontal" content-position="left">审核信息</el-divider>
<el-col :span="6" :offset="0">
<el-form-item label="审核结果" prop="shjg">
<el-radio-group v-model="form.shjg">
<el-form-item label="审核结果" prop="status">
<el-radio-group v-model="form.status">
<el-radio :label="2" :value="2">通过</el-radio>
<el-radio :label="3" :value="3">不通过</el-radio>
</el-radio-group>
@ -237,7 +236,13 @@
</template>
<script setup name="Station">
import { searchStation, auditStation, updateStation } from '@/api/uav/regiest'
import {
searchStation,
auditStation,
updateStation,
stationDetail
// getCarTypeList
} from '@/api/uav/regiest'
const message = useMessage()
@ -260,30 +265,245 @@ const rules = {
const dialogVisible = ref(false)
const dialogType = ref('audit')
const driverOptions = ref([
{ label: '小型-视距内驾驶员', value: 1 },
{ label: '小型-超视距驾驶员', value: 2 },
{ label: '小型-教员', value: 3 },
{ label: '中型-视距内驾驶员', value: 4 },
{ label: '中型-超视距驾驶员', value: 5 },
{ label: '中型-教员', value: 6 }
{
modelId: 10001,
modelName: '多旋翼',
schoolDriverTypeVoList: [
{
schoolTypeId: 1000,
modelId: 10001,
modelName: '多旋翼',
typeId: 20021,
typeName: '小型-视距内驾驶员',
sort: 1
},
{
schoolTypeId: 1002,
modelId: 10001,
modelName: '多旋翼',
typeId: 20022,
typeName: '小型-超视距驾驶员',
sort: 2
},
{
schoolTypeId: 1004,
modelId: 10001,
modelName: '多旋翼',
typeId: 20023,
typeName: '小型-教员',
sort: 3
},
{
schoolTypeId: 1001,
modelId: 10001,
modelName: '多旋翼',
typeId: 20021,
typeName: '中型-视距内驾驶员',
sort: 6
},
{
schoolTypeId: 1003,
modelId: 10001,
modelName: '多旋翼',
typeId: 20022,
typeName: '中型-超视距驾驶员',
sort: 7
},
{
schoolTypeId: 1005,
modelId: 10001,
modelName: '多旋翼',
typeId: 20023,
typeName: '中型-教员',
sort: 8
}
]
},
{
modelId: 10002,
modelName: '固定翼',
schoolDriverTypeVoList: [
{
schoolTypeId: 1010,
modelId: 10002,
modelName: '固定翼',
typeId: 20026,
typeName: '小型-视距内驾驶员',
sort: 1
},
{
schoolTypeId: 1012,
modelId: 10002,
modelName: '固定翼',
typeId: 20027,
typeName: '小型-超视距驾驶员',
sort: 2
},
{
schoolTypeId: 1014,
modelId: 10002,
modelName: '固定翼',
typeId: 20028,
typeName: '小型-教员',
sort: 3
},
{
schoolTypeId: 1011,
modelId: 10002,
modelName: '固定翼',
typeId: 20026,
typeName: '中型-视距内驾驶员',
sort: 5
},
{
schoolTypeId: 1013,
modelId: 10002,
modelName: '固定翼',
typeId: 20027,
typeName: '中型-超视距驾驶员',
sort: 6
},
{
schoolTypeId: 1015,
modelId: 10002,
modelName: '固定翼',
typeId: 20028,
typeName: '中型-教员',
sort: 7
}
]
},
{
modelId: 10003,
modelName: '垂直起降',
schoolDriverTypeVoList: [
{
schoolTypeId: 1018,
modelId: 10003,
modelName: '垂直起降',
typeId: 20030,
typeName: '小型-视距内驾驶员',
sort: 1
},
{
schoolTypeId: 1020,
modelId: 10003,
modelName: '垂直起降',
typeId: 20031,
typeName: '小型-超视距驾驶员',
sort: 2
},
{
schoolTypeId: 1022,
modelId: 10003,
modelName: '垂直起降',
typeId: 20032,
typeName: '小型-教员',
sort: 3
},
{
schoolTypeId: 1019,
modelId: 10003,
modelName: '垂直起降',
typeId: 20030,
typeName: '中型-视距内驾驶员',
sort: 5
},
{
schoolTypeId: 1021,
modelId: 10003,
modelName: '垂直起降',
typeId: 20031,
typeName: '中型-超视距驾驶员',
sort: 6
},
{
schoolTypeId: 1023,
modelId: 10003,
modelName: '垂直起降',
typeId: 20032,
typeName: '中型-教员',
sort: 7
}
]
},
{
modelId: 10004,
modelName: '直升机',
schoolDriverTypeVoList: [
{
schoolTypeId: 1026,
modelId: 10004,
modelName: '直升机',
typeId: 20034,
typeName: '小型-视距内驾驶员',
sort: 1
},
{
schoolTypeId: 1028,
modelId: 10004,
modelName: '直升机',
typeId: 20035,
typeName: '小型-超视距驾驶员',
sort: 2
},
{
schoolTypeId: 1030,
modelId: 10004,
modelName: '直升机',
typeId: 20036,
typeName: '小型-教员',
sort: 3
},
{
schoolTypeId: 1027,
modelId: 10004,
modelName: '直升机',
typeId: 20034,
typeName: '中型-视距内驾驶员',
sort: 5
},
{
schoolTypeId: 1029,
modelId: 10004,
modelName: '直升机',
typeId: 20035,
typeName: '中型-超视距驾驶员',
sort: 6
},
{
schoolTypeId: 1031,
modelId: 10004,
modelName: '直升机',
typeId: 20036,
typeName: '中型-教员',
sort: 7
}
]
}
])
const goodOptions = ref([
{ label: '服务好', value: 1 },
{ label: '交通便利', value: 2 },
{ label: '提供住宿', value: 3 },
{ label: '免费接送', value: 4 }
])
const serviceOptions = ref([
{ label: '希望平台主动推荐学员', value: 1 },
{ label: '接受团购学员报名', value: 2 },
{ label: '希望平台推荐教员资源', value: 3 },
{ label: '希望平台推荐无人机相关的设备', value: 4 }
])
const defaultTips = [
{ tag: '服务好', isDefault: true, checked: false },
{ tag: '交通便利', isDefault: true, checked: false },
{ tag: '提供住宿', isDefault: true, checked: false },
{ tag: '免费接送', isDefault: true, checked: false }
]
const defaultService = [
{ serviceName: '希望平台主动推荐学员', isDefault: true, checked: false },
{ serviceName: '接受团购学员报名', isDefault: true, checked: false },
{ serviceName: '希望平台推荐教员资源', isDefault: true, checked: false },
{ serviceName: '希望平台推荐无人机相关的设备', isDefault: true, checked: false }
]
onMounted(() => {
handleQuery()
// getCarTypeList().then((response) => {
// driverOptions.value = response.map((item) => ({
// label: item.typeName,
// value: item.id
// }))
// })
})
function handleQuery() {
@ -300,8 +520,54 @@ function getList() {
function handleDetail(row, type) {
dialogType.value = type
dialogVisible.value = true
form.value = { ...row }
stationDetail(row.schoolId).then((response) => {
dialogVisible.value = true
let arr = []
response.modelGroupVoList?.map((model) => {
model.schoolModelVoList?.map((item) => {
arr.push(item.schoolTypeId)
})
})
const tags = [
...(response.schoolTagList?.map((it) => ({ ...it, checked: true })) || []),
...defaultTips
]
const services = [
...(response.schoolServiceList?.map((it) => ({ ...it, checked: true })) || []),
...defaultService
]
form.value = {
...response,
imgUrl: response.imgUrl ? response.imgUrl.split(',') : [],
certs: response.certs ? response.certs.split(',') : [],
modelList: driverOptions.value.map((item) => {
return {
modelId: item.modelId,
modelName: item.modelName,
schoolTypeList: item.schoolDriverTypeVoList.map((type) => {
return {
...type,
checked: arr.includes(type.schoolTypeId)
}
})
}
}),
schoolTagList: uniqueByKey(tags, 'tag'),
schoolServiceList: uniqueByKey(services, 'serviceName')
}
})
}
function uniqueByKey(arr, key) {
const map = new Map()
return arr.filter((item) => {
// map key map
if (!map.has(item[key])) {
map.set(item[key], true)
return true
}
return false
})
}
const formRef = ref(null)
@ -313,7 +579,19 @@ async function submitForm() {
try {
formLoading.value = true
let params = { ...form.value }
params.modelGroupVoList = params.modelList
.map((item) => {
return {
modelId: item.modelId,
modelName: item.modelName,
schoolModelVoList: item.schoolTypeList.filter((type) => type.checked)
}
})
.filter((item) => item.schoolModelVoList.length > 0)
params.schoolServiceList = params.schoolServiceList.filter((item) => item.checked)
params.schoolTagList = params.schoolTagList.filter((item) => item.checked)
if (dialogType.value == 'audit') {
auditStation(params).then((response) => {
if (response) {

Loading…
Cancel
Save