Browse Source

fix: 解决冲突

sy-water-data-board-ui
chenhaojie 1 year ago
parent
commit
b0a3c57296
  1. 29
      src/api/aiSupervision/layerConfigApi.js
  2. 95
      src/utils/request.js
  3. 331
      src/views/aiSupervision/layerManage/resource/LayerDetails.vue

29
src/api/aiSupervision/layerConfigApi.js

@ -40,6 +40,27 @@ export function getSceneList(data) {
}); });
} }
// 增加或更改图层
export function saveOrUpdateLayerApi(paramInfo) {
return request({
url: `/map/layer/saveOrUpdateLayer`,
method: 'post',
headers: {
'Content-Type': 'application/json'
},
data: paramInfo
});
}
// 获取图层列表
export function getLayerListApi(data) {
return request({
url: `/map/layer/getLayers`,
method: 'post',
data
});
}
export function getSceneDetail(id) { export function getSceneDetail(id) {
return request({ return request({
url: `/map/scene/findSceneById/${id}`, url: `/map/scene/findSceneById/${id}`,
@ -89,3 +110,11 @@ export function updateSceneConfig(data) {
data data
}); });
} }
// 删除图层
export function deleteLayerApi(id) {
return request({
url: `/map/layer/deleteLayer/${id}`,
method: 'delete'
});
}

95
src/utils/request.js

@ -1,12 +1,12 @@
import axios from 'axios' import axios from 'axios';
import { Notification, MessageBox, Message } from 'element-ui' import { Notification, MessageBox, Message } from 'element-ui';
import store from '@/store' import store from '@/store';
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth';
import errorCode from '@/utils/errorCode' import errorCode from '@/utils/errorCode';
// form 表单 头部信息 application/x-www-form-urlencoded // form 表单 头部信息 application/x-www-form-urlencoded
// //
window._axiosPromiseArr = [] window._axiosPromiseArr = [];
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分 // axios中请求配置有baseURL选项,表示请求URL公共部分
@ -14,85 +14,86 @@ const service = axios.create({
withCredentials: true, withCredentials: true,
// 超时 // 超时
timeout: 60000 timeout: 60000
}) });
// request拦截器 // request拦截器
service.interceptors.request.use(config => { service.interceptors.request.use(
(config) => {
// 是否需要设置 token // 是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false;
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers['shuili'] = 'water ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers['shuili'] = 'water ' + getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
} }
config.cancelToken = new axios.CancelToken(cancel => { config.cancelToken = new axios.CancelToken((cancel) => {
window._axiosPromiseArr.push({ cancel }) window._axiosPromiseArr.push({ cancel });
}) });
return config return config;
}, error => { },
Promise.reject(error) (error) => {
}) Promise.reject(error);
}
);
// 响应拦截器 // 响应拦截器
service.interceptors.response.use(res => { service.interceptors.response.use(
(res) => {
if (res && res.data) { if (res && res.data) {
// 未设置状态码则默认成功状态 // 未设置状态码则默认成功状态
const code = res.data.code || 200 const code = res.data.code || 200;
// 获取错误信息 // 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default'] const msg = errorCode[code] || res.data.msg || errorCode['default'];
if (code === 401) { if (code === 401) {
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录', confirmButtonText: '重新登录',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
} }).then(() => {
).then(() => {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = '/' location.href = '/';
}) });
}) });
} }
if (code === 403) { if (code === 403) {
MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', { MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
confirmButtonText: '重新登录', confirmButtonText: '重新登录',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
} }).then(() => {
).then(() => {
store.dispatch('LogOut').then(() => { store.dispatch('LogOut').then(() => {
location.href = '/' location.href = '/';
}) });
}) });
} else if (code !== 200) { } else if (code !== 200) {
Notification.error({ Notification.error({
title: msg title: msg
}) });
return Promise.reject('error') return Promise.reject('error');
} else if (code === 500) { } else if (code === 500) {
Message({ Message({
message: msg, message: msg,
type: 'error' type: 'error'
}) });
return Promise.reject(new Error(msg)) return Promise.reject(new Error(msg));
} else { } else {
return res.data return res.data;
} }
} }
}, },
error => { (error) => {
console.log('err' + error) console.log('err' + error);
let { message } = error let { message } = error;
if (message == 'Network Error') { if (message == 'Network Error') {
message = '后端接口连接异常' message = '后端接口连接异常';
} else if (message.includes('timeout')) { } else if (message.includes('timeout')) {
message = '系统接口请求超时' message = '系统接口请求超时';
} else if (message.includes('Request failed with status code')) { } else if (message.includes('Request failed with status code')) {
message = '系统接口' + message.substr(message.length - 3) + '异常' message = '系统接口' + message.substr(message.length - 3) + '异常';
} }
// Message({ // Message({
// message: message, // message: message,
// type: 'error', // type: 'error',
// duration: 5 * 1000 // duration: 5 * 1000
// }) // })
return Promise.reject(error) return Promise.reject(error);
} }
) );
export default service export default service;

