功能修改

This commit is contained in:
lSun 2025-11-07 11:11:53 +08:00
parent 9400e5e138
commit 7517040d8f
6 changed files with 1646 additions and 1584 deletions

View File

@ -23,6 +23,15 @@ export function openView(data) {
data, data,
}) })
} }
export function openViewAll(data) {
return request({
url: '/model/openViews',
method: 'post',
data,
})
}
// 删除层级 // 删除层级
export function delModelApi(data) { export function delModelApi(data) {
return request({ return request({

View File

@ -50,3 +50,10 @@ export function getProjectSelectListApi() {
method: 'get', method: 'get',
}) })
} }
//项目类型
export function getProTypeListApi() {
return request({
url: '/project/proTypeSelect',
method: 'get',
})
}

View File

@ -12,21 +12,21 @@
<div class="right-menu"> <div class="right-menu">
<template v-if="device !== 'mobile'"> <template v-if="device !== 'mobile'">
<search id="header-search" class="right-menu-item" /> <!-- <search id="header-search" class="right-menu-item" />-->
<el-tooltip content="源码地址" effect="dark" placement="bottom"> <!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">-->
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> <!-- <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />-->
</el-tooltip> <!-- </el-tooltip>-->
<el-tooltip content="文档地址" effect="dark" placement="bottom"> <!-- <el-tooltip content="文档地址" effect="dark" placement="bottom">-->
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> <!-- <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />-->
</el-tooltip> <!-- </el-tooltip>-->
<screenfull id="screenfull" class="right-menu-item hover-effect" /> <!-- <screenfull id="screenfull" class="right-menu-item hover-effect" />-->
<el-tooltip content="布局大小" effect="dark" placement="bottom"> <!-- <el-tooltip content="布局大小" effect="dark" placement="bottom">-->
<size-select id="size-select" class="right-menu-item hover-effect" /> <!-- <size-select id="size-select" class="right-menu-item hover-effect" />-->
</el-tooltip> <!-- </el-tooltip>-->
</template> </template>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover"> <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover">
@ -45,7 +45,7 @@
</el-dropdown> </el-dropdown>
<div class="right-menu-item hover-effect setting" @click="setLayout" v-if="setting"> <div class="right-menu-item hover-effect setting" @click="setLayout" v-if="setting">
<svg-icon icon-class="more-up" /> <!-- <svg-icon icon-class="more-up" />-->
</div> </div>
</div> </div>
</div> </div>

View File

@ -3,11 +3,13 @@
<transition name="sidebarLogoFade"> <transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo" /> <img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }"> 水运AR应用平台 </h1>
</router-link> </router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/"> <router-link v-else key="expand" class="sidebar-logo-link" to="/">
<img v-if="logo" :src="logo" class="sidebar-logo" /> <img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }"> 水运AR应用平台 </h1>
</router-link> </router-link>
</transition> </transition>
</div> </div>
@ -58,7 +60,7 @@ export default {
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
background: #2b2f3a; background: #2b2f3a;
text-align: center; //text-align: center;
overflow: hidden; overflow: hidden;
& .sidebar-logo-link { & .sidebar-logo-link {

View File

@ -15,17 +15,17 @@
@change="handleProjectChange" @change="handleProjectChange"
v-model="queryParams.projectId" v-model="queryParams.projectId"
> >
<el-option :key="item.id" :value="item.id" :label="item.name" v-for="item in projectSelectList" /> <el-option :key="item.id" :value="item.id" :label="item.name" v-for="item in projectSelectList"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属单位" prop="unit"> <!-- <el-form-item label="所属单位" prop="unit">
<el-input <el-input
clearable clearable
placeholder="请输入所属单位" placeholder="请输入所属单位"
v-model="queryParams.unit" v-model="queryParams.unit"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>-->
<el-form-item label="负责人" prop="chargePerson"> <el-form-item label="负责人" prop="chargePerson">
<el-input <el-input
clearable clearable
@ -53,15 +53,15 @@
</el-row> </el-row>
<el-table border row-key="id" v-loading="loading" :data="modelList" default-expand-all> <el-table border row-key="id" v-loading="loading" :data="modelList" default-expand-all>
<el-table-column label="序号" align="center" type="index" /> <el-table-column label="序号" align="center" type="index"/>
<el-table-column label="分类名称" align="center"> <el-table-column label="分类名称" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span>{{ row.nodeName }}</span> <span>{{ row.nodeName }}</span>
<el-tag style="margin-left: 10px" size="mini" type="primary">节点{{ row.nodelevel }}</el-tag> <el-tag style="margin-left: 10px" size="mini" type="primary">节点{{ row.nodelevel }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属项目" align="center" prop="proName" /> <el-table-column label="所属项目" align="center" prop="proName"/>
<el-table-column label="层级名称" align="center" prop="levelName" /> <el-table-column label="层级名称" align="center" prop="levelName"/>
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="180">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button <el-button
@ -90,9 +90,9 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleEdit(row)" @click="handleEdit(row)"
v-if="row.level != 1" v-if="row.level != 1"
> >
修改 修改
</el-button> --> </el-button> -->
<el-button <el-button
size="mini" size="mini"
@ -114,12 +114,12 @@
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getModelList" @pagination="getModelList"
/> --> /> -->
<el-dialog :title="title" :visible.sync="open" width="550px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="项目名称" prop="proName"> <el-form-item label="项目名称" prop="proName">
<el-input v-model="form.proName" placeholder="请输入项目名称" /> <el-input v-model="form.proName" placeholder="请输入项目名称"/>
</el-form-item> </el-form-item>
<el-form-item label="层级配置" prop="level"> <el-form-item label="层级配置" prop="level">
<el-select v-model="form.level" placeholder="请选择层级配置" style="width: 100%"> <el-select v-model="form.level" placeholder="请选择层级配置" style="width: 100%">
@ -132,7 +132,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" /> <el-input v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -152,7 +152,7 @@
</el-dialog> </el-dialog>
<!-- 添加或修改岗位对话框 --> <!-- 添加或修改岗位对话框 -->
<el-dialog width="40%" append-to-body :title="addOrEditFormTitle" :visible.sync="addOrEditFormVisible"> <el-dialog width="40%" append-to-body :title="addOrEditFormTitle" :visible.sync="addOrEditFormVisible">
<AddOrEditForm ref="addOrEditComponentRef" @closeAddOrEditFormDialog="closeAddOrEditFormDialog" /> <AddOrEditForm ref="addOrEditComponentRef" @closeAddOrEditFormDialog="closeAddOrEditFormDialog"/>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
title="模型预览" title="模型预览"
@ -163,7 +163,7 @@
> >
<!-- <dxf-viewer :entities="dxfPreviewUrl"></dxf-viewer> --> <!-- <dxf-viewer :entities="dxfPreviewUrl"></dxf-viewer> -->
<div id="map-container"> </div> <div id="map-container"></div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -176,7 +176,7 @@ import UseRecordTable from './useRecordTable.vue'
import DxfViewer from './DxfViewer.vue' import DxfViewer from './DxfViewer.vue'
// API // API
import { getModelListApi, delModelApi, openView } from '@/api/basic/model' import {getModelListApi, delModelApi, openView, openViewAll} from '@/api/basic/model'
import { import {
listProject, listProject,
getProject, getProject,
@ -185,7 +185,7 @@ import {
updateProject, updateProject,
getProjectSelectListApi, getProjectSelectListApi,
} from '@/api/basic/project' } from '@/api/basic/project'
import { getLevelListApi } from '@/api/basic/level-manage.js' import {getLevelListApi} from '@/api/basic/level-manage.js'
export default { export default {
name: 'DeviceManage', name: 'DeviceManage',
@ -212,8 +212,8 @@ export default {
level: undefined, level: undefined,
}, },
rules: { rules: {
proName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }], proName: [{required: true, message: '项目名称不能为空', trigger: 'blur'}],
level: [{ required: true, message: '请选择层级配置', trigger: 'change' }], level: [{required: true, message: '请选择层级配置', trigger: 'change'}],
}, },
levelList: [], // levelList: [], //
@ -271,6 +271,7 @@ export default {
map: null, map: null,
modelPreviewVisible: false, modelPreviewVisible: false,
modelPreviewInfoList: [], modelPreviewInfoList: [],
projectIdAll: '',
} }
}, },
created() { created() {
@ -299,10 +300,10 @@ export default {
// //
handleViewModel(row) { handleViewModel(row) {
/* const modelUrl = row.modelUrl /* const modelUrl = row.modelUrl
if (!modelUrl || !modelUrl.endsWith('.dxf')) { if (!modelUrl || !modelUrl.endsWith('.dxf')) {
this.$modal.msgWarning('模型地址无效或不是DXF文件') this.$modal.msgWarning('模型地址无效或不是DXF文件')
return return
} */ } */
/* 新需求 重新做 上面建议不要删除 有需要直接可以查看 */ /* 新需求 重新做 上面建议不要删除 有需要直接可以查看 */
// openView({ id: row.id }) // openView({ id: row.id })
// .then((response) => { // .then((response) => {
@ -313,7 +314,7 @@ export default {
// // console.error(':', error) // // console.error(':', error)
// }) // })
openView({ id: row.id }) openView({id: row.id})
.then((res) => { .then((res) => {
this.modelPreviewInfoList = res.data this.modelPreviewInfoList = res.data
this.modelPreviewVisible = true this.modelPreviewVisible = true
@ -347,13 +348,13 @@ export default {
// //
handleAddChild(row) { handleAddChild(row) {
const { id, nodeName, nodelevel, nodeCount, projectId } = row const {id, nodeName, nodelevel, nodeCount, projectId} = row
this.addOrEditFormTitle = '新增' this.addOrEditFormTitle = '新增'
this.editForm = null this.editForm = null
this.addOrEditFormVisible = true this.addOrEditFormVisible = true
const editForm = { deviceName: nodeName, id, level: nodelevel * 1 + 1, nodeCount, projectId } const editForm = {deviceName: nodeName, id, level: nodelevel * 1 + 1, nodeCount, projectId}
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrEditComponentRef.setFormData(editForm) this.$refs.addOrEditComponentRef.setFormData(editForm)
}) })
@ -375,7 +376,7 @@ export default {
async getModelList() { async getModelList() {
this.loading = true this.loading = true
const { rows: res } = await getModelListApi(this.queryParams) const {rows: res} = await getModelListApi(this.queryParams)
console.log(res, '模型列表') console.log(res, '模型列表')
this.loading = false this.loading = false
this.modelList = this.onBuildTree(res) this.modelList = this.onBuildTree(res)
@ -460,12 +461,12 @@ export default {
// (AddOrEditForm使) // (AddOrEditForm使)
handleEdit(row) { handleEdit(row) {
const { id, proName, level, nodeCount } = row const {id, proName, level, nodeCount} = row
this.addOrEditFormTitle = '编辑' this.addOrEditFormTitle = '编辑'
this.editForm = null this.editForm = null
this.addOrEditFormVisible = true this.addOrEditFormVisible = true
const editForm = { deviceName: proName, id, level, nodeCount } const editForm = {deviceName: proName, id, level, nodeCount}
this.$nextTick(() => { this.$nextTick(() => {
// addOrEditComponentRef // addOrEditComponentRef
if (this.$refs.addOrEditComponentRef) { if (this.$refs.addOrEditComponentRef) {
@ -506,7 +507,7 @@ export default {
// res = await delModelApi({ id: row.id }) // 使 delModelApi // res = await delModelApi({ id: row.id }) // 使 delModelApi
// } // }
const res = await delModelApi({ id }) const res = await delModelApi({id})
if (res.code === 200) { if (res.code === 200) {
this.$modal.msgSuccess('删除成功') this.$modal.msgSuccess('删除成功')
this.getModelList() this.getModelList()
@ -590,13 +591,14 @@ export default {
// //
async getProjectSelectList() { async getProjectSelectList() {
const { data: res } = await getProjectSelectListApi() const {data: res} = await getProjectSelectListApi()
console.log(res, '下拉选的所有数据') console.log(res, '下拉选的所有数据')
this.projectSelectList = res this.projectSelectList = res
if (res.length > 0) { if (res.length > 0) {
this.queryParams.projectId = res[0].id this.queryParams.projectId = res[0].id
this.projectIdAll = res[0].id
this.getModelList() this.getModelList()
} }
}, },
@ -654,10 +656,22 @@ export default {
// //
handleModelPreview() { handleModelPreview() {
openViewAll({projectId: this.projectIdAll})
.then((res) => {
this.modelPreviewInfoList = res.data
this.modelPreviewVisible = true this.modelPreviewVisible = true
// console.log('res', res.data)
this.initMap() this.initMap()
})
.catch((err) => {
console.error('获取模型详情失败:', err)
})
// this.modelPreviewVisible = true
//
// //
// this.initMap()
}, },
// //
@ -795,7 +809,7 @@ export default {
const polyline = new BMapGL.Polyline( const polyline = new BMapGL.Polyline(
[new BMapGL.Point(start[0], start[1]), new BMapGL.Point(end[0], end[1])], [new BMapGL.Point(start[0], start[1]), new BMapGL.Point(end[0], end[1])],
{ strokeColor: 'red', strokeWeight: 2, strokeOpacity: 0.8 }, {strokeColor: 'red', strokeWeight: 2, strokeOpacity: 0.8},
) )
this.map.addOverlay(polyline) this.map.addOverlay(polyline)
} else if (item.entityType === 'CIRCLE') { } else if (item.entityType === 'CIRCLE') {
@ -832,7 +846,7 @@ export default {
let overlay = null let overlay = null
if (path.length === 1) { if (path.length === 1) {
// 1. // 1.
const { point, angle } = path[0] const {point, angle} = path[0]
// //
const arrowIcon = new BMapGL.Icon( const arrowIcon = new BMapGL.Icon(
@ -864,7 +878,7 @@ export default {
icon: new BMapGL.Icon( icon: new BMapGL.Icon(
'//api.map.baidu.com/img/markers.png', '//api.map.baidu.com/img/markers.png',
new BMapGL.Size(20, 34), new BMapGL.Size(20, 34),
{ anchor: new BMapGL.Size(10, 34) }, {anchor: new BMapGL.Size(10, 34)},
), ),
rotation: endAngle, rotation: endAngle,
}) })

View File

@ -40,10 +40,11 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['basic:project:add']" v-hasPermi="['basic:project:add']"
>新增</el-button >新增
</el-button
> >
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
plain plain
@ -51,18 +52,20 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['basic:project:export']" v-hasPermi="['basic:project:export']"
>导出</el-button >导出
</el-button
> >
</el-col> </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="proList" border> <el-table v-loading="loading" :data="proList" border>
<el-table-column label="序号" align="center" type="index" /> <el-table-column label="序号" align="center" type="index"/>
<el-table-column label="项目名称" align="center" prop="proName" /> <el-table-column label="项目名称" align="center" prop="proName"/>
<el-table-column label="层级配置" align="center" prop="level" /> <el-table-column label="层级配置" align="center" prop="level"/>
<el-table-column label="负责人" align="center" prop="chargePerson" /> <el-table-column label="项目类型" align="center" prop="proType"/>
<el-table-column label="备注" align="center" prop="remark" width="180" /> <el-table-column label="负责人" align="center" prop="chargePerson"/>
<el-table-column label="备注" align="center" prop="remark" width="180"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -71,7 +74,8 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['basic:project:edit']" v-hasPermi="['basic:project:edit']"
>编辑</el-button >编辑
</el-button
> >
<el-button <el-button
size="mini" size="mini"
@ -79,7 +83,8 @@
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['basic:project:remove']" v-hasPermi="['basic:project:remove']"
>删除</el-button >删除
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
@ -97,7 +102,7 @@
<el-dialog :title="title" :visible.sync="open" width="40%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="40%" append-to-body>
<el-form ref="form" :model="form" :rules="addOrEditRules" label-width="auto"> <el-form ref="form" :model="form" :rules="addOrEditRules" label-width="auto">
<el-form-item label="项目名称" prop="proName"> <el-form-item label="项目名称" prop="proName">
<el-input v-model="form.proName" placeholder="请输入项目名称" /> <el-input v-model="form.proName" placeholder="请输入项目名称"/>
</el-form-item> </el-form-item>
<el-form-item label="层级配置" prop="level"> <el-form-item label="层级配置" prop="level">
<el-select v-model="form.level" placeholder="请选择层级配置" style="width: 100%"> <el-select v-model="form.level" placeholder="请选择层级配置" style="width: 100%">
@ -110,14 +115,26 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="项目类型" prop="proType">
<el-select v-model="form.proType" placeholder="请选择项目类型" style="width: 100%">
<el-option
:key="item.id"
:value="item.id"
:label="item.name"
v-for="item in proTypeList"
/>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="chargePerson"> <el-form-item label="负责人" prop="chargePerson">
<el-input v-model="form.chargePerson" placeholder="请输入负责人" /> <el-input v-model="form.chargePerson" placeholder="请输入负责人"/>
</el-form-item> </el-form-item>
<el-form-item label="项目所在地" prop="location"> <el-form-item label="项目所在地" prop="location">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<el-input v-model="form.location" placeholder="请输入项目所在地" /> <el-input v-model="form.location" placeholder="请输入项目所在地"/>
<el-button type="primary" @click="handleMapAdd" style="margin-left: 10px"> 选择地址 </el-button> <el-button type="primary" @click="handleMapAdd" style="margin-left: 10px"> 选择地址</el-button>
</div> </div>
</el-form-item> </el-form-item>
@ -129,17 +146,17 @@
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="经度" prop="longitude"> <el-form-item label="经度" prop="longitude">
<el-input disabled v-model="form.longitude" /> <el-input disabled v-model="form.longitude"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="longitude" label="纬度"> <el-form-item prop="longitude" label="纬度">
<el-input disabled v-model="form.latitude" /> <el-input disabled v-model="form.latitude"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" /> <el-input v-model="form.remark" type="textarea" placeholder="请输入备注"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -159,10 +176,10 @@
width="80%" width="80%"
> >
<div style="display: flex; align-items: center; margin-bottom: 14px"> <div style="display: flex; align-items: center; margin-bottom: 14px">
<el-input v-model="searchAddress" placeholder="请输入地址" /> <el-input v-model="searchAddress" placeholder="请输入地址"/>
<el-button type="primary" @click="handleSearch" style="margin-left: 6px">搜索</el-button> <el-button type="primary" @click="handleSearch" style="margin-left: 6px">搜索</el-button>
</div> </div>
<div id="map-container" style="height: 70vh; background-color: #bfc"> </div> <div id="map-container" style="height: 70vh; background-color: #bfc"></div>
<div style="text-align: right; margin-top: 10px"> <div style="text-align: right; margin-top: 10px">
<el-button type="primary" size="small" @click="findLocation">确定</el-button> <el-button type="primary" size="small" @click="findLocation">确定</el-button>
@ -233,9 +250,9 @@
</template> </template>
<script> <script>
import { listProject, getProject, delProject, addProject, updateProject } from '@/api/basic/project' import {listProject, getProject, delProject, addProject, updateProject,getProTypeListApi} from '@/api/basic/project'
import { getLevelListApi } from '@/api/basic/level-manage.js' import {getLevelListApi} from '@/api/basic/level-manage.js'
import { BaiduMap, BmNavigation, BmView, BmGeolocation, BmCityList, BmLocalSearch } from 'vue-baidu-map' import {BaiduMap, BmNavigation, BmView, BmGeolocation, BmCityList, BmLocalSearch} from 'vue-baidu-map'
export default { export default {
name: 'Post', name: 'Post',
@ -244,7 +261,7 @@ export default {
return { return {
location2: '', location2: '',
keyword: '', keyword: '',
center: { lng: 111.752912, lat: 40.832246 }, center: {lng: 111.752912, lat: 40.832246},
zoom: 12, zoom: 12,
mapVisible: false, mapVisible: false,
iconUrl: 'http://api0.map.bdimg.com/images/marker_red_sprite.png', iconUrl: 'http://api0.map.bdimg.com/images/marker_red_sprite.png',
@ -278,6 +295,7 @@ export default {
form: { form: {
proName: '', // proName: '', //
level: '', // level: '', //
proType:'', //
chargePerson: '', // chargePerson: '', //
location: '', // location: '', //
longitude: '', // longitude: '', //
@ -286,15 +304,17 @@ export default {
}, },
// //
addOrEditRules: { addOrEditRules: {
proName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }], proName: [{required: true, message: '项目名称不能为空', trigger: 'blur'}],
level: [{ required: true, message: '请选择层级配置', trigger: 'change' }], level: [{required: true, message: '请选择层级配置', trigger: 'change'}],
chargePerson: [{ required: true, message: '请输入负责人', trigger: 'blur' }], proType: [{required: true, message: '请选择项目类型', trigger: 'change'}],
location: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }], chargePerson: [{required: true, message: '请输入负责人', trigger: 'blur'}],
longitude: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }], location: [{required: true, message: '请选择项目所在地', trigger: 'blur'}],
latitude: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }], longitude: [{required: true, message: '请选择项目所在地', trigger: 'blur'}],
latitude: [{required: true, message: '请选择项目所在地', trigger: 'blur'}],
}, },
levelList: [], levelList: [],
proTypeList: [],
searchAddress: '', searchAddress: '',
marker: null, marker: null,
@ -303,6 +323,7 @@ export default {
created() { created() {
this.getList() this.getList()
this.getLevelList() this.getLevelList()
this.getProTypeList()
}, },
methods: { methods: {
async getLevelList() { async getLevelList() {
@ -312,6 +333,13 @@ export default {
}) })
this.levelList = res.rows this.levelList = res.rows
}, },
async getProTypeList() {
const res = await getProTypeListApi()
this.proTypeList = res.data
},
/** 查询岗位列表 */ /** 查询岗位列表 */
getList() { getList() {
this.loading = true this.loading = true
@ -331,6 +359,7 @@ export default {
this.form = { this.form = {
proName: '', // proName: '', //
level: '', // level: '', //
proType: '', //
chargePerson: '', // chargePerson: '', //
location: '', // location: '', //
longitude: '', // longitude: '', //
@ -438,17 +467,17 @@ export default {
}, },
/** 地图选点 */ /** 地图选点 */
handler({ BMap, map }) { handler({BMap, map}) {
let _this = this // vue使thisvue let _this = this // vue使thisvue
let geolocation = new BMap.Geolocation() let geolocation = new BMap.Geolocation()
geolocation.getCurrentPosition( geolocation.getCurrentPosition(
function (r) { function (r) {
console.log(r) console.log(r)
_this.center = { lng: r.longitude, lat: r.latitude } // center _this.center = {lng: r.longitude, lat: r.latitude} // center
_this.autoLocationPoint = { lng: r.longitude, lat: r.latitude } // _this.autoLocationPoint = {lng: r.longitude, lat: r.latitude} //
_this.initLocation = true _this.initLocation = true
}, },
{ enableHighAccuracy: true }, {enableHighAccuracy: true},
) )
window.map = map window.map = map
}, },
@ -458,9 +487,9 @@ export default {
let Icon_0 = new BMap.Icon( let Icon_0 = new BMap.Icon(
'http://api0.map.bdimg.com/images/marker_red_sprite.png', 'http://api0.map.bdimg.com/images/marker_red_sprite.png',
new BMap.Size(64, 64), new BMap.Size(64, 64),
{ anchor: new BMap.Size(18, 32), imageSize: new BMap.Size(36, 25) }, {anchor: new BMap.Size(18, 32), imageSize: new BMap.Size(36, 25)},
) )
let myMarker = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat), { icon: Icon_0 }) let myMarker = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat), {icon: Icon_0})
map.addOverlay(myMarker) map.addOverlay(myMarker)
// //
let point = new BMap.Point(e.point.lng, e.point.lat) let point = new BMap.Point(e.point.lng, e.point.lat)
@ -479,9 +508,9 @@ export default {
let Icon_0 = new BMap.Icon( let Icon_0 = new BMap.Icon(
'http://api0.map.bdimg.com/images/marker_red_sprite.png', 'http://api0.map.bdimg.com/images/marker_red_sprite.png',
new BMap.Size(64, 64), new BMap.Size(64, 64),
{ anchor: new BMap.Size(18, 32), imageSize: new BMap.Size(36, 36) }, {anchor: new BMap.Size(18, 32), imageSize: new BMap.Size(36, 36)},
) )
let myMarker = new BMap.Marker(new BMap.Point(point.point.lng, point.point.lat), { icon: Icon_0 }) let myMarker = new BMap.Marker(new BMap.Point(point.point.lng, point.point.lat), {icon: Icon_0})
map.addOverlay(myMarker) map.addOverlay(myMarker)
this.form.longitude = point.point.lng this.form.longitude = point.point.lng
this.form.latitude = point.point.lat this.form.latitude = point.point.lat
@ -506,7 +535,8 @@ export default {
this.getList() this.getList()
this.$modal.msgSuccess('删除成功') this.$modal.msgSuccess('删除成功')
}) })
.catch(() => {}) .catch(() => {
})
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {