修改文件界面部分内容,完善界面标题不对,装备管理增加条数数据和查询返回时间显示

This commit is contained in:
wanglei 2025-09-23 11:50:04 +08:00
parent 32dbb3c2f3
commit 1b45cb6927
10 changed files with 94 additions and 24 deletions

View File

@ -18,7 +18,7 @@
"dependencies": { "dependencies": {
"@ant-design-vue/pro-layout": "^1.0.11", "@ant-design-vue/pro-layout": "^1.0.11",
"@antv/data-set": "^0.10.2", "@antv/data-set": "^0.10.2",
"@mermaid-js/parser": "^0.6.2", "@mermaid-js/parser": "^0.6.1",
"@wangeditor/editor": "^5.1.23", "@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^1.0.2", "@wangeditor/editor-for-vue": "^1.0.2",
"ant-design-vue": "^1.7.8", "ant-design-vue": "^1.7.8",
@ -32,7 +32,7 @@
"lodash.get": "^4.4.2", "lodash.get": "^4.4.2",
"lodash.pick": "^4.4.0", "lodash.pick": "^4.4.0",
"md5": "^2.3.0", "md5": "^2.3.0",
"mermaid": "^11.12.0", "mermaid": "^10.2.4",
"mockjs2": "1.0.8", "mockjs2": "1.0.8",
"moment": "^2.29.2", "moment": "^2.29.2",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",

2
public/index.html vendored
View File

@ -8,7 +8,7 @@
<title>某仿真分析方法工具</title> <title>某仿真分析方法工具</title>
<style>.first-loading-wrp{display:flex;justify-content:center;align-items:center;flex-direction:column;min-height:420px;height:100%}.first-loading-wrp>h1{font-size:128px}.first-loading-wrp .loading-wrp{padding:98px;display:flex;justify-content:center;align-items:center}.dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:32px;width:32px;height:32px;box-sizing:border-box}.dot i{width:14px;height:14px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.dot i:nth-child(1){top:0;left:0}.dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style> <style>.first-loading-wrp{display:flex;justify-content:center;align-items:center;flex-direction:column;min-height:420px;height:100%}.first-loading-wrp>h1{font-size:128px}.first-loading-wrp .loading-wrp{padding:98px;display:flex;justify-content:center;align-items:center}.dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:32px;width:32px;height:32px;box-sizing:border-box}.dot i{width:14px;height:14px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.dot i:nth-child(1){top:0;left:0}.dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style>
<script src="/jquery.min.js"></script> <script src="/jquery.min.js"></script>
<script src="https://files.worldwind.arc.nasa.gov/artifactory/web/0.9.0/worldwind.min.js"></script> <!-- <script src="https://files.worldwind.arc.nasa.gov/artifactory/web/0.9.0/worldwind.min.js"></script> -->
<script src="/map_load.js"></script> <script src="/map_load.js"></script>
<script src="/bmap_offline_api_v3.0_min.js"></script> <script src="/bmap_offline_api_v3.0_min.js"></script>
<script src="/map_city.js"></script> <script src="/map_city.js"></script>

View File

@ -17,6 +17,7 @@
<a-space :size="16"> <a-space :size="16">
<a-button type="primary" @click="handleQueryBtnClick">查询</a-button> <a-button type="primary" @click="handleQueryBtnClick">查询</a-button>
<a-button @click="handleResetBtnClick">重置</a-button> <a-button @click="handleResetBtnClick">重置</a-button>
<div>{{ qryTime }}</div>
<slot name="querybar-action"></slot> <slot name="querybar-action"></slot>
</a-space> </a-space>
</a-form-model-item> </a-form-model-item>
@ -119,6 +120,8 @@ export default {
actionSlotName, actionSlotName,
total: 0, total: 0,
pageParams: { pageNum: 1, pageSize: defaultPageSize }, pageParams: { pageNum: 1, pageSize: defaultPageSize },
qryTime: '',
begtime: '',
} }
}, },
computed: { computed: {
@ -356,6 +359,7 @@ export default {
try { try {
let res = { data: [] } let res = { data: [] }
if (this.tableConfig.query && typeof this.tableConfig.query === 'function') { if (this.tableConfig.query && typeof this.tableConfig.query === 'function') {
this.begtime = ''
res = await this.tableConfig.query(this.queryParams) res = await this.tableConfig.query(this.queryParams)
} }
if (!this.isPageMode) { if (!this.isPageMode) {
@ -379,6 +383,10 @@ export default {
this.handleTableResize(this.$refs['qt-table']) this.handleTableResize(this.$refs['qt-table'])
}) })
} }
if (this.begtime !== '') {
var endtiem = new Date().getTime()
this.qryTime = (endtiem - this.begtime) / 1000 + '秒'
}
} catch { } catch {
this.tableLoading = false this.tableLoading = false
this.tableData = [] this.tableData = []
@ -397,11 +405,13 @@ export default {
handleQueryBtnClick() { handleQueryBtnClick() {
this.pageParams.pageNum = 1 this.pageParams.pageNum = 1
this.commitAction('query') this.commitAction('query')
this.begtime = new Date().getTime()
}, },
handleResetBtnClick() { handleResetBtnClick() {
this.initQueryTemp() this.initQueryTemp()
this.pageParams.pageNum = 1 this.pageParams.pageNum = 1
this.commitAction('query') this.commitAction('query')
this.begtime = ''
}, },
handleSelectChange(selectedRowKeys, selectedRows) { handleSelectChange(selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys this.selectedRowKeys = selectedRowKeys
@ -425,12 +435,14 @@ export default {
commitAction(action) { commitAction(action) {
switch (action) { switch (action) {
case 'query': case 'query':
this.begtime = ''
this.queryTable() this.queryTable()
break break
case 'reload': case 'reload':
this.queryTemp = {} this.queryTemp = {}
this.pageParams.pageNum = 1 this.pageParams.pageNum = 1
this.pageParams.pageSize = defaultPageSize this.pageParams.pageSize = defaultPageSize
this.begtime = ''
this.queryTable() this.queryTable()
break break

View File

@ -13,13 +13,13 @@ export default {
txt: ` txt: `
<div class="mermaid"> <div class="mermaid">
flowchart TD flowchart TD
A@{ shape: circle, label: "开始" } --> B[油料保障分队分配油料物资] A[开始] --> B[油料保障分队分配油料物资]
B --> C[派运油车到火力打击分队进行运油] B --> C[派运油车到火力打击分队进行运油]
C --> D[到达火力打击分队后将油进行补充] C --> D[到达火力打击分队后将油进行补充]
D --> E[返回油料保障分队] D --> E[返回油料保障分队]
E --> F[油料保障分队保障任务完成] E --> F[油料保障分队保障任务完成]
F --> G@{shape: circle, label: "结束"} F --> G[结束]
</div> </div>
`, `,
} }
@ -31,7 +31,9 @@ export default {
el.style.visibility = 'hidden' // el.style.visibility = 'hidden' //
mermaid.run().then(() => { mermaid.run().then(() => {
el.style.visibility = 'visible' // el.style.visibility = 'visible' //
console.log('-------sdsds-sfsds--------')
}) })
console.log('-------sdsds---------')
}, },
} }
</script> </script>

View File

@ -59,6 +59,8 @@
</a-dropdown> </a-dropdown>
</template> </template>
</a-tree> </a-tree>
<br/>
<span>装备记录总数:{{ zbcnt }}</span>
</a-card> </a-card>
<a-card title="装备管理" class="my-card my-card-has-title" :bordered="false"> <a-card title="装备管理" class="my-card my-card-has-title" :bordered="false">
<template #extra> <template #extra>
@ -326,6 +328,7 @@ export default {
selectedKeys: [], selectedKeys: [],
expandedKeys: [], expandedKeys: [],
}, },
zbcnt: '',
zbflModal: { zbflModal: {
visible: false, visible: false,
title: '', title: '',
@ -480,6 +483,7 @@ export default {
}, },
created() { created() {
this.getZzTree() this.getZzTree()
this.getZbCount()
for (const key in this.dicData) { for (const key in this.dicData) {
this.$http({ this.$http({
url: '/dicdata/' + key + '/getList', url: '/dicdata/' + key + '/getList',
@ -503,6 +507,17 @@ export default {
console.log(error) console.log(error)
} }
}, },
async getZbCount() {
try {
const res = await this.$http({
url: '/basedata/entity/getCount',
method: 'get',
})
this.zbcnt = res.data
} catch (error) {
console.log(error)
}
},
handleChangeZbflSelected(data) { handleChangeZbflSelected(data) {
this.zb.entityType = data.entityType this.zb.entityType = data.entityType
this.zb.entityName = data.entityName this.zb.entityName = data.entityName

View File

@ -25,9 +25,11 @@
</a-popover> </a-popover>
</div> </div>
<div class="page-display-title"> <div class="page-display-title">
<span v-if="roomInfo.mag">{{ roomInfo.mag }}倍速</span> <span v-if="roomInfo.mag">{{ roomInfo.mag }}倍速</span>&nbsp;
<span>{{ roomInfo.statusMapText[roomInfo.status] }}</span> <span>{{ roomInfo.statusMapText[roomInfo.status] }}</span>&nbsp;
<span>剩余 {{ roomInfo.remainTimeStr }}</span> <span>想定时间 {{ roomInfo.scenarioTime }}</span>&nbsp;
<span>推演时间 {{ roomInfo.currentTime }}</span>&nbsp;
<span>剩余时间 {{ roomInfo.remainTimeStr }}</span>
</div> </div>
</Flex> </Flex>
<Grid class="page-display-main flex-1 oh" :rows="['30px', 1]" gap="0px"> <Grid class="page-display-main flex-1 oh" :rows="['30px', 1]" gap="0px">
@ -67,6 +69,8 @@ export default {
remainTimeStr: '', remainTimeStr: '',
remainTime: '', remainTime: '',
duringTime: '', duringTime: '',
currentTime: '',
scenarioTime: '',
roomData: [], roomData: [],
}, },
roomId: '', roomId: '',
@ -129,6 +133,8 @@ export default {
this.roomInfo.remainTimeStr = response.data.update_time_str this.roomInfo.remainTimeStr = response.data.update_time_str
this.roomInfo.remainTime = response.data.remain_time this.roomInfo.remainTime = response.data.remain_time
this.roomInfo.duringTime = response.data.during_time this.roomInfo.duringTime = response.data.during_time
this.roomInfo.currentTime = response.data.current_time
this.roomInfo.scenarioTime = response.data.scenario_time
break break
case 'start_rain': case 'start_rain':
this.cesium.addRain() this.cesium.addRain()

View File

@ -1,8 +1,8 @@
<template> <template>
<Flex fd="co" class="page-model"> <Flex fd="co" class="page-model">
<Flex ai="c" jc="sb" class="page-model-header"> <Flex ai="c" jc="sb" class="page-model-header">
<div class="page-scene-title">场景编辑子系统</div> <div class="page-model-title">仿真模型子系统</div>
<div class="page-scene-title"> <div class="page-model-title">
推演想定{{ roomName }}-{{ scenarioName }} 推演想定{{ roomName }}-{{ scenarioName }}
<a-popover v-if="scenarioDetail" title="想定信息"> <a-popover v-if="scenarioDetail" title="想定信息">
<template slot="content"> <template slot="content">
@ -24,10 +24,12 @@
<a-button type="text-primary" icon="exclamation-circle"></a-button> <a-button type="text-primary" icon="exclamation-circle"></a-button>
</a-popover> </a-popover>
</div> </div>
<div class="page-display-title"> <div class="page-model-title">
<span v-if="roomInfo.mag">{{ roomInfo.mag }}倍速</span> <span v-if="roomInfo.mag">{{ roomInfo.mag }}倍速</span>&nbsp;
<span>{{ roomInfo.statusMapText[roomInfo.status] }}</span> <span>{{ roomInfo.statusMapText[roomInfo.status] }}</span>&nbsp;
<span>剩余 {{ roomInfo.remainTimeStr }}</span> <span>想定时间 {{ roomInfo.scenarioTime }}</span>&nbsp;
<span>推演时间 {{ roomInfo.currentTime }}</span>&nbsp;
<span>剩余时间 {{ roomInfo.remainTimeStr }}</span>
</div> </div>
</Flex> </Flex>
<Grid class="page-model-main flex-1 oh" :columns="['320px', 1, '320px']" :rows="['30px', 1]" gap="0px"> <Grid class="page-model-main flex-1 oh" :columns="['320px', 1, '320px']" :rows="['30px', 1]" gap="0px">
@ -158,6 +160,8 @@ export default {
remainTimeStr: '', remainTimeStr: '',
remainTime: '', remainTime: '',
duringTime: '', duringTime: '',
currentTime: '',
scenarioTime: '',
roomData: [], roomData: [],
}, },
roomId: '', roomId: '',
@ -181,7 +185,6 @@ export default {
// customCell: (record) => ({ style: { color: ['', '#ff3838', '#feba29', '#ffffff'][record.dj] } }), // customCell: (record) => ({ style: { color: ['', '#ff3838', '#feba29', '#ffffff'][record.dj] } }),
// }, // },
// { dataIndex: 'bzxq', title: '' }, // { dataIndex: 'bzxq', title: '' },
{ title: '等级', dataIndex: 'handleFlag' },
{ title: '保障需求', dataIndex: 'supplierType' }, { title: '保障需求', dataIndex: 'supplierType' },
{ title: '保障数量', dataIndex: 'supplierNum' }, { title: '保障数量', dataIndex: 'supplierNum' },
], ],
@ -235,7 +238,6 @@ export default {
supplierRequests() { supplierRequests() {
return (this.zzbzllSelectedFd?.supplierRequests || []).map((item) => ({ return (this.zzbzllSelectedFd?.supplierRequests || []).map((item) => ({
id: item.id, id: item.id,
handleFlag: ['未处理', '已处理'][item.handleFlag],
supplierType: supplierType:
{ {
fuel: '油料', fuel: '油料',
@ -338,6 +340,8 @@ export default {
this.roomInfo.remainTimeStr = response.data.update_time_str this.roomInfo.remainTimeStr = response.data.update_time_str
this.roomInfo.remainTime = response.data.remain_time this.roomInfo.remainTime = response.data.remain_time
this.roomInfo.duringTime = response.data.during_time this.roomInfo.duringTime = response.data.during_time
this.roomInfo.currentTime = response.data.current_time
this.roomInfo.scenarioTime = response.data.scenario_time
break break
case 'start_rain': case 'start_rain':
this.cesium.addRain() this.cesium.addRain()
@ -422,6 +426,24 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.page-display {
height: 100%;
color: #ffffff;
.page-display-header {
height: 50px;
background-color: #0a2a3d;
padding: 0 20px;
.page-display-title {
color: #00d5fe;
font-size: 18px;
font-weight: bolder;
letter-spacing: 2px;
}
}
.page-display-main {
background-color: #022234;
}
}
.page-model { .page-model {
height: 100%; height: 100%;
color: #ffffff; color: #ffffff;

View File

@ -23,10 +23,12 @@
<a-button type="text-primary" icon="exclamation-circle"></a-button> <a-button type="text-primary" icon="exclamation-circle"></a-button>
</a-popover> </a-popover>
</div> </div>
<div class="page-display-title"> <div class="page-scene-title">
<span v-if="roomInfo.mag">{{ roomInfo.mag }}倍速</span> <span v-if="roomInfo.mag">{{ roomInfo.mag }}倍速</span>&nbsp;
<span>{{ roomInfo.statusMapText[roomInfo.status] }}</span> <span>{{ roomInfo.statusMapText[roomInfo.status] }}</span>&nbsp;
<span>剩余 {{ roomInfo.remainTimeStr }}</span> <span>想定时间 {{ roomInfo.scenarioTime }}</span>&nbsp;
<span>推演时间 {{ roomInfo.currentTime }}</span>&nbsp;
<span>剩余时间 {{ roomInfo.remainTimeStr }}</span>
</div> </div>
</Flex> </Flex>
<Grid class="page-scene-main flex-1 oh" :columns="['320px', 1, '320px']" :rows="['30px', 1]" gap="0px"> <Grid class="page-scene-main flex-1 oh" :columns="['320px', 1, '320px']" :rows="['30px', 1]" gap="0px">
@ -154,6 +156,8 @@ export default {
remainTimeStr: '', remainTimeStr: '',
remainTime: '', remainTime: '',
duringTime: '', duringTime: '',
currentTime: '',
scenarioTime: '',
roomData: [], roomData: [],
}, },
roomId: '', roomId: '',
@ -167,7 +171,6 @@ export default {
}, },
qd: { qd: {
qdColumns: [ qdColumns: [
{ title: '等级', dataIndex: 'handleFlag' },
{ title: '保障需求', dataIndex: 'supplierType' }, { title: '保障需求', dataIndex: 'supplierType' },
{ title: '保障数量', dataIndex: 'supplierNum' }, { title: '保障数量', dataIndex: 'supplierNum' },
], ],
@ -215,7 +218,6 @@ export default {
supplierRequests() { supplierRequests() {
return (this.zzbzllSelectedFd?.supplierRequests || []).map(item => ({ return (this.zzbzllSelectedFd?.supplierRequests || []).map(item => ({
id: item.id, id: item.id,
handleFlag: ['未处理', '已处理'][item.handleFlag],
supplierType: supplierType:
{ {
fuel: '油料', fuel: '油料',
@ -322,6 +324,8 @@ export default {
this.roomInfo.remainTimeStr = response.data.update_time_str this.roomInfo.remainTimeStr = response.data.update_time_str
this.roomInfo.remainTime = response.data.remain_time this.roomInfo.remainTime = response.data.remain_time
this.roomInfo.duringTime = response.data.during_time this.roomInfo.duringTime = response.data.during_time
this.roomInfo.currentTime = response.data.current_time
this.roomInfo.scenarioTime = response.data.scenario_time
break break
case 'start_rain': case 'start_rain':
this.cesium.addRain() this.cesium.addRain()

View File

@ -27,7 +27,7 @@
<span class="page-scene-presetting-title" style="color: transparent">场景编辑子系统</span> <span class="page-scene-presetting-title" style="color: transparent">场景编辑子系统</span>
</Flex> </Flex>
<Grid class="page-scene-presetting-main flex-1 oh" :columns="['320px', 1, '320px']" :rows="['30px', 1]" gap="0px"> <Grid class="page-scene-presetting-main flex-1 oh" :columns="['320px', 1, '320px']" :rows="['30px', 1]" gap="0px">
<div class="tool-wrapper" style="grid-area: 1 / 1 / 2 / 4"> <div class="tool_btn" style="grid-area: 1 / 1 / 2 / 4">
<a-menu :selectedKeys="[]" mode="horizontal" theme="dark"> <a-menu :selectedKeys="[]" mode="horizontal" theme="dark">
<a-menu-item @click="handleOpenGuaranteeProcessPage()"> 保障流程 </a-menu-item> <a-menu-item @click="handleOpenGuaranteeProcessPage()"> 保障流程 </a-menu-item>
</a-menu> </a-menu>
@ -534,6 +534,15 @@ export default {
} }
.page-scene-presetting-main { .page-scene-presetting-main {
background-color: #022234; background-color: #022234;
height: 100px;
padding: 0 20px;
.tool_btn {
background-color: #022234;
color: #00d5fe;
font-size: 60px;
font-weight: bolder;
letter-spacing: 2px;
}
} }
} }
.ant-menu-horizontal { .ant-menu-horizontal {

View File

@ -123,7 +123,7 @@ const vueConfig = {
}, },
}, },
'/map': { '/map': {
target: process.env.VUE_APP_MAP_URL + '/', target: process.env.VUE_APP_MAP_URL + '/map',
ws: false, ws: false,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {