qsh 6 days ago
parent 6359913c2c
commit 80b8eddd35
  1. 34
      src/views/ExamVenue/Calendar/index.vue
  2. 283
      src/views/ExamVenue/Room/index.vue
  3. 168
      src/views/JoinUs/Coach/index.vue
  4. 329
      src/views/JoinUs/Station/index.vue

@ -1,7 +1,37 @@
<template>
<div> 考试日历 </div>
<div>
<el-tabs v-model="examType">
<el-tab-pane label="理论考试" :name="1" />
<el-tab-pane label="实践考试" :name="2" />
<el-calendar>
<template #date-cell="{ data }">
<el-popover placement="top" width="500px" trigger="click">
<template #reference>
<div>
<div>{{ new Date(data.day).getDate() }}</div>
<div class="mt-10px">考场数量{{ new Date(data.day).getDate() % 5 }}</div>
</div>
</template>
<el-table :data="roomList" border stripe>
<el-table-column prop="name" label="考场名称" width="120px" />
<el-table-column prop="address" label="考场地址" />
</el-table>
</el-popover>
</template>
</el-calendar>
</el-tabs>
</div>
</template>
<script setup name="Calendar">
const examType = ref(1)
<script setup name="Calendar"></script>
const roomList = ref([
{
name: '合肥瑶海长安考场',
address: '合肥瑶海大道100号'
}
])
</script>
<style lang="scss" scoped></style>

