| | |
| | | .el-popper.weather-popover[x-placement^=bottom] .popper__arrow::after { |
| | | border-bottom-color: #FFFFFF !important; |
| | | } |
| | | |
| | | /*进度条颜色*/ |
| | | .black-font-color .el-progress-bar__innerText { |
| | | color: #000; |
| | | } |
| | |
| | | logo: { |
| | | label: '平台logo', |
| | | des: '显示平台logo状态', |
| | | fileName: 'gjdw', // gjdw, nfdw, gjdx, qwh |
| | | fileName: 'gjdx', // gjdw, nfdw, gjdx, qwh |
| | | value: false, |
| | | }, |
| | | uKey: { |
| | |
| | | label: '短信验证码', |
| | | des: '登录是否启用短信验证码', |
| | | value: false, |
| | | } |
| | | }, |
| | | autoExit: { |
| | | label: "自动退出", |
| | | des: "长时间不操作自动退出", |
| | | value: false |
| | | }, |
| | | }; |
| | |
| | | msg: '取值范围0~99.9(保留一位小数)' |
| | | }, |
| | | }, |
| | | update: { |
| | | types: [ |
| | | { |
| | | key: 0, |
| | | label: "升级LD9", |
| | | fileName: "E51_DFU.SM5", |
| | | value: 0 |
| | | }, |
| | | { |
| | | key: 1, |
| | | label: "升级显示屏", |
| | | fileName: "BatterTester.SM5", |
| | | value: 1 |
| | | } |
| | | ], |
| | | stopReason: [ |
| | | { |
| | | label: "无", |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: "参数错误", |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: "CRC错误", |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: "操作失败", |
| | | value: 3 |
| | | }, |
| | | { |
| | | label: "正在工作", |
| | | value: 4 |
| | | }, |
| | | { |
| | | label: "正在均衡测试", |
| | | value: 5 |
| | | }, |
| | | { |
| | | label: "文件长度错误", |
| | | value: 6 |
| | | }, |
| | | { |
| | | label: "升级文件不存在", |
| | | value: 7 |
| | | }, |
| | | { |
| | | label: "升级文件不符合要求", |
| | | value: 8 |
| | | }, |
| | | { |
| | | label: "远程停止", |
| | | value: 9 |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | |
| | | level: 2, |
| | | }, |
| | | { |
| | | label: "9度设备升级", |
| | | name: "nineDevUpdate", |
| | | src: "#/jobManage/nineDevUpdate", |
| | | closable: true, |
| | | id: 6003, |
| | | menuId: 6, |
| | | enableduse: true, |
| | | ord: 3, |
| | | level: 2, |
| | | }, |
| | | { |
| | | label: "放电计划管理", |
| | | name: "planManage", |
| | | src: "#/jobManage/planManage", |
| | |
| | | ord: 2, |
| | | level: 2, |
| | | }, |
| | | // 最大ord=2 |
| | | // 最大ord=3 |
| | | ], |
| | | }, |
| | | { |
New file |
| | |
| | | /** |
| | | * 更新表格数据 |
| | | * @param tblData 表格数据 |
| | | * @param data 最新数据 |
| | | * @param key 校验的属性 |
| | | */ |
| | | function updateTable(tblData, data, key) { |
| | | tblData.map(item=>{ |
| | | let obj = getItemByValue(data, item[key], key); |
| | | if(obj) { |
| | | Object.keys(obj).forEach(key2=>{ |
| | | item[key2] = obj[key2]; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function getItemByValue(data, value, key) { |
| | | let result = null; |
| | | for(let i=0; i<data.length; i++) { |
| | | let item = data[i]; |
| | | if(item[key] == value) { |
| | | result = item; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | export default updateTable; |
| | |
| | | import getPageMenu from "@/assets/js/tools/getPageMenu"; |
| | | import { checkUserLogin, getAllRealAlarm } from "@/assets/js/api"; |
| | | import {Timeout} from "@/assets/js/tools"; |
| | | import config from "@/assets/js/config"; |
| | | |
| | | let timer; |
| | | export default { |
| | |
| | | } |
| | | } |
| | | return { |
| | | config: config, |
| | | newItems: [], |
| | | acTabs: acTabs, |
| | | tabs: tabs, |
| | |
| | | this.getAllRealAlarm(); |
| | | }, 1000); |
| | | |
| | | // 开启长时间不操作自动退出 |
| | | if(this.config.autoExit.value) { |
| | | // 开启监控鼠标移动 |
| | | window.addEventListener("mousemove", this.changeLastTime); |
| | | |
| | | // 启动监控 |
| | | this.listenLastTime(); |
| | | } |
| | | |
| | | }, |
| | | destroyed() { |
| | | // 开启长时间不操作自动退出 |
| | | if(this.config.autoExit.value) { |
| | | // 移除监控鼠标移动 |
| | | window.removeEventListener("mousemove", this.changeLastTime); |
| | | this.timer2.stop(); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
New file |
| | |
| | | import axios from "axios"; |
| | | |
| | | export default { |
| | | /** |
| | | * 查询可升级的LD9设备 |
| | | * @param data 查询条件 |
| | | * json:{"StationName1":"xx","StationName2":"xx","StationName5":"xx",StartNum":1,"Size":2} |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | searchLd9(data) { |
| | | // 查询接口 |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'BattInfAction!getPageLD9', |
| | | data: 'json='+JSON.stringify(data) |
| | | }); |
| | | }, |
| | | /** |
| | | * 更新LD9设备 |
| | | * @param data |
| | | * json:{"deviceId":"401900001","updateEn":"1","updateType":"1","updateFile":"test.SM5"} |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | startUpdate(data) { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'LD9UpdateStateAction!updateUpdateFile', |
| | | data: 'json='+JSON.stringify(data) |
| | | }); |
| | | }, |
| | | } |
New file |
| | |
| | | <template> |
| | | <div class="params-container"> |
| | | <el-form |
| | | ref="ruleForm" |
| | | size="mini" |
| | | label-position="top" |
| | | :model="params" |
| | | class="params-dialog bg-white"> |
| | | <el-form-item label="机房名称"> |
| | | <el-input :value="info.StationName" readonly></el-input> |
| | | </el-form-item> |
| | | <el-row :gutter="layout.gutter"> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="升级类型"> |
| | | <el-select v-model="params.updateType" @change="changeType"> |
| | | <el-option |
| | | v-for="(item, key) in types" |
| | | :key="'key' + key" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="layout.span"> |
| | | <el-form-item label="升级类型"> |
| | | <el-input v-model="params.updateFile" type="input" readonly></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="form-footer"> |
| | | <el-button type="primary" size="small" @click="confirmUpdate">启动升级</el-button> |
| | | <el-button type="danger" size="small" @click="close">取消</el-button> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {const_ld_nine} from "@/assets/js/const"; |
| | | import getItemByKey from "@/assets/js/tools/getItemByKey"; |
| | | import api from "@/pages/jobManage/api"; |
| | | export default { |
| | | name: "updateDev", |
| | | props: { |
| | | visible: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | info: { |
| | | type: Object, |
| | | default(){ |
| | | return {}; |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | let info = const_ld_nine.update; |
| | | return { |
| | | layout: { |
| | | gutter: 16, |
| | | span: 12 |
| | | }, |
| | | params: { |
| | | deviceId: 0, |
| | | updateEn: 1, |
| | | updateType: 0, |
| | | updateFile: "E51_DFU.SM5", |
| | | }, |
| | | types: info.types |
| | | } |
| | | }, |
| | | methods: { |
| | | changeType(type) { |
| | | let item = getItemByKey(type, this.types); |
| | | this.params.updateFile = item.fileName; |
| | | }, |
| | | // 确认框 |
| | | confirmUpdate() { |
| | | this.$layer.prompt({title: '输入启动升级口令,并确认', formType: 2, area: ['300px', '180px']}, (pass, index) => { |
| | | // 请求后台校验密码 |
| | | this.$apis.login.checkUserPwd(pass).then(res=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | if(rs.code == 1) { |
| | | // 关闭弹出框 |
| | | this.$layer.close(index); |
| | | this.$layer.msg("密码检测通过,启动升级"); |
| | | // 启动测试 |
| | | this.startUpdate(); |
| | | }else { |
| | | this.$layer.msg("启动升级口令错误!"); |
| | | } |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | this.$layer.msg("网络请求异常"); |
| | | }); |
| | | }); |
| | | }, |
| | | startUpdate() { |
| | | let params = this.params; |
| | | api.startUpdate(params).then(res=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | if(rs.code == 1) { |
| | | this.$layer.msg("启动升级成功!"); |
| | | // 关闭弹出框 |
| | | this.close(); |
| | | }else { |
| | | this.$layer.msg("启动升级失败!"); |
| | | } |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | this.$layer.msg("启动升级失败,请检测网络!"); |
| | | }); |
| | | }, |
| | | close() { |
| | | this.$emit("update:visible", false); |
| | | }, |
| | | }, |
| | | mounted() { |
| | | let info = this.info; |
| | | this.params.deviceId = info.deviceId; |
| | | this.params.updateType = info.updateType; |
| | | this.changeType(info.updateType); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .params-container { |
| | | width: 400px; |
| | | background-color: #ececec; |
| | | } |
| | | .form-footer { |
| | | padding-bottom: 8px; |
| | | margin-bottom: 0; |
| | | } |
| | | .form-footer .three-btn { |
| | | margin-left: 12px; |
| | | } |
| | | .red-color { |
| | | color: #FF0000; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <flex-layout :loading="loading"> |
| | | <div slot="header"> |
| | | <div class="table-layout filter-box-table"> |
| | | <div class="table-row"> |
| | | <div class="table-cell text-right">省:</div> |
| | | <div class="table-cell"> |
| | | <el-select |
| | | v-model="filters.values.province" |
| | | @change="searchCity" |
| | | size="small" placeholder="请选择省"> |
| | | <el-option |
| | | v-for="item in filters.data.province" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="table-cell text-right">市:</div> |
| | | <div class="table-cell"> |
| | | <el-select |
| | | v-model="filters.values.city" |
| | | @change="searchCounty" |
| | | size="small" placeholder="请选择市"> |
| | | <el-option |
| | | v-for="item in filters.data.city" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="table-cell text-right">区/县:</div> |
| | | <div class="table-cell"> |
| | | <el-select |
| | | v-model="filters.values.county" |
| | | size="small" placeholder="请选择区/县"> |
| | | <el-option |
| | | v-for="item in filters.data.county" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="flex-page-content"> |
| | | <el-table stripe size="small" :data="table.data" height="100%"> |
| | | <el-table-column label="编号" align="center" :min-width="50"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="StationName" label="机房名称" |
| | | align="center" :min-width="360" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="deviceVersion" label="版本号" |
| | | align="center" :min-width="160" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="updateFile" label="升级文件名称" |
| | | align="center" :min-width="160" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="updateTypeText" label="升级类型" |
| | | align="center" :min-width="120" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="stopReasonText" label="停止原因" |
| | | align="center" :min-width="120" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="updateEnText" label="升级状态" |
| | | align="center" :min-width="120" |
| | | :show-overflow-tooltip="true"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="升级进度" |
| | | align="center" :min-width="200" |
| | | :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <el-progress class="black-font-color" :text-inside="true" :stroke-width="22" :percentage="scope.row.percent"></el-progress> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="currentPackageNum" label="当前数据包编号" |
| | | align="center" :min-width="120" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="countPackage" label="总数据包" |
| | | align="center" :min-width="120" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="startTime" label="开始升级时间" |
| | | align="center" :min-width="180" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | prop="updateTime" label="更新日期" |
| | | align="center" :min-width="180" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="操作" |
| | | width="180" |
| | | align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="primary" size="mini" :disabled="scope.row.disabledUpdate" @click="showUpdateDialog(scope.row)">升级</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <!-- 底部 --> |
| | | <div class="flex-page-footer" slot="footer"> |
| | | <!-- 底部分页 --> |
| | | <div class="el-pagination-btns"> |
| | | <el-button type="primary" round size="mini" @click="searchData(true)" icon="el-icon-search">查询</el-button> |
| | | </div> |
| | | <el-pagination |
| | | class="pagess" |
| | | :current-page="pageCurr" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :page-sizes="[10, 20, 30, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"></el-pagination> |
| | | </div> |
| | | <el-dialog |
| | | title="设计参数设置" |
| | | width="auto" |
| | | :visible.sync="updateDialog" |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" |
| | | :modal-append-to-body="false"> |
| | | <update-dev :visible.sync="updateDialog" :info="updateDev" v-if="updateDialog"></update-dev> |
| | | </el-dialog> |
| | | </flex-layout> |
| | | </template> |
| | | |
| | | <script> |
| | | import api from "@/pages/jobManage/api"; |
| | | import {const_ld_nine} from "@/assets/js/const"; |
| | | import {getLabelByValue, Timeout} from "@/assets/js/tools"; |
| | | import updateTable from "@/assets/js/tools/updateTable"; |
| | | import UpdateDev from "@/pages/jobManage/dialog/updateDev"; |
| | | export default { |
| | | name: "nineDevUpdate", |
| | | components: {UpdateDev}, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | updateDialog: false, |
| | | updateDev: {}, |
| | | pageCurr: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | filters: { |
| | | values: { |
| | | province: '', |
| | | city: '', |
| | | county: '', |
| | | }, |
| | | data: { |
| | | province: [], |
| | | city: [], |
| | | county: [], |
| | | } |
| | | }, |
| | | table: { |
| | | data: [] |
| | | }, |
| | | updateInfo: const_ld_nine.update, |
| | | timer: new Timeout("nineDevUpdate"), |
| | | } |
| | | }, |
| | | methods: { |
| | | searchProvince() { // 查询省 |
| | | |
| | | // 开启loading |
| | | this.loading = true; |
| | | |
| | | this.$axios({ |
| | | method:"post", |
| | | url:"User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup", |
| | | data:null |
| | | }).then((res)=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if(rs.code == 1) { |
| | | let rsData = rs.data; |
| | | // 遍历结果集 |
| | | for(let i=0; i<rsData.length; i++) { |
| | | let _rsData = rsData[i]; |
| | | let tmp = { |
| | | label: _rsData, |
| | | value: _rsData |
| | | }; |
| | | data.push(tmp); |
| | | } |
| | | } |
| | | // 设置第一笔数据 |
| | | data.unshift({ |
| | | label: "全部(共"+data.length+"种)", |
| | | value: '' |
| | | }); |
| | | // 设置省 |
| | | this.filters.data.province = data; |
| | | // 查询市 |
| | | this.searchCity(); |
| | | }); |
| | | }, |
| | | searchCity() { |
| | | // 重置值 |
| | | this.filters.values.city=""; |
| | | this.filters.values.county=""; |
| | | // 构造查询条件 |
| | | let searchParams = { |
| | | StationName1: this.filters.values.province |
| | | }; |
| | | // 请求后台 |
| | | this.$axios({ |
| | | method:"post", |
| | | url:"BattInfAction!serchAllStationName2", |
| | | data:"json="+JSON.stringify(searchParams) |
| | | }).then((res)=>{ |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if(rs.code == 1) { |
| | | let rsData = rs.data; |
| | | // 遍历结果集 |
| | | for(let i=0; i<rsData.length; i++) { |
| | | let _rsData = rsData[i]; |
| | | let tmp = { |
| | | label: _rsData, |
| | | value: _rsData |
| | | }; |
| | | data.push(tmp); |
| | | } |
| | | } |
| | | // 设置第一笔数据 |
| | | data.unshift({ |
| | | label: "全部(共"+data.length+"种)", |
| | | value: '' |
| | | }); |
| | | // 设置市 |
| | | this.filters.data.city = data; |
| | | // 查询区县 |
| | | this.searchCounty(); |
| | | }); |
| | | }, |
| | | searchCounty(){ |
| | | // 重置值 |
| | | this.filters.values.county=""; |
| | | // 构造查询条件 |
| | | let searchParams = { |
| | | StationName1: this.filters.values.province, |
| | | StationName2: this.filters.values.city |
| | | }; |
| | | // 请求后台 |
| | | this.$axios({ |
| | | method:"post", |
| | | url:"BattInfAction!serchAllStationName5", |
| | | data:"json="+JSON.stringify(searchParams) |
| | | }).then((res)=>{ |
| | | var rs = JSON.parse(res.data.result); |
| | | var data = []; |
| | | if(rs.code == 1) { |
| | | var rsData = rs.data; |
| | | // 遍历结果集 |
| | | for(var i=0; i<rsData.length; i++) { |
| | | var _rsData = rsData[i]; |
| | | var tmp = { |
| | | label: _rsData, |
| | | value: _rsData |
| | | }; |
| | | data.push(tmp); |
| | | } |
| | | } |
| | | // 设置第一笔数据 |
| | | data.unshift({ |
| | | label: "全部(共"+data.length+"种)", |
| | | value: '' |
| | | }); |
| | | // 设置区县 |
| | | this.filters.data.county = data; |
| | | |
| | | // 查询数据 |
| | | this.searchData(true); |
| | | }); |
| | | }, |
| | | searchData(search) { |
| | | if(!this.loading && search) { |
| | | this.loading = true; |
| | | } |
| | | let searchParam = this.getSearchParam(); |
| | | // 请求后台 |
| | | api.searchLd9(searchParam).then(res=>{ |
| | | // 关闭loading |
| | | this.loading = false; |
| | | // 格式化数据 |
| | | let rs = JSON.parse(res.data.result); |
| | | let data = []; |
| | | if(rs.data) { |
| | | data = rs.data.map(item=>{ |
| | | let tmp = item.ld9UpdateStatus; |
| | | tmp.StationName = item.StationName; |
| | | tmp.disabledUpdate = tmp.deviceVersion?false:true; |
| | | tmp.updateTypeText = getLabelByValue(tmp.updateType, this.updateInfo.types, "未知"); |
| | | tmp.stopReasonText = getLabelByValue(tmp.stopReason, this.updateInfo.stopReason, "未知"); |
| | | tmp.updateEnText = tmp.updateEn?"正在升级中":"待升级"; |
| | | tmp.percent = tmp.countPackage?Math.floor((tmp.currentPackageNum/tmp.countPackage)*100):0; |
| | | if(!tmp.disabledUpdate) { |
| | | tmp.disabledUpdate = tmp.updateEn?true:false; |
| | | } |
| | | return tmp; |
| | | }); |
| | | this.total = rs.sum; |
| | | }else { |
| | | this.total = 0; |
| | | } |
| | | // 单纯的查询 |
| | | if(search) { |
| | | // 设置表格数据 |
| | | this.table.data = data; |
| | | // 停止计时器 |
| | | this.timer.stop(); |
| | | this.startUpdate(); |
| | | }else { |
| | | // 更新表格数据 |
| | | updateTable(this.table.data, data, "deviceId"); |
| | | this.timer.open(); |
| | | } |
| | | |
| | | }).catch(error => { |
| | | console.log(error); |
| | | // 关闭loading |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | startUpdate() { |
| | | this.timer.start(()=>{ |
| | | this.searchData(); |
| | | }, 4000); |
| | | }, |
| | | // 展示数据数量 |
| | | handleSizeChange(val) { |
| | | this.pageSize = val; |
| | | this.searchData(true); |
| | | }, |
| | | // 翻页 |
| | | handleCurrentChange(val) { |
| | | this.pageCurr = val; |
| | | this.searchData(true); |
| | | }, |
| | | // 获取查询参数 |
| | | getSearchParam() { |
| | | let filters = this.filters.values; |
| | | let StartNum = this.pageCurr; |
| | | let Size = this.pageSize; |
| | | return { |
| | | StationName1: filters.province, |
| | | StationName2: filters.city, |
| | | StationName5: filters.county, |
| | | StartNum: StartNum, |
| | | Size: Size |
| | | } |
| | | }, |
| | | showUpdateDialog(data) { |
| | | this.updateDev = data; |
| | | this.updateDialog = true; |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.searchProvince();//查询省 |
| | | }, |
| | | destroyed() { |
| | | // 停止计时器 |
| | | this.timer.stop(); |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .flex-page-footer { |
| | | padding: 6px 0; |
| | | box-sizing: border-box; |
| | | text-align: center; |
| | | } |
| | | .el-pagination-btns { |
| | | margin-left: 8px; |
| | | margin-right: 8px; |
| | | display: inline-block; |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/btsUpgrade.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/nineDevUpdate', |
| | | name: 'nineDevUpdate', |
| | | meta: { |
| | | title: '9度设备升级' |
| | | }, |
| | | component: (resolve) => require(['../pages/jobManage/nineDevUpdate.vue'], resolve) |
| | | }, |
| | | { |
| | | path: '/jobManage/addplan1', |
| | | meta: { |