LSSE-front/src/views/simulationScene/database/modules/infoData.vue
2025-09-16 20:10:56 +08:00

1016 lines
46 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<a-modal
:visible="visible"
:mask-closable="false"
:title="modalTitle"
:width="1308"
:footer="null"
destroyOnClose
@cancel="closeTheModal">
<a-row :gutter="8" style="height: 780px;">
<a-col :span="8" id="col1" style="overflow-y: auto;height: 100%;">
<a-card title="总体数据" :bodyStyle="{padding:'8px'}">
<a-table :columns="populationColumn" :dataSource="populationList" :pagination="false" :scroll="{x:true}" bordered>
<template slot="serial" slot-scope="text, record, index0">
{{ index0 + 1 }}
</template>
<template slot="valuetype" slot-scope="text, record, index0">
<!-- 公共ID展示 -->
<template v-if="record.translate == '#DBID'">
{{ record.value }}
</template>
<template v-if="record.translate == '仿真模型'">
<a-button type="link" @click="dataModelVisible = true">编辑</a-button>
</template>
<!-- 三维立体模型 -->
<template v-if="record.translate == '三维模型'">
<template v-if="opType == 1">
<input
name="upive"
id="upload_ive"
type="file"
data-options="buttonText:'选择',prompt:'请选择文件...'"
@change="uploadIVE">
</template>
<template v-if="opType == 2">
<input
name="upive"
id="upload_ive"
type="file"
data-options="buttonText:'选择',prompt:'请选择文件...'"
@change="uploadIVE">
</template>
<template v-if="opType == 3">
<input
name="upive"
id="upload_ive"
type="file"
data-options="buttonText:'选择',prompt:'请选择文件...'"
@change="uploadIVE">
</template>
<template v-if="opType == 4">
</template>
</template>
<!-- 判断展示类型为:详情 -->
<template v-if="opType == 4">
{{ record.value }}
<!-- <template v-if="text == 'combobox'">
<template v-if="record.fieldname == 'Type'">
{{ record.value }}
</template>
<template v-if="record.fieldname == 'Category'">
{{ record.value }}
</template>
</template>
<template v-else-if="text == 'combotree'">
<span v-for="(item1,index1) in treeData" :key="index1">
<span v-if="item1.key == record.value">
{{ item1.title }}
</span>
<span v-for="(item2,index2) in item1.children" :key="index2">
<span v-if="item2.key == record.value">
{{ item2.title }}
</span>
<span v-for="(item3,index3) in item2.children" :key="index3">
<span v-if="item3.key == record.value">
{{ item3.title }}
</span>
</span>
</span>
</span>
</template>
<template v-else-if="text == 'checkbox'">
<span v-if="record.value == 1">是</span>
<span v-if="record.value == 0">否</span>
</template>
<template v-else>
<template v-if="record.translate != '#DBID'">
{{ record.value }}
</template>
</template> -->
</template>
<!-- 判断展示类型为:除 详情 以外的其它类型 -->
<template v-else>
<template v-if="text == 'text'">
<a-input size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'passwordbox'">
<a-input type="password" size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'combobox'">
<a-select
size="small"
style="width: 187px !important;"
showSearch
option-filter-prop="children"
:filter-option="filterOption"
v-model="record.value">
<template v-if="record.translate.indexOf('国') != -1">
<a-select-option v-for="(item,index) in dicData.operatorcountry" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('军种') != -1">
<a-select-option v-for="(item,index) in dicData.operatorservice" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('属性') != -1">
<a-select-option v-for="(item,index) in dicData.aircraftcode" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('有效目标') != -1">
<a-select-option v-for="(item,index) in dicData.dicweapontarget" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('燃油数据') != -1">
<a-select-option v-for="(item,index) in dicData.fuel" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('物理尺寸级别') != -1">
<a-select-option v-for="(item,index) in dicData.aircraftfacilityphysicalsize" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('航空保障类型') != -1">
<a-select-option v-for="(item,index) in dicData.aircraftfacilitytype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('装甲') != -1">
<a-select-option v-for="(item,index) in dicData.armortype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('跑道长度') != -1">
<a-select-option v-for="(item,index) in dicData.aircraftrunwaylength" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate.indexOf('驾驶员视线等级') != -1">
<a-select-option v-for="(item,index) in dicData.aircraftcockpitvisibility" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<!-- 飞机 -->
<template v-if="entityType == 'Aircraft'">
<template v-if="record.translate == '类别'">
<a-select-option v-for="(item,index) in dicData.aircraftcategory" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '类型'">
<a-select-option v-for="(item,index) in dicData.aircrafttype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</template>
<!-- 水面潜艇 -->
<template v-if="entityType == 'Ship'">
<template v-if="record.translate == '类别'">
<a-select-option v-for="(item,index) in dicData.shipcategory" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '类型'">
<a-select-option v-for="(item,index) in dicData.shiptype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '停靠设施级别'">
<a-select-option v-for="(item,index) in dicData.dicshipphysicalsize" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '货物_类型'">
<a-select-option v-for="(item,index) in dicData.dicshipcargorytype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</template>
<!-- 潜艇 -->
<template v-if="entityType == 'Submarine'">
<template v-if="record.translate == '类别'">
<a-select-option v-for="(item,index) in dicData.dicsubmarinecategory" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '类型'">
<a-select-option v-for="(item,index) in dicData.dicsubmarinetype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '停靠设施级别'">
<a-select-option v-for="(item,index) in dicData.dicsubmarinephysicalsize" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</template>
<!-- 地面兵力与设施 -->
<template v-if="entityType == 'Facility'">
<template v-if="record.translate == '类别'">
<a-select-option v-for="(item,index) in dicData.dicfacilitycategory" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '类型'">
<a-select-option v-for="(item,index) in dicData.diccargorytype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</template>
<!-- 卫星 -->
<template v-if="entityType == 'Satellite'">
<template v-if="record.translate == '类别'">
<a-select-option v-for="(item,index) in dicData.satellitecategory" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '类型'">
<a-select-option v-for="(item,index) in dicData.satellitetype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</template>
<!-- 武器 -->
<template v-if="entityType == 'Weapon'">
<template v-if="record.translate == '类型'">
<a-select-option v-for="(item,index) in dicData.weapontype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '生产年代'">
<a-select-option v-for="(item,index) in dicData.weapongeneration" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
<template v-if="record.translate == '货物_类型'">
<a-select-option v-for="(item,index) in dicData.dicshipcargorytype" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</template>
</a-select>
</template>
<template v-if="text == 'combostr'">
<!-- 只有武器下的所属国家用到了这个 -->
<a-select
size="small"
mode="multiple"
style="width: 187px !important;"
showSearch
option-filter-prop="children"
:filter-option="filterOption"
@focus="getTableRowIndex(index0)"
v-model="record.value">
<template v-if="record.translate.indexOf('国') != -1">
<a-select-option v-for="(item,index) in dicData.operatorcountry" :key="index" :value="item.id.toString()" :title="item.description">{{ item.description }}</a-select-option>
</template>
</a-select>
</template>
<template v-if="text == 'combotree'">
<a-tree-select
v-model="record.value"
size="small"
style="width: 187px !important;"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto', width: '187px' }"
:tree-data="treeData"
tree-default-expand-all
>
</a-tree-select>
</template>
<template v-if="text == 'int'">
<a-input-number :default-value="1" size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'double'">
<a-input-number :default-value="1" :precision="10" size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'datebox'">
<a-date-picker @change="handleDateBoxChange" @focus="getTableRowIndex(index0)" size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'datetime' || text == 'datetimespinner'">
<a-date-picker
show-time
@change="handleDateBoxChange"
@focus="getTableRowIndex(index0)"
size="small"
style="width: 187px !important;"
v-model="record.value" />
</template>
<template v-if="text == 'calendar'">
<a-calendar :fullscreen="false" @panelChange="handleCalendarPanelChange" size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'timespinner'">
<a-time-picker
use24-hours
@change="handleTimeBoxChange"
@focus="getTableRowIndex(index0)"
size="small"
style="width: 187px !important;"
v-model="record.value" />
</template>
<template v-if="text == 'textarea'">
<a-textarea size="small" style="width: 187px !important;" v-model="record.value" />
</template>
<template v-if="text == 'checkbox'">
<a-checkbox
@change="handleCheckBoxChange"
@focus="getTableRowIndex(index0)"
v-model="record.value"
:defaultChecked="record.value == 1"
></a-checkbox>
</template>
<template v-if="text == 'texticon'">
<a-input size="small" style="width: 187px !important;" v-model="record.value" />
</template>
</template>
</template>
</a-table>
</a-card>
</a-col>
<a-col :span="16" id="col2" style="overflow-y: auto;height: 100%;">
<a-card title="相关图例" style="margin-bottom: 10px;">
<a-tabs default-active-key="1" @change="handleChangeTabPane1">
<a-tab-pane tab="图片" key="1">
<a-spin :spinning="spinningBase64">
<template v-if="opType == 1">
<!-- 上传 + 暂无图片 -->
<input
accept="image/*"
name="upimage"
id="upload_file"
type="file"
data-options="buttonText:'选择',prompt:'请选择文件...'"
@change="gen_base64" />
<br/>
<img src="/images/6.png" alt="" mode="widthFix" style="width: 80%;" v-if="!modelImgSrc" />
<img
:src="'data:image/jpeg;base64,' + modelImgSrc"
alt=""
mode="widthFix"
onerror="javascript:this.src='/images/6.png';"
style="width: 80%;"
v-else />
</template>
<template v-if="opType == 2">
<!-- 上传 + 老图片 -->
<input
accept="image/*"
name="upimage"
id="upload_file"
type="file"
data-options="buttonText:'选择',prompt:'请选择文件...'"
@change="gen_base64" />
<br/>
<img :src="'data:image/jpeg;base64,' + modelImgSrc" alt="" mode="widthFix" onerror="javascript:this.src='/images/6.png';" style="width: 80%;" />
</template>
<template v-if="opType == 3">
<!-- 上传 + 老图片 -->
<input
accept="image/*"
name="upimage"
id="upload_file"
type="file"
data-options="buttonText:'选择',prompt:'请选择文件...'"
@change="gen_base64" />
<br/>
<img :src="'data:image/jpeg;base64,' + modelImgSrc" alt="" mode="widthFix" onerror="javascript:this.src='/images/6.png';" style="width: 80%;" />
</template>
<template v-if="opType == 4">
<!-- 老图片 -->
<img :src="'data:image/jpeg;base64,' + modelImgSrc" alt="" mode="widthFix" onerror="javascript:this.src='/images/6.png';" style="width: 80%;" />
</template>
</a-spin>
</a-tab-pane>
<a-tab-pane tab="仿真模型图标" key="2">
<img
:src="dataModel[0].DataModelIcon"
alt=""
mode="widthFix"
onerror="javascript:this.src='/images/6.png';"
style="width: 80%;"
v-if="dataModel.length > 0 && dataModel[0].DataModelIcon" />
</a-tab-pane>
</a-tabs>
</a-card>
<a-card title="装备配件">
<a-tabs>
<a-tab-pane tab="装配组件" key="1">
<a-tabs default-active-key="1" @change="handleChangeTabPane2">
<a-tab-pane :tab="item.translate" v-for="(item,index) in equiAccessList" :key="index">
<div class="table-operator" v-if="opType != 4">
<a-button icon="plus" style="margin-right: 10px;" @click="addComponentDlg(item)">添加</a-button>
</div>
<template v-if="opType == 4">
<a-table
:columns="equiAccessTabsDataUse.cloumns"
:dataSource="equiAccessTabsDataUse.data"
:pagination="false"
:scroll="{x:true}"
:customRow="rowDetailInfoData"
bordered>
<template slot="frequency" slot-scope="text">
<span v-for="(item1,index1) in dicData.aircraftcode" :key="index1">
<span v-if="item1.id == text">
{{ item1.description }}
</span>
</span>
</template>
</a-table>
</template>
<template v-else>
<a-table
:columns="equiAccessTabsDataUse.cloumns && equiAccessTabsDataUse.cloumns.length> 0 ? [...equiAccessTabsDataUse.cloumns, {title:'操作', width: 120, align:'center', fixed: 'right',scopedSlots:{customRender:'action'}}]:[]"
:dataSource="equiAccessTabsDataUse.data"
:pagination="false"
:scroll="{x:true}"
:rowKey="record=>record.id"
:customRow="rowDetailInfoData"
bordered>
<template slot="frequency" slot-scope="text">
<span v-for="(item1,index1) in dicData.aircraftcode" :key="index1">
<span v-if="item1.id == text">
{{ item1.description }}
</span>
</span>
</template>
<template slot="action" slot-scope="text,record">
<a-popconfirm placement="top" title="是否确认删除" @confirm.stop="removeComponentInfo(item, record)">
<a-button type="link" size="small" @click.stop="()=>{}" >删除</a-button>
</a-popconfirm>
</template>
</a-table>
</template>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
<a-tab-pane tab="扩展属性" key="2" v-if="entityType == 'Weapon' || entityType == 'Comm'">
<template v-if="entityType == 'Weapon'">
</template>
<template v-if="entityType == 'Comm'">
</template>
</a-tab-pane>
</a-tabs>
</a-card>
</a-col>
</a-row>
<div style="display: flex;justify-content: flex-end;align-items: center;margin-top: 30px;">
<template v-if="opType == 4">
<a-button @click="closeTheModal">关闭</a-button>
</template>
<template v-else>
<a-button style="margin-right: 10px;" @click="closeTheModal">取消</a-button>
<a-button type="primary" @click="handleSubmit">保存</a-button>
</template>
</div>
<ComponentDlg
:visible="componentDlgObj.visible"
:modalTitle="componentDlgObj.title"
:entityType="entityType"
:entityId="entityId"
:parentId="parentId"
:dicData="dicData"
:componentType="componentDlgObj.componentType"
:componentTypeName="componentDlgObj.componentTypeName"
@closeTheModal="clsComponentDlg" />
<DetailComponentDlg
:visible="detailComponmObj.visible"
:entityType="detailComponmObj.entityType"
:guid="detailComponmObj.guid"
:id="detailComponmObj.id"
@closeModal="closeDetailComponmDlg"
/>
<ComponentDlg
:visible="dataModelVisible"
modalTitle="3D仿真模型"
:entityType="entityType"
:entityId="parentTableRowId"
:parentId="parentId"
:dicData="dicData"
componentType="AircraftDataModel"
componentTypeName="3D仿真模型"
@closeTheModal="handleCloseDataModel" />
</a-modal>
</template>
<script>
import {
deleteAction,
getAction,
postAction,
postAction1
} from '@/api/manage'
import { componentEditlistData } from './componentEditlistData.js'
import ComponentDlg from './componentDlg.vue'
import DetailComponentDlg from './detailComponentDlg.vue'
export default {
name: 'InfoDataModal',
data() {
return {
newId: '',
populationList: [],
populationColumn: [
{
title: '',
scopedSlots: {
customRender: 'serial'
}
},
{
title: '参数',
key: 'translate',
dataIndex: 'translate',
scopedSlots: {
customRender: 'translate'
}
},
{
title: '类型',
key: 'valuetype',
dataIndex: 'valuetype',
scopedSlots: {
customRender: 'valuetype'
}
}
],
populationTableRowIndex: '',
equiAccessList: [],
treeData: [],
Guid: '',
equiAccessTabsData: [],
activeKey: 0,
equiAccessTabsDataUse: {},
selectedRowKeys: [],
componentDlgObj: {
visible: false,
title: '',
componentType: '',
componentTypeName: ''
},
modelImgSrc: '',
spinningBase64: false,
detailComponmObj: {},
rowDetailInfoData: record => ({
on: {
click: () => {
const arr1 = []
arr1.push(record.id)
this.selectedRowKeys = arr1
this.detailComponmFunc(record)
}
}
}),
dataModel:[],
dataModelVisible:false,
// 删除按钮guid参数
editGuid: null
}
},
props:{
visible: {
type: Boolean,
default: false
},
modalTitle: {
type: String,
default: ''
},
entityType: {
type: String,
default: ''
},
parentId: {
type: Number,
default: 0
},
parentTableRowId: {
type: Number,
default: 0
},
dicData: {
type: Object,
default: () => {}
},
opType: {
type: Number,
default: 0,//1新增 2复制 3编辑 4详情
},
},
components: {
ComponentDlg,
DetailComponentDlg
},
computed: {
entityId () {
var id = ''
if (this.opType == 1 || this.opType == 2) {
id = this.newId
} else if (this.opType == 3) {
id = this.parentTableRowId
}
return id
}
},
watch:{
visible(val) {
if(val) {
console.log(this.entityType,'this.entityType')
this.getTreeNode()
this.getpopulationList()
this.getTableList()
if(this.opType == 2 || this.opType == 3 || this.opType == 4) {
// this.getImgData()
}
}
}
},
methods:{
getTreeNode() {
getAction('/basedata/entity/getTreeNode?parentId=' + this.parentId, {}).then((res) => {
this.treeData = res.data
})
},
getImgData() {
const entityType1 = this.entityType.toLowerCase()
this.spinningBase64 = true
getAction('/basedata/'+ entityType1 + '/getimglist?Id=' + this.parentTableRowId,{}).then((res) => {
this.spinningBase64 = false
if (res.data.image) {
this.modelImgSrc = res.data.image
}
})
},
getpopulationList() {
getAction('/dbdata/aircraft/getInfoList',{
tableName: 'Data' + this.entityType
}).then((res) => {
if(this.opType == 1) {
// 新增
const entityType1 = this.entityType.toLowerCase()
getAction('/basedata/'+entityType1+'/getNewId',{}).then((res2) => {
this.newId = res2.data
for(const i in res.data) {
if(this.entityType == 'Weapon') {
if(res.data[i].fieldname == 'OperatorCountry') {
res.data[i].value = [] // 此法去除国家控件框中默认的一个空标签
}
}
if(res.data[i].translate == '#DBID') {
res.data[i].value = res2.data //为了提交时统一取值
}
if (res.data[i].valuetype == 'combotree' && res.data[i].translate.indexOf('类') != -1) {
res.data[i].value = this.parentId // 将父组件里第一步选择的模型分类,在添加时自动带入进来
}
}
this.populationList = res.data
console.log(this.populationList,'this.populationList')
})
} else if(this.opType == 2) {
// 复制
const entityType1 = this.entityType.toLowerCase()
getAction('/basedata/'+entityType1+'/getInfo?id='+this.parentTableRowId,{ doFlag: true }).then((res2) => {
getAction('/basedata/'+entityType1+'/getNewId',{}).then((res3) => {
this.newId = res3.data
for(const i in res.data) {
for(const j in res2.data) {
if(j == res.data[i].fieldname) {
console.log(res.data[i],'res.data[i]')
res.data[i].value = res2.data[j]
}
if(res.data[i].translate == '#DBID') {
res.data[i].value = res3.data //为了提交时统一取值
}
}
}
this.populationList = res.data
})
})
} else if(this.opType == 3) {
// 编辑
// 回显数据
const entityType1 = this.entityType.toLowerCase()
getAction('/basedata/'+entityType1+'/getInfo?id='+this.parentTableRowId,{ doFlag: true }).then((res2) => {
for(const i in res.data) {
for(const j in res2.data) {
if(j == res.data[i].fieldname) {
console.log(res.data[i],'res.data[i]')
res.data[i].value = res2.data[j]
}
}
}
console.log(res.data)
this.populationList = res.data
})
} else if(this.opType == 4) {
// 详情
// 回显数据
const entityType1 = this.entityType.toLowerCase()
getAction('/basedata/'+entityType1+'/getInfo?id='+this.parentTableRowId,{}).then((res2) => {
for(const i in res.data) {
for(const j in res2.data) {
if(j == res.data[i].fieldname) {
console.log(res.data[i],'res.data[i]3399')
res.data[i].value = res2.data[j]
}
}
}
this.populationList = res.data
console.log(this.populationList, '详情')
})
}
})
},
getTableRowIndex(index) {
this.populationTableRowIndex = index
},
handleDateBoxChange(val,dateStr) {
for(const i in this.populationList) {
if(i == this.populationTableRowIndex) {
this.populationList[i].value = dateStr
}
}
},
handleTimeBoxChange(val,timeStr) {
for(const i in this.populationList) {
if(i == this.populationTableRowIndex) {
this.populationList[i].value = timeStr
}
}
},
handleCheckBoxChange(e) {
console.log(e.target.checked)
for(const i in this.populationList) {
if(i == this.populationTableRowIndex) {
if(e.target.checked) {
this.populationList[i].value = 1
} else {
this.populationList[i].value = 0
}
}
}
},
getTableList() {
getAction('/dbdata/aircraft/getTableList',{
entityType: this.entityType
}).then((res) => {
this.equiAccessList = res.data
if(this.opType == 1 || this.opType == 2 || this.opType == 3) {
this.equiAccessTabsDataUse.type = res.data[0].id
this.equiAccessTabsDataUse.typeName = res.data[0].translate
}
if(this.opType == 3 || this.opType == 4) {
const entityType1 = this.entityType.toLowerCase()
getAction('/basedata/'+entityType1+'/getInfo?id='+this.parentTableRowId,{}).then((res1) => {
if(res1.data.Guid) {
this.editGuid = res1.data.Guid
}
for(const i in res.data) {
for(const j in res1.data) {
if(j == 'Guid') {
this.Guid = res1.data[j]
this.accordingEquiAccessItemGetData(res.data[i].id,res.data[i].translate,res1.data[j])
}
}
}
getAction('basedata/aircraft/getaircraftdatamodellist',{guid: res1.data.Guid}).then(modelRes=> {
this.dataModel = modelRes.data
})
})
}
})
},
accordingEquiAccessItemGetData(id,typeName,Guid) {
const id1 = id.toLowerCase()
const request_Url_last_str = id1 + 'list' // 这个值就是到时候列表存的值
const request_Url_last_str1 = 'get' + request_Url_last_str
const request_Url_center_str = this.entityType.toLowerCase()
const request_Url = '/basedata/' + request_Url_center_str + '/' + request_Url_last_str1
let columns = []
console.log('走走',id)
for(const i in componentEditlistData) {
if(componentEditlistData[i].type == id) {
columns = componentEditlistData[i].cols
}
}
getAction(request_Url,{
guid: Guid
}).then((res) => {
if(res.code == 200) {
this.equiAccessTabsData.push({
type: id,
typeName: typeName,
cloumns: columns,
data: res.data
})
// this.equiAccessTabsData[request_Url_last_str] = res.data
console.log(this.equiAccessTabsData,'this.equiAccessTabsData')
for(const i in this.equiAccessList) {
if(i == this.activeKey) {
for(const j in this.equiAccessTabsData) {
if(this.equiAccessList[i].id == this.equiAccessTabsData[j].type) {
this.equiAccessTabsDataUse = this.equiAccessTabsData[j]
}
}
}
}
}
})
},
filterOption(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
)
},
handleChangeTabs(key) {
console.log(key)
},
addComponentDlg(item) {
console.log(item,333)
const type = item.id
this.componentDlgObj.visible = true
console.log(this.equiAccessTabsDataUse, 'this.equiAccessTabsDataUse')
if (this.equiAccessTabsDataUse.typeName == '杀伤性能') {
this.componentDlgObj.title = '添加' + '火力强度'
} else {
this.componentDlgObj.title = '添加' + this.equiAccessTabsDataUse.typeName
}
this.componentDlgObj.componentType = item.id
this.componentDlgObj.componentTypeName = item.translate
},
detailComponmFunc (item) {
let entityType1 = ''
if (this.equiAccessTabsDataUse.type) {
entityType1 = this.equiAccessTabsDataUse.type.substr(this.entityType.length).substr(0,this.equiAccessTabsDataUse.type.substr(this.entityType.length).length - 1)
}
console.log(entityType1,'entityType1')
console.log(item, 'item888')
this.detailComponmObj = {
entityType: entityType1,
guid: item.guid,
id: item.id,
visible: true
}
},
closeDetailComponmDlg () {
this.detailComponmObj = {
entityType: '',
guid: '',
id: '',
visible: false
}
this.getTableList()
},
removeComponentInfo(item, data) {
const type = item.id.substr(this.entityType.length).toLowerCase()
const entityType = this.entityType.toLowerCase()
const request_Url = `/basedata/${entityType}/remove${type}`
let dataKey = ''
switch (item.id) {
case this.entityType + 'Codes':
case this.entityType + 'Targets':
dataKey = 'cid'
break
case this.entityType + 'Signatures':
dataKey = 'typeId'
break
default:
dataKey= 'guid'
break
}
const params = {
guid: this.editGuid,
[dataKey === 'guid' ? 'ComponentGuid' : dataKey]: data[dataKey]
}
deleteAction(request_Url, params).then((res) => {
if(res.data) {
this.vueMessage('success','删除成功')
this.getTableList()
} else {
this.vueMessage('error', res.message)
}
})
},
handleCloseDataModel() {
this.dataModelVisible =false
this.getTableList()
},
clsComponentDlg() {
this.componentDlgObj.visible = false
this.componentDlgObj.title = ''
this.componentDlgObj.componentType = ''
this.componentDlgObj.componentTypeName = ''
this.getTableList()
},
onSelectChangeTableCheck(selectedRowKeys) {
const arr1 = []
arr1.push(selectedRowKeys[selectedRowKeys.length - 1])
this.selectedRowKeys = arr1
// 注此处表格为单选操作故不可将selectedRowKeys的值直接赋给this.selectedRowKeys
},
gen_base64 (e) {
var that = this
function images2Base64(img) {
console.log(img,'imgh')
var reader = new FileReader()
if (img) {
if (img.type == 'image/jpeg') {
reader.readAsDataURL(img)
reader.onload = function () {
var base = reader.result
var base64 = base.substr(23)
that.modelImgSrc = base64
console.log(that.modelImgSrc, 'that.modelImgSrc')
const entityType1 = that.entityType.toLowerCase()
var id1
if (that.opType == 1 || that.opType == 2) {
id1 = that.newId
} else if (that.opType == 3) {
id1 = that.parentTableRowId
}
const params = {
id: id1,
image: base64
}
const fileFormData = new FormData()
fileFormData.append('file', document.getElementById('upload_file').files[0])
postAction('/basedata/'+ entityType1 +'/addimg?id=' + params.id, fileFormData).then((res) => {
console.log(res,'333')
})
}
} else {
that.$message.warning('图片只支持上传jpg格式')
}
}
}
images2Base64(document.getElementById('upload_file').files[0],'998877')
},
uploadIVE (e) {
console.log(document.getElementById('upload_ive').files[0], 'file555')
},
handleSubmit() {
// 'OperatorCountry'.slice(0,2).toLowerCase() + 'OperatorCountry'.slice(2)
const param = {}
for(const i in this.populationList) {
if (this.populationList[i].Id) {
this.populationList[i].ID = this.populationList[i].Id
}
if(this.entityType == 'Weapon') {
if(this.populationList[i].fieldname == 'OperatorCountry') {
this.populationList[i].value = this.populationList[i].value.toString()
}
}
if(this.populationList[i].fieldname) {
// const key1 = this.populationList[i].fieldname.slice(0,2).toLowerCase() + this.populationList[i].fieldname.slice(2)
const key1 = this.populationList[i].fieldname
param[key1] = this.populationList[i].value
}
}
const entityType1 = this.entityType.toLowerCase()
let request_Url = null
// if(this.opType == 1 || this.opType == 2) {
// request_Url = '/basedata/' + entityType1 + '/add'
// } else if (this.opType == 3) {
// request_Url = '/basedata/' + entityType1 + '/edit'
// }
request_Url = '/basedata/' + entityType1 + '/add'
// const param_str = JSON.stringify(param)
postAction(request_Url, {
...param
}).then((res) => {
for(const i in this.populationList) {
if(this.entityType == 'Weapon') {
if(this.populationList[i].fieldname == 'OperatorCountry') {
if(this.populationList[i].value && typeof(this.populationList[i].value) == 'string') {
this.populationList[i].value = this.populationList[i].value.split(',')
}
}
}
}
if(res.code == 200) {
this.vueMessage('success','保存成功')
this.closeTheModal()
} else {
this.vueMessage('error', res.message)
}
})
},
closeTheModal() {
if(this.opType == 1 || this.opType == 2) {
const entityType1 = this.entityType.toLowerCase()
deleteAction('/basedata/'+ entityType1 +'/removealllist?id=' + this.newId + '&typeName='+entityType1, {}).then((res) => {
})
}
this.$emit('closeModal')
this.equiAccessTabsDataUse = {}
this.equiAccessTabsData = []
this.modelImgSrc = ''
},
vueMessage(type,msgText) {
this.$message[type](msgText)
},
handleChangeTabPane1(index) {
},
handleChangeTabPane2(index) {
this.activeKey = index
this.equiAccessTabsDataUse = {}
if(this.opType == 1 || this.opType == 2 || this.opType == 3) {
for(const i in this.equiAccessList) {
if(i == index) {
this.equiAccessTabsDataUse.type = this.equiAccessList[i].id
this.equiAccessTabsDataUse.typeName = this.equiAccessList[i].translate
for(const j in componentEditlistData) {
if(componentEditlistData[j].type == this.equiAccessTabsDataUse.type) {
this.equiAccessTabsDataUse.columns = componentEditlistData[j].cols
console.log(this.equiAccessTabsDataUse,8888)
}
}
}
}
}
for(const i in this.equiAccessList) {
if(i == this.activeKey) {
console.log(1111)
for(const j in this.equiAccessTabsData) {
if(this.equiAccessList[i].id == this.equiAccessTabsData[j].type) {
console.log(2222)
// console.log(this.equiAccessTabsData[j])
this.equiAccessTabsDataUse = this.equiAccessTabsData[j]
console.log(this.equiAccessTabsDataUse,'this.equiAccessTabsDataUse')
}
}
}
}
}
}
}
</script>
<style scoped>
#col1::-webkit-scrollbar {
width: 2px;
}
#col2::-webkit-scrollbar {
width: 2px;
}
</style>