@ -1,13 +1,284 @@
<template>
<div>
<div>无人机章节</div>
<div>权限</div>
<div>新增ExamVenue:Room:add</div>
<div>修改ExamVenue:Room:edit</div>
<div>删除ExamVenue:Room:delete</div>
<el-form :model="searchForm" inline label-width="0">
<el-form-item>
<el-input v-model="searchForm.name" placeholder="考场名称" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery"> </el-button>
<el-button v-hasPermi="['ExamVenue:Room:add']" @click="handleDetail(null)"> </el-button>
</el-form-item>
</el-form>
<el-table :data="tableList" border stripe>
<el-table-column type="index" width="50" />
<el-table-column prop="name" label="考点名称" min-width="200px" />
<el-table-column prop="username" label="负责人" width="100px" />
<el-table-column prop="userPhone" label="负责人电话" width="100px" />
<el-table-column prop="contactName" label="联系人" width="100px" />
<el-table-column prop="contactPhone" label="联系人电话" width="100px" />
<el-table-column prop="address" label="地址" min-width="200px" />
<el-table-column label="理论" align="center">
<el-table-column prop="lilunTime" label="时间" width="100px" align="center">
<template #default="{ row }">
{{ row.lilunTime.map((item) => `每月${item}`).join(',') }}
</template>
</el-table-column>
<el-table-column prop="lilunAddress" label="地址" min-width="200px" align="center" />
</el-table-column>
<el-table-column label="实践" align="center">
<el-table-column prop="shijianTime" label="时间" width="100px" align="center">
<template #default="{ row }">
{{ row.shijianTime.map((item) => `每月${item}`).join(',') }}
</template>
</el-table-column>
<el-table-column prop="shijianAddress" label="地址" min-width="200px" align="center" />
</el-table-column>
<el-table-column label="操作" fixed="right" width="150">
<template #default="{ row }">
<el-button
v-hasPermi="['ExamVenue:Room:edit']"
type="primary"
link
@click="handleDetail(row)"
>
修改
</el-button>
<el-button
v-hasPermi="['ExamVenue:Room:delete']"
type="danger"
link
@click="handleDelete(row)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
:total="total"
v-model:page="searchForm.pageNo"
v-model:limit="searchForm.pageSize"
@pagination="getList"
/>
<Dialog v-model="dialogVisible" title="教员详情" style="width: 800px">
<el-form :model="form" ref="formRef" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :span="24" :offset="0">
<el-form-item label="考点名称" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="负责人" prop="username">
<el-input v-model="form.username" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="负责人电话" prop="userPhone">
<el-input v-model="form.userPhone" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="联系人" prop="contactName">
<el-input v-model="form.contactName" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="联系人电话" prop="contactPhone">
<el-input v-model="form.contactPhone" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="24" :offset="0">
<el-form-item label="地址" prop="address">
<el-input
v-model="form.address"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
<el-divider direction="horizontal" content-position="left">理论</el-divider>
<el-row :gutter="20">
<el-col :span="24" :offset="0">
<el-form-item label="理论地址" prop="lilunAddress">
<el-input
v-model="form.lilunAddress"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="24" :offset="0">
<el-form-item label="理论时间">
<el-input
class="mr-2 mb-2"
v-for="(item, index) in form.lilunTime"
:key="index"
v-model="form.lilunTime[index]"
style="width: 180px"
>
<template #prepend>每月</template>
<template #append></template>
</el-input>
<el-button type="primary" @click="form.lilunTime.push(undefined)">
新增考试时间
</el-button>
</el-form-item>
</el-col>
</el-row>
<el-divider direction="horizontal" content-position="left">实践</el-divider>
<el-row :gutter="20">
<el-col :span="24" :offset="0">
<el-form-item label="实践地址" prop="lilunAddress">
<el-input
v-model="form.shijianAddress"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="24" :offset="0">
<el-form-item label="实践时间">
<el-input
class="mr-2 mb-2"
v-for="(item, index) in form.shijianTime"
:key="index"
v-model="form.shijianTime[index]"
style="width: 180px"
>
<template #prepend>每月</template>
<template #append></template>
</el-input>
<el-button type="primary" @click="form.shijianTime.push(undefined)">
新增考试时间
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</div>
</template>
<script setup name="ExamVenue"></script>
<script setup name="ExamVenue">
const message = useMessage()
const searchForm = ref({
name: '',
pageNo: 1,
pageSize: 20
})
const tableList = ref([])
const total = ref(0)
onMounted(() => {
handleQuery()
})
function handleQuery() {
searchForm.value.pageNo = 1
getList()
}
function getList() {
// getStationList(searchForm.value).then((res) => {
// console.log(res)
// })
//
tableList.value = [
{
id: 1,
name: '上海01',
address: '上海01地址',
username: 'z张三',
userPhone: '12345678901',
contactName: '李四',
contactPhone: '12345678901',
lilunTime: [1, 10],
shijianTime: [5, 15],
lilunAddress: '上海01地址',
shijianAddress: '上海01地址'
},
{
id: 2,
name: '上海02',
address: '上海02地址',
username: 'z张三',
userPhone: '12345678901',
contactName: '李四',
contactPhone: '12345678901',
lilunTime: [2, 22],
shijianTime: [5, 15],
lilunAddress: '上海02地址',
shijianAddress: '上海02地址'
}
]
total.value = 2
}
const form = ref({})
const rules = {
name: { required: true, message: '请输入名称', trigger: 'blur' },
username: { required: true, message: '请输入姓名', trigger: 'blur' },
userPhone: { required: true, message: '请输入手机号', trigger: 'blur' }
}
const dialogVisible = ref(false)
const handleDetail = (row) => {
resetForm()
dialogVisible.value = true
if (row) {
form.value = { ...row }
}
}
const formRef = ref(null)
function resetForm() {
form.value = {
id: undefined,
name: '',
username: '',
userPhone: '',
contactName: '',
contactPhone: '',
address: '',
lilunAddress: '',
lilunTime: [],
shijianAddress: '',
shijianTime: []
}
formRef.value && formRef.value.resetFields()
}
const handleDelete = async (row) => {
try {
//
await message.delConfirm()
//
await UserApi.deleteUser(row.id)
message.success('删除成功')
//
getList()
} catch {}
}
const submitForm = async () => {
try {
} catch (err) {
console.log(err)
}
}
</script>
<style lang="scss" scoped></style>

