Prechádzať zdrojové kódy

登录页面及问题调整

敲代码的猫 1 mesiac pred
rodič
commit
8ce48589a5

+ 7 - 0
src/api/screen/service.js

@@ -773,6 +773,13 @@ export function videoList(code) {
   })
 }
 
+export function getCameraList(appOrg) {
+  return request({
+    url: '/large/monitor/getCameraList/' + appOrg,
+    method: 'get'
+  })
+}
+
 //视频流列表 各公司出入口监控
 export function monitorList(code) {
   return request({

BIN
src/assets/images/login-background.png


BIN
src/assets/images/passWordUse.png


BIN
src/assets/images/passwordBorder.png


BIN
src/assets/images/suoUse.png


BIN
src/assets/images/yanzma.png


BIN
src/assets/zhang/cameraScreen/stop.png


+ 1 - 1
src/utils/request.js

@@ -121,7 +121,7 @@ service.interceptors.response.use(
         }).then(() => {
           isRelogin.show = false;
           store.dispatch('LogOut').then(() => {
-            location.href = '/index';
+            location.href = '#/login';
           });
         }).catch(() => {
           isRelogin.show = false;

+ 1 - 1
src/utils/request2.js

@@ -121,7 +121,7 @@ service.interceptors.response.use(
         }).then(() => {
           isRelogin.show = false;
           store.dispatch('LogOut').then(() => {
-            location.href = '/index';
+            location.href = '#/login';
           });
         }).catch(() => {
           isRelogin.show = false;

+ 129 - 13
src/views/login.vue

@@ -1,18 +1,22 @@
 <template>
   <div class="login">
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">后台管理系统</h3>
+      <h3 class="title-pass">账号登录</h3>
       <el-form-item prop="username">
+        <label class="custom-label">
         <el-input
           v-model="loginForm.username"
           type="text"
           auto-complete="off"
           placeholder="账号"
         >
-          <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+          <!-- <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> -->
+
         </el-input>
+      </label>
       </el-form-item>
       <el-form-item prop="password">
+        <label class="custom-Pass">
         <el-input
           v-model="loginForm.password"
           type="password"
@@ -20,10 +24,12 @@
           placeholder="密码"
           @keyup.enter.native="handleLogin"
         >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
+          <!-- <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> -->
         </el-input>
+      </label>
       </el-form-item>
       <el-form-item prop="code" v-if="captchaEnabled">
+        <label class="custom-yzm">
         <el-input
           v-model="loginForm.code"
           auto-complete="off"
@@ -31,13 +37,14 @@
           style="width: 63%"
           @keyup.enter.native="handleLogin"
         >
-          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+          <!-- <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> -->
         </el-input>
+      </label>
         <div class="login-code">
           <img :src="codeUrl" @click="getCode" class="login-code-img"/>
         </div>
       </el-form-item>
-      <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
+      <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> -->
       <el-form-item style="width:100%;">
         <el-button
           :loading="loading"
@@ -45,6 +52,7 @@
           type="primary"
           style="width:100%;"
           @click.native.prevent="handleLogin"
+          class="login-submit"
         >
           <span v-if="!loading">登 录</span>
           <span v-else>登 录 中...</span>
@@ -183,20 +191,27 @@ export default {
   justify-content: center;
   align-items: center;
   height: 100%;
-  background-image: url("../assets/images/login-background.jpg");
+  background-image: url("../assets/images/login-background.png");
   background-size: cover;
 }
-.title {
+.title-pass {
   margin: 0px auto 30px auto;
-  text-align: center;
-  color: #707070;
+    text-align: center;
+    font-family: FZZCHJW--GB1-0;
+    font-weight: 400;
+    font-size: 30px;
+    color: #A9FFFE;
+    letter-spacing: 4.21px;
 }
 
 .login-form {
-  border-radius: 6px;
-  background: #ffffff;
-  width: 400px;
-  padding: 25px 25px 5px 25px;
+  // border-radius: 6px;
+  // background: #ffffff;
+  width: 545px;
+  height: 505px;
+  padding: 100px 100px 20px 100px;
+  background-image: url("../assets/images/passwordBorder.png");
+  background-size: cover;
   .el-input {
     height: 38px;
     input {
@@ -223,6 +238,107 @@ export default {
     vertical-align: middle;
   }
 }
+.login-code-img {
+    height: 38px;
+    border: 2px #009998 solid;
+}
+.login-form .el-input input {
+    height: 38px;
+    background: #096C78;
+    border: 2px #009998 solid;
+    color: #A9FFFE;
+    opacity: 0.9;
+    padding-left: 35px;
+}
+.el-form-item.is-error .el-input__inner, .el-form-item.is-error .el-input__inner:focus, .el-form-item.is-error .el-textarea__inner, .el-form-item.is-error .el-textarea__inner:focus {
+    border-color: #009998;
+}
+.login-submit{
+    font-family: PingFangSC-SNaNpxibold;
+    font-weight: 600;
+    font-size: 18px;
+    color: #002230;
+    /* color: #FFFFFF; */
+    background-color: #1890ff;
+    /* border-color: #1890ff; */
+     opacity: 0.85;
+    background: #0DDBDA;
+    border: 1px solid #0FF9F7;
+    margin-top: 30px;
+}
+.login-submit:hover{
+  font-family: PingFangSC-SNaNpxibold;
+    font-weight: 600;
+    font-size: 18px;
+    color: #002230;
+    /* color: #FFFFFF; */
+    background-color: #1890ff;
+    /* border-color: #1890ff; */
+     opacity: 0.85;
+    background: #0DDBDA;
+    border: 1px solid #0FF9F7;
+    margin-top: 30px;
+}
+.login-submit:enabled {
+  font-family: PingFangSC-SNaNpxibold;
+    font-weight: 600;
+    font-size: 18px;
+    color: #002230;
+    /* color: #FFFFFF; */
+    background-color: #1890ff;
+    /* border-color: #1890ff; */
+     opacity: 0.85;
+    background: #0DDBDA;
+    border: 1px solid #0FF9F7;
+    margin-top: 30px;
+}
+.el-checkbox__input.is-checked + .el-checkbox__label {
+    color: #0FF9F7;
+}
+.el-checkbox__input.is-checked .el-checkbox__inner {
+    background-color: #0FF9F7;
+    border-color: #0FF9F7;
+}
+
+.custom-label::before {
+  content: '';
+  position: absolute;
+  left: 10px;
+  top: 50%;
+  transform: translateY(-50%);
+  width: 18px;
+  height: 18px;
+  background-image: url("../assets/images/passWordUse.png"); /* 替换为你的图片路径 */
+  background-repeat: no-repeat;
+  background-size: cover;
+  z-index: 99;
+}
+.custom-Pass::before{
+  content: '';
+  position: absolute;
+  left: 10px;
+  top: 50%;
+  transform: translateY(-50%);
+  width: 18px;
+  height: 18px;
+  background-image: url("../assets/images/suoUse.png"); /* 替换为你的图片路径 */
+  background-repeat: no-repeat;
+  background-size: cover;
+  z-index: 99;
+}
+.custom-yzm::before{
+  content: '';
+  position: absolute;
+  left: 10px;
+  top: 50%;
+  transform: translateY(-50%);
+  width: 18px;
+  height: 18px;
+  background-image: url("../assets/images/yanzma.png"); /* 替换为你的图片路径 */
+  background-repeat: no-repeat;
+  background-size: cover;
+  z-index: 99;
+}
 .el-login-footer {
   height: 40px;
   line-height: 40px;

+ 4 - 1
src/views/screen/engineering/main.vue

@@ -174,6 +174,7 @@
           @chooseMonitor="onChooseMonitor"
           :monitorInfo="this.monitorInfo"
           :monitorName="monitorName"
+          :curCompanMonth="curCompanMonth"
         ></monitor-live-list>
       </div>
     </div>
@@ -326,6 +327,7 @@ export default {
       list1: [],
       list2: [],
       curCompanyear:'',
+      curCompanMonth:'',
       showRes:0,
       showC:false,
       showIssue:0,
@@ -476,7 +478,8 @@ export default {
       this.showHealth = 0
     },
 
-    onChooseProject(){
+    onChooseProject(e){
+      this.curCompanMonth = e;
       this.showC = false
       this.showCenter = true;
       this.showType = 2;

+ 11 - 11
src/views/screen/engineering/monitorLive.vue

@@ -28,7 +28,7 @@
         <img src="../../../assets/zhang/cameraScreen/right.png" width="60px">
       </div>
       <div @click="upWord">
-      <img src="../../../assets/zhang/cameraScreen/leave.png" width="20px">
+      <img src="../../../assets/zhang/cameraScreen/stop.png" width="35px">
     </div>
       <div @click="top" style="position: absolute;top: 0;">
         <img src="../../../assets/zhang/cameraScreen/up.png" width="80px">
@@ -100,12 +100,12 @@ export default {
       console.log(obj, '================================')
       console.log("子组件实例方法列表:", Object.keys(obj));
       this.videoObj = obj;
-      this.code = this.monitorInfo.code;
+      this.code = this.monitorInfo.cameraCode;
       if(!this.code) return;
       console.log("视频播放编号", this.code);
       this.videoObj.videoPlay({
         winNum: this.winNum,
-        code: this.monitorInfo.code,
+        code: this.monitorInfo.cameraCode,
         name: this.monitorInfo.abbreviation ? this.monitorInfo.abbreviation : '',
       });
       this.played = true;
@@ -121,7 +121,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control: 0x0504,
     });
 
@@ -136,7 +136,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control: 0x0502,
       });
     },
@@ -149,7 +149,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control: 0x0402,
       });
     },
@@ -162,7 +162,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control: 0x0404,
       });
     },
@@ -177,7 +177,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control:  this.direction,
       });
     },