331
src/views/aiSupervision/layerManage/resource/LayerDetails.vue

@ -11,13 +11,50 @@
<div class="directoryInfo"> <div class="directoryInfo">
<span> 图层资源目录名称{{ directoryInfo.name }}</span> <span> 图层资源目录名称{{ directoryInfo.name }}</span>
<span> 图层资源目录编号 {{ directoryInfo.id }}</span> <span> 图层资源目录编号 {{ directoryInfo.id }}</span>
<span> 图层数量 {{ (directoryInfo.children && directoryInfo.children.length) || 0 }}</span> <span> 图层数量 {{ pageOptions.total }}</span>
<span> 创建时间 {{ directoryInfo.pubDate }}</span> <span> 创建时间 {{ directoryInfo.pubDate }}</span>
<span> 创建人{{ directoryInfo.createUser }} </span> <span> 创建人{{ directoryInfo.createUser }} </span>
</div> </div>
</div> </div>
<div class="middle"> <div class="middle">
<el-button type="primary" plain>添加图层</el-button> <el-button type="primary" plain @click="dialogFormVisible = true">添加图层</el-button>
<el-dialog :title="dialogTitle" :visible.sync="dialogFormVisible">
<el-form :model="editDataInfoForm">
<el-form-item label="服务类型" style="font-size: 1rem" :label-width="'120px'">
<el-select style="width: 80%" v-model="editDataInfoForm.serviceType" placeholder="请选择">
<el-option
v-for="item in serviceTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="服务名称" prop="serviceName" style="font-size: 1rem" :label-width="'120px'">
<el-input v-model.trim="editDataInfoForm.serviceName" style="width: 80%"></el-input>
</el-form-item>
<el-form-item label="服务别名" prop="serviceNameAlias" style="font-size: 1rem" :label-width="'120px'">
<el-input v-model.trim="editDataInfoForm.serviceNameAlias" style="width: 80%"></el-input>
</el-form-item>
<el-form-item label="服务地址" prop="serviceUrl" style="font-size: 1rem" :label-width="'120px'">
<el-input v-model.trim="editDataInfoForm.serviceUrl" style="width: 80%"></el-input>
</el-form-item>
<el-form-item
v-if="editDataInfoForm.serviceType === '030300'"
label="服务索引"
prop="serviceIndex"
style="font-size: 1rem"
:label-width="'120px'"
>
<el-input v-model="editDataInfoForm.serviceIndex" style="width: 80%"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="saveOrUpdateLayer"> </el-button>
</div>
</el-dialog>
<div class="keyword-filter"> <div class="keyword-filter">
<el-input class="keyword-input" placeholder="请输入内容" v-model="keyword" clearable> </el-input> <el-input class="keyword-input" placeholder="请输入内容" v-model="keyword" clearable> </el-input>
<el-button class="search-btn">搜索</el-button> <el-button class="search-btn">搜索</el-button>
@ -25,181 +62,183 @@
</div> </div>
<div class="content"> <div class="content">
<el-table :data="tableData" stripe style="width: 100%"> <el-table :data="tableData" stripe style="width: 100%">
<el-table-column type="index" label="序号" width="50" header-align="center"> </el-table-column> <el-table-column
<el-table-column prop="date" label="图层资源目录编号" width="180"> </el-table-column> type="index"
<el-table-column prop="name" label="图层资源目录名称" width="180"> </el-table-column> :index="(index) => index + (pageOptions.pageNum - 1) * pageOptions.pageSize + 1"
<el-table-column prop="address" label="创建时间"> </el-table-column> label="序号"
<el-table-column prop="address" label="创建人"> </el-table-column> width="50"
<el-table-column prop="address" label="操作"> header-align="center"
></el-table-column>
<el-table-column prop="id" label="图层资源目录编号" width="350"> </el-table-column>
<el-table-column prop="serviceName" label="图层资源目录名称"> </el-table-column>
<el-table-column prop="pubDate" label="创建时间"> </el-table-column>
<el-table-column prop="createUser" label="创建人"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button> <el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination background layout="prev, pager, next" :total="1000"> </el-pagination> <el-pagination
background
layout="prev, pager, next"
:current-page.sync="pageOptions.pageNum"
:total="pageOptions.total"
:page-size="pageOptions.pageSize"
@current-change="getLayerList"
>
</el-pagination>
</div> </div>
</el-container> </el-container>
</div> </div>
</template> </template>
<script> <script>
import { getDirectoryApi } from '@/api/aiSupervision/layerConfigApi.js'; import debounce from 'lodash/debounce';
import { saveOrUpdateLayerApi, getLayerListApi, deleteLayerApi } from '@/api/aiSupervision/layerConfigApi.js';
export default { export default {
props: ['directoryInfo'], props: ['directoryInfo'],
data() { data() {
return { return {
tableData: [ tableData: [],
{ editDataInfoForm: {
date: '2016-05-02', serviceType: '', //,wms/wmts/wfs/3d tiles/terrain
name: '王小虎', serviceUrl: '', //
address: '上海市普陀区金沙江路 1518 弄' serviceName: '', //
}, serviceNameAlias: '', //
{ serviceIndex: '', //
date: '2016-05-04', dirId: '',
name: '王小虎', dirNames: '',
address: '上海市普陀区金沙江路 1517 弄' tileSize: '256'
},
{
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
},
{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
},
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
},
{
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
},
{
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
},
{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}, },
dialogTitle: '添加图层',
serviceTypeOptions: [
{ {
date: '2016-05-02', value: '021102',
name: '王小虎', label: 'ArcGISRest图层'
address: '上海市普陀区金沙江路 1518 弄'
}, },
{ {
date: '2016-05-04', value: '030300',
name: '王小虎', label: 'WFS200'
address: '上海市普陀区金沙江路 1517 弄'
}, },
{ {
date: '2016-05-01', value: '113200',
name: '王小虎', label: 'S3M图层'
address: '上海市普陀区金沙江路 1519 弄'
}, },
{ {
date: '2016-05-03', value: '',
name: '王小虎', label: 'XYZ底图'
address: '上海市普陀区金沙江路 1516 弄' }
}, ],
{ pageOptions: {
date: '2016-05-02', pageNum: 1,
name: '王小虎', pageSize: 8,
address: '上海市普陀区金沙江路 1518 弄' total: 0
},
{
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
},
{
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
},
{
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}, },
{ dialogFormVisible: false, //
date: '2016-05-02', keyword: ''
name: '王小虎', };
address: '上海市普陀区金沙江路 1518 弄'
}, },
{ mounted() {
date: '2016-05-04', this.initData();
name: '王小虎', this.getLayerList();
address: '上海市普陀区金沙江路 1517 弄'
}, },
{ methods: {
date: '2016-05-01', goBack() {
name: '王小虎', this.$emit('goback');
address: '上海市普陀区金沙江路 1519 弄'
}, },
{ handleEdit(index, row) {
date: '2016-05-03', this.editDataInfoForm.id = row.id;
name: '王小虎', this.editDataInfoForm.serviceType = row.serviceType;
address: '上海市普陀区金沙江路 1516 弄' this.editDataInfoForm.serviceName = row.serviceName;
this.editDataInfoForm.serviceNameAlias = row.serviceNameAlias;
this.editDataInfoForm.serviceUrl = row.serviceUrl;
this.editDataInfoForm.serviceIndex = row.serviceIndex;
this.dialogTitle = '编辑图层';
this.dialogFormVisible = true;
}, },
{
date: '2016-05-02', handleDelete(row) {
name: '王小虎', this.$confirm('删除图层将同时删除该图层资源以及关联的图层数据,删除后将不可恢复,是否继续删除?', '提示', {
address: '上海市普陀区金沙江路 1518 弄' confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async () => {
const res = await deleteLayerApi(row.id);
if (res.success) {
this.getLayerList();
this.$message({
type: 'success',
message: '删除成功!'
});
}
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}, },
{ //
date: '2016-05-04', getLayerList() {
name: '王小虎', const params = {
address: '上海市普陀区金沙江路 1517 弄' pageNum: this.pageOptions.pageNum,
pageSize: this.pageOptions.pageSize,
data: {
serviceName: this.keyword,
dirId: this.directoryInfo.id
}, },
{ params: {
date: '2016-05-01', orderBy: 'pub_date',
name: '王小虎', sortBy: 'asc'
address: '上海市普陀区金沙江路 1519 弄' }
};
getLayerListApi(params).then((res) => {
this.pageOptions.total = res.total;
this.tableData = res.records;
});
}, },
{ async saveOrUpdateLayer() {
date: '2016-05-03', const reg = /^(\w|[\u4e00-\u9fa5]){3,30}$/g;
name: '王小虎', if (!reg.test(this.editDataInfoForm.serviceName)) {
address: '上海市普陀区金沙江路 1516 弄' this.$message({
type: 'info',
message: '格式有误,目录名称仅支持中文、数字、字母、下划线,最大长度不超过30'
});
return;
}
await saveOrUpdateLayerApi(this.editDataInfoForm);
this.getLayerList();
this.dialogFormVisible = false;
}, },
{ initData() {
date: '2016-05-02', this.editDataInfoForm.serviceUrl = '';
name: '王小虎', this.editDataInfoForm.serviceName = '';
address: '上海市普陀区金沙江路 1518 弄' this.editDataInfoForm.serviceNameAlias = '';
this.editDataInfoForm.serviceIndex = '';
this.editDataInfoForm.serviceType = this.serviceTypeOptions[0].value;
this.editDataInfoForm.dirId = this.directoryInfo.id;
this.editDataInfoForm.dirNames = this.directoryInfo.name;
this.editDataInfoForm.tileSize = '256';
this.dialogTitle = '添加图层';
}
}, },
{ created() {
date: '2016-05-04', // 使 lodash debounce
name: '王小虎', this.debouncedGetLayerList = debounce(this.getLayerList, 500);
address: '上海市普陀区金沙江路 1517 弄'
}, },
{ watch: {
date: '2016-05-01', keyword() {
name: '王小虎', this.debouncedGetLayerList();
address: '上海市普陀区金沙江路 1519 弄'
}, },
{ dialogFormVisible(val) {
date: '2016-05-03', if (val === false) {
name: '王小虎', this.initData();
address: '上海市普陀区金沙江路 1516 弄'
} }
],
keyword: ''
};
},
mounted() {
console.log(this.directoryInfo);
},
methods: {
goBack() {
this.$emit('goback');
} }
} }
}; };
@ -279,5 +318,15 @@ header {
} }
} }
} }
.content {
display: flex;
flex-direction: column;
gap: 10px;
justify-content: space-between;
flex: 1;
.el-pagination {
text-align: center;
}
}
} }
</style> </style>

Loading…
Cancel
Save