Kaynağa Gözat

安德森,三相源码

e 2 yıl önce
ebeveyn
işleme
6db9e0fe3e
100 değiştirilmiş dosya ile 49 ekleme ve 2539 silme
  1. 0 98
      web/src/views/index_v1.vue
  2. 0 626
      web/src/views/index_原始.vue
  3. 0 219
      web/src/views/login_back.vue
  4. 0 579
      web/src/views/login_ces.vue
  5. 0 753
      web/src/views/power/channelstatus/index.vue.back
  6. 0 244
      web/src/views/power/monitorhistory/index_tab.vue
  7. 7 2
      web/三相/src/store/modules/user.js
  8. 1 1
      web/三相/src/views/index.vue
  9. 24 7
      web/三相/src/views/jgbh/fzsz/index.vue
  10. 13 1
      web/三相/src/views/power/channelstatus/index.vue
  11. 1 1
      web/三相/src/views/power/monitorall/index.vue
  12. 0 5
      web/三相/src/views/power/monitorhistory/index.vue
  13. 3 3
      web/三相/src/views/rzxx/yxrz/index.vue
  14. 0 0
      web/安德森/.editorconfig
  15. 0 0
      web/安德森/.env.development
  16. 0 0
      web/安德森/.env.production
  17. 0 0
      web/安德森/.env.staging
  18. 0 0
      web/安德森/.eslintignore
  19. 0 0
      web/安德森/.eslintrc.js
  20. 0 0
      web/安德森/.gitignore
  21. 0 0
      web/安德森/README.md
  22. 0 0
      web/安德森/babel.config.js
  23. 0 0
      web/安德森/bin/build.bat
  24. 0 0
      web/安德森/bin/package.bat
  25. 0 0
      web/安德森/bin/run-web.bat
  26. 0 0
      web/安德森/build/index.js
  27. 0 0
      web/安德森/package.json
  28. 0 0
      web/安德森/public/favicon.ico
  29. 0 0
      web/安德森/public/html/ie.html
  30. 0 0
      web/安德森/public/index.html
  31. 0 0
      web/安德森/public/robots.txt
  32. 0 0
      web/安德森/ruoyi-ui-ads.iml
  33. 0 0
      web/安德森/ruoyi-ui.iml
  34. 0 0
      web/安德森/ruoyi-web.iml
  35. 0 0
      web/安德森/src/App.vue
  36. 0 0
      web/安德森/src/api/login.js
  37. 0 0
      web/安德森/src/api/menu.js
  38. 0 0
      web/安德森/src/api/monitor/cache.js
  39. 0 0
      web/安德森/src/api/monitor/job.js
  40. 0 0
      web/安德森/src/api/monitor/jobLog.js
  41. 0 0
      web/安德森/src/api/monitor/logininfor.js
  42. 0 0
      web/安德森/src/api/monitor/online.js
  43. 0 0
      web/安德森/src/api/monitor/operlog.js
  44. 0 0
      web/安德森/src/api/monitor/server.js
  45. 0 0
      web/安德森/src/api/pdu/pduServer.js
  46. 0 0
      web/安德森/src/api/system/config.js
  47. 0 0
      web/安德森/src/api/system/dept.js
  48. 0 0
      web/安德森/src/api/system/dict/data.js
  49. 0 0
      web/安德森/src/api/system/dict/type.js
  50. 0 0
      web/安德森/src/api/system/menu.js
  51. 0 0
      web/安德森/src/api/system/notice.js
  52. 0 0
      web/安德森/src/api/system/post.js
  53. 0 0
      web/安德森/src/api/system/role.js
  54. 0 0
      web/安德森/src/api/system/user.js
  55. 0 0
      web/安德森/src/api/tool/gen.js
  56. 0 0
      web/安德森/src/assets/401_images/401.gif
  57. 0 0
      web/安德森/src/assets/404_images/404.png
  58. 0 0
      web/安德森/src/assets/404_images/404_cloud.png
  59. 0 0
      web/安德森/src/assets/button/delete.png
  60. 0 0
      web/安德森/src/assets/button/update.png
  61. 0 0
      web/安德森/src/assets/icons/index.js
  62. 0 0
      web/安德森/src/assets/icons/svg/404.svg
  63. 0 0
      web/安德森/src/assets/icons/svg/Vector.svg
  64. 0 0
      web/安德森/src/assets/icons/svg/bug.svg
  65. 0 0
      web/安德森/src/assets/icons/svg/build.svg
  66. 0 0
      web/安德森/src/assets/icons/svg/button.svg
  67. 0 0
      web/安德森/src/assets/icons/svg/cascader.svg
  68. 0 0
      web/安德森/src/assets/icons/svg/chart.svg
  69. 0 0
      web/安德森/src/assets/icons/svg/checkbox.svg
  70. 0 0
      web/安德森/src/assets/icons/svg/clipboard.svg
  71. 0 0
      web/安德森/src/assets/icons/svg/code.svg
  72. 0 0
      web/安德森/src/assets/icons/svg/color.svg
  73. 0 0
      web/安德森/src/assets/icons/svg/component.svg
  74. 0 0
      web/安德森/src/assets/icons/svg/dashboard.svg
  75. 0 0
      web/安德森/src/assets/icons/svg/date-range.svg
  76. 0 0
      web/安德森/src/assets/icons/svg/date.svg
  77. 0 0
      web/安德森/src/assets/icons/svg/dict.svg
  78. 0 0
      web/安德森/src/assets/icons/svg/documentation.svg
  79. 0 0
      web/安德森/src/assets/icons/svg/download.svg
  80. 0 0
      web/安德森/src/assets/icons/svg/drag.svg
  81. 0 0
      web/安德森/src/assets/icons/svg/druid.svg
  82. 0 0
      web/安德森/src/assets/icons/svg/edit.svg
  83. 0 0
      web/安德森/src/assets/icons/svg/education.svg
  84. 0 0
      web/安德森/src/assets/icons/svg/email.svg
  85. 0 0
      web/安德森/src/assets/icons/svg/example.svg
  86. 0 0
      web/安德森/src/assets/icons/svg/excel.svg
  87. 0 0
      web/安德森/src/assets/icons/svg/exit-fullscreen.svg
  88. 0 0
      web/安德森/src/assets/icons/svg/eye-open.svg
  89. 0 0
      web/安德森/src/assets/icons/svg/eye.svg
  90. 0 0
      web/安德森/src/assets/icons/svg/form.svg
  91. 0 0
      web/安德森/src/assets/icons/svg/fullscreen.svg
  92. 0 0
      web/安德森/src/assets/icons/svg/github.svg
  93. 0 0
      web/安德森/src/assets/icons/svg/gjzt.svg
  94. 0 0
      web/安德森/src/assets/icons/svg/guide.svg
  95. 0 0
      web/安德森/src/assets/icons/svg/icon.svg
  96. 0 0
      web/安德森/src/assets/icons/svg/input.svg
  97. 0 0
      web/安德森/src/assets/icons/svg/international.svg
  98. 0 0
      web/安德森/src/assets/icons/svg/jctd.svg
  99. 0 0
      web/安德森/src/assets/icons/svg/job.svg
  100. 0 0
      web/src/assets/icons/svg/language.svg

+ 0 - 98
web/src/views/index_v1.vue

@@ -1,98 +0,0 @@
-<template>
-  <div class="dashboard-editor-container">
-
-    <panel-group @handleSetLineChartData="handleSetLineChartData" />
-
-    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
-      <line-chart :chart-data="lineChartData" />
-    </el-row>
-
-    <el-row :gutter="32">
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <raddar-chart />
-        </div>
-      </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <pie-chart />
-        </div>
-      </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <bar-chart />
-        </div>
-      </el-col>
-    </el-row>
-
-    
-  </div>
-</template>
-
-<script>
-import PanelGroup from './dashboard/PanelGroup'
-import LineChart from './dashboard/LineChart'
-import RaddarChart from './dashboard/RaddarChart'
-import PieChart from './dashboard/PieChart'
-import BarChart from './dashboard/BarChart'
-
-const lineChartData = {
-  newVisitis: {
-    expectedData: [100, 120, 161, 134, 105, 160, 165],
-    actualData: [120, 82, 91, 154, 162, 140, 145]
-  },
-  messages: {
-    expectedData: [200, 192, 120, 144, 160, 130, 140],
-    actualData: [180, 160, 151, 106, 145, 150, 130]
-  },
-  purchases: {
-    expectedData: [80, 100, 121, 104, 105, 90, 100],
-    actualData: [120, 90, 100, 138, 142, 130, 130]
-  },
-  shoppings: {
-    expectedData: [130, 140, 141, 142, 145, 150, 160],
-    actualData: [120, 82, 91, 154, 162, 140, 130]
-  }
-}
-
-export default {
-  name: 'Index',
-  components: {
-    PanelGroup,
-    LineChart,
-    RaddarChart,
-    PieChart,
-    BarChart
-  },
-  data() {
-    return {
-      lineChartData: lineChartData.newVisitis
-    }
-  },
-  methods: {
-    handleSetLineChartData(type) {
-      this.lineChartData = lineChartData[type]
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.dashboard-editor-container {
-  padding: 32px;
-  background-color: rgb(240, 242, 245);
-  position: relative;
-
-  .chart-wrapper {
-    background: #fff;
-    padding: 16px 16px 0;
-    margin-bottom: 32px;
-  }
-}
-
-@media (max-width:1024px) {
-  .chart-wrapper {
-    padding: 8px;
-  }
-}
-</style>

+ 0 - 626
web/src/views/index_原始.vue

@@ -1,626 +0,0 @@
-<template>
-  <div class="app-container">
-
-    <el-row>
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header"><span style=" font-size: 20px; font-weight: bold;">{{$t('jcxx')}}</span>
-            <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="queryInfo" > {{$t('cx')}}</el-button></span>                                                                                                                                                                                       </el-button></span></div>
-          <div  class="el-table el-table--enable-row-hover el-table--medium">
-            <el-row :span="24" >
-              <el-col :span="4" >
-                <div class="row-item">
-                  <div class="row-item-title">PDU{{$t('xh')}}: </div>
-                  <div class="row-item-content">{{ totalInfo.productType }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('bh')}}: </div>
-                  <div class="row-item-content">{{  totalInfo.productNumber  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('lx')}}: </div>
-                  <div class="row-item-content">{{  totalInfo.productPwrType  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('bbh')}}:</div>
-                  <div class="row-item-content">{{  totalInfo.productVersion  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('zkb')}}CPU: </div>
-                  <div class="row-item-content">{{  totalInfo.productConsumption  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('nc')}}: </div>
-                  <div class="row-item-content">{{  totalInfo.productMemory  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('cpzyl')}}: </div>
-                  <div class="row-item-content">{{  totalInfo.occupancyRate  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">IP{{$t('dz')}}: </div>
-                  <div class="row-item-content">{{  totalInfo.productAddr  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">RS485{{$t('jl')}}{{$t('sbsl')}}: </div>
-                  <div class="row-item-content">{{  totalInfo.productCount  }}</div>
-                </div>
-              </el-col>
-            </el-row>
-
-          </div>
-        </el-card>
-
-      </el-col>
-
-      <el-col :span="12" class="card-box">
-        <el-card>
-          <div slot="header"><span style=" font-size: 20px; font-weight: bold;">{{$t('ztjkzt')}}</span>
-            <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="queryTotalStatus" > {{$t('cx')}}</el-button></span>                                                                                                                                                                                       </el-button></span></div>
-          <div  class="el-table el-table--enable-row-hover el-table--medium">
-            <el-row :span="24" >
-              <el-col :span="4" >
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('zdy')}}(V): </div>
-                  <div class="row-item-content">{{ totalStatus.productVoltage }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('zdl')}}(A): </div>
-                  <div class="row-item-content">{{  totalStatus.productCurrent  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('zgl')}}(W): </div>
-                  <div class="row-item-content">{{  totalStatus.productPower  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('pl')}}:</div>
-                  <div class="row-item-content">{{  totalStatus.productPowerFreq  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('zhdl')}}(Kwh): </div>
-                  <div class="row-item-content">{{  totalStatus.productConsumption  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">{{$t('glys')}}: </div>
-                  <div class="row-item-content">{{  totalStatus.productPowerFactor  }}</div>
-                </div>
-              </el-col>
-            </el-row>
-
-          </div>
-        </el-card>
-
-      </el-col>
-
-      <el-col   :span="12" class="card-box">
-        <el-card>
-          <div slot="header">
-            <span style=" font-size: 20px; font-weight: bold;">{{$t('tdjkzt')}}</span>
-            <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="queryChannelStatus" > {{$t('cx')}}</el-button></span>
-          </div>
-          <el-table max-height="220"  :data="channelList">
-            <!--<el-table-column type="selection" width="55" align="center" />-->
-            <el-table-column :label="this.$t('tdmc')" prop="productChName"   />
-            <el-table-column :label="this.$t('tdh')" prop="productChId" :show-overflow-tooltip="true" width="140" />
-            <el-table-column :label="this.$t('dy')+'(V)'" prop="productChVoltage" :show-overflow-tooltip="true" width="110" />
-            <el-table-column :label="this.$t('dl')+'(A)'" prop="productChCurrent" width="110" />
-            <el-table-column :label="this.$t('gl')+'(W)'" prop="productChPower" align="center" width="100"/>
-            <el-table-column :label="this.$t('pl')"  align="center" prop="productChPowerFreq" width="180"/>
-            <el-table-column :label="this.$t('hdl')+'(Kwh)'" align="center" prop="productChConsumption" width="130"/>
-            <el-table-column :label="this.$t('glys')" align="center" prop="productChPowerFactor" width="180"/>
-            <el-table-column :label="this.$t('zt')" align="center" prop="productChStatus" width="100"/>
-
-          </el-table>
-
-        </el-card>
-      </el-col>
-
-
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header">
-            <span style=" font-size: 20px; font-weight: bold;">{{$t('cgqztjk')}}</span>
-            <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="querySensorStatusMonitoring" > {{$t('cx')}}</el-button></span>
-          </div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <el-tabs value="0" @tab-click="handleClick">
-              <el-tab-pane v-for="tab in sensorStatusTabs" :label="$t(tab.name)" :key="tab.id" :name="tab.id">
-                <el-table max-height="220"  :data="sensorStatusList">
-                  <!--<el-table-column type="selection" width="55" align="center" />-->
-                  <el-table-column :label="$t('cgqxh')" prop="sensorId" :show-overflow-tooltip="true"   />
-                  <el-table-column :label="$t('cgqmc')" prop="sensorName" :show-overflow-tooltip="true"   />
-                  <el-table-column :label="$t('lx')" prop="sensorType" width="100" />
-                  <el-table-column :label="'COM'+$t('kh')" prop="comSlogan" width="100" />
-                  <el-table-column :label="$t('dz')" prop="sensorAddr" align="center"  />
-                  <el-table-column :label="$t('btl')"  align="center" prop="sensorBaud" width="100"/>
-                  <el-table-column :label="$t('ljzt')" align="center" prop="connectionStatus" width="130">
-                    <template slot-scope="scope">
-                      <span>{{getDity(scope.row,'connectionStatus')}}</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column v-if="tab.id==='0'" :label="$t('wdz')+'(℃)'" align="center" prop="temperatureValue" width="130"/>
-                  <el-table-column v-if="tab.id==='0'" :label="$t('sdz')+'(%)'" align="center" prop="humidityValue" width="130"/>
-                  <el-table-column v-if="tab.id==='1'" :label="$t('bjzt')" align="center" prop="alarmStatus" width="100">
-                    <template slot-scope="scope">
-                      <span>{{getDity(scope.row,'alarmStatus')}}</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column v-if="tab.id==='2'" :label="$t('sqrzt')" align="center" prop="waterImmersionState" width="100">
-                    <template slot-scope="scope">
-                      <span>{{getDity(scope.row,'waterImmersionState')}}</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column v-if="tab.id==='3'" :label="$t('mjsfzt')" align="center" prop="accessControlStatus" width="100">
-                    <template slot-scope="scope">
-                      <span>{{getDity(scope.row,'accessControlStatus')}}</span>
-                    </template>
-                  </el-table-column>
-                  <el-table-column v-if="tab.id==='4'" :label="$t('qtld')" align="center" prop="gasConcentration" width="100"/>
-                  <el-table-column v-if="tab.id==='5'" :label="$t('qlz')+'(m/s)'" align="center" prop="airflowValue" width="100"/>
-                  <el-table-column v-if="tab.id==='5'" :label="$t('qyz')+'(MPa)'" align="center" prop="airPressureValue" width="100"/>
-                </el-table>
-              </el-tab-pane>
-
-            </el-tabs>
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-
-
-  </div>
-</template>
-
-<script>
-  import { getServer ,overallStatusMonitoring ,channelStatusMonitoring ,sensorStatusMonitoring} from "@/api/pdu/pduServer";
-  import { dictConversion} from "@/utils/dict";
-
-
-  export default {
-    name: "Server",
-    data() {
-      return {
-        // 服务器信息
-        server: [],
-        //设备信息
-        totalInfo:{},
-        // 总体状态监控
-        totalStatus:{},
-        // 通道列表
-        channelList:[],
-        // 弹出层标题
-        title: "",
-        sensorStatusTitle: "", // 传感器标题
-        // 是否显示弹出层
-        open: false,
-        usertoken:"",
-        // 表单参数
-        form: {},
-        sensorStatusForm: {}, // 传感器表单数据
-        activeName: '0', // 当前激活的标签页的 name
-        sensorStatusTabs:[{"id":"0","name":"wsdcgq"},{"id":"1","name":"ywcgq"},{"id":"2","name":"sqcgq"},{"id":"3","name":"mjcgq"},{"id":"4","name":"qtcgq"},{"id":"5","name":"qyqlcgq"},{"id":"6","name":"ktcgq"}],
-        // 侵入/未侵入
-        waterImmersionStates:[{"id":"0","name":"qr"},{"id":"1","name":"wqr"}],
-        // 锁闭/释放
-        accessControlStatuss:[{"id":"0","name":"sb"},{"id":"1","name":"sf"}],
-        // 报警/未报警
-        alarmStatuss:[{"id":"0","name":"bj"},{"id":"1","name":"wbj"}],
-        // 在线/离线
-        connectionStatuss:[{"id":"0","name":"zx"},{"id":"1","name":"lix"}],
-        sensorStatusOpen: false, // 配置传感器
-        sensorStatusList:[],
-        // 所有数据
-        sensorStatusALLList:[]
-
-
-      };
-    },
-    mounted() {
-      //监听websocket消息
-      this.$bus.$on('OVERALL_STATUS_MONITORING', this.onSocketMessageToOverall);
-      this.$bus.$on('CHANNEL_STATUS_MONITORING', this.onSocketMessageToChannel);
-      this.$bus.$on('SENSOR_STATUS_MONITORING', this.onSocketMessageToSensor);
-    },
-    created() {
-      this.usertoken= this.$store.state.user.usertoken;
-     //this.dataRefreh();
-      this.queryInfo(); // 设备信息
-    },
-    methods: {
-      //推送总体状态
-      onSocketMessageToOverall(recvMessage) {
-        if (recvMessage.success) {
-          this.queryTotalStatus();
-        }
-      },
-      //推送通道状态
-      onSocketMessageToChannel(recvMessage) {
-        if (recvMessage.success) {
-          this.queryChannelStatus();
-        }
-      },
-      //推送传感器状态
-      onSocketMessageToSensor(recvMessage) {
-        if (recvMessage.success) {
-          this.querySensorStatusMonitoring();
-        }
-      },
-      //格式化培训形式
-      getDity(row,type) {
-        var name="";
-        var id="";
-        var formTrain=[];
-        if(type=='accessControlStatus'){
-          formTrain=this.accessControlStatuss
-          id=row.accessControlStatus
-        }else if(type=='alarmStatus'){
-          formTrain=this.alarmStatuss
-          id=row.alarmStatus
-        }else if(type=='connectionStatus'){
-          formTrain=this.connectionStatuss
-          id=row.connectionStatus
-        }else if(type=='waterImmersionState'){
-          formTrain=this.waterImmersionStates
-          id=row.waterImmersionState
-        }else if(type=='waterImmersionState'){
-          formTrain=this.waterImmersionStates
-          id=row.waterImmersionState
-        }
-        for (var i = 0; i < formTrain.length; i++) {
-          let item = formTrain[i]
-          if (id== item.id) {
-            name=item.name;
-            return this.$t(item.name)
-          }
-        }
-       return name;
-      },
-      dataRefreh(){
-        // 计时器为空,操作
-        setInterval(() => {
-        this.queryTotalStatus(); // 总状态
-        this.queryChannelStatus(); // 通道状态
-        this.querySensorStatusMonitoring(); //传感器
-      }, 2000);
-      },
-      //新增传感器
-      sensorStatusAdd(){
-        this.sensorStatusForm ={};
-        this.sensorStatusOpen = true;
-        this.sensorStatusTitle = this.$t('xz');
-      },
-      // 查询传感器
-      querySensorStatusMonitoring(){
-        const params={};
-        params.token= this.usertoken;
-        params.type="listQuery";
-        sensorStatusMonitoring(params).then(response => {
-          this.sensorStatusList = this.filterList(response.data, this.activeName);
-          this.sensorStatusALLList= response.data;
-      }).catch(() => {});
-
-      },
-      // 数组过滤
-      filterList(arr,name) {
-        return arr.filter(item => item.sensorType ===name);
-      },
-      // 删除
-      sensorStatusDelete(row) {
-        const params={};
-        params.token= this.usertoken;
-        params.sensorId=row.sensorId;
-        params.type="delete";
-        this.$modal.confirm(this.$t('qdyscm')).then(function() {
-          sensorStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t("zxcg"));
-        this.querySensorStatusMonitoring();
-      }).catch(() => {});
-
-      }, // 复位
-      issueInstructionsReset(row) {
-        const params={};
-        params.token= this.usertoken;
-        params.sensorId=row.sensorId;
-        params.type="reset";
-        this.$modal.confirm(this.$t('qryfwm')).then(function() {
-          sensorStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t("zxcg"));
-        this.querySensorStatusMonitoring();
-      }).catch(() => {});
-
-      },
-      // 门禁释放
-      issueInstructionsRelease(row) {
-        const params={};
-        params.token= this.usertoken;
-        params.sensorId=row.sensorId;
-        params.type="release";
-        this.$modal.confirm(this.$t('qrysfm')).then(function() {
-          sensorStatusMonitoring(params);
-        }).then(() => {
-          this.querySensorStatusMonitoring();
-        this.$modal.msgSuccess(this.$t("zxcg"));
-      }).catch(() => {});
-
-      },
-
-      /** 传感器按钮操作 */
-      sensorStatusUpdate(row) {
-        this.sensorStatusForm =row;
-        this.sensorStatusOpen = true;
-        this.sensorStatusTitle = this.$t('pz');
-      },
-      // 传感器空调
-      sensorStatusHandleCommand(command, row) {
-        const params={};
-        params.token= this.usertoken;
-        params.sensorId=row.sensorId;
-        switch (command) {
-          case "sensorStatusopen":
-            params.type="open";
-            this.$modal.confirm(this.$t('qrykqm')).then(function() {
-              sensorStatusMonitoring(params);
-            }).then(() => {
-              this.$modal.msgSuccess(this.$t("zxcg"));
-            this.querySensorStatusMonitoring();
-        }).catch(() => {});
-
-        break;
-      case "sensorStatusclose":
-        params.type="close";
-
-        this.$modal.confirm(this.$t('qrygbm')).then(function() {
-          sensorStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t("zxcg"));
-        this.querySensorStatusMonitoring();
-      }).catch(() => {});
-        break;
-      default:
-        break;
-      }
-      },
-
-      /** 传感器提交按钮 */
-      sensorStatusSubmitForm: function() {
-        this.$refs["sensorStatusForm"].validate(valid => {
-          if (valid) {
-            const params={};
-            params.token= this.usertoken;
-            params.sensorType=this.sensorStatusForm.sensorType;
-            params.sensorId=this.sensorStatusForm.sensorId;
-            params.sensorName=this.sensorStatusForm.sensorName;
-            params.comSlogan=this.sensorStatusForm.comSlogan;
-            params.sensorAddr=this.sensorStatusForm.sensorAddr;
-            params.sensorBaud=this.sensorStatusForm.sensorBaud;
-            params.connectionStatus=this.sensorStatusForm.connectionStatus;
-            if (this.sensorStatusForm.sensorId != undefined && this.sensorStatusForm.sensorId != '' ) {
-              this.loading = true;
-              params.type="update";
-              sensorStatusMonitoring(params).then(response => {
-                this.$modal.msgSuccess(this.$t('xgcg'));
-              this.sensorStatusOpen = false;
-              this.querySensorStatusMonitoring();
-              this.loading = false;
-            });
-            } else {
-              this.loading = true;
-              params.type="add";
-              sensorStatusMonitoring(params).then(response => {
-                this.$modal.msgSuccess(this.$t('xzcg'));
-              this.sensorStatusOpen = false;
-              this.querySensorStatusMonitoring();
-              this.loading = false;
-            });
-            }
-
-          }
-        });
-      },
-
-      // 传感器取消按钮
-      sensorStatusCancel() {
-        this.sensorStatusOpen = false;
-        // this.reset();
-      },
-
-
-
-      handleClick(tab, event) {
-        this.activeName=tab.name;
-        this.querySensorStatusMonitoring();
-      },
-      /** 查询服务器信息 */
-      getList() {
-        getServer().then(response => {
-          this.server = response.data;
-        //   this.$modal.closeLoading();
-      });
-      },
-      /** 提交按钮 */
-      submitForm: function() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            const params={};
-            params.token= this.usertoken;
-            params.type="save";
-            params.productChName=this.form.productChName;
-            params.productChId=this.form.productChId;
-            params.ChannelLoadType=this.form.ChannelLoadType;
-            this.loading = true;
-            channelStatusMonitoring(params).then(response => {
-              this.open = false;
-            this.queryChannelStatus();
-          });
-          }
-        });
-
-      },
-
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        //  this.reset();
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.form =row;
-        this.open = true;
-        this.title = this.$t('xg');
-      },
-      // 通道列表
-      queryChannelStatus(){
-
-        const params={};
-        params.token= this.usertoken;
-        params.type="listQuery";
-        this.loading = true;
-        channelStatusMonitoring(params).then(response => {
-          this.channelList = response.data;
-
-
-      }).catch(() => {});
-        this.loading = false;
-      },
-      // 更多操作触发
-      handleCommand(command, row) {
-        const params={};
-        params.token= this.usertoken;
-        params.productChId=row.productChId;
-        switch (command) {
-          case "channelopen":
-            params.type="open";
-            this.$modal.confirm(this.$t('qrykqm')).then(function() {
-              channelStatusMonitoring(params);
-            }).then(() => {
-              this.$modal.msgSuccess(this.$t('zxcg'));
-        }).catch(() => {});
-
-        break;
-      case "channelclose":
-        params.type="close";
-
-        this.$modal.confirm(this.$t('qrygbm')).then(function() {
-          channelStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t('zxcg'));
-      }).catch(() => {});
-        break;
-      default:
-        break;
-      }
-      },
-      // 设备信息
-      queryInfo(){
-        const params={};
-        params.token= this.usertoken;
-        params.type="listInfoQuery";
-        overallStatusMonitoring(params).then(response => {
-          this.totalInfo =response.data[0];
-        //    this.$modal.closeLoading();
-      });
-      }, // 总体状态监控
-      queryTotalStatus(){
-        const params={};
-        params.token= this.usertoken;
-        params.type="listQuery";
-        overallStatusMonitoring(params).then(response => {
-          this.totalStatus =response.data[0];
-        //    this.$modal.closeLoading();
-      });
-      },
-      // 总开
-      totalopen(){
-        const params={};
-        params.token= this.usertoken;
-        params.type="open";
-        this.$modal.confirm(this.$t('qrykqm')).then(function() {
-          overallStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t('zxcg'));
-        this.queryTotalStatus(); // 总状态
-        this.queryChannelStatus(); // 通道状态
-        this.querySensorStatusMonitoring(); //传感器
-      }).catch(() => {});
-
-      },
-      runJob(){
-        alert("222");
-      },
-      // 总关
-      totalclose(){
-        const params={};
-        params.token= this.usertoken;
-        params.type="close";
-        this.$modal.confirm(this.$t('qrykqm')).then(function() {
-          overallStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t('zxcg'));
-        this.queryTotalStatus(); // 总状态
-        this.queryChannelStatus(); // 通道状态
-        this.querySensorStatusMonitoring(); //传感器
-      }).catch(() => {});
-      },
-      // 打开加载层
-      openLoading() {
-        this.$modal.loading(this.$t('zzjzqsh'));
-      }
-    }
-  };
-</script>
-
-
-<style scoped>
-  .row-item {
-    display: -webkit-box;
-    line-height: 40px;
-  }
-  .row-item-title {
-    font-weight: bold;
-
-    padding-right: 10px;
-    /*border-left: 1px solid #e4e7ed;*/
-    /*border-top: 1px solid #e4e7ed;*/
-  }
-  .row-item-content {
-    /*border-left: 1px solid #e4e7ed;*/
-    /*border-right: 1px solid #e4e7ed;*/
-    /*border-top: 1px solid #e4e7ed;*/
-    width: 50%;
-    /* padding-left: 10px;*/
-    white-space: nowrap;
-    word-wrap: normal;
-    word-break: keep-all;
-    text-overflow: ellipsis;
-    overflow: hidden;
-  }
-
-</style>