@ -1,11 +1,171 @@
<template>
<div>
<div>教员入驻</div>
<div>权限</div>
<div>审核JoinUs:Coach:audit</div>
<el-form :model="searchForm" inline label-width="0">
<el-form-item>
<el-input v-model="searchForm.name" placeholder="教员名称" />
</el-form-item>
<el-form-item>
<el-select v-model="searchForm.auditType" clearable filterable placeholder="审核状态">
<el-option label="待审核" :value="1" />
<el-option label="已通过" :value="2" />
<el-option label="未通过" :value="3" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery"> 搜索 </el-button>
</el-form-item>
</el-form>
<el-table :data="tableList" border stripe>
<el-table-column type="index" width="50" />
<el-table-column prop="name" label="教员姓名" />
<el-table-column prop="phone" label="联系方式" />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="createTime" label="申请时间" />
<el-table-column prop="auditRemark" label="审核状态" />
<el-table-column prop="auditUser" label="审核人" />
<el-table-column prop="auditTime" label="审核时间" />
<!-- 操作 -->
<el-table-column label="操作" fixed="right" width="150">
<template #default="{ row }">
<el-button
v-if="row.auditType == 1"
type="primary"
link
v-hasPermi="['JoinUs:Station:audit']"
@click="handleDetail(row, 'audit')"
>
审核
</el-button>
<el-button
v-else
type="primary"
link
v-hasPermi="['JoinUs:Station:audit']"
@click="handleDetail(row, 'detail')"
>
详情
</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
:total="total"
v-model:page="searchForm.pageNo"
v-model:limit="searchForm.pageSize"
@pagination="getList"
/>
<Dialog v-model="dialogVisible" title="教员详情" style="width: 600px">
<el-form
:model="form"
ref="formRef"
:rules="rules"
label-width="80px"
:disabled="form.auditType != 1"
>
<el-form-item label="教员姓名" prop="applyUser">
<el-input v-model="form.applyUser" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="联系方式" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话" />
</el-form-item>
<el-form-item label="备注" prop="xcwa">
<el-input
v-model="form.name"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
<div v-if="dialogType == 'audit'">
<el-divider direction="horizontal" content-position="left">审核信息</el-divider>
<el-form-item label="审核结果" prop="shjg">
<el-radio-group v-model="form.shjg">
<el-radio :label="2" :value="2">通过</el-radio>
<el-radio :label="3" :value="3">不通过</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="审核说明" prop="shsm">
<el-input
v-model="form.shsm"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
</div>
</el-form>
<template #footer>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</div>
</template>
<script setup name="Coach">
const searchForm = ref({
name: '',
auditType: 1,
pageNo: 1,
pageSize: 20
})
const tableList = ref([])
const total = ref(0)
const form = ref({})
const rules = {
name: { required: true, message: '请输入名称', trigger: 'blur' },
phone: { required: true, message: '请输入手机号', trigger: 'blur' }
}
const dialogVisible = ref(false)
const dialogType = ref('audit')
onMounted(() => {
handleQuery()
})
function handleQuery() {
searchForm.value.pageNo = 1
getList()
}
function getList() {
// getStationList(searchForm.value).then((res) => {
// console.log(res)
// })
tableList.value = [
{
id: 1,
name: '教员1',
createTime: '2021-01-01',
phone: '18888888888',
auditType: 2,
auditTime: '2021-02-01',
auditUser: 'admin',
auditRemark: '审核通过'
},
{
id: 2,
name: '教员2',
auditType: 1,
phone: '19999999999'
}
]
total.value = 2
}
function handleDetail(row, type) {
console.log(type)
dialogVisible.value = true
form.value = { ...row }
}
<script setup name="Coach"></script>
function submitForm() {
dialogVisible.value = false
}
</script>
<style lang="scss" scoped></style>

@ -1,11 +1,332 @@
<template>
<div>
<div>机构入驻</div>
<div>权限</div>
<div>审核JoinUs:Station:audit</div>
<el-form :model="searchForm" inline label-width="0">
<el-form-item>
<el-input v-model="searchForm.name" placeholder="机构名称" />
</el-form-item>
<el-form-item>
<el-select v-model="searchForm.auditType" clearable filterable placeholder="审核状态">
<el-option label="待审核" :value="1" />
<el-option label="已通过" :value="2" />
<el-option label="未通过" :value="3" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery"> 搜索 </el-button>
<!-- <el-button type="primary" @click="handleAdd" v-hasPermi="['question:database:add']">
新增
</el-button> -->
</el-form-item>
</el-form>
<el-table :data="tableList" border stripe>
<el-table-column type="index" width="50" />
<el-table-column prop="name" label="机构名称" />
<el-table-column prop="applyUser" label="申请人" />
<el-table-column prop="phone" label="联系方式" />
<el-table-column prop="createTime" label="申请时间" />
<el-table-column prop="auditRemark" label="审核状态" />
<el-table-column prop="auditUser" label="审核人" />
<el-table-column prop="auditTime" label="审核时间" />
<!-- 操作 -->
<el-table-column label="操作" fixed="right" width="150">
<template #default="{ row }">
<el-button
v-if="row.auditType == 1"
type="primary"
link
v-hasPermi="['JoinUs:Station:audit']"
@click="handleDetail(row, 'audit')"
>
审核
</el-button>
<el-button
v-else
type="primary"
link
v-hasPermi="['JoinUs:Station:audit']"
@click="handleDetail(row, 'detail')"
>
详情
</el-button>
</template>
</el-table-column>
</el-table>
<Pagination
:total="total"
v-model:page="searchForm.pageNo"
v-model:limit="searchForm.pageSize"
@pagination="getList"
/>
<Dialog v-model="dialogVisible" title="机构详情" style="width: 1000px">
<el-form
:model="form"
ref="formRef"
:rules="rules"
label-position="top"
:disabled="form.auditType != 1"
>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="机构名称" prop="name">
<el-input v-model="form.name" placeholder="请输入机构名称" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系人" prop="applyUser">
<el-input v-model="form.applyUser" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系方式" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训机构宣传文案" prop="xcwa">
<el-input
v-model="form.name"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训机构地址" prop="address">
<el-input
v-model="form.address"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</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-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训项目-垂直起降" prop="czqj">
<el-checkbox-group v-model="form.czqj">
<el-checkbox
v-for="item in driverOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训项目-直升机" prop="zsj">
<el-checkbox-group v-model="form.zsj">
<el-checkbox
v-for="item in driverOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训项目-固定翼" prop="gdy">
<el-checkbox-group v-model="form.gdy">
<el-checkbox
v-for="item in driverOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="合格证图片" prop="hgztp">
<UploadImg v-model="form.hgztp" height="100px" width="100px" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="培训机构Logo" prop="logo">
<UploadImg v-model="form.logo" height="100px" width="100px" />
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="主页宣传图" prop="zyxct">
<UploadImgs v-model="form.zyxct" :limit="6" height="100px" width="100px" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="优势标签" prop="ysbq">
<el-checkbox-group v-model="form.ysbq">
<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>
</el-col>
<el-col :span="12">
<el-form-item label="其他服务" prop="qtfw">
<el-checkbox-group v-model="form.qtfw">
<el-checkbox
v-for="item in serviceOptions"
:key="item.value"
:label="item.value"
:value="item.value"
>
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="其他诉求" prop="qtsq">
<el-input
v-model="form.qtsq"
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
<div v-if="dialogType == 'audit'">
<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-radio :label="2" :value="2">通过</el-radio>
<el-radio :label="3" :value="3">不通过</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="18" :offset="0">
<el-form-item label="审核说明" prop="shsm">
<el-input v-model="form.shsm" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<template #footer>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</div>
</template>
<script setup name="Station">
const searchForm = ref({
name: '',
auditType: 1,
pageNo: 1,
pageSize: 20
})
const tableList = ref([])
const total = ref(0)
const form = ref({})
const rules = {
name: { required: true, message: '请输入名称', trigger: 'blur' },
applyUser: { required: true, message: '请输入创建人', trigger: 'blur' },
phone: { required: true, message: '请输入手机号', trigger: 'blur' }
}
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 }
])
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 }
])
onMounted(() => {
handleQuery()
})
function handleQuery() {
searchForm.value.pageNo = 1
getList()
}
function getList() {
// getStationList(searchForm.value).then((res) => {
// console.log(res)
// })
tableList.value = [
{
id: 1,
name: '机构1',
createTime: '2021-01-01',
applyUser: '张三',
phone: '18888888888',
auditType: 2,
auditTime: '2021-02-01',
auditUser: 'admin',
auditRemark: '审核通过'
},
{
id: 2,
name: '机构2',
auditType: 1,
applyUser: '李四',
phone: '19999999999'
}
]
total.value = 2
}
function handleDetail(row, type) {
console.log(type)
dialogVisible.value = true
form.value = { ...row }
}
<script setup name="Station"></script>
function submitForm() {
dialogVisible.value = false
}
</script>
<style lang="scss" scoped></style>

Loading…
Cancel
Save