功能修改
This commit is contained in:
parent
9400e5e138
commit
7517040d8f
|
|
@ -23,6 +23,15 @@ export function openView(data) {
|
|||
data,
|
||||
})
|
||||
}
|
||||
|
||||
export function openViewAll(data) {
|
||||
return request({
|
||||
url: '/model/openViews',
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除层级
|
||||
export function delModelApi(data) {
|
||||
return request({
|
||||
|
|
|
|||
|
|
@ -50,3 +50,10 @@ export function getProjectSelectListApi() {
|
|||
method: 'get',
|
||||
})
|
||||
}
|
||||
//项目类型
|
||||
export function getProTypeListApi() {
|
||||
return request({
|
||||
url: '/project/proTypeSelect',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,21 +12,21 @@
|
|||
|
||||
<div class="right-menu">
|
||||
<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">
|
||||
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
<!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">-->
|
||||
<!-- <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />-->
|
||||
<!-- </el-tooltip>-->
|
||||
|
||||
<el-tooltip content="文档地址" effect="dark" placement="bottom">
|
||||
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
<!-- <el-tooltip content="文档地址" effect="dark" placement="bottom">-->
|
||||
<!-- <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />-->
|
||||
<!-- </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">
|
||||
<size-select id="size-select" class="right-menu-item hover-effect" />
|
||||
</el-tooltip>
|
||||
<!-- <el-tooltip content="布局大小" effect="dark" placement="bottom">-->
|
||||
<!-- <size-select id="size-select" class="right-menu-item hover-effect" />-->
|
||||
<!-- </el-tooltip>-->
|
||||
</template>
|
||||
|
||||
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover">
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
</el-dropdown>
|
||||
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@
|
|||
<transition name="sidebarLogoFade">
|
||||
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
|
||||
<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 v-else key="expand" class="sidebar-logo-link" to="/">
|
||||
<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>
|
||||
</transition>
|
||||
</div>
|
||||
|
|
@ -58,7 +60,7 @@ export default {
|
|||
height: 50px;
|
||||
line-height: 50px;
|
||||
background: #2b2f3a;
|
||||
text-align: center;
|
||||
//text-align: center;
|
||||
overflow: hidden;
|
||||
|
||||
& .sidebar-logo-link {
|
||||
|
|
|
|||
|
|
@ -15,17 +15,17 @@
|
|||
@change="handleProjectChange"
|
||||
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-form-item>
|
||||
<el-form-item label="所属单位" prop="unit">
|
||||
<!-- <el-form-item label="所属单位" prop="unit">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入所属单位"
|
||||
v-model="queryParams.unit"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="负责人" prop="chargePerson">
|
||||
<el-input
|
||||
clearable
|
||||
|
|
@ -53,15 +53,15 @@
|
|||
</el-row>
|
||||
|
||||
<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">
|
||||
<template slot-scope="{ row }">
|
||||
<span>{{ row.nodeName }}</span>
|
||||
<el-tag style="margin-left: 10px" size="mini" type="primary">节点{{ row.nodelevel }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所属项目" align="center" prop="proName" />
|
||||
<el-table-column label="层级名称" align="center" prop="levelName" />
|
||||
<el-table-column label="所属项目" align="center" prop="proName"/>
|
||||
<el-table-column label="层级名称" align="center" prop="levelName"/>
|
||||
<el-table-column label="操作" align="center" width="180">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button
|
||||
|
|
@ -90,9 +90,9 @@
|
|||
icon="el-icon-edit"
|
||||
@click="handleEdit(row)"
|
||||
v-if="row.level != 1"
|
||||
>
|
||||
>
|
||||
修改
|
||||
</el-button> -->
|
||||
</el-button> -->
|
||||
|
||||
<el-button
|
||||
size="mini"
|
||||
|
|
@ -114,12 +114,12 @@
|
|||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getModelList"
|
||||
/> -->
|
||||
/> -->
|
||||
|
||||
<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-item label="项目名称" prop="proName">
|
||||
<el-input v-model="form.proName" placeholder="请输入项目名称" />
|
||||
<el-input v-model="form.proName" placeholder="请输入项目名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="层级配置" prop="level">
|
||||
<el-select v-model="form.level" placeholder="请选择层级配置" style="width: 100%">
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
<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>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
|
@ -152,7 +152,7 @@
|
|||
</el-dialog>
|
||||
<!-- 添加或修改岗位对话框 -->
|
||||
<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
|
||||
title="模型预览"
|
||||
|
|
@ -163,7 +163,7 @@
|
|||
>
|
||||
<!-- <dxf-viewer :entities="dxfPreviewUrl"></dxf-viewer> -->
|
||||
|
||||
<div id="map-container"> </div>
|
||||
<div id="map-container"></div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -176,7 +176,7 @@ import UseRecordTable from './useRecordTable.vue'
|
|||
import DxfViewer from './DxfViewer.vue'
|
||||
|
||||
// 引入相关的 API 接口
|
||||
import { getModelListApi, delModelApi, openView } from '@/api/basic/model'
|
||||
import {getModelListApi, delModelApi, openView, openViewAll} from '@/api/basic/model'
|
||||
import {
|
||||
listProject,
|
||||
getProject,
|
||||
|
|
@ -185,7 +185,7 @@ import {
|
|||
updateProject,
|
||||
getProjectSelectListApi,
|
||||
} from '@/api/basic/project'
|
||||
import { getLevelListApi } from '@/api/basic/level-manage.js'
|
||||
import {getLevelListApi} from '@/api/basic/level-manage.js'
|
||||
|
||||
export default {
|
||||
name: 'DeviceManage',
|
||||
|
|
@ -212,8 +212,8 @@ export default {
|
|||
level: undefined,
|
||||
},
|
||||
rules: {
|
||||
proName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
|
||||
level: [{ required: true, message: '请选择层级配置', trigger: 'change' }],
|
||||
proName: [{required: true, message: '项目名称不能为空', trigger: 'blur'}],
|
||||
level: [{required: true, message: '请选择层级配置', trigger: 'change'}],
|
||||
},
|
||||
levelList: [], // 层级配置列表
|
||||
|
||||
|
|
@ -271,6 +271,7 @@ export default {
|
|||
map: null,
|
||||
modelPreviewVisible: false,
|
||||
modelPreviewInfoList: [],
|
||||
projectIdAll: '',
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
|
@ -299,10 +300,10 @@ export default {
|
|||
// 查看模型按钮
|
||||
handleViewModel(row) {
|
||||
/* const modelUrl = row.modelUrl
|
||||
if (!modelUrl || !modelUrl.endsWith('.dxf')) {
|
||||
if (!modelUrl || !modelUrl.endsWith('.dxf')) {
|
||||
this.$modal.msgWarning('模型地址无效或不是DXF文件')
|
||||
return
|
||||
} */
|
||||
} */
|
||||
/* 新需求 重新做 上面建议不要删除 有需要直接可以查看 */
|
||||
// openView({ id: row.id })
|
||||
// .then((response) => {
|
||||
|
|
@ -313,7 +314,7 @@ export default {
|
|||
// // console.error('获取项目详情失败:', error)
|
||||
// })
|
||||
|
||||
openView({ id: row.id })
|
||||
openView({id: row.id})
|
||||
.then((res) => {
|
||||
this.modelPreviewInfoList = res.data
|
||||
this.modelPreviewVisible = true
|
||||
|
|
@ -347,13 +348,13 @@ export default {
|
|||
|
||||
// 新增子节点
|
||||
handleAddChild(row) {
|
||||
const { id, nodeName, nodelevel, nodeCount, projectId } = row
|
||||
const {id, nodeName, nodelevel, nodeCount, projectId} = row
|
||||
|
||||
this.addOrEditFormTitle = '新增'
|
||||
this.editForm = null
|
||||
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.$refs.addOrEditComponentRef.setFormData(editForm)
|
||||
})
|
||||
|
|
@ -375,7 +376,7 @@ export default {
|
|||
async getModelList() {
|
||||
this.loading = true
|
||||
|
||||
const { rows: res } = await getModelListApi(this.queryParams)
|
||||
const {rows: res} = await getModelListApi(this.queryParams)
|
||||
console.log(res, '模型列表')
|
||||
this.loading = false
|
||||
this.modelList = this.onBuildTree(res)
|
||||
|
|
@ -460,12 +461,12 @@ export default {
|
|||
|
||||
// 编辑按钮 (旧的AddOrEditForm组件使用)
|
||||
handleEdit(row) {
|
||||
const { id, proName, level, nodeCount } = row
|
||||
const {id, proName, level, nodeCount} = row
|
||||
this.addOrEditFormTitle = '编辑'
|
||||
this.editForm = null
|
||||
this.addOrEditFormVisible = true
|
||||
|
||||
const editForm = { deviceName: proName, id, level, nodeCount }
|
||||
const editForm = {deviceName: proName, id, level, nodeCount}
|
||||
this.$nextTick(() => {
|
||||
// 确保 addOrEditComponentRef 存在
|
||||
if (this.$refs.addOrEditComponentRef) {
|
||||
|
|
@ -506,7 +507,7 @@ export default {
|
|||
// res = await delModelApi({ id: row.id }) // 使用 delModelApi 删除模型节点
|
||||
// }
|
||||
|
||||
const res = await delModelApi({ id })
|
||||
const res = await delModelApi({id})
|
||||
if (res.code === 200) {
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
this.getModelList()
|
||||
|
|
@ -590,13 +591,14 @@ export default {
|
|||
|
||||
// 获取所有的项目下拉选
|
||||
async getProjectSelectList() {
|
||||
const { data: res } = await getProjectSelectListApi()
|
||||
const {data: res} = await getProjectSelectListApi()
|
||||
|
||||
console.log(res, '下拉选的所有数据')
|
||||
this.projectSelectList = res
|
||||
|
||||
if (res.length > 0) {
|
||||
this.queryParams.projectId = res[0].id
|
||||
this.projectIdAll = res[0].id
|
||||
this.getModelList()
|
||||
}
|
||||
},
|
||||
|
|
@ -654,10 +656,22 @@ export default {
|
|||
|
||||
// 模型预览
|
||||
handleModelPreview() {
|
||||
|
||||
openViewAll({projectId: this.projectIdAll})
|
||||
.then((res) => {
|
||||
this.modelPreviewInfoList = res.data
|
||||
this.modelPreviewVisible = true
|
||||
|
||||
// 百度地图初始化
|
||||
console.log('res', res.data)
|
||||
this.initMap()
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('获取模型详情失败:', err)
|
||||
})
|
||||
// this.modelPreviewVisible = true
|
||||
//
|
||||
// // 百度地图初始化
|
||||
// this.initMap()
|
||||
},
|
||||
|
||||
// 预览弹框关闭
|
||||
|
|
@ -795,7 +809,7 @@ export default {
|
|||
|
||||
const polyline = new BMapGL.Polyline(
|
||||
[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)
|
||||
} else if (item.entityType === 'CIRCLE') {
|
||||
|
|
@ -832,7 +846,7 @@ export default {
|
|||
let overlay = null
|
||||
if (path.length === 1) {
|
||||
// 1. 单点:绘制带方向的标记(箭头)
|
||||
const { point, angle } = path[0]
|
||||
const {point, angle} = path[0]
|
||||
|
||||
// 创建自定义箭头图标(根据角度旋转)
|
||||
const arrowIcon = new BMapGL.Icon(
|
||||
|
|
@ -864,7 +878,7 @@ export default {
|
|||
icon: new BMapGL.Icon(
|
||||
'//api.map.baidu.com/img/markers.png',
|
||||
new BMapGL.Size(20, 34),
|
||||
{ anchor: new BMapGL.Size(10, 34) },
|
||||
{anchor: new BMapGL.Size(10, 34)},
|
||||
),
|
||||
rotation: endAngle,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -40,10 +40,11 @@
|
|||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['basic:project:add']"
|
||||
>新增</el-button
|
||||
>新增
|
||||
</el-button
|
||||
>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
|
|
@ -51,18 +52,20 @@
|
|||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['basic:project:export']"
|
||||
>导出</el-button
|
||||
>导出
|
||||
</el-button
|
||||
>
|
||||
</el-col>
|
||||
</el-col>-->
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="proList" border>
|
||||
<el-table-column label="序号" align="center" type="index" />
|
||||
<el-table-column label="项目名称" align="center" prop="proName" />
|
||||
<el-table-column label="层级配置" align="center" prop="level" />
|
||||
<el-table-column label="负责人" align="center" prop="chargePerson" />
|
||||
<el-table-column label="备注" align="center" prop="remark" width="180" />
|
||||
<el-table-column label="序号" align="center" type="index"/>
|
||||
<el-table-column label="项目名称" align="center" prop="proName"/>
|
||||
<el-table-column label="层级配置" align="center" prop="level"/>
|
||||
<el-table-column label="项目类型" align="center" prop="proType"/>
|
||||
<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">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
|
|
@ -71,7 +74,8 @@
|
|||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['basic:project:edit']"
|
||||
>编辑</el-button
|
||||
>编辑
|
||||
</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
|
|
@ -79,7 +83,8 @@
|
|||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['basic:project:remove']"
|
||||
>删除</el-button
|
||||
>删除
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -97,7 +102,7 @@
|
|||
<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-item label="项目名称" prop="proName">
|
||||
<el-input v-model="form.proName" placeholder="请输入项目名称" />
|
||||
<el-input v-model="form.proName" placeholder="请输入项目名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="层级配置" prop="level">
|
||||
<el-select v-model="form.level" placeholder="请选择层级配置" style="width: 100%">
|
||||
|
|
@ -110,14 +115,26 @@
|
|||
</el-select>
|
||||
</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-input v-model="form.chargePerson" placeholder="请输入负责人" />
|
||||
<el-input v-model="form.chargePerson" placeholder="请输入负责人"/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="项目所在地" prop="location">
|
||||
<div style="display: flex; align-items: center">
|
||||
<el-input v-model="form.location" placeholder="请输入项目所在地" />
|
||||
<el-button type="primary" @click="handleMapAdd" style="margin-left: 10px"> 选择地址 </el-button>
|
||||
<el-input v-model="form.location" placeholder="请输入项目所在地"/>
|
||||
<el-button type="primary" @click="handleMapAdd" style="margin-left: 10px"> 选择地址</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
|
|
@ -129,17 +146,17 @@
|
|||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="经度" prop="longitude">
|
||||
<el-input disabled v-model="form.longitude" />
|
||||
<el-input disabled v-model="form.longitude"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="longitude" label="纬度">
|
||||
<el-input disabled v-model="form.latitude" />
|
||||
<el-input disabled v-model="form.latitude"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<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>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
|
@ -159,10 +176,10 @@
|
|||
width="80%"
|
||||
>
|
||||
<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>
|
||||
</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">
|
||||
<el-button type="primary" size="small" @click="findLocation">确定</el-button>
|
||||
|
|
@ -233,9 +250,9 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { listProject, getProject, delProject, addProject, updateProject } from '@/api/basic/project'
|
||||
import { getLevelListApi } from '@/api/basic/level-manage.js'
|
||||
import { BaiduMap, BmNavigation, BmView, BmGeolocation, BmCityList, BmLocalSearch } from 'vue-baidu-map'
|
||||
import {listProject, getProject, delProject, addProject, updateProject,getProTypeListApi} from '@/api/basic/project'
|
||||
import {getLevelListApi} from '@/api/basic/level-manage.js'
|
||||
import {BaiduMap, BmNavigation, BmView, BmGeolocation, BmCityList, BmLocalSearch} from 'vue-baidu-map'
|
||||
|
||||
export default {
|
||||
name: 'Post',
|
||||
|
|
@ -244,7 +261,7 @@ export default {
|
|||
return {
|
||||
location2: '',
|
||||
keyword: '',
|
||||
center: { lng: 111.752912, lat: 40.832246 },
|
||||
center: {lng: 111.752912, lat: 40.832246},
|
||||
zoom: 12,
|
||||
mapVisible: false,
|
||||
iconUrl: 'http://api0.map.bdimg.com/images/marker_red_sprite.png',
|
||||
|
|
@ -278,6 +295,7 @@ export default {
|
|||
form: {
|
||||
proName: '', // 项目名称
|
||||
level: '', // 层级配置
|
||||
proType:'', // 项目类型
|
||||
chargePerson: '', // 负责人
|
||||
location: '', // 项目所在地
|
||||
longitude: '', // 经度
|
||||
|
|
@ -286,15 +304,17 @@ export default {
|
|||
},
|
||||
// 表单校验
|
||||
addOrEditRules: {
|
||||
proName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
|
||||
level: [{ required: true, message: '请选择层级配置', trigger: 'change' }],
|
||||
chargePerson: [{ required: true, message: '请输入负责人', trigger: 'blur' }],
|
||||
location: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }],
|
||||
longitude: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }],
|
||||
latitude: [{ required: true, message: '请选择项目所在地', trigger: 'blur' }],
|
||||
proName: [{required: true, message: '项目名称不能为空', trigger: 'blur'}],
|
||||
level: [{required: true, message: '请选择层级配置', trigger: 'change'}],
|
||||
proType: [{required: true, message: '请选择项目类型', trigger: 'change'}],
|
||||
chargePerson: [{required: true, message: '请输入负责人', trigger: 'blur'}],
|
||||
location: [{required: true, message: '请选择项目所在地', trigger: 'blur'}],
|
||||
longitude: [{required: true, message: '请选择项目所在地', trigger: 'blur'}],
|
||||
latitude: [{required: true, message: '请选择项目所在地', trigger: 'blur'}],
|
||||
},
|
||||
|
||||
levelList: [],
|
||||
proTypeList: [],
|
||||
|
||||
searchAddress: '',
|
||||
marker: null,
|
||||
|
|
@ -303,6 +323,7 @@ export default {
|
|||
created() {
|
||||
this.getList()
|
||||
this.getLevelList()
|
||||
this.getProTypeList()
|
||||
},
|
||||
methods: {
|
||||
async getLevelList() {
|
||||
|
|
@ -312,6 +333,13 @@ export default {
|
|||
})
|
||||
this.levelList = res.rows
|
||||
},
|
||||
|
||||
|
||||
async getProTypeList() {
|
||||
const res = await getProTypeListApi()
|
||||
this.proTypeList = res.data
|
||||
},
|
||||
|
||||
/** 查询岗位列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
|
|
@ -331,6 +359,7 @@ export default {
|
|||
this.form = {
|
||||
proName: '', // 项目名称
|
||||
level: '', // 层级配置
|
||||
proType: '', // 层级配置
|
||||
chargePerson: '', // 负责人
|
||||
location: '', // 项目所在地
|
||||
longitude: '', // 经度
|
||||
|
|
@ -438,17 +467,17 @@ export default {
|
|||
},
|
||||
|
||||
/** 地图选点 */
|
||||
handler({ BMap, map }) {
|
||||
handler({BMap, map}) {
|
||||
let _this = this // 设置一个临时变量指向vue实例,因为在百度地图回调里使用this,指向的不是vue实例;
|
||||
let geolocation = new BMap.Geolocation()
|
||||
geolocation.getCurrentPosition(
|
||||
function (r) {
|
||||
console.log(r)
|
||||
_this.center = { lng: r.longitude, lat: r.latitude } // 设置center属性值
|
||||
_this.autoLocationPoint = { lng: r.longitude, lat: r.latitude } // 自定义覆盖物
|
||||
_this.center = {lng: r.longitude, lat: r.latitude} // 设置center属性值
|
||||
_this.autoLocationPoint = {lng: r.longitude, lat: r.latitude} // 自定义覆盖物
|
||||
_this.initLocation = true
|
||||
},
|
||||
{ enableHighAccuracy: true },
|
||||
{enableHighAccuracy: true},
|
||||
)
|
||||
window.map = map
|
||||
},
|
||||
|
|
@ -458,9 +487,9 @@ export default {
|
|||
let Icon_0 = new BMap.Icon(
|
||||
'http://api0.map.bdimg.com/images/marker_red_sprite.png',
|
||||
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)
|
||||
//用所定位的经纬度查找所在地省市街道等信息
|
||||
let point = new BMap.Point(e.point.lng, e.point.lat)
|
||||
|
|
@ -479,9 +508,9 @@ export default {
|
|||
let Icon_0 = new BMap.Icon(
|
||||
'http://api0.map.bdimg.com/images/marker_red_sprite.png',
|
||||
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)
|
||||
this.form.longitude = point.point.lng
|
||||
this.form.latitude = point.point.lat
|
||||
|
|
@ -506,7 +535,8 @@ export default {
|
|||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => {
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue