qsh 2 weeks ago
parent f507214116
commit ef263219ac
  1. 13
      src/api/uav/regiest.js
  2. 376
      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) => { export const updateStation = async (data) => {
return await request.post({ return await request.post({
@ -46,3 +53,9 @@ export const updateTeacher = async (data) => {
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-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-for="(it, index) in form.modelList" :key="index">
<el-form-item label="培训项目-多旋翼" prop="dxy"> <el-form-item :label="`培训项目-${it.modelName}`" prop="dxy">
<el-checkbox-group v-model="form.dxy"> <!-- <el-checkbox-group> -->
<el-checkbox <el-checkbox
v-for="item in driverOptions" v-for="item in it.schoolTypeList"
:key="item.value" v-model="item.checked"
:label="item.value" :checked="item.checked"
:value="item.value" :key="item.schoolTypeId"
:value="item.schoolTypeId"
> >
{{ item.label }} {{ item.typeName }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> <!-- </el-checkbox-group> -->
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <!-- <el-col :span="12">
<el-form-item label="培训项目-垂直起降" prop="czqj"> <el-form-item label="培训项目-垂直起降" prop="czqj">
<el-checkbox-group v-model="form.czqj"> <el-checkbox-group v-model="form.czqj">
<el-checkbox <el-checkbox
@ -154,7 +155,7 @@
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合格证图片" prop="certs"> <el-form-item label="合格证图片" prop="certs">
<UploadImgs v-model="form.certs" height="100px" width="100px" /> <UploadImgs v-model="form.certs" height="100px" width="100px" />
@ -171,31 +172,29 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="优势标签" prop="schoolTagList"> <el-form-item label="优势标签">
<el-checkbox-group v-model="form.schoolTagList">
<el-checkbox <el-checkbox
v-for="item in goodOptions" v-for="item in form.schoolTagList"
:key="item.value" v-model="item.checked"
:label="item.value" :checked="item.checked"
:value="item.value" :key="item.id"
:value="item.id"
> >
{{ item.label }} {{ item.tag }}
</el-checkbox> </el-checkbox>
</el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="其他服务" prop="schoolServiceList"> <el-form-item label="其他服务" prop="schoolServiceList">
<el-checkbox-group v-model="form.schoolServiceList">
<el-checkbox <el-checkbox
v-for="item in serviceOptions" v-for="item in form.schoolServiceList"
:key="item.value" v-model="item.checked"
:label="item.value" :checked="item.checked"
:value="item.value" :key="item.id"
:value="item.id"
> >
{{ item.label }} {{ item.serviceName }}
</el-checkbox> </el-checkbox>
</el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -213,8 +212,8 @@
<el-row> <el-row>
<el-divider direction="horizontal" content-position="left">审核信息</el-divider> <el-divider direction="horizontal" content-position="left">审核信息</el-divider>
<el-col :span="6" :offset="0"> <el-col :span="6" :offset="0">
<el-form-item label="审核结果" prop="shjg"> <el-form-item label="审核结果" prop="status">
<el-radio-group v-model="form.shjg"> <el-radio-group v-model="form.status">
<el-radio :label="2" :value="2">通过</el-radio> <el-radio :label="2" :value="2">通过</el-radio>
<el-radio :label="3" :value="3">不通过</el-radio> <el-radio :label="3" :value="3">不通过</el-radio>
</el-radio-group> </el-radio-group>
@ -237,7 +236,13 @@
</template> </template>
<script setup name="Station"> <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() const message = useMessage()
@ -260,30 +265,245 @@ const rules = {
const dialogVisible = ref(false) const dialogVisible = ref(false)
const dialogType = ref('audit') const dialogType = ref('audit')
const driverOptions = ref([ const driverOptions = ref([
{ label: '小型-视距内驾驶员', value: 1 }, {
{ label: '小型-超视距驾驶员', value: 2 }, modelId: 10001,
{ label: '小型-教员', value: 3 }, modelName: '多旋翼',
{ label: '中型-视距内驾驶员', value: 4 }, schoolDriverTypeVoList: [
{ label: '中型-超视距驾驶员', value: 5 }, {
{ label: '中型-教员', value: 6 } schoolTypeId: 1000,
]) modelId: 10001,
modelName: '多旋翼',
const goodOptions = ref([ typeId: 20021,
{ label: '服务好', value: 1 }, typeName: '小型-视距内驾驶员',
{ label: '交通便利', value: 2 }, sort: 1
{ label: '提供住宿', value: 3 }, },
{ label: '免费接送', value: 4 } {
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 serviceOptions = ref([ const defaultTips = [
{ label: '希望平台主动推荐学员', value: 1 }, { tag: '服务好', isDefault: true, checked: false },
{ label: '接受团购学员报名', value: 2 }, { tag: '交通便利', isDefault: true, checked: false },
{ label: '希望平台推荐教员资源', value: 3 }, { tag: '提供住宿', isDefault: true, checked: false },
{ label: '希望平台推荐无人机相关的设备', value: 4 } { 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(() => { onMounted(() => {
handleQuery() handleQuery()
// getCarTypeList().then((response) => {
// driverOptions.value = response.map((item) => ({
// label: item.typeName,
// value: item.id
// }))
// })
}) })
function handleQuery() { function handleQuery() {
@ -300,8 +520,54 @@ function getList() {
function handleDetail(row, type) { function handleDetail(row, type) {
dialogType.value = type dialogType.value = type
stationDetail(row.schoolId).then((response) => {
dialogVisible.value = true dialogVisible.value = true
form.value = { ...row } 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) const formRef = ref(null)
@ -313,7 +579,19 @@ async function submitForm() {
try { try {
formLoading.value = true formLoading.value = true
let params = { ...form.value } 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') { if (dialogType.value == 'audit') {
auditStation(params).then((response) => { auditStation(params).then((response) => {
if (response) { if (response) {

Loading…
Cancel
Save