shuishen
2025-01-08 6f616d315ed8e3dc7045700d4bdf35ae959e4013
系统名称调整
首页默认显示调整
社区感知独栋弹窗显示调整
7 files modified
838 ■■■■■ changed files
public/index.html 60 ●●●● patch | view | raw | blame | history
src/components/map/index.vue 4 ●●●● patch | view | raw | blame | history
src/styles/media/index.scss 5 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 151 ●●●●● patch | view | raw | blame | history
src/views/house/index.vue 12 ●●●● patch | view | raw | blame | history
src/views/layout/index.vue 2 ●●● patch | view | raw | blame | history
src/views/login/index.vue 604 ●●●● patch | view | raw | blame | history
public/index.html
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-09-07 09:34:58
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-07-19 15:13:30
 * @LastEditTime: 2025-01-08 14:29:20
 * @FilePath: \srs-police-affairs\public\index.html
 * @Description: 
 * 
@@ -12,47 +12,47 @@
<html lang="">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>affairs.ico">
    <title>
        社区警务可视化管理平台
    </title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <link rel="icon" href="<%= BASE_URL %>affairs.ico">
  <title>
    警务作战一体化平台
  </title>
    <script src="./static/config.js"></script>
    <script src="./static/tileset.js"></script>
    <script src="./static/yxLayer.js"></script>
    <script src="./static/addLayer.js"></script>
  <script src="./static/config.js"></script>
  <script src="./static/tileset.js"></script>
  <script src="./static/yxLayer.js"></script>
  <script src="./static/addLayer.js"></script>
    <script src="./depend/vue.min.js"></script>
  <script src="./depend/vue.min.js"></script>
    <script src="./depend/vue-router.min.js"></script>
  <script src="./depend/vue-router.min.js"></script>
    <script src="./depend/vuex.min.js"></script>
  <script src="./depend/vuex.min.js"></script>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="./depend/element-ui.css">
    <!-- 引入组件库 -->
    <script src="./depend/element-ui.js"></script>
  <!-- 引入样式 -->
  <link rel="stylesheet" href="./depend/element-ui.css">
  <!-- 引入组件库 -->
  <script src="./depend/element-ui.js"></script>
    <script src="./depend/echarts.min.js"></script>
  <script src="./depend/echarts.min.js"></script>
    <script src="./depend/heatmap.min.js"></script>
  <script src="./depend/heatmap.min.js"></script>
    <script>
        window._axiosPromiseArr = []
    </script>
  <script>
    window._axiosPromiseArr = []
  </script>
</head>
<body>
    <noscript>
        <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
                Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
        Please enable it to continue.</strong>
  </noscript>
  <div id="app"></div>
  <!-- built files will be auto injected -->
</body>
</html>
src/components/map/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2024-06-21 16:37:19
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-12-18 18:16:31
 * @LastEditTime: 2025-01-08 15:02:26
 * @FilePath: \srs-police-affairs\src\components\map\index.vue
 * @Description: 
 * 
@@ -348,7 +348,7 @@
      // 内网
      that.switchImg()
      that.highOrLightChange('light')
      // that.highOrLightChange('light')
      // 地形数据添加
      // that.addTerrain()