+ 0 - 219
web/src/views/login_back.vue

@@ -1,219 +0,0 @@
-<template>
-  <div class="login">
-    <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
-      <h3 class="title">若依后台22管理系统</h3>
-      <el-form-item prop="username">
-        <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" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="password">
-        <el-input
-          v-model="loginForm.password"
-          type="password"
-          auto-complete="off"
-          placeholder="密码"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
-        </el-input>
-      </el-form-item>
-      <el-form-item prop="code" v-if="captchaEnabled">
-        <el-input
-          v-model="loginForm.code"
-          auto-complete="off"
-          placeholder="验证码"
-          style="width: 63%"
-          @keyup.enter.native="handleLogin"
-        >
-          <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
-        </el-input>
-        <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-form-item style="width:100%;">
-        <el-button
-          :loading="loading"
-          size="medium"
-          type="primary"
-          style="width:100%;"
-          @click.native.prevent="handleLogin"
-        >
-          <span v-if="!loading">登 录</span>
-          <span v-else>登 录 中...</span>
-        </el-button>
-        <div style="float: right;" v-if="register">
-          <router-link class="link-type" :to="'/register'">立即注册</router-link>
-        </div>
-      </el-form-item>
-    </el-form>
-    <!--  底部  -->
-    <div class="el-login-footer">
-      <span>Copyright © 2018-2023 ruoyi.vip All Rights Reserved.</span>
-    </div>
-  </div>
-</template>
-
-<script>
-import { getCodeImg } from "@/api/login";
-import Cookies from "js-cookie";
-import { encrypt, decrypt } from '@/utils/jsencrypt'
-
-export default {
-  name: "Login",
-  data() {
-    return {
-      codeUrl: "",
-      loginForm: {
-        username: "admin",
-        password: "admin123",
-        rememberMe: false,
-        code: "",
-        uuid: ""
-      },
-      loginRules: {
-        username: [
-          { required: true, trigger: "blur", message: "请输入您的账号" }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" }
-        ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
-      },
-      loading: false,
-      // 验证码开关
-      captchaEnabled: true,
-      // 注册开关
-      register: false,
-      redirect: undefined
-    };
-  },
-  watch: {
-    $route: {
-      handler: function(route) {
-        this.redirect = route.query && route.query.redirect;
-      },
-      immediate: true
-    }
-  },
-  created() {
-    this.getCode();
-    this.getCookie();
-  },
-  methods: {
-    getCode() {
-      getCodeImg().then(res => {
-        this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled;
-        if (this.captchaEnabled) {
-          this.codeUrl = "data:image/gif;base64," + res.img;
-          this.loginForm.uuid = res.uuid;
-        }
-      });
-    },
-    getCookie() {
-      const username = Cookies.get("username");
-      const password = Cookies.get("password");
-      const rememberMe = Cookies.get('rememberMe')
-      this.loginForm = {
-        username: username === undefined ? this.loginForm.username : username,
-        password: password === undefined ? this.loginForm.password : decrypt(password),
-        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
-      };
-    },
-    handleLogin() {
-      this.$refs.loginForm.validate(valid => {
-        if (valid) {
-          this.loading = true;
-          if (this.loginForm.rememberMe) {
-            Cookies.set("username", this.loginForm.username, { expires: 30 });
-            Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
-            Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
-          } else {
-            Cookies.remove("username");
-            Cookies.remove("password");
-            Cookies.remove('rememberMe');
-          }
-          this.$store.dispatch("Login", this.loginForm).then(() => {
-            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-          }).catch(() => {
-            this.loading = false;
-            if (this.captchaEnabled) {
-              this.getCode();
-            }
-          });
-        }
-      });
-    }
-  }
-};
-</script>
-
-<style rel="stylesheet/scss" lang="scss">
-.login {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  height: 100%;
-  background-image: url("../assets/images/login-background.jpg");
-  background-size: cover;
-}
-.title {
-  margin: 0px auto 30px auto;
-  text-align: center;
-  color: #707070;
-}
-
-.login-form {
-  border-radius: 6px;
-  background: #ffffff;
-  width: 400px;
-  padding: 25px 25px 5px 25px;
-  .el-input {
-    height: 38px;
-    input {
-      height: 38px;
-    }
-  }
-  .input-icon {
-    height: 39px;
-    width: 14px;
-    margin-left: 2px;
-  }
-}
-.login-tip {
-  font-size: 13px;
-  text-align: center;
-  color: #bfbfbf;
-}
-.login-code {
-  width: 33%;
-  height: 38px;
-  float: right;
-  img {
-    cursor: pointer;
-    vertical-align: middle;
-  }
-}
-.el-login-footer {
-  height: 40px;
-  line-height: 40px;
-  position: fixed;
-  bottom: 0;
-  width: 100%;
-  text-align: center;
-  color: #fff;
-  font-family: Arial;
-  font-size: 12px;
-  letter-spacing: 1px;
-}
-.login-code-img {
-  height: 38px;
-}
-</style>

+ 0 - 579
web/src/views/login_ces.vue

@@ -1,579 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row>
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header"><span style=" font-size: 20px; font-weight: bold;"><i class="el-icon-cpu"></i> 总体状态监控</span>
-          <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="queryTotalStatus" > {{$t('cx')}}</el-button></span>
-          <span style="margin-left: 10px;">  <el-button type="primary"  @click.native.prevent="totalopen" > {{$t('zk')}}</el-button></span>
-           <span style="margin-left: 10px;"><el-button type="primary" @click.native.prevent="totalclose" > {{$t('zg')}}</el-button></span>                                                                                                                                                                                            </el-button></span></div>
-          <div  class="el-table el-table--enable-row-hover el-table--medium">
-            <el-row :span="24" >
-              <el-col :span="4" >
-                <div class="row-item">
-                  <div class="row-item-title">总电压(V): </div>
-                  <div class="row-item-content">{{ totalStatus.totalVoltage }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">总电流(A): </div>
-                  <div class="row-item-content">{{  totalStatus.totalCurrent  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">总功率(W): </div>
-                  <div class="row-item-content">{{  totalStatus.totalPower  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">频率(仅交流,HZ):</div>
-                  <div class="row-item-content">{{  totalStatus.productChPowerFreq  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">总耗电量(Kwh): </div>
-                  <div class="row-item-content">{{  totalStatus.productChConsumption  }}</div>
-                </div>
-              </el-col>
-              <el-col :span="4">
-                <div class="row-item">
-                  <div class="row-item-title">功率因数(仅交流): </div>
-                  <div class="row-item-content">{{  totalStatus.productChPowerFactor  }}</div>
-                </div>
-              </el-col>
-            </el-row>
-
-          </div>
-        </el-card>
-
-      </el-col>
-
-      <el-col   :span="24" class="card-box">
-        <el-card>
-                  <div slot="header">
-                    <span style=" font-size: 20px; font-weight: bold;"><i class="el-icon-cpu"></i> 通道状态监控</span>
-                    <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="queryChannelStatus" > {{$t('cx')}}</el-button></span>
-                  </div>
-                  <el-table max-height="220" v-loading="loading" :data="channelList">
-                        <!--<el-table-column type="selection" width="55" align="center" />-->
-                        <el-table-column :label="this.$t('tdmc')" prop="productChName" width="130" />
-                        <el-table-column :label="this.$t('tdh')" prop="productChId" :show-overflow-tooltip="true" width="100" />
-                        <el-table-column :label="this.$t('dy')+'(V)'" prop="productChVoltage" :show-overflow-tooltip="true" width="100" />
-                        <el-table-column :label="this.$t('dl')+'(A)'" prop="productChCurrent" width="100" />
-                        <el-table-column :label="this.$t('gl')+'(W)'" prop="productChPower" align="center" width="100"/>
-                        <el-table-column :label="this.$t('pl')"  align="center" prop="productChPowerFreq" width="180"/>
-                         <el-table-column :label="this.$t('hdl')+'(Kwh)'" align="center" prop="productChConsumption" width="130"/>
-                          <el-table-column :label="this.$t('glys')" align="center" prop="productChPowerFactor" width="180"/>
-                          <el-table-column :label="this.$t('zt')" align="center" prop="productChStatus" width="100"/>
-                        <el-table-column :label="this.$t('cz')" align="center" width="130" class-name="small-padding fixed-width">
-                          <template slot-scope="scope" >
-                            <el-button
-                              size="mini"
-                              type="text"
-                              @click="handleUpdate(scope.row)"
-                            >{{$t('xg')}}</el-button>
-                            <el-dropdown style="margin-left:10px" size="mini" @command="(command) => handleCommand(command, scope.row)" >
-                              <el-button size="mini" type="text" style="margin-left: 10px">通道开/关</el-button>
-                              <el-dropdown-menu slot="dropdown">
-                                <el-dropdown-item v-if="scope.row.productChStatus == '离线'" command="channelopen" style="margin-left: 10px">{{$t('dk')}}</el-dropdown-item>
-                                <el-dropdown-item v-if="scope.row.productChStatus == '在线'" command="channelclose" style="margin-left: 10px">{{$t('gb')}}</el-dropdown-item>
-                              </el-dropdown-menu>
-
-                            </el-dropdown>
-                          </template>
-                        </el-table-column>
-                      </el-table>
-
-                </el-card>
-      </el-col>
-
-
-      <el-col :span="24" class="card-box">
-        <el-card>
-          <div slot="header">
-            <span style=" font-size: 20px; font-weight: bold;"><i class="el-icon-cpu"></i> 传感器状态监控</span>
-            <span style="margin-left: 60px;">  <el-button type="primary"  @click.native.prevent="querySensorStatusMonitoring" > {{$t('cx')}}</el-button></span>
-            <span style="margin-left: 10px;">  <el-button type="primary"  @click.native.prevent="sensorStatusAdd" > {{$t('xz')}}</el-button></span>
-          </div>
-          <div class="el-table el-table--enable-row-hover el-table--medium">
-            <el-tabs v-model="activeName" @tab-click="handleClick">
-              <el-tab-pane v-for='tab in sensorStatusTabs' :label="tab.sensorName" :key='tab.sensorId' :name='tab.sensorName' >
-                  <el-table max-height="220" v-loading="loading" :data="sensorStatusList">
-                    <!--<el-table-column type="selection" width="55" align="center" />-->
-                    <el-table-column :label="this.$t('cgqxh')" prop="sensorId" :show-overflow-tooltip="true" width="120" />
-                    <el-table-column :label="this.$t('cgqmc')" prop="sensorName" :show-overflow-tooltip="true" width="130" />
-                    <el-table-column :label="'COM'+this.$t('kh')" prop="comSlogan" width="100" />
-                    <el-table-column :label="this.$t('dz')" prop="sensorAddr" align="center" width="100"/>
-                    <el-table-column :label="this.$t('btl')"  align="center" prop="sensorBaud" width="100"/>
-                    <el-table-column :label="this.$t('ljzt')" align="center" prop="connectionStatus" width="130"/>
-                    <el-table-column v-if="tab.sensorName==='温湿度传感器'" :label="this.$t('wdz')+'(℃)'" align="center" prop="temperatureValue" width="130"/>
-                    <el-table-column v-if="tab.sensorName==='温湿度传感器'" :label="this.$t('sdz')+'(%)'" align="center" prop="humidityValue" width="130"/>
-                    <el-table-column v-if="tab.sensorName==='烟雾探测器'" :label="this.$t('bjzt')" align="center" prop="alarmStatus" width="100"/>
-                    <el-table-column v-if="tab.sensorName==='水位探测器'" :label="this.$t('sqrzt')" align="center" prop="waterImmersionState" width="100"/>
-                    <el-table-column v-if="tab.sensorName==='门禁传感器'" :label="this.$t('mjsfzt')" align="center" prop="accessControlStatus" width="100"/>
-                    <el-table-column v-if="tab.sensorName==='专用气体传感器'" :label="this.$t('qtld')" align="center" prop="gasConcentration" width="100"/>
-                    <el-table-column v-if="tab.sensorName==='气流气压传感器'" :label="this.$t('qlz')+'(m/s)'" align="center" prop="airflowValue" width="100"/>
-                    <el-table-column v-if="tab.sensorName==='气流气压传感器'" :label="this.$t('qyz')+'(MPa)'" align="center" prop="airPressureValue" width="100"/>
-                    <el-table-column :label="this.$t('cz')" align="center" width="180" class-name="small-padding fixed-width">
-                      <template slot-scope="scope" >
-                        <el-button
-                          size="mini"
-                          type="text"
-                          @click="sensorStatusUpdate(scope.row)"
-                        >{{$t('pz')}}</el-button>
-
-                        <el-button v-if="tab.sensorName==='烟雾探测器' && scope.row.alarmStatus == '报警' && scope.row.connectionStatus == '在线'"
-                          size="mini"
-                          type="text"
-                          @click="issueInstructionsReset(scope.row)"
-                        >{{$t('fw')}}</el-button>
-                        <el-button v-if="tab.sensorName==='门禁传感器'"
-                          size="mini"
-                          type="text"
-                          @click="issueInstructionsRelease(scope.row)"
-                        >{{$t('sf')}}</el-button>
-                        <el-dropdown v-if="tab.sensorName==='空调红外控制器'"  style="margin-left:10px" size="mini" @command="(command) => sensorStatusHandleCommand(command, scope.row)" >
-                          <el-button size="mini" type="text" style="margin-left: 10px">{{$t('gd')}}</el-button>
-                          <el-dropdown-menu slot="dropdown">
-                            <el-dropdown-item v-if="scope.row.connectionStatus == '在线'" command="sensorStatusclose" style="margin-left: 10px">{{$t('gb')}}</el-dropdown-item>
-                            <el-dropdown-item v-if="scope.row.connectionStatus == '离线'" command="sensorStatusopen" style="margin-left: 10px">{{$t('kq')}}</el-dropdown-item>
-                          </el-dropdown-menu>
-
-                        </el-dropdown>
-                        <el-button
-                          size="mini"
-                          type="text"
-                          @click="sensorStatusDelete(scope.row)"
-                        >{{$t('sc')}}</el-button>
-                      </template>
-                    </el-table-column>
-                  </el-table>
-              </el-tab-pane>
-
-            </el-tabs>
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-
-     <!-- 编辑通道-->
-        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-          <el-form ref="form" :model="form"  label-width="auto">
-            <el-form-item :label="this.$t('tdh')" prop="productChId">
-              <el-input :readonly="true" :disabled="true"  v-model="form.productChId" />
-            </el-form-item>
-            <el-form-item :label="this.$t('tdmc')" prop="productChName">
-                          <el-input v-model="form.productChName" />
-            </el-form-item>
-            <el-form-item :label="this.$t('tdfzlx')">
-                         <el-select style="width: 100%" v-model="form.ChannelLoadType"    allow-create   clearable filterable>
-                           <el-option v-for="item in channelLoadTypes" :key="item" :label="item" :value="item">
-                           </el-option>
-                         </el-select>
-                     </el-form-item>
-            </el-form-item>
-          </el-form>
-          <div slot="footer" class="dialog-footer">
-            <el-button type="primary" @click="submitForm">{{$t('qd')}}</el-button>
-            <el-button @click="cancel">{{$t('qx')}}</el-button>
-          </div>
-        </el-dialog>
-
-    <!-- 配制传感器-->
-    <el-dialog :title="sensorStatusTitle" :visible.sync="sensorStatusOpen" width="600px" append-to-body>
-      <el-form  ref="sensorStatusForm" :model="sensorStatusForm"  label-width="auto">
-        <el-row :span="16">
-          <el-col :span="12">
-        <el-form-item :label="this.$t('xuh')" prop="sensorId">
-          <el-input  v-if="sensorStatusTitle=='配置'" :readonly="true" :disabled="true"  v-model="sensorStatusForm.sensorId" />
-          <el-input  v-if="sensorStatusTitle=='新增'"  v-model="sensorStatusForm.sensorId" />
-        </el-form-item>
-          </el-col>
-          <el-col :span="12">
-        <el-form-item :label="this.$t('mc')" prop="sensorName">
-          <el-input v-model="sensorStatusForm.sensorName" />
-        </el-form-item>
-          </el-col>
-          <el-col :span="12">
-        <el-form-item :label="this.$t('lx')"  prop="sensorType">
-          <el-input v-model="sensorStatusForm.sensorType" />
-        </el-form-item>
-          </el-col>
-          <el-col :span="12">
-        <el-form-item :label="'COM'+this.$t('kh')" prop="comSlogan">
-          <el-input v-model="sensorStatusForm.comSlogan" />
-        </el-form-item>
-          </el-col>
-
-          <el-col :span="12">
-        <el-form-item :label="this.$t('btl')" prop="sensorBaud">
-          <el-input v-model="sensorStatusForm.sensorBaud" />
-        </el-form-item>
-          </el-col>
-          <el-col :span="12">
-        <el-form-item :label="this.$t('ljzt')">
-          <el-select style="width: 100%" v-model="sensorStatusForm.connectionStatus"   >
-            <el-option v-for="item in connectionStatuss" :key="item" :label="item" :value="item">
-            </el-option>
-          </el-select>
-        </el-form-item>
-          </el-col>
-          <el-col  >
-            <el-form-item :label="this.$t('dz')" prop="sensorAddr">
-              <el-input v-model="sensorStatusForm.sensorAddr" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="sensorStatusSubmitForm">{{$t('qd')}}</el-button>
-        <el-button @click="sensorStatusCancel">{{$t('qx')}}</el-button>
-      </div>
-    </el-dialog>
-
-  </div>
-</template>
-
-<script>
-import { getServer ,overallStatusMonitoring ,channelStatusMonitoring ,sensorStatusMonitoring} from "@/api/pdu/pduServer";
-
-export default {
-  name: "Server",
-  data() {
-    return {
-      // 服务器信息
-      server: [],
-      // 总体状态监控
-      totalStatus:{},
-      // 通道列表
-      channelList:[],
-       // 弹出层标题
-        title: "",
-      sensorStatusTitle: "", // 传感器标题
-        // 是否显示弹出层
-        open: false,
-
-         // 表单参数
-          form: {},
-      sensorStatusForm: {}, // 传感器表单数据
-          channelLoadTypes:["空调","服务器","交换机","路由器","计算机","显示器","灯","其他"],
-      activeName: '温湿度传感器', // 当前激活的标签页的 name
-      sensorStatusTabs:[],
-      sensorStatusOpen: false, // 配置传感器
-      sensorStatusList:[]
-    };
-  },
-  created() {
-  this.queryTotalStatus(); // 总状态
-  this.queryChannelStatus(); // 通道状态
-  this.querySensorStatusMonitoring(); //传感器
-  },
-  methods: {
-
-    //新增传感器
-    sensorStatusAdd(){
-      this.sensorStatusForm ={};
-      this.sensorStatusOpen = true;
-      this.sensorStatusTitle = this.$t('xz');
-    },
-    // 查询传感器
-    querySensorStatusMonitoring(){
-
-      const params={};
-      params.token="";
-      params.type="listQuery";
-      sensorStatusMonitoring(params).then(response => {
-        this.sensorStatusTabs = response.data;
-        this.sensorStatusList = response.data;
-    }).catch(() => {});
-
-    },
-
-    // 删除
-    sensorStatusDelete(row) {
-      const params={};
-      params.token="";
-      params.sensorId=row.sensorId;
-      params.type="delete";
-      this.$modal.confirm(this.$t('qdyscm')).then(function() {
-        sensorStatusMonitoring(params);
-      }).then(() => {
-        this.$modal.msgSuccess(this.$t('zxcg'));
-      this.querySensorStatusMonitoring();
-      }).catch(() => {});
-
-    }, // 复位
-    issueInstructionsReset(row) {
-      const params={};
-      params.token="";
-      params.sensorId=row.sensorId;
-      params.type="reset";
-      this.$modal.confirm(this.$t('qryfwm')).then(function() {
-        sensorStatusMonitoring(params);
-      }).then(() => {
-        this.$modal.msgSuccess(this.$t('zxcg'));
-      this.querySensorStatusMonitoring();
-      }).catch(() => {});
-
-    },
-  // 门禁释放
-  issueInstructionsRelease(row) {
-    const params={};
-    params.token="";
-    params.sensorId=row.sensorId;
-    params.type="release";
-    this.$modal.confirm(this.$t('qrysfm')).then(function() {
-      sensorStatusMonitoring(params);
-    }).then(() => {
-      this.querySensorStatusMonitoring();
-      this.$modal.msgSuccess(this.$t('zxcg'));
-  }).catch(() => {});
-
-},
-
-    /** 传感器按钮操作 */
-    sensorStatusUpdate(row) {
-      this.sensorStatusForm =row;
-      this.sensorStatusOpen = true;
-      this.sensorStatusTitle = this.$t('pz');
-    },
-    // 传感器空调
-    sensorStatusHandleCommand(command, row) {
-      const params={};
-      params.token="";
-      params.sensorId=row.sensorId;
-      switch (command) {
-        case "sensorStatusopen":
-          params.type="open";
-          this.$modal.confirm(this.$t('qrykqm')).then(function() {
-            sensorStatusMonitoring(params);
-          }).then(() => {
-            this.$modal.msgSuccess(this.$t('zxcg'));
-          this.querySensorStatusMonitoring();
-      }).catch(() => {});
-
-      break;
-    case "sensorStatusclose":
-      params.type="close";
-
-      this.$modal.confirm(this.$t('qrygbm')).then(function() {
-        sensorStatusMonitoring(params);
-      }).then(() => {
-        this.$modal.msgSuccess(this.$t('zxcg'));
-      this.querySensorStatusMonitoring();
-    }).catch(() => {});
-      break;
-    default:
-      break;
-    }
-    },
-
-    /** 传感器提交按钮 */
-    sensorStatusSubmitForm: function() {
-      this.$refs["sensorStatusForm"].validate(valid => {
-        if (valid) {
-          const params={};
-          params.token="";
-          params.sensorType=this.sensorStatusForm.sensorType;
-          params.sensorId=this.sensorStatusForm.sensorId;
-          params.sensorName=this.sensorStatusForm.sensorName;
-          params.comSlogan=this.sensorStatusForm.comSlogan;
-          params.sensorAddr=this.sensorStatusForm.sensorAddr;
-          params.sensorBaud=this.sensorStatusForm.sensorBaud;
-          params.connectionStatus=this.sensorStatusForm.connectionStatus;
-          if (this.sensorStatusForm.sensorId != undefined && this.sensorStatusForm.sensorId != '' ) {
-            this.loading = true;
-            params.type="update";
-            sensorStatusMonitoring(params).then(response => {
-              this.$modal.msgSuccess(this.$t('xgcg'));
-            this.sensorStatusOpen = false;
-            this.querySensorStatusMonitoring();
-                this.loading = false;
-          });
-          } else {
-            this.loading = true;
-            params.type="add";
-            sensorStatusMonitoring(params).then(response => {
-              this.$modal.msgSuccess(this.$t('xzcg'));
-            this.sensorStatusOpen = false;
-            this.querySensorStatusMonitoring();
-            this.loading = false;
-          });
-          }
-
-        }
-      });
-    },
-
-    // 传感器取消按钮
-    sensorStatusCancel() {
-      this.sensorStatusOpen = false;
-     // this.reset();
-    },
-
-
-
-    handleClick(tab, event) {
-      console.log(tab, event);
-    },
-    /** 查询服务器信息 */
-    getList() {
-      getServer().then(response => {
-        this.server = response.data;
-     //   this.$modal.closeLoading();
-      });
-    },
-     /** 提交按钮 */
-        submitForm: function() {
-          this.$refs["form"].validate(valid => {
-            if (valid) {
-               const params={};
-               params.token="";
-              params.type="save";
-            params.productChName=this.form.productChName;
-             params.productChId=this.form.productChId;
-              params.ChannelLoadType=this.form.ChannelLoadType;
-              this.loading = true;
-           channelStatusMonitoring(params).then(response => {
-                                                      this.open = false;
-                                                      this.queryChannelStatus();
-                                                    });
-            }
-          });
-
-        },
-
-        // 取消按钮
-            cancel() {
-              this.open = false;
-            //  this.reset();
-            },
-    /** 修改按钮操作 */
-        handleUpdate(row) {
-            this.form =row;
-            this.open = true;
-            this.title = this.$t('xg');
-        },
-    // 通道列表
-    queryChannelStatus(){
-
-       const params={};
-       params.token="";
-           params.type="listQuery";
-     this.loading = true;
-       channelStatusMonitoring(params).then(response => {
-           this.channelList = response.data;
-
-
-         }).catch(() => {});
-      this.loading = false;
-          },
-     // 更多操作触发
-        handleCommand(command, row) {
-          const params={};
-           params.token="";
-            params.productChId=row.productChId;
-          switch (command) {
-            case "channelopen":
-                  params.type="open";
-                   this.$modal.confirm(this.$t('qrykqm')).then(function() {
-                            channelStatusMonitoring(params);
-                            }).then(() => {
-                              this.$modal.msgSuccess(this.$t('zxcg'));
-                            }).catch(() => {});
-
-              break;
-            case "channelclose":
-                params.type="close";
-
-              this.$modal.confirm(this.$t('qrygbm')).then(function() {
-                                               channelStatusMonitoring(params);
-                                          }).then(() => {
-                                            this.$modal.msgSuccess(this.$t('zxcg'));
-                                          }).catch(() => {});
-              break;
-            default:
-              break;
-          }
-        },
-    // 总体状态监控
-    queryTotalStatus(){
-    const params={};
-      params.token="";
-      params.type="listQuery";
-    overallStatusMonitoring(params).then(response => {
-             this.totalStatus =response.data[0];
-        //    this.$modal.closeLoading();
-          });
-    },
-    // 总开
-    totalopen(){
-      const params={};
-            params.token="";
-            params.type="open";
-     this.$modal.confirm(this.$t('qrykqm')).then(function() {
-           overallStatusMonitoring(params);
-          }).then(() => {
-            this.$modal.msgSuccess(this.$t('zxcg'));
-              this.queryTotalStatus(); // 总状态
-              this.queryChannelStatus(); // 通道状态
-              this.querySensorStatusMonitoring(); //传感器
-          }).catch(() => {});
-
-    },
-    runJob(){
-     alert("222");
-    },
-     // 总关
-        totalclose(){
-        const params={};
-        params.token="";
-        params.type="close";
-      this.$modal.confirm(this.$t('qrykqm')).then(function() {
-               overallStatusMonitoring(params);
-              }).then(() => {
-                this.$modal.msgSuccess(this.$t('zxcg'));
-                 this.queryTotalStatus(); // 总状态
-                              this.queryChannelStatus(); // 通道状态
-                              this.querySensorStatusMonitoring(); //传感器
-              }).catch(() => {});
-        },
-    // 打开加载层
-    openLoading() {
-      this.$modal.loading(this.$t('zzjzqsh'));
-    }
-  }
-};
-</script>
-
-
-<style scoped>
-  .row-item {
-    display: -webkit-box;
-    line-height: 40px;
-  }
-  .row-item-title {
-    font-weight: bold;
-
-    padding-right: 10px;
-    /*border-left: 1px solid #e4e7ed;*/
-    /*border-top: 1px solid #e4e7ed;*/
-  }
-  .row-item-content {
-    /*border-left: 1px solid #e4e7ed;*/
-    /*border-right: 1px solid #e4e7ed;*/
-    /*border-top: 1px solid #e4e7ed;*/
-    width: 50%;
-    /* padding-left: 10px;*/
-    white-space: nowrap;
-    word-wrap: normal;
-    word-break: keep-all;
-    text-overflow: ellipsis;
-    overflow: hidden;
-  }
-
-</style>

+ 0 - 753
web/src/views/power/channelstatus/index.vue.back

@@ -1,753 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="auto">
-      <el-form-item :label="this.$t('sbmc')" prop="productName">
-        <el-select style="width: 100%" v-model="queryParams.productId"    allow-create    filterable>
-          <el-option v-for="item in productList" :key="item.productId" :label="item.productName" :value="item.productId">
-          </el-option>
-        </el-select>
-      </el-form-item>
-
-      <el-form-item>
-        <!--<el-button type="primary"  size="mini" @click="queryChannelStatus11">{{$t('ss')}}</el-button>-->
-        <el-button type="primary"  size="mini" @click="queryChannelStatus11">{{$t('ss')}}</el-button>
-        <el-button type="primary" style=";background-color: green"    size="mini" @click="queryChannelStatus12">{{$t('tdjc')}}</el-button>
-
-      </el-form-item>
-      <el-form-item  style="position: absolute;right: 0%;margin-right: 5%;">
-        <el-button type="primary"  size="mini" @click="handleZtCommand('open', queryParams.productId)">{{$t('zk')}}</el-button>
-        <el-button type="primary"  style=";background-color: #656B8B" size="mini" @click="handleZtCommand('close', queryParams.productId)">{{$t('zg')}}</el-button>
-        <!--<el-dropdown style="margin-left:10px;"  size="mini" @command="(command) => handleZtCommand(command, this.queryParams.productId)" >-->
-          <!--<el-button type='primary' size="mini"  style="margin-left: 10px;margin-top: 10px;width: 80px;background-color: #656B8B">{{$t('shib')}}{{$t('cz')}}<i class="el-icon-caret-bottom" /></el-button>-->
-          <!--<el-dropdown-menu slot="dropdown">-->
-            <!--<el-dropdown-item  command="open" style="margin-top: 10px;height:40px;width: 90px;text-align: center;font-size: 25px">{{$t('zk')}}</el-dropdown-item>-->
-            <!--<el-dropdown-item  command="close" style="margin-top: 10px;height:40px;width: 90px;text-align: center;font-size: 25px">{{$t('zg')}}</el-dropdown-item>-->
-          <!--</el-dropdown-menu>-->
-
-        <!--</el-dropdown>-->
-      </el-form-item>
-    </el-form>
-    <el-card v-if="this.productType==='3' || this.productType==='4'"  style="min-height: 700px ; border-radius: 15px">
-    <el-table min-height="700px" v-loading="loading"  max-height="700px"  :data="channelList" :span-method="objectSpanMethod" style="overflow-y: auto"  :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
-      <!--<el-table-column type="selection" width="55" align="center" />-->
-      <el-table-column fixed  :label="this.$t('sbmc')" :min-width="getStringWidth(this.$t('sbmc'))"  prop="productName"  />
-      <el-table-column :label="this.$t('sbbh')" v-if="false" prop="productNumber"   />
-      <el-table-column label="设备id" v-if="false" prop="productId"   />
-      <el-table-column fixed  :label="this.$t('tdmc')" :min-width="getStringWidth(this.$t('tdmc'))"  prop="productChName"   />
-      <el-table-column fixed  :label="this.$t('tdh')" :min-width="getStringWidth(this.$t('tdh'))"  prop="productChId" :show-overflow-tooltip="true"   />
-
-      <el-table-column :label="this.$t('sxxx')" :min-width="getStringWidth(this.$t('sxxx'))"  prop="productPhOrder" :show-overflow-tooltip="true"   >
-        <template slot-scope="scope">
-          <span v-if="scope.row.outputStatus=='1'" style="color: green">{{getDity(scope.row,'productPhOrders')}}</span>
-          <span v-else style="color: red">{{getDity(scope.row,'productPhOrders')}}</span>
-
-        </template>
-      </el-table-column>
-
-      <el-table-column :label="this.$t('sxxdy')+'(V)'" :min-width="getStringWidth(this.$t('sxxdy'))" prop="productPhOrderDy" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('sxxdl')+'(A)'" :min-width="getStringWidth(this.$t('sxxdl'))" prop="productPhOrderDl" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('sxxgl')+'(W)'" :min-width="getStringWidth(this.$t('sxxgl'))" prop="productPhOrderGl" :show-overflow-tooltip="true"   />
-      <el-table-column :label="this.$t('sxxhdl')+'(Kwh)'" :min-width="getStringWidth(this.$t('sxxhdl'))" prop="productPhOrderHdl" :show-overflow-tooltip="true"   />
-
-
-      <!--<el-table-column :label="this.$t('dy')+'(V)'"  width="120"  prop="productChVoltage" :show-overflow-tooltip="true"   />-->
-      <!--<el-table-column :label="this.$t('dl')+'(A)'" width="120" prop="productChCurrent" :show-overflow-tooltip="true"  />-->
-      <el-table-column :label="this.$t('gl')+'(W)'" :min-width="getStringWidth(this.$t('gl'))" prop="productChPower"  :show-overflow-tooltip="true" align="center"  />
-      <el-table-column :label="this.$t('pl')" v-if="this.productType!='1'" :min-width="getStringWidth(this.$t('pl'))"  align="center" prop="productChPowerFreq"  :show-overflow-tooltip="true"/>
-      <el-table-column :label="this.$t('hdl')+'(Kwh)'" :min-width="getStringWidth(this.$t('hdl'))" align="center" prop="productChConsumption" :show-overflow-tooltip="true" />
-      <el-table-column :label="this.$t('glys')"  v-if="this.productType!='1'"  :min-width="getStringWidth(this.$t('glys'))" align="center" prop="productChPowerFactor" :show-overflow-tooltip="true"/>
-      <el-table-column :label="this.$t('kqys')+'(S)'" :min-width="getStringWidth(this.$t('kqys'))"  sortable  prop="firingInterval" align="center"  :show-overflow-tooltip="true" />
-      <el-table-column :label="this.$t('gbys')+'(S)'"  :min-width="getStringWidth(this.$t('gbys'))"   sortable align="center" prop="closeInterval"  :show-overflow-tooltip="true"/>
-      <el-table-column  fixed="right" :label="this.$t('zt')" align="center" prop="productChStatus" >
-        <template slot-scope="scope">
-          <span v-if="getDity2(scope.row,'productChStatus', scope.$index)=='0'" style="color: red">{{getDity1(scope.row,'productChStatus', scope.$index)}}</span>
-          <span v-else-if="getDity2(scope.row,'productChStatus', scope.$index)=='1'" style="color: green">{{getDity1(scope.row,'productChStatus', scope.$index)}}</span>
-          <span v-else style="color: #c747b1">{{getDity1(scope.row,'productChStatus', scope.$index)}}</span>
-          <!--<span v-else style="color: green">{{getDity1y1(scope.row,'productChStatus', scope.$index)}}</span>-->
-        </template>
-      </el-table-column>
-      <el-table-column  fixed="right" :label="this.$t('cz')" align="center" width="140"  class-name="small-padding fixed-width">
-        <template slot-scope="scope" >
-          <el-button
-            v-if="scope.row.productChStatus == '0'"
-            size="mini"
-            type="text"
-            icon="el-icon-refresh"
-            @click="handleCommand('channelopen',scope.row)"
-          >{{$t('dk')}}</el-button>
-          <el-button
-            v-if="scope.row.productChStatus == '1'"
-            size="mini"
-            type="text"
-            icon="el-icon-refresh"
-            @click="handleCommand('channelclose',scope.row)"
-          >{{$t('gb')}}</el-button>
-
-        </template>
-      </el-table-column>
-      <el-table-column  fixed="right" :label="this.$t('sclx')"   width="120"      align="center" prop="outputType"  :show-overflow-tooltip="true"  >
-        <template slot-scope="scope">
-          <span @click="onclickOutType(scope.row, scope.$index)" v-if="scope.row.outputType=='1'" style="color: red;cursor: pointer">{{getDity(scope.row,'outputTypes')}}</span>
-          <span @click="onclickOutType(scope.row,scope.$index)"  v-else style="color: #5C92B7;cursor: pointer">{{getDity(scope.row,'outputTypes')}}</span>
-        </template>
-      </el-table-column>
-
-      <el-table-column fixed="right" :label="this.$t('pz')" align="center"  width="100"  class-name="small-padding fixed-width">
-        <template slot-scope="scope" >
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-          >{{$t('xg')}}</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    </el-card>
-    <!--<el-card v-if="this.productType==='4'"   style="min-height: 700px ; border-radius: 15px">-->
-       <!--<el-table min-height="700px"  max-height="700px" v-loading="loading"   :data="channelList"   style="overflow-y: auto"  :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">-->
-        <!--&lt;!&ndash;<el-table-column type="selection" width="55" align="center" />&ndash;&gt;-->
-        <!--<el-table-column fixed  :label="this.$t('sbmc')" prop="productName"  />-->
-        <!--<el-table-column :label="this.$t('sbbh')" v-if="false" prop="productNumber"   />-->
-        <!--<el-table-column label="设备id" v-if="false" prop="productId"   />-->
-        <!--<el-table-column fixed  :label="this.$t('tdmc')" prop="productChName"   />-->
-        <!--<el-table-column fixed  :label="this.$t('tdh')" prop="productChId" :show-overflow-tooltip="true"   />-->
-
-        <!--<el-table-column :label="this.$t('sxxx')" prop="productPhOrder" :show-overflow-tooltip="true"   >-->
-          <!--<template slot-scope="scope">-->
-            <!--<span >{{getDity(scope.row,'productPhOrders')}}</span>-->
-          <!--</template>-->
-        <!--</el-table-column>-->
-
-        <!--<el-table-column :label="this.$t('dy')+'(V)'"  width="100"  prop="productChVoltage" :show-overflow-tooltip="true"   />-->
-        <!--<el-table-column :label="this.$t('dl')+'(A)'" width="100" prop="productChCurrent" :show-overflow-tooltip="true"  />-->
-        <!--<el-table-column :label="this.$t('gl')+'(W)'" width="100" prop="productChPower"  :show-overflow-tooltip="true" align="center"  />-->
-        <!--<el-table-column :label="this.$t('pl')" v-if="this.productType!='1'"  align="center" prop="productChPowerFreq"  :show-overflow-tooltip="true"/>-->
-        <!--<el-table-column :label="this.$t('hdl')+'(Kwh)'" width="120" align="center" prop="productChConsumption" :show-overflow-tooltip="true" />-->
-        <!--<el-table-column :label="this.$t('glys')"  v-if="this.productType!='1'" align="center" prop="productChPowerFactor" :show-overflow-tooltip="true"/>-->
-        <!--<el-table-column :label="this.$t('kqys')+'(S)'"  width="140"  sortable  prop="firingInterval" align="center"  :show-overflow-tooltip="true" />-->
-        <!--<el-table-column :label="this.$t('gbys')+'(S)'"  width="140"   sortable align="center" prop="closeInterval"  :show-overflow-tooltip="true"/>-->
-        <!--<el-table-column  fixed="right" :label="this.$t('zt')" align="center" prop="productChStatus" >-->
-          <!--<template slot-scope="scope">-->
-            <!--<span v-if="scope.row.productChStatus=='0'" style="color: red">{{getDity(scope.row,'productChStatus')}}</span>-->
-            <!--<span v-else style="color: green">{{getDity(scope.row,'productChStatus')}}</span>-->
-          <!--</template>-->
-        <!--</el-table-column>-->
-        <!--<el-table-column  fixed="right" :label="this.$t('cz')" align="center" width="100" class-name="small-padding fixed-width">-->
-          <!--<template slot-scope="scope" >-->
-            <!--<el-button-->
-              <!--v-if="scope.row.productChStatus == '0'"-->
-              <!--size="mini"-->
-              <!--type="text"-->
-              <!--icon="el-icon-refresh"-->
-              <!--@click="handleCommand('channelopen',scope.row)"-->
-            <!--&gt;{{$t('dk')}}</el-button>-->
-            <!--<el-button-->
-              <!--v-if="scope.row.productChStatus == '1'"-->
-              <!--size="mini"-->
-              <!--type="text"-->
-              <!--icon="el-icon-refresh"-->
-              <!--@click="handleCommand('channelclose',scope.row)"-->
-            <!--&gt;{{$t('gb')}}</el-button>-->
-
-          <!--</template>-->
-        <!--</el-table-column>-->
-        <!--<el-table-column fixed="right" :label="this.$t('pz')" align="center" width="100" class-name="small-padding fixed-width">-->
-          <!--<template slot-scope="scope" >-->
-            <!--<el-button-->
-              <!--size="mini"-->
-              <!--type="text"-->
-              <!--icon="el-icon-edit"-->
-              <!--@click="handleUpdate(scope.row)"-->
-            <!--&gt;{{$t('xg')}}</el-button>-->
-          <!--</template>-->
-        <!--</el-table-column>-->
-      <!--</el-table>-->
-
-    <!--</el-card>-->
-    <el-card v-if="this.productType!='4' && this.productType!='3'"  style="min-height: 700px ; border-radius: 15px">
-
-      <el-table min-height="700px"  max-height="700px"  v-loading="loading"    :data="channelList"   style="overflow-y: auto"  :header-cell-style="{ background:'#FFFFFF',color:'#000000'}">
-        <!--<el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column fixed  :label="this.$t('sbmc')"  :min-width="getStringWidth(this.$t('sbmc'))"  prop="productName"  />
-        <el-table-column :label="this.$t('sbbh')" v-if="false" prop="productNumber"   />
-        <el-table-column label="设备id" v-if="false" prop="productId"   />
-        <el-table-column fixed  :label="this.$t('tdmc')"  :min-width="getStringWidth(this.$t('tdmc'))"  prop="productChName"   />
-        <el-table-column fixed  :label="this.$t('tdh')" :min-width="getStringWidth(this.$t('tdh'))"  prop="productChId" :show-overflow-tooltip="true"   />
-        <el-table-column :label="this.$t('sxxx')" v-if="this.productType=='3'" prop="productPhOrder" :show-overflow-tooltip="true"   >
-          <template slot-scope="scope">
-            <span >{{getDity(scope.row,'productPhOrders')}}</span>
-          </template>
-        </el-table-column>
-
-        <el-table-column  v-if="this.productType=='3'" :label="this.$t('sxx')+this.$t('dy')+'(V)'"  :min-width="getStringWidth(this.$t('dy'))"  prop="productPhOrderDy" :show-overflow-tooltip="true"   />
-        <el-table-column  v-if="this.productType=='3'" :label="this.$t('sxx')+this.$t('dl')+'(A)'"  :min-width="getStringWidth(this.$t('dl'))"  prop="productPhOrderDl" :show-overflow-tooltip="true"   />
-        <el-table-column  v-if="this.productType=='3'" :label="this.$t('sxx')+this.$t('gl')+'(W)'"  :min-width="getStringWidth(this.$t('gl'))"  prop="productPhOrderGl" :show-overflow-tooltip="true"   />
-        <el-table-column  v-if="this.productType=='3'" :label="this.$t('sxx')+this.$t('hdl')+'(Kwh)'"  :min-width="getStringWidth(this.$t('hdl'))"  prop="productPhOrderHdl" :show-overflow-tooltip="true"   />
-
-
-        <el-table-column :label="this.$t('dy')+'(V)'"   :min-width="getStringWidth(this.$t('dy'))"   prop="productChVoltage" :show-overflow-tooltip="true"   />
-        <el-table-column :label="this.$t('dl')+'(A)'"  :min-width="getStringWidth(this.$t('dl'))"  prop="productChCurrent" :show-overflow-tooltip="true"  />
-        <el-table-column :label="this.$t('gl')+'(W)'"  :min-width="getStringWidth(this.$t('gl'))"  prop="productChPower"  :show-overflow-tooltip="true" align="center"  />
-        <el-table-column :label="this.$t('pl')" v-if="this.productType!='1'"   :min-width="getStringWidth(this.$t('pl'))"   align="center" prop="productChPowerFreq"  :show-overflow-tooltip="true"/>
-        <el-table-column :label="this.$t('hdl')+'(Kwh)'"  :min-width="getStringWidth(this.$t('hdl'))"  align="center" prop="productChConsumption" :show-overflow-tooltip="true" />
-        <el-table-column :label="this.$t('glys')"  v-if="this.productType!='1'"  :min-width="getStringWidth(this.$t('glys'))"  align="center" prop="productChPowerFactor" :show-overflow-tooltip="true"/>
-        <el-table-column :label="this.$t('kqys')+'(S)'"   :min-width="getStringWidth(this.$t('kqys'))"   sortable  prop="firingInterval" align="center"  :show-overflow-tooltip="true" />
-        <el-table-column :label="this.$t('gbys')+'(S)'"   :min-width="getStringWidth(this.$t('gbys'))"    sortable align="center" prop="closeInterval"  :show-overflow-tooltip="true"/>
-        <el-table-column  fixed="right" :label="this.$t('zt')" align="center" prop="productChStatus" >
-          <template slot-scope="scope">
-            <span v-if="scope.row.productChStatus=='0'" style="color: red">{{getDity(scope.row,'productChStatus')}}</span>
-            <span v-else-if="scope.row.productChStatus=='1'" style="color: green">{{getDity(scope.row,'productChStatus')}}</span>
-            <span v-else style="color: #c747b1">{{getDity(scope.row,'productChStatus')}}</span>
-            <!--<span v-else style="color: green">{{getDity(scope.row,'productChStatus')}}</span>-->
-          </template>
-        </el-table-column>
-        <el-table-column  fixed="right" :label="this.$t('cz')" align="center" width="100" class-name="small-padding fixed-width">
-          <template slot-scope="scope" >
-            <el-button
-              v-if="scope.row.productChStatus == '0'"
-              size="mini"
-              type="text"
-              icon="el-icon-refresh"
-              @click="handleCommand('channelopen',scope.row)"
-            >{{$t('dk')}}</el-button>
-            <el-button
-              v-if="scope.row.productChStatus == '1'"
-              size="mini"
-              type="text"
-              icon="el-icon-refresh"
-              @click="handleCommand('channelclose',scope.row)"
-            >{{$t('gb')}}</el-button>
-
-          </template>
-        </el-table-column>
-        <el-table-column fixed="right" :label="this.$t('pz')" align="center" width="100" class-name="small-padding fixed-width">
-          <template slot-scope="scope" >
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              @click="handleUpdate(scope.row)"
-            >{{$t('xg')}}</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-card>
-    <!-- 编辑通道-->
-    <el-dialog :title="title" :visible.sync="open" width="500px" :close-on-click-modal="false" :close-on-press-escape="false" append-to-body>
-      <el-form ref="form" :model="form"  label-width="auto">
-        <el-form-item :label="this.$t('tdh')" prop="productChId">
-          <el-input :readonly="true" :disabled="true"  v-model="form.productChId" />
-        </el-form-item>
-        <el-form-item :label="this.$t('tdmc')" prop="productChName">
-          <el-input v-model="form.productChName" />
-        </el-form-item>
-        <!--<el-form-item :label="this.$t('sxxx')" v-if="this.productType=='4'">-->
-          <!--<el-select style="width: 100%" v-model="form.productPhOrder"    allow-create   clearable filterable>-->
-            <!--<el-option v-for="item in productPhOrders" :key="item.id" :label="$t(item.name)" :value="item.id">-->
-            <!--</el-option>-->
-          <!--</el-select>-->
-        <!--</el-form-item>-->
-
-        <el-form-item :label="this.$t('tdfzlx')">
-          <el-select style="width: 100%" v-model="form.ChannelLoadType" :placeholder="this.$t('tdtisy')"    allow-create   clearable filterable>
-            <el-option v-for="item in channelLoadTypes" :key="item" :label="$t(item)" :value="item">
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">{{$t('qd')}}</el-button>
-        <el-button @click="cancel">{{$t('qx')}}</el-button>
-      </div>
-    </el-dialog>
-
-    <!-- 输出类型弹窗修改-->
-    <el-dialog :title="outTitle" :visible.sync="outOpen" width="500px" :close-on-click-modal="false" :close-on-press-escape="false" append-to-body>
-      <el-form ref="outForm" :model="outForm"  label-width="auto">
-        <el-form-item :label="this.$t('tdh')" v-if="false" prop="productChId">
-          <el-input :readonly="true"    v-model="outForm.productChId" />
-        </el-form-item>
-        <el-form-item :label="this.$t('tdmc')" v-if="false" prop="productChName">
-          <el-input v-model="outForm.productChName" />
-        </el-form-item>
-
-        <el-form-item :label="this.$t('sclx')">
-          <el-select style="width: 100%" v-model="outForm.outputType"     @change="handleSelectChange2"    allow-create    filterable>
-            <el-option v-for="item in outputTypes" :key="item.id" :label="$t(item.name)" :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="this.$t('sxxx')">
-          <el-select  :disabled="disabled2" style="width: 100%" v-model="outForm.productPhOrder"    allow-create    filterable>
-            <el-option v-for="item in productPhOrders" :key="item.id" :label="$t(item.name)" :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
-
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm1">{{$t('qd')}}</el-button>
-        <el-button @click="cancel1">{{$t('qx')}}</el-button>
-      </div>
-    </el-dialog>
-
-  </div>
-</template>
-
-<script>
-  import { list, forceLogout } from "@/api/monitor/online";
-  import {channelStatusMonitoring ,overallStatusMonitoring,equipmentMintenance} from "@/api/pdu/pduServer";
-
-  export default {
-    name: "Online",
-    data() {
-      return {
-        // 遮罩层
-        loading: true,
-        // 总条数
-        total: 0,
-        // 设备列表
-        productList:[],
-        // 表格数据
-        channelList: [],
-        // 弹出层标题
-        title: "",
-        // 是否显示弹出层
-        open: false,
-        // 输出类型弹出层标题
-        outTitle: "",
-        // 是否显示输出类型弹出层
-        outOpen: false,
-        // 通道配置表单参数
-        form: {},
-        outForm: {},
-        channelLoadTypes:["kt","fwq","jhj","lyq","jsj","xsq","d","qt"],
-        // 查询参数
-        queryParams: {
-          productChName: "",
-          productId: "",
-          productName: "",
-          token: "",
-          type: "",
-        },
-        usertoken:"",
-        // 通道状态
-        productChStatuss:[{"id":"0","name":"duank"},{"id":"1","name":"jt"},{"id":"-1","name":"lix"}],
-        //3相类型
-        productPhOrders:[{"id":"L1","name":"sxax"},{"id":"L2","name":"sxbx"},{"id":"L3","name":"sxcx"},],
-        // 输出类型
-        outputTypes:[{"id":"1","name":"sx"},{"id":"2","name":"dx"}],
-        // 输出状态
-        outputStatus:[{"id":"1","name":"sc"},{"id":"2","name":"bsc"}],
-        productType:"",
-        disabled2:false
-      };
-    },
-    mounted() {
-      //监听websocket消息
-
-      this.$bus.$on('CHANNEL_STATUS_MONITORING', this.onSocketMessageToChannel);
-    },
-    created() {
-      this.usertoken= this.$store.state.user.usertoken;
-     // this.dataRefreh();
-      this.queryProductList();
-    },
-    methods: {
-      getStringWidth(text) {
-        //console.log('text', text)
-        const font = '14px Arial'
-        const canvas = document.createElement('canvas')
-        const context = canvas.getContext('2d')
-        context.font = font
-        const metrics = context.measureText(text)
-       // console.log('metrics.width', metrics.width)
-        return metrics.width + 40
-      },
-      handleSelectChange2(type){
-        if(type=='1'){
-          this.disabled2=true;
-        }else{
-          this.disabled2=false;
-        }
-
-      },
-      onclickOutType(row,index){
-
-        this.outForm =JSON.parse(JSON.stringify(row));
-        this.outTitle = this.$t('pz');
-        if(row.outputType=='1'){
-          this.disabled2=true;
-        }else{
-          this.disabled2=false;
-        }
-        var productPhOrder="";
-        if(row.outputType=='2'){
-          for(var i=index;i<index+2;i++){
-            const obj=this.channelList[i];
-            if(obj.outputStatus=='1'){
-              productPhOrder=obj.productPhOrder;
-              break;
-            }
-          }
-          this.outForm.productPhOrder=productPhOrder;
-        }
-
-        this.outOpen=true;
-      },
-      objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-        if (columnIndex === 0 || columnIndex === 1  || columnIndex === 2 || columnIndex === 8 || columnIndex === 9 || columnIndex === 10 || columnIndex === 11 || columnIndex === 12 || columnIndex === 13 || columnIndex === 14 || columnIndex === 15 || columnIndex === 16 || columnIndex === 17 || columnIndex === 18  || columnIndex === 19 ) {
-
-          if (rowIndex % 3 === 0) {
-            return {
-              rowspan: 3,
-              colspan: 1
-            };
-          } else {
-            return {
-              rowspan: 0,
-              colspan: 0
-            };
-          }
-        }
-      },
-
-      // 设备列表
-      queryProductList(){
-        const params={};
-        params.token= this.usertoken;
-        params.type= "listSbRestartQuery";
-          equipmentMintenance(params).then(response => {
-            this.productList = response.data;
-        this.queryParams.productId=  this.productList[0].productId;
-            this.productType=this.productList[0].productType
-        this.handleQuery();
-        }).catch(() => {});
-      },
-      //推送通道状态
-      onSocketMessageToChannel(recvMessage) {
-        if (recvMessage.success) {
-          let resultData =recvMessage.data.data
-          if(recvMessage.data!=null && resultData!='' && resultData!=null){
-            this.channelList = resultData;
-          }
-
-          // this.handleQuery();
-        }
-      },
-      //格式化培训形式
-      getDity(row,type) {
-        var name="";
-        var id="";
-        var formTrain=[];
-        if(type=='productChStatus'){
-          formTrain=this.productChStatuss
-          id=row.productChStatus
-        }else if(type=='alarmStatus'){
-          formTrain=this.alarmStatuss
-          id=row.alarmStatus
-        }else if(type=='connectionStatus'){
-          formTrain=this.connectionStatuss
-          id=row.connectionStatus
-        }else if(type=='waterImmersionState'){
-          formTrain=this.waterImmersionStates
-          id=row.waterImmersionState
-        }else if(type=='waterImmersionState'){
-          formTrain=this.waterImmersionStates
-          id=row.waterImmersionState
-        }else if(type=='productPhOrders'){
-          formTrain=this.productPhOrders
-          id=row.productPhOrder
-        }else if(type=='outputTypes'){
-          formTrain=this.outputTypes
-          id=row.outputType
-        }
-        for (var i = 0; i < formTrain.length; i++) {
-          let item = formTrain[i]
-          if (id== item.id) {
-            name=item.name;
-            return this.$t(item.name)
-          }
-        }
-        return name;
-      },
-
-      getDity1(row,type,index) {
-        var name="";
-        var id="";
-        var formTrain=[];
-        if(type=='productChStatus'){
-          var productChStatus='';
-          for(var i=index;i<index+2;i++){
-            const obj=this.channelList[i];
-            if(obj.outputStatus=='1'){
-              productChStatus=obj.productChStatus;
-              break;
-            }
-          }
-          formTrain=this.productChStatuss
-          id=productChStatus
-        }else if(type=='alarmStatus'){
-          formTrain=this.alarmStatuss
-          id=row.alarmStatus
-        }else if(type=='connectionStatus'){
-          formTrain=this.connectionStatuss
-          id=row.connectionStatus
-        }else if(type=='waterImmersionState'){
-          formTrain=this.waterImmersionStates
-          id=row.waterImmersionState
-        }else if(type=='waterImmersionState'){
-          formTrain=this.waterImmersionStates
-          id=row.waterImmersionState
-        }else if(type=='productPhOrders'){
-          formTrain=this.productPhOrders
-          id=row.productPhOrder
-        }else if(type=='outputTypes'){
-          formTrain=this.outputTypes
-          id=row.outputType
-        }
-        for (var i = 0; i < formTrain.length; i++) {
-          let item = formTrain[i]
-          if (id== item.id) {
-            name=item.name;
-            return this.$t(item.name)
-          }
-        }
-        return name;
-      },
-      getDity2(row,type,index) {
-        var name="";
-        var id="";
-        var formTrain=[];
-        if(type=='productChStatus'){
-          var productChStatus='';
-          for(var i=index;i<index+2;i++){
-            const obj=this.channelList[i];
-            if(obj.outputStatus=='1'){
-              productChStatus=obj.productChStatus;
-              break;
-            }
-          }
-          formTrain=this.productChStatuss
-          id=productChStatus
-        }
-        return id;
-      },
-      dataRefreh(){
-        // 计时器为空,操作
-        setInterval(() => {
-          this.queryChannelStatus();
-      }, 1000);
-      },
-      // 通道列表
-      queryChannelStatus(){
-        this.queryParams.token=this.usertoken;
-        this.queryParams.type="listQuery";
-        this.loading = true;
-        for(var i=0;i<this.productList.length;i++){
-          if(this.queryParams.productId==this.productList[i].productId){
-          this.productType=this.productList[i].productType
-          }
-        }
-        channelStatusMonitoring(this.queryParams).then(response => {
-          if(response.data!=null){
-            this.channelList = response.data;
-          }
-
-      }).catch(() => {});
-      this.loading = false;
-      },
-      queryChannelStatus11(){
-        this.queryParams.token=this.usertoken;
-        this.queryParams.type="resetChannel";
-        this.loading = true;
-        for(var i=0;i<this.productList.length;i++){
-          if(this.queryParams.productId==this.productList[i].productId){
-          this.productType=this.productList[i].productType
-          }
-        }
-        channelStatusMonitoring(this.queryParams).then(response => {
-          this.channelList = response.data;
-      }).catch(() => {});
-        this.loading = false;
-      },
-      queryChannelStatus12(){
-        const param={};
-        param.token=this.usertoken;
-        param.type="resetChannel";
-        param.productId= this.queryParams.productId;
-        var aa=this;
-        this.$modal.confirm(this.$t('jcqr')).then(function() {
-          equipmentMintenance(param).then(response => {
-           aa.$modal.msgSuccess(aa.$t('zxcg'));
-          aa.queryChannelStatus();
-        }).catch(() => {});
-        }).then(() => {
-
-      }).catch(() => {});
-
-      //   channelStatusMonitoring(this.queryParams).then(response => {
-      //     this.channelList = response.data;
-      // }).catch(() => {});
-
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.form =row;
-        this.open = true;
-        this.title = this.$t('xg');
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryChannelStatus();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.resetForm("queryForm");
-        this.handleQuery();
-      },
-      // 更多操作触发
-      handleCommand(command, row) {
-        const params={};
-        params.token=this.usertoken;
-        params.productChId=row.productChId;
-        switch (command) {
-          case "channelopen":
-            params.type="open";
-            this.$modal.confirm(this.$t('qrykqm')).then(function() {
-              channelStatusMonitoring(params);
-            }).then(() => {
-              this.$modal.msgSuccess(this.$t('zxcg'));
-            this.handleQuery();
-        }).catch(() => {});
-
-        break;
-      case "channelclose":
-        params.type="close";
-
-        this.$modal.confirm(this.$t('qrygbm')).then(function() {
-          channelStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t('zxcg'));
-        this.handleQuery();
-      }).catch(() => {});
-        break;
-      default:
-        break;
-      }
-      },
-
-      /** 提交按钮 */
-      submitForm: function() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            const params={};
-            params.token=this.usertoken;
-            params.type="save";
-            params.productChName=this.form.productChName;
-            params.productChId=this.form.productChId;
-            params.productPhOrder=this.form.productPhOrder;
-            params.ChannelLoadType=this.$t(this.form.ChannelLoadType);
-            this.loading = true;
-            channelStatusMonitoring(params).then(response => {
-              this.open = false;
-              this.$modal.msgSuccess(this.$t('zxcg'));
-              this.handleQuery();
-          });
-          }
-        });
-
-      },
-
-      /** 三相输出提交按钮 */
-      submitForm1: function() {
-        this.$refs["outForm"].validate(valid => {
-          if (valid) {
-            const params={};
-            params.token=this.usertoken;
-            params.type="threeTypeSave";
-            params.productChName=this.outForm.productChName;
-            params.productChId=this.outForm.productChId;
-            params.productPhOrder=this.outForm.productPhOrder;
-            params.outputType=this.outForm.outputType;
-            this.loading = true;
-            let  aa=this;
-            this.$modal.confirm(this.$t('qdybcm')).then(function() {
-              channelStatusMonitoring(params).then(response => {
-                aa.outOpen = false;
-                aa.$modal.msgSuccess(aa.$t('zxcg'));
-                aa.handleQuery();
-              });
-            }).then(() => {
-            }).catch(() => {});
-
-          //   channelStatusMonitoring(params).then(response => {
-          //     this.outOpen = false;
-          //     this.$modal.msgSuccess(this.$t('zxcg'));
-          //     this.handleQuery();
-          // });
-          }
-        });
-
-      },
-
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        //  this.reset();
-      },
-      // 三相输出取消按钮
-      cancel1() {
-        this.outOpen = false;
-        this.handleQuery();
-        //  this.reset();
-      },
-
-      // 更多操作触发
-      handleZtCommand(command, productChId) {
-        const params={};
-        params.token=this.usertoken;
-        params.productChId=productChId;
-        if(productChId==''){
-          this.$modal.msgWarning(this.$t('qxz')+this.$t('shib'));
-          return;
-        }
-        switch (command) {
-          case "open":
-            params.type="open";
-            this.$modal.confirm(this.$t('qrykqm2')).then(function() {
-              overallStatusMonitoring(params);
-            }).then(() => {
-              this.$modal.msgSuccess(this.$t('zxcg'));
-              this.handleQuery();
-            }).catch(() => {});
-
-            break;
-          case "close":
-            params.type="close";
-            this.$modal.confirm(this.$t('qrygbm2')).then(function() {
-              overallStatusMonitoring(params);
-            }).then(() => {
-              this.$modal.msgSuccess(this.$t('zxcg'));
-              this.handleQuery();
-            }).catch(() => {});
-
-            break;
-          default:
-            break;
-        }
-      },
-      /** 强退按钮操作 */
-      handleForceLogout(row) {
-        this.$modal.confirm(this.$t('sfqztc') + row.userName + this.$t('yhm')).then(function() {
-          return forceLogout(row.tokenId);
-        }).then(() => {
-          this.getList();
-        this.$modal.msgSuccess(this.$t('qtcg'));
-      }).catch(() => {});
-      }
-    }
-  };
-</script>
-

+ 0 - 244
web/src/views/power/monitorhistory/index_tab.vue

@@ -1,244 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="auto">
-      <el-form-item :label="this.$t('el.datepicker.startTime')" prop="startTime">
-        <el-date-picker clearable
-                        v-model="queryParams.startTime"
-                        type="datetime"
-                        value-format="yyyy-MM-dd HH:mm:ss"
-                        >
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item :label="this.$t('el.datepicker.endTime')" prop="endTime">
-        <el-date-picker clearable
-                        v-model="queryParams.endTime"
-                        type="datetime"
-                        value-format="yyyy-MM-dd HH:mm:ss"
-                        >
-        </el-date-picker>
-      </el-form-item>
-
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{$t('ss')}}</el-button>
-        <!--<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{$t('czhi')}}</el-button>-->
-      </el-form-item>
-
-    </el-form>
-
-    <el-col :span="24" class="card-box">
-    <el-tabs v-model="tabName" type="card" @tab-click="handleClick" >
-      <el-tab-pane :label="this.$t('ztztlsjl')" name="totalTabe">
-        <el-table max-height="220" v-loading="loading" :data="totalHisList">
-        <!--<el-table-column type="selection" width="55" align="center" />-->
-        <el-table-column :label="this.$t('tdmc')" prop="productChName" width="130" />
-        <el-table-column :label="this.$t('tdh')" prop="productChId" :show-overflow-tooltip="true" width="100" />
-        <el-table-column :label="this.$t('dy')+'(V)'" prop="productChVoltage" :show-overflow-tooltip="true" width="100" />
-        <el-table-column :label="this.$t('dl')+'(A)'" prop="productChCurrent" width="100" />
-        <el-table-column :label="this.$t('gl')+'(W)'" prop="productChPower" align="center" width="100"/>
-        <el-table-column :label="this.$t('pl')"  align="center" prop="productChPowerFreq" width="180"/>
-        <el-table-column :label="this.$t('hdl')+'(Kwh)'" align="center" prop="productChConsumption" width="130"/>
-        <el-table-column :label="this.$t('glys')" align="center" prop="productChPowerFactor" width="180"/>
-        <el-table-column :label="this.$t('zt')" align="center" prop="productChStatus" width="100"/>
-        </el-table>
-        <pagination
-
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="totalHisList"
-        />
-
-      </el-tab-pane>
-      <el-tab-pane :label="this.$t('tdztlsjl')" name="channelTabe">
-          <el-table max-height="220" v-loading="loading" :data="channelHistList">
-            <!--<el-table-column type="selection" width="55" align="center" />-->
-            <el-table-column :label="this.$t('tdmc')" prop="productChName" width="130" />
-            <el-table-column :label="this.$t('tdh')" prop="productChId" :show-overflow-tooltip="true" width="100" />
-            <el-table-column :label="this.$t('dy')+'(V)'" prop="productChVoltage" :show-overflow-tooltip="true" width="100" />
-            <el-table-column :label="this.$t('dl')+'(A)'" prop="productChCurrent" width="100" />
-            <el-table-column :label="this.$t('gl')+'(W)'" prop="productChPower" align="center" width="100"/>
-            <el-table-column :label="this.$t('pl')"  align="center" prop="productChPowerFreq" width="180"/>
-            <el-table-column :label="this.$t('hdl')+'(Kwh)'" align="center" prop="productChConsumption" width="130"/>
-            <el-table-column :label="this.$t('glys')" align="center" prop="productChPowerFactor" width="180"/>
-            <el-table-column :label="this.$t('zt')" align="center" prop="productChStatus" width="100"/>
-          </el-table>
-        <pagination
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="channelHistList"
-        />
-      </el-tab-pane>
-    </el-tabs>
-    </el-col>
-
-  </div>
-</template>
-
-<script>
-  import { list, forceLogout } from "@/api/monitor/online";
-  import {channelStatusMonitoring,overallStatusMonitoring } from "@/api/pdu/pduServer";
-
-  export default {
-    name: "Online",
-    data() {
-      return {
-        // 遮罩层
-        loading: true,
-        // 总条数
-        total: 0,
-        // 日期范围
-        dateRange: [],
-        // 表格数据
-        channelHistList: [],
-        totalHisList: [],
-        // 弹出层标题
-        title: "",
-        // 总条数
-        total: 0,
-        // 是否显示弹出层
-        open: false,
-        // 通道配置表单参数
-        form: {},
-        channelLoadTypes:["空调","服务器","交换机","路由器","计算机","显示器","灯","其他"],
-        // 查询参数
-        queryParams: {
-          startTime:"",
-          pageNum:"",
-          pageSize:"",
-          endTime:"",
-          productChName: "",
-          productChId: "",
-          token: "",
-          type: "",
-        },
-        usertoken:"",
-        tabName:"totalTabe"
-      };
-    },
-    created() {
-      this.usertoken= this.$store.state.user.usertoken;
-      var  date = new Date();
-      this.queryParams.endTime=this.getNowDateTime(date);
-      date.setHours(date.getHours() - 6);
-      this.queryParams.startTime=this.getNowDateTime(date);
-      this.handleQuery();
-    },
-
-    methods: {
-      getNowDateTime(date){
-        var year = date.getFullYear();
-        var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
-        var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
-        var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
-        var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
-        var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
-        return year + '-' + month + '-' + day + ' ' + hours+ ':' + minutes + ':' + seconds;
-      },
-      handleClick(tab, event) {
-        this.tabName=tab.name;
-        this.handleQuery();
-      },
-      // 通道列表
-      queryChannelStatus(){
-        this.loading = true;
-        this.queryParams.token=this.usertoken;
-        this.queryParams.type="listQuery";
-
-
-        if(this.tabName=='channelTabe'){
-          channelStatusMonitoring(this.queryParams).then(response => {
-            this.channelList = response.data;
-        }).catch(() => {});
-        }else{
-          overallStatusMonitoring(this.queryParams).then(response => {
-            this.channelList = response.data;
-        }).catch(() => {});
-        }
-        this.loading = false;
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.form =row;
-        this.open = true;
-        this.title = this.$t('xg');
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-
-        this.queryChannelStatus();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.queryParams.endTime="";
-
-        this.queryParams.startTime="";
-        this.handleQuery();
-      },
-      // 更多操作触发
-      handleCommand(command, row) {
-        const params={};
-        params.token=this.usertoken;
-        params.productChId=row.productChId;
-        switch (command) {
-          case "channelopen":
-            params.type="open";
-            this.$modal.confirm(this.$t('qrykqm')).then(function() {
-              channelStatusMonitoring(params);
-            }).then(() => {
-              this.$modal.msgSuccess(this.$t('zxcg'));
-        }).catch(() => {});
-
-        break;
-      case "channelclose":
-        params.type="close";
-
-        this.$modal.confirm(this.$t('qrygbm')).then(function() {
-          channelStatusMonitoring(params);
-        }).then(() => {
-          this.$modal.msgSuccess(this.$t('zxcg'));
-      }).catch(() => {});
-        break;
-      default:
-        break;
-      }
-      },
-
-      /** 提交按钮 */
-      submitForm: function() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            const params={};
-            params.token=this.usertoken;
-            params.type="save";
-            params.productChName=this.form.productChName;
-            params.productChId=this.form.productChId;
-            params.ChannelLoadType=this.form.ChannelLoadType;
-            this.loading = true;
-            channelStatusMonitoring(params).then(response => {
-              this.open = false;
-            this.queryChannelStatus();
-          });
-          }
-        });
-
-      },
-
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        //  this.reset();
-      },
-      /** 强退按钮操作 */
-      handleForceLogout(row) {
-        this.$modal.confirm(this.$t('sfqztc') + row.userName + this.$t('yhm')).then(function() {
-          return forceLogout(row.tokenId);
-        }).then(() => {
-          this.getList();
-        this.$modal.msgSuccess(this.$t('qtcg'));
-      }).catch(() => {});
-      }
-    }
-  };
-</script>
-