@@ -190,7 +190,7 @@ export default {
        return;
       this.videoObj.capture({
         winNum: this.winNum,
-        code: this.monitorInfo.code,
+        code: this.monitorInfo.cameraCode,
       });
       this.issue()
     },
@@ -203,7 +203,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control: 0x0304,
       });
     },
@@ -216,7 +216,7 @@ export default {
       // alert(2)
       this.videoObj.videoControl({
       winNum: this.winNum,
-      code: this.monitorInfo.code,
+      code: this.monitorInfo.cameraCode,
       control: 0x0302,
       });
     },

+ 18 - 8
src/views/screen/engineering/monitorLiveList.vue

@@ -9,7 +9,7 @@
           <div class="monitor-list" v-for="(item,index) in monitorList" :key="index" @click="chooseItem(index)">
             <img src="@/assets/images/building_guarantee/img_12.png" class="img" />
             <div class="monitor-info">
-              <div class="name">{{item.abbreviation}}</div>
+              <div class="name">{{item.cameraName}}</div>
             </div>
           </div>
         </div>
@@ -19,7 +19,7 @@
 </template>
 
 <script>
-import {videoList} from "@/api/screen/service";
+import {getCameraList} from "@/api/screen/service";
 
 export default {
   name: "MonitorLiveList",
@@ -28,6 +28,10 @@ export default {
       type: String,
       default: "",
       required: true,
+    },
+    curCompanMonth:{
+      type: String,
+      default: "",
     }
   },
   data() {
@@ -36,22 +40,28 @@ export default {
     };
   },
   created() {
-    this.videoList();
+    this.getCameraList();
   },
   destroyed() {},
   beforeDestroy() {},
   mounted() {},
   methods: {
     //统一视频(工程现场监控)
-    videoList() {
-      let code = "";
-      videoList(code).then((res) => {
+    // videoList() {
+    //   let code = "";
+    //   videoList(code).then((res) => {
+    //     if (Number(res.code) === 200) {
+    //       this.monitorList = res.data
+    //     }
+    //   });
+    // },
+    getCameraList(){
+      getCameraList(this.$props.curCompanMonth).then((res) => {
         if (Number(res.code) === 200) {
-          this.monitorList = res.data
+          this.monitorList = res.data;
         }
       });
     },
-
     close(){
       this.$emit("closeMonitor")
     },

+ 2 - 1
src/views/screen/engineering/unitAccessto.vue

@@ -13,7 +13,7 @@
             <div class="thd">已接入摄像头数量</div>
           </div>
           <div class="table-bot">
-            <div class="table-list" v-for="(item,index) in monitorList" :key="index" @click="choose(appOrg)">
+            <div class="table-list" v-for="(item,index) in monitorList" :key="index" @click="choose(item.appOrg)">
               <div class="said"></div>
               <div class="fir">{{item.name}}</div>
               <div class="snd">{{item.num}}</div>
@@ -166,6 +166,7 @@ export default {
             item.name = item.appName;
             item.num = item.projectNum;
             item.onLineNum = item.cameraNum;
+            item.appOrg = item.appOrg;
           });
         }
       });