src/styles/media/index.scss
@@ -392,7 +392,7 @@
            }
            .center-container {
              bottom: calc((100% - maxCountSizeVh(120)) / 3 + countSizeVh(12));
              bottom: calc((100% - maxCountSizeVh(120)) / 3 + countSizeVh(42));
              .layers-control-btn {
                width: countSizeVw(96, 1920);
@@ -416,6 +416,9 @@
              }
            }
            .show-home-center {
              bottom: countSizeVh(42);
            }
          }
          .house-page {
src/views/home/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-12-21 16:37:14
 * @LastEditTime: 2025-01-08 15:00:38
 * @FilePath: \srs-police-affairs\src\views\home\index.vue
 * @Description: 小区-栋-层-房屋
 *
@@ -10,22 +10,23 @@
-->
<template>
  <div class="home-page container" v-show="isShowHomeContent">
    <left-container class="left-container" @showpeopledetail="showpeopledetail" @showplacedetail="showplacedetail"
      @showkeypersondetail="showkeypersondetail" ref="leftContainer" @showlanddetail="showlanddetail"></left-container>
  <div class="home-page container">
    <left-container v-show="isShowHomeContent" class="left-container" @showpeopledetail="showpeopledetail"
      @showplacedetail="showplacedetail" @showkeypersondetail="showkeypersondetail" ref="leftContainer"
      @showlanddetail="showlanddetail"></left-container>
    <right-container class="right-container" @showequimentdetail="showequimentdetail"
    <right-container v-show="isShowHomeContent" class="right-container" @showequimentdetail="showequimentdetail"
      @showschedulingdetail="showschedulingdetail" @selectPoliceChangeEventData="selectPoliceChangeEventData"
      @changeActivityType="changeActivityType" ref="rightContainer"></right-container>
    <bottom-container class="bottom-container" ref="bottomContainer"
    <bottom-container v-show="isShowHomeContent" class="bottom-container" ref="bottomContainer"
      @changePoliceSituationHistoryType="changePoliceSituationHistoryType"
      @policeSituationChange="policeSituationChange"
      @policeSituationSiteClick="policeSituationSiteClick"></bottom-container>
    <scheduling-list ref="schedulingList"></scheduling-list>
    <div class="center-container">
    <div class="center-container" :class="{ 'show-home-center': !isShowHomeContent }">
      <div class="layers-control-btn area">
        <el-checkbox v-model="areaPolygonLayerShow" @change="areaPolygonChange">辖区</el-checkbox>
      </div>
@@ -36,6 +37,15 @@
      <div class="layers-control-btn phone">
        <el-checkbox v-model="cameraLayerShow" @change="cameraChange">摄像头</el-checkbox>
      </div>
      <div class="layers-control-btn phone">
        <el-checkbox v-model="handsetRadioLayerShow" @change="handsetRadioChange">手台</el-checkbox>
      </div>
      <div class="layers-control-btn phone">
        <el-checkbox v-model="bWCameraLayerShow" @change="bWCameraChange">执法记录仪</el-checkbox>
      </div>
      <!-- <div class="layers-control-btn moitor">    <el-checkbox v-model="monitoringLayerShow" @change="monitoringChange">监控</el-checkbox>      </div> -->
      <div class="layers-control-btn panorama">
        <el-checkbox v-model="panoramaLayerShow" @change="panoramaChange">全景</el-checkbox>
@@ -45,7 +55,7 @@
      </div>
    </div>
    <div ref="RegionSelect" style="left: 0;" class="region-select">
    <div v-show="isShowHomeContent" ref="RegionSelect" style="left: 0;" class="region-select">
      <map-select class="map-select" @selectCheck="policeStationSelect" :checkValue="policeStationCheckValue"
        :options="policeStationOptions" :optionsName="'name'" :selectAllClass="selectAllClass"></map-select>
@@ -808,6 +818,8 @@
      houseLayerShow: true,
      carLayerShow: false,
      cameraLayerShow: false,
      handsetRadioLayerShow: false,
      bWCameraLayerShow: false,
      monitoringLayerShow: false,
      panoramaLayerShow: false,
      policeSituationLayerShow: true,
@@ -1083,6 +1095,8 @@
    const that = this
    this.$nextTick(() => {
      global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.dataSourcesLayerSetCursorStyle)
      this.$EventBus.$emit('closeMxTileset')
      circleLayer = new global.DC.PrimitiveLayer('circleLayer')
      global.viewer.addLayer(circleLayer)
@@ -1597,7 +1611,7 @@
              }
            })
          }
        } else {
        } else if (params.type == 1) {
          if (res.data.data.length > 0) {
            res.data.data.forEach(item => {
              if (item.longitude && item.latitude) {
@@ -1619,7 +1633,50 @@
                })
              }
            })
          }
        } else if (params.type == 2) {
          if (res.data.data.length > 0) {
            res.data.data.forEach(item => {
              if (item.longitude && item.latitude) {
                this.$EventBus.$emit('layerPointAdd', {
                  layerName: 'homeHandsetRadioLayers',
                  type: "billboard",
                  layerType: 'ClusterLayer',
                  params: {
                    ...item,
                    lng: item.longitude,
                    lat: item.latitude,
                    url: '/img/icon/p-talk.png',
                    setStyle: {
                      disableDepthTestDistance: Number.POSITIVE_INFINITY
                    }
                  },
                  incident: this.siteClick,
                })
              }
            })
          }
        } else if (params.type == 3) {
          if (res.data.data.length > 0) {
            res.data.data.forEach(item => {
              if (item.longitude && item.latitude) {
                this.$EventBus.$emit('layerPointAdd', {
                  layerName: 'homebWCameraLayers',
                  type: "billboard",
                  layerType: 'ClusterLayer',
                  params: {
                    ...item,
                    lng: item.longitude,
                    lat: item.latitude,
                    url: '/img/icon/p-b-camera.png',
                    setStyle: {
                      disableDepthTestDistance: Number.POSITIVE_INFINITY
                    }
                  },
                  incident: this.siteClick,
                })
              }
            })
          }
        }
