From 5ee0d36e051d591f930ba93ba660e45f10710c3f Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期四, 05 五月 2022 13:30:31 +0800 Subject: [PATCH] bug修复 --- src/views/equipmentManagement/index.vue | 3 src/views/register/components/BaseInfo.vue | 44 ++-- vue.config.js | 1 src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue | 2 src/views/hashrate/CameraManage/index.vue | 17 + src/views/product/components/ProductContent.vue | 1 src/views/index/index.vue | 25 ++ src/components/Connect.vue | 1 src/components/Footer.vue | 2 src/components/giantTree/zTree/ztree.vue | 33 ++- src/api/search.ts | 30 +- src/views/search/Searching.vue | 13 src/views/equipmentManagement/equipmentList/components/Content.vue | 38 +-- src/api/login.js | 2 src/views/equipmentManagement/equipmentList/components/FormList.vue | 9 src/views/productDetail/index.vue | 18 - src/views/search/components/LeftNav.vue | 2 src/components/IndexHeader.vue | 30 +- src/components/wasmPlayer/index.vue | 2 src/components/subComponents/PwInput.vue | 59 ++++++ src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue | 8 src/components/giantTree/index.vue | 1 src/main.ts | 4 src/views/register/components/ResetPassword.vue | 10 src/views/manageCenter/index.vue | 2 src/views/register/components/SelectType.vue | 4 src/views/search/components/wasmPlayer/index.vue | 2 src/scripts/httpRequest.ts | 25 -- src/scripts/component.js | 7 src/components/Header.vue | 3 src/views/connectUs/components/consult.vue | 2 src/scripts/validate.js | 25 +- src/views/login/components/loginForm.vue | 10 src/assets/css/element-variables.scss | 33 +++ src/views/equipmentManagement/equipmentList/components/AddBox.vue | 15 + src/Pool/VideoPhotoData.ts | 2 36 files changed, 312 insertions(+), 173 deletions(-) diff --git a/src/Pool/VideoPhotoData.ts b/src/Pool/VideoPhotoData.ts index e86de54..e73e50d 100644 --- a/src/Pool/VideoPhotoData.ts +++ b/src/Pool/VideoPhotoData.ts @@ -287,7 +287,7 @@ // }); let taskNames = []; this.tasks = []; - rsp.data.forEach((d: any) => { + rsp.data.aggs.forEach((d: any) => { if (taskNames.indexOf(d.name) < 0) { taskNames.push(d.name); this.tasks.push(d) diff --git a/src/api/login.js b/src/api/login.js index 14e0413..e824ffa 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -145,7 +145,7 @@ //鑱旂郴鎴戜滑 export const saveConnectUs = (data) => { return request({ - url: "/saas/api-i/saasIndex/saveConnectUs", + url: "/cloud/api-i/saasIndex/saveConnectUs", method: "post", data, }); diff --git a/src/api/search.ts b/src/api/search.ts index 94cdfef..74c4dee 100644 --- a/src/api/search.ts +++ b/src/api/search.ts @@ -3,7 +3,7 @@ // 妫�绱㈤〉闈㈡暟鎹垪琛� export const getSearchList = (query: any) => { return request({ - url: "/data/api-v/es/esSearch", + url: "/saas/api-s/es/search", method: "post", data: query }); @@ -21,7 +21,7 @@ // 妫�绱㈤〉闈㈡爣绛炬煡璇� export const getTagList = (query: any) => { return request({ - url: "/data/api-v/es/tagList", + url: "/saas/api-s/es/tagList", method: "post", data: query }); @@ -30,25 +30,27 @@ // 妫�绱㈤〉闈换鍔″垪琛ㄦ煡璇� export const getTaskList = (query: any) => { return request({ - url: "/data/api-v/task/aggregateTaskList", - method: "get", - params: query - }); -}; - -// 瀛楀吀鏌ヨ锛堝竷闃茬瓑绾э級 -export const getAlarmLevel = (query: any) => { - return request({ - url: "/saas/api-s/dictionary/findByType", - method: "get", + url: "/saas/api-s/es/aggTaskList", + method: "post", data: query }); }; +// 鑾峰彇鏍囩瀛楀吀 +// param:type + +export const getAlarmLevel = (query: any) => { + return request({ + url: '/saas/api-s/dictionary/findByType', + method: "get", + params: query + }) +} + // export const findPerson = (query: any) => { return request({ - url: "/data/api-v/es/queryEsCompareData", + url: "/saas/api-s/es/queryEsCompareData", method: "post", data: query }); diff --git a/src/assets/css/element-variables.scss b/src/assets/css/element-variables.scss new file mode 100644 index 0000000..cdceab1 --- /dev/null +++ b/src/assets/css/element-variables.scss @@ -0,0 +1,33 @@ +/** +* I think element-ui's default theme color is too light for long-term use. +* So I modified the default color and you can modify it to your liking. +**/ + +/* theme color */ +// $--color-primary: #3D68E1; +$--color-primary: #0064FF; +$--color-success: #13ce66; +$--color-warning: #ff8725; +$--color-danger: #f52323; +$--color-info: #EAEAEA; +$--color-themeBlue: #0064FF; + +$--button-font-weight: 400; + +// $--color-text-regular: #1f2d3d; + +$--border-color-light: #dfe4ed; +$--border-color-lighter: #e6ebf5; + +$--table-border:1px solid #dfe6ec; + +/* icon font path, required */ +$--font-path: '~element-ui/lib/theme-chalk/fonts'; + +@import "~element-ui/packages/theme-chalk/src/index"; + +// the :export directive is the magic sauce for webpack +// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass +:export { + theme: $--color-primary; +} \ No newline at end of file diff --git a/src/components/Connect.vue b/src/components/Connect.vue index f4914e4..7377522 100644 --- a/src/components/Connect.vue +++ b/src/components/Connect.vue @@ -88,6 +88,7 @@ background: #ffffff; box-shadow: 0px 4px 12px rgba(0, 51, 128, 0.18); border-radius: 8px; + z-index: 2; .tele, .advice { diff --git a/src/components/Footer.vue b/src/components/Footer.vue index a0b128a..382c817 100644 --- a/src/components/Footer.vue +++ b/src/components/Footer.vue @@ -8,7 +8,7 @@ <span class="label">娉曞緥澹版槑</span> <span class="label">闅愮鏀跨瓥</span> <span class="label">寤夋涓炬姤</span> - <span class="label">鑱旂郴鎴戜滑</span> + <span class="label" @click="$router.push('/connectUs')">鑱旂郴鎴戜滑</span> <span class="label">鍔犲叆鎴戜滑</span> </div> </div> diff --git a/src/components/Header.vue b/src/components/Header.vue index 319c3d8..8aa2dc4 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -7,7 +7,7 @@ <div class="right"> <div class="link"><router-link to="/">棣栭〉</router-link></div> - <div class="link">鑱旂郴鎴戜滑</div> + <div class="link" @click="$router.push('/connectUs')">鑱旂郴鎴戜滑</div> <div class="link">鍏充簬鎴戜滑</div> </div> </div> @@ -48,6 +48,7 @@ .link { margin-right: 20px; + cursor: pointer; } } } diff --git a/src/components/IndexHeader.vue b/src/components/IndexHeader.vue index 9f17990..badc01c 100644 --- a/src/components/IndexHeader.vue +++ b/src/components/IndexHeader.vue @@ -6,17 +6,11 @@ <router-link to="/"> <img class="logo" src="/images/index/LOGO.png" alt="" /> </router-link> - <router-link to="/"> - <div class="title">宸ヤ笟鐗╄仈缃戝钩鍙�</div> - </router-link> - <div class="label"><router-link to="/">棣栭〉</router-link></div> + <div class="title" @click="$router.push('/')">宸ヤ笟鐗╄仈缃戝钩鍙�</div> + <div class="label" @click="$router.push('/')">棣栭〉</div> <div class="label">浜戞湇鍔�</div> - <div class="label"> - <router-link to="/manageCenter">绠$悊涓績</router-link> - </div> - <div class="label"> - <router-link to="/product">搴旂敤鍟嗗煄</router-link> - </div> + <div class="label" @click="$router.push('/manageCenter')">绠$悊涓績</div> + <div class="label" @click="$router.push('/product')">搴旂敤鍟嗗煄</div> </div> <!-- 宸︿晶 --> @@ -37,11 +31,19 @@ </el-input> <!-- 鏈櫥褰曟儏鍐� --> - <div class="headerLogin" v-if="!userInfo"> - <router-link to="/login"> 鐧诲綍</router-link> + <div + class="headerLogin" + v-if="!userInfo" + @click="$router.push('/login')" + > + 鐧诲綍 </div> - <div class="register" v-if="!userInfo"> - <router-link to="/register"> 鍏嶈垂娉ㄥ唽 </router-link> + <div + class="register" + v-if="!userInfo" + @click="$router.push('/register')" + > + 鍏嶈垂娉ㄥ唽 </div> <!-- 宸茬櫥褰曟儏鍐� --> diff --git a/src/components/giantTree/index.vue b/src/components/giantTree/index.vue index 13ad53d..502fc00 100644 --- a/src/components/giantTree/index.vue +++ b/src/components/giantTree/index.vue @@ -404,6 +404,7 @@ } .tree-menu { // max-width: 350px; + min-height: 92px; overflow-x: auto; overflow-y: hidden; margin-bottom: 4px; diff --git a/src/components/giantTree/zTree/ztree.vue b/src/components/giantTree/zTree/ztree.vue index c66a40c..c6a3b0f 100644 --- a/src/components/giantTree/zTree/ztree.vue +++ b/src/components/giantTree/zTree/ztree.vue @@ -152,10 +152,11 @@ !this.readonly && !this.gb28181 ) { - const btn = document.createElement("i"); + const btn = document.createElement("a"); btn.id = `${treeid}_${treeNode.id}_btn`; btn.classList.add("addIcon"); btn.classList.add("iconfont"); + btn.title = "鏂板"; // btn.innerText = '鍒犻櫎'; btn.addEventListener("click", (e) => { e.stopPropagation(); @@ -175,10 +176,11 @@ !treeNode.children && !this.gb28181 ) { - const btn = document.createElement("i"); + const btn = document.createElement("a"); btn.id = `${treeid}_${treeNode.id}_btn`; btn.classList.add("delIcon"); btn.classList.add("iconfont"); + btn.title = "鍒犻櫎"; // btn.innerText = '鍒犻櫎'; btn.addEventListener("click", (e) => { e.stopPropagation(); @@ -196,10 +198,11 @@ treeNode.isParent && !this.readonly ) { - const btn = document.createElement("i"); + const btn = document.createElement("a"); btn.id = `${treeid}_${treeNode.id}_btn`; btn.classList.add("editIcon"); btn.classList.add("iconfont"); + btn.title = "缂栬緫"; // btn.innerText = '鍒犻櫎'; btn.addEventListener("click", (e) => { e.stopPropagation(); @@ -217,10 +220,11 @@ !this.readonly && !this.gb28181 ) { - const btn = document.createElement("i"); + const btn = document.createElement("a"); btn.id = `${treeid}_${treeNode.id}_btn`; btn.classList.add("iconfont"); btn.classList.add("addCameraIcon"); + btn.title = "娣诲姞鎽勫儚鏈�"; // btn.innerText = '鍒犻櫎'; btn.addEventListener("click", (e) => { e.stopPropagation(); @@ -239,10 +243,11 @@ !this.readonly && !this.gb28181 ) { - const btn = document.createElement("i"); + const btn = document.createElement("a"); btn.id = `${treeid}_${treeNode.id}_btn`; btn.classList.add("iconfont"); btn.classList.add("importIcon"); + btn.title = "瀵煎叆鎽勫儚鏈�"; // btn.innerText = '鍒犻櫎'; btn.addEventListener("click", (e) => { e.stopPropagation(); @@ -259,12 +264,13 @@ !item.querySelector(".icontupian1") && treeNode.type == "camera" ) { - const btn = document.createElement("i"); + const btn = document.createElement("a"); btn.id = `${treeid}_${treeNode.id}_btn`; btn.classList.add("iconfont"); btn.classList.add("icontupian1"); btn.classList.add("primary"); btn.classList.add("icon-fix"); + btn.title = "鏌ョ湅搴曞浘"; // btn.innerText = '鍒犻櫎'; btn.addEventListener("click", (e) => { e.stopPropagation(); @@ -405,6 +411,11 @@ text-align: left; white-space: nowrap; outline: 0; + + .iconfont { + padding: 0; + padding-top: 3px; + } } .ztree li ul { margin: 0; @@ -474,7 +485,7 @@ color: #5f5f5f; } -.ztree li i.icon-fix { +.ztree li a.icon-fix { font-size: 15px; margin-left: 3px; margin-right: 5px; @@ -482,10 +493,10 @@ top: 2px; } -.ztree li i.primary { +.ztree li a.primary { color: #3d68e1; } -.ztree li i.danger { +.ztree li a.danger { color: #f7493c; } @@ -522,7 +533,7 @@ background-position: 0 -14px; } .ztree li span.button.chk.checkbox_false_part { - background-position: 0 -28px; + background-position: -14px 0; } .ztree li span.button.chk.checkbox_false_part_focus { background-position: 0 -42px; @@ -537,7 +548,7 @@ background-position: -14px -14px; } .ztree li span.button.chk.checkbox_true_part { - background-position: -14px -28px; + background-position: -14px 0; } .ztree li span.button.chk.checkbox_true_part_focus { background-position: -14px -42px; diff --git a/src/components/subComponents/PwInput.vue b/src/components/subComponents/PwInput.vue new file mode 100644 index 0000000..d1ba79f --- /dev/null +++ b/src/components/subComponents/PwInput.vue @@ -0,0 +1,59 @@ +<template> + <el-input + :placeholder="placeholder" + class="PwInput" + :type="[flag ? 'text' : 'password']" + v-model="inputVal" + @input="input" + autocomplete="off" + > + <i slot="prefix" class="iconfont" v-if="showPreIcon"></i> + + <i + slot="suffix" + class="iconfont showPass" + autocomplete="auto" + @click="flag = !flag" + > + {{ flag ? "" : "" }} + </i> + </el-input> +</template> + +<script> +export default { + props: { + value: {}, + showPreIcon: {}, + placeholder: { + default: "璇疯緭鍏ュ瘑鐮�", + }, + }, + data() { + return { + flag: false, + inputVal: this.value, + }; + }, + methods: { + input() { + this.$emit("input", this.inputVal); + }, + }, + watch: { + value(val) { + this.inputVal = val; + }, + }, +}; +</script> + +<style lang="scss" > +.PwInput { + .showPass { + margin-top: 8px; + font-size: 24px; + cursor: pointer; + } +} +</style> \ No newline at end of file diff --git a/src/components/wasmPlayer/index.vue b/src/components/wasmPlayer/index.vue index 9f43bdf..f9f9f3e 100644 --- a/src/components/wasmPlayer/index.vue +++ b/src/components/wasmPlayer/index.vue @@ -74,6 +74,7 @@ <i class="el-icon-download jsmodern-video-download" @click="downLoad" + style="margin: 9px 0 0 15px" ></i> </section> @@ -819,6 +820,7 @@ } .video-error { + text-align: center; position: absolute; top: 35%; left: 30%; diff --git a/src/main.ts b/src/main.ts index 9359c6e..7363b3e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -12,9 +12,10 @@ import VueAwesomeSwiper from "vue-awesome-swiper"; import ToggleButton from 'vue-js-toggle-button'; -import ImageShow from './scripts/component.js' +import {ImageShow,PwInput} from './scripts/component.js' import "swiper/dist/css/swiper.css"; +import './assets/css/element-variables.scss' @@ -27,6 +28,7 @@ Vue.use(VueAwesomeSwiper as any); Vue.use(ToggleButton) Vue.use(ImageShow) +Vue.use(PwInput) diff --git a/src/scripts/component.js b/src/scripts/component.js index b0924d3..ae74329 100644 --- a/src/scripts/component.js +++ b/src/scripts/component.js @@ -1,9 +1,14 @@ // 寮曞叆缁勪欢 import ImageShow from "@/components/subComponents/ImageShow.vue"; +import PwInput from "@/components/subComponents/PwInput.vue"; // 鍒涘缓涓┖瀵硅薄 // 璁剧疆瀹夎鏂规硶 ImageShow.install = function(Vue) { Vue.component("ImageShow", ImageShow); }; + +PwInput.install = function(Vue) { + Vue.component("PwInput", PwInput); +}; // 瀵煎嚭瀵硅薄 -export default ImageShow; +export { ImageShow, PwInput }; diff --git a/src/scripts/httpRequest.ts b/src/scripts/httpRequest.ts index 848eba0..97b48e4 100644 --- a/src/scripts/httpRequest.ts +++ b/src/scripts/httpRequest.ts @@ -138,26 +138,7 @@ case 500: errJson = error.response.data break - // case 501: - // errJson.status = error.response.status; - // errJson.message = "鏈嶅姟鏈疄鐜�(501)"; - // break; - // case 502: - // errJson.status = error.response.status; - // errJson.message = "缃戠粶閿欒(502)"; - // break; - // case 503: - // errJson.status = error.response.status; - // errJson.message = "鏈嶅姟涓嶅彲鐢�(503)"; - // break; - // case 504: - // errJson.status = error.response.status; - // errJson.message = "缃戠粶瓒呮椂(504)"; - // break; - // case 505: - // errJson.status = error.response.status; - // errJson.message = "HTTP鐗堟湰涓嶅彈鏀寔(505)"; - // break; + default: errJson.status = error.response.status errJson.message = `杩炴帴鍑洪敊(${error.response.status})!` @@ -174,6 +155,10 @@ if(error.response&&error.response.data&&!error.response.data.success ) { errJson.message =error.response.data.msg } + + if(error.response.status == 401) { + return + } Notification({ title: '閿欒', diff --git a/src/scripts/validate.js b/src/scripts/validate.js index 742d89a..527cab9 100644 --- a/src/scripts/validate.js +++ b/src/scripts/validate.js @@ -9,23 +9,21 @@ return validMap.indexOf(str.trim()) >= 0; } -/* 鏍¢獙6鍒�20浣嶅瓧姣嶅拰鏁板瓧鐨勭敤鎴峰悕锛屼笉鑳戒互鏁板瓧寮�澶� */ +/* 鏍¢獙5鍒�20浣嶅瓧姣嶅拰鏁板瓧鐨勭敤鎴峰悕锛屼笉鑳戒互鏁板瓧寮�澶� */ export function validUser(str) { - const reg = /^[a-zA-Z0-9]{5,20}$/; + const reg = /^[a-zA-Z][a-zA-Z0-9]{4,20}$/; return reg.test(str); } /* 6鍒�14浣嶇殑鏁板瓧鍜屽瓧姣嶄互鍙婃爣鐐圭鍙风殑鑷冲皯涓ょ缁勫悎 */ export function validPassword(str) { - const reg = - /^(?!^[0-9]+$)(?!^[a-z]+$)(?!^[A-Z]+$)(?!^[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]+$)[a-z0-9A-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]{6,14}$/; + const reg = /^(?!^[0-9]+$)(?!^[a-z]+$)(?!^[A-Z]+$)(?!^[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]+$)[a-z0-9A-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]{6,14}$/; return reg.test(str); } /* 鍚堟硶uri */ export function validURL(url) { - const reg = - /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; + const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/; return reg.test(url); } @@ -53,16 +51,14 @@ * @returns {boolean} */ export function validEmail(rule, value, callback) { - const re = - /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (re.test(value)) { return callback(); } return callback(new Error("杈撳叆鐨勯偖绠遍敊璇�")); } export function emailNotRequired(rule, value, callback) { - const re = - /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (value != "") { if (re.test(value)) { return callback(); @@ -89,8 +85,7 @@ return callback(new Error("杈撳叆涓嶅彲浠ヤ负绌�")); } - const re = - /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; + const re = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; if (re.test(value)) { return callback(); } @@ -105,8 +100,7 @@ if (value == "" || typeof value == undefined) { callback(new Error("璇疯緭鍏ョ鍙e��")); } else { - const re = - /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/; + const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/; const rsCheck = re.test(value); if (!rsCheck) { callback(new Error("璇疯緭鍏ュ湪[0-65535]涔嬮棿鐨勭鍙e��")); @@ -119,7 +113,6 @@ //鏍¢獙鍩熷悕 export function vaildHost(str) { - let re = - /^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$/; + let re = /^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$/; return re.test(str); } diff --git a/src/views/connectUs/components/consult.vue b/src/views/connectUs/components/consult.vue index ecf226d..a549429 100644 --- a/src/views/connectUs/components/consult.vue +++ b/src/views/connectUs/components/consult.vue @@ -107,13 +107,11 @@ }, //鑾峰彇楠岃瘉鐮� getCode() { - let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; this.codeDisabled = true; this.getValidStr(); this.timer = setInterval(this.getValidStr, 1000); getVerifyCode({ phoneNum: this.formData.phoneNum, - username: loginName, }).then(() => { this.gotCode = true; }); diff --git a/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue b/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue index 3e02336..47e1f70 100644 --- a/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue +++ b/src/views/equipmentManagement/equipmentDetail/components/SettingBox.vue @@ -7,7 +7,7 @@ <el-select v-model="every" placeholder="璇烽�夋嫨" - popper-class="industrySelect" + popper-class="equipmentSelect" > <el-option v-for="item in periodOptions" @@ -35,7 +35,7 @@ <el-select v-model="cronValueObj.week" placeholder="璇烽�夋嫨" - popper-class="industrySelect" + popper-class="equipmentSelect" > <el-option v-for="item in weeks" @@ -52,7 +52,7 @@ <el-select v-model="cronValueObj.day" placeholder="璇烽�夋嫨" - popper-class="industrySelect" + popper-class="equipmentSelect" > <el-option v-for="item in days" @@ -400,7 +400,7 @@ </style> <style lang="scss"> -.industrySelect.el-select-dropdown.el-popper { +.equipmentSelect.el-select-dropdown.el-popper { margin: 0; .el-scrollbar { diff --git a/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue b/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue index cc12cf9..79ed391 100644 --- a/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue +++ b/src/views/equipmentManagement/equipmentDetail/components/UnbindBox.vue @@ -53,7 +53,7 @@ duration: 2500, offset: 57, }); - this.$emit("close"); + this.$emit("reflash"); } else { this.$notify({ type: "error", diff --git a/src/views/equipmentManagement/equipmentList/components/AddBox.vue b/src/views/equipmentManagement/equipmentList/components/AddBox.vue index 24e66fe..bcdfb74 100644 --- a/src/views/equipmentManagement/equipmentList/components/AddBox.vue +++ b/src/views/equipmentManagement/equipmentList/components/AddBox.vue @@ -250,21 +250,30 @@ }, async submit() { + let res = {}; if (this.addObj.type == "cluster") { - const res = await addCluster({ + res = await addCluster({ clusterPwd: this.auth_password, clusterId: this.addObj.id, }); } else { - const res = await addDeviceToUser({ + res = await addDeviceToUser({ clusterPwd: this.auth_password, deviceId: this.addObj.id, clusterId: this.addObj.cid, }); } + + if (res && res.success) { + this.$notify({ + type: "success", + message: "娣诲姞鎴愬姛", + }); + this.close(); + } }, showBox(type, id, cid) { - console.log(cid); + this.auth_password = ""; this.showPasswordBox = true; this.addObj = { type, diff --git a/src/views/equipmentManagement/equipmentList/components/Content.vue b/src/views/equipmentManagement/equipmentList/components/Content.vue index 8194efc..f3ef7b6 100644 --- a/src/views/equipmentManagement/equipmentList/components/Content.vue +++ b/src/views/equipmentManagement/equipmentList/components/Content.vue @@ -34,6 +34,9 @@ import AMapLoader from "@amap/amap-jsapi-loader"; import InfoCard from "@/views/equipmentManagement/equipmentList/components/InfoCard"; import FormList from "@/views/equipmentManagement/equipmentList/components/FormList"; + +import bus from "@/plugin/bus"; + export default { created() { window._AMapSecurityConfig = { @@ -41,9 +44,16 @@ }; }, mounted() { - this.searchingBtn(); - //DOM鍒濆鍖栧畬鎴愯繘琛屽湴鍥惧垵濮嬪寲 + this.initMap(""); + bus.$on("refleshNode", (node) => { + this.nodes = node; + this.initNode(); + }); }, + beforeDestroy() { + bus.$off("refleshNode"); + }, + components: { InfoCard, //璁惧淇℃伅寮瑰眰 FormList, //琛ㄦ牸 @@ -59,6 +69,7 @@ center: [116.06157, 39.66157], //鍦板浘涓績 activeNode: null, //閫変腑鐨勫湴鍥捐妭鐐� geocoder: {}, + myMaker: null, }; }, @@ -91,6 +102,9 @@ }, //鍒濆鍖栬妭鐐� initNode() { + if (this.myMaker) { + this.myMaker.destroy(); + } this.nodes.filter((item, index) => { //鏌ヨ琛屾斂浣嶇疆 this.geocoder.getAddress([item.lon, item.lat], (status, result) => { @@ -123,6 +137,7 @@ }); this.map.add(marker); + this.myMaker = marker; }); }); }, @@ -143,25 +158,6 @@ this.isFull = false; } this.initMap(status); - }, - - // 鏌ヨ鍒楄〃 - searchingBtn() { - let param = { - page: 1, - size: 999, - // startTime: this.searchTime[0], - // endTime: this.searchTime[1], - inputText: "", - }; - findDevList(param) - .then((res) => { - this.nodes = res.data.list; - this.initMap(""); - }) - .catch((err) => { - console.log(err); - }); }, }, }; diff --git a/src/views/equipmentManagement/equipmentList/components/FormList.vue b/src/views/equipmentManagement/equipmentList/components/FormList.vue index 01bd855..d643815 100644 --- a/src/views/equipmentManagement/equipmentList/components/FormList.vue +++ b/src/views/equipmentManagement/equipmentList/components/FormList.vue @@ -186,6 +186,9 @@ import UnbindBox from "@/views/equipmentManagement/equipmentDetail/components/UnbindBox"; import QuitClusterBox from "@/views/equipmentManagement/equipmentList/components/QuitClusterBox"; import JoinClusterBox from "@/views/equipmentManagement/equipmentList/components/JoinClusterBox"; + +import bus from "@/plugin/bus"; + export default { components: { AddBox, @@ -277,6 +280,8 @@ if (res.data.total <= this.size) { this.page = 1; } + + bus.$emit("refleshNode", this.dataList); }) .catch((err) => { console.log(err); @@ -296,7 +301,6 @@ //瑙g粦鎸夐挳 Untying(row) { - console.log(row); this.unbindId = row.devId; this.isShowUnbind = true; }, @@ -322,6 +326,7 @@ //鍏抽棴鏂板寮圭獥 closeAddBox() { this.isShowAdd = false; + this.searchingBtn(); }, // 鍏抽棴瑙g粦寮圭獥 closeUnbindBox() { @@ -330,6 +335,7 @@ //瑙g粦鎴愬姛鍥炶皟 reflash() { + console.log("1111"); this.isShowUnbind = false; this.searchingBtn(); }, @@ -367,6 +373,7 @@ padding: 60px 0 30px 0; font-size: 14px; border-bottom: 1px solid #e9ebee; + background-color: #fff; .left, .right, diff --git a/src/views/equipmentManagement/index.vue b/src/views/equipmentManagement/index.vue index dd75b8c..5484ec2 100644 --- a/src/views/equipmentManagement/index.vue +++ b/src/views/equipmentManagement/index.vue @@ -25,6 +25,9 @@ methods: { checkpermission() { const userInfo = JSON.parse(sessionStorage.getItem("userInfo")); + if (!userInfo) { + this.$router.push("/login"); + } const val = userInfo.permissions.find((item) => { return item == "deviceMng"; }); diff --git a/src/views/hashrate/CameraManage/index.vue b/src/views/hashrate/CameraManage/index.vue index 8e4bb27..9396978 100644 --- a/src/views/hashrate/CameraManage/index.vue +++ b/src/views/hashrate/CameraManage/index.vue @@ -123,6 +123,7 @@ }, }, created() { + console.log("------------"); this.getCluster(); this.TreeDataPool.readonly = false; @@ -186,6 +187,22 @@ const res = await getClusterDevList(); if (res && res.success) { this.clusterData = res.data.clusterList; + if (res.data.clusterList <= 0 && res.data.devList <= 0) { + this.$confirm( + "绯荤粺妫�娴嬪埌鎮ㄨ繕鏈坊鍔犺澶�, 璇峰湪璁惧绠$悊椤甸潰缁存姢", + "鎻愮ず", + { + confirmButtonText: "璺宠浆", + cancelButtonText: "鍙栨秷", + type: "warning", + } + ) + .then(() => { + this.$router.push("/manageCenter"); + }) + .catch(() => {}); + } + res.data.clusterList.forEach((item) => { this.clusterArr.push({ label: item.cluster_name, diff --git a/src/views/index/index.vue b/src/views/index/index.vue index 909df1d..2be6e4e 100644 --- a/src/views/index/index.vue +++ b/src/views/index/index.vue @@ -89,7 +89,7 @@ </div> </div> - <Connect v-if="showConnect"></Connect> + <Connect></Connect> <!-- 椤靛熬 --> <Footer></Footer> @@ -405,16 +405,33 @@ //娣诲姞婊氬姩鐩戝惉 scrollListener() { //椤甸潰婊戝姩瑙﹀彂浜嬩欢 (婊氬姩鏉$Щ鍔ㄥ垯璋冪敤鏄惁鏄剧ず杩斿洖椤堕儴鎸夐挳浜嬩欢) + var a = document.documentElement.clientHeight; // 婊氬姩瀹瑰櫒鐨勫彲瑙嗛珮 + var b = document.documentElement.scrollTop; // 婊氬姩鏉¤窛绂婚《閮ㄧ殑楂樺害 + var c = document.documentElement.scrollHeight; // 婊氬姩瀹瑰櫒鐨勬暣涓珮搴� - if (document.documentElement.scrollTop < 1100) { - this.showConnect = false; - } else { + if (c === a + b) { + //褰撴粴鍔ㄥ鍣ㄧ殑鍙楂�+婊氬姩瀹瑰櫒婊氬姩浜嗙殑楂樺害锛堟粴鍔ㄦ潯椤堕儴璺濈婊氬姩瀹瑰櫒椤堕儴鐨勮窛绂伙級 = 婊氬姩瀹瑰櫒鐨勬暣涓珮搴︽椂锛岃鏄庢粴鍔ㄦ潯鍒板簳浜� this.showConnect = true; + } else { + this.showConnect = false; } //妫�鏌ユ粴鍔ㄦ潯鏄惁鍦ㄩ《閮紝鎺у埗杩斿洖椤堕儴鎸夐挳鐨勯殣钘忓拰鏄剧ず }, }, + beforeRouteLeave(to, from, next) { + let userInfo = sessionStorage.getItem("userInfo"); + if ( + !userInfo && + to.path !== "/login" && + to.path !== "/register" && + to.path !== "/connectUs" + ) { + next({ path: "/login" }); + } else { + next(); + } + }, }; </script> diff --git a/src/views/login/components/loginForm.vue b/src/views/login/components/loginForm.vue index b1ac15a..b334c4b 100644 --- a/src/views/login/components/loginForm.vue +++ b/src/views/login/components/loginForm.vue @@ -12,22 +12,22 @@ > <el-form-item prop="loginName"> <el-input - v-model="user.loginName" + v-model.trim="user.loginName" placeholder="璇疯緭鍏ユ墜鏈哄彿 / 鐢ㄦ埛鍚�" > <i slot="prefix" class="iconfont"></i> </el-input> </el-form-item> <el-form-item prop="password" class="password-form-item"> - <el-input + <PwInput v-model="user.password" :showPreIcon="true"> </PwInput> + <!-- <el-input show-password @keyup.enter.native="userLogin" v-model="user.password" autocomplete="off" placeholder="璇疯緭鍏ュ瘑鐮�" > - <i slot="prefix" class="iconfont"></i> - </el-input> + </el-input> --> </el-form-item> <el-form-item> <el-button @@ -239,7 +239,7 @@ this.codeDisabled = true; this.getValidStr(); this.timer = setInterval(this.getValidStr, 1000); - makeVerifyCode({ phoneNum: this.phone.phoneNum, type:0 }) + makeVerifyCode({ phoneNum: this.phone.phoneNum, type: 0 }) .then(() => { this.gotCode = true; }) diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue index b5e1305..5242a6c 100644 --- a/src/views/manageCenter/index.vue +++ b/src/views/manageCenter/index.vue @@ -5,7 +5,7 @@ <div class="centerTitle"> <div class="heart"> - <div class="welcome">{{ userName }},娆㈣繋鎮ㄨ礉鎬濈绠$悊涓績.</div> + <div class="welcome">{{ userName }}, 娆㈣繋鎮ㄥ洖鍒拌礉鎬濈绠$悊涓績銆�</div> <div class="time">{{ timeMsg }}</div> </div> </div> diff --git a/src/views/product/components/ProductContent.vue b/src/views/product/components/ProductContent.vue index cbf0428..5b4436e 100644 --- a/src/views/product/components/ProductContent.vue +++ b/src/views/product/components/ProductContent.vue @@ -191,6 +191,7 @@ .Content { position: relative; width: 1280px; + min-height: calc(100vh - 148px); margin: 0 auto; .searchCard { diff --git a/src/views/productDetail/index.vue b/src/views/productDetail/index.vue index 28ba0de..9523177 100644 --- a/src/views/productDetail/index.vue +++ b/src/views/productDetail/index.vue @@ -57,20 +57,10 @@ publishStatus: 1, productType: 0, }; - findAllCenterProduct(param) - .then((res) => { - this.data.data = res.data.list[0]; - this.showData = true; - }) - .catch((err) => { - console.log(err); - this.$notify({ - type: "error", - message: "鏌ヨ浜у搧澶辫触", - duration: 2500, - offset: 57, - }); - }); + findAllCenterProduct(param).then((res) => { + this.data.data = res.data.list[0]; + this.showData = true; + }); }, }, }; diff --git a/src/views/register/components/BaseInfo.vue b/src/views/register/components/BaseInfo.vue index 1a0fbad..a72ead8 100644 --- a/src/views/register/components/BaseInfo.vue +++ b/src/views/register/components/BaseInfo.vue @@ -13,26 +13,24 @@ </el-form-item> <el-form-item prop="password"> - <el-input show-password v-model="user.password" placeholder="瀵嗙爜"> - </el-input> + <PwInput show-password v-model="user.password" placeholder="瀵嗙爜"> + </PwInput> </el-form-item> <el-form-item prop="repassword"> - <el-input - show-password - v-model="user.repassword" - placeholder="纭瀵嗙爜" - > - </el-input> + <PwInput show-password v-model="user.repassword" placeholder="纭瀵嗙爜"> + </PwInput> </el-form-item> <el-form-item prop="phoneNum"> - <div class="phoneNum"> + <div class="phoneNum" :class="{ isFocus: phoneFocus }"> <el-input placeholder="鎵嬫満鍙�" v-model="user.phoneNum" class="input-with-select" + @focus="phoneFocus = true" + @blur="phoneFocus = false" > - <div slot="prepend" class="teleSlot">+86(涓浗)</div> </el-input> + <div slot="prepend" class="teleSlot">+86(涓浗)</div> </div> </el-form-item> <el-form-item prop="verifyCode"> @@ -176,6 +174,7 @@ isWrong: false, countdown: 60, gotCode: false, + phoneFocus: false, }; }, methods: { @@ -324,11 +323,22 @@ &.is-error ::v-deep .el-input__inner:focus { border-color: #ff4b33; } + + .PwInput { + ::v-deep .iconfont { + margin-right: 5px; + font-size: 18px; + } + } } ::v-deep .el-input__inner { padding: 10px 20px; border-color: #c0c5cc; + + &:focus { + border-color: #0065ff; + } &::-webkit-input-placeholder { font-size: 14px; @@ -337,19 +347,13 @@ } .phoneNum { - ::v-deep .el-input-group__prepend { - margin: 0 4px; - padding: 0pt; - background-color: rgba($color: #fff, $alpha: 0); - border-right: none; - border-color: #c0c5cc; - } - + position: relative; ::v-deep .el-input__inner { - border-left: none; + padding-left: 120px; } - .teleSlot { + position: absolute; + top: 7px; width: 103px; height: 28px; line-height: 28px; diff --git a/src/views/register/components/ResetPassword.vue b/src/views/register/components/ResetPassword.vue index ffcab2b..135a0b1 100644 --- a/src/views/register/components/ResetPassword.vue +++ b/src/views/register/components/ResetPassword.vue @@ -15,7 +15,7 @@ <div class="phoneNum"> <el-input placeholder="璇疯緭鍏ユ敞鍐屾墜鏈哄彿" - v-model="formData.phoneNum" + v-model.trim="formData.phoneNum" class="input-with-select" > </el-input> @@ -43,22 +43,22 @@ </el-form-item> <el-form-item prop="password"> - <el-input + <PwInput show-password v-model="formData.password" placeholder="璇疯缃�6-14浣嶇櫥褰曞瘑鐮�" > - </el-input> + </PwInput> <div class="iconfont"></div> </el-form-item> <el-form-item prop="repassword"> - <el-input + <PwInput show-password v-model="formData.repassword" placeholder="纭瀵嗙爜" > - </el-input> + </PwInput> <div class="iconfont"></div> </el-form-item> diff --git a/src/views/register/components/SelectType.vue b/src/views/register/components/SelectType.vue index ad6bf1f..5c8aeb6 100644 --- a/src/views/register/components/SelectType.vue +++ b/src/views/register/components/SelectType.vue @@ -12,7 +12,7 @@ v-model="info.type" style="float: left; margin-top: 15px" > - <el-radio :label="1">涓汉寮�鍙戣��</el-radio> + <el-radio :label="1">涓汉</el-radio> <el-radio :label="2">鍏徃</el-radio> </el-radio-group> </el-form-item> @@ -29,7 +29,7 @@ <el-form-item label="鑱旂郴浜�" prop="contact" v-show="info.type == '2'"> <el-input v-model="info.contact" placeholder="璇疯緭鍏�"></el-input> </el-form-item> - <el-form-item label="閭"> + <el-form-item label="閭" prop="email"> <el-input v-model="info.email" clearable diff --git a/src/views/search/Searching.vue b/src/views/search/Searching.vue index a1fc267..f9bd1de 100644 --- a/src/views/search/Searching.vue +++ b/src/views/search/Searching.vue @@ -89,9 +89,9 @@ ></el-option> </el-select> </p> - <p class="p-level" style="width: 18%"> + <p class="p-level" style="width: 18%; margin-right: 20px"> <b>浜嬩欢绛夌骇锛�</b> - <!-- <el-select + <el-select v-model="alarmValues" multiple @change="searchingBtn" @@ -107,9 +107,9 @@ :label="item.name" :value="item.value" ></el-option> - </el-select> --> + </el-select> </p> - <p class="p-date" style="width: 19%; vertical-align: top"> + <p class="p-date" style="width: 22%; vertical-align: top"> <el-date-picker size="mini" v-model="searchTime" @@ -808,7 +808,7 @@ }; </script> -<style lang="scss"> +<style lang="scss" > .searching-box { width: 100%; height: 100% !important; @@ -984,9 +984,6 @@ right: 0px; bottom: 15px; } -} -.search { - background-color: #eee; } </style> <style lang="scss" scoped> diff --git a/src/views/search/components/LeftNav.vue b/src/views/search/components/LeftNav.vue index 3fd4403..9907514 100644 --- a/src/views/search/components/LeftNav.vue +++ b/src/views/search/components/LeftNav.vue @@ -340,7 +340,7 @@ import bus from "@/plugin/bus"; // import TreeMenu from "@/components/treeMenu/index"; -import TreeMenu from "./giantTree/index"; +import TreeMenu from "@/components/giantTree/index"; import LocalVedioList from "./LocalVedioList"; import FileUpload from "./FileUpload/index"; import XLSX from "xlsx"; diff --git a/src/views/search/components/wasmPlayer/index.vue b/src/views/search/components/wasmPlayer/index.vue index 1124b3f..2a7fec6 100644 --- a/src/views/search/components/wasmPlayer/index.vue +++ b/src/views/search/components/wasmPlayer/index.vue @@ -74,6 +74,7 @@ <i class="el-icon-download jsmodern-video-download" @click="downLoad" + style="margin: 9px 0 0 15px" ></i> </section> @@ -812,6 +813,7 @@ } .video-error { + text-align: center; position: absolute; top: 35%; left: 30%; diff --git a/vue.config.js b/vue.config.js index 703743d..719e360 100644 --- a/vue.config.js +++ b/vue.config.js @@ -15,6 +15,7 @@ "/api": { // target: "http://192.168.20.10:7004", target: "http://192.168.20.174:7070", + // target: "http://192.168.20.117:7080", // secure: false, changeOrigin: true, }, -- Gitblit v1.8.0