|
|
@@ -88,20 +88,20 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 目标设置 -->
|
|
|
+ <!-- 靶标设置 -->
|
|
|
<div class="section-card mb-6">
|
|
|
<div class="section-header">
|
|
|
<h4 class="section-title">
|
|
|
<i class="el-icon-location"></i>
|
|
|
- 目标设置
|
|
|
+ 靶标设置
|
|
|
</h4>
|
|
|
<el-button type="text" icon="el-icon-plus" @click="addTarget" class="text-green-400" :disabled="!canAddMoreTargets">
|
|
|
- 添加目标
|
|
|
+ 添加靶标
|
|
|
</el-button>
|
|
|
</div>
|
|
|
<div class="target-list p-4">
|
|
|
<div class="target-hint text-xs text-yellow-400 mb-2" v-if="taskForm.targets.length < taskForm.missileCount">
|
|
|
- 提示:可添加 {{ taskForm.missileCount - taskForm.targets.length }} 个目标
|
|
|
+ 提示:可添加 {{ taskForm.missileCount - taskForm.targets.length }} 个靶标
|
|
|
</div>
|
|
|
<div class="target-hint text-xs text-red-400 mb-2" v-if="taskForm.targets.length > taskForm.missileCount">
|
|
|
警告:靶标数量超过导弹数量 {{ taskForm.targets.length - taskForm.missileCount }} 个
|
|
|
@@ -305,12 +305,12 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <!-- 目标-装备分配关系 -->
|
|
|
+ <!-- 靶标-装备分配关系 -->
|
|
|
<div class="section-card">
|
|
|
<div class="section-header">
|
|
|
<h4 class="section-title">
|
|
|
<i class="el-icon-link mr-2"></i>
|
|
|
- 目标-装备分配关系
|
|
|
+ 靶标-装备分配关系
|
|
|
</h4>
|
|
|
</div>
|
|
|
<div class="target-equipment-map p-4">
|
|
|
@@ -321,8 +321,8 @@
|
|
|
:header-cell-style="{background: 'rgba(30, 58, 138, 0.3)', color: '#bae6fd', borderColor: 'rgba(14, 165, 233, 0.2)'}"
|
|
|
:row-style="{background: 'rgba(15, 23, 42, 0.5)', color: '#e0f2fe', borderColor: 'rgba(14, 165, 233, 0.1)'}"
|
|
|
>
|
|
|
- <el-table-column prop="targetName" label="目标名称"></el-table-column>
|
|
|
- <el-table-column prop="targetType" label="目标类型"></el-table-column>
|
|
|
+ <el-table-column prop="targetName" label="靶标名称"></el-table-column>
|
|
|
+ <el-table-column prop="targetType" label="靶标类型"></el-table-column>
|
|
|
<el-table-column prop="threatLevel" label="威胁等级">
|
|
|
<template slot-scope="scope">
|
|
|
<div class="threat-bars flex gap-1 justify-center">
|
|
|
@@ -422,22 +422,22 @@
|
|
|
</el-aside>
|
|
|
</el-container>
|
|
|
|
|
|
- <!-- 添加目标对话框 -->
|
|
|
+ <!-- 添加靶标对话框 -->
|
|
|
<el-dialog
|
|
|
- title="添加目标"
|
|
|
+ title="添加靶标"
|
|
|
:visible.sync="showTargetDialog"
|
|
|
width="30%"
|
|
|
custom-class="target-dialog"
|
|
|
>
|
|
|
<el-form :model="targetForm" label-width="100px">
|
|
|
- <el-form-item label="目标名称">
|
|
|
- <el-input v-model="targetForm.name" placeholder="请输入目标名称"></el-input>
|
|
|
+ <el-form-item label="靶标名称">
|
|
|
+ <el-input v-model="targetForm.name" placeholder="请输入靶标名称"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="目标类型">
|
|
|
- <el-select v-model="targetForm.type" placeholder="请选择目标类型">
|
|
|
- <el-option label="空中目标" value="空中目标" :disabled="!isAirTargetAllowed"></el-option>
|
|
|
- <el-option label="海上目标" value="海上目标" :disabled="!isSeaTargetAllowed"></el-option>
|
|
|
- <el-option label="地面目标" value="地面目标" :disabled="!isGroundTargetAllowed"></el-option>
|
|
|
+ <el-form-item label="靶标类型">
|
|
|
+ <el-select v-model="targetForm.type" placeholder="请选择靶标类型">
|
|
|
+ <el-option label="空中靶标" value="空中靶标" :disabled="!isAirTargetAllowed"></el-option>
|
|
|
+ <el-option label="海上靶标" value="海上靶标" :disabled="!isSeaTargetAllowed"></el-option>
|
|
|
+ <el-option label="地面靶标" value="地面靶标" :disabled="!isGroundTargetAllowed"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="坐标位置">
|
|
|
@@ -482,12 +482,12 @@ export default {
|
|
|
missileType: 'surface-to-air', // 导弹类型
|
|
|
missileCount: 6, // 导弹数量
|
|
|
executeTime: '2025-10-15 14:30:00',
|
|
|
- description: '本次试验旨在验证红旗-9B防空导弹系统对多批次、多类型空中目标的拦截能力,测试在强电子干扰环境下的作战效能。',
|
|
|
+ description: '本次试验旨在验证红旗-9B防空导弹系统对多批次、多类型空中靶标的拦截能力,测试在强电子干扰环境下的作战效能。',
|
|
|
targets: [
|
|
|
{
|
|
|
id: 1,
|
|
|
name: '高空侦察机',
|
|
|
- type: '空中目标',
|
|
|
+ type: '空中靶标',
|
|
|
coordinates: '东经121°25′,北纬30°15′',
|
|
|
threatLevel: 5,
|
|
|
equipmentId: 'A1'
|
|
|
@@ -495,7 +495,7 @@ export default {
|
|
|
{
|
|
|
id: 2,
|
|
|
name: '巡航导弹模拟靶',
|
|
|
- type: '空中目标',
|
|
|
+ type: '空中靶标',
|
|
|
coordinates: '东经121°30′,北纬30°20′',
|
|
|
threatLevel: 4,
|
|
|
equipmentId: 'A1'
|
|
|
@@ -503,7 +503,7 @@ export default {
|
|
|
{
|
|
|
id: 3,
|
|
|
name: '隐身战机模拟靶',
|
|
|
- type: '空中目标',
|
|
|
+ type: '空中靶标',
|
|
|
coordinates: '东经121°20′,北纬30°25′',
|
|
|
threatLevel: 5,
|
|
|
equipmentId: 'B2'
|
|
|
@@ -884,10 +884,10 @@ export default {
|
|
|
return missileTypeMap[this.taskForm.missileType] || '';
|
|
|
},
|
|
|
canAddMoreTargets() {
|
|
|
- // 控制是否可以添加更多目标
|
|
|
+ // 控制是否可以添加更多靶标
|
|
|
return this.taskForm.missileCount > 0 && this.taskForm.targets.length < this.taskForm.missileCount * 2;
|
|
|
},
|
|
|
- // 根据导弹类型判断允许的目标类型
|
|
|
+ // 根据导弹类型判断允许的靶标类型
|
|
|
isAirTargetAllowed() {
|
|
|
return ['surface-to-air', 'air-to-surface', 'cruise'].includes(this.taskForm.missileType);
|
|
|
},
|
|
|
@@ -914,7 +914,7 @@ export default {
|
|
|
return `${days}天${hours}时${minutes}分后执行`;
|
|
|
},
|
|
|
targetEquipmentMapData() {
|
|
|
- // 构建目标-装备关系数据
|
|
|
+ // 构建靶标-装备关系数据
|
|
|
return this.taskForm.targets.map(target => {
|
|
|
const equipment = this.allEquipment.find(equip => equip.id === target.equipmentId);
|
|
|
return {
|
|
|
@@ -932,9 +932,9 @@ export default {
|
|
|
this.$router.push('/Deduction/stratDeduction')
|
|
|
},
|
|
|
saveTask() {
|
|
|
- // 验证目标设置不能为空
|
|
|
+ // 验证靶标设置不能为空
|
|
|
if (this.taskForm.targets.length === 0) {
|
|
|
- this.$message.error('目标设置不能为空,请添加至少一个目标');
|
|
|
+ this.$message.error('靶标设置不能为空,请添加至少一个靶标');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -979,7 +979,7 @@ export default {
|
|
|
},
|
|
|
confirmAddTarget() {
|
|
|
if (!this.targetForm.name || !this.targetForm.type || !this.targetForm.coordinates) {
|
|
|
- this.$message.warning('请填写完整目标信息');
|
|
|
+ this.$message.warning('请填写完整靶标信息');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -989,20 +989,20 @@ export default {
|
|
|
});
|
|
|
|
|
|
this.showTargetDialog = false;
|
|
|
- this.$message.success('目标添加成功');
|
|
|
+ this.$message.success('靶标添加成功');
|
|
|
},
|
|
|
editTarget(target) {
|
|
|
this.targetForm = { ...target };
|
|
|
this.showTargetDialog = true;
|
|
|
},
|
|
|
removeTarget(target) {
|
|
|
- this.$confirm(`确定要删除目标"${target.name}"吗?`, '提示', {
|
|
|
+ this.$confirm(`确定要删除靶标"${target.name}"吗?`, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
this.taskForm.targets = this.taskForm.targets.filter(t => t.id !== target.id);
|
|
|
- this.$message.success('目标已删除');
|
|
|
+ this.$message.success('靶标已删除');
|
|
|
}).catch(() => {
|
|
|
// 取消删除
|
|
|
});
|
|
|
@@ -1096,33 +1096,33 @@ export default {
|
|
|
|
|
|
updateNode(this.equipmentTree);
|
|
|
},
|
|
|
- // 更新目标关联的装备
|
|
|
+ // 更新靶标关联的装备
|
|
|
updateTargetEquipment(targetId, equipmentId) {
|
|
|
const target = this.taskForm.targets.find(t => t.id === targetId);
|
|
|
if (target) {
|
|
|
target.equipmentId = equipmentId;
|
|
|
}
|
|
|
},
|
|
|
- // 根据导弹类型更新目标设置
|
|
|
+ // 根据导弹类型更新靶标设置
|
|
|
updateTargetsByMissileType() {
|
|
|
- // 根据选择的导弹类型过滤不兼容的目标
|
|
|
+ // 根据选择的导弹类型过滤不兼容的靶标
|
|
|
if (!this.taskForm.missileType) return;
|
|
|
|
|
|
const compatibleTypes = [];
|
|
|
- if (this.isAirTargetAllowed) compatibleTypes.push('空中目标');
|
|
|
- if (this.isSeaTargetAllowed) compatibleTypes.push('海上目标');
|
|
|
- if (this.isGroundTargetAllowed) compatibleTypes.push('地面目标');
|
|
|
+ if (this.isAirTargetAllowed) compatibleTypes.push('空中靶标');
|
|
|
+ if (this.isSeaTargetAllowed) compatibleTypes.push('海上靶标');
|
|
|
+ if (this.isGroundTargetAllowed) compatibleTypes.push('地面靶标');
|
|
|
|
|
|
- // 过滤不兼容的目标
|
|
|
+ // 过滤不兼容的靶标
|
|
|
this.taskForm.targets = this.taskForm.targets.filter(target =>
|
|
|
compatibleTypes.includes(target.type)
|
|
|
);
|
|
|
|
|
|
- // 如果没有目标,自动创建一个兼容的目标
|
|
|
+ // 如果没有靶标,自动创建一个兼容的靶标
|
|
|
if (this.taskForm.targets.length === 0) {
|
|
|
this.taskForm.targets.push({
|
|
|
id: Date.now(),
|
|
|
- name: `目标${compatibleTypes[0]}`,
|
|
|
+ name: `靶标${compatibleTypes[0]}`,
|
|
|
type: compatibleTypes[0],
|
|
|
coordinates: '东经120°00′,北纬30°00′',
|
|
|
threatLevel: 3,
|
|
|
@@ -1130,9 +1130,9 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
- // 根据导弹数量更新目标设置
|
|
|
+ // 根据导弹数量更新靶标设置
|
|
|
updateTargetsByMissileCount() {
|
|
|
- // 如果靶标数量超过导弹数量的2倍,删除多余的目标
|
|
|
+ // 如果靶标数量超过导弹数量的2倍,删除多余的靶标
|
|
|
const maxTargets = this.taskForm.missileCount * 2;
|
|
|
if (this.taskForm.targets.length > maxTargets) {
|
|
|
this.taskForm.targets = this.taskForm.targets.slice(0, maxTargets);
|
|
|
@@ -1195,7 +1195,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
- // 监听导弹类型变化,更新目标设置
|
|
|
+ // 监听导弹类型变化,更新靶标设置
|
|
|
'taskForm.missileType': function() {
|
|
|
this.updateTargetsByMissileType();
|
|
|
}
|
|
|
@@ -1633,7 +1633,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/* 目标项样式:军事风格清晰 */
|
|
|
+/* 靶标项样式:军事风格清晰 */
|
|
|
.target-item {
|
|
|
background-color: rgba(15, 23, 42, 0.6);
|
|
|
border: 1px solid rgba(14, 165, 233, 0.2);
|
|
|
@@ -1709,7 +1709,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/* 目标-装备分配关系表格样式 */
|
|
|
+/* 靶标-装备分配关系表格样式 */
|
|
|
::v-deep .el-table {
|
|
|
background-color: transparent;
|
|
|
color: #e0f2fe;
|