@@ -1699,6 +1756,8 @@
        this.carChange(this.carLayerShow)
        this.cameraChange(this.cameraLayerShow)
        this.handsetRadioChange(this.handsetRadioLayerShow)
        this.bWCameraChange(this.bWCameraLayerShow)
      } else {
        cylinderLayer.clear()
        this.getPoliceStationTree(2, item.id)
@@ -1707,6 +1766,8 @@
        this.carChange(this.carLayerShow)
        this.cameraChange(this.cameraLayerShow)
        this.handsetRadioChange(this.handsetRadioLayerShow)
        this.bWCameraChange(this.bWCameraLayerShow)
      }
      this.$refs.leftContainer.getHomeAllData(this.policeStaionID)
@@ -1879,6 +1940,66 @@
        this.getEquipmentAll({ type: 1, deptId: this.policeStaionID == '' ? this.userInfo.dept_id : this.policeStaionID })
      }
    },
    handsetRadioChange (e) {
      this.$EventBus.$emit('mapClearLayer', {
        layerName: 'homeHandsetRadioLayers',
        type: 'VectorLayer'
      })
      if (e == true) {
        if (this.userInfo.dept_id == '1123598813738675201') {
          //分局定位
          initMapPosition()
        }
        else {
          //其他派出所定位
          const center = this.getAllRegionCenter(this.areaOptions)
          this.$EventBus.$emit('toPosition', {
            siteJd: center[0] + 0.0046,
            siteWd: center[1] - 0.04,
            siteGd: 4000,
            siteHeading: -3,
            sitePitch: -45
          })
        }
        this.getEquipmentAll({ type: 2, deptId: this.policeStaionID == '' ? this.userInfo.dept_id : this.policeStaionID })
      }
    },
    bWCameraChange (e) {
      this.$EventBus.$emit('mapClearLayer', {
        layerName: 'homebWCameraLayers',
        type: 'VectorLayer'
      })
      if (e == true) {
        if (this.userInfo.dept_id == '1123598813738675201') {
          //分局定位
          initMapPosition()
        }
        else {
          //其他派出所定位
          const center = this.getAllRegionCenter(this.areaOptions)
          this.$EventBus.$emit('toPosition', {
            siteJd: center[0] + 0.0046,
            siteWd: center[1] - 0.04,
            siteGd: 4000,
            siteHeading: -3,
            sitePitch: -45
          })
        }
        this.getEquipmentAll({ type: 3, deptId: this.policeStaionID == '' ? this.userInfo.dept_id : this.policeStaionID })
      }
    },
@@ -2906,6 +3027,16 @@
    })
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'homeHandsetRadioLayers',
      type: 'VectorLayer'
    })
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'homebWCameraLayers',
      type: 'VectorLayer'
    })
    this.$EventBus.$emit('mapRemoveLayer', {
      layerName: 'monitoringLayers',
      type: 'VectorLayer'
    })
src/views/house/index.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2022-08-18 16:18:17
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-12-27 19:07:25
 * @LastEditTime: 2025-01-08 15:43:25
 * @FilePath: \srs-police-affairs\src\views\house\index.vue
 * @Description: 小区-栋-层-房屋
 * 
