数据模型库页面初始化完成

This commit is contained in:
zhulongchuan 2025-09-17 19:57:46 +08:00
parent 28f61222d4
commit 97d5e68152
6 changed files with 1702 additions and 713 deletions

View File

@ -27,7 +27,7 @@
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.28.1",
"clipboard": "2.0.8",
"core-js": "3.37.1",
"core-js": "^3.37.1",
"echarts": "5.4.0",
"element-ui": "2.15.14",
"file-saver": "2.0.5",
@ -36,6 +36,7 @@
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"minimatch": "^10.0.3",
"nprogress": "0.2.0",
"quill": "2.0.2",
"screenfull": "5.0.2",
@ -55,7 +56,7 @@
"chalk": "4.1.0",
"compression-webpack-plugin": "6.1.2",
"connect": "3.6.6",
"sass": "1.32.13",
"sass": "^1.92.1",
"sass-loader": "10.1.1",
"script-ext-html-webpack-plugin": "2.1.5",
"svg-sprite-loader": "5.1.1",

View File

@ -10,7 +10,7 @@ export function list(query) {
// 查询设备型号列表
export function listEqumodel(query) {
return request({
url: '/uav/metasploitable/list',
url: '/metasploitable/list',
method: 'get',
params: query
})
@ -23,7 +23,7 @@ export function listEqumodel(query) {
*/
export function infoByUavTypeName(query) {
return request({
url: '/uav/equmodel/infoByUavTypeName',
url: '/equmodel/infoByUavTypeName',
method: 'get',
params: query
})
@ -33,7 +33,7 @@ export function infoByUavTypeName(query) {
// 查询设备型号详细
export function getEqumodel(id) {
return request({
url: '/uav/metasploitable/' + id,
url: '/metasploitable/' + id,
method: 'get'
})
}
@ -41,7 +41,7 @@ export function getEqumodel(id) {
// 新增设备型号
export function addEqumodel(data) {
return request({
url: '/uav/metasploitable',
url: '/metasploitable',
method: 'post',
data: data
})
@ -50,7 +50,7 @@ export function addEqumodel(data) {
// 修改设备型号
export function updateEqumodel(data) {
return request({
url: '/uav/metasploitable',
url: '/metasploitable',
method: 'put',
data: data
})
@ -59,7 +59,7 @@ export function updateEqumodel(data) {
// 删除设备型号
export function delEqumodel(id) {
return request({
url: '/uav/metasploitable/' + id,
url: '/metasploitable/' + id,
method: 'delete'
})
}
@ -67,7 +67,7 @@ export function delEqumodel(id) {
// 获取类别
export function queryEquType() {
return request({
url: '/uav/metasploitable/queryEquType',
url: '/metasploitable/queryEquType',
method: 'get'
})
}
@ -77,7 +77,7 @@ export function queryEquType() {
// 修改设备参数
// export function updateEqumodelParam(data) {
// return request({
// url: '/uav/equmodel/updateEqumodelParam',
// url: '/equmodel/updateEqumodelParam',
// method: 'post',
// data: data
// })
@ -86,7 +86,7 @@ export function queryEquType() {
//根据类型查询默认配置
export function getEqumodelDefine(typeId) {
return request({
url: '/uav/metasploitable/getEqumodelDefine/'+ typeId,
url: '/metasploitable/getEqumodelDefine/'+ typeId,
method: 'get'
})
}
@ -94,7 +94,7 @@ export function getEqumodelDefine(typeId) {
export function getEqumodelParam(query) {
return request({
url: '/uav/metasploitable/getEqumodelParam',
url: '/metasploitable/getEqumodelParam',
method: 'post',
data:query
})
@ -104,7 +104,7 @@ export function getEqumodelParam(query) {
export function checkModelCode(modelCode) {
return request({
url: '/uav/metasploitable/checkModelCode/'+ modelCode,
url: '/metasploitable/checkModelCode/'+ modelCode,
method: 'get'
})
}
@ -112,7 +112,7 @@ export function checkModelCode(modelCode) {
// 设备型号导入
export function API_POST_importExcel (data) {
return request({
url: '/uav/metasploitable/importData',
url: '/metasploitable/importData',
method: 'post',
data: data
})

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询字典类型列表
export function listType(query) {
return request({
url: '/uav/information/list',
url: '/information/list',
method: 'get',
params: query
})
@ -12,7 +12,7 @@ export function listType(query) {
// 查询字典类型详细
export function getType(uavId) {
return request({
url: '/uav/information/' + uavId,
url: '/information/' + uavId,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function getType(uavId) {
// 新增字典类型
export function addType(data) {
return request({
url: '/uav/information',
url: '/information',
method: 'post',
data: data
})
@ -29,7 +29,7 @@ export function addType(data) {
// 修改字典类型
export function updateType(data) {
return request({
url: '/uav/information',
url: '/information',
method: 'put',
data: data
})
@ -38,7 +38,7 @@ export function updateType(data) {
// 删除字典类型
export function delType(uavId) {
return request({
url: '/uav/information/' + uavId,
url: '/information/' + uavId,
method: 'delete'
})
}
@ -46,7 +46,7 @@ export function delType(uavId) {
// 导出字典类型
export function exportType(query) {
return request({
url: '/uav/information/export',
url: '/information/export',
method: 'get',
params: query
})

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@
</el-row>
<el-table v-loading="loading" :data="operatorList" @selection-change="handleSelectionChange" style="height: calc(100vh - 400px);">
<el-table v-loading="loading" :data="operatorList" @selection-change="handleSelectionChange" >
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="专业编号" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="userName" />
@ -75,7 +75,7 @@
</el-row>
<el-table v-loading="loading" :data="operatorList1" @selection-change="handleSelectionChange" style="height: calc(100vh - 400px);">
<el-table v-loading="loading" :data="operatorList1" @selection-change="handleSelectionChange" >
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="专业编号" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="userName" />
@ -122,7 +122,7 @@
</el-row>
<el-table v-loading="loading" :data="operatorList2" @selection-change="handleSelectionChange" style="height: calc(100vh - 400px);">
<el-table v-loading="loading" :data="operatorList2" @selection-change="handleSelectionChange" >
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="专业编号" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="userName" />

View File

@ -6,7 +6,7 @@
<pane size="16">
<el-col>
<div class="head-container">
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search" style="margin-bottom: 20px" />
<el-input v-model="deptName" placeholder="请输入装备类型名称" clearable size="small" prefix-icon="el-icon-search" style="margin-bottom: 20px" />
</div>
<div class="head-container">
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" />
@ -17,18 +17,10 @@
<pane size="84">
<el-col>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名称" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="queryParams.uavName" placeholder="请输入装备名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="用户状态" clearable style="width: 240px">
<el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-form-item label="创建时间" prop="dateRange">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
<el-form-item>
@ -37,7 +29,7 @@
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-row :gutter="10" class="mb8" v-if="this.showId!= null">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:user:add']">新增</el-button>
</el-col>
@ -47,131 +39,280 @@
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns.userId.visible" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns.userName.visible" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns.nickName.visible" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns.deptName.visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns.phonenumber.visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns.status.visible">
<template slot-scope="scope">
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns.createTime.visible" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" v-if="this.showId!= null">
<el-table-column type="selection" width="50" align="center" v-if="this.showId!= null"/>
<el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId==6"/>
<el-table-column label="工作频率" align="center" prop="operatingFrequency" v-if="this.showId==6" />
<el-table-column label="盲区距离" align="center" prop="blindDistance" v-if="this.showId== 6" />
<el-table-column label="通视(RCS)" align="center" prop="rcs" v-if="this.showId== 6" />
<el-table-column label="俯仰角" align="center" prop="pitchAngle" v-if="this.showId== 6" />
<el-table-column label="探测距离" align="center" prop="detectionRange" v-if="this.showId== 6" />
<el-table-column label="探测虚警率" align="center" prop="detectFalseAlarmRates" v-if="this.showId== 6"/>
<el-table-column label="目标定位误差" align="center" prop="targetingError" v-if="this.showId== 6"/>
<el-table-column label="航迹更新时间" align="center" prop="trackUpdateTime" v-if="this.showId== 6"/>
<el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId==7" />
<el-table-column label="探测频段" align="center" prop="detectionBands" v-if="this.showId== 7"/>
<el-table-column label="探测距离" align="center" prop="detectionRange" v-if="this.showId== 7"/>
<el-table-column label="探测无人机架次" align="center" prop="detectionDroneSorties" v-if="this.showId== 7"/>
<el-table-column label="目标定位误差" align="center" prop="targetingError" v-if="this.showId== 7"/>
<el-table-column label="定位方式" align="center" prop="targetingMethod" v-if="this.showId== 7" />
<el-table-column label="是否具有协议破解功能" align="center" prop="crackingFunction" v-if="this.showId== 7" />
<el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId==8" />
<el-table-column label="探测距离" align="center" prop="detectionRange" v-if="this.showId== 8" />
<el-table-column label="目标定位误差" align="center" prop="targetingError" v-if="this.showId== 8" />
<el-table-column label="成像技术" align="center" prop="imagingTechniques" v-if="this.showId== 8" />
<el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId==3" />
<el-table-column label="频段(HZ)" align="center" prop="bandHz" v-if="this.showId== 3 "/>
<el-table-column label="作用距离" align="center" prop="useRange" v-if="this.showId== 3 " />
<el-table-column label="发射功率" align="center" prop="transmitPower" v-if="this.showId== 3"/>
<el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId==4" />
<el-table-column label="频段(HZ)" align="center" prop="bandHz" v-if="this.showId== 4"/>
<el-table-column label="作用距离" align="center" prop="useRange" v-if="this.showId== 4"/>
<el-table-column label="水平拦截精度" align="center" prop="horizontalInterceptionAccuracy" v-if="this.showId== 4"/>
<el-table-column label="垂直拦截精度" align="center" prop="verticalInterceptionAccuracy" v-if="this.showId== 4"/>
<el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId== 5" />
<el-table-column label="物理打击" align="center" prop="phyHit" v-if="false" />
<el-table-column label="创建时间" align="center" prop="createTime" v-if="this.showId!= null"/>
<el-table-column label="操作" align="center" width="160" v-if="this.showId!= null" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']">删除</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
<!-- <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleResetPwd" icon="el-icon-key" v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
<el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check" v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-dropdown> -->
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" v-if="this.showId!= null"/>
</el-col>
</pane>
</splitpanes>
</el-row>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
<el-dialog :title="title" :visible.sync="open" width="600px" height="560px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="enabledDeptOptions" :show-count="true" placeholder="请选择归属部门" />
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
<el-col :span="12" v-if="this.showId==8">
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
<el-col :span="12" v-if="this.showId==3">
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
<el-col :span="12" v-if="this.showId==4">
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
<el-col :span="12" v-if="this.showId==5">
<el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="工作频率" prop="operatingFrequency">
<el-input v-model="form.operatingFrequency" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入工作频率" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="盲区距离" prop="blindDistance">
<el-input v-model="form.blindDistance" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入盲区距离" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="通视(RCS)" prop="rcs">
<el-input v-model="form.rcs" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入通视(RCS)" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="俯仰角" prop="pitchAngle">
<el-input v-model="form.pitchAngle" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入俯仰角" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="探测距离" prop="detectionRange">
<el-input v-model="form.detectionRange" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测距离" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="探测虚警率" prop="detectFalseAlarmRates">
<el-input v-model="form.detectFalseAlarmRates" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测虚警率" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==6">
<el-form-item label="目标定位误差" prop="targetingError">
<el-input v-model="form.targetingError" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入目标定位误差" maxlength="30" />
</el-form-item>
</el-col>
<!-- <el-col :span="12" v-if="this.showId==6">
<el-form-item label="航迹更新时间" prop="trackUpdateTime">
<el-input v-model="form.trackUpdateTime" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入航迹更新时间" maxlength="30" />
</el-form-item>
</el-col> -->
<el-col :span="12" v-if="this.showId==6">
<!-- <el-form-item label="航迹更新时间" prop="trackUpdateTime">
<el-date-picker
v-model="form.trackUpdateTime"
type="date"
placeholder="请选择迹更新时间"
value-format="yyyy-MM-DD 00:00:00"
:unlink-panels="true"
:disabled-date="disabledDate"
/>
</el-form-item> -->
<el-form-item label="航迹更新时间" prop="trackUpdateTime">
<el-date-picker clearable v-model="form.trackUpdateTime" type="date" value-format="yyyy-MM-dd" placeholder="航迹更新时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="探测频段" prop="detectionBands">
<el-input v-model="form.detectionBands" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测频段" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="探测距离" prop="detectionRange">
<el-input v-model="form.detectionRange" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测距离" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="无人机架次" prop="detectionDroneSorties">
<el-input v-model="form.detectionDroneSorties" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测无人机架次" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="目标定位误差" prop="targetingError">
<el-input v-model="form.targetingError" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入目标定位误差" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="定位方式" prop="targetingMethod">
<el-input v-model="form.targetingMethod" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入定位方式" maxlength="30" />
</el-form-item>
</el-col>
<!-- <el-col :span="12" v-if="this.showId==7">
<el-form-item label="协议破解功能" prop="crackingFunction">
<el-input v-model="form.crackingFunction" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入是否具有协议破解功能" maxlength="30" />
</el-form-item>
</el-col> -->
<el-col :span="12" v-if="this.showId==7">
<el-form-item label="协议破解功能" prop="crackingFunction">
<el-select v-model="form.crackingFunction" placeholder="请选择是否具有协议破解功能">
<el-option
v-for="item in [{ label: '不具有', value: '不具有' }, { label: '具有', value: '具有' }]"
:key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
</el-radio-group>
<el-col :span="12" v-if="this.showId==8">
<el-form-item label="探测距离" prop="detectionRange">
<el-input v-model="form.detectionRange" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测距离" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择岗位">
<el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId" :disabled="item.status == 1" ></el-option>
</el-select>
<el-col :span="12" v-if="this.showId==8">
<el-form-item label="目标定位误差" prop="targetingError">
<el-input v-model="form.targetingError" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入目标定位误差" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色">
<el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId" :disabled="item.status == 1"></el-option>
</el-select>
<el-col :span="12" v-if="this.showId==8">
<el-form-item label="成像技术" prop="imagingTechniques">
<el-input v-model="form.imagingTechniques" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入成像技术" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
<el-col :span="12" v-if="this.showId==3">
<el-form-item label="频段(HZ)" prop="bandHz">
<el-input v-model="form.bandHz" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入频段(HZ)" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="12" v-if="this.showId==3">
<el-form-item label="作用距离" prop="useRange">
<el-input v-model="form.useRange" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入作用距离" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==3">
<el-form-item label="发射功率" prop="transmitPower">
<el-input v-model="form.transmitPower" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入发射功率" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==4">
<el-form-item label="频段(HZ)" prop="bandHz">
<el-input v-model="form.bandHz" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入频段(HZ)" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==4">
<el-form-item label="作用距离" prop="useRange">
<el-input v-model="form.useRange" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入作用距离" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==4">
<el-form-item label="水平拦截精度" prop="horizontalInterceptionAccuracy">
<el-input v-model="form.horizontalInterceptionAccuracy" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入水平拦截精度" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12" v-if="this.showId==4">
<el-form-item label="垂直拦截精度" prop="verticalInterceptionAccuracy">
<el-input v-model="form.verticalInterceptionAccuracy" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入垂直拦截精度" maxlength="30" />
</el-form-item>
</el-col>
<!--
<el-col :span="12" v-if="this.showId==5">
<el-form-item label="物理打击" prop="phyHit">
<el-input v-model="form.phyHit" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入物理打击" maxlength="30" />
</el-form-item>
</el-col> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -202,6 +343,7 @@
<script>
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"
import { listType, getType, delType, addType, updateType, exportType } from '../../../api/datamodel/uavInformation/type';
import { getToken } from "@/utils/auth"
import Treeselect from "@riophae/vue-treeselect"
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
@ -240,6 +382,7 @@ export default {
deptName: undefined,
//
initPassword: undefined,
showId: undefined,
//
dateRange: [],
//
@ -334,7 +477,7 @@ export default {
/** 查询用户列表 */
getList() {
this.loading = true
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.userList = response.rows
this.total = response.total
this.loading = false
@ -343,10 +486,66 @@ export default {
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then(response => {
this.deptOptions = response.data
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
})
// deptTreeSelect().then(response => {
// this.deptOptions = response.data
// this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
// })
this.deptOptions = [ {
"id": 1,
"label": "反制装备",
"children": [
{
"id": 2,
"label": "发现类",
"children": [
// {
// "id": 2420,
// "label": ""
// },
// {
// "id": 2421,
// "label": ""
// },
// {
// "id": 2422,
// "label": ""
// },
{
"id": 6,
"label": "雷达探测"
},
{
"id": 7,
"label": "频谱探测"
},
{
"id": 8,
"label": "光电侦测"
}
]
},
{
"id": 3,
"label": "反制类",
"children": [
{
"id": 3,
"label": "全向电磁压制"
},
{
"id": 4,
"label": "定向反制设备"
},
{
"id": 5,
"label": "物理打击"
}
]
}
]
}]
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(this.deptOptions)))
},
//
filterDisabledDept(deptList) {
@ -368,6 +567,25 @@ export default {
//
handleNodeClick(data) {
this.queryParams.deptId = data.id
if(data.id==3){
this.showId =3
console.log("3333")
}else if (data.id==4){
this.showId =4
console.log("444")
}else if (data.id==5){
this.showId =5
console.log("555")
}else if (data.id==6){
this.showId =6
console.log("666")
}else if (data.id==7){
this.showId =7
console.log("777")
}else if (data.id==8){
this.showId =8
console.log("888")
}
this.handleQuery()
},
//
@ -389,18 +607,33 @@ export default {
//
reset() {
this.form = {
userId: undefined,
deptId: undefined,
userName: undefined,
nickName: undefined,
password: undefined,
phonenumber: undefined,
email: undefined,
sex: undefined,
status: "0",
remark: undefined,
postIds: [],
roleIds: []
uavName:'',
operatingFrequency:'',
blindDistance:'',
rcs:'',
pitchAngle:'',
detectionRange:'',
detectFalseAlarmRates:'',
targetingError:'',
trackUpdateTime:'',
detectionBands:'',
detectionDroneSorties:'',
targetingMethod:'',
crackingFunction:'',
targetingError:'',
imagingTechniques:'',
bandHz:'',
useRange:'',
transmitPower:'',
horizontalInterceptionAccuracy:'',
verticalInterceptionAccuracy:'',
phyHit:'',
deptId: ''
}
this.resetForm("form")
},
@ -419,7 +652,7 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.userId)
this.ids = selection.map(item => item.uavId)
this.single = selection.length != 1
this.multiple = !selection.length
},
@ -439,27 +672,30 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset()
getUser().then(response => {
this.postOptions = response.posts
this.roleOptions = response.roles
// getUser().then(response => {
// this.postOptions = response.posts
// this.roleOptions = response.roles
// this.open = true
// this.title = ""
// this.form.password = this.initPassword
// })
this.open = true
this.title = "添加用户"
this.form.password = this.initPassword
})
this.title = "添加"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const userId = row.userId || this.ids
getUser(userId).then(response => {
this.form = response.data
this.postOptions = response.posts
this.roleOptions = response.roles
this.$set(this.form, "postIds", response.postIds)
this.$set(this.form, "roleIds", response.roleIds)
console.log("row:",row)
console.log("row.userId:",row.userId)
console.log("row.uavId:",row.uavId)
const userId = row.uavId || this.ids
getType(userId).then(response => {
console.log("response",response)
this.form = response
console.log("response.data",response.data)
this.open = true
this.title = "修改用户"
this.form.password = ""
console.log("修改1")
this.title = "修改"
})
},
/** 重置密码按钮操作 */
@ -490,14 +726,15 @@ export default {
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.userId != undefined) {
updateUser(this.form).then(response => {
this.form.deptId = this.showId;
if (this.form.uavId != undefined) {
updateType(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addUser(this.form).then(response => {
addType(this.form).then(response => {
this.$modal.msgSuccess("新增成功")
this.open = false
this.getList()
@ -508,9 +745,9 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const userIds = row.userId || this.ids
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() {
return delUser(userIds)
const userIds = row.uavId || this.ids
this.$modal.confirm('是否确认删除编号为"' + userIds + '"的数据项?').then(function() {
return delType(userIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")