驾校联调

This commit is contained in:
qsh
2024-05-30 14:24:49 +08:00
parent c258155972
commit 4e104166af
12 changed files with 610 additions and 614 deletions

View File

@@ -44,7 +44,12 @@
<el-button @click="handleClickSchool(school)">{{
`数据管理(${getCount(school.schoolId)})`
}}</el-button>
<el-tooltip content="新增场地" placement="left" effect="dark">
<el-tooltip
content="新增场地"
placement="left"
effect="dark"
v-if="checkPermi(['school:place:add'])"
>
<el-button class="add-place-btn" @click="handleInsertPlace(school.schoolId)">
<Icon icon="ep:plus" />
</el-button>
@@ -184,7 +189,11 @@
<el-table-column prop="area" label="所属区域" width="110" />
<el-table-column label="启用" width="100">
<template #default="scope">
<el-switch v-model="scope.row.showInMap" @change="changePlaceStatus(scope.row)" />
<el-switch
v-model="scope.row.showInMap"
:disabled="checkPermi(['school:place:update'])"
@change="changePlaceStatus(scope.row)"
/>
</template>
</el-table-column>
<el-table-column label="操作" width="100">
@@ -194,6 +203,7 @@
type="primary"
style="padding: 4px 8px"
@click="handleEditPlace(scope.row)"
v-hasPermi="['school:place:update']"
>
<Icon icon="ep:edit" />
</el-button>
@@ -222,6 +232,7 @@
<script setup name="Place">
import * as PlaceApi from '@/api/school/place'
import { checkPermi } from '@/utils/permission'
import FlagRed from '@/assets/imgs/flag/flag_red.png'
import FlagYellow from '@/assets/imgs/flag/flag_yellow.png'
@@ -310,9 +321,15 @@ function regeoCode() {
}
async function getPageData() {
schoolList.value = []
tableData.value = []
const data = await PlaceApi.getPlaceList()
schoolList.value = data.schoolList || []
tableData.value = data.placeList || []
if (data.schoolList) {
schoolList.value = data.schoolList.map((item) => ({ ...item, showInMap: true }))
}
if (data.placeList) {
tableData.value = data.placeList.map((item) => ({ ...item, showInMap: true, schoolShow: true }))
}
if (schoolList.value.length) {
currentdeptId.value = schoolList.value[0].schoolId
createMarkersInMap()
@@ -376,7 +393,8 @@ function handleInsertPlace(schoolId) {
phone: undefined,
schoolId: schoolId,
showInMap: true,
flagColor: 'red'
flagColor: 'red',
recommend: false
}
}
@@ -415,6 +433,9 @@ function checkPlaceFormValidate() {
}
function handleClickMarker(ev) {
if (!checkPermi(['school:place:update'])) {
return
}
placeForm.value = ev.target.getExtData()
placeDialogShow.value = true
}
@@ -422,54 +443,55 @@ function handleClickMarker(ev) {
async function onSubmit() {
// 保存接口
if (checkPlaceFormValidate()) {
// 先访问接口返回id插入placeForm
// const resp = savePlace(placeForm.value);
const resp = { code: 200, data: 'p00001' }
if (resp.code != 200) {
return
} else {
try {
let resp
if (placeForm.value.placeId) {
resp = await PlaceApi.updatePlace(placeForm.value)
} else {
resp = await PlaceApi.createPlace(placeForm.value)
placeForm.value.placeId = resp.data
}
message.success('操作成功')
}
if (!placeForm.value.placeId && resp.data) {
placeForm.value.placeId = resp.data
}
// 移除选点用 的标记
dialogMap.value.remove(locationMarker.value)
// 根据form创建新marker 并添加到地图上
const tmpMarker = new aMap.value.Marker({
map: dialogMap.value,
position: [placeForm.value.lng, placeForm.value.lat],
icon: flagMap[placeForm.value.flagColor],
label: {
content: placeForm.value.name,
direction: 'right'
},
extData: placeForm.value
})
// 新marker事件
tmpMarker.on('click', handleClickMarker)
// 如果当前选择的marker点存在编辑
// if (selectMarker.value) {
// // 地图上 移除选择的点
// dialogMap.value.remove(selectMarker.value)
// selectMarker.value = null
// }
// 关闭场地弹窗
placeDialogShow.value = false
isPointing.value = false
// 移除选点用 的标记
dialogMap.value.remove(locationMarker.value)
// 根据form创建新marker 并添加到地图上
const tmpMarker = new aMap.value.Marker({
map: dialogMap.value,
position: [placeForm.value.lng, placeForm.value.lat],
icon: flagMap[placeForm.value.flagColor],
label: {
content: placeForm.value.name,
direction: 'right'
},
extData: placeForm.value
})
// 新marker事件
tmpMarker.on('click', handleClickMarker)
// 如果当前选择的marker点存在编辑
// if (selectMarker.value) {
// // 地图上 移除选择的点
// dialogMap.value.remove(selectMarker.value)
// selectMarker.value = null
// }
// 关闭场地弹窗
placeDialogShow.value = false
isPointing.value = false
// 场地列表 移除原列表中操作的场地数据
const tmpArr = tableData.value.filter((item) => item.placeId !== placeForm.value.placeId)
// 新增新的场地
tmpArr.push(placeForm.value)
// 重置场地数组
tableData.value = tmpArr
// 地图marker列表 移除操作的原marker 添加新marker进数组
const tmpArr1 = placeMarkerList.value.filter(
(item) => item.getExtData().placeId !== placeForm.value.placeId
)
tmpArr1.push(tmpMarker)
placeMarkerList.value = tmpArr1
// 场地列表 移除原列表中操作的场地数据
const tmpArr = tableData.value.filter((item) => item.placeId !== placeForm.value.placeId)
// 新增新的场地
tmpArr.push(placeForm.value)
// 重置场地数组
tableData.value = tmpArr
// 地图marker列表 移除操作的原marker 添加新marker进数组
const tmpArr1 = placeMarkerList.value.filter(
(item) => item.getExtData().placeId !== placeForm.value.placeId
)
tmpArr1.push(tmpMarker)
placeMarkerList.value = tmpArr1
} catch (error) {
console.log(error)
}
}
}