+ 7 - 2
web/三相/src/store/modules/user.js

@@ -10,7 +10,8 @@ const user = {
     usertoken: '',
     avatar: '',
     roles: [],
-    permissions: []
+    permissions: [],
+    postIds:[]
   },
 
   mutations: {
@@ -36,7 +37,10 @@ const user = {
     },
     SET_PERMISSIONS: (state, permissions) => {
       state.permissions = permissions
-    }
+    },
+SET_POSTIDS: (state, postIds) => {
+  state.postIds = postIds
+}
   },
 
   actions: {
@@ -74,6 +78,7 @@ const user = {
           commit('SET_USER_TOKEN', user.token)
           commit('SET_AVATAR', avatar)
           commit('SET_LOGOName', user.nickName)
+          commit('SET_POSTIDS', user.postIds)
           resolve(res)
         }).catch(error => {
           reject(error)

+ 1 - 1
web/三相/src/views/index.vue

@@ -606,7 +606,7 @@
               }
             }
             var xAxis=reData.xAxis;
-            var yName='P';
+            var yName=yName;
             if(typeDataList!=null){
               this.echartGl(legendData,xAxis,series,yName);
             }

+ 24 - 7
web/三相/src/views/jgbh/fzsz/index.vue

@@ -252,13 +252,15 @@
               <el-input :readonly="true" :disabled="true"  v-model="form1.productId" />
             </el-form-item>
           </el-col>
