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

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@
</el-row> </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 type="selection" width="55" align="center" />
<el-table-column label="专业编号" align="center" prop="id" /> <el-table-column label="专业编号" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="userName" /> <el-table-column label="姓名" align="center" prop="userName" />
@ -75,7 +75,7 @@
</el-row> </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 type="selection" width="55" align="center" />
<el-table-column label="专业编号" align="center" prop="id" /> <el-table-column label="专业编号" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="userName" /> <el-table-column label="姓名" align="center" prop="userName" />
@ -122,7 +122,7 @@
</el-row> </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 type="selection" width="55" align="center" />
<el-table-column label="专业编号" align="center" prop="id" /> <el-table-column label="专业编号" align="center" prop="id" />
<el-table-column label="姓名" align="center" prop="userName" /> <el-table-column label="姓名" align="center" prop="userName" />

View File

@ -6,7 +6,7 @@
<pane size="16"> <pane size="16">
<el-col> <el-col>
<div class="head-container"> <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>
<div class="head-container"> <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" /> <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"> <pane size="84">
<el-col> <el-col>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名称" prop="userName"> <el-form-item label="装备名称" prop="uavName">
<el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.uavName" placeholder="请输入装备名称" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="手机号码" prop="phonenumber"> <el-form-item label="创建时间" prop="dateRange">
<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-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-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>
<el-form-item> <el-form-item>
@ -37,7 +29,7 @@
</el-form-item> </el-form-item>
</el-form> </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-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-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:user:add']">新增</el-button>
</el-col> </el-col>
@ -47,131 +39,280 @@
<el-col :span="1.5"> <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-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>
<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-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <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-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
</el-col> </el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" v-if="this.showId!= null">
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" v-if="this.showId!= null"/>
<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" prop="uavName" v-if="this.showId==6"/>
<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" prop="operatingFrequency" v-if="this.showId==6" />
<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" prop="blindDistance" v-if="this.showId== 6" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns.phonenumber.visible" width="120" /> <el-table-column label="通视(RCS)" align="center" prop="rcs" v-if="this.showId== 6" />
<el-table-column label="状态" align="center" key="status" v-if="columns.status.visible"> <el-table-column label="俯仰角" align="center" prop="pitchAngle" v-if="this.showId== 6" />
<template slot-scope="scope"> <el-table-column label="探测距离" align="center" prop="detectionRange" v-if="this.showId== 6" />
<el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch> <el-table-column label="探测虚警率" align="center" prop="detectFalseAlarmRates" v-if="this.showId== 6"/>
</template> <el-table-column label="目标定位误差" align="center" prop="targetingError" v-if="this.showId== 6"/>
</el-table-column> <el-table-column label="航迹更新时间" align="center" prop="trackUpdateTime" v-if="this.showId== 6"/>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns.createTime.visible" width="160">
<template slot-scope="scope"> <el-table-column label="装备名称" align="center" prop="uavName" v-if="this.showId==7" />
<span>{{ parseTime(scope.row.createTime) }}</span> <el-table-column label="探测频段" align="center" prop="detectionBands" v-if="this.showId== 7"/>
</template> <el-table-column label="探测距离" align="center" prop="detectionRange" v-if="this.showId== 7"/>
</el-table-column> <el-table-column label="探测无人机架次" align="center" prop="detectionDroneSorties" v-if="this.showId== 7"/>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width"> <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"> <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-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-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-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown"> <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="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-item command="handleAuthRole" icon="el-icon-circle-check" v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </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> </el-col>
</pane> </pane>
</splitpanes> </splitpanes>
</el-row> </el-row>
<!-- 添加或修改用户配置对话框 --> <!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="600px" height="560px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-col :span="12" v-if="this.showId==6">
<el-col :span="12"> <el-form-item label="装备名称" prop="uavName">
<el-form-item label="用户昵称" prop="nickName"> <el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="this.showId==7">
<el-form-item label="归属部门" prop="deptId"> <el-form-item label="装备名称" prop="uavName">
<treeselect v-model="form.deptId" :options="enabledDeptOptions" :show-count="true" placeholder="请选择归属部门" /> <el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="12" v-if="this.showId==8">
<el-row> <el-form-item label="装备名称" prop="uavName">
<el-col :span="12"> <el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
<el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="this.showId==3">
<el-form-item label="邮箱" prop="email"> <el-form-item label="装备名称" prop="uavName">
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" /> <el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="12" v-if="this.showId==4">
<el-row> <el-form-item label="装备名称" prop="uavName">
<el-col :span="12"> <el-input v-model="form.uavName" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入装备名称" maxlength="30" />
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password"> <el-col :span="12" v-if="this.showId==5">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password /> <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-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12" v-if="this.showId==6">
<el-form-item label="用户性别"> <el-form-item label="工作频率" prop="operatingFrequency">
<el-select v-model="form.sex" placeholder="请选择性别"> <el-input v-model="form.operatingFrequency" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入工作频率" maxlength="30" />
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> </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-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="状态"> <el-col :span="12" v-if="this.showId==8">
<el-radio-group v-model="form.status"> <el-form-item label="探测距离" prop="detectionRange">
<el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio> <el-input v-model="form.detectionRange" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入探测距离" maxlength="30" />
</el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="12" v-if="this.showId==8">
<el-row> <el-form-item label="目标定位误差" prop="targetingError">
<el-col :span="12"> <el-input v-model="form.targetingError" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入目标定位误差" maxlength="30" />
<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-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="this.showId==8">
<el-form-item label="角色"> <el-form-item label="成像技术" prop="imagingTechniques">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色"> <el-input v-model="form.imagingTechniques" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入成像技术" maxlength="30" />
<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-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="24"> <el-col :span="12" v-if="this.showId==3">
<el-form-item label="备注"> <el-form-item label="频段(HZ)" prop="bandHz">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> <el-input v-model="form.bandHz" onkeyup="this.value=this.value.replace(/\s+/g,'')" placeholder="请输入频段(HZ)" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </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> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -202,6 +343,7 @@
<script> <script>
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user" 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 { getToken } from "@/utils/auth"
import Treeselect from "@riophae/vue-treeselect" import Treeselect from "@riophae/vue-treeselect"
import "@riophae/vue-treeselect/dist/vue-treeselect.css" import "@riophae/vue-treeselect/dist/vue-treeselect.css"
@ -240,6 +382,7 @@ export default {
deptName: undefined, deptName: undefined,
// //
initPassword: undefined, initPassword: undefined,
showId: undefined,
// //
dateRange: [], dateRange: [],
// //
@ -334,7 +477,7 @@ export default {
/** 查询用户列表 */ /** 查询用户列表 */
getList() { getList() {
this.loading = true 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.userList = response.rows
this.total = response.total this.total = response.total
this.loading = false this.loading = false
@ -343,10 +486,66 @@ export default {
}, },
/** 查询部门下拉树结构 */ /** 查询部门下拉树结构 */
getDeptTree() { getDeptTree() {
deptTreeSelect().then(response => { // deptTreeSelect().then(response => {
this.deptOptions = response.data // this.deptOptions = response.data
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(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) { filterDisabledDept(deptList) {
@ -368,6 +567,25 @@ export default {
// //
handleNodeClick(data) { handleNodeClick(data) {
this.queryParams.deptId = data.id 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() this.handleQuery()
}, },
// //
@ -389,18 +607,33 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
userId: undefined,
deptId: undefined, uavName:'',
userName: undefined, operatingFrequency:'',
nickName: undefined, blindDistance:'',
password: undefined, rcs:'',
phonenumber: undefined, pitchAngle:'',
email: undefined, detectionRange:'',
sex: undefined, detectFalseAlarmRates:'',
status: "0", targetingError:'',
remark: undefined, trackUpdateTime:'',
postIds: [],
roleIds: [] detectionBands:'',
detectionDroneSorties:'',
targetingMethod:'',
crackingFunction:'',
targetingError:'',
imagingTechniques:'',
bandHz:'',
useRange:'',
transmitPower:'',
horizontalInterceptionAccuracy:'',
verticalInterceptionAccuracy:'',
phyHit:'',
deptId: ''
} }
this.resetForm("form") this.resetForm("form")
}, },
@ -419,7 +652,7 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.userId) this.ids = selection.map(item => item.uavId)
this.single = selection.length != 1 this.single = selection.length != 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
@ -439,27 +672,30 @@ export default {
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset() this.reset()
getUser().then(response => { // getUser().then(response => {
this.postOptions = response.posts // this.postOptions = response.posts
this.roleOptions = response.roles // this.roleOptions = response.roles
// this.open = true
// this.title = ""
// this.form.password = this.initPassword
// })
this.open = true this.open = true
this.title = "添加用户" this.title = "添加"
this.form.password = this.initPassword
})
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset() this.reset()
const userId = row.userId || this.ids console.log("row:",row)
getUser(userId).then(response => { console.log("row.userId:",row.userId)
this.form = response.data console.log("row.uavId:",row.uavId)
this.postOptions = response.posts const userId = row.uavId || this.ids
this.roleOptions = response.roles getType(userId).then(response => {
this.$set(this.form, "postIds", response.postIds) console.log("response",response)
this.$set(this.form, "roleIds", response.roleIds) this.form = response
console.log("response.data",response.data)
this.open = true this.open = true
this.title = "修改用户" console.log("修改1")
this.form.password = "" this.title = "修改"
}) })
}, },
/** 重置密码按钮操作 */ /** 重置密码按钮操作 */
@ -490,14 +726,15 @@ export default {
submitForm: function() { submitForm: function() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.userId != undefined) { this.form.deptId = this.showId;
updateUser(this.form).then(response => { if (this.form.uavId != undefined) {
updateType(this.form).then(response => {
this.$modal.msgSuccess("修改成功") this.$modal.msgSuccess("修改成功")
this.open = false this.open = false
this.getList() this.getList()
}) })
} else { } else {
addUser(this.form).then(response => { addType(this.form).then(response => {
this.$modal.msgSuccess("新增成功") this.$modal.msgSuccess("新增成功")
this.open = false this.open = false
this.getList() this.getList()
@ -508,9 +745,9 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const userIds = row.userId || this.ids const userIds = row.uavId || this.ids
this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除编号为"' + userIds + '"的数据项?').then(function() {
return delUser(userIds) return delType(userIds)
}).then(() => { }).then(() => {
this.getList() this.getList()
this.$modal.msgSuccess("删除成功") this.$modal.msgSuccess("删除成功")