+ 4 - 1
src/views/screen/engineering/unitProjectDia.vue

@@ -8,7 +8,7 @@
         <div class="flex-column">摄像头数量</div>
       </div>
       <div class="dataList">
-        <div class="flex-row" v-for="(item,index) in dataList" :key="index" @click="choose(appOrg)">
+        <div class="flex-row" v-for="(item,index) in dataList" :key="index" @click="choose(item.id)">
           <div class="flex-column">{{item.projectName}}</div>
           <div class="flex-column">{{item.cameraNum}}</div>
         </div>
@@ -54,6 +54,9 @@ export default {
       etCameraNumList(this.$props.curCompanyear).then((res) => {
         if (Number(res.code) === 200) {
           this.dataList = res.data;
+          this.dataList.forEach((item, index) => {
+            item.id = item.id;
+          });
         }
       });
     },

+ 1 - 1
src/views/screen/map/mapTwo.vue

@@ -166,7 +166,7 @@ export default {
             type: "scatter", // 散点图(用于标注特殊位置)
             coordinateSystem: "geo", // 使用 `geo` 作为坐标系
             symbol: "image://" + require("@/assets/zhang/myMap/carPosition.png"), // 自定义标记(图片)
-            symbolSize: [20, 30], // 标记大小(宽 30,高 20)
+            symbolSize: [35, 60], // 标记大小(宽 30,高 20)
             label: {
               show: true, // 显示数字
               position: "right", // 数字显示在图标的正上方