-
+          <el-col >
           <el-form-item     :label="this.$t('td')" prop="productChIds">
             <el-select style="width: 100%" v-model="form1.productChIds"  clearable   multiple>
+              <el-option :label="$t('qxuan')" :value="$t('qxuan')" @click.native="selectAll3()"></el-option>
               <el-option v-for="item in channelList" :key="item.productChId" :label="item.productChName" :value="item.productChId">
               </el-option>
             </el-select>
           </el-form-item>
+          </el-col>
           <el-col >
             <el-form-item :label="this.$t('dlsxz')+'(A)'" prop="currentUpperValue">
               <el-input v-model="form1.currentUpperValue"  @blur="blurRowPrice1('dlsxz')" style="width:110px"/>
@@ -553,6 +555,17 @@
           this.sensorStatusForm.thresholdDownChanel = [];
         }
       },
+      selectAll3() {
+        if (this.form1.productChIds.length < this.channelList.length) {
+          this.form1.productChIds = [];
+          this.channelList.map((item) => {
+            this.form1.productChIds.push(item.productChId);
+        });
+          // this.sensorStatusForm.thresholdDownChanel.unshift("qxuan");
+        } else {
+          this.form1.productChIds = [];
+        }
+      },
       getStringWidth(text) {
         //console.log('text', text)
         const font = '14px Arial'
@@ -582,7 +595,6 @@
           param.productId=this.queryParams.productId;
           channelStatusMonitoring(param).then(response => {
             if(response.data!=null){
-              if(this.productType=='3'){ //三项
                 let list=[];
                 for(var i=0;i< response.data.length;i++){
                   var aa=response.data[i];
@@ -595,9 +607,6 @@
                   }
                 }
                 this.channelList = list;
-              }else{
-                this.channelList = response.data;
-              }
 
             }
 
@@ -1193,8 +1202,16 @@
             params.thresholdDownValue=this.sensorStatusForm.thresholdDownValue+"";
             params.thresholdUpperAction=this.sensorStatusForm.thresholdUpperAction;
             params.thresholdDownAction=this.sensorStatusForm.thresholdDownAction;
-            params.thresholdUpperChanel=this.sensorStatusForm.thresholdUpperChanel.join(',');
-            params.thresholdDownChanel=this.sensorStatusForm.thresholdDownChanel.join(',');
+
+            if(this.sensorStatusForm.thresholdUpperChanel!=null && this.sensorStatusForm.thresholdUpperChanel.length>0){
+              params.thresholdUpperChanel=this.sensorStatusForm.thresholdUpperChanel.join(',');
+            }
+            if(this.sensorStatusForm.thresholdDownChanel!=null && this.sensorStatusForm.thresholdDownChanel.length>0){
+              params.thresholdDownChanel=this.sensorStatusForm.thresholdDownChanel.join(',');
+            }
+
+
+
             params.connectionStatus=this.sensorStatusForm.connectionStatus;
             if (this.sensorStatusForm.sensorId != undefined && this.sensorStatusForm.sensorId != '' ) {
               this.loading = true;

+ 13 - 1
web/三相/src/views/power/channelstatus/index.vue

@@ -12,7 +12,7 @@
         <!--<el-button type="primary"  size="mini" @click="queryChannelStatus11">{{$t('ss')}}</el-button>-->
         <el-button type="primary"  size="mini" @click="queryChannelStatus11">{{$t('ss')}}</el-button>
         <el-button type="primary" style=";background-color: green"    size="mini" @click="queryChannelStatus12">{{$t('tdjc')}}</el-button>
-        <el-button type="primary" style=";background-color: red"    :min-width="getStringWidth($t('hdlfw'))" size="mini" @click="queryChannelStatus13">{{$t('hdlfw')}}</el-button>
+        <el-button type="primary" style=";background-color: red;width: 90px"    :min-width="getStringWidth($t('hdlfw'))" size="mini" @click="queryChannelStatus13">{{$t('hdlfw')}}</el-button>
 
 
       </el-form-item>
@@ -321,6 +321,7 @@
 
         <el-form-item     :label="this.$t('td')" prop="productChIds">
           <el-select style="width: 100%" v-model="outForm1.productChIds"  clearable   multiple>
+            <el-option :label="$t('qxuan')" :value="$t('qxuan')" @click.native="selectAll2()"></el-option>
             <el-option v-for="item in channelList1" :key="item.productChId" :label="item.productChName" :value="item.productChId">
             </el-option>
           </el-select>
@@ -400,6 +401,17 @@
       this.queryProductList();
     },
     methods: {
+      selectAll2() {
+        if (this.outForm1.productChIds.length < this.channelList1.length) {
+          this.outForm1.productChIds = [];
+          this.channelList1.map((item) => {
+            this.outForm1.productChIds.push(item.productChId);
+        });
+          // this.sensorStatusForm.thresholdDownChanel.unshift("qxuan");
+        } else {
+          this.outForm1.productChIds = [];
+        }
+      },
       getStringWidth(text) {
         //console.log('text', text)
         const font = '14px Arial'

+ 1 - 1
web/三相/src/views/power/monitorall/index.vue

@@ -718,7 +718,7 @@
             }
           }
           var xAxis=reData.xAxis;
-          var yName='P';
+          var yName='W';
           if(typeDataList!=null){
             this.echartGl(legendData,xAxis,series,yName);
           }

+ 0 - 5
web/三相/src/views/power/monitorhistory/index.vue

@@ -700,7 +700,6 @@
         this.loading = true;
         channelStatusMonitoring(params).then(response => {
           if(response.data!=null){
-          if(this.productType=='3'){ //三项
             let list=[];
             for(var i=0;i< response.data.length;i++){
               var aa=response.data[i];
@@ -713,10 +712,6 @@
               }
             }
             this.productChList =list;
-          }else{
-            this.productChList = response.data;
-          }
-
         }
 
         // this.queryParams.productChId=  this.productChList[0].productChId;

+ 3 - 3
web/三相/src/views/rzxx/yxrz/index.vue

@@ -41,9 +41,9 @@
     <!--</el-row>-->
     <el-card style="min-height: 600px ;border-radius: 15px">
     <el-table max-height="600"  :data="list"   :header-cell-style="{ background:'#FFFFFF',color:'#000000'}" >
-      <el-table-column :label="this.$t('rq')" align="center" prop="alarmDate"  width="150"   />
-      <el-table-column :label="this.$t('sj')" align="center" prop="alarmTime"  width="150"   />
-      <el-table-column :label="this.$t('lx')" align="center" prop="type" width="150" :show-overflow-tooltip="true" />
+      <el-table-column :label="this.$t('rq')" align="center" prop="alarmDate"  width="250"   />
+      <!--<el-table-column :label="this.$t('sj')" align="center" prop="alarmTime"  width="150"   />-->
+      <el-table-column :label="this.$t('lx')" align="center" prop="type" width="250" :show-overflow-tooltip="true" />
       <el-table-column :label="this.$t('nrms')" align="center" prop="content" :show-overflow-tooltip="true" />
     </el-table>
     </el-card>

web/.editorconfig → web/安德森/.editorconfig


web/.env.development → web/安德森/.env.development


web/.env.production → web/安德森/.env.production


web/.env.staging → web/安德森/.env.staging


web/.eslintignore → web/安德森/.eslintignore


web/.eslintrc.js → web/安德森/.eslintrc.js


web/.gitignore → web/安德森/.gitignore


web/README.md → web/安德森/README.md


web/babel.config.js → web/安德森/babel.config.js


web/bin/build.bat → web/安德森/bin/build.bat


web/bin/package.bat → web/安德森/bin/package.bat


web/bin/run-web.bat → web/安德森/bin/run-web.bat


web/build/index.js → web/安德森/build/index.js


web/package.json → web/安德森/package.json


web/public/favicon.ico → web/安德森/public/favicon.ico


web/public/html/ie.html → web/安德森/public/html/ie.html


web/public/index.html → web/安德森/public/index.html


web/public/robots.txt → web/安德森/public/robots.txt


web/ruoyi-ui-three.iml → web/安德森/ruoyi-ui-ads.iml


web/ruoyi-ui.iml → web/安德森/ruoyi-ui.iml


web/ruoyi-web.iml → web/安德森/ruoyi-web.iml


web/src/App.vue → web/安德森/src/App.vue


web/src/api/login.js → web/安德森/src/api/login.js


web/src/api/menu.js → web/安德森/src/api/menu.js


web/src/api/monitor/cache.js → web/安德森/src/api/monitor/cache.js


web/src/api/monitor/job.js → web/安德森/src/api/monitor/job.js


web/src/api/monitor/jobLog.js → web/安德森/src/api/monitor/jobLog.js


web/src/api/monitor/logininfor.js → web/安德森/src/api/monitor/logininfor.js


web/src/api/monitor/online.js → web/安德森/src/api/monitor/online.js


web/src/api/monitor/operlog.js → web/安德森/src/api/monitor/operlog.js


web/src/api/monitor/server.js → web/安德森/src/api/monitor/server.js


web/src/api/pdu/pduServer.js → web/安德森/src/api/pdu/pduServer.js


web/src/api/system/config.js → web/安德森/src/api/system/config.js


web/src/api/system/dept.js → web/安德森/src/api/system/dept.js


web/src/api/system/dict/data.js → web/安德森/src/api/system/dict/data.js


web/src/api/system/dict/type.js → web/安德森/src/api/system/dict/type.js


web/src/api/system/menu.js → web/安德森/src/api/system/menu.js


web/src/api/system/notice.js → web/安德森/src/api/system/notice.js


web/src/api/system/post.js → web/安德森/src/api/system/post.js


web/src/api/system/role.js → web/安德森/src/api/system/role.js


web/src/api/system/user.js → web/安德森/src/api/system/user.js


web/src/api/tool/gen.js → web/安德森/src/api/tool/gen.js


web/src/assets/401_images/401.gif → web/安德森/src/assets/401_images/401.gif


web/src/assets/404_images/404.png → web/安德森/src/assets/404_images/404.png


web/src/assets/404_images/404_cloud.png → web/安德森/src/assets/404_images/404_cloud.png


web/src/assets/button/delete.png → web/安德森/src/assets/button/delete.png


web/src/assets/button/update.png → web/安德森/src/assets/button/update.png


web/src/assets/icons/index.js → web/安德森/src/assets/icons/index.js


web/src/assets/icons/svg/404.svg → web/安德森/src/assets/icons/svg/404.svg


web/src/assets/icons/svg/Vector.svg → web/安德森/src/assets/icons/svg/Vector.svg


web/src/assets/icons/svg/bug.svg → web/安德森/src/assets/icons/svg/bug.svg


web/src/assets/icons/svg/build.svg → web/安德森/src/assets/icons/svg/build.svg


web/src/assets/icons/svg/button.svg → web/安德森/src/assets/icons/svg/button.svg


web/src/assets/icons/svg/cascader.svg → web/安德森/src/assets/icons/svg/cascader.svg


web/src/assets/icons/svg/chart.svg → web/安德森/src/assets/icons/svg/chart.svg


web/src/assets/icons/svg/checkbox.svg → web/安德森/src/assets/icons/svg/checkbox.svg


web/src/assets/icons/svg/clipboard.svg → web/安德森/src/assets/icons/svg/clipboard.svg


web/src/assets/icons/svg/code.svg → web/安德森/src/assets/icons/svg/code.svg


web/src/assets/icons/svg/color.svg → web/安德森/src/assets/icons/svg/color.svg


web/src/assets/icons/svg/component.svg → web/安德森/src/assets/icons/svg/component.svg


web/src/assets/icons/svg/dashboard.svg → web/安德森/src/assets/icons/svg/dashboard.svg


web/src/assets/icons/svg/date-range.svg → web/安德森/src/assets/icons/svg/date-range.svg


web/src/assets/icons/svg/date.svg → web/安德森/src/assets/icons/svg/date.svg


web/src/assets/icons/svg/dict.svg → web/安德森/src/assets/icons/svg/dict.svg


web/src/assets/icons/svg/documentation.svg → web/安德森/src/assets/icons/svg/documentation.svg


web/src/assets/icons/svg/download.svg → web/安德森/src/assets/icons/svg/download.svg


web/src/assets/icons/svg/drag.svg → web/安德森/src/assets/icons/svg/drag.svg


web/src/assets/icons/svg/druid.svg → web/安德森/src/assets/icons/svg/druid.svg


web/src/assets/icons/svg/edit.svg → web/安德森/src/assets/icons/svg/edit.svg


web/src/assets/icons/svg/education.svg → web/安德森/src/assets/icons/svg/education.svg


web/src/assets/icons/svg/email.svg → web/安德森/src/assets/icons/svg/email.svg


web/src/assets/icons/svg/example.svg → web/安德森/src/assets/icons/svg/example.svg


web/src/assets/icons/svg/excel.svg → web/安德森/src/assets/icons/svg/excel.svg


web/src/assets/icons/svg/exit-fullscreen.svg → web/安德森/src/assets/icons/svg/exit-fullscreen.svg


web/src/assets/icons/svg/eye-open.svg → web/安德森/src/assets/icons/svg/eye-open.svg


web/src/assets/icons/svg/eye.svg → web/安德森/src/assets/icons/svg/eye.svg


web/src/assets/icons/svg/form.svg → web/安德森/src/assets/icons/svg/form.svg


web/src/assets/icons/svg/fullscreen.svg → web/安德森/src/assets/icons/svg/fullscreen.svg


web/src/assets/icons/svg/github.svg → web/安德森/src/assets/icons/svg/github.svg


web/src/assets/icons/svg/gjzt.svg → web/安德森/src/assets/icons/svg/gjzt.svg


web/src/assets/icons/svg/guide.svg → web/安德森/src/assets/icons/svg/guide.svg


web/src/assets/icons/svg/icon.svg → web/安德森/src/assets/icons/svg/icon.svg


web/src/assets/icons/svg/input.svg → web/安德森/src/assets/icons/svg/input.svg


web/src/assets/icons/svg/international.svg → web/安德森/src/assets/icons/svg/international.svg


web/src/assets/icons/svg/jctd.svg → web/安德森/src/assets/icons/svg/jctd.svg


web/src/assets/icons/svg/job.svg → web/安德森/src/assets/icons/svg/job.svg


+ 0 - 0
web/src/assets/icons/svg/language.svg


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor