From 2c4959a11bb6d91b7cd14b3da8faaabdaa1312a9 Mon Sep 17 00:00:00 2001 From: fanluyan <754122931@qq.com> Date: Tue, 11 Jun 2024 14:27:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/fonts/iconfont.css | 77 ++++++ src/assets/fonts/iconfont.ttf | Bin 0 -> 8524 bytes src/components/Sidebar.vue | 14 +- src/main.js | 2 +- src/router/index.js | 12 +- src/utils/api/index.js | 34 +-- src/views/deviceConfig/components/sideBar.vue | 240 ++++++++++++++++++ src/views/deviceConfig/index.vue | 46 ++++ src/views/homePage/index.vue | 18 +- src/views/upgradation/index.vue | 91 ++++--- 10 files changed, 451 insertions(+), 83 deletions(-) create mode 100644 src/assets/fonts/iconfont.css create mode 100644 src/assets/fonts/iconfont.ttf create mode 100644 src/views/deviceConfig/components/sideBar.vue create mode 100644 src/views/deviceConfig/index.vue diff --git a/src/assets/fonts/iconfont.css b/src/assets/fonts/iconfont.css new file mode 100644 index 0000000..c8307c2 --- /dev/null +++ b/src/assets/fonts/iconfont.css @@ -0,0 +1,77 @@ +@font-face { + font-family: "iconfont"; /* Project id */ + src: url('iconfont.ttf?t=1709789909096') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-1wenhe:before { + content: "\e653"; +} + +.icon-paizhao:before { + content: "\e6ba"; +} + +.icon-paizhao-xianxing:before { + content: "\e8d1"; +} + +.icon-tuiguanglishitupianjinqun:before { + content: "\e613"; +} + +.icon-gongsi:before { + content: "\e62e"; +} + +.icon-shudianxianlu:before { + content: "\e60a"; +} + +.icon-dianli:before { + content: "\e649"; +} + +.icon-dianlihangye:before { + content: "\e791"; +} + +.icon-shexiangtoulixian:before { + content: "\e7b2"; +} + +.icon-video-camera:before { + content: "\e962"; +} + +.icon-qixiang:before { + content: "\e67c"; +} + +.icon-shexiangtou-lixian:before { + content: "\ef1c"; +} + +.icon-shexiangtou-zaixian:before { + content: "\ef1d"; +} + +.icon-shudianxianlu_2722010801:before { + content: "\efed"; +} + +.icon-tupian_normal:before { + content: "\e681"; +} + +.icon-fubing:before { + content: "\e7ac"; +} + diff --git a/src/assets/fonts/iconfont.ttf b/src/assets/fonts/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f88f6d5979ca2631cbdfcda3dc2102ddcdd82d99 GIT binary patch literal 8524 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 literal 0 HcmV?d00001 diff --git a/src/components/Sidebar.vue b/src/components/Sidebar.vue index a8e480d..870841d 100644 --- a/src/components/Sidebar.vue +++ b/src/components/Sidebar.vue @@ -29,18 +29,18 @@ export default { path: "/upgradation", name: "上传APK/OTA", }, - // { - // path: "/upgradationOta", - // name: "上传Ota", - // }, + // { + // path: "/upgradationOta", + // name: "上传Ota", + // }, { path: "/activity", name: "活动列表", }, - + // { - // path: "/userlist", - // name: "用户列表", + // path: "/deviceConfig", + // name: "设备配置", // }, ], }; diff --git a/src/main.js b/src/main.js index b592b15..6b58739 100644 --- a/src/main.js +++ b/src/main.js @@ -6,7 +6,7 @@ import ElementUI from "element-ui"; import "umy-ui/lib/theme-chalk/index.css"; // 引入样式 // import "element-ui/lib/theme-chalk/index.css"; import "../src/assets/css/theme/index.css"; //cac主题 - +import "./assets/fonts/iconfont.css"; //按钮 Vue.use(ElementUI, { size: "small", }); diff --git a/src/router/index.js b/src/router/index.js index ac8ba79..c2fab26 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -4,7 +4,6 @@ import VueRouter from "vue-router"; Vue.use(VueRouter); const routes = [ - { path: "/login", name: "login", @@ -61,7 +60,7 @@ const routes = [ keepAlive: true, }, }, - + { path: "/activity", component: () => import("../views/activityList/index.vue"), @@ -71,6 +70,15 @@ const routes = [ keepAlive: true, }, }, + { + path: "/deviceConfig", + component: () => import("../views/deviceConfig/index.vue"), + name: "deviceConfig", + meta: { + title: "设备配置", + keepAlive: true, + }, + }, { path: "/userlist", component: () => import("../views/userList/index.vue"), diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 9594337..faee4ad 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -7,6 +7,14 @@ export function loginJoggle(data) { data, }); } +//获取树状结构 +export function getdyTreeListJoggle(data) { + return request({ + url: "/xymanager/getdyTreeList", + method: "post", + data, + }); +} //获取用户装置信息 export function getTerminalJoggle(data) { @@ -21,11 +29,10 @@ export function exportTerminalApi(data) { url: "/xymanager/terminal/exportForMaintain", method: "get", params: data, - responseType: 'blob' + responseType: "blob", }); } - //获取规约 export function getProtocolList(data) { return request({ @@ -34,7 +41,7 @@ export function getProtocolList(data) { params: data, }); } -//获取 电压 线路 杆塔 +//获取 电压 线路 杆塔 export function getSearchInfo(data) { return request({ url: "/xymanager/getLineAndGt", @@ -106,7 +113,6 @@ export function cmdActlistApi(data) { }); } - //查询已经下发的命令 export function cmdActHislistApi(data) { return request({ @@ -155,7 +161,6 @@ export function logDeleteApi(data) { }); } - //获取升级列表 export function upgradeListApi(data) { return request({ @@ -196,22 +201,3 @@ export function upgradeDeleteApi(data) { }, }); } - - - - - - - - - - - - - - - - - - - diff --git a/src/views/deviceConfig/components/sideBar.vue b/src/views/deviceConfig/components/sideBar.vue new file mode 100644 index 0000000..9a946a5 --- /dev/null +++ b/src/views/deviceConfig/components/sideBar.vue @@ -0,0 +1,240 @@ + + + diff --git a/src/views/deviceConfig/index.vue b/src/views/deviceConfig/index.vue new file mode 100644 index 0000000..64793e6 --- /dev/null +++ b/src/views/deviceConfig/index.vue @@ -0,0 +1,46 @@ + + + diff --git a/src/views/homePage/index.vue b/src/views/homePage/index.vue index b6a1d4b..44a9206 100644 --- a/src/views/homePage/index.vue +++ b/src/views/homePage/index.vue @@ -297,7 +297,23 @@ export default { this.formdata = jsonSearch; console.log(this.formdata); } else { - this.formdata = jsonSearch; + this.formdata = { + dyId: -1, + lineId: -1, + towerId: -1, + isonline: -1, + protocol: -1, + mntn: 1, + activityId: -1, + oid: "", + oidExclude: 0, + cmdid: "", + cmdidExclude: 0, + cma: "", + cmaExclude: 0, + version: "", + versionExclude: 0, + }; } // this.formdata = // JSON.parse(localStorage.getItem("searchParams")) !== null diff --git a/src/views/upgradation/index.vue b/src/views/upgradation/index.vue index a785880..f2f7c82 100644 --- a/src/views/upgradation/index.vue +++ b/src/views/upgradation/index.vue @@ -8,7 +8,8 @@ v-for="item in typeOptions" :key="item.value" :label="item.label" - :value="item.value"> + :value="item.value" + > @@ -45,7 +46,6 @@ >上传到服务器 -
@@ -70,19 +70,12 @@ > @@ -138,7 +131,7 @@ import { upgradeListApi, upgradeUpLoadApi, upgradeDeleteApi, - upgradeTitleApi + upgradeTitleApi, } from "@/utils/api/index"; export default { @@ -150,15 +143,18 @@ export default { fileList: [], reportData: { title: "", - type:0, + type: 0, }, - typeOptions:[{ + typeOptions: [ + { value: 0, - label: 'APK' - }, { - value:1, - label:'OTA' - }], + label: "APK", + }, + { + value: 1, + label: "OTA", + }, + ], fileData: [], //数据列表 fileloading: false, editShow: false, @@ -183,19 +179,19 @@ export default { methods: { //双击选中复制 handleClick(row) { - console.log(row) - // 创建一个新的a标签元素 - const a = document.createElement('a'); - // 设置a标签的href属性为文件的URL - a.href = '/apk/'+row.path; - console.log(a.href) - // 设置文件名(可选,取决于服务器配置) - a.download = row.fileName; // 你希望保存的文件名 - // 触发点击事件 - document.body.appendChild(a); - a.click(); - // 然后移除a标签 - document.body.removeChild(a); + console.log(row); + // 创建一个新的a标签元素 + const a = document.createElement("a"); + // 设置a标签的href属性为文件的URL + a.href = "/apk/" + row.path; + console.log(a.href); + // 设置文件名(可选,取决于服务器配置) + a.download = row.fileName; // 你希望保存的文件名 + // 触发点击事件 + document.body.appendChild(a); + a.click(); + // 然后移除a标签 + document.body.removeChild(a); }, //上传进度 handleProgress(event, file, fileList) { @@ -212,19 +208,19 @@ export default { beforeUpload(file) { const fileName = file.name; console.log(fileName); - if (fileName.toLowerCase().includes('apk')) { - this.reportData.type=0 + if (fileName.toLowerCase().includes("apk")) { + this.reportData.type = 0; } - if (fileName.toLowerCase().includes('zip')) { - this.reportData.type=1 - } - if (fileName.length > 19) { - this.$message.error("文件名长度不能超过 19 个字符!"); - return false; // 阻止文件自动上传 + if (fileName.toLowerCase().includes("zip")) { + this.reportData.type = 1; } + // if (fileName.length > 19) { + // this.$message.error("文件名长度不能超过 19 个字符!"); + // return false; // 阻止文件自动上传 + // } return true; // 允许文件继续上传 }, - + //上传apk submitUpload() { //console.log(); @@ -264,7 +260,6 @@ export default { this.getUpgradeList(); this.progressLoading = false; } else { - this.$message({ duration: 1500, showClose: true, @@ -278,7 +273,7 @@ export default { }) .catch((error) => {}); }, - + getUpgradeList() { this.fileloading = true; upgradeListApi() @@ -353,7 +348,7 @@ export default { height: calc(100% - 24px); width: calc(100% - 24px); padding: 12px; - + .upgradeBox { height: 32px; line-height: 32px; @@ -457,12 +452,12 @@ export default { .el-table::before { height: 1px !important; } - .buttonText{ - color:#169e8c; + .buttonText { + color: #169e8c; cursor: pointer; &:hover { - text-decoration: underline; - } + text-decoration: underline; + } } } .el-dialog__headerbtn {