优化运维主站

master
fanluyan 2 years ago
parent e4a9d9df52
commit 63ea9414d4

115
package-lock.json generated

@ -1,5 +1,5 @@
{
"name": "cacfrontend",
"name": "operation",
"version": "0.1.0",
"lockfileVersion": 1,
"requires": true,
@ -2490,6 +2490,15 @@
"integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
"dev": true
},
"adler-32": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.2.0.tgz",
"integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==",
"requires": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
}
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@ -2968,6 +2977,22 @@
"integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
"dev": true
},
"cfb": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
"integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
"requires": {
"adler-32": "~1.3.0",
"crc-32": "~1.2.0"
},
"dependencies": {
"adler-32": {
"version": "1.3.1",
"resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
"integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
}
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
@ -3146,6 +3171,22 @@
}
}
},
"codepage": {
"version": "1.14.0",
"resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.14.0.tgz",
"integrity": "sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==",
"requires": {
"commander": "~2.14.1",
"exit-on-epipe": "~1.0.1"
},
"dependencies": {
"commander": {
"version": "2.14.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-2.14.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
}
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
@ -3371,6 +3412,11 @@
"yaml": "^1.10.0"
}
},
"crc-32": {
"version": "1.2.2",
"resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
"integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
},
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz",
@ -4531,6 +4577,11 @@
"strip-eof": "^1.0.0"
}
},
"exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
},
"express": {
"version": "4.18.2",
"resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
@ -4647,6 +4698,11 @@
"websocket-driver": ">=0.5.1"
}
},
"fflate": {
"version": "0.3.11",
"resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.3.11.tgz",
"integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A=="
},
"figures": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz",
@ -4665,6 +4721,11 @@
"flat-cache": "^3.0.4"
}
},
"file-saver": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@ -4771,6 +4832,11 @@
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"dev": true
},
"frac": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
},
"fraction.js": {
"version": "4.3.7",
"resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz",
@ -7089,6 +7155,11 @@
"renderkid": "^3.0.0"
}
},
"printj": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz",
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@ -7988,6 +8059,14 @@
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true
},
"ssf": {
"version": "0.11.2",
"resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"requires": {
"frac": "~1.1.2"
}
},
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz",
@ -8994,6 +9073,16 @@
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
"dev": true
},
"wmf": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
"integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
},
"word": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
"integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
},
"wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
@ -9042,6 +9131,30 @@
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
"dev": true
},
"xlsx": {
"version": "0.17.0",
"resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.17.0.tgz",
"integrity": "sha512-bZ36FSACiAyjoldey1+7it50PMlDp1pcAJrZKcVZHzKd8BC/z6TQ/QAN8onuqcepifqSznR6uKnjPhaGt6ig9A==",
"requires": {
"adler-32": "~1.2.0",
"cfb": "^1.1.4",
"codepage": "~1.14.0",
"commander": "~2.17.1",
"crc-32": "~1.2.0",
"exit-on-epipe": "~1.0.1",
"fflate": "^0.3.8",
"ssf": "~0.11.2",
"wmf": "~1.0.1",
"word": "~0.3.0"
},
"dependencies": {
"commander": {
"version": "2.17.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz",
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
}
}
},
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz",

