sc
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user