5 文件已重命名
3个文件已修改
1个文件已删除
6个文件已添加
| | |
| | | import axios from "./axios"; |
| | | import md5 from "js-md5"; |
| | | /** |
| | | * 登录系统 |
| | | * 参数 "uinf.UName="+用户名+"&uinf.Upassword="+密码+"&uinf.UId="+是否记住密码(0,1) |
| | | * 密码需要使用hex_md5加密 |
| | | */ |
| | | export const login = (username, password) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `LoginAction_login?uinf.UName=${username}&uinf.Upassword=${md5(password)}&uinf.UId=0`, |
| | | data: null |
| | | }) |
| | | } |
| | | |
| | | //查询系统名称 |
| | | export const searchPlatformName = (data) => { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'PageParamAction!findByCategoryId', |
| | | data: 'json=' + JSON.stringify({ categoryId: 5 }) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 获取维护员告警列表 |
| | | */ |
| | | export const searchAllByUserIdAndStatus = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!searchAllByUserIdAndStatus`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询订单当前最新状态 |
| | | */ |
| | | export const updateWorkAlarm = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!updateWorkAlarm`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 开始处理更新状态 |
| | | */ |
| | | export const searchStatusById = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!searchStatusById`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | import axios from "@/assets/js/axios"; |
| | | |
| | | /** |
| | | * 文件上传 |
| | |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 更新告警处理 |
| | | */ |
| | | export const updateUserWork = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!updateUserWork`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询告警处理详情 |
| | | */ |
| | | export const serchByCondition = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!serchByCondition`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询维护员告警列表 |
| | | */ |
| | | export const getTaskListWithFlag = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `WorkAlarmAction!getTaskListWithFlag`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 根据站点查询相关人员 |
| | | */ |
| | | export const getUserInfoByStationId = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `User_infAction!getUserInfoByStationId`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 确认指派任务订单 |
| | | */ |
| | | export const dispatchTask = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `WorkAlarmAction!dispatchTask`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询机房信息 |
| | | * 参数:json = {"StationName1":"北京市","StationName2":"市辖区","StationName5":"海淀区"} |
| | | */ |
| | | export const searchStation = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "BattInfAction!serchAllStationName", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询电池组信息 |
| | | * 参数:json = {"StationName1":"北京市","StationName2":"市辖区","StationName5":"海淀区","StationName3":"紫晶科技机房"} |
| | | */ |
| | | export const searchBattInfo = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "BattInfAction!serchAllBattinf", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 根据电池组ID查询电池组信息 |
| | | * @param data |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | export const getBattGroupInfo = (params) => { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'BattInfAction!findByBattGroupId', |
| | | data: 'bif.BattGroupId=' + params, |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询电池告警参数 |
| | | * 参数:json={"dev_id":910000022} |
| | | */ |
| | | export const realTimeAlarm = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "Dev_paramAction!serchParamById", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 根据电池组id查询该电池组中所有电池信息 (图表数据) |
| | | * json={"BattGroupId":1005074} |
| | | */ |
| | | export const realTimeSearch = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "Batt_rtdataAction_serchByCondition", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 根据电池组id查询电池组实时组端信息 |
| | | * 参数:rtstate.battGroupId=1005074 |
| | | */ |
| | | export const realTimeGroup = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "Batt_rtstateAction_serchByCondition", |
| | | data: "rtstate.battGroupId=" + params |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询历史实时数据 |
| | | * @param json:{"dev_id":618500002} |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | export const JhStateActionSerchByCondition = (params) => { |
| | | // 查询后台 |
| | | return axios({ |
| | | method: "post", |
| | | url: "JhStateAction_action_serchByCondition", |
| | | data: "json=" + JSON.stringify(params) |
| | | }); |
| | | } |
| | |
| | | import Vue from 'vue'; |
| | | import axios from 'axios'; |
| | | import rejectReplay from "@/assets/js/rejectReplay"; |
| | | if (process.env.NODE_ENV == 'dev') { |
| | | // 跨域请求 |
| | | axios.defaults.baseURL = 'http://localhost:8919/fg/'; |
| | | axios.defaults.withCredentials = true; // 保持请求头 |
| | | axios.defaults.withCredentials = true; // 保持请求头 |
| | | } |
| | | |
| | | |
| | | |
| | | // 添加请求拦截器 |
| | | axios.interceptors.request.use(function (config) { |
| | | // 防重放操作 |
| | | let rejectReplayStr = rejectReplay(); |
| | | let url = config.url; |
| | | if (url.indexOf("?") == -1) { |
| | | url = url.trim() + "?" + rejectReplayStr; |
| | | } else { |
| | | url = url.trim() + "&" + rejectReplayStr; |
| | | } |
| | | config.url = url; |
| | | // 在发送请求之前做些什么 |
| | | return config; |
| | | }, function (error) { |
New file |
| | |
| | | function randomString(length) { |
| | | var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
| | | var result = ''; |
| | | for (var i = length; i > 0; --i) { |
| | | result += str[Math.floor(Math.random() * str.length)]; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | export default randomString; |
New file |
| | |
| | | import randomString from "@/assets/js/randomString"; |
| | | import md5 from "js-md5"; |
| | | |
| | | function rejectReplay() { |
| | | let t = sessionStorage.getItem("serverStamp") || new Date().getTime() + ""; |
| | | let rd = randomString(10); |
| | | let sign = getSign(t, rd); |
| | | return 't=' + t + "&sign=" + sign + "&rd=" + rd; |
| | | } |
| | | |
| | | function getSign(time, randomStr) { |
| | | let usefulNum = randomStr; |
| | | //加盐方式,根据末尾的值进行不同的加密规则 |
| | | let lastChar = time.charAt(12); |
| | | let lastNum = Number(lastChar); |
| | | let reg = new RegExp(lastChar, 'g'); |
| | | switch (lastNum) { |
| | | //在第一位加字符串 rd@c3doed |
| | | case 0: usefulNum += time.replace(reg, "rd@c3dozero"); break; |
| | | case 1: usefulNum += time.replace(reg, "rd@c3doenoe"); break; |
| | | case 2: usefulNum += time.replace(reg, "rd@c3doktwo"); break; |
| | | case 3: usefulNum += time.replace(reg, "rd@c3dolthree"); break; |
| | | case 4: usefulNum += time.replace(reg, "rd@c3doexfour"); break; |
| | | case 5: usefulNum += time.replace(reg, "rd@c3doedefive"); break; |
| | | case 6: usefulNum += time.replace(reg, "rd@c3doedhsix"); break; |
| | | case 7: usefulNum += time.replace(reg, "rd@c3doedtseven"); break; |
| | | case 8: usefulNum += time.replace(reg, "rd@c3doedbeight"); break; |
| | | case 9: usefulNum += time.replace(reg, "rd@c3doedrnine"); break; |
| | | } |
| | | //MD5加密后 |
| | | let signNow = md5(usefulNum); |
| | | let sb = ""; |
| | | for (let i = 0; i < 10; i++) { |
| | | sb += signNow.charAt(i * 2); |
| | | } |
| | | let signResult = sb + signNow; |
| | | return signResult; |
| | | } |
| | | |
| | | export default rejectReplay; |
File was renamed from src/pages/alarm-details.vue |
| | |
| | | searchStatusById, |
| | | dispatchTask, |
| | | updateUserWork, |
| | | } from "@/assets/js/api" |
| | | } from "@/pages/alarm/js/api" |
| | | import { mapState } from "vuex" |
| | | import vUpload from "@/components/v-upload.vue" |
| | | export default { |
File was renamed from src/pages/alarm-handle.vue |
| | |
| | | <template> |
| | | <div class="alarm-handle"> |
| | | <van-nav-bar |
| | | title="告警处理" |
| | | @click-left="$router.back()" |
| | | left-arrow |
| | | fixed |
| | | safe-area-inset-top |
| | | placeholder |
| | | > |
| | | <van-nav-bar title="告警处理" @click-left="$router.back()" left-arrow fixed safe-area-inset-top placeholder> |
| | | </van-nav-bar> |
| | | <div class="handleCon"> |
| | | <div class="textareaCon"> |
| | | <van-field |
| | | v-model="alarmInfo.description" |
| | | rows="2" |
| | | autosize |
| | | label="告警描述" |
| | | type="textarea" |
| | | placeholder="请输入告警描述…" |
| | | show-word-limit |
| | | /> |
| | | <v-upload |
| | | :value="alarmInfo.imageBefore" |
| | | @valChange="beforeUploadChange" |
| | | :stationId="stationId" |
| | | afterOrBefore="before" |
| | | class="upload" |
| | | > |
| | | <van-field v-model="alarmInfo.description" rows="2" autosize label="告警描述" type="textarea" placeholder="请输入告警描述…" show-word-limit /> |
| | | <v-upload :value="alarmInfo.imageBefore" @valChange="beforeUploadChange" :stationId="stationId" afterOrBefore="before" class="upload"> |
| | | </v-upload> |
| | | </div> |
| | | <div class="textareaCon"> |
| | | <van-field |
| | | v-model="alarmInfo.workWay" |
| | | rows="2" |
| | | autosize |
| | | label="处理方法" |
| | | type="textarea" |
| | | placeholder="请输入处理方法…" |
| | | show-word-limit |
| | | /> |
| | | <v-upload |
| | | :value="alarmInfo.imageAfter" |
| | | @valChange="afterUploadChange" |
| | | :stationId="stationId" |
| | | afterOrBefore="after" |
| | | class="upload" |
| | | > |
| | | <van-field v-model="alarmInfo.workWay" rows="2" autosize label="处理方法" type="textarea" placeholder="请输入处理方法…" show-word-limit /> |
| | | <v-upload :value="alarmInfo.imageAfter" @valChange="afterUploadChange" :stationId="stationId" afterOrBefore="after" class="upload"> |
| | | </v-upload> |
| | | </div> |
| | | <div class="textareaCon"> |
| | | <van-field |
| | | v-model="alarmInfo.workSuggest" |
| | | rows="2" |
| | | autosize |
| | | label="意见建议" |
| | | type="textarea" |
| | | placeholder="请输入意见建议…" |
| | | show-word-limit |
| | | /> |
| | | <van-field v-model="alarmInfo.workSuggest" rows="2" autosize label="意见建议" type="textarea" placeholder="请输入意见建议…" show-word-limit /> |
| | | </div> |
| | | <div class="btnCon"> |
| | | <div class="subBtn" @click="submit(1)">保存</div> |
| | |
| | | |
| | | <script> |
| | | import vUpload from "@/components/v-upload.vue" |
| | | import { updateUserWork, serchByCondition } from "@/assets/js/api" |
| | | import { updateUserWork, serchByCondition } from "@/pages/alarm/js/api" |
| | | export default { |
| | | components: { |
| | | vUpload, |
File was renamed from src/pages/alarm-list.vue |
| | |
| | | import { |
| | | searchAllByUserIdAndStatus, |
| | | getTaskListWithFlag |
| | | } from '@/assets/js/api' |
| | | } from "@/pages/alarm/js/api" |
| | | import { |
| | | mapState, |
| | | } from 'vuex'; |
New file |
| | |
| | | import axios from "@/assets/js/axios"; |
| | | |
| | | |
| | | /** |
| | | * 获取维护员告警列表 |
| | | */ |
| | | export const searchAllByUserIdAndStatus = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!searchAllByUserIdAndStatus`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询订单当前最新状态 |
| | | */ |
| | | export const updateWorkAlarm = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!updateWorkAlarm`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 开始处理更新状态 |
| | | */ |
| | | export const searchStatusById = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!searchStatusById`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 文件上传 |
| | | */ |
| | | export const uploadAlarmFile = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `MyFileAction!uploadAlarmFile`, |
| | | headers: { |
| | | "Content-Type": "multipart/form-data" |
| | | }, |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 删除文件 |
| | | */ |
| | | export const deleteAlarmFile = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `MyFileAction!deleteAlarmFile`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 更新告警处理 |
| | | */ |
| | | export const updateUserWork = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!updateUserWork`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询告警处理详情 |
| | | */ |
| | | export const serchByCondition = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!serchByCondition`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 查询维护员告警列表 |
| | | */ |
| | | export const getTaskListWithFlag = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `WorkAlarmAction!getTaskListWithFlag`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 根据站点查询相关人员 |
| | | */ |
| | | export const getUserInfoByStationId = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `User_infAction!getUserInfoByStationId`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 确认指派任务订单 |
| | | */ |
| | | export const dispatchTask = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `WorkAlarmAction!dispatchTask`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
New file |
| | |
| | | <template> |
| | | <div class="user-list"> |
| | | <van-nav-bar title="人员列表" @click-left="$router.back()" left-arrow fixed safe-area-inset-top placeholder> |
| | | </van-nav-bar> |
| | | <van-empty description="暂无人员" v-if='Object.keys(frindslist)==""' /> |
| | | <div v-else> |
| | | <van-index-bar :sticky="false" highlight-color="#4B88F9"> |
| | | <div v-for="(item,key) in frindslist" :key='key'> |
| | | <van-index-anchor :index="key" /> |
| | | <div v-if="item"> |
| | | <van-cell class="cell" v-for="(user,index) in item" :key='index' @click="selectUser(user)"> |
| | | <div class="friends-name">{{user.UName}}</div> |
| | | </van-cell> |
| | | </div> |
| | | </div> |
| | | </van-index-bar> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getUserInfoByStationId, |
| | | } from "@/pages/alarm/js/api" |
| | | export default { |
| | | data() { |
| | | return { |
| | | frindslist: {}, //存储排序后的人员列表 |
| | | } |
| | | }, |
| | | methods: { |
| | | loadUserList() { |
| | | let stationId = this.$route.query.stationId; |
| | | let postData = { |
| | | StationId: stationId |
| | | } |
| | | getUserInfoByStationId(postData).then((res) => { |
| | | let resData = JSON.parse(res.data.result) |
| | | if (resData.code == 1) { |
| | | this.sortUserData(resData.data); |
| | | } |
| | | }).catch((err) => { |
| | | console.log(err) |
| | | }); |
| | | }, |
| | | //把返回的数据整理成列表需要的数据 |
| | | sortUserData(data) { |
| | | var list = data || []; |
| | | /******通讯录成员排序按字母 start******/ |
| | | const Letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
| | | let obj = {}; //存储好友数据 {"A":[{},{}],"Y":[{},{}]} |
| | | //1.给数据中添加pinyin(拼音)和initial(首字母)字段,将数据根据首字母归类在obj中 |
| | | for (var i = 0; i < list.length; i++) { |
| | | list[i].pinyin = this.$units.convertToPinyin.pinyin.getFullChars(list[i].UName); // 名称转换为拼音 |
| | | var initial = list[i].pinyin.substr(0, 1).toUpperCase(); //首字母 |
| | | list[i].initial = Letters.indexOf(initial) > -1 ? initial : '#'; //首字母不为汉字或字母时归到#中 |
| | | if (!obj[initial]) obj[initial] = []; |
| | | obj[initial].push(list[i]); |
| | | } |
| | | var initialArr = Object.keys(obj).sort(); //获取到key值并对key值排序 (3) ["H", "L", "Y"] |
| | | var result = []; |
| | | //2.给values[]排序 |
| | | for (var i = 0; i < initialArr.length; i++) { |
| | | var thisInitial = initialArr[i]; // "H" |
| | | result = obj[thisInitial].sort(this.compare('UName')); //排序 |
| | | obj[thisInitial] = result; //排序后重新把值赋给键值对 |
| | | } |
| | | //3.根据排序后的key遍历对象并重新赋值 |
| | | initialArr.forEach(function (key) { |
| | | obj[key] |
| | | }) |
| | | this.frindslist = this.objKeySort(obj); |
| | | // console.log("obj:" + JSON.stringify(this.frindslist)); |
| | | /******通讯录成员排序按字母 end******/ |
| | | }, |
| | | //字母类中每个排序 |
| | | compare(property) { |
| | | return function (a, b) { |
| | | var arr = [a[property], b[property]].sort(); |
| | | return arr[0] != a[property] ? 1 : -1; |
| | | } |
| | | }, |
| | | //对象整体根据字母顺序排序排序 |
| | | objKeySort(obj) { //排序的函数 |
| | | var newkey = Object.keys(obj).sort(); |
| | | //先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组 |
| | | var newObj = {}; //创建一个新的对象,用于存放排好序的键值对 |
| | | for (var i = 0; i < newkey.length; i++) { //遍历newkey数组 |
| | | newObj[newkey[i]] = obj[newkey[i]]; //向新创建的对象中按照排好的顺序依次增加键值对 |
| | | } |
| | | return newObj; //返回排好序的新对象 |
| | | }, |
| | | //选择人员 |
| | | selectUser(user) { |
| | | sessionStorage.setItem('assignUser', JSON.stringify(user)) |
| | | this.$router.back(); |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.loadUserList() |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .user-list { |
| | | width: 100%; |
| | | min-height: 100%; |
| | | background: #F5F5F5; |
| | | } |
| | | </style> |
New file |
| | |
| | | import axios from "@/assets/js/axios"; |
| | | import md5 from "js-md5"; |
| | | /** |
| | | * 登录系统 |
| | | * 参数 "uinf.UName="+用户名+"&uinf.Upassword="+密码+"&uinf.UId="+是否记住密码(0,1) |
| | | * 密码需要使用hex_md5加密 |
| | | */ |
| | | export const login = (username, password, verity) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `LoginAction_login?uinf.UName=${username}&uinf.Upassword=${md5(password)}&uinf.UNote=${verity}&uinf.UId=0`, |
| | | data: null |
| | | }); |
| | | }; |
| | | |
| | | export const getLoginVerity = () => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `MessageAction!getFontDynamicCode`, |
| | | data: null |
| | | }); |
| | | }; |
| | | |
| | | //查询系统名称 |
| | | export const searchPlatformName = () => { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'PageParamAction!findByCategoryId', |
| | | data: 'json=' + JSON.stringify({ categoryId: 5 }) |
| | | }) |
| | | } |
File was renamed from src/pages/login.vue |
| | |
| | | <div class="appName">{{ platformName }}</div> |
| | | <div class="login-title">登录</div> |
| | | <div class="lineInput"> |
| | | <img src="../assets/img/login-ico1.png" class="ico1"> |
| | | <img src="../../assets/img/login-ico1.png" class="ico1"> |
| | | <van-field v-model="userName" placeholder="请输入账号" /> |
| | | </div> |
| | | <div class="lineInput"> |
| | | <img src="../assets/img/login-ico2.png" class="ico2"> |
| | | <img src="../../assets/img/login-ico2.png" class="ico2"> |
| | | <van-field v-model="password" placeholder="请输入密码" type="password" /> |
| | | </div> |
| | | <div class="subBtn" @click="submit">登录</div> |
| | |
| | | <script> |
| | | import { |
| | | login, |
| | | searchPlatformName |
| | | } from "@/assets/js/api"; |
| | | searchPlatformName, |
| | | getLoginVerity |
| | | } from "@/pages/login/js/api"; |
| | | import { |
| | | mapMutations, |
| | | } from 'vuex'; |
| | |
| | | return { |
| | | userName: '', |
| | | password: '', |
| | | verifyCode: '', |
| | | platformName: "", |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.changeVerifyCode() |
| | | this.searchPlatformName(); |
| | | }, |
| | | methods: { |
| | |
| | | message: '登录中...', |
| | | duration: 0 |
| | | }) |
| | | login(self.userName, self.password).then(res => { |
| | | login(self.userName, self.password, self.verifyCode).then(res => { |
| | | // 对结果进行处理 |
| | | self.handleLogin(res) |
| | | }).catch(error => { |
| | | // 关闭等待 |
| | | // console.log(error); |
| | | self.$toast("网络异常"); |
| | | }); |
| | | }, |
| | | changeVerifyCode() { |
| | | getLoginVerity().then(res => { |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | this.verifyCode = rs.data + ""; |
| | | } else { |
| | | this.verifyCode = ""; |
| | | } |
| | | }).catch(error => { |
| | | this.verifyCode = ""; |
| | | }); |
| | | }, |
| | | // 登录验证 |
| | |
| | | path: '/menu' |
| | | }) |
| | | } else { |
| | | this.changeVerifyCode(); |
| | | self.$toast(rs.msg); |
| | | } |
| | | }, |
| | |
| | | .logo-bg { |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url("../assets/img/logo-bg.png") 0 0 no-repeat; |
| | | background: url("../../assets/img/logo-bg.png") 0 0 no-repeat; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | left: 0; |
New file |
| | |
| | | import axios from "@/assets/js/axios"; |
| | | |
| | | /** |
| | | * 查询机房信息 |
| | | * 参数:json = {"StationName1":"北京市","StationName2":"市辖区","StationName5":"海淀区"} |
| | | */ |
| | | export const searchStation = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "BattInfAction!serchAllStationName", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | /** |
| | | * 查询电池组信息 |
| | | * 参数:json = {"StationName1":"北京市","StationName2":"市辖区","StationName5":"海淀区","StationName3":"紫晶科技机房"} |
| | | */ |
| | | export const searchBattInfo = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "BattInfAction!serchAllBattinf", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | /** |
| | | * 根据电池组ID查询电池组信息 |
| | | * @param data |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | export const getBattGroupInfo = (params) => { |
| | | return axios({ |
| | | method: 'post', |
| | | url: 'BattInfAction!findByBattGroupId', |
| | | data: 'bif.BattGroupId=' + params, |
| | | }) |
| | | } |
| | | /** |
| | | * 查询电池告警参数 |
| | | * 参数:json={"dev_id":910000022} |
| | | */ |
| | | export const realTimeAlarm = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "Dev_paramAction!serchParamById", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | /** |
| | | * 根据电池组id查询该电池组中所有电池信息 (图表数据) |
| | | * json={"BattGroupId":1005074} |
| | | */ |
| | | export const realTimeSearch = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "Batt_rtdataAction_serchByCondition", |
| | | data: "json=" + JSON.stringify(params) |
| | | }) |
| | | } |
| | | /** |
| | | * 根据电池组id查询电池组实时组端信息 |
| | | * 参数:rtstate.battGroupId=1005074 |
| | | */ |
| | | export const realTimeGroup = (params) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: "Batt_rtstateAction_serchByCondition", |
| | | data: "rtstate.battGroupId=" + params |
| | | }) |
| | | } |
| | | /** |
| | | * 查询历史实时数据 |
| | | * @param json:{"dev_id":618500002} |
| | | * @returns {AxiosPromise} |
| | | */ |
| | | export const JhStateActionSerchByCondition = (params) => { |
| | | // 查询后台 |
| | | return axios({ |
| | | method: "post", |
| | | url: "JhStateAction_action_serchByCondition", |
| | | data: "json=" + JSON.stringify(params) |
| | | }); |
| | | } |
File was renamed from src/pages/real-monitoring.vue |
| | |
| | | realTimeSearch, |
| | | realTimeGroup, |
| | | JhStateActionSerchByCondition, |
| | | } from "@/assets/js/api" |
| | | } from "@/pages/monitoring/js/api" |
| | | import BarChart from "@/components/chart/BarChart"; |
| | | import progressBlockVerticalBar from "@/components/chart/progress-block-vertical-bar"; |
| | | import getMarkLineData from "@/components/chart/js/getMarkLineData"; |
| | |
| | | }, { |
| | | path: '/login', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/login.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/login/login.vue'], resolve) |
| | | }, { |
| | | path: '/menu', |
| | | meta: {}, |
| | |
| | | }, { |
| | | path: '/alarmList', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/alarm-list.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/alarm/alarm-list.vue'], resolve) |
| | | }, { |
| | | path: '/alarmDetails', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/alarm-details.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/alarm/alarm-details.vue'], resolve) |
| | | }, { |
| | | path: '/alarmHandle', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/alarm-handle.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/alarm/alarm-handle.vue'], resolve) |
| | | }, { |
| | | path: '/userList', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/user-list.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/alarm/user-list.vue'], resolve) |
| | | }, { |
| | | path: '/realMonitoring', |
| | | meta: {}, |
| | | component: (resolve) => require(['@/pages/real-monitoring.vue'], resolve) |
| | | component: (resolve) => require(['@/pages/monitoring/real-monitoring.vue'], resolve) |
| | | },]; |