hanbaoshan
2020-08-08 f77dad86de37e5ab0df6a6ce43f21e1ab408d389
调整布局
21个文件已修改
577 ■■■■ 已修改文件
public/index.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/common.scss 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/subComponents/SystemInfo.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/ai/index/App.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/analysisPower/index/App.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/components/CameraInfo.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/components/LinkageRule.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/components/SeparateRules.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/index/App.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/cameraAccess/index/VideoManage.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/datapush/index/App.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/desktop/index/components/DFrame.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/desktop/index/mock/userData.json 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/gb28181/index/App.vue 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/index/main.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/library/components/addBase.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/library/index/main.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/settings/components/AuthorityManagement.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/settings/components/BasicSetting.vue 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/settings/components/RadioSet.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/settings/index/App.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html
@@ -313,6 +313,9 @@
    .mt15 {
      margin-top: 15px;
    }
    .pl20 {
      padding-left: 20px;
    }
    .el-button--primary {
      color: #FFFFFF;
      background-color: #3D68E1!important;
src/assets/css/common.scss
@@ -318,15 +318,15 @@
// elementu-ui
.el-radio__input.is-checked .el-radio__inner {
  border-color: #3d68e1;
  background: #3d68e1;
}
.el-radio__input.is-checked + .el-radio__label {
  color: #3d68e1;
}
// .el-radio__input.is-checked .el-radio__inner {
//   border-color: #3d68e1;
//   background: #3d68e1;
// }
// .el-radio__input.is-checked + .el-radio__label {
//   color: #3d68e1;
// }
.el-switch.is-checked .el-switch__core {
  border-color: #3d68e1;
  background-color: #3d68e1;
}
// .el-switch.is-checked .el-switch__core {
//   border-color: #3d68e1;
//   background-color: #3d68e1;
// }
src/components/subComponents/SystemInfo.vue
@@ -180,16 +180,16 @@
  }
  .eCharts-box {
    width: 28%;
    float: right;
    float: left;
    box-sizing: border-box;
    height: 100%;
    margin-left: 5px;
    @media screen and (min-width: 1280px) and (max-width: 1440px) {
      width: 35%;
    }
    @media screen and (max-width: 1279px) {
      width: 30%;
    }
    margin-left: 30px;
    // @media screen and (min-width: 1280px) and (max-width: 1440px) {
    //   width: 35%;
    // }
    // @media screen and (max-width: 1279px) {
    //   width: 30%;
    // }
  }
  .chart-box {
    float: left;
src/pages/ai/index/App.vue
@@ -19,7 +19,7 @@
              @tab-click="handleTabClick"
              style="height: calc(100% - 20px);"
            >
              <el-tab-pane label="我的算法" name="myAlgorithm">
              <el-tab-pane label="已安装" name="myAlgorithm">
                <div class="width-new-line task-list" v-show="activeName === 'myAlgorithm'">
                  <div class="flex-list">
                    <!-- <draggable
@@ -142,8 +142,9 @@
                  </div>
                </div>
              </el-tab-pane>
              <el-tab-pane label="算法商城" name="algorithmMall" v-show="activeName==='algorithmMall'">
              <el-tab-pane label="应用中心" name="algorithmMall" v-show="activeName==='algorithmMall'">
                <div class="tab-content">
                  <p>算法软件</p>
                  <div class="store-list">
                    <div class="wrap-box">
                      <div class="inner">
@@ -161,6 +162,8 @@
                      </div>
                    </div>
                  </div>
                  <p>应用软件</p>
                  <div class="app-list"></div>
                </div>
                <el-drawer title="下载" :visible.sync="actDrawerShow" :direction="direction">
                  <div class="drawer-content">
src/pages/analysisPower/index/App.vue
@@ -58,6 +58,7 @@
          height="93%"
          :data="PollData.CameraList"
          border
          :cell-style="cellStyle"
        >
          <el-table-column label="序号" type="index" align="center" width="100px"></el-table-column>
          <el-table-column label="摄像机名称" align="center" show-overflow-tooltip sortable>
@@ -481,6 +482,11 @@
        this.formData.polling++
      }
      // console.log("this.formData.polling:"+this.formData.polling)
    },
    cellStyle(obj){
      if(obj.column.label=='摄像机名称'||obj.column.label=='摄像机地址'){
        return 'text-align:left;padding-left:8px;'
      }
    }
  }
};
@@ -489,38 +495,30 @@
.s-poll-setting {
  width: 100%;
  height: 100%;
  min-width: 1609px;
  font-size: 14px;
  position: relative;
  .top {
    width: 100%;
    height: 190px;
    // border-bottom: 1px solid #ccc;
    min-width: 1609px;
    display: flex;
    .progressBar {
      width: 26%;
    }
    .percentBall {
      width: 80%;
      width: 84%;
      height: 82%;
      float: left;
      padding-left: 38px;
      //float: left;
      padding-left: 30px;
      box-sizing: border-box;
      // @media screen and (min-width: 1280px) and (max-width: 1440px) {
      //   width: 75%;
      // }
      // @media screen and (max-width: 1280px) {
      //   width: 80%;
      // }
    }
    .barGraph {
      width: 20%;
      width: 16%;
      height: 100%;
      float: right;
      // @media screen and (min-width: 1280px) and (max-width: 1440px) {
      //   width: 25%;
      // }
      // @media screen and (max-width: 1280px) {
      //   width: 20%;
      // }
      //float: right;
      #barSimple {
        width: 100%;
        height: 250px;
@@ -540,12 +538,6 @@
    }
  }
  .bottom {
    //width: calc(100% + 76px);
    //height: 100%;
    //height: calc(100% - 220px);
    //position: absolute;
    // top: 220px;
    //left: -38px;
    .tip {
      display: inline-block;
      font-family: PingFangSC-Medium;
@@ -555,7 +547,7 @@
      }
    }
    .content {
      padding: 20px 38px 38px 38px;
      padding: 20px 30px 30px;
      box-sizing: border-box;
      width: 100%;
      height: 100%;
src/pages/cameraAccess/components/CameraInfo.vue
@@ -125,7 +125,7 @@
          <el-button size="small" type="primary" @click="cameraConnet" :disabled="conDisabled">连接测试</el-button>
        </el-col>
      </el-row>
      <el-row style="padding-top: 15px">
      <el-row style="padding: 15px 0">
        <el-col :span="12">
          <camera-player
            :cameraName="videoItem.name"
@@ -607,7 +607,7 @@
.camera-info {
  width: 100%;
  
  margin-left: 20px;
  margin: 20px 0 20px 20px;
  
  .ai-select {
    text-align: left;
src/pages/cameraAccess/components/LinkageRule.vue
@@ -275,7 +275,8 @@
<style lang="scss">
.s-linkage-rules {
  width: 100%;
  height: 100%;
  //height: 100%;
  padding: 13px 0 20px;
  position: relative;
  .devide{
    height: 10px;
@@ -419,10 +420,10 @@
      }
    }
    .bottom-right {
      padding: 10px 20px;
      padding: 10px 20px 20px;
      box-sizing: border-box;
      .draw-and-time-box {
        height: 430px;
        height: 410px;
        width: 100%;
        .draw-box,
        .time-box {
src/pages/cameraAccess/components/SeparateRules.vue
@@ -470,7 +470,7 @@
<style lang="scss">
.s-separate-rules {
  width: 100%;
  padding: 13px 0 20px;
  .ai {
    //width: calc(100% + 76px);
    // height: 38px;
@@ -623,7 +623,7 @@
  }
  .bottom {
    width: 100%;
    margin-bottom: 15px;
    .bottom-side {
      height: 100%;
      width: 250px;
src/pages/cameraAccess/index/App.vue
@@ -44,7 +44,7 @@
      })();
    };
    debugger
    this.leftWith = this.$refs['left'].width;
    this.leftWith = this.$refs['left'].offsetWidth;
  },
  methods: {
    getUrlKey() {
@@ -57,9 +57,10 @@
<style lang="scss" scoped>
.column {
  //overflow: hidden;
  overflow-y: hidden;
  display: flex;
  width: 100%;
  height: 100%;
}
.column-left {
  height: inherit;
@@ -67,13 +68,14 @@
  position: relative;
}
.column-right {
  min-width: 1442px;
  flex:1;
  position: relative;
  flex:1;
  background-color: #fff;
  box-sizing: border-box;
  overflow: auto;
  //height: 100%;
  overflow-y: hidden;
  height: 100%;
  min-width: 1433px;
}
.resize-save {
  position: absolute;
src/pages/cameraAccess/index/VideoManage.vue
@@ -1,6 +1,6 @@
<template>
  <div class="s-video-manage">
    <el-tabs class="video-tab" v-model="activeName" type="border-card" @tab-click="handleClick">
    <el-tabs class="video-tab" ref="topTab" v-model="activeName" type="border-card" @tab-click="handleClick">
      <el-tab-pane
        :label="firstLabeName"
        name="camera-info"
@@ -123,7 +123,8 @@
        })
      },
      deep: true
    }
    },
  },
  created() {
    if (this.TreeDataPool.treeActiveName == 'camera') {
@@ -247,13 +248,12 @@
  .el-tabs--border-card {
    height: 100%;
    width: 100%;
    &.video-tab {
      & > .el-tabs__header {
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 999;
    &.video-tab{
      &>.el-tabs__header{
        //position: fixed;
        //position: absolute;
        //top:0;
        //left: 0;
        height: 54px;
        overflow-y: hidden;
      }
@@ -287,14 +287,15 @@
  }
  .video-tab > .el-tabs__content {
    width: 100%;
    margin-top: 52px;
    //height: calc(100% - 52px);
    //margin-top: 52px;
    height: calc(100% - 78px);
    box-sizing: border-box;
    padding: 13px 0;
    overflow-y: auto;
    padding: 0;
  }
  .el-tab-pane {
    width: 100%;
    height: 100%;
    //height: 100%;
  }
}
</style>
src/pages/datapush/index/App.vue
@@ -93,8 +93,6 @@
};
</script>
<style src="../../../assets/css/common.scss" lang="scss"></style>
<style src="../../../assets/css/overried.scss" lang="scss"></style>
<style lang="scss">
.ev-left-list {
  border-right: 1px solid #e0e0e0;
src/pages/desktop/index/components/DFrame.vue
@@ -2,11 +2,11 @@
  <div
    v-show="data.isShow"
    :class="['d-frame', {'d-frame-full': fullScreen}]"
    ref="dFrame"
    :data-id="data.id"
    v-bind:style="{left: data.leftOffset + 'px', top: data.topOffset + 'px', 'z-index': 125 + data.order, width: width + 'px', height: height + 'px'}"
    @click="frameClick"
  >
    <div class="d-frame-title" v-drag>
    <div class="d-frame-title" v-drag @click="frameClick">
      <div class="d-frame-title-operation">
        <i class="icon-minus d-frame-operation-minus" @click="minFrame(data,$event)">
          <img :src="`${publicPath}images/desktop/header-icon/min.png`" alt />
@@ -26,7 +26,7 @@
        </div>
      </slot>
    </div>
    <div class="d-frame-content" @click="frameClick"  >
    <div class="d-frame-content">
      <iframe :src="data.url" v-if="data.url"></iframe>
      <div v-html="data.html" v-if="data.html"></div>
      <!-- <span class="d-frame-operation-resize" v-resize></span> -->
@@ -63,6 +63,7 @@
      }
    }
  },
  methods: {
    //resize
    mousedown(e) {
@@ -95,7 +96,8 @@
    changeFullScreen: function () {
      this.fullScreen = !this.fullScreen;
    },
    frameClick() {
    frameClick(e) {
      debugger
      this.$store.commit('desktop/refreshFrame', this.data);
    },
    minFrame(data, e) {
src/pages/desktop/index/mock/userData.json
@@ -12,7 +12,7 @@
        "url": "/view/gb28181",
        "title": "GB28181配置",
        "width": 600,
        "height": 900
        "height": 500
      },
      {
        "id": "12",
@@ -44,8 +44,8 @@
        "type": "2",
        "url": "/view/cameraAccess",
        "title": "摄像机配置",
        "width": 1876,
        "height": 900
        "width": 1300,
        "height": 770
      },
      {
        "id": "2",
@@ -55,8 +55,8 @@
        "type": "2",
        "url": "/view/cameraAccess?dataStack=1",
        "title": "数据栈配置",
        "width": 1876,
        "height": 750
        "width": 1300,
        "height": 770
      },
      {
        "id": "4",
@@ -86,7 +86,7 @@
        "type": "2",
        "url": "/view/analysisPower",
        "title": "算力管理",
        "width": 1720,
        "width": 1669,
        "height": 800
      },
      {
@@ -97,8 +97,8 @@
        "type": "2",
        "url": "/view/search",
        "title": "统计查询",
        "width": 1663,
        "height": 890
        "width": 1445,
        "height": 675
      },
      {
        "id": "15",
src/pages/gb28181/index/App.vue
@@ -1,93 +1,111 @@
<template>
  <div class="s-basic-setting">
    <!-- GB28181设置 -->
    <el-form :model="gb28181" :rules="rules" label-width="130px" class="alarmSetting" ref="gb28181">
      <!-- <el-form-item label="国际服务器IP" prop="ServerIp">
            <ip-input :ip="gb28181.ServerIp" @on-blur="gb28181.ServerIp = arguments[0]"></ip-input>
      </el-form-item>-->
    <el-menu
      :default-openeds="openeds"
      background-color="#fff"
      text-color="#303133"
      active-text-color="#409EFF"
      style="height: 100%;"
      class="menu-css"
      @open="menuOpen"
      @close="menuClose"
    >
      <el-submenu index="0">
        <template slot="title">
          <b class="tree-font">国际ID</b>
        </template>
        <el-menu-item-group class="item-group">
          <!-- GB28181设置 -->
          <el-form :model="gb28181" :rules="rules" label-width="130px" class="alarmSetting" ref="gb28181">
            <!-- <el-form-item label="国际服务器IP" prop="ServerIp">
                  <ip-input :ip="gb28181.ServerIp" @on-blur="gb28181.ServerIp = arguments[0]"></ip-input>
            </el-form-item>-->
      <div style="text-align: left;margin-bottom: 22px;">
        <el-radio-group v-model="gb28181.idType">
          <el-radio :label="0">输入已有ID</el-radio>
          <el-radio :label="1">生成新的ID</el-radio>
        </el-radio-group>
      </div>
            <div style="text-align: left;margin-bottom: 22px;">
              <el-radio-group v-model="gb28181.idType">
                <el-radio :label="0">输入已有ID</el-radio>
                <el-radio :label="1">生成新的ID</el-radio>
              </el-radio-group>
            </div>
      <el-form-item label="所在地">
        <el-select
          v-model="locationCity.province"
          @change="changeProvince"
          size="small"
          placeholder="请选择省份"
        >
          <el-option
            v-for="item in locationCity.provinceOptions"
            :key="item.id"
            :label="item.name"
            size="small"
            :value="item.id"
          ></el-option>
        </el-select>
        <el-select
          class="ml10 mr10"
          v-model="locationCity.city"
          :disabled="!locationCity.province"
          @change="changeCity"
          size="small"
          placeholder="请选择城市"
        >
          <el-option
            v-for="item in locationCity.cityOptions"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          ></el-option>
        </el-select>
        <el-select
          v-model="locationCity.county"
          :disabled="!locationCity.city"
          size="small"
          placeholder="请选择区县"
        >
          <el-option
            v-for="item in locationCity.countyOptions"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          ></el-option>
        </el-select>
        <el-button
          type="text"
          style="position: absolute"
          v-show="gb28181.idType === 1"
          @click="newGBID"
        >生成ID</el-button>
      </el-form-item>
            <el-form-item label="所在地">
              <el-select
                v-model="locationCity.province"
                @change="changeProvince"
                size="small"
                placeholder="请选择省份"
              >
                <el-option
                  v-for="item in locationCity.provinceOptions"
                  :key="item.id"
                  :label="item.name"
                  size="small"
                  :value="item.id"
                ></el-option>
              </el-select>
              <el-select
                class="ml10 mr10"
                v-model="locationCity.city"
                :disabled="!locationCity.province"
                @change="changeCity"
                size="small"
                placeholder="请选择城市"
              >
                <el-option
                  v-for="item in locationCity.cityOptions"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
              <el-select
                v-model="locationCity.county"
                :disabled="!locationCity.city"
                size="small"
                placeholder="请选择区县"
              >
                <el-option
                  v-for="item in locationCity.countyOptions"
                  :key="item.id"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
              <el-button
                type="text"
                style="position: absolute"
                v-show="gb28181.idType === 1"
                @click="newGBID"
              >生成ID</el-button>
            </el-form-item>
      <!-- <el-form-item label="国际服务器端口" prop="GbServerPort">
            <el-input v-model.number="gb28181.ServerPort" placeholder="请输入" size="small"></el-input>
      </el-form-item>-->
            <!-- <el-form-item label="国际服务器端口" prop="GbServerPort">
                  <el-input v-model.number="gb28181.ServerPort" placeholder="请输入" size="small"></el-input>
            </el-form-item>-->
      <el-form-item label="国标ID">
        <el-input v-model="gb28181.PublicId" placeholder="请输入" size="small"></el-input>
      </el-form-item>
            <el-form-item label="国标ID">
              <el-input v-model="gb28181.PublicId" placeholder="请输入" size="small"></el-input>
            </el-form-item>
      <el-form-item label="国标端口" prop="ServerPort">
        <el-input v-model.number="gb28181.GbServerPort" placeholder="请输入" size="small"></el-input>
      </el-form-item>
            <el-form-item label="国标端口" prop="ServerPort">
              <el-input v-model.number="gb28181.GbServerPort" placeholder="请输入" size="small"></el-input>
            </el-form-item>
      <el-form-item label="开启鉴权">
        <el-switch v-model="gb28181.IsAuth"></el-switch>
      </el-form-item>
            <el-form-item label="开启鉴权">
              <el-switch v-model="gb28181.IsAuth"></el-switch>
            </el-form-item>
      <el-form-item label="鉴权密码" v-show="gb28181.IsAuth">
        <el-input v-model="gb28181.Password" placeholder="请输入" size="small"></el-input>
      </el-form-item>
            <el-form-item label="鉴权密码" v-show="gb28181.IsAuth">
              <el-input v-model="gb28181.Password" placeholder="请输入" size="small"></el-input>
            </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitGB28281" size="small">保存</el-button>
      </el-form-item>
    </el-form>
            <el-form-item >
              <el-button type="primary" @click="submitGB28281" size="small">保存</el-button>
            </el-form-item>
          </el-form>
        </el-menu-item-group>
      </el-submenu>
    </el-menu>
  </div>
</template>
@@ -230,16 +248,20 @@
<style lang="scss">
.s-basic-setting {
  height: 100%;
  padding: 0 30px;
  padding: 30px;
  box-sizing: border-box;
  .el-form {
    margin-top: 30px;
    // margin-left: -80px;
    .el-form-item {
      text-align: left;
      &:last-of-type{
        width: 490px;
      }
      .el-button {
        float: right;
      }
      .el-select{
        margin-right:10px;
      }
      .el-form-item__content {
        text-align: left;
        input {
@@ -258,6 +280,7 @@
        text-align: left;
      }
    }
  }
  .alarmSetting {
    .el-input {
src/pages/index/main.ts
@@ -1,9 +1,10 @@
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import "@/assets/css/element-variables.scss";
import "../../assets/css/common.scss"
import "../../assets/css/overried.scss"
// import "../../assets/css/common.scss"
// import "../../assets/css/overried.scss"
import App from './App.vue'
src/pages/library/components/addBase.vue
@@ -75,7 +75,7 @@
            required
            prop="startTime"
          >
            <el-col :span="11" class="pick-time">
            <el-col :span="11" class="">
              <el-date-picker
                size="small"
                type="datetime"
@@ -125,7 +125,7 @@
      <el-row>
        <el-col :span="6" :offset="15">
          <el-form-item style="margin-top:50px;text-align:right;" label-width="0px">
            <el-button type="info" size="small" @click="onCancle">取消</el-button>
            <el-button type="info" size="small" @click="onCancle" style="color:#222">取消</el-button>
            <el-button type="primary" size="small" @click="onSubmit('baseForm')" class="save">保存</el-button>
          </el-form-item>
        </el-col>
@@ -396,10 +396,10 @@
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.el-radio__input.is-checked .el-radio__inner {
  border-color: #3d68e1;
  background: #3d68e1;
}
// .el-radio__input.is-checked .el-radio__inner {
//   border-color: #3d68e1;
//   background: #3d68e1;
// }
.save {
  background: #3d68e1;
  border-radius: 2px;
@@ -478,5 +478,8 @@
    transition: all 0.3s;
    pointer-events: none;
  }
  .el-button--info {
    color: #222222 !important;
  }
}
</style>
src/pages/library/index/main.ts
@@ -2,7 +2,6 @@
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import "@/assets/css/element-variables.scss";
import "../../../assets/css/overried.scss"
import "../../../assets/css/common.scss"
src/pages/settings/components/AuthorityManagement.vue
@@ -16,16 +16,16 @@
          <template slot-scope="scope">
            <el-tooltip content="编辑" placement="top" popper-class="atooltip">
              <i
                icon="el-icon-edit"
                style="font-size: 28px;"
                class="el-icon-edit"
                style="font-size: 18px;"
                @click="handleEdit(scope.$index, scope.row)"
              ></i>
            </el-tooltip>
            <el-tooltip content="删除" placement="top" popper-class="atooltip" v-show="false">
              <!-- :disabled="scope.row.sysRoles | roles | isSuper" -->
              <i
                icon="el-icon-delete"
                style="font-size: 28px; color:red;"
                class="el-icon-delete"
                style="font-size: 18px; color:red;"
                @click="handleDelete(scope.$index, scope.row)"
              ></i>
            </el-tooltip>
src/pages/settings/components/BasicSetting.vue
@@ -5,7 +5,7 @@
      v-model="activeName"
      v-loading="loading"
      :element-loading-text="loadingText"
      type="card"
      type="border-card"
    >
      <!-- 本机信息 -->
      <el-tab-pane label="本机信息" name="first">
@@ -160,101 +160,6 @@
          </el-submenu>
          <!-- 对外服务IP 改名为外部网络(新tab)-->
          <!-- 文件音视频 -->
          <!-- <el-submenu index="4">
            <template slot="title">
              <b class="tree-font">文件音视频</b>
            </template>
            <el-menu-item-group class="item-group">
              <el-row :gutter="20">
                <el-col :span="8">
                  <div class="p5">
                    <span class="iconfont iconpicture" style="margin-right: 5px;"></span>
                    <span class="mr10">图片端口</span>
                    <el-input v-model="localFile.picPort" style="width:300px;" placeholder="请输入内容"></el-input>
                  </div>
                  <div class="p5">
                    <span class="iconfont iconshipin" style="margin-right: 5px;"></span>
                    <span class="mr10">视频端口</span>
                    <el-input v-model="localFile.videoPort" style="width:300px;" placeholder="请输入内容"></el-input>
                  </div>
                  <div class="p5">
                    <span class="iconfont iconyinpinx" style="margin-right: 5px;"></span>
                    <span class="mr10">音频端口</span>
                    <el-input v-model="localFile.audioPort" style="width:300px;" placeholder="请输入内容"></el-input>
                  </div>
                </el-col>
                <el-col :span="16">
                  <el-table
                    :data="localFile.fileTable"
                    border
                    style="width: 100%">
                    <el-table-column
                      type="index"
                      label="序号"
                      align="center"
                      width="50">
                    </el-table-column>
                    <el-table-column
                      prop="date"
                      label="名称"
                      align="center"
                      width="180">
                    </el-table-column>
                    <el-table-column
                      prop="name"
                      label="ID"
                      align="center"
                      width="180">
                    </el-table-column>
                    <el-table-column
                      prop="name"
                      label="IP"
                      align="center"
                      width="180">
                    </el-table-column>
                    <el-table-column
                      prop="name"
                      label="在线状态"
                      align="center"
                      width="80">
                    </el-table-column>
                    <el-table-column
                      label="类别"
                      align="center"
                      width="100">
                      <template>
                        <span class="iconfont iconpicture" style="margin-right: 5px;"></span>
                        <span class="iconfont iconshipin" style="margin-right: 5px;"></span>
                        <span class="iconfont iconyinpinx" style="margin-right: 5px;"></span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      prop="address"
                      align="center"
                      label="备注">
                      <template slot-scope="{row}">
                        <div v-if="row.edit">
                          <el-input :autofocus="row.edit" v-focus v-model="row.address" size="small" />
                          <el-button size="mini" type="info" @click="handleCancel(row)">取消</el-button>
                          <el-button size="mini" type="primary" @click="handleSave(row)">保存</el-button>
                        </div>
                        <div v-else>
                          <span>{{ row.address }}</span>
                          <el-button
                            type="text"
                            style="color: black;font-size:16px"
                            @click="handleEdit(row)"
                            icon="iconfont iconbianji"
                          ></el-button>
                        </div>
                      </template>
                    </el-table-column>
                  </el-table>
                </el-col>
              </el-row>
            </el-menu-item-group>
          </el-submenu>-->
        </el-menu>
      </el-tab-pane>
@@ -352,33 +257,60 @@
        <cluster-management></cluster-management>
      </el-tab-pane>
      <el-tab-pane label="外部网络" name="fourth">
        <div class="flex-box">
          <label>设置外部IP</label>
          <div style="width:300px;">
            <ip-input :ip="ipServer.ip" @on-blur="ipServer.ip = arguments[0]"></ip-input>
          </div>
          <el-checkbox label="选用本机IP" size="small" style="margin-left: 20px"></el-checkbox>
        </div>
        <div class="flex-box">
          <label>域名</label>
          <el-input size="small" v-model="ipServer.localhost"></el-input>
        </div>
        <div class="flex-box">
          <label>本地文件端口</label>
          <el-input size="small" v-model="ipServer.localFilePort"></el-input>
        </div>
        <div class="mt15 save-btn" style="width:460px; margin-bottom:20px; float:left;">
          <el-button type="primary" @click="submitResource" size="small">保存</el-button>
        </div>
        <div>
          <el-table :data="ipServer.fileTable" border fit style="width: 100%">
            <el-table-column type="index" label="序号" align="center" width="50"></el-table-column>
            <el-table-column prop="date" label="名称" align="center"></el-table-column>
            <el-table-column prop="name" label="ID" align="center"></el-table-column>
            <el-table-column prop="name" label="IP" align="center"></el-table-column>
            <el-table-column prop="name" label="在线状态" align="center"></el-table-column>
          </el-table>
        </div>
        <el-menu
          :default-openeds="openeds"
          background-color="#fff"
          text-color="#303133"
          active-text-color="#409EFF"
          style="height: 100%;"
          class="menu-css"
          @open="menuOpen"
          @close="menuClose"
        >
          <el-submenu index="0">
            <template slot="title">
              <b class="tree-font">外部访问设置</b>
            </template>
            <el-menu-item-group class="item-group">
              <el-form :model="sysinfo" :rules="rules" ref="sysinfo" label-width="100px">
                <div class="flex-box">
                  <label>设置外部IP</label>
                  <div style="width:300px;">
                    <ip-input :ip="ipServer.ip" @on-blur="ipServer.ip = arguments[0]"></ip-input>
                  </div>
                  <el-checkbox label="选用本机IP" size="small" style="margin-left: 20px"></el-checkbox>
                </div>
                <div class="flex-box">
                  <label>域名</label>
                  <el-input size="small" v-model="ipServer.localhost"></el-input>
                </div>
                <div class="flex-box">
                  <label>本地文件端口</label>
                  <el-input size="small" v-model="ipServer.localFilePort"></el-input>
                </div>
                <div class="mt15 mb10 save-btn">
                  <el-button type="primary" @click="submitSysinfo" size="small">保存</el-button>
                </div>
              </el-form>
            </el-menu-item-group>
          </el-submenu>
          <el-submenu index="1">
            <template slot="title">
              <b class="tree-font">外部访问列表</b>
            </template>
            <el-menu-item-group class="item-group">
              <div>
                <el-table :data="ipServer.fileTable" border fit style="width: 100%">
                  <el-table-column type="index" label="序号" align="center" width="50"></el-table-column>
                  <el-table-column prop="date" label="名称" align="center"></el-table-column>
                  <el-table-column prop="name" label="ID" align="center"></el-table-column>
                  <el-table-column prop="name" label="IP" align="center"></el-table-column>
                  <el-table-column prop="name" label="在线状态" align="center"></el-table-column>
                </el-table>
              </div>
            </el-menu-item-group>
          </el-submenu>
        </el-menu>
      </el-tab-pane>
      <el-tab-pane label="权限管理" name="user">
        <authority-management v-if="activeName === 'user'"></authority-management>
src/pages/settings/components/RadioSet.vue
@@ -43,13 +43,13 @@
          <template v-else>
            <el-button
              type="text"
              style="color: black;font-size:16px"
              style="color: black;font-size:18px"
              @click="handleEdit(scope.row)"
              icon="el-icon-edit"
            ></el-button>
            <el-button
              type="text"
              style="color: red;font-size:16px"
              style="color: red;font-size:18px"
              @click="handleDelete(scope.$index)"
              icon="el-icon-delete"
            ></el-button>
src/pages/settings/index/App.vue
@@ -62,6 +62,7 @@
<style lang="scss">
.s-system-manage {
  width: 100% !important;
  height: 100%;
  box-sizing: border-box;
  padding: 10px;
  background-color: #f8f9fb;