@@ -972,6 +972,7 @@
      ],
      policeSituationVisible: false,
      JWdetails: {},
      residentDetailsParams: null,
      residentDetailsTitle: "",
      residentDetailsShow: false,
      lastBtnShow: false,
@@ -1277,7 +1278,11 @@
    hushiPeoTyClick (type) {
      this.hushiPeoTy = type
      if (type <= 4) {
        this.getVillagePersonInfo(this.residentIdSave, '', { personType: this.hushiPeoTy })
        if (this.residentDetailsParams.exttype == 'room') {
          this.getVillagePersonInfo(this.residentIdSave, '', { personType: this.hushiPeoTy })
        } else {
          this.getVillagePersonInfo('', this.residentIdSave, '', '', '', '', '独栋')
        }
      }
    },
@@ -1980,6 +1985,7 @@
        this.getResident3DData(residentId)
      } else {
        residentId = params.std_addr_id.split('|')[1]
        this.residentIdSave = residentId
        this.getVillagePersonInfo('', residentId, '', '', '', '', '独栋')
        // this.$EventBus.$emit("toPosition", {
        //     siteJd: Number(params.lng),
@@ -1989,6 +1995,7 @@
        // })
      }
      this.getPicURL(residentId)
      this.residentDetailsParams = params
      this.residentDetailsTitle = `${params.name}住户信息`
      this.residentDetailsShow = true
      this.residentNoDataText = ' '
