Compare commits
3 Commits
3d5acbe68a
...
f7c690bad7
| Author | SHA1 | Date |
|---|---|---|
|
|
f7c690bad7 | |
|
|
e2ebe67184 | |
|
|
747e1d1895 |
|
|
@ -10,11 +10,10 @@ export const updateConfigShellService = (data) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const deleteConfigShellService = (data) => {
|
export const deleteConfigShellService = (data) => {
|
||||||
const params = new URLSearchParams();
|
let reqData={
|
||||||
for (let key in data) {
|
"shells": data.shells,
|
||||||
params.append(key, data[key])
|
|
||||||
}
|
}
|
||||||
return request.post('/shell/delete', params, { "headers": { 'token': data.token } });
|
return request.post('/shell/delete', reqData, { "headers": { 'token': data.token } });
|
||||||
}
|
}
|
||||||
|
|
||||||
export const addConfigShellService = (data) => {
|
export const addConfigShellService = (data) => {
|
||||||
|
|
|
||||||
|
|
@ -47,3 +47,23 @@ export const GetFileInfoByMd5Service = (Data) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const GetMonitorDeviceInfoService = (Data) => {
|
||||||
|
return request.get('/tool/get_monitor_list')
|
||||||
|
}
|
||||||
|
|
||||||
|
export const UpdateMonitorDeviceInfoService = (Data) => {
|
||||||
|
return request.post('/tool/update_monitor', Data,{
|
||||||
|
headers: {
|
||||||
|
'token': Data.token, // 闂佽绻愭蹇涘箯閿燂拷 token 闂備礁鎼ú锔锯偓绗涘啰鏆﹂柛娆忣槺閳绘棃鏌i幋鐏活亝绂嶉崼鏇熺厽闁靛ǹ鍎遍褔鏌熼煬鎻掆偓婵嬪箖瑜忔禒锔炬喆閿濆懍澹曢梺璺ㄥ櫐閹凤拷
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DelMonitorDeviceInfoService = (Data) => {
|
||||||
|
return request.post('/tool/del_monitor', Data,{
|
||||||
|
headers: {
|
||||||
|
'token': Data.token, // 闂佽绻愭蹇涘箯閿燂拷 token 闂備礁鎼ú锔锯偓绗涘啰鏆﹂柛娆忣槺閳绘棃鏌i幋鐏活亝绂嶉崼鏇熺厽闁靛ǹ鍎遍褔鏌熼煬鎻掆偓婵嬪箖瑜忔禒锔炬喆閿濆懍澹曢梺璺ㄥ櫐閹凤拷
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -17,6 +17,7 @@ import Shell from "@/views/ShellList.vue"
|
||||||
import callback from "@/views/callback.vue";
|
import callback from "@/views/callback.vue";
|
||||||
import projectSelect from "@/views/project-select.vue";
|
import projectSelect from "@/views/project-select.vue";
|
||||||
|
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
path: '/login',
|
path: '/login',
|
||||||
|
|
|
||||||
|
|
@ -425,7 +425,15 @@ export default {
|
||||||
prop="DeviceStatus"
|
prop="DeviceStatus"
|
||||||
label="设备状态"
|
label="设备状态"
|
||||||
width="80"
|
width="80"
|
||||||
></el-table-column>
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.DeviceStatus === '在线' ? 'success' : 'danger'"
|
||||||
|
>{{ scope.row.DeviceStatus === "在线" ? '在线' : '离线' }}</el-tag
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="DeviceType"
|
prop="DeviceType"
|
||||||
label="设备类型"
|
label="设备类型"
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,24 @@
|
||||||
<script>
|
<script>
|
||||||
import axios from "axios";
|
|
||||||
import router from "@/router/index.js";
|
import router from "@/router/index.js";
|
||||||
import Cookies from "js-cookie";
|
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import CryptoJS from "crypto-js";
|
|
||||||
import Menu from "@/views/Menu.vue";
|
import Menu from "@/views/Menu.vue";
|
||||||
|
|
||||||
import { getConfigShellListService } from "@/api/shell.js";
|
import { getConfigShellListService } from "@/api/shell.js";
|
||||||
import { addConfigShellService } from "@/api/shell.js";
|
import { addConfigShellService } from "@/api/shell.js";
|
||||||
import { deleteConfigShellService } from "@/api/shell.js";
|
import { deleteConfigShellService } from "@/api/shell.js";
|
||||||
import { updateConfigShellService } from "@/api/shell.js";
|
import { updateConfigShellService } from "@/api/shell.js";
|
||||||
|
import { GetMonitorDeviceInfoService } from "@/api/tool.js";
|
||||||
|
import { UpdateMonitorDeviceInfoService } from "@/api/tool.js";
|
||||||
|
import { DelMonitorDeviceInfoService } from "@/api/tool.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
ip: "",
|
ip: "",
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
loading: false,
|
||||||
search_id: 2002,
|
search_id: 2002,
|
||||||
|
dialogVisible: false,
|
||||||
ConfigShellUpdateForm: {},
|
ConfigShellUpdateForm: {},
|
||||||
keyword: "",
|
keyword: "",
|
||||||
updateDialogVisible: false,
|
updateDialogVisible: false,
|
||||||
|
|
@ -37,6 +39,10 @@ export default {
|
||||||
{ label: "阿里云服务器", value: "aliyun_vp_server" },
|
{ label: "阿里云服务器", value: "aliyun_vp_server" },
|
||||||
{ label:"azure服务器", value:"azure_vp_server" }
|
{ label:"azure服务器", value:"azure_vp_server" }
|
||||||
],
|
],
|
||||||
|
monitor_list: [],
|
||||||
|
monitor_add_update_visible: false,
|
||||||
|
monitor_update_add: {},
|
||||||
|
|
||||||
|
|
||||||
role: "",
|
role: "",
|
||||||
tokenData: {
|
tokenData: {
|
||||||
|
|
@ -56,6 +62,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
async getConfigFileList() {
|
async getConfigFileList() {
|
||||||
let result = {};
|
let result = {};
|
||||||
|
this.loading = true;
|
||||||
try {
|
try {
|
||||||
//判断search_id是字符串还是数字
|
//判断search_id是字符串还是数字
|
||||||
let req = {
|
let req = {
|
||||||
|
|
@ -65,6 +72,8 @@ export default {
|
||||||
result = await getConfigShellListService(req);
|
result = await getConfigShellListService(req);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
|
} finally {
|
||||||
|
this.loading = false;
|
||||||
}
|
}
|
||||||
let data = result.data;
|
let data = result.data;
|
||||||
if (data !== undefined && data !== null) {
|
if (data !== undefined && data !== null) {
|
||||||
|
|
@ -130,18 +139,15 @@ export default {
|
||||||
if (!isDelete) {
|
if (!isDelete) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// alert("删除 index: " + index);
|
|
||||||
// return ;
|
|
||||||
let is_delete_file = confirm("是否删除文件?");
|
|
||||||
|
|
||||||
let result = {};
|
let result = {};
|
||||||
try {
|
try {
|
||||||
let req = {
|
let req = {
|
||||||
token: this.tokenData.token,
|
token: this.tokenData.token,
|
||||||
id: this.ConfigFileCurrentPageData[index].ID,
|
shells: [{"id":this.ConfigFileCurrentPageData[index].ID}],
|
||||||
del_file: is_delete_file,
|
|
||||||
};
|
};
|
||||||
result = await deleteConfigFileService(req);
|
console.log("req:", req);
|
||||||
|
result = await deleteConfigShellService(req);
|
||||||
if (result.code == 0) {
|
if (result.code == 0) {
|
||||||
ElMessage.success("删除成功");
|
ElMessage.success("删除成功");
|
||||||
this.getConfigFileList();
|
this.getConfigFileList();
|
||||||
|
|
@ -166,6 +172,10 @@ export default {
|
||||||
this.ConfigShellUpdateForm = cf;
|
this.ConfigShellUpdateForm = cf;
|
||||||
this.updateDialogVisible = true;
|
this.updateDialogVisible = true;
|
||||||
},
|
},
|
||||||
|
showMonitorList() {
|
||||||
|
this.dialogVisible = true;
|
||||||
|
this.getMonitorDeviceList();
|
||||||
|
},
|
||||||
async createAgain(index) {
|
async createAgain(index) {
|
||||||
let cf = this.ConfigFileCurrentPageData[index];
|
let cf = this.ConfigFileCurrentPageData[index];
|
||||||
this.addForm.shell_name = cf.ShellName;
|
this.addForm.shell_name = cf.ShellName;
|
||||||
|
|
@ -211,6 +221,73 @@ export default {
|
||||||
toVideoList() {
|
toVideoList() {
|
||||||
router.push("/videoList");
|
router.push("/videoList");
|
||||||
},
|
},
|
||||||
|
async getMonitorDeviceList(){
|
||||||
|
try {
|
||||||
|
let req = {
|
||||||
|
token: this.tokenData.token,
|
||||||
|
type: "all",
|
||||||
|
};
|
||||||
|
let result = await GetMonitorDeviceInfoService(req);
|
||||||
|
if (result.code === 0) {
|
||||||
|
this.monitor_list = result.data;
|
||||||
|
console.log("monitor_list:", this.monitor_list);
|
||||||
|
this.dialogVisible = true; // 打开设备监控对话框
|
||||||
|
} else {
|
||||||
|
ElMessage.error("获取设备列表失败");
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateMonitorShow(index) {
|
||||||
|
this.monitor_add_update_visible = true;
|
||||||
|
this.monitor_update_add = { ...this.monitor_list[index] }; // 深拷贝,避免直接修改原数据
|
||||||
|
},
|
||||||
|
//确定添加或修改设备
|
||||||
|
async addUpdateMonitor(){
|
||||||
|
let req = {
|
||||||
|
"token": this.tokenData.token,
|
||||||
|
"devices": [this.monitor_update_add],
|
||||||
|
};
|
||||||
|
req.devices[0].expire =parseInt(req.devices[0].expire);
|
||||||
|
try{
|
||||||
|
let result = await UpdateMonitorDeviceInfoService(req);
|
||||||
|
if (result.code === 0) {
|
||||||
|
ElMessage.success("设备信息更新成功");
|
||||||
|
this.monitor_add_update_visible = false;
|
||||||
|
} else {
|
||||||
|
ElMessage.error("设备信息更新失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
}catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async DelMonitor(index) {
|
||||||
|
let isDelete = confirm("是否删除?");
|
||||||
|
if (!isDelete) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let req = {
|
||||||
|
token: this.tokenData.token,
|
||||||
|
devices: [this.monitor_list[index]],
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
|
||||||
|
let result = await DelMonitorDeviceInfoService(req);
|
||||||
|
if (result.code === 0) {
|
||||||
|
ElMessage.success("设备删除成功");
|
||||||
|
this.getMonitorDeviceList();
|
||||||
|
} else {
|
||||||
|
ElMessage.error("设备删除失败");
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// 修改条纹颜色
|
// 修改条纹颜色
|
||||||
tableRowClassName({ row, rowIndex }) {
|
tableRowClassName({ row, rowIndex }) {
|
||||||
switch (row.Status) {
|
switch (row.Status) {
|
||||||
|
|
@ -336,6 +413,14 @@ export default {
|
||||||
>创建命令</el-button
|
>创建命令</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button
|
||||||
|
class="el-button--danger"
|
||||||
|
type="primary"
|
||||||
|
@click="getMonitorDeviceList()"
|
||||||
|
>设备监控</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
|
@ -397,8 +482,107 @@ export default {
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
v-model="monitor_add_update_visible"
|
||||||
|
title="编辑监控"
|
||||||
|
width="50%"
|
||||||
|
@close="handleClose">
|
||||||
|
|
||||||
|
<el-form
|
||||||
|
ref="monitorUpdateFormRef"
|
||||||
|
:model="monitor_update_add"
|
||||||
|
:rules="UserUpdateFormRules"
|
||||||
|
label-width="70px"
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-form-item label="设备" prop="id">
|
||||||
|
<el-input
|
||||||
|
v-model="monitor_update_add.id"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-select v-model="monitor_update_add.status">
|
||||||
|
<el-option label="在线" value="1"></el-option>
|
||||||
|
<el-option label="离线" value="0"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-form-item label="过期时间" prop="expire">
|
||||||
|
<el-input
|
||||||
|
v-model="monitor_update_add.expire"
|
||||||
|
oninput="this.value = this.value.replace(/[^0-9]/g, '')"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<!-- 底部区域 -->
|
||||||
|
<template #footer>
|
||||||
|
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="monitor_add_update_visible = false"
|
||||||
|
>取消</el-button
|
||||||
|
>
|
||||||
|
<el-button type="primary" @click="addUpdateMonitor()"
|
||||||
|
>确定</el-button
|
||||||
|
>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
v-model="dialogVisible"
|
||||||
|
title="设备状态监控"
|
||||||
|
width="50%"
|
||||||
|
@close="handleClose"
|
||||||
|
>
|
||||||
|
<el-button type="primary" @click="monitor_add_update_visible = true">添加</el-button>
|
||||||
|
<el-table
|
||||||
|
:data="monitor_list"
|
||||||
|
stripe
|
||||||
|
width="90%"
|
||||||
|
fit
|
||||||
|
>
|
||||||
|
<el-table-column prop="id" label="设备" width="150"></el-table-column>
|
||||||
|
<el-table-column prop="status" label="状态" width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag
|
||||||
|
:type="scope.row.status === '1' ? 'success' : 'danger'"
|
||||||
|
>{{ scope.row.status === "1" ? '在线' : '离线' }}</el-tag
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="expire" label="过期时间" width="150">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="270">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
@click.prevent="updateMonitorShow(scope.$index)"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
@click.prevent="DelMonitor(scope.$index)"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 表格 :row-style="this.tableRowClassName"-->
|
<!-- 表格 :row-style="this.tableRowClassName"-->
|
||||||
<el-table :data="ConfigFileCurrentPageData" width="100%" border>
|
<el-table :data="ConfigFileCurrentPageData" width="100%" v-loading="loading">
|
||||||
:row-style="tableRowClassName"
|
:row-style="tableRowClassName"
|
||||||
<el-table-column prop="ID" label="id" width="80"></el-table-column>
|
<el-table-column prop="ID" label="id" width="80"></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -409,6 +593,7 @@ export default {
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ShellContent"
|
prop="ShellContent"
|
||||||
label="命令内容"
|
label="命令内容"
|
||||||
|
show-overflow-tooltip
|
||||||
width="120"
|
width="120"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -436,7 +621,7 @@ export default {
|
||||||
label="创建用户ID"
|
label="创建用户ID"
|
||||||
width="40"
|
width="40"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column label="操作" width="250">
|
<el-table-column label="操作" width="270">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
|
@ -444,12 +629,12 @@ export default {
|
||||||
@click.prevent="updateConfigShell(scope.$index)"
|
@click.prevent="updateConfigShell(scope.$index)"
|
||||||
>编辑</el-button
|
>编辑</el-button
|
||||||
>
|
>
|
||||||
<!-- <el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click.prevent="deleteConfigFile(scope.$index)"
|
@click.prevent="deleteConfigFile(scope.$index)"
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
> -->
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue