提交添加战术计算、添加头部设置

This commit is contained in:
zh
2025-10-21 16:20:22 +08:00
parent d447f23376
commit ce3c39031d
215 changed files with 11960 additions and 24090 deletions

View File

@ -13,14 +13,14 @@
<div>
<span>{{ $t("headerTitles.auths.authCode") }}</span>
<span @click="copy" style="cursor: pointer;" title="点击可复制">{{
authInfo.license_code
}}</span>
authInfo.license_code
}}</span>
</div>
<div>
<span>{{ $t("headerTitles.auths.authTime") }}</span>
<span v-if="authInfo.message === '永久授权' ||
authInfo.message === '临时授权'
">
authInfo.message === '临时授权'
">
<template v-if="authInfo.start_at != '无'">
{{ authInfo.start_at }}-
</template>
@ -30,15 +30,15 @@
<div>
<span>{{ $t("headerTitles.auths.authType") }}</span>
<span>{{
authInfo.auth_type == "" ? "暂无授权" : authInfo.auth_type
}}</span>
authInfo.auth_type == "" ? "暂无授权" : authInfo.auth_type
}}</span>
</div>
<el-upload class="upload-demo" :headers="headers" :action="uploadUrl()" :show-file-list="false"
accept=".lic" :on-success="onSuccess">
<el-button size="small" type="primary">{{
$t("headerTitles.auths.upload")
}}</el-button>
$t("headerTitles.auths.upload")
}}</el-button>
</el-upload>
<!--<button class="btn" @click="onFileSubmit">{{ $t('headerTitles.confirm') }}</button>-->
</div>
@ -67,8 +67,8 @@
<div>
<div class="detailSkin ">
<span>{{
$t("headerTitles.systemSetting.setLanguage")
}}</span>
$t("headerTitles.systemSetting.setLanguage")
}}</span>
<el-select v-model="systemSetting.language" @change="sysChange" placeholder="请选择">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id">
</el-option>
@ -83,7 +83,7 @@
<div class="">-->
<el-select v-model="systemSetting.skinInfo" @change="sysChange" placeholder="请选择">
<el-option v-for="item in skinList" :key="item.id" :label="$t('headerTitles.systemSetting.skinList.' + item.id)
" :value="item.id">
" :value="item.id">
</el-option>
</el-select>
</div>
@ -95,7 +95,7 @@
<span>{{ $t("headerTitles.searchWay.title") }}</span>
<el-select v-model="searchWay" @change="searchWayChange" placeholder="请选择">
<el-option v-for="(item, index) in wayList" :key="index" :label="$t('headerTitles.searchWay.searchWayList.' + item.value)
" :value="item.value">
" :value="item.value">
</el-option>
</el-select>
</div>
@ -211,6 +211,79 @@
</button>-->
</div>
</el-tab-pane>
<!-- 头部设置 -->
<el-tab-pane :label="$t('headerTitles.Header.title')" class="headerTab">
<el-dialog :visible.sync="headerAddDialogVisible" :modal="false" :title="$t('headerTitles.Header.add')"
width="100%" style="width: 680px; height: 420px;" center :before-close="headerAddClose">
<div style="display: flex;align-items: center;margin: 10px 0;">
<span style="width: 50px;">名称</span>
<el-input style="width: calc(100% - 78px);" v-model="headerParams.name" placeholder="请输入名称"></el-input>
</div>
<el-row>
<el-col :span="8">
<p>{{ $t('headerTitles.systemSetting.skinList.' + skinList[0].id) }}</p>
<el-upload class="header-uploader" action="" accept =".png, .jpeg, .jpg" :show-file-list="false" :http-request="headerUploadRequest"
:data="{ index: 1 }">
<img style="object-fit: contain;" v-if="headerParams.url1" :src="headerParams.url1" class="header">
<i v-else class="el-icon-plus header-uploader-icon"></i>
</el-upload>
</el-col>
<el-col :span="8">
<p>{{ $t('headerTitles.systemSetting.skinList.' + skinList[1].id) }}</p>
<el-upload class="header-uploader" action="" accept =".png, .jpeg, .jpg" :show-file-list="false" :http-request="headerUploadRequest"
:data="{ index: 2 }">
<img style="object-fit: contain;" v-if="headerParams.url2" :src="headerParams.url2" class="header">
<i v-else class="el-icon-plus header-uploader-icon"></i>
</el-upload>
</el-col>
<el-col :span="8">
<p>{{ $t('headerTitles.systemSetting.skinList.' + skinList[2].id) }}</p>
<el-upload class="header-uploader" action="" accept =".png, .jpeg, .jpg" :show-file-list="false" :http-request="headerUploadRequest"
:data="{ index: 3 }">
<img style="object-fit: contain;" v-if="headerParams.url3" :src="headerParams.url3" class="header">
<i v-else class="el-icon-plus header-uploader-icon"></i>
</el-upload>
</el-col>
</el-row>
<div style="text-align: right; margin-top: 20px;">
<el-button type="primary" size="small" @click="headerAddConfirm">
{{ $t("headerTitles.Header.confirm") }}
</el-button>
</div>
</el-dialog>
<div>
<div style="margin-bottom: 10px;">
<el-button type="primary" size="small" @click="headerAddDialogVisible = true">
{{ $t("headerTitles.Header.add") }}
</el-button>
</div>
<el-table :data="headerDataList" style="width: 100%" max-height="250">
<el-table-column
label=""
align="center"
width="50">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.selected" @change="headerSelectChange(scope.row)"></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="name" label="图片名称" width="250" align="center">
</el-table-column>
<el-table-column align="center" label="缩略图">
<template slot-scope="scope">
<img :src="scope.row.header1" alt="" style="width: 100%;height: 50px;object-fit: contain;">
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="text" danger @click="deleteHeaderImg(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination style="display: flex;justify-content: center" @size-change="handleSizeChangeHeader"
@current-change="hadleCurrentChangeHeader" :current-page="paginationHeader.page" :page-sizes="[5, 10, 20, 30, 40]"
:page-size="paginationHeader.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="paginationHeader.total" />
</div>
</el-tab-pane>
<!-- 卫星状态 -->
<!-- <el-tab-pane :label="$t('headerTitles.Satellite')">
<div class="auth_info custom_scroll_bar content_h">
@ -254,7 +327,7 @@
</div>
<div>
<el-button @click="importpoi" size="mini" type="primary" class="btn_public">{{
$t("headerTitles.Engineerings.importPOI") }}
$t("headerTitles.Engineerings.importPOI") }}
</el-button>
</div>
<div>
@ -284,14 +357,14 @@
<Air />
</el-tab-pane>
<!-- 模型管理 -->
<el-tab-pane :label="$t('headerTitles.model.title')">
<el-tab-pane :label="$t('headerTitles.model.title')">
<!-- <model></model> -->
<div class="modelBtn custom_scroll_bar" v-if="isStandAlone">
<el-button @click="createLib('model')" type="warning" size="small">{{
$t("headerTitles.model.createModelLibrary") }}
$t("headerTitles.model.createModelLibrary") }}
</el-button>
<el-button @click="selectLib('model')" type="primary" size="small">{{
$t("headerTitles.model.selectModelLibrary") }}
$t("headerTitles.model.selectModelLibrary") }}
</el-button>
<el-button @click="addModelType" :disabled="importModelEnable()" type="success" size="small">
{{ $t("headerTitles.model.addModelType") }}
@ -303,10 +376,10 @@
{{ $t("headerTitles.model.importModel") }}
</el-button>
<el-button style="margin-left: 10px" @click="editModelTypes()" type="warning" size="small">{{
$t("headerTitles.model.editModel") }}
$t("headerTitles.model.editModel") }}
</el-button>
<el-button @click="delModelTypes()" type="warning" size="small">{{
$t("headerTitles.model.deleteModel") }}
$t("headerTitles.model.deleteModel") }}
</el-button>
</div>
<div class="modelList">
@ -331,11 +404,11 @@
<template v-if="modelTypeList.length > 0">
<template v-for="item in modelTypeList">
<div :class="[
selectedModelType == item.type_id
? 'selectedModelTypeCss'
: '',
'typeItem',
]" @click="selectModel(item)">
selectedModelType == item.type_id
? 'selectedModelTypeCss'
: '',
'typeItem',
]" @click="selectModel(item)">
<div class="label" :title="item.type_name">
{{ item.type_name }}
</div>
@ -386,13 +459,13 @@
</div>
</el-tab-pane>
<!-- 三维军标 -->
<el-tab-pane v-if="false" label="三维军标">
<el-tab-pane v-if="false" label="三维军标">
<div class="modelBtn custom_scroll_bar" v-if="isStandAlone">
<el-button @click="createLib('model')" type="warning" size="small">{{
$t("headerTitles.model.createModelLibrary") }}
$t("headerTitles.model.createModelLibrary") }}
</el-button>
<el-button @click="selectLib('model')" type="primary" size="small">{{
$t("headerTitles.model.selectModelLibrary") }}
$t("headerTitles.model.selectModelLibrary") }}
</el-button>
<el-button @click="addModelType" :disabled="importModelEnable()" type="success" size="small">
{{ $t("headerTitles.model.addModelType") }}
@ -404,10 +477,10 @@
{{ $t("headerTitles.model.importModel") }}
</el-button>
<el-button style="margin-left: 10px" @click="editModelTypes()" type="warning" size="small">{{
$t("headerTitles.model.editModel") }}
$t("headerTitles.model.editModel") }}
</el-button>
<el-button @click="delModelTypes()" type="warning" size="small">{{
$t("headerTitles.model.deleteModel") }}
$t("headerTitles.model.deleteModel") }}
</el-button>
</div>
<div class="modelList">
@ -432,11 +505,11 @@
<template v-if="modelTypeList.length > 0">
<template v-for="item in modelTypeList">
<div :class="[
selectedModelType == item.type_id
? 'selectedModelTypeCss'
: '',
'typeItem',
]" @click="selectModel(item)">
selectedModelType == item.type_id
? 'selectedModelTypeCss'
: '',
'typeItem',
]" @click="selectModel(item)">
<div class="label" :title="item.type_name">
{{ item.type_name }}
</div>
@ -492,10 +565,10 @@
<el-tab-pane :label="$t('headerTitles.graphLabel.title')">
<div class="modelBtn custom_scroll_bar" v-if="isStandAlone">
<el-button @click="createLib('graphLabel')" type="warning" size="small">{{
$t("headerTitles.graphLabel.createGraphLabelLibrary") }}
$t("headerTitles.graphLabel.createGraphLabelLibrary") }}
</el-button>
<el-button @click="selectLib('junbiao')" type="primary" size="small">{{
$t("headerTitles.graphLabel.selectGraphLabelLibrary") }}
$t("headerTitles.graphLabel.selectGraphLabelLibrary") }}
</el-button>
<el-button @click="addGraphLabelType" :disabled="importGraphLabelEnable()" type="success" size="small">
{{ $t("headerTitles.graphLabel.addGraphLabelType") }}
@ -507,7 +580,7 @@
{{ $t("headerTitles.graphLabel.importGraphLabel") }}
</el-button>
<el-button style="margin-left: 10px" @click="editGraphLabelTypes" type="warning" size="small">{{
$t("headerTitles.graphLabel.edit") }}
$t("headerTitles.graphLabel.edit") }}
</el-button>
<el-button @click="delGraphLabelTypes" type="warning" size="small">{{ $t("headerTitles.graphLabel.delete")
}}
@ -580,7 +653,7 @@
<el-table-column prop="type" label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="editGraphLabel(scope.row)">{{
$t("headerTitles.graphLabel.edit") }}</el-button>
$t("headerTitles.graphLabel.edit") }}</el-button>
<el-button @click="delGraphLabel(scope.row.jun_biao_id)" type="danger" size="mini">
{{ $t("headerTitles.graphLabel.delete") }}
</el-button>
@ -707,6 +780,8 @@ import { calcWidth } from "@/utils";
import { validateCommonText } from "@/utils/validate";
import equipment from "../../PLTraffic/components/manager/equipment/equipment";
import Air from "./components/air/index.vue"
import { Header } from "element-ui";
import { getHeaderList, addHeader, selectHeader, deleteHeader } from "@/api/gisAPI";
// import model from "./components/modelType/index.vue"
// import {baseURL} from "../../../utils/request";
@ -888,9 +963,26 @@ export default {
},
],
searchWay: "poi",
paginationHeader: {
page: 1,
pageSize: 5,
total: 0,
},
headerDataList: [],
headerAddDialogVisible: false,
headerParams: {
name: "",
header1: "",
header2: "",
header3: "",
url1: "",
url2: "",
url3: "",
}
};
},
mounted() {
this.getHeaderList();
this.searchWay = localStorage.getItem("searchWay") || "poi";
//用户修改角色后,重新请求用户列表
this.$recvChanel("getUserList", (props) => {
@ -959,6 +1051,142 @@ export default {
}
return "";
},
getHeaderList() {
getHeaderList({
page: this.paginationHeader.page,
page_size: this.paginationHeader.pageSize,
}).then(res => {
if (res.code == 0 || res.code == 200) {
this.headerDataList = res.data.list
this.paginationHeader.total = res.data.total
}
})
},
headerSelectChange(row) {
for (let i = 0; i < this.headerDataList.length; i++) {
if (this.headerDataList[i].selected) {
this.headerDataList[i].selected = false
}
}
row.selected = true
selectHeader({
id: row.id
}).then(res => {
if (res.code == 0 || res.code == 200) {
this.$message.success("设置成功");
localStorage.setItem("header", JSON.stringify(row))
this.$sendChanel("header")
}
})
},
deleteHeaderImg(row) {
this.$confirm("确定删除吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(async () => {
deleteHeader({
id: row.id
}).then(async res => {
if (res.code == 0 || res.code == 200) {
let header = JSON.parse(localStorage.getItem("header"))
this.$message.success("删除成功");
if(this.headerDataList.length==1 && this.paginationHeader.page>1) {
this.paginationHeader.page--
}
if (row.id == header.id) {
localStorage.removeItem("header")
// 显示第一个
await getHeaderList({
page: 1,
page_size: 1,
}).then(res => {
if (res.code == 0 || res.code == 200) {
if(res.data.list && res.data.list[0]) {
this.headerSelectChange(res.data.list[0])
setTimeout(() => {
this.getHeaderList();
}, 500);
}
else {
this.getHeaderList();
localStorage.removeItem("header")
this.$sendChanel("header")
}
}
})
}
else {
this.getHeaderList();
}
}
})
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
handleSizeChangeHeader(value) {
this.paginationHeader.pageSize = value;
this.getHeaderList();
},
hadleCurrentChangeHeader(value) {
this.paginationHeader.page = value;
this.getHeaderList();
},
headerUploadRequest(data) {
let fileObj = data.file
this.headerParams[`header${data.data.index}`] = fileObj;
this.headerParams[`url${data.data.index}`] = URL.createObjectURL(fileObj);
// console.log(this.headerParams.url1)
},
headerAddClose() {
this.headerAddDialogVisible = false;
this.headerParams = {
name: "",
header1: "",
header2: "",
header3: "",
url1: "",
url2: "",
url3: "",
}
},
headerAddConfirm() {
if (!this.headerParams.name) {
this.$message.warning("请输入名称");
return;
}
if (!this.headerParams.header1 || !this.headerParams.header2 || !this.headerParams.header3) {
this.$message.warning("请上传对应图片");
return;
}
let formData = new FormData()
formData.append('name', this.headerParams.name)
formData.append('header1', this.headerParams.header1)
formData.append('header2', this.headerParams.header2)
formData.append('header3', this.headerParams.header3)
addHeader(formData).then(res => {
if (res.code == 0 || res.code == 200) {
this.$message.success("添加成功");
this.headerAddDialogVisible = false;
this.headerParams = {
name: "",
header1: "",
header2: "",
header3: "",
url1: "",
url2: "",
url3: "",
}
this.getHeaderList();
}
})
}
},
};
</script>
@ -1453,6 +1681,38 @@ export default {
font-size: 14px;
}
}
.headerTab {
.el-checkbox__inner {
width: 18px;
height: 18px;
}
.el-checkbox__inner::after {
height: 10px;
left: 6px;
}
.el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
.header,
.header-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
}
.el-upload:hover {
border-color: #409eff;
}
}
}
.modelList,