@@ -1998,6 +2005,7 @@
    residentDetailsClose () {
      this.hushiPeoTy = 1
      this.residentDetailsShow = false
      this.residentDetailsParams = null
    },
    buildingClick (item, aoiArr) {
src/views/layout/index.vue
@@ -27,7 +27,7 @@
      </div>
      <div class="title">
        <h3>社区警务可视化管理平台</h3>
        <h3>警务作战一体化平台</h3>
      </div>
      <!-- 菜单导航 -->
src/views/login/index.vue
@@ -1,9 +1,9 @@
<template>
    <div class="auth-page">
        <!-- <div class="title">社区警务平台</div> -->
        <!-- <div class="container"> -->
        <!-- <h1 class="text-xs-center">用户登录</h1> -->
        <!-- <div class="loginbody">
  <div class="auth-page">
    <!-- <div class="title">社区警务平台</div> -->
    <!-- <div class="container"> -->
    <!-- <h1 class="text-xs-center">用户登录</h1> -->
    <!-- <div class="loginbody">
                <el-form :model="user" ref="formName" status-icon :rules="rules">
                    <span class="input">用户名:</span>
                    <el-form-item prop="username">
@@ -29,334 +29,334 @@
                    </el-form-item>
                </el-form>
        </div>-->
        <!-- </div> -->
        <div class="loginTitle">社区警务可视化管理平台</div>
        <div class="layui-form login_content">
            <p>用户登录</p>
            <el-form :model="loginForm" ref="formName" status-icon :rules="rules">
                <el-form-item prop="username">
                    <el-input v-model="loginForm.username" prefix-icon="el-icon-user" placeholder="请输入您的用户名"
                        autocomplete="off"></el-input>
                </el-form-item>
                <el-form-item prop="password">
                    <el-input type="password" v-model="loginForm.password" prefix-icon="el-icon-lock" placeholder="请输入您密码"
                        autocomplete="off"></el-input>
                </el-form-item>
                <el-form-item>
                    <!-- <el-button type="primary" @click.enter="onLogin()">登&nbsp;录</el-button> -->
                    <div class="login-btn" @click.enter="onLogin()">登&nbsp;录</div>
                </el-form-item>
            </el-form>
        </div>
        <div class="copyright-box">
            版权所有:信州分局 <br />技术支持:户政大队/科信大队
        </div>
    <!-- </div> -->
    <div class="loginTitle">警务作战一体化平台</div>
    <div class="layui-form login_content">
      <p>用户登录</p>
      <el-form :model="loginForm" ref="formName" status-icon :rules="rules">
        <el-form-item prop="username">
          <el-input v-model="loginForm.username" prefix-icon="el-icon-user" placeholder="请输入您的用户名"
            autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item prop="password">
          <el-input type="password" v-model="loginForm.password" prefix-icon="el-icon-lock" placeholder="请输入您密码"
            autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item>
          <!-- <el-button type="primary" @click.enter="onLogin()">登&nbsp;录</el-button> -->
          <div class="login-btn" @click.enter="onLogin()">登&nbsp;录</div>
        </el-form-item>
      </el-form>
    </div>
    <div class="copyright-box">
      版权所有:信州分局 <br />技术支持:户政大队/科信大队
    </div>
  </div>
</template>
<script>
import nprogress from 'nprogress'
export default {
    name: 'AppRegister',
    data () {
        return {
            user: {
                username: '',
                password: ''
            },
            loginForm: {
                //租户ID
                tenantId: "000000",
                //部门ID
                deptId: "",
                //角色ID
                roleId: "",
                //用户名
                username: "",
                //密码
                password: "",
                //账号类型
                type: "account",
                //验证码的值
                code: "",
                //验证码的索引
                key: "",
                //预加载白色背景
                image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
            },
            rules: {
                username: [
                    { required: true, message: '用户名不能为空', trigger: 'blur' },
                    {
                        min: 3,
                        // max: 10,
                        message: '用户账号长度至少3位',
                        trigger: 'blur'
                    }
                ],
                password: [
                    { required: true, message: '密码不能为空', trigger: 'blur' },
                    {
                        min: 3,
                        // max: 10,
                        message: '用户密码长度至少3位',
                        trigger: 'blur'
                    }
                ]
            },
            errors: null,
            newAxios: null
        }
    },
    created () {
        var that = this
        document.onkeydown = (e) => {
            const _key = window.event.keyCode
            if (_key === 13) {
                that.onLogin()
            }
        }
    },
    methods: {
        onLogin () {
            this.$refs.formName.validate((valid) => {
                if (valid) {
                    nprogress.start()
                    const loading = this.$loading({
                        lock: true,
                        text: '登录中,请稍后。。。',
                        spinner: "el-icon-loading",
                        background: 'rgba(0, 0, 0, 0.5)'
                    })
                    this.$store.dispatch("LoginByUsername", this.loginForm).then((res) => {
                        this.$store.dispatch("GetButtons")
                        //跳转首页
                        this.$router.push({ path: "/layout/home" })
                        loading.close()
                    }).catch((error) => {
                        loading.close()
                    })
                }
            })
        }
  name: 'AppRegister',
  data () {
    return {
      user: {
        username: '',
        password: ''
      },
      loginForm: {
        //租户ID
        tenantId: "000000",
        //部门ID
        deptId: "",
        //角色ID
        roleId: "",
        //用户名
        username: "",
        //密码
        password: "",
        //账号类型
        type: "account",
        //验证码的值
        code: "",
        //验证码的索引
        key: "",
        //预加载白色背景
        image: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
      },
      rules: {
        username: [
          { required: true, message: '用户名不能为空', trigger: 'blur' },
          {
            min: 3,
            // max: 10,
            message: '用户账号长度至少3位',
            trigger: 'blur'
          }
        ],
        password: [
          { required: true, message: '密码不能为空', trigger: 'blur' },
          {
            min: 3,
            // max: 10,
            message: '用户密码长度至少3位',
            trigger: 'blur'
          }
        ]
      },
      errors: null,
      newAxios: null
    }
  },
  created () {
    var that = this
    document.onkeydown = (e) => {
      const _key = window.event.keyCode
      if (_key === 13) {
        that.onLogin()
      }
    }
  },
  methods: {
    onLogin () {
      this.$refs.formName.validate((valid) => {
        if (valid) {
          nprogress.start()
          const loading = this.$loading({
            lock: true,
            text: '登录中,请稍后。。。',
            spinner: "el-icon-loading",
            background: 'rgba(0, 0, 0, 0.5)'
          })
          this.$store.dispatch("LoginByUsername", this.loginForm).then((res) => {
            this.$store.dispatch("GetButtons")
            //跳转首页
            this.$router.push({ path: "/layout/home" })
            loading.close()
          }).catch((error) => {
            loading.close()
          })
        }
      })
    }
  }
}
</script>
<style scoped lang="scss">
.login-btn {
    background-color: #409eff;
    border-radius: 2px;
    height: 30px;
    cursor: pointer;
    line-height: 30px;
    font-size: 14px;
  background-color: #409eff;
  border-radius: 2px;
  height: 30px;
  cursor: pointer;
  line-height: 30px;
  font-size: 14px;
}
.login-btn:hover {
    background-color: #66b1ff;
  background-color: #66b1ff;
}
.auth-page {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url(../../../public/img/bg/login-bg.png);
    background-size: 100% 100%;
    margin: 0;
    padding: 0;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url(../../../public/img/bg/login-bg.png);
  background-size: 100% 100%;
  margin: 0;
  padding: 0;
    .loginTitle {
        color: #00cbdd;
        font-size: 46px;
        letter-spacing: 6px;
        font-weight: 700;
        position: absolute;
        top: 20%;
        right: 25%;
        transform: translateX(50%);
  .loginTitle {
    color: #00cbdd;
    font-size: 46px;
    letter-spacing: 6px;
    font-weight: 700;
    position: absolute;
    top: 20%;
    right: 25%;
    transform: translateX(50%);
  }
  .login_content {
    width: 300px;
    position: absolute;
    text-align: center;
    top: 50%;
    right: 25%;
    transform: translateY(-40%) translateX(50%);
    color: #ffffff;
    padding: 30px;
    background: url(../../../public/img/bg/login-content-bg.png),
      url(../../../public/img/bg/left-top.png) no-repeat left top,
      url(../../../public/img/bg/left-bottom.png) no-repeat left bottom,
      url(../../../public/img/bg/right-top.png) no-repeat right top,
      url(../../../public/img/bg/right-bottom.png) no-repeat right bottom;
    background-repeat: no-repeat;
    background-size: 100% 100%, 25px, 25px, 25px, 25px;
    p {
      font-size: 26px;
      margin-bottom: 15px;
      letter-spacing: 4px;
    }
    .login_content {
        width: 300px;
        position: absolute;
        text-align: center;
        top: 50%;
        right: 25%;
        transform: translateY(-40%) translateX(50%);
        color: #ffffff;
        padding: 30px;
        background: url(../../../public/img/bg/login-content-bg.png),
            url(../../../public/img/bg/left-top.png) no-repeat left top,
            url(../../../public/img/bg/left-bottom.png) no-repeat left bottom,
            url(../../../public/img/bg/right-top.png) no-repeat right top,
            url(../../../public/img/bg/right-bottom.png) no-repeat right bottom;
        background-repeat: no-repeat;
        background-size: 100% 100%, 25px, 25px, 25px, 25px;
        p {
            font-size: 26px;
            margin-bottom: 15px;
            letter-spacing: 4px;
        }
        :deep(.el-button--primary) {
            width: 100%;
            height: 34px;
            border-radius: 2px;
        }
        :deep(.el-button) {
            line-height: 14px;
        }
    :deep(.el-button--primary) {
      width: 100%;
      height: 34px;
      border-radius: 2px;
    }
    .copyright-box {
        position: absolute;
        color: #fff;
        font-size: 14px;
        bottom: 1%;
        right: 1%;
        text-align: left;
    :deep(.el-button) {
      line-height: 14px;
    }
  }
    // .title {
    //     width: 1389px;
    //     height: 115px;
    //     // background-image: url(../../../public/img/bg/login_title@2x.png);
    //     background-size: 100% 100%;
    //     margin: 99px 264px 0px 266px;
    //     font-size: 74px;
    //     color: #fff;
    // }
    // .container {
    //     position: absolute;
    //     top: 0;
    //     left: 0;
    //     right: 0;
    //     bottom: 0;
    //     margin: 317px auto;
    //     width: 653px;
    //     height: 552px;
    //     background-image: url(../../../public/img/bg/rectangle11@2x.png);
    //     background-size: 100% 100%;
    //     border-radius: 10px;
    //     letter-spacing: 100;
  .copyright-box {
    position: absolute;
    color: #fff;
    font-size: 14px;
    bottom: 1%;
    right: 1%;
    text-align: left;
  }
    //     // h1 {
    //     //     margin: 54px 244px 0px 243px;
    //     //     width: 166px;
    //     //     text-align: left;
    //     //     width: 176px;
    //     //     height: 30px;
    //     //     font-size: 42px;
    //     //     font-family: PangMenZhengDao;
    //     //     font-weight: 400;
    //     //     color: #ffffff;
    //     //     line-height: 30px;
    //     //     letter-spacing: 2px;
    //     // }
  // .title {
  //     width: 1389px;
  //     height: 115px;
  //     // background-image: url(../../../public/img/bg/login_title@2x.png);
  //     background-size: 100% 100%;
  //     margin: 99px 264px 0px 266px;
  //     font-size: 74px;
  //     color: #fff;
  // }
  // .container {
  //     position: absolute;
  //     top: 0;
  //     left: 0;
  //     right: 0;
  //     bottom: 0;
  //     margin: 317px auto;
  //     width: 653px;
  //     height: 552px;
  //     background-image: url(../../../public/img/bg/rectangle11@2x.png);
  //     background-size: 100% 100%;
  //     border-radius: 10px;
  //     letter-spacing: 100;
    //     // .loginbody {
    //     //     position: absolute;
    //     //     top: 120px;
    //     //     left: 0;
    //     //     right: 0;
    //     //     bottom: 0;
    //     //     width: 72%;
    //     //     // margin: auto;
    //     //     margin-left: 51px;
  //     // h1 {
  //     //     margin: 54px 244px 0px 243px;
  //     //     width: 166px;
  //     //     text-align: left;
  //     //     width: 176px;
  //     //     height: 30px;
  //     //     font-size: 42px;
  //     //     font-family: PangMenZhengDao;
  //     //     font-weight: 400;
  //     //     color: #ffffff;
  //     //     line-height: 30px;
  //     //     letter-spacing: 2px;
  //     // }
    //     //     .el-form-item {
    //     //         text-align: center;
  //     // .loginbody {
  //     //     position: absolute;
  //     //     top: 120px;
  //     //     left: 0;
  //     //     right: 0;
  //     //     bottom: 0;
  //     //     width: 72%;
  //     //     // margin: auto;
  //     //     margin-left: 51px;
    //     //         :deep(.el-input__inner) {
    //     //             width: 548px;
    //     //             height: 59px;
    //     //             background: #0c2d49;
    //     //             opacity: 0.5;
    //     //             margin-bottom: 15px;
    //     //             font-size: 21px;
    //     //         }
    //     //         :deep(.el-input--prefix .el-input__inner) {
    //     //             padding-left: 40px;
    //     //         }
    //     //         :deep(.el-input__inner:focus) {
    //     //             border: 2px solid #22b4cb;
    //     //             opacity: 0.8;
    //     //             color: #fff;
    //     //         }
    //     //         :deep(.el-form-item__error) {
    //     //             color: #f00;
    //     //             line-height: 0;
    //     //             font-size: 15px;
    //     //             opacity: 0.8;
    //     //             letter-spacing: 2px;
    //     //             font-weight: 700;
    //     //         }
    //     //         :deep(.el-input__icon) {
    //     //             height: 91%;
    //     //             width: 34px;
    //     //         }
    //     //         :deep(.el-icon-user::before),
    //     //         :deep(.el-icon-lock::before) {
    //     //             font-size: 22px;
    //     //         }
    //     //         :deep(.el-form-item.is-error)v,
    //     //         :deep(.el-input__validateIcon) {
    //     //             font-size: 22px;
    //     //         }
    //     //         :deep(.el-input__suffix) {
    //     //             right: -48px;
    //     //         }
    //     //         :deep(.el-input input::-webkit-input-placeholder) {
    //     //             color: #ffffff;
    //     //             font-size: 21px;
    //     //             opacity: 0.5;
    //     //             line-height: 27px;
    //     //         }
    //     //         :deep(.el-input input::-moz-input-placeholder) {
    //     //             color: #ffffff;
    //     //             font-size: 21px;
    //     //             opacity: 0.5;
    //     //         }
    //     //         :deep(.el-input input::-ms-input-placeholder) {
    //     //             color: #ffffff;
    //     //             font-size: 21px;
    //     //             opacity: 0.5;
    //     //             line-height: 27px;
    //     //         }
  //     //     .el-form-item {
  //     //         text-align: center;
    //     //         :deep(.el-button) {
    //     //             width: 548px;
    //     //             height: 59px;
    //     //             background: linear-gradient(
    //     //                 90deg,
    //     //                 rgba(0, 249, 247, 0.54),
    //     //                 rgba(0, 182, 249, 0.54)
    //     //             );
    //     //             box-shadow: 0px 2px 20px 1px rgba(1, 25, 70, 0.46);
    //     //             font-size: 29px;
    //     //             margin-top: 25px;
    //     //         }
    //     //     }
  //     //         :deep(.el-input__inner) {
  //     //             width: 548px;
  //     //             height: 59px;
  //     //             background: #0c2d49;
  //     //             opacity: 0.5;
  //     //             margin-bottom: 15px;
  //     //             font-size: 21px;
  //     //         }
  //     //         :deep(.el-input--prefix .el-input__inner) {
  //     //             padding-left: 40px;
  //     //         }
  //     //         :deep(.el-input__inner:focus) {
  //     //             border: 2px solid #22b4cb;
  //     //             opacity: 0.8;
  //     //             color: #fff;
  //     //         }
  //     //         :deep(.el-form-item__error) {
  //     //             color: #f00;
  //     //             line-height: 0;
  //     //             font-size: 15px;
  //     //             opacity: 0.8;
  //     //             letter-spacing: 2px;
  //     //             font-weight: 700;
  //     //         }
  //     //         :deep(.el-input__icon) {
  //     //             height: 91%;
  //     //             width: 34px;
  //     //         }
  //     //         :deep(.el-icon-user::before),
  //     //         :deep(.el-icon-lock::before) {
  //     //             font-size: 22px;
  //     //         }
  //     //         :deep(.el-form-item.is-error)v,
  //     //         :deep(.el-input__validateIcon) {
  //     //             font-size: 22px;
  //     //         }
  //     //         :deep(.el-input__suffix) {
  //     //             right: -48px;
  //     //         }
  //     //         :deep(.el-input input::-webkit-input-placeholder) {
  //     //             color: #ffffff;
  //     //             font-size: 21px;
  //     //             opacity: 0.5;
  //     //             line-height: 27px;
  //     //         }
  //     //         :deep(.el-input input::-moz-input-placeholder) {
  //     //             color: #ffffff;
  //     //             font-size: 21px;
  //     //             opacity: 0.5;
  //     //         }
  //     //         :deep(.el-input input::-ms-input-placeholder) {
  //     //             color: #ffffff;
  //     //             font-size: 21px;
  //     //             opacity: 0.5;
  //     //             line-height: 27px;
  //     //         }
    //     //     .input {
    //     //         display: inline-block;
    //     //         width: 100px;
    //     //         height: 23px;
    //     //         font-size: 24px;
    //     //         font-family: PingFang SC;
    //     //         color: #ffffff;
    //     //         margin-bottom: 21px;
    //     //     }
    //     // }
    // }
  //     //         :deep(.el-button) {
  //     //             width: 548px;
  //     //             height: 59px;
  //     //             background: linear-gradient(
  //     //                 90deg,
  //     //                 rgba(0, 249, 247, 0.54),
  //     //                 rgba(0, 182, 249, 0.54)
  //     //             );
  //     //             box-shadow: 0px 2px 20px 1px rgba(1, 25, 70, 0.46);
  //     //             font-size: 29px;
  //     //             margin-top: 25px;
  //     //         }
  //     //     }
  //     //     .input {
  //     //         display: inline-block;
  //     //         width: 100px;
  //     //         height: 23px;
  //     //         font-size: 24px;
  //     //         font-family: PingFang SC;
  //     //         color: #ffffff;
  //     //         margin-bottom: 21px;
  //     //     }
  //     // }
  // }
}
</style>