@ -12,13 +12,15 @@
"core-js": "^3.8.3",
"echarts": "^5.4.3",
"element-ui": "^2.15.14",
"file-saver": "^2.0.5",
"moment": "^2.29.4",
"postcss-px2rem": "^0.3.0",
"px2rem-loader": "^0.1.9",
"three": "^0.158.0",
"vue": "^2.6.14",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
"vuex": "^3.6.2",
"xlsx": "^0.17.0"
},
"devDependencies": {
"@babel/core": "^7.12.16",

File diff suppressed because one or more lines are too long

@ -1,15 +1,20 @@
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
<strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -100,9 +100,9 @@ export function getqueryUpgradesApi(data) {
}
//删除列表
export function getdelUpgradeApi(data) {
export function getupdUpgradeApi(data) {
return request({
url: "api/delUpgrade.php",
url: "api/updUpgrade.php",
method: "get",
params: data,
headers: {

@ -0,0 +1,32 @@
import FileSaver from "file-saver";
import XLSX from "xlsx";
const htmlToExcel = {
getExcel(dom, title = "表格") {
// 设置当前日期
const time = new Date();
const year = time.getFullYear();
const month = time.getMonth() + 1;
const day = time.getDate();
const name = year + "-" + month + "-" + day;
const wb = XLSX.utils.table_to_book(document.querySelector(dom));
/* 获取二进制字符串作为输出 */
const wbout = XLSX.write(wb, {
bookType: "xlsx",
bookSST: true,
type: "array",
});
try {
FileSaver.saveAs(
new Blob([wbout], { type: "application/octet-stream" }),
name + title + ".xlsx"
);
} catch (e) {
if (typeof console !== "undefined") console.log(e, wbout);
}
return wbout;
},
};
export default htmlToExcel;

@ -38,6 +38,7 @@
>装置总数<el-tag type="info">{{ tableData.length }}</el-tag></span
>
</p>
<el-button type="primary" @click="handleExport"></el-button>
<el-tooltip class="item" effect="dark" content="扩展列" placement="top">
<el-button
class="drawBox"
@ -51,6 +52,7 @@
</div>
<el-table
class="ywTableBox"
id="ywTable"
ref="ywMultipleTable"
:data="tableData"
border
@ -63,8 +65,8 @@
>
<el-table-column type="selection" :reserve-selection="true" width="50">
</el-table-column>
<!-- <el-table-column type="index" width="50" label="序号"> </el-table-column>
<el-table-column prop="id" label="ID" width="60" sortable>
<el-table-column type="index" width="50" label="序号"> </el-table-column>
<!-- <el-table-column prop="id" label="ID" width="60" sortable>
</el-table-column> -->
<el-table-column prop="oid" label="出厂ID" width="150" sortable>
<template slot-scope="scope">
@ -201,6 +203,15 @@
}}
</template>
</el-table-column>
<el-table-column label="失败" min-width="48">
<template slot-scope="scope">
{{
scope.row.raw_report.hasOwnProperty("msgs")
? scope.row.raw_report.msgs.failure
: ""
}}
</template>
</el-table-column>
</el-table-column>
<el-table-column label="网络信号" v-if="wlcheck">
@ -304,7 +315,10 @@
</div>
<p>
<b>I1:</b>{{ scope.row.raw_report.msgs.i1Version }}<b>运维:</b
>{{ scope.row.raw_report.msgs.maintainVersion }}
>{{ scope.row.raw_report.msgs.maintainVersion }}<b>Camera:</b
>{{ scope.row.raw_report.msgs.cameraService }}<b>AI:</b
>{{ scope.row.raw_report.msgs.aiVersion }}<b>MCU:</b
>{{ scope.row.raw_report.msgs.mcu }}
</p>
</el-tooltip>
@ -328,17 +342,39 @@
<div class="drawerSelect">
<h3>表格列配置</h3>
<div class="selectBox">
<el-checkbox v-model="gycheck"></el-checkbox>
<el-checkbox v-model="dccheck"></el-checkbox>
<el-checkbox v-model="xtcheck"></el-checkbox>
<el-checkbox v-model="xtcs"></el-checkbox>
<el-checkbox v-model="xtzq"></el-checkbox>
<el-checkbox v-model="pzcheck"></el-checkbox>
<el-checkbox v-model="wlcheck"></el-checkbox>
<el-checkbox v-model="cqcheck"></el-checkbox>
<el-checkbox v-model="cmacheck">CMA</el-checkbox>
<el-checkbox v-model="simcheck">SIM</el-checkbox>
<el-checkbox v-model="bbcheck"></el-checkbox>
<el-checkbox v-model="gycheck" @change="saveLocalStorage"
>规约</el-checkbox
>
<el-checkbox v-model="dccheck" @change="saveLocalStorage"
>电池状态</el-checkbox
>
<el-checkbox v-model="xtcheck" @change="saveLocalStorage"
>心跳信息</el-checkbox
>
<el-checkbox v-model="xtcs" @change="saveLocalStorage"
>心跳次数</el-checkbox
>
<el-checkbox v-model="xtzq" @change="saveLocalStorage"
>心跳周期</el-checkbox
>
<el-checkbox v-model="pzcheck" @change="saveLocalStorage"
>拍照</el-checkbox
>
<el-checkbox v-model="wlcheck" @change="saveLocalStorage"
>网络信号</el-checkbox
>
<el-checkbox v-model="cqcheck" @change="saveLocalStorage"
>重启次数</el-checkbox
>
<el-checkbox v-model="cmacheck" @change="saveLocalStorage"
>CMA服务器</el-checkbox
>
<el-checkbox v-model="simcheck" @change="saveLocalStorage"
>SIM卡</el-checkbox
>
<el-checkbox v-model="bbcheck" @change="saveLocalStorage"
>版本</el-checkbox
>
</div>
</div>
</el-drawer>
@ -461,25 +497,26 @@
width="40%"
class="frpcDialogBox"
>
<el-button type="primary" @click="handleModelForm"></el-button>
<el-form
:model="frpcform"
ref="frpcRuleForm"
:rules="frpcRules"
label-width="132px"
>
<el-form-item label="Server Address" prop="server_addr">
<el-form-item label="服务器IP" prop="server_addr">
<el-input
v-model="frpcform.server_addr"
autocomplete="off"
></el-input>
</el-form-item>
<el-form-item label="Server Port" prop="server_port">
<el-form-item label="服务器端口" prop="server_port">
<el-input
v-model.number="frpcform.server_port"
autocomplete="off"
></el-input>
</el-form-item>
<el-form-item label="Frpc Type">
<el-form-item label="FRPC类型">
<el-select v-model="frpcform.frpc_type" placeholder="请选择">
<el-option
v-for="item in frpc_typeOption"
@ -490,7 +527,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="Type">
<el-form-item label="网络类型">
<el-select v-model="frpcform.type" placeholder="请选择">
<el-option
v-for="item in typeOption"
@ -501,22 +538,23 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="Local IP" prop="local_ip">
<el-form-item label="本地IP" prop="local_ip">
<el-input v-model="frpcform.local_ip" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="Local Port" prop="local_port">
<el-form-item label="本地端口" prop="local_port">
<el-input
v-model.number="frpcform.local_port"
autocomplete="off"
></el-input>
</el-form-item>
<el-form-item label="Remote Port" prop="remote_port">
<el-form-item label="远程端口" prop="remote_port">
<el-input
v-model.number="frpcform.remote_port"
autocomplete="off"
></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="frpcVisible = false"> </el-button>
<el-button type="primary" @click="handleFrpc"> </el-button>
@ -530,6 +568,7 @@
<script>
import { getdoActionApi, getqueryUpgradesApi } from "@/utils/api/index";
import rowMsgDialog from "./rowMsgDialog.vue";
import htmlToExcel from "@/utils/htmlToExcel";
export default {
props: ["tableData", "onlineNum", "offlineNum", "noPicNum"],
components: {
@ -586,10 +625,10 @@ export default {
bbcheck: true,
//
operateOptions: [
{ id: 1, name: "重启" },
{ id: 2, name: "重启装置" },
{ id: 1, name: "安卓重启" },
{ id: 2, name: "MCU单片机重启" },
{ id: 3, name: "设置I1服务器" },
{ id: 4, name: "设置运维服务器" },
// { id: 4, name: "" },
{ id: 5, name: "设置心跳周期" },
{ id: 6, name: "上传日志" },
{ id: 7, name: "升级" },
@ -670,7 +709,7 @@ export default {
// port: "",
server_addr: "",
server_port: "",
frpc_type: "ssh",
frpc_type: "adb",
type: "tcp",
local_ip: "",
local_port: "",
@ -730,14 +769,24 @@ export default {
},
};
},
tableData: {
handler(newVal) {
//
console.log("数据已更新:", newVal);
mounted() {
this.loadLocalStorage();
},
watch: {
tableData: {
handler(newVal) {
//
console.log("数据已更新:", newVal);
},
deep: true,
},
deep: true,
},
methods: {
//
handleExport() {
htmlToExcel.getExcel("#ywTable", "设备运维信息");
},
// id,row-keykey
getRowKey(row) {
return row.id;
@ -955,6 +1004,7 @@ export default {
act: "upgrade",
url: this.upgradationform.upVal,
md5: this.selectUpObj.md5,
fn: this.selectUpObj.fileName,
termIds: this.idArray.join("-"),
};
this.changeIssue(params);
@ -962,6 +1012,20 @@ export default {
}
});
},
//
handleModelForm() {
this.frpcform = {
// ip: "",
// port: "",
server_addr: "180.166.218.22",
server_port: 40204,
frpc_type: "adb",
type: "tcp",
local_ip: "127.0.0.1",
local_port: 5555,
remote_port: 40205,
};
},
//frpc
handleFrpc() {
console.log(this.$refs.frpcRuleForm);
@ -983,6 +1047,55 @@ export default {
}
});
},
saveLocalStorage() {
localStorage.setItem("gycheck", this.gycheck);
localStorage.setItem("dccheck", this.dccheck);
localStorage.setItem("xtcheck", this.xtcheck);
localStorage.setItem("xtcs", this.xtcs);
localStorage.setItem("xtzq", this.xtzq);
localStorage.setItem("pzcheck", this.pzcheck);
localStorage.setItem("wlcheck", this.wlcheck);
localStorage.setItem("cqcheck", this.cqcheck);
localStorage.setItem("cmacheck", this.cmacheck);
localStorage.setItem("simcheck", this.simcheck);
localStorage.setItem("bbcheck", this.bbcheck);
},
loadLocalStorage() {
this.gycheck = localStorage.getItem("gycheck")
? JSON.parse(localStorage.getItem("gycheck"))
: false;
this.dccheck = localStorage.getItem("dccheck")
? JSON.parse(localStorage.getItem("dccheck"))
: true;
this.xtcheck = localStorage.getItem("xtcheck")
? JSON.parse(localStorage.getItem("xtcheck"))
: true;
this.xtcs = localStorage.getItem("xtcs")
? JSON.parse(localStorage.getItem("xtcs"))
: false;
this.xtzq = localStorage.getItem("xtzq")
? JSON.parse(localStorage.getItem("xtzq"))
: false;
this.pzcheck = localStorage.getItem("pzcheck")
? JSON.parse(localStorage.getItem("pzcheck"))
: true;
this.wlcheck = localStorage.getItem("wlcheck")
? JSON.parse(localStorage.getItem("wlcheck"))
: true;
this.cqcheck = localStorage.getItem("cqcheck")
? JSON.parse(localStorage.getItem("cqcheck"))
: true;
this.cmacheck = localStorage.getItem("cmacheck")
? JSON.parse(localStorage.getItem("cmacheck"))
: false;
this.simcheck = localStorage.getItem("simcheck")
? JSON.parse(localStorage.getItem("simcheck"))
: false;
this.bbcheck = localStorage.getItem("bbcheck")
? JSON.parse(localStorage.getItem("bbcheck"))
: true;
},
},
};
</script>
@ -1143,6 +1256,14 @@ export default {
}
}
.frpcDialogBox {
.el-dialog__body {
.el-button--small {
padding: 5px 15px;
}
.el-form {
margin-top: 12px;
}
}
.el-select {
width: 100%;
}

@ -16,7 +16,17 @@
:value="item.id"
></el-option>
</el-select>
<span class="time">更新时间{{ updateTime }}</span>
<el-input
class="cmdidClass"
v-model="leftcmdVal"
placeholder="请输入设备ID查询"
@change="leftInputChange"
></el-input>
<span class="time"
>更新时间{{
$moment(updateTime).format("YYYY-MM-DD HH:mm:ss")
}}</span
>
</div>
<div
class="commandList"
@ -56,7 +66,17 @@
:value="item.id"
></el-option>
</el-select>
<span class="time">更新时间{{ updateTime }}</span>
<el-input
class="cmdidClass"
v-model="rightcmdVal"
placeholder="请输入设备ID查询"
@change="rightInputChange"
></el-input>
<span class="time"
>更新时间{{
$moment(updateTime).format("YYYY-MM-DD HH:mm:ss")
}}</span
>
</div>
<div class="commandList" v-if="rightCommand.length != 0">
<p class="comLi" v-for="(item, index) in rightCommand" :key="index">
@ -122,8 +142,8 @@ export default {
commandShow: false,
deveceMsg: "",
cmdCn: {
yw_cmd_android_reboot: "重启",
yw_cmd_mcu_reboot: "重启装置",
yw_cmd_android_reboot: "安卓重启",
yw_cmd_mcu_reboot: "MCU单片机重启",
i1_cmd_set_i1_server_ip_port: "设置I1服务器",
i1_cmd_set_xy_yw_ip_port: "设置运维服务器",
i1_cmd_set_i1_heart_beat_time: "设置心跳周期",
@ -139,10 +159,10 @@ export default {
//
operateOptions: [
{ id: 0, name: "全部" },
{ id: 1, name: "重启" },
{ id: 2, name: "重启装置" },
{ id: 1, name: "安卓重启" },
{ id: 2, name: "MCU单片机重启" },
{ id: 3, name: "设置I1服务器" },
{ id: 4, name: "设置运维服务器" },
// { id: 4, name: "" },
{ id: 5, name: "设置心跳周期" },
{ id: 6, name: "上传日志" },
{ id: 7, name: "升级" },
@ -152,6 +172,8 @@ export default {
],
operateL: 0,
operateR: 0,
leftcmdVal: "",
rightcmdVal: "",
};
},
computed: {},
@ -220,11 +242,11 @@ export default {
getqueryCmdsApi({ qt: "his", p: 1, ps: 200 })
.then((res) => {
console.log(res);
// this.endCommand = res.data;
this.endCommand = res.data.filter((item) => item.status == "1");
this.endCommand = res.data;
//this.endCommand = res.data.filter((item) => item.status == "1");
this.selectRightChanged(this.operateR);
// this.leftComLoading = false;
this.updateTime = new Date().toLocaleString();
this.updateTime = new Date();
})
.catch((err) => {});
},
@ -262,8 +284,7 @@ export default {
return;
case 6:
this.leftCommand = this.runCommand.filter(
(item) =>
item.cmdName == "yw_cmd_myw_cmd_upload_i1_zip_logcu_reboot"
(item) => item.cmdName == "yw_cmd_upload_i1_zip_log"
);
return;
case 7:
@ -288,6 +309,11 @@ export default {
return;
}
},
leftInputChange(value) {
this.leftCommand = this.runCommand.filter((item) =>
item.cmdid.includes(value)
);
},
//
selectRightChanged(val) {
console.log(val);
@ -324,8 +350,7 @@ export default {
return;
case 6:
this.rightCommand = this.endCommand.filter(
(item) =>
item.cmdName == "yw_cmd_myw_cmd_upload_i1_zip_logcu_reboot"
(item) => item.cmdName == "yw_cmd_upload_i1_zip_log"
);
return;
case 7:
@ -350,6 +375,11 @@ export default {
return;
}
},
rightInputChange(value) {
this.rightCommand = this.endCommand.filter((item) =>
item.cmdid.includes(value)
);
},
},
beforeDestroy() {
//
@ -386,6 +416,10 @@ export default {
}
.el-select {
margin: 0px 12px;
width: 150px;
}
.cmdidClass {
width: 180px;
}
.time {
font-size: 12px;

@ -52,10 +52,17 @@
width="180"
></el-table-column>
<el-table-column prop="fileName" label="文件名称"> </el-table-column>
<el-table-column prop="title" label="备注"></el-table-column>
<el-table-column prop="title" label="备注"> </el-table-column>
<!-- <el-table-column prop="path" label="文件路径"> </el-table-column> -->
<el-table-column label="操作" width="100">
<el-table-column label="操作" width="300" class-name="editClass">
<template slot-scope="scope">
<el-link
type="primary"
@click="handleEditClick(scope.row)"
size="small"
icon="el-icon-edit"
>修改</el-link
>
<el-link
type="danger"
@click="handleDeleteClick(scope.row)"
@ -67,14 +74,37 @@
</el-table-column>
</el-table>
</div>
<el-dialog
class="titleDialog"
title="修改备注"
:visible.sync="titleShow"
:close-on-click-modal="false"
width="480px"
>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="文件备注" prop="notesNewVal">
<el-input v-model="ruleForm.notesNewVal"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="confirmClick"></el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
postuploadFileApi,
getqueryUpgradesApi,
getdelUpgradeApi,
getupdUpgradeApi,
} from "@/utils/api/index";
export default {
name: "upgradation",
components: {},
@ -87,6 +117,17 @@ export default {
},
fileData: [], //
fileloading: false,
editShow: false,
titleShow: false,
ruleForm: {
notesNewVal: "",
},
rules: {
notesNewVal: [
{ required: true, message: "请输入备注信息", trigger: "blur" },
],
},
rowData: "", //
};
},
computed: {},
@ -127,7 +168,8 @@ export default {
.catch((err) => {});
},
handleDeleteClick(row) {
getdelUpgradeApi({
getupdUpgradeApi({
act: "del",
id: row.id,
})
.then((res) => {
@ -156,6 +198,39 @@ export default {
})
.catch((err) => {});
},
handleEditClick(row) {
console.log(row);
this.titleShow = true;
this.ruleForm.notesNewVal = row.title;
this.rowData = row;
},
confirmClick() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
console.log(this.ruleForm.notesNewVal);
getupdUpgradeApi({
act: "edt",
id: this.rowData.id,
title: this.ruleForm.notesNewVal,
})
.then((res) => {
console.log(res);
this.$message({
duration: 1500,
showClose: true,
message: "修改备注成功",
type: "success",
});
this.titleShow = false;
this.getUpgradeList();
})
.catch((err) => {});
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
@ -233,5 +308,10 @@ export default {
}
}
}
.editClass {
.el-link.el-link--primary {
margin-right: 14px;
}
}
}
</style>

Loading…